Details

Time bar (total: 2.4s)

analyze0.0ms (0%)

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

Compiled 17 to 9 computations (47.1% saved)

sample975.0ms (40.8%)

Results
964.0ms8256×body256valid
Bogosity

preprocess219.0ms (9.2%)

Algorithm
egg-herbie
Rules
2556×sqr-pow
1566×cube-prod
1330×pow-sqr
842×unpow3
724×unswap-sqr
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0619
11715
23415
34915
47415
512615
624215
769915
8139715
9149815
10163115
11178915
12202515
13233615
14274115
15322215
16378915
17446915
18474015
19498015
20516015
21528815
22535815
23627215
24723915
25762315
26792715
011
Stop Event
saturated
node limit
Calls
Call 1
Inputs
0
Outputs
0
Call 2
Inputs
(+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))
Outputs
(+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))
(+.f64 (*.f64 x x) (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
Compiler

Compiled 11 to 5 computations (54.5% saved)

simplify217.0ms (9.1%)

Algorithm
egg-herbie
Rules
2556×sqr-pow
1566×cube-prod
1330×pow-sqr
842×unpow3
724×unswap-sqr
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0619
11715
23415
34915
47415
512615
624215
769915
8139715
9149815
10163115
11178915
12202515
13233615
14274115
15322215
16378915
17446915
18474015
19498015
20516015
21528815
22535815
23627215
24723915
25762315
26792715
Stop Event
node limit
Counts
1 → 3
Calls
Call 1
Inputs
(+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))
Outputs
(+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))
(+.f64 (*.f64 x x) (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))

eval1.0ms (0%)

Compiler

Compiled 23 to 9 computations (60.9% saved)

prune1.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New123
Fresh011
Picked000
Done000
Total134
Accurracy
100.0%
Counts
4 → 2
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.9%
(+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))
100.0%
(*.f64 x (fma.f64 x x x))
Compiler

Compiled 17 to 7 computations (58.8% saved)

localize5.0ms (0.2%)

Local Accuracy

Found 1 expressions with local accuracy:

NewAccuracyProgram
100.0%
(*.f64 x (fma.f64 x x x))
Compiler

Compiled 12 to 3 computations (75% saved)

series2.0ms (0.1%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
1.0ms
x
@-inf
(*.f64 x (fma.f64 x x x))
1.0ms
x
@inf
(*.f64 x (fma.f64 x x x))
0.0ms
x
@0
(*.f64 x (fma.f64 x x x))

rewrite73.0ms (3.1%)

Algorithm
batch-egg-rewrite
Rules
1124×pow1
1024×add-exp-log
1024×log1p-expm1-u
1024×expm1-log1p-u
1000×add-log-exp
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0615
111815
2140215
Stop Event
node limit
Counts
1 → 12
Calls
Call 1
Inputs
(*.f64 x (fma.f64 x x x))
Outputs
(+.f64 (pow.f64 x 3) (*.f64 x x))
(-.f64 (+.f64 1 (*.f64 x (fma.f64 x x x))) 1)
(pow.f64 (*.f64 x (fma.f64 x x x)) 1)
(pow.f64 (cbrt.f64 (*.f64 x (fma.f64 x x x))) 3)
(pow.f64 (pow.f64 (*.f64 x (fma.f64 x x x)) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 x (fma.f64 x x x))) 2)
(sqrt.f64 (pow.f64 (*.f64 x (fma.f64 x x x)) 2))
(log.f64 (pow.f64 (exp.f64 x) (fma.f64 x x x)))
(cbrt.f64 (pow.f64 (*.f64 x (fma.f64 x x x)) 3))
(expm1.f64 (log1p.f64 (*.f64 x (fma.f64 x x x))))
(exp.f64 (log.f64 (*.f64 x (fma.f64 x x x))))
(log1p.f64 (expm1.f64 (*.f64 x (fma.f64 x x x))))

simplify49.0ms (2.1%)

