
Time bar (total: 6.5s)
| 1× | search |
| Probability | Valid | Unknown | Precondition | Infinite | Domain | Can't | Iter |
|---|---|---|---|---|---|---|---|
| 0% | 0% | 99.9% | 0.1% | 0% | 0% | 0% | 0 |
| 100% | 99.9% | 0% | 0.1% | 0% | 0% | 0% | 1 |
Compiled 21 to 13 computations (38.1% saved)
| 1.3s | 8 256× | 0 | valid |
ival-mult: 675.0ms (70.1% of total)ival-add: 160.0ms (16.6% of total)ival-sub: 116.0ms (12% of total)ival-true: 6.0ms (0.6% of total)ival-assert: 3.0ms (0.3% of total)adjust: 2.0ms (0.2% of total)| Ground Truth | Overpredictions | Example | Underpredictions | Example | Subexpression |
|---|---|---|---|---|---|
| 22 | 0 | - | 0 | - | (+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re)) |
| 18 | 0 | - | 0 | - | (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) |
| 10 | 0 | - | 0 | - | (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) |
| 0 | 0 | - | 0 | - | (*.f64 x.re x.im) |
| 0 | 0 | - | 0 | - | (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) |
| 0 | 0 | - | 0 | - | (*.f64 x.im x.im) |
| 0 | 0 | - | 0 | - | (*.f64 x.re x.re) |
| 0 | 0 | - | 0 | - | (*.f64 x.im x.re) |
| 0 | 0 | - | 0 | - | (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re) |
| 0 | 0 | - | 0 | - | x.re |
| 0 | 0 | - | 0 | - | x.im |
| Operator | Subexpression | Explanation | Count | |
|---|---|---|---|---|
+.f64 | (+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re)) | nan-rescue | 22 | 0 |
| ↳ | (*.f64 x.re x.re) | overflow | 59 | |
| ↳ | (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) | overflow | 95 | |
| ↳ | (*.f64 x.im x.im) | overflow | 54 | |
| ↳ | (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) | overflow | 107 | |
| ↳ | (*.f64 x.im x.re) | overflow | 34 | |
| ↳ | (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re) | overflow | 62 | |
| ↳ | (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) | overflow | 34 | |
| ↳ | (*.f64 x.re x.im) | overflow | 34 | |
-.f64 | (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) | nan-rescue | 18 | 0 |
| ↳ | (*.f64 x.re x.re) | overflow | 59 | |
| ↳ | (*.f64 x.im x.im) | overflow | 54 | |
*.f64 | (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) | n*o | 10 | 0 |
| Predicted + | Predicted - | |
|---|---|---|
| + | 40 | 0 |
| - | 0 | 216 |
| Predicted + | Predicted Maybe | Predicted - | |
|---|---|---|---|
| + | 40 | 0 | 0 |
| - | 0 | 0 | 216 |
| number | freq |
|---|---|
| 0 | 216 |
| 1 | 30 |
| 2 | 10 |
| Predicted + | Predicted Maybe | Predicted - | |
|---|---|---|---|
| + | 1 | 0 | 0 |
| - | 0 | 0 | 0 |
| 57.0ms | 512× | 0 | valid |
Compiled 153 to 37 computations (75.8% saved)
ival-mult: 34.0ms (83.1% of total)ival-add: 4.0ms (9.8% of total)ival-sub: 2.0ms (4.9% of total)ival-true: 0.0ms (0% of total)adjust: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)| 1× | egg-herbie |
Useful iterations: 3 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 31 | 103 |
| 1 | 114 | 87 |
| 2 | 408 | 85 |
| 3 | 1278 | 57 |
| 4 | 4753 | 57 |
| 0 | 11 | 19 |
| 0 | 20 | 19 |
| 1 | 44 | 17 |
| 2 | 145 | 17 |
| 3 | 565 | 11 |
| 4 | 1728 | 11 |
| 5 | 5819 | 11 |
| 0 | 9144 | 11 |
| 1× | iter limit |
| 1× | node limit |
| 1× | iter limit |
| 1× | node limit |
| Inputs |
|---|
(+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re)) |
| Outputs |
|---|
(+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re)) |
(*.f64 (fma.f64 #s(literal 3 binary64) (*.f64 x.re x.re) (*.f64 (neg.f64 x.im) x.im)) x.im) |
(abs x.re)
(negabs x.im)
Compiled 19 to 11 computations (42.1% saved)
Compiled 0 to 2 computations (-∞% saved)
| Status | Accuracy | Program |
|---|---|---|
| ▶ | 84.4% | (+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re)) |
Compiled 19 to 11 computations (42.1% saved)
| 1× | egg-herbie |
Found 4 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| cost-diff | 0 | (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) | |
| cost-diff | 0 | (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) | |
| cost-diff | 2 | (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) | |
| cost-diff | 6 | (+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re)) |
Useful iterations: 3 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 11 | 65 |
| 0 | 20 | 65 |
| 1 | 44 | 59 |
| 2 | 145 | 59 |
| 3 | 565 | 53 |
| 4 | 1728 | 53 |
| 5 | 5819 | 53 |
| 0 | 9144 | 53 |
| 1× | iter limit |
| 1× | node limit |
| 1× | iter limit |
| Inputs |
|---|
(+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re)) |
(*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) |
(-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) |
(*.f64 x.re x.re) |
x.re |
(*.f64 x.im x.im) |
x.im |
(*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re) |
(+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) |
(*.f64 x.re x.im) |
(*.f64 x.im x.re) |
| Outputs |
|---|
(+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re)) |
(*.f64 (fma.f64 #s(literal 3 binary64) (*.f64 x.re x.re) (*.f64 (neg.f64 x.im) x.im)) x.im) |
(*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) |
(*.f64 (*.f64 (+.f64 x.im x.re) x.im) (-.f64 x.re x.im)) |
(-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) |
(*.f64 (-.f64 x.re x.im) (+.f64 x.im x.re)) |
(*.f64 x.re x.re) |
x.re |
(*.f64 x.im x.im) |
x.im |
(*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re) |
(*.f64 (*.f64 #s(literal 2 binary64) (*.f64 x.im x.re)) x.re) |
(+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) |
(*.f64 #s(literal 2 binary64) (*.f64 x.im x.re)) |
(*.f64 x.re x.im) |
(*.f64 x.im x.re) |
(*.f64 x.im x.re) |
Found 4 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| accuracy | 0.14453125 | (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re) | |
| accuracy | 2.4891853100963455 | (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) | |
| accuracy | 4.093729358302059 | (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) | |
| accuracy | 5.5937045882645275 | (+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re)) |
| 24.0ms | 256× | 0 | valid |
Compiled 67 to 13 computations (80.6% saved)
ival-mult: 9.0ms (69.7% of total)ival-add: 2.0ms (15.5% of total)ival-sub: 1.0ms (7.7% of total)ival-true: 0.0ms (0% of total)adjust: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)| Inputs |
|---|
(+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re)) |
(+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) |
(*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) |
(-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) |
(*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re) |
| Outputs |
|---|
(* -1 (pow x.im 3)) |
(+ (* -1 (pow x.im 3)) (* (pow x.re 2) (+ x.im (* 2 x.im)))) |
(* 2 (* x.im x.re)) |
(+ (* -1 (pow x.im 3)) (* x.im (pow x.re 2))) |
(* -1 (pow x.im 2)) |
(- (pow x.re 2) (pow x.im 2)) |
(* 2 (* x.im (pow x.re 2))) |
(* (pow x.re 2) (+ x.im (* 2 x.im))) |
(* (pow x.re 2) (+ x.im (+ (* -1 (/ (pow x.im 3) (pow x.re 2))) (* 2 x.im)))) |
(* x.im (pow x.re 2)) |
(* (pow x.re 2) (+ x.im (* -1 (/ (pow x.im 3) (pow x.re 2))))) |
(pow x.re 2) |
(* (pow x.re 2) (+ 1 (* -1 (/ (pow x.im 2) (pow x.re 2))))) |
(* x.im (+ (* 2 (pow x.re 2)) (pow x.re 2))) |
(* x.im (+ (* -1 (pow x.im 2)) (+ (* 2 (pow x.re 2)) (pow x.re 2)))) |
(* x.im (+ (* -1 (pow x.im 2)) (pow x.re 2))) |
(+ (* -1 (pow x.im 2)) (pow x.re 2)) |
(* (pow x.im 3) (- (+ (* 2 (/ (pow x.re 2) (pow x.im 2))) (/ (pow x.re 2) (pow x.im 2))) 1)) |
(* (pow x.im 3) (- (/ (pow x.re 2) (pow x.im 2)) 1)) |
(* (pow x.im 2) (- (/ (pow x.re 2) (pow x.im 2)) 1)) |
(* -1 (* (pow x.im 3) (+ 1 (+ (* -2 (/ (pow x.re 2) (pow x.im 2))) (* -1 (/ (pow x.re 2) (pow x.im 2))))))) |
(* -1 (* (pow x.im 3) (+ 1 (* -1 (/ (pow x.re 2) (pow x.im 2)))))) |
6 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 91.0ms | x.im | @ | 0 | ((+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (+ (* x.re x.im) (* x.im x.re)) (* (- (* x.re x.re) (* x.im x.im)) x.im) (- (* x.re x.re) (* x.im x.im)) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) |
| 3.0ms | x.im | @ | -inf | ((+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (+ (* x.re x.im) (* x.im x.re)) (* (- (* x.re x.re) (* x.im x.im)) x.im) (- (* x.re x.re) (* x.im x.im)) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) |
| 2.0ms | x.im | @ | inf | ((+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (+ (* x.re x.im) (* x.im x.re)) (* (- (* x.re x.re) (* x.im x.im)) x.im) (- (* x.re x.re) (* x.im x.im)) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) |
| 2.0ms | x.re | @ | 0 | ((+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (+ (* x.re x.im) (* x.im x.re)) (* (- (* x.re x.re) (* x.im x.im)) x.im) (- (* x.re x.re) (* x.im x.im)) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) |
| 2.0ms | x.re | @ | inf | ((+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (+ (* x.re x.im) (* x.im x.re)) (* (- (* x.re x.re) (* x.im x.im)) x.im) (- (* x.re x.re) (* x.im x.im)) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) |
| 1× | egg-herbie |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 57 | 215 |
| 1 | 202 | 207 |
| 2 | 807 | 206 |
| 3 | 4612 | 206 |
| 0 | 8725 | 201 |
| 1× | iter limit |
| 1× | node limit |
| Inputs |
|---|
(* -1 (pow x.im 3)) |
(+ (* -1 (pow x.im 3)) (* (pow x.re 2) (+ x.im (* 2 x.im)))) |
(* 2 (* x.im x.re)) |
(+ (* -1 (pow x.im 3)) (* x.im (pow x.re 2))) |
(* -1 (pow x.im 2)) |
(- (pow x.re 2) (pow x.im 2)) |
(* 2 (* x.im (pow x.re 2))) |
(* (pow x.re 2) (+ x.im (* 2 x.im))) |
(* (pow x.re 2) (+ x.im (+ (* -1 (/ (pow x.im 3) (pow x.re 2))) (* 2 x.im)))) |
(* x.im (pow x.re 2)) |
(* (pow x.re 2) (+ x.im (* -1 (/ (pow x.im 3) (pow x.re 2))))) |
(pow x.re 2) |
(* (pow x.re 2) (+ 1 (* -1 (/ (pow x.im 2) (pow x.re 2))))) |
(* x.im (+ (* 2 (pow x.re 2)) (pow x.re 2))) |
(* x.im (+ (* -1 (pow x.im 2)) (+ (* 2 (pow x.re 2)) (pow x.re 2)))) |
(* x.im (+ (* -1 (pow x.im 2)) (pow x.re 2))) |
(+ (* -1 (pow x.im 2)) (pow x.re 2)) |
(* (pow x.im 3) (- (+ (* 2 (/ (pow x.re 2) (pow x.im 2))) (/ (pow x.re 2) (pow x.im 2))) 1)) |
(* (pow x.im 3) (- (/ (pow x.re 2) (pow x.im 2)) 1)) |
(* (pow x.im 2) (- (/ (pow x.re 2) (pow x.im 2)) 1)) |
(* -1 (* (pow x.im 3) (+ 1 (+ (* -2 (/ (pow x.re 2) (pow x.im 2))) (* -1 (/ (pow x.re 2) (pow x.im 2))))))) |
(* -1 (* (pow x.im 3) (+ 1 (* -1 (/ (pow x.re 2) (pow x.im 2)))))) |
| Outputs |
|---|
(* -1 (pow x.im 3)) |
(pow.f64 (neg.f64 x.im) #s(literal 3 binary64)) |
(+ (* -1 (pow x.im 3)) (* (pow x.re 2) (+ x.im (* 2 x.im)))) |
(*.f64 (neg.f64 (fma.f64 (*.f64 #s(literal -3 binary64) x.re) x.re (*.f64 x.im x.im))) x.im) |
(* 2 (* x.im x.re)) |
(*.f64 (*.f64 x.im x.re) #s(literal 2 binary64)) |
(+ (* -1 (pow x.im 3)) (* x.im (pow x.re 2))) |
(*.f64 (*.f64 x.im (+.f64 x.im x.re)) (-.f64 x.re x.im)) |
(* -1 (pow x.im 2)) |
(*.f64 (neg.f64 x.im) x.im) |
(- (pow x.re 2) (pow x.im 2)) |
(*.f64 (-.f64 x.re x.im) (+.f64 x.im x.re)) |
(* 2 (* x.im (pow x.re 2))) |
(*.f64 (*.f64 (*.f64 x.re x.re) #s(literal 2 binary64)) x.im) |
(* (pow x.re 2) (+ x.im (* 2 x.im))) |
(*.f64 (*.f64 (*.f64 #s(literal 3 binary64) x.re) x.im) x.re) |
(* (pow x.re 2) (+ x.im (+ (* -1 (/ (pow x.im 3) (pow x.re 2))) (* 2 x.im)))) |
(*.f64 (-.f64 (*.f64 #s(literal 3 binary64) x.im) (/.f64 (/.f64 (pow.f64 x.im #s(literal 3 binary64)) x.re) x.re)) (*.f64 x.re x.re)) |
(* x.im (pow x.re 2)) |
(*.f64 (*.f64 x.im x.re) x.re) |
(* (pow x.re 2) (+ x.im (* -1 (/ (pow x.im 3) (pow x.re 2))))) |
(*.f64 (-.f64 x.im (/.f64 (/.f64 (pow.f64 x.im #s(literal 3 binary64)) x.re) x.re)) (*.f64 x.re x.re)) |
(pow x.re 2) |
(*.f64 x.re x.re) |
(* (pow x.re 2) (+ 1 (* -1 (/ (pow x.im 2) (pow x.re 2))))) |
(*.f64 (*.f64 (neg.f64 x.re) x.re) (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -1 binary64))) |
(* x.im (+ (* 2 (pow x.re 2)) (pow x.re 2))) |
(*.f64 (*.f64 (*.f64 #s(literal 3 binary64) x.re) x.im) x.re) |
(* x.im (+ (* -1 (pow x.im 2)) (+ (* 2 (pow x.re 2)) (pow x.re 2)))) |
(*.f64 (neg.f64 (fma.f64 (*.f64 #s(literal -3 binary64) x.re) x.re (*.f64 x.im x.im))) x.im) |
(* x.im (+ (* -1 (pow x.im 2)) (pow x.re 2))) |
(*.f64 (*.f64 x.im (+.f64 x.im x.re)) (-.f64 x.re x.im)) |
(+ (* -1 (pow x.im 2)) (pow x.re 2)) |
(*.f64 (-.f64 x.re x.im) (+.f64 x.im x.re)) |
(* (pow x.im 3) (- (+ (* 2 (/ (pow x.re 2) (pow x.im 2))) (/ (pow x.re 2) (pow x.im 2))) 1)) |
(*.f64 (fma.f64 (*.f64 #s(literal 3 binary64) (/.f64 x.re x.im)) (/.f64 x.re x.im) #s(literal -1 binary64)) (pow.f64 x.im #s(literal 3 binary64))) |
(* (pow x.im 3) (- (/ (pow x.re 2) (pow x.im 2)) 1)) |
(*.f64 (fma.f64 (/.f64 (/.f64 x.re x.im) x.im) x.re #s(literal -1 binary64)) (pow.f64 x.im #s(literal 3 binary64))) |
(* (pow x.im 2) (- (/ (pow x.re 2) (pow x.im 2)) 1)) |
(*.f64 (fma.f64 (/.f64 (/.f64 x.re x.im) x.im) x.re #s(literal -1 binary64)) (*.f64 x.im x.im)) |
(* -1 (* (pow x.im 3) (+ 1 (+ (* -2 (/ (pow x.re 2) (pow x.im 2))) (* -1 (/ (pow x.re 2) (pow x.im 2))))))) |
(*.f64 (fma.f64 (*.f64 #s(literal 3 binary64) (/.f64 x.re x.im)) (/.f64 x.re x.im) #s(literal -1 binary64)) (pow.f64 x.im #s(literal 3 binary64))) |
(* -1 (* (pow x.im 3) (+ 1 (* -1 (/ (pow x.re 2) (pow x.im 2)))))) |
(*.f64 (fma.f64 (/.f64 (/.f64 x.re x.im) x.im) x.re #s(literal -1 binary64)) (pow.f64 x.im #s(literal 3 binary64))) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 11 | 51 |
| 0 | 20 | 51 |
| 1 | 89 | 39 |
| 0 | 690 | 38 |
| 1× | iter limit |
| 1× | iter limit |
| 1× | node limit |
| 1× | iter limit |
| Inputs |
|---|
(+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re)) |
(+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) |
(*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) |
(-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) |
(*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re) |
| Outputs |
|---|
(/.f64 (-.f64 (pow.f64 (*.f64 (/.f64 #s(literal 0 binary64) #s(literal 0 binary64)) x.re) #s(literal 2 binary64)) (pow.f64 (*.f64 (*.f64 x.im (+.f64 x.im x.re)) (-.f64 x.re x.im)) #s(literal 2 binary64))) (-.f64 (*.f64 (/.f64 #s(literal 0 binary64) #s(literal 0 binary64)) x.re) (*.f64 (*.f64 x.im (+.f64 x.im x.re)) (-.f64 x.re x.im)))) |
(/.f64 (-.f64 (pow.f64 (*.f64 (*.f64 x.im (+.f64 x.im x.re)) (-.f64 x.re x.im)) #s(literal 3 binary64)) (pow.f64 (*.f64 (/.f64 #s(literal 0 binary64) #s(literal 0 binary64)) x.re) #s(literal 3 binary64))) (+.f64 (pow.f64 (*.f64 (*.f64 x.im (+.f64 x.im x.re)) (-.f64 x.re x.im)) #s(literal 2 binary64)) (+.f64 (pow.f64 (*.f64 (/.f64 #s(literal 0 binary64) #s(literal 0 binary64)) x.re) #s(literal 2 binary64)) (*.f64 (*.f64 (/.f64 #s(literal 0 binary64) #s(literal 0 binary64)) x.re) (*.f64 (*.f64 x.im (+.f64 x.im x.re)) (-.f64 x.re x.im)))))) |
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 (*.f64 x.im (+.f64 x.im x.re)) (-.f64 x.re x.im)) #s(literal 2 binary64)) (pow.f64 (*.f64 (/.f64 #s(literal 0 binary64) #s(literal 0 binary64)) x.re) #s(literal 2 binary64)))) (neg.f64 (fma.f64 (*.f64 x.im (+.f64 x.im x.re)) (-.f64 x.re x.im) (*.f64 (/.f64 #s(literal 0 binary64) #s(literal 0 binary64)) x.re)))) |
(/.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 (/.f64 #s(literal 0 binary64) #s(literal 0 binary64)) x.re) #s(literal 3 binary64)) (pow.f64 (*.f64 (*.f64 x.im (+.f64 x.im x.re)) (-.f64 x.re x.im)) #s(literal 3 binary64)))) (neg.f64 (fma.f64 (*.f64 (/.f64 #s(literal 0 binary64) #s(literal 0 binary64)) x.re) (-.f64 (*.f64 (/.f64 #s(literal 0 binary64) #s(literal 0 binary64)) x.re) (*.f64 (*.f64 x.im (+.f64 x.im x.re)) (-.f64 x.re x.im))) (pow.f64 (*.f64 (*.f64 x.im (+.f64 x.im x.re)) (-.f64 x.re x.im)) #s(literal 2 binary64))))) |
(/.f64 (-.f64 (pow.f64 (*.f64 (*.f64 x.im (+.f64 x.im x.re)) (-.f64 x.re x.im)) #s(literal 2 binary64)) (pow.f64 (*.f64 (/.f64 #s(literal 0 binary64) #s(literal 0 binary64)) x.re) #s(literal 2 binary64))) (fma.f64 (*.f64 x.im (+.f64 x.im x.re)) (-.f64 x.re x.im) (*.f64 (/.f64 #s(literal 0 binary64) #s(literal 0 binary64)) x.re))) |
(/.f64 (+.f64 (pow.f64 (*.f64 (/.f64 #s(literal 0 binary64) #s(literal 0 binary64)) x.re) #s(literal 3 binary64)) (pow.f64 (*.f64 (*.f64 x.im (+.f64 x.im x.re)) (-.f64 x.re x.im)) #s(literal 3 binary64))) (+.f64 (pow.f64 (*.f64 (/.f64 #s(literal 0 binary64) #s(literal 0 binary64)) x.re) #s(literal 2 binary64)) (-.f64 (pow.f64 (*.f64 (*.f64 x.im (+.f64 x.im x.re)) (-.f64 x.re x.im)) #s(literal 2 binary64)) (*.f64 (*.f64 (/.f64 #s(literal 0 binary64) #s(literal 0 binary64)) x.re) (*.f64 (*.f64 x.im (+.f64 x.im x.re)) (-.f64 x.re x.im)))))) |
(/.f64 (+.f64 (pow.f64 (*.f64 (/.f64 #s(literal 0 binary64) #s(literal 0 binary64)) x.re) #s(literal 3 binary64)) (pow.f64 (*.f64 (*.f64 x.im (+.f64 x.im x.re)) (-.f64 x.re x.im)) #s(literal 3 binary64))) (fma.f64 (*.f64 (/.f64 #s(literal 0 binary64) #s(literal 0 binary64)) x.re) (-.f64 (*.f64 (/.f64 #s(literal 0 binary64) #s(literal 0 binary64)) x.re) (*.f64 (*.f64 x.im (+.f64 x.im x.re)) (-.f64 x.re x.im))) (pow.f64 (*.f64 (*.f64 x.im (+.f64 x.im x.re)) (-.f64 x.re x.im)) #s(literal 2 binary64)))) |
(fma.f64 (*.f64 x.im (+.f64 x.im x.re)) (-.f64 x.re x.im) (*.f64 (neg.f64 x.re) (/.f64 #s(literal 0 binary64) #s(literal 0 binary64)))) |
(fma.f64 (*.f64 x.im (+.f64 x.im x.re)) (-.f64 x.re x.im) (*.f64 (/.f64 #s(literal 0 binary64) #s(literal 0 binary64)) x.re)) |
(fma.f64 (+.f64 x.im x.re) (*.f64 (-.f64 x.re x.im) x.im) (*.f64 (neg.f64 x.re) (/.f64 #s(literal 0 binary64) #s(literal 0 binary64)))) |
(fma.f64 (+.f64 x.im x.re) (*.f64 (-.f64 x.re x.im) x.im) (*.f64 (/.f64 #s(literal 0 binary64) #s(literal 0 binary64)) x.re)) |
(fma.f64 (/.f64 #s(literal 0 binary64) #s(literal 0 binary64)) x.re (*.f64 (*.f64 x.im (+.f64 x.im x.re)) (-.f64 x.re x.im))) |
(fma.f64 (*.f64 (-.f64 x.re x.im) (+.f64 x.im x.re)) x.im (*.f64 (neg.f64 x.re) (/.f64 #s(literal 0 binary64) #s(literal 0 binary64)))) |
(fma.f64 (*.f64 (-.f64 x.re x.im) (+.f64 x.im x.re)) x.im (*.f64 (/.f64 #s(literal 0 binary64) #s(literal 0 binary64)) x.re)) |
(fma.f64 x.im (*.f64 (-.f64 x.re x.im) (+.f64 x.im x.re)) (*.f64 (neg.f64 x.re) (/.f64 #s(literal 0 binary64) #s(literal 0 binary64)))) |
(fma.f64 x.im (*.f64 (-.f64 x.re x.im) (+.f64 x.im x.re)) (*.f64 (/.f64 #s(literal 0 binary64) #s(literal 0 binary64)) x.re)) |
(fma.f64 x.re (/.f64 #s(literal 0 binary64) #s(literal 0 binary64)) (*.f64 (*.f64 x.im (+.f64 x.im x.re)) (-.f64 x.re x.im))) |
(-.f64 (/.f64 (pow.f64 (*.f64 (*.f64 x.im (+.f64 x.im x.re)) (-.f64 x.re x.im)) #s(literal 2 binary64)) (fma.f64 (*.f64 x.im (+.f64 x.im x.re)) (-.f64 x.re x.im) (*.f64 (/.f64 #s(literal 0 binary64) #s(literal 0 binary64)) x.re))) (/.f64 (pow.f64 (*.f64 (/.f64 #s(literal 0 binary64) #s(literal 0 binary64)) x.re) #s(literal 2 binary64)) (fma.f64 (*.f64 x.im (+.f64 x.im x.re)) (-.f64 x.re x.im) (*.f64 (/.f64 #s(literal 0 binary64) #s(literal 0 binary64)) x.re)))) |
(-.f64 (*.f64 (/.f64 #s(literal 0 binary64) #s(literal 0 binary64)) x.re) (*.f64 (neg.f64 (*.f64 (-.f64 x.re x.im) (+.f64 x.im x.re))) x.im)) |
(-.f64 (*.f64 (/.f64 #s(literal 0 binary64) #s(literal 0 binary64)) x.re) (*.f64 (neg.f64 x.im) (*.f64 (-.f64 x.re x.im) (+.f64 x.im x.re)))) |
(-.f64 (*.f64 (*.f64 x.im (+.f64 x.im x.re)) (-.f64 x.re x.im)) (*.f64 (neg.f64 x.re) (/.f64 #s(literal 0 binary64) #s(literal 0 binary64)))) |
(-.f64 (*.f64 (*.f64 x.im (+.f64 x.im x.re)) (-.f64 x.re x.im)) (*.f64 (/.f64 #s(literal 0 binary64) #s(literal 0 binary64)) x.re)) |
(+.f64 (/.f64 (pow.f64 (*.f64 (*.f64 x.im (+.f64 x.im x.re)) (-.f64 x.re x.im)) #s(literal 3 binary64)) (fma.f64 (*.f64 (/.f64 #s(literal 0 binary64) #s(literal 0 binary64)) x.re) (-.f64 (*.f64 (/.f64 #s(literal 0 binary64) #s(literal 0 binary64)) x.re) (*.f64 (*.f64 x.im (+.f64 x.im x.re)) (-.f64 x.re x.im))) (pow.f64 (*.f64 (*.f64 x.im (+.f64 x.im x.re)) (-.f64 x.re x.im)) #s(literal 2 binary64)))) (/.f64 (pow.f64 (*.f64 (/.f64 #s(literal 0 binary64) #s(literal 0 binary64)) x.re) #s(literal 3 binary64)) (fma.f64 (*.f64 (/.f64 #s(literal 0 binary64) #s(literal 0 binary64)) x.re) (-.f64 (*.f64 (/.f64 #s(literal 0 binary64) #s(literal 0 binary64)) x.re) (*.f64 (*.f64 x.im (+.f64 x.im x.re)) (-.f64 x.re x.im))) (pow.f64 (*.f64 (*.f64 x.im (+.f64 x.im x.re)) (-.f64 x.re x.im)) #s(literal 2 binary64))))) |
(+.f64 (*.f64 (/.f64 #s(literal 0 binary64) #s(literal 0 binary64)) x.re) (*.f64 (*.f64 x.im (+.f64 x.im x.re)) (-.f64 x.re x.im))) |
(+.f64 (*.f64 (*.f64 x.im (+.f64 x.im x.re)) (-.f64 x.re x.im)) (*.f64 (neg.f64 x.re) (/.f64 #s(literal 0 binary64) #s(literal 0 binary64)))) |
(+.f64 (*.f64 (*.f64 x.im (+.f64 x.im x.re)) (-.f64 x.re x.im)) (*.f64 (/.f64 #s(literal 0 binary64) #s(literal 0 binary64)) x.re)) |
(*.f64 #s(literal 2 binary64) (*.f64 x.im x.re)) |
(*.f64 x.im (+.f64 x.re x.re)) |
(*.f64 x.re (-.f64 x.im (neg.f64 x.im))) |
(*.f64 x.re (+.f64 x.im x.im)) |
(/.f64 (-.f64 (pow.f64 (*.f64 x.im x.re) #s(literal 3 binary64)) (pow.f64 (*.f64 (neg.f64 x.im) x.re) #s(literal 3 binary64))) (+.f64 (pow.f64 (*.f64 x.im x.re) #s(literal 2 binary64)) (+.f64 (pow.f64 (*.f64 x.im x.re) #s(literal 2 binary64)) (*.f64 (*.f64 x.im x.re) (*.f64 (neg.f64 x.im) x.re))))) |
(/.f64 (neg.f64 (*.f64 #s(literal 2 binary64) (pow.f64 (*.f64 x.im x.re) #s(literal 3 binary64)))) (neg.f64 (+.f64 #s(literal 0 binary64) (pow.f64 (*.f64 x.im x.re) #s(literal 2 binary64))))) |
(/.f64 (neg.f64 (*.f64 #s(literal 2 binary64) (pow.f64 (*.f64 x.im x.re) #s(literal 3 binary64)))) (+.f64 #s(literal 0 binary64) (pow.f64 (*.f64 x.im x.re) #s(literal 2 binary64)))) |
(/.f64 #s(literal 0 binary64) #s(literal 0 binary64)) |
(/.f64 (*.f64 #s(literal 2 binary64) (pow.f64 (*.f64 x.im x.re) #s(literal 3 binary64))) (neg.f64 (+.f64 #s(literal 0 binary64) (pow.f64 (*.f64 x.im x.re) #s(literal 2 binary64))))) |
(/.f64 (*.f64 #s(literal 2 binary64) (pow.f64 (*.f64 x.im x.re) #s(literal 3 binary64))) (+.f64 #s(literal 0 binary64) (pow.f64 (*.f64 x.im x.re) #s(literal 2 binary64)))) |
(neg.f64 (/.f64 #s(literal 0 binary64) #s(literal 0 binary64))) |
(fma.f64 (neg.f64 x.im) x.re (*.f64 (neg.f64 x.im) x.re)) |
(fma.f64 x.im x.re (*.f64 (neg.f64 (neg.f64 x.im)) x.re)) |
(fma.f64 x.im x.re (*.f64 x.im x.re)) |
(fma.f64 x.re (neg.f64 x.im) (*.f64 (neg.f64 x.im) x.re)) |
(fma.f64 x.re x.im (*.f64 (neg.f64 (neg.f64 x.im)) x.re)) |
(fma.f64 x.re x.im (*.f64 x.im x.re)) |
(-.f64 (/.f64 (pow.f64 (*.f64 x.im x.re) #s(literal 2 binary64)) #s(literal 0 binary64)) (/.f64 (pow.f64 (*.f64 x.im x.re) #s(literal 2 binary64)) #s(literal 0 binary64))) |
(-.f64 (*.f64 x.im x.re) (*.f64 (neg.f64 x.re) x.im)) |
(-.f64 (*.f64 x.im x.re) (*.f64 (neg.f64 x.im) x.re)) |
(+.f64 (/.f64 (pow.f64 (*.f64 x.im x.re) #s(literal 3 binary64)) (+.f64 #s(literal 0 binary64) (pow.f64 (*.f64 x.im x.re) #s(literal 2 binary64)))) (/.f64 (pow.f64 (*.f64 x.im x.re) #s(literal 3 binary64)) (+.f64 #s(literal 0 binary64) (pow.f64 (*.f64 x.im x.re) #s(literal 2 binary64))))) |
(+.f64 (*.f64 (neg.f64 x.im) x.re) (*.f64 (neg.f64 x.im) x.re)) |
(+.f64 (*.f64 x.im x.re) (*.f64 (neg.f64 (neg.f64 x.im)) x.re)) |
(+.f64 (*.f64 x.im x.re) (*.f64 x.im x.re)) |
(*.f64 (*.f64 x.im (+.f64 x.im x.re)) (-.f64 x.re x.im)) |
(*.f64 (+.f64 x.im x.re) (*.f64 (-.f64 x.re x.im) x.im)) |
(*.f64 (*.f64 (-.f64 x.re x.im) (+.f64 x.im x.re)) x.im) |
(*.f64 x.im (*.f64 (-.f64 x.re x.im) (+.f64 x.im x.re))) |
(/.f64 (*.f64 (-.f64 (pow.f64 x.re #s(literal 4 binary64)) (pow.f64 x.im #s(literal 4 binary64))) x.im) (fma.f64 x.im x.im (*.f64 x.re x.re))) |
(/.f64 (*.f64 (-.f64 (pow.f64 x.re #s(literal 6 binary64)) (pow.f64 x.im #s(literal 6 binary64))) x.im) (fma.f64 (*.f64 x.im x.im) (fma.f64 x.im x.im (*.f64 x.re x.re)) (pow.f64 x.re #s(literal 4 binary64)))) |
(/.f64 (*.f64 x.im (-.f64 (pow.f64 x.re #s(literal 4 binary64)) (pow.f64 x.im #s(literal 4 binary64)))) (fma.f64 x.im x.im (*.f64 x.re x.re))) |
(/.f64 (*.f64 x.im (-.f64 (pow.f64 x.re #s(literal 6 binary64)) (pow.f64 x.im #s(literal 6 binary64)))) (fma.f64 (*.f64 x.im x.im) (fma.f64 x.im x.im (*.f64 x.re x.re)) (pow.f64 x.re #s(literal 4 binary64)))) |
(fma.f64 x.im (*.f64 x.re x.re) (*.f64 x.im (*.f64 (neg.f64 x.im) x.im))) |
(fma.f64 (*.f64 x.re x.re) x.im (*.f64 (*.f64 (neg.f64 x.im) x.im) x.im)) |
(+.f64 (*.f64 (*.f64 x.re x.re) x.im) (*.f64 (*.f64 (neg.f64 x.im) x.im) x.im)) |
(+.f64 (*.f64 x.im (*.f64 x.re x.re)) (*.f64 x.im (*.f64 (neg.f64 x.im) x.im))) |
(*.f64 (+.f64 (neg.f64 x.re) (neg.f64 x.im)) (-.f64 (neg.f64 x.re) (neg.f64 x.im))) |
(*.f64 (+.f64 (neg.f64 x.re) (fabs.f64 x.im)) (-.f64 (neg.f64 x.re) (fabs.f64 x.im))) |
(*.f64 (+.f64 (neg.f64 x.re) x.im) (-.f64 (neg.f64 x.re) x.im)) |
(*.f64 (+.f64 (fabs.f64 x.re) (neg.f64 x.im)) (-.f64 (fabs.f64 x.re) (neg.f64 x.im))) |
(*.f64 (+.f64 (fabs.f64 x.re) (fabs.f64 x.im)) (-.f64 (fabs.f64 x.re) (fabs.f64 x.im))) |
(*.f64 (+.f64 (fabs.f64 x.re) x.im) (-.f64 (fabs.f64 x.re) x.im)) |
(*.f64 (+.f64 x.re (neg.f64 x.im)) (-.f64 x.re (neg.f64 x.im))) |
(*.f64 (+.f64 x.re (fabs.f64 x.im)) (-.f64 x.re (fabs.f64 x.im))) |
(*.f64 (-.f64 x.re x.im) (+.f64 x.im x.re)) |
(*.f64 (+.f64 x.im x.re) (-.f64 x.re x.im)) |
(/.f64 (+.f64 (pow.f64 x.re #s(literal 6 binary64)) (pow.f64 (*.f64 (neg.f64 x.im) x.im) #s(literal 3 binary64))) (+.f64 (pow.f64 x.re #s(literal 4 binary64)) (-.f64 (pow.f64 x.im #s(literal 4 binary64)) (*.f64 (*.f64 x.re x.re) (*.f64 (neg.f64 x.im) x.im))))) |
(/.f64 (neg.f64 (-.f64 (pow.f64 x.re #s(literal 4 binary64)) (pow.f64 x.im #s(literal 4 binary64)))) (neg.f64 (fma.f64 x.im x.im (*.f64 x.re x.re)))) |
(/.f64 (neg.f64 (-.f64 (pow.f64 x.re #s(literal 6 binary64)) (pow.f64 x.im #s(literal 6 binary64)))) (neg.f64 (fma.f64 (*.f64 x.im x.im) (fma.f64 x.im x.im (*.f64 x.re x.re)) (pow.f64 x.re #s(literal 4 binary64))))) |
(/.f64 (-.f64 (pow.f64 x.re #s(literal 4 binary64)) (pow.f64 x.im #s(literal 4 binary64))) (fma.f64 x.im x.im (*.f64 x.re x.re))) |
(/.f64 (-.f64 (pow.f64 x.re #s(literal 6 binary64)) (pow.f64 x.im #s(literal 6 binary64))) (fma.f64 (*.f64 x.im x.im) (fma.f64 x.im x.im (*.f64 x.re x.re)) (pow.f64 x.re #s(literal 4 binary64)))) |
(fma.f64 (pow.f64 x.re #s(literal 1 binary64)) (pow.f64 x.re #s(literal 1 binary64)) (*.f64 (neg.f64 (neg.f64 x.im)) (neg.f64 x.im))) |
(fma.f64 (pow.f64 x.re #s(literal 1 binary64)) (pow.f64 x.re #s(literal 1 binary64)) (*.f64 (neg.f64 (fabs.f64 x.im)) (fabs.f64 x.im))) |
(fma.f64 (pow.f64 x.re #s(literal 1 binary64)) (pow.f64 x.re #s(literal 1 binary64)) (*.f64 (neg.f64 x.im) x.im)) |
(fma.f64 (neg.f64 (neg.f64 x.re)) (neg.f64 (neg.f64 x.re)) (*.f64 (neg.f64 (neg.f64 x.im)) (neg.f64 x.im))) |
(fma.f64 (neg.f64 (neg.f64 x.re)) (neg.f64 (neg.f64 x.re)) (*.f64 (neg.f64 (fabs.f64 x.im)) (fabs.f64 x.im))) |
(fma.f64 (neg.f64 (neg.f64 x.re)) (neg.f64 (neg.f64 x.re)) (*.f64 (neg.f64 x.im) x.im)) |
(fma.f64 (neg.f64 (fabs.f64 x.re)) (neg.f64 (fabs.f64 x.re)) (*.f64 (neg.f64 (neg.f64 x.im)) (neg.f64 x.im))) |
(fma.f64 (neg.f64 (fabs.f64 x.re)) (neg.f64 (fabs.f64 x.re)) (*.f64 (neg.f64 (fabs.f64 x.im)) (fabs.f64 x.im))) |
(fma.f64 (neg.f64 (fabs.f64 x.re)) (neg.f64 (fabs.f64 x.re)) (*.f64 (neg.f64 x.im) x.im)) |
(fma.f64 (fabs.f64 (fabs.f64 x.re)) (fabs.f64 (fabs.f64 x.re)) (*.f64 (neg.f64 (neg.f64 x.im)) (neg.f64 x.im))) |
(fma.f64 (fabs.f64 (fabs.f64 x.re)) (fabs.f64 (fabs.f64 x.re)) (*.f64 (neg.f64 (fabs.f64 x.im)) (fabs.f64 x.im))) |
(fma.f64 (fabs.f64 (fabs.f64 x.re)) (fabs.f64 (fabs.f64 x.re)) (*.f64 (neg.f64 x.im) x.im)) |
(fma.f64 (neg.f64 x.re) (neg.f64 x.re) (*.f64 (neg.f64 (neg.f64 x.im)) (neg.f64 x.im))) |
(fma.f64 (neg.f64 x.re) (neg.f64 x.re) (*.f64 (neg.f64 (fabs.f64 x.im)) (fabs.f64 x.im))) |
(fma.f64 (neg.f64 x.re) (neg.f64 x.re) (*.f64 (neg.f64 x.im) x.im)) |
(fma.f64 (neg.f64 x.im) x.im (*.f64 x.re x.re)) |
(fma.f64 (fabs.f64 x.re) (fabs.f64 x.re) (*.f64 (neg.f64 (neg.f64 x.im)) (neg.f64 x.im))) |
(fma.f64 (fabs.f64 x.re) (fabs.f64 x.re) (*.f64 (neg.f64 (fabs.f64 x.im)) (fabs.f64 x.im))) |
(fma.f64 (fabs.f64 x.re) (fabs.f64 x.re) (*.f64 (neg.f64 x.im) x.im)) |
(fma.f64 x.im (neg.f64 x.im) (*.f64 x.re x.re)) |
(fma.f64 x.re x.re (*.f64 (neg.f64 (neg.f64 x.im)) (neg.f64 x.im))) |
(fma.f64 x.re x.re (*.f64 (neg.f64 (fabs.f64 x.im)) (fabs.f64 x.im))) |
(fma.f64 x.re x.re (*.f64 (neg.f64 x.im) x.im)) |
(-.f64 (/.f64 (pow.f64 x.re #s(literal 4 binary64)) (fma.f64 x.im x.im (*.f64 x.re x.re))) (/.f64 (pow.f64 x.im #s(literal 4 binary64)) (fma.f64 x.im x.im (*.f64 x.re x.re)))) |
(-.f64 (/.f64 (pow.f64 x.re #s(literal 6 binary64)) (fma.f64 (*.f64 x.im x.im) (fma.f64 x.im x.im (*.f64 x.re x.re)) (pow.f64 x.re #s(literal 4 binary64)))) (/.f64 (pow.f64 x.im #s(literal 6 binary64)) (fma.f64 (*.f64 x.im x.im) (fma.f64 x.im x.im (*.f64 x.re x.re)) (pow.f64 x.re #s(literal 4 binary64))))) |
(-.f64 (*.f64 x.re x.re) (*.f64 (neg.f64 (neg.f64 x.im)) x.im)) |
(-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) |
(+.f64 (*.f64 (neg.f64 x.im) x.im) (*.f64 x.re x.re)) |
(+.f64 (*.f64 x.re x.re) (*.f64 (neg.f64 (neg.f64 x.im)) (neg.f64 x.im))) |
(+.f64 (*.f64 x.re x.re) (*.f64 (neg.f64 (fabs.f64 x.im)) (fabs.f64 x.im))) |
(+.f64 (*.f64 x.re x.re) (*.f64 (neg.f64 x.im) x.im)) |
(*.f64 (/.f64 #s(literal 0 binary64) #s(literal 0 binary64)) x.re) |
(*.f64 x.re (/.f64 #s(literal 0 binary64) #s(literal 0 binary64))) |
(/.f64 (*.f64 #s(literal 0 binary64) x.re) #s(literal 0 binary64)) |
(/.f64 (*.f64 (*.f64 #s(literal 2 binary64) (pow.f64 (*.f64 x.im x.re) #s(literal 3 binary64))) x.re) (+.f64 #s(literal 0 binary64) (pow.f64 (*.f64 x.im x.re) #s(literal 2 binary64)))) |
(/.f64 (*.f64 x.re #s(literal 0 binary64)) #s(literal 0 binary64)) |
(/.f64 (*.f64 x.re (*.f64 #s(literal 2 binary64) (pow.f64 (*.f64 x.im x.re) #s(literal 3 binary64)))) (+.f64 #s(literal 0 binary64) (pow.f64 (*.f64 x.im x.re) #s(literal 2 binary64)))) |
(neg.f64 (*.f64 (/.f64 #s(literal 0 binary64) #s(literal 0 binary64)) x.re)) |
(fma.f64 (*.f64 x.im x.re) x.re (*.f64 (*.f64 x.im x.re) x.re)) |
(fma.f64 x.re (*.f64 x.im x.re) (*.f64 x.re (*.f64 x.im x.re))) |
(+.f64 (*.f64 (*.f64 x.im x.re) x.re) (*.f64 (*.f64 x.im x.re) x.re)) |
(+.f64 (*.f64 x.re (*.f64 x.im x.re)) (*.f64 x.re (*.f64 x.im x.re))) |
Compiled 3 305 to 482 computations (85.4% saved)
9 alts after pruning (9 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 126 | 9 | 135 |
| Fresh | 0 | 0 | 0 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 0 | 0 |
| Total | 127 | 9 | 136 |
| Status | Accuracy | Program |
|---|---|---|
| 84.0% | (+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (*.f64 x.re (+.f64 x.im x.im)) x.re)) | |
| ▶ | 84.4% | (+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) #s(approx (* (+ (* x.re x.im) (* x.im x.re)) x.re) (*.f64 (*.f64 (*.f64 x.re x.re) #s(literal 2 binary64)) x.im))) |
| 67.1% | (+.f64 (*.f64 #s(approx (- (* x.re x.re) (* x.im x.im)) (*.f64 (*.f64 (neg.f64 x.re) x.re) (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -1 binary64)))) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re)) | |
| ▶ | 49.5% | (+.f64 (*.f64 #s(approx (- (* x.re x.re) (* x.im x.im)) (*.f64 x.re x.re)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re)) |
| 53.1% | (+.f64 #s(approx (* (- (* x.re x.re) (* x.im x.im)) x.im) (*.f64 (*.f64 x.im x.re) x.re)) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re)) | |
| ▶ | 58.8% | #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (pow.f64 (neg.f64 x.im) #s(literal 3 binary64))) |
| 77.3% | #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (fma.f64 (*.f64 #s(literal 3 binary64) (/.f64 x.re x.im)) (/.f64 x.re x.im) #s(literal -1 binary64)) (pow.f64 x.im #s(literal 3 binary64)))) | |
| ▶ | 53.2% | #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 (*.f64 #s(literal 3 binary64) x.re) x.im) x.re)) |
| ▶ | 92.9% | #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (neg.f64 (fma.f64 (*.f64 #s(literal -3 binary64) x.re) x.re (*.f64 x.im x.im))) x.im)) |
Compiled 482 to 274 computations (43.2% saved)
| 1× | egg-herbie |
Found 19 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| cost-diff | 0 | (neg.f64 x.im) | |
| cost-diff | 0 | (pow.f64 (neg.f64 x.im) #s(literal 3 binary64)) | |
| cost-diff | 0 | #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (pow.f64 (neg.f64 x.im) #s(literal 3 binary64))) | |
| cost-diff | 0 | (*.f64 x.re x.re) | |
| cost-diff | 0 | (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) | |
| cost-diff | 0 | (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) | |
| cost-diff | 1 | (+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) #s(approx (* (+ (* x.re x.im) (* x.im x.re)) x.re) (*.f64 (*.f64 (*.f64 x.re x.re) #s(literal 2 binary64)) x.im))) | |
| cost-diff | 0 | #s(approx (- (* x.re x.re) (* x.im x.im)) (*.f64 x.re x.re)) | |
| cost-diff | 0 | (*.f64 #s(approx (- (* x.re x.re) (* x.im x.im)) (*.f64 x.re x.re)) x.im) | |
| cost-diff | 2 | (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) | |
| cost-diff | 3 | (+.f64 (*.f64 #s(approx (- (* x.re x.re) (* x.im x.im)) (*.f64 x.re x.re)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re)) | |
| cost-diff | 0 | (*.f64 #s(literal 3 binary64) x.re) | |
| cost-diff | 0 | (*.f64 (*.f64 #s(literal 3 binary64) x.re) x.im) | |
| cost-diff | 0 | (*.f64 (*.f64 (*.f64 #s(literal 3 binary64) x.re) x.im) x.re) | |
| cost-diff | 0 | #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 (*.f64 #s(literal 3 binary64) x.re) x.im) x.re)) | |
| cost-diff | 0 | (fma.f64 (*.f64 #s(literal -3 binary64) x.re) x.re (*.f64 x.im x.im)) | |
| cost-diff | 0 | (neg.f64 (fma.f64 (*.f64 #s(literal -3 binary64) x.re) x.re (*.f64 x.im x.im))) | |
| cost-diff | 0 | (*.f64 (neg.f64 (fma.f64 (*.f64 #s(literal -3 binary64) x.re) x.re (*.f64 x.im x.im))) x.im) | |
| cost-diff | 0 | #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (neg.f64 (fma.f64 (*.f64 #s(literal -3 binary64) x.re) x.re (*.f64 x.im x.im))) x.im)) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 41 | 300 |
| 0 | 64 | 302 |
| 1 | 122 | 284 |
| 2 | 323 | 276 |
| 3 | 1161 | 264 |
| 4 | 3456 | 264 |
| 5 | 6201 | 264 |
| 0 | 8700 | 262 |
| 1× | iter limit |
| 1× | node limit |
| 1× | iter limit |
| Inputs |
|---|
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (neg.f64 (fma.f64 (*.f64 #s(literal -3 binary64) x.re) x.re (*.f64 x.im x.im))) x.im)) |
(*.f64 (neg.f64 (fma.f64 (*.f64 #s(literal -3 binary64) x.re) x.re (*.f64 x.im x.im))) x.im) |
(neg.f64 (fma.f64 (*.f64 #s(literal -3 binary64) x.re) x.re (*.f64 x.im x.im))) |
(fma.f64 (*.f64 #s(literal -3 binary64) x.re) x.re (*.f64 x.im x.im)) |
(*.f64 #s(literal -3 binary64) x.re) |
#s(literal -3 binary64) |
x.re |
(*.f64 x.im x.im) |
x.im |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 (*.f64 #s(literal 3 binary64) x.re) x.im) x.re)) |
(*.f64 (*.f64 (*.f64 #s(literal 3 binary64) x.re) x.im) x.re) |
(*.f64 (*.f64 #s(literal 3 binary64) x.re) x.im) |
(*.f64 #s(literal 3 binary64) x.re) |
#s(literal 3 binary64) |
x.re |
x.im |
(+.f64 (*.f64 #s(approx (- (* x.re x.re) (* x.im x.im)) (*.f64 x.re x.re)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re)) |
(*.f64 #s(approx (- (* x.re x.re) (* x.im x.im)) (*.f64 x.re x.re)) x.im) |
#s(approx (- (* x.re x.re) (* x.im x.im)) (*.f64 x.re x.re)) |
(*.f64 x.re x.re) |
x.re |
x.im |
(*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re) |
(+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) |
(*.f64 x.re x.im) |
(*.f64 x.im x.re) |
(+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) #s(approx (* (+ (* x.re x.im) (* x.im x.re)) x.re) (*.f64 (*.f64 (*.f64 x.re x.re) #s(literal 2 binary64)) x.im))) |
(*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) |
(-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) |
(*.f64 x.re x.re) |
x.re |
(*.f64 x.im x.im) |
x.im |
#s(approx (* (+ (* x.re x.im) (* x.im x.re)) x.re) (*.f64 (*.f64 (*.f64 x.re x.re) #s(literal 2 binary64)) x.im)) |
(*.f64 (*.f64 (*.f64 x.re x.re) #s(literal 2 binary64)) x.im) |
(*.f64 (*.f64 x.re x.re) #s(literal 2 binary64)) |
#s(literal 2 binary64) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (pow.f64 (neg.f64 x.im) #s(literal 3 binary64))) |
(pow.f64 (neg.f64 x.im) #s(literal 3 binary64)) |
(neg.f64 x.im) |
x.im |
#s(literal 3 binary64) |
| Outputs |
|---|
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (neg.f64 (fma.f64 (*.f64 #s(literal -3 binary64) x.re) x.re (*.f64 x.im x.im))) x.im)) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (fma.f64 (neg.f64 x.im) x.im (*.f64 (*.f64 x.re x.re) #s(literal 3 binary64))) x.im)) |
(*.f64 (neg.f64 (fma.f64 (*.f64 #s(literal -3 binary64) x.re) x.re (*.f64 x.im x.im))) x.im) |
(*.f64 (fma.f64 (neg.f64 x.im) x.im (*.f64 (*.f64 x.re x.re) #s(literal 3 binary64))) x.im) |
(neg.f64 (fma.f64 (*.f64 #s(literal -3 binary64) x.re) x.re (*.f64 x.im x.im))) |
(fma.f64 (neg.f64 x.im) x.im (*.f64 (*.f64 x.re x.re) #s(literal 3 binary64))) |
(fma.f64 (*.f64 #s(literal -3 binary64) x.re) x.re (*.f64 x.im x.im)) |
(*.f64 #s(literal -3 binary64) x.re) |
#s(literal -3 binary64) |
x.re |
(*.f64 x.im x.im) |
x.im |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 (*.f64 #s(literal 3 binary64) x.re) x.im) x.re)) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 (*.f64 x.im x.re) x.re) #s(literal 3 binary64))) |
(*.f64 (*.f64 (*.f64 #s(literal 3 binary64) x.re) x.im) x.re) |
(*.f64 (*.f64 (*.f64 x.im x.re) x.re) #s(literal 3 binary64)) |
(*.f64 (*.f64 #s(literal 3 binary64) x.re) x.im) |
(*.f64 #s(literal 3 binary64) x.re) |
#s(literal 3 binary64) |
x.re |
x.im |
(+.f64 (*.f64 #s(approx (- (* x.re x.re) (* x.im x.im)) (*.f64 x.re x.re)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re)) |
(*.f64 (fma.f64 (*.f64 #s(literal 2 binary64) x.re) x.re #s(approx (- (* x.re x.re) (* x.im x.im)) (*.f64 x.re x.re))) x.im) |
(*.f64 #s(approx (- (* x.re x.re) (* x.im x.im)) (*.f64 x.re x.re)) x.im) |
#s(approx (- (* x.re x.re) (* x.im x.im)) (*.f64 x.re x.re)) |
(*.f64 x.re x.re) |
x.re |
x.im |
(*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re) |
(*.f64 (*.f64 #s(literal 2 binary64) (*.f64 x.im x.re)) x.re) |
(+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) |
(*.f64 #s(literal 2 binary64) (*.f64 x.im x.re)) |
(*.f64 x.re x.im) |
(*.f64 x.im x.re) |
(*.f64 x.im x.re) |
(+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) #s(approx (* (+ (* x.re x.im) (* x.im x.re)) x.re) (*.f64 (*.f64 (*.f64 x.re x.re) #s(literal 2 binary64)) x.im))) |
(fma.f64 (*.f64 (-.f64 x.re x.im) x.im) (+.f64 x.im x.re) #s(approx (* (+ (* x.re x.im) (* x.im x.re)) x.re) (*.f64 (*.f64 #s(literal 2 binary64) (*.f64 x.im x.re)) x.re))) |
(*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) |
(*.f64 (*.f64 (-.f64 x.re x.im) x.im) (+.f64 x.im x.re)) |
(-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) |
(*.f64 (-.f64 x.re x.im) (+.f64 x.im x.re)) |
(*.f64 x.re x.re) |
x.re |
(*.f64 x.im x.im) |
x.im |
#s(approx (* (+ (* x.re x.im) (* x.im x.re)) x.re) (*.f64 (*.f64 (*.f64 x.re x.re) #s(literal 2 binary64)) x.im)) |
#s(approx (* (+ (* x.re x.im) (* x.im x.re)) x.re) (*.f64 (*.f64 #s(literal 2 binary64) (*.f64 x.im x.re)) x.re)) |
(*.f64 (*.f64 (*.f64 x.re x.re) #s(literal 2 binary64)) x.im) |
(*.f64 (*.f64 #s(literal 2 binary64) (*.f64 x.im x.re)) x.re) |
(*.f64 (*.f64 x.re x.re) #s(literal 2 binary64)) |
(*.f64 #s(literal 2 binary64) (*.f64 x.re x.re)) |
#s(literal 2 binary64) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (pow.f64 (neg.f64 x.im) #s(literal 3 binary64))) |
(pow.f64 (neg.f64 x.im) #s(literal 3 binary64)) |
(neg.f64 x.im) |
x.im |
#s(literal 3 binary64) |
Found 19 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| accuracy | 0.0 | (pow.f64 (neg.f64 x.im) #s(literal 3 binary64)) | |
| accuracy | 0.0 | (neg.f64 x.im) | |
| accuracy | 26.343075903842237 | #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (pow.f64 (neg.f64 x.im) #s(literal 3 binary64))) | |
| accuracy | 2.4891853100963455 | (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) | |
| accuracy | 4.093729358302059 | (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) | |
| accuracy | 5.5937045882645275 | (+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) #s(approx (* (+ (* x.re x.im) (* x.im x.re)) x.re) (*.f64 (*.f64 (*.f64 x.re x.re) #s(literal 2 binary64)) x.im))) | |
| accuracy | 6.177586932903755 | (*.f64 (*.f64 (*.f64 x.re x.re) #s(literal 2 binary64)) x.im) | |
| accuracy | 0.14453125 | (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re) | |
| accuracy | 2.4891853100963455 | (*.f64 #s(approx (- (* x.re x.re) (* x.im x.im)) (*.f64 x.re x.re)) x.im) | |
| accuracy | 5.5937045882645275 | (+.f64 (*.f64 #s(approx (- (* x.re x.re) (* x.im x.im)) (*.f64 x.re x.re)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re)) | |
| accuracy | 31.060079738704232 | #s(approx (- (* x.re x.re) (* x.im x.im)) (*.f64 x.re x.re)) | |
| accuracy | 0.0 | (*.f64 #s(literal 3 binary64) x.re) | |
| accuracy | 0.15234375 | (*.f64 (*.f64 (*.f64 #s(literal 3 binary64) x.re) x.im) x.re) | |
| accuracy | 0.203125 | (*.f64 (*.f64 #s(literal 3 binary64) x.re) x.im) | |
| accuracy | 29.892458452864396 | #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 (*.f64 #s(literal 3 binary64) x.re) x.im) x.re)) | |
| accuracy | 0.0 | (neg.f64 (fma.f64 (*.f64 #s(literal -3 binary64) x.re) x.re (*.f64 x.im x.im))) | |
| accuracy | 0.0 | #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (neg.f64 (fma.f64 (*.f64 #s(literal -3 binary64) x.re) x.re (*.f64 x.im x.im))) x.im)) | |
| accuracy | 2.078102980844482 | (fma.f64 (*.f64 #s(literal -3 binary64) x.re) x.re (*.f64 x.im x.im)) | |
| accuracy | 2.477170708314096 | (*.f64 (neg.f64 (fma.f64 (*.f64 #s(literal -3 binary64) x.re) x.re (*.f64 x.im x.im))) x.im) |
| 64.0ms | 256× | 0 | valid |
Compiled 252 to 28 computations (88.9% saved)
ival-mult: 35.0ms (73.2% of total)ival-pow: 6.0ms (12.5% of total)ival-add: 3.0ms (6.3% of total)ival-neg: 2.0ms (4.2% of total)ival-sub: 1.0ms (2.1% of total)adjust: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)ival-true: 0.0ms (0% of total)exact: 0.0ms (0% of total)| Inputs |
|---|
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (neg.f64 (fma.f64 (*.f64 #s(literal -3 binary64) x.re) x.re (*.f64 x.im x.im))) x.im)) |
(*.f64 (neg.f64 (fma.f64 (*.f64 #s(literal -3 binary64) x.re) x.re (*.f64 x.im x.im))) x.im) |
(neg.f64 (fma.f64 (*.f64 #s(literal -3 binary64) x.re) x.re (*.f64 x.im x.im))) |
(fma.f64 (*.f64 #s(literal -3 binary64) x.re) x.re (*.f64 x.im x.im)) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 (*.f64 #s(literal 3 binary64) x.re) x.im) x.re)) |
(*.f64 (*.f64 (*.f64 #s(literal 3 binary64) x.re) x.im) x.re) |
(*.f64 (*.f64 #s(literal 3 binary64) x.re) x.im) |
(*.f64 #s(literal 3 binary64) x.re) |
(+.f64 (*.f64 #s(approx (- (* x.re x.re) (* x.im x.im)) (*.f64 x.re x.re)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re)) |
(+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) |
(*.f64 #s(approx (- (* x.re x.re) (* x.im x.im)) (*.f64 x.re x.re)) x.im) |
#s(approx (- (* x.re x.re) (* x.im x.im)) (*.f64 x.re x.re)) |
(+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) #s(approx (* (+ (* x.re x.im) (* x.im x.re)) x.re) (*.f64 (*.f64 (*.f64 x.re x.re) #s(literal 2 binary64)) x.im))) |
(*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) |
(-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) |
(*.f64 x.re x.re) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (pow.f64 (neg.f64 x.im) #s(literal 3 binary64))) |
(pow.f64 (neg.f64 x.im) #s(literal 3 binary64)) |
(neg.f64 x.im) |
(*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re) |
(*.f64 (*.f64 (*.f64 x.re x.re) #s(literal 2 binary64)) x.im) |
| Outputs |
|---|
(* -1 (pow x.im 3)) |
(+ (* -1 (pow x.im 3)) (* (pow x.re 2) (+ x.im (* 2 x.im)))) |
(+ (* -1 (pow x.im 3)) (* 3 (* x.im (pow x.re 2)))) |
(* -1 (pow x.im 2)) |
(- (* 3 (pow x.re 2)) (pow x.im 2)) |
(pow x.im 2) |
(+ (* -3 (pow x.re 2)) (pow x.im 2)) |
(* 3 (* x.im (pow x.re 2))) |
(* 3 (* x.im x.re)) |
(* 3 x.re) |
(* 2 (* x.im x.re)) |
(+ (* -1 (pow x.im 3)) (* x.im (pow x.re 2))) |
(- (pow x.re 2) (pow x.im 2)) |
(pow x.re 2) |
(* 2 (* x.im (pow x.re 2))) |
(* (pow x.re 2) (+ x.im (* 2 x.im))) |
(* (pow x.re 2) (+ x.im (+ (* -1 (/ (pow x.im 3) (pow x.re 2))) (* 2 x.im)))) |
(* (pow x.re 2) (+ (* -1 (/ (pow x.im 3) (pow x.re 2))) (* 3 x.im))) |
(* 3 (pow x.re 2)) |
(* (pow x.re 2) (+ 3 (* -1 (/ (pow x.im 2) (pow x.re 2))))) |
(* -3 (pow x.re 2)) |
(* (pow x.re 2) (- (/ (pow x.im 2) (pow x.re 2)) 3)) |
(* x.im (pow x.re 2)) |
(* (pow x.re 2) (+ x.im (* -1 (/ (pow x.im 3) (pow x.re 2))))) |
(* (pow x.re 2) (+ 1 (* -1 (/ (pow x.im 2) (pow x.re 2))))) |
(* x.im (+ (* 2 (pow x.re 2)) (pow x.re 2))) |
(* x.im (+ (* -1 (pow x.im 2)) (+ (* 2 (pow x.re 2)) (pow x.re 2)))) |
(* x.im (+ (* -1 (pow x.im 2)) (* 3 (pow x.re 2)))) |
(- (* -1 (pow x.im 2)) (* -3 (pow x.re 2))) |
(* x.im (+ (* -1 (pow x.im 2)) (pow x.re 2))) |
(+ (* -1 (pow x.im 2)) (pow x.re 2)) |
(* -1 x.im) |
(* (pow x.im 3) (- (+ (* 2 (/ (pow x.re 2) (pow x.im 2))) (/ (pow x.re 2) (pow x.im 2))) 1)) |
(* (pow x.im 3) (- (* 3 (/ (pow x.re 2) (pow x.im 2))) 1)) |
(* (pow x.im 2) (- (* 3 (/ (pow x.re 2) (pow x.im 2))) 1)) |
(* (pow x.im 2) (+ 1 (* -3 (/ (pow x.re 2) (pow x.im 2))))) |
(* (pow x.im 3) (- (/ (pow x.re 2) (pow x.im 2)) 1)) |
(* (pow x.im 2) (- (/ (pow x.re 2) (pow x.im 2)) 1)) |
(* -1 (* (pow x.im 3) (+ 1 (+ (* -2 (/ (pow x.re 2) (pow x.im 2))) (* -1 (/ (pow x.re 2) (pow x.im 2))))))) |
(* -1 (* (pow x.im 3) (+ 1 (* -3 (/ (pow x.re 2) (pow x.im 2)))))) |
(* -1 (* (pow x.im 3) (+ 1 (* -1 (/ (pow x.re 2) (pow x.im 2)))))) |
6 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 5.0ms | x.im | @ | 0 | ((+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (* (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) x.im) (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (+ (* (* -3 x.re) x.re) (* x.im x.im)) (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (* (* (* 3 x.re) x.im) x.re) (* (* 3 x.re) x.im) (* 3 x.re) (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (+ (* x.re x.im) (* x.im x.re)) (* (- (* x.re x.re) (* x.im x.im)) x.im) (- (* x.re x.re) (* x.im x.im)) (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (* (- (* x.re x.re) (* x.im x.im)) x.im) (- (* x.re x.re) (* x.im x.im)) (* x.re x.re) (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (pow (neg x.im) 3) (neg x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re) (* (* (* x.re x.re) 2) x.im)) |
| 3.0ms | x.im | @ | inf | ((+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (* (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) x.im) (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (+ (* (* -3 x.re) x.re) (* x.im x.im)) (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (* (* (* 3 x.re) x.im) x.re) (* (* 3 x.re) x.im) (* 3 x.re) (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (+ (* x.re x.im) (* x.im x.re)) (* (- (* x.re x.re) (* x.im x.im)) x.im) (- (* x.re x.re) (* x.im x.im)) (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (* (- (* x.re x.re) (* x.im x.im)) x.im) (- (* x.re x.re) (* x.im x.im)) (* x.re x.re) (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (pow (neg x.im) 3) (neg x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re) (* (* (* x.re x.re) 2) x.im)) |
| 3.0ms | x.im | @ | -inf | ((+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (* (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) x.im) (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (+ (* (* -3 x.re) x.re) (* x.im x.im)) (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (* (* (* 3 x.re) x.im) x.re) (* (* 3 x.re) x.im) (* 3 x.re) (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (+ (* x.re x.im) (* x.im x.re)) (* (- (* x.re x.re) (* x.im x.im)) x.im) (- (* x.re x.re) (* x.im x.im)) (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (* (- (* x.re x.re) (* x.im x.im)) x.im) (- (* x.re x.re) (* x.im x.im)) (* x.re x.re) (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (pow (neg x.im) 3) (neg x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re) (* (* (* x.re x.re) 2) x.im)) |
| 2.0ms | x.re | @ | inf | ((+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (* (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) x.im) (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (+ (* (* -3 x.re) x.re) (* x.im x.im)) (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (* (* (* 3 x.re) x.im) x.re) (* (* 3 x.re) x.im) (* 3 x.re) (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (+ (* x.re x.im) (* x.im x.re)) (* (- (* x.re x.re) (* x.im x.im)) x.im) (- (* x.re x.re) (* x.im x.im)) (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (* (- (* x.re x.re) (* x.im x.im)) x.im) (- (* x.re x.re) (* x.im x.im)) (* x.re x.re) (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (pow (neg x.im) 3) (neg x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re) (* (* (* x.re x.re) 2) x.im)) |
| 2.0ms | x.re | @ | -inf | ((+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (* (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) x.im) (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (+ (* (* -3 x.re) x.re) (* x.im x.im)) (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (* (* (* 3 x.re) x.im) x.re) (* (* 3 x.re) x.im) (* 3 x.re) (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (+ (* x.re x.im) (* x.im x.re)) (* (- (* x.re x.re) (* x.im x.im)) x.im) (- (* x.re x.re) (* x.im x.im)) (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (* (- (* x.re x.re) (* x.im x.im)) x.im) (- (* x.re x.re) (* x.im x.im)) (* x.re x.re) (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (pow (neg x.im) 3) (neg x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re) (* (* (* x.re x.re) 2) x.im)) |
| 1× | egg-herbie |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 86 | 401 |
| 1 | 285 | 386 |
| 2 | 1033 | 386 |
| 3 | 5222 | 386 |
| 0 | 8336 | 375 |
| 1× | iter limit |
| 1× | node limit |
| Inputs |
|---|
(* -1 (pow x.im 3)) |
(+ (* -1 (pow x.im 3)) (* (pow x.re 2) (+ x.im (* 2 x.im)))) |
(+ (* -1 (pow x.im 3)) (* 3 (* x.im (pow x.re 2)))) |
(* -1 (pow x.im 2)) |
(- (* 3 (pow x.re 2)) (pow x.im 2)) |
(pow x.im 2) |
(+ (* -3 (pow x.re 2)) (pow x.im 2)) |
(* 3 (* x.im (pow x.re 2))) |
(* 3 (* x.im x.re)) |
(* 3 x.re) |
(* 2 (* x.im x.re)) |
(+ (* -1 (pow x.im 3)) (* x.im (pow x.re 2))) |
(- (pow x.re 2) (pow x.im 2)) |
(pow x.re 2) |
(* 2 (* x.im (pow x.re 2))) |
(* (pow x.re 2) (+ x.im (* 2 x.im))) |
(* (pow x.re 2) (+ x.im (+ (* -1 (/ (pow x.im 3) (pow x.re 2))) (* 2 x.im)))) |
(* (pow x.re 2) (+ (* -1 (/ (pow x.im 3) (pow x.re 2))) (* 3 x.im))) |
(* 3 (pow x.re 2)) |
(* (pow x.re 2) (+ 3 (* -1 (/ (pow x.im 2) (pow x.re 2))))) |
(* -3 (pow x.re 2)) |
(* (pow x.re 2) (- (/ (pow x.im 2) (pow x.re 2)) 3)) |
(* x.im (pow x.re 2)) |
(* (pow x.re 2) (+ x.im (* -1 (/ (pow x.im 3) (pow x.re 2))))) |
(* (pow x.re 2) (+ 1 (* -1 (/ (pow x.im 2) (pow x.re 2))))) |
(* x.im (+ (* 2 (pow x.re 2)) (pow x.re 2))) |
(* x.im (+ (* -1 (pow x.im 2)) (+ (* 2 (pow x.re 2)) (pow x.re 2)))) |
(* x.im (+ (* -1 (pow x.im 2)) (* 3 (pow x.re 2)))) |
(- (* -1 (pow x.im 2)) (* -3 (pow x.re 2))) |
(* x.im (+ (* -1 (pow x.im 2)) (pow x.re 2))) |
(+ (* -1 (pow x.im 2)) (pow x.re 2)) |
(* -1 x.im) |
(* (pow x.im 3) (- (+ (* 2 (/ (pow x.re 2) (pow x.im 2))) (/ (pow x.re 2) (pow x.im 2))) 1)) |
(* (pow x.im 3) (- (* 3 (/ (pow x.re 2) (pow x.im 2))) 1)) |
(* (pow x.im 2) (- (* 3 (/ (pow x.re 2) (pow x.im 2))) 1)) |
(* (pow x.im 2) (+ 1 (* -3 (/ (pow x.re 2) (pow x.im 2))))) |
(* (pow x.im 3) (- (/ (pow x.re 2) (pow x.im 2)) 1)) |
(* (pow x.im 2) (- (/ (pow x.re 2) (pow x.im 2)) 1)) |
(* -1 (* (pow x.im 3) (+ 1 (+ (* -2 (/ (pow x.re 2) (pow x.im 2))) (* -1 (/ (pow x.re 2) (pow x.im 2))))))) |
(* -1 (* (pow x.im 3) (+ 1 (* -3 (/ (pow x.re 2) (pow x.im 2)))))) |
(* -1 (* (pow x.im 3) (+ 1 (* -1 (/ (pow x.re 2) (pow x.im 2)))))) |
| Outputs |
|---|
(* -1 (pow x.im 3)) |
(pow.f64 (neg.f64 x.im) #s(literal 3 binary64)) |
(+ (* -1 (pow x.im 3)) (* (pow x.re 2) (+ x.im (* 2 x.im)))) |
(*.f64 (neg.f64 x.im) (fma.f64 #s(literal -3 binary64) (*.f64 x.re x.re) (*.f64 x.im x.im))) |
(+ (* -1 (pow x.im 3)) (* 3 (* x.im (pow x.re 2)))) |
(*.f64 (neg.f64 x.im) (fma.f64 #s(literal -3 binary64) (*.f64 x.re x.re) (*.f64 x.im x.im))) |
(* -1 (pow x.im 2)) |
(*.f64 (neg.f64 x.im) x.im) |
(- (* 3 (pow x.re 2)) (pow x.im 2)) |
(neg.f64 (fma.f64 #s(literal -3 binary64) (*.f64 x.re x.re) (*.f64 x.im x.im))) |
(pow x.im 2) |
(*.f64 x.im x.im) |
(+ (* -3 (pow x.re 2)) (pow x.im 2)) |
(fma.f64 #s(literal -3 binary64) (*.f64 x.re x.re) (*.f64 x.im x.im)) |
(* 3 (* x.im (pow x.re 2))) |
(*.f64 (*.f64 (*.f64 x.re x.re) x.im) #s(literal 3 binary64)) |
(* 3 (* x.im x.re)) |
(*.f64 #s(literal 3 binary64) (*.f64 x.im x.re)) |
(* 3 x.re) |
(*.f64 #s(literal 3 binary64) x.re) |
(* 2 (* x.im x.re)) |
(*.f64 (*.f64 #s(literal 2 binary64) x.im) x.re) |
(+ (* -1 (pow x.im 3)) (* x.im (pow x.re 2))) |
(*.f64 (*.f64 x.im (+.f64 x.im x.re)) (-.f64 x.re x.im)) |
(- (pow x.re 2) (pow x.im 2)) |
(*.f64 (-.f64 x.re x.im) (+.f64 x.im x.re)) |
(pow x.re 2) |
(*.f64 x.re x.re) |
(* 2 (* x.im (pow x.re 2))) |
(*.f64 (*.f64 (*.f64 x.re x.re) #s(literal 2 binary64)) x.im) |
(* (pow x.re 2) (+ x.im (* 2 x.im))) |
(*.f64 (*.f64 (*.f64 x.re x.re) x.im) #s(literal 3 binary64)) |
(* (pow x.re 2) (+ x.im (+ (* -1 (/ (pow x.im 3) (pow x.re 2))) (* 2 x.im)))) |
(*.f64 (-.f64 (*.f64 #s(literal 3 binary64) x.im) (/.f64 (/.f64 (pow.f64 x.im #s(literal 3 binary64)) x.re) x.re)) (*.f64 x.re x.re)) |
(* (pow x.re 2) (+ (* -1 (/ (pow x.im 3) (pow x.re 2))) (* 3 x.im))) |
(*.f64 (-.f64 (*.f64 #s(literal 3 binary64) x.im) (/.f64 (/.f64 (pow.f64 x.im #s(literal 3 binary64)) x.re) x.re)) (*.f64 x.re x.re)) |
(* 3 (pow x.re 2)) |
(*.f64 (*.f64 x.re x.re) #s(literal 3 binary64)) |
(* (pow x.re 2) (+ 3 (* -1 (/ (pow x.im 2) (pow x.re 2))))) |
(*.f64 (neg.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64))) (*.f64 x.re x.re)) |
(* -3 (pow x.re 2)) |
(*.f64 #s(literal -3 binary64) (*.f64 x.re x.re)) |
(* (pow x.re 2) (- (/ (pow x.im 2) (pow x.re 2)) 3)) |
(*.f64 (*.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64)) x.re) x.re) |
(* x.im (pow x.re 2)) |
(*.f64 (*.f64 x.re x.re) x.im) |
(* (pow x.re 2) (+ x.im (* -1 (/ (pow x.im 3) (pow x.re 2))))) |
(*.f64 (-.f64 x.im (/.f64 (/.f64 (pow.f64 x.im #s(literal 3 binary64)) x.re) x.re)) (*.f64 x.re x.re)) |
(* (pow x.re 2) (+ 1 (* -1 (/ (pow x.im 2) (pow x.re 2))))) |
(*.f64 (neg.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -1 binary64))) (*.f64 x.re x.re)) |
(* x.im (+ (* 2 (pow x.re 2)) (pow x.re 2))) |
(*.f64 (*.f64 (*.f64 x.re x.re) x.im) #s(literal 3 binary64)) |
(* x.im (+ (* -1 (pow x.im 2)) (+ (* 2 (pow x.re 2)) (pow x.re 2)))) |
(*.f64 (neg.f64 x.im) (fma.f64 #s(literal -3 binary64) (*.f64 x.re x.re) (*.f64 x.im x.im))) |
(* x.im (+ (* -1 (pow x.im 2)) (* 3 (pow x.re 2)))) |
(*.f64 (neg.f64 x.im) (fma.f64 #s(literal -3 binary64) (*.f64 x.re x.re) (*.f64 x.im x.im))) |
(- (* -1 (pow x.im 2)) (* -3 (pow x.re 2))) |
(neg.f64 (fma.f64 #s(literal -3 binary64) (*.f64 x.re x.re) (*.f64 x.im x.im))) |
(* x.im (+ (* -1 (pow x.im 2)) (pow x.re 2))) |
(*.f64 (*.f64 x.im (+.f64 x.im x.re)) (-.f64 x.re x.im)) |
(+ (* -1 (pow x.im 2)) (pow x.re 2)) |
(*.f64 (-.f64 x.re x.im) (+.f64 x.im x.re)) |
(* -1 x.im) |
(neg.f64 x.im) |
(* (pow x.im 3) (- (+ (* 2 (/ (pow x.re 2) (pow x.im 2))) (/ (pow x.re 2) (pow x.im 2))) 1)) |
(*.f64 (fma.f64 (*.f64 #s(literal 3 binary64) (/.f64 x.re x.im)) (/.f64 x.re x.im) #s(literal -1 binary64)) (pow.f64 x.im #s(literal 3 binary64))) |
(* (pow x.im 3) (- (* 3 (/ (pow x.re 2) (pow x.im 2))) 1)) |
(*.f64 (fma.f64 (*.f64 #s(literal 3 binary64) (/.f64 x.re x.im)) (/.f64 x.re x.im) #s(literal -1 binary64)) (pow.f64 x.im #s(literal 3 binary64))) |
(* (pow x.im 2) (- (* 3 (/ (pow x.re 2) (pow x.im 2))) 1)) |
(*.f64 (fma.f64 (*.f64 #s(literal 3 binary64) (/.f64 x.re x.im)) (/.f64 x.re x.im) #s(literal -1 binary64)) (*.f64 x.im x.im)) |
(* (pow x.im 2) (+ 1 (* -3 (/ (pow x.re 2) (pow x.im 2))))) |
(*.f64 (fma.f64 (*.f64 #s(literal -3 binary64) (/.f64 x.re x.im)) (/.f64 x.re x.im) #s(literal 1 binary64)) (*.f64 x.im x.im)) |
(* (pow x.im 3) (- (/ (pow x.re 2) (pow x.im 2)) 1)) |
(*.f64 (fma.f64 (/.f64 (/.f64 x.re x.im) x.im) x.re #s(literal -1 binary64)) (pow.f64 x.im #s(literal 3 binary64))) |
(* (pow x.im 2) (- (/ (pow x.re 2) (pow x.im 2)) 1)) |
(*.f64 (fma.f64 (/.f64 (/.f64 x.re x.im) x.im) x.re #s(literal -1 binary64)) (*.f64 x.im x.im)) |
(* -1 (* (pow x.im 3) (+ 1 (+ (* -2 (/ (pow x.re 2) (pow x.im 2))) (* -1 (/ (pow x.re 2) (pow x.im 2))))))) |
(*.f64 (fma.f64 (*.f64 #s(literal 3 binary64) (/.f64 x.re x.im)) (/.f64 x.re x.im) #s(literal -1 binary64)) (pow.f64 x.im #s(literal 3 binary64))) |
(* -1 (* (pow x.im 3) (+ 1 (* -3 (/ (pow x.re 2) (pow x.im 2)))))) |
(*.f64 (fma.f64 (*.f64 #s(literal 3 binary64) (/.f64 x.re x.im)) (/.f64 x.re x.im) #s(literal -1 binary64)) (pow.f64 x.im #s(literal 3 binary64))) |
(* -1 (* (pow x.im 3) (+ 1 (* -1 (/ (pow x.re 2) (pow x.im 2)))))) |
(*.f64 (fma.f64 (/.f64 (/.f64 x.re x.im) x.im) x.re #s(literal -1 binary64)) (pow.f64 x.im #s(literal 3 binary64))) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 41 | 247 |
| 0 | 64 | 247 |
| 0 | 202 | 235 |
| 1× | iter limit |
| 1× | iter limit |
| 1× | iter limit |
| 1× | unsound |
| 1× | iter limit |
| Inputs |
|---|
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (neg.f64 (fma.f64 (*.f64 #s(literal -3 binary64) x.re) x.re (*.f64 x.im x.im))) x.im)) |
(*.f64 (neg.f64 (fma.f64 (*.f64 #s(literal -3 binary64) x.re) x.re (*.f64 x.im x.im))) x.im) |
(neg.f64 (fma.f64 (*.f64 #s(literal -3 binary64) x.re) x.re (*.f64 x.im x.im))) |
(fma.f64 (*.f64 #s(literal -3 binary64) x.re) x.re (*.f64 x.im x.im)) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 (*.f64 #s(literal 3 binary64) x.re) x.im) x.re)) |
(*.f64 (*.f64 (*.f64 #s(literal 3 binary64) x.re) x.im) x.re) |
(*.f64 (*.f64 #s(literal 3 binary64) x.re) x.im) |
(*.f64 #s(literal 3 binary64) x.re) |
(+.f64 (*.f64 #s(approx (- (* x.re x.re) (* x.im x.im)) (*.f64 x.re x.re)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re)) |
(+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) |
(*.f64 #s(approx (- (* x.re x.re) (* x.im x.im)) (*.f64 x.re x.re)) x.im) |
#s(approx (- (* x.re x.re) (* x.im x.im)) (*.f64 x.re x.re)) |
(+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) #s(approx (* (+ (* x.re x.im) (* x.im x.re)) x.re) (*.f64 (*.f64 (*.f64 x.re x.re) #s(literal 2 binary64)) x.im))) |
(*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) |
(-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) |
(*.f64 x.re x.re) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (pow.f64 (neg.f64 x.im) #s(literal 3 binary64))) |
(pow.f64 (neg.f64 x.im) #s(literal 3 binary64)) |
(neg.f64 x.im) |
(*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re) |
(*.f64 (*.f64 (*.f64 x.re x.re) #s(literal 2 binary64)) x.im) |
| Outputs |
|---|
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (neg.f64 (*.f64 (fma.f64 (*.f64 #s(literal -3 binary64) x.re) x.re (*.f64 x.im x.im)) x.im))) |
(*.f64 (neg.f64 (fma.f64 (*.f64 #s(literal -3 binary64) x.re) x.re (*.f64 x.im x.im))) x.im) |
(*.f64 x.im (neg.f64 (fma.f64 (*.f64 #s(literal -3 binary64) x.re) x.re (*.f64 x.im x.im)))) |
(neg.f64 (*.f64 (fma.f64 (*.f64 #s(literal -3 binary64) x.re) x.re (*.f64 x.im x.im)) x.im)) |
(neg.f64 (fma.f64 (*.f64 #s(literal -3 binary64) x.re) x.re (*.f64 x.im x.im))) |
(+.f64 (neg.f64 (*.f64 (*.f64 #s(literal -3 binary64) x.re) x.re)) (neg.f64 (*.f64 x.im x.im))) |
(/.f64 (-.f64 (*.f64 (*.f64 (*.f64 #s(literal -3 binary64) x.re) x.re) (*.f64 (*.f64 #s(literal -3 binary64) x.re) x.re)) (*.f64 (*.f64 x.im x.im) (*.f64 x.im x.im))) (-.f64 (*.f64 (*.f64 #s(literal -3 binary64) x.re) x.re) (*.f64 x.im x.im))) |
(/.f64 (+.f64 (pow.f64 (*.f64 (*.f64 #s(literal -3 binary64) x.re) x.re) #s(literal 3 binary64)) (pow.f64 (*.f64 x.im x.im) #s(literal 3 binary64))) (fma.f64 (*.f64 (*.f64 #s(literal -3 binary64) x.re) x.re) (*.f64 (*.f64 #s(literal -3 binary64) x.re) x.re) (-.f64 (*.f64 (*.f64 x.im x.im) (*.f64 x.im x.im)) (*.f64 (*.f64 (*.f64 #s(literal -3 binary64) x.re) x.re) (*.f64 x.im x.im))))) |
(fma.f64 (fabs.f64 x.im) (fabs.f64 x.im) (*.f64 (*.f64 #s(literal -3 binary64) x.re) x.re)) |
(fma.f64 (neg.f64 x.im) (neg.f64 x.im) (*.f64 (*.f64 #s(literal -3 binary64) x.re) x.re)) |
(fma.f64 (*.f64 #s(literal -3 binary64) x.re) x.re (*.f64 x.im x.im)) |
(fma.f64 #s(literal -3 binary64) (*.f64 x.re x.re) (*.f64 x.im x.im)) |
(fma.f64 x.im x.im (*.f64 (*.f64 #s(literal -3 binary64) x.re) x.re)) |
(fma.f64 x.re (*.f64 #s(literal -3 binary64) x.re) (*.f64 x.im x.im)) |
(-.f64 (*.f64 (*.f64 #s(literal -3 binary64) x.re) x.re) (*.f64 (neg.f64 x.im) x.im)) |
(+.f64 (*.f64 (*.f64 #s(literal -3 binary64) x.re) x.re) (*.f64 x.im x.im)) |
(+.f64 (*.f64 x.im x.im) (*.f64 (*.f64 #s(literal -3 binary64) x.re) x.re)) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 (*.f64 #s(literal 3 binary64) x.re) x.im) x.re)) |
(*.f64 (*.f64 (*.f64 #s(literal 3 binary64) x.re) x.im) x.re) |
(*.f64 (*.f64 #s(literal 3 binary64) x.re) (*.f64 x.im x.re)) |
(*.f64 x.re (*.f64 (*.f64 #s(literal 3 binary64) x.re) x.im)) |
(*.f64 (*.f64 #s(literal 3 binary64) x.re) x.im) |
(*.f64 #s(literal 3 binary64) (*.f64 x.im x.re)) |
(*.f64 x.im (*.f64 #s(literal 3 binary64) x.re)) |
(*.f64 #s(literal 3 binary64) x.re) |
(*.f64 x.re #s(literal 3 binary64)) |
(/.f64 (-.f64 (*.f64 (*.f64 #s(approx (- (* x.re x.re) (* x.im x.im)) (*.f64 x.re x.re)) x.im) (*.f64 #s(approx (- (* x.re x.re) (* x.im x.im)) (*.f64 x.re x.re)) x.im)) (*.f64 (*.f64 (fma.f64 x.im x.re (*.f64 x.im x.re)) x.re) (*.f64 (fma.f64 x.im x.re (*.f64 x.im x.re)) x.re))) (-.f64 (*.f64 #s(approx (- (* x.re x.re) (* x.im x.im)) (*.f64 x.re x.re)) x.im) (*.f64 (fma.f64 x.im x.re (*.f64 x.im x.re)) x.re))) |
(/.f64 (+.f64 (pow.f64 (*.f64 #s(approx (- (* x.re x.re) (* x.im x.im)) (*.f64 x.re x.re)) x.im) #s(literal 3 binary64)) (pow.f64 (*.f64 (fma.f64 x.im x.re (*.f64 x.im x.re)) x.re) #s(literal 3 binary64))) (fma.f64 (*.f64 #s(approx (- (* x.re x.re) (* x.im x.im)) (*.f64 x.re x.re)) x.im) (*.f64 #s(approx (- (* x.re x.re) (* x.im x.im)) (*.f64 x.re x.re)) x.im) (-.f64 (*.f64 (*.f64 (fma.f64 x.im x.re (*.f64 x.im x.re)) x.re) (*.f64 (fma.f64 x.im x.re (*.f64 x.im x.re)) x.re)) (*.f64 (*.f64 #s(approx (- (* x.re x.re) (* x.im x.im)) (*.f64 x.re x.re)) x.im) (*.f64 (fma.f64 x.im x.re (*.f64 x.im x.re)) x.re))))) |
(fma.f64 (fma.f64 x.im x.re (*.f64 x.im x.re)) x.re (*.f64 #s(approx (- (* x.re x.re) (* x.im x.im)) (*.f64 x.re x.re)) x.im)) |
(fma.f64 #s(approx (- (* x.re x.re) (* x.im x.im)) (*.f64 x.re x.re)) x.im (*.f64 (fma.f64 x.im x.re (*.f64 x.im x.re)) x.re)) |
(fma.f64 x.im #s(approx (- (* x.re x.re) (* x.im x.im)) (*.f64 x.re x.re)) (*.f64 (fma.f64 x.im x.re (*.f64 x.im x.re)) x.re)) |
(fma.f64 x.re (fma.f64 x.im x.re (*.f64 x.im x.re)) (*.f64 #s(approx (- (* x.re x.re) (* x.im x.im)) (*.f64 x.re x.re)) x.im)) |
(-.f64 (*.f64 #s(approx (- (* x.re x.re) (* x.im x.im)) (*.f64 x.re x.re)) x.im) (*.f64 (neg.f64 (fma.f64 x.im x.re (*.f64 x.im x.re))) x.re)) |
(+.f64 (*.f64 (fma.f64 x.im x.re (*.f64 x.im x.re)) x.re) (*.f64 #s(approx (- (* x.re x.re) (* x.im x.im)) (*.f64 x.re x.re)) x.im)) |
(+.f64 (*.f64 #s(approx (- (* x.re x.re) (* x.im x.im)) (*.f64 x.re x.re)) x.im) (*.f64 (fma.f64 x.im x.re (*.f64 x.im x.re)) x.re)) |
(/.f64 (-.f64 (*.f64 (*.f64 x.im x.re) (*.f64 x.im x.re)) (*.f64 (*.f64 x.im x.re) (*.f64 x.im x.re))) (-.f64 (*.f64 x.im x.re) (*.f64 x.im x.re))) |
(/.f64 (+.f64 (pow.f64 (*.f64 x.im x.re) #s(literal 3 binary64)) (pow.f64 (*.f64 x.im x.re) #s(literal 3 binary64))) (fma.f64 (*.f64 x.im x.re) (*.f64 x.im x.re) (-.f64 (*.f64 (*.f64 x.im x.re) (*.f64 x.im x.re)) (*.f64 (*.f64 x.im x.re) (*.f64 x.im x.re))))) |
(fma.f64 x.im x.re (*.f64 x.im x.re)) |
(fma.f64 x.re x.im (*.f64 x.im x.re)) |
(-.f64 (*.f64 x.im x.re) (*.f64 (neg.f64 x.im) x.re)) |
(+.f64 (*.f64 x.im x.re) (*.f64 x.im x.re)) |
(*.f64 #s(approx (- (* x.re x.re) (* x.im x.im)) (*.f64 x.re x.re)) x.im) |
(*.f64 x.im #s(approx (- (* x.re x.re) (* x.im x.im)) (*.f64 x.re x.re))) |
#s(approx (- (* x.re x.re) (* x.im x.im)) (*.f64 x.re x.re)) |
(/.f64 (-.f64 (*.f64 (*.f64 (*.f64 (+.f64 x.re x.im) (-.f64 x.re x.im)) x.im) (*.f64 (*.f64 (+.f64 x.re x.im) (-.f64 x.re x.im)) x.im)) (*.f64 #s(approx (* (+ (* x.re x.im) (* x.im x.re)) x.re) (*.f64 (*.f64 #s(literal 2 binary64) (*.f64 x.re x.re)) x.im)) #s(approx (* (+ (* x.re x.im) (* x.im x.re)) x.re) (*.f64 (*.f64 #s(literal 2 binary64) (*.f64 x.re x.re)) x.im)))) (-.f64 (*.f64 (*.f64 (+.f64 x.re x.im) (-.f64 x.re x.im)) x.im) #s(approx (* (+ (* x.re x.im) (* x.im x.re)) x.re) (*.f64 (*.f64 #s(literal 2 binary64) (*.f64 x.re x.re)) x.im)))) |
(/.f64 (+.f64 (pow.f64 (*.f64 (*.f64 (+.f64 x.re x.im) (-.f64 x.re x.im)) x.im) #s(literal 3 binary64)) (pow.f64 #s(approx (* (+ (* x.re x.im) (* x.im x.re)) x.re) (*.f64 (*.f64 #s(literal 2 binary64) (*.f64 x.re x.re)) x.im)) #s(literal 3 binary64))) (fma.f64 (*.f64 (*.f64 (+.f64 x.re x.im) (-.f64 x.re x.im)) x.im) (*.f64 (*.f64 (+.f64 x.re x.im) (-.f64 x.re x.im)) x.im) (-.f64 (*.f64 #s(approx (* (+ (* x.re x.im) (* x.im x.re)) x.re) (*.f64 (*.f64 #s(literal 2 binary64) (*.f64 x.re x.re)) x.im)) #s(approx (* (+ (* x.re x.im) (* x.im x.re)) x.re) (*.f64 (*.f64 #s(literal 2 binary64) (*.f64 x.re x.re)) x.im))) (*.f64 (*.f64 (*.f64 (+.f64 x.re x.im) (-.f64 x.re x.im)) x.im) #s(approx (* (+ (* x.re x.im) (* x.im x.re)) x.re) (*.f64 (*.f64 #s(literal 2 binary64) (*.f64 x.re x.re)) x.im)))))) |
(fma.f64 (*.f64 (+.f64 x.re x.im) (-.f64 x.re x.im)) x.im #s(approx (* (+ (* x.re x.im) (* x.im x.re)) x.re) (*.f64 (*.f64 #s(literal 2 binary64) (*.f64 x.re x.re)) x.im))) |
(fma.f64 x.im (*.f64 (+.f64 x.re x.im) (-.f64 x.re x.im)) #s(approx (* (+ (* x.re x.im) (* x.im x.re)) x.re) (*.f64 (*.f64 #s(literal 2 binary64) (*.f64 x.re x.re)) x.im))) |
(+.f64 #s(approx (* (+ (* x.re x.im) (* x.im x.re)) x.re) (*.f64 (*.f64 #s(literal 2 binary64) (*.f64 x.re x.re)) x.im)) (*.f64 (*.f64 (+.f64 x.re x.im) (-.f64 x.re x.im)) x.im)) |
(+.f64 (*.f64 (*.f64 (+.f64 x.re x.im) (-.f64 x.re x.im)) x.im) #s(approx (* (+ (* x.re x.im) (* x.im x.re)) x.re) (*.f64 (*.f64 #s(literal 2 binary64) (*.f64 x.re x.re)) x.im))) |
(*.f64 (*.f64 (+.f64 x.re x.im) (-.f64 x.re x.im)) x.im) |
(*.f64 x.im (*.f64 (+.f64 x.re x.im) (-.f64 x.re x.im))) |
(*.f64 (+.f64 x.re x.im) (-.f64 x.re x.im)) |
(/.f64 (-.f64 (*.f64 (*.f64 x.re x.re) (*.f64 x.re x.re)) (*.f64 (*.f64 x.im x.im) (*.f64 x.im x.im))) (fma.f64 x.re x.re (*.f64 x.im x.im))) |
(/.f64 (-.f64 (pow.f64 (*.f64 x.re x.re) #s(literal 3 binary64)) (pow.f64 (*.f64 x.im x.im) #s(literal 3 binary64))) (fma.f64 (*.f64 x.re x.re) (*.f64 x.re x.re) (fma.f64 (*.f64 x.im x.im) (*.f64 x.im x.im) (*.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))) |
(fma.f64 (neg.f64 x.re) (neg.f64 x.re) (*.f64 (neg.f64 x.im) x.im)) |
(fma.f64 (fabs.f64 x.re) (fabs.f64 x.re) (*.f64 (neg.f64 x.im) x.im)) |
(fma.f64 x.re x.re (*.f64 (neg.f64 x.im) x.im)) |
(-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) |
(+.f64 (*.f64 x.re x.re) (*.f64 (neg.f64 x.im) x.im)) |
(*.f64 (neg.f64 x.re) (neg.f64 x.re)) |
(*.f64 (fabs.f64 x.re) (fabs.f64 x.re)) |
(*.f64 x.re x.re) |
(pow.f64 x.re #s(literal 2 binary64)) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (pow.f64 (neg.f64 x.im) #s(literal 3 binary64))) |
(*.f64 (pow.f64 (neg.f64 x.im) #s(literal 3/2 binary64)) (pow.f64 (neg.f64 x.im) #s(literal 3/2 binary64))) |
(*.f64 (neg.f64 x.im) (*.f64 x.im x.im)) |
(*.f64 (*.f64 x.im x.im) (neg.f64 x.im)) |
(pow.f64 (neg.f64 x.im) #s(literal 3 binary64)) |
(neg.f64 (pow.f64 x.im #s(literal 3 binary64))) |
(exp.f64 (*.f64 (log.f64 (neg.f64 x.im)) #s(literal 3 binary64))) |
(neg.f64 x.im) |
(*.f64 (fma.f64 x.im x.re (*.f64 x.im x.re)) x.re) |
(*.f64 x.re (fma.f64 x.im x.re (*.f64 x.im x.re))) |
(*.f64 (*.f64 #s(literal 2 binary64) (*.f64 x.re x.re)) x.im) |
(*.f64 (*.f64 x.re x.re) (*.f64 #s(literal 2 binary64) x.im)) |
(*.f64 x.im (*.f64 #s(literal 2 binary64) (*.f64 x.re x.re))) |
Compiled 3 833 to 417 computations (89.1% saved)
10 alts after pruning (8 fresh and 2 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 110 | 8 | 118 |
| Fresh | 4 | 0 | 4 |
| Picked | 3 | 2 | 5 |
| Done | 0 | 0 | 0 |
| Total | 117 | 10 | 127 |
| Status | Accuracy | Program |
|---|---|---|
| ▶ | 87.6% | (fma.f64 (*.f64 (+.f64 x.re x.im) (-.f64 x.re x.im)) x.im #s(approx (* (+ (* x.re x.im) (* x.im x.re)) x.re) (*.f64 (*.f64 #s(literal 2 binary64) (*.f64 x.re x.re)) x.im))) |
| ✓ | 58.8% | #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (pow.f64 (neg.f64 x.im) #s(literal 3 binary64))) |
| 49.5% | #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 (*.f64 x.re x.re) x.im) #s(literal 3 binary64))) | |
| ▶ | 58.7% | #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 x.im x.im) (neg.f64 x.im))) |
| ▶ | 53.2% | #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 #s(literal 3 binary64) (*.f64 x.im x.re)) x.re)) |
| 53.2% | #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 #s(literal 3 binary64) x.re) (*.f64 x.im x.re))) | |
| ✓ | 92.9% | #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (neg.f64 (fma.f64 (*.f64 #s(literal -3 binary64) x.re) x.re (*.f64 x.im x.im))) x.im)) |
| 85.2% | #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (neg.f64 #s(approx (+ (* (* -3 x.re) x.re) (* x.im x.im)) (*.f64 (*.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64)) x.re) x.re))) x.im)) | |
| ▶ | 79.1% | #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (fma.f64 (*.f64 #s(literal 3 binary64) (/.f64 x.re x.im)) (/.f64 x.re x.im) #s(literal -1 binary64)) (*.f64 x.im x.im))) x.im)) |
| ▶ | 75.6% | #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (neg.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64))) (*.f64 x.re x.re))) x.im)) |
Compiled 597 to 339 computations (43.2% saved)
| 1× | egg-herbie |
Found 20 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| cost-diff | 0 | (*.f64 (fma.f64 (*.f64 #s(literal 3 binary64) (/.f64 x.re x.im)) (/.f64 x.re x.im) #s(literal -1 binary64)) (*.f64 x.im x.im)) | |
| cost-diff | 0 | #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (fma.f64 (*.f64 #s(literal 3 binary64) (/.f64 x.re x.im)) (/.f64 x.re x.im) #s(literal -1 binary64)) (*.f64 x.im x.im))) | |
| cost-diff | 0 | (*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (fma.f64 (*.f64 #s(literal 3 binary64) (/.f64 x.re x.im)) (/.f64 x.re x.im) #s(literal -1 binary64)) (*.f64 x.im x.im))) x.im) | |
| cost-diff | 0 | #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (fma.f64 (*.f64 #s(literal 3 binary64) (/.f64 x.re x.im)) (/.f64 x.re x.im) #s(literal -1 binary64)) (*.f64 x.im x.im))) x.im)) | |
| cost-diff | 0 | (*.f64 (neg.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64))) (*.f64 x.re x.re)) | |
| cost-diff | 0 | #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (neg.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64))) (*.f64 x.re x.re))) | |
| cost-diff | 0 | (*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (neg.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64))) (*.f64 x.re x.re))) x.im) | |
| cost-diff | 0 | #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (neg.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64))) (*.f64 x.re x.re))) x.im)) | |
| cost-diff | 0 | (*.f64 x.im x.re) | |
| cost-diff | 0 | (*.f64 #s(literal 3 binary64) (*.f64 x.im x.re)) | |
| cost-diff | 0 | (*.f64 (*.f64 #s(literal 3 binary64) (*.f64 x.im x.re)) x.re) | |
| cost-diff | 0 | #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 #s(literal 3 binary64) (*.f64 x.im x.re)) x.re)) | |
| cost-diff | 0 | (neg.f64 x.im) | |
| cost-diff | 0 | (*.f64 x.im x.im) | |
| cost-diff | 0 | #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 x.im x.im) (neg.f64 x.im))) | |
| cost-diff | 2 | (*.f64 (*.f64 x.im x.im) (neg.f64 x.im)) | |
| cost-diff | 0 | (-.f64 x.re x.im) | |
| cost-diff | 0 | (+.f64 x.re x.im) | |
| cost-diff | 0 | (*.f64 (+.f64 x.re x.im) (-.f64 x.re x.im)) | |
| cost-diff | 0 | (fma.f64 (*.f64 (+.f64 x.re x.im) (-.f64 x.re x.im)) x.im #s(approx (* (+ (* x.re x.im) (* x.im x.re)) x.re) (*.f64 (*.f64 #s(literal 2 binary64) (*.f64 x.re x.re)) x.im))) |
Useful iterations: 3 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 49 | 430 |
| 0 | 75 | 430 |
| 1 | 161 | 414 |
| 2 | 485 | 400 |
| 3 | 1688 | 384 |
| 4 | 5726 | 384 |
| 0 | 9046 | 384 |
| 1× | iter limit |
| 1× | node limit |
| 1× | iter limit |
| Inputs |
|---|
(fma.f64 (*.f64 (+.f64 x.re x.im) (-.f64 x.re x.im)) x.im #s(approx (* (+ (* x.re x.im) (* x.im x.re)) x.re) (*.f64 (*.f64 #s(literal 2 binary64) (*.f64 x.re x.re)) x.im))) |
(*.f64 (+.f64 x.re x.im) (-.f64 x.re x.im)) |
(+.f64 x.re x.im) |
x.re |
x.im |
(-.f64 x.re x.im) |
#s(approx (* (+ (* x.re x.im) (* x.im x.re)) x.re) (*.f64 (*.f64 #s(literal 2 binary64) (*.f64 x.re x.re)) x.im)) |
(*.f64 (*.f64 #s(literal 2 binary64) (*.f64 x.re x.re)) x.im) |
(*.f64 #s(literal 2 binary64) (*.f64 x.re x.re)) |
#s(literal 2 binary64) |
(*.f64 x.re x.re) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 x.im x.im) (neg.f64 x.im))) |
(*.f64 (*.f64 x.im x.im) (neg.f64 x.im)) |
(*.f64 x.im x.im) |
x.im |
(neg.f64 x.im) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 #s(literal 3 binary64) (*.f64 x.im x.re)) x.re)) |
(*.f64 (*.f64 #s(literal 3 binary64) (*.f64 x.im x.re)) x.re) |
(*.f64 #s(literal 3 binary64) (*.f64 x.im x.re)) |
#s(literal 3 binary64) |
(*.f64 x.im x.re) |
x.im |
x.re |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (neg.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64))) (*.f64 x.re x.re))) x.im)) |
(*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (neg.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64))) (*.f64 x.re x.re))) x.im) |
#s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (neg.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64))) (*.f64 x.re x.re))) |
(*.f64 (neg.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64))) (*.f64 x.re x.re)) |
(neg.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64))) |
(fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64)) |
(/.f64 x.im x.re) |
x.im |
x.re |
#s(literal -3 binary64) |
(*.f64 x.re x.re) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (fma.f64 (*.f64 #s(literal 3 binary64) (/.f64 x.re x.im)) (/.f64 x.re x.im) #s(literal -1 binary64)) (*.f64 x.im x.im))) x.im)) |
(*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (fma.f64 (*.f64 #s(literal 3 binary64) (/.f64 x.re x.im)) (/.f64 x.re x.im) #s(literal -1 binary64)) (*.f64 x.im x.im))) x.im) |
#s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (fma.f64 (*.f64 #s(literal 3 binary64) (/.f64 x.re x.im)) (/.f64 x.re x.im) #s(literal -1 binary64)) (*.f64 x.im x.im))) |
(*.f64 (fma.f64 (*.f64 #s(literal 3 binary64) (/.f64 x.re x.im)) (/.f64 x.re x.im) #s(literal -1 binary64)) (*.f64 x.im x.im)) |
(fma.f64 (*.f64 #s(literal 3 binary64) (/.f64 x.re x.im)) (/.f64 x.re x.im) #s(literal -1 binary64)) |
(*.f64 #s(literal 3 binary64) (/.f64 x.re x.im)) |
#s(literal 3 binary64) |
(/.f64 x.re x.im) |
x.re |
x.im |
#s(literal -1 binary64) |
(*.f64 x.im x.im) |
| Outputs |
|---|
(fma.f64 (*.f64 (+.f64 x.re x.im) (-.f64 x.re x.im)) x.im #s(approx (* (+ (* x.re x.im) (* x.im x.re)) x.re) (*.f64 (*.f64 #s(literal 2 binary64) (*.f64 x.re x.re)) x.im))) |
(fma.f64 (*.f64 (-.f64 x.re x.im) (+.f64 x.im x.re)) x.im #s(approx (* (+ (* x.re x.im) (* x.im x.re)) x.re) (*.f64 (*.f64 #s(literal 2 binary64) x.im) (*.f64 x.re x.re)))) |
(*.f64 (+.f64 x.re x.im) (-.f64 x.re x.im)) |
(*.f64 (-.f64 x.re x.im) (+.f64 x.im x.re)) |
(+.f64 x.re x.im) |
(+.f64 x.im x.re) |
x.re |
x.im |
(-.f64 x.re x.im) |
#s(approx (* (+ (* x.re x.im) (* x.im x.re)) x.re) (*.f64 (*.f64 #s(literal 2 binary64) (*.f64 x.re x.re)) x.im)) |
#s(approx (* (+ (* x.re x.im) (* x.im x.re)) x.re) (*.f64 (*.f64 #s(literal 2 binary64) x.im) (*.f64 x.re x.re))) |
(*.f64 (*.f64 #s(literal 2 binary64) (*.f64 x.re x.re)) x.im) |
(*.f64 (*.f64 #s(literal 2 binary64) x.im) (*.f64 x.re x.re)) |
(*.f64 #s(literal 2 binary64) (*.f64 x.re x.re)) |
(*.f64 (*.f64 x.re x.re) #s(literal 2 binary64)) |
#s(literal 2 binary64) |
(*.f64 x.re x.re) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 x.im x.im) (neg.f64 x.im))) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (pow.f64 (neg.f64 x.im) #s(literal 3 binary64))) |
(*.f64 (*.f64 x.im x.im) (neg.f64 x.im)) |
(pow.f64 (neg.f64 x.im) #s(literal 3 binary64)) |
(*.f64 x.im x.im) |
x.im |
(neg.f64 x.im) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 #s(literal 3 binary64) (*.f64 x.im x.re)) x.re)) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 (*.f64 x.im x.re) x.re) #s(literal 3 binary64))) |
(*.f64 (*.f64 #s(literal 3 binary64) (*.f64 x.im x.re)) x.re) |
(*.f64 (*.f64 (*.f64 x.im x.re) x.re) #s(literal 3 binary64)) |
(*.f64 #s(literal 3 binary64) (*.f64 x.im x.re)) |
(*.f64 (*.f64 x.im x.re) #s(literal 3 binary64)) |
#s(literal 3 binary64) |
(*.f64 x.im x.re) |
x.im |
x.re |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (neg.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64))) (*.f64 x.re x.re))) x.im)) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (*.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64)) x.re) (neg.f64 x.re))) x.im)) |
(*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (neg.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64))) (*.f64 x.re x.re))) x.im) |
(*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (*.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64)) x.re) (neg.f64 x.re))) x.im) |
#s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (neg.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64))) (*.f64 x.re x.re))) |
#s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (*.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64)) x.re) (neg.f64 x.re))) |
(*.f64 (neg.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64))) (*.f64 x.re x.re)) |
(*.f64 (*.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64)) x.re) (neg.f64 x.re)) |
(neg.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64))) |
(fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64)) |
(/.f64 x.im x.re) |
x.im |
x.re |
#s(literal -3 binary64) |
(*.f64 x.re x.re) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (fma.f64 (*.f64 #s(literal 3 binary64) (/.f64 x.re x.im)) (/.f64 x.re x.im) #s(literal -1 binary64)) (*.f64 x.im x.im))) x.im)) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (*.f64 (fma.f64 (*.f64 (/.f64 x.re x.im) #s(literal 3 binary64)) (/.f64 x.re x.im) #s(literal -1 binary64)) x.im) x.im)) x.im)) |
(*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (fma.f64 (*.f64 #s(literal 3 binary64) (/.f64 x.re x.im)) (/.f64 x.re x.im) #s(literal -1 binary64)) (*.f64 x.im x.im))) x.im) |
(*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (*.f64 (fma.f64 (*.f64 (/.f64 x.re x.im) #s(literal 3 binary64)) (/.f64 x.re x.im) #s(literal -1 binary64)) x.im) x.im)) x.im) |
#s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (fma.f64 (*.f64 #s(literal 3 binary64) (/.f64 x.re x.im)) (/.f64 x.re x.im) #s(literal -1 binary64)) (*.f64 x.im x.im))) |
#s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (*.f64 (fma.f64 (*.f64 (/.f64 x.re x.im) #s(literal 3 binary64)) (/.f64 x.re x.im) #s(literal -1 binary64)) x.im) x.im)) |
(*.f64 (fma.f64 (*.f64 #s(literal 3 binary64) (/.f64 x.re x.im)) (/.f64 x.re x.im) #s(literal -1 binary64)) (*.f64 x.im x.im)) |
(*.f64 (*.f64 (fma.f64 (*.f64 (/.f64 x.re x.im) #s(literal 3 binary64)) (/.f64 x.re x.im) #s(literal -1 binary64)) x.im) x.im) |
(fma.f64 (*.f64 #s(literal 3 binary64) (/.f64 x.re x.im)) (/.f64 x.re x.im) #s(literal -1 binary64)) |
(fma.f64 (*.f64 (/.f64 x.re x.im) #s(literal 3 binary64)) (/.f64 x.re x.im) #s(literal -1 binary64)) |
(*.f64 #s(literal 3 binary64) (/.f64 x.re x.im)) |
(*.f64 (/.f64 x.re x.im) #s(literal 3 binary64)) |
#s(literal 3 binary64) |
(/.f64 x.re x.im) |
x.re |
x.im |
#s(literal -1 binary64) |
(*.f64 x.im x.im) |
Found 20 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| accuracy | 0.08984375 | (fma.f64 (*.f64 #s(literal 3 binary64) (/.f64 x.re x.im)) (/.f64 x.re x.im) #s(literal -1 binary64)) | |
| accuracy | 0.2890625 | (*.f64 #s(literal 3 binary64) (/.f64 x.re x.im)) | |
| accuracy | 2.477170708314096 | (*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (fma.f64 (*.f64 #s(literal 3 binary64) (/.f64 x.re x.im)) (/.f64 x.re x.im) #s(literal -1 binary64)) (*.f64 x.im x.im))) x.im) | |
| accuracy | 12.475107651498906 | (*.f64 (fma.f64 (*.f64 #s(literal 3 binary64) (/.f64 x.re x.im)) (/.f64 x.re x.im) #s(literal -1 binary64)) (*.f64 x.im x.im)) | |
| accuracy | 0.0 | #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (neg.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64))) (*.f64 x.re x.re))) | |
| accuracy | 0.10384750976844202 | (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64)) | |
| accuracy | 2.477170708314096 | (*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (neg.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64))) (*.f64 x.re x.re))) x.im) | |
| accuracy | 15.527346054705163 | (*.f64 (neg.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64))) (*.f64 x.re x.re)) | |
| accuracy | 0.0 | (*.f64 x.im x.re) | |
| accuracy | 0.15234375 | (*.f64 (*.f64 #s(literal 3 binary64) (*.f64 x.im x.re)) x.re) | |
| accuracy | 0.22265625 | (*.f64 #s(literal 3 binary64) (*.f64 x.im x.re)) | |
| accuracy | 29.892458452864396 | #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 #s(literal 3 binary64) (*.f64 x.im x.re)) x.re)) | |
| accuracy | 0.0 | (*.f64 x.im x.im) | |
| accuracy | 0.0 | (neg.f64 x.im) | |
| accuracy | 0.09765625 | (*.f64 (*.f64 x.im x.im) (neg.f64 x.im)) | |
| accuracy | 26.343075903842237 | #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 x.im x.im) (neg.f64 x.im))) | |
| accuracy | 0.0 | #s(approx (* (+ (* x.re x.im) (* x.im x.re)) x.re) (*.f64 (*.f64 #s(literal 2 binary64) (*.f64 x.re x.re)) x.im)) | |
| accuracy | 0.00390625 | (*.f64 #s(literal 2 binary64) (*.f64 x.re x.re)) | |
| accuracy | 6.177586932903755 | (*.f64 (*.f64 #s(literal 2 binary64) (*.f64 x.re x.re)) x.im) | |
| accuracy | 7.961498920129334 | (fma.f64 (*.f64 (+.f64 x.re x.im) (-.f64 x.re x.im)) x.im #s(approx (* (+ (* x.re x.im) (* x.im x.re)) x.re) (*.f64 (*.f64 #s(literal 2 binary64) (*.f64 x.re x.re)) x.im))) |
| 171.0ms | 256× | 0 | valid |
Compiled 294 to 43 computations (85.4% saved)
ival-mult: 79.0ms (51.9% of total)ival-add: 62.0ms (40.7% of total)ival-div: 4.0ms (2.6% of total)ival-sub: 3.0ms (2% of total)ival-neg: 3.0ms (2% of total)exact: 1.0ms (0.7% of total)adjust: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)ival-true: 0.0ms (0% of total)| Inputs |
|---|
(fma.f64 (*.f64 (+.f64 x.re x.im) (-.f64 x.re x.im)) x.im #s(approx (* (+ (* x.re x.im) (* x.im x.re)) x.re) (*.f64 (*.f64 #s(literal 2 binary64) (*.f64 x.re x.re)) x.im))) |
(*.f64 (+.f64 x.re x.im) (-.f64 x.re x.im)) |
(+.f64 x.re x.im) |
(-.f64 x.re x.im) |
(*.f64 (*.f64 x.im x.im) (neg.f64 x.im)) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 x.im x.im) (neg.f64 x.im))) |
(*.f64 x.im x.im) |
(neg.f64 x.im) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 #s(literal 3 binary64) (*.f64 x.im x.re)) x.re)) |
(*.f64 (*.f64 #s(literal 3 binary64) (*.f64 x.im x.re)) x.re) |
(*.f64 #s(literal 3 binary64) (*.f64 x.im x.re)) |
(*.f64 x.im x.re) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (neg.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64))) (*.f64 x.re x.re))) x.im)) |
(*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (neg.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64))) (*.f64 x.re x.re))) x.im) |
#s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (neg.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64))) (*.f64 x.re x.re))) |
(*.f64 (neg.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64))) (*.f64 x.re x.re)) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (fma.f64 (*.f64 #s(literal 3 binary64) (/.f64 x.re x.im)) (/.f64 x.re x.im) #s(literal -1 binary64)) (*.f64 x.im x.im))) x.im)) |
(*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (fma.f64 (*.f64 #s(literal 3 binary64) (/.f64 x.re x.im)) (/.f64 x.re x.im) #s(literal -1 binary64)) (*.f64 x.im x.im))) x.im) |
#s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (fma.f64 (*.f64 #s(literal 3 binary64) (/.f64 x.re x.im)) (/.f64 x.re x.im) #s(literal -1 binary64)) (*.f64 x.im x.im))) |
(*.f64 (fma.f64 (*.f64 #s(literal 3 binary64) (/.f64 x.re x.im)) (/.f64 x.re x.im) #s(literal -1 binary64)) (*.f64 x.im x.im)) |
(*.f64 (*.f64 #s(literal 2 binary64) (*.f64 x.re x.re)) x.im) |
(*.f64 #s(literal 2 binary64) (*.f64 x.re x.re)) |
#s(approx (* (+ (* x.re x.im) (* x.im x.re)) x.re) (*.f64 (*.f64 #s(literal 2 binary64) (*.f64 x.re x.re)) x.im)) |
(fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64)) |
(*.f64 #s(literal 3 binary64) (/.f64 x.re x.im)) |
(fma.f64 (*.f64 #s(literal 3 binary64) (/.f64 x.re x.im)) (/.f64 x.re x.im) #s(literal -1 binary64)) |
| Outputs |
|---|
(* -1 (pow x.im 3)) |
(+ (* -1 (pow x.im 3)) (* x.im (* x.re (+ x.im (* -1 x.im))))) |
(+ (* -1 (pow x.im 3)) (* x.re (+ (* x.im (+ x.im (* -1 x.im))) (* x.re (+ x.im (* 2 x.im)))))) |
(* -1 (pow x.im 2)) |
(+ (* -1 (pow x.im 2)) (* x.re (+ x.im (* -1 x.im)))) |
(+ (* -1 (pow x.im 2)) (* x.re (+ x.im (+ x.re (* -1 x.im))))) |
x.im |
(+ x.im x.re) |
(* -1 x.im) |
(- x.re x.im) |
(+ (* -1 (pow x.im 3)) (* (pow x.re 2) (+ x.im (* 2 x.im)))) |
(* 3 (* x.im (pow x.re 2))) |
(* 3 (* x.im x.re)) |
(* x.im x.re) |
(+ (* -1 (pow x.im 3)) (* 3 (* x.im (pow x.re 2)))) |
(- (* 3 (pow x.re 2)) (pow x.im 2)) |
(+ (* -1 (pow x.im 2)) (* 3 (pow x.re 2))) |
(* 2 (* x.im (pow x.re 2))) |
(* 2 (pow x.re 2)) |
(/ (pow x.im 2) (pow x.re 2)) |
(/ (+ (* -3 (pow x.re 2)) (pow x.im 2)) (pow x.re 2)) |
(* 3 (/ x.re x.im)) |
-1 |
(- (* 3 (/ (pow x.re 2) (pow x.im 2))) 1) |
(* (pow x.re 2) (+ x.im (* 2 x.im))) |
(* (pow x.re 2) (+ x.im (+ (* 2 x.im) (/ (* x.im (+ x.im (* -1 x.im))) x.re)))) |
(* (pow x.re 2) (+ x.im (+ (* -1 (/ (pow x.im 3) (pow x.re 2))) (+ (* 2 x.im) (/ (* x.im (+ x.im (* -1 x.im))) x.re))))) |
(pow x.re 2) |
(* (pow x.re 2) (+ 1 (+ (* -1 (/ x.im x.re)) (/ x.im x.re)))) |
(* (pow x.re 2) (+ 1 (+ (* -1 (/ x.im x.re)) (+ (* -1 (/ (pow x.im 2) (pow x.re 2))) (/ x.im x.re))))) |
x.re |
(* x.re (+ 1 (/ x.im x.re))) |
(* x.re (+ 1 (* -1 (/ x.im x.re)))) |
(* (pow x.re 2) (+ x.im (+ (* -1 (/ (pow x.im 3) (pow x.re 2))) (* 2 x.im)))) |
(* (pow x.re 2) (+ (* -1 (/ (pow x.im 3) (pow x.re 2))) (* 3 x.im))) |
(* 3 (pow x.re 2)) |
(* (pow x.re 2) (+ 3 (* -1 (/ (pow x.im 2) (pow x.re 2))))) |
-3 |
(- (/ (pow x.im 2) (pow x.re 2)) 3) |
(* 3 (/ (pow x.re 2) (pow x.im 2))) |
(* (pow x.re 2) (- (* 3 (/ 1 (pow x.im 2))) (/ 1 (pow x.re 2)))) |
(* (pow x.re 2) (+ x.im (+ (* -1 (/ (+ (* -1 (* x.im (+ x.im (* -1 x.im)))) (/ (pow x.im 3) x.re)) x.re)) (* 2 x.im)))) |
(* (pow x.re 2) (+ 1 (* -1 (/ (+ (* -1 (+ x.im (* -1 x.im))) (/ (pow x.im 2) x.re)) x.re)))) |
(* -1 (* x.re (- (* -1 (/ x.im x.re)) 1))) |
(* -1 (* x.re (- (/ x.im x.re) 1))) |
(* x.im (+ (* 2 (pow x.re 2)) (pow x.re 2))) |
(* x.im (+ (* 2 (pow x.re 2)) (+ (* x.im (+ x.re (* -1 x.re))) (pow x.re 2)))) |
(* x.im (+ (* 2 (pow x.re 2)) (+ (* x.im (+ x.re (+ (* -1 x.im) (* -1 x.re)))) (pow x.re 2)))) |
(+ (* x.im (+ x.re (* -1 x.re))) (pow x.re 2)) |
(+ (* x.im (+ x.re (+ (* -1 x.im) (* -1 x.re)))) (pow x.re 2)) |
(+ x.re (* -1 x.im)) |
(* x.im (+ (* -1 (pow x.im 2)) (+ (* 2 (pow x.re 2)) (pow x.re 2)))) |
(pow x.im 2) |
(* x.im (+ (* -1 (pow x.im 2)) (* 3 (pow x.re 2)))) |
(- (* -1 (pow x.im 2)) (* -3 (pow x.re 2))) |
(/ (+ (* -1 (pow x.im 2)) (* 3 (pow x.re 2))) (pow x.im 2)) |
(* (pow x.im 3) (- (+ (* -1 (/ x.re x.im)) (/ x.re x.im)) 1)) |
(* (pow x.im 3) (- (+ (* -1 (/ x.re x.im)) (+ (* 2 (/ (pow x.re 2) (pow x.im 2))) (+ (/ x.re x.im) (/ (pow x.re 2) (pow x.im 2))))) 1)) |
(* (pow x.im 2) (- (+ (* -1 (/ x.re x.im)) (/ x.re x.im)) 1)) |
(* (pow x.im 2) (- (+ (* -1 (/ x.re x.im)) (+ (/ x.re x.im) (/ (pow x.re 2) (pow x.im 2)))) 1)) |
(* x.im (+ 1 (/ x.re x.im))) |
(* x.im (- (/ x.re x.im) 1)) |
(* (pow x.im 3) (- (+ (* 2 (/ (pow x.re 2) (pow x.im 2))) (/ (pow x.re 2) (pow x.im 2))) 1)) |
(* (pow x.im 3) (- (* 3 (/ (pow x.re 2) (pow x.im 2))) 1)) |
(* (pow x.im 2) (- (* 3 (/ (pow x.re 2) (pow x.im 2))) 1)) |
(* (pow x.im 2) (- (/ 1 (pow x.re 2)) (* 3 (/ 1 (pow x.im 2))))) |
(* -1 (* (pow x.im 3) (+ 1 (+ (* -1 (/ x.re x.im)) (/ x.re x.im))))) |
(* -1 (* (pow x.im 3) (+ 1 (* -1 (/ (+ (* -1 (+ x.re (* -1 x.re))) (* -1 (/ (+ (* -2 (pow x.re 2)) (* -1 (pow x.re 2))) x.im))) x.im))))) |
(* (pow x.im 2) (- (* -1 (/ (+ x.re (* -1 x.re)) x.im)) 1)) |
(* (pow x.im 2) (- (* -1 (/ (+ x.re (+ (* -1 x.re) (* -1 (/ (pow x.re 2) x.im)))) x.im)) 1)) |
(* -1 (* x.im (- (* -1 (/ x.re x.im)) 1))) |
(* -1 (* x.im (+ 1 (* -1 (/ x.re x.im))))) |
(* -1 (* (pow x.im 3) (+ 1 (+ (* -2 (/ (pow x.re 2) (pow x.im 2))) (* -1 (/ (pow x.re 2) (pow x.im 2))))))) |
(* -1 (* (pow x.im 3) (+ 1 (* -3 (/ (pow x.re 2) (pow x.im 2)))))) |
6 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 16.0ms | x.re | @ | 0 | ((+ (* (* (+ x.re x.im) (- x.re x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (* (+ x.re x.im) (- x.re x.im)) (+ x.re x.im) (- x.re x.im) (* (* x.im x.im) (neg x.im)) (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (* x.im x.im) (neg x.im) (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (* (* 3 (* x.im x.re)) x.re) (* 3 (* x.im x.re)) (* x.im x.re) (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (* (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) x.im) (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (* (neg (+ (* (/ x.im x.re) (/ x.im x.re)) -3)) (* x.re x.re)) (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (* (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) x.im) (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (* (+ (* (* 3 (/ x.re x.im)) (/ x.re x.im)) -1) (* x.im x.im)) (* (* 2 (* x.re x.re)) x.im) (* 2 (* x.re x.re)) (* (+ (* x.re x.im) (* x.im x.re)) x.re) (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (* 3 (/ x.re x.im)) (+ (* (* 3 (/ x.re x.im)) (/ x.re x.im)) -1)) |
| 11.0ms | x.im | @ | 0 | ((+ (* (* (+ x.re x.im) (- x.re x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (* (+ x.re x.im) (- x.re x.im)) (+ x.re x.im) (- x.re x.im) (* (* x.im x.im) (neg x.im)) (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (* x.im x.im) (neg x.im) (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (* (* 3 (* x.im x.re)) x.re) (* 3 (* x.im x.re)) (* x.im x.re) (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (* (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) x.im) (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (* (neg (+ (* (/ x.im x.re) (/ x.im x.re)) -3)) (* x.re x.re)) (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (* (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) x.im) (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (* (+ (* (* 3 (/ x.re x.im)) (/ x.re x.im)) -1) (* x.im x.im)) (* (* 2 (* x.re x.re)) x.im) (* 2 (* x.re x.re)) (* (+ (* x.re x.im) (* x.im x.re)) x.re) (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (* 3 (/ x.re x.im)) (+ (* (* 3 (/ x.re x.im)) (/ x.re x.im)) -1)) |
| 4.0ms | x.im | @ | inf | ((+ (* (* (+ x.re x.im) (- x.re x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (* (+ x.re x.im) (- x.re x.im)) (+ x.re x.im) (- x.re x.im) (* (* x.im x.im) (neg x.im)) (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (* x.im x.im) (neg x.im) (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (* (* 3 (* x.im x.re)) x.re) (* 3 (* x.im x.re)) (* x.im x.re) (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (* (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) x.im) (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (* (neg (+ (* (/ x.im x.re) (/ x.im x.re)) -3)) (* x.re x.re)) (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (* (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) x.im) (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (* (+ (* (* 3 (/ x.re x.im)) (/ x.re x.im)) -1) (* x.im x.im)) (* (* 2 (* x.re x.re)) x.im) (* 2 (* x.re x.re)) (* (+ (* x.re x.im) (* x.im x.re)) x.re) (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (* 3 (/ x.re x.im)) (+ (* (* 3 (/ x.re x.im)) (/ x.re x.im)) -1)) |
| 4.0ms | x.re | @ | -inf | ((+ (* (* (+ x.re x.im) (- x.re x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (* (+ x.re x.im) (- x.re x.im)) (+ x.re x.im) (- x.re x.im) (* (* x.im x.im) (neg x.im)) (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (* x.im x.im) (neg x.im) (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (* (* 3 (* x.im x.re)) x.re) (* 3 (* x.im x.re)) (* x.im x.re) (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (* (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) x.im) (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (* (neg (+ (* (/ x.im x.re) (/ x.im x.re)) -3)) (* x.re x.re)) (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (* (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) x.im) (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (* (+ (* (* 3 (/ x.re x.im)) (/ x.re x.im)) -1) (* x.im x.im)) (* (* 2 (* x.re x.re)) x.im) (* 2 (* x.re x.re)) (* (+ (* x.re x.im) (* x.im x.re)) x.re) (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (* 3 (/ x.re x.im)) (+ (* (* 3 (/ x.re x.im)) (/ x.re x.im)) -1)) |
| 4.0ms | x.re | @ | inf | ((+ (* (* (+ x.re x.im) (- x.re x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (* (+ x.re x.im) (- x.re x.im)) (+ x.re x.im) (- x.re x.im) (* (* x.im x.im) (neg x.im)) (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (* x.im x.im) (neg x.im) (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (* (* 3 (* x.im x.re)) x.re) (* 3 (* x.im x.re)) (* x.im x.re) (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (* (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) x.im) (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (* (neg (+ (* (/ x.im x.re) (/ x.im x.re)) -3)) (* x.re x.re)) (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (* (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) x.im) (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (* (+ (* (* 3 (/ x.re x.im)) (/ x.re x.im)) -1) (* x.im x.im)) (* (* 2 (* x.re x.re)) x.im) (* 2 (* x.re x.re)) (* (+ (* x.re x.im) (* x.im x.re)) x.re) (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (* 3 (/ x.re x.im)) (+ (* (* 3 (/ x.re x.im)) (/ x.re x.im)) -1)) |
| 1× | egg-herbie |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 198 | 848 |
| 1 | 708 | 671 |
| 2 | 3014 | 603 |
| 0 | 8182 | 586 |
| 1× | iter limit |
| 1× | node limit |
| Inputs |
|---|
(* -1 (pow x.im 3)) |
(+ (* -1 (pow x.im 3)) (* x.im (* x.re (+ x.im (* -1 x.im))))) |
(+ (* -1 (pow x.im 3)) (* x.re (+ (* x.im (+ x.im (* -1 x.im))) (* x.re (+ x.im (* 2 x.im)))))) |
(* -1 (pow x.im 2)) |
(+ (* -1 (pow x.im 2)) (* x.re (+ x.im (* -1 x.im)))) |
(+ (* -1 (pow x.im 2)) (* x.re (+ x.im (+ x.re (* -1 x.im))))) |
x.im |
(+ x.im x.re) |
(* -1 x.im) |
(- x.re x.im) |
(+ (* -1 (pow x.im 3)) (* (pow x.re 2) (+ x.im (* 2 x.im)))) |
(* 3 (* x.im (pow x.re 2))) |
(* 3 (* x.im x.re)) |
(* x.im x.re) |
(+ (* -1 (pow x.im 3)) (* 3 (* x.im (pow x.re 2)))) |
(- (* 3 (pow x.re 2)) (pow x.im 2)) |
(+ (* -1 (pow x.im 2)) (* 3 (pow x.re 2))) |
(* 2 (* x.im (pow x.re 2))) |
(* 2 (pow x.re 2)) |
(/ (pow x.im 2) (pow x.re 2)) |
(/ (+ (* -3 (pow x.re 2)) (pow x.im 2)) (pow x.re 2)) |
(* 3 (/ x.re x.im)) |
-1 |
(- (* 3 (/ (pow x.re 2) (pow x.im 2))) 1) |
(* (pow x.re 2) (+ x.im (* 2 x.im))) |
(* (pow x.re 2) (+ x.im (+ (* 2 x.im) (/ (* x.im (+ x.im (* -1 x.im))) x.re)))) |
(* (pow x.re 2) (+ x.im (+ (* -1 (/ (pow x.im 3) (pow x.re 2))) (+ (* 2 x.im) (/ (* x.im (+ x.im (* -1 x.im))) x.re))))) |
(pow x.re 2) |
(* (pow x.re 2) (+ 1 (+ (* -1 (/ x.im x.re)) (/ x.im x.re)))) |
(* (pow x.re 2) (+ 1 (+ (* -1 (/ x.im x.re)) (+ (* -1 (/ (pow x.im 2) (pow x.re 2))) (/ x.im x.re))))) |
x.re |
(* x.re (+ 1 (/ x.im x.re))) |
(* x.re (+ 1 (* -1 (/ x.im x.re)))) |
(* (pow x.re 2) (+ x.im (+ (* -1 (/ (pow x.im 3) (pow x.re 2))) (* 2 x.im)))) |
(* (pow x.re 2) (+ (* -1 (/ (pow x.im 3) (pow x.re 2))) (* 3 x.im))) |
(* 3 (pow x.re 2)) |
(* (pow x.re 2) (+ 3 (* -1 (/ (pow x.im 2) (pow x.re 2))))) |
-3 |
(- (/ (pow x.im 2) (pow x.re 2)) 3) |
(* 3 (/ (pow x.re 2) (pow x.im 2))) |
(* (pow x.re 2) (- (* 3 (/ 1 (pow x.im 2))) (/ 1 (pow x.re 2)))) |
(* (pow x.re 2) (+ x.im (+ (* -1 (/ (+ (* -1 (* x.im (+ x.im (* -1 x.im)))) (/ (pow x.im 3) x.re)) x.re)) (* 2 x.im)))) |
(* (pow x.re 2) (+ 1 (* -1 (/ (+ (* -1 (+ x.im (* -1 x.im))) (/ (pow x.im 2) x.re)) x.re)))) |
(* -1 (* x.re (- (* -1 (/ x.im x.re)) 1))) |
(* -1 (* x.re (- (/ x.im x.re) 1))) |
(* x.im (+ (* 2 (pow x.re 2)) (pow x.re 2))) |
(* x.im (+ (* 2 (pow x.re 2)) (+ (* x.im (+ x.re (* -1 x.re))) (pow x.re 2)))) |
(* x.im (+ (* 2 (pow x.re 2)) (+ (* x.im (+ x.re (+ (* -1 x.im) (* -1 x.re)))) (pow x.re 2)))) |
(+ (* x.im (+ x.re (* -1 x.re))) (pow x.re 2)) |
(+ (* x.im (+ x.re (+ (* -1 x.im) (* -1 x.re)))) (pow x.re 2)) |
(+ x.re (* -1 x.im)) |
(* x.im (+ (* -1 (pow x.im 2)) (+ (* 2 (pow x.re 2)) (pow x.re 2)))) |
(pow x.im 2) |
(* x.im (+ (* -1 (pow x.im 2)) (* 3 (pow x.re 2)))) |
(- (* -1 (pow x.im 2)) (* -3 (pow x.re 2))) |
(/ (+ (* -1 (pow x.im 2)) (* 3 (pow x.re 2))) (pow x.im 2)) |
(* (pow x.im 3) (- (+ (* -1 (/ x.re x.im)) (/ x.re x.im)) 1)) |
(* (pow x.im 3) (- (+ (* -1 (/ x.re x.im)) (+ (* 2 (/ (pow x.re 2) (pow x.im 2))) (+ (/ x.re x.im) (/ (pow x.re 2) (pow x.im 2))))) 1)) |
(* (pow x.im 2) (- (+ (* -1 (/ x.re x.im)) (/ x.re x.im)) 1)) |
(* (pow x.im 2) (- (+ (* -1 (/ x.re x.im)) (+ (/ x.re x.im) (/ (pow x.re 2) (pow x.im 2)))) 1)) |
(* x.im (+ 1 (/ x.re x.im))) |
(* x.im (- (/ x.re x.im) 1)) |
(* (pow x.im 3) (- (+ (* 2 (/ (pow x.re 2) (pow x.im 2))) (/ (pow x.re 2) (pow x.im 2))) 1)) |
(* (pow x.im 3) (- (* 3 (/ (pow x.re 2) (pow x.im 2))) 1)) |
(* (pow x.im 2) (- (* 3 (/ (pow x.re 2) (pow x.im 2))) 1)) |
(* (pow x.im 2) (- (/ 1 (pow x.re 2)) (* 3 (/ 1 (pow x.im 2))))) |
(* -1 (* (pow x.im 3) (+ 1 (+ (* -1 (/ x.re x.im)) (/ x.re x.im))))) |
(* -1 (* (pow x.im 3) (+ 1 (* -1 (/ (+ (* -1 (+ x.re (* -1 x.re))) (* -1 (/ (+ (* -2 (pow x.re 2)) (* -1 (pow x.re 2))) x.im))) x.im))))) |
(* (pow x.im 2) (- (* -1 (/ (+ x.re (* -1 x.re)) x.im)) 1)) |
(* (pow x.im 2) (- (* -1 (/ (+ x.re (+ (* -1 x.re) (* -1 (/ (pow x.re 2) x.im)))) x.im)) 1)) |
(* -1 (* x.im (- (* -1 (/ x.re x.im)) 1))) |
(* -1 (* x.im (+ 1 (* -1 (/ x.re x.im))))) |
(* -1 (* (pow x.im 3) (+ 1 (+ (* -2 (/ (pow x.re 2) (pow x.im 2))) (* -1 (/ (pow x.re 2) (pow x.im 2))))))) |
(* -1 (* (pow x.im 3) (+ 1 (* -3 (/ (pow x.re 2) (pow x.im 2)))))) |
| Outputs |
|---|
(* -1 (pow x.im 3)) |
(pow.f64 (neg.f64 x.im) #s(literal 3 binary64)) |
(+ (* -1 (pow x.im 3)) (* x.im (* x.re (+ x.im (* -1 x.im))))) |
(pow.f64 (neg.f64 x.im) #s(literal 3 binary64)) |
(+ (* -1 (pow x.im 3)) (* x.re (+ (* x.im (+ x.im (* -1 x.im))) (* x.re (+ x.im (* 2 x.im)))))) |
(*.f64 (fma.f64 (*.f64 x.re x.re) #s(literal 3 binary64) (*.f64 (neg.f64 x.im) x.im)) x.im) |
(* -1 (pow x.im 2)) |
(*.f64 (neg.f64 x.im) x.im) |
(+ (* -1 (pow x.im 2)) (* x.re (+ x.im (* -1 x.im)))) |
(*.f64 (neg.f64 x.im) x.im) |
(+ (* -1 (pow x.im 2)) (* x.re (+ x.im (+ x.re (* -1 x.im))))) |
(fma.f64 (neg.f64 x.im) x.im (*.f64 x.re x.re)) |
x.im |
(+ x.im x.re) |
(+.f64 x.im x.re) |
(* -1 x.im) |
(neg.f64 x.im) |
(- x.re x.im) |
(-.f64 x.re x.im) |
(+ (* -1 (pow x.im 3)) (* (pow x.re 2) (+ x.im (* 2 x.im)))) |
(*.f64 (fma.f64 (*.f64 x.re x.re) #s(literal 3 binary64) (*.f64 (neg.f64 x.im) x.im)) x.im) |
(* 3 (* x.im (pow x.re 2))) |
(*.f64 (*.f64 (*.f64 #s(literal 3 binary64) x.im) x.re) x.re) |
(* 3 (* x.im x.re)) |
(*.f64 (*.f64 #s(literal 3 binary64) x.im) x.re) |
(* x.im x.re) |
(*.f64 x.im x.re) |
(+ (* -1 (pow x.im 3)) (* 3 (* x.im (pow x.re 2)))) |
(*.f64 (fma.f64 (*.f64 x.re x.re) #s(literal 3 binary64) (*.f64 (neg.f64 x.im) x.im)) x.im) |
(- (* 3 (pow x.re 2)) (pow x.im 2)) |
(fma.f64 (*.f64 x.re x.re) #s(literal 3 binary64) (*.f64 (neg.f64 x.im) x.im)) |
(+ (* -1 (pow x.im 2)) (* 3 (pow x.re 2))) |
(fma.f64 (*.f64 x.re x.re) #s(literal 3 binary64) (*.f64 (neg.f64 x.im) x.im)) |
(* 2 (* x.im (pow x.re 2))) |
(*.f64 (*.f64 (*.f64 x.re x.re) #s(literal 2 binary64)) x.im) |
(* 2 (pow x.re 2)) |
(*.f64 (*.f64 x.re x.re) #s(literal 2 binary64)) |
(/ (pow x.im 2) (pow x.re 2)) |
(*.f64 (/.f64 x.im x.re) (/.f64 x.im x.re)) |
(/ (+ (* -3 (pow x.re 2)) (pow x.im 2)) (pow x.re 2)) |
(fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64)) |
(* 3 (/ x.re x.im)) |
(*.f64 (/.f64 x.re x.im) #s(literal 3 binary64)) |
-1 |
#s(literal -1 binary64) |
(- (* 3 (/ (pow x.re 2) (pow x.im 2))) 1) |
(fma.f64 (/.f64 #s(literal 3 binary64) x.im) (*.f64 x.re (/.f64 x.re x.im)) #s(literal -1 binary64)) |
(* (pow x.re 2) (+ x.im (* 2 x.im))) |
(*.f64 (*.f64 (*.f64 #s(literal 3 binary64) x.im) x.re) x.re) |
(* (pow x.re 2) (+ x.im (+ (* 2 x.im) (/ (* x.im (+ x.im (* -1 x.im))) x.re)))) |
(*.f64 (*.f64 (*.f64 #s(literal 3 binary64) x.im) x.re) x.re) |
(* (pow x.re 2) (+ x.im (+ (* -1 (/ (pow x.im 3) (pow x.re 2))) (+ (* 2 x.im) (/ (* x.im (+ x.im (* -1 x.im))) x.re))))) |
(*.f64 (-.f64 (*.f64 #s(literal 3 binary64) x.im) (/.f64 (/.f64 (pow.f64 x.im #s(literal 3 binary64)) x.re) x.re)) (*.f64 x.re x.re)) |
(pow x.re 2) |
(*.f64 x.re x.re) |
(* (pow x.re 2) (+ 1 (+ (* -1 (/ x.im x.re)) (/ x.im x.re)))) |
(*.f64 x.re x.re) |
(* (pow x.re 2) (+ 1 (+ (* -1 (/ x.im x.re)) (+ (* -1 (/ (pow x.im 2) (pow x.re 2))) (/ x.im x.re))))) |
(*.f64 (*.f64 (fma.f64 (/.f64 (neg.f64 x.im) x.re) (/.f64 x.im x.re) #s(literal 1 binary64)) x.re) x.re) |
x.re |
(* x.re (+ 1 (/ x.im x.re))) |
(fma.f64 (/.f64 x.im x.re) x.re x.re) |
(* x.re (+ 1 (* -1 (/ x.im x.re)))) |
(*.f64 (-.f64 #s(literal 1 binary64) (/.f64 x.im x.re)) x.re) |
(* (pow x.re 2) (+ x.im (+ (* -1 (/ (pow x.im 3) (pow x.re 2))) (* 2 x.im)))) |
(*.f64 (-.f64 (*.f64 #s(literal 3 binary64) x.im) (/.f64 (/.f64 (pow.f64 x.im #s(literal 3 binary64)) x.re) x.re)) (*.f64 x.re x.re)) |
(* (pow x.re 2) (+ (* -1 (/ (pow x.im 3) (pow x.re 2))) (* 3 x.im))) |
(*.f64 (-.f64 (*.f64 #s(literal 3 binary64) x.im) (/.f64 (/.f64 (pow.f64 x.im #s(literal 3 binary64)) x.re) x.re)) (*.f64 x.re x.re)) |
(* 3 (pow x.re 2)) |
(*.f64 (*.f64 x.re x.re) #s(literal 3 binary64)) |
(* (pow x.re 2) (+ 3 (* -1 (/ (pow x.im 2) (pow x.re 2))))) |
(*.f64 (*.f64 (fma.f64 (/.f64 (neg.f64 x.im) x.re) (/.f64 x.im x.re) #s(literal 3 binary64)) x.re) x.re) |
-3 |
#s(literal -3 binary64) |
(- (/ (pow x.im 2) (pow x.re 2)) 3) |
(fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64)) |
(* 3 (/ (pow x.re 2) (pow x.im 2))) |
(*.f64 (/.f64 #s(literal 3 binary64) x.im) (*.f64 x.re (/.f64 x.re x.im))) |
(* (pow x.re 2) (- (* 3 (/ 1 (pow x.im 2))) (/ 1 (pow x.re 2)))) |
(*.f64 (-.f64 (/.f64 #s(literal 3 binary64) (*.f64 x.im x.im)) (/.f64 #s(literal 1 binary64) (*.f64 x.re x.re))) (*.f64 x.re x.re)) |
(* (pow x.re 2) (+ x.im (+ (* -1 (/ (+ (* -1 (* x.im (+ x.im (* -1 x.im)))) (/ (pow x.im 3) x.re)) x.re)) (* 2 x.im)))) |
(*.f64 (-.f64 (*.f64 #s(literal 3 binary64) x.im) (/.f64 (/.f64 (pow.f64 x.im #s(literal 3 binary64)) x.re) x.re)) (*.f64 x.re x.re)) |
(* (pow x.re 2) (+ 1 (* -1 (/ (+ (* -1 (+ x.im (* -1 x.im))) (/ (pow x.im 2) x.re)) x.re)))) |
(*.f64 (*.f64 (fma.f64 (/.f64 (neg.f64 x.im) x.re) (/.f64 x.im x.re) #s(literal 1 binary64)) x.re) x.re) |
(* -1 (* x.re (- (* -1 (/ x.im x.re)) 1))) |
(fma.f64 (/.f64 x.im x.re) x.re x.re) |
(* -1 (* x.re (- (/ x.im x.re) 1))) |
(*.f64 (-.f64 #s(literal 1 binary64) (/.f64 x.im x.re)) x.re) |
(* x.im (+ (* 2 (pow x.re 2)) (pow x.re 2))) |
(*.f64 (*.f64 (*.f64 #s(literal 3 binary64) x.im) x.re) x.re) |
(* x.im (+ (* 2 (pow x.re 2)) (+ (* x.im (+ x.re (* -1 x.re))) (pow x.re 2)))) |
(*.f64 (*.f64 (*.f64 #s(literal 3 binary64) x.im) x.re) x.re) |
(* x.im (+ (* 2 (pow x.re 2)) (+ (* x.im (+ x.re (+ (* -1 x.im) (* -1 x.re)))) (pow x.re 2)))) |
(*.f64 (fma.f64 (*.f64 x.re x.re) #s(literal 3 binary64) (*.f64 (neg.f64 x.im) x.im)) x.im) |
(+ (* x.im (+ x.re (* -1 x.re))) (pow x.re 2)) |
(*.f64 x.re x.re) |
(+ (* x.im (+ x.re (+ (* -1 x.im) (* -1 x.re)))) (pow x.re 2)) |
(fma.f64 (neg.f64 x.im) x.im (*.f64 x.re x.re)) |
(+ x.re (* -1 x.im)) |
(-.f64 x.re x.im) |
(* x.im (+ (* -1 (pow x.im 2)) (+ (* 2 (pow x.re 2)) (pow x.re 2)))) |
(*.f64 (fma.f64 (*.f64 x.re x.re) #s(literal 3 binary64) (*.f64 (neg.f64 x.im) x.im)) x.im) |
(pow x.im 2) |
(*.f64 x.im x.im) |
(* x.im (+ (* -1 (pow x.im 2)) (* 3 (pow x.re 2)))) |
(*.f64 (fma.f64 (*.f64 x.re x.re) #s(literal 3 binary64) (*.f64 (neg.f64 x.im) x.im)) x.im) |
(- (* -1 (pow x.im 2)) (* -3 (pow x.re 2))) |
(fma.f64 (*.f64 x.re x.re) #s(literal 3 binary64) (*.f64 (neg.f64 x.im) x.im)) |
(/ (+ (* -1 (pow x.im 2)) (* 3 (pow x.re 2))) (pow x.im 2)) |
(fma.f64 (/.f64 #s(literal 3 binary64) x.im) (*.f64 x.re (/.f64 x.re x.im)) #s(literal -1 binary64)) |
(* (pow x.im 3) (- (+ (* -1 (/ x.re x.im)) (/ x.re x.im)) 1)) |
(pow.f64 (neg.f64 x.im) #s(literal 3 binary64)) |
(* (pow x.im 3) (- (+ (* -1 (/ x.re x.im)) (+ (* 2 (/ (pow x.re 2) (pow x.im 2))) (+ (/ x.re x.im) (/ (pow x.re 2) (pow x.im 2))))) 1)) |
(*.f64 (fma.f64 (/.f64 #s(literal 3 binary64) x.im) (*.f64 x.re (/.f64 x.re x.im)) #s(literal -1 binary64)) (pow.f64 x.im #s(literal 3 binary64))) |
(* (pow x.im 2) (- (+ (* -1 (/ x.re x.im)) (/ x.re x.im)) 1)) |
(*.f64 (neg.f64 x.im) x.im) |
(* (pow x.im 2) (- (+ (* -1 (/ x.re x.im)) (+ (/ x.re x.im) (/ (pow x.re 2) (pow x.im 2)))) 1)) |
(*.f64 (*.f64 (fma.f64 (/.f64 x.re x.im) (/.f64 x.re x.im) #s(literal -1 binary64)) x.im) x.im) |
(* x.im (+ 1 (/ x.re x.im))) |
(fma.f64 (/.f64 x.re x.im) x.im x.im) |
(* x.im (- (/ x.re x.im) 1)) |
(*.f64 (-.f64 (/.f64 x.re x.im) #s(literal 1 binary64)) x.im) |
(* (pow x.im 3) (- (+ (* 2 (/ (pow x.re 2) (pow x.im 2))) (/ (pow x.re 2) (pow x.im 2))) 1)) |
(*.f64 (fma.f64 (/.f64 #s(literal 3 binary64) x.im) (*.f64 x.re (/.f64 x.re x.im)) #s(literal -1 binary64)) (pow.f64 x.im #s(literal 3 binary64))) |
(* (pow x.im 3) (- (* 3 (/ (pow x.re 2) (pow x.im 2))) 1)) |
(*.f64 (fma.f64 (/.f64 #s(literal 3 binary64) x.im) (*.f64 x.re (/.f64 x.re x.im)) #s(literal -1 binary64)) (pow.f64 x.im #s(literal 3 binary64))) |
(* (pow x.im 2) (- (* 3 (/ (pow x.re 2) (pow x.im 2))) 1)) |
(*.f64 (fma.f64 (/.f64 #s(literal 3 binary64) x.im) (*.f64 x.re (/.f64 x.re x.im)) #s(literal -1 binary64)) (*.f64 x.im x.im)) |
(* (pow x.im 2) (- (/ 1 (pow x.re 2)) (* 3 (/ 1 (pow x.im 2))))) |
(*.f64 (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (*.f64 x.re x.re)) (/.f64 #s(literal 3 binary64) (*.f64 x.im x.im))) x.im) x.im) |
(* -1 (* (pow x.im 3) (+ 1 (+ (* -1 (/ x.re x.im)) (/ x.re x.im))))) |
(pow.f64 (neg.f64 x.im) #s(literal 3 binary64)) |
(* -1 (* (pow x.im 3) (+ 1 (* -1 (/ (+ (* -1 (+ x.re (* -1 x.re))) (* -1 (/ (+ (* -2 (pow x.re 2)) (* -1 (pow x.re 2))) x.im))) x.im))))) |
(*.f64 (fma.f64 (/.f64 #s(literal 3 binary64) x.im) (*.f64 x.re (/.f64 x.re x.im)) #s(literal -1 binary64)) (pow.f64 x.im #s(literal 3 binary64))) |
(* (pow x.im 2) (- (* -1 (/ (+ x.re (* -1 x.re)) x.im)) 1)) |
(*.f64 (neg.f64 x.im) x.im) |
(* (pow x.im 2) (- (* -1 (/ (+ x.re (+ (* -1 x.re) (* -1 (/ (pow x.re 2) x.im)))) x.im)) 1)) |
(*.f64 (*.f64 (fma.f64 (/.f64 x.re x.im) (/.f64 x.re x.im) #s(literal -1 binary64)) x.im) x.im) |
(* -1 (* x.im (- (* -1 (/ x.re x.im)) 1))) |
(fma.f64 (/.f64 x.re x.im) x.im x.im) |
(* -1 (* x.im (+ 1 (* -1 (/ x.re x.im))))) |
(*.f64 (-.f64 (/.f64 x.re x.im) #s(literal 1 binary64)) x.im) |
(* -1 (* (pow x.im 3) (+ 1 (+ (* -2 (/ (pow x.re 2) (pow x.im 2))) (* -1 (/ (pow x.re 2) (pow x.im 2))))))) |
(*.f64 (fma.f64 (/.f64 #s(literal 3 binary64) x.im) (*.f64 x.re (/.f64 x.re x.im)) #s(literal -1 binary64)) (pow.f64 x.im #s(literal 3 binary64))) |
(* -1 (* (pow x.im 3) (+ 1 (* -3 (/ (pow x.re 2) (pow x.im 2)))))) |
(*.f64 (fma.f64 (/.f64 #s(literal 3 binary64) x.im) (*.f64 x.re (/.f64 x.re x.im)) #s(literal -1 binary64)) (pow.f64 x.im #s(literal 3 binary64))) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 49 | 392 |
| 0 | 75 | 387 |
| 0 | 275 | 371 |
| 1× | iter limit |
| 1× | iter limit |
| 1× | iter limit |
| 1× | unsound |
| 1× | iter limit |
| Inputs |
|---|
(fma.f64 (*.f64 (+.f64 x.re x.im) (-.f64 x.re x.im)) x.im #s(approx (* (+ (* x.re x.im) (* x.im x.re)) x.re) (*.f64 (*.f64 #s(literal 2 binary64) (*.f64 x.re x.re)) x.im))) |
(*.f64 (+.f64 x.re x.im) (-.f64 x.re x.im)) |
(+.f64 x.re x.im) |
(-.f64 x.re x.im) |
(*.f64 (*.f64 x.im x.im) (neg.f64 x.im)) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 x.im x.im) (neg.f64 x.im))) |
(*.f64 x.im x.im) |
(neg.f64 x.im) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 #s(literal 3 binary64) (*.f64 x.im x.re)) x.re)) |
(*.f64 (*.f64 #s(literal 3 binary64) (*.f64 x.im x.re)) x.re) |
(*.f64 #s(literal 3 binary64) (*.f64 x.im x.re)) |
(*.f64 x.im x.re) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (neg.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64))) (*.f64 x.re x.re))) x.im)) |
(*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (neg.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64))) (*.f64 x.re x.re))) x.im) |
#s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (neg.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64))) (*.f64 x.re x.re))) |
(*.f64 (neg.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64))) (*.f64 x.re x.re)) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (fma.f64 (*.f64 #s(literal 3 binary64) (/.f64 x.re x.im)) (/.f64 x.re x.im) #s(literal -1 binary64)) (*.f64 x.im x.im))) x.im)) |
(*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (fma.f64 (*.f64 #s(literal 3 binary64) (/.f64 x.re x.im)) (/.f64 x.re x.im) #s(literal -1 binary64)) (*.f64 x.im x.im))) x.im) |
#s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (fma.f64 (*.f64 #s(literal 3 binary64) (/.f64 x.re x.im)) (/.f64 x.re x.im) #s(literal -1 binary64)) (*.f64 x.im x.im))) |
(*.f64 (fma.f64 (*.f64 #s(literal 3 binary64) (/.f64 x.re x.im)) (/.f64 x.re x.im) #s(literal -1 binary64)) (*.f64 x.im x.im)) |
(*.f64 (*.f64 #s(literal 2 binary64) (*.f64 x.re x.re)) x.im) |
(*.f64 #s(literal 2 binary64) (*.f64 x.re x.re)) |
#s(approx (* (+ (* x.re x.im) (* x.im x.re)) x.re) (*.f64 (*.f64 #s(literal 2 binary64) (*.f64 x.re x.re)) x.im)) |
(fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64)) |
(*.f64 #s(literal 3 binary64) (/.f64 x.re x.im)) |
(fma.f64 (*.f64 #s(literal 3 binary64) (/.f64 x.re x.im)) (/.f64 x.re x.im) #s(literal -1 binary64)) |
| Outputs |
|---|
(/.f64 (-.f64 (*.f64 (*.f64 (+.f64 x.im x.re) (*.f64 (-.f64 x.re x.im) x.im)) (*.f64 (+.f64 x.im x.re) (*.f64 (-.f64 x.re x.im) x.im))) (*.f64 #s(approx (* (+ (* x.re x.im) (* x.im x.re)) x.re) (*.f64 (*.f64 (*.f64 x.re x.re) #s(literal 2 binary64)) x.im)) #s(approx (* (+ (* x.re x.im) (* x.im x.re)) x.re) (*.f64 (*.f64 (*.f64 x.re x.re) #s(literal 2 binary64)) x.im)))) (-.f64 (*.f64 (+.f64 x.im x.re) (*.f64 (-.f64 x.re x.im) x.im)) #s(approx (* (+ (* x.re x.im) (* x.im x.re)) x.re) (*.f64 (*.f64 (*.f64 x.re x.re) #s(literal 2 binary64)) x.im)))) |
(/.f64 (+.f64 (pow.f64 (*.f64 (+.f64 x.im x.re) (*.f64 (-.f64 x.re x.im) x.im)) #s(literal 3 binary64)) (pow.f64 #s(approx (* (+ (* x.re x.im) (* x.im x.re)) x.re) (*.f64 (*.f64 (*.f64 x.re x.re) #s(literal 2 binary64)) x.im)) #s(literal 3 binary64))) (fma.f64 (*.f64 (+.f64 x.im x.re) (*.f64 (-.f64 x.re x.im) x.im)) (*.f64 (+.f64 x.im x.re) (*.f64 (-.f64 x.re x.im) x.im)) (-.f64 (*.f64 #s(approx (* (+ (* x.re x.im) (* x.im x.re)) x.re) (*.f64 (*.f64 (*.f64 x.re x.re) #s(literal 2 binary64)) x.im)) #s(approx (* (+ (* x.re x.im) (* x.im x.re)) x.re) (*.f64 (*.f64 (*.f64 x.re x.re) #s(literal 2 binary64)) x.im))) (*.f64 (*.f64 (+.f64 x.im x.re) (*.f64 (-.f64 x.re x.im) x.im)) #s(approx (* (+ (* x.re x.im) (* x.im x.re)) x.re) (*.f64 (*.f64 (*.f64 x.re x.re) #s(literal 2 binary64)) x.im)))))) |
(fma.f64 (*.f64 (-.f64 x.re x.im) (+.f64 x.im x.re)) x.im #s(approx (* (+ (* x.re x.im) (* x.im x.re)) x.re) (*.f64 (*.f64 (*.f64 x.re x.re) #s(literal 2 binary64)) x.im))) |
(fma.f64 (+.f64 x.im x.re) (*.f64 (-.f64 x.re x.im) x.im) #s(approx (* (+ (* x.re x.im) (* x.im x.re)) x.re) (*.f64 (*.f64 (*.f64 x.re x.re) #s(literal 2 binary64)) x.im))) |
(fma.f64 x.im (*.f64 (-.f64 x.re x.im) (+.f64 x.im x.re)) #s(approx (* (+ (* x.re x.im) (* x.im x.re)) x.re) (*.f64 (*.f64 (*.f64 x.re x.re) #s(literal 2 binary64)) x.im))) |
(+.f64 (*.f64 (+.f64 x.im x.re) (*.f64 (-.f64 x.re x.im) x.im)) #s(approx (* (+ (* x.re x.im) (* x.im x.re)) x.re) (*.f64 (*.f64 (*.f64 x.re x.re) #s(literal 2 binary64)) x.im))) |
(+.f64 #s(approx (* (+ (* x.re x.im) (* x.im x.re)) x.re) (*.f64 (*.f64 (*.f64 x.re x.re) #s(literal 2 binary64)) x.im)) (*.f64 (+.f64 x.im x.re) (*.f64 (-.f64 x.re x.im) x.im))) |
(*.f64 (-.f64 x.re x.im) (+.f64 x.im x.re)) |
(*.f64 (+.f64 x.im x.re) (-.f64 x.re x.im)) |
(/.f64 (-.f64 (*.f64 (*.f64 x.re x.re) (*.f64 x.re x.re)) (*.f64 (*.f64 x.im x.im) (*.f64 x.im x.im))) (fma.f64 x.re x.re (*.f64 x.im x.im))) |
(/.f64 (-.f64 (pow.f64 (*.f64 x.re x.re) #s(literal 3 binary64)) (pow.f64 (*.f64 x.im x.im) #s(literal 3 binary64))) (fma.f64 (*.f64 x.re x.re) (*.f64 x.re x.re) (fma.f64 (*.f64 x.im x.im) (*.f64 x.im x.im) (*.f64 (*.f64 x.re x.re) (*.f64 x.im x.im))))) |
(fma.f64 (neg.f64 x.re) (neg.f64 x.re) (*.f64 (neg.f64 x.im) x.im)) |
(fma.f64 (fabs.f64 x.re) (fabs.f64 x.re) (*.f64 (neg.f64 x.im) x.im)) |
(fma.f64 x.re x.re (*.f64 (neg.f64 x.im) x.im)) |
(-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) |
(+.f64 (*.f64 x.re x.re) (*.f64 (neg.f64 x.im) x.im)) |
(/.f64 (+.f64 (pow.f64 x.re #s(literal 3 binary64)) (pow.f64 x.im #s(literal 3 binary64))) (fma.f64 x.re x.re (-.f64 (*.f64 x.im x.im) (*.f64 x.im x.re)))) |
(/.f64 (*.f64 (-.f64 x.re x.im) (+.f64 x.im x.re)) (-.f64 x.re x.im)) |
(+.f64 x.im x.re) |
(+.f64 x.re x.im) |
(/.f64 (-.f64 (pow.f64 x.re #s(literal 3 binary64)) (pow.f64 x.im #s(literal 3 binary64))) (fma.f64 x.re x.re (fma.f64 x.im x.im (*.f64 x.im x.re)))) |
(/.f64 (*.f64 (-.f64 x.re x.im) (+.f64 x.im x.re)) (+.f64 x.im x.re)) |
(-.f64 x.re x.im) |
(*.f64 (neg.f64 x.im) (*.f64 x.im x.im)) |
(*.f64 (*.f64 x.im x.im) (neg.f64 x.im)) |
(*.f64 x.im (*.f64 x.im (neg.f64 x.im))) |
(neg.f64 (*.f64 (*.f64 x.im x.im) x.im)) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (neg.f64 x.im) (*.f64 x.im x.im))) |
(*.f64 (fabs.f64 x.im) (fabs.f64 x.im)) |
(*.f64 (neg.f64 x.im) (neg.f64 x.im)) |
(*.f64 x.im x.im) |
(pow.f64 x.im #s(literal 2 binary64)) |
(neg.f64 x.im) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 (*.f64 x.im x.re) #s(literal 3 binary64)) x.re)) |
(*.f64 (*.f64 (*.f64 x.im x.re) #s(literal 3 binary64)) x.re) |
(*.f64 #s(literal 3 binary64) (*.f64 (*.f64 x.im x.re) x.re)) |
(*.f64 x.re (*.f64 (*.f64 x.im x.re) #s(literal 3 binary64))) |
(*.f64 (*.f64 #s(literal 3 binary64) x.im) x.re) |
(*.f64 (*.f64 x.im x.re) #s(literal 3 binary64)) |
(*.f64 #s(literal 3 binary64) (*.f64 x.im x.re)) |
(*.f64 x.im x.re) |
(*.f64 x.re x.im) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (neg.f64 (+.f64 (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64)) #s(literal -3 binary64))) (*.f64 x.re x.re))) x.im)) |
(*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (neg.f64 (+.f64 (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64)) #s(literal -3 binary64))) (*.f64 x.re x.re))) x.im) |
(*.f64 x.im #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (neg.f64 (+.f64 (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64)) #s(literal -3 binary64))) (*.f64 x.re x.re)))) |
#s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (neg.f64 (+.f64 (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64)) #s(literal -3 binary64))) (*.f64 x.re x.re))) |
(*.f64 (*.f64 (neg.f64 (+.f64 (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64)) #s(literal -3 binary64))) x.re) x.re) |
(*.f64 (neg.f64 (+.f64 (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64)) #s(literal -3 binary64))) (*.f64 x.re x.re)) |
(*.f64 (*.f64 x.re x.re) (neg.f64 (+.f64 (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64)) #s(literal -3 binary64)))) |
(neg.f64 (*.f64 (+.f64 (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64)) #s(literal -3 binary64)) (*.f64 x.re x.re))) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (*.f64 (fma.f64 (*.f64 (/.f64 x.re x.im) #s(literal 3 binary64)) (/.f64 x.re x.im) #s(literal -1 binary64)) x.im) x.im)) x.im)) |
(*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (*.f64 (fma.f64 (*.f64 (/.f64 x.re x.im) #s(literal 3 binary64)) (/.f64 x.re x.im) #s(literal -1 binary64)) x.im) x.im)) x.im) |
(*.f64 x.im #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (*.f64 (fma.f64 (*.f64 (/.f64 x.re x.im) #s(literal 3 binary64)) (/.f64 x.re x.im) #s(literal -1 binary64)) x.im) x.im))) |
#s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (*.f64 (fma.f64 (*.f64 (/.f64 x.re x.im) #s(literal 3 binary64)) (/.f64 x.re x.im) #s(literal -1 binary64)) x.im) x.im)) |
(*.f64 (*.f64 (fma.f64 (*.f64 (/.f64 x.re x.im) #s(literal 3 binary64)) (/.f64 x.re x.im) #s(literal -1 binary64)) x.im) x.im) |
(*.f64 (fma.f64 (*.f64 (/.f64 x.re x.im) #s(literal 3 binary64)) (/.f64 x.re x.im) #s(literal -1 binary64)) (*.f64 x.im x.im)) |
(*.f64 (*.f64 x.im x.im) (fma.f64 (*.f64 (/.f64 x.re x.im) #s(literal 3 binary64)) (/.f64 x.re x.im) #s(literal -1 binary64))) |
(*.f64 (*.f64 (*.f64 x.re x.re) #s(literal 2 binary64)) x.im) |
(*.f64 #s(literal 2 binary64) (*.f64 (*.f64 x.re x.re) x.im)) |
(*.f64 x.im (*.f64 (*.f64 x.re x.re) #s(literal 2 binary64))) |
(*.f64 (*.f64 #s(literal 2 binary64) x.re) x.re) |
(*.f64 (*.f64 x.re x.re) #s(literal 2 binary64)) |
(*.f64 #s(literal 2 binary64) (*.f64 x.re x.re)) |
(fma.f64 (neg.f64 x.re) (neg.f64 x.re) (*.f64 x.re x.re)) |
(fma.f64 (fabs.f64 x.re) (fabs.f64 x.re) (*.f64 x.re x.re)) |
(fma.f64 x.re x.re (*.f64 x.re x.re)) |
(+.f64 (*.f64 x.re x.re) (*.f64 x.re x.re)) |
#s(approx (* (+ (* x.re x.im) (* x.im x.re)) x.re) (*.f64 (*.f64 (*.f64 x.re x.re) #s(literal 2 binary64)) x.im)) |
(/.f64 (-.f64 (*.f64 (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64)) (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64))) #s(literal 9 binary64)) (-.f64 (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64)) #s(literal -3 binary64))) |
(/.f64 (+.f64 (pow.f64 (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64)) #s(literal 3 binary64)) (pow.f64 #s(literal -3 binary64) #s(literal 3 binary64))) (fma.f64 (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64)) (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64)) (-.f64 #s(literal 9 binary64) (*.f64 (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64)) #s(literal -3 binary64))))) |
(fma.f64 (neg.f64 (/.f64 x.im x.re)) (neg.f64 (/.f64 x.im x.re)) #s(literal -3 binary64)) |
(fma.f64 (fabs.f64 (/.f64 x.im x.re)) (fabs.f64 (/.f64 x.im x.re)) #s(literal -3 binary64)) |
(fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64)) |
(+.f64 (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64)) #s(literal -3 binary64)) |
(+.f64 #s(literal -3 binary64) (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64))) |
(*.f64 (/.f64 x.re x.im) #s(literal 3 binary64)) |
(*.f64 #s(literal 3 binary64) (/.f64 x.re x.im)) |
(/.f64 (*.f64 #s(literal 3 binary64) x.re) x.im) |
(/.f64 (-.f64 (*.f64 (*.f64 (*.f64 (/.f64 x.re x.im) #s(literal 3 binary64)) (/.f64 x.re x.im)) (*.f64 (*.f64 (/.f64 x.re x.im) #s(literal 3 binary64)) (/.f64 x.re x.im))) #s(literal 1 binary64)) (-.f64 (*.f64 (*.f64 (/.f64 x.re x.im) #s(literal 3 binary64)) (/.f64 x.re x.im)) #s(literal -1 binary64))) |
(/.f64 (+.f64 (pow.f64 (*.f64 (*.f64 (/.f64 x.re x.im) #s(literal 3 binary64)) (/.f64 x.re x.im)) #s(literal 3 binary64)) (pow.f64 #s(literal -1 binary64) #s(literal 3 binary64))) (fma.f64 (*.f64 (*.f64 (/.f64 x.re x.im) #s(literal 3 binary64)) (/.f64 x.re x.im)) (*.f64 (*.f64 (/.f64 x.re x.im) #s(literal 3 binary64)) (/.f64 x.re x.im)) (-.f64 #s(literal 1 binary64) (*.f64 (*.f64 (*.f64 (/.f64 x.re x.im) #s(literal 3 binary64)) (/.f64 x.re x.im)) #s(literal -1 binary64))))) |
(fma.f64 (*.f64 (/.f64 x.re x.im) #s(literal 3 binary64)) (/.f64 x.re x.im) #s(literal -1 binary64)) |
(fma.f64 (/.f64 x.re x.im) (*.f64 (/.f64 x.re x.im) #s(literal 3 binary64)) #s(literal -1 binary64)) |
(fma.f64 #s(literal 3 binary64) (*.f64 (/.f64 x.re x.im) (/.f64 x.re x.im)) #s(literal -1 binary64)) |
(+.f64 (*.f64 (*.f64 (/.f64 x.re x.im) #s(literal 3 binary64)) (/.f64 x.re x.im)) #s(literal -1 binary64)) |
(+.f64 #s(literal -1 binary64) (*.f64 (*.f64 (/.f64 x.re x.im) #s(literal 3 binary64)) (/.f64 x.re x.im))) |
Compiled 5 183 to 525 computations (89.9% saved)
10 alts after pruning (5 fresh and 5 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 131 | 2 | 133 |
| Fresh | 0 | 3 | 3 |
| Picked | 2 | 3 | 5 |
| Done | 0 | 2 | 2 |
| Total | 133 | 10 | 143 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 87.6% | (fma.f64 (*.f64 (+.f64 x.re x.im) (-.f64 x.re x.im)) x.im #s(approx (* (+ (* x.re x.im) (* x.im x.re)) x.re) (*.f64 (*.f64 #s(literal 2 binary64) (*.f64 x.re x.re)) x.im))) |
| ✓ | 58.8% | #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (pow.f64 (neg.f64 x.im) #s(literal 3 binary64))) |
| ▶ | 49.5% | #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 (*.f64 x.re x.re) x.im) #s(literal 3 binary64))) |
| ✓ | 58.7% | #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 x.im x.im) (neg.f64 x.im))) |
| ✓ | 53.2% | #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 #s(literal 3 binary64) (*.f64 x.im x.re)) x.re)) |
| ▶ | 53.2% | #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 #s(literal 3 binary64) x.re) (*.f64 x.im x.re))) |
| ✓ | 92.9% | #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (neg.f64 (fma.f64 (*.f64 #s(literal -3 binary64) x.re) x.re (*.f64 x.im x.im))) x.im)) |
| ▶ | 85.2% | #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (neg.f64 #s(approx (+ (* (* -3 x.re) x.re) (* x.im x.im)) (*.f64 (*.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64)) x.re) x.re))) x.im)) |
| ▶ | 38.1% | #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (neg.f64 #s(approx (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (*.f64 (/.f64 x.im x.re) (/.f64 x.im x.re)))) (*.f64 x.re x.re))) x.im)) |
| ▶ | 32.4% | #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 #s(approx (+ (* (* 3 (/ x.re x.im)) (/ x.re x.im)) -1) (*.f64 (/.f64 #s(literal 3 binary64) x.im) (*.f64 x.re (/.f64 x.re x.im)))) (*.f64 x.im x.im))) x.im)) |
Compiled 558 to 313 computations (43.9% saved)
| 1× | egg-herbie |
Found 20 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| cost-diff | 0 | (*.f64 #s(approx (+ (* (* 3 (/ x.re x.im)) (/ x.re x.im)) -1) (*.f64 (/.f64 #s(literal 3 binary64) x.im) (*.f64 x.re (/.f64 x.re x.im)))) (*.f64 x.im x.im)) | |
| cost-diff | 0 | #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 #s(approx (+ (* (* 3 (/ x.re x.im)) (/ x.re x.im)) -1) (*.f64 (/.f64 #s(literal 3 binary64) x.im) (*.f64 x.re (/.f64 x.re x.im)))) (*.f64 x.im x.im))) | |
| cost-diff | 0 | (*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 #s(approx (+ (* (* 3 (/ x.re x.im)) (/ x.re x.im)) -1) (*.f64 (/.f64 #s(literal 3 binary64) x.im) (*.f64 x.re (/.f64 x.re x.im)))) (*.f64 x.im x.im))) x.im) | |
| cost-diff | 0 | #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 #s(approx (+ (* (* 3 (/ x.re x.im)) (/ x.re x.im)) -1) (*.f64 (/.f64 #s(literal 3 binary64) x.im) (*.f64 x.re (/.f64 x.re x.im)))) (*.f64 x.im x.im))) x.im)) | |
| cost-diff | 0 | (*.f64 (neg.f64 #s(approx (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (*.f64 (/.f64 x.im x.re) (/.f64 x.im x.re)))) (*.f64 x.re x.re)) | |
| cost-diff | 0 | #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (neg.f64 #s(approx (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (*.f64 (/.f64 x.im x.re) (/.f64 x.im x.re)))) (*.f64 x.re x.re))) | |
| cost-diff | 0 | (*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (neg.f64 #s(approx (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (*.f64 (/.f64 x.im x.re) (/.f64 x.im x.re)))) (*.f64 x.re x.re))) x.im) | |
| cost-diff | 0 | #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (neg.f64 #s(approx (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (*.f64 (/.f64 x.im x.re) (/.f64 x.im x.re)))) (*.f64 x.re x.re))) x.im)) | |
| cost-diff | 0 | (*.f64 x.re x.re) | |
| cost-diff | 0 | (*.f64 (*.f64 x.re x.re) x.im) | |
| cost-diff | 0 | (*.f64 (*.f64 (*.f64 x.re x.re) x.im) #s(literal 3 binary64)) | |
| cost-diff | 0 | #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 (*.f64 x.re x.re) x.im) #s(literal 3 binary64))) | |
| cost-diff | 0 | (*.f64 x.im x.re) | |
| cost-diff | 0 | (*.f64 #s(literal 3 binary64) x.re) | |
| cost-diff | 0 | (*.f64 (*.f64 #s(literal 3 binary64) x.re) (*.f64 x.im x.re)) | |
| cost-diff | 0 | #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 #s(literal 3 binary64) x.re) (*.f64 x.im x.re))) | |
| cost-diff | 0 | #s(approx (+ (* (* -3 x.re) x.re) (* x.im x.im)) (*.f64 (*.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64)) x.re) x.re)) | |
| cost-diff | 0 | (neg.f64 #s(approx (+ (* (* -3 x.re) x.re) (* x.im x.im)) (*.f64 (*.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64)) x.re) x.re))) | |
| cost-diff | 0 | (*.f64 (neg.f64 #s(approx (+ (* (* -3 x.re) x.re) (* x.im x.im)) (*.f64 (*.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64)) x.re) x.re))) x.im) | |
| cost-diff | 0 | #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (neg.f64 #s(approx (+ (* (* -3 x.re) x.re) (* x.im x.im)) (*.f64 (*.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64)) x.re) x.re))) x.im)) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 58 | 632 |
| 0 | 82 | 632 |
| 1 | 165 | 622 |
| 2 | 428 | 616 |
| 3 | 1324 | 586 |
| 4 | 4056 | 586 |
| 0 | 8121 | 577 |
| 1× | iter limit |
| 1× | node limit |
| 1× | iter limit |
| Inputs |
|---|
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (neg.f64 #s(approx (+ (* (* -3 x.re) x.re) (* x.im x.im)) (*.f64 (*.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64)) x.re) x.re))) x.im)) |
(*.f64 (neg.f64 #s(approx (+ (* (* -3 x.re) x.re) (* x.im x.im)) (*.f64 (*.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64)) x.re) x.re))) x.im) |
(neg.f64 #s(approx (+ (* (* -3 x.re) x.re) (* x.im x.im)) (*.f64 (*.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64)) x.re) x.re))) |
#s(approx (+ (* (* -3 x.re) x.re) (* x.im x.im)) (*.f64 (*.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64)) x.re) x.re)) |
(*.f64 (*.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64)) x.re) x.re) |
(*.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64)) x.re) |
(fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64)) |
(/.f64 x.im x.re) |
x.im |
x.re |
#s(literal -3 binary64) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 #s(literal 3 binary64) x.re) (*.f64 x.im x.re))) |
(*.f64 (*.f64 #s(literal 3 binary64) x.re) (*.f64 x.im x.re)) |
(*.f64 #s(literal 3 binary64) x.re) |
#s(literal 3 binary64) |
x.re |
(*.f64 x.im x.re) |
x.im |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 (*.f64 x.re x.re) x.im) #s(literal 3 binary64))) |
(*.f64 (*.f64 (*.f64 x.re x.re) x.im) #s(literal 3 binary64)) |
(*.f64 (*.f64 x.re x.re) x.im) |
(*.f64 x.re x.re) |
x.re |
x.im |
#s(literal 3 binary64) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (neg.f64 #s(approx (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (*.f64 (/.f64 x.im x.re) (/.f64 x.im x.re)))) (*.f64 x.re x.re))) x.im)) |
(*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (neg.f64 #s(approx (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (*.f64 (/.f64 x.im x.re) (/.f64 x.im x.re)))) (*.f64 x.re x.re))) x.im) |
#s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (neg.f64 #s(approx (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (*.f64 (/.f64 x.im x.re) (/.f64 x.im x.re)))) (*.f64 x.re x.re))) |
(*.f64 (neg.f64 #s(approx (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (*.f64 (/.f64 x.im x.re) (/.f64 x.im x.re)))) (*.f64 x.re x.re)) |
(neg.f64 #s(approx (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (*.f64 (/.f64 x.im x.re) (/.f64 x.im x.re)))) |
#s(approx (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (*.f64 (/.f64 x.im x.re) (/.f64 x.im x.re))) |
(*.f64 (/.f64 x.im x.re) (/.f64 x.im x.re)) |
(/.f64 x.im x.re) |
x.im |
x.re |
(*.f64 x.re x.re) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 #s(approx (+ (* (* 3 (/ x.re x.im)) (/ x.re x.im)) -1) (*.f64 (/.f64 #s(literal 3 binary64) x.im) (*.f64 x.re (/.f64 x.re x.im)))) (*.f64 x.im x.im))) x.im)) |
(*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 #s(approx (+ (* (* 3 (/ x.re x.im)) (/ x.re x.im)) -1) (*.f64 (/.f64 #s(literal 3 binary64) x.im) (*.f64 x.re (/.f64 x.re x.im)))) (*.f64 x.im x.im))) x.im) |
#s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 #s(approx (+ (* (* 3 (/ x.re x.im)) (/ x.re x.im)) -1) (*.f64 (/.f64 #s(literal 3 binary64) x.im) (*.f64 x.re (/.f64 x.re x.im)))) (*.f64 x.im x.im))) |
(*.f64 #s(approx (+ (* (* 3 (/ x.re x.im)) (/ x.re x.im)) -1) (*.f64 (/.f64 #s(literal 3 binary64) x.im) (*.f64 x.re (/.f64 x.re x.im)))) (*.f64 x.im x.im)) |
#s(approx (+ (* (* 3 (/ x.re x.im)) (/ x.re x.im)) -1) (*.f64 (/.f64 #s(literal 3 binary64) x.im) (*.f64 x.re (/.f64 x.re x.im)))) |
(*.f64 (/.f64 #s(literal 3 binary64) x.im) (*.f64 x.re (/.f64 x.re x.im))) |
(/.f64 #s(literal 3 binary64) x.im) |
#s(literal 3 binary64) |
x.im |
(*.f64 x.re (/.f64 x.re x.im)) |
x.re |
(/.f64 x.re x.im) |
(*.f64 x.im x.im) |
| Outputs |
|---|
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (neg.f64 #s(approx (+ (* (* -3 x.re) x.re) (* x.im x.im)) (*.f64 (*.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64)) x.re) x.re))) x.im)) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (neg.f64 x.im) #s(approx (+ (* (* -3 x.re) x.re) (* x.im x.im)) (*.f64 (*.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64)) x.re) x.re)))) |
(*.f64 (neg.f64 #s(approx (+ (* (* -3 x.re) x.re) (* x.im x.im)) (*.f64 (*.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64)) x.re) x.re))) x.im) |
(*.f64 (neg.f64 x.im) #s(approx (+ (* (* -3 x.re) x.re) (* x.im x.im)) (*.f64 (*.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64)) x.re) x.re))) |
(neg.f64 #s(approx (+ (* (* -3 x.re) x.re) (* x.im x.im)) (*.f64 (*.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64)) x.re) x.re))) |
#s(approx (+ (* (* -3 x.re) x.re) (* x.im x.im)) (*.f64 (*.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64)) x.re) x.re)) |
(*.f64 (*.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64)) x.re) x.re) |
(*.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64)) x.re) |
(fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64)) |
(/.f64 x.im x.re) |
x.im |
x.re |
#s(literal -3 binary64) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 #s(literal 3 binary64) x.re) (*.f64 x.im x.re))) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 (*.f64 x.im x.re) #s(literal 3 binary64)) x.re)) |
(*.f64 (*.f64 #s(literal 3 binary64) x.re) (*.f64 x.im x.re)) |
(*.f64 (*.f64 (*.f64 x.im x.re) #s(literal 3 binary64)) x.re) |
(*.f64 #s(literal 3 binary64) x.re) |
#s(literal 3 binary64) |
x.re |
(*.f64 x.im x.re) |
x.im |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 (*.f64 x.re x.re) x.im) #s(literal 3 binary64))) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 (*.f64 x.im x.re) #s(literal 3 binary64)) x.re)) |
(*.f64 (*.f64 (*.f64 x.re x.re) x.im) #s(literal 3 binary64)) |
(*.f64 (*.f64 (*.f64 x.im x.re) #s(literal 3 binary64)) x.re) |
(*.f64 (*.f64 x.re x.re) x.im) |
(*.f64 x.re x.re) |
x.re |
x.im |
#s(literal 3 binary64) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (neg.f64 #s(approx (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (*.f64 (/.f64 x.im x.re) (/.f64 x.im x.re)))) (*.f64 x.re x.re))) x.im)) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (*.f64 (neg.f64 x.re) x.re) #s(approx (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (*.f64 (/.f64 (/.f64 x.im x.re) x.re) x.im)))) x.im)) |
(*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (neg.f64 #s(approx (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (*.f64 (/.f64 x.im x.re) (/.f64 x.im x.re)))) (*.f64 x.re x.re))) x.im) |
(*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (*.f64 (neg.f64 x.re) x.re) #s(approx (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (*.f64 (/.f64 (/.f64 x.im x.re) x.re) x.im)))) x.im) |
#s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (neg.f64 #s(approx (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (*.f64 (/.f64 x.im x.re) (/.f64 x.im x.re)))) (*.f64 x.re x.re))) |
#s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (*.f64 (neg.f64 x.re) x.re) #s(approx (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (*.f64 (/.f64 (/.f64 x.im x.re) x.re) x.im)))) |
(*.f64 (neg.f64 #s(approx (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (*.f64 (/.f64 x.im x.re) (/.f64 x.im x.re)))) (*.f64 x.re x.re)) |
(*.f64 (*.f64 (neg.f64 x.re) x.re) #s(approx (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (*.f64 (/.f64 (/.f64 x.im x.re) x.re) x.im))) |
(neg.f64 #s(approx (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (*.f64 (/.f64 x.im x.re) (/.f64 x.im x.re)))) |
(neg.f64 #s(approx (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (*.f64 (/.f64 (/.f64 x.im x.re) x.re) x.im))) |
#s(approx (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (*.f64 (/.f64 x.im x.re) (/.f64 x.im x.re))) |
#s(approx (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (*.f64 (/.f64 (/.f64 x.im x.re) x.re) x.im)) |
(*.f64 (/.f64 x.im x.re) (/.f64 x.im x.re)) |
(*.f64 (/.f64 (/.f64 x.im x.re) x.re) x.im) |
(/.f64 x.im x.re) |
x.im |
x.re |
(*.f64 x.re x.re) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 #s(approx (+ (* (* 3 (/ x.re x.im)) (/ x.re x.im)) -1) (*.f64 (/.f64 #s(literal 3 binary64) x.im) (*.f64 x.re (/.f64 x.re x.im)))) (*.f64 x.im x.im))) x.im)) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 #s(approx (+ (* (* 3 (/ x.re x.im)) (/ x.re x.im)) -1) (*.f64 (/.f64 (/.f64 #s(literal 3 binary64) x.im) x.im) (*.f64 x.re x.re))) (*.f64 x.im x.im))) x.im)) |
(*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 #s(approx (+ (* (* 3 (/ x.re x.im)) (/ x.re x.im)) -1) (*.f64 (/.f64 #s(literal 3 binary64) x.im) (*.f64 x.re (/.f64 x.re x.im)))) (*.f64 x.im x.im))) x.im) |
(*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 #s(approx (+ (* (* 3 (/ x.re x.im)) (/ x.re x.im)) -1) (*.f64 (/.f64 (/.f64 #s(literal 3 binary64) x.im) x.im) (*.f64 x.re x.re))) (*.f64 x.im x.im))) x.im) |
#s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 #s(approx (+ (* (* 3 (/ x.re x.im)) (/ x.re x.im)) -1) (*.f64 (/.f64 #s(literal 3 binary64) x.im) (*.f64 x.re (/.f64 x.re x.im)))) (*.f64 x.im x.im))) |
#s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 #s(approx (+ (* (* 3 (/ x.re x.im)) (/ x.re x.im)) -1) (*.f64 (/.f64 (/.f64 #s(literal 3 binary64) x.im) x.im) (*.f64 x.re x.re))) (*.f64 x.im x.im))) |
(*.f64 #s(approx (+ (* (* 3 (/ x.re x.im)) (/ x.re x.im)) -1) (*.f64 (/.f64 #s(literal 3 binary64) x.im) (*.f64 x.re (/.f64 x.re x.im)))) (*.f64 x.im x.im)) |
(*.f64 #s(approx (+ (* (* 3 (/ x.re x.im)) (/ x.re x.im)) -1) (*.f64 (/.f64 (/.f64 #s(literal 3 binary64) x.im) x.im) (*.f64 x.re x.re))) (*.f64 x.im x.im)) |
#s(approx (+ (* (* 3 (/ x.re x.im)) (/ x.re x.im)) -1) (*.f64 (/.f64 #s(literal 3 binary64) x.im) (*.f64 x.re (/.f64 x.re x.im)))) |
#s(approx (+ (* (* 3 (/ x.re x.im)) (/ x.re x.im)) -1) (*.f64 (/.f64 (/.f64 #s(literal 3 binary64) x.im) x.im) (*.f64 x.re x.re))) |
(*.f64 (/.f64 #s(literal 3 binary64) x.im) (*.f64 x.re (/.f64 x.re x.im))) |
(*.f64 (/.f64 (/.f64 #s(literal 3 binary64) x.im) x.im) (*.f64 x.re x.re)) |
(/.f64 #s(literal 3 binary64) x.im) |
#s(literal 3 binary64) |
x.im |
(*.f64 x.re (/.f64 x.re x.im)) |
(*.f64 (/.f64 x.re x.im) x.re) |
x.re |
(/.f64 x.re x.im) |
(*.f64 x.im x.im) |
Found 20 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| accuracy | 2.296624991009574 | (*.f64 (/.f64 #s(literal 3 binary64) x.im) (*.f64 x.re (/.f64 x.re x.im))) | |
| accuracy | 2.477170708314096 | (*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 #s(approx (+ (* (* 3 (/ x.re x.im)) (/ x.re x.im)) -1) (*.f64 (/.f64 #s(literal 3 binary64) x.im) (*.f64 x.re (/.f64 x.re x.im)))) (*.f64 x.im x.im))) x.im) | |
| accuracy | 12.475107651498906 | (*.f64 #s(approx (+ (* (* 3 (/ x.re x.im)) (/ x.re x.im)) -1) (*.f64 (/.f64 #s(literal 3 binary64) x.im) (*.f64 x.re (/.f64 x.re x.im)))) (*.f64 x.im x.im)) | |
| accuracy | 32.016639089419485 | #s(approx (+ (* (* 3 (/ x.re x.im)) (/ x.re x.im)) -1) (*.f64 (/.f64 #s(literal 3 binary64) x.im) (*.f64 x.re (/.f64 x.re x.im)))) | |
| accuracy | 0.236660009768442 | (*.f64 (/.f64 x.im x.re) (/.f64 x.im x.re)) | |
| accuracy | 2.477170708314096 | (*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (neg.f64 #s(approx (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (*.f64 (/.f64 x.im x.re) (/.f64 x.im x.re)))) (*.f64 x.re x.re))) x.im) | |
| accuracy | 15.527346054705163 | (*.f64 (neg.f64 #s(approx (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (*.f64 (/.f64 x.im x.re) (/.f64 x.im x.re)))) (*.f64 x.re x.re)) | |
| accuracy | 30.706025645352202 | #s(approx (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (*.f64 (/.f64 x.im x.re) (/.f64 x.im x.re))) | |
| accuracy | 0.0 | (*.f64 x.re x.re) | |
| accuracy | 0.17578125 | (*.f64 (*.f64 (*.f64 x.re x.re) x.im) #s(literal 3 binary64)) | |
| accuracy | 6.1697937212170295 | (*.f64 (*.f64 x.re x.re) x.im) | |
| accuracy | 29.892458452864396 | #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 (*.f64 x.re x.re) x.im) #s(literal 3 binary64))) | |
| accuracy | 0.0 | (*.f64 x.im x.re) | |
| accuracy | 0.0 | (*.f64 #s(literal 3 binary64) x.re) | |
| accuracy | 0.178066259768442 | (*.f64 (*.f64 #s(literal 3 binary64) x.re) (*.f64 x.im x.re)) | |
| accuracy | 29.892458452864396 | #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 #s(literal 3 binary64) x.re) (*.f64 x.im x.re))) | |
| accuracy | 0.10384750976844202 | (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64)) | |
| accuracy | 2.477170708314096 | (*.f64 (neg.f64 #s(approx (+ (* (* -3 x.re) x.re) (* x.im x.im)) (*.f64 (*.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64)) x.re) x.re))) x.im) | |
| accuracy | 4.581178034734099 | (*.f64 (*.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64)) x.re) x.re) | |
| accuracy | 5.959667773775665 | (*.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64)) x.re) |
| 106.0ms | 236× | 0 | valid |
| 7.0ms | 8× | 3 | valid |
| 5.0ms | 9× | 1 | valid |
| 3.0ms | 3× | 4 | valid |
Compiled 345 to 40 computations (88.4% saved)
ival-mult: 45.0ms (55.9% of total)ival-add: 22.0ms (27.3% of total)ival-div: 5.0ms (6.2% of total)adjust: 3.0ms (3.7% of total)ival-neg: 2.0ms (2.5% of total)ival-sub: 1.0ms (1.2% of total)ival-assert: 0.0ms (0% of total)ival-true: 0.0ms (0% of total)exact: 0.0ms (0% of total)| Inputs |
|---|
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (neg.f64 #s(approx (+ (* (* -3 x.re) x.re) (* x.im x.im)) (*.f64 (*.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64)) x.re) x.re))) x.im)) |
(*.f64 (neg.f64 #s(approx (+ (* (* -3 x.re) x.re) (* x.im x.im)) (*.f64 (*.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64)) x.re) x.re))) x.im) |
(neg.f64 #s(approx (+ (* (* -3 x.re) x.re) (* x.im x.im)) (*.f64 (*.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64)) x.re) x.re))) |
#s(approx (+ (* (* -3 x.re) x.re) (* x.im x.im)) (*.f64 (*.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64)) x.re) x.re)) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 #s(literal 3 binary64) x.re) (*.f64 x.im x.re))) |
(*.f64 (*.f64 #s(literal 3 binary64) x.re) (*.f64 x.im x.re)) |
(*.f64 #s(literal 3 binary64) x.re) |
(*.f64 x.im x.re) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 (*.f64 x.re x.re) x.im) #s(literal 3 binary64))) |
(*.f64 (*.f64 (*.f64 x.re x.re) x.im) #s(literal 3 binary64)) |
(*.f64 (*.f64 x.re x.re) x.im) |
(*.f64 x.re x.re) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (neg.f64 #s(approx (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (*.f64 (/.f64 x.im x.re) (/.f64 x.im x.re)))) (*.f64 x.re x.re))) x.im)) |
(*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (neg.f64 #s(approx (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (*.f64 (/.f64 x.im x.re) (/.f64 x.im x.re)))) (*.f64 x.re x.re))) x.im) |
#s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (neg.f64 #s(approx (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (*.f64 (/.f64 x.im x.re) (/.f64 x.im x.re)))) (*.f64 x.re x.re))) |
(*.f64 (neg.f64 #s(approx (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (*.f64 (/.f64 x.im x.re) (/.f64 x.im x.re)))) (*.f64 x.re x.re)) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 #s(approx (+ (* (* 3 (/ x.re x.im)) (/ x.re x.im)) -1) (*.f64 (/.f64 #s(literal 3 binary64) x.im) (*.f64 x.re (/.f64 x.re x.im)))) (*.f64 x.im x.im))) x.im)) |
(*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 #s(approx (+ (* (* 3 (/ x.re x.im)) (/ x.re x.im)) -1) (*.f64 (/.f64 #s(literal 3 binary64) x.im) (*.f64 x.re (/.f64 x.re x.im)))) (*.f64 x.im x.im))) x.im) |
#s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 #s(approx (+ (* (* 3 (/ x.re x.im)) (/ x.re x.im)) -1) (*.f64 (/.f64 #s(literal 3 binary64) x.im) (*.f64 x.re (/.f64 x.re x.im)))) (*.f64 x.im x.im))) |
(*.f64 #s(approx (+ (* (* 3 (/ x.re x.im)) (/ x.re x.im)) -1) (*.f64 (/.f64 #s(literal 3 binary64) x.im) (*.f64 x.re (/.f64 x.re x.im)))) (*.f64 x.im x.im)) |
(*.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64)) x.re) |
(*.f64 (*.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64)) x.re) x.re) |
(fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64)) |
#s(approx (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (*.f64 (/.f64 x.im x.re) (/.f64 x.im x.re))) |
(*.f64 (/.f64 x.im x.re) (/.f64 x.im x.re)) |
#s(approx (+ (* (* 3 (/ x.re x.im)) (/ x.re x.im)) -1) (*.f64 (/.f64 #s(literal 3 binary64) x.im) (*.f64 x.re (/.f64 x.re x.im)))) |
(*.f64 (/.f64 #s(literal 3 binary64) x.im) (*.f64 x.re (/.f64 x.re x.im))) |
| Outputs |
|---|
(* -1 (pow x.im 3)) |
(+ (* -1 (pow x.im 3)) (* (pow x.re 2) (+ x.im (* 2 x.im)))) |
(+ (* -1 (pow x.im 3)) (* 3 (* x.im (pow x.re 2)))) |
(* -1 (pow x.im 2)) |
(- (* 3 (pow x.re 2)) (pow x.im 2)) |
(pow x.im 2) |
(+ (* -3 (pow x.re 2)) (pow x.im 2)) |
(* 3 (* x.im (pow x.re 2))) |
(* 3 x.re) |
(* x.im x.re) |
(* x.im (pow x.re 2)) |
(pow x.re 2) |
(+ (* -1 (pow x.im 2)) (* 3 (pow x.re 2))) |
(/ (pow x.im 2) x.re) |
(/ (+ (* -3 (pow x.re 2)) (pow x.im 2)) x.re) |
(/ (pow x.im 2) (pow x.re 2)) |
(/ (+ (* -3 (pow x.re 2)) (pow x.im 2)) (pow x.re 2)) |
-1 |
(- (* 3 (/ (pow x.re 2) (pow x.im 2))) 1) |
(* 3 (/ (pow x.re 2) (pow x.im 2))) |
(* (pow x.re 2) (+ x.im (* 2 x.im))) |
(* (pow x.re 2) (+ x.im (+ (* -1 (/ (pow x.im 3) (pow x.re 2))) (* 2 x.im)))) |
(* (pow x.re 2) (+ (* -1 (/ (pow x.im 3) (pow x.re 2))) (* 3 x.im))) |
(* 3 (pow x.re 2)) |
(* (pow x.re 2) (+ 3 (* -1 (/ (pow x.im 2) (pow x.re 2))))) |
(* -3 (pow x.re 2)) |
(* (pow x.re 2) (- (/ (pow x.im 2) (pow x.re 2)) 3)) |
(* -3 x.re) |
(* x.re (- (/ (pow x.im 2) (pow x.re 2)) 3)) |
-3 |
(- (/ (pow x.im 2) (pow x.re 2)) 3) |
(* (pow x.re 2) (- (* 3 (/ 1 (pow x.im 2))) (/ 1 (pow x.re 2)))) |
(* -1 (* x.re (+ 3 (* -1 (/ (pow x.im 2) (pow x.re 2)))))) |
(* x.im (+ (* 2 (pow x.re 2)) (pow x.re 2))) |
(* x.im (+ (* -1 (pow x.im 2)) (+ (* 2 (pow x.re 2)) (pow x.re 2)))) |
(* x.im (+ (* -1 (pow x.im 2)) (* 3 (pow x.re 2)))) |
(- (* -1 (pow x.im 2)) (* -3 (pow x.re 2))) |
(+ (* -3 x.re) (/ (pow x.im 2) x.re)) |
(/ (+ (* -1 (pow x.im 2)) (* 3 (pow x.re 2))) (pow x.im 2)) |
(* (pow x.im 3) (- (+ (* 2 (/ (pow x.re 2) (pow x.im 2))) (/ (pow x.re 2) (pow x.im 2))) 1)) |
(* (pow x.im 3) (- (* 3 (/ (pow x.re 2) (pow x.im 2))) 1)) |
(* (pow x.im 2) (- (* 3 (/ (pow x.re 2) (pow x.im 2))) 1)) |
(* (pow x.im 2) (+ 1 (* -3 (/ (pow x.re 2) (pow x.im 2))))) |
(* (pow x.im 2) (+ (* -3 (/ x.re (pow x.im 2))) (/ 1 x.re))) |
(* (pow x.im 2) (- (/ 1 (pow x.re 2)) (* 3 (/ 1 (pow x.im 2))))) |
(* -1 (* (pow x.im 3) (+ 1 (+ (* -2 (/ (pow x.re 2) (pow x.im 2))) (* -1 (/ (pow x.re 2) (pow x.im 2))))))) |
(* -1 (* (pow x.im 3) (+ 1 (* -3 (/ (pow x.re 2) (pow x.im 2)))))) |
6 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 4.0ms | x.re | @ | -inf | ((+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (* (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) x.im) (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (+ (* (* -3 x.re) x.re) (* x.im x.im)) (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (* (* 3 x.re) (* x.im x.re)) (* 3 x.re) (* x.im x.re) (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (* (* (* x.re x.re) x.im) 3) (* (* x.re x.re) x.im) (* x.re x.re) (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (* (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) x.im) (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (* (neg (+ (* (/ x.im x.re) (/ x.im x.re)) -3)) (* x.re x.re)) (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (* (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) x.im) (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (* (+ (* (* 3 (/ x.re x.im)) (/ x.re x.im)) -1) (* x.im x.im)) (* (+ (* (/ x.im x.re) (/ x.im x.re)) -3) x.re) (* (* (+ (* (/ x.im x.re) (/ x.im x.re)) -3) x.re) x.re) (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (* (/ x.im x.re) (/ x.im x.re)) (+ (* (* 3 (/ x.re x.im)) (/ x.re x.im)) -1) (* (/ 3 x.im) (* x.re (/ x.re x.im)))) |
| 3.0ms | x.re | @ | inf | ((+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (* (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) x.im) (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (+ (* (* -3 x.re) x.re) (* x.im x.im)) (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (* (* 3 x.re) (* x.im x.re)) (* 3 x.re) (* x.im x.re) (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (* (* (* x.re x.re) x.im) 3) (* (* x.re x.re) x.im) (* x.re x.re) (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (* (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) x.im) (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (* (neg (+ (* (/ x.im x.re) (/ x.im x.re)) -3)) (* x.re x.re)) (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (* (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) x.im) (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (* (+ (* (* 3 (/ x.re x.im)) (/ x.re x.im)) -1) (* x.im x.im)) (* (+ (* (/ x.im x.re) (/ x.im x.re)) -3) x.re) (* (* (+ (* (/ x.im x.re) (/ x.im x.re)) -3) x.re) x.re) (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (* (/ x.im x.re) (/ x.im x.re)) (+ (* (* 3 (/ x.re x.im)) (/ x.re x.im)) -1) (* (/ 3 x.im) (* x.re (/ x.re x.im)))) |
| 3.0ms | x.im | @ | -inf | ((+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (* (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) x.im) (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (+ (* (* -3 x.re) x.re) (* x.im x.im)) (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (* (* 3 x.re) (* x.im x.re)) (* 3 x.re) (* x.im x.re) (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (* (* (* x.re x.re) x.im) 3) (* (* x.re x.re) x.im) (* x.re x.re) (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (* (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) x.im) (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (* (neg (+ (* (/ x.im x.re) (/ x.im x.re)) -3)) (* x.re x.re)) (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (* (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) x.im) (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (* (+ (* (* 3 (/ x.re x.im)) (/ x.re x.im)) -1) (* x.im x.im)) (* (+ (* (/ x.im x.re) (/ x.im x.re)) -3) x.re) (* (* (+ (* (/ x.im x.re) (/ x.im x.re)) -3) x.re) x.re) (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (* (/ x.im x.re) (/ x.im x.re)) (+ (* (* 3 (/ x.re x.im)) (/ x.re x.im)) -1) (* (/ 3 x.im) (* x.re (/ x.re x.im)))) |
| 3.0ms | x.im | @ | inf | ((+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (* (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) x.im) (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (+ (* (* -3 x.re) x.re) (* x.im x.im)) (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (* (* 3 x.re) (* x.im x.re)) (* 3 x.re) (* x.im x.re) (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (* (* (* x.re x.re) x.im) 3) (* (* x.re x.re) x.im) (* x.re x.re) (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (* (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) x.im) (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (* (neg (+ (* (/ x.im x.re) (/ x.im x.re)) -3)) (* x.re x.re)) (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (* (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) x.im) (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (* (+ (* (* 3 (/ x.re x.im)) (/ x.re x.im)) -1) (* x.im x.im)) (* (+ (* (/ x.im x.re) (/ x.im x.re)) -3) x.re) (* (* (+ (* (/ x.im x.re) (/ x.im x.re)) -3) x.re) x.re) (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (* (/ x.im x.re) (/ x.im x.re)) (+ (* (* 3 (/ x.re x.im)) (/ x.re x.im)) -1) (* (/ 3 x.im) (* x.re (/ x.re x.im)))) |
| 3.0ms | x.re | @ | 0 | ((+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (* (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) x.im) (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (+ (* (* -3 x.re) x.re) (* x.im x.im)) (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (* (* 3 x.re) (* x.im x.re)) (* 3 x.re) (* x.im x.re) (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (* (* (* x.re x.re) x.im) 3) (* (* x.re x.re) x.im) (* x.re x.re) (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (* (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) x.im) (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (* (neg (+ (* (/ x.im x.re) (/ x.im x.re)) -3)) (* x.re x.re)) (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (* (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) x.im) (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (* (+ (* (* 3 (/ x.re x.im)) (/ x.re x.im)) -1) (* x.im x.im)) (* (+ (* (/ x.im x.re) (/ x.im x.re)) -3) x.re) (* (* (+ (* (/ x.im x.re) (/ x.im x.re)) -3) x.re) x.re) (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (* (/ x.im x.re) (/ x.im x.re)) (+ (* (* 3 (/ x.re x.im)) (/ x.re x.im)) -1) (* (/ 3 x.im) (* x.re (/ x.re x.im)))) |
| 1× | egg-herbie |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 89 | 409 |
| 1 | 284 | 399 |
| 2 | 1104 | 391 |
| 3 | 5497 | 391 |
| 0 | 8368 | 378 |
| 1× | iter limit |
| 1× | node limit |
| Inputs |
|---|
(* -1 (pow x.im 3)) |
(+ (* -1 (pow x.im 3)) (* (pow x.re 2) (+ x.im (* 2 x.im)))) |
(+ (* -1 (pow x.im 3)) (* 3 (* x.im (pow x.re 2)))) |
(* -1 (pow x.im 2)) |
(- (* 3 (pow x.re 2)) (pow x.im 2)) |
(pow x.im 2) |
(+ (* -3 (pow x.re 2)) (pow x.im 2)) |
(* 3 (* x.im (pow x.re 2))) |
(* 3 x.re) |
(* x.im x.re) |
(* x.im (pow x.re 2)) |
(pow x.re 2) |
(+ (* -1 (pow x.im 2)) (* 3 (pow x.re 2))) |
(/ (pow x.im 2) x.re) |
(/ (+ (* -3 (pow x.re 2)) (pow x.im 2)) x.re) |
(/ (pow x.im 2) (pow x.re 2)) |
(/ (+ (* -3 (pow x.re 2)) (pow x.im 2)) (pow x.re 2)) |
-1 |
(- (* 3 (/ (pow x.re 2) (pow x.im 2))) 1) |
(* 3 (/ (pow x.re 2) (pow x.im 2))) |
(* (pow x.re 2) (+ x.im (* 2 x.im))) |
(* (pow x.re 2) (+ x.im (+ (* -1 (/ (pow x.im 3) (pow x.re 2))) (* 2 x.im)))) |
(* (pow x.re 2) (+ (* -1 (/ (pow x.im 3) (pow x.re 2))) (* 3 x.im))) |
(* 3 (pow x.re 2)) |
(* (pow x.re 2) (+ 3 (* -1 (/ (pow x.im 2) (pow x.re 2))))) |
(* -3 (pow x.re 2)) |
(* (pow x.re 2) (- (/ (pow x.im 2) (pow x.re 2)) 3)) |
(* -3 x.re) |
(* x.re (- (/ (pow x.im 2) (pow x.re 2)) 3)) |
-3 |
(- (/ (pow x.im 2) (pow x.re 2)) 3) |
(* (pow x.re 2) (- (* 3 (/ 1 (pow x.im 2))) (/ 1 (pow x.re 2)))) |
(* -1 (* x.re (+ 3 (* -1 (/ (pow x.im 2) (pow x.re 2)))))) |
(* x.im (+ (* 2 (pow x.re 2)) (pow x.re 2))) |
(* x.im (+ (* -1 (pow x.im 2)) (+ (* 2 (pow x.re 2)) (pow x.re 2)))) |
(* x.im (+ (* -1 (pow x.im 2)) (* 3 (pow x.re 2)))) |
(- (* -1 (pow x.im 2)) (* -3 (pow x.re 2))) |
(+ (* -3 x.re) (/ (pow x.im 2) x.re)) |
(/ (+ (* -1 (pow x.im 2)) (* 3 (pow x.re 2))) (pow x.im 2)) |
(* (pow x.im 3) (- (+ (* 2 (/ (pow x.re 2) (pow x.im 2))) (/ (pow x.re 2) (pow x.im 2))) 1)) |
(* (pow x.im 3) (- (* 3 (/ (pow x.re 2) (pow x.im 2))) 1)) |
(* (pow x.im 2) (- (* 3 (/ (pow x.re 2) (pow x.im 2))) 1)) |
(* (pow x.im 2) (+ 1 (* -3 (/ (pow x.re 2) (pow x.im 2))))) |
(* (pow x.im 2) (+ (* -3 (/ x.re (pow x.im 2))) (/ 1 x.re))) |
(* (pow x.im 2) (- (/ 1 (pow x.re 2)) (* 3 (/ 1 (pow x.im 2))))) |
(* -1 (* (pow x.im 3) (+ 1 (+ (* -2 (/ (pow x.re 2) (pow x.im 2))) (* -1 (/ (pow x.re 2) (pow x.im 2))))))) |
(* -1 (* (pow x.im 3) (+ 1 (* -3 (/ (pow x.re 2) (pow x.im 2)))))) |
| Outputs |
|---|
(* -1 (pow x.im 3)) |
(pow.f64 (neg.f64 x.im) #s(literal 3 binary64)) |
(+ (* -1 (pow x.im 3)) (* (pow x.re 2) (+ x.im (* 2 x.im)))) |
(*.f64 (neg.f64 x.im) (fma.f64 (*.f64 x.re x.re) #s(literal -3 binary64) (*.f64 x.im x.im))) |
(+ (* -1 (pow x.im 3)) (* 3 (* x.im (pow x.re 2)))) |
(*.f64 (neg.f64 x.im) (fma.f64 (*.f64 x.re x.re) #s(literal -3 binary64) (*.f64 x.im x.im))) |
(* -1 (pow x.im 2)) |
(*.f64 (neg.f64 x.im) x.im) |
(- (* 3 (pow x.re 2)) (pow x.im 2)) |
(neg.f64 (fma.f64 (*.f64 x.re x.re) #s(literal -3 binary64) (*.f64 x.im x.im))) |
(pow x.im 2) |
(*.f64 x.im x.im) |
(+ (* -3 (pow x.re 2)) (pow x.im 2)) |
(fma.f64 (*.f64 x.re x.re) #s(literal -3 binary64) (*.f64 x.im x.im)) |
(* 3 (* x.im (pow x.re 2))) |
(*.f64 (*.f64 (*.f64 x.re x.re) x.im) #s(literal 3 binary64)) |
(* 3 x.re) |
(*.f64 #s(literal 3 binary64) x.re) |
(* x.im x.re) |
(*.f64 x.im x.re) |
(* x.im (pow x.re 2)) |
(*.f64 (*.f64 x.re x.re) x.im) |
(pow x.re 2) |
(*.f64 x.re x.re) |
(+ (* -1 (pow x.im 2)) (* 3 (pow x.re 2))) |
(neg.f64 (fma.f64 (*.f64 x.re x.re) #s(literal -3 binary64) (*.f64 x.im x.im))) |
(/ (pow x.im 2) x.re) |
(/.f64 (*.f64 x.im x.im) x.re) |
(/ (+ (* -3 (pow x.re 2)) (pow x.im 2)) x.re) |
(/.f64 (fma.f64 (*.f64 x.re x.re) #s(literal -3 binary64) (*.f64 x.im x.im)) x.re) |
(/ (pow x.im 2) (pow x.re 2)) |
(/.f64 (/.f64 (*.f64 x.im x.im) x.re) x.re) |
(/ (+ (* -3 (pow x.re 2)) (pow x.im 2)) (pow x.re 2)) |
(fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64)) |
-1 |
#s(literal -1 binary64) |
(- (* 3 (/ (pow x.re 2) (pow x.im 2))) 1) |
(fma.f64 (/.f64 (*.f64 #s(literal 3 binary64) x.re) x.im) (/.f64 x.re x.im) #s(literal -1 binary64)) |
(* 3 (/ (pow x.re 2) (pow x.im 2))) |
(*.f64 (/.f64 (*.f64 #s(literal 3 binary64) x.re) x.im) (/.f64 x.re x.im)) |
(* (pow x.re 2) (+ x.im (* 2 x.im))) |
(*.f64 (*.f64 (*.f64 x.re x.re) x.im) #s(literal 3 binary64)) |
(* (pow x.re 2) (+ x.im (+ (* -1 (/ (pow x.im 3) (pow x.re 2))) (* 2 x.im)))) |
(*.f64 (neg.f64 x.im) (fma.f64 (*.f64 x.re x.re) #s(literal -3 binary64) (*.f64 x.im x.im))) |
(* (pow x.re 2) (+ (* -1 (/ (pow x.im 3) (pow x.re 2))) (* 3 x.im))) |
(*.f64 (neg.f64 x.im) (fma.f64 (*.f64 x.re x.re) #s(literal -3 binary64) (*.f64 x.im x.im))) |
(* 3 (pow x.re 2)) |
(*.f64 (*.f64 x.re x.re) #s(literal 3 binary64)) |
(* (pow x.re 2) (+ 3 (* -1 (/ (pow x.im 2) (pow x.re 2))))) |
(neg.f64 (fma.f64 (*.f64 x.re x.re) #s(literal -3 binary64) (*.f64 x.im x.im))) |
(* -3 (pow x.re 2)) |
(*.f64 (*.f64 x.re x.re) #s(literal -3 binary64)) |
(* (pow x.re 2) (- (/ (pow x.im 2) (pow x.re 2)) 3)) |
(fma.f64 (*.f64 x.re x.re) #s(literal -3 binary64) (*.f64 x.im x.im)) |
(* -3 x.re) |
(*.f64 #s(literal -3 binary64) x.re) |
(* x.re (- (/ (pow x.im 2) (pow x.re 2)) 3)) |
(*.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64)) x.re) |
-3 |
#s(literal -3 binary64) |
(- (/ (pow x.im 2) (pow x.re 2)) 3) |
(fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64)) |
(* (pow x.re 2) (- (* 3 (/ 1 (pow x.im 2))) (/ 1 (pow x.re 2)))) |
(*.f64 (-.f64 (/.f64 #s(literal 3 binary64) (*.f64 x.im x.im)) (/.f64 #s(literal 1 binary64) (*.f64 x.re x.re))) (*.f64 x.re x.re)) |
(* -1 (* x.re (+ 3 (* -1 (/ (pow x.im 2) (pow x.re 2)))))) |
(*.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64)) x.re) |
(* x.im (+ (* 2 (pow x.re 2)) (pow x.re 2))) |
(*.f64 (*.f64 (*.f64 x.re x.re) x.im) #s(literal 3 binary64)) |
(* x.im (+ (* -1 (pow x.im 2)) (+ (* 2 (pow x.re 2)) (pow x.re 2)))) |
(*.f64 (neg.f64 x.im) (fma.f64 (*.f64 x.re x.re) #s(literal -3 binary64) (*.f64 x.im x.im))) |
(* x.im (+ (* -1 (pow x.im 2)) (* 3 (pow x.re 2)))) |
(*.f64 (neg.f64 x.im) (fma.f64 (*.f64 x.re x.re) #s(literal -3 binary64) (*.f64 x.im x.im))) |
(- (* -1 (pow x.im 2)) (* -3 (pow x.re 2))) |
(neg.f64 (fma.f64 (*.f64 x.re x.re) #s(literal -3 binary64) (*.f64 x.im x.im))) |
(+ (* -3 x.re) (/ (pow x.im 2) x.re)) |
(fma.f64 (/.f64 x.im x.re) x.im (*.f64 #s(literal -3 binary64) x.re)) |
(/ (+ (* -1 (pow x.im 2)) (* 3 (pow x.re 2))) (pow x.im 2)) |
(fma.f64 (/.f64 (*.f64 #s(literal 3 binary64) x.re) x.im) (/.f64 x.re x.im) #s(literal -1 binary64)) |
(* (pow x.im 3) (- (+ (* 2 (/ (pow x.re 2) (pow x.im 2))) (/ (pow x.re 2) (pow x.im 2))) 1)) |
(*.f64 (neg.f64 x.im) (fma.f64 (*.f64 x.re x.re) #s(literal -3 binary64) (*.f64 x.im x.im))) |
(* (pow x.im 3) (- (* 3 (/ (pow x.re 2) (pow x.im 2))) 1)) |
(*.f64 (neg.f64 x.im) (fma.f64 (*.f64 x.re x.re) #s(literal -3 binary64) (*.f64 x.im x.im))) |
(* (pow x.im 2) (- (* 3 (/ (pow x.re 2) (pow x.im 2))) 1)) |
(*.f64 (fma.f64 (/.f64 (*.f64 #s(literal 3 binary64) x.re) x.im) (/.f64 x.re x.im) #s(literal -1 binary64)) (*.f64 x.im x.im)) |
(* (pow x.im 2) (+ 1 (* -3 (/ (pow x.re 2) (pow x.im 2))))) |
(fma.f64 (*.f64 x.re x.re) #s(literal -3 binary64) (*.f64 x.im x.im)) |
(* (pow x.im 2) (+ (* -3 (/ x.re (pow x.im 2))) (/ 1 x.re))) |
(fma.f64 (/.f64 x.im x.re) x.im (*.f64 #s(literal -3 binary64) x.re)) |
(* (pow x.im 2) (- (/ 1 (pow x.re 2)) (* 3 (/ 1 (pow x.im 2))))) |
(*.f64 (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (*.f64 x.re x.re)) (/.f64 #s(literal 3 binary64) (*.f64 x.im x.im))) x.im) x.im) |
(* -1 (* (pow x.im 3) (+ 1 (+ (* -2 (/ (pow x.re 2) (pow x.im 2))) (* -1 (/ (pow x.re 2) (pow x.im 2))))))) |
(*.f64 (neg.f64 x.im) (fma.f64 (*.f64 x.re x.re) #s(literal -3 binary64) (*.f64 x.im x.im))) |
(* -1 (* (pow x.im 3) (+ 1 (* -3 (/ (pow x.re 2) (pow x.im 2)))))) |
(*.f64 (neg.f64 x.im) (fma.f64 (*.f64 x.re x.re) #s(literal -3 binary64) (*.f64 x.im x.im))) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 58 | 578 |
| 0 | 82 | 554 |
| 1 | 251 | 512 |
| 0 | 1599 | 492 |
| 1× | iter limit |
| 1× | iter limit |
| 1× | node limit |
| 1× | iter limit |
| Inputs |
|---|
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (neg.f64 #s(approx (+ (* (* -3 x.re) x.re) (* x.im x.im)) (*.f64 (*.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64)) x.re) x.re))) x.im)) |
(*.f64 (neg.f64 #s(approx (+ (* (* -3 x.re) x.re) (* x.im x.im)) (*.f64 (*.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64)) x.re) x.re))) x.im) |
(neg.f64 #s(approx (+ (* (* -3 x.re) x.re) (* x.im x.im)) (*.f64 (*.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64)) x.re) x.re))) |
#s(approx (+ (* (* -3 x.re) x.re) (* x.im x.im)) (*.f64 (*.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64)) x.re) x.re)) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 #s(literal 3 binary64) x.re) (*.f64 x.im x.re))) |
(*.f64 (*.f64 #s(literal 3 binary64) x.re) (*.f64 x.im x.re)) |
(*.f64 #s(literal 3 binary64) x.re) |
(*.f64 x.im x.re) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 (*.f64 x.re x.re) x.im) #s(literal 3 binary64))) |
(*.f64 (*.f64 (*.f64 x.re x.re) x.im) #s(literal 3 binary64)) |
(*.f64 (*.f64 x.re x.re) x.im) |
(*.f64 x.re x.re) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (neg.f64 #s(approx (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (*.f64 (/.f64 x.im x.re) (/.f64 x.im x.re)))) (*.f64 x.re x.re))) x.im)) |
(*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (neg.f64 #s(approx (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (*.f64 (/.f64 x.im x.re) (/.f64 x.im x.re)))) (*.f64 x.re x.re))) x.im) |
#s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (neg.f64 #s(approx (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (*.f64 (/.f64 x.im x.re) (/.f64 x.im x.re)))) (*.f64 x.re x.re))) |
(*.f64 (neg.f64 #s(approx (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (*.f64 (/.f64 x.im x.re) (/.f64 x.im x.re)))) (*.f64 x.re x.re)) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 #s(approx (+ (* (* 3 (/ x.re x.im)) (/ x.re x.im)) -1) (*.f64 (/.f64 #s(literal 3 binary64) x.im) (*.f64 x.re (/.f64 x.re x.im)))) (*.f64 x.im x.im))) x.im)) |
(*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 #s(approx (+ (* (* 3 (/ x.re x.im)) (/ x.re x.im)) -1) (*.f64 (/.f64 #s(literal 3 binary64) x.im) (*.f64 x.re (/.f64 x.re x.im)))) (*.f64 x.im x.im))) x.im) |
#s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 #s(approx (+ (* (* 3 (/ x.re x.im)) (/ x.re x.im)) -1) (*.f64 (/.f64 #s(literal 3 binary64) x.im) (*.f64 x.re (/.f64 x.re x.im)))) (*.f64 x.im x.im))) |
(*.f64 #s(approx (+ (* (* 3 (/ x.re x.im)) (/ x.re x.im)) -1) (*.f64 (/.f64 #s(literal 3 binary64) x.im) (*.f64 x.re (/.f64 x.re x.im)))) (*.f64 x.im x.im)) |
(*.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64)) x.re) |
(*.f64 (*.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64)) x.re) x.re) |
(fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64)) |
#s(approx (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (*.f64 (/.f64 x.im x.re) (/.f64 x.im x.re))) |
(*.f64 (/.f64 x.im x.re) (/.f64 x.im x.re)) |
#s(approx (+ (* (* 3 (/ x.re x.im)) (/ x.re x.im)) -1) (*.f64 (/.f64 #s(literal 3 binary64) x.im) (*.f64 x.re (/.f64 x.re x.im)))) |
(*.f64 (/.f64 #s(literal 3 binary64) x.im) (*.f64 x.re (/.f64 x.re x.im))) |
| Outputs |
|---|
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 #s(approx (+ (* (* -3 x.re) x.re) (* x.im x.im)) (*.f64 (*.f64 x.re x.re) (+.f64 (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64)) #s(literal -3 binary64)))) (neg.f64 x.im))) |
(*.f64 (neg.f64 #s(approx (+ (* (* -3 x.re) x.re) (* x.im x.im)) (*.f64 (*.f64 x.re x.re) (+.f64 (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64)) #s(literal -3 binary64))))) x.im) |
(*.f64 #s(approx (+ (* (* -3 x.re) x.re) (* x.im x.im)) (*.f64 (*.f64 x.re x.re) (+.f64 (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64)) #s(literal -3 binary64)))) (neg.f64 x.im)) |
(*.f64 x.im (neg.f64 #s(approx (+ (* (* -3 x.re) x.re) (* x.im x.im)) (*.f64 (*.f64 x.re x.re) (+.f64 (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64)) #s(literal -3 binary64)))))) |
(neg.f64 (*.f64 #s(approx (+ (* (* -3 x.re) x.re) (* x.im x.im)) (*.f64 (*.f64 x.re x.re) (+.f64 (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64)) #s(literal -3 binary64)))) x.im)) |
(neg.f64 #s(approx (+ (* (* -3 x.re) x.re) (* x.im x.im)) (*.f64 (*.f64 x.re x.re) (+.f64 (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64)) #s(literal -3 binary64))))) |
#s(approx (+ (* (* -3 x.re) x.re) (* x.im x.im)) (*.f64 (*.f64 x.re x.re) (+.f64 (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64)) #s(literal -3 binary64)))) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 (*.f64 x.re x.re) x.im) #s(literal 3 binary64))) |
(*.f64 (*.f64 (*.f64 x.im x.re) #s(literal 3 binary64)) x.re) |
(*.f64 (*.f64 (*.f64 #s(literal 3 binary64) x.re) x.re) x.im) |
(*.f64 (*.f64 #s(literal 3 binary64) x.im) (*.f64 x.re x.re)) |
(*.f64 (*.f64 (*.f64 #s(literal 3 binary64) x.re) x.im) x.re) |
(*.f64 (*.f64 #s(literal 3 binary64) (*.f64 x.re x.re)) x.im) |
(*.f64 (neg.f64 x.re) (*.f64 (neg.f64 x.re) (*.f64 #s(literal 3 binary64) x.im))) |
(*.f64 (fabs.f64 x.re) (*.f64 (fabs.f64 x.re) (*.f64 #s(literal 3 binary64) x.im))) |
(*.f64 (*.f64 (*.f64 x.re x.re) x.im) #s(literal 3 binary64)) |
(*.f64 (*.f64 x.re x.re) (*.f64 #s(literal 3 binary64) x.im)) |
(*.f64 (*.f64 x.im x.re) (*.f64 #s(literal 3 binary64) x.re)) |
(*.f64 (*.f64 #s(literal 3 binary64) x.re) (*.f64 x.im x.re)) |
(*.f64 #s(literal 3 binary64) (*.f64 (*.f64 x.re x.re) x.im)) |
(*.f64 x.im (*.f64 (*.f64 x.re x.re) #s(literal 3 binary64))) |
(*.f64 x.im (*.f64 x.re (*.f64 #s(literal 3 binary64) x.re))) |
(*.f64 x.re (*.f64 (*.f64 x.im x.re) #s(literal 3 binary64))) |
(*.f64 x.re (*.f64 (*.f64 #s(literal 3 binary64) x.re) x.im)) |
(*.f64 #s(literal 3 binary64) x.re) |
(*.f64 x.re #s(literal 3 binary64)) |
(*.f64 x.im x.re) |
(*.f64 x.re x.im) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 (*.f64 x.re x.re) x.im) #s(literal 3 binary64))) |
(*.f64 (*.f64 (*.f64 x.im x.re) #s(literal 3 binary64)) x.re) |
(*.f64 (*.f64 (*.f64 #s(literal 3 binary64) x.re) x.re) x.im) |
(*.f64 (*.f64 #s(literal 3 binary64) x.im) (*.f64 x.re x.re)) |
(*.f64 (*.f64 (*.f64 #s(literal 3 binary64) x.re) x.im) x.re) |
(*.f64 (*.f64 #s(literal 3 binary64) (*.f64 x.re x.re)) x.im) |
(*.f64 (neg.f64 x.re) (*.f64 (neg.f64 x.re) (*.f64 #s(literal 3 binary64) x.im))) |
(*.f64 (fabs.f64 x.re) (*.f64 (fabs.f64 x.re) (*.f64 #s(literal 3 binary64) x.im))) |
(*.f64 (*.f64 (*.f64 x.re x.re) x.im) #s(literal 3 binary64)) |
(*.f64 (*.f64 x.re x.re) (*.f64 #s(literal 3 binary64) x.im)) |
(*.f64 (*.f64 x.im x.re) (*.f64 #s(literal 3 binary64) x.re)) |
(*.f64 (*.f64 #s(literal 3 binary64) x.re) (*.f64 x.im x.re)) |
(*.f64 #s(literal 3 binary64) (*.f64 (*.f64 x.re x.re) x.im)) |
(*.f64 x.im (*.f64 (*.f64 x.re x.re) #s(literal 3 binary64))) |
(*.f64 x.im (*.f64 x.re (*.f64 #s(literal 3 binary64) x.re))) |
(*.f64 x.re (*.f64 (*.f64 x.im x.re) #s(literal 3 binary64))) |
(*.f64 x.re (*.f64 (*.f64 #s(literal 3 binary64) x.re) x.im)) |
(*.f64 (*.f64 x.im (neg.f64 x.re)) (neg.f64 x.re)) |
(*.f64 (*.f64 x.im (fabs.f64 x.re)) (fabs.f64 x.re)) |
(*.f64 (neg.f64 x.re) (*.f64 (neg.f64 x.re) x.im)) |
(*.f64 (fabs.f64 x.re) (*.f64 (fabs.f64 x.re) x.im)) |
(*.f64 (*.f64 x.re x.re) x.im) |
(*.f64 (*.f64 x.im x.re) x.re) |
(*.f64 x.im (*.f64 x.re x.re)) |
(*.f64 x.re (*.f64 x.im x.re)) |
(*.f64 (pow.f64 x.re #s(literal 1 binary64)) (pow.f64 x.re #s(literal 1 binary64))) |
(*.f64 (neg.f64 (neg.f64 x.re)) (neg.f64 (neg.f64 x.re))) |
(*.f64 (neg.f64 (fabs.f64 x.re)) (neg.f64 (fabs.f64 x.re))) |
(*.f64 (fabs.f64 (fabs.f64 x.re)) (fabs.f64 (fabs.f64 x.re))) |
(*.f64 (neg.f64 x.re) (neg.f64 x.re)) |
(*.f64 (fabs.f64 x.re) (fabs.f64 x.re)) |
(*.f64 x.re x.re) |
(pow.f64 (neg.f64 x.re) #s(literal 2 binary64)) |
(pow.f64 (fabs.f64 x.re) #s(literal 2 binary64)) |
(pow.f64 x.re #s(literal 2 binary64)) |
(neg.f64 (*.f64 (neg.f64 x.re) x.re)) |
(neg.f64 (*.f64 x.re (neg.f64 x.re))) |
(fabs.f64 (*.f64 x.re x.re)) |
(exp.f64 (*.f64 (log.f64 x.re) #s(literal 2 binary64))) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 #s(approx (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64))) (neg.f64 (*.f64 x.re x.re)))) x.im)) |
(*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 #s(approx (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64))) (neg.f64 (*.f64 x.re x.re)))) x.im) |
(*.f64 x.im #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 #s(approx (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64))) (neg.f64 (*.f64 x.re x.re))))) |
#s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 #s(approx (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64))) (neg.f64 (*.f64 x.re x.re)))) |
(*.f64 (*.f64 (neg.f64 #s(approx (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64)))) (neg.f64 x.re)) (neg.f64 x.re)) |
(*.f64 (*.f64 (neg.f64 #s(approx (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64)))) (fabs.f64 x.re)) (fabs.f64 x.re)) |
(*.f64 (*.f64 (neg.f64 #s(approx (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64)))) x.re) x.re) |
(*.f64 (neg.f64 x.re) (*.f64 (neg.f64 x.re) (neg.f64 #s(approx (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64)))))) |
(*.f64 (fabs.f64 x.re) (*.f64 (fabs.f64 x.re) (neg.f64 #s(approx (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64)))))) |
(*.f64 (neg.f64 #s(approx (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64)))) (*.f64 x.re x.re)) |
(*.f64 #s(approx (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64))) (neg.f64 (*.f64 x.re x.re))) |
(*.f64 (*.f64 x.re x.re) (neg.f64 #s(approx (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64))))) |
(*.f64 x.re (*.f64 (neg.f64 #s(approx (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64)))) x.re)) |
(neg.f64 (*.f64 #s(approx (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64))) (*.f64 x.re x.re))) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 #s(approx (+ (* (* 3 (/ x.re x.im)) (/ x.re x.im)) -1) (*.f64 (pow.f64 (/.f64 x.re x.im) #s(literal 2 binary64)) #s(literal 3 binary64))) (*.f64 x.im x.im))) x.im)) |
(*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 #s(approx (+ (* (* 3 (/ x.re x.im)) (/ x.re x.im)) -1) (*.f64 (pow.f64 (/.f64 x.re x.im) #s(literal 2 binary64)) #s(literal 3 binary64))) (*.f64 x.im x.im))) x.im) |
(*.f64 x.im #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 #s(approx (+ (* (* 3 (/ x.re x.im)) (/ x.re x.im)) -1) (*.f64 (pow.f64 (/.f64 x.re x.im) #s(literal 2 binary64)) #s(literal 3 binary64))) (*.f64 x.im x.im)))) |
#s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 #s(approx (+ (* (* 3 (/ x.re x.im)) (/ x.re x.im)) -1) (*.f64 (pow.f64 (/.f64 x.re x.im) #s(literal 2 binary64)) #s(literal 3 binary64))) (*.f64 x.im x.im))) |
(*.f64 (*.f64 #s(approx (+ (* (* 3 (/ x.re x.im)) (/ x.re x.im)) -1) (*.f64 (pow.f64 (/.f64 x.re x.im) #s(literal 2 binary64)) #s(literal 3 binary64))) (neg.f64 x.im)) (neg.f64 x.im)) |
(*.f64 (*.f64 #s(approx (+ (* (* 3 (/ x.re x.im)) (/ x.re x.im)) -1) (*.f64 (pow.f64 (/.f64 x.re x.im) #s(literal 2 binary64)) #s(literal 3 binary64))) (fabs.f64 x.im)) (fabs.f64 x.im)) |
(*.f64 (*.f64 #s(approx (+ (* (* 3 (/ x.re x.im)) (/ x.re x.im)) -1) (*.f64 (pow.f64 (/.f64 x.re x.im) #s(literal 2 binary64)) #s(literal 3 binary64))) x.im) x.im) |
(*.f64 (neg.f64 x.im) (*.f64 (neg.f64 x.im) #s(approx (+ (* (* 3 (/ x.re x.im)) (/ x.re x.im)) -1) (*.f64 (pow.f64 (/.f64 x.re x.im) #s(literal 2 binary64)) #s(literal 3 binary64))))) |
(*.f64 (fabs.f64 x.im) (*.f64 (fabs.f64 x.im) #s(approx (+ (* (* 3 (/ x.re x.im)) (/ x.re x.im)) -1) (*.f64 (pow.f64 (/.f64 x.re x.im) #s(literal 2 binary64)) #s(literal 3 binary64))))) |
(*.f64 #s(approx (+ (* (* 3 (/ x.re x.im)) (/ x.re x.im)) -1) (*.f64 (pow.f64 (/.f64 x.re x.im) #s(literal 2 binary64)) #s(literal 3 binary64))) (*.f64 x.im x.im)) |
(*.f64 (*.f64 x.im x.im) #s(approx (+ (* (* 3 (/ x.re x.im)) (/ x.re x.im)) -1) (*.f64 (pow.f64 (/.f64 x.re x.im) #s(literal 2 binary64)) #s(literal 3 binary64)))) |
(*.f64 x.im (*.f64 #s(approx (+ (* (* 3 (/ x.re x.im)) (/ x.re x.im)) -1) (*.f64 (pow.f64 (/.f64 x.re x.im) #s(literal 2 binary64)) #s(literal 3 binary64))) x.im)) |
(*.f64 (+.f64 (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64)) #s(literal -3 binary64)) x.re) |
(*.f64 x.re (+.f64 (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64)) #s(literal -3 binary64))) |
(/.f64 (*.f64 (-.f64 (pow.f64 (/.f64 x.im x.re) #s(literal 4 binary64)) #s(literal 9 binary64)) x.re) (-.f64 (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64)) #s(literal -3 binary64))) |
(/.f64 (*.f64 (+.f64 #s(literal -27 binary64) (pow.f64 (/.f64 x.im x.re) #s(literal 6 binary64))) x.re) (fma.f64 #s(literal -3 binary64) (-.f64 #s(literal -3 binary64) (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64))) (pow.f64 (/.f64 x.im x.re) #s(literal 4 binary64)))) |
(/.f64 (*.f64 x.re (-.f64 (pow.f64 (/.f64 x.im x.re) #s(literal 4 binary64)) #s(literal 9 binary64))) (-.f64 (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64)) #s(literal -3 binary64))) |
(/.f64 (*.f64 x.re (+.f64 #s(literal -27 binary64) (pow.f64 (/.f64 x.im x.re) #s(literal 6 binary64)))) (fma.f64 #s(literal -3 binary64) (-.f64 #s(literal -3 binary64) (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64))) (pow.f64 (/.f64 x.im x.re) #s(literal 4 binary64)))) |
(fma.f64 (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64)) x.re (*.f64 #s(literal -3 binary64) x.re)) |
(fma.f64 #s(literal -3 binary64) x.re (*.f64 (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64)) x.re)) |
(fma.f64 #s(literal -3 binary64) x.re (*.f64 x.re (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64)))) |
(fma.f64 x.re (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64)) (*.f64 #s(literal -3 binary64) x.re)) |
(fma.f64 x.re #s(literal -3 binary64) (*.f64 (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64)) x.re)) |
(fma.f64 x.re #s(literal -3 binary64) (*.f64 x.re (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64)))) |
(+.f64 (*.f64 (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64)) x.re) (*.f64 #s(literal -3 binary64) x.re)) |
(+.f64 (*.f64 x.re (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64))) (*.f64 #s(literal -3 binary64) x.re)) |
(+.f64 (*.f64 #s(literal -3 binary64) x.re) (*.f64 (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64)) x.re)) |
(+.f64 (*.f64 #s(literal -3 binary64) x.re) (*.f64 x.re (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64)))) |
(*.f64 (*.f64 (+.f64 (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64)) #s(literal -3 binary64)) (neg.f64 x.re)) (neg.f64 x.re)) |
(*.f64 (*.f64 (+.f64 (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64)) #s(literal -3 binary64)) (fabs.f64 x.re)) (fabs.f64 x.re)) |
(*.f64 (*.f64 x.re x.re) (+.f64 (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64)) #s(literal -3 binary64))) |
(*.f64 (*.f64 (+.f64 (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64)) #s(literal -3 binary64)) x.re) x.re) |
(*.f64 (+.f64 (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64)) #s(literal -3 binary64)) (*.f64 x.re x.re)) |
(*.f64 x.re (*.f64 (+.f64 (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64)) #s(literal -3 binary64)) x.re)) |
(/.f64 (*.f64 (-.f64 (pow.f64 (/.f64 x.im x.re) #s(literal 4 binary64)) #s(literal 9 binary64)) (*.f64 x.re x.re)) (-.f64 (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64)) #s(literal -3 binary64))) |
(/.f64 (*.f64 (+.f64 #s(literal -27 binary64) (pow.f64 (/.f64 x.im x.re) #s(literal 6 binary64))) (*.f64 x.re x.re)) (fma.f64 #s(literal -3 binary64) (-.f64 #s(literal -3 binary64) (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64))) (pow.f64 (/.f64 x.im x.re) #s(literal 4 binary64)))) |
(/.f64 (-.f64 #s(literal 9 binary64) (pow.f64 (/.f64 x.im x.re) #s(literal 4 binary64))) (-.f64 #s(literal -3 binary64) (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64)))) |
(/.f64 (neg.f64 (-.f64 (pow.f64 (/.f64 x.im x.re) #s(literal 4 binary64)) #s(literal 9 binary64))) (neg.f64 (-.f64 (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64)) #s(literal -3 binary64)))) |
(/.f64 (neg.f64 (+.f64 #s(literal -27 binary64) (pow.f64 (/.f64 x.im x.re) #s(literal 6 binary64)))) (neg.f64 (fma.f64 #s(literal -3 binary64) (-.f64 #s(literal -3 binary64) (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64))) (pow.f64 (/.f64 x.im x.re) #s(literal 4 binary64))))) |
(/.f64 (-.f64 (pow.f64 (/.f64 x.im x.re) #s(literal 4 binary64)) #s(literal 9 binary64)) (-.f64 (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64)) #s(literal -3 binary64))) |
(/.f64 (+.f64 #s(literal -27 binary64) (pow.f64 (/.f64 x.im x.re) #s(literal 6 binary64))) (+.f64 #s(literal 9 binary64) (-.f64 (pow.f64 (/.f64 x.im x.re) #s(literal 4 binary64)) (*.f64 (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64)) #s(literal -3 binary64))))) |
(/.f64 (+.f64 #s(literal -27 binary64) (pow.f64 (/.f64 x.im x.re) #s(literal 6 binary64))) (fma.f64 #s(literal -3 binary64) (-.f64 #s(literal -3 binary64) (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64))) (pow.f64 (/.f64 x.im x.re) #s(literal 4 binary64)))) |
(fma.f64 (pow.f64 (/.f64 x.im x.re) #s(literal 1 binary64)) (pow.f64 (/.f64 x.im x.re) #s(literal 1 binary64)) #s(literal -3 binary64)) |
(fma.f64 (/.f64 (neg.f64 x.im) (fabs.f64 x.re)) (/.f64 (neg.f64 x.im) (fabs.f64 x.re)) #s(literal -3 binary64)) |
(fma.f64 (/.f64 (fabs.f64 x.im) (neg.f64 x.re)) (/.f64 (fabs.f64 x.im) (neg.f64 x.re)) #s(literal -3 binary64)) |
(fma.f64 (/.f64 (fabs.f64 x.im) x.re) (/.f64 (fabs.f64 x.im) x.re) #s(literal -3 binary64)) |
(fma.f64 (/.f64 x.im (fabs.f64 x.re)) (/.f64 x.im (fabs.f64 x.re)) #s(literal -3 binary64)) |
(fma.f64 (neg.f64 (fabs.f64 (/.f64 x.im x.re))) (neg.f64 (fabs.f64 (/.f64 x.im x.re))) #s(literal -3 binary64)) |
(fma.f64 (fabs.f64 (fabs.f64 (/.f64 x.im x.re))) (fabs.f64 (fabs.f64 (/.f64 x.im x.re))) #s(literal -3 binary64)) |
(fma.f64 (neg.f64 x.im) (/.f64 (neg.f64 x.im) (*.f64 x.re x.re)) #s(literal -3 binary64)) |
(fma.f64 (/.f64 x.im (neg.f64 x.re)) (/.f64 x.im (neg.f64 x.re)) #s(literal -3 binary64)) |
(fma.f64 (fabs.f64 x.im) (/.f64 (fabs.f64 x.im) (*.f64 x.re x.re)) #s(literal -3 binary64)) |
(fma.f64 (fabs.f64 (/.f64 x.im x.re)) (fabs.f64 (/.f64 x.im x.re)) #s(literal -3 binary64)) |
(fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64)) |
(fma.f64 x.im (/.f64 (/.f64 x.im x.re) x.re) #s(literal -3 binary64)) |
(fma.f64 x.im (/.f64 x.im (*.f64 x.re x.re)) #s(literal -3 binary64)) |
(-.f64 (/.f64 (pow.f64 (/.f64 x.im x.re) #s(literal 4 binary64)) (-.f64 (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64)) #s(literal -3 binary64))) (/.f64 #s(literal 9 binary64) (-.f64 (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64)) #s(literal -3 binary64)))) |
(-.f64 #s(literal -3 binary64) (*.f64 (neg.f64 (fabs.f64 (/.f64 x.im x.re))) (fabs.f64 (/.f64 x.im x.re)))) |
(-.f64 #s(literal -3 binary64) (*.f64 (/.f64 x.im (neg.f64 x.re)) (/.f64 x.im x.re))) |
(-.f64 #s(literal -3 binary64) (*.f64 (/.f64 x.im x.re) (/.f64 x.im (neg.f64 x.re)))) |
(+.f64 (/.f64 (pow.f64 (/.f64 x.im x.re) #s(literal 6 binary64)) (fma.f64 #s(literal -3 binary64) (-.f64 #s(literal -3 binary64) (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64))) (pow.f64 (/.f64 x.im x.re) #s(literal 4 binary64)))) (/.f64 #s(literal -27 binary64) (fma.f64 #s(literal -3 binary64) (-.f64 #s(literal -3 binary64) (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64))) (pow.f64 (/.f64 x.im x.re) #s(literal 4 binary64))))) |
(+.f64 (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64)) #s(literal -3 binary64)) |
(+.f64 #s(literal -3 binary64) (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64))) |
#s(approx (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64))) |
(*.f64 (pow.f64 (/.f64 x.im x.re) #s(literal 1 binary64)) (pow.f64 (/.f64 x.im x.re) #s(literal 1 binary64))) |
(*.f64 (/.f64 (neg.f64 x.im) (fabs.f64 x.re)) (/.f64 (neg.f64 x.im) (fabs.f64 x.re))) |
(*.f64 (/.f64 (fabs.f64 x.im) (neg.f64 x.re)) (/.f64 (fabs.f64 x.im) (neg.f64 x.re))) |
(*.f64 (/.f64 (fabs.f64 x.im) x.re) (/.f64 (fabs.f64 x.im) x.re)) |
(*.f64 (/.f64 x.im (fabs.f64 x.re)) (/.f64 x.im (fabs.f64 x.re))) |
(*.f64 (neg.f64 (fabs.f64 (/.f64 x.im x.re))) (neg.f64 (fabs.f64 (/.f64 x.im x.re)))) |
(*.f64 (fabs.f64 (fabs.f64 (/.f64 x.im x.re))) (fabs.f64 (fabs.f64 (/.f64 x.im x.re)))) |
(*.f64 (neg.f64 x.im) (/.f64 (neg.f64 x.im) (*.f64 x.re x.re))) |
(*.f64 (/.f64 x.im (neg.f64 x.re)) (/.f64 x.im (neg.f64 x.re))) |
(*.f64 (fabs.f64 x.im) (/.f64 (fabs.f64 x.im) (*.f64 x.re x.re))) |
(*.f64 (fabs.f64 (/.f64 x.im x.re)) (fabs.f64 (/.f64 x.im x.re))) |
(*.f64 (/.f64 x.im x.re) (/.f64 x.im x.re)) |
(*.f64 x.im (/.f64 (/.f64 x.im x.re) x.re)) |
(*.f64 x.im (/.f64 x.im (*.f64 x.re x.re))) |
(pow.f64 (/.f64 x.im (neg.f64 x.re)) #s(literal 2 binary64)) |
(pow.f64 (fabs.f64 (/.f64 x.im x.re)) #s(literal 2 binary64)) |
(pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64)) |
(/.f64 (/.f64 (*.f64 x.im x.im) (neg.f64 x.re)) (neg.f64 x.re)) |
(/.f64 (/.f64 (*.f64 x.im x.im) (fabs.f64 x.re)) (fabs.f64 x.re)) |
(/.f64 (*.f64 (neg.f64 x.im) (/.f64 x.im x.re)) (neg.f64 x.re)) |
(/.f64 (*.f64 (/.f64 x.im x.re) (neg.f64 x.im)) (neg.f64 x.re)) |
(/.f64 (neg.f64 (*.f64 (/.f64 x.im x.re) x.im)) (neg.f64 x.re)) |
(/.f64 (*.f64 (/.f64 x.im x.re) x.im) x.re) |
(/.f64 (*.f64 (neg.f64 x.im) x.im) (*.f64 (neg.f64 x.re) x.re)) |
(/.f64 (*.f64 (neg.f64 x.im) x.im) (*.f64 x.re (neg.f64 x.re))) |
(/.f64 (*.f64 (neg.f64 x.im) x.im) (neg.f64 (*.f64 x.re x.re))) |
(/.f64 (*.f64 x.im x.im) (*.f64 x.re x.re)) |
(neg.f64 (*.f64 (/.f64 x.im (neg.f64 x.re)) (/.f64 x.im x.re))) |
(neg.f64 (*.f64 (/.f64 x.im x.re) (/.f64 x.im (neg.f64 x.re)))) |
(fabs.f64 (pow.f64 (/.f64 x.im x.re) #s(literal 2 binary64))) |
(exp.f64 (*.f64 (log.f64 (/.f64 x.im x.re)) #s(literal 2 binary64))) |
#s(approx (+ (* (* 3 (/ x.re x.im)) (/ x.re x.im)) -1) (*.f64 (pow.f64 (/.f64 x.re x.im) #s(literal 2 binary64)) #s(literal 3 binary64))) |
(*.f64 (*.f64 (/.f64 #s(literal 3 binary64) x.im) (/.f64 x.re x.im)) x.re) |
(*.f64 (pow.f64 (/.f64 x.re x.im) #s(literal 2 binary64)) #s(literal 3 binary64)) |
(*.f64 (*.f64 (/.f64 x.re x.im) x.re) (/.f64 #s(literal 3 binary64) x.im)) |
(*.f64 (/.f64 x.re x.im) (/.f64 (*.f64 #s(literal 3 binary64) x.re) x.im)) |
(*.f64 (/.f64 #s(literal 3 binary64) x.im) (*.f64 (/.f64 x.re x.im) x.re)) |
(*.f64 (/.f64 (*.f64 #s(literal 3 binary64) x.re) x.im) (/.f64 x.re x.im)) |
(*.f64 #s(literal 3 binary64) (pow.f64 (/.f64 x.re x.im) #s(literal 2 binary64))) |
(*.f64 x.re (*.f64 (/.f64 x.re x.im) (/.f64 #s(literal 3 binary64) x.im))) |
(/.f64 (*.f64 (*.f64 x.re x.re) (/.f64 #s(literal 3 binary64) x.im)) x.im) |
(/.f64 (*.f64 #s(literal -3 binary64) (*.f64 (/.f64 x.re x.im) x.re)) (neg.f64 x.im)) |
(/.f64 (*.f64 (neg.f64 x.re) (/.f64 (*.f64 #s(literal 3 binary64) x.re) x.im)) (neg.f64 x.im)) |
(/.f64 (*.f64 (*.f64 (/.f64 x.re x.im) x.re) #s(literal -3 binary64)) (neg.f64 x.im)) |
(/.f64 (*.f64 (/.f64 #s(literal 3 binary64) x.im) (*.f64 x.re x.re)) x.im) |
(/.f64 (*.f64 (/.f64 (*.f64 #s(literal 3 binary64) x.re) x.im) (neg.f64 x.re)) (neg.f64 x.im)) |
(/.f64 (neg.f64 (*.f64 (*.f64 (/.f64 x.re x.im) x.re) #s(literal 3 binary64))) (neg.f64 x.im)) |
(/.f64 (*.f64 (*.f64 x.re x.re) #s(literal 3 binary64)) (*.f64 x.im x.im)) |
(/.f64 (*.f64 (neg.f64 x.re) (*.f64 #s(literal 3 binary64) x.re)) (*.f64 (neg.f64 x.im) x.im)) |
(/.f64 (*.f64 x.re (*.f64 #s(literal 3 binary64) x.re)) (*.f64 x.im x.im)) |
(/.f64 (*.f64 (*.f64 #s(literal 3 binary64) x.re) (neg.f64 x.re)) (*.f64 (neg.f64 x.im) x.im)) |
(/.f64 (*.f64 (*.f64 #s(literal 3 binary64) x.re) x.re) (*.f64 x.im x.im)) |
(/.f64 (*.f64 (*.f64 (/.f64 x.re x.im) x.re) #s(literal 3 binary64)) x.im) |
(/.f64 (*.f64 #s(literal 3 binary64) (*.f64 x.re x.re)) (*.f64 x.im x.im)) |
(/.f64 (*.f64 (*.f64 #s(literal -3 binary64) x.re) x.re) (*.f64 (neg.f64 x.im) x.im)) |
Compiled 10 837 to 1 215 computations (88.8% saved)
12 alts after pruning (3 fresh and 9 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 224 | 3 | 227 |
| Fresh | 0 | 0 | 0 |
| Picked | 1 | 4 | 5 |
| Done | 0 | 5 | 5 |
| Total | 225 | 12 | 237 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 87.6% | (fma.f64 (*.f64 (+.f64 x.re x.im) (-.f64 x.re x.im)) x.im #s(approx (* (+ (* x.re x.im) (* x.im x.re)) x.re) (*.f64 (*.f64 #s(literal 2 binary64) (*.f64 x.re x.re)) x.im))) |
| ✓ | 58.8% | #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (pow.f64 (neg.f64 x.im) #s(literal 3 binary64))) |
| ✓ | 49.5% | #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 (*.f64 x.re x.re) x.im) #s(literal 3 binary64))) |
| ✓ | 58.7% | #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 x.im x.im) (neg.f64 x.im))) |
| ✓ | 53.2% | #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 #s(literal 3 binary64) (*.f64 x.im x.re)) x.re)) |
| ✓ | 53.2% | #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 #s(literal 3 binary64) x.re) (*.f64 x.im x.re))) |
| ✓ | 92.9% | #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (neg.f64 (fma.f64 (*.f64 #s(literal -3 binary64) x.re) x.re (*.f64 x.im x.im))) x.im)) |
| ✓ | 85.2% | #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (neg.f64 #s(approx (+ (* (* -3 x.re) x.re) (* x.im x.im)) (*.f64 (*.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64)) x.re) x.re))) x.im)) |
| 93.8% | #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (neg.f64 #s(approx (+ (* (* -3 x.re) x.re) (* x.im x.im)) (*.f64 #s(approx (* (+ (* (/ x.im x.re) (/ x.im x.re)) -3) x.re) (fma.f64 (/.f64 x.im x.re) x.im (*.f64 #s(literal -3 binary64) x.re))) x.re))) x.im)) | |
| 56.5% | #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (neg.f64 #s(approx (+ (* (* -3 x.re) x.re) (* x.im x.im)) (*.f64 #s(approx (* (+ (* (/ x.im x.re) (/ x.im x.re)) -3) x.re) (/.f64 (*.f64 x.im x.im) x.re)) x.re))) x.im)) | |
| 29.8% | #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (neg.f64 #s(approx (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (*.f64 x.im (/.f64 x.im (*.f64 x.re x.re))))) (*.f64 x.re x.re))) x.im)) | |
| ✓ | 32.4% | #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 #s(approx (+ (* (* 3 (/ x.re x.im)) (/ x.re x.im)) -1) (*.f64 (/.f64 #s(literal 3 binary64) x.im) (*.f64 x.re (/.f64 x.re x.im)))) (*.f64 x.im x.im))) x.im)) |
Compiled 1 259 to 401 computations (68.1% saved)
| Inputs |
|---|
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 x.im x.im) (neg.f64 x.im))) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 #s(literal 3 binary64) x.re) (*.f64 x.im x.re))) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 #s(literal 3 binary64) (*.f64 x.im x.re)) x.re)) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 (*.f64 #s(literal 3 binary64) x.re) x.im) x.re)) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 (*.f64 x.re x.re) x.im) #s(literal 3 binary64))) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (neg.f64 (fma.f64 (*.f64 #s(literal -3 binary64) x.re) x.re (*.f64 x.im x.im))) x.im)) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (neg.f64 #s(approx (+ (* (* -3 x.re) x.re) (* x.im x.im)) (*.f64 #s(approx (* (+ (* (/ x.im x.re) (/ x.im x.re)) -3) x.re) (/.f64 (*.f64 x.im x.im) x.re)) x.re))) x.im)) |
(+.f64 #s(approx (* (- (* x.re x.re) (* x.im x.im)) x.im) (*.f64 (*.f64 x.im x.re) x.re)) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re)) |
(+.f64 (*.f64 #s(approx (- (* x.re x.re) (* x.im x.im)) (*.f64 x.re x.re)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re)) |
(fma.f64 (*.f64 (+.f64 x.re x.im) (-.f64 x.re x.im)) x.im #s(approx (* (+ (* x.re x.im) (* x.im x.re)) x.re) (*.f64 (*.f64 #s(literal 2 binary64) (*.f64 x.re x.re)) x.im))) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (neg.f64 #s(approx (+ (* (* -3 x.re) x.re) (* x.im x.im)) (*.f64 #s(approx (* (+ (* (/ x.im x.re) (/ x.im x.re)) -3) x.re) (fma.f64 (/.f64 x.im x.re) x.im (*.f64 #s(literal -3 binary64) x.re))) x.re))) x.im)) |
(+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (*.f64 x.re (+.f64 x.im x.im)) x.re)) |
(+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) #s(approx (* (+ (* x.re x.im) (* x.im x.re)) x.re) (*.f64 (*.f64 (*.f64 x.re x.re) #s(literal 2 binary64)) x.im))) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (neg.f64 #s(approx (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (*.f64 x.im (/.f64 x.im (*.f64 x.re x.re))))) (*.f64 x.re x.re))) x.im)) |
(+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re)) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (neg.f64 #s(approx (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (*.f64 (/.f64 x.im x.re) (/.f64 x.im x.re)))) (*.f64 x.re x.re))) x.im)) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (neg.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64))) (*.f64 x.re x.re))) x.im)) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (neg.f64 #s(approx (+ (* (* -3 x.re) x.re) (* x.im x.im)) (*.f64 (*.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64)) x.re) x.re))) x.im)) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 #s(approx (+ (* (* 3 (/ x.re x.im)) (/ x.re x.im)) -1) (*.f64 (/.f64 #s(literal 3 binary64) x.im) (*.f64 x.re (/.f64 x.re x.im)))) (*.f64 x.im x.im))) x.im)) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (fma.f64 (*.f64 #s(literal 3 binary64) (/.f64 x.re x.im)) (/.f64 x.re x.im) #s(literal -1 binary64)) (*.f64 x.im x.im))) x.im)) |
(+.f64 (*.f64 #s(approx (- (* x.re x.re) (* x.im x.im)) (*.f64 (*.f64 (neg.f64 x.re) x.re) (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -1 binary64)))) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re)) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (pow.f64 (neg.f64 x.im) #s(literal 3 binary64))) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (fma.f64 (*.f64 #s(literal 3 binary64) (/.f64 x.re x.im)) (/.f64 x.re x.im) #s(literal -1 binary64)) (pow.f64 x.im #s(literal 3 binary64)))) |
| Outputs |
|---|
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 #s(literal 3 binary64) x.re) (*.f64 x.im x.re))) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (fma.f64 (*.f64 #s(literal 3 binary64) (/.f64 x.re x.im)) (/.f64 x.re x.im) #s(literal -1 binary64)) (pow.f64 x.im #s(literal 3 binary64)))) |
3 calls:
| 6.0ms | x.im |
| 6.0ms | x.re |
| 5.0ms | (+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re)) |
| Accuracy | Segments | Branch |
|---|---|---|
| 99.8% | 3 | (+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re)) |
| 98.6% | 3 | x.re |
| 99.1% | 2 | x.im |
Compiled 21 to 15 computations (28.6% saved)
| Inputs |
|---|
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 x.im x.im) (neg.f64 x.im))) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 #s(literal 3 binary64) x.re) (*.f64 x.im x.re))) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 #s(literal 3 binary64) (*.f64 x.im x.re)) x.re)) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 (*.f64 #s(literal 3 binary64) x.re) x.im) x.re)) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 (*.f64 x.re x.re) x.im) #s(literal 3 binary64))) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (neg.f64 (fma.f64 (*.f64 #s(literal -3 binary64) x.re) x.re (*.f64 x.im x.im))) x.im)) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (neg.f64 #s(approx (+ (* (* -3 x.re) x.re) (* x.im x.im)) (*.f64 #s(approx (* (+ (* (/ x.im x.re) (/ x.im x.re)) -3) x.re) (/.f64 (*.f64 x.im x.im) x.re)) x.re))) x.im)) |
(+.f64 #s(approx (* (- (* x.re x.re) (* x.im x.im)) x.im) (*.f64 (*.f64 x.im x.re) x.re)) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re)) |
(+.f64 (*.f64 #s(approx (- (* x.re x.re) (* x.im x.im)) (*.f64 x.re x.re)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re)) |
(fma.f64 (*.f64 (+.f64 x.re x.im) (-.f64 x.re x.im)) x.im #s(approx (* (+ (* x.re x.im) (* x.im x.re)) x.re) (*.f64 (*.f64 #s(literal 2 binary64) (*.f64 x.re x.re)) x.im))) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (neg.f64 #s(approx (+ (* (* -3 x.re) x.re) (* x.im x.im)) (*.f64 #s(approx (* (+ (* (/ x.im x.re) (/ x.im x.re)) -3) x.re) (fma.f64 (/.f64 x.im x.re) x.im (*.f64 #s(literal -3 binary64) x.re))) x.re))) x.im)) |
(+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (*.f64 x.re (+.f64 x.im x.im)) x.re)) |
(+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) #s(approx (* (+ (* x.re x.im) (* x.im x.re)) x.re) (*.f64 (*.f64 (*.f64 x.re x.re) #s(literal 2 binary64)) x.im))) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (neg.f64 #s(approx (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (*.f64 x.im (/.f64 x.im (*.f64 x.re x.re))))) (*.f64 x.re x.re))) x.im)) |
(+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re)) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (neg.f64 #s(approx (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (*.f64 (/.f64 x.im x.re) (/.f64 x.im x.re)))) (*.f64 x.re x.re))) x.im)) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (neg.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64))) (*.f64 x.re x.re))) x.im)) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (neg.f64 #s(approx (+ (* (* -3 x.re) x.re) (* x.im x.im)) (*.f64 (*.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64)) x.re) x.re))) x.im)) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 #s(approx (+ (* (* 3 (/ x.re x.im)) (/ x.re x.im)) -1) (*.f64 (/.f64 #s(literal 3 binary64) x.im) (*.f64 x.re (/.f64 x.re x.im)))) (*.f64 x.im x.im))) x.im)) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (fma.f64 (*.f64 #s(literal 3 binary64) (/.f64 x.re x.im)) (/.f64 x.re x.im) #s(literal -1 binary64)) (*.f64 x.im x.im))) x.im)) |
(+.f64 (*.f64 #s(approx (- (* x.re x.re) (* x.im x.im)) (*.f64 (*.f64 (neg.f64 x.re) x.re) (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -1 binary64)))) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re)) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (pow.f64 (neg.f64 x.im) #s(literal 3 binary64))) |
| Outputs |
|---|
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 #s(literal 3 binary64) x.re) (*.f64 x.im x.re))) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (fma.f64 (*.f64 #s(literal 3 binary64) (/.f64 x.re x.im)) (/.f64 x.re x.im) #s(literal -1 binary64)) (*.f64 x.im x.im))) x.im)) |
1 calls:
| 19.0ms | x.im |
| Accuracy | Segments | Branch |
|---|---|---|
| 99.0% | 2 | x.im |
Compiled 1 to 2 computations (-100% saved)
| Inputs |
|---|
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 x.im x.im) (neg.f64 x.im))) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 #s(literal 3 binary64) x.re) (*.f64 x.im x.re))) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 #s(literal 3 binary64) (*.f64 x.im x.re)) x.re)) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 (*.f64 #s(literal 3 binary64) x.re) x.im) x.re)) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 (*.f64 x.re x.re) x.im) #s(literal 3 binary64))) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (neg.f64 (fma.f64 (*.f64 #s(literal -3 binary64) x.re) x.re (*.f64 x.im x.im))) x.im)) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (neg.f64 #s(approx (+ (* (* -3 x.re) x.re) (* x.im x.im)) (*.f64 #s(approx (* (+ (* (/ x.im x.re) (/ x.im x.re)) -3) x.re) (/.f64 (*.f64 x.im x.im) x.re)) x.re))) x.im)) |
(+.f64 #s(approx (* (- (* x.re x.re) (* x.im x.im)) x.im) (*.f64 (*.f64 x.im x.re) x.re)) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re)) |
(+.f64 (*.f64 #s(approx (- (* x.re x.re) (* x.im x.im)) (*.f64 x.re x.re)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re)) |
(fma.f64 (*.f64 (+.f64 x.re x.im) (-.f64 x.re x.im)) x.im #s(approx (* (+ (* x.re x.im) (* x.im x.re)) x.re) (*.f64 (*.f64 #s(literal 2 binary64) (*.f64 x.re x.re)) x.im))) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (neg.f64 #s(approx (+ (* (* -3 x.re) x.re) (* x.im x.im)) (*.f64 #s(approx (* (+ (* (/ x.im x.re) (/ x.im x.re)) -3) x.re) (fma.f64 (/.f64 x.im x.re) x.im (*.f64 #s(literal -3 binary64) x.re))) x.re))) x.im)) |
(+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (*.f64 x.re (+.f64 x.im x.im)) x.re)) |
(+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) #s(approx (* (+ (* x.re x.im) (* x.im x.re)) x.re) (*.f64 (*.f64 (*.f64 x.re x.re) #s(literal 2 binary64)) x.im))) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (neg.f64 #s(approx (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (*.f64 x.im (/.f64 x.im (*.f64 x.re x.re))))) (*.f64 x.re x.re))) x.im)) |
(+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re)) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (neg.f64 #s(approx (+ (* (/ x.im x.re) (/ x.im x.re)) -3) (*.f64 (/.f64 x.im x.re) (/.f64 x.im x.re)))) (*.f64 x.re x.re))) x.im)) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (neg.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64))) (*.f64 x.re x.re))) x.im)) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (neg.f64 #s(approx (+ (* (* -3 x.re) x.re) (* x.im x.im)) (*.f64 (*.f64 (fma.f64 (/.f64 x.im x.re) (/.f64 x.im x.re) #s(literal -3 binary64)) x.re) x.re))) x.im)) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 #s(approx (+ (* (* 3 (/ x.re x.im)) (/ x.re x.im)) -1) (*.f64 (/.f64 #s(literal 3 binary64) x.im) (*.f64 x.re (/.f64 x.re x.im)))) (*.f64 x.im x.im))) x.im)) |
| Outputs |
|---|
(fma.f64 (*.f64 (+.f64 x.re x.im) (-.f64 x.re x.im)) x.im #s(approx (* (+ (* x.re x.im) (* x.im x.re)) x.re) (*.f64 (*.f64 #s(literal 2 binary64) (*.f64 x.re x.re)) x.im))) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 #s(literal 3 binary64) x.re) (*.f64 x.im x.re))) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (neg.f64 #s(approx (+ (* (* -3 x.re) x.re) (* x.im x.im)) (*.f64 #s(approx (* (+ (* (/ x.im x.re) (/ x.im x.re)) -3) x.re) (fma.f64 (/.f64 x.im x.re) x.im (*.f64 #s(literal -3 binary64) x.re))) x.re))) x.im)) |
2 calls:
| 5.0ms | x.im |
| 4.0ms | (+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re)) |
| Accuracy | Segments | Branch |
|---|---|---|
| 99.8% | 3 | (+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re)) |
| 99.5% | 3 | x.im |
Compiled 20 to 13 computations (35% saved)
| Inputs |
|---|
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 x.im x.im) (neg.f64 x.im))) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 #s(literal 3 binary64) x.re) (*.f64 x.im x.re))) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 #s(literal 3 binary64) (*.f64 x.im x.re)) x.re)) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 (*.f64 #s(literal 3 binary64) x.re) x.im) x.re)) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 (*.f64 x.re x.re) x.im) #s(literal 3 binary64))) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (neg.f64 (fma.f64 (*.f64 #s(literal -3 binary64) x.re) x.re (*.f64 x.im x.im))) x.im)) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (neg.f64 #s(approx (+ (* (* -3 x.re) x.re) (* x.im x.im)) (*.f64 #s(approx (* (+ (* (/ x.im x.re) (/ x.im x.re)) -3) x.re) (/.f64 (*.f64 x.im x.im) x.re)) x.re))) x.im)) |
(+.f64 #s(approx (* (- (* x.re x.re) (* x.im x.im)) x.im) (*.f64 (*.f64 x.im x.re) x.re)) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re)) |
(+.f64 (*.f64 #s(approx (- (* x.re x.re) (* x.im x.im)) (*.f64 x.re x.re)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re)) |
(fma.f64 (*.f64 (+.f64 x.re x.im) (-.f64 x.re x.im)) x.im #s(approx (* (+ (* x.re x.im) (* x.im x.re)) x.re) (*.f64 (*.f64 #s(literal 2 binary64) (*.f64 x.re x.re)) x.im))) |
| Outputs |
|---|
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 #s(literal 3 binary64) x.re) (*.f64 x.im x.re))) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (neg.f64 (fma.f64 (*.f64 #s(literal -3 binary64) x.re) x.re (*.f64 x.im x.im))) x.im)) |
3 calls:
| 3.0ms | x.im |
| 3.0ms | x.re |
| 3.0ms | (+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re)) |
| Accuracy | Segments | Branch |
|---|---|---|
| 96.0% | 2 | x.re |
| 96.3% | 2 | x.im |
| 96.7% | 3 | (+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re)) |
Compiled 21 to 15 computations (28.6% saved)
| Inputs |
|---|
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 x.im x.im) (neg.f64 x.im))) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 #s(literal 3 binary64) x.re) (*.f64 x.im x.re))) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 #s(literal 3 binary64) (*.f64 x.im x.re)) x.re)) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 (*.f64 #s(literal 3 binary64) x.re) x.im) x.re)) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 (*.f64 x.re x.re) x.im) #s(literal 3 binary64))) |
| Outputs |
|---|
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 x.im x.im) (neg.f64 x.im))) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 #s(literal 3 binary64) x.re) (*.f64 x.im x.re))) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 x.im x.im) (neg.f64 x.im))) |
3 calls:
| 9.0ms | (+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re)) |
| 2.0ms | x.re |
| 2.0ms | x.im |
| Accuracy | Segments | Branch |
|---|---|---|
| 96.1% | 3 | (+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re)) |
| 83.7% | 2 | x.re |
| 80.6% | 2 | x.im |
Compiled 21 to 15 computations (28.6% saved)
Total -0.0b remaining (-0%)
Threshold costs -0b (-0%)
| Inputs |
|---|
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 x.im x.im) (neg.f64 x.im))) |
| Outputs |
|---|
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 x.im x.im) (neg.f64 x.im))) |
3 calls:
| 1.0ms | x.re |
| 1.0ms | (+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re)) |
| 1.0ms | x.im |
| Accuracy | Segments | Branch |
|---|---|---|
| 58.7% | 1 | x.im |
| 58.7% | 1 | x.re |
| 58.7% | 1 | (+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re)) |
Compiled 21 to 15 computations (28.6% saved)
| 1× | binary-search |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 13.0ms | 3.093551899132998e-101 | 6.6088575601698386e-99 |
| 8.0ms | 112× | 0 | valid |
Compiled 449 to 275 computations (38.8% saved)
ival-mult: 4.0ms (70.5% of total)ival-sub: 1.0ms (17.6% of total)ival-add: 1.0ms (17.6% of total)ival-true: 0.0ms (0% of total)adjust: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)| 1× | binary-search |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 1.0ms | 3.093551899132998e-101 | 6.6088575601698386e-99 |
Compiled 540 to 324 computations (40% saved)
| 2× | left-value |
| Time | Left | Right |
|---|---|---|
| 0.0ms | +inf | NaN |
| 0.0ms | 1.6444799280532104e+304 | +inf |
Compiled 22 to 16 computations (27.3% saved)
| 1× | binary-search |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 8.0ms | 3.093551899132998e-101 | 6.6088575601698386e-99 |
| 3.0ms | 48× | 0 | valid |
Compiled 428 to 268 computations (37.4% saved)
ival-mult: 2.0ms (84.3% of total)ival-sub: 0.0ms (0% of total)ival-true: 0.0ms (0% of total)ival-add: 0.0ms (0% of total)adjust: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)| 2× | left-value |
| Time | Left | Right |
|---|---|---|
| 0.0ms | +inf | NaN |
| 0.0ms | -1.7842017913934637e-293 | 0.0 |
Compiled 22 to 16 computations (27.3% saved)
| 1× | egg-herbie |
Useful iterations: 4 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 85 | 481 |
| 1 | 151 | 457 |
| 2 | 327 | 457 |
| 3 | 930 | 413 |
| 4 | 2570 | 411 |
| 1× | node limit |
| Inputs |
|---|
(if (<=.f64 x.im #s(literal 906246142517073/9850501549098619803069760025035903451269934817616361666987073351061430442874302652853566563721228910201656997576704 binary64)) #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 #s(literal 3 binary64) x.re) (*.f64 x.im x.re))) #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (fma.f64 (*.f64 #s(literal 3 binary64) (/.f64 x.re x.im)) (/.f64 x.re x.im) #s(literal -1 binary64)) (pow.f64 x.im #s(literal 3 binary64))))) |
(if (<=.f64 x.im #s(literal 906246142517073/9850501549098619803069760025035903451269934817616361666987073351061430442874302652853566563721228910201656997576704 binary64)) #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 #s(literal 3 binary64) x.re) (*.f64 x.im x.re))) #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (fma.f64 (*.f64 #s(literal 3 binary64) (/.f64 x.re x.im)) (/.f64 x.re x.im) #s(literal -1 binary64)) (*.f64 x.im x.im))) x.im))) |
(if (<=.f64 (+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re)) #s(literal 19999999999999998785071050110729243720080574440234649906381543142646409126026467805686618514881015496873712236112324345157434387485272061060471597681733765549974602883364022082135420506324881811687439605097103198153279365101643665319098224539215899610692069837325144812815208761691919724149808696276287488 binary64)) (fma.f64 (*.f64 (+.f64 x.re x.im) (-.f64 x.re x.im)) x.im #s(approx (* (+ (* x.re x.im) (* x.im x.re)) x.re) (*.f64 (*.f64 #s(literal 2 binary64) (*.f64 x.re x.re)) x.im))) (if (<=.f64 (+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re)) #s(literal +inf.0 binary64)) #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 #s(literal 3 binary64) x.re) (*.f64 x.im x.re))) #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (neg.f64 #s(approx (+ (* (* -3 x.re) x.re) (* x.im x.im)) (*.f64 #s(approx (* (+ (* (/ x.im x.re) (/ x.im x.re)) -3) x.re) (fma.f64 (/.f64 x.im x.re) x.im (*.f64 #s(literal -3 binary64) x.re))) x.re))) x.im)))) |
(if (<=.f64 x.im #s(literal 2561130402765641/39402006196394479212279040100143613805079739270465446667948293404245721771497210611414266254884915640806627990306816 binary64)) #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 #s(literal 3 binary64) x.re) (*.f64 x.im x.re))) #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (neg.f64 (fma.f64 (*.f64 #s(literal -3 binary64) x.re) x.re (*.f64 x.im x.im))) x.im))) |
(if (<=.f64 (+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re)) #s(literal -449423283715579/44942328371557897693232629769725618340449424473557664318357520289433168951375240783177119330601884005280028469967848339414697442203604155623211857659868531094441973356216371319075554900311523529863270738021251442209537670585615720368478277635206809290837627671146574559986811484619929076208839082406056034304 binary64)) #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 x.im x.im) (neg.f64 x.im))) (if (<=.f64 (+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re)) #s(literal +inf.0 binary64)) #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 #s(literal 3 binary64) x.re) (*.f64 x.im x.re))) #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 x.im x.im) (neg.f64 x.im))))) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 x.im x.im) (neg.f64 x.im))) |
| Outputs |
|---|
(if (<=.f64 x.im #s(literal 906246142517073/9850501549098619803069760025035903451269934817616361666987073351061430442874302652853566563721228910201656997576704 binary64)) #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 #s(literal 3 binary64) x.re) (*.f64 x.im x.re))) #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (fma.f64 (*.f64 #s(literal 3 binary64) (/.f64 x.re x.im)) (/.f64 x.re x.im) #s(literal -1 binary64)) (pow.f64 x.im #s(literal 3 binary64))))) |
(if (<=.f64 x.im #s(literal 906246142517073/9850501549098619803069760025035903451269934817616361666987073351061430442874302652853566563721228910201656997576704 binary64)) #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 #s(literal 3 binary64) x.re) (*.f64 x.im x.re))) #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 #s(approx (neg (+ (* (* -3 x.re) x.re) (* x.im x.im))) (*.f64 (fma.f64 (*.f64 #s(literal 3 binary64) (/.f64 x.re x.im)) (/.f64 x.re x.im) #s(literal -1 binary64)) (*.f64 x.im x.im))) x.im))) |
(if (<=.f64 (+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re)) #s(literal 19999999999999998785071050110729243720080574440234649906381543142646409126026467805686618514881015496873712236112324345157434387485272061060471597681733765549974602883364022082135420506324881811687439605097103198153279365101643665319098224539215899610692069837325144812815208761691919724149808696276287488 binary64)) (fma.f64 (*.f64 (+.f64 x.re x.im) (-.f64 x.re x.im)) x.im #s(approx (* (+ (* x.re x.im) (* x.im x.re)) x.re) (*.f64 (*.f64 #s(literal 2 binary64) (*.f64 x.re x.re)) x.im))) (if (<=.f64 (+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re)) #s(literal +inf.0 binary64)) #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 #s(literal 3 binary64) x.re) (*.f64 x.im x.re))) #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (neg.f64 #s(approx (+ (* (* -3 x.re) x.re) (* x.im x.im)) (*.f64 #s(approx (* (+ (* (/ x.im x.re) (/ x.im x.re)) -3) x.re) (fma.f64 (/.f64 x.im x.re) x.im (*.f64 #s(literal -3 binary64) x.re))) x.re))) x.im)))) |
(if (<=.f64 (+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re)) #s(literal 19999999999999998785071050110729243720080574440234649906381543142646409126026467805686618514881015496873712236112324345157434387485272061060471597681733765549974602883364022082135420506324881811687439605097103198153279365101643665319098224539215899610692069837325144812815208761691919724149808696276287488 binary64)) (fma.f64 (*.f64 (+.f64 x.re x.im) (-.f64 x.re x.im)) x.im #s(approx (* (+ (* x.re x.im) (* x.im x.re)) x.re) (*.f64 (*.f64 #s(literal 2 binary64) (*.f64 x.re x.re)) x.im))) (if (<=.f64 (+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re)) #s(literal +inf.0 binary64)) #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 #s(literal 3 binary64) x.re) (*.f64 x.im x.re))) #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 #s(approx (+ (* (* -3 x.re) x.re) (* x.im x.im)) (*.f64 #s(approx (* (+ (* (/ x.im x.re) (/ x.im x.re)) -3) x.re) (fma.f64 (/.f64 x.im x.re) x.im (*.f64 #s(literal -3 binary64) x.re))) x.re)) (neg.f64 x.im))))) |
(if (<=.f64 x.im #s(literal 2561130402765641/39402006196394479212279040100143613805079739270465446667948293404245721771497210611414266254884915640806627990306816 binary64)) #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 #s(literal 3 binary64) x.re) (*.f64 x.im x.re))) #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (neg.f64 (fma.f64 (*.f64 #s(literal -3 binary64) x.re) x.re (*.f64 x.im x.im))) x.im))) |
(if (<=.f64 (+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re)) #s(literal -449423283715579/44942328371557897693232629769725618340449424473557664318357520289433168951375240783177119330601884005280028469967848339414697442203604155623211857659868531094441973356216371319075554900311523529863270738021251442209537670585615720368478277635206809290837627671146574559986811484619929076208839082406056034304 binary64)) #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 x.im x.im) (neg.f64 x.im))) (if (<=.f64 (+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re)) #s(literal +inf.0 binary64)) #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 #s(literal 3 binary64) x.re) (*.f64 x.im x.re))) #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 x.im x.im) (neg.f64 x.im))))) |
(if (or (<=.f64 (+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re)) #s(literal -449423283715579/44942328371557897693232629769725618340449424473557664318357520289433168951375240783177119330601884005280028469967848339414697442203604155623211857659868531094441973356216371319075554900311523529863270738021251442209537670585615720368478277635206809290837627671146574559986811484619929076208839082406056034304 binary64)) (not (<=.f64 (+.f64 (*.f64 (-.f64 (*.f64 x.re x.re) (*.f64 x.im x.im)) x.im) (*.f64 (+.f64 (*.f64 x.re x.im) (*.f64 x.im x.re)) x.re)) #s(literal +inf.0 binary64)))) #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 (neg.f64 x.im) x.im) x.im)) #s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 #s(literal 3 binary64) x.re) (*.f64 x.im x.re)))) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 x.im x.im) (neg.f64 x.im))) |
#s(approx (+ (* (- (* x.re x.re) (* x.im x.im)) x.im) (* (+ (* x.re x.im) (* x.im x.re)) x.re)) (*.f64 (*.f64 (neg.f64 x.im) x.im) x.im)) |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 41 | 247 |
| 0 | 64 | 247 |
| 0 | 202 | 235 |
| 0 | 89 | 409 |
| 1 | 284 | 399 |
| 2 | 1104 | 391 |
| 3 | 5497 | 391 |
| 0 | 8368 | 378 |
| 0 | 57 | 215 |
| 1 | 202 | 207 |
| 2 | 807 | 206 |
| 3 | 4612 | 206 |
| 0 | 8725 | 201 |
| 0 | 86 | 401 |
| 1 | 285 | 386 |
| 2 | 1033 | 386 |
| 3 | 5222 | 386 |
| 0 | 8336 | 375 |
| 1× | fuel |
| 1× | iter limit |
| 1× | node limit |
| 1× | iter limit |
| 1× | node limit |
| 1× | iter limit |
| 1× | node limit |
| 1× | iter limit |
| 1× | iter limit |
| 1× | iter limit |
| 1× | unsound |
| 1× | iter limit |
Compiled 481 to 87 computations (81.9% saved)
(abs x.re)
Compiled 2 858 to 890 computations (68.9% saved)
Loading profile data...