We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent 6b1a5a9 commit 907d03aCopy full SHA for 907d03a
ops/core.rkt
@@ -105,6 +105,7 @@
105
ival-==
106
ival-!=
107
ival-if
108
+ ival-mobilize
109
ival-and
110
ival-or
111
ival-not
ops/pow.rkt
@@ -161,4 +161,9 @@
161
[(or (= (mpfr-sign (ival-lo-val x)) 1) (bfzero? (ival-lo-val x))) (ival-pow-pos x y)]
162
[else
163
(define-values (neg pos) (split-ival x 0.bf))
164
- (ival-union (ival-pow-neg neg y) (ival-pow-pos pos y))]))
+ (define out (ival-union (ival-pow-neg neg y) (ival-pow-pos pos y)))
165
+ ;; If x straddles 0 with movable endpoints, a refinement can drop one
166
+ ;; branch entirely, so branch-derived endpoint fixedness is not stable.
167
+ (if (and (ival-lo-fixed? x) (ival-hi-fixed? x))
168
+ out
169
+ (ival-mobilize out))]))
0 commit comments