Algorithm
egg-herbie
Rules
1492×log-prod
1256×fma-def
1026×distribute-lft-out
542×*-commutative
522×associate-*r*
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
037420
188336
2294336
31868336
44898336
Stop Event
node limit
Counts
24 → 17
Calls
Call 1
Inputs
(pow.f64 x 2)
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(pow.f64 x 3)
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(pow.f64 x 3)
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(+.f64 (pow.f64 x 3) (*.f64 x x))
(-.f64 (+.f64 1 (*.f64 x (fma.f64 x x x))) 1)
(pow.f64 (*.f64 x (fma.f64 x x x)) 1)
(pow.f64 (cbrt.f64 (*.f64 x (fma.f64 x x x))) 3)
(pow.f64 (pow.f64 (*.f64 x (fma.f64 x x x)) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 x (fma.f64 x x x))) 2)
(sqrt.f64 (pow.f64 (*.f64 x (fma.f64 x x x)) 2))
(log.f64 (pow.f64 (exp.f64 x) (fma.f64 x x x)))
(cbrt.f64 (pow.f64 (*.f64 x (fma.f64 x x x)) 3))
(expm1.f64 (log1p.f64 (*.f64 x (fma.f64 x x x))))
(exp.f64 (log.f64 (*.f64 x (fma.f64 x x x))))
(log1p.f64 (expm1.f64 (*.f64 x (fma.f64 x x x))))
Outputs
(pow.f64 x 2)
(*.f64 x x)
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(+.f64 (pow.f64 x 3) (*.f64 x x))
(*.f64 x (fma.f64 x x x))
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(+.f64 (pow.f64 x 3) (*.f64 x x))
(*.f64 x (fma.f64 x x x))
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(+.f64 (pow.f64 x 3) (*.f64 x x))
(*.f64 x (fma.f64 x x x))
(pow.f64 x 3)
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(+.f64 (pow.f64 x 3) (*.f64 x x))
(*.f64 x (fma.f64 x x x))
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(+.f64 (pow.f64 x 3) (*.f64 x x))
(*.f64 x (fma.f64 x x x))
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(+.f64 (pow.f64 x 3) (*.f64 x x))
(*.f64 x (fma.f64 x x x))
(pow.f64 x 3)
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(+.f64 (pow.f64 x 3) (*.f64 x x))
(*.f64 x (fma.f64 x x x))
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(+.f64 (pow.f64 x 3) (*.f64 x x))
(*.f64 x (fma.f64 x x x))
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(+.f64 (pow.f64 x 3) (*.f64 x x))
(*.f64 x (fma.f64 x x x))
(+.f64 (pow.f64 x 3) (*.f64 x x))
(*.f64 x (fma.f64 x x x))
(-.f64 (+.f64 1 (*.f64 x (fma.f64 x x x))) 1)
(+.f64 (pow.f64 x 3) (*.f64 x x))
(*.f64 x (fma.f64 x x x))
(pow.f64 (*.f64 x (fma.f64 x x x)) 1)
(+.f64 (pow.f64 x 3) (*.f64 x x))
(*.f64 x (fma.f64 x x x))
(pow.f64 (cbrt.f64 (*.f64 x (fma.f64 x x x))) 3)
(+.f64 (pow.f64 x 3) (*.f64 x x))
(*.f64 x (fma.f64 x x x))
(pow.f64 (pow.f64 (*.f64 x (fma.f64 x x x)) 3) 1/3)
(+.f64 (pow.f64 x 3) (*.f64 x x))
(*.f64 x (fma.f64 x x x))
(pow.f64 (sqrt.f64 (*.f64 x (fma.f64 x x x))) 2)
(+.f64 (pow.f64 x 3) (*.f64 x x))
(*.f64 x (fma.f64 x x x))
(sqrt.f64 (pow.f64 (*.f64 x (fma.f64 x x x)) 2))
(+.f64 (pow.f64 x 3) (*.f64 x x))
(*.f64 x (fma.f64 x x x))
(log.f64 (pow.f64 (exp.f64 x) (fma.f64 x x x)))
(+.f64 (pow.f64 x 3) (*.f64 x x))
(*.f64 x (fma.f64 x x x))
(cbrt.f64 (pow.f64 (*.f64 x (fma.f64 x x x)) 3))
(+.f64 (pow.f64 x 3) (*.f64 x x))
(*.f64 x (fma.f64 x x x))
(expm1.f64 (log1p.f64 (*.f64 x (fma.f64 x x x))))
(+.f64 (pow.f64 x 3) (*.f64 x x))
(*.f64 x (fma.f64 x x x))
(exp.f64 (log.f64 (*.f64 x (fma.f64 x x x))))
(+.f64 (pow.f64 x 3) (*.f64 x x))
(*.f64 x (fma.f64 x x x))
(log1p.f64 (expm1.f64 (*.f64 x (fma.f64 x x x))))
(+.f64 (pow.f64 x 3) (*.f64 x x))
(*.f64 x (fma.f64 x x x))

localize5.0ms (0.2%)

Local Accuracy

Found 2 expressions with local accuracy:

NewAccuracyProgram
99.9%
(+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))
99.9%
(*.f64 x (*.f64 x x))
Compiler

Compiled 19 to 4 computations (78.9% saved)

series1.0ms (0.1%)

Counts
2 → 24
Calls

6 calls:

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

rewrite67.0ms (2.8%)

