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

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.9s (62.4%)

Results
1.1s5009×body256valid
374.0ms1356×body256infinite
175.0ms658×body1024valid
103.0ms363×body2048valid
80.0ms453×body512valid
43.0ms254×body512infinite
37.0ms162×body1024infinite
0.0msbody4096valid
Bogosity

preprocess182.0ms (5.9%)

Algorithm
egg-herbie
Rules
1618×sub-neg
1586×fma-neg
782×fma-def
678×distribute-lft-out
658×distribute-lft-neg-in
Problems
152×No Errors
78×(+.f64 (-.f64 (-.f64 (*.f64 x y) (*.f64 y z)) (*.f64 y y)) (*.f64 y y))
23×(-.f64 (-.f64 (*.f64 x y) (*.f64 y z)) (*.f64 y y))
(-.f64 (*.f64 x y) (*.f64 y z))
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
050761
1190324
2620250
32091250
45878250
57347250
67796250
Stop Event
node limit
Calls
Call 1
Inputs
(+.f64 (-.f64 (-.f64 (*.f64 x y) (*.f64 y z)) (*.f64 y y)) (*.f64 y y))
(+.f64 (-.f64 (-.f64 (*.f64 x y) (*.f64 y z)) (*.f64 y y)) (*.f64 y y))
(+.f64 (-.f64 (-.f64 (*.f64 (neg.f64 x) y) (*.f64 y z)) (*.f64 y y)) (*.f64 y y))
(+.f64 (-.f64 (-.f64 (*.f64 x (neg.f64 y)) (*.f64 (neg.f64 y) z)) (*.f64 (neg.f64 y) (neg.f64 y))) (*.f64 (neg.f64 y) (neg.f64 y)))
(+.f64 (-.f64 (-.f64 (*.f64 x y) (*.f64 y (neg.f64 z))) (*.f64 y y)) (*.f64 y y))
(neg.f64 (+.f64 (-.f64 (-.f64 (*.f64 (neg.f64 x) y) (*.f64 y z)) (*.f64 y y)) (*.f64 y y)))
(neg.f64 (+.f64 (-.f64 (-.f64 (*.f64 x (neg.f64 y)) (*.f64 (neg.f64 y) z)) (*.f64 (neg.f64 y) (neg.f64 y))) (*.f64 (neg.f64 y) (neg.f64 y))))
(neg.f64 (+.f64 (-.f64 (-.f64 (*.f64 x y) (*.f64 y (neg.f64 z))) (*.f64 y y)) (*.f64 y y)))
(+.f64 (-.f64 (-.f64 (*.f64 y x) (*.f64 x z)) (*.f64 x x)) (*.f64 x x))
(+.f64 (-.f64 (-.f64 (*.f64 z y) (*.f64 y x)) (*.f64 y y)) (*.f64 y y))
(+.f64 (-.f64 (-.f64 (*.f64 x z) (*.f64 z y)) (*.f64 z z)) (*.f64 z z))
Outputs
(+.f64 (-.f64 (-.f64 (*.f64 x y) (*.f64 y z)) (*.f64 y y)) (*.f64 y y))
(+.f64 (*.f64 y y) (-.f64 (*.f64 x y) (+.f64 (*.f64 y z) (*.f64 y y))))
(+.f64 (*.f64 y (-.f64 x z)) 0)
(*.f64 y (-.f64 x z))
(+.f64 (-.f64 (-.f64 (*.f64 x y) (*.f64 y z)) (*.f64 y y)) (*.f64 y y))
(+.f64 (*.f64 y y) (-.f64 (*.f64 x y) (+.f64 (*.f64 y z) (*.f64 y y))))
(+.f64 (*.f64 y (-.f64 x z)) 0)
(*.f64 y (-.f64 x z))
(+.f64 (-.f64 (-.f64 (*.f64 (neg.f64 x) y) (*.f64 y z)) (*.f64 y y)) (*.f64 y y))
(+.f64 (*.f64 y y) (-.f64 (-.f64 (*.f64 x (neg.f64 y)) (*.f64 y z)) (*.f64 y y)))
(+.f64 (*.f64 (neg.f64 y) (+.f64 x z)) 0)
(*.f64 y (-.f64 (neg.f64 x) z))
(*.f64 y (-.f64 (neg.f64 z) x))
(+.f64 (-.f64 (-.f64 (*.f64 x (neg.f64 y)) (*.f64 (neg.f64 y) z)) (*.f64 (neg.f64 y) (neg.f64 y))) (*.f64 (neg.f64 y) (neg.f64 y)))
(+.f64 (*.f64 y y) (-.f64 (+.f64 (*.f64 x (neg.f64 y)) (*.f64 y z)) (*.f64 y y)))
(+.f64 (*.f64 y (-.f64 z x)) 0)
(*.f64 y (-.f64 z x))
(+.f64 (-.f64 (-.f64 (*.f64 x y) (*.f64 y (neg.f64 z))) (*.f64 y y)) (*.f64 y y))
(+.f64 (*.f64 y y) (-.f64 (-.f64 (*.f64 x y) (*.f64 y (neg.f64 z))) (*.f64 y y)))
(+.f64 (*.f64 y (-.f64 x (neg.f64 z))) 0)
(*.f64 y (+.f64 x z))
(neg.f64 (+.f64 (-.f64 (-.f64 (*.f64 (neg.f64 x) y) (*.f64 y z)) (*.f64 y y)) (*.f64 y y)))
(+.f64 (*.f64 y y) (-.f64 (-.f64 (*.f64 x y) (*.f64 y (neg.f64 z))) (*.f64 y y)))
(+.f64 (*.f64 y (-.f64 x (neg.f64 z))) 0)
(*.f64 y (+.f64 x z))
(neg.f64 (+.f64 (-.f64 (-.f64 (*.f64 x (neg.f64 y)) (*.f64 (neg.f64 y) z)) (*.f64 (neg.f64 y) (neg.f64 y))) (*.f64 (neg.f64 y) (neg.f64 y))))
(+.f64 (*.f64 y y) (-.f64 (*.f64 x y) (+.f64 (*.f64 y z) (*.f64 y y))))
(+.f64 (*.f64 y (-.f64 x z)) 0)
(*.f64 y (-.f64 x z))
(neg.f64 (+.f64 (-.f64 (-.f64 (*.f64 x y) (*.f64 y (neg.f64 z))) (*.f64 y y)) (*.f64 y y)))
(+.f64 (*.f64 y y) (-.f64 (-.f64 (*.f64 x (neg.f64 y)) (*.f64 y z)) (*.f64 y y)))
(+.f64 (*.f64 (neg.f64 y) (+.f64 x z)) 0)
(*.f64 y (-.f64 (neg.f64 x) z))
(*.f64 y (-.f64 (neg.f64 z) x))
(+.f64 (-.f64 (-.f64 (*.f64 y x) (*.f64 x z)) (*.f64 x x)) (*.f64 x x))
(+.f64 (*.f64 x x) (-.f64 (-.f64 (*.f64 x y) (*.f64 x z)) (*.f64 x x)))
(+.f64 (*.f64 x (-.f64 y z)) 0)
(*.f64 x (-.f64 y z))
(+.f64 (-.f64 (-.f64 (*.f64 z y) (*.f64 y x)) (*.f64 y y)) (*.f64 y y))
(+.f64 (*.f64 y y) (-.f64 (+.f64 (*.f64 x (neg.f64 y)) (*.f64 y z)) (*.f64 y y)))
(+.f64 (*.f64 y (-.f64 z x)) 0)
(*.f64 y (-.f64 z x))
(+.f64 (-.f64 (-.f64 (*.f64 x z) (*.f64 z y)) (*.f64 z z)) (*.f64 z z))
(+.f64 (*.f64 z z) (-.f64 (*.f64 x z) (+.f64 (*.f64 y z) (*.f64 z z))))
(+.f64 (*.f64 z (-.f64 x y)) 0)
(*.f64 z (-.f64 x y))
Symmetry

