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

Time bar (total: 2.6s)

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.6s (59.9%)

Results
744.0ms4938×body256valid
323.0ms1468×body256infinite
210.0ms690×body1024valid
166.0ms409×body2048valid
81.0ms472×body512valid
25.0ms166×body512infinite
23.0ms113×body1024infinite
Bogosity

preprocess139.0ms (5.3%)

Algorithm
egg-herbie
Rules
1166×sub-neg
1112×unsub-neg
748×fma-def
676×distribute-lft-out--
604×distribute-lft-neg-in
Problems
128×No Errors
116×(+.f64 (-.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y y))
10×(-.f64 (*.f64 x y) (*.f64 y y))
(-.f64 (+.f64 (-.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y y)) (*.f64 y z))
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
048662
1183367
2641264
32526250
45684250
57399250
Stop Event
node limit
Calls
Call 1
Inputs
(-.f64 (+.f64 (-.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y y)) (*.f64 y z))
(-.f64 (+.f64 (-.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y y)) (*.f64 y z))
(-.f64 (+.f64 (-.f64 (*.f64 (neg.f64 x) y) (*.f64 y y)) (*.f64 y y)) (*.f64 y z))
(-.f64 (+.f64 (-.f64 (*.f64 x (neg.f64 y)) (*.f64 (neg.f64 y) (neg.f64 y))) (*.f64 (neg.f64 y) (neg.f64 y))) (*.f64 (neg.f64 y) z))
(-.f64 (+.f64 (-.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y y)) (*.f64 y (neg.f64 z)))
(neg.f64 (-.f64 (+.f64 (-.f64 (*.f64 (neg.f64 x) y) (*.f64 y y)) (*.f64 y y)) (*.f64 y z)))
(neg.f64 (-.f64 (+.f64 (-.f64 (*.f64 x (neg.f64 y)) (*.f64 (neg.f64 y) (neg.f64 y))) (*.f64 (neg.f64 y) (neg.f64 y))) (*.f64 (neg.f64 y) z)))
(neg.f64 (-.f64 (+.f64 (-.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y y)) (*.f64 y (neg.f64 z))))
(-.f64 (+.f64 (-.f64 (*.f64 y x) (*.f64 x x)) (*.f64 x x)) (*.f64 x z))
(-.f64 (+.f64 (-.f64 (*.f64 z y) (*.f64 y y)) (*.f64 y y)) (*.f64 y x))
(-.f64 (+.f64 (-.f64 (*.f64 x z) (*.f64 z z)) (*.f64 z z)) (*.f64 z y))
Outputs
(-.f64 (+.f64 (-.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y y)) (*.f64 y z))
(+.f64 (*.f64 y (-.f64 x y)) (-.f64 (*.f64 y y) (*.f64 y z)))
(-.f64 (*.f64 x y) (*.f64 y z))
(*.f64 y (-.f64 x z))
(-.f64 (+.f64 (-.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y y)) (*.f64 y z))
(+.f64 (*.f64 y (-.f64 x y)) (-.f64 (*.f64 y y) (*.f64 y z)))
(-.f64 (*.f64 x y) (*.f64 y z))
(*.f64 y (-.f64 x z))
(-.f64 (+.f64 (-.f64 (*.f64 (neg.f64 x) y) (*.f64 y y)) (*.f64 y y)) (*.f64 y z))
(+.f64 (*.f64 y (-.f64 (neg.f64 x) y)) (-.f64 (*.f64 y y) (*.f64 y z)))
(-.f64 (neg.f64 (*.f64 x y)) (*.f64 y z))
(*.f64 (neg.f64 y) (+.f64 z x))
(*.f64 y (-.f64 (neg.f64 z) x))
(-.f64 (+.f64 (-.f64 (*.f64 x (neg.f64 y)) (*.f64 (neg.f64 y) (neg.f64 y))) (*.f64 (neg.f64 y) (neg.f64 y))) (*.f64 (neg.f64 y) z))
(+.f64 (+.f64 (*.f64 y y) (*.f64 y (-.f64 (neg.f64 x) y))) (*.f64 y z))
(+.f64 (fma.f64 x (neg.f64 y) 0) (*.f64 y z))
(*.f64 y (+.f64 z (neg.f64 x)))
(*.f64 y (-.f64 z x))
(-.f64 (+.f64 (-.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y y)) (*.f64 y (neg.f64 z)))
(+.f64 (*.f64 y (-.f64 x y)) (-.f64 (*.f64 y y) (*.f64 y (neg.f64 z))))
(+.f64 (fma.f64 x y 0) (*.f64 y z))
(*.f64 y (+.f64 x z))
(neg.f64 (-.f64 (+.f64 (-.f64 (*.f64 (neg.f64 x) y) (*.f64 y y)) (*.f64 y y)) (*.f64 y z)))
(+.f64 (*.f64 y (-.f64 x y)) (-.f64 (*.f64 y y) (*.f64 y (neg.f64 z))))
(+.f64 (fma.f64 x y 0) (*.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) (neg.f64 y))) (*.f64 (neg.f64 y) z)))
(+.f64 (*.f64 y (-.f64 x y)) (-.f64 (*.f64 y y) (*.f64 y z)))
(-.f64 (*.f64 x y) (*.f64 y z))
(*.f64 y (-.f64 x z))
(neg.f64 (-.f64 (+.f64 (-.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y y)) (*.f64 y (neg.f64 z))))
(+.f64 (*.f64 y (-.f64 (neg.f64 x) y)) (-.f64 (*.f64 y y) (*.f64 y z)))
(-.f64 (neg.f64 (*.f64 x y)) (*.f64 y z))
(*.f64 (neg.f64 y) (+.f64 z x))
(*.f64 y (-.f64 (neg.f64 z) x))
(-.f64 (+.f64 (-.f64 (*.f64 y x) (*.f64 x x)) (*.f64 x x)) (*.f64 x z))
(+.f64 (*.f64 x (-.f64 y x)) (-.f64 (*.f64 x x) (*.f64 x z)))
(-.f64 (fma.f64 x y 0) (*.f64 x z))
(*.f64 x (-.f64 (-.f64 y 0) z))
(*.f64 x (-.f64 y z))
(-.f64 (+.f64 (-.f64 (*.f64 z y) (*.f64 y y)) (*.f64 y y)) (*.f64 y x))
(+.f64 (+.f64 (*.f64 y y) (*.f64 y (-.f64 (neg.f64 x) y))) (*.f64 y z))
(+.f64 (fma.f64 x (neg.f64 y) 0) (*.f64 y z))
(*.f64 y (+.f64 z (neg.f64 x)))
(*.f64 y (-.f64 z x))
(-.f64 (+.f64 (-.f64 (*.f64 x z) (*.f64 z z)) (*.f64 z z)) (*.f64 z y))
(+.f64 (*.f64 z (-.f64 x z)) (-.f64 (*.f64 z z) (*.f64 y 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 28 to 13 computations (53.6% 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)

localize24.0ms (0.9%)

Localize:

Found 1 expressions with local error:

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

Compiled 15 to 6 computations (60% saved)

series3.0ms (0.1%)

Counts
1 → 24
Calls

9 calls:

TimeVariablePointExpression
1.0ms
x
@-inf
(*.f64 y (-.f64 x z))
0.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))

rewrite96.0ms (3.6%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01122
111722
2152222
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))