Algorithm
batch-egg-rewrite
Rules
1388×pow1
1298×add-exp-log
1296×log1p-expm1-u
1296×expm1-log1p-u
1272×add-log-exp
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0626
113722
2187222
Stop Event
node limit
Counts
2 → 53
Calls
Call 1
Inputs
(*.f64 x (*.f64 x x))
(+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))
Outputs
(-.f64 (+.f64 1 (pow.f64 x 3)) 1)
(pow.f64 x 3)
(pow.f64 (pow.f64 x 3) 1)
(pow.f64 (pow.f64 x 3/2) 2)
(pow.f64 (pow.f64 x 9) 1/3)
(sqrt.f64 (pow.f64 x 6))
(log.f64 (exp.f64 (pow.f64 x 3)))
(cbrt.f64 (pow.f64 x 9))
(expm1.f64 (log1p.f64 (pow.f64 x 3)))
(exp.f64 (log.f64 (pow.f64 x 3)))
(log1p.f64 (expm1.f64 (pow.f64 x 3)))
(-.f64 (+.f64 1 (*.f64 x (fma.f64 x x x))) 1)
(-.f64 (/.f64 (pow.f64 x 6) (-.f64 (pow.f64 x 3) (*.f64 x x))) (/.f64 (pow.f64 x 4) (-.f64 (pow.f64 x 3) (*.f64 x x))))
(*.f64 x (fma.f64 x x x))
(*.f64 (*.f64 x x) (+.f64 x 1))
(*.f64 (*.f64 x (fma.f64 x x x)) 1)
(*.f64 1 (*.f64 x (fma.f64 x x x)))
(*.f64 (cbrt.f64 (*.f64 x (fma.f64 x x x))) (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 x x x))) 2))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 x x x))) 2) (cbrt.f64 (*.f64 x (fma.f64 x x x))))
(*.f64 (cbrt.f64 (*.f64 x x)) (*.f64 (cbrt.f64 x) (fma.f64 x x x)))
(*.f64 (hypot.f64 x (pow.f64 x 3/2)) (hypot.f64 x (pow.f64 x 3/2)))
(*.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) (fma.f64 x x x)))
(*.f64 (+.f64 (pow.f64 x 6) (pow.f64 x 9)) (/.f64 1 (+.f64 (pow.f64 x 6) (-.f64 (pow.f64 x 4) (pow.f64 x 5)))))
(*.f64 (-.f64 (pow.f64 x 6) (pow.f64 x 4)) (/.f64 1 (-.f64 (pow.f64 x 3) (*.f64 x x))))
(*.f64 (fma.f64 x x x) x)
(*.f64 (+.f64 x 1) (*.f64 x x))
(*.f64 (*.f64 (+.f64 x 1) 1) (*.f64 x x))
(*.f64 (*.f64 (+.f64 x 1) (cbrt.f64 (pow.f64 x 4))) (cbrt.f64 (*.f64 x x)))
(/.f64 1 (/.f64 (+.f64 (pow.f64 x 6) (-.f64 (pow.f64 x 4) (pow.f64 x 5))) (+.f64 (pow.f64 x 6) (pow.f64 x 9))))
(/.f64 1 (/.f64 (-.f64 (pow.f64 x 3) (*.f64 x x)) (-.f64 (pow.f64 x 6) (pow.f64 x 4))))
(/.f64 (+.f64 (pow.f64 x 6) (pow.f64 x 9)) (+.f64 (pow.f64 x 6) (-.f64 (pow.f64 x 4) (pow.f64 x 5))))
(/.f64 (+.f64 (pow.f64 x 6) (pow.f64 x 9)) (+.f64 (pow.f64 x 4) (-.f64 (pow.f64 x 6) (pow.f64 x 5))))
(/.f64 (-.f64 (pow.f64 x 6) (pow.f64 x 4)) (-.f64 (pow.f64 x 3) (*.f64 x x)))
(/.f64 (neg.f64 (+.f64 (pow.f64 x 6) (pow.f64 x 9))) (neg.f64 (+.f64 (pow.f64 x 6) (-.f64 (pow.f64 x 4) (pow.f64 x 5)))))
(/.f64 (neg.f64 (-.f64 (pow.f64 x 6) (pow.f64 x 4))) (neg.f64 (-.f64 (pow.f64 x 3) (*.f64 x x))))
(/.f64 (-.f64 (pow.f64 x 4) (pow.f64 x 6)) (-.f64 (*.f64 x x) (pow.f64 x 3)))
(pow.f64 (*.f64 x (fma.f64 x x x)) 1)
(pow.f64 (cbrt.f64 (*.f64 x (fma.f64 x x x))) 3)
(pow.f64 (pow.f64 (*.f64 x (fma.f64 x x x)) 3) 1/3)
(pow.f64 (hypot.f64 x (pow.f64 x 3/2)) 2)
(sqrt.f64 (pow.f64 (*.f64 x (fma.f64 x x x)) 2))
(log.f64 (pow.f64 (exp.f64 x) (fma.f64 x x x)))
(cbrt.f64 (pow.f64 (*.f64 x (fma.f64 x x x)) 3))
(expm1.f64 (log1p.f64 (*.f64 x (fma.f64 x x x))))
(exp.f64 (log.f64 (*.f64 x (fma.f64 x x x))))
(log1p.f64 (expm1.f64 (*.f64 x (fma.f64 x x x))))
(fma.f64 x x (pow.f64 x 3))
(fma.f64 x (*.f64 x x) (*.f64 x x))
(fma.f64 (*.f64 x x) x (*.f64 x x))
(fma.f64 1 (*.f64 x x) (pow.f64 x 3))
(fma.f64 1 (pow.f64 x 3) (*.f64 x x))
(fma.f64 (cbrt.f64 (pow.f64 x 4)) (cbrt.f64 (*.f64 x x)) (pow.f64 x 3))
(fma.f64 (pow.f64 x 3/2) (pow.f64 x 3/2) (*.f64 x x))

simplify68.0ms (2.8%)

