Linear.Quaternion:$c/ from linear-1.19.1.3, C

Time bar (total: 3.1s)

analyze0.0ms (0%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
100%99.9%0%0.1%0%0%0%1
Compiler

Compiled 19 to 10 computations (47.4% saved)

sample1.7s (55.5%)

Results
902.0ms5009×body256valid
191.0ms452×body512valid
171.0ms365×body2048valid
161.0ms1356×body256infinite
160.0ms657×body1024valid
110.0ms254×body512infinite
36.0ms162×body1024infinite
0.0msbody4096valid
Bogosity

preprocess251.0ms (8%)

Algorithm
egg-herbie
Rules
1230×sub-neg
1146×unsub-neg
1020×fma-def
842×distribute-lft-out
748×distribute-lft-out--
Problems
152×No Errors
95×(-.f64 (-.f64 (+.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y z)) (*.f64 y y))
(-.f64 (+.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y z))
(+.f64 (*.f64 x y) (*.f64 y y))
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
049617
1193480
2637440
32710250
45748250
56671250
67142250
77255250
87295250
97302250
107737250
Stop Event
node limit
Calls
Call 1
Inputs
(-.f64 (-.f64 (+.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y z)) (*.f64 y y))
(-.f64 (-.f64 (+.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y z)) (*.f64 y y))
(-.f64 (-.f64 (+.f64 (*.f64 (neg.f64 x) y) (*.f64 y y)) (*.f64 y z)) (*.f64 y y))
(-.f64 (-.f64 (+.f64 (*.f64 x (neg.f64 y)) (*.f64 (neg.f64 y) (neg.f64 y))) (*.f64 (neg.f64 y) z)) (*.f64 (neg.f64 y) (neg.f64 y)))
(-.f64 (-.f64 (+.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y (neg.f64 z))) (*.f64 y y))
(neg.f64 (-.f64 (-.f64 (+.f64 (*.f64 (neg.f64 x) y) (*.f64 y y)) (*.f64 y z)) (*.f64 y y)))
(neg.f64 (-.f64 (-.f64 (+.f64 (*.f64 x (neg.f64 y)) (*.f64 (neg.f64 y) (neg.f64 y))) (*.f64 (neg.f64 y) z)) (*.f64 (neg.f64 y) (neg.f64 y))))
(neg.f64 (-.f64 (-.f64 (+.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y (neg.f64 z))) (*.f64 y y)))
(-.f64 (-.f64 (+.f64 (*.f64 y x) (*.f64 x x)) (*.f64 x z)) (*.f64 x x))
(-.f64 (-.f64 (+.f64 (*.f64 z y) (*.f64 y y)) (*.f64 y x)) (*.f64 y y))
(-.f64 (-.f64 (+.f64 (*.f64 x z) (*.f64 z z)) (*.f64 z y)) (*.f64 z z))
Outputs
(-.f64 (-.f64 (+.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y z)) (*.f64 y y))
(-.f64 (*.f64 y (+.f64 x y)) (*.f64 y (+.f64 z y)))
(*.f64 y (-.f64 (+.f64 x y) (+.f64 y z)))
(*.f64 y (+.f64 x (-.f64 y (+.f64 y z))))
(*.f64 y (-.f64 x z))
(-.f64 (-.f64 (+.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y z)) (*.f64 y y))
(-.f64 (*.f64 y (+.f64 x y)) (*.f64 y (+.f64 z y)))
(*.f64 y (-.f64 (+.f64 x y) (+.f64 y z)))
(*.f64 y (+.f64 x (-.f64 y (+.f64 y z))))
(*.f64 y (-.f64 x z))
(-.f64 (-.f64 (+.f64 (*.f64 (neg.f64 x) y) (*.f64 y y)) (*.f64 y z)) (*.f64 y y))
(-.f64 (*.f64 y (+.f64 (neg.f64 x) y)) (*.f64 y (+.f64 z y)))
(*.f64 y (-.f64 (fma.f64 -1 x y) (+.f64 y z)))
(*.f64 y (-.f64 (-.f64 y x) (+.f64 y z)))
(*.f64 y (neg.f64 (+.f64 x z)))
(*.f64 y (-.f64 (neg.f64 x) z))
(-.f64 (-.f64 (+.f64 (*.f64 x (neg.f64 y)) (*.f64 (neg.f64 y) (neg.f64 y))) (*.f64 (neg.f64 y) z)) (*.f64 (neg.f64 y) (neg.f64 y)))
(-.f64 (+.f64 (*.f64 y (+.f64 (neg.f64 x) y)) (*.f64 y z)) (*.f64 y y))
(*.f64 y (-.f64 (+.f64 y z) (+.f64 x y)))
(*.f64 y (-.f64 z x))
(-.f64 (-.f64 (+.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y (neg.f64 z))) (*.f64 y y))
(-.f64 (*.f64 y (+.f64 x y)) (+.f64 (*.f64 y (neg.f64 z)) (*.f64 y y)))
(-.f64 (*.f64 y (+.f64 x y)) (*.f64 y (-.f64 y z)))
(*.f64 y (-.f64 (+.f64 x y) (-.f64 y z)))
(*.f64 y (+.f64 x z))
(neg.f64 (-.f64 (-.f64 (+.f64 (*.f64 (neg.f64 x) y) (*.f64 y y)) (*.f64 y z)) (*.f64 y y)))
(-.f64 (*.f64 y (+.f64 x y)) (+.f64 (*.f64 y (neg.f64 z)) (*.f64 y y)))
(-.f64 (*.f64 y (+.f64 x y)) (*.f64 y (-.f64 y z)))
(*.f64 y (-.f64 (+.f64 x y) (-.f64 y z)))
(*.f64 y (+.f64 x z))
(neg.f64 (-.f64 (-.f64 (+.f64 (*.f64 x (neg.f64 y)) (*.f64 (neg.f64 y) (neg.f64 y))) (*.f64 (neg.f64 y) z)) (*.f64 (neg.f64 y) (neg.f64 y))))
(-.f64 (*.f64 y (+.f64 x y)) (*.f64 y (+.f64 z y)))
(*.f64 y (-.f64 (+.f64 x y) (+.f64 y z)))
(*.f64 y (+.f64 x (-.f64 y (+.f64 y z))))
(*.f64 y (-.f64 x z))
(neg.f64 (-.f64 (-.f64 (+.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y (neg.f64 z))) (*.f64 y y)))
(-.f64 (*.f64 y (+.f64 (neg.f64 x) y)) (*.f64 y (+.f64 z y)))
(*.f64 y (-.f64 (fma.f64 -1 x y) (+.f64 y z)))
(*.f64 y (-.f64 (-.f64 y x) (+.f64 y z)))
(*.f64 y (neg.f64 (+.f64 x z)))
(*.f64 y (-.f64 (neg.f64 x) z))
(-.f64 (-.f64 (+.f64 (*.f64 y x) (*.f64 x x)) (*.f64 x z)) (*.f64 x x))
(-.f64 (*.f64 x (+.f64 y x)) (+.f64 (*.f64 x z) (*.f64 x x)))
(-.f64 (*.f64 x (+.f64 x y)) (*.f64 x (+.f64 x z)))
(*.f64 x (-.f64 (-.f64 (+.f64 x y) z) x))
(*.f64 x (-.f64 y z))
(-.f64 (-.f64 (+.f64 (*.f64 z y) (*.f64 y y)) (*.f64 y x)) (*.f64 y y))
(-.f64 (+.f64 (*.f64 y (+.f64 (neg.f64 x) y)) (*.f64 y z)) (*.f64 y y))
(*.f64 y (-.f64 (+.f64 y z) (+.f64 x y)))
(*.f64 y (-.f64 z x))
(-.f64 (-.f64 (+.f64 (*.f64 x z) (*.f64 z z)) (*.f64 z y)) (*.f64 z z))
(-.f64 (*.f64 z (+.f64 x z)) (+.f64 (*.f64 y z) (*.f64 z z)))
(-.f64 (*.f64 z (-.f64 (+.f64 x z) y)) (*.f64 z z))
(*.f64 z (-.f64 (+.f64 x z) (+.f64 y z)))
(*.f64 z (-.f64 x y))
Symmetry

(negabs y)

Compiler

Compiled 67 to 19 computations (71.6% saved)

eval1.0ms (0%)

Compiler

Compiled 37 to 16 computations (56.8% saved)

prune1.0ms (0%)

Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(*.f64 y (-.f64 x z))
100.0%
(*.f64 y (-.f64 x z))
Compiler

Compiled 16 to 10 computations (37.5% saved)

localize26.0ms (0.8%)

Localize:

Found 1 expressions with local error:

NewAccuracyProgram
100.0%
(*.f64 y (-.f64 x z))
Compiler

Compiled 15 to 6 computations (60% saved)

series4.0ms (0.1%)

Counts
1 → 24
Calls

9 calls:

TimeVariablePointExpression
1.0ms
x
@-inf
(*.f64 y (-.f64 x z))
1.0ms
y
@0
(*.f64 y (-.f64 x z))
0.0ms
x
@inf
(*.f64 y (-.f64 x z))
0.0ms
y
@-inf
(*.f64 y (-.f64 x z))
0.0ms
y
@inf
(*.f64 y (-.f64 x z))

rewrite220.0ms (7%)

Algorithm
batch-egg-rewrite
Rules
820×unpow-prod-down
718×prod-diff
577×log1p-expm1-u
577×expm1-log1p-u
572×log-prod
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01122
111722
2152522
Stop Event
node limit
Counts
1 → 34
Calls
Call 1
Inputs
(*.f64 y (-.f64 x z))
Outputs
(+.f64 0 (*.f64 y (-.f64 x z)))
(+.f64 (*.f64 y x) (*.f64 y (neg.f64 z)))
(+.f64 (*.f64 x y) (*.f64 (neg.f64 z) y))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 y) (-.f64 x z))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 y) (-.f64 x z)))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 y) (-.f64 x z)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 y) (-.f64 x z)))))
(-.f64 (exp.f64 (log1p.f64 (*.f64 y (-.f64 x z)))) 1)
(/.f64 (*.f64 y (-.f64 (pow.f64 x 3) (pow.f64 z 3))) (fma.f64 z (+.f64 x z) (pow.f64 x 2)))
(/.f64 (*.f64 y (-.f64 (pow.f64 x 2) (pow.f64 z 2))) (+.f64 x z))
(/.f64 (*.f64 (-.f64 (pow.f64 x 3) (pow.f64 z 3)) y) (fma.f64 z (+.f64 x z) (pow.f64 x 2)))
(/.f64 (*.f64 (-.f64 (pow.f64 x 2) (pow.f64 z 2)) y) (+.f64 x z))
(pow.f64 (*.f64 y (-.f64 x z)) 1)
(pow.f64 (cbrt.f64 (*.f64 y (-.f64 x z))) 3)
(pow.f64 (pow.f64 (*.f64 y (-.f64 x z)) 2) 1/2)
(pow.f64 (pow.f64 (*.f64 y (-.f64 x z)) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 y (-.f64 x z))) 2)
(sqrt.f64 (pow.f64 (*.f64 y (-.f64 x z)) 2))
(log.f64 (pow.f64 (exp.f64 y) (-.f64 x z)))
(cbrt.f64 (pow.f64 (*.f64 y (-.f64 x z)) 3))
(expm1.f64 (log1p.f64 (*.f64 y (-.f64 x z))))
(exp.f64 (log.f64 (*.f64 y (-.f64 x z))))
(exp.f64 (*.f64 (log.f64 (*.f64 y (-.f64 x z))) 1))
(exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 y (-.f64 x z))) 1) 1))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 y (-.f64 x z)))) 3))
(exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 y (-.f64 x z)) 3)) 1/3))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 y (-.f64 x z)))) 2))
(exp.f64 (+.f64 (log.f64 y) (*.f64 (log.f64 (-.f64 x z)) 1)))
(exp.f64 (+.f64 (*.f64 (log.f64 y) 1) (log.f64 (-.f64 x z))))
(exp.f64 (+.f64 (*.f64 (log.f64 y) 1) (*.f64 (log.f64 (-.f64 x z)) 1)))
(exp.f64 (+.f64 (log.f64 (-.f64 x z)) (*.f64 (log.f64 y) 1)))
(exp.f64 (+.f64 (*.f64 (log.f64 (-.f64 x z)) 1) (log.f64 y)))
(exp.f64 (+.f64 (*.f64 (log.f64 (-.f64 x z)) 1) (*.f64 (log.f64 y) 1)))
(log1p.f64 (expm1.f64 (*.f64 y (-.f64 x z))))
(fma.f64 y x (*.f64 y (neg.f64 z)))
(fma.f64 x y (*.f64 (neg.f64 z) y))

