Expression 3, p15

Time bar (total: 3.0s)

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)

sample914.0ms (30.7%)

Results
903.0ms8256×body256valid
Bogosity

preprocess138.0ms (4.6%)

Algorithm
egg-herbie
Rules
1608×fma-def
968×unswap-sqr
952×difference-of-squares
582×distribute-lft-neg-out
556×distribute-lft-neg-in
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01161
14449
214649
343649
4100949
5183549
6316149
7428649
8631349
Stop Event
node limit
Calls
Call 1
Inputs
(+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))
(+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))
(+.f64 (*.f64 (neg.f64 x) (*.f64 (neg.f64 x) (neg.f64 x))) (*.f64 (neg.f64 x) (neg.f64 x)))
Outputs
(+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))
(*.f64 x (+.f64 (*.f64 x x) x))
(*.f64 x (fma.f64 x x x))
(fma.f64 x x (pow.f64 x 3))
(+.f64 (*.f64 x (*.f64 x x)) (*.f64 x x))
(*.f64 x (+.f64 (*.f64 x x) x))
(*.f64 x (fma.f64 x x x))
(fma.f64 x x (pow.f64 x 3))
(+.f64 (*.f64 (neg.f64 x) (*.f64 (neg.f64 x) (neg.f64 x))) (*.f64 (neg.f64 x) (neg.f64 x)))
(+.f64 (*.f64 x x) (pow.f64 (neg.f64 x) 3))
(-.f64 (*.f64 x x) (pow.f64 x 3))
(*.f64 (*.f64 x x) (-.f64 1 x))
Compiler

Compiled 10 to 4 computations (60% saved)

eval1.0ms (0%)

Compiler

Compiled 20 to 9 computations (55% saved)

prune2.0ms (0.1%)

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

Compiled 30 to 16 computations (46.7% saved)

localize40.0ms (1.4%)

Localize:

Found 2 expressions with local error:

NewAccuracyProgram
100.0%
(pow.f64 x 3)
100.0%
(*.f64 x (+.f64 (*.f64 x x) x))
Compiler

Compiled 29 to 11 computations (62.1% saved)

series3.0ms (0.1%)

Counts
2 → 12
Calls

6 calls:

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

rewrite137.0ms (4.6%)

Algorithm
batch-egg-rewrite
Rules
1720×pow1
1608×add-exp-log
1606×log1p-expm1-u
1606×expm1-log1p-u
1576×add-log-exp
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0822
118022
2233022
Stop Event
node limit
Counts
2 → 44
Calls
Call 1
Inputs
(*.f64 x (+.f64 (*.f64 x x) x))
(pow.f64 x 3)
Outputs
(+.f64 (*.f64 x x) (pow.f64 x 3))
(+.f64 (pow.f64 x 3) (*.f64 x x))
(-.f64 (+.f64 1 (*.f64 x (fma.f64 x x x))) 1)
(/.f64 (+.f64 (pow.f64 (pow.f64 x 3) 3) (pow.f64 x 6)) (+.f64 (pow.f64 x 6) (-.f64 (pow.f64 x 4) (*.f64 (pow.f64 x 3) (*.f64 x x)))))
(/.f64 (-.f64 (pow.f64 x 6) (pow.f64 x 4)) (-.f64 (pow.f64 x 3) (*.f64 x x)))
(/.f64 (*.f64 x (+.f64 (pow.f64 x 3) (pow.f64 x 6))) (+.f64 (pow.f64 x 4) (-.f64 (*.f64 x x) (pow.f64 x 3))))
(/.f64 (*.f64 x (-.f64 (pow.f64 x 4) (*.f64 x x))) (fma.f64 x x (neg.f64 x)))
(/.f64 (*.f64 (+.f64 (pow.f64 x 3) (pow.f64 x 6)) x) (+.f64 (pow.f64 x 4) (-.f64 (*.f64 x x) (pow.f64 x 3))))
(/.f64 (*.f64 (-.f64 (pow.f64 x 4) (*.f64 x x)) x) (fma.f64 x x (neg.f64 x)))
(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 (pow.f64 x 3/2) 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))
(cbrt.f64 (*.f64 (pow.f64 x 3) (pow.f64 (fma.f64 x x x) 3)))
(cbrt.f64 (*.f64 (pow.f64 (fma.f64 x x x) 3) (pow.f64 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 (*.f64 x x) (*.f64 x x))
(fma.f64 (*.f64 x x) x (*.f64 x x))
(fma.f64 1 (pow.f64 x 3) (*.f64 x x))
(fma.f64 (pow.f64 x 3/2) (pow.f64 x 3/2) (*.f64 x x))
(-.f64 (+.f64 1 (pow.f64 x 3)) 1)
(*.f64 x (*.f64 x x))
(*.f64 (*.f64 x x) x)
(*.f64 (pow.f64 x 3) 1)
(*.f64 1 (pow.f64 x 3))
(*.f64 (cbrt.f64 (*.f64 x x)) (*.f64 (cbrt.f64 x) (*.f64 x x)))
(*.f64 (cbrt.f64 (pow.f64 x 4)) (*.f64 (cbrt.f64 (*.f64 x x)) x))
(*.f64 (pow.f64 x 3/2) (pow.f64 x 3/2))
(*.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) (*.f64 x x)))
(*.f64 (pow.f64 (sqrt.f64 x) 3) (pow.f64 (sqrt.f64 x) 3))
(*.f64 (*.f64 x (cbrt.f64 (pow.f64 x 4))) (cbrt.f64 (*.f64 x x)))
(*.f64 (*.f64 (*.f64 x x) (cbrt.f64 (*.f64 x x))) (cbrt.f64 x))
(*.f64 (*.f64 (*.f64 x x) (sqrt.f64 x)) (sqrt.f64 x))
(sqrt.f64 (pow.f64 x 6))
(log.f64 (exp.f64 (pow.f64 x 3)))
(cbrt.f64 (pow.f64 (pow.f64 x 3) 3))
(expm1.f64 (log1p.f64 (pow.f64 x 3)))
(exp.f64 (*.f64 3 (log.f64 x)))
(log1p.f64 (expm1.f64 (pow.f64 x 3)))

