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

Time bar (total: 2.9s)

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 (65.2%)

Results
964.0ms5020×body256valid
279.0ms1396×body256infinite
199.0ms647×body1024valid
106.0ms449×body512valid
105.0ms378×body2048valid
100.0ms225×body512infinite
31.0ms141×body1024infinite
Bogosity

preprocess208.0ms (7.2%)

Algorithm
egg-herbie
Rules
1638×sub-neg
1574×fma-neg
782×fma-def
678×distribute-lft-out
656×distribute-lft-neg-in
Problems
173×No Errors
61×(+.f64 (-.f64 (-.f64 (*.f64 x y) (*.f64 y z)) (*.f64 y y)) (*.f64 y y))
19×(-.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
32088250
45865250
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)

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

rewrite120.0ms (4.2%)

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

simplify66.0ms (2.3%)

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

eval9.0ms (0.3%)

Compiler

Compiled 522 to 216 computations (58.6% saved)

prune21.0ms (0.7%)

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

Compiled 42 to 28 computations (33.3% saved)

localize27.0ms (0.9%)

Compiler

Compiled 17 to 7 computations (58.8% saved)

eval0.0ms (0%)

Compiler

Compiled 3 to 3 computations (0% saved)

prune4.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))
56.6%
(*.f64 y (neg.f64 z))
52.2%
(*.f64 y x)
Compiler

Compiled 51 to 28 computations (45.1% saved)

regimes18.0ms (0.6%)

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

4 calls:

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

Compiled 60 to 32 computations (46.7% saved)

regimes53.0ms (1.8%)

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

3 calls:

31.0ms
y
11.0ms
z
10.0ms
x
Results
AccuracySegmentsBranch
82.0%3x
67.2%9y
82.0%3z
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
x
3.0ms
z
Results
AccuracySegmentsBranch
52.2%1y
52.2%1z
52.2%1x
Compiler

Compiled 18 to 13 computations (27.8% saved)

bsearch47.0ms (1.6%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
25.0ms
2.7712424789638436e-43
9.300279923125408e-30
22.0ms
-313964924038.2344
-77273870.85397662
Results
22.0ms197×body256valid
12.0ms42×body1024valid
7.0ms27×body256infinite
2.0ms13×body512valid
1.0msbody2048valid
1.0msbody1024infinite
0.0msbody512infinite
Compiler

Compiled 294 to 212 computations (27.9% saved)

simplify4.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
02496
13996
24896
35496
45796
55896
Stop Event
done
saturated
Calls
Call 1
Inputs
(*.f64 y (-.f64 x z))
(if (<=.f64 x -3000000000) (*.f64 y x) (if (<=.f64 x 5937350401656793/11417981541647679048466287755595961091061972992) (*.f64 y (neg.f64 z)) (*.f64 y x)))
(*.f64 y x)
Outputs
(*.f64 y (-.f64 x z))
(if (<=.f64 x -3000000000) (*.f64 y x) (if (<=.f64 x 5937350401656793/11417981541647679048466287755595961091061972992) (*.f64 y (neg.f64 z)) (*.f64 y x)))
(if (or (<=.f64 x -3000000000) (not (<=.f64 x 5937350401656793/11417981541647679048466287755595961091061972992))) (*.f64 y x) (*.f64 y (neg.f64 z)))
(if (or (<=.f64 x -3000000000) (not (<=.f64 x 5937350401656793/11417981541647679048466287755595961091061972992))) (*.f64 y x) (*.f64 (neg.f64 y) z))
(if (or (<=.f64 x -3000000000) (not (<=.f64 x 5937350401656793/11417981541647679048466287755595961091061972992))) (*.f64 y x) (*.f64 z (neg.f64 y)))
(*.f64 y x)
Compiler

Compiled 33 to 22 computations (33.3% saved)

soundness342.0ms (11.8%)

Rules
1638×sub-neg
1574×fma-neg
1370×log-prod
1370×log-prod
866×associate-*r*
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
050761
1190324
2620250
32088250
45865250
57347250
67796250
01081451
12311412
26081412
340441364
469221364
01081451
12311412
26081412
340441364
469221364
Stop Event
node limit
node limit
node limit
Compiler

Compiled 86 to 31 computations (64% saved)

end0.0ms (0%)

preprocess47.0ms (1.6%)

Remove

(negabs y)

Compiler

Compiled 154 to 88 computations (42.9% saved)

Profiling

Loading profile data...