From Rump in a 1983 paper, rewritten

Time bar (total: 1.9s)

analyze12.0ms (0.6%)

Memory
-12.0MiB live, 3.8MiB allocated
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%0%100%0%0%0%0
100%0%0%100%0%0%0%1
Compiler

Compiled 35 to 25 computations (28.6% saved)

sample1.6s (82.2%)

Memory
9.9MiB live, 501.0MiB allocated
Samples
442.0ms8 256×0valid-baseline
415.0ms8 256×0valid-rival
117.0ms8 256×0valid-sollya
Bogosity

preprocess301.0ms (15.7%)

Memory
9.4MiB live, 24.7MiB allocated
Algorithm
egg-herbie
Rules
1 405×fma-define
726×fmm-def
233×cancel-sign-sub-inv
228×distribute-lft-in
222×distribute-rgt-in
Iterations

Useful iterations: 8 (0.0ms)

IterNodesCost
034394
192394
2246386
3780357
41730357
53076357
64221357
74488357
84599349
94630349
104635349
115115349
125135349
135311349
145311349
155311349
165381349
175429349
Stop Event
saturated
Calls
Call 1
Inputs
(-.f64 (*.f64 #s(literal 9 binary64) (pow.f64 x #s(literal 4 binary64))) (*.f64 (*.f64 y y) (-.f64 (*.f64 y y) #s(literal 2 binary64))))
(-.f64 (*.f64 #s(literal 9 binary64) (pow.f64 x #s(literal 4 binary64))) (*.f64 (*.f64 y y) (-.f64 (*.f64 y y) #s(literal 2 binary64))))
(-.f64 (*.f64 #s(literal 9 binary64) (pow.f64 (neg.f64 x) #s(literal 4 binary64))) (*.f64 (*.f64 y y) (-.f64 (*.f64 y y) #s(literal 2 binary64))))
(-.f64 (*.f64 #s(literal 9 binary64) (pow.f64 x #s(literal 4 binary64))) (*.f64 (*.f64 (neg.f64 y) (neg.f64 y)) (-.f64 (*.f64 (neg.f64 y) (neg.f64 y)) #s(literal 2 binary64))))
(neg.f64 (-.f64 (*.f64 #s(literal 9 binary64) (pow.f64 (neg.f64 x) #s(literal 4 binary64))) (*.f64 (*.f64 y y) (-.f64 (*.f64 y y) #s(literal 2 binary64)))))
(neg.f64 (-.f64 (*.f64 #s(literal 9 binary64) (pow.f64 x #s(literal 4 binary64))) (*.f64 (*.f64 (neg.f64 y) (neg.f64 y)) (-.f64 (*.f64 (neg.f64 y) (neg.f64 y)) #s(literal 2 binary64)))))
(-.f64 (*.f64 #s(literal 9 binary64) (pow.f64 y #s(literal 4 binary64))) (*.f64 (*.f64 x x) (-.f64 (*.f64 x x) #s(literal 2 binary64))))
Outputs
(-.f64 (*.f64 #s(literal 9 binary64) (pow.f64 x #s(literal 4 binary64))) (*.f64 (*.f64 y y) (-.f64 (*.f64 y y) #s(literal 2 binary64))))
(-.f64 (*.f64 #s(literal 9 binary64) (pow.f64 x #s(literal 4 binary64))) (*.f64 (fma.f64 y y #s(literal -2 binary64)) (*.f64 y y)))
(-.f64 (*.f64 #s(literal 9 binary64) (pow.f64 x #s(literal 4 binary64))) (*.f64 y (*.f64 y (fma.f64 y y #s(literal -2 binary64)))))
(fma.f64 #s(literal 9 binary64) (pow.f64 x #s(literal 4 binary64)) (-.f64 (*.f64 #s(literal 2 binary64) (*.f64 y y)) (pow.f64 y #s(literal 4 binary64))))
(-.f64 (*.f64 #s(literal 9 binary64) (pow.f64 x #s(literal 4 binary64))) (*.f64 y (fma.f64 y #s(literal -2 binary64) (pow.f64 y #s(literal 3 binary64)))))
(-.f64 (*.f64 #s(literal 9 binary64) (pow.f64 x #s(literal 4 binary64))) (*.f64 (*.f64 y y) (-.f64 (*.f64 y y) #s(literal 2 binary64))))
(-.f64 (*.f64 #s(literal 9 binary64) (pow.f64 x #s(literal 4 binary64))) (*.f64 (fma.f64 y y #s(literal -2 binary64)) (*.f64 y y)))
(-.f64 (*.f64 #s(literal 9 binary64) (pow.f64 x #s(literal 4 binary64))) (*.f64 y (*.f64 y (fma.f64 y y #s(literal -2 binary64)))))
(fma.f64 #s(literal 9 binary64) (pow.f64 x #s(literal 4 binary64)) (-.f64 (*.f64 #s(literal 2 binary64) (*.f64 y y)) (pow.f64 y #s(literal 4 binary64))))
(-.f64 (*.f64 #s(literal 9 binary64) (pow.f64 x #s(literal 4 binary64))) (*.f64 y (fma.f64 y #s(literal -2 binary64) (pow.f64 y #s(literal 3 binary64)))))
(-.f64 (*.f64 #s(literal 9 binary64) (pow.f64 (neg.f64 x) #s(literal 4 binary64))) (*.f64 (*.f64 y y) (-.f64 (*.f64 y y) #s(literal 2 binary64))))
(-.f64 (*.f64 #s(literal 9 binary64) (pow.f64 x #s(literal 4 binary64))) (*.f64 (fma.f64 y y #s(literal -2 binary64)) (*.f64 y y)))
(-.f64 (*.f64 #s(literal 9 binary64) (pow.f64 x #s(literal 4 binary64))) (*.f64 y (*.f64 y (fma.f64 y y #s(literal -2 binary64)))))
(fma.f64 #s(literal 9 binary64) (pow.f64 x #s(literal 4 binary64)) (-.f64 (*.f64 #s(literal 2 binary64) (*.f64 y y)) (pow.f64 y #s(literal 4 binary64))))
(-.f64 (*.f64 #s(literal 9 binary64) (pow.f64 x #s(literal 4 binary64))) (*.f64 y (fma.f64 y #s(literal -2 binary64) (pow.f64 y #s(literal 3 binary64)))))
(-.f64 (*.f64 #s(literal 9 binary64) (pow.f64 x #s(literal 4 binary64))) (*.f64 (*.f64 (neg.f64 y) (neg.f64 y)) (-.f64 (*.f64 (neg.f64 y) (neg.f64 y)) #s(literal 2 binary64))))
(-.f64 (*.f64 #s(literal 9 binary64) (pow.f64 x #s(literal 4 binary64))) (*.f64 (fma.f64 y y #s(literal -2 binary64)) (*.f64 y y)))
(-.f64 (*.f64 #s(literal 9 binary64) (pow.f64 x #s(literal 4 binary64))) (*.f64 y (*.f64 y (fma.f64 y y #s(literal -2 binary64)))))
(fma.f64 #s(literal 9 binary64) (pow.f64 x #s(literal 4 binary64)) (-.f64 (*.f64 #s(literal 2 binary64) (*.f64 y y)) (pow.f64 y #s(literal 4 binary64))))
(-.f64 (*.f64 #s(literal 9 binary64) (pow.f64 x #s(literal 4 binary64))) (*.f64 y (fma.f64 y #s(literal -2 binary64) (pow.f64 y #s(literal 3 binary64)))))
(neg.f64 (-.f64 (*.f64 #s(literal 9 binary64) (pow.f64 (neg.f64 x) #s(literal 4 binary64))) (*.f64 (*.f64 y y) (-.f64 (*.f64 y y) #s(literal 2 binary64)))))
(neg.f64 (-.f64 (*.f64 #s(literal 9 binary64) (pow.f64 (neg.f64 x) #s(literal 4 binary64))) (*.f64 (fma.f64 y y #s(literal -2 binary64)) (*.f64 y y))))
(+.f64 (neg.f64 (*.f64 #s(literal 9 binary64) (pow.f64 (neg.f64 x) #s(literal 4 binary64)))) (*.f64 y (*.f64 y (fma.f64 y y #s(literal -2 binary64)))))
(+.f64 (*.f64 y (*.f64 y (fma.f64 y y #s(literal -2 binary64)))) (*.f64 (pow.f64 (neg.f64 x) #s(literal 4 binary64)) #s(literal -9 binary64)))
(fma.f64 (pow.f64 (neg.f64 x) #s(literal 4 binary64)) #s(literal -9 binary64) (*.f64 y (fma.f64 y #s(literal -2 binary64) (pow.f64 y #s(literal 3 binary64)))))
(fma.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -9 binary64) (*.f64 y (fma.f64 y #s(literal -2 binary64) (pow.f64 y #s(literal 3 binary64)))))
(neg.f64 (-.f64 (*.f64 #s(literal 9 binary64) (pow.f64 x #s(literal 4 binary64))) (*.f64 (*.f64 (neg.f64 y) (neg.f64 y)) (-.f64 (*.f64 (neg.f64 y) (neg.f64 y)) #s(literal 2 binary64)))))
(neg.f64 (-.f64 (*.f64 #s(literal 9 binary64) (pow.f64 (neg.f64 x) #s(literal 4 binary64))) (*.f64 (fma.f64 y y #s(literal -2 binary64)) (*.f64 y y))))
(+.f64 (neg.f64 (*.f64 #s(literal 9 binary64) (pow.f64 (neg.f64 x) #s(literal 4 binary64)))) (*.f64 y (*.f64 y (fma.f64 y y #s(literal -2 binary64)))))
(+.f64 (*.f64 y (*.f64 y (fma.f64 y y #s(literal -2 binary64)))) (*.f64 (pow.f64 (neg.f64 x) #s(literal 4 binary64)) #s(literal -9 binary64)))
(fma.f64 (pow.f64 (neg.f64 x) #s(literal 4 binary64)) #s(literal -9 binary64) (*.f64 y (fma.f64 y #s(literal -2 binary64) (pow.f64 y #s(literal 3 binary64)))))
(fma.f64 (pow.f64 x #s(literal 4 binary64)) #s(literal -9 binary64) (*.f64 y (fma.f64 y #s(literal -2 binary64) (pow.f64 y #s(literal 3 binary64)))))
(-.f64 (*.f64 #s(literal 9 binary64) (pow.f64 y #s(literal 4 binary64))) (*.f64 (*.f64 x x) (-.f64 (*.f64 x x) #s(literal 2 binary64))))
(-.f64 (*.f64 #s(literal 9 binary64) (pow.f64 y #s(literal 4 binary64))) (*.f64 (*.f64 x x) (fma.f64 x x #s(literal -2 binary64))))
(-.f64 (*.f64 #s(literal 9 binary64) (pow.f64 y #s(literal 4 binary64))) (*.f64 x (fma.f64 x #s(literal -2 binary64) (pow.f64 x #s(literal 3 binary64)))))
Symmetry

(abs x)

(abs y)

Compiler

Compiled 17 to 11 computations (35.3% saved)

eval0.0ms (0%)

Memory
0.2MiB live, 0.2MiB allocated
Compiler

Compiled 2 to 2 computations (0% saved)

prune1.0ms (0.1%)

Memory
-15.1MiB live, 0.7MiB allocated
Alt Table
Click to see full alt table
StatusAccuracyProgram
3.1%
(-.f64 (*.f64 #s(literal 9 binary64) (pow.f64 x #s(literal 4 binary64))) (*.f64 (*.f64 y y) (-.f64 (*.f64 y y) #s(literal 2 binary64))))
Compiler

Compiled 34 to 22 computations (35.3% saved)

simplify8.0ms (0.4%)

Memory
1.1MiB live, 1.1MiB allocated
Algorithm
egg-herbie
Rules
74×unsub-neg
41×neg-mul-1
21×distribute-lft-neg-in
19×distribute-neg-out
14×distribute-lft-neg-out
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01658
12658
24458
35758
47758
58358
68858
711758
815958
916358
1018058
1124658
1230758
1330858
Stop Event
saturated
Calls
Call 1
Inputs
(-.f64 (*.f64 #s(literal 9 binary64) (pow.f64 x #s(literal 4 binary64))) (*.f64 (*.f64 y y) (-.f64 (*.f64 y y) #s(literal 2 binary64))))
Outputs
(-.f64 (*.f64 #s(literal 9 binary64) (pow.f64 x #s(literal 4 binary64))) (*.f64 (*.f64 y y) (-.f64 (*.f64 y y) #s(literal 2 binary64))))
(+.f64 (*.f64 #s(literal 9 binary64) (pow.f64 x #s(literal 4 binary64))) (*.f64 (*.f64 y y) (-.f64 #s(literal 2 binary64) (*.f64 y y))))

soundness0.0ms (0%)

Memory
0.4MiB live, 0.4MiB allocated
Stop Event
fuel
Compiler

Compiled 17 to 11 computations (35.3% saved)

preprocess20.0ms (1%)

Memory
9.5MiB live, 24.9MiB allocated
Remove

(abs y)

(abs x)

Compiler

Compiled 204 to 132 computations (35.3% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...