simplify197.0ms (6.6%)

Algorithm
egg-herbie
Rules
858×fma-def
808×fma-neg
708×difference-of-squares
702×cancel-sign-sub-inv
696×associate-+r+
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01121002
1264984
2805958
33735896
Stop Event
node limit
Counts
56 → 69
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 x (fma.f64 x x x))) 1)
(/.f64 (+.f64 (pow.f64 (pow.f64 x 3) 3) (pow.f64 x 6)) (+.f64 (pow.f64 x 6) (-.f64 (pow.f64 x 4) (*.f64 (pow.f64 x 3) (*.f64 x x)))))
(/.f64 (-.f64 (pow.f64 x 6) (pow.f64 x 4)) (-.f64 (pow.f64 x 3) (*.f64 x x)))
(/.f64 (*.f64 x (+.f64 (pow.f64 x 3) (pow.f64 x 6))) (+.f64 (pow.f64 x 4) (-.f64 (*.f64 x x) (pow.f64 x 3))))
(/.f64 (*.f64 x (-.f64 (pow.f64 x 4) (*.f64 x x))) (fma.f64 x x (neg.f64 x)))
(/.f64 (*.f64 (+.f64 (pow.f64 x 3) (pow.f64 x 6)) x) (+.f64 (pow.f64 x 4) (-.f64 (*.f64 x x) (pow.f64 x 3))))
(/.f64 (*.f64 (-.f64 (pow.f64 x 4) (*.f64 x x)) x) (fma.f64 x x (neg.f64 x)))
(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 (pow.f64 x 3/2) 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))
(cbrt.f64 (*.f64 (pow.f64 x 3) (pow.f64 (fma.f64 x x x) 3)))
(cbrt.f64 (*.f64 (pow.f64 (fma.f64 x x x) 3) (pow.f64 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 (*.f64 x x) (*.f64 x x))
(fma.f64 (*.f64 x x) x (*.f64 x x))
(fma.f64 1 (pow.f64 x 3) (*.f64 x x))
(fma.f64 (pow.f64 x 3/2) (pow.f64 x 3/2) (*.f64 x x))
(-.f64 (+.f64 1 (pow.f64 x 3)) 1)
(*.f64 x (*.f64 x x))
(*.f64 (*.f64 x x) x)
(*.f64 (pow.f64 x 3) 1)
(*.f64 1 (pow.f64 x 3))
(*.f64 (cbrt.f64 (*.f64 x x)) (*.f64 (cbrt.f64 x) (*.f64 x x)))
(*.f64 (cbrt.f64 (pow.f64 x 4)) (*.f64 (cbrt.f64 (*.f64 x x)) x))
(*.f64 (pow.f64 x 3/2) (pow.f64 x 3/2))
(*.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) (*.f64 x x)))
(*.f64 (pow.f64 (sqrt.f64 x) 3) (pow.f64 (sqrt.f64 x) 3))
(*.f64 (*.f64 x (cbrt.f64 (pow.f64 x 4))) (cbrt.f64 (*.f64 x x)))
(*.f64 (*.f64 (*.f64 x x) (cbrt.f64 (*.f64 x x))) (cbrt.f64 x))
(*.f64 (*.f64 (*.f64 x x) (sqrt.f64 x)) (sqrt.f64 x))
(sqrt.f64 (pow.f64 x 6))
(log.f64 (exp.f64 (pow.f64 x 3)))
(cbrt.f64 (pow.f64 (pow.f64 x 3) 3))
(expm1.f64 (log1p.f64 (pow.f64 x 3)))
(exp.f64 (*.f64 3 (log.f64 x)))
(log1p.f64 (expm1.f64 (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 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 (pow.f64 x 3) 3) (pow.f64 x 6)) (+.f64 (pow.f64 x 6) (-.f64 (pow.f64 x 4) (*.f64 (pow.f64 x 3) (*.f64 x x)))))
(/.f64 (+.f64 (pow.f64 (pow.f64 x 3) 3) (pow.f64 x 6)) (-.f64 (+.f64 (pow.f64 x 6) (pow.f64 x 4)) (*.f64 (pow.f64 x 3) (*.f64 x x))))
(/.f64 (+.f64 (pow.f64 (pow.f64 x 3) 3) (pow.f64 x 6)) (+.f64 (pow.f64 x 6) (-.f64 (pow.f64 x 4) (*.f64 x (pow.f64 x 4)))))
(/.f64 (+.f64 (pow.f64 x 3) 1) (/.f64 (+.f64 (pow.f64 x 6) (-.f64 (pow.f64 x 4) (pow.f64 x 5))) (pow.f64 x 6)))
(/.f64 (fma.f64 x (pow.f64 x 8) (pow.f64 x 6)) (*.f64 (pow.f64 x 4) (-.f64 (fma.f64 x x 1) x)))
(/.f64 (-.f64 (pow.f64 x 6) (pow.f64 x 4)) (-.f64 (pow.f64 x 3) (*.f64 x x)))
(/.f64 (fma.f64 x x (pow.f64 x 3)) 1)
(/.f64 (*.f64 x (+.f64 (pow.f64 x 3) (pow.f64 x 6))) (+.f64 (pow.f64 x 4) (-.f64 (*.f64 x x) (pow.f64 x 3))))
(/.f64 x (/.f64 (+.f64 (pow.f64 x 4) (-.f64 (*.f64 x x) (pow.f64 x 3))) (+.f64 (pow.f64 x 3) (pow.f64 x 6))))
(/.f64 (+.f64 (pow.f64 x 4) (pow.f64 x 7)) (+.f64 (pow.f64 x 4) (fma.f64 x x (neg.f64 (pow.f64 x 3)))))
(/.f64 (+.f64 (pow.f64 x 4) (pow.f64 x 7)) (-.f64 (fma.f64 x x (pow.f64 x 4)) (pow.f64 x 3)))
(/.f64 (+.f64 (pow.f64 x 4) (pow.f64 x 7)) (*.f64 (*.f64 x x) (-.f64 (fma.f64 x x 1) x)))
(/.f64 (*.f64 x (-.f64 (pow.f64 x 4) (*.f64 x x))) (fma.f64 x x (neg.f64 x)))
(/.f64 x (/.f64 (fma.f64 x x (neg.f64 x)) (-.f64 (pow.f64 x 4) (*.f64 x x))))
(*.f64 (/.f64 x (-.f64 (*.f64 x x) x)) (-.f64 (pow.f64 x 4) (*.f64 x x)))
(/.f64 (-.f64 (pow.f64 x 5) (pow.f64 x 3)) (-.f64 (*.f64 x x) x))
(*.f64 x (/.f64 (fma.f64 x x x) 1))
(/.f64 (*.f64 (+.f64 (pow.f64 x 3) (pow.f64 x 6)) x) (+.f64 (pow.f64 x 4) (-.f64 (*.f64 x x) (pow.f64 x 3))))
(/.f64 x (/.f64 (+.f64 (pow.f64 x 4) (-.f64 (*.f64 x x) (pow.f64 x 3))) (+.f64 (pow.f64 x 3) (pow.f64 x 6))))
(/.f64 (+.f64 (pow.f64 x 4) (pow.f64 x 7)) (+.f64 (pow.f64 x 4) (fma.f64 x x (neg.f64 (pow.f64 x 3)))))
(/.f64 (+.f64 (pow.f64 x 4) (pow.f64 x 7)) (-.f64 (fma.f64 x x (pow.f64 x 4)) (pow.f64 x 3)))
(/.f64 (+.f64 (pow.f64 x 4) (pow.f64 x 7)) (*.f64 (*.f64 x x) (-.f64 (fma.f64 x x 1) x)))
(/.f64 (*.f64 (-.f64 (pow.f64 x 4) (*.f64 x x)) x) (fma.f64 x x (neg.f64 x)))
(/.f64 x (/.f64 (fma.f64 x x (neg.f64 x)) (-.f64 (pow.f64 x 4) (*.f64 x x))))
(*.f64 (/.f64 x (-.f64 (*.f64 x x) x)) (-.f64 (pow.f64 x 4) (*.f64 x x)))
(/.f64 (-.f64 (pow.f64 x 5) (pow.f64 x 3)) (-.f64 (*.f64 x x) x))
(*.f64 x (/.f64 (fma.f64 x x x) 1))
(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 (pow.f64 x 3/2) x) 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))
(cbrt.f64 (*.f64 (pow.f64 x 3) (pow.f64 (fma.f64 x x x) 3)))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(cbrt.f64 (*.f64 (pow.f64 (fma.f64 x x x) 3) (pow.f64 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 (*.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 (pow.f64 x 3) (*.f64 x x))
(fma.f64 x x (pow.f64 x 3))
(*.f64 x (fma.f64 x x x))
(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))
(-.f64 (+.f64 1 (pow.f64 x 3)) 1)
(pow.f64 x 3)
(*.f64 x (*.f64 x x))
(pow.f64 x 3)
(*.f64 (*.f64 x x) x)
(pow.f64 x 3)
(*.f64 (pow.f64 x 3) 1)
(pow.f64 x 3)
(*.f64 1 (pow.f64 x 3))
(pow.f64 x 3)
(*.f64 (cbrt.f64 (*.f64 x x)) (*.f64 (cbrt.f64 x) (*.f64 x x)))
(*.f64 (cbrt.f64 (*.f64 x x)) (*.f64 (*.f64 x x) (cbrt.f64 x)))
(*.f64 x (*.f64 x (*.f64 (cbrt.f64 (*.f64 x x)) (cbrt.f64 x))))
(*.f64 (*.f64 x x) (*.f64 (cbrt.f64 (*.f64 x x)) (cbrt.f64 x)))
(*.f64 (cbrt.f64 (pow.f64 x 4)) (*.f64 (cbrt.f64 (*.f64 x x)) x))
(*.f64 (cbrt.f64 (pow.f64 x 4)) (*.f64 x (cbrt.f64 (*.f64 x x))))
(*.f64 x (*.f64 (cbrt.f64 (*.f64 x x)) (cbrt.f64 (pow.f64 x 4))))
(*.f64 (cbrt.f64 (*.f64 x x)) (*.f64 x (cbrt.f64 (pow.f64 x 4))))
(*.f64 (pow.f64 x 3/2) (pow.f64 x 3/2))
(pow.f64 x 3)
(*.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) (*.f64 x x)))
(pow.f64 x 3)
(*.f64 (pow.f64 (sqrt.f64 x) 3) (pow.f64 (sqrt.f64 x) 3))
(pow.f64 x 3)
(*.f64 (*.f64 x (cbrt.f64 (pow.f64 x 4))) (cbrt.f64 (*.f64 x x)))
(*.f64 (cbrt.f64 (pow.f64 x 4)) (*.f64 x (cbrt.f64 (*.f64 x x))))
(*.f64 x (*.f64 (cbrt.f64 (*.f64 x x)) (cbrt.f64 (pow.f64 x 4))))
(*.f64 (cbrt.f64 (*.f64 x x)) (*.f64 x (cbrt.f64 (pow.f64 x 4))))
(*.f64 (*.f64 (*.f64 x x) (cbrt.f64 (*.f64 x x))) (cbrt.f64 x))
(*.f64 (cbrt.f64 (*.f64 x x)) (*.f64 (*.f64 x x) (cbrt.f64 x)))
(*.f64 x (*.f64 x (*.f64 (cbrt.f64 (*.f64 x x)) (cbrt.f64 x))))
(*.f64 (*.f64 x x) (*.f64 (cbrt.f64 (*.f64 x x)) (cbrt.f64 x)))
(*.f64 (*.f64 (*.f64 x x) (sqrt.f64 x)) (sqrt.f64 x))
(pow.f64 x 3)
(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 (pow.f64 x 3) 3))
(pow.f64 x 3)
(expm1.f64 (log1p.f64 (pow.f64 x 3)))
(pow.f64 x 3)
(exp.f64 (*.f64 3 (log.f64 x)))
(pow.f64 x 3)
(log1p.f64 (expm1.f64 (pow.f64 x 3)))
(pow.f64 x 3)

