/* *j1(x)=sqrt(2/(pi*x))*(p1(x)*cos(x-3pi/4)-q1(x)*sin(x-3pi/4)) *y1(x)=sqrt(2/(pi*x))*(p1(x)*sin(x-3pi/4)+q1(x)*cos(x-3pi/4)) * *sin(x-3pi/4)=-(sin(x)+cos(x))/sqrt(2) *cos(x-3pi/4)=(sin(x)-cos(x))/sqrt(2) *sin(x)+-cos(x)=-cos(2x)/(sin(x)-+cos(x))
*/
s = sin(x); if y1 {
s = -s;
}
c = cos(x);
cc = s - c; if ix < 0x7fe00000 { /* avoid overflow in 2*x */
ss = -s - c;
z = cos(2.0 * x); if s * c > 0.0 {
cc = z / ss;
} else {
ss = z / cc;
} if ix < 0x48000000 { if y1 {
ss = -ss;
}
cc = pone(x) * cc - qone(x) * ss;
}
} if sign {
cc = -cc;
} return INVSQRTPI * cc / sqrt(x);
}
pubfn j1(x: f64) -> f64 { letmut z: f64; let r: f64; let s: f64; letmut ix: u32; let sign: bool;
ix = get_high_word(x);
sign = (ix >> 31) != 0;
ix &= 0x7fffffff; if ix >= 0x7ff00000 { return1.0 / (x * x);
} if ix >= 0x40000000 { /* |x| >= 2 */ return common(ix, fabs(x), false, sign);
} if ix >= 0x38000000 { /* |x| >= 2**-127 */
z = x * x;
r = z * (R00 + z * (R01 + z * (R02 + z * R03)));
s = 1.0 + z * (S01 + z * (S02 + z * (S03 + z * (S04 + z * S05))));
z = r / s;
} else { /* avoid underflow, raise inexact if x!=0 */
z = x;
} return (0.5 + z) * x;
}
pubfn y1(x: f64) -> f64 { let z: f64; let u: f64; let v: f64; let ix: u32; let lx: u32;
ix = get_high_word(x);
lx = get_low_word(x);
/* y1(nan)=nan, y1(<0)=nan, y1(0)=-inf, y1(inf)=0 */ if (ix << 1 | lx) == 0 { return -1.0 / 0.0;
} if (ix >> 31) != 0 { return0.0 / 0.0;
} if ix >= 0x7ff00000 { return1.0 / x;
}
if ix >= 0x40000000 { /* x >= 2 */ return common(ix, x, true, false);
} if ix < 0x3c900000 { /* x < 2**-54 */ return -TPI / x;
}
z = x * x;
u = U0[0] + z * (U0[1] + z * (U0[2] + z * (U0[3] + z * U0[4])));
v = 1.0 + z * (V0[0] + z * (V0[1] + z * (V0[2] + z * (V0[3] + z * V0[4])))); return x * (u / v) + TPI * (j1(x) * log(x) - 1.0 / x);
}
/* For x >= 8, the asymptotic expansions of pone is *1+15/128s^2-4725/2^15s^4-...,wheres=1/x. *Weapproximateponeby *pone(x)=1+(R/S) *whereR=pr0+pr1*s^2+pr2*s^4+...+pr5*s^10 *S=1+ps0*s^2+...+ps4*s^10 *and *|pone(x)-1-R/S|<=2**(-60.06)
*/
fn pone(x: f64) -> f64 { let p: &[f64; 6]; let q: &[f64; 5]; let z: f64; let r: f64; let s: f64; letmut ix: u32;
ix = get_high_word(x);
ix &= 0x7fffffff; if ix >= 0x40200000 {
p = &PR8;
q = &PS8;
} elseif ix >= 0x40122E8B {
p = &PR5;
q = &PS5;
} elseif ix >= 0x4006DB6D {
p = &PR3;
q = &PS3;
} else /*ix >= 0x40000000*/
{
p = &PR2;
q = &PS2;
}
z = 1.0 / (x * x);
r = p[0] + z * (p[1] + z * (p[2] + z * (p[3] + z * (p[4] + z * p[5]))));
s = 1.0 + z * (q[0] + z * (q[1] + z * (q[2] + z * (q[3] + z * q[4])))); return1.0 + r / s;
}
/* For x >= 8, the asymptotic expansions of qone is *3/8s-105/1024s^3-...,wheres=1/x. *Weapproximateponeby *qone(x)=s*(0.375+(R/S)) *whereR=qr1*s^2+qr2*s^4+...+qr5*s^10 *S=1+qs1*s^2+...+qs6*s^12 *and *|qone(x)/s-0.375-R/S|<=2**(-61.13)
*/
fn qone(x: f64) -> f64 { let p: &[f64; 6]; let q: &[f64; 6]; let s: f64; let r: f64; let z: f64; letmut ix: u32;
ix = get_high_word(x);
ix &= 0x7fffffff; if ix >= 0x40200000 {
p = &QR8;
q = &QS8;
} elseif ix >= 0x40122E8B {
p = &QR5;
q = &QS5;
} elseif ix >= 0x4006DB6D {
p = &QR3;
q = &QS3;
} else /*ix >= 0x40000000*/
{
p = &QR2;
q = &QS2;
}
z = 1.0 / (x * x);
r = p[0] + z * (p[1] + z * (p[2] + z * (p[3] + z * (p[4] + z * p[5]))));
s = 1.0 + z * (q[0] + z * (q[1] + z * (q[2] + z * (q[3] + z * (q[4] + z * q[5]))))); return (0.375 + r / s) / x;
}
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.13 Sekunden
(vorverarbeitet am 2026-06-21)
¤
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.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.