Algorithm
egg-herbie
Rules
1448×fma-neg
1294×div-sub
736×times-frac
710×fma-def
678×log-prod
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01201249
12821219
29191219
345421219
Stop Event
node limit
Counts
77 → 64
Calls
Call 1
Inputs
(pow.f64 x 3)
(pow.f64 x 3)
(pow.f64 x 3)
(pow.f64 x 3)
(pow.f64 x 3)
(pow.f64 x 3)
(pow.f64 x 3)
(pow.f64 x 3)
(pow.f64 x 3)
(pow.f64 x 3)
(pow.f64 x 3)
(pow.f64 x 3)
(pow.f64 x 2)
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(pow.f64 x 3)
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(pow.f64 x 3)
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(-.f64 (+.f64 1 (pow.f64 x 3)) 1)
(pow.f64 x 3)
(pow.f64 (pow.f64 x 3) 1)
(pow.f64 (pow.f64 x 3/2) 2)
(pow.f64 (pow.f64 x 9) 1/3)
(sqrt.f64 (pow.f64 x 6))
(log.f64 (exp.f64 (pow.f64 x 3)))
(cbrt.f64 (pow.f64 x 9))
(expm1.f64 (log1p.f64 (pow.f64 x 3)))
(exp.f64 (log.f64 (pow.f64 x 3)))
(log1p.f64 (expm1.f64 (pow.f64 x 3)))
(-.f64 (+.f64 1 (*.f64 x (fma.f64 x x x))) 1)
(-.f64 (/.f64 (pow.f64 x 6) (-.f64 (pow.f64 x 3) (*.f64 x x))) (/.f64 (pow.f64 x 4) (-.f64 (pow.f64 x 3) (*.f64 x x))))
(*.f64 x (fma.f64 x x x))
(*.f64 (*.f64 x x) (+.f64 x 1))
(*.f64 (*.f64 x (fma.f64 x x x)) 1)
(*.f64 1 (*.f64 x (fma.f64 x x x)))
(*.f64 (cbrt.f64 (*.f64 x (fma.f64 x x x))) (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 x x x))) 2))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 x x x))) 2) (cbrt.f64 (*.f64 x (fma.f64 x x x))))
(*.f64 (cbrt.f64 (*.f64 x x)) (*.f64 (cbrt.f64 x) (fma.f64 x x x)))
(*.f64 (hypot.f64 x (pow.f64 x 3/2)) (hypot.f64 x (pow.f64 x 3/2)))
(*.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) (fma.f64 x x x)))
(*.f64 (+.f64 (pow.f64 x 6) (pow.f64 x 9)) (/.f64 1 (+.f64 (pow.f64 x 6) (-.f64 (pow.f64 x 4) (pow.f64 x 5)))))
(*.f64 (-.f64 (pow.f64 x 6) (pow.f64 x 4)) (/.f64 1 (-.f64 (pow.f64 x 3) (*.f64 x x))))
(*.f64 (fma.f64 x x x) x)
(*.f64 (+.f64 x 1) (*.f64 x x))
(*.f64 (*.f64 (+.f64 x 1) 1) (*.f64 x x))
(*.f64 (*.f64 (+.f64 x 1) (cbrt.f64 (pow.f64 x 4))) (cbrt.f64 (*.f64 x x)))
(/.f64 1 (/.f64 (+.f64 (pow.f64 x 6) (-.f64 (pow.f64 x 4) (pow.f64 x 5))) (+.f64 (pow.f64 x 6) (pow.f64 x 9))))
(/.f64 1 (/.f64 (-.f64 (pow.f64 x 3) (*.f64 x x)) (-.f64 (pow.f64 x 6) (pow.f64 x 4))))
(/.f64 (+.f64 (pow.f64 x 6) (pow.f64 x 9)) (+.f64 (pow.f64 x 6) (-.f64 (pow.f64 x 4) (pow.f64 x 5))))
(/.f64 (+.f64 (pow.f64 x 6) (pow.f64 x 9)) (+.f64 (pow.f64 x 4) (-.f64 (pow.f64 x 6) (pow.f64 x 5))))
(/.f64 (-.f64 (pow.f64 x 6) (pow.f64 x 4)) (-.f64 (pow.f64 x 3) (*.f64 x x)))
(/.f64 (neg.f64 (+.f64 (pow.f64 x 6) (pow.f64 x 9))) (neg.f64 (+.f64 (pow.f64 x 6) (-.f64 (pow.f64 x 4) (pow.f64 x 5)))))
(/.f64 (neg.f64 (-.f64 (pow.f64 x 6) (pow.f64 x 4))) (neg.f64 (-.f64 (pow.f64 x 3) (*.f64 x x))))
(/.f64 (-.f64 (pow.f64 x 4) (pow.f64 x 6)) (-.f64 (*.f64 x x) (pow.f64 x 3)))
(pow.f64 (*.f64 x (fma.f64 x x x)) 1)
(pow.f64 (cbrt.f64 (*.f64 x (fma.f64 x x x))) 3)
(pow.f64 (pow.f64 (*.f64 x (fma.f64 x x x)) 3) 1/3)
(pow.f64 (hypot.f64 x (pow.f64 x 3/2)) 2)
(sqrt.f64 (pow.f64 (*.f64 x (fma.f64 x x x)) 2))
(log.f64 (pow.f64 (exp.f64 x) (fma.f64 x x x)))
(cbrt.f64 (pow.f64 (*.f64 x (fma.f64 x x x)) 3))
(expm1.f64 (log1p.f64 (*.f64 x (fma.f64 x x x))))
(exp.f64 (log.f64 (*.f64 x (fma.f64 x x x))))
(log1p.f64 (expm1.f64 (*.f64 x (fma.f64 x x x))))
(fma.f64 x x (pow.f64 x 3))
(fma.f64 x (*.f64 x x) (*.f64 x x))
(fma.f64 (*.f64 x x) x (*.f64 x x))
(fma.f64 1 (*.f64 x x) (pow.f64 x 3))
(fma.f64 1 (pow.f64 x 3) (*.f64 x x))
(fma.f64 (cbrt.f64 (pow.f64 x 4)) (cbrt.f64 (*.f64 x x)) (pow.f64 x 3))
(fma.f64 (pow.f64 x 3/2) (pow.f64 x 3/2) (*.f64 x x))
Outputs
(pow.f64 x 3)
(pow.f64 x 3)
(pow.f64 x 3)
(pow.f64 x 3)
(pow.f64 x 3)
(pow.f64 x 3)
(pow.f64 x 3)
(pow.f64 x 3)
(pow.f64 x 3)
(pow.f64 x 3)
(pow.f64 x 3)
(pow.f64 x 3)
(pow.f64 x 2)
(*.f64 x x)
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(pow.f64 x 3)
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(pow.f64 x 3)
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(-.f64 (+.f64 1 (pow.f64 x 3)) 1)
(pow.f64 x 3)
(pow.f64 x 3)
(pow.f64 (pow.f64 x 3) 1)
(pow.f64 x 3)
(pow.f64 (pow.f64 x 3/2) 2)
(pow.f64 x 3)
(pow.f64 (pow.f64 x 9) 1/3)
(cbrt.f64 (pow.f64 x 9))
(sqrt.f64 (pow.f64 x 6))
(pow.f64 x 3)
(log.f64 (exp.f64 (pow.f64 x 3)))
(pow.f64 x 3)
(cbrt.f64 (pow.f64 x 9))
(expm1.f64 (log1p.f64 (pow.f64 x 3)))
(pow.f64 x 3)
(exp.f64 (log.f64 (pow.f64 x 3)))
(pow.f64 x 3)
(log1p.f64 (expm1.f64 (pow.f64 x 3)))
(pow.f64 x 3)
(-.f64 (+.f64 1 (*.f64 x (fma.f64 x x x))) 1)
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(-.f64 (/.f64 (pow.f64 x 6) (-.f64 (pow.f64 x 3) (*.f64 x x))) (/.f64 (pow.f64 x 4) (-.f64 (pow.f64 x 3) (*.f64 x x))))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(*.f64 x (fma.f64 x x x))
(fma.f64 x x (pow.f64 x 3))
(*.f64 (*.f64 x x) (+.f64 x 1))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(*.f64 (*.f64 x (fma.f64 x x x)) 1)
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(*.f64 1 (*.f64 x (fma.f64 x x x)))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(*.f64 (cbrt.f64 (*.f64 x (fma.f64 x x x))) (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 x x x))) 2))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 x x x))) 2) (cbrt.f64 (*.f64 x (fma.f64 x x x))))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(*.f64 (cbrt.f64 (*.f64 x x)) (*.f64 (cbrt.f64 x) (fma.f64 x x x)))
(*.f64 (cbrt.f64 (*.f64 x x)) (*.f64 (fma.f64 x x x) (cbrt.f64 x)))
(*.f64 (fma.f64 x x x) (*.f64 (cbrt.f64 (*.f64 x x)) (cbrt.f64 x)))
(*.f64 (hypot.f64 x (pow.f64 x 3/2)) (hypot.f64 x (pow.f64 x 3/2)))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(*.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) (fma.f64 x x x)))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(*.f64 (+.f64 (pow.f64 x 6) (pow.f64 x 9)) (/.f64 1 (+.f64 (pow.f64 x 6) (-.f64 (pow.f64 x 4) (pow.f64 x 5)))))
(/.f64 (*.f64 (+.f64 (pow.f64 x 9) (pow.f64 x 6)) 1) (+.f64 (pow.f64 x 6) (-.f64 (pow.f64 x 4) (pow.f64 x 5))))
(/.f64 (+.f64 (pow.f64 x 9) (pow.f64 x 6)) (+.f64 (pow.f64 x 6) (-.f64 (pow.f64 x 4) (pow.f64 x 5))))
(*.f64 (-.f64 (pow.f64 x 6) (pow.f64 x 4)) (/.f64 1 (-.f64 (pow.f64 x 3) (*.f64 x x))))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(*.f64 (fma.f64 x x x) x)
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(*.f64 (+.f64 x 1) (*.f64 x x))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(*.f64 (*.f64 (+.f64 x 1) 1) (*.f64 x x))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(*.f64 (*.f64 (+.f64 x 1) (cbrt.f64 (pow.f64 x 4))) (cbrt.f64 (*.f64 x x)))
(*.f64 (cbrt.f64 (*.f64 x x)) (*.f64 (+.f64 x 1) (cbrt.f64 (pow.f64 x 4))))
(*.f64 (+.f64 x 1) (*.f64 (cbrt.f64 (*.f64 x x)) (cbrt.f64 (pow.f64 x 4))))
(*.f64 (cbrt.f64 (pow.f64 x 4)) (*.f64 (+.f64 x 1) (cbrt.f64 (*.f64 x x))))
(/.f64 1 (/.f64 (+.f64 (pow.f64 x 6) (-.f64 (pow.f64 x 4) (pow.f64 x 5))) (+.f64 (pow.f64 x 6) (pow.f64 x 9))))
(/.f64 (*.f64 (+.f64 (pow.f64 x 9) (pow.f64 x 6)) 1) (+.f64 (pow.f64 x 6) (-.f64 (pow.f64 x 4) (pow.f64 x 5))))
(/.f64 (+.f64 (pow.f64 x 9) (pow.f64 x 6)) (+.f64 (pow.f64 x 6) (-.f64 (pow.f64 x 4) (pow.f64 x 5))))
(/.f64 1 (/.f64 (-.f64 (pow.f64 x 3) (*.f64 x x)) (-.f64 (pow.f64 x 6) (pow.f64 x 4))))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(/.f64 (+.f64 (pow.f64 x 6) (pow.f64 x 9)) (+.f64 (pow.f64 x 6) (-.f64 (pow.f64 x 4) (pow.f64 x 5))))
(/.f64 (*.f64 (+.f64 (pow.f64 x 9) (pow.f64 x 6)) 1) (+.f64 (pow.f64 x 6) (-.f64 (pow.f64 x 4) (pow.f64 x 5))))
(/.f64 (+.f64 (pow.f64 x 9) (pow.f64 x 6)) (+.f64 (pow.f64 x 6) (-.f64 (pow.f64 x 4) (pow.f64 x 5))))
(/.f64 (+.f64 (pow.f64 x 6) (pow.f64 x 9)) (+.f64 (pow.f64 x 4) (-.f64 (pow.f64 x 6) (pow.f64 x 5))))
(/.f64 (*.f64 (+.f64 (pow.f64 x 9) (pow.f64 x 6)) 1) (+.f64 (pow.f64 x 6) (-.f64 (pow.f64 x 4) (pow.f64 x 5))))
(/.f64 (+.f64 (pow.f64 x 9) (pow.f64 x 6)) (+.f64 (pow.f64 x 6) (-.f64 (pow.f64 x 4) (pow.f64 x 5))))
(/.f64 (-.f64 (pow.f64 x 6) (pow.f64 x 4)) (-.f64 (pow.f64 x 3) (*.f64 x x)))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(/.f64 (neg.f64 (+.f64 (pow.f64 x 6) (pow.f64 x 9))) (neg.f64 (+.f64 (pow.f64 x 6) (-.f64 (pow.f64 x 4) (pow.f64 x 5)))))
(/.f64 (*.f64 (+.f64 (pow.f64 x 9) (pow.f64 x 6)) 1) (+.f64 (pow.f64 x 6) (-.f64 (pow.f64 x 4) (pow.f64 x 5))))
(/.f64 (+.f64 (pow.f64 x 9) (pow.f64 x 6)) (+.f64 (pow.f64 x 6) (-.f64 (pow.f64 x 4) (pow.f64 x 5))))
(/.f64 (neg.f64 (-.f64 (pow.f64 x 6) (pow.f64 x 4))) (neg.f64 (-.f64 (pow.f64 x 3) (*.f64 x x))))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(/.f64 (-.f64 (pow.f64 x 4) (pow.f64 x 6)) (-.f64 (*.f64 x x) (pow.f64 x 3)))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(pow.f64 (*.f64 x (fma.f64 x x x)) 1)
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(pow.f64 (cbrt.f64 (*.f64 x (fma.f64 x x x))) 3)
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(pow.f64 (pow.f64 (*.f64 x (fma.f64 x x x)) 3) 1/3)
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(pow.f64 (hypot.f64 x (pow.f64 x 3/2)) 2)
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(sqrt.f64 (pow.f64 (*.f64 x (fma.f64 x x x)) 2))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(log.f64 (pow.f64 (exp.f64 x) (fma.f64 x x x)))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(cbrt.f64 (pow.f64 (*.f64 x (fma.f64 x x x)) 3))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(expm1.f64 (log1p.f64 (*.f64 x (fma.f64 x x x))))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(exp.f64 (log.f64 (*.f64 x (fma.f64 x x x))))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(log1p.f64 (expm1.f64 (*.f64 x (fma.f64 x x x))))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(fma.f64 x (*.f64 x x) (*.f64 x x))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(fma.f64 (*.f64 x x) x (*.f64 x x))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(fma.f64 1 (*.f64 x x) (pow.f64 x 3))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(fma.f64 1 (pow.f64 x 3) (*.f64 x x))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(fma.f64 (cbrt.f64 (pow.f64 x 4)) (cbrt.f64 (*.f64 x x)) (pow.f64 x 3))
(fma.f64 (cbrt.f64 (*.f64 x x)) (cbrt.f64 (pow.f64 x 4)) (pow.f64 x 3))
(fma.f64 (pow.f64 x 3/2) (pow.f64 x 3/2) (*.f64 x x))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))

