/* k1f.c
*
* Modified Bessel function , third kind , order one
*
*
*
* SYNOPSIS :
*
* float x , y , k1f ( ) ;
*
* y = k1f ( x ) ;
*
*
*
* DESCRIPTION :
*
* Computes the modified Bessel function of the third kind
* of order one of the argument .
*
* The range is partitioned into the two intervals [ 0 , 2 ] and
* ( 2 , infinity ) . Chebyshev polynomial expansions are employed
* in each interval .
*
*
*
* ACCURACY :
*
* Relative error :
* arithmetic domain # trials peak rms
* IEEE 0 , 30 30000 4 . 6 e - 7 7 . 6 e - 8
*
* ERROR MESSAGES :
*
* message condition value returned
* k1 domain x < = 0 MAXNUM
*
*/
/* k1ef.c
*
* Modified Bessel function , third kind , order one ,
* exponentially scaled
*
*
*
* SYNOPSIS :
*
* float x , y , k1ef ( ) ;
*
* y = k1ef ( x ) ;
*
*
*
* DESCRIPTION :
*
* Returns exponentially scaled modified Bessel function
* of the third kind of order one of the argument :
*
* k1e ( x ) = exp ( x ) * k1 ( x ) .
*
*
*
* ACCURACY :
*
* Relative error :
* arithmetic domain # trials peak rms
* IEEE 0 , 30 30000 4 . 9 e - 7 6 . 7 e - 8
* See k1 ( ) .
*
*/
/*
Cephes Math Library Release 2 . 2 : June , 1992
Copyright 1984 , 1987 , 1992 by Stephen L . Moshier
Direct inquiries to 30 Frost Street , Cambridge , MA 02140
*/
#include "mconf.h"
/* Chebyshev coefficients for x(K1(x) - log(x/2) I1(x))
* in the interval [ 0 , 2 ] .
*
* lim ( x - > 0 ) { x ( K1 ( x ) - log ( x / 2 ) I1 ( x ) ) } = 1 .
*/
#define MINNUMF 6 .0 e-39
static float A[] =
{
-2 .21338763073472585583 E-8 f,
-2 .43340614156596823496 E-6 f,
-1 .73028895751305206302 E-4 f,
-6 .97572385963986435018 E-3 f,
-1 .22611180822657148235 E-1 f,
-3 .53155960776544875667 E-1 f,
1 .52530022733894777053 E0f
};
/* Chebyshev coefficients for exp(x) sqrt(x) K1(x)
* in the interval [ 2 , infinity ] .
*
* lim ( x - > inf ) { exp ( x ) sqrt ( x ) K1 ( x ) } = sqrt ( pi / 2 ) .
*/
static float B[] =
{
2 .01504975519703286596 E-9 f,
-1 .03457624656780970260 E-8 f,
5 .74108412545004946722 E-8 f,
-3 .50196060308781257119 E-7 f,
2 .40648494783721712015 E-6 f,
-1 .93619797416608296024 E-5 f,
1 .95215518471351631108 E-4 f,
-2 .85781685962277938680 E-3 f,
1 .03923736576817238437 E-1 f,
2 .72062619048444266945 E0f
};
extern float MAXNUMF;
#ifdef ANSIC
float chbevlf(float , float *, int );
float expf(float ), i1f(float ), logf(float ), sqrtf(float );
#else
float chbevlf(), expf(), i1f(), logf(), sqrtf();
#endif
#ifdef ANSIC
float k1f(float xx)
#else
float k1f(xx)
double xx;
#endif
{
float x, y;
x = xx;
if ( x <= MINNUMF )
{
mtherr( "k1f" , DOMAIN );
return ( MAXNUMF );
}
if ( x <= 2 .0 f )
{
y = x * x - 2 .0 f;
y = logf( 0 .5 f * x ) * i1f(x) + chbevlf( y, A, 7 ) / x;
return ( y );
}
return ( expf(-x) * chbevlf( 8 .0 f/x - 2 .0 f, B, 10 ) / sqrtf(x) );
}
#ifdef ANSIC
float k1ef( float xx )
#else
float k1ef( xx )
double xx;
#endif
{
float x, y;
x = xx;
if ( x <= 0 .0 f )
{
mtherr( "k1ef" , DOMAIN );
return ( MAXNUMF );
}
if ( x <= 2 .0 f )
{
y = x * x - 2 .0 f;
y = logf( 0 .5 f * x ) * i1f(x) + chbevlf( y, A, 7 ) / x;
return ( y * expf(x) );
}
return ( chbevlf( 8 .0 f/x - 2 .0 f, B, 10 ) / sqrtf(x) );
}
Messung V0.5 in Prozent C=98 H=100 G=98
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.11Bemerkung:
(vorverarbeitet am 2026-06-14)
¤
*Bot Zugriff