simplify65.0ms (2.5%)

Algorithm
egg-herbie
Rules
1370×log-prod
866×associate-*r*
798×associate-*l*
670×prod-exp
434×fma-def
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01081451
12311412
26081412
340441364
469221364
Stop Event
node limit
Counts
58 → 51
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 (*.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 (*.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 (*.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 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 y (*.f64 1 (-.f64 x z)))
(*.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 (-.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 y (*.f64 1 (-.f64 x z)))
(*.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))

eval8.0ms (0.3%)

Compiler

Compiled 522 to 216 computations (58.6% saved)

prune42.0ms (1.6%)

Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New49251
Fresh000
Picked011
Done000
Total49352
Accuracy
100.0%
Counts
52 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(*.f64 y (-.f64 x z))
49.5%
(*.f64 y (neg.f64 z))
58.2%
(*.f64 y x)
100.0%
(*.f64 y (-.f64 x z))
49.5%
(*.f64 y (neg.f64 z))
58.2%
(*.f64 y x)
Compiler

Compiled 42 to 28 computations (33.3% saved)

localize54.0ms (2%)

Compiler

Compiled 17 to 7 computations (58.8% saved)

eval0.0ms (0%)

Compiler

Compiled 3 to 3 computations (0% saved)

prune2.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
100.0%
(*.f64 y (-.f64 x z))
49.5%
(*.f64 y (neg.f64 z))
58.2%
(*.f64 y x)
Compiler

Compiled 51 to 28 computations (45.1% saved)

regimes20.0ms (0.8%)

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

4 calls:

5.0ms
y
5.0ms
x
5.0ms
z
4.0ms
(-.f64 (+.f64 (-.f64 (*.f64 x y) (*.f64 y y)) (*.f64 y y)) (*.f64 y z))
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 y)) (*.f64 y z))
Compiler

Compiled 60 to 32 computations (46.7% saved)

regimes63.0ms (2.4%)

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

3 calls:

31.0ms
y
17.0ms
z
14.0ms
x
Results
AccuracySegmentsBranch
80.1%3x
70.0%9y
84.0%5z
Compiler

Compiled 22 to 15 computations (31.8% saved)

regimes7.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

2 calls:

3.0ms
z
3.0ms
x
Results
AccuracySegmentsBranch
58.2%1x
58.2%1z
Compiler