eval15.0ms (0.6%)

Compiler

Compiled 841 to 398 computations (52.7% saved)

prune10.0ms (0.4%)

Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New78381
Fresh000
Picked101
Done011
Total79483
Accurracy
100.0%
Counts
83 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(fma.f64 x x (pow.f64 x 3))
100.0%
(*.f64 (+.f64 x 1) (*.f64 x x))
100.0%
(*.f64 x (fma.f64 x x x))
97.6%
(*.f64 x x)
Compiler

Compiled 26 to 14 computations (46.2% saved)

localize2.0ms (0.1%)

Compiler

Compiled 5 to 2 computations (60% saved)

localize8.0ms (0.3%)

Local Accuracy

Found 1 expressions with local accuracy:

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

Compiled 16 to 8 computations (50% saved)

series1.0ms (0%)

Counts
1 → 12
Calls

3 calls:

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

rewrite65.0ms (2.7%)

Algorithm
batch-egg-rewrite
Rules
1376×pow1
1278×log1p-expm1-u
1278×expm1-log1p-u
1276×add-exp-log
1254×add-log-exp
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0719
114519
2184819
Stop Event
node limit
Counts
1 → 17
Calls
Call 1
Inputs
(*.f64 (+.f64 x 1) (*.f64 x x))
Outputs
(+.f64 (*.f64 x x) (pow.f64 x 3))
(+.f64 (pow.f64 x 3) (*.f64 x x))
(-.f64 (+.f64 1 (+.f64 (*.f64 x x) (pow.f64 x 3))) 1)
(/.f64 (*.f64 (*.f64 x x) (+.f64 1 (pow.f64 x 3))) (fma.f64 x x (-.f64 1 x)))
(/.f64 (*.f64 (*.f64 x x) (fma.f64 x x -1)) (+.f64 x -1))
(/.f64 (*.f64 (+.f64 1 (pow.f64 x 3)) (*.f64 x x)) (fma.f64 x x (-.f64 1 x)))
(/.f64 (*.f64 (fma.f64 x x -1) (*.f64 x x)) (+.f64 x -1))
(pow.f64 (+.f64 (*.f64 x x) (pow.f64 x 3)) 1)
(pow.f64 (cbrt.f64 (+.f64 (*.f64 x x) (pow.f64 x 3))) 3)
(pow.f64 (pow.f64 (+.f64 (*.f64 x x) (pow.f64 x 3)) 3) 1/3)
(pow.f64 (*.f64 x (sqrt.f64 (+.f64 x 1))) 2)
(sqrt.f64 (*.f64 (pow.f64 x 4) (pow.f64 (+.f64 x 1) 2)))
(log.f64 (pow.f64 (pow.f64 (exp.f64 x) x) (+.f64 x 1)))
(cbrt.f64 (pow.f64 (+.f64 (*.f64 x x) (pow.f64 x 3)) 3))
(expm1.f64 (log1p.f64 (+.f64 (*.f64 x x) (pow.f64 x 3))))
(exp.f64 (+.f64 (log1p.f64 x) (*.f64 (log.f64 x) 2)))
(log1p.f64 (expm1.f64 (+.f64 (*.f64 x x) (pow.f64 x 3))))