eval62.0ms (2.1%)

Compiler

Compiled 804 to 394 computations (51% saved)

prune49.0ms (1.6%)

Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New67269
Fresh000
Picked112
Done000
Total68371
Accuracy
100.0%
Counts
71 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(fma.f64 x x (*.f64 (*.f64 x x) x))
100.0%
(*.f64 x (+.f64 (*.f64 x x) x))
97.9%
(*.f64 x x)
100.0%
(fma.f64 x x (*.f64 (*.f64 x x) x))
100.0%
(*.f64 x (+.f64 (*.f64 x x) x))
97.9%
(*.f64 x x)
Compiler

Compiled 42 to 20 computations (52.4% saved)

localize84.0ms (2.8%)

Localize:

Found 1 expressions with local error:

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

Compiled 23 to 5 computations (78.3% saved)

series2.0ms (0.1%)

Counts
1 → 12
Calls

3 calls:

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

rewrite164.0ms (5.5%)

Algorithm
batch-egg-rewrite
Rules
820×pow1
788×add-sqr-sqrt
770×*-un-lft-identity
760×add-exp-log
760×log1p-expm1-u
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
057
11007
211337
Stop Event
node limit
Counts
1 → 20
Calls
Call 1
Inputs
(*.f64 (*.f64 x x) x)
Outputs
(+.f64 0 (pow.f64 x 3))
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (pow.f64 x 3)))) (log.f64 (sqrt.f64 (exp.f64 (pow.f64 x 3)))))
(+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (pow.f64 x 3))) (cbrt.f64 (exp.f64 (pow.f64 x 3))))) (log.f64 (cbrt.f64 (exp.f64 (pow.f64 x 3)))))
(-.f64 (+.f64 1 (pow.f64 x 3)) 1)
(pow.f64 x 3)
(pow.f64 (*.f64 x x) 3/2)
(pow.f64 (pow.f64 x 3) 1)
(pow.f64 (cbrt.f64 x) 9)
(pow.f64 (pow.f64 x 9) 1/3)
(pow.f64 (pow.f64 x 6) 1/2)
(pow.f64 (sqrt.f64 x) 6)
(pow.f64 (pow.f64 x 3/2) 2)
(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 (*.f64 (log.f64 x) 3))
(exp.f64 (*.f64 (log.f64 (pow.f64 x 9)) 1/3))
(exp.f64 (*.f64 (*.f64 3/2 (log.f64 x)) 2))
(log1p.f64 (expm1.f64 (pow.f64 x 3)))

