FastMath repmul

Time bar (total: 1.4s)

analyze0.0ms (0%)

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

Compiled 9 to 5 computations (44.4% saved)

sample571.0ms (40%)

Results
342.0ms5107×body256valid
217.0ms3149×body256infinite
Bogosity

preprocess142.0ms (9.9%)

Algorithm
egg-herbie
Rules
1604×fma-def
1548×unswap-sqr
1480×fma-neg
688×neg-mul-1
664×neg-sub0
Problems
256×No Errors
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01393
13257
29430
318730
429330
566030
6149830
7308030
8530730
9634030
10740030
11793930
Stop Event
node limit
Calls
Call 1
Inputs
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
(*.f64 (*.f64 (*.f64 (neg.f64 d1) (neg.f64 d1)) (neg.f64 d1)) (neg.f64 d1))
Outputs
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
(*.f64 d1 (pow.f64 d1 3))
(pow.f64 d1 4)
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
(*.f64 d1 (pow.f64 d1 3))
(pow.f64 d1 4)
(*.f64 (*.f64 (*.f64 (neg.f64 d1) (neg.f64 d1)) (neg.f64 d1)) (neg.f64 d1))
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
(*.f64 d1 (pow.f64 d1 3))
(pow.f64 d1 4)
Symmetry

(abs d1)

Compiler

Compiled 26 to 9 computations (65.4% saved)

eval1.0ms (0%)

Compiler

Compiled 16 to 8 computations (50% saved)

prune3.0ms (0.2%)

Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(pow.f64 d1 4)
99.9%
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
99.8%
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
100.0%
(pow.f64 d1 4)
99.9%
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
99.8%
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
Compiler

Compiled 40 to 20 computations (50% saved)

localize36.0ms (2.5%)

Localize:

Found 3 expressions with local error:

NewAccuracyProgram
99.9%
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
99.9%
(*.f64 (*.f64 d1 d1) d1)
99.8%
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
Compiler

Compiled 34 to 9 computations (73.5% saved)

series2.0ms (0.1%)

Counts
3 → 36
Calls

9 calls:

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

rewrite102.0ms (7.2%)

