Quelle k0f.c Sprache: unbekannt
/* k0f.c
*
* Modified Bessel function , third kind , order zero
*
*
*
* SYNOPSIS :
*
* float x , y , k0f ( ) ;
*
* y = k0f ( x ) ;
*
*
*
* DESCRIPTION :
*
* Returns modified Bessel function of the third kind
* of order zero of the argument .
*
* The range is partitioned into the two intervals [ 0 , 8 ] and
* ( 8 , infinity ) . Chebyshev polynomial expansions are employed
* in each interval .
*
*
*
* ACCURACY :
*
* Tested at 2000 random points between 0 and 8 . Peak absolute
* error ( relative when K0 > 1 ) was 1 . 46 e - 14 ; rms , 4 . 26 e - 15 .
* Relative error :
* arithmetic domain # trials peak rms
* IEEE 0 , 30 30000 7 . 8 e - 7 8 . 5 e - 8
*
* ERROR MESSAGES :
*
* message condition value returned
* K0 domain x < = 0 MAXNUM
*
*/
/* k0ef()
*
* Modified Bessel function , third kind , order zero ,
* exponentially scaled
*
*
*
* SYNOPSIS :
*
* float x , y , k0ef ( ) ;
*
* y = k0ef ( x ) ;
*
*
*
* DESCRIPTION :
*
* Returns exponentially scaled modified Bessel function
* of the third kind of order zero of the argument .
*
*
*
* ACCURACY :
*
* Relative error :
* arithmetic domain # trials peak rms
* IEEE 0 , 30 30000 8 . 1 e - 7 7 . 8 e - 8
* See k0 ( ) .
*
*/
/*
Cephes Math Library Release 2 . 0 : April , 1987
Copyright 1984 , 1987 by Stephen L . Moshier
Direct inquiries to 30 Frost Street , Cambridge , MA 02140
*/
#include "mconf.h"
/* Chebyshev coefficients for K0(x) + log(x/2) I0(x)
* in the interval [ 0 , 2 ] . The odd order coefficients are all
* zero ; only the even order coefficients are listed .
*
* lim ( x - > 0 ) { K0 ( x ) + log ( x / 2 ) I0 ( x ) } = - EUL .
*/
static float A[] =
{
1 .90451637722020886025 E-9 f,
2 .53479107902614945675 E-7 f,
2 .28621210311945178607 E-5 f,
1 .26461541144692592338 E-3 f,
3 .59799365153615016266 E-2 f,
3 .44289899924628486886 E-1 f,
-5 .35327393233902768720 E-1 f
};
/* Chebyshev coefficients for exp(x) sqrt(x) K0(x)
* in the inverted interval [ 2 , infinity ] .
*
* lim ( x - > inf ) { exp ( x ) sqrt ( x ) K0 ( x ) } = sqrt ( pi / 2 ) .
*/
static float B[] = {
-1 .69753450938905987466 E-9 f,
8 .57403401741422608519 E-9 f,
-4 .66048989768794782956 E-8 f,
2 .76681363944501510342 E-7 f,
-1 .83175552271911948767 E-6 f,
1 .39498137188764993662 E-5 f,
-1 .28495495816278026384 E-4 f,
1 .56988388573005337491 E-3 f,
-3 .14481013119645005427 E-2 f,
2 .44030308206595545468 E0f
};
/* k0.c */
extern float MAXNUMF;
#ifdef ANSIC
float chbevlf(float , float *, int );
float expf(float ), i0f(float ), logf(float ), sqrtf(float );
#else
float chbevlf(), expf(), i0f(), logf(), sqrtf();
#endif
#ifdef ANSIC
float k0f( float xx )
#else
float k0f(xx)
double xx;
#endif
{
float x, y, z;
x = xx;
if ( x <= 0 .0 f )
{
mtherr( "k0f" , DOMAIN );
return ( MAXNUMF );
}
if ( x <= 2 .0 f )
{
y = x * x - 2 .0 f;
y = chbevlf( y, A, 7 ) - logf( 0 .5 f * x ) * i0f(x);
return ( y );
}
z = 8 .0 f/x - 2 .0 f;
y = expf(-x) * chbevlf( z, B, 10 ) / sqrtf(x);
return (y);
}
#ifdef ANSIC
float k0ef( float xx )
#else
float k0ef( xx )
double xx;
#endif
{
float x, y;
x = xx;
if ( x <= 0 .0 f )
{
mtherr( "k0ef" , DOMAIN );
return ( MAXNUMF );
}
if ( x <= 2 .0 f )
{
y = x * x - 2 .0 f;
y = chbevlf( y, A, 7 ) - logf( 0 .5 f * x ) * i0f(x);
return ( y * expf(x) );
}
y = chbevlf( 8 .0 f/x - 2 .0 f, B, 10 ) / sqrtf(x);
return (y);
}
Messung V0.5 in Prozent C=97 H=100 G=98
[zur Elbe Produktseite wechseln0.15QuellennavigatorsAnalyse erneut starten2026-09-28]
2026-10-10
Neuigkeiten
Aktuelles
Motto des Tages
Open Source Software
Jenseits des Üblichen ....
Besucherstatistik
Statistik
#Sources=1126864
#Domains=1897691