simplify81.0ms (2.6%)

Algorithm
egg-herbie
Rules
1370×log-prod
868×associate-*r*
804×associate-*l*
692×prod-exp
434×fma-def
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01081451
12341412
26111412
340801364
469731364
Stop Event
node limit
Counts
58 → 52
Calls
Call 1
Inputs
(*.f64 -1 (*.f64 y z))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 x y))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 x y))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 x y))
(*.f64 x y)
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 x y))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 x y))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 x y))
(*.f64 x y)
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 x y))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 x y))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 x y))
(*.f64 x y)
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 x y))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 x y))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 x y))
(*.f64 -1 (*.f64 y z))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 x y))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 x y))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 x y))
(*.f64 -1 (*.f64 y z))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 x y))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 x y))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 x y))
(+.f64 0 (*.f64 y (-.f64 x z)))
(+.f64 (*.f64 y x) (*.f64 y (neg.f64 z)))
(+.f64 (*.f64 x y) (*.f64 (neg.f64 z) y))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 y) (-.f64 x z))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 y) (-.f64 x z)))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 y) (-.f64 x z)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 y) (-.f64 x z)))))
(-.f64 (exp.f64 (log1p.f64 (*.f64 y (-.f64 x z)))) 1)
(/.f64 (*.f64 y (-.f64 (pow.f64 x 3) (pow.f64 z 3))) (fma.f64 z (+.f64 x z) (pow.f64 x 2)))
(/.f64 (*.f64 y (-.f64 (pow.f64 x 2) (pow.f64 z 2))) (+.f64 x z))
(/.f64 (*.f64 (-.f64 (pow.f64 x 3) (pow.f64 z 3)) y) (fma.f64 z (+.f64 x z) (pow.f64 x 2)))
(/.f64 (*.f64 (-.f64 (pow.f64 x 2) (pow.f64 z 2)) y) (+.f64 x z))
(pow.f64 (*.f64 y (-.f64 x z)) 1)
(pow.f64 (cbrt.f64 (*.f64 y (-.f64 x z))) 3)
(pow.f64 (pow.f64 (*.f64 y (-.f64 x z)) 2) 1/2)
(pow.f64 (pow.f64 (*.f64 y (-.f64 x z)) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 y (-.f64 x z))) 2)
(sqrt.f64 (pow.f64 (*.f64 y (-.f64 x z)) 2))
(log.f64 (pow.f64 (exp.f64 y) (-.f64 x z)))
(cbrt.f64 (pow.f64 (*.f64 y (-.f64 x z)) 3))
(expm1.f64 (log1p.f64 (*.f64 y (-.f64 x z))))
(exp.f64 (log.f64 (*.f64 y (-.f64 x z))))
(exp.f64 (*.f64 (log.f64 (*.f64 y (-.f64 x z))) 1))
(exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 y (-.f64 x z))) 1) 1))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 y (-.f64 x z)))) 3))
(exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 y (-.f64 x z)) 3)) 1/3))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 y (-.f64 x z)))) 2))
(exp.f64 (+.f64 (log.f64 y) (*.f64 (log.f64 (-.f64 x z)) 1)))
(exp.f64 (+.f64 (*.f64 (log.f64 y) 1) (log.f64 (-.f64 x z))))
(exp.f64 (+.f64 (*.f64 (log.f64 y) 1) (*.f64 (log.f64 (-.f64 x z)) 1)))
(exp.f64 (+.f64 (log.f64 (-.f64 x z)) (*.f64 (log.f64 y) 1)))
(exp.f64 (+.f64 (*.f64 (log.f64 (-.f64 x z)) 1) (log.f64 y)))
(exp.f64 (+.f64 (*.f64 (log.f64 (-.f64 x z)) 1) (*.f64 (log.f64 y) 1)))
(log1p.f64 (expm1.f64 (*.f64 y (-.f64 x z))))
(fma.f64 y x (*.f64 y (neg.f64 z)))
(fma.f64 x y (*.f64 (neg.f64 z) y))
Outputs
(*.f64 -1 (*.f64 y z))
(*.f64 y (neg.f64 z))
(*.f64 z (neg.f64 y))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 x y))
(*.f64 y (-.f64 x z))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 x y))
(*.f64 y (-.f64 x z))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 x y))
(*.f64 y (-.f64 x z))
(*.f64 x y)
(*.f64 y x)
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 x y))
(*.f64 y (-.f64 x z))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 x y))
(*.f64 y (-.f64 x z))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 x y))
(*.f64 y (-.f64 x z))
(*.f64 x y)
(*.f64 y x)
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 x y))
(*.f64 y (-.f64 x z))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 x y))
(*.f64 y (-.f64 x z))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 x y))
(*.f64 y (-.f64 x z))
(*.f64 x y)
(*.f64 y x)
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 x y))
(*.f64 y (-.f64 x z))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 x y))
(*.f64 y (-.f64 x z))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 x y))
(*.f64 y (-.f64 x z))
(*.f64 -1 (*.f64 y z))
(*.f64 y (neg.f64 z))
(*.f64 z (neg.f64 y))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 x y))
(*.f64 y (-.f64 x z))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 x y))
(*.f64 y (-.f64 x z))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 x y))
(*.f64 y (-.f64 x z))
(*.f64 -1 (*.f64 y z))
(*.f64 y (neg.f64 z))
(*.f64 z (neg.f64 y))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 x y))
(*.f64 y (-.f64 x z))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 x y))
(*.f64 y (-.f64 x z))
(+.f64 (*.f64 -1 (*.f64 y z)) (*.f64 x y))
(*.f64 y (-.f64 x z))
(+.f64 0 (*.f64 y (-.f64 x z)))
(*.f64 y (-.f64 x z))
(+.f64 (*.f64 y x) (*.f64 y (neg.f64 z)))
(*.f64 y (-.f64 x z))
(+.f64 (*.f64 x y) (*.f64 (neg.f64 z) y))
(*.f64 y (-.f64 x z))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 y) (-.f64 x z))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 y) (-.f64 x z)))))
(+.f64 (*.f64 2 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 y) (-.f64 x z))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 y) (-.f64 x z)))))
(*.f64 3 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 y) (-.f64 x z)))))
(*.f64 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 y) (-.f64 x z)))) 3)
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 y) (-.f64 x z)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 y) (-.f64 x z)))))
(*.f64 y (-.f64 x z))
(-.f64 (exp.f64 (log1p.f64 (*.f64 y (-.f64 x z)))) 1)
(*.f64 y (-.f64 x z))
(/.f64 (*.f64 y (-.f64 (pow.f64 x 3) (pow.f64 z 3))) (fma.f64 z (+.f64 x z) (pow.f64 x 2)))
(/.f64 (*.f64 y (-.f64 (pow.f64 x 3) (pow.f64 z 3))) (fma.f64 z (+.f64 z x) (pow.f64 x 2)))
(*.f64 (/.f64 y (fma.f64 z (+.f64 z x) (pow.f64 x 2))) (-.f64 (pow.f64 x 3) (pow.f64 z 3)))
(*.f64 y (/.f64 (-.f64 (pow.f64 x 3) (pow.f64 z 3)) (fma.f64 z (+.f64 z x) (pow.f64 x 2))))
(*.f64 (-.f64 (pow.f64 x 3) (pow.f64 z 3)) (/.f64 y (fma.f64 z (+.f64 z x) (pow.f64 x 2))))
(/.f64 (*.f64 y (-.f64 (pow.f64 x 2) (pow.f64 z 2))) (+.f64 x z))
(/.f64 (-.f64 (pow.f64 x 2) (pow.f64 z 2)) (/.f64 (+.f64 z x) y))
(*.f64 (/.f64 y (+.f64 z x)) (-.f64 (pow.f64 x 2) (pow.f64 z 2)))
(*.f64 (-.f64 (pow.f64 x 2) (pow.f64 z 2)) (/.f64 y (+.f64 z x)))
(*.f64 (/.f64 y 1) (-.f64 x z))
(/.f64 (*.f64 (-.f64 (pow.f64 x 3) (pow.f64 z 3)) y) (fma.f64 z (+.f64 x z) (pow.f64 x 2)))
(/.f64 (*.f64 y (-.f64 (pow.f64 x 3) (pow.f64 z 3))) (fma.f64 z (+.f64 z x) (pow.f64 x 2)))
(*.f64 (/.f64 y (fma.f64 z (+.f64 z x) (pow.f64 x 2))) (-.f64 (pow.f64 x 3) (pow.f64 z 3)))
(*.f64 y (/.f64 (-.f64 (pow.f64 x 3) (pow.f64 z 3)) (fma.f64 z (+.f64 z x) (pow.f64 x 2))))
(*.f64 (-.f64 (pow.f64 x 3) (pow.f64 z 3)) (/.f64 y (fma.f64 z (+.f64 z x) (pow.f64 x 2))))
(/.f64 (*.f64 (-.f64 (pow.f64 x 2) (pow.f64 z 2)) y) (+.f64 x z))
(/.f64 (-.f64 (pow.f64 x 2) (pow.f64 z 2)) (/.f64 (+.f64 z x) y))
(*.f64 (/.f64 y (+.f64 z x)) (-.f64 (pow.f64 x 2) (pow.f64 z 2)))
(*.f64 (-.f64 (pow.f64 x 2) (pow.f64 z 2)) (/.f64 y (+.f64 z x)))
(*.f64 (/.f64 y 1) (-.f64 x z))
(pow.f64 (*.f64 y (-.f64 x z)) 1)
(*.f64 y (-.f64 x z))
(pow.f64 (cbrt.f64 (*.f64 y (-.f64 x z))) 3)
(*.f64 y (-.f64 x z))
(pow.f64 (pow.f64 (*.f64 y (-.f64 x z)) 2) 1/2)
(*.f64 y (-.f64 x z))
(pow.f64 (pow.f64 (*.f64 y (-.f64 x z)) 3) 1/3)
(*.f64 y (-.f64 x z))
(pow.f64 (sqrt.f64 (*.f64 y (-.f64 x z))) 2)
(*.f64 y (-.f64 x z))
(sqrt.f64 (pow.f64 (*.f64 y (-.f64 x z)) 2))
(*.f64 y (-.f64 x z))
(log.f64 (pow.f64 (exp.f64 y) (-.f64 x z)))
(*.f64 y (-.f64 x z))
(cbrt.f64 (pow.f64 (*.f64 y (-.f64 x z)) 3))
(*.f64 y (-.f64 x z))
(expm1.f64 (log1p.f64 (*.f64 y (-.f64 x z))))
(*.f64 y (-.f64 x z))
(exp.f64 (log.f64 (*.f64 y (-.f64 x z))))
(*.f64 y (-.f64 x z))
(exp.f64 (*.f64 (log.f64 (*.f64 y (-.f64 x z))) 1))
(*.f64 y (-.f64 x z))
(exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 y (-.f64 x z))) 1) 1))
(*.f64 y (-.f64 x z))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 y (-.f64 x z)))) 3))
(*.f64 y (-.f64 x z))
(exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 y (-.f64 x z)) 3)) 1/3))
(*.f64 y (-.f64 x z))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 y (-.f64 x z)))) 2))
(*.f64 y (-.f64 x z))
(exp.f64 (+.f64 (log.f64 y) (*.f64 (log.f64 (-.f64 x z)) 1)))
(*.f64 y (-.f64 x z))
(exp.f64 (+.f64 (*.f64 (log.f64 y) 1) (log.f64 (-.f64 x z))))
(*.f64 y (-.f64 x z))
(exp.f64 (+.f64 (*.f64 (log.f64 y) 1) (*.f64 (log.f64 (-.f64 x z)) 1)))
(*.f64 y (-.f64 x z))
(exp.f64 (+.f64 (log.f64 (-.f64 x z)) (*.f64 (log.f64 y) 1)))
(*.f64 y (-.f64 x z))
(exp.f64 (+.f64 (*.f64 (log.f64 (-.f64 x z)) 1) (log.f64 y)))
(*.f64 y (-.f64 x z))
(exp.f64 (+.f64 (*.f64 (log.f64 (-.f64 x z)) 1) (*.f64 (log.f64 y) 1)))
(*.f64 y (-.f64 x z))
(log1p.f64 (expm1.f64 (*.f64 y (-.f64 x z))))
(*.f64 y (-.f64 x z))
(fma.f64 y x (*.f64 y (neg.f64 z)))
(*.f64 y (-.f64 x z))
(fma.f64 x y (*.f64 (neg.f64 z) y))
(*.f64 y (-.f64 x z))