simplify61.0ms (2.5%)

Algorithm
egg-herbie
Rules
1706×fma-def
1132×fma-neg
762×div-sub
750×associate-*r*
676×associate-*l*
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
059481
1148477
2454457
32624457
45967457
Stop Event
node limit
Counts
29 → 29
Calls
Call 1
Inputs
(pow.f64 x 2)
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(pow.f64 x 3)
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(pow.f64 x 3)
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(+.f64 (*.f64 x x) (pow.f64 x 3))
(+.f64 (pow.f64 x 3) (*.f64 x x))
(-.f64 (+.f64 1 (+.f64 (*.f64 x x) (pow.f64 x 3))) 1)
(/.f64 (*.f64 (*.f64 x x) (+.f64 1 (pow.f64 x 3))) (fma.f64 x x (-.f64 1 x)))
(/.f64 (*.f64 (*.f64 x x) (fma.f64 x x -1)) (+.f64 x -1))
(/.f64 (*.f64 (+.f64 1 (pow.f64 x 3)) (*.f64 x x)) (fma.f64 x x (-.f64 1 x)))
(/.f64 (*.f64 (fma.f64 x x -1) (*.f64 x x)) (+.f64 x -1))
(pow.f64 (+.f64 (*.f64 x x) (pow.f64 x 3)) 1)
(pow.f64 (cbrt.f64 (+.f64 (*.f64 x x) (pow.f64 x 3))) 3)
(pow.f64 (pow.f64 (+.f64 (*.f64 x x) (pow.f64 x 3)) 3) 1/3)
(pow.f64 (*.f64 x (sqrt.f64 (+.f64 x 1))) 2)
(sqrt.f64 (*.f64 (pow.f64 x 4) (pow.f64 (+.f64 x 1) 2)))
(log.f64 (pow.f64 (pow.f64 (exp.f64 x) x) (+.f64 x 1)))
(cbrt.f64 (pow.f64 (+.f64 (*.f64 x x) (pow.f64 x 3)) 3))
(expm1.f64 (log1p.f64 (+.f64 (*.f64 x x) (pow.f64 x 3))))
(exp.f64 (+.f64 (log1p.f64 x) (*.f64 (log.f64 x) 2)))
(log1p.f64 (expm1.f64 (+.f64 (*.f64 x x) (pow.f64 x 3))))
Outputs
(pow.f64 x 2)
(*.f64 x x)
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(pow.f64 x 3)
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(pow.f64 x 3)
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(+.f64 (pow.f64 x 2) (pow.f64 x 3))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(+.f64 (*.f64 x x) (pow.f64 x 3))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(+.f64 (pow.f64 x 3) (*.f64 x x))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(-.f64 (+.f64 1 (+.f64 (*.f64 x x) (pow.f64 x 3))) 1)
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(/.f64 (*.f64 (*.f64 x x) (+.f64 1 (pow.f64 x 3))) (fma.f64 x x (-.f64 1 x)))
(/.f64 (*.f64 (*.f64 x x) (+.f64 (pow.f64 x 3) 1)) (fma.f64 x x (-.f64 1 x)))
(/.f64 (+.f64 (*.f64 x x) (*.f64 x (pow.f64 x 4))) (fma.f64 x x (-.f64 1 x)))
(/.f64 (fma.f64 x x (pow.f64 x 5)) (-.f64 (fma.f64 x x 1) x))
(/.f64 (*.f64 (*.f64 x x) (fma.f64 x x -1)) (+.f64 x -1))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(/.f64 (*.f64 (+.f64 1 (pow.f64 x 3)) (*.f64 x x)) (fma.f64 x x (-.f64 1 x)))
(/.f64 (*.f64 (*.f64 x x) (+.f64 (pow.f64 x 3) 1)) (fma.f64 x x (-.f64 1 x)))
(/.f64 (+.f64 (*.f64 x x) (*.f64 x (pow.f64 x 4))) (fma.f64 x x (-.f64 1 x)))
(/.f64 (fma.f64 x x (pow.f64 x 5)) (-.f64 (fma.f64 x x 1) x))
(/.f64 (*.f64 (fma.f64 x x -1) (*.f64 x x)) (+.f64 x -1))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(pow.f64 (+.f64 (*.f64 x x) (pow.f64 x 3)) 1)
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(pow.f64 (cbrt.f64 (+.f64 (*.f64 x x) (pow.f64 x 3))) 3)
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(pow.f64 (pow.f64 (+.f64 (*.f64 x x) (pow.f64 x 3)) 3) 1/3)
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(pow.f64 (*.f64 x (sqrt.f64 (+.f64 x 1))) 2)
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(sqrt.f64 (*.f64 (pow.f64 x 4) (pow.f64 (+.f64 x 1) 2)))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(log.f64 (pow.f64 (pow.f64 (exp.f64 x) x) (+.f64 x 1)))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(cbrt.f64 (pow.f64 (+.f64 (*.f64 x x) (pow.f64 x 3)) 3))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(expm1.f64 (log1p.f64 (+.f64 (*.f64 x x) (pow.f64 x 3))))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(exp.f64 (+.f64 (log1p.f64 x) (*.f64 (log.f64 x) 2)))
(exp.f64 (+.f64 (log1p.f64 x) (*.f64 2 (log.f64 x))))
(*.f64 (*.f64 x x) (exp.f64 (log1p.f64 x)))
(*.f64 x (*.f64 x (exp.f64 (log1p.f64 x))))
(log1p.f64 (expm1.f64 (+.f64 (*.f64 x x) (pow.f64 x 3))))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))