Algorithm
batch-egg-rewrite
Rules
928×associate-*l*
492×unpow-prod-down
450×prod-exp
326×log-prod
308×cbrt-prod
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0942
110730
287230
Stop Event
node limit
Counts
3 → 90
Calls
Call 1
Inputs
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
(*.f64 (*.f64 d1 d1) d1)
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
Outputs
(+.f64 (+.f64 1 (pow.f64 d1 4)) -1)
(+.f64 0 (pow.f64 d1 4))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (pow.f64 d1 4))) 2)) (log.f64 (cbrt.f64 (exp.f64 (pow.f64 d1 4)))))
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (pow.f64 d1 4)))) (log.f64 (sqrt.f64 (exp.f64 (pow.f64 d1 4)))))
(-.f64 (+.f64 1 (pow.f64 d1 4)) 1)
(/.f64 (-.f64 (pow.f64 (+.f64 1 (pow.f64 d1 4)) 3) 1) (+.f64 (*.f64 (+.f64 1 (pow.f64 d1 4)) (+.f64 1 (pow.f64 d1 4))) (+.f64 1 (*.f64 (+.f64 1 (pow.f64 d1 4)) 1))))
(/.f64 (-.f64 (*.f64 (+.f64 1 (pow.f64 d1 4)) (+.f64 1 (pow.f64 d1 4))) 1) (+.f64 (+.f64 1 (pow.f64 d1 4)) 1))
(pow.f64 d1 4)
(pow.f64 (pow.f64 d1 2) 2)
(pow.f64 (pow.f64 d1 4) 1)
(pow.f64 (pow.f64 d1 3) 4/3)
(pow.f64 (cbrt.f64 d1) 12)
(pow.f64 (cbrt.f64 (pow.f64 d1 2)) 6)
(pow.f64 (cbrt.f64 (pow.f64 d1 4)) 3)
(pow.f64 (pow.f64 d1 6) 2/3)
(pow.f64 (pow.f64 d1 8) 1/2)
(pow.f64 (pow.f64 d1 12) 1/3)
(pow.f64 (sqrt.f64 d1) 8)
(pow.f64 (E.f64) (*.f64 (log.f64 d1) 4))
(pow.f64 (exp.f64 2) (*.f64 2 (log.f64 d1)))
(pow.f64 (exp.f64 (cbrt.f64 (pow.f64 (*.f64 (log.f64 d1) 4) 2))) (cbrt.f64 (*.f64 (log.f64 d1) 4)))
(pow.f64 (exp.f64 (sqrt.f64 (*.f64 (log.f64 d1) 4))) (sqrt.f64 (*.f64 (log.f64 d1) 4)))
(sqrt.f64 (pow.f64 d1 8))
(fabs.f64 (pow.f64 d1 4))
(log.f64 (exp.f64 (pow.f64 d1 4)))
(cbrt.f64 (pow.f64 d1 12))
(expm1.f64 (log1p.f64 (pow.f64 d1 4)))
(exp.f64 (*.f64 (log.f64 d1) 4))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (pow.f64 d1 4))) 3))
(exp.f64 (*.f64 (log.f64 (pow.f64 d1 12)) 1/3))
(log1p.f64 (expm1.f64 (pow.f64 d1 4)))
(+.f64 (+.f64 1 (pow.f64 d1 3)) -1)
(+.f64 0 (pow.f64 d1 3))
(+.f64 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (pow.f64 d1 3)) 2))) (log.f64 (cbrt.f64 (exp.f64 (pow.f64 d1 3)))))
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (pow.f64 d1 3)))) (log.f64 (sqrt.f64 (exp.f64 (pow.f64 d1 3)))))
(-.f64 (+.f64 1 (pow.f64 d1 3)) 1)
(/.f64 (-.f64 (pow.f64 (+.f64 1 (pow.f64 d1 3)) 3) 1) (+.f64 (*.f64 (+.f64 1 (pow.f64 d1 3)) (+.f64 1 (pow.f64 d1 3))) (+.f64 1 (*.f64 (+.f64 1 (pow.f64 d1 3)) 1))))
(/.f64 (-.f64 (*.f64 (+.f64 1 (pow.f64 d1 3)) (+.f64 1 (pow.f64 d1 3))) 1) (+.f64 (+.f64 1 (pow.f64 d1 3)) 1))
(pow.f64 d1 3)
(pow.f64 (pow.f64 d1 2) 3/2)
(pow.f64 (pow.f64 d1 3) 1)
(pow.f64 (cbrt.f64 d1) 9)
(pow.f64 (pow.f64 d1 6) 1/2)
(pow.f64 (pow.f64 d1 9) 1/3)
(pow.f64 (sqrt.f64 d1) 6)
(pow.f64 (pow.f64 d1 3/2) 2)
(pow.f64 (E.f64) (*.f64 3 (log.f64 d1)))
(pow.f64 (exp.f64 3) (log.f64 d1))
(pow.f64 (exp.f64 (cbrt.f64 (*.f64 9 (pow.f64 (log.f64 d1) 2)))) (cbrt.f64 (*.f64 3 (log.f64 d1))))
(pow.f64 (exp.f64 (sqrt.f64 (*.f64 3 (log.f64 d1)))) (sqrt.f64 (*.f64 3 (log.f64 d1))))
(sqrt.f64 (pow.f64 d1 6))
(fabs.f64 (pow.f64 d1 3))
(log.f64 (exp.f64 (pow.f64 d1 3)))
(cbrt.f64 (pow.f64 d1 9))
(expm1.f64 (log1p.f64 (pow.f64 d1 3)))
(exp.f64 (*.f64 3 (log.f64 d1)))
(exp.f64 (*.f64 (log.f64 (pow.f64 d1 9)) 1/3))
(exp.f64 (*.f64 (*.f64 3/2 (log.f64 d1)) 2))
(log1p.f64 (expm1.f64 (pow.f64 d1 3)))
(+.f64 (+.f64 1 (pow.f64 d1 4)) -1)
(+.f64 0 (pow.f64 d1 4))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (pow.f64 d1 4))) 2)) (log.f64 (cbrt.f64 (exp.f64 (pow.f64 d1 4)))))
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (pow.f64 d1 4)))) (log.f64 (sqrt.f64 (exp.f64 (pow.f64 d1 4)))))
(-.f64 (+.f64 1 (pow.f64 d1 4)) 1)
(/.f64 (-.f64 (pow.f64 (+.f64 1 (pow.f64 d1 4)) 3) 1) (+.f64 (*.f64 (+.f64 1 (pow.f64 d1 4)) (+.f64 1 (pow.f64 d1 4))) (+.f64 1 (*.f64 (+.f64 1 (pow.f64 d1 4)) 1))))
(/.f64 (-.f64 (*.f64 (+.f64 1 (pow.f64 d1 4)) (+.f64 1 (pow.f64 d1 4))) 1) (+.f64 (+.f64 1 (pow.f64 d1 4)) 1))
(pow.f64 d1 4)
(pow.f64 (pow.f64 d1 2) 2)
(pow.f64 (pow.f64 d1 4) 1)
(pow.f64 (pow.f64 d1 3) 4/3)
(pow.f64 (cbrt.f64 d1) 12)
(pow.f64 (cbrt.f64 (pow.f64 d1 2)) 6)
(pow.f64 (cbrt.f64 (pow.f64 d1 4)) 3)
(pow.f64 (pow.f64 d1 6) 2/3)
(pow.f64 (pow.f64 d1 8) 1/2)
(pow.f64 (pow.f64 d1 12) 1/3)
(pow.f64 (sqrt.f64 d1) 8)
(pow.f64 (E.f64) (*.f64 (log.f64 d1) 4))
(pow.f64 (exp.f64 2) (*.f64 2 (log.f64 d1)))
(pow.f64 (exp.f64 (cbrt.f64 (pow.f64 (*.f64 (log.f64 d1) 4) 2))) (cbrt.f64 (*.f64 (log.f64 d1) 4)))
(pow.f64 (exp.f64 (sqrt.f64 (*.f64 (log.f64 d1) 4))) (sqrt.f64 (*.f64 (log.f64 d1) 4)))
(sqrt.f64 (pow.f64 d1 8))
(fabs.f64 (pow.f64 d1 4))
(log.f64 (exp.f64 (pow.f64 d1 4)))
(cbrt.f64 (pow.f64 d1 12))
(expm1.f64 (log1p.f64 (pow.f64 d1 4)))
(exp.f64 (*.f64 (log.f64 d1) 4))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (pow.f64 d1 4))) 3))
(exp.f64 (*.f64 (log.f64 (pow.f64 d1 12)) 1/3))
(log1p.f64 (expm1.f64 (pow.f64 d1 4)))