Compiled 14 to 10 computations (28.6% saved)

bsearch73.0ms (2.8%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
narrow-enough
narrow-enough
Steps
TimeLeftRight
18.0ms
5.9833155288426755e+32
1.0384198905908334e+36
23.0ms
-2.81454140988805e-38
-4.934628324193514e-47
17.0ms
-6.753727428748681e+31
-3.1489916331499384e+29
15.0ms
-7.409604011564701e+71
-1.546732554568443e+70
Results
32.0ms297×body256valid
13.0ms56×body1024valid
8.0ms52×body512valid
7.0ms62×body256infinite
3.0ms14×body1024infinite
2.0msbody2048valid
1.0msbody512infinite
Compiler

Compiled 489 to 355 computations (27.4% saved)

simplify7.0ms (0.3%)

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

Useful iterations: 3 (0.0ms)

IterNodesCost
030150
145144
257134
369130
476130
581130
682130
783130
Stop Event
done
saturated
Calls
Call 1
Inputs
(*.f64 y (-.f64 x z))
(if (<=.f64 z -26500000000000000006463638028163657895263137917746352297808666390691840) (*.f64 y (neg.f64 z)) (if (<=.f64 z -65999999999999998497635472244736) (*.f64 y x) (if (<=.f64 z -2812141577453233/401734511064747568885490523085290650630550748445698208825344) (*.f64 y (neg.f64 z)) (if (<=.f64 z 9800000000000000273682316897812480) (*.f64 y x) (*.f64 y (neg.f64 z))))))
(*.f64 y x)
Outputs
(*.f64 y (-.f64 x z))
(if (<=.f64 z -26500000000000000006463638028163657895263137917746352297808666390691840) (*.f64 y (neg.f64 z)) (if (<=.f64 z -65999999999999998497635472244736) (*.f64 y x) (if (<=.f64 z -2812141577453233/401734511064747568885490523085290650630550748445698208825344) (*.f64 y (neg.f64 z)) (if (<=.f64 z 9800000000000000273682316897812480) (*.f64 y x) (*.f64 y (neg.f64 z))))))
(if (<=.f64 z -26500000000000000006463638028163657895263137917746352297808666390691840) (*.f64 y (neg.f64 z)) (if (<=.f64 z -65999999999999998497635472244736) (*.f64 y x) (if (or (<=.f64 z -2812141577453233/401734511064747568885490523085290650630550748445698208825344) (not (<=.f64 z 9800000000000000273682316897812480))) (*.f64 y (neg.f64 z)) (*.f64 y x))))
(if (<=.f64 z -26500000000000000006463638028163657895263137917746352297808666390691840) (*.f64 y (neg.f64 z)) (if (or (<=.f64 z -65999999999999998497635472244736) (not (or (<=.f64 z -2812141577453233/401734511064747568885490523085290650630550748445698208825344) (not (<=.f64 z 9800000000000000273682316897812480))))) (*.f64 y x) (*.f64 y (neg.f64 z))))
(if (or (<=.f64 z -26500000000000000006463638028163657895263137917746352297808666390691840) (not (or (<=.f64 z -65999999999999998497635472244736) (not (or (<=.f64 z -2812141577453233/401734511064747568885490523085290650630550748445698208825344) (not (<=.f64 z 9800000000000000273682316897812480))))))) (*.f64 y (neg.f64 z)) (*.f64 y x))
(if (or (<=.f64 z -26500000000000000006463638028163657895263137917746352297808666390691840) (not (or (<=.f64 z -65999999999999998497635472244736) (and (not (<=.f64 z -2812141577453233/401734511064747568885490523085290650630550748445698208825344)) (<=.f64 z 9800000000000000273682316897812480))))) (*.f64 y (neg.f64 z)) (*.f64 y x))
(if (or (<=.f64 z -26500000000000000006463638028163657895263137917746352297808666390691840) (and (not (<=.f64 z -65999999999999998497635472244736)) (or (<=.f64 z -2812141577453233/401734511064747568885490523085290650630550748445698208825344) (not (<=.f64 z 9800000000000000273682316897812480))))) (*.f64 y (neg.f64 z)) (*.f64 y x))
(*.f64 y x)
Compiler

Compiled 42 to 29 computations (31% saved)

soundness404.0ms (15.2%)

Rules
1370×log-prod
1370×log-prod
1166×sub-neg
1112×unsub-neg
866×associate-*r*
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
048662
1183367
2641264
32526250
45684250
57399250
01081451
12311412
26081412
340441364
469221364
01081451
12311412
26081412
340441364
469221364
Stop Event
node limit
node limit
node limit
Compiler

Compiled 94 to 35 computations (62.8% saved)

end0.0ms (0%)

preprocess52.0ms (2%)

Remove

(negabs y)

Compiler

Compiled 140 to 82 computations (41.4% saved)

Profiling

Loading profile data...