コード例 #1
0
ファイル: j0.c プロジェクト: CoryXie/nix-os
double
j0(double arg)
{
	double argsq, n, d;
	int i;

	if(arg < 0)
		arg = -arg;
	if(arg > 8) {
		asympt(arg);
		n = arg - pio4;
		return sqrt(tpi/arg)*(pzero*cos(n) - qzero*sin(n));
	}
	argsq = arg*arg;
	for(n=0,d=0,i=8;i>=0;i--) {
		n = n*argsq + p1[i];
		d = d*argsq + q1[i];
	}
	return n/d;
}
コード例 #2
0
ファイル: j1.c プロジェクト: LambdaCalculus379/SLS-1.02
double y1(double arg)
{
	double xsq, n, d, x;
	int i;

	x = arg;
	if(x <= 0.){
		return(-HUGE_VAL);
	}
	if(x > 8.){
		asympt(x);
		n = x - 3*pio4;
		return(sqrt(tpi/x)*(pzero*sin(n) + qzero*cos(n)));
	}
	xsq = x*x;
	for(n=0,d=0,i=9;i>=0;i--){
		n = n*xsq + p4[i];
		d = d*xsq + q4[i];
	}
	return(x*n/d + tpi*(j1(x)*log(x)-1./x));
}
コード例 #3
0
ファイル: j1.c プロジェクト: LambdaCalculus379/SLS-1.02
double j1(double arg)
{
	double xsq, n, d, x;
	int i;

	x = arg;
	if(x < 0.) x = -x;
	if(x > 8.){
		asympt(x);
		n = x - 3.*pio4;
		n = sqrt(tpi/x)*(pzero*cos(n) - qzero*sin(n));
		if(arg <0.) n = -n;
		return(n);
	}
	xsq = x*x;
	for(n=0,d=0,i=8;i>=0;i--){
		n = n*xsq + p1[i];
		d = d*xsq + q1[i];
	}
	return(arg*n/d);
}
コード例 #4
0
ファイル: j0.c プロジェクト: CoryXie/nix-os
double
y0(double arg)
{
	double argsq, n, d;
	int i;

	errno = 0;
	if(arg <= 0) {
		errno = EDOM;
		return(-HUGE_VAL);
	}
	if(arg > 8) {
		asympt(arg);
		n = arg - pio4;
		return sqrt(tpi/arg)*(pzero*sin(n) + qzero*cos(n));
	}
	argsq = arg*arg;
	for(n=0,d=0,i=8;i>=0;i--) {
		n = n*argsq + p4[i];
		d = d*argsq + q4[i];
	}
	return n/d + tpi*j0(arg)*log(arg);
}
コード例 #5
0
ファイル: j1.c プロジェクト: grobe0ba/plan9front
double
y1(double arg)
{
    double xsq, n, d, x;
    int i;

    errno = 0;
    x = arg;
    if(x <= 0) {
        errno = EDOM;
        return -HUGE_VAL;
    }
    if(x > 8) {
        asympt(x);
        n = x - 3*pio4;
        return sqrt(tpi/x)*(pzero*sin(n) + qzero*cos(n));
    }
    xsq = x*x;
    for(n=0,d=0,i=9; i>=0; i--) {
        n = n*xsq + p4[i];
        d = d*xsq + q4[i];
    }
    return x*n/d + tpi*(j1(x)*log(x)-1/x);
}