Statistics.Sample:$swelfordMean from math-functions-0.1.5.2

Time bar (total: 2.6s)

analyze33.0ms (1.2%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
0%0%99.9%0.1%0%0%0%1
0%0%99.9%0.1%0%0%0%2
0%0%99.9%0.1%0%0%0%3
50%49.9%49.9%0.1%0%0%0%4
50%49.9%49.9%0.1%0%0%0%5
50%49.9%49.9%0.1%0%0%0%6
75%74.9%25%0.1%0%0%0%7
75%74.9%25%0.1%0%0%0%8
75%74.9%25%0.1%0%0%0%9
87.5%87.4%12.5%0.1%0%0%0%10
87.5%87.4%12.5%0.1%0%0%0%11
87.5%87.4%12.5%0.1%0%0%0%12
Compiler

Compiled 11 to 7 computations (36.4% saved)

sample1.2s (47.6%)

Results
1.1s6609×body256valid
151.0ms1647×body256infinite
Bogosity

preprocess170.0ms (6.5%)

Algorithm
egg-herbie
Rules
3626×fma-def
1290×div-sub
736×times-frac
726×sub-neg
416×distribute-rgt-in
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
029149
168141
2165137
3498137
41321133
53365133
64764133
75570133
86205133
96507133
106640133
117781133
Stop Event
node limit
Calls
Call 1
Inputs
(+.f64 x (/.f64 (-.f64 y x) z))
(+.f64 (neg.f64 x) (/.f64 (-.f64 y (neg.f64 x)) z))
(+.f64 x (/.f64 (-.f64 (neg.f64 y) x) z))
(+.f64 x (/.f64 (-.f64 y x) (neg.f64 z)))
(+.f64 y (/.f64 (-.f64 x y) z))
(+.f64 z (/.f64 (-.f64 y z) x))
(+.f64 x (/.f64 (-.f64 z x) y))
Outputs
(+.f64 x (/.f64 (-.f64 y x) z))
(+.f64 (neg.f64 x) (/.f64 (-.f64 y (neg.f64 x)) z))
(-.f64 (/.f64 (+.f64 x y) z) x)
(+.f64 x (/.f64 (-.f64 (neg.f64 y) x) z))
(-.f64 x (/.f64 (+.f64 x y) z))
(+.f64 x (/.f64 (-.f64 y x) (neg.f64 z)))
(-.f64 x (/.f64 (-.f64 y x) z))
(+.f64 y (/.f64 (-.f64 x y) z))
(-.f64 y (/.f64 (-.f64 y x) z))
(+.f64 z (/.f64 (-.f64 y z) x))
(+.f64 x (/.f64 (-.f64 z x) y))
(-.f64 x (/.f64 (-.f64 x z) y))
Compiler

Compiled 13 to 9 computations (30.8% saved)

simplify46.0ms (1.8%)

Algorithm
egg-herbie
Rules
1312×fma-def
154×distribute-rgt-in
142×cancel-sign-sub-inv
110×unsub-neg
104×distribute-lft-neg-in
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0819
11519
22619
34519
49119
516919
637619
770219
8121719
9151419
10160719
11168919
12169319
Stop Event
saturated
Counts
1 → 1
Calls
Call 1
Inputs
(+.f64 x (/.f64 (-.f64 y x) z))
Outputs
(+.f64 x (/.f64 (-.f64 y x) z))

eval0.0ms (0%)

Compiler

Compiled 10 to 6 computations (40% saved)

prune1.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New011
Fresh011
Picked000
Done000
Total022
Accurracy
100.0%
Counts
2 → 1
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(+.f64 x (/.f64 (-.f64 y x) z))
100.0%
(+.f64 x (/.f64 (-.f64 y x) z))
Compiler

Compiled 20 to 12 computations (40% saved)

localize30.0ms (1.2%)

Local Accuracy

Found 1 expressions with local accuracy:

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

Compiled 22 to 7 computations (68.2% saved)

series3.0ms (0.1%)

Counts
1 → 24
Calls

9 calls:

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

rewrite56.0ms (2.1%)

Algorithm
batch-egg-rewrite
Rules
1984×pow1
1846×add-exp-log
1846×log1p-expm1-u
1846×expm1-log1p-u
174×add-sqr-sqrt
Iterations

Useful iterations: 0 (0.0ms)

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

simplify54.0ms (2%)

Algorithm
egg-herbie
Rules
1536×fma-def
814×div-sub
788×log-prod
736×log-div
424×associate-*r/
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
093772
1228772
2793772
34575772
Stop Event
node limit
Counts
58 → 41
Calls
Call 1
Inputs
(*.f64 -1 (/.f64 x z))
(+.f64 (*.f64 -1 (/.f64 x z)) (/.f64 y z))
(+.f64 (*.f64 -1 (/.f64 x z)) (/.f64 y z))
(+.f64 (*.f64 -1 (/.f64 x z)) (/.f64 y z))
(/.f64 y z)
(+.f64 (*.f64 -1 (/.f64 x z)) (/.f64 y z))
(+.f64 (*.f64 -1 (/.f64 x z)) (/.f64 y z))
(+.f64 (*.f64 -1 (/.f64 x z)) (/.f64 y z))
(/.f64 y z)
(+.f64 (*.f64 -1 (/.f64 x z)) (/.f64 y z))
(+.f64 (*.f64 -1 (/.f64 x z)) (/.f64 y z))
(+.f64 (*.f64 -1 (/.f64 x z)) (/.f64 y z))
(/.f64 y z)
(+.f64 (*.f64 -1 (/.f64 x z)) (/.f64 y z))
(+.f64 (*.f64 -1 (/.f64 x z)) (/.f64 y z))
(+.f64 (*.f64 -1 (/.f64 x z)) (/.f64 y z))
(*.f64 -1 (/.f64 x z))
(+.f64 (*.f64 -1 (/.f64 x z)) (/.f64 y z))
(+.f64 (*.f64 -1 (/.f64 x z)) (/.f64 y z))
(+.f64 (*.f64 -1 (/.f64 x z)) (/.f64 y z))
(*.f64 -1 (/.f64 x z))
(+.f64 (*.f64 -1 (/.f64 x z)) (/.f64 y z))
(+.f64 (*.f64 -1 (/.f64 x z)) (/.f64 y z))
(+.f64 (*.f64 -1 (/.f64 x z)) (/.f64 y z))
(+.f64 (/.f64 y z) (neg.f64 (/.f64 x z)))
(-.f64 (/.f64 y z) (/.f64 x z))
(-.f64 (+.f64 1 (/.f64 (-.f64 y x) z)) 1)
(*.f64 (-.f64 y x) (/.f64 1 z))
(*.f64 (/.f64 (-.f64 y x) z) 1)
(*.f64 1 (/.f64 (-.f64 y x) z))
(*.f64 (pow.f64 (cbrt.f64 (-.f64 y x)) 2) (*.f64 (cbrt.f64 (-.f64 y x)) (/.f64 1 z)))
(*.f64 (cbrt.f64 (/.f64 (-.f64 y x) z)) (pow.f64 (cbrt.f64 (/.f64 (-.f64 y x) z)) 2))
(*.f64 (pow.f64 (cbrt.f64 (/.f64 (-.f64 y x) z)) 2) (cbrt.f64 (/.f64 (-.f64 y x) z)))
(*.f64 (sqrt.f64 (-.f64 y x)) (*.f64 (sqrt.f64 (-.f64 y x)) (/.f64 1 z)))
(*.f64 (sqrt.f64 (/.f64 (-.f64 y x) z)) (sqrt.f64 (/.f64 (-.f64 y x) z)))
(*.f64 (neg.f64 (-.f64 y x)) (/.f64 1 (neg.f64 z)))
(*.f64 (/.f64 1 z) (-.f64 y x))
(*.f64 (/.f64 1 (pow.f64 (cbrt.f64 z) 2)) (/.f64 (-.f64 y x) (cbrt.f64 z)))
(*.f64 (/.f64 1 (sqrt.f64 z)) (/.f64 (-.f64 y x) (sqrt.f64 z)))
(*.f64 (/.f64 (pow.f64 (cbrt.f64 (-.f64 y x)) 2) 1) (/.f64 (cbrt.f64 (-.f64 y x)) z))
(*.f64 (/.f64 (pow.f64 (cbrt.f64 (-.f64 y x)) 2) (pow.f64 (cbrt.f64 z) 2)) (cbrt.f64 (/.f64 (-.f64 y x) z)))
(*.f64 (/.f64 (pow.f64 (cbrt.f64 (-.f64 y x)) 2) (sqrt.f64 z)) (/.f64 (cbrt.f64 (-.f64 y x)) (sqrt.f64 z)))
(*.f64 (/.f64 (sqrt.f64 (-.f64 y x)) 1) (/.f64 (sqrt.f64 (-.f64 y x)) z))
(*.f64 (/.f64 (sqrt.f64 (-.f64 y x)) (pow.f64 (cbrt.f64 z) 2)) (/.f64 (sqrt.f64 (-.f64 y x)) (cbrt.f64 z)))
(pow.f64 (/.f64 (-.f64 y x) z) 1)
(pow.f64 (cbrt.f64 (/.f64 (-.f64 y x) z)) 3)
(pow.f64 (pow.f64 (/.f64 (-.f64 y x) z) 3) 1/3)
(pow.f64 (sqrt.f64 (/.f64 (-.f64 y x) z)) 2)
(pow.f64 (/.f64 z (-.f64 y x)) -1)
(neg.f64 (/.f64 (-.f64 y x) (neg.f64 z)))
(sqrt.f64 (pow.f64 (/.f64 (-.f64 y x) z) 2))
(log.f64 (exp.f64 (/.f64 (-.f64 y x) z)))
(cbrt.f64 (pow.f64 (/.f64 (-.f64 y x) z) 3))
(cbrt.f64 (/.f64 (pow.f64 (-.f64 y x) 3) (pow.f64 z 3)))
(expm1.f64 (log1p.f64 (/.f64 (-.f64 y x) z)))
(exp.f64 (log.f64 (/.f64 (-.f64 y x) z)))
(exp.f64 (*.f64 (log.f64 (/.f64 (-.f64 y x) z)) 1))
(log1p.f64 (expm1.f64 (/.f64 (-.f64 y x) z)))
Outputs
(*.f64 -1 (/.f64 x z))
(/.f64 (neg.f64 x) z)
(/.f64 x (neg.f64 z))
(+.f64 (*.f64 -1 (/.f64 x z)) (/.f64 y z))
(/.f64 (-.f64 y x) z)
(+.f64 (*.f64 -1 (/.f64 x z)) (/.f64 y z))
(/.f64 (-.f64 y x) z)
(+.f64 (*.f64 -1 (/.f64 x z)) (/.f64 y z))
(/.f64 (-.f64 y x) z)
(/.f64 y z)
(+.f64 (*.f64 -1 (/.f64 x z)) (/.f64 y z))
(/.f64 (-.f64 y x) z)
(+.f64 (*.f64 -1 (/.f64 x z)) (/.f64 y z))
(/.f64 (-.f64 y x) z)
(+.f64 (*.f64 -1 (/.f64 x z)) (/.f64 y z))
(/.f64 (-.f64 y x) z)
(/.f64 y z)
(+.f64 (*.f64 -1 (/.f64 x z)) (/.f64 y z))
(/.f64 (-.f64 y x) z)
(+.f64 (*.f64 -1 (/.f64 x z)) (/.f64 y z))
(/.f64 (-.f64 y x) z)
(+.f64 (*.f64 -1 (/.f64 x z)) (/.f64 y z))
(/.f64 (-.f64 y x) z)
(/.f64 y z)
(+.f64 (*.f64 -1 (/.f64 x z)) (/.f64 y z))
(/.f64 (-.f64 y x) z)
(+.f64 (*.f64 -1 (/.f64 x z)) (/.f64 y z))
(/.f64 (-.f64 y x) z)
(+.f64 (*.f64 -1 (/.f64 x z)) (/.f64 y z))
(/.f64 (-.f64 y x) z)
(*.f64 -1 (/.f64 x z))
(/.f64 (neg.f64 x) z)
(/.f64 x (neg.f64 z))
(+.f64 (*.f64 -1 (/.f64 x z)) (/.f64 y z))
(/.f64 (-.f64 y x) z)
(+.f64 (*.f64 -1 (/.f64 x z)) (/.f64 y z))
(/.f64 (-.f64 y x) z)
(+.f64 (*.f64 -1 (/.f64 x z)) (/.f64 y z))
(/.f64 (-.f64 y x) z)
(*.f64 -1 (/.f64 x z))
(/.f64 (neg.f64 x) z)
(/.f64 x (neg.f64 z))
(+.f64 (*.f64 -1 (/.f64 x z)) (/.f64 y z))
(/.f64 (-.f64 y x) z)
(+.f64 (*.f64 -1 (/.f64 x z)) (/.f64 y z))
(/.f64 (-.f64 y x) z)
(+.f64 (*.f64 -1 (/.f64 x z)) (/.f64 y z))
(/.f64 (-.f64 y x) z)
(+.f64 (/.f64 y z) (neg.f64 (/.f64 x z)))
(/.f64 (-.f64 y x) z)
(-.f64 (/.f64 y z) (/.f64 x z))
(/.f64 (-.f64 y x) z)
(-.f64 (+.f64 1 (/.f64 (-.f64 y x) z)) 1)
(/.f64 (-.f64 y x) z)
(*.f64 (-.f64 y x) (/.f64 1 z))
(/.f64 (-.f64 y x) z)
(*.f64 (/.f64 (-.f64 y x) z) 1)
(/.f64 (-.f64 y x) z)
(*.f64 1 (/.f64 (-.f64 y x) z))
(/.f64 (-.f64 y x) z)
(*.f64 (pow.f64 (cbrt.f64 (-.f64 y x)) 2) (*.f64 (cbrt.f64 (-.f64 y x)) (/.f64 1 z)))
(/.f64 (-.f64 y x) z)
(*.f64 (cbrt.f64 (/.f64 (-.f64 y x) z)) (pow.f64 (cbrt.f64 (/.f64 (-.f64 y x) z)) 2))
(/.f64 (-.f64 y x) z)
(*.f64 (pow.f64 (cbrt.f64 (/.f64 (-.f64 y x) z)) 2) (cbrt.f64 (/.f64 (-.f64 y x) z)))
(/.f64 (-.f64 y x) z)
(*.f64 (sqrt.f64 (-.f64 y x)) (*.f64 (sqrt.f64 (-.f64 y x)) (/.f64 1 z)))
(/.f64 (-.f64 y x) z)
(*.f64 (sqrt.f64 (/.f64 (-.f64 y x) z)) (sqrt.f64 (/.f64 (-.f64 y x) z)))
(/.f64 (-.f64 y x) z)
(*.f64 (neg.f64 (-.f64 y x)) (/.f64 1 (neg.f64 z)))
(/.f64 (-.f64 y x) z)
(*.f64 (/.f64 1 z) (-.f64 y x))
(/.f64 (-.f64 y x) z)
(*.f64 (/.f64 1 (pow.f64 (cbrt.f64 z) 2)) (/.f64 (-.f64 y x) (cbrt.f64 z)))
(/.f64 (-.f64 y x) z)
(*.f64 (/.f64 1 (sqrt.f64 z)) (/.f64 (-.f64 y x) (sqrt.f64 z)))
(/.f64 (-.f64 y x) z)
(*.f64 (/.f64 (pow.f64 (cbrt.f64 (-.f64 y x)) 2) 1) (/.f64 (cbrt.f64 (-.f64 y x)) z))
(/.f64 (-.f64 y x) z)
(*.f64 (/.f64 (pow.f64 (cbrt.f64 (-.f64 y x)) 2) (pow.f64 (cbrt.f64 z) 2)) (cbrt.f64 (/.f64 (-.f64 y x) z)))
(*.f64 (cbrt.f64 (/.f64 (-.f64 y x) z)) (/.f64 (pow.f64 (cbrt.f64 (-.f64 y x)) 2) (pow.f64 (cbrt.f64 z) 2)))
(*.f64 (/.f64 (pow.f64 (cbrt.f64 (-.f64 y x)) 2) (sqrt.f64 z)) (/.f64 (cbrt.f64 (-.f64 y x)) (sqrt.f64 z)))
(/.f64 (-.f64 y x) z)
(*.f64 (/.f64 (sqrt.f64 (-.f64 y x)) 1) (/.f64 (sqrt.f64 (-.f64 y x)) z))
(/.f64 (-.f64 y x) z)
(*.f64 (/.f64 (sqrt.f64 (-.f64 y x)) (pow.f64 (cbrt.f64 z) 2)) (/.f64 (sqrt.f64 (-.f64 y x)) (cbrt.f64 z)))
(/.f64 (-.f64 y x) z)
(pow.f64 (/.f64 (-.f64 y x) z) 1)
(/.f64 (-.f64 y x) z)
(pow.f64 (cbrt.f64 (/.f64 (-.f64 y x) z)) 3)
(/.f64 (-.f64 y x) z)
(pow.f64 (pow.f64 (/.f64 (-.f64 y x) z) 3) 1/3)
(/.f64 (-.f64 y x) z)
(pow.f64 (sqrt.f64 (/.f64 (-.f64 y x) z)) 2)
(/.f64 (-.f64 y x) z)
(pow.f64 (/.f64 z (-.f64 y x)) -1)
(/.f64 (-.f64 y x) z)
(neg.f64 (/.f64 (-.f64 y x) (neg.f64 z)))
(/.f64 (-.f64 y x) z)
(sqrt.f64 (pow.f64 (/.f64 (-.f64 y x) z) 2))
(/.f64 (-.f64 y x) z)
(log.f64 (exp.f64 (/.f64 (-.f64 y x) z)))
(/.f64 (-.f64 y x) z)
(cbrt.f64 (pow.f64 (/.f64 (-.f64 y x) z) 3))
(/.f64 (-.f64 y x) z)
(cbrt.f64 (/.f64 (pow.f64 (-.f64 y x) 3) (pow.f64 z 3)))
(/.f64 (-.f64 y x) z)
(expm1.f64 (log1p.f64 (/.f64 (-.f64 y x) z)))
(/.f64 (-.f64 y x) z)
(exp.f64 (log.f64 (/.f64 (-.f64 y x) z)))
(/.f64 (-.f64 y x) z)
(exp.f64 (*.f64 (log.f64 (/.f64 (-.f64 y x) z)) 1))
(/.f64 (-.f64 y x) z)
(log1p.f64 (expm1.f64 (/.f64 (-.f64 y x) z)))
(/.f64 (-.f64 y x) z)

eval8.0ms (0.3%)

Compiler

Compiled 478 to 181 computations (62.1% saved)

prune9.0ms (0.3%)

Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New39241
Fresh000
Picked011
Done000
Total39342
Accurracy
100.0%
Counts
42 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(+.f64 x (/.f64 (-.f64 y x) z))
66.0%
(+.f64 x (/.f64 (neg.f64 x) z))
74.5%
(+.f64 x (/.f64 y z))
100.0%
(+.f64 x (/.f64 (-.f64 y x) z))
66.0%
(+.f64 x (/.f64 (neg.f64 x) z))
74.5%
(+.f64 x (/.f64 y z))
Compiler

Compiled 54 to 34 computations (37% saved)

localize39.0ms (1.5%)

Local Accuracy

Found 1 expressions with local accuracy:

NewAccuracyProgram
100.0%
(+.f64 x (/.f64 (neg.f64 x) z))
Compiler

Compiled 29 to 9 computations (69% saved)

series3.0ms (0.1%)

Counts
1 → 24
Calls

6 calls:

TimeVariablePointExpression
1.0ms
x
@inf
(+.f64 x (/.f64 (neg.f64 x) z))
1.0ms
x
@0
(+.f64 x (/.f64 (neg.f64 x) z))
0.0ms
z
@0
(+.f64 x (/.f64 (neg.f64 x) z))
0.0ms
z
@inf
(+.f64 x (/.f64 (neg.f64 x) z))
0.0ms
x
@-inf
(+.f64 x (/.f64 (neg.f64 x) z))

rewrite60.0ms (2.3%)

Algorithm
batch-egg-rewrite
Rules
1746×pow1
1618×add-exp-log
1616×log1p-expm1-u
1616×expm1-log1p-u
1584×add-log-exp
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0817
117813
2273913
Stop Event
node limit
Counts
1 → 37
Calls
Call 1
Inputs
(+.f64 x (/.f64 (neg.f64 x) z))
Outputs
(-.f64 x (/.f64 x z))
(-.f64 (+.f64 1 (+.f64 x (/.f64 x z))) 1)
(-.f64 (/.f64 (*.f64 x x) (+.f64 x (/.f64 x z))) (/.f64 (pow.f64 (/.f64 x z) 2) (+.f64 x (/.f64 x z))))
(*.f64 (+.f64 x (/.f64 x z)) 1)
(*.f64 1 (+.f64 x (/.f64 x z)))
(*.f64 (cbrt.f64 (+.f64 x (/.f64 x z))) (pow.f64 (cbrt.f64 (+.f64 x (/.f64 x z))) 2))
(*.f64 (pow.f64 (cbrt.f64 (+.f64 x (/.f64 x z))) 2) (cbrt.f64 (+.f64 x (/.f64 x z))))
(*.f64 (sqrt.f64 (+.f64 x (/.f64 x z))) (sqrt.f64 (+.f64 x (/.f64 x z))))
(*.f64 (+.f64 (pow.f64 x 3) (pow.f64 (/.f64 x z) 3)) (/.f64 1 (fma.f64 x x (*.f64 (/.f64 x z) (-.f64 (/.f64 x z) x)))))
(*.f64 (pow.f64 (+.f64 x (/.f64 x z)) 2) (/.f64 1 (+.f64 x (/.f64 x z))))
(*.f64 (+.f64 (sqrt.f64 x) (sqrt.f64 (/.f64 x z))) (-.f64 (sqrt.f64 x) (sqrt.f64 (/.f64 x z))))
(/.f64 1 (/.f64 (fma.f64 x x (*.f64 (/.f64 x z) (-.f64 (/.f64 x z) x))) (+.f64 (pow.f64 x 3) (pow.f64 (/.f64 x z) 3))))
(/.f64 1 (/.f64 (+.f64 x (/.f64 x z)) (pow.f64 (+.f64 x (/.f64 x z)) 2)))
(/.f64 (+.f64 (pow.f64 x 3) (pow.f64 (/.f64 x z) 3)) (fma.f64 x x (*.f64 (/.f64 x z) (-.f64 (/.f64 x z) x))))
(/.f64 (+.f64 (pow.f64 x 3) (pow.f64 (/.f64 x z) 3)) (+.f64 (pow.f64 (/.f64 x z) 2) (-.f64 (*.f64 x x) (/.f64 x (/.f64 z x)))))
(/.f64 (pow.f64 (+.f64 x (/.f64 x z)) 2) (+.f64 x (/.f64 x z)))
(/.f64 (neg.f64 (+.f64 (pow.f64 x 3) (pow.f64 (/.f64 x z) 3))) (neg.f64 (fma.f64 x x (*.f64 (/.f64 x z) (-.f64 (/.f64 x z) x)))))
(/.f64 (neg.f64 (pow.f64 (+.f64 x (/.f64 x z)) 2)) (neg.f64 (+.f64 x (/.f64 x z))))
(/.f64 (-.f64 (pow.f64 x 3) (pow.f64 (/.f64 x z) 3)) (fma.f64 x x (*.f64 (/.f64 x z) (-.f64 (/.f64 x z) x))))
(/.f64 (-.f64 (pow.f64 (/.f64 x z) 2) (*.f64 x x)) (-.f64 (/.f64 x z) x))
(pow.f64 (+.f64 x (/.f64 x z)) 1)
(pow.f64 (cbrt.f64 (+.f64 x (/.f64 x z))) 3)
(pow.f64 (pow.f64 (+.f64 x (/.f64 x z)) 3) 1/3)
(pow.f64 (sqrt.f64 (+.f64 x (/.f64 x z))) 2)
(sqrt.f64 (pow.f64 (+.f64 x (/.f64 x z)) 2))
(log.f64 (exp.f64 (+.f64 x (/.f64 x z))))
(cbrt.f64 (pow.f64 (+.f64 x (/.f64 x z)) 3))
(expm1.f64 (log1p.f64 (+.f64 x (/.f64 x z))))
(exp.f64 (log.f64 (+.f64 x (/.f64 x z))))
(log1p.f64 (expm1.f64 (+.f64 x (/.f64 x z))))
(fma.f64 x (/.f64 1 z) x)
(fma.f64 1 x (/.f64 x z))
(fma.f64 1 (/.f64 x z) x)
(fma.f64 (cbrt.f64 (*.f64 x x)) (cbrt.f64 x) (/.f64 x z))
(fma.f64 (pow.f64 (cbrt.f64 (/.f64 x z)) 2) (cbrt.f64 (/.f64 x z)) x)
(fma.f64 (sqrt.f64 x) (sqrt.f64 x) (/.f64 x z))
(fma.f64 (sqrt.f64 (/.f64 x z)) (sqrt.f64 (/.f64 x z)) x)

simplify61.0ms (2.3%)

Algorithm
egg-herbie
Rules
1100×fma-neg
944×associate-*r*
866×associate-/l*
850×associate-*l*
692×associate-/r*
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01001641
12421409
29151161
363271161
Stop Event
node limit
Counts
61 → 52
Calls
Call 1
Inputs
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(*.f64 -1 (*.f64 (-.f64 (/.f64 1 z) 1) x))
(*.f64 -1 (*.f64 (-.f64 (/.f64 1 z) 1) x))
(*.f64 -1 (*.f64 (-.f64 (/.f64 1 z) 1) x))
(*.f64 -1 (*.f64 (-.f64 (/.f64 1 z) 1) x))
(*.f64 -1 (/.f64 x z))
(+.f64 (*.f64 -1 (/.f64 x z)) x)
(+.f64 (*.f64 -1 (/.f64 x z)) x)
(+.f64 (*.f64 -1 (/.f64 x z)) x)
x
(+.f64 (*.f64 -1 (/.f64 x z)) x)
(+.f64 (*.f64 -1 (/.f64 x z)) x)
(+.f64 (*.f64 -1 (/.f64 x z)) x)
x
(+.f64 (*.f64 -1 (/.f64 x z)) x)
(+.f64 (*.f64 -1 (/.f64 x z)) x)
(+.f64 (*.f64 -1 (/.f64 x z)) x)
(-.f64 x (/.f64 x z))
(-.f64 (+.f64 1 (+.f64 x (/.f64 x z))) 1)
(-.f64 (/.f64 (*.f64 x x) (+.f64 x (/.f64 x z))) (/.f64 (pow.f64 (/.f64 x z) 2) (+.f64 x (/.f64 x z))))
(*.f64 (+.f64 x (/.f64 x z)) 1)
(*.f64 1 (+.f64 x (/.f64 x z)))
(*.f64 (cbrt.f64 (+.f64 x (/.f64 x z))) (pow.f64 (cbrt.f64 (+.f64 x (/.f64 x z))) 2))
(*.f64 (pow.f64 (cbrt.f64 (+.f64 x (/.f64 x z))) 2) (cbrt.f64 (+.f64 x (/.f64 x z))))
(*.f64 (sqrt.f64 (+.f64 x (/.f64 x z))) (sqrt.f64 (+.f64 x (/.f64 x z))))
(*.f64 (+.f64 (pow.f64 x 3) (pow.f64 (/.f64 x z) 3)) (/.f64 1 (fma.f64 x x (*.f64 (/.f64 x z) (-.f64 (/.f64 x z) x)))))
(*.f64 (pow.f64 (+.f64 x (/.f64 x z)) 2) (/.f64 1 (+.f64 x (/.f64 x z))))
(*.f64 (+.f64 (sqrt.f64 x) (sqrt.f64 (/.f64 x z))) (-.f64 (sqrt.f64 x) (sqrt.f64 (/.f64 x z))))
(/.f64 1 (/.f64 (fma.f64 x x (*.f64 (/.f64 x z) (-.f64 (/.f64 x z) x))) (+.f64 (pow.f64 x 3) (pow.f64 (/.f64 x z) 3))))
(/.f64 1 (/.f64 (+.f64 x (/.f64 x z)) (pow.f64 (+.f64 x (/.f64 x z)) 2)))
(/.f64 (+.f64 (pow.f64 x 3) (pow.f64 (/.f64 x z) 3)) (fma.f64 x x (*.f64 (/.f64 x z) (-.f64 (/.f64 x z) x))))
(/.f64 (+.f64 (pow.f64 x 3) (pow.f64 (/.f64 x z) 3)) (+.f64 (pow.f64 (/.f64 x z) 2) (-.f64 (*.f64 x x) (/.f64 x (/.f64 z x)))))
(/.f64 (pow.f64 (+.f64 x (/.f64 x z)) 2) (+.f64 x (/.f64 x z)))
(/.f64 (neg.f64 (+.f64 (pow.f64 x 3) (pow.f64 (/.f64 x z) 3))) (neg.f64 (fma.f64 x x (*.f64 (/.f64 x z) (-.f64 (/.f64 x z) x)))))
(/.f64 (neg.f64 (pow.f64 (+.f64 x (/.f64 x z)) 2)) (neg.f64 (+.f64 x (/.f64 x z))))
(/.f64 (-.f64 (pow.f64 x 3) (pow.f64 (/.f64 x z) 3)) (fma.f64 x x (*.f64 (/.f64 x z) (-.f64 (/.f64 x z) x))))
(/.f64 (-.f64 (pow.f64 (/.f64 x z) 2) (*.f64 x x)) (-.f64 (/.f64 x z) x))
(pow.f64 (+.f64 x (/.f64 x z)) 1)
(pow.f64 (cbrt.f64 (+.f64 x (/.f64 x z))) 3)
(pow.f64 (pow.f64 (+.f64 x (/.f64 x z)) 3) 1/3)
(pow.f64 (sqrt.f64 (+.f64 x (/.f64 x z))) 2)
(sqrt.f64 (pow.f64 (+.f64 x (/.f64 x z)) 2))
(log.f64 (exp.f64 (+.f64 x (/.f64 x z))))
(cbrt.f64 (pow.f64 (+.f64 x (/.f64 x z)) 3))
(expm1.f64 (log1p.f64 (+.f64 x (/.f64 x z))))
(exp.f64 (log.f64 (+.f64 x (/.f64 x z))))
(log1p.f64 (expm1.f64 (+.f64 x (/.f64 x z))))
(fma.f64 x (/.f64 1 z) x)
(fma.f64 1 x (/.f64 x z))
(fma.f64 1 (/.f64 x z) x)
(fma.f64 (cbrt.f64 (*.f64 x x)) (cbrt.f64 x) (/.f64 x z))
(fma.f64 (pow.f64 (cbrt.f64 (/.f64 x z)) 2) (cbrt.f64 (/.f64 x z)) x)
(fma.f64 (sqrt.f64 x) (sqrt.f64 x) (/.f64 x z))
(fma.f64 (sqrt.f64 (/.f64 x z)) (sqrt.f64 (/.f64 x z)) x)
Outputs
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(neg.f64 (-.f64 (/.f64 x z) x))
(-.f64 x (/.f64 x z))
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(neg.f64 (-.f64 (/.f64 x z) x))
(-.f64 x (/.f64 x z))
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(neg.f64 (-.f64 (/.f64 x z) x))
(-.f64 x (/.f64 x z))
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(neg.f64 (-.f64 (/.f64 x z) x))
(-.f64 x (/.f64 x z))
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(neg.f64 (-.f64 (/.f64 x z) x))
(-.f64 x (/.f64 x z))
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(neg.f64 (-.f64 (/.f64 x z) x))
(-.f64 x (/.f64 x z))
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(neg.f64 (-.f64 (/.f64 x z) x))
(-.f64 x (/.f64 x z))
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(neg.f64 (-.f64 (/.f64 x z) x))
(-.f64 x (/.f64 x z))
(*.f64 -1 (*.f64 (-.f64 (/.f64 1 z) 1) x))
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(neg.f64 (-.f64 (/.f64 x z) x))
(-.f64 x (/.f64 x z))
(*.f64 -1 (*.f64 (-.f64 (/.f64 1 z) 1) x))
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(neg.f64 (-.f64 (/.f64 x z) x))
(-.f64 x (/.f64 x z))
(*.f64 -1 (*.f64 (-.f64 (/.f64 1 z) 1) x))
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(neg.f64 (-.f64 (/.f64 x z) x))
(-.f64 x (/.f64 x z))
(*.f64 -1 (*.f64 (-.f64 (/.f64 1 z) 1) x))
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(neg.f64 (-.f64 (/.f64 x z) x))
(-.f64 x (/.f64 x z))
(*.f64 -1 (/.f64 x z))
(neg.f64 (/.f64 x z))
(/.f64 (neg.f64 x) z)
(+.f64 (*.f64 -1 (/.f64 x z)) x)
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(neg.f64 (-.f64 (/.f64 x z) x))
(-.f64 x (/.f64 x z))
(+.f64 (*.f64 -1 (/.f64 x z)) x)
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(neg.f64 (-.f64 (/.f64 x z) x))
(-.f64 x (/.f64 x z))
(+.f64 (*.f64 -1 (/.f64 x z)) x)
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(neg.f64 (-.f64 (/.f64 x z) x))
(-.f64 x (/.f64 x z))
x
(+.f64 (*.f64 -1 (/.f64 x z)) x)
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(neg.f64 (-.f64 (/.f64 x z) x))
(-.f64 x (/.f64 x z))
(+.f64 (*.f64 -1 (/.f64 x z)) x)
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(neg.f64 (-.f64 (/.f64 x z) x))
(-.f64 x (/.f64 x z))
(+.f64 (*.f64 -1 (/.f64 x z)) x)
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(neg.f64 (-.f64 (/.f64 x z) x))
(-.f64 x (/.f64 x z))
x
(+.f64 (*.f64 -1 (/.f64 x z)) x)
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(neg.f64 (-.f64 (/.f64 x z) x))
(-.f64 x (/.f64 x z))
(+.f64 (*.f64 -1 (/.f64 x z)) x)
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(neg.f64 (-.f64 (/.f64 x z) x))
(-.f64 x (/.f64 x z))
(+.f64 (*.f64 -1 (/.f64 x z)) x)
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(neg.f64 (-.f64 (/.f64 x z) x))
(-.f64 x (/.f64 x z))
(-.f64 x (/.f64 x z))
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(neg.f64 (-.f64 (/.f64 x z) x))
(-.f64 (+.f64 1 (+.f64 x (/.f64 x z))) 1)
(+.f64 1 (-.f64 (+.f64 x (/.f64 x z)) 1))
(+.f64 (+.f64 x (/.f64 x z)) 0)
(+.f64 x (/.f64 x z))
(-.f64 (/.f64 (*.f64 x x) (+.f64 x (/.f64 x z))) (/.f64 (pow.f64 (/.f64 x z) 2) (+.f64 x (/.f64 x z))))
(-.f64 (*.f64 x (/.f64 x (+.f64 x (/.f64 x z)))) (/.f64 (pow.f64 (/.f64 x z) 2) (+.f64 x (/.f64 x z))))
(*.f64 (+.f64 x (/.f64 x z)) 1)
(+.f64 1 (-.f64 (+.f64 x (/.f64 x z)) 1))
(+.f64 (+.f64 x (/.f64 x z)) 0)
(+.f64 x (/.f64 x z))
(*.f64 1 (+.f64 x (/.f64 x z)))
(+.f64 1 (-.f64 (+.f64 x (/.f64 x z)) 1))
(+.f64 (+.f64 x (/.f64 x z)) 0)
(+.f64 x (/.f64 x z))
(*.f64 (cbrt.f64 (+.f64 x (/.f64 x z))) (pow.f64 (cbrt.f64 (+.f64 x (/.f64 x z))) 2))
(+.f64 1 (-.f64 (+.f64 x (/.f64 x z)) 1))
(+.f64 (+.f64 x (/.f64 x z)) 0)
(+.f64 x (/.f64 x z))
(*.f64 (pow.f64 (cbrt.f64 (+.f64 x (/.f64 x z))) 2) (cbrt.f64 (+.f64 x (/.f64 x z))))
(+.f64 1 (-.f64 (+.f64 x (/.f64 x z)) 1))
(+.f64 (+.f64 x (/.f64 x z)) 0)
(+.f64 x (/.f64 x z))
(*.f64 (sqrt.f64 (+.f64 x (/.f64 x z))) (sqrt.f64 (+.f64 x (/.f64 x z))))
(+.f64 1 (-.f64 (+.f64 x (/.f64 x z)) 1))
(+.f64 (+.f64 x (/.f64 x z)) 0)
(+.f64 x (/.f64 x z))
(*.f64 (+.f64 (pow.f64 x 3) (pow.f64 (/.f64 x z) 3)) (/.f64 1 (fma.f64 x x (*.f64 (/.f64 x z) (-.f64 (/.f64 x z) x)))))
(/.f64 (*.f64 (+.f64 (pow.f64 x 3) (pow.f64 (/.f64 x z) 3)) 1) (fma.f64 x x (*.f64 (/.f64 x z) (-.f64 (/.f64 x z) x))))
(/.f64 (+.f64 (pow.f64 x 3) (pow.f64 (/.f64 x z) 3)) (fma.f64 x x (*.f64 (/.f64 x z) (-.f64 (/.f64 x z) x))))
(/.f64 (+.f64 (pow.f64 x 3) (pow.f64 (/.f64 x z) 3)) (fma.f64 x (-.f64 x (/.f64 x z)) (pow.f64 (/.f64 x z) 2)))
(*.f64 (pow.f64 (+.f64 x (/.f64 x z)) 2) (/.f64 1 (+.f64 x (/.f64 x z))))
(+.f64 1 (-.f64 (+.f64 x (/.f64 x z)) 1))
(+.f64 (+.f64 x (/.f64 x z)) 0)
(+.f64 x (/.f64 x z))
(*.f64 (+.f64 (sqrt.f64 x) (sqrt.f64 (/.f64 x z))) (-.f64 (sqrt.f64 x) (sqrt.f64 (/.f64 x z))))
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(neg.f64 (-.f64 (/.f64 x z) x))
(-.f64 x (/.f64 x z))
(/.f64 1 (/.f64 (fma.f64 x x (*.f64 (/.f64 x z) (-.f64 (/.f64 x z) x))) (+.f64 (pow.f64 x 3) (pow.f64 (/.f64 x z) 3))))
(/.f64 (*.f64 (+.f64 (pow.f64 x 3) (pow.f64 (/.f64 x z) 3)) 1) (fma.f64 x x (*.f64 (/.f64 x z) (-.f64 (/.f64 x z) x))))
(/.f64 (+.f64 (pow.f64 x 3) (pow.f64 (/.f64 x z) 3)) (fma.f64 x x (*.f64 (/.f64 x z) (-.f64 (/.f64 x z) x))))
(/.f64 (+.f64 (pow.f64 x 3) (pow.f64 (/.f64 x z) 3)) (fma.f64 x (-.f64 x (/.f64 x z)) (pow.f64 (/.f64 x z) 2)))
(/.f64 1 (/.f64 (+.f64 x (/.f64 x z)) (pow.f64 (+.f64 x (/.f64 x z)) 2)))
(+.f64 1 (-.f64 (+.f64 x (/.f64 x z)) 1))
(+.f64 (+.f64 x (/.f64 x z)) 0)
(+.f64 x (/.f64 x z))
(/.f64 (+.f64 (pow.f64 x 3) (pow.f64 (/.f64 x z) 3)) (fma.f64 x x (*.f64 (/.f64 x z) (-.f64 (/.f64 x z) x))))
(/.f64 (*.f64 (+.f64 (pow.f64 x 3) (pow.f64 (/.f64 x z) 3)) 1) (fma.f64 x x (*.f64 (/.f64 x z) (-.f64 (/.f64 x z) x))))
(/.f64 (+.f64 (pow.f64 x 3) (pow.f64 (/.f64 x z) 3)) (fma.f64 x (-.f64 x (/.f64 x z)) (pow.f64 (/.f64 x z) 2)))
(/.f64 (+.f64 (pow.f64 x 3) (pow.f64 (/.f64 x z) 3)) (+.f64 (pow.f64 (/.f64 x z) 2) (-.f64 (*.f64 x x) (/.f64 x (/.f64 z x)))))
(/.f64 (*.f64 (+.f64 (pow.f64 x 3) (pow.f64 (/.f64 x z) 3)) 1) (fma.f64 x x (*.f64 (/.f64 x z) (-.f64 (/.f64 x z) x))))
(/.f64 (+.f64 (pow.f64 x 3) (pow.f64 (/.f64 x z) 3)) (fma.f64 x x (*.f64 (/.f64 x z) (-.f64 (/.f64 x z) x))))
(/.f64 (+.f64 (pow.f64 x 3) (pow.f64 (/.f64 x z) 3)) (fma.f64 x (-.f64 x (/.f64 x z)) (pow.f64 (/.f64 x z) 2)))
(/.f64 (pow.f64 (+.f64 x (/.f64 x z)) 2) (+.f64 x (/.f64 x z)))
(+.f64 1 (-.f64 (+.f64 x (/.f64 x z)) 1))
(+.f64 (+.f64 x (/.f64 x z)) 0)
(+.f64 x (/.f64 x z))
(/.f64 (neg.f64 (+.f64 (pow.f64 x 3) (pow.f64 (/.f64 x z) 3))) (neg.f64 (fma.f64 x x (*.f64 (/.f64 x z) (-.f64 (/.f64 x z) x)))))
(/.f64 (*.f64 (+.f64 (pow.f64 x 3) (pow.f64 (/.f64 x z) 3)) 1) (fma.f64 x x (*.f64 (/.f64 x z) (-.f64 (/.f64 x z) x))))
(/.f64 (+.f64 (pow.f64 x 3) (pow.f64 (/.f64 x z) 3)) (fma.f64 x x (*.f64 (/.f64 x z) (-.f64 (/.f64 x z) x))))
(/.f64 (+.f64 (pow.f64 x 3) (pow.f64 (/.f64 x z) 3)) (fma.f64 x (-.f64 x (/.f64 x z)) (pow.f64 (/.f64 x z) 2)))
(/.f64 (neg.f64 (pow.f64 (+.f64 x (/.f64 x z)) 2)) (neg.f64 (+.f64 x (/.f64 x z))))
(+.f64 1 (-.f64 (+.f64 x (/.f64 x z)) 1))
(+.f64 (+.f64 x (/.f64 x z)) 0)
(+.f64 x (/.f64 x z))
(/.f64 (-.f64 (pow.f64 x 3) (pow.f64 (/.f64 x z) 3)) (fma.f64 x x (*.f64 (/.f64 x z) (-.f64 (/.f64 x z) x))))
(/.f64 (-.f64 (pow.f64 x 3) (pow.f64 (/.f64 x z) 3)) (fma.f64 x (-.f64 x (/.f64 x z)) (pow.f64 (/.f64 x z) 2)))
(/.f64 (-.f64 (pow.f64 (/.f64 x z) 2) (*.f64 x x)) (-.f64 (/.f64 x z) x))
(pow.f64 (+.f64 x (/.f64 x z)) 1)
(+.f64 1 (-.f64 (+.f64 x (/.f64 x z)) 1))
(+.f64 (+.f64 x (/.f64 x z)) 0)
(+.f64 x (/.f64 x z))
(pow.f64 (cbrt.f64 (+.f64 x (/.f64 x z))) 3)
(+.f64 1 (-.f64 (+.f64 x (/.f64 x z)) 1))
(+.f64 (+.f64 x (/.f64 x z)) 0)
(+.f64 x (/.f64 x z))
(pow.f64 (pow.f64 (+.f64 x (/.f64 x z)) 3) 1/3)
(+.f64 1 (-.f64 (+.f64 x (/.f64 x z)) 1))
(+.f64 (+.f64 x (/.f64 x z)) 0)
(+.f64 x (/.f64 x z))
(pow.f64 (sqrt.f64 (+.f64 x (/.f64 x z))) 2)
(+.f64 1 (-.f64 (+.f64 x (/.f64 x z)) 1))
(+.f64 (+.f64 x (/.f64 x z)) 0)
(+.f64 x (/.f64 x z))
(sqrt.f64 (pow.f64 (+.f64 x (/.f64 x z)) 2))
(+.f64 1 (-.f64 (+.f64 x (/.f64 x z)) 1))
(+.f64 (+.f64 x (/.f64 x z)) 0)
(+.f64 x (/.f64 x z))
(log.f64 (exp.f64 (+.f64 x (/.f64 x z))))
(+.f64 1 (-.f64 (+.f64 x (/.f64 x z)) 1))
(+.f64 (+.f64 x (/.f64 x z)) 0)
(+.f64 x (/.f64 x z))
(cbrt.f64 (pow.f64 (+.f64 x (/.f64 x z)) 3))
(+.f64 1 (-.f64 (+.f64 x (/.f64 x z)) 1))
(+.f64 (+.f64 x (/.f64 x z)) 0)
(+.f64 x (/.f64 x z))
(expm1.f64 (log1p.f64 (+.f64 x (/.f64 x z))))
(+.f64 1 (-.f64 (+.f64 x (/.f64 x z)) 1))
(+.f64 (+.f64 x (/.f64 x z)) 0)
(+.f64 x (/.f64 x z))
(exp.f64 (log.f64 (+.f64 x (/.f64 x z))))
(+.f64 1 (-.f64 (+.f64 x (/.f64 x z)) 1))
(+.f64 (+.f64 x (/.f64 x z)) 0)
(+.f64 x (/.f64 x z))
(log1p.f64 (expm1.f64 (+.f64 x (/.f64 x z))))
(+.f64 1 (-.f64 (+.f64 x (/.f64 x z)) 1))
(+.f64 (+.f64 x (/.f64 x z)) 0)
(+.f64 x (/.f64 x z))
(fma.f64 x (/.f64 1 z) x)
(+.f64 1 (-.f64 (+.f64 x (/.f64 x z)) 1))
(+.f64 (+.f64 x (/.f64 x z)) 0)
(+.f64 x (/.f64 x z))
(fma.f64 1 x (/.f64 x z))
(+.f64 1 (-.f64 (+.f64 x (/.f64 x z)) 1))
(+.f64 (+.f64 x (/.f64 x z)) 0)
(+.f64 x (/.f64 x z))
(fma.f64 1 (/.f64 x z) x)
(+.f64 1 (-.f64 (+.f64 x (/.f64 x z)) 1))
(+.f64 (+.f64 x (/.f64 x z)) 0)
(+.f64 x (/.f64 x z))
(fma.f64 (cbrt.f64 (*.f64 x x)) (cbrt.f64 x) (/.f64 x z))
(fma.f64 (pow.f64 (cbrt.f64 (/.f64 x z)) 2) (cbrt.f64 (/.f64 x z)) x)
(+.f64 1 (-.f64 (+.f64 x (/.f64 x z)) 1))
(+.f64 (+.f64 x (/.f64 x z)) 0)
(+.f64 x (/.f64 x z))
(fma.f64 (sqrt.f64 x) (sqrt.f64 x) (/.f64 x z))
(+.f64 1 (-.f64 (+.f64 x (/.f64 x z)) 1))
(+.f64 (+.f64 x (/.f64 x z)) 0)
(+.f64 x (/.f64 x z))
(fma.f64 (sqrt.f64 (/.f64 x z)) (sqrt.f64 (/.f64 x z)) x)
(+.f64 1 (-.f64 (+.f64 x (/.f64 x z)) 1))
(+.f64 (+.f64 x (/.f64 x z)) 0)
(+.f64 x (/.f64 x z))

eval12.0ms (0.4%)

Compiler

Compiled 611 to 206 computations (66.3% saved)

prune10.0ms (0.4%)

Pruning

5 alts after pruning (3 fresh and 2 done)

PrunedKeptTotal
New49352
Fresh000
Picked112
Done011
Total50555
Accurracy
100.0%
Counts
55 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
30.8%
(/.f64 (neg.f64 x) z)
66.0%
(-.f64 x (/.f64 x z))
100.0%
(+.f64 x (/.f64 (-.f64 y x) z))
74.5%
(+.f64 x (/.f64 y z))
37.1%
x
30.8%
(/.f64 (neg.f64 x) z)
66.0%
(-.f64 x (/.f64 x z))
100.0%
(+.f64 x (/.f64 (-.f64 y x) z))
74.5%
(+.f64 x (/.f64 y z))
37.1%
x
Compiler

Compiled 74 to 48 computations (35.1% saved)

localize35.0ms (1.3%)

Local Accuracy

Found 1 expressions with local accuracy:

NewAccuracyProgram
100.0%
(-.f64 x (/.f64 x z))
Compiler

Compiled 22 to 8 computations (63.6% saved)

series1.0ms (0%)

Counts
1 → 24
Calls

6 calls:

TimeVariablePointExpression
0.0ms
x
@0
(-.f64 x (/.f64 x z))
0.0ms
z
@-inf
(-.f64 x (/.f64 x z))
0.0ms
z
@0
(-.f64 x (/.f64 x z))
0.0ms
z
@inf
(-.f64 x (/.f64 x z))
0.0ms
x
@-inf
(-.f64 x (/.f64 x z))

rewrite65.0ms (2.5%)

Algorithm
batch-egg-rewrite
Rules
1648×pow1
1532×add-exp-log
1532×log1p-expm1-u
1532×expm1-log1p-u
1500×add-log-exp
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0613
113613
2203213
Stop Event
node limit
Counts
1 → 36
Calls
Call 1
Inputs
(-.f64 x (/.f64 x z))
Outputs
(+.f64 x (/.f64 (neg.f64 x) z))
(+.f64 x (*.f64 (/.f64 (neg.f64 x) z) 1))
(+.f64 (-.f64 x (/.f64 x z)) (fma.f64 (neg.f64 (/.f64 1 z)) x (/.f64 x z)))
(+.f64 (-.f64 x (/.f64 x z)) (fma.f64 (/.f64 (neg.f64 x) z) 1 (/.f64 x z)))
(+.f64 (-.f64 x (/.f64 x z)) (fma.f64 (neg.f64 (cbrt.f64 (/.f64 x z))) (pow.f64 (cbrt.f64 (/.f64 x z)) 2) (/.f64 x z)))
(+.f64 (-.f64 x (/.f64 x z)) (fma.f64 (neg.f64 (sqrt.f64 (/.f64 x z))) (sqrt.f64 (/.f64 x z)) (/.f64 x z)))
(+.f64 (/.f64 (neg.f64 x) z) x)
(*.f64 (-.f64 x (/.f64 x z)) 1)
(*.f64 1 (-.f64 x (/.f64 x z)))
(*.f64 (cbrt.f64 (-.f64 x (/.f64 x z))) (pow.f64 (cbrt.f64 (-.f64 x (/.f64 x z))) 2))
(*.f64 (pow.f64 (cbrt.f64 (-.f64 x (/.f64 x z))) 2) (cbrt.f64 (-.f64 x (/.f64 x z))))
(*.f64 (sqrt.f64 (-.f64 x (/.f64 x z))) (sqrt.f64 (-.f64 x (/.f64 x z))))
(*.f64 (-.f64 (pow.f64 x 3) (pow.f64 (/.f64 x z) 3)) (/.f64 1 (fma.f64 x x (*.f64 (/.f64 x z) (+.f64 x (/.f64 x z))))))
(*.f64 (-.f64 (*.f64 x x) (pow.f64 (/.f64 x z) 2)) (/.f64 1 (+.f64 x (/.f64 x z))))
(*.f64 (+.f64 (sqrt.f64 x) (sqrt.f64 (/.f64 x z))) (-.f64 (sqrt.f64 x) (sqrt.f64 (/.f64 x z))))
(/.f64 1 (/.f64 (fma.f64 x x (*.f64 (/.f64 x z) (+.f64 x (/.f64 x z)))) (-.f64 (pow.f64 x 3) (pow.f64 (/.f64 x z) 3))))
(/.f64 1 (/.f64 (+.f64 x (/.f64 x z)) (-.f64 (*.f64 x x) (pow.f64 (/.f64 x z) 2))))
(/.f64 (-.f64 (pow.f64 x 3) (pow.f64 (/.f64 x z) 3)) (fma.f64 x x (*.f64 (/.f64 x z) (+.f64 x (/.f64 x z)))))
(/.f64 (-.f64 (*.f64 x x) (pow.f64 (/.f64 x z) 2)) (+.f64 x (/.f64 x z)))
(/.f64 (neg.f64 (-.f64 (pow.f64 x 3) (pow.f64 (/.f64 x z) 3))) (neg.f64 (fma.f64 x x (*.f64 (/.f64 x z) (+.f64 x (/.f64 x z))))))
(/.f64 (neg.f64 (-.f64 (*.f64 x x) (pow.f64 (/.f64 x z) 2))) (neg.f64 (+.f64 x (/.f64 x z))))
(/.f64 (+.f64 (pow.f64 x 3) (pow.f64 (/.f64 (neg.f64 x) z) 3)) (+.f64 (*.f64 x x) (-.f64 (*.f64 (/.f64 (neg.f64 x) z) (/.f64 (neg.f64 x) z)) (*.f64 x (/.f64 (neg.f64 x) z)))))
(/.f64 (-.f64 (*.f64 x x) (*.f64 (/.f64 (neg.f64 x) z) (/.f64 (neg.f64 x) z))) (-.f64 x (/.f64 (neg.f64 x) z)))
(pow.f64 (-.f64 x (/.f64 x z)) 1)
(pow.f64 (cbrt.f64 (-.f64 x (/.f64 x z))) 3)
(pow.f64 (pow.f64 (-.f64 x (/.f64 x z)) 3) 1/3)
(pow.f64 (sqrt.f64 (-.f64 x (/.f64 x z))) 2)
(sqrt.f64 (pow.f64 (-.f64 x (/.f64 x z)) 2))
(log.f64 (exp.f64 (-.f64 x (/.f64 x z))))
(cbrt.f64 (pow.f64 (-.f64 x (/.f64 x z)) 3))
(expm1.f64 (log1p.f64 (-.f64 x (/.f64 x z))))
(exp.f64 (log.f64 (-.f64 x (/.f64 x z))))
(log1p.f64 (expm1.f64 (-.f64 x (/.f64 x z))))
(fma.f64 1 x (/.f64 (neg.f64 x) z))
(fma.f64 (pow.f64 (cbrt.f64 x) 2) (cbrt.f64 x) (/.f64 (neg.f64 x) z))
(fma.f64 (sqrt.f64 x) (sqrt.f64 x) (/.f64 (neg.f64 x) z))

simplify63.0ms (2.4%)

Algorithm
egg-herbie
Rules
1844×div-sub
908×fma-def
820×fma-neg
376×log-prod
368×associate-/l*
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01091496
12871154
210251034
345771034
Stop Event
node limit
Counts
60 → 47
Calls
Call 1
Inputs
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(*.f64 -1 (*.f64 (-.f64 (/.f64 1 z) 1) x))
(*.f64 -1 (*.f64 (-.f64 (/.f64 1 z) 1) x))
(*.f64 -1 (*.f64 (-.f64 (/.f64 1 z) 1) x))
(*.f64 -1 (*.f64 (-.f64 (/.f64 1 z) 1) x))
(*.f64 -1 (/.f64 x z))
(+.f64 (*.f64 -1 (/.f64 x z)) x)
(+.f64 (*.f64 -1 (/.f64 x z)) x)
(+.f64 (*.f64 -1 (/.f64 x z)) x)
x
(+.f64 (*.f64 -1 (/.f64 x z)) x)
(+.f64 (*.f64 -1 (/.f64 x z)) x)
(+.f64 (*.f64 -1 (/.f64 x z)) x)
x
(+.f64 (*.f64 -1 (/.f64 x z)) x)
(+.f64 (*.f64 -1 (/.f64 x z)) x)
(+.f64 (*.f64 -1 (/.f64 x z)) x)
(+.f64 x (/.f64 (neg.f64 x) z))
(+.f64 x (*.f64 (/.f64 (neg.f64 x) z) 1))
(+.f64 (-.f64 x (/.f64 x z)) (fma.f64 (neg.f64 (/.f64 1 z)) x (/.f64 x z)))
(+.f64 (-.f64 x (/.f64 x z)) (fma.f64 (/.f64 (neg.f64 x) z) 1 (/.f64 x z)))
(+.f64 (-.f64 x (/.f64 x z)) (fma.f64 (neg.f64 (cbrt.f64 (/.f64 x z))) (pow.f64 (cbrt.f64 (/.f64 x z)) 2) (/.f64 x z)))
(+.f64 (-.f64 x (/.f64 x z)) (fma.f64 (neg.f64 (sqrt.f64 (/.f64 x z))) (sqrt.f64 (/.f64 x z)) (/.f64 x z)))
(+.f64 (/.f64 (neg.f64 x) z) x)
(*.f64 (-.f64 x (/.f64 x z)) 1)
(*.f64 1 (-.f64 x (/.f64 x z)))
(*.f64 (cbrt.f64 (-.f64 x (/.f64 x z))) (pow.f64 (cbrt.f64 (-.f64 x (/.f64 x z))) 2))
(*.f64 (pow.f64 (cbrt.f64 (-.f64 x (/.f64 x z))) 2) (cbrt.f64 (-.f64 x (/.f64 x z))))
(*.f64 (sqrt.f64 (-.f64 x (/.f64 x z))) (sqrt.f64 (-.f64 x (/.f64 x z))))
(*.f64 (-.f64 (pow.f64 x 3) (pow.f64 (/.f64 x z) 3)) (/.f64 1 (fma.f64 x x (*.f64 (/.f64 x z) (+.f64 x (/.f64 x z))))))
(*.f64 (-.f64 (*.f64 x x) (pow.f64 (/.f64 x z) 2)) (/.f64 1 (+.f64 x (/.f64 x z))))
(*.f64 (+.f64 (sqrt.f64 x) (sqrt.f64 (/.f64 x z))) (-.f64 (sqrt.f64 x) (sqrt.f64 (/.f64 x z))))
(/.f64 1 (/.f64 (fma.f64 x x (*.f64 (/.f64 x z) (+.f64 x (/.f64 x z)))) (-.f64 (pow.f64 x 3) (pow.f64 (/.f64 x z) 3))))
(/.f64 1 (/.f64 (+.f64 x (/.f64 x z)) (-.f64 (*.f64 x x) (pow.f64 (/.f64 x z) 2))))
(/.f64 (-.f64 (pow.f64 x 3) (pow.f64 (/.f64 x z) 3)) (fma.f64 x x (*.f64 (/.f64 x z) (+.f64 x (/.f64 x z)))))
(/.f64 (-.f64 (*.f64 x x) (pow.f64 (/.f64 x z) 2)) (+.f64 x (/.f64 x z)))
(/.f64 (neg.f64 (-.f64 (pow.f64 x 3) (pow.f64 (/.f64 x z) 3))) (neg.f64 (fma.f64 x x (*.f64 (/.f64 x z) (+.f64 x (/.f64 x z))))))
(/.f64 (neg.f64 (-.f64 (*.f64 x x) (pow.f64 (/.f64 x z) 2))) (neg.f64 (+.f64 x (/.f64 x z))))
(/.f64 (+.f64 (pow.f64 x 3) (pow.f64 (/.f64 (neg.f64 x) z) 3)) (+.f64 (*.f64 x x) (-.f64 (*.f64 (/.f64 (neg.f64 x) z) (/.f64 (neg.f64 x) z)) (*.f64 x (/.f64 (neg.f64 x) z)))))
(/.f64 (-.f64 (*.f64 x x) (*.f64 (/.f64 (neg.f64 x) z) (/.f64 (neg.f64 x) z))) (-.f64 x (/.f64 (neg.f64 x) z)))
(pow.f64 (-.f64 x (/.f64 x z)) 1)
(pow.f64 (cbrt.f64 (-.f64 x (/.f64 x z))) 3)
(pow.f64 (pow.f64 (-.f64 x (/.f64 x z)) 3) 1/3)
(pow.f64 (sqrt.f64 (-.f64 x (/.f64 x z))) 2)
(sqrt.f64 (pow.f64 (-.f64 x (/.f64 x z)) 2))
(log.f64 (exp.f64 (-.f64 x (/.f64 x z))))
(cbrt.f64 (pow.f64 (-.f64 x (/.f64 x z)) 3))
(expm1.f64 (log1p.f64 (-.f64 x (/.f64 x z))))
(exp.f64 (log.f64 (-.f64 x (/.f64 x z))))
(log1p.f64 (expm1.f64 (-.f64 x (/.f64 x z))))
(fma.f64 1 x (/.f64 (neg.f64 x) z))
(fma.f64 (pow.f64 (cbrt.f64 x) 2) (cbrt.f64 x) (/.f64 (neg.f64 x) z))
(fma.f64 (sqrt.f64 x) (sqrt.f64 x) (/.f64 (neg.f64 x) z))
Outputs
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(*.f64 (+.f64 1 (/.f64 -1 z)) x)
(-.f64 x (/.f64 x z))
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(*.f64 (+.f64 1 (/.f64 -1 z)) x)
(-.f64 x (/.f64 x z))
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(*.f64 (+.f64 1 (/.f64 -1 z)) x)
(-.f64 x (/.f64 x z))
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(*.f64 (+.f64 1 (/.f64 -1 z)) x)
(-.f64 x (/.f64 x z))
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(*.f64 (+.f64 1 (/.f64 -1 z)) x)
(-.f64 x (/.f64 x z))
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(*.f64 (+.f64 1 (/.f64 -1 z)) x)
(-.f64 x (/.f64 x z))
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(*.f64 (+.f64 1 (/.f64 -1 z)) x)
(-.f64 x (/.f64 x z))
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(*.f64 (+.f64 1 (/.f64 -1 z)) x)
(-.f64 x (/.f64 x z))
(*.f64 -1 (*.f64 (-.f64 (/.f64 1 z) 1) x))
(*.f64 (+.f64 1 (/.f64 -1 z)) x)
(-.f64 x (/.f64 x z))
(*.f64 -1 (*.f64 (-.f64 (/.f64 1 z) 1) x))
(*.f64 (+.f64 1 (/.f64 -1 z)) x)
(-.f64 x (/.f64 x z))
(*.f64 -1 (*.f64 (-.f64 (/.f64 1 z) 1) x))
(*.f64 (+.f64 1 (/.f64 -1 z)) x)
(-.f64 x (/.f64 x z))
(*.f64 -1 (*.f64 (-.f64 (/.f64 1 z) 1) x))
(*.f64 (+.f64 1 (/.f64 -1 z)) x)
(-.f64 x (/.f64 x z))
(*.f64 -1 (/.f64 x z))
(/.f64 (neg.f64 x) z)
(+.f64 (*.f64 -1 (/.f64 x z)) x)
(*.f64 (+.f64 1 (/.f64 -1 z)) x)
(-.f64 x (/.f64 x z))
(+.f64 (*.f64 -1 (/.f64 x z)) x)
(*.f64 (+.f64 1 (/.f64 -1 z)) x)
(-.f64 x (/.f64 x z))
(+.f64 (*.f64 -1 (/.f64 x z)) x)
(*.f64 (+.f64 1 (/.f64 -1 z)) x)
(-.f64 x (/.f64 x z))
x
(+.f64 (*.f64 -1 (/.f64 x z)) x)
(*.f64 (+.f64 1 (/.f64 -1 z)) x)
(-.f64 x (/.f64 x z))
(+.f64 (*.f64 -1 (/.f64 x z)) x)
(*.f64 (+.f64 1 (/.f64 -1 z)) x)
(-.f64 x (/.f64 x z))
(+.f64 (*.f64 -1 (/.f64 x z)) x)
(*.f64 (+.f64 1 (/.f64 -1 z)) x)
(-.f64 x (/.f64 x z))
x
(+.f64 (*.f64 -1 (/.f64 x z)) x)
(*.f64 (+.f64 1 (/.f64 -1 z)) x)
(-.f64 x (/.f64 x z))
(+.f64 (*.f64 -1 (/.f64 x z)) x)
(*.f64 (+.f64 1 (/.f64 -1 z)) x)
(-.f64 x (/.f64 x z))
(+.f64 (*.f64 -1 (/.f64 x z)) x)
(*.f64 (+.f64 1 (/.f64 -1 z)) x)
(-.f64 x (/.f64 x z))
(+.f64 x (/.f64 (neg.f64 x) z))
(*.f64 (+.f64 1 (/.f64 -1 z)) x)
(-.f64 x (/.f64 x z))
(+.f64 x (*.f64 (/.f64 (neg.f64 x) z) 1))
(*.f64 (+.f64 1 (/.f64 -1 z)) x)
(-.f64 x (/.f64 x z))
(+.f64 (-.f64 x (/.f64 x z)) (fma.f64 (neg.f64 (/.f64 1 z)) x (/.f64 x z)))
(*.f64 (+.f64 1 (/.f64 -1 z)) x)
(-.f64 x (/.f64 x z))
(+.f64 (-.f64 x (/.f64 x z)) (fma.f64 (/.f64 (neg.f64 x) z) 1 (/.f64 x z)))
(*.f64 (+.f64 1 (/.f64 -1 z)) x)
(-.f64 x (/.f64 x z))
(+.f64 (-.f64 x (/.f64 x z)) (fma.f64 (neg.f64 (cbrt.f64 (/.f64 x z))) (pow.f64 (cbrt.f64 (/.f64 x z)) 2) (/.f64 x z)))
(*.f64 (+.f64 1 (/.f64 -1 z)) x)
(-.f64 x (/.f64 x z))
(+.f64 (-.f64 x (/.f64 x z)) (fma.f64 (neg.f64 (sqrt.f64 (/.f64 x z))) (sqrt.f64 (/.f64 x z)) (/.f64 x z)))
(*.f64 (+.f64 1 (/.f64 -1 z)) x)
(-.f64 x (/.f64 x z))
(+.f64 (/.f64 (neg.f64 x) z) x)
(*.f64 (+.f64 1 (/.f64 -1 z)) x)
(-.f64 x (/.f64 x z))
(*.f64 (-.f64 x (/.f64 x z)) 1)
(*.f64 (+.f64 1 (/.f64 -1 z)) x)
(-.f64 x (/.f64 x z))
(*.f64 1 (-.f64 x (/.f64 x z)))
(*.f64 (+.f64 1 (/.f64 -1 z)) x)
(-.f64 x (/.f64 x z))
(*.f64 (cbrt.f64 (-.f64 x (/.f64 x z))) (pow.f64 (cbrt.f64 (-.f64 x (/.f64 x z))) 2))
(*.f64 (+.f64 1 (/.f64 -1 z)) x)
(-.f64 x (/.f64 x z))
(*.f64 (pow.f64 (cbrt.f64 (-.f64 x (/.f64 x z))) 2) (cbrt.f64 (-.f64 x (/.f64 x z))))
(*.f64 (+.f64 1 (/.f64 -1 z)) x)
(-.f64 x (/.f64 x z))
(*.f64 (sqrt.f64 (-.f64 x (/.f64 x z))) (sqrt.f64 (-.f64 x (/.f64 x z))))
(*.f64 (+.f64 1 (/.f64 -1 z)) x)
(-.f64 x (/.f64 x z))
(*.f64 (-.f64 (pow.f64 x 3) (pow.f64 (/.f64 x z) 3)) (/.f64 1 (fma.f64 x x (*.f64 (/.f64 x z) (+.f64 x (/.f64 x z))))))
(/.f64 (*.f64 (-.f64 (pow.f64 x 3) (pow.f64 (/.f64 x z) 3)) 1) (fma.f64 x x (*.f64 (/.f64 x z) (+.f64 x (/.f64 x z)))))
(/.f64 (-.f64 (pow.f64 x 3) (pow.f64 (/.f64 x z) 3)) (fma.f64 x x (*.f64 (/.f64 x z) (+.f64 x (/.f64 x z)))))
(/.f64 (-.f64 (pow.f64 x 3) (pow.f64 (/.f64 x z) 3)) (fma.f64 x (+.f64 x (/.f64 x z)) (pow.f64 (/.f64 x z) 2)))
(*.f64 (-.f64 (*.f64 x x) (pow.f64 (/.f64 x z) 2)) (/.f64 1 (+.f64 x (/.f64 x z))))
(/.f64 (-.f64 (*.f64 x x) (pow.f64 (/.f64 x z) 2)) (+.f64 x (/.f64 x z)))
(/.f64 (-.f64 (/.f64 x z) x) -1)
(*.f64 (+.f64 (sqrt.f64 x) (sqrt.f64 (/.f64 x z))) (-.f64 (sqrt.f64 x) (sqrt.f64 (/.f64 x z))))
(*.f64 (+.f64 1 (/.f64 -1 z)) x)
(-.f64 x (/.f64 x z))
(/.f64 1 (/.f64 (fma.f64 x x (*.f64 (/.f64 x z) (+.f64 x (/.f64 x z)))) (-.f64 (pow.f64 x 3) (pow.f64 (/.f64 x z) 3))))
(/.f64 (*.f64 (-.f64 (pow.f64 x 3) (pow.f64 (/.f64 x z) 3)) 1) (fma.f64 x x (*.f64 (/.f64 x z) (+.f64 x (/.f64 x z)))))
(/.f64 (-.f64 (pow.f64 x 3) (pow.f64 (/.f64 x z) 3)) (fma.f64 x x (*.f64 (/.f64 x z) (+.f64 x (/.f64 x z)))))
(/.f64 (-.f64 (pow.f64 x 3) (pow.f64 (/.f64 x z) 3)) (fma.f64 x (+.f64 x (/.f64 x z)) (pow.f64 (/.f64 x z) 2)))
(/.f64 1 (/.f64 (+.f64 x (/.f64 x z)) (-.f64 (*.f64 x x) (pow.f64 (/.f64 x z) 2))))
(*.f64 (-.f64 (*.f64 x x) (pow.f64 (/.f64 x z) 2)) (/.f64 1 (+.f64 x (/.f64 x z))))
(/.f64 (-.f64 (*.f64 x x) (pow.f64 (/.f64 x z) 2)) (+.f64 x (/.f64 x z)))
(/.f64 (-.f64 (/.f64 x z) x) -1)
(/.f64 (-.f64 (pow.f64 x 3) (pow.f64 (/.f64 x z) 3)) (fma.f64 x x (*.f64 (/.f64 x z) (+.f64 x (/.f64 x z)))))
(/.f64 (*.f64 (-.f64 (pow.f64 x 3) (pow.f64 (/.f64 x z) 3)) 1) (fma.f64 x x (*.f64 (/.f64 x z) (+.f64 x (/.f64 x z)))))
(/.f64 (-.f64 (pow.f64 x 3) (pow.f64 (/.f64 x z) 3)) (fma.f64 x (+.f64 x (/.f64 x z)) (pow.f64 (/.f64 x z) 2)))
(/.f64 (-.f64 (*.f64 x x) (pow.f64 (/.f64 x z) 2)) (+.f64 x (/.f64 x z)))
(*.f64 (-.f64 (*.f64 x x) (pow.f64 (/.f64 x z) 2)) (/.f64 1 (+.f64 x (/.f64 x z))))
(/.f64 (-.f64 (/.f64 x z) x) -1)
(/.f64 (neg.f64 (-.f64 (pow.f64 x 3) (pow.f64 (/.f64 x z) 3))) (neg.f64 (fma.f64 x x (*.f64 (/.f64 x z) (+.f64 x (/.f64 x z))))))
(/.f64 (*.f64 (-.f64 (pow.f64 x 3) (pow.f64 (/.f64 x z) 3)) 1) (fma.f64 x x (*.f64 (/.f64 x z) (+.f64 x (/.f64 x z)))))
(/.f64 (-.f64 (pow.f64 x 3) (pow.f64 (/.f64 x z) 3)) (fma.f64 x x (*.f64 (/.f64 x z) (+.f64 x (/.f64 x z)))))
(/.f64 (-.f64 (pow.f64 x 3) (pow.f64 (/.f64 x z) 3)) (fma.f64 x (+.f64 x (/.f64 x z)) (pow.f64 (/.f64 x z) 2)))
(/.f64 (neg.f64 (-.f64 (*.f64 x x) (pow.f64 (/.f64 x z) 2))) (neg.f64 (+.f64 x (/.f64 x z))))
(*.f64 (-.f64 (*.f64 x x) (pow.f64 (/.f64 x z) 2)) (/.f64 1 (+.f64 x (/.f64 x z))))
(/.f64 (-.f64 (*.f64 x x) (pow.f64 (/.f64 x z) 2)) (+.f64 x (/.f64 x z)))
(/.f64 (-.f64 (/.f64 x z) x) -1)
(/.f64 (+.f64 (pow.f64 x 3) (pow.f64 (/.f64 (neg.f64 x) z) 3)) (+.f64 (*.f64 x x) (-.f64 (*.f64 (/.f64 (neg.f64 x) z) (/.f64 (neg.f64 x) z)) (*.f64 x (/.f64 (neg.f64 x) z)))))
(/.f64 (*.f64 (-.f64 (pow.f64 x 3) (pow.f64 (/.f64 x z) 3)) 1) (fma.f64 x x (*.f64 (/.f64 x z) (+.f64 x (/.f64 x z)))))
(/.f64 (-.f64 (pow.f64 x 3) (pow.f64 (/.f64 x z) 3)) (fma.f64 x x (*.f64 (/.f64 x z) (+.f64 x (/.f64 x z)))))
(/.f64 (-.f64 (pow.f64 x 3) (pow.f64 (/.f64 x z) 3)) (fma.f64 x (+.f64 x (/.f64 x z)) (pow.f64 (/.f64 x z) 2)))
(/.f64 (-.f64 (*.f64 x x) (*.f64 (/.f64 (neg.f64 x) z) (/.f64 (neg.f64 x) z))) (-.f64 x (/.f64 (neg.f64 x) z)))
(*.f64 (-.f64 (*.f64 x x) (pow.f64 (/.f64 x z) 2)) (/.f64 1 (+.f64 x (/.f64 x z))))
(/.f64 (-.f64 (*.f64 x x) (pow.f64 (/.f64 x z) 2)) (+.f64 x (/.f64 x z)))
(/.f64 (-.f64 (/.f64 x z) x) -1)
(pow.f64 (-.f64 x (/.f64 x z)) 1)
(*.f64 (+.f64 1 (/.f64 -1 z)) x)
(-.f64 x (/.f64 x z))
(pow.f64 (cbrt.f64 (-.f64 x (/.f64 x z))) 3)
(*.f64 (+.f64 1 (/.f64 -1 z)) x)
(-.f64 x (/.f64 x z))
(pow.f64 (pow.f64 (-.f64 x (/.f64 x z)) 3) 1/3)
(*.f64 (+.f64 1 (/.f64 -1 z)) x)
(-.f64 x (/.f64 x z))
(pow.f64 (sqrt.f64 (-.f64 x (/.f64 x z))) 2)
(*.f64 (+.f64 1 (/.f64 -1 z)) x)
(-.f64 x (/.f64 x z))
(sqrt.f64 (pow.f64 (-.f64 x (/.f64 x z)) 2))
(*.f64 (+.f64 1 (/.f64 -1 z)) x)
(-.f64 x (/.f64 x z))
(log.f64 (exp.f64 (-.f64 x (/.f64 x z))))
(*.f64 (+.f64 1 (/.f64 -1 z)) x)
(-.f64 x (/.f64 x z))
(cbrt.f64 (pow.f64 (-.f64 x (/.f64 x z)) 3))
(*.f64 (+.f64 1 (/.f64 -1 z)) x)
(-.f64 x (/.f64 x z))
(expm1.f64 (log1p.f64 (-.f64 x (/.f64 x z))))
(*.f64 (+.f64 1 (/.f64 -1 z)) x)
(-.f64 x (/.f64 x z))
(exp.f64 (log.f64 (-.f64 x (/.f64 x z))))
(*.f64 (+.f64 1 (/.f64 -1 z)) x)
(-.f64 x (/.f64 x z))
(log1p.f64 (expm1.f64 (-.f64 x (/.f64 x z))))
(*.f64 (+.f64 1 (/.f64 -1 z)) x)
(-.f64 x (/.f64 x z))
(fma.f64 1 x (/.f64 (neg.f64 x) z))
(*.f64 (+.f64 1 (/.f64 -1 z)) x)
(-.f64 x (/.f64 x z))
(fma.f64 (pow.f64 (cbrt.f64 x) 2) (cbrt.f64 x) (/.f64 (neg.f64 x) z))
(*.f64 (+.f64 1 (/.f64 -1 z)) x)
(-.f64 x (/.f64 x z))
(fma.f64 (sqrt.f64 x) (sqrt.f64 x) (/.f64 (neg.f64 x) z))
(*.f64 (+.f64 1 (/.f64 -1 z)) x)
(-.f64 x (/.f64 x z))

eval8.0ms (0.3%)

Compiler

Compiled 577 to 189 computations (67.2% saved)

prune17.0ms (0.7%)

Pruning

5 alts after pruning (1 fresh and 4 done)

PrunedKeptTotal
New47047
Fresh011
Picked022
Done022
Total47552
Accurracy
100.0%
Counts
52 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
30.8%
(/.f64 (neg.f64 x) z)
66.0%
(-.f64 x (/.f64 x z))
100.0%
(+.f64 x (/.f64 (-.f64 y x) z))
74.5%
(+.f64 x (/.f64 y z))
37.1%
x
30.8%
(/.f64 (neg.f64 x) z)
66.0%
(-.f64 x (/.f64 x z))
100.0%
(+.f64 x (/.f64 (-.f64 y x) z))
74.5%
(+.f64 x (/.f64 y z))
37.1%
x
Compiler

Compiled 74 to 48 computations (35.1% saved)

localize0.0ms (0%)

eval0.0ms (0%)

Compiler

Compiled 3 to 3 computations (0% saved)

prune5.0ms (0.2%)

Pruning

5 alts after pruning (1 fresh and 4 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done044
Total055
Accurracy
100.0%
Counts
5 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
30.8%
(/.f64 (neg.f64 x) z)
66.0%
(-.f64 x (/.f64 x z))
100.0%
(+.f64 x (/.f64 (-.f64 y x) z))
74.5%
(+.f64 x (/.f64 y z))
37.1%
x
Compiler

Compiled 68 to 37 computations (45.6% saved)

regimes20.0ms (0.7%)

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

4 calls:

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

Compiled 53 to 28 computations (47.2% saved)

regimes95.0ms (3.6%)

Counts
5 → 3
Calls
Call 1
Inputs
x
(/.f64 (neg.f64 x) z)
(+.f64 x (/.f64 y z))
(-.f64 x (/.f64 x z))
(+.f64 x (/.f64 (neg.f64 x) z))
Outputs
(-.f64 x (/.f64 x z))
(+.f64 x (/.f64 y z))
(-.f64 x (/.f64 x z))
Calls

3 calls:

58.0ms
z
24.0ms
x
11.0ms
y
Results
AccuracySegmentsBranch
91.3%3x
87.1%3y
84.1%3z
Compiler

Compiled 36 to 19 computations (47.2% saved)

regimes28.0ms (1.1%)

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

3 calls:

13.0ms
x
10.0ms
z
3.0ms
y
Results
AccuracySegmentsBranch
84.1%3z
74.5%1y
78.4%3x
Compiler

Compiled 25 to 16 computations (36% saved)

regimes61.0ms (2.3%)

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

3 calls:

37.0ms
y
15.0ms
x
8.0ms
z
Results
AccuracySegmentsBranch
39.8%2y
44.8%5x
64.6%3z
Compiler

Compiled 20 to 14 computations (30% saved)

regimes8.0ms (0.3%)

Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0b (-0%)

Counts
1 → 1
Calls
Call 1
Inputs
x
Outputs
x
Calls

3 calls:

2.0ms
z
2.0ms
x
2.0ms
y
Results
AccuracySegmentsBranch
37.1%1y
37.1%1x
37.1%1z
Compiler

Compiled 16 to 12 computations (25% saved)

bsearch23.0ms (0.9%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
14.0ms
3.27918361959841e-21
2.6004425545312453e-12
8.0ms
-4.385663429460319e-93
-1.5264796437206193e-93
Results
18.0ms204×body256valid
2.0ms20×body256infinite
Compiler

Compiled 268 to 179 computations (33.2% saved)

bsearch21.0ms (0.8%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
15.0ms
8.132389886697672e-43
2.8858285555301206e-29
5.0ms
-1.324690763266446e-134
-9.445056101952004e-135
Results
15.0ms168×body256valid
3.0ms40×body256infinite
Compiler

Compiled 237 to 167 computations (29.5% saved)

bsearch29.0ms (1.1%)

Algorithm
binary-search
Stop Event
narrow-enough
narrow-enough
Steps
TimeLeftRight
14.0ms
9.185618283800744e-11
0.00012236057810039076
15.0ms
-0.901313066459798
-3.5359944299635075e-8
Results
26.0ms281×body256valid
1.0msbody256infinite
Compiler

Compiled 250 to 191 computations (23.6% saved)

simplify10.0ms (0.4%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
036151
157151
263151
366151
467151
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(+.f64 x (/.f64 (-.f64 y x) z))
(if (<=.f64 x -2465969711912525/587135645693458306972370149197334256843920637227079967676822742883052256278652110865924749596192175757983744) (-.f64 x (/.f64 x z)) (if (<=.f64 x 713053462628379/9903520314283042199192993792) (+.f64 x (/.f64 y z)) (-.f64 x (/.f64 x z))))
(if (<=.f64 z -2148162586431843/204586912993508866875824356051724947013540127877691549342705710506008362275292159680204380770369009821930417757972504438076078534117837065833032974336) (+.f64 x (/.f64 y z)) (if (<=.f64 z 1309505467048489/748288838313422294120286634350736906063837462003712) (/.f64 (neg.f64 x) z) (+.f64 x (/.f64 y z))))
(if (<=.f64 z -8106479329266893/9007199254740992) x (if (<=.f64 z 8854437155380585/73786976294838206464) (/.f64 (neg.f64 x) z) x))
x
Outputs
(+.f64 x (/.f64 (-.f64 y x) z))
(if (<=.f64 x -2465969711912525/587135645693458306972370149197334256843920637227079967676822742883052256278652110865924749596192175757983744) (-.f64 x (/.f64 x z)) (if (<=.f64 x 713053462628379/9903520314283042199192993792) (+.f64 x (/.f64 y z)) (-.f64 x (/.f64 x z))))
(if (or (<=.f64 x -2465969711912525/587135645693458306972370149197334256843920637227079967676822742883052256278652110865924749596192175757983744) (not (<=.f64 x 713053462628379/9903520314283042199192993792))) (-.f64 x (/.f64 x z)) (+.f64 x (/.f64 y z)))
(if (<=.f64 z -2148162586431843/204586912993508866875824356051724947013540127877691549342705710506008362275292159680204380770369009821930417757972504438076078534117837065833032974336) (+.f64 x (/.f64 y z)) (if (<=.f64 z 1309505467048489/748288838313422294120286634350736906063837462003712) (/.f64 (neg.f64 x) z) (+.f64 x (/.f64 y z))))
(if (or (<=.f64 z -2148162586431843/204586912993508866875824356051724947013540127877691549342705710506008362275292159680204380770369009821930417757972504438076078534117837065833032974336) (not (<=.f64 z 1309505467048489/748288838313422294120286634350736906063837462003712))) (+.f64 x (/.f64 y z)) (/.f64 (neg.f64 x) z))
(if (<=.f64 z -8106479329266893/9007199254740992) x (if (<=.f64 z 8854437155380585/73786976294838206464) (/.f64 (neg.f64 x) z) x))
x
Compiler

Compiled 74 to 48 computations (35.1% saved)

soundness247.0ms (9.4%)

Rules
1536×fma-def
1100×fma-neg
1100×fma-neg
944×associate-*r*
944×associate-*r*
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
093772
1228772
2793772
34575772
01001641
12421409
29151161
363271161
01001641
12421409
29151161
363271161
Stop Event
node limit
node limit
node limit
Compiler

Compiled 83 to 50 computations (39.8% saved)

end0.0ms (0%)

preprocess46.0ms (1.8%)

Compiler

Compiled 144 to 76 computations (47.2% saved)

Profiling

Loading profile data...