|
28 | 28 | (define (ival-add! out x y) |
29 | 29 | (match-define (ival (endpoint xlo xlo!) (endpoint xhi xhi!) xerr? xerr) x) |
30 | 30 | (match-define (ival (endpoint ylo ylo!) (endpoint yhi yhi!) yerr? yerr) y) |
31 | | - (define-values (lo-val lo-imm?) (eplinear! (ival-lo-val out) mpfr-add! xlo xlo! ylo ylo! 'down)) |
32 | | - (define-values (hi-val hi-imm?) (eplinear! (ival-hi-val out) mpfr-add! xhi xhi! yhi yhi! 'up)) |
33 | | - (ival (endpoint lo-val lo-imm?) (endpoint hi-val hi-imm?) (or xerr? yerr?) (or xerr yerr))) |
| 31 | + (define-values (lo lo!) (eplinear! (ival-lo-val out) mpfr-add! xlo xlo! ylo ylo! 'down)) |
| 32 | + (define-values (hi hi!) (eplinear! (ival-hi-val out) mpfr-add! xhi xhi! yhi yhi! 'up)) |
| 33 | + (ival (endpoint lo lo!) (endpoint hi hi!) (or xerr? yerr?) (or xerr yerr))) |
34 | 34 |
|
35 | 35 | (define (ival-add x y) |
36 | 36 | (ival-add! (new-ival (bf-precision)) x y)) |
37 | 37 |
|
38 | 38 | (define (ival-sub! out x y) |
39 | 39 | (match-define (ival (endpoint xlo xlo!) (endpoint xhi xhi!) xerr? xerr) x) |
40 | 40 | (match-define (ival (endpoint ylo ylo!) (endpoint yhi yhi!) yerr? yerr) y) |
41 | | - (define-values (lo-val lo-imm?) (eplinear! (ival-lo-val out) mpfr-sub! xlo xlo! yhi yhi! 'down)) |
42 | | - (define-values (hi-val hi-imm?) (eplinear! (ival-hi-val out) mpfr-sub! xhi xhi! ylo ylo! 'up)) |
43 | | - (ival (endpoint lo-val lo-imm?) (endpoint hi-val hi-imm?) (or xerr? yerr?) (or xerr yerr))) |
| 41 | + (define-values (lo lo!) (eplinear! (ival-lo-val out) mpfr-sub! xlo xlo! yhi yhi! 'down)) |
| 42 | + (define-values (hi hi!) (eplinear! (ival-hi-val out) mpfr-sub! xhi xhi! ylo ylo! 'up)) |
| 43 | + (ival (endpoint lo lo!) (endpoint hi hi!) (or xerr? yerr?) (or xerr yerr))) |
44 | 44 |
|
45 | 45 | (define (ival-sub x y) |
46 | 46 | (ival-sub! (new-ival (bf-precision)) x y)) |
|
161 | 161 | (define err (or (ival-err x) (ival-err y))) |
162 | 162 | (match-define (ival (endpoint xlo xlo!) (endpoint xhi xhi!) _ _) (ival-exact-fabs x)) |
163 | 163 | (match-define (ival (endpoint ylo ylo!) (endpoint yhi yhi!) _ _) (ival-exact-fabs y)) |
164 | | - (define-values (lo-val lo-imm?) (eplinear! (ival-lo-val out) mpfr-hypot! xlo xlo! ylo ylo! 'down)) |
165 | | - (define-values (hi-val hi-imm?) (eplinear! (ival-hi-val out) mpfr-hypot! xhi xhi! yhi yhi! 'up)) |
166 | | - (ival (endpoint lo-val lo-imm?) (endpoint hi-val hi-imm?) err? err)) |
| 164 | + (define-values (lo lo!) (eplinear! (ival-lo-val out) mpfr-hypot! xlo xlo! ylo ylo! 'down)) |
| 165 | + (define-values (hi hi!) (eplinear! (ival-hi-val out) mpfr-hypot! xhi xhi! yhi yhi! 'up)) |
| 166 | + (ival (endpoint lo lo!) (endpoint hi hi!) err? err)) |
167 | 167 |
|
168 | 168 | (define (ival-hypot x y) |
169 | 169 | (ival-hypot! (new-ival (bf-precision)) x y)) |
0 commit comments