eval10.0ms (0.3%)

Compiler

Compiled 537 to 225 computations (58.1% saved)

prune9.0ms (0.3%)

Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New50252
Fresh000
Picked011
Done000
Total50353
Accuracy
100.0%
Counts
53 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
50.0%
(*.f64 z (neg.f64 y))
100.0%
(*.f64 y (-.f64 x z))
58.6%
(*.f64 y x)
50.0%
(*.f64 z (neg.f64 y))
100.0%
(*.f64 y (-.f64 x z))
58.6%
(*.f64 y x)
Compiler

Compiled 42 to 28 computations (33.3% saved)

localize70.0ms (2.2%)

Compiler

Compiled 17 to 7 computations (58.8% saved)

eval0.0ms (0%)

Compiler

Compiled 3 to 3 computations (0% saved)

prune3.0ms (0.1%)

Pruning

3 alts after pruning (0 fresh and 3 done)

PrunedKeptTotal
New000
Fresh000
Picked022
Done011
Total033
Accuracy
100.0%
Counts
3 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
50.0%
(*.f64 z (neg.f64 y))
100.0%
(*.f64 y (-.f64 x z))
58.6%
(*.f64 y x)
Compiler

Compiled 51 to 28 computations (45.1% saved)

regimes17.0ms (0.5%)

