Details

Time bar (total: 2.9s)

analyze120.0ms (4.1%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%100%0%0%0%0%0
0%0%100%0%0%0%0%1
0%0%100%0%0%0%0%2
50%50%50%0%0%0%0%3
50%50%50%0%0%0%0%4
50%50%50%0%0%0%0%5
53.1%53.1%46.9%0%0%0%0%6
54.7%54.7%45.3%0%0%0%0%7
55.5%55.4%44.5%0%0%0%0%8
55.9%55.8%44.1%0%0%0%0%9
56.1%56%43.9%0%0%0%0%10
56.2%56.1%43.8%0%0%0%0%11
56.2%56.2%43.8%0%0%0%0%12
Compiler

Compiled 14 to 12 computations (14.3% saved)

sample2.4s (81.2%)

Results
944.0ms2688×body1024valid
559.0ms3884×body256valid
391.0ms1376×body512valid
344.0ms2532×body256unsamplable
134.0ms267×body2048valid
4.0ms41×body256infinite
Bogosity

preprocess44.0ms (1.5%)

Algorithm
egg-herbie
Rules
1382×associate-*r*
1260×associate-/l*
1064×associate-/r*
1038×associate-*l*
904×fma-def
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01325
12725
23625
36225
413021
535215
6135115
011
Stop Event
saturated
node limit
Calls
Call 1
Inputs
0
Outputs
0
Call 2
Inputs
(sqrt.f64 (/.f64 (-.f64 (exp.f64 (*.f64 2 x)) 1) (-.f64 (exp.f64 x) 1)))
Outputs
(sqrt.f64 (/.f64 (-.f64 (exp.f64 (*.f64 2 x)) 1) (-.f64 (exp.f64 x) 1)))
(sqrt.f64 (/.f64 (expm1.f64 (*.f64 2 x)) (expm1.f64 x)))
(sqrt.f64 (/.f64 (expm1.f64 (+.f64 x x)) (expm1.f64 x)))
(sqrt.f64 (/.f64 (+.f64 1 (exp.f64 x)) 1))
(sqrt.f64 (+.f64 1 (exp.f64 x)))
Compiler

Compiled 14 to 12 computations (14.3% saved)

simplify37.0ms (1.2%)

Algorithm
egg-herbie
Rules
1382×associate-*r*
1260×associate-/l*
1064×associate-/r*
1038×associate-*l*
904×fma-def
Iterations

Useful iterations: 5 (0.0ms)

IterNodesCost
01325
12725
23625
36225
413021
535215
6135115
Stop Event
node limit
Counts
1 → 5
Calls
Call 1
Inputs
(sqrt.f64 (/.f64 (-.f64 (exp.f64 (*.f64 2 x)) 1) (-.f64 (exp.f64 x) 1)))
Outputs
(sqrt.f64 (/.f64 (-.f64 (exp.f64 (*.f64 2 x)) 1) (-.f64 (exp.f64 x) 1)))
(sqrt.f64 (/.f64 (expm1.f64 (*.f64 2 x)) (expm1.f64 x)))
(sqrt.f64 (/.f64 (expm1.f64 (+.f64 x x)) (expm1.f64 x)))
(sqrt.f64 (/.f64 (+.f64 1 (exp.f64 x)) 1))
(sqrt.f64 (+.f64 1 (exp.f64 x)))

eval1.0ms (0%)

Compiler

Compiled 41 to 29 computations (29.3% saved)

prune1.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New415
Fresh101
Picked000
Done000
Total516
Accurracy
100.0%
Counts
6 → 1
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(sqrt.f64 (+.f64 1 (exp.f64 x)))
Compiler

Compiled 6 to 5 computations (16.7% saved)

localize6.0ms (0.2%)

Local Accuracy

Found 1 expressions with local accuracy:

NewAccuracyProgram
100.0%
(+.f64 1 (exp.f64 x))
Compiler

Compiled 14 to 8 computations (42.9% saved)

series0.0ms (0%)

Counts
1 → 4
Calls

3 calls:

TimeVariablePointExpression
0.0ms
x
@0
(+.f64 1 (exp.f64 x))
0.0ms
x
@-inf
(+.f64 1 (exp.f64 x))
0.0ms
x
@inf
(+.f64 1 (exp.f64 x))

rewrite56.0ms (1.9%)

Algorithm
batch-egg-rewrite
Rules
1302×pow1
1200×add-exp-log
1200×log1p-expm1-u
1200×expm1-log1p-u
1176×add-log-exp
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0711
113711
2164911
Stop Event
node limit
Counts
1 → 30
Calls
Call 1
Inputs
(+.f64 1 (exp.f64 x))
Outputs
(-.f64 (+.f64 1 (+.f64 1 (exp.f64 x))) 1)
(-.f64 (/.f64 1 (-.f64 1 (exp.f64 x))) (/.f64 (exp.f64 (+.f64 x x)) (-.f64 1 (exp.f64 x))))
(*.f64 1 (+.f64 1 (exp.f64 x)))
(*.f64 (+.f64 1 (exp.f64 x)) 1)
(*.f64 (cbrt.f64 (+.f64 1 (exp.f64 x))) (pow.f64 (cbrt.f64 (+.f64 1 (exp.f64 x))) 2))
(*.f64 (pow.f64 (cbrt.f64 (+.f64 1 (exp.f64 x))) 2) (cbrt.f64 (+.f64 1 (exp.f64 x))))
(*.f64 (sqrt.f64 (+.f64 1 (exp.f64 x))) (sqrt.f64 (+.f64 1 (exp.f64 x))))
(*.f64 (+.f64 1 (exp.f64 (*.f64 x 3))) (/.f64 1 (+.f64 1 (*.f64 (exp.f64 x) (expm1.f64 x)))))
(*.f64 (-.f64 1 (exp.f64 (+.f64 x x))) (/.f64 1 (-.f64 1 (exp.f64 x))))
(/.f64 1 (/.f64 (+.f64 1 (*.f64 (exp.f64 x) (expm1.f64 x))) (+.f64 1 (exp.f64 (*.f64 x 3)))))
(/.f64 1 (/.f64 (-.f64 1 (exp.f64 x)) (-.f64 1 (exp.f64 (+.f64 x x)))))
(/.f64 (+.f64 1 (exp.f64 (*.f64 x 3))) (+.f64 1 (*.f64 (exp.f64 x) (expm1.f64 x))))
(/.f64 (+.f64 1 (exp.f64 (*.f64 x 3))) (+.f64 (exp.f64 (+.f64 x x)) (-.f64 1 (exp.f64 x))))
(/.f64 (-.f64 1 (exp.f64 (+.f64 x x))) (-.f64 1 (exp.f64 x)))
(/.f64 (neg.f64 (+.f64 1 (exp.f64 (*.f64 x 3)))) (neg.f64 (+.f64 1 (*.f64 (exp.f64 x) (expm1.f64 x)))))
(/.f64 (neg.f64 (-.f64 1 (exp.f64 (+.f64 x x)))) (neg.f64 (-.f64 1 (exp.f64 x))))
(/.f64 (-.f64 (exp.f64 (+.f64 x x)) 1) (expm1.f64 x))
(pow.f64 (+.f64 1 (exp.f64 x)) 1)
(pow.f64 (cbrt.f64 (+.f64 1 (exp.f64 x))) 3)
(pow.f64 (pow.f64 (+.f64 1 (exp.f64 x)) 3) 1/3)
(pow.f64 (sqrt.f64 (+.f64 1 (exp.f64 x))) 2)
(sqrt.f64 (pow.f64 (+.f64 1 (exp.f64 x)) 2))
(log.f64 (exp.f64 (+.f64 1 (exp.f64 x))))
(cbrt.f64 (pow.f64 (+.f64 1 (exp.f64 x)) 3))
(expm1.f64 (log1p.f64 (+.f64 1 (exp.f64 x))))
(exp.f64 (log1p.f64 (exp.f64 x)))
(log1p.f64 (expm1.f64 (+.f64 1 (exp.f64 x))))
(fma.f64 1 (exp.f64 x) 1)
(fma.f64 (cbrt.f64 (exp.f64 (+.f64 x x))) (cbrt.f64 (exp.f64 x)) 1)
(fma.f64 (sqrt.f64 (exp.f64 x)) (sqrt.f64 (exp.f64 x)) 1)

simplify57.0ms (1.9%)

Algorithm
egg-herbie
Rules
1118×distribute-lft-in
1082×distribute-rgt-in
1000×times-frac
802×associate-/l*
516×associate-*r*
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
085840
1196790
2586616
32851592
Stop Event
node limit
Counts
34 → 51
Calls
Call 1
Inputs
2
(+.f64 2 x)
(+.f64 2 (+.f64 (*.f64 1/2 (pow.f64 x 2)) x))
(+.f64 (*.f64 1/6 (pow.f64 x 3)) (+.f64 2 (+.f64 (*.f64 1/2 (pow.f64 x 2)) x)))
(-.f64 (+.f64 1 (+.f64 1 (exp.f64 x))) 1)
(-.f64 (/.f64 1 (-.f64 1 (exp.f64 x))) (/.f64 (exp.f64 (+.f64 x x)) (-.f64 1 (exp.f64 x))))
(*.f64 1 (+.f64 1 (exp.f64 x)))
(*.f64 (+.f64 1 (exp.f64 x)) 1)
(*.f64 (cbrt.f64 (+.f64 1 (exp.f64 x))) (pow.f64 (cbrt.f64 (+.f64 1 (exp.f64 x))) 2))
(*.f64 (pow.f64 (cbrt.f64 (+.f64 1 (exp.f64 x))) 2) (cbrt.f64 (+.f64 1 (exp.f64 x))))
(*.f64 (sqrt.f64 (+.f64 1 (exp.f64 x))) (sqrt.f64 (+.f64 1 (exp.f64 x))))
(*.f64 (+.f64 1 (exp.f64 (*.f64 x 3))) (/.f64 1 (+.f64 1 (*.f64 (exp.f64 x) (expm1.f64 x)))))
(*.f64 (-.f64 1 (exp.f64 (+.f64 x x))) (/.f64 1 (-.f64 1 (exp.f64 x))))
(/.f64 1 (/.f64 (+.f64 1 (*.f64 (exp.f64 x) (expm1.f64 x))) (+.f64 1 (exp.f64 (*.f64 x 3)))))
(/.f64 1 (/.f64 (-.f64 1 (exp.f64 x)) (-.f64 1 (exp.f64 (+.f64 x x)))))
(/.f64 (+.f64 1 (exp.f64 (*.f64 x 3))) (+.f64 1 (*.f64 (exp.f64 x) (expm1.f64 x))))
(/.f64 (+.f64 1 (exp.f64 (*.f64 x 3))) (+.f64 (exp.f64 (+.f64 x x)) (-.f64 1 (exp.f64 x))))
(/.f64 (-.f64 1 (exp.f64 (+.f64 x x))) (-.f64 1 (exp.f64 x)))
(/.f64 (neg.f64 (+.f64 1 (exp.f64 (*.f64 x 3)))) (neg.f64 (+.f64 1 (*.f64 (exp.f64 x) (expm1.f64 x)))))
(/.f64 (neg.f64 (-.f64 1 (exp.f64 (+.f64 x x)))) (neg.f64 (-.f64 1 (exp.f64 x))))
(/.f64 (-.f64 (exp.f64 (+.f64 x x)) 1) (expm1.f64 x))
(pow.f64 (+.f64 1 (exp.f64 x)) 1)
(pow.f64 (cbrt.f64 (+.f64 1 (exp.f64 x))) 3)
(pow.f64 (pow.f64 (+.f64 1 (exp.f64 x)) 3) 1/3)
(pow.f64 (sqrt.f64 (+.f64 1 (exp.f64 x))) 2)
(sqrt.f64 (pow.f64 (+.f64 1 (exp.f64 x)) 2))
(log.f64 (exp.f64 (+.f64 1 (exp.f64 x))))
(cbrt.f64 (pow.f64 (+.f64 1 (exp.f64 x)) 3))
(expm1.f64 (log1p.f64 (+.f64 1 (exp.f64 x))))
(exp.f64 (log1p.f64 (exp.f64 x)))
(log1p.f64 (expm1.f64 (+.f64 1 (exp.f64 x))))
(fma.f64 1 (exp.f64 x) 1)
(fma.f64 (cbrt.f64 (exp.f64 (+.f64 x x))) (cbrt.f64 (exp.f64 x)) 1)
(fma.f64 (sqrt.f64 (exp.f64 x)) (sqrt.f64 (exp.f64 x)) 1)
Outputs
2
(+.f64 2 x)
(+.f64 2 (+.f64 (*.f64 1/2 (pow.f64 x 2)) x))
(+.f64 2 (fma.f64 1/2 (*.f64 x x) x))
(+.f64 2 (fma.f64 x (*.f64 x 1/2) x))
(+.f64 (*.f64 1/6 (pow.f64 x 3)) (+.f64 2 (+.f64 (*.f64 1/2 (pow.f64 x 2)) x)))
(fma.f64 1/6 (pow.f64 x 3) (+.f64 2 (fma.f64 1/2 (*.f64 x x) x)))
(+.f64 (fma.f64 1/2 (*.f64 x x) x) (fma.f64 1/6 (pow.f64 x 3) 2))
(+.f64 x (fma.f64 1/6 (pow.f64 x 3) (fma.f64 x (*.f64 x 1/2) 2)))
(+.f64 x (fma.f64 1/6 (pow.f64 x 3) (fma.f64 1/2 (*.f64 x x) 2)))
(-.f64 (+.f64 1 (+.f64 1 (exp.f64 x))) 1)
(+.f64 (+.f64 2 (exp.f64 x)) -1)
(+.f64 2 (-.f64 (exp.f64 x) 1))
(+.f64 2 (expm1.f64 x))
(-.f64 (/.f64 1 (-.f64 1 (exp.f64 x))) (/.f64 (exp.f64 (+.f64 x x)) (-.f64 1 (exp.f64 x))))
(/.f64 (-.f64 1 (exp.f64 (+.f64 x x))) (-.f64 1 (exp.f64 x)))
(/.f64 (-.f64 1 (pow.f64 (exp.f64 2) x)) (-.f64 1 (exp.f64 x)))
(/.f64 (expm1.f64 (+.f64 x x)) (expm1.f64 x))
(/.f64 (+.f64 2 (expm1.f64 x)) 1)
(*.f64 1 (+.f64 1 (exp.f64 x)))
(+.f64 (+.f64 2 (exp.f64 x)) -1)
(+.f64 2 (-.f64 (exp.f64 x) 1))
(+.f64 2 (expm1.f64 x))
(*.f64 (+.f64 1 (exp.f64 x)) 1)
(+.f64 (+.f64 2 (exp.f64 x)) -1)
(+.f64 2 (-.f64 (exp.f64 x) 1))
(+.f64 2 (expm1.f64 x))
(*.f64 (cbrt.f64 (+.f64 1 (exp.f64 x))) (pow.f64 (cbrt.f64 (+.f64 1 (exp.f64 x))) 2))
(+.f64 (+.f64 2 (exp.f64 x)) -1)
(+.f64 2 (-.f64 (exp.f64 x) 1))
(+.f64 2 (expm1.f64 x))
(*.f64 (pow.f64 (cbrt.f64 (+.f64 1 (exp.f64 x))) 2) (cbrt.f64 (+.f64 1 (exp.f64 x))))
(+.f64 (+.f64 2 (exp.f64 x)) -1)
(+.f64 2 (-.f64 (exp.f64 x) 1))
(+.f64 2 (expm1.f64 x))
(*.f64 (sqrt.f64 (+.f64 1 (exp.f64 x))) (sqrt.f64 (+.f64 1 (exp.f64 x))))
(+.f64 (+.f64 2 (exp.f64 x)) -1)
(+.f64 2 (-.f64 (exp.f64 x) 1))
(+.f64 2 (expm1.f64 x))
(*.f64 (+.f64 1 (exp.f64 (*.f64 x 3))) (/.f64 1 (+.f64 1 (*.f64 (exp.f64 x) (expm1.f64 x)))))
(/.f64 (*.f64 (+.f64 1 (pow.f64 (exp.f64 x) 3)) 1) (+.f64 1 (*.f64 (exp.f64 x) (expm1.f64 x))))
(/.f64 (+.f64 1 (pow.f64 (exp.f64 x) 3)) (fma.f64 (exp.f64 x) (expm1.f64 x) 1))
(/.f64 (+.f64 1 (pow.f64 (exp.f64 3) x)) (fma.f64 (exp.f64 x) (expm1.f64 x) 1))
(*.f64 (-.f64 1 (exp.f64 (+.f64 x x))) (/.f64 1 (-.f64 1 (exp.f64 x))))
(/.f64 (-.f64 1 (exp.f64 (+.f64 x x))) (-.f64 1 (exp.f64 x)))
(/.f64 (-.f64 1 (pow.f64 (exp.f64 2) x)) (-.f64 1 (exp.f64 x)))
(/.f64 (expm1.f64 (+.f64 x x)) (expm1.f64 x))
(/.f64 (+.f64 2 (expm1.f64 x)) 1)
(/.f64 1 (/.f64 (+.f64 1 (*.f64 (exp.f64 x) (expm1.f64 x))) (+.f64 1 (exp.f64 (*.f64 x 3)))))
(/.f64 (*.f64 (+.f64 1 (pow.f64 (exp.f64 x) 3)) 1) (+.f64 1 (*.f64 (exp.f64 x) (expm1.f64 x))))
(/.f64 (+.f64 1 (pow.f64 (exp.f64 x) 3)) (fma.f64 (exp.f64 x) (expm1.f64 x) 1))
(/.f64 (+.f64 1 (pow.f64 (exp.f64 3) x)) (fma.f64 (exp.f64 x) (expm1.f64 x) 1))
(/.f64 1 (/.f64 (-.f64 1 (exp.f64 x)) (-.f64 1 (exp.f64 (+.f64 x x)))))
(/.f64 (-.f64 1 (exp.f64 (+.f64 x x))) (-.f64 1 (exp.f64 x)))
(/.f64 (-.f64 1 (pow.f64 (exp.f64 2) x)) (-.f64 1 (exp.f64 x)))
(/.f64 (expm1.f64 (+.f64 x x)) (expm1.f64 x))
(/.f64 (+.f64 2 (expm1.f64 x)) 1)
(/.f64 (+.f64 1 (exp.f64 (*.f64 x 3))) (+.f64 1 (*.f64 (exp.f64 x) (expm1.f64 x))))
(/.f64 (*.f64 (+.f64 1 (pow.f64 (exp.f64 x) 3)) 1) (+.f64 1 (*.f64 (exp.f64 x) (expm1.f64 x))))
(/.f64 (+.f64 1 (pow.f64 (exp.f64 x) 3)) (fma.f64 (exp.f64 x) (expm1.f64 x) 1))
(/.f64 (+.f64 1 (pow.f64 (exp.f64 3) x)) (fma.f64 (exp.f64 x) (expm1.f64 x) 1))
(/.f64 (+.f64 1 (exp.f64 (*.f64 x 3))) (+.f64 (exp.f64 (+.f64 x x)) (-.f64 1 (exp.f64 x))))
(/.f64 (*.f64 (+.f64 1 (pow.f64 (exp.f64 x) 3)) 1) (+.f64 1 (*.f64 (exp.f64 x) (expm1.f64 x))))
(/.f64 (+.f64 1 (pow.f64 (exp.f64 x) 3)) (fma.f64 (exp.f64 x) (expm1.f64 x) 1))
(/.f64 (+.f64 1 (pow.f64 (exp.f64 3) x)) (fma.f64 (exp.f64 x) (expm1.f64 x) 1))
(/.f64 (-.f64 1 (exp.f64 (+.f64 x x))) (-.f64 1 (exp.f64 x)))
(/.f64 (-.f64 1 (pow.f64 (exp.f64 2) x)) (-.f64 1 (exp.f64 x)))
(/.f64 (expm1.f64 (+.f64 x x)) (expm1.f64 x))
(/.f64 (+.f64 2 (expm1.f64 x)) 1)
(/.f64 (neg.f64 (+.f64 1 (exp.f64 (*.f64 x 3)))) (neg.f64 (+.f64 1 (*.f64 (exp.f64 x) (expm1.f64 x)))))
(/.f64 (*.f64 (+.f64 1 (pow.f64 (exp.f64 x) 3)) 1) (+.f64 1 (*.f64 (exp.f64 x) (expm1.f64 x))))
(/.f64 (+.f64 1 (pow.f64 (exp.f64 x) 3)) (fma.f64 (exp.f64 x) (expm1.f64 x) 1))
(/.f64 (+.f64 1 (pow.f64 (exp.f64 3) x)) (fma.f64 (exp.f64 x) (expm1.f64 x) 1))
(/.f64 (neg.f64 (-.f64 1 (exp.f64 (+.f64 x x)))) (neg.f64 (-.f64 1 (exp.f64 x))))
(/.f64 (-.f64 1 (exp.f64 (+.f64 x x))) (-.f64 1 (exp.f64 x)))
(/.f64 (-.f64 1 (pow.f64 (exp.f64 2) x)) (-.f64 1 (exp.f64 x)))
(/.f64 (expm1.f64 (+.f64 x x)) (expm1.f64 x))
(/.f64 (+.f64 2 (expm1.f64 x)) 1)
(/.f64 (-.f64 (exp.f64 (+.f64 x x)) 1) (expm1.f64 x))
(/.f64 (-.f64 1 (exp.f64 (+.f64 x x))) (-.f64 1 (exp.f64 x)))
(/.f64 (-.f64 1 (pow.f64 (exp.f64 2) x)) (-.f64 1 (exp.f64 x)))
(/.f64 (expm1.f64 (+.f64 x x)) (expm1.f64 x))
(/.f64 (+.f64 2 (expm1.f64 x)) 1)
(pow.f64 (+.f64 1 (exp.f64 x)) 1)
(+.f64 (+.f64 2 (exp.f64 x)) -1)
(+.f64 2 (-.f64 (exp.f64 x) 1))
(+.f64 2 (expm1.f64 x))
(pow.f64 (cbrt.f64 (+.f64 1 (exp.f64 x))) 3)
(+.f64 (+.f64 2 (exp.f64 x)) -1)
(+.f64 2 (-.f64 (exp.f64 x) 1))
(+.f64 2 (expm1.f64 x))
(pow.f64 (pow.f64 (+.f64 1 (exp.f64 x)) 3) 1/3)
(+.f64 (+.f64 2 (exp.f64 x)) -1)
(+.f64 2 (-.f64 (exp.f64 x) 1))
(+.f64 2 (expm1.f64 x))
(pow.f64 (sqrt.f64 (+.f64 1 (exp.f64 x))) 2)
(+.f64 (+.f64 2 (exp.f64 x)) -1)
(+.f64 2 (-.f64 (exp.f64 x) 1))
(+.f64 2 (expm1.f64 x))
(sqrt.f64 (pow.f64 (+.f64 1 (exp.f64 x)) 2))
(+.f64 (+.f64 2 (exp.f64 x)) -1)
(+.f64 2 (-.f64 (exp.f64 x) 1))
(+.f64 2 (expm1.f64 x))
(log.f64 (exp.f64 (+.f64 1 (exp.f64 x))))
(+.f64 (+.f64 2 (exp.f64 x)) -1)
(+.f64 2 (-.f64 (exp.f64 x) 1))
(+.f64 2 (expm1.f64 x))
(cbrt.f64 (pow.f64 (+.f64 1 (exp.f64 x)) 3))
(+.f64 (+.f64 2 (exp.f64 x)) -1)
(+.f64 2 (-.f64 (exp.f64 x) 1))
(+.f64 2 (expm1.f64 x))
(expm1.f64 (log1p.f64 (+.f64 1 (exp.f64 x))))
(+.f64 (+.f64 2 (exp.f64 x)) -1)
(+.f64 2 (-.f64 (exp.f64 x) 1))
(+.f64 2 (expm1.f64 x))
(exp.f64 (log1p.f64 (exp.f64 x)))
(log1p.f64 (expm1.f64 (+.f64 1 (exp.f64 x))))
(+.f64 (+.f64 2 (exp.f64 x)) -1)
(+.f64 2 (-.f64 (exp.f64 x) 1))
(+.f64 2 (expm1.f64 x))
(fma.f64 1 (exp.f64 x) 1)
(+.f64 (+.f64 2 (exp.f64 x)) -1)
(+.f64 2 (-.f64 (exp.f64 x) 1))
(+.f64 2 (expm1.f64 x))
(fma.f64 (cbrt.f64 (exp.f64 (+.f64 x x))) (cbrt.f64 (exp.f64 x)) 1)
(fma.f64 (cbrt.f64 (pow.f64 (exp.f64 2) x)) (cbrt.f64 (exp.f64 x)) 1)
(fma.f64 (cbrt.f64 (pow.f64 (exp.f64 x) 2)) (cbrt.f64 (exp.f64 x)) 1)
(fma.f64 (sqrt.f64 (exp.f64 x)) (sqrt.f64 (exp.f64 x)) 1)
(+.f64 (+.f64 2 (exp.f64 x)) -1)
(+.f64 2 (-.f64 (exp.f64 x) 1))
(+.f64 2 (expm1.f64 x))

eval13.0ms (0.4%)

Compiler

Compiled 547 to 358 computations (34.6% saved)

prune6.0ms (0.2%)

Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New49251
Fresh000
Picked011
Done000
Total49352
Accurracy
100.0%
Counts
52 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
59.1%
(sqrt.f64 (+.f64 2 x))
100.0%
(sqrt.f64 (+.f64 1 (exp.f64 x)))
66.5%
(sqrt.f64 2)
Compiler

Compiled 14 to 12 computations (14.3% saved)

localize2.0ms (0.1%)

Compiler

Compiled 4 to 4 computations (0% saved)

localize7.0ms (0.2%)

Local Accuracy

Found 1 expressions with local accuracy:

NewAccuracyProgram
100.0%
(sqrt.f64 (+.f64 2 x))
Compiler

Compiled 10 to 7 computations (30% saved)

series1.0ms (0%)

Counts
1 → 4
Calls

3 calls:

TimeVariablePointExpression
0.0ms
x
@inf
(sqrt.f64 (+.f64 2 x))
0.0ms
x
@0
(sqrt.f64 (+.f64 2 x))
0.0ms
x
@-inf
(sqrt.f64 (+.f64 2 x))

rewrite59.0ms (2%)

Algorithm
batch-egg-rewrite
Rules
1458×pow1
1358×add-exp-log
1356×log1p-expm1-u
1356×expm1-log1p-u
1334×add-log-exp
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0711
114911
2181811
Stop Event
node limit
Counts
1 → 22
Calls
Call 1
Inputs
(sqrt.f64 (+.f64 2 x))
Outputs
(-.f64 (+.f64 1 (sqrt.f64 (+.f64 2 x))) 1)
(*.f64 (sqrt.f64 (+.f64 2 x)) 1)
(*.f64 1 (sqrt.f64 (+.f64 2 x)))
(*.f64 (cbrt.f64 (+.f64 2 x)) (cbrt.f64 (sqrt.f64 (+.f64 2 x))))
(*.f64 (cbrt.f64 (sqrt.f64 (+.f64 2 x))) (cbrt.f64 (+.f64 2 x)))
(*.f64 (pow.f64 (+.f64 2 x) 1/4) (pow.f64 (+.f64 2 x) 1/4))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (+.f64 2 x)) 2)) (sqrt.f64 (cbrt.f64 (+.f64 2 x))))
(*.f64 (pow.f64 1 1/2) (sqrt.f64 (+.f64 2 x)))
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (+.f64 2 x)) 2) 1/2) (pow.f64 (cbrt.f64 (+.f64 2 x)) 1/2))
(/.f64 (sqrt.f64 (-.f64 4 (*.f64 x x))) (sqrt.f64 (-.f64 2 x)))
(/.f64 (sqrt.f64 (+.f64 (pow.f64 x 3) 8)) (sqrt.f64 (+.f64 4 (*.f64 x (-.f64 x 2)))))
(pow.f64 (+.f64 2 x) 1/2)
(pow.f64 (sqrt.f64 (+.f64 2 x)) 1)
(pow.f64 (cbrt.f64 (sqrt.f64 (+.f64 2 x))) 3)
(pow.f64 (pow.f64 (+.f64 2 x) 3/2) 1/3)
(pow.f64 (pow.f64 (+.f64 2 x) 1/4) 2)
(fabs.f64 (sqrt.f64 (+.f64 2 x)))
(log.f64 (exp.f64 (sqrt.f64 (+.f64 2 x))))
(cbrt.f64 (pow.f64 (+.f64 2 x) 3/2))
(expm1.f64 (log1p.f64 (sqrt.f64 (+.f64 2 x))))
(exp.f64 (log.f64 (sqrt.f64 (+.f64 2 x))))
(log1p.f64 (expm1.f64 (sqrt.f64 (+.f64 2 x))))