localize5.0ms (0.2%)

Compiler

Compiled 12 to 7 computations (41.7% saved)

eval5.0ms (0.2%)

Compiler

Compiled 270 to 151 computations (44.1% saved)

prune6.0ms (0.2%)

Pruning

4 alts after pruning (0 fresh and 4 done)

PrunedKeptTotal
New29029
Fresh000
Picked011
Done033
Total29433
Accurracy
100.0%
Counts
33 → 4
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(fma.f64 x x (pow.f64 x 3))
100.0%
(*.f64 (+.f64 x 1) (*.f64 x x))
100.0%
(*.f64 x (fma.f64 x x x))
97.6%
(*.f64 x x)
Compiler

Compiled 26 to 14 computations (46.2% saved)

regimes6.0ms (0.3%)

Counts
5 → 1
Calls
Call 1
Inputs
(*.f64 x x)
(*.f64 (+.f64 x 1) (*.f64 x x))
(+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))
(*.f64 x (fma.f64 x x x))
(fma.f64 x x (pow.f64 x 3))
Outputs
(fma.f64 x x (pow.f64 x 3))
Calls

2 calls:

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

Compiled 44 to 17 computations (61.4% saved)

regimes13.0ms (0.5%)

Accuracy

Total -1.5b remaining (-6340.6%)

