fix (magnitude +inf.0+inf.0i)
svn: r7759
This commit is contained in:
parent
1cf09bf71a
commit
416cffff77
|
@ -1356,6 +1356,14 @@
|
|||
(test 10 magnitude 0+10i)
|
||||
(test 141421.0 round (* 1e-295 (magnitude 1e300+1e300i)))
|
||||
(test 141421.0 round (* 1e+305 (magnitude 1e-300+1e-300i)))
|
||||
(test +inf.0 magnitude +inf.0+inf.0i)
|
||||
(test +inf.0 magnitude -inf.0-inf.0i)
|
||||
(test +inf.0 magnitude 1+inf.0i)
|
||||
(test +inf.0 magnitude +inf.0+1i)
|
||||
(test +inf.0 magnitude +inf.0+0.0i)
|
||||
(test +inf.0 magnitude 0.0+inf.0i)
|
||||
(test +nan.0 magnitude +nan.0+inf.0i)
|
||||
(test +nan.0 magnitude +inf.0+nan.0i)
|
||||
|
||||
(test 0 angle 1)
|
||||
(test 0 angle 1.0)
|
||||
|
|
|
@ -2209,6 +2209,18 @@ static Scheme_Object *magnitude(int argc, Scheme_Object *argv[])
|
|||
a[0] = i;
|
||||
return scheme_exact_to_inexact(1, a);
|
||||
}
|
||||
if (SCHEME_FLOATP(i)) {
|
||||
double d;
|
||||
d = SCHEME_FLOAT_VAL(i);
|
||||
if (MZ_IS_POS_INFINITY(d)) {
|
||||
if (SCHEME_FLOATP(r)) {
|
||||
d = SCHEME_FLOAT_VAL(r);
|
||||
if (MZ_IS_NAN(d))
|
||||
return scheme_nan_object;
|
||||
}
|
||||
return scheme_inf_object;
|
||||
}
|
||||
}
|
||||
q = scheme_bin_div(r, i);
|
||||
q = scheme_bin_plus(scheme_make_integer(1),
|
||||
scheme_bin_mult(q, q));
|
||||
|
|
Loading…
Reference in New Issue
Block a user