simplify60.0ms (2%)

Algorithm
egg-herbie
Rules
1082×fma-def
946×associate-*r*
764×associate-*l*
720×times-frac
674×associate-/l*
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
082754
1179638
2456538
31473494
46054494
Stop Event
node limit
Counts
26 → 43
Calls
Call 1
Inputs
(sqrt.f64 2)
(+.f64 (sqrt.f64 2) (*.f64 1/2 (/.f64 x (sqrt.f64 2))))
(+.f64 (sqrt.f64 2) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 x 2) (pow.f64 (sqrt.f64 2) 3))) (*.f64 1/2 (/.f64 x (sqrt.f64 2)))))
(+.f64 (sqrt.f64 2) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 x 3) (pow.f64 (sqrt.f64 2) 5))) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 x 2) (pow.f64 (sqrt.f64 2) 3))) (*.f64 1/2 (/.f64 x (sqrt.f64 2))))))
(-.f64 (+.f64 1 (sqrt.f64 (+.f64 2 x))) 1)
(*.f64 (sqrt.f64 (+.f64 2 x)) 1)
(*.f64 1 (sqrt.f64 (+.f64 2 x)))
(*.f64 (cbrt.f64 (+.f64 2 x)) (cbrt.f64 (sqrt.f64 (+.f64 2 x))))
(*.f64 (cbrt.f64 (sqrt.f64 (+.f64 2 x))) (cbrt.f64 (+.f64 2 x)))
(*.f64 (pow.f64 (+.f64 2 x) 1/4) (pow.f64 (+.f64 2 x) 1/4))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (+.f64 2 x)) 2)) (sqrt.f64 (cbrt.f64 (+.f64 2 x))))
(*.f64 (pow.f64 1 1/2) (sqrt.f64 (+.f64 2 x)))
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (+.f64 2 x)) 2) 1/2) (pow.f64 (cbrt.f64 (+.f64 2 x)) 1/2))
(/.f64 (sqrt.f64 (-.f64 4 (*.f64 x x))) (sqrt.f64 (-.f64 2 x)))
(/.f64 (sqrt.f64 (+.f64 (pow.f64 x 3) 8)) (sqrt.f64 (+.f64 4 (*.f64 x (-.f64 x 2)))))
(pow.f64 (+.f64 2 x) 1/2)
(pow.f64 (sqrt.f64 (+.f64 2 x)) 1)
(pow.f64 (cbrt.f64 (sqrt.f64 (+.f64 2 x))) 3)
(pow.f64 (pow.f64 (+.f64 2 x) 3/2) 1/3)
(pow.f64 (pow.f64 (+.f64 2 x) 1/4) 2)
(fabs.f64 (sqrt.f64 (+.f64 2 x)))
(log.f64 (exp.f64 (sqrt.f64 (+.f64 2 x))))
(cbrt.f64 (pow.f64 (+.f64 2 x) 3/2))
(expm1.f64 (log1p.f64 (sqrt.f64 (+.f64 2 x))))
(exp.f64 (log.f64 (sqrt.f64 (+.f64 2 x))))
(log1p.f64 (expm1.f64 (sqrt.f64 (+.f64 2 x))))
Outputs
(sqrt.f64 2)
(+.f64 (sqrt.f64 2) (*.f64 1/2 (/.f64 x (sqrt.f64 2))))
(fma.f64 1/2 (/.f64 x (sqrt.f64 2)) (sqrt.f64 2))
(+.f64 (sqrt.f64 2) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 x 2) (pow.f64 (sqrt.f64 2) 3))) (*.f64 1/2 (/.f64 x (sqrt.f64 2)))))
(+.f64 (sqrt.f64 2) (fma.f64 -1/8 (/.f64 (*.f64 x x) (pow.f64 (sqrt.f64 2) 3)) (*.f64 1/2 (/.f64 x (sqrt.f64 2)))))
(+.f64 (fma.f64 1/2 (/.f64 x (sqrt.f64 2)) (sqrt.f64 2)) (*.f64 -1/16 (/.f64 (*.f64 x x) (sqrt.f64 2))))
(fma.f64 -1/16 (/.f64 x (/.f64 (sqrt.f64 2) x)) (fma.f64 1/2 (/.f64 x (sqrt.f64 2)) (sqrt.f64 2)))
(+.f64 (sqrt.f64 2) (*.f64 (/.f64 x (sqrt.f64 2)) (+.f64 1/2 (/.f64 x -16))))
(+.f64 (sqrt.f64 2) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 x 3) (pow.f64 (sqrt.f64 2) 5))) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 x 2) (pow.f64 (sqrt.f64 2) 3))) (*.f64 1/2 (/.f64 x (sqrt.f64 2))))))
(+.f64 (sqrt.f64 2) (fma.f64 1/16 (/.f64 (pow.f64 x 3) (pow.f64 (sqrt.f64 2) 5)) (fma.f64 -1/8 (/.f64 (*.f64 x x) (pow.f64 (sqrt.f64 2) 3)) (*.f64 1/2 (/.f64 x (sqrt.f64 2))))))
(+.f64 (sqrt.f64 2) (fma.f64 1/16 (/.f64 (pow.f64 x 3) (pow.f64 (sqrt.f64 2) 5)) (fma.f64 1/2 (/.f64 x (sqrt.f64 2)) (*.f64 -1/16 (/.f64 (*.f64 x x) (sqrt.f64 2))))))
(fma.f64 1/16 (/.f64 (pow.f64 x 3) (pow.f64 (sqrt.f64 2) 5)) (fma.f64 -1/16 (/.f64 x (/.f64 (sqrt.f64 2) x)) (fma.f64 1/2 (/.f64 x (sqrt.f64 2)) (sqrt.f64 2))))
(+.f64 (sqrt.f64 2) (fma.f64 1/16 (/.f64 (pow.f64 x 3) (pow.f64 (sqrt.f64 2) 5)) (*.f64 (/.f64 x (sqrt.f64 2)) (+.f64 1/2 (/.f64 x -16)))))
(-.f64 (+.f64 1 (sqrt.f64 (+.f64 2 x))) 1)
(+.f64 (+.f64 1 (sqrt.f64 (+.f64 2 x))) -1)
(+.f64 (sqrt.f64 (+.f64 2 x)) 0)
(sqrt.f64 (+.f64 2 x))
(*.f64 (sqrt.f64 (+.f64 2 x)) 1)
(+.f64 (+.f64 1 (sqrt.f64 (+.f64 2 x))) -1)
(+.f64 (sqrt.f64 (+.f64 2 x)) 0)
(sqrt.f64 (+.f64 2 x))
(*.f64 1 (sqrt.f64 (+.f64 2 x)))
(+.f64 (+.f64 1 (sqrt.f64 (+.f64 2 x))) -1)
(+.f64 (sqrt.f64 (+.f64 2 x)) 0)
(sqrt.f64 (+.f64 2 x))
(*.f64 (cbrt.f64 (+.f64 2 x)) (cbrt.f64 (sqrt.f64 (+.f64 2 x))))
(*.f64 (cbrt.f64 (sqrt.f64 (+.f64 2 x))) (cbrt.f64 (+.f64 2 x)))
(*.f64 (cbrt.f64 (+.f64 2 x)) (cbrt.f64 (sqrt.f64 (+.f64 2 x))))
(*.f64 (pow.f64 (+.f64 2 x) 1/4) (pow.f64 (+.f64 2 x) 1/4))
(+.f64 (+.f64 1 (sqrt.f64 (+.f64 2 x))) -1)
(+.f64 (sqrt.f64 (+.f64 2 x)) 0)
(sqrt.f64 (+.f64 2 x))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (+.f64 2 x)) 2)) (sqrt.f64 (cbrt.f64 (+.f64 2 x))))
(*.f64 (fabs.f64 (cbrt.f64 (+.f64 2 x))) (sqrt.f64 (cbrt.f64 (+.f64 2 x))))
(*.f64 (cbrt.f64 (+.f64 2 x)) (sqrt.f64 (cbrt.f64 (+.f64 2 x))))
(pow.f64 (cbrt.f64 (+.f64 2 x)) 3/2)
(*.f64 (pow.f64 1 1/2) (sqrt.f64 (+.f64 2 x)))
(+.f64 (+.f64 1 (sqrt.f64 (+.f64 2 x))) -1)
(+.f64 (sqrt.f64 (+.f64 2 x)) 0)
(sqrt.f64 (+.f64 2 x))
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (+.f64 2 x)) 2) 1/2) (pow.f64 (cbrt.f64 (+.f64 2 x)) 1/2))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (+.f64 2 x)) 2)) (sqrt.f64 (cbrt.f64 (+.f64 2 x))))
(*.f64 (fabs.f64 (cbrt.f64 (+.f64 2 x))) (sqrt.f64 (cbrt.f64 (+.f64 2 x))))
(*.f64 (cbrt.f64 (+.f64 2 x)) (sqrt.f64 (cbrt.f64 (+.f64 2 x))))
(pow.f64 (cbrt.f64 (+.f64 2 x)) 3/2)
(/.f64 (sqrt.f64 (-.f64 4 (*.f64 x x))) (sqrt.f64 (-.f64 2 x)))
(/.f64 (sqrt.f64 (+.f64 (pow.f64 x 3) 8)) (sqrt.f64 (+.f64 4 (*.f64 x (-.f64 x 2)))))
(/.f64 (sqrt.f64 (+.f64 (pow.f64 x 3) 8)) (sqrt.f64 (+.f64 4 (*.f64 x (+.f64 x -2)))))
(/.f64 (sqrt.f64 (+.f64 (pow.f64 x 3) 8)) (sqrt.f64 (fma.f64 x (+.f64 x -2) 4)))
(pow.f64 (+.f64 2 x) 1/2)
(+.f64 (+.f64 1 (sqrt.f64 (+.f64 2 x))) -1)
(+.f64 (sqrt.f64 (+.f64 2 x)) 0)
(sqrt.f64 (+.f64 2 x))
(pow.f64 (sqrt.f64 (+.f64 2 x)) 1)
(+.f64 (+.f64 1 (sqrt.f64 (+.f64 2 x))) -1)
(+.f64 (sqrt.f64 (+.f64 2 x)) 0)
(sqrt.f64 (+.f64 2 x))
(pow.f64 (cbrt.f64 (sqrt.f64 (+.f64 2 x))) 3)
(+.f64 (+.f64 1 (sqrt.f64 (+.f64 2 x))) -1)
(+.f64 (sqrt.f64 (+.f64 2 x)) 0)
(sqrt.f64 (+.f64 2 x))
(pow.f64 (pow.f64 (+.f64 2 x) 3/2) 1/3)
(cbrt.f64 (pow.f64 (+.f64 2 x) 3/2))
(pow.f64 (pow.f64 (+.f64 2 x) 1/4) 2)
(+.f64 (+.f64 1 (sqrt.f64 (+.f64 2 x))) -1)
(+.f64 (sqrt.f64 (+.f64 2 x)) 0)
(sqrt.f64 (+.f64 2 x))
(fabs.f64 (sqrt.f64 (+.f64 2 x)))
(+.f64 (+.f64 1 (sqrt.f64 (+.f64 2 x))) -1)
(+.f64 (sqrt.f64 (+.f64 2 x)) 0)
(sqrt.f64 (+.f64 2 x))
(log.f64 (exp.f64 (sqrt.f64 (+.f64 2 x))))
(+.f64 (+.f64 1 (sqrt.f64 (+.f64 2 x))) -1)
(+.f64 (sqrt.f64 (+.f64 2 x)) 0)
(sqrt.f64 (+.f64 2 x))
(cbrt.f64 (pow.f64 (+.f64 2 x) 3/2))
(expm1.f64 (log1p.f64 (sqrt.f64 (+.f64 2 x))))
(+.f64 (+.f64 1 (sqrt.f64 (+.f64 2 x))) -1)
(+.f64 (sqrt.f64 (+.f64 2 x)) 0)
(sqrt.f64 (+.f64 2 x))
(exp.f64 (log.f64 (sqrt.f64 (+.f64 2 x))))
(+.f64 (+.f64 1 (sqrt.f64 (+.f64 2 x))) -1)
(+.f64 (sqrt.f64 (+.f64 2 x)) 0)
(sqrt.f64 (+.f64 2 x))
(log1p.f64 (expm1.f64 (sqrt.f64 (+.f64 2 x))))
(+.f64 (+.f64 1 (sqrt.f64 (+.f64 2 x))) -1)
(+.f64 (sqrt.f64 (+.f64 2 x)) 0)
(sqrt.f64 (+.f64 2 x))

eval11.0ms (0.4%)

Compiler

Compiled 495 to 413 computations (16.6% saved)

prune6.0ms (0.2%)

Pruning

3 alts after pruning (0 fresh and 3 done)

PrunedKeptTotal
New43043
Fresh000
Picked011
Done022
Total43346
Accurracy
100.0%
Counts
46 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
59.1%
(sqrt.f64 (+.f64 2 x))
100.0%
(sqrt.f64 (+.f64 1 (exp.f64 x)))
66.5%
(sqrt.f64 2)
Compiler

Compiled 14 to 12 computations (14.3% saved)

regimes9.0ms (0.3%)

Counts
4 → 1
Calls
Call 1
Inputs
(sqrt.f64 2)
(sqrt.f64 (+.f64 2 x))
(sqrt.f64 (+.f64 1 (exp.f64 x)))
(sqrt.f64 (/.f64 (-.f64 (exp.f64 (*.f64 2 x)) 1) (-.f64 (exp.f64 x) 1)))
Outputs
(sqrt.f64 (+.f64 1 (exp.f64 x)))
Calls

3 calls:

3.0ms
x
2.0ms
(sqrt.f64 (/.f64 (-.f64 (exp.f64 (*.f64 2 x)) 1) (-.f64 (exp.f64 x) 1)))
2.0ms
(/.f64 (-.f64 (exp.f64 (*.f64 2 x)) 1) (-.f64 (exp.f64 x) 1))
Results
AccuracySegmentsBranch
100.0%1x
100.0%1(sqrt.f64 (/.f64 (-.f64 (exp.f64 (*.f64 2 x)) 1) (-.f64 (exp.f64 x) 1)))
100.0%1(/.f64 (-.f64 (exp.f64 (*.f64 2 x)) 1) (-.f64 (exp.f64 x) 1))
Compiler

Compiled 51 to 41 computations (19.6% saved)

regimes6.0ms (0.2%)

Accuracy

Total -5.2b remaining (-24.4%)

Threshold costs -5.2b (-24.4%)

Counts
2 → 1
Calls
Call 1
Inputs
(sqrt.f64 2)
(sqrt.f64 (+.f64 2 x))
Outputs
(sqrt.f64 2)
Calls

1 calls:

3.0ms
x
Results
AccuracySegmentsBranch
66.5%1x
Compiler

Compiled 9 to 7 computations (22.2% saved)

simplify6.0ms (0.2%)

Algorithm
egg-herbie
Rules
1-exp
+-commutative
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01020
11320
Stop Event
done
saturated
Calls
Call 1
Inputs
(sqrt.f64 (+.f64 1 (exp.f64 x)))
(sqrt.f64 2)
Outputs
(sqrt.f64 (+.f64 1 (exp.f64 x)))
(sqrt.f64 2)
Compiler

Compiled 9 to 8 computations (11.1% saved)

end45.0ms (1.5%)

Compiler

Compiled 42 to 36 computations (14.3% saved)

Profiling

Loading profile data...