Threshold costs -1.5b (-6340.6%)

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

2 calls:

9.0ms
(+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))
3.0ms
x
Results
AccuracySegmentsBranch
100.0%1x
100.0%1(+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))
Compiler

Compiled 38 to 14 computations (63.2% saved)

simplify5.0ms (0.2%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01141
11641
Stop Event
done
saturated
Calls
Call 1
Inputs
(fma.f64 x x (pow.f64 x 3))
(*.f64 (+.f64 x 1) (*.f64 x x))
(*.f64 x x)
Outputs
(fma.f64 x x (pow.f64 x 3))
(*.f64 (+.f64 x 1) (*.f64 x x))
(*.f64 x x)
Compiler

Compiled 19 to 11 computations (42.1% saved)

soundness482.0ms (20.2%)

Rules
2556×sqr-pow
1566×cube-prod
1492×log-prod
1448×fma-neg
1388×pow1
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01201249
12821219
29191219
345421219
0619
11715
23415
34915
47415
512615
624215
769915
8139715
9149815
10163115
11178915
12202515
13233615
14274115
15322215
16378915
17446915
18474015
19498015
20516015
21528815
22535815
23627215
24723915
25762315
26792715
037420
188336
2294336
31868336
44898336
0626
113722
2187222
Stop Event
node limit
node limit
node limit
node limit
Compiler

Compiled 68 to 32 computations (52.9% saved)

end20.0ms (0.8%)

Compiler

Compiled 17 to 8 computations (52.9% saved)

Profiling

Loading profile data...