simplify70.0ms (4.9%)

Algorithm
egg-herbie
Rules
1488×fma-neg
1328×fma-def
972×log-prod
884×associate-*r*
832×associate-*l*
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
015517179871046
13688589936450
210821969
360571969
Stop Event
node limit
Counts
126 → 74
Calls
Call 1
Inputs
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 3)
(pow.f64 d1 3)
(pow.f64 d1 3)
(pow.f64 d1 3)
(pow.f64 d1 3)
(pow.f64 d1 3)
(pow.f64 d1 3)
(pow.f64 d1 3)
(pow.f64 d1 3)
(pow.f64 d1 3)
(pow.f64 d1 3)
(pow.f64 d1 3)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(+.f64 (+.f64 1 (pow.f64 d1 4)) -1)
(+.f64 0 (pow.f64 d1 4))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (pow.f64 d1 4))) 2)) (log.f64 (cbrt.f64 (exp.f64 (pow.f64 d1 4)))))
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (pow.f64 d1 4)))) (log.f64 (sqrt.f64 (exp.f64 (pow.f64 d1 4)))))
(-.f64 (+.f64 1 (pow.f64 d1 4)) 1)
(/.f64 (-.f64 (pow.f64 (+.f64 1 (pow.f64 d1 4)) 3) 1) (+.f64 (*.f64 (+.f64 1 (pow.f64 d1 4)) (+.f64 1 (pow.f64 d1 4))) (+.f64 1 (*.f64 (+.f64 1 (pow.f64 d1 4)) 1))))
(/.f64 (-.f64 (*.f64 (+.f64 1 (pow.f64 d1 4)) (+.f64 1 (pow.f64 d1 4))) 1) (+.f64 (+.f64 1 (pow.f64 d1 4)) 1))
(pow.f64 d1 4)
(pow.f64 (pow.f64 d1 2) 2)
(pow.f64 (pow.f64 d1 4) 1)
(pow.f64 (pow.f64 d1 3) 4/3)
(pow.f64 (cbrt.f64 d1) 12)
(pow.f64 (cbrt.f64 (pow.f64 d1 2)) 6)
(pow.f64 (cbrt.f64 (pow.f64 d1 4)) 3)
(pow.f64 (pow.f64 d1 6) 2/3)
(pow.f64 (pow.f64 d1 8) 1/2)
(pow.f64 (pow.f64 d1 12) 1/3)
(pow.f64 (sqrt.f64 d1) 8)
(pow.f64 (E.f64) (*.f64 (log.f64 d1) 4))
(pow.f64 (exp.f64 2) (*.f64 2 (log.f64 d1)))
(pow.f64 (exp.f64 (cbrt.f64 (pow.f64 (*.f64 (log.f64 d1) 4) 2))) (cbrt.f64 (*.f64 (log.f64 d1) 4)))
(pow.f64 (exp.f64 (sqrt.f64 (*.f64 (log.f64 d1) 4))) (sqrt.f64 (*.f64 (log.f64 d1) 4)))
(sqrt.f64 (pow.f64 d1 8))
(fabs.f64 (pow.f64 d1 4))
(log.f64 (exp.f64 (pow.f64 d1 4)))
(cbrt.f64 (pow.f64 d1 12))
(expm1.f64 (log1p.f64 (pow.f64 d1 4)))
(exp.f64 (*.f64 (log.f64 d1) 4))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (pow.f64 d1 4))) 3))
(exp.f64 (*.f64 (log.f64 (pow.f64 d1 12)) 1/3))
(log1p.f64 (expm1.f64 (pow.f64 d1 4)))
(+.f64 (+.f64 1 (pow.f64 d1 3)) -1)
(+.f64 0 (pow.f64 d1 3))
(+.f64 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (pow.f64 d1 3)) 2))) (log.f64 (cbrt.f64 (exp.f64 (pow.f64 d1 3)))))
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (pow.f64 d1 3)))) (log.f64 (sqrt.f64 (exp.f64 (pow.f64 d1 3)))))
(-.f64 (+.f64 1 (pow.f64 d1 3)) 1)
(/.f64 (-.f64 (pow.f64 (+.f64 1 (pow.f64 d1 3)) 3) 1) (+.f64 (*.f64 (+.f64 1 (pow.f64 d1 3)) (+.f64 1 (pow.f64 d1 3))) (+.f64 1 (*.f64 (+.f64 1 (pow.f64 d1 3)) 1))))
(/.f64 (-.f64 (*.f64 (+.f64 1 (pow.f64 d1 3)) (+.f64 1 (pow.f64 d1 3))) 1) (+.f64 (+.f64 1 (pow.f64 d1 3)) 1))
(pow.f64 d1 3)
(pow.f64 (pow.f64 d1 2) 3/2)
(pow.f64 (pow.f64 d1 3) 1)
(pow.f64 (cbrt.f64 d1) 9)
(pow.f64 (pow.f64 d1 6) 1/2)
(pow.f64 (pow.f64 d1 9) 1/3)
(pow.f64 (sqrt.f64 d1) 6)
(pow.f64 (pow.f64 d1 3/2) 2)
(pow.f64 (E.f64) (*.f64 3 (log.f64 d1)))
(pow.f64 (exp.f64 3) (log.f64 d1))
(pow.f64 (exp.f64 (cbrt.f64 (*.f64 9 (pow.f64 (log.f64 d1) 2)))) (cbrt.f64 (*.f64 3 (log.f64 d1))))
(pow.f64 (exp.f64 (sqrt.f64 (*.f64 3 (log.f64 d1)))) (sqrt.f64 (*.f64 3 (log.f64 d1))))
(sqrt.f64 (pow.f64 d1 6))
(fabs.f64 (pow.f64 d1 3))
(log.f64 (exp.f64 (pow.f64 d1 3)))
(cbrt.f64 (pow.f64 d1 9))
(expm1.f64 (log1p.f64 (pow.f64 d1 3)))
(exp.f64 (*.f64 3 (log.f64 d1)))
(exp.f64 (*.f64 (log.f64 (pow.f64 d1 9)) 1/3))
(exp.f64 (*.f64 (*.f64 3/2 (log.f64 d1)) 2))
(log1p.f64 (expm1.f64 (pow.f64 d1 3)))
(+.f64 (+.f64 1 (pow.f64 d1 4)) -1)
(+.f64 0 (pow.f64 d1 4))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (pow.f64 d1 4))) 2)) (log.f64 (cbrt.f64 (exp.f64 (pow.f64 d1 4)))))
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (pow.f64 d1 4)))) (log.f64 (sqrt.f64 (exp.f64 (pow.f64 d1 4)))))
(-.f64 (+.f64 1 (pow.f64 d1 4)) 1)
(/.f64 (-.f64 (pow.f64 (+.f64 1 (pow.f64 d1 4)) 3) 1) (+.f64 (*.f64 (+.f64 1 (pow.f64 d1 4)) (+.f64 1 (pow.f64 d1 4))) (+.f64 1 (*.f64 (+.f64 1 (pow.f64 d1 4)) 1))))
(/.f64 (-.f64 (*.f64 (+.f64 1 (pow.f64 d1 4)) (+.f64 1 (pow.f64 d1 4))) 1) (+.f64 (+.f64 1 (pow.f64 d1 4)) 1))
(pow.f64 d1 4)
(pow.f64 (pow.f64 d1 2) 2)
(pow.f64 (pow.f64 d1 4) 1)
(pow.f64 (pow.f64 d1 3) 4/3)
(pow.f64 (cbrt.f64 d1) 12)
(pow.f64 (cbrt.f64 (pow.f64 d1 2)) 6)
(pow.f64 (cbrt.f64 (pow.f64 d1 4)) 3)
(pow.f64 (pow.f64 d1 6) 2/3)
(pow.f64 (pow.f64 d1 8) 1/2)
(pow.f64 (pow.f64 d1 12) 1/3)
(pow.f64 (sqrt.f64 d1) 8)
(pow.f64 (E.f64) (*.f64 (log.f64 d1) 4))
(pow.f64 (exp.f64 2) (*.f64 2 (log.f64 d1)))
(pow.f64 (exp.f64 (cbrt.f64 (pow.f64 (*.f64 (log.f64 d1) 4) 2))) (cbrt.f64 (*.f64 (log.f64 d1) 4)))
(pow.f64 (exp.f64 (sqrt.f64 (*.f64 (log.f64 d1) 4))) (sqrt.f64 (*.f64 (log.f64 d1) 4)))
(sqrt.f64 (pow.f64 d1 8))
(fabs.f64 (pow.f64 d1 4))
(log.f64 (exp.f64 (pow.f64 d1 4)))
(cbrt.f64 (pow.f64 d1 12))
(expm1.f64 (log1p.f64 (pow.f64 d1 4)))
(exp.f64 (*.f64 (log.f64 d1) 4))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (pow.f64 d1 4))) 3))
(exp.f64 (*.f64 (log.f64 (pow.f64 d1 12)) 1/3))
(log1p.f64 (expm1.f64 (pow.f64 d1 4)))
Outputs
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 3)
(pow.f64 d1 3)
(pow.f64 d1 3)
(pow.f64 d1 3)
(pow.f64 d1 3)
(pow.f64 d1 3)
(pow.f64 d1 3)
(pow.f64 d1 3)
(pow.f64 d1 3)
(pow.f64 d1 3)
(pow.f64 d1 3)
(pow.f64 d1 3)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 d1 4)
(+.f64 (+.f64 1 (pow.f64 d1 4)) -1)
(pow.f64 d1 4)
(+.f64 0 (pow.f64 d1 4))
(pow.f64 d1 4)
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (pow.f64 d1 4))) 2)) (log.f64 (cbrt.f64 (exp.f64 (pow.f64 d1 4)))))
(+.f64 (*.f64 2 (log.f64 (cbrt.f64 (exp.f64 (pow.f64 d1 4))))) (log.f64 (cbrt.f64 (exp.f64 (pow.f64 d1 4)))))
(*.f64 3 (log.f64 (cbrt.f64 (exp.f64 (pow.f64 d1 4)))))
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (pow.f64 d1 4)))) (log.f64 (sqrt.f64 (exp.f64 (pow.f64 d1 4)))))
(*.f64 2 (log.f64 (sqrt.f64 (exp.f64 (pow.f64 d1 4)))))
(-.f64 (+.f64 1 (pow.f64 d1 4)) 1)
(pow.f64 d1 4)
(/.f64 (-.f64 (pow.f64 (+.f64 1 (pow.f64 d1 4)) 3) 1) (+.f64 (*.f64 (+.f64 1 (pow.f64 d1 4)) (+.f64 1 (pow.f64 d1 4))) (+.f64 1 (*.f64 (+.f64 1 (pow.f64 d1 4)) 1))))
(/.f64 (+.f64 (pow.f64 (+.f64 (pow.f64 d1 4) 1) 3) -1) (fma.f64 (+.f64 (pow.f64 d1 4) 1) (+.f64 (pow.f64 d1 4) 1) (+.f64 1 (+.f64 (pow.f64 d1 4) 1))))
(/.f64 (+.f64 -1 (pow.f64 (+.f64 (pow.f64 d1 4) 1) 3)) (fma.f64 (+.f64 (pow.f64 d1 4) 1) (+.f64 (pow.f64 d1 4) 1) (+.f64 (pow.f64 d1 4) 2)))
(/.f64 (+.f64 -1 (pow.f64 (+.f64 (pow.f64 d1 4) 1) 3)) (+.f64 1 (*.f64 (+.f64 (pow.f64 d1 4) 1) (+.f64 (pow.f64 d1 4) 2))))
(/.f64 (-.f64 (*.f64 (+.f64 1 (pow.f64 d1 4)) (+.f64 1 (pow.f64 d1 4))) 1) (+.f64 (+.f64 1 (pow.f64 d1 4)) 1))
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 (pow.f64 d1 2) 2)
(pow.f64 d1 4)
(pow.f64 (pow.f64 d1 4) 1)
(pow.f64 d1 4)
(pow.f64 (pow.f64 d1 3) 4/3)
(*.f64 (pow.f64 (pow.f64 d1 3) 2/3) (pow.f64 (pow.f64 d1 3) 2/3))
(*.f64 (*.f64 (pow.f64 (pow.f64 d1 3) 1/3) (pow.f64 (pow.f64 d1 3) 1/3)) (*.f64 (pow.f64 (pow.f64 d1 3) 1/3) (pow.f64 (pow.f64 d1 3) 1/3)))
(*.f64 (*.f64 (cbrt.f64 (pow.f64 d1 3)) (cbrt.f64 (pow.f64 d1 3))) (*.f64 (cbrt.f64 (pow.f64 d1 3)) (cbrt.f64 (pow.f64 d1 3))))
(pow.f64 (cbrt.f64 d1) 12)
(pow.f64 d1 4)
(pow.f64 (cbrt.f64 (pow.f64 d1 2)) 6)
(pow.f64 d1 4)
(pow.f64 (cbrt.f64 (pow.f64 d1 4)) 3)
(pow.f64 d1 4)
(pow.f64 (pow.f64 d1 6) 2/3)
(*.f64 (cbrt.f64 (pow.f64 d1 6)) (cbrt.f64 (pow.f64 d1 6)))
(pow.f64 (pow.f64 d1 8) 1/2)
(pow.f64 d1 4)
(pow.f64 (pow.f64 d1 12) 1/3)
(pow.f64 d1 4)
(pow.f64 (sqrt.f64 d1) 8)
(pow.f64 d1 4)
(pow.f64 (E.f64) (*.f64 (log.f64 d1) 4))
(pow.f64 (E.f64) (*.f64 4 (log.f64 d1)))
(pow.f64 (exp.f64 2) (*.f64 2 (log.f64 d1)))
(pow.f64 (exp.f64 (cbrt.f64 (pow.f64 (*.f64 (log.f64 d1) 4) 2))) (cbrt.f64 (*.f64 (log.f64 d1) 4)))
(pow.f64 (exp.f64 (cbrt.f64 (pow.f64 (*.f64 4 (log.f64 d1)) 2))) (cbrt.f64 (*.f64 4 (log.f64 d1))))
(pow.f64 (exp.f64 (sqrt.f64 (*.f64 (log.f64 d1) 4))) (sqrt.f64 (*.f64 (log.f64 d1) 4)))
(pow.f64 d1 4)
(sqrt.f64 (pow.f64 d1 8))
(pow.f64 d1 4)
(fabs.f64 (pow.f64 d1 4))
(pow.f64 d1 4)
(log.f64 (exp.f64 (pow.f64 d1 4)))
(pow.f64 d1 4)
(cbrt.f64 (pow.f64 d1 12))
(pow.f64 d1 4)
(expm1.f64 (log1p.f64 (pow.f64 d1 4)))
(pow.f64 d1 4)
(exp.f64 (*.f64 (log.f64 d1) 4))
(pow.f64 d1 4)
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (pow.f64 d1 4))) 3))
(pow.f64 d1 4)
(exp.f64 (*.f64 (log.f64 (pow.f64 d1 12)) 1/3))
(pow.f64 d1 4)
(log1p.f64 (expm1.f64 (pow.f64 d1 4)))
(pow.f64 d1 4)
(+.f64 (+.f64 1 (pow.f64 d1 3)) -1)
(pow.f64 d1 3)
(+.f64 0 (pow.f64 d1 3))
(pow.f64 d1 3)
(+.f64 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (pow.f64 d1 3)) 2))) (log.f64 (cbrt.f64 (exp.f64 (pow.f64 d1 3)))))
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (pow.f64 d1 3)))) (log.f64 (sqrt.f64 (exp.f64 (pow.f64 d1 3)))))
(pow.f64 d1 3)
(-.f64 (+.f64 1 (pow.f64 d1 3)) 1)
(pow.f64 d1 3)
(/.f64 (-.f64 (pow.f64 (+.f64 1 (pow.f64 d1 3)) 3) 1) (+.f64 (*.f64 (+.f64 1 (pow.f64 d1 3)) (+.f64 1 (pow.f64 d1 3))) (+.f64 1 (*.f64 (+.f64 1 (pow.f64 d1 3)) 1))))
(/.f64 (+.f64 (pow.f64 (+.f64 (pow.f64 d1 3) 1) 3) -1) (fma.f64 (+.f64 (pow.f64 d1 3) 1) (+.f64 (pow.f64 d1 3) 1) (+.f64 1 (+.f64 (pow.f64 d1 3) 1))))
(/.f64 (+.f64 -1 (pow.f64 (+.f64 (pow.f64 d1 3) 1) 3)) (fma.f64 (+.f64 (pow.f64 d1 3) 1) (+.f64 (pow.f64 d1 3) 1) (+.f64 (pow.f64 d1 3) 2)))
(/.f64 (+.f64 -1 (pow.f64 (+.f64 (pow.f64 d1 3) 1) 3)) (+.f64 1 (*.f64 (+.f64 (pow.f64 d1 3) 1) (+.f64 (pow.f64 d1 3) 2))))
(/.f64 (-.f64 (*.f64 (+.f64 1 (pow.f64 d1 3)) (+.f64 1 (pow.f64 d1 3))) 1) (+.f64 (+.f64 1 (pow.f64 d1 3)) 1))
(pow.f64 d1 3)
(pow.f64 d1 3)
(pow.f64 (pow.f64 d1 2) 3/2)
(pow.f64 d1 3)
(pow.f64 (pow.f64 d1 3) 1)
(pow.f64 d1 3)
(pow.f64 (cbrt.f64 d1) 9)
(pow.f64 (pow.f64 d1 6) 1/2)
(pow.f64 d1 3)
(pow.f64 (pow.f64 d1 9) 1/3)
(pow.f64 d1 3)
(pow.f64 (sqrt.f64 d1) 6)
(pow.f64 d1 3)
(pow.f64 (pow.f64 d1 3/2) 2)
(pow.f64 d1 3)
(pow.f64 (E.f64) (*.f64 3 (log.f64 d1)))
(pow.f64 (exp.f64 3) (log.f64 d1))
(pow.f64 d1 3)
(pow.f64 (exp.f64 (cbrt.f64 (*.f64 9 (pow.f64 (log.f64 d1) 2)))) (cbrt.f64 (*.f64 3 (log.f64 d1))))
(pow.f64 (exp.f64 (sqrt.f64 (*.f64 3 (log.f64 d1)))) (sqrt.f64 (*.f64 3 (log.f64 d1))))
(sqrt.f64 (pow.f64 d1 6))
(pow.f64 d1 3)
(fabs.f64 (pow.f64 d1 3))
(pow.f64 d1 3)
(log.f64 (exp.f64 (pow.f64 d1 3)))
(pow.f64 d1 3)
(cbrt.f64 (pow.f64 d1 9))
(pow.f64 d1 3)
(expm1.f64 (log1p.f64 (pow.f64 d1 3)))
(pow.f64 d1 3)
(exp.f64 (*.f64 3 (log.f64 d1)))
(pow.f64 d1 3)
(exp.f64 (*.f64 (log.f64 (pow.f64 d1 9)) 1/3))
(pow.f64 d1 3)
(exp.f64 (*.f64 (*.f64 3/2 (log.f64 d1)) 2))
(pow.f64 d1 3)
(log1p.f64 (expm1.f64 (pow.f64 d1 3)))
(pow.f64 d1 3)
(+.f64 (+.f64 1 (pow.f64 d1 4)) -1)
(pow.f64 d1 4)
(+.f64 0 (pow.f64 d1 4))
(pow.f64 d1 4)
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (pow.f64 d1 4))) 2)) (log.f64 (cbrt.f64 (exp.f64 (pow.f64 d1 4)))))
(+.f64 (*.f64 2 (log.f64 (cbrt.f64 (exp.f64 (pow.f64 d1 4))))) (log.f64 (cbrt.f64 (exp.f64 (pow.f64 d1 4)))))
(*.f64 3 (log.f64 (cbrt.f64 (exp.f64 (pow.f64 d1 4)))))
(+.f64 (log.f64 (sqrt.f64 (exp.f64 (pow.f64 d1 4)))) (log.f64 (sqrt.f64 (exp.f64 (pow.f64 d1 4)))))
(*.f64 2 (log.f64 (sqrt.f64 (exp.f64 (pow.f64 d1 4)))))
(-.f64 (+.f64 1 (pow.f64 d1 4)) 1)
(pow.f64 d1 4)
(/.f64 (-.f64 (pow.f64 (+.f64 1 (pow.f64 d1 4)) 3) 1) (+.f64 (*.f64 (+.f64 1 (pow.f64 d1 4)) (+.f64 1 (pow.f64 d1 4))) (+.f64 1 (*.f64 (+.f64 1 (pow.f64 d1 4)) 1))))
(/.f64 (+.f64 (pow.f64 (+.f64 (pow.f64 d1 4) 1) 3) -1) (fma.f64 (+.f64 (pow.f64 d1 4) 1) (+.f64 (pow.f64 d1 4) 1) (+.f64 1 (+.f64 (pow.f64 d1 4) 1))))
(/.f64 (+.f64 -1 (pow.f64 (+.f64 (pow.f64 d1 4) 1) 3)) (fma.f64 (+.f64 (pow.f64 d1 4) 1) (+.f64 (pow.f64 d1 4) 1) (+.f64 (pow.f64 d1 4) 2)))
(/.f64 (+.f64 -1 (pow.f64 (+.f64 (pow.f64 d1 4) 1) 3)) (+.f64 1 (*.f64 (+.f64 (pow.f64 d1 4) 1) (+.f64 (pow.f64 d1 4) 2))))
(/.f64 (-.f64 (*.f64 (+.f64 1 (pow.f64 d1 4)) (+.f64 1 (pow.f64 d1 4))) 1) (+.f64 (+.f64 1 (pow.f64 d1 4)) 1))
(pow.f64 d1 4)
(pow.f64 d1 4)
(pow.f64 (pow.f64 d1 2) 2)
(pow.f64 d1 4)
(pow.f64 (pow.f64 d1 4) 1)
(pow.f64 d1 4)
(pow.f64 (pow.f64 d1 3) 4/3)
(*.f64 (pow.f64 (pow.f64 d1 3) 2/3) (pow.f64 (pow.f64 d1 3) 2/3))
(*.f64 (*.f64 (pow.f64 (pow.f64 d1 3) 1/3) (pow.f64 (pow.f64 d1 3) 1/3)) (*.f64 (pow.f64 (pow.f64 d1 3) 1/3) (pow.f64 (pow.f64 d1 3) 1/3)))
(*.f64 (*.f64 (cbrt.f64 (pow.f64 d1 3)) (cbrt.f64 (pow.f64 d1 3))) (*.f64 (cbrt.f64 (pow.f64 d1 3)) (cbrt.f64 (pow.f64 d1 3))))
(pow.f64 (cbrt.f64 d1) 12)
(pow.f64 d1 4)
(pow.f64 (cbrt.f64 (pow.f64 d1 2)) 6)
(pow.f64 d1 4)
(pow.f64 (cbrt.f64 (pow.f64 d1 4)) 3)
(pow.f64 d1 4)
(pow.f64 (pow.f64 d1 6) 2/3)
(*.f64 (cbrt.f64 (pow.f64 d1 6)) (cbrt.f64 (pow.f64 d1 6)))
(pow.f64 (pow.f64 d1 8) 1/2)
(pow.f64 d1 4)
(pow.f64 (pow.f64 d1 12) 1/3)
(pow.f64 d1 4)
(pow.f64 (sqrt.f64 d1) 8)
(pow.f64 d1 4)
(pow.f64 (E.f64) (*.f64 (log.f64 d1) 4))
(pow.f64 (E.f64) (*.f64 4 (log.f64 d1)))
(pow.f64 (exp.f64 2) (*.f64 2 (log.f64 d1)))
(pow.f64 (exp.f64 (cbrt.f64 (pow.f64 (*.f64 (log.f64 d1) 4) 2))) (cbrt.f64 (*.f64 (log.f64 d1) 4)))
(pow.f64 (exp.f64 (cbrt.f64 (pow.f64 (*.f64 4 (log.f64 d1)) 2))) (cbrt.f64 (*.f64 4 (log.f64 d1))))
(pow.f64 (exp.f64 (sqrt.f64 (*.f64 (log.f64 d1) 4))) (sqrt.f64 (*.f64 (log.f64 d1) 4)))
(pow.f64 d1 4)
(sqrt.f64 (pow.f64 d1 8))
(pow.f64 d1 4)
(fabs.f64 (pow.f64 d1 4))
(pow.f64 d1 4)
(log.f64 (exp.f64 (pow.f64 d1 4)))
(pow.f64 d1 4)
(cbrt.f64 (pow.f64 d1 12))
(pow.f64 d1 4)
(expm1.f64 (log1p.f64 (pow.f64 d1 4)))
(pow.f64 d1 4)
(exp.f64 (*.f64 (log.f64 d1) 4))
(pow.f64 d1 4)
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (pow.f64 d1 4))) 3))
(pow.f64 d1 4)
(exp.f64 (*.f64 (log.f64 (pow.f64 d1 12)) 1/3))
(pow.f64 d1 4)
(log1p.f64 (expm1.f64 (pow.f64 d1 4)))
(pow.f64 d1 4)

