mirror of
https://github.com/ashinn/chibi-scheme.git
synced 2025-05-22 07:09:18 +02:00
parent
8f956416fc
commit
7dfad8a293
1 changed files with 6 additions and 3 deletions
9
bignum.c
9
bignum.c
|
@ -562,8 +562,9 @@ sexp sexp_ratio_add (sexp ctx, sexp a, sexp b) {
|
||||||
num = sexp_add(ctx, num, den);
|
num = sexp_add(ctx, num, den);
|
||||||
den = sexp_mul(ctx, sexp_ratio_denominator(a), sexp_ratio_denominator(b));
|
den = sexp_mul(ctx, sexp_ratio_denominator(a), sexp_ratio_denominator(b));
|
||||||
res = sexp_make_ratio(ctx, num, den);
|
res = sexp_make_ratio(ctx, num, den);
|
||||||
|
res = sexp_ratio_normalize(ctx, res, SEXP_FALSE);
|
||||||
sexp_gc_release3(ctx);
|
sexp_gc_release3(ctx);
|
||||||
return sexp_ratio_normalize(ctx, res, SEXP_FALSE);
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
sexp sexp_ratio_mul (sexp ctx, sexp a, sexp b) {
|
sexp sexp_ratio_mul (sexp ctx, sexp a, sexp b) {
|
||||||
|
@ -572,8 +573,9 @@ sexp sexp_ratio_mul (sexp ctx, sexp a, sexp b) {
|
||||||
num = sexp_mul(ctx, sexp_ratio_numerator(a), sexp_ratio_numerator(b));
|
num = sexp_mul(ctx, sexp_ratio_numerator(a), sexp_ratio_numerator(b));
|
||||||
den = sexp_mul(ctx, sexp_ratio_denominator(a), sexp_ratio_denominator(b));
|
den = sexp_mul(ctx, sexp_ratio_denominator(a), sexp_ratio_denominator(b));
|
||||||
res = sexp_make_ratio(ctx, num, den);
|
res = sexp_make_ratio(ctx, num, den);
|
||||||
|
res = sexp_ratio_normalize(ctx, res, SEXP_FALSE);
|
||||||
sexp_gc_release3(ctx);
|
sexp_gc_release3(ctx);
|
||||||
return sexp_ratio_normalize(ctx, res, SEXP_FALSE);
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
sexp sexp_ratio_div (sexp ctx, sexp a, sexp b) {
|
sexp sexp_ratio_div (sexp ctx, sexp a, sexp b) {
|
||||||
|
@ -582,8 +584,9 @@ sexp sexp_ratio_div (sexp ctx, sexp a, sexp b) {
|
||||||
num = sexp_mul(ctx, sexp_ratio_numerator(a), sexp_ratio_denominator(b));
|
num = sexp_mul(ctx, sexp_ratio_numerator(a), sexp_ratio_denominator(b));
|
||||||
den = sexp_mul(ctx, sexp_ratio_denominator(a), sexp_ratio_numerator(b));
|
den = sexp_mul(ctx, sexp_ratio_denominator(a), sexp_ratio_numerator(b));
|
||||||
res = sexp_make_ratio(ctx, num, den);
|
res = sexp_make_ratio(ctx, num, den);
|
||||||
|
res = sexp_ratio_normalize(ctx, res, SEXP_FALSE);
|
||||||
sexp_gc_release3(ctx);
|
sexp_gc_release3(ctx);
|
||||||
return sexp_ratio_normalize(ctx, res, SEXP_FALSE);
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
sexp sexp_ratio_compare (sexp ctx, sexp a, sexp b) {
|
sexp sexp_ratio_compare (sexp ctx, sexp a, sexp b) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue