Expanding a square

Time bar (total: 1.8s)

analyze11.0ms (0.6%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%100%0%0%0%0%0
100%100%0%0%0%0%0%1
Compiler

Compiled 11 to 9 computations (18.2% saved)

sample811.0ms (44%)

Results
277.0ms2060×body1024valid
203.0ms2861×body256valid
179.0ms2095×body256infinite
102.0ms1001×body512valid
38.0ms239×body2048valid
Bogosity

preprocess278.0ms (15.1%)

Algorithm
egg-herbie
Rules
5558×fma-neg
2282×unsub-neg
820×distribute-neg-in
700×sub-neg
576×fma-def
Problems
137×No Errors
119×(-.f64 (*.f64 (+.f64 x 1) (+.f64 x 1)) 1)
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01489
14577
212061
336757
4181757
5323657
6428257
7509857
8560457
9585457
10585657
11585657
12597257
13602757
14603057
15603057
Stop Event
node limit
Calls
Call 1
Inputs
(-.f64 (*.f64 (+.f64 x 1) (+.f64 x 1)) 1)
(-.f64 (*.f64 (+.f64 x 1) (+.f64 x 1)) 1)
(-.f64 (*.f64 (+.f64 (neg.f64 x) 1) (+.f64 (neg.f64 x) 1)) 1)
Outputs
(-.f64 (*.f64 (+.f64 x 1) (+.f64 x 1)) 1)
(fma.f64 (+.f64 x 1) (+.f64 x 1) -1)
(*.f64 (+.f64 x 2) (+.f64 x 0))
(*.f64 x (+.f64 x 2))
(-.f64 (*.f64 (+.f64 x 1) (+.f64 x 1)) 1)
(fma.f64 (+.f64 x 1) (+.f64 x 1) -1)
(*.f64 (+.f64 x 2) (+.f64 x 0))
(*.f64 x (+.f64 x 2))
(-.f64 (*.f64 (+.f64 (neg.f64 x) 1) (+.f64 (neg.f64 x) 1)) 1)
(fma.f64 (+.f64 1 (neg.f64 x)) (+.f64 1 (neg.f64 x)) -1)
(fma.f64 (-.f64 1 x) (-.f64 1 x) -1)
(*.f64 (neg.f64 x) (-.f64 2 x))
(*.f64 x (+.f64 x -2))
Compiler

Compiled 33 to 25 computations (24.2% saved)

eval1.0ms (0%)

Compiler

Compiled 21 to 15 computations (28.6% saved)

prune1.0ms (0.1%)

Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(*.f64 x (+.f64 x 2))
100.0%
(*.f64 x (+.f64 x 2))
Compiler

Compiled 12 to 8 computations (33.3% saved)

localize20.0ms (1.1%)

Localize:

Found 1 expressions with local error:

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

Compiled 12 to 8 computations (33.3% saved)

series1.0ms (0.1%)

Counts
1 → 12
Calls

3 calls:

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

rewrite89.0ms (4.8%)

Algorithm
batch-egg-rewrite
Rules
526×unpow-prod-down
397×log1p-expm1-u
397×expm1-log1p-u
376×add-exp-log
370×log-prod
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0819
18319
2108019
Stop Event
node limit
Counts
1 → 47
Calls
Call 1
Inputs
(*.f64 x (+.f64 x 2))
Outputs
(+.f64 (pow.f64 x 2) (*.f64 x 2))
(+.f64 (pow.f64 x 2) (*.f64 (*.f64 x 2) 1))
(+.f64 (*.f64 x 2) (pow.f64 x 2))
(+.f64 0 (*.f64 x (+.f64 x 2)))
(+.f64 (log.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 2) x) (+.f64 x 2)))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (+.f64 x 2)))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (+.f64 x 2)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (+.f64 x 2)))))
(-.f64 (+.f64 1 (*.f64 x (+.f64 x 2))) 1)
(/.f64 (+.f64 (pow.f64 x 6) (*.f64 (pow.f64 x 3) 8)) (+.f64 (pow.f64 x 4) (-.f64 (pow.f64 (*.f64 x 2) 2) (*.f64 (pow.f64 x 2) (*.f64 x 2)))))
(/.f64 (-.f64 (pow.f64 x 4) (pow.f64 (*.f64 x 2) 2)) (-.f64 (pow.f64 x 2) (*.f64 x 2)))
(/.f64 (*.f64 x (+.f64 (pow.f64 x 3) 8)) (-.f64 (fma.f64 x x 4) (*.f64 x 2)))
(/.f64 (*.f64 x (fma.f64 x x -4)) (+.f64 x -2))
(/.f64 (*.f64 (+.f64 (pow.f64 x 3) 8) x) (-.f64 (fma.f64 x x 4) (*.f64 x 2)))
(/.f64 (*.f64 (fma.f64 x x -4) x) (+.f64 x -2))
(pow.f64 (*.f64 x (+.f64 x 2)) 1)
(pow.f64 (cbrt.f64 (*.f64 x (+.f64 x 2))) 3)
(pow.f64 (pow.f64 (*.f64 x (+.f64 x 2)) 2) 1/2)
(pow.f64 (pow.f64 (*.f64 x (+.f64 x 2)) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 x (+.f64 x 2))) 2)
(pow.f64 (E.f64) (log.f64 (*.f64 x (+.f64 x 2))))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 x (+.f64 x 2)))) 2)) (cbrt.f64 (log.f64 (*.f64 x (+.f64 x 2)))))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 x (+.f64 x 2))))) (sqrt.f64 (log.f64 (*.f64 x (+.f64 x 2)))))
(sqrt.f64 (pow.f64 (*.f64 x (+.f64 x 2)) 2))
(log.f64 (pow.f64 (exp.f64 x) (+.f64 x 2)))
(cbrt.f64 (pow.f64 (*.f64 x (+.f64 x 2)) 3))
(expm1.f64 (log1p.f64 (*.f64 x (+.f64 x 2))))
(exp.f64 (log.f64 (*.f64 x (+.f64 x 2))))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 x (+.f64 x 2)))) 3))
(exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 x (+.f64 x 2)))) 1/3))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 x (+.f64 x 2)))) 2))
(log1p.f64 (expm1.f64 (*.f64 x (+.f64 x 2))))
(fma.f64 x x (*.f64 x 2))
(fma.f64 x 2 (pow.f64 x 2))
(fma.f64 2 x (pow.f64 x 2))
(fma.f64 1 (pow.f64 x 2) (*.f64 x 2))
(fma.f64 1 (*.f64 x 2) (pow.f64 x 2))
(fma.f64 (pow.f64 (cbrt.f64 x) 2) (pow.f64 (cbrt.f64 x) 4) (*.f64 x 2))
(fma.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) 2) (pow.f64 x 2))
(fma.f64 (pow.f64 x 2) 1 (*.f64 (*.f64 x 2) 1))
(fma.f64 (sqrt.f64 x) (pow.f64 x 3/2) (*.f64 x 2))
(fma.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) 2) (pow.f64 x 2))
(fma.f64 (pow.f64 (cbrt.f64 x) 4) (pow.f64 (cbrt.f64 x) 2) (*.f64 x 2))
(fma.f64 (pow.f64 (cbrt.f64 (*.f64 x 2)) 2) (cbrt.f64 (*.f64 x 2)) (pow.f64 x 2))
(fma.f64 (sqrt.f64 (*.f64 x 2)) (sqrt.f64 (*.f64 x 2)) (pow.f64 x 2))
(fma.f64 (pow.f64 (cbrt.f64 x) 5) (cbrt.f64 x) (*.f64 x 2))
(fma.f64 (*.f64 2 (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x) (pow.f64 x 2))
(fma.f64 (*.f64 2 (sqrt.f64 x)) (sqrt.f64 x) (pow.f64 x 2))
(fma.f64 (pow.f64 x 3/2) (sqrt.f64 x) (*.f64 x 2))

simplify55.0ms (3%)

Algorithm
egg-herbie
Rules
1104×associate-*r*
996×associate-*l*
940×fma-def
922×fma-neg
806×log-prod
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01381475
13261465
28741437
352811401
Stop Event
node limit
Counts
59 → 69
Calls
Call 1
Inputs
(*.f64 2 x)
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(pow.f64 x 2)
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(pow.f64 x 2)
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(+.f64 (pow.f64 x 2) (*.f64 x 2))
(+.f64 (pow.f64 x 2) (*.f64 (*.f64 x 2) 1))
(+.f64 (*.f64 x 2) (pow.f64 x 2))
(+.f64 0 (*.f64 x (+.f64 x 2)))
(+.f64 (log.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 2) x) (+.f64 x 2)))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (+.f64 x 2)))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (+.f64 x 2)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (+.f64 x 2)))))
(-.f64 (+.f64 1 (*.f64 x (+.f64 x 2))) 1)
(/.f64 (+.f64 (pow.f64 x 6) (*.f64 (pow.f64 x 3) 8)) (+.f64 (pow.f64 x 4) (-.f64 (pow.f64 (*.f64 x 2) 2) (*.f64 (pow.f64 x 2) (*.f64 x 2)))))
(/.f64 (-.f64 (pow.f64 x 4) (pow.f64 (*.f64 x 2) 2)) (-.f64 (pow.f64 x 2) (*.f64 x 2)))
(/.f64 (*.f64 x (+.f64 (pow.f64 x 3) 8)) (-.f64 (fma.f64 x x 4) (*.f64 x 2)))
(/.f64 (*.f64 x (fma.f64 x x -4)) (+.f64 x -2))
(/.f64 (*.f64 (+.f64 (pow.f64 x 3) 8) x) (-.f64 (fma.f64 x x 4) (*.f64 x 2)))
(/.f64 (*.f64 (fma.f64 x x -4) x) (+.f64 x -2))
(pow.f64 (*.f64 x (+.f64 x 2)) 1)
(pow.f64 (cbrt.f64 (*.f64 x (+.f64 x 2))) 3)
(pow.f64 (pow.f64 (*.f64 x (+.f64 x 2)) 2) 1/2)
(pow.f64 (pow.f64 (*.f64 x (+.f64 x 2)) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 x (+.f64 x 2))) 2)
(pow.f64 (E.f64) (log.f64 (*.f64 x (+.f64 x 2))))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 x (+.f64 x 2)))) 2)) (cbrt.f64 (log.f64 (*.f64 x (+.f64 x 2)))))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 x (+.f64 x 2))))) (sqrt.f64 (log.f64 (*.f64 x (+.f64 x 2)))))
(sqrt.f64 (pow.f64 (*.f64 x (+.f64 x 2)) 2))
(log.f64 (pow.f64 (exp.f64 x) (+.f64 x 2)))
(cbrt.f64 (pow.f64 (*.f64 x (+.f64 x 2)) 3))
(expm1.f64 (log1p.f64 (*.f64 x (+.f64 x 2))))
(exp.f64 (log.f64 (*.f64 x (+.f64 x 2))))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 x (+.f64 x 2)))) 3))
(exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 x (+.f64 x 2)))) 1/3))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 x (+.f64 x 2)))) 2))
(log1p.f64 (expm1.f64 (*.f64 x (+.f64 x 2))))
(fma.f64 x x (*.f64 x 2))
(fma.f64 x 2 (pow.f64 x 2))
(fma.f64 2 x (pow.f64 x 2))
(fma.f64 1 (pow.f64 x 2) (*.f64 x 2))
(fma.f64 1 (*.f64 x 2) (pow.f64 x 2))
(fma.f64 (pow.f64 (cbrt.f64 x) 2) (pow.f64 (cbrt.f64 x) 4) (*.f64 x 2))
(fma.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) 2) (pow.f64 x 2))
(fma.f64 (pow.f64 x 2) 1 (*.f64 (*.f64 x 2) 1))
(fma.f64 (sqrt.f64 x) (pow.f64 x 3/2) (*.f64 x 2))
(fma.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) 2) (pow.f64 x 2))
(fma.f64 (pow.f64 (cbrt.f64 x) 4) (pow.f64 (cbrt.f64 x) 2) (*.f64 x 2))
(fma.f64 (pow.f64 (cbrt.f64 (*.f64 x 2)) 2) (cbrt.f64 (*.f64 x 2)) (pow.f64 x 2))
(fma.f64 (sqrt.f64 (*.f64 x 2)) (sqrt.f64 (*.f64 x 2)) (pow.f64 x 2))
(fma.f64 (pow.f64 (cbrt.f64 x) 5) (cbrt.f64 x) (*.f64 x 2))
(fma.f64 (*.f64 2 (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x) (pow.f64 x 2))
(fma.f64 (*.f64 2 (sqrt.f64 x)) (sqrt.f64 x) (pow.f64 x 2))
(fma.f64 (pow.f64 x 3/2) (sqrt.f64 x) (*.f64 x 2))
Outputs
(*.f64 2 x)
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(*.f64 x (+.f64 2 x))
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(*.f64 x (+.f64 2 x))
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(*.f64 x (+.f64 2 x))
(pow.f64 x 2)
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(*.f64 x (+.f64 2 x))
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(*.f64 x (+.f64 2 x))
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(*.f64 x (+.f64 2 x))
(pow.f64 x 2)
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(*.f64 x (+.f64 2 x))
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(*.f64 x (+.f64 2 x))
(+.f64 (*.f64 2 x) (pow.f64 x 2))
(*.f64 x (+.f64 2 x))
(+.f64 (pow.f64 x 2) (*.f64 x 2))
(*.f64 x (+.f64 2 x))
(+.f64 (pow.f64 x 2) (*.f64 (*.f64 x 2) 1))
(*.f64 x (+.f64 2 x))
(+.f64 (*.f64 x 2) (pow.f64 x 2))
(*.f64 x (+.f64 2 x))
(+.f64 0 (*.f64 x (+.f64 x 2)))
(*.f64 x (+.f64 2 x))
(+.f64 (log.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 2) x) (+.f64 x 2)))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (+.f64 x 2)))))
(+.f64 (log.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 2) x) (+.f64 2 x)))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (+.f64 2 x)))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (+.f64 x 2)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (+.f64 x 2)))))
(*.f64 x (+.f64 2 x))
(-.f64 (+.f64 1 (*.f64 x (+.f64 x 2))) 1)
(*.f64 x (+.f64 2 x))
(/.f64 (+.f64 (pow.f64 x 6) (*.f64 (pow.f64 x 3) 8)) (+.f64 (pow.f64 x 4) (-.f64 (pow.f64 (*.f64 x 2) 2) (*.f64 (pow.f64 x 2) (*.f64 x 2)))))
(/.f64 (+.f64 (pow.f64 x 6) (*.f64 (pow.f64 x 3) 8)) (+.f64 (pow.f64 x 4) (-.f64 (pow.f64 (*.f64 2 x) 2) (*.f64 (pow.f64 x 3) 2))))
(/.f64 (fma.f64 (pow.f64 x 3) 8 (pow.f64 x 6)) (+.f64 (pow.f64 x 4) (+.f64 (pow.f64 (*.f64 2 x) 2) (*.f64 (pow.f64 x 3) -2))))
(/.f64 (fma.f64 (pow.f64 x 3) 8 (pow.f64 x 6)) (fma.f64 (pow.f64 x 2) 4 (*.f64 (pow.f64 x 3) (+.f64 x -2))))
(/.f64 (-.f64 (pow.f64 x 4) (pow.f64 (*.f64 x 2) 2)) (-.f64 (pow.f64 x 2) (*.f64 x 2)))
(/.f64 (-.f64 (pow.f64 x 4) (pow.f64 (*.f64 2 x) 2)) (-.f64 (pow.f64 x 2) (*.f64 2 x)))
(/.f64 (-.f64 (pow.f64 x 4) (pow.f64 (*.f64 2 x) 2)) (*.f64 x (-.f64 x 2)))
(/.f64 (-.f64 (pow.f64 x 4) (pow.f64 (*.f64 2 x) 2)) (*.f64 x (+.f64 x -2)))
(/.f64 (*.f64 x (+.f64 2 x)) 1)
(/.f64 (*.f64 x (+.f64 (pow.f64 x 3) 8)) (-.f64 (fma.f64 x x 4) (*.f64 x 2)))
(/.f64 x (/.f64 (-.f64 (fma.f64 x x 4) (*.f64 2 x)) (+.f64 (pow.f64 x 3) 8)))
(*.f64 (/.f64 (+.f64 (pow.f64 x 3) 8) (+.f64 (fma.f64 x x 4) (*.f64 x -2))) x)
(/.f64 (fma.f64 x 8 (pow.f64 x 4)) (+.f64 4 (*.f64 x (+.f64 x -2))))
(/.f64 (+.f64 (pow.f64 x 3) 8) (+.f64 (/.f64 (fma.f64 x x 4) x) -2))
(/.f64 (*.f64 x (fma.f64 x x -4)) (+.f64 x -2))
(/.f64 x (/.f64 (+.f64 x -2) (fma.f64 x x -4)))
(*.f64 (/.f64 x (+.f64 x -2)) (fma.f64 x x -4))
(*.f64 x (/.f64 (fma.f64 x x -4) (+.f64 x -2)))
(/.f64 (fma.f64 x x -4) (-.f64 1 (/.f64 2 x)))
(/.f64 (*.f64 (+.f64 (pow.f64 x 3) 8) x) (-.f64 (fma.f64 x x 4) (*.f64 x 2)))
(/.f64 x (/.f64 (-.f64 (fma.f64 x x 4) (*.f64 2 x)) (+.f64 (pow.f64 x 3) 8)))
(*.f64 (/.f64 (+.f64 (pow.f64 x 3) 8) (+.f64 (fma.f64 x x 4) (*.f64 x -2))) x)
(/.f64 (fma.f64 x 8 (pow.f64 x 4)) (+.f64 4 (*.f64 x (+.f64 x -2))))
(/.f64 (+.f64 (pow.f64 x 3) 8) (+.f64 (/.f64 (fma.f64 x x 4) x) -2))
(/.f64 (*.f64 (fma.f64 x x -4) x) (+.f64 x -2))
(/.f64 x (/.f64 (+.f64 x -2) (fma.f64 x x -4)))
(*.f64 (/.f64 x (+.f64 x -2)) (fma.f64 x x -4))
(*.f64 x (/.f64 (fma.f64 x x -4) (+.f64 x -2)))
(/.f64 (fma.f64 x x -4) (-.f64 1 (/.f64 2 x)))
(pow.f64 (*.f64 x (+.f64 x 2)) 1)
(*.f64 x (+.f64 2 x))
(pow.f64 (cbrt.f64 (*.f64 x (+.f64 x 2))) 3)
(*.f64 x (+.f64 2 x))
(pow.f64 (pow.f64 (*.f64 x (+.f64 x 2)) 2) 1/2)
(*.f64 x (+.f64 2 x))
(pow.f64 (pow.f64 (*.f64 x (+.f64 x 2)) 3) 1/3)
(*.f64 x (+.f64 2 x))
(pow.f64 (sqrt.f64 (*.f64 x (+.f64 x 2))) 2)
(*.f64 x (+.f64 2 x))
(pow.f64 (E.f64) (log.f64 (*.f64 x (+.f64 x 2))))
(*.f64 x (+.f64 2 x))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 x (+.f64 x 2)))) 2)) (cbrt.f64 (log.f64 (*.f64 x (+.f64 x 2)))))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 x (+.f64 2 x)))) 2)) (cbrt.f64 (log.f64 (*.f64 x (+.f64 2 x)))))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 x (+.f64 x 2))))) (sqrt.f64 (log.f64 (*.f64 x (+.f64 x 2)))))
(pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 x (+.f64 2 x))))) (sqrt.f64 (log.f64 (*.f64 x (+.f64 2 x)))))
(sqrt.f64 (pow.f64 (*.f64 x (+.f64 x 2)) 2))
(*.f64 x (+.f64 2 x))
(log.f64 (pow.f64 (exp.f64 x) (+.f64 x 2)))
(*.f64 x (+.f64 2 x))
(cbrt.f64 (pow.f64 (*.f64 x (+.f64 x 2)) 3))
(*.f64 x (+.f64 2 x))
(expm1.f64 (log1p.f64 (*.f64 x (+.f64 x 2))))
(*.f64 x (+.f64 2 x))
(exp.f64 (log.f64 (*.f64 x (+.f64 x 2))))
(*.f64 x (+.f64 2 x))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 x (+.f64 x 2)))) 3))
(*.f64 x (+.f64 2 x))
(exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 x (+.f64 x 2)))) 1/3))
(*.f64 x (+.f64 2 x))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 x (+.f64 x 2)))) 2))
(*.f64 x (+.f64 2 x))
(log1p.f64 (expm1.f64 (*.f64 x (+.f64 x 2))))
(*.f64 x (+.f64 2 x))
(fma.f64 x x (*.f64 x 2))
(*.f64 x (+.f64 2 x))
(fma.f64 x 2 (pow.f64 x 2))
(*.f64 x (+.f64 2 x))
(fma.f64 2 x (pow.f64 x 2))
(*.f64 x (+.f64 2 x))
(fma.f64 1 (pow.f64 x 2) (*.f64 x 2))
(*.f64 x (+.f64 2 x))
(fma.f64 1 (*.f64 x 2) (pow.f64 x 2))
(*.f64 x (+.f64 2 x))
(fma.f64 (pow.f64 (cbrt.f64 x) 2) (pow.f64 (cbrt.f64 x) 4) (*.f64 x 2))
(*.f64 x (+.f64 2 x))
(fma.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) 2) (pow.f64 x 2))
(*.f64 x (+.f64 2 x))
(fma.f64 (pow.f64 x 2) 1 (*.f64 (*.f64 x 2) 1))
(*.f64 x (+.f64 2 x))
(fma.f64 (sqrt.f64 x) (pow.f64 x 3/2) (*.f64 x 2))
(*.f64 x (+.f64 2 x))
(fma.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) 2) (pow.f64 x 2))
(*.f64 x (+.f64 2 x))
(fma.f64 (pow.f64 (cbrt.f64 x) 4) (pow.f64 (cbrt.f64 x) 2) (*.f64 x 2))
(*.f64 x (+.f64 2 x))
(fma.f64 (pow.f64 (cbrt.f64 (*.f64 x 2)) 2) (cbrt.f64 (*.f64 x 2)) (pow.f64 x 2))
(*.f64 x (+.f64 2 x))
(fma.f64 (sqrt.f64 (*.f64 x 2)) (sqrt.f64 (*.f64 x 2)) (pow.f64 x 2))
(*.f64 x (+.f64 2 x))
(fma.f64 (pow.f64 (cbrt.f64 x) 5) (cbrt.f64 x) (*.f64 x 2))
(*.f64 x (+.f64 2 x))
(fma.f64 (*.f64 2 (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x) (pow.f64 x 2))
(*.f64 x (+.f64 2 x))
(fma.f64 (*.f64 2 (sqrt.f64 x)) (sqrt.f64 x) (pow.f64 x 2))
(*.f64 x (+.f64 2 x))
(fma.f64 (pow.f64 x 3/2) (sqrt.f64 x) (*.f64 x 2))
(*.f64 x (+.f64 2 x))

eval17.0ms (0.9%)

Compiler

Compiled 791 to 563 computations (28.8% saved)

prune10.0ms (0.5%)

Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New67269
Fresh000
Picked011
Done000
Total67370
Accuracy
100.0%
Counts
70 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(fma.f64 x x (*.f64 x 2))
100.0%
(*.f64 x (+.f64 x 2))
47.9%
(*.f64 2 x)
100.0%
(fma.f64 x x (*.f64 x 2))
100.0%
(*.f64 x (+.f64 x 2))
47.9%
(*.f64 2 x)
Compiler

Compiled 34 to 22 computations (35.3% saved)

localize24.0ms (1.3%)

Compiler

Compiled 18 to 11 computations (38.9% saved)

eval0.0ms (0%)

Compiler

Compiled 1 to 1 computations (0% saved)

prune2.0ms (0.1%)

Pruning

3 alts after pruning (0 fresh and 3 done)

PrunedKeptTotal
New000
Fresh000
Picked022
Done011
Total033
Accuracy
100.0%
Counts
3 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(fma.f64 x x (*.f64 x 2))
100.0%
(*.f64 x (+.f64 x 2))
47.9%
(*.f64 2 x)
Compiler

Compiled 41 to 27 computations (34.1% saved)

regimes12.0ms (0.7%)

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

4 calls:

4.0ms
x
3.0ms
(+.f64 x 1)
2.0ms
(-.f64 (*.f64 (+.f64 x 1) (+.f64 x 1)) 1)
2.0ms
(*.f64 (+.f64 x 1) (+.f64 x 1))
Results
AccuracySegmentsBranch
100.0%1x
100.0%1(-.f64 (*.f64 (+.f64 x 1) (+.f64 x 1)) 1)
100.0%1(*.f64 (+.f64 x 1) (+.f64 x 1))
100.0%1(+.f64 x 1)
Compiler

Compiled 48 to 34 computations (29.2% saved)

regimes67.0ms (3.6%)

Counts
3 → 1
Calls
Call 1
Inputs
(*.f64 2 x)
(*.f64 x (+.f64 x 2))
(-.f64 (*.f64 (+.f64 x 1) (+.f64 x 1)) 1)
Outputs
(*.f64 x (+.f64 x 2))
Calls

4 calls:

59.0ms
x
3.0ms
(+.f64 x 1)
2.0ms
(-.f64 (*.f64 (+.f64 x 1) (+.f64 x 1)) 1)
2.0ms
(*.f64 (+.f64 x 1) (+.f64 x 1))
Results
AccuracySegmentsBranch
100.0%1x
100.0%1(-.f64 (*.f64 (+.f64 x 1) (+.f64 x 1)) 1)
100.0%1(*.f64 (+.f64 x 1) (+.f64 x 1))
100.0%1(+.f64 x 1)
Compiler

Compiled 42 to 31 computations (26.2% saved)

regimes3.0ms (0.2%)

Accuracy

Total 0.0b remaining (0%)

Threshold costs 0b (0%)

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

1 calls:

2.0ms
x
Results
AccuracySegmentsBranch
47.9%1x
Compiler

Compiled 6 to 4 computations (33.3% saved)

simplify2.0ms (0.1%)

Algorithm
egg-herbie
Rules
*-commutative
+-commutative
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01253
11453
Stop Event
done
saturated
Calls
Call 1
Inputs
(fma.f64 x x (*.f64 x 2))
(*.f64 x (+.f64 x 2))
(*.f64 2 x)
Outputs
(fma.f64 x x (*.f64 x 2))
(*.f64 x (+.f64 x 2))
(*.f64 2 x)
(*.f64 x 2)
Compiler

Compiled 17 to 11 computations (35.3% saved)

soundness406.0ms (22%)

Rules
5558×fma-neg
2282×unsub-neg
820×distribute-neg-in
700×sub-neg
576×fma-def
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01489
14577
212061
336757
4181757
5323657
6428257
7509857
8560457
9585457
10585657
11585657
12597257
13602757
14603057
15603057
0819
18319
2108019
Stop Event
node limit
node limit
Compiler

Compiled 266 to 184 computations (30.8% saved)

end0.0ms (0%)

preprocess33.0ms (1.8%)

Compiler

Compiled 50 to 34 computations (32% saved)

Profiling

Loading profile data...