Time bar (total: 1.4s)
1× | search |
Probability | Valid | Unknown | Precondition | Infinite | Domain | Can't | Iter |
---|---|---|---|---|---|---|---|
0% | 0% | 99.8% | 0.2% | 0% | 0% | 0% | 0 |
100% | 99.8% | 0% | 0.2% | 0% | 0% | 0% | 1 |
Compiled 9 to 9 computations (0% saved)
516.0ms | 8 256× | 0 | valid |
ival-mult
: 155.0ms (74% of total)ival-add
: 50.0ms (23.9% of total)ival-assert
: 3.0ms (1.4% of total)adjust
: 2.0ms (1% of total)Ground Truth | Overpredictions | Example | Underpredictions | Example | Subexpression |
---|---|---|---|---|---|
2 | 0 | - | 0 | - | (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) |
0 | 0 | - | 0 | - | (*.f64 x.im y.re) |
0 | 0 | - | 0 | - | x.re |
0 | 0 | - | 0 | - | y.re |
0 | 0 | - | 0 | - | (*.f64 x.re y.im) |
0 | 0 | - | 0 | - | y.im |
0 | 0 | - | 0 | - | x.im |
Operator | Subexpression | Explanation | Count | |
---|---|---|---|---|
+.f64 | (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) | nan-rescue | 2 | 0 |
↳ | (*.f64 x.re y.im) | overflow | 39 | |
↳ | (*.f64 x.im y.re) | overflow | 36 |
Predicted + | Predicted - | |
---|---|---|
+ | 2 | 0 |
- | 0 | 254 |
Predicted + | Predicted Maybe | Predicted - | |
---|---|---|---|
+ | 2 | 0 | 0 |
- | 0 | 0 | 254 |
number | freq |
---|---|
0 | 254 |
1 | 2 |
Predicted + | Predicted Maybe | Predicted - | |
---|---|---|---|
+ | 1 | 0 | 0 |
- | 0 | 0 | 0 |
28.0ms | 512× | 0 | valid |
Compiled 45 to 25 computations (44.4% saved)
ival-mult
: 7.0ms (69.8% of total)ival-add
: 2.0ms (19.9% of total)ival-true
: 0.0ms (0% of total)adjust
: 0.0ms (0% of total)ival-assert
: 0.0ms (0% of total)Useful iterations: 0 (0.0ms)
Iter | Nodes | Cost |
---|---|---|
0 | 37 | 109 |
1 | 77 | 105 |
2 | 147 | 105 |
3 | 225 | 105 |
4 | 244 | 105 |
5 | 250 | 105 |
0 | 7 | 7 |
0 | 10 | 7 |
1 | 16 | 7 |
2 | 30 | 7 |
3 | 50 | 7 |
4 | 71 | 7 |
5 | 75 | 7 |
6 | 78 | 7 |
0 | 78 | 7 |
1× | iter limit |
1× | saturated |
1× | iter limit |
1× | saturated |
Inputs |
---|
(+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) |
Outputs |
---|
(+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) |
(+.f64 (*.f64 y.re x.im) (*.f64 y.im x.re)) |
(sort x.re y.im)
(sort x.im y.re)
Compiled 7 to 7 computations (0% saved)
Compiled 0 to 4 computations (-∞% saved)
Status | Accuracy | Program |
---|---|---|
▶ | 99.2% | (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) |
Compiled 7 to 7 computations (0% saved)
Inputs |
---|
(+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) |
(*.f64 x.re y.im) |
x.re |
y.im |
(*.f64 x.im y.re) |
x.im |
y.re |
Outputs |
---|
#s(approx (+ (* x.re y.im) (* x.im y.re)) #s(hole binary64 (* x.im y.re))) |
#s(approx (+ (* x.re y.im) (* x.im y.re)) #s(hole binary64 (+ (* x.im y.re) (* x.re y.im)))) |
#s(approx (* x.re y.im) #s(hole binary64 (* x.re y.im))) |
#s(approx x.re #s(hole binary64 x.re)) |
#s(approx (+ (* x.re y.im) (* x.im y.re)) #s(hole binary64 (* x.re y.im))) |
#s(approx (+ (* x.re y.im) (* x.im y.re)) #s(hole binary64 (* x.re (+ y.im (/ (* x.im y.re) x.re))))) |
#s(approx (+ (* x.re y.im) (* x.im y.re)) #s(hole binary64 (* -1 (* x.re (+ (* -1 y.im) (* -1 (/ (* x.im y.re) x.re))))))) |
#s(approx (* x.im y.re) #s(hole binary64 (* x.im y.re))) |
#s(approx x.im #s(hole binary64 x.im)) |
#s(approx (+ (* x.re y.im) (* x.im y.re)) #s(hole binary64 (* x.im (+ y.re (/ (* x.re y.im) x.im))))) |
#s(approx (+ (* x.re y.im) (* x.im y.re)) #s(hole binary64 (* -1 (* x.im (+ (* -1 y.re) (* -1 (/ (* x.re y.im) x.im))))))) |
#s(approx y.re #s(hole binary64 y.re)) |
#s(approx (+ (* x.re y.im) (* x.im y.re)) #s(hole binary64 (* y.re (+ x.im (/ (* x.re y.im) y.re))))) |
#s(approx (+ (* x.re y.im) (* x.im y.re)) #s(hole binary64 (* -1 (* y.re (+ (* -1 x.im) (* -1 (/ (* x.re y.im) y.re))))))) |
#s(approx y.im #s(hole binary64 y.im)) |
#s(approx (+ (* x.re y.im) (* x.im y.re)) #s(hole binary64 (* y.im (+ x.re (/ (* x.im y.re) y.im))))) |
#s(approx (+ (* x.re y.im) (* x.im y.re)) #s(hole binary64 (* -1 (* y.im (+ (* -1 x.re) (* -1 (/ (* x.im y.re) y.im))))))) |
12 calls:
Time | Variable | Point | Expression | |
---|---|---|---|---|
1.0ms | y.re | @ | -inf | ((+ (* x.re y.im) (* x.im y.re)) (* x.re y.im) x.re y.im (* x.im y.re) x.im y.re) |
1.0ms | x.re | @ | -inf | ((+ (* x.re y.im) (* x.im y.re)) (* x.re y.im) x.re y.im (* x.im y.re) x.im y.re) |
1.0ms | x.re | @ | inf | ((+ (* x.re y.im) (* x.im y.re)) (* x.re y.im) x.re y.im (* x.im y.re) x.im y.re) |
1.0ms | y.im | @ | -inf | ((+ (* x.re y.im) (* x.im y.re)) (* x.re y.im) x.re y.im (* x.im y.re) x.im y.re) |
1.0ms | x.im | @ | -inf | ((+ (* x.re y.im) (* x.im y.re)) (* x.re y.im) x.re y.im (* x.im y.re) x.im y.re) |
Useful iterations: 0 (0.0ms)
Iter | Nodes | Cost |
---|---|---|
0 | 61 | 240 |
0 | 63 | 216 |
1 | 315 | 216 |
2 | 2542 | 216 |
0 | 8382 | 216 |
1× | iter limit |
1× | node limit |
1× | iter limit |
Inputs |
---|
(+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) |
(*.f64 x.re y.im) |
x.re |
y.im |
(*.f64 x.im y.re) |
x.im |
y.re |
#s(approx (+ (* x.re y.im) (* x.im y.re)) #s(hole binary64 (* x.im y.re))) |
#s(approx (+ (* x.re y.im) (* x.im y.re)) #s(hole binary64 (+ (* x.im y.re) (* x.re y.im)))) |
#s(approx (* x.re y.im) #s(hole binary64 (* x.re y.im))) |
#s(approx x.re #s(hole binary64 x.re)) |
#s(approx (+ (* x.re y.im) (* x.im y.re)) #s(hole binary64 (* x.re y.im))) |
#s(approx (+ (* x.re y.im) (* x.im y.re)) #s(hole binary64 (* x.re (+ y.im (/ (* x.im y.re) x.re))))) |
#s(approx (+ (* x.re y.im) (* x.im y.re)) #s(hole binary64 (* -1 (* x.re (+ (* -1 y.im) (* -1 (/ (* x.im y.re) x.re))))))) |
#s(approx (* x.im y.re) #s(hole binary64 (* x.im y.re))) |
#s(approx x.im #s(hole binary64 x.im)) |
#s(approx (+ (* x.re y.im) (* x.im y.re)) #s(hole binary64 (* x.im (+ y.re (/ (* x.re y.im) x.im))))) |
#s(approx (+ (* x.re y.im) (* x.im y.re)) #s(hole binary64 (* -1 (* x.im (+ (* -1 y.re) (* -1 (/ (* x.re y.im) x.im))))))) |
#s(approx y.re #s(hole binary64 y.re)) |
#s(approx (+ (* x.re y.im) (* x.im y.re)) #s(hole binary64 (* y.re (+ x.im (/ (* x.re y.im) y.re))))) |
#s(approx (+ (* x.re y.im) (* x.im y.re)) #s(hole binary64 (* -1 (* y.re (+ (* -1 x.im) (* -1 (/ (* x.re y.im) y.re))))))) |
#s(approx y.im #s(hole binary64 y.im)) |
#s(approx (+ (* x.re y.im) (* x.im y.re)) #s(hole binary64 (* y.im (+ x.re (/ (* x.im y.re) y.im))))) |
#s(approx (+ (* x.re y.im) (* x.im y.re)) #s(hole binary64 (* -1 (* y.im (+ (* -1 x.re) (* -1 (/ (* x.im y.re) y.im))))))) |
Outputs |
---|
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 y.re x.im) #s(literal 3 binary64)) (pow.f64 (*.f64 y.im x.re) #s(literal 3 binary64)))) (neg.f64 (+.f64 (pow.f64 (*.f64 y.re x.im) #s(literal 2 binary64)) (+.f64 (pow.f64 (*.f64 y.im x.re) #s(literal 2 binary64)) (*.f64 (*.f64 y.re x.im) (*.f64 (neg.f64 x.re) y.im)))))) |
(/.f64 (neg.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 y.im x.re) #s(literal 2 binary64)) (pow.f64 (*.f64 y.re x.im) #s(literal 2 binary64))))) (neg.f64 (neg.f64 (-.f64 (*.f64 y.im x.re) (*.f64 y.re x.im))))) |
(/.f64 (neg.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 y.re x.im) #s(literal 2 binary64)) (pow.f64 (*.f64 y.im x.re) #s(literal 2 binary64))))) (neg.f64 (neg.f64 (-.f64 (*.f64 y.re x.im) (*.f64 y.im x.re))))) |
(/.f64 (neg.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 y.im x.re) #s(literal 3 binary64)) (pow.f64 (*.f64 y.re x.im) #s(literal 3 binary64))))) (neg.f64 (neg.f64 (+.f64 (*.f64 (*.f64 y.re x.im) (-.f64 (*.f64 y.re x.im) (*.f64 y.im x.re))) (pow.f64 (*.f64 y.im x.re) #s(literal 2 binary64)))))) |
(/.f64 (neg.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 y.im x.re) #s(literal 3 binary64)) (pow.f64 (*.f64 y.re x.im) #s(literal 3 binary64))))) (neg.f64 (neg.f64 (+.f64 (*.f64 (*.f64 y.im x.re) (-.f64 (*.f64 y.im x.re) (*.f64 y.re x.im))) (pow.f64 (*.f64 y.re x.im) #s(literal 2 binary64)))))) |
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 y.im x.re) #s(literal 3 binary64)) (pow.f64 (*.f64 y.re x.im) #s(literal 3 binary64)))) (neg.f64 (+.f64 (pow.f64 (*.f64 y.im x.re) #s(literal 2 binary64)) (+.f64 (pow.f64 (*.f64 y.re x.im) #s(literal 2 binary64)) (*.f64 (*.f64 y.im x.re) (*.f64 (neg.f64 x.im) y.re)))))) |
(/.f64 (-.f64 (*.f64 (pow.f64 (*.f64 y.im x.re) #s(literal 2 binary64)) (-.f64 (*.f64 y.im x.re) (*.f64 y.re x.im))) (*.f64 (-.f64 (*.f64 y.im x.re) (*.f64 y.re x.im)) (pow.f64 (*.f64 y.re x.im) #s(literal 2 binary64)))) (*.f64 (-.f64 (*.f64 y.im x.re) (*.f64 y.re x.im)) (-.f64 (*.f64 y.im x.re) (*.f64 y.re x.im)))) |
(/.f64 (-.f64 (*.f64 (pow.f64 (*.f64 y.re x.im) #s(literal 2 binary64)) (-.f64 (*.f64 y.re x.im) (*.f64 y.im x.re))) (*.f64 (-.f64 (*.f64 y.re x.im) (*.f64 y.im x.re)) (pow.f64 (*.f64 y.im x.re) #s(literal 2 binary64)))) (*.f64 (-.f64 (*.f64 y.re x.im) (*.f64 y.im x.re)) (-.f64 (*.f64 y.re x.im) (*.f64 y.im x.re)))) |
(/.f64 (+.f64 (*.f64 (pow.f64 (*.f64 y.im x.re) #s(literal 3 binary64)) (+.f64 (*.f64 (*.f64 y.re x.im) (-.f64 (*.f64 y.re x.im) (*.f64 y.im x.re))) (pow.f64 (*.f64 y.im x.re) #s(literal 2 binary64)))) (*.f64 (+.f64 (*.f64 (*.f64 y.re x.im) (-.f64 (*.f64 y.re x.im) (*.f64 y.im x.re))) (pow.f64 (*.f64 y.im x.re) #s(literal 2 binary64))) (pow.f64 (*.f64 y.re x.im) #s(literal 3 binary64)))) (*.f64 (+.f64 (*.f64 (*.f64 y.re x.im) (-.f64 (*.f64 y.re x.im) (*.f64 y.im x.re))) (pow.f64 (*.f64 y.im x.re) #s(literal 2 binary64))) (+.f64 (*.f64 (*.f64 y.re x.im) (-.f64 (*.f64 y.re x.im) (*.f64 y.im x.re))) (pow.f64 (*.f64 y.im x.re) #s(literal 2 binary64))))) |
(/.f64 (+.f64 (*.f64 (pow.f64 (*.f64 y.re x.im) #s(literal 3 binary64)) (+.f64 (*.f64 (*.f64 y.im x.re) (-.f64 (*.f64 y.im x.re) (*.f64 y.re x.im))) (pow.f64 (*.f64 y.re x.im) #s(literal 2 binary64)))) (*.f64 (+.f64 (*.f64 (*.f64 y.im x.re) (-.f64 (*.f64 y.im x.re) (*.f64 y.re x.im))) (pow.f64 (*.f64 y.re x.im) #s(literal 2 binary64))) (pow.f64 (*.f64 y.im x.re) #s(literal 3 binary64)))) (*.f64 (+.f64 (*.f64 (*.f64 y.im x.re) (-.f64 (*.f64 y.im x.re) (*.f64 y.re x.im))) (pow.f64 (*.f64 y.re x.im) #s(literal 2 binary64))) (+.f64 (*.f64 (*.f64 y.im x.re) (-.f64 (*.f64 y.im x.re) (*.f64 y.re x.im))) (pow.f64 (*.f64 y.re x.im) #s(literal 2 binary64))))) |
(/.f64 (-.f64 (pow.f64 (*.f64 y.re x.im) #s(literal 3 binary64)) (pow.f64 (*.f64 y.im x.re) #s(literal 3 binary64))) (+.f64 (pow.f64 (*.f64 y.re x.im) #s(literal 2 binary64)) (+.f64 (pow.f64 (*.f64 y.im x.re) #s(literal 2 binary64)) (*.f64 (*.f64 y.re x.im) (*.f64 (neg.f64 x.re) y.im))))) |
(/.f64 (-.f64 (pow.f64 (*.f64 y.im x.re) #s(literal 3 binary64)) (pow.f64 (*.f64 y.re x.im) #s(literal 3 binary64))) (+.f64 (pow.f64 (*.f64 y.im x.re) #s(literal 2 binary64)) (+.f64 (pow.f64 (*.f64 y.re x.im) #s(literal 2 binary64)) (*.f64 (*.f64 y.im x.re) (*.f64 (neg.f64 x.im) y.re))))) |
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 y.im x.re) #s(literal 2 binary64)) (pow.f64 (*.f64 y.re x.im) #s(literal 2 binary64)))) (neg.f64 (-.f64 (*.f64 y.im x.re) (*.f64 y.re x.im)))) |
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 y.re x.im) #s(literal 2 binary64)) (pow.f64 (*.f64 y.im x.re) #s(literal 2 binary64)))) (neg.f64 (-.f64 (*.f64 y.re x.im) (*.f64 y.im x.re)))) |
(/.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 y.im x.re) #s(literal 3 binary64)) (pow.f64 (*.f64 y.re x.im) #s(literal 3 binary64)))) (neg.f64 (+.f64 (*.f64 (*.f64 y.re x.im) (-.f64 (*.f64 y.re x.im) (*.f64 y.im x.re))) (pow.f64 (*.f64 y.im x.re) #s(literal 2 binary64))))) |
(/.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 y.im x.re) #s(literal 3 binary64)) (pow.f64 (*.f64 y.re x.im) #s(literal 3 binary64)))) (neg.f64 (+.f64 (*.f64 (*.f64 y.im x.re) (-.f64 (*.f64 y.im x.re) (*.f64 y.re x.im))) (pow.f64 (*.f64 y.re x.im) #s(literal 2 binary64))))) |
(/.f64 (-.f64 (pow.f64 (*.f64 y.im x.re) #s(literal 2 binary64)) (pow.f64 (*.f64 y.re x.im) #s(literal 2 binary64))) (-.f64 (*.f64 y.im x.re) (*.f64 y.re x.im))) |
(/.f64 (-.f64 (pow.f64 (*.f64 y.re x.im) #s(literal 2 binary64)) (pow.f64 (*.f64 y.im x.re) #s(literal 2 binary64))) (-.f64 (*.f64 y.re x.im) (*.f64 y.im x.re))) |
(/.f64 (+.f64 (pow.f64 (*.f64 y.im x.re) #s(literal 3 binary64)) (pow.f64 (*.f64 y.re x.im) #s(literal 3 binary64))) (+.f64 (*.f64 (*.f64 y.re x.im) (-.f64 (*.f64 y.re x.im) (*.f64 y.im x.re))) (pow.f64 (*.f64 y.im x.re) #s(literal 2 binary64)))) |
(/.f64 (+.f64 (pow.f64 (*.f64 y.im x.re) #s(literal 3 binary64)) (pow.f64 (*.f64 y.re x.im) #s(literal 3 binary64))) (+.f64 (*.f64 (*.f64 y.im x.re) (-.f64 (*.f64 y.im x.re) (*.f64 y.re x.im))) (pow.f64 (*.f64 y.re x.im) #s(literal 2 binary64)))) |
(-.f64 (/.f64 (pow.f64 (*.f64 y.re x.im) #s(literal 3 binary64)) (+.f64 (pow.f64 (*.f64 y.re x.im) #s(literal 2 binary64)) (+.f64 (pow.f64 (*.f64 y.im x.re) #s(literal 2 binary64)) (*.f64 (*.f64 y.re x.im) (*.f64 (neg.f64 x.re) y.im))))) (/.f64 (pow.f64 (*.f64 y.im x.re) #s(literal 3 binary64)) (+.f64 (pow.f64 (*.f64 y.re x.im) #s(literal 2 binary64)) (+.f64 (pow.f64 (*.f64 y.im x.re) #s(literal 2 binary64)) (*.f64 (*.f64 y.re x.im) (*.f64 (neg.f64 x.re) y.im)))))) |
(-.f64 (/.f64 (pow.f64 (*.f64 y.im x.re) #s(literal 3 binary64)) (+.f64 (pow.f64 (*.f64 y.im x.re) #s(literal 2 binary64)) (+.f64 (pow.f64 (*.f64 y.re x.im) #s(literal 2 binary64)) (*.f64 (*.f64 y.im x.re) (*.f64 (neg.f64 x.im) y.re))))) (/.f64 (pow.f64 (*.f64 y.re x.im) #s(literal 3 binary64)) (+.f64 (pow.f64 (*.f64 y.im x.re) #s(literal 2 binary64)) (+.f64 (pow.f64 (*.f64 y.re x.im) #s(literal 2 binary64)) (*.f64 (*.f64 y.im x.re) (*.f64 (neg.f64 x.im) y.re)))))) |
(-.f64 (ratio-square-sum.f64 (*.f64 y.im x.re) (*.f64 (neg.f64 x.im) y.re)) (/.f64 (pow.f64 (*.f64 y.re x.im) #s(literal 2 binary64)) (-.f64 (*.f64 y.im x.re) (*.f64 y.re x.im)))) |
(-.f64 (ratio-square-sum.f64 (*.f64 y.re x.im) (*.f64 (neg.f64 x.re) y.im)) (/.f64 (pow.f64 (*.f64 y.im x.re) #s(literal 2 binary64)) (-.f64 (*.f64 y.re x.im) (*.f64 y.im x.re)))) |
(-.f64 (*.f64 y.re x.im) (*.f64 (neg.f64 x.re) y.im)) |
(-.f64 (*.f64 y.im x.re) (*.f64 (neg.f64 x.im) y.re)) |
(+.f64 (/.f64 (pow.f64 (*.f64 y.re x.im) #s(literal 3 binary64)) (+.f64 (*.f64 (*.f64 y.re x.im) (-.f64 (*.f64 y.re x.im) (*.f64 y.im x.re))) (pow.f64 (*.f64 y.im x.re) #s(literal 2 binary64)))) (/.f64 (pow.f64 (*.f64 y.im x.re) #s(literal 3 binary64)) (+.f64 (*.f64 (*.f64 y.re x.im) (-.f64 (*.f64 y.re x.im) (*.f64 y.im x.re))) (pow.f64 (*.f64 y.im x.re) #s(literal 2 binary64))))) |
(+.f64 (/.f64 (pow.f64 (*.f64 y.im x.re) #s(literal 3 binary64)) (+.f64 (*.f64 (*.f64 y.re x.im) (-.f64 (*.f64 y.re x.im) (*.f64 y.im x.re))) (pow.f64 (*.f64 y.im x.re) #s(literal 2 binary64)))) (/.f64 (pow.f64 (*.f64 y.re x.im) #s(literal 3 binary64)) (+.f64 (*.f64 (*.f64 y.re x.im) (-.f64 (*.f64 y.re x.im) (*.f64 y.im x.re))) (pow.f64 (*.f64 y.im x.re) #s(literal 2 binary64))))) |
(+.f64 (/.f64 (pow.f64 (*.f64 y.im x.re) #s(literal 3 binary64)) (+.f64 (*.f64 (*.f64 y.im x.re) (-.f64 (*.f64 y.im x.re) (*.f64 y.re x.im))) (pow.f64 (*.f64 y.re x.im) #s(literal 2 binary64)))) (/.f64 (pow.f64 (*.f64 y.re x.im) #s(literal 3 binary64)) (+.f64 (*.f64 (*.f64 y.im x.re) (-.f64 (*.f64 y.im x.re) (*.f64 y.re x.im))) (pow.f64 (*.f64 y.re x.im) #s(literal 2 binary64))))) |
(+.f64 (/.f64 (pow.f64 (*.f64 y.re x.im) #s(literal 3 binary64)) (+.f64 (*.f64 (*.f64 y.im x.re) (-.f64 (*.f64 y.im x.re) (*.f64 y.re x.im))) (pow.f64 (*.f64 y.re x.im) #s(literal 2 binary64)))) (/.f64 (pow.f64 (*.f64 y.im x.re) #s(literal 3 binary64)) (+.f64 (*.f64 (*.f64 y.im x.re) (-.f64 (*.f64 y.im x.re) (*.f64 y.re x.im))) (pow.f64 (*.f64 y.re x.im) #s(literal 2 binary64))))) |
(+.f64 (ratio-square-sum.f64 (*.f64 y.im x.re) (*.f64 (neg.f64 x.im) y.re)) (/.f64 (*.f64 (*.f64 (neg.f64 x.im) y.re) (*.f64 y.re x.im)) (-.f64 (*.f64 y.im x.re) (*.f64 y.re x.im)))) |
(+.f64 (ratio-square-sum.f64 (*.f64 y.re x.im) (*.f64 (neg.f64 x.re) y.im)) (/.f64 (*.f64 (*.f64 (neg.f64 x.re) y.im) (*.f64 y.im x.re)) (-.f64 (*.f64 y.re x.im) (*.f64 y.im x.re)))) |
(+.f64 (*.f64 y.re x.im) (*.f64 (neg.f64 (neg.f64 x.re)) y.im)) |
(+.f64 (*.f64 y.re x.im) (*.f64 y.im x.re)) |
(+.f64 (*.f64 y.im x.re) (*.f64 (neg.f64 (neg.f64 x.im)) y.re)) |
(+.f64 (*.f64 y.im x.re) (*.f64 y.re x.im)) |
(*.f64 y.im x.re) |
(*.f64 x.re y.im) |
x.re |
y.im |
(*.f64 y.re x.im) |
(*.f64 x.im y.re) |
x.im |
y.re |
#s(approx (+ (* x.re y.im) (* x.im y.re)) (*.f64 y.re x.im)) |
#s(approx (+ (* x.re y.im) (* x.im y.re)) (+.f64 (*.f64 y.re x.im) (*.f64 y.im x.re))) |
#s(approx (* x.re y.im) (*.f64 y.im x.re)) |
#s(approx x.re x.re) |
#s(approx (+ (* x.re y.im) (* x.im y.re)) (*.f64 y.im x.re)) |
#s(approx (+ (* x.re y.im) (* x.im y.re)) (*.f64 (+.f64 (/.f64 (*.f64 y.re x.im) x.re) y.im) x.re)) |
#s(approx (+ (* x.re y.im) (* x.im y.re)) (*.f64 (+.f64 (/.f64 (*.f64 y.re x.im) x.re) y.im) x.re)) |
#s(approx (* x.im y.re) (*.f64 y.re x.im)) |
#s(approx x.im x.im) |
#s(approx (+ (* x.re y.im) (* x.im y.re)) (*.f64 (+.f64 (/.f64 (*.f64 y.im x.re) x.im) y.re) x.im)) |
#s(approx (+ (* x.re y.im) (* x.im y.re)) (*.f64 (+.f64 (/.f64 (*.f64 y.im x.re) x.im) y.re) x.im)) |
#s(approx y.re y.re) |
#s(approx (+ (* x.re y.im) (* x.im y.re)) (*.f64 (+.f64 (/.f64 (*.f64 y.im x.re) y.re) x.im) y.re)) |
#s(approx (+ (* x.re y.im) (* x.im y.re)) (*.f64 (+.f64 (/.f64 (*.f64 y.im x.re) y.re) x.im) y.re)) |
#s(approx y.im y.im) |
#s(approx (+ (* x.re y.im) (* x.im y.re)) (*.f64 (+.f64 (/.f64 (*.f64 y.re x.im) y.im) x.re) y.im)) |
#s(approx (+ (* x.re y.im) (* x.im y.re)) (*.f64 (+.f64 (/.f64 (*.f64 y.re x.im) y.im) x.re) y.im)) |
14.0ms | 368× | 0 | valid |
6.0ms | 144× | 0 | invalid |
Compiled 1 351 to 166 computations (87.7% saved)
ival-mult
: 4.0ms (42.2% of total)ival-div
: 3.0ms (31.6% of total)ival-add
: 2.0ms (21.1% of total)ival-true
: 0.0ms (0% of total)adjust
: 0.0ms (0% of total)ival-assert
: 0.0ms (0% of total)4 alts after pruning (3 fresh and 1 done)
Pruned | Kept | Total | |
---|---|---|---|
New | 54 | 3 | 57 |
Fresh | 0 | 0 | 0 |
Picked | 0 | 1 | 1 |
Done | 0 | 0 | 0 |
Total | 54 | 4 | 58 |
Status | Accuracy | Program |
---|---|---|
✓ | 99.2% | (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) |
▶ | 91.1% | #s(approx (+ (* x.re y.im) (* x.im y.re)) (*.f64 (+.f64 (/.f64 (*.f64 y.im x.re) y.re) x.im) y.re)) |
▶ | 48.1% | #s(approx (+ (* x.re y.im) (* x.im y.re)) (*.f64 y.re x.im)) |
▶ | 56.0% | #s(approx (+ (* x.re y.im) (* x.im y.re)) (*.f64 y.im x.re)) |
Compiled 46 to 37 computations (19.6% saved)
Inputs |
---|
#s(approx (+ (* x.re y.im) (* x.im y.re)) (*.f64 y.im x.re)) |
(*.f64 y.im x.re) |
y.im |
x.re |
#s(approx (+ (* x.re y.im) (* x.im y.re)) (*.f64 y.re x.im)) |
(*.f64 y.re x.im) |
y.re |
x.im |
#s(approx (+ (* x.re y.im) (* x.im y.re)) (*.f64 (+.f64 (/.f64 (*.f64 y.im x.re) y.re) x.im) y.re)) |
(*.f64 (+.f64 (/.f64 (*.f64 y.im x.re) y.re) x.im) y.re) |
(+.f64 (/.f64 (*.f64 y.im x.re) y.re) x.im) |
(/.f64 (*.f64 y.im x.re) y.re) |
Outputs |
---|
#s(approx (+ (* x.re y.im) (* x.im y.re)) #s(hole binary64 (* x.im y.re))) |
#s(approx (+ (* x.re y.im) (* x.im y.re)) #s(hole binary64 (+ (* x.im y.re) (* x.re y.im)))) |
#s(approx (* y.im x.re) #s(hole binary64 (* x.re y.im))) |
#s(approx x.re #s(hole binary64 x.re)) |
#s(approx (* (+ (/ (* y.im x.re) y.re) x.im) y.re) #s(hole binary64 (* x.im y.re))) |
#s(approx (* (+ (/ (* y.im x.re) y.re) x.im) y.re) #s(hole binary64 (+ (* x.im y.re) (* x.re y.im)))) |
#s(approx (+ (/ (* y.im x.re) y.re) x.im) #s(hole binary64 x.im)) |
#s(approx (+ (/ (* y.im x.re) y.re) x.im) #s(hole binary64 (+ x.im (/ (* x.re y.im) y.re)))) |
#s(approx (/ (* y.im x.re) y.re) #s(hole binary64 (/ (* x.re y.im) y.re))) |
#s(approx (+ (* x.re y.im) (* x.im y.re)) #s(hole binary64 (* x.re y.im))) |
#s(approx (+ (* x.re y.im) (* x.im y.re)) #s(hole binary64 (* x.re (+ y.im (/ (* x.im y.re) x.re))))) |
#s(approx (* (+ (/ (* y.im x.re) y.re) x.im) y.re) #s(hole binary64 (* x.re y.im))) |
#s(approx (* (+ (/ (* y.im x.re) y.re) x.im) y.re) #s(hole binary64 (* x.re (+ y.im (/ (* x.im y.re) x.re))))) |
#s(approx (+ (/ (* y.im x.re) y.re) x.im) #s(hole binary64 (/ (* x.re y.im) y.re))) |
#s(approx (+ (/ (* y.im x.re) y.re) x.im) #s(hole binary64 (* x.re (+ (/ x.im x.re) (/ y.im y.re))))) |
#s(approx (+ (* x.re y.im) (* x.im y.re)) #s(hole binary64 (* -1 (* x.re (+ (* -1 y.im) (* -1 (/ (* x.im y.re) x.re))))))) |
#s(approx (* (+ (/ (* y.im x.re) y.re) x.im) y.re) #s(hole binary64 (* -1 (* x.re (+ (* -1 y.im) (* -1 (/ (* x.im y.re) x.re))))))) |
#s(approx (+ (/ (* y.im x.re) y.re) x.im) #s(hole binary64 (* -1 (* x.re (+ (* -1 (/ x.im x.re)) (* -1 (/ y.im y.re))))))) |
#s(approx (* y.re x.im) #s(hole binary64 (* x.im y.re))) |
#s(approx x.im #s(hole binary64 x.im)) |
#s(approx (+ (* x.re y.im) (* x.im y.re)) #s(hole binary64 (* x.im (+ y.re (/ (* x.re y.im) x.im))))) |
#s(approx (* (+ (/ (* y.im x.re) y.re) x.im) y.re) #s(hole binary64 (* x.im (+ y.re (/ (* x.re y.im) x.im))))) |
#s(approx (+ (/ (* y.im x.re) y.re) x.im) #s(hole binary64 (* x.im (+ 1 (/ (* x.re y.im) (* x.im y.re)))))) |
#s(approx (+ (* x.re y.im) (* x.im y.re)) #s(hole binary64 (* -1 (* x.im (+ (* -1 y.re) (* -1 (/ (* x.re y.im) x.im))))))) |
#s(approx (* (+ (/ (* y.im x.re) y.re) x.im) y.re) #s(hole binary64 (* -1 (* x.im (+ (* -1 y.re) (* -1 (/ (* x.re y.im) x.im))))))) |
#s(approx (+ (/ (* y.im x.re) y.re) x.im) #s(hole binary64 (* -1 (* x.im (- (* -1 (/ (* x.re y.im) (* x.im y.re))) 1))))) |
#s(approx y.re #s(hole binary64 y.re)) |
#s(approx (+ (/ (* y.im x.re) y.re) x.im) #s(hole binary64 (/ (+ (* x.im y.re) (* x.re y.im)) y.re))) |
#s(approx (+ (* x.re y.im) (* x.im y.re)) #s(hole binary64 (* y.re (+ x.im (/ (* x.re y.im) y.re))))) |
#s(approx (* (+ (/ (* y.im x.re) y.re) x.im) y.re) #s(hole binary64 (* y.re (+ x.im (/ (* x.re y.im) y.re))))) |
#s(approx (+ (* x.re y.im) (* x.im y.re)) #s(hole binary64 (* -1 (* y.re (+ (* -1 x.im) (* -1 (/ (* x.re y.im) y.re))))))) |
#s(approx (* (+ (/ (* y.im x.re) y.re) x.im) y.re) #s(hole binary64 (* -1 (* y.re (+ (* -1 x.im) (* -1 (/ (* x.re y.im) y.re))))))) |
#s(approx y.im #s(hole binary64 y.im)) |
#s(approx (+ (* x.re y.im) (* x.im y.re)) #s(hole binary64 (* y.im (+ x.re (/ (* x.im y.re) y.im))))) |
#s(approx (* (+ (/ (* y.im x.re) y.re) x.im) y.re) #s(hole binary64 (* y.im (+ x.re (/ (* x.im y.re) y.im))))) |
#s(approx (+ (/ (* y.im x.re) y.re) x.im) #s(hole binary64 (* y.im (+ (/ x.im y.im) (/ x.re y.re))))) |
#s(approx (+ (* x.re y.im) (* x.im y.re)) #s(hole binary64 (* -1 (* y.im (+ (* -1 x.re) (* -1 (/ (* x.im y.re) y.im))))))) |
#s(approx (* (+ (/ (* y.im x.re) y.re) x.im) y.re) #s(hole binary64 (* -1 (* y.im (+ (* -1 x.re) (* -1 (/ (* x.im y.re) y.im))))))) |
#s(approx (+ (/ (* y.im x.re) y.re) x.im) #s(hole binary64 (* -1 (* y.im (+ (* -1 (/ x.im y.im)) (* -1 (/ x.re y.re))))))) |
12 calls:
Time | Variable | Point | Expression | |
---|---|---|---|---|
2.0ms | y.re | @ | 0 | ((+ (* x.re y.im) (* x.im y.re)) (* y.im x.re) y.im x.re (+ (* x.re y.im) (* x.im y.re)) (* y.re x.im) y.re x.im (+ (* x.re y.im) (* x.im y.re)) (* (+ (/ (* y.im x.re) y.re) x.im) y.re) (+ (/ (* y.im x.re) y.re) x.im) (/ (* y.im x.re) y.re)) |
2.0ms | y.re | @ | -inf | ((+ (* x.re y.im) (* x.im y.re)) (* y.im x.re) y.im x.re (+ (* x.re y.im) (* x.im y.re)) (* y.re x.im) y.re x.im (+ (* x.re y.im) (* x.im y.re)) (* (+ (/ (* y.im x.re) y.re) x.im) y.re) (+ (/ (* y.im x.re) y.re) x.im) (/ (* y.im x.re) y.re)) |
1.0ms | x.re | @ | -inf | ((+ (* x.re y.im) (* x.im y.re)) (* y.im x.re) y.im x.re (+ (* x.re y.im) (* x.im y.re)) (* y.re x.im) y.re x.im (+ (* x.re y.im) (* x.im y.re)) (* (+ (/ (* y.im x.re) y.re) x.im) y.re) (+ (/ (* y.im x.re) y.re) x.im) (/ (* y.im x.re) y.re)) |
1.0ms | y.im | @ | -inf | ((+ (* x.re y.im) (* x.im y.re)) (* y.im x.re) y.im x.re (+ (* x.re y.im) (* x.im y.re)) (* y.re x.im) y.re x.im (+ (* x.re y.im) (* x.im y.re)) (* (+ (/ (* y.im x.re) y.re) x.im) y.re) (+ (/ (* y.im x.re) y.re) x.im) (/ (* y.im x.re) y.re)) |
1.0ms | y.re | @ | inf | ((+ (* x.re y.im) (* x.im y.re)) (* y.im x.re) y.im x.re (+ (* x.re y.im) (* x.im y.re)) (* y.re x.im) y.re x.im (+ (* x.re y.im) (* x.im y.re)) (* (+ (/ (* y.im x.re) y.re) x.im) y.re) (+ (/ (* y.im x.re) y.re) x.im) (/ (* y.im x.re) y.re)) |
Useful iterations: 1 (0.0ms)
Iter | Nodes | Cost |
---|---|---|
0 | 120 | 699 |
0 | 128 | 661 |
1 | 577 | 653 |
2 | 4588 | 653 |
0 | 8217 | 653 |
1× | iter limit |
1× | node limit |
1× | iter limit |
Inputs |
---|
#s(approx (+ (* x.re y.im) (* x.im y.re)) (*.f64 y.im x.re)) |
(*.f64 y.im x.re) |
y.im |
x.re |
#s(approx (+ (* x.re y.im) (* x.im y.re)) (*.f64 y.re x.im)) |
(*.f64 y.re x.im) |
y.re |
x.im |
#s(approx (+ (* x.re y.im) (* x.im y.re)) (*.f64 (+.f64 (/.f64 (*.f64 y.im x.re) y.re) x.im) y.re)) |
(*.f64 (+.f64 (/.f64 (*.f64 y.im x.re) y.re) x.im) y.re) |
(+.f64 (/.f64 (*.f64 y.im x.re) y.re) x.im) |
(/.f64 (*.f64 y.im x.re) y.re) |
#s(approx (+ (* x.re y.im) (* x.im y.re)) #s(hole binary64 (* x.im y.re))) |
#s(approx (+ (* x.re y.im) (* x.im y.re)) #s(hole binary64 (+ (* x.im y.re) (* x.re y.im)))) |
#s(approx (* y.im x.re) #s(hole binary64 (* x.re y.im))) |
#s(approx x.re #s(hole binary64 x.re)) |
#s(approx (* (+ (/ (* y.im x.re) y.re) x.im) y.re) #s(hole binary64 (* x.im y.re))) |
#s(approx (* (+ (/ (* y.im x.re) y.re) x.im) y.re) #s(hole binary64 (+ (* x.im y.re) (* x.re y.im)))) |
#s(approx (+ (/ (* y.im x.re) y.re) x.im) #s(hole binary64 x.im)) |
#s(approx (+ (/ (* y.im x.re) y.re) x.im) #s(hole binary64 (+ x.im (/ (* x.re y.im) y.re)))) |
#s(approx (/ (* y.im x.re) y.re) #s(hole binary64 (/ (* x.re y.im) y.re))) |
#s(approx (+ (* x.re y.im) (* x.im y.re)) #s(hole binary64 (* x.re y.im))) |
#s(approx (+ (* x.re y.im) (* x.im y.re)) #s(hole binary64 (* x.re (+ y.im (/ (* x.im y.re) x.re))))) |
#s(approx (* (+ (/ (* y.im x.re) y.re) x.im) y.re) #s(hole binary64 (* x.re y.im))) |
#s(approx (* (+ (/ (* y.im x.re) y.re) x.im) y.re) #s(hole binary64 (* x.re (+ y.im (/ (* x.im y.re) x.re))))) |
#s(approx (+ (/ (* y.im x.re) y.re) x.im) #s(hole binary64 (/ (* x.re y.im) y.re))) |
#s(approx (+ (/ (* y.im x.re) y.re) x.im) #s(hole binary64 (* x.re (+ (/ x.im x.re) (/ y.im y.re))))) |
#s(approx (+ (* x.re y.im) (* x.im y.re)) #s(hole binary64 (* -1 (* x.re (+ (* -1 y.im) (* -1 (/ (* x.im y.re) x.re))))))) |
#s(approx (* (+ (/ (* y.im x.re) y.re) x.im) y.re) #s(hole binary64 (* -1 (* x.re (+ (* -1 y.im) (* -1 (/ (* x.im y.re) x.re))))))) |
#s(approx (+ (/ (* y.im x.re) y.re) x.im) #s(hole binary64 (* -1 (* x.re (+ (* -1 (/ x.im x.re)) (* -1 (/ y.im y.re))))))) |
#s(approx (* y.re x.im) #s(hole binary64 (* x.im y.re))) |
#s(approx x.im #s(hole binary64 x.im)) |
#s(approx (+ (* x.re y.im) (* x.im y.re)) #s(hole binary64 (* x.im (+ y.re (/ (* x.re y.im) x.im))))) |
#s(approx (* (+ (/ (* y.im x.re) y.re) x.im) y.re) #s(hole binary64 (* x.im (+ y.re (/ (* x.re y.im) x.im))))) |
#s(approx (+ (/ (* y.im x.re) y.re) x.im) #s(hole binary64 (* x.im (+ 1 (/ (* x.re y.im) (* x.im y.re)))))) |
#s(approx (+ (* x.re y.im) (* x.im y.re)) #s(hole binary64 (* -1 (* x.im (+ (* -1 y.re) (* -1 (/ (* x.re y.im) x.im))))))) |
#s(approx (* (+ (/ (* y.im x.re) y.re) x.im) y.re) #s(hole binary64 (* -1 (* x.im (+ (* -1 y.re) (* -1 (/ (* x.re y.im) x.im))))))) |
#s(approx (+ (/ (* y.im x.re) y.re) x.im) #s(hole binary64 (* -1 (* x.im (- (* -1 (/ (* x.re y.im) (* x.im y.re))) 1))))) |
#s(approx y.re #s(hole binary64 y.re)) |
#s(approx (+ (/ (* y.im x.re) y.re) x.im) #s(hole binary64 (/ (+ (* x.im y.re) (* x.re y.im)) y.re))) |
#s(approx (+ (* x.re y.im) (* x.im y.re)) #s(hole binary64 (* y.re (+ x.im (/ (* x.re y.im) y.re))))) |
#s(approx (* (+ (/ (* y.im x.re) y.re) x.im) y.re) #s(hole binary64 (* y.re (+ x.im (/ (* x.re y.im) y.re))))) |
#s(approx (+ (* x.re y.im) (* x.im y.re)) #s(hole binary64 (* -1 (* y.re (+ (* -1 x.im) (* -1 (/ (* x.re y.im) y.re))))))) |
#s(approx (* (+ (/ (* y.im x.re) y.re) x.im) y.re) #s(hole binary64 (* -1 (* y.re (+ (* -1 x.im) (* -1 (/ (* x.re y.im) y.re))))))) |
#s(approx y.im #s(hole binary64 y.im)) |
#s(approx (+ (* x.re y.im) (* x.im y.re)) #s(hole binary64 (* y.im (+ x.re (/ (* x.im y.re) y.im))))) |
#s(approx (* (+ (/ (* y.im x.re) y.re) x.im) y.re) #s(hole binary64 (* y.im (+ x.re (/ (* x.im y.re) y.im))))) |
#s(approx (+ (/ (* y.im x.re) y.re) x.im) #s(hole binary64 (* y.im (+ (/ x.im y.im) (/ x.re y.re))))) |
#s(approx (+ (* x.re y.im) (* x.im y.re)) #s(hole binary64 (* -1 (* y.im (+ (* -1 x.re) (* -1 (/ (* x.im y.re) y.im))))))) |
#s(approx (* (+ (/ (* y.im x.re) y.re) x.im) y.re) #s(hole binary64 (* -1 (* y.im (+ (* -1 x.re) (* -1 (/ (* x.im y.re) y.im))))))) |
#s(approx (+ (/ (* y.im x.re) y.re) x.im) #s(hole binary64 (* -1 (* y.im (+ (* -1 (/ x.im y.im)) (* -1 (/ x.re y.re))))))) |
Outputs |
---|
#s(approx (+ (* x.re y.im) (* x.im y.re)) (*.f64 y.im x.re)) |
(*.f64 y.im x.re) |
(*.f64 x.re y.im) |
y.im |
x.re |
#s(approx (+ (* x.re y.im) (* x.im y.re)) (*.f64 y.re x.im)) |
(*.f64 y.re x.im) |
(*.f64 x.im y.re) |
y.re |
x.im |
#s(approx (+ (* x.re y.im) (* x.im y.re)) (*.f64 (+.f64 (/.f64 (*.f64 y.im x.re) y.re) x.im) y.re)) |
(*.f64 (+.f64 (/.f64 (*.f64 y.im x.re) y.re) x.im) y.re) |
(*.f64 y.re (+.f64 (/.f64 (*.f64 y.im x.re) y.re) x.im)) |
(/.f64 (*.f64 (-.f64 (ratio-of-squares.f64 (*.f64 y.im x.re) y.re) (*.f64 x.im x.im)) y.re) (-.f64 (/.f64 (*.f64 y.im x.re) y.re) x.im)) |
(/.f64 (*.f64 (-.f64 (*.f64 x.im x.im) (ratio-of-squares.f64 (*.f64 y.im x.re) y.re)) y.re) (-.f64 x.im (/.f64 (*.f64 y.im x.re) y.re))) |
(/.f64 (*.f64 (+.f64 (pow.f64 (/.f64 (*.f64 y.im x.re) y.re) #s(literal 3 binary64)) (pow.f64 x.im #s(literal 3 binary64))) y.re) (+.f64 (*.f64 x.im (-.f64 x.im (/.f64 (*.f64 y.im x.re) y.re))) (ratio-of-squares.f64 (*.f64 y.im x.re) y.re))) |
(/.f64 (*.f64 (+.f64 (pow.f64 (/.f64 (*.f64 y.im x.re) y.re) #s(literal 3 binary64)) (pow.f64 x.im #s(literal 3 binary64))) y.re) (+.f64 (*.f64 (/.f64 (*.f64 y.im x.re) y.re) (-.f64 (/.f64 (*.f64 y.im x.re) y.re) x.im)) (*.f64 x.im x.im))) |
(/.f64 (*.f64 y.re (-.f64 (ratio-of-squares.f64 (*.f64 y.im x.re) y.re) (*.f64 x.im x.im))) (-.f64 (/.f64 (*.f64 y.im x.re) y.re) x.im)) |
(/.f64 (*.f64 y.re (-.f64 (*.f64 x.im x.im) (ratio-of-squares.f64 (*.f64 y.im x.re) y.re))) (-.f64 x.im (/.f64 (*.f64 y.im x.re) y.re))) |
(/.f64 (*.f64 y.re (+.f64 (pow.f64 (/.f64 (*.f64 y.im x.re) y.re) #s(literal 3 binary64)) (pow.f64 x.im #s(literal 3 binary64)))) (+.f64 (*.f64 x.im (-.f64 x.im (/.f64 (*.f64 y.im x.re) y.re))) (ratio-of-squares.f64 (*.f64 y.im x.re) y.re))) |
(/.f64 (*.f64 y.re (+.f64 (pow.f64 (/.f64 (*.f64 y.im x.re) y.re) #s(literal 3 binary64)) (pow.f64 x.im #s(literal 3 binary64)))) (+.f64 (*.f64 (/.f64 (*.f64 y.im x.re) y.re) (-.f64 (/.f64 (*.f64 y.im x.re) y.re) x.im)) (*.f64 x.im x.im))) |
(/.f64 (-.f64 (pow.f64 (*.f64 y.re x.im) #s(literal 2 binary64)) (pow.f64 (*.f64 (/.f64 (*.f64 y.im x.re) y.re) y.re) #s(literal 2 binary64))) (-.f64 (*.f64 y.re x.im) (*.f64 (/.f64 (*.f64 y.im x.re) y.re) y.re))) |
(/.f64 (+.f64 (pow.f64 (*.f64 y.re x.im) #s(literal 3 binary64)) (pow.f64 (*.f64 (/.f64 (*.f64 y.im x.re) y.re) y.re) #s(literal 3 binary64))) (+.f64 (pow.f64 (*.f64 y.re x.im) #s(literal 2 binary64)) (-.f64 (pow.f64 (*.f64 (/.f64 (*.f64 y.im x.re) y.re) y.re) #s(literal 2 binary64)) (*.f64 (*.f64 y.re x.im) (*.f64 (/.f64 (*.f64 y.im x.re) y.re) y.re))))) |
(-.f64 (*.f64 y.re x.im) (*.f64 (*.f64 (/.f64 (neg.f64 y.im) y.re) x.re) y.re)) |
(+.f64 (*.f64 (/.f64 (*.f64 y.im x.re) y.re) y.re) (*.f64 y.re x.im)) |
(+.f64 (*.f64 y.re x.im) (*.f64 (/.f64 (*.f64 y.im x.re) y.re) y.re)) |
(/.f64 (neg.f64 (-.f64 (ratio-of-squares.f64 (*.f64 y.im x.re) y.re) (*.f64 x.im x.im))) (neg.f64 (-.f64 (/.f64 (*.f64 y.im x.re) y.re) x.im))) |
(/.f64 (neg.f64 (-.f64 (*.f64 x.im x.im) (ratio-of-squares.f64 (*.f64 y.im x.re) y.re))) (neg.f64 (-.f64 x.im (/.f64 (*.f64 y.im x.re) y.re)))) |
(/.f64 (neg.f64 (+.f64 (pow.f64 (/.f64 (*.f64 y.im x.re) y.re) #s(literal 3 binary64)) (pow.f64 x.im #s(literal 3 binary64)))) (neg.f64 (+.f64 (*.f64 x.im (-.f64 x.im (/.f64 (*.f64 y.im x.re) y.re))) (ratio-of-squares.f64 (*.f64 y.im x.re) y.re)))) |
(/.f64 (neg.f64 (+.f64 (pow.f64 (/.f64 (*.f64 y.im x.re) y.re) #s(literal 3 binary64)) (pow.f64 x.im #s(literal 3 binary64)))) (neg.f64 (+.f64 (*.f64 (/.f64 (*.f64 y.im x.re) y.re) (-.f64 (/.f64 (*.f64 y.im x.re) y.re) x.im)) (*.f64 x.im x.im)))) |
(/.f64 (-.f64 (ratio-of-squares.f64 (*.f64 y.im x.re) y.re) (*.f64 x.im x.im)) (-.f64 (/.f64 (*.f64 y.im x.re) y.re) x.im)) |
(/.f64 (-.f64 (*.f64 x.im x.im) (ratio-of-squares.f64 (*.f64 y.im x.re) y.re)) (-.f64 x.im (/.f64 (*.f64 y.im x.re) y.re))) |
(/.f64 (+.f64 (pow.f64 (/.f64 (*.f64 y.im x.re) y.re) #s(literal 3 binary64)) (pow.f64 x.im #s(literal 3 binary64))) (+.f64 (*.f64 x.im (-.f64 x.im (/.f64 (*.f64 y.im x.re) y.re))) (ratio-of-squares.f64 (*.f64 y.im x.re) y.re))) |
(/.f64 (+.f64 (pow.f64 (/.f64 (*.f64 y.im x.re) y.re) #s(literal 3 binary64)) (pow.f64 x.im #s(literal 3 binary64))) (+.f64 (*.f64 (/.f64 (*.f64 y.im x.re) y.re) (-.f64 (/.f64 (*.f64 y.im x.re) y.re) x.im)) (*.f64 x.im x.im))) |
(-.f64 (/.f64 (ratio-of-squares.f64 (*.f64 y.im x.re) y.re) (-.f64 (/.f64 (*.f64 y.im x.re) y.re) x.im)) (/.f64 (*.f64 x.im x.im) (-.f64 (/.f64 (*.f64 y.im x.re) y.re) x.im))) |
(-.f64 (ratio-square-sum.f64 x.im (*.f64 (/.f64 (neg.f64 y.im) y.re) x.re)) (/.f64 (ratio-of-squares.f64 (*.f64 y.im x.re) y.re) (-.f64 x.im (/.f64 (*.f64 y.im x.re) y.re)))) |
(-.f64 x.im (*.f64 (/.f64 (neg.f64 y.im) y.re) x.re)) |
(+.f64 (/.f64 (pow.f64 (/.f64 (*.f64 y.im x.re) y.re) #s(literal 3 binary64)) (+.f64 (*.f64 x.im (-.f64 x.im (/.f64 (*.f64 y.im x.re) y.re))) (ratio-of-squares.f64 (*.f64 y.im x.re) y.re))) (/.f64 (pow.f64 x.im #s(literal 3 binary64)) (+.f64 (*.f64 x.im (-.f64 x.im (/.f64 (*.f64 y.im x.re) y.re))) (ratio-of-squares.f64 (*.f64 y.im x.re) y.re)))) |
(+.f64 (/.f64 (pow.f64 x.im #s(literal 3 binary64)) (+.f64 (*.f64 (/.f64 (*.f64 y.im x.re) y.re) (-.f64 (/.f64 (*.f64 y.im x.re) y.re) x.im)) (*.f64 x.im x.im))) (/.f64 (pow.f64 (/.f64 (*.f64 y.im x.re) y.re) #s(literal 3 binary64)) (+.f64 (*.f64 (/.f64 (*.f64 y.im x.re) y.re) (-.f64 (/.f64 (*.f64 y.im x.re) y.re) x.im)) (*.f64 x.im x.im)))) |
(+.f64 (/.f64 (*.f64 y.im x.re) y.re) x.im) |
(+.f64 x.im (/.f64 (*.f64 y.im x.re) y.re)) |
(*.f64 (*.f64 #s(literal 1 binary64) x.re) (/.f64 y.im y.re)) |
(*.f64 (*.f64 #s(literal 1 binary64) y.im) (/.f64 x.re y.re)) |
(*.f64 (/.f64 x.re y.re) y.im) |
(*.f64 #s(literal 1 binary64) (/.f64 (*.f64 y.im x.re) y.re)) |
(*.f64 (/.f64 y.im y.re) x.re) |
(*.f64 (/.f64 (*.f64 y.im x.re) y.re) #s(literal 1 binary64)) |
(*.f64 y.im (/.f64 x.re y.re)) |
(*.f64 x.re (/.f64 y.im y.re)) |
(/.f64 (/.f64 (*.f64 (neg.f64 x.re) y.im) #s(literal -1 binary64)) y.re) |
(/.f64 (*.f64 #s(literal 1 binary64) (*.f64 (neg.f64 x.re) y.im)) (neg.f64 y.re)) |
(/.f64 (*.f64 #s(literal 1 binary64) (*.f64 y.im x.re)) y.re) |
(/.f64 (neg.f64 (*.f64 (neg.f64 x.re) y.im)) (neg.f64 (neg.f64 y.re))) |
(/.f64 (*.f64 (neg.f64 x.re) y.im) (neg.f64 y.re)) |
(/.f64 (*.f64 (/.f64 (neg.f64 y.im) y.re) x.re) #s(literal -1 binary64)) |
(/.f64 (*.f64 y.im x.re) y.re) |
(neg.f64 (*.f64 (/.f64 (neg.f64 y.im) y.re) x.re)) |
#s(approx (+ (* x.re y.im) (* x.im y.re)) (*.f64 y.re x.im)) |
#s(approx (+ (* x.re y.im) (* x.im y.re)) (+.f64 (*.f64 y.re x.im) (*.f64 y.im x.re))) |
#s(approx (* y.im x.re) (*.f64 y.im x.re)) |
#s(approx x.re x.re) |
#s(approx (* (+ (/ (* y.im x.re) y.re) x.im) y.re) (*.f64 y.re x.im)) |
#s(approx (* (+ (/ (* y.im x.re) y.re) x.im) y.re) (+.f64 (*.f64 y.re x.im) (*.f64 y.im x.re))) |
#s(approx (+ (/ (* y.im x.re) y.re) x.im) x.im) |
#s(approx (+ (/ (* y.im x.re) y.re) x.im) (+.f64 (/.f64 (*.f64 y.im x.re) y.re) x.im)) |
#s(approx (/ (* y.im x.re) y.re) (/.f64 (*.f64 y.im x.re) y.re)) |
#s(approx (+ (* x.re y.im) (* x.im y.re)) (*.f64 y.im x.re)) |
#s(approx (+ (* x.re y.im) (* x.im y.re)) (*.f64 (+.f64 (/.f64 (*.f64 y.re x.im) x.re) y.im) x.re)) |
#s(approx (* (+ (/ (* y.im x.re) y.re) x.im) y.re) (*.f64 y.im x.re)) |
#s(approx (* (+ (/ (* y.im x.re) y.re) x.im) y.re) (*.f64 (+.f64 (/.f64 (*.f64 y.re x.im) x.re) y.im) x.re)) |
#s(approx (+ (/ (* y.im x.re) y.re) x.im) (/.f64 (*.f64 y.im x.re) y.re)) |
#s(approx (+ (/ (* y.im x.re) y.re) x.im) (*.f64 (+.f64 (/.f64 y.im y.re) (/.f64 x.im x.re)) x.re)) |
#s(approx (+ (* x.re y.im) (* x.im y.re)) (*.f64 (neg.f64 x.re) (neg.f64 (+.f64 (/.f64 (*.f64 y.re x.im) x.re) y.im)))) |
#s(approx (* (+ (/ (* y.im x.re) y.re) x.im) y.re) (*.f64 (neg.f64 x.re) (neg.f64 (+.f64 (/.f64 (*.f64 y.re x.im) x.re) y.im)))) |
#s(approx (+ (/ (* y.im x.re) y.re) x.im) (*.f64 (+.f64 (/.f64 y.im y.re) (/.f64 x.im x.re)) x.re)) |
#s(approx (* y.re x.im) (*.f64 y.re x.im)) |
#s(approx x.im x.im) |
#s(approx (+ (* x.re y.im) (* x.im y.re)) (*.f64 (+.f64 (/.f64 (*.f64 y.im x.re) x.im) y.re) x.im)) |
#s(approx (* (+ (/ (* y.im x.re) y.re) x.im) y.re) (*.f64 (+.f64 (/.f64 (*.f64 y.im x.re) x.im) y.re) x.im)) |
#s(approx (+ (/ (* y.im x.re) y.re) x.im) (*.f64 (-.f64 (/.f64 (/.f64 (*.f64 y.im x.re) x.im) y.re) #s(literal -1 binary64)) x.im)) |
#s(approx (+ (* x.re y.im) (* x.im y.re)) (*.f64 (neg.f64 x.im) (neg.f64 (+.f64 (/.f64 (*.f64 y.im x.re) x.im) y.re)))) |
#s(approx (* (+ (/ (* y.im x.re) y.re) x.im) y.re) (*.f64 (neg.f64 x.im) (neg.f64 (+.f64 (/.f64 (*.f64 y.im x.re) x.im) y.re)))) |
#s(approx (+ (/ (* y.im x.re) y.re) x.im) (*.f64 (neg.f64 x.im) (-.f64 (*.f64 (/.f64 x.re x.im) (/.f64 (neg.f64 y.im) y.re)) #s(literal 1 binary64)))) |
#s(approx y.re y.re) |
#s(approx (+ (/ (* y.im x.re) y.re) x.im) (/.f64 (+.f64 (*.f64 y.re x.im) (*.f64 y.im x.re)) y.re)) |
#s(approx (+ (* x.re y.im) (* x.im y.re)) (*.f64 (+.f64 (/.f64 (*.f64 y.im x.re) y.re) x.im) y.re)) |
#s(approx (* (+ (/ (* y.im x.re) y.re) x.im) y.re) (*.f64 (+.f64 (/.f64 (*.f64 y.im x.re) y.re) x.im) y.re)) |
#s(approx (+ (* x.re y.im) (* x.im y.re)) (*.f64 (-.f64 (*.f64 (/.f64 (neg.f64 y.im) y.re) x.re) x.im) (neg.f64 y.re))) |
#s(approx (* (+ (/ (* y.im x.re) y.re) x.im) y.re) (*.f64 (-.f64 (*.f64 (/.f64 (neg.f64 y.im) y.re) x.re) x.im) (neg.f64 y.re))) |
#s(approx y.im y.im) |
#s(approx (+ (* x.re y.im) (* x.im y.re)) (*.f64 (+.f64 (/.f64 (*.f64 y.re x.im) y.im) x.re) y.im)) |
#s(approx (* (+ (/ (* y.im x.re) y.re) x.im) y.re) (*.f64 (+.f64 (/.f64 (*.f64 y.re x.im) y.im) x.re) y.im)) |
#s(approx (+ (/ (* y.im x.re) y.re) x.im) (*.f64 (+.f64 (/.f64 x.re y.re) (/.f64 x.im y.im)) y.im)) |
#s(approx (+ (* x.re y.im) (* x.im y.re)) (*.f64 (neg.f64 (+.f64 (/.f64 (*.f64 y.re x.im) y.im) x.re)) (neg.f64 y.im))) |
#s(approx (* (+ (/ (* y.im x.re) y.re) x.im) y.re) (*.f64 (neg.f64 (+.f64 (/.f64 (*.f64 y.re x.im) y.im) x.re)) (neg.f64 y.im))) |
#s(approx (+ (/ (* y.im x.re) y.re) x.im) (*.f64 (+.f64 (/.f64 x.re y.re) (/.f64 x.im y.im)) y.im)) |
19.0ms | 410× | 0 | valid |
4.0ms | 102× | 0 | invalid |
Compiled 2 343 to 351 computations (85% saved)
ival-mult
: 7.0ms (57.3% of total)ival-div
: 3.0ms (24.5% of total)ival-add
: 1.0ms (8.2% of total)ival-true
: 0.0ms (0% of total)adjust
: 0.0ms (0% of total)ival-assert
: 0.0ms (0% of total)4 alts after pruning (0 fresh and 4 done)
Pruned | Kept | Total | |
---|---|---|---|
New | 104 | 0 | 104 |
Fresh | 0 | 0 | 0 |
Picked | 0 | 3 | 3 |
Done | 0 | 1 | 1 |
Total | 104 | 4 | 108 |
Status | Accuracy | Program |
---|---|---|
✓ | 99.2% | (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) |
✓ | 91.1% | #s(approx (+ (* x.re y.im) (* x.im y.re)) (*.f64 (+.f64 (/.f64 (*.f64 y.im x.re) y.re) x.im) y.re)) |
✓ | 48.1% | #s(approx (+ (* x.re y.im) (* x.im y.re)) (*.f64 y.re x.im)) |
✓ | 56.0% | #s(approx (+ (* x.re y.im) (* x.im y.re)) (*.f64 y.im x.re)) |
Compiled 92 to 55 computations (40.2% saved)
Inputs |
---|
#s(approx (+ (* x.re y.im) (* x.im y.re)) (*.f64 y.im x.re)) |
#s(approx (+ (* x.re y.im) (* x.im y.re)) (*.f64 y.re x.im)) |
(+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) |
#s(approx (+ (* x.re y.im) (* x.im y.re)) (*.f64 (+.f64 (/.f64 (*.f64 y.im x.re) y.re) x.im) y.re)) |
Outputs |
---|
(+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) |
7 calls:
2.0ms | y.im |
2.0ms | y.re |
2.0ms | x.re |
2.0ms | x.im |
2.0ms | (*.f64 x.re y.im) |
Accuracy | Segments | Branch |
---|---|---|
99.2% | 1 | (*.f64 x.im y.re) |
99.2% | 1 | (*.f64 x.re y.im) |
99.2% | 1 | (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) |
99.2% | 1 | x.re |
99.2% | 1 | x.im |
99.2% | 1 | y.re |
99.2% | 1 | y.im |
Compiled 17 to 33 computations (-94.1% saved)
Inputs |
---|
#s(approx (+ (* x.re y.im) (* x.im y.re)) (*.f64 y.im x.re)) |
#s(approx (+ (* x.re y.im) (* x.im y.re)) (*.f64 y.re x.im)) |
Outputs |
---|
#s(approx (+ (* x.re y.im) (* x.im y.re)) (*.f64 y.re x.im)) |
#s(approx (+ (* x.re y.im) (* x.im y.re)) (*.f64 y.im x.re)) |
#s(approx (+ (* x.re y.im) (* x.im y.re)) (*.f64 y.re x.im)) |
7 calls:
8.0ms | x.im |
1.0ms | x.re |
1.0ms | y.im |
1.0ms | (*.f64 x.re y.im) |
1.0ms | y.re |
Accuracy | Segments | Branch |
---|---|---|
80.3% | 3 | (*.f64 x.im y.re) |
78.9% | 3 | (*.f64 x.re y.im) |
58.7% | 2 | (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) |
72.7% | 3 | x.re |
75.7% | 3 | x.im |
78.0% | 3 | y.re |
72.3% | 3 | y.im |
Compiled 17 to 33 computations (-94.1% saved)
Total -0.0b remaining (-0%)
Threshold costs -0b (-0%)
Inputs |
---|
#s(approx (+ (* x.re y.im) (* x.im y.re)) (*.f64 y.im x.re)) |
Outputs |
---|
#s(approx (+ (* x.re y.im) (* x.im y.re)) (*.f64 y.im x.re)) |
7 calls:
1.0ms | (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) |
1.0ms | (*.f64 x.re y.im) |
1.0ms | y.re |
1.0ms | y.im |
1.0ms | x.re |
Accuracy | Segments | Branch |
---|---|---|
56.0% | 1 | (+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) |
56.0% | 1 | y.im |
56.0% | 1 | x.re |
56.0% | 1 | x.im |
56.0% | 1 | y.re |
56.0% | 1 | (*.f64 x.re y.im) |
56.0% | 1 | (*.f64 x.im y.re) |
Compiled 17 to 33 computations (-94.1% saved)
2× | left-value |
Time | Left | Right |
---|---|---|
0.0ms | 9.431632109496427e+20 | 4.2218965767623606e+23 |
0.0ms | -519029965751630.6 | -169175609085303.72 |
Compiled 10 to 14 computations (-40% saved)
Useful iterations: 0 (0.0ms)
Iter | Nodes | Cost |
---|---|---|
0 | 20 | 53 |
1 | 29 | 53 |
2 | 43 | 53 |
3 | 63 | 53 |
4 | 84 | 53 |
5 | 88 | 53 |
6 | 91 | 53 |
1× | saturated |
Inputs |
---|
(+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) |
(if (<=.f64 (*.f64 x.im y.re) #s(literal -500000000000000 binary64)) #s(approx (+ (* x.re y.im) (* x.im y.re)) (*.f64 y.re x.im)) (if (<=.f64 (*.f64 x.im y.re) #s(literal 1000000000000000000000 binary64)) #s(approx (+ (* x.re y.im) (* x.im y.re)) (*.f64 y.im x.re)) #s(approx (+ (* x.re y.im) (* x.im y.re)) (*.f64 y.re x.im)))) |
#s(approx (+ (* x.re y.im) (* x.im y.re)) (*.f64 y.im x.re)) |
Outputs |
---|
(+.f64 (*.f64 x.re y.im) (*.f64 x.im y.re)) |
(if (<=.f64 (*.f64 x.im y.re) #s(literal -500000000000000 binary64)) #s(approx (+ (* x.re y.im) (* x.im y.re)) (*.f64 y.re x.im)) (if (<=.f64 (*.f64 x.im y.re) #s(literal 1000000000000000000000 binary64)) #s(approx (+ (* x.re y.im) (* x.im y.re)) (*.f64 y.im x.re)) #s(approx (+ (* x.re y.im) (* x.im y.re)) (*.f64 y.re x.im)))) |
(if (or (<=.f64 (*.f64 x.im y.re) #s(literal -500000000000000 binary64)) (not (<=.f64 (*.f64 x.im y.re) #s(literal 1000000000000000000000 binary64)))) #s(approx (+ (* x.re y.im) (* x.im y.re)) (*.f64 y.re x.im)) #s(approx (+ (* x.re y.im) (* x.im y.re)) (*.f64 y.im x.re))) |
#s(approx (+ (* x.re y.im) (* x.im y.re)) (*.f64 y.im x.re)) |
1× | done |
Compiled 53 to 21 computations (60.4% saved)
(sort x.im y.re)
(sort x.re y.im)
Compiled 176 to 112 computations (36.4% saved)
Loading profile data...