2819 |
{ |
{ |
2820 |
scm_i_fraction_reduce (x); |
scm_i_fraction_reduce (x); |
2821 |
scm_i_fraction_reduce (y); |
scm_i_fraction_reduce (y); |
2822 |
return SCM_BOOL (scm_equal_p (SCM_FRACTION_NUMERATOR (x), SCM_FRACTION_NUMERATOR (y)) |
if (SCM_FALSEP (scm_equal_p (SCM_FRACTION_NUMERATOR (x), |
2823 |
&& scm_equal_p (SCM_FRACTION_DENOMINATOR (x), SCM_FRACTION_DENOMINATOR (y))); |
SCM_FRACTION_NUMERATOR (y))) |
2824 |
|
|| SCM_FALSEP (scm_equal_p (SCM_FRACTION_DENOMINATOR (x), |
2825 |
|
SCM_FRACTION_DENOMINATOR (y)))) |
2826 |
|
return SCM_BOOL_F; |
2827 |
|
else |
2828 |
|
return SCM_BOOL_T; |
2829 |
} |
} |
2830 |
|
|
2831 |
|
|
5222 |
SCM_FALSEP |
SCM_FALSEP |
5223 |
(scm_gr_p (scm_abs (scm_difference (ex, scm_divide (a, b))), |
(scm_gr_p (scm_abs (scm_difference (ex, scm_divide (a, b))), |
5224 |
err))) /* abs(x-a/b) <= err */ |
err))) /* abs(x-a/b) <= err */ |
5225 |
return scm_sum (int_part, scm_divide (a, b)); /* int_part+a/b */ |
{ |
5226 |
|
SCM res = scm_sum (int_part, scm_divide (a, b)); |
5227 |
|
if (SCM_FALSEP (scm_exact_p (x)) |
5228 |
|
|| SCM_FALSEP (scm_exact_p (err))) |
5229 |
|
return scm_exact_to_inexact (res); |
5230 |
|
else |
5231 |
|
return res; |
5232 |
|
} |
5233 |
rx = scm_divide (scm_difference (rx, tt), /* rx = 1/(rx - tt) */ |
rx = scm_divide (scm_difference (rx, tt), /* rx = 1/(rx - tt) */ |
5234 |
SCM_UNDEFINED); |
SCM_UNDEFINED); |
5235 |
tt = scm_floor (rx); /* tt = floor (rx) */ |
tt = scm_floor (rx); /* tt = floor (rx) */ |