eval26.0ms (1.8%)

Compiler

Compiled 786 to 616 computations (21.6% saved)

prune9.0ms (0.6%)

Pruning

3 alts after pruning (0 fresh and 3 done)

PrunedKeptTotal
New74074
Fresh000
Picked033
Done000
Total74377
Accuracy
100.0%
Counts
77 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(pow.f64 d1 4)
99.9%
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
99.8%
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
Compiler

Compiled 38 to 17 computations (55.3% saved)

regimes8.0ms (0.6%)

Counts
3 → 1
Calls
Call 1
Inputs
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
(pow.f64 d1 4)
Outputs
(pow.f64 d1 4)
Calls

2 calls:

4.0ms
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
3.0ms
d1
Results
AccuracySegmentsBranch
100.0%1d1
100.0%1(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
Compiler

Compiled 28 to 12 computations (57.1% saved)

regimes6.0ms (0.4%)

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

2 calls:

3.0ms
d1
2.0ms
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
Results
AccuracySegmentsBranch
99.9%1d1
99.9%1(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
Compiler

Compiled 25 to 10 computations (60% saved)

regimes3.0ms (0.2%)

Accuracy

Total 0.0b remaining (0%)

Threshold costs 0b (0%)

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

1 calls:

3.0ms
d1
Results
AccuracySegmentsBranch
99.8%1d1
Compiler

Compiled 10 to 4 computations (60% saved)

simplify2.0ms (0.2%)

Algorithm
egg-herbie
Rules
*-commutative
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01172
11372
Stop Event
done
saturated
Calls
Call 1
Inputs
(pow.f64 d1 4)
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
Outputs
(pow.f64 d1 4)
(*.f64 (*.f64 (*.f64 d1 d1) d1) d1)
(*.f64 d1 (*.f64 d1 (*.f64 d1 d1)))
(*.f64 (*.f64 d1 d1) (*.f64 d1 d1))
Compiler

Compiled 20 to 10 computations (50% saved)

soundness414.0ms (29%)

Rules
1604×fma-def
1604×fma-def
1548×unswap-sqr
1548×unswap-sqr
1480×fma-neg
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01393
13257
29430
318730
429330
566030
6149830
7308030
8530730
9634030
10740030
11793930
01393
13257
29430
318730
429330
566030
6149830
7308030
8530730
9634030
10740030
11793930
Stop Event
node limit
node limit
Compiler

Compiled 54 to 23 computations (57.4% saved)

end0.0ms (0%)

preprocess33.0ms (2.3%)

Remove

(abs d1)

Compiler

Compiled 68 to 34 computations (50% saved)

Profiling

Loading profile data...