Counts
4 → 1
Calls
Call 1
Inputs
(*.f64 y x)
(*.f64 z (neg.f64 y))
(*.f64 y (-.f64 x z))
(-.f64 (-.f64 (+.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y z)) (*.f64 y y))
Outputs
(*.f64 y (-.f64 x z))
Calls

4 calls:

4.0ms
y
4.0ms
x
4.0ms
z
3.0ms
(-.f64 (-.f64 (+.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y z)) (*.f64 y y))
Results
AccuracySegmentsBranch
100.0%1x
100.0%1y
100.0%1z
100.0%1(-.f64 (-.f64 (+.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y z)) (*.f64 y y))
Compiler

Compiled 60 to 32 computations (46.7% saved)

regimes53.0ms (1.7%)

Counts
2 → 5
Calls
Call 1
Inputs
(*.f64 y x)
(*.f64 z (neg.f64 y))
Outputs
(*.f64 z (neg.f64 y))
(*.f64 y x)
(*.f64 z (neg.f64 y))
(*.f64 y x)
(*.f64 z (neg.f64 y))
Calls

3 calls:

22.0ms
y
21.0ms
z
9.0ms
x
Results
AccuracySegmentsBranch
80.8%3x
69.8%7y
84.4%5z
Compiler

Compiled 22 to 15 computations (31.8% saved)