(negabs y)

Compiler

Compiled 67 to 19 computations (71.6% saved)

eval1.0ms (0%)

Compiler

Compiled 30 to 13 computations (56.7% 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.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))
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))

rewrite194.0ms (6.3%)

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))

simplify83.0ms (2.7%)

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))

eval9.0ms (0.3%)

Compiler

Compiled 537 to 225 computations (58.1% saved)

prune12.0ms (0.4%)

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)

localize29.0ms (0.9%)

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
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)

regimes25.0ms (0.8%)

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 z)) (*.f64 y y)) (*.f64 y y))
Outputs
(*.f64 y (-.f64 x z))
Calls

4 calls:

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

Compiled 60 to 32 computations (46.7% saved)

regimes50.0ms (1.6%)

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:

24.0ms
y
15.0ms
z
10.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:

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

Compiled 18 to 13 computations (27.8% saved)

bsearch74.0ms (2.4%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
narrow-enough
narrow-enough
Steps
TimeLeftRight
17.0ms
5.7127579193801e+199
2.8439364452338996e+202
15.0ms
8.764388974954745e+140
9.607589885434021e+142
18.0ms
4.7690754779013443e+82
1.3596876076708425e+84
23.0ms
-17758582591797.125
-4266854.72227218
Results
43.0ms347×body256valid
9.0ms80×body256infinite
5.0ms22×body1024valid
5.0ms13×body512infinite
4.0ms21×body512valid
3.0ms13×body1024infinite
Compiler

Compiled 489 to 355 computations (27.4% saved)

simplify10.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
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)

soundness394.0ms (12.9%)

Rules
1618×sub-neg
1586×fma-neg
1370×log-prod
1370×log-prod
868×associate-*r*
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
050761
1190324
2620250
32091250
45878250
57347250
67796250
01081451
12341412
26111412
340801364
469731364
01081451
12341412
26111412
340801364
469731364
Stop Event
node limit
node limit
node limit
Compiler

Compiled 92 to 36 computations (60.9% saved)

end0.0ms (0%)

preprocess49.0ms (1.6%)

Remove

(negabs y)

Compiler

Compiled 172 to 102 computations (40.7% saved)

Profiling

Loading profile data...