simplify229.0ms (7.7%)

Algorithm
egg-herbie
Rules
1268×unswap-sqr
908×fma-def
760×log-prod
472×exp-prod
444×fma-neg
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
055284
1114270
2268246
3993246
44597246
57758246
Stop Event
node limit
Counts
32 → 22
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)
(+.f64 0 (pow.f64 x 3))
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (pow.f64 x 3)))) (log.f64 (sqrt.f64 (exp.f64 (pow.f64 x 3)))))
(+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (pow.f64 x 3))) (cbrt.f64 (exp.f64 (pow.f64 x 3))))) (log.f64 (cbrt.f64 (exp.f64 (pow.f64 x 3)))))
(-.f64 (+.f64 1 (pow.f64 x 3)) 1)
(pow.f64 x 3)
(pow.f64 (*.f64 x x) 3/2)
(pow.f64 (pow.f64 x 3) 1)
(pow.f64 (cbrt.f64 x) 9)
(pow.f64 (pow.f64 x 9) 1/3)
(pow.f64 (pow.f64 x 6) 1/2)
(pow.f64 (sqrt.f64 x) 6)
(pow.f64 (pow.f64 x 3/2) 2)
(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 (*.f64 (log.f64 x) 3))
(exp.f64 (*.f64 (log.f64 (pow.f64 x 9)) 1/3))
(exp.f64 (*.f64 (*.f64 3/2 (log.f64 x)) 2))
(log1p.f64 (expm1.f64 (pow.f64 x 3)))
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)
(+.f64 0 (pow.f64 x 3))
(pow.f64 x 3)
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (pow.f64 x 3)))) (log.f64 (sqrt.f64 (exp.f64 (pow.f64 x 3)))))
(pow.f64 x 3)
(+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (pow.f64 x 3))) (cbrt.f64 (exp.f64 (pow.f64 x 3))))) (log.f64 (cbrt.f64 (exp.f64 (pow.f64 x 3)))))
(+.f64 (*.f64 2 (log.f64 (cbrt.f64 (exp.f64 (pow.f64 x 3))))) (log.f64 (cbrt.f64 (exp.f64 (pow.f64 x 3)))))
(*.f64 3 (log.f64 (cbrt.f64 (exp.f64 (pow.f64 x 3)))))
(-.f64 (+.f64 1 (pow.f64 x 3)) 1)
(pow.f64 x 3)
(pow.f64 x 3)
(pow.f64 (*.f64 x x) 3/2)
(pow.f64 x 3)
(pow.f64 (pow.f64 x 3) 1)
(pow.f64 x 3)
(pow.f64 (cbrt.f64 x) 9)
(pow.f64 (pow.f64 x 9) 1/3)
(pow.f64 x 3)
(pow.f64 (pow.f64 x 6) 1/2)
(pow.f64 x 3)
(pow.f64 (sqrt.f64 x) 6)
(pow.f64 x 3)
(pow.f64 (pow.f64 x 3/2) 2)
(pow.f64 x 3)
(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))
(pow.f64 x 3)
(expm1.f64 (log1p.f64 (pow.f64 x 3)))
(pow.f64 x 3)
(exp.f64 (*.f64 (log.f64 x) 3))
(pow.f64 x 3)
(exp.f64 (*.f64 (log.f64 (pow.f64 x 9)) 1/3))
(pow.f64 x 3)
(exp.f64 (*.f64 (*.f64 3/2 (log.f64 x)) 2))
(pow.f64 x 3)
(log1p.f64 (expm1.f64 (pow.f64 x 3)))
(pow.f64 x 3)