regimes10.0ms (0.3%)

Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0b (-0%)

Counts
1 → 1
Calls
Call 1
Inputs
(*.f64 y x)
Outputs
(*.f64 y x)
Calls

3 calls:

3.0ms
z
3.0ms
x
3.0ms
y
Results
AccuracySegmentsBranch
58.6%1y
58.6%1x
58.6%1z
Compiler

Compiled 18 to 13 computations (27.8% saved)

bsearch76.0ms (2.4%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
narrow-enough
narrow-enough
Steps
TimeLeftRight
19.0ms
5.7127579193801e+199
2.8439364452338996e+202
15.0ms
8.764388974954745e+140
9.607589885434021e+142
18.0ms
4.7690754779013443e+82
1.3596876076708425e+84
24.0ms
-17758582591797.125
-4266854.72227218
Results
42.0ms346×body256valid
9.0ms80×body256infinite
8.0ms22×body1024valid
6.0ms13×body1024infinite
4.0ms22×body512valid
2.0ms13×body512infinite
Compiler

Compiled 489 to 355 computations (27.4% saved)

simplify8.0ms (0.2%)

Algorithm
egg-herbie
Rules
14×*-commutative
sub-neg
not-or
+-commutative
neg-mul-1
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
030150
146144
259134
371130
477130
581130
682130
783130
Stop Event
done
saturated
Calls
Call 1
Inputs
(*.f64 y (-.f64 x z))
(if (<=.f64 z -2500000000000) (*.f64 z (neg.f64 y)) (if (<=.f64 z 49000000000000000565928364967025195667396821918058166132283919805092815954126045184) (*.f64 y x) (if (<=.f64 z 95000000000000000089667875539968399908186421781940664500262708786315856454554782038803977957382894942307862298855765638613490687543017258090496) (*.f64 z (neg.f64 y)) (if (<=.f64 z 125000000000000004714848161632068786467724214271375990583792072320444331735548805624202380779518698661634426763635923712456941447904364351344500703752365677891099149098885108365277599999000415576260608) (*.f64 y x) (*.f64 z (neg.f64 y))))))
(*.f64 y x)
Outputs
(*.f64 y (-.f64 x z))
(if (<=.f64 z -2500000000000) (*.f64 z (neg.f64 y)) (if (<=.f64 z 49000000000000000565928364967025195667396821918058166132283919805092815954126045184) (*.f64 y x) (if (<=.f64 z 95000000000000000089667875539968399908186421781940664500262708786315856454554782038803977957382894942307862298855765638613490687543017258090496) (*.f64 z (neg.f64 y)) (if (<=.f64 z 125000000000000004714848161632068786467724214271375990583792072320444331735548805624202380779518698661634426763635923712456941447904364351344500703752365677891099149098885108365277599999000415576260608) (*.f64 y x) (*.f64 z (neg.f64 y))))))
(if (<=.f64 z -2500000000000) (*.f64 z (neg.f64 y)) (if (<=.f64 z 49000000000000000565928364967025195667396821918058166132283919805092815954126045184) (*.f64 y x) (if (or (<=.f64 z 95000000000000000089667875539968399908186421781940664500262708786315856454554782038803977957382894942307862298855765638613490687543017258090496) (not (<=.f64 z 125000000000000004714848161632068786467724214271375990583792072320444331735548805624202380779518698661634426763635923712456941447904364351344500703752365677891099149098885108365277599999000415576260608))) (*.f64 z (neg.f64 y)) (*.f64 y x))))
(if (<=.f64 z -2500000000000) (*.f64 z (neg.f64 y)) (if (or (<=.f64 z 49000000000000000565928364967025195667396821918058166132283919805092815954126045184) (not (or (<=.f64 z 95000000000000000089667875539968399908186421781940664500262708786315856454554782038803977957382894942307862298855765638613490687543017258090496) (not (<=.f64 z 125000000000000004714848161632068786467724214271375990583792072320444331735548805624202380779518698661634426763635923712456941447904364351344500703752365677891099149098885108365277599999000415576260608))))) (*.f64 y x) (*.f64 z (neg.f64 y))))
(if (or (<=.f64 z -2500000000000) (not (or (<=.f64 z 49000000000000000565928364967025195667396821918058166132283919805092815954126045184) (not (or (<=.f64 z 95000000000000000089667875539968399908186421781940664500262708786315856454554782038803977957382894942307862298855765638613490687543017258090496) (not (<=.f64 z 125000000000000004714848161632068786467724214271375990583792072320444331735548805624202380779518698661634426763635923712456941447904364351344500703752365677891099149098885108365277599999000415576260608))))))) (*.f64 z (neg.f64 y)) (*.f64 y x))
(if (or (<=.f64 z -2500000000000) (not (or (<=.f64 z 49000000000000000565928364967025195667396821918058166132283919805092815954126045184) (and (not (<=.f64 z 95000000000000000089667875539968399908186421781940664500262708786315856454554782038803977957382894942307862298855765638613490687543017258090496)) (<=.f64 z 125000000000000004714848161632068786467724214271375990583792072320444331735548805624202380779518698661634426763635923712456941447904364351344500703752365677891099149098885108365277599999000415576260608))))) (*.f64 z (neg.f64 y)) (*.f64 y x))
(if (or (<=.f64 z -2500000000000) (and (not (<=.f64 z 49000000000000000565928364967025195667396821918058166132283919805092815954126045184)) (or (<=.f64 z 95000000000000000089667875539968399908186421781940664500262708786315856454554782038803977957382894942307862298855765638613490687543017258090496) (not (<=.f64 z 125000000000000004714848161632068786467724214271375990583792072320444331735548805624202380779518698661634426763635923712456941447904364351344500703752365677891099149098885108365277599999000415576260608))))) (*.f64 z (neg.f64 y)) (*.f64 y x))
(*.f64 y x)
Compiler

Compiled 42 to 29 computations (31% saved)

soundness507.0ms (16.1%)

Rules
1370×log-prod
1370×log-prod
1230×sub-neg
1146×unsub-neg
1020×fma-def
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
049617
1193480
2637440
32710250
45748250
56671250
67142250
77255250
87295250
97302250
107737250
01081451
12341412
26111412
340801364
469731364
01081451
12341412
26111412
340801364
469731364
Stop Event
node limit
node limit
node limit
Compiler

Compiled 259 to 61 computations (76.4% saved)

end0.0ms (0%)

preprocess53.0ms (1.7%)

Remove

(negabs y)

Compiler

Compiled 172 to 102 computations (40.7% saved)

Profiling

Loading profile data...