eval23.0ms (0.8%)

Compiler

Compiled 212 to 140 computations (34% saved)

prune44.0ms (1.5%)

Pruning

3 alts after pruning (0 fresh and 3 done)

PrunedKeptTotal
New22022
Fresh000
Picked022
Done011
Total22325
Accuracy
100.0%
Counts
25 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(fma.f64 x x (*.f64 (*.f64 x x) x))
100.0%
(*.f64 x (+.f64 (*.f64 x x) x))
97.9%
(*.f64 x x)
Compiler

Compiled 55 to 21 computations (61.8% saved)

regimes28.0ms (0.9%)

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

2 calls:

13.0ms
x
10.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 46 to 16 computations (65.2% saved)

regimes43.0ms (1.4%)

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

2 calls:

38.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 32 to 11 computations (65.6% saved)

regimes3.0ms (0.1%)

Accuracy

Total -0.0b remaining (-0%)

Threshold costs -0b (-0%)

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

1 calls:

2.0ms
x
Results
AccuracySegmentsBranch
97.9%1x
Compiler

Compiled 6 to 3 computations (50% saved)

simplify5.0ms (0.2%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0947
11247
Stop Event
done
saturated
Calls
Call 1
Inputs
(fma.f64 x x (*.f64 (*.f64 x x) x))
(*.f64 x (+.f64 (*.f64 x x) x))
(*.f64 x x)
Outputs
(fma.f64 x x (*.f64 (*.f64 x x) x))
(fma.f64 x x (*.f64 x (*.f64 x x)))
(*.f64 x (+.f64 (*.f64 x x) x))
(*.f64 x (+.f64 x (*.f64 x x)))
(*.f64 x x)
Compiler

Compiled 21 to 10 computations (52.4% saved)

soundness751.0ms (25.2%)

Rules
1720×pow1
1608×fma-def
1608×add-exp-log
1608×fma-def
1606×log1p-expm1-u
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01161
14449
214649
343649
4100949
5183549
6316149
7428649
8631349
0822
118022
2233022
01161
14449
214649
343649
4100949
5183549
6316149
7428649
8631349
01121002
1264984
2805958
33735896
Stop Event
node limit
node limit
node limit
node limit
Compiler

Compiled 123 to 38 computations (69.1% saved)

end0.0ms (0%)

preprocess59.0ms (2%)

Compiler

Compiled 74 to 30 computations (59.5% saved)

Profiling

Loading profile data...