FastMath test1

Details

Time bar (total: 898.0ms)

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 7 computations (22.2% saved)

sample582.0ms (64.8%)

Results
571.0ms8239×body256valid
1.0ms17×body256infinite
Bogosity

preprocess15.0ms (1.7%)

Algorithm
egg-herbie
Rules
fma-def
*-commutative
+-commutative
distribute-lft-out
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
087
1167
2217
011
Stop Event
saturated
saturated
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.6%
(+.f64 (*.f64 d 10) (*.f64 d 20))
99.6%
(+.f64 (*.f64 d 10) (*.f64 d 20))
Calls
Call 1
Inputs
0
Outputs
0
Call 2
Inputs
(+.f64 (*.f64 d 10) (*.f64 d 20))
Outputs
(+.f64 (*.f64 d 10) (*.f64 d 20))
(*.f64 d 30)
Compiler

Compiled 25 to 19 computations (24% saved)

localize24.0ms (2.6%)

Local Accuracy

Found 1 expressions with local accuracy:

NewAccuracyProgram
99.6%
(+.f64 (*.f64 d 10) (*.f64 d 20))
Compiler

Compiled 18 to 13 computations (27.8% saved)

series1.0ms (0.1%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
1.0ms
d
@inf
(+.f64 (*.f64 d 10) (*.f64 d 20))
0.0ms
d
@0
(+.f64 (*.f64 d 10) (*.f64 d 20))
0.0ms
d
@-inf
(+.f64 (*.f64 d 10) (*.f64 d 20))

rewrite58.0ms (6.4%)

Algorithm
batch-egg-rewrite
Rules
1784×pow1
1676×add-exp-log
1676×log1p-expm1-u
1676×expm1-log1p-u
1646×add-log-exp
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
087
11777
222767
Stop Event
node limit
Counts
1 → 41
Calls
Call 1
Inputs
(+.f64 (*.f64 d 10) (*.f64 d 20))
Outputs
(-.f64 (+.f64 1 (*.f64 d 30)) 1)
(-.f64 (/.f64 (*.f64 (*.f64 d d) 100) (*.f64 d -10)) (/.f64 (pow.f64 (*.f64 d 20) 2) (*.f64 d -10)))
(*.f64 d 30)
(*.f64 (*.f64 d 30) 1)
(*.f64 1 (*.f64 d 30))
(*.f64 (cbrt.f64 (*.f64 d 30)) (cbrt.f64 (*.f64 (*.f64 d d) 900)))
(*.f64 (cbrt.f64 (*.f64 (*.f64 d d) 900)) (cbrt.f64 (*.f64 d 30)))
(*.f64 (pow.f64 (cbrt.f64 d) 2) (*.f64 (cbrt.f64 d) 30))
(*.f64 (sqrt.f64 (*.f64 d 30)) (sqrt.f64 (*.f64 d 30)))
(*.f64 (sqrt.f64 d) (*.f64 (sqrt.f64 d) 30))
(*.f64 (+.f64 (*.f64 (pow.f64 d 3) 1000) (pow.f64 (*.f64 d 20) 3)) (/.f64 1 (+.f64 (*.f64 (*.f64 d d) 100) (*.f64 (*.f64 d 20) (-.f64 (*.f64 d 20) (*.f64 d 10))))))
(*.f64 (*.f64 (*.f64 d 30) (*.f64 d -10)) (/.f64 1 (*.f64 d -10)))
(*.f64 30 d)
(/.f64 1 (/.f64 (+.f64 (*.f64 (*.f64 d d) 100) (*.f64 (*.f64 d 20) (-.f64 (*.f64 d 20) (*.f64 d 10)))) (+.f64 (*.f64 (pow.f64 d 3) 1000) (pow.f64 (*.f64 d 20) 3))))
(/.f64 1 (/.f64 (*.f64 d -10) (*.f64 (*.f64 d 30) (*.f64 d -10))))
(/.f64 (+.f64 (*.f64 (pow.f64 d 3) 1000) (pow.f64 (*.f64 d 20) 3)) (+.f64 (*.f64 (*.f64 d d) 100) (*.f64 (*.f64 d 20) (-.f64 (*.f64 d 20) (*.f64 d 10)))))
(/.f64 (+.f64 (*.f64 (pow.f64 d 3) 1000) (pow.f64 (*.f64 d 20) 3)) (+.f64 (pow.f64 (*.f64 d 20) 2) (-.f64 (*.f64 (*.f64 d d) 100) (*.f64 d (*.f64 10 (*.f64 d 20))))))
(/.f64 (*.f64 (*.f64 d 30) (*.f64 d -10)) (*.f64 d -10))
(/.f64 (neg.f64 (+.f64 (*.f64 (pow.f64 d 3) 1000) (pow.f64 (*.f64 d 20) 3))) (neg.f64 (+.f64 (*.f64 (*.f64 d d) 100) (*.f64 (*.f64 d 20) (-.f64 (*.f64 d 20) (*.f64 d 10))))))
(/.f64 (neg.f64 (*.f64 (*.f64 d 30) (*.f64 d -10))) (neg.f64 (*.f64 d -10)))
(/.f64 (-.f64 (pow.f64 (*.f64 d 20) 2) (*.f64 (*.f64 d d) 100)) (-.f64 (*.f64 d 20) (*.f64 d 10)))
(pow.f64 (*.f64 d 30) 1)
(pow.f64 (cbrt.f64 (*.f64 d 30)) 3)
(pow.f64 (pow.f64 (*.f64 d 30) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 d 30)) 2)
(sqrt.f64 (*.f64 (*.f64 d d) 900))
(log.f64 (pow.f64 (exp.f64 d) 30))
(cbrt.f64 (pow.f64 (*.f64 d 30) 3))
(expm1.f64 (log1p.f64 (*.f64 d 30)))
(exp.f64 (log.f64 (*.f64 d 30)))
(log1p.f64 (expm1.f64 (*.f64 d 30)))
(fma.f64 d 10 (*.f64 d 20))
(fma.f64 d 20 (*.f64 d 10))
(fma.f64 10 d (*.f64 d 20))
(fma.f64 20 d (*.f64 d 10))
(fma.f64 1 (*.f64 d 10) (*.f64 d 20))
(fma.f64 1 (*.f64 d 20) (*.f64 d 10))
(fma.f64 (cbrt.f64 (*.f64 (*.f64 d d) 100)) (cbrt.f64 (*.f64 d 10)) (*.f64 d 20))
(fma.f64 (pow.f64 (cbrt.f64 (*.f64 d 20)) 2) (cbrt.f64 (*.f64 d 20)) (*.f64 d 10))
(fma.f64 (sqrt.f64 (*.f64 d 10)) (sqrt.f64 (*.f64 d 10)) (*.f64 d 20))
(fma.f64 (sqrt.f64 (*.f64 d 20)) (sqrt.f64 (*.f64 d 20)) (*.f64 d 10))

simplify72.0ms (8%)

Algorithm
egg-herbie
Rules
1226×log-prod
992×associate-*r/
872×fma-def
830×associate-*l/
436×cancel-sign-sub-inv
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0108865
1313725
21391625
37600625
Stop Event
node limit
Counts
53 → 55
Calls
Call 1
Inputs
(*.f64 30 d)
(*.f64 30 d)
(*.f64 30 d)
(*.f64 30 d)
(*.f64 30 d)
(*.f64 30 d)
(*.f64 30 d)
(*.f64 30 d)
(*.f64 30 d)
(*.f64 30 d)
(*.f64 30 d)
(*.f64 30 d)
(-.f64 (+.f64 1 (*.f64 d 30)) 1)
(-.f64 (/.f64 (*.f64 (*.f64 d d) 100) (*.f64 d -10)) (/.f64 (pow.f64 (*.f64 d 20) 2) (*.f64 d -10)))
(*.f64 d 30)
(*.f64 (*.f64 d 30) 1)
(*.f64 1 (*.f64 d 30))
(*.f64 (cbrt.f64 (*.f64 d 30)) (cbrt.f64 (*.f64 (*.f64 d d) 900)))
(*.f64 (cbrt.f64 (*.f64 (*.f64 d d) 900)) (cbrt.f64 (*.f64 d 30)))
(*.f64 (pow.f64 (cbrt.f64 d) 2) (*.f64 (cbrt.f64 d) 30))
(*.f64 (sqrt.f64 (*.f64 d 30)) (sqrt.f64 (*.f64 d 30)))
(*.f64 (sqrt.f64 d) (*.f64 (sqrt.f64 d) 30))
(*.f64 (+.f64 (*.f64 (pow.f64 d 3) 1000) (pow.f64 (*.f64 d 20) 3)) (/.f64 1 (+.f64 (*.f64 (*.f64 d d) 100) (*.f64 (*.f64 d 20) (-.f64 (*.f64 d 20) (*.f64 d 10))))))
(*.f64 (*.f64 (*.f64 d 30) (*.f64 d -10)) (/.f64 1 (*.f64 d -10)))
(*.f64 30 d)
(/.f64 1 (/.f64 (+.f64 (*.f64 (*.f64 d d) 100) (*.f64 (*.f64 d 20) (-.f64 (*.f64 d 20) (*.f64 d 10)))) (+.f64 (*.f64 (pow.f64 d 3) 1000) (pow.f64 (*.f64 d 20) 3))))
(/.f64 1 (/.f64 (*.f64 d -10) (*.f64 (*.f64 d 30) (*.f64 d -10))))
(/.f64 (+.f64 (*.f64 (pow.f64 d 3) 1000) (pow.f64 (*.f64 d 20) 3)) (+.f64 (*.f64 (*.f64 d d) 100) (*.f64 (*.f64 d 20) (-.f64 (*.f64 d 20) (*.f64 d 10)))))
(/.f64 (+.f64 (*.f64 (pow.f64 d 3) 1000) (pow.f64 (*.f64 d 20) 3)) (+.f64 (pow.f64 (*.f64 d 20) 2) (-.f64 (*.f64 (*.f64 d d) 100) (*.f64 d (*.f64 10 (*.f64 d 20))))))
(/.f64 (*.f64 (*.f64 d 30) (*.f64 d -10)) (*.f64 d -10))
(/.f64 (neg.f64 (+.f64 (*.f64 (pow.f64 d 3) 1000) (pow.f64 (*.f64 d 20) 3))) (neg.f64 (+.f64 (*.f64 (*.f64 d d) 100) (*.f64 (*.f64 d 20) (-.f64 (*.f64 d 20) (*.f64 d 10))))))
(/.f64 (neg.f64 (*.f64 (*.f64 d 30) (*.f64 d -10))) (neg.f64 (*.f64 d -10)))
(/.f64 (-.f64 (pow.f64 (*.f64 d 20) 2) (*.f64 (*.f64 d d) 100)) (-.f64 (*.f64 d 20) (*.f64 d 10)))
(pow.f64 (*.f64 d 30) 1)
(pow.f64 (cbrt.f64 (*.f64 d 30)) 3)
(pow.f64 (pow.f64 (*.f64 d 30) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 d 30)) 2)
(sqrt.f64 (*.f64 (*.f64 d d) 900))
(log.f64 (pow.f64 (exp.f64 d) 30))
(cbrt.f64 (pow.f64 (*.f64 d 30) 3))
(expm1.f64 (log1p.f64 (*.f64 d 30)))
(exp.f64 (log.f64 (*.f64 d 30)))
(log1p.f64 (expm1.f64 (*.f64 d 30)))
(fma.f64 d 10 (*.f64 d 20))
(fma.f64 d 20 (*.f64 d 10))
(fma.f64 10 d (*.f64 d 20))
(fma.f64 20 d (*.f64 d 10))
(fma.f64 1 (*.f64 d 10) (*.f64 d 20))
(fma.f64 1 (*.f64 d 20) (*.f64 d 10))
(fma.f64 (cbrt.f64 (*.f64 (*.f64 d d) 100)) (cbrt.f64 (*.f64 d 10)) (*.f64 d 20))
(fma.f64 (pow.f64 (cbrt.f64 (*.f64 d 20)) 2) (cbrt.f64 (*.f64 d 20)) (*.f64 d 10))
(fma.f64 (sqrt.f64 (*.f64 d 10)) (sqrt.f64 (*.f64 d 10)) (*.f64 d 20))
(fma.f64 (sqrt.f64 (*.f64 d 20)) (sqrt.f64 (*.f64 d 20)) (*.f64 d 10))
Outputs
(*.f64 30 d)
(*.f64 30 d)
(*.f64 30 d)
(*.f64 30 d)
(*.f64 30 d)
(*.f64 30 d)
(*.f64 30 d)
(*.f64 30 d)
(*.f64 30 d)
(*.f64 30 d)
(*.f64 30 d)
(*.f64 30 d)
(-.f64 (+.f64 1 (*.f64 d 30)) 1)
(*.f64 30 d)
(-.f64 (/.f64 (*.f64 (*.f64 d d) 100) (*.f64 d -10)) (/.f64 (pow.f64 (*.f64 d 20) 2) (*.f64 d -10)))
(-.f64 (*.f64 (/.f64 (*.f64 d d) d) -10) (/.f64 (pow.f64 (*.f64 d 20) 2) (*.f64 d -10)))
(-.f64 (*.f64 -10 (/.f64 d (/.f64 d d))) (/.f64 (pow.f64 (*.f64 d 20) 2) (*.f64 d -10)))
(fma.f64 d -10 (/.f64 (*.f64 (*.f64 d d) -400) (*.f64 d -10)))
(*.f64 d 30)
(*.f64 30 d)
(*.f64 (*.f64 d 30) 1)
(*.f64 30 d)
(*.f64 1 (*.f64 d 30))
(*.f64 30 d)
(*.f64 (cbrt.f64 (*.f64 d 30)) (cbrt.f64 (*.f64 (*.f64 d d) 900)))
(*.f64 (cbrt.f64 (*.f64 30 d)) (cbrt.f64 (*.f64 d (*.f64 d 900))))
(*.f64 (cbrt.f64 (*.f64 (*.f64 d d) 900)) (cbrt.f64 (*.f64 d 30)))
(*.f64 (cbrt.f64 (*.f64 30 d)) (cbrt.f64 (*.f64 d (*.f64 d 900))))
(*.f64 (pow.f64 (cbrt.f64 d) 2) (*.f64 (cbrt.f64 d) 30))
(*.f64 30 d)
(*.f64 (sqrt.f64 (*.f64 d 30)) (sqrt.f64 (*.f64 d 30)))
(*.f64 30 d)
(*.f64 (sqrt.f64 d) (*.f64 (sqrt.f64 d) 30))
(*.f64 30 d)
(*.f64 (+.f64 (*.f64 (pow.f64 d 3) 1000) (pow.f64 (*.f64 d 20) 3)) (/.f64 1 (+.f64 (*.f64 (*.f64 d d) 100) (*.f64 (*.f64 d 20) (-.f64 (*.f64 d 20) (*.f64 d 10))))))
(*.f64 (fma.f64 (pow.f64 d 3) 1000 (*.f64 (pow.f64 d 3) 8000)) (/.f64 1 (fma.f64 (*.f64 d d) 100 (*.f64 d (*.f64 (*.f64 d 10) 20)))))
(/.f64 (*.f64 (pow.f64 d 3) 9000) (*.f64 d (+.f64 (*.f64 d 100) (*.f64 d 200))))
(/.f64 (*.f64 (pow.f64 d 3) 9000) (*.f64 d (*.f64 d 300)))
(*.f64 (*.f64 (*.f64 d 30) (*.f64 d -10)) (/.f64 1 (*.f64 d -10)))
(*.f64 30 d)
(*.f64 30 d)
(/.f64 1 (/.f64 (+.f64 (*.f64 (*.f64 d d) 100) (*.f64 (*.f64 d 20) (-.f64 (*.f64 d 20) (*.f64 d 10)))) (+.f64 (*.f64 (pow.f64 d 3) 1000) (pow.f64 (*.f64 d 20) 3))))
(*.f64 (fma.f64 (pow.f64 d 3) 1000 (*.f64 (pow.f64 d 3) 8000)) (/.f64 1 (fma.f64 (*.f64 d d) 100 (*.f64 d (*.f64 (*.f64 d 10) 20)))))
(/.f64 (*.f64 (pow.f64 d 3) 9000) (*.f64 d (+.f64 (*.f64 d 100) (*.f64 d 200))))
(/.f64 (*.f64 (pow.f64 d 3) 9000) (*.f64 d (*.f64 d 300)))
(/.f64 1 (/.f64 (*.f64 d -10) (*.f64 (*.f64 d 30) (*.f64 d -10))))
(*.f64 30 d)
(/.f64 (+.f64 (*.f64 (pow.f64 d 3) 1000) (pow.f64 (*.f64 d 20) 3)) (+.f64 (*.f64 (*.f64 d d) 100) (*.f64 (*.f64 d 20) (-.f64 (*.f64 d 20) (*.f64 d 10)))))
(*.f64 (fma.f64 (pow.f64 d 3) 1000 (*.f64 (pow.f64 d 3) 8000)) (/.f64 1 (fma.f64 (*.f64 d d) 100 (*.f64 d (*.f64 (*.f64 d 10) 20)))))
(/.f64 (*.f64 (pow.f64 d 3) 9000) (*.f64 d (+.f64 (*.f64 d 100) (*.f64 d 200))))
(/.f64 (*.f64 (pow.f64 d 3) 9000) (*.f64 d (*.f64 d 300)))
(/.f64 (+.f64 (*.f64 (pow.f64 d 3) 1000) (pow.f64 (*.f64 d 20) 3)) (+.f64 (pow.f64 (*.f64 d 20) 2) (-.f64 (*.f64 (*.f64 d d) 100) (*.f64 d (*.f64 10 (*.f64 d 20))))))
(*.f64 (fma.f64 (pow.f64 d 3) 1000 (*.f64 (pow.f64 d 3) 8000)) (/.f64 1 (fma.f64 (*.f64 d d) 100 (*.f64 d (*.f64 (*.f64 d 10) 20)))))
(/.f64 (*.f64 (pow.f64 d 3) 9000) (*.f64 d (+.f64 (*.f64 d 100) (*.f64 d 200))))
(/.f64 (*.f64 (pow.f64 d 3) 9000) (*.f64 d (*.f64 d 300)))
(/.f64 (*.f64 (*.f64 d 30) (*.f64 d -10)) (*.f64 d -10))
(*.f64 30 d)
(/.f64 (neg.f64 (+.f64 (*.f64 (pow.f64 d 3) 1000) (pow.f64 (*.f64 d 20) 3))) (neg.f64 (+.f64 (*.f64 (*.f64 d d) 100) (*.f64 (*.f64 d 20) (-.f64 (*.f64 d 20) (*.f64 d 10))))))
(*.f64 (fma.f64 (pow.f64 d 3) 1000 (*.f64 (pow.f64 d 3) 8000)) (/.f64 1 (fma.f64 (*.f64 d d) 100 (*.f64 d (*.f64 (*.f64 d 10) 20)))))
(/.f64 (*.f64 (pow.f64 d 3) 9000) (*.f64 d (+.f64 (*.f64 d 100) (*.f64 d 200))))
(/.f64 (*.f64 (pow.f64 d 3) 9000) (*.f64 d (*.f64 d 300)))
(/.f64 (neg.f64 (*.f64 (*.f64 d 30) (*.f64 d -10))) (neg.f64 (*.f64 d -10)))
(*.f64 30 d)
(/.f64 (-.f64 (pow.f64 (*.f64 d 20) 2) (*.f64 (*.f64 d d) 100)) (-.f64 (*.f64 d 20) (*.f64 d 10)))
(/.f64 (-.f64 (pow.f64 (*.f64 d 20) 2) (*.f64 (*.f64 d d) 100)) (*.f64 d 10))
(/.f64 (-.f64 (pow.f64 (*.f64 d 20) 2) (*.f64 d (*.f64 d 100))) (*.f64 d 10))
(/.f64 (*.f64 d (*.f64 d 300)) (*.f64 d 10))
(pow.f64 (*.f64 d 30) 1)
(*.f64 30 d)
(pow.f64 (cbrt.f64 (*.f64 d 30)) 3)
(*.f64 30 d)
(pow.f64 (pow.f64 (*.f64 d 30) 3) 1/3)
(*.f64 30 d)
(pow.f64 (sqrt.f64 (*.f64 d 30)) 2)
(*.f64 30 d)
(sqrt.f64 (*.f64 (*.f64 d d) 900))
(sqrt.f64 (*.f64 d (*.f64 d 900)))
(fabs.f64 (*.f64 30 d))
(log.f64 (pow.f64 (exp.f64 d) 30))
(*.f64 30 d)
(cbrt.f64 (pow.f64 (*.f64 d 30) 3))
(*.f64 30 d)
(expm1.f64 (log1p.f64 (*.f64 d 30)))
(*.f64 30 d)
(exp.f64 (log.f64 (*.f64 d 30)))
(*.f64 30 d)
(log1p.f64 (expm1.f64 (*.f64 d 30)))
(*.f64 30 d)
(fma.f64 d 10 (*.f64 d 20))
(*.f64 30 d)
(fma.f64 d 20 (*.f64 d 10))
(*.f64 30 d)
(fma.f64 10 d (*.f64 d 20))
(*.f64 30 d)
(fma.f64 20 d (*.f64 d 10))
(*.f64 30 d)
(fma.f64 1 (*.f64 d 10) (*.f64 d 20))
(*.f64 30 d)
(fma.f64 1 (*.f64 d 20) (*.f64 d 10))
(*.f64 30 d)
(fma.f64 (cbrt.f64 (*.f64 (*.f64 d d) 100)) (cbrt.f64 (*.f64 d 10)) (*.f64 d 20))
(fma.f64 (cbrt.f64 (*.f64 d (*.f64 d 100))) (cbrt.f64 (*.f64 d 10)) (*.f64 d 20))
(fma.f64 d 20 (*.f64 (cbrt.f64 (*.f64 d (*.f64 d 100))) (cbrt.f64 (*.f64 d 10))))
(fma.f64 (pow.f64 (cbrt.f64 (*.f64 d 20)) 2) (cbrt.f64 (*.f64 d 20)) (*.f64 d 10))
(*.f64 30 d)
(fma.f64 (sqrt.f64 (*.f64 d 10)) (sqrt.f64 (*.f64 d 10)) (*.f64 d 20))
(*.f64 30 d)
(fma.f64 (sqrt.f64 (*.f64 d 20)) (sqrt.f64 (*.f64 d 20)) (*.f64 d 10))
(*.f64 30 d)

eval13.0ms (1.5%)

Compiler

Compiled 645 to 467 computations (27.6% saved)

prune7.0ms (0.8%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New54155
Fresh000
Picked101
Done000
Total55156
Accurracy
100.0%
Counts
56 → 1
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(*.f64 d 30)
100.0%
(*.f64 d 30)
Compiler

Compiled 8 to 6 computations (25% saved)

localize14.0ms (1.6%)

Compiler

Compiled 7 to 5 computations (28.6% saved)

eval0.0ms (0%)

Compiler

Compiled 1 to 1 computations (0% saved)

prune1.0ms (0.1%)

Pruning

1 alts after pruning (0 fresh and 1 done)

PrunedKeptTotal
New000
Fresh000
Picked011
Done000
Total011
Accurracy
100.0%
Counts
1 → 1
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(*.f64 d 30)
Compiler

Compiled 15 to 11 computations (26.7% saved)

regimes6.0ms (0.7%)

Accuracy

Total -0.2b remaining (-∞%)

Threshold costs -0.2b (-∞%)

Counts
2 → 1
Calls
Call 1
Inputs
(*.f64 d 30)
(+.f64 (*.f64 d 10) (*.f64 d 20))
Outputs
(*.f64 d 30)
Calls

2 calls:

3.0ms
(+.f64 (*.f64 d 10) (*.f64 d 20))
3.0ms
d
Results
AccuracySegmentsBranch
100.0%1d
100.0%1(+.f64 (*.f64 d 10) (*.f64 d 20))
Compiler

Compiled 21 to 15 computations (28.6% saved)

simplify4.0ms (0.5%)

Algorithm
egg-herbie
Rules
*-commutative
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
057
167
Stop Event
done
saturated
Calls
Call 1
Inputs
(*.f64 d 30)
Outputs
(*.f64 d 30)
Compiler

Compiled 4 to 3 computations (25% saved)

soundness66.0ms (7.4%)

Rules
1784×pow1
1676×add-exp-log
1676×log1p-expm1-u
1676×expm1-log1p-u
1646×add-log-exp
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
087
11777
222767
Stop Event
node limit
Compiler

Compiled 16 to 12 computations (25% saved)

end34.0ms (3.8%)

Compiler

Compiled 32 to 24 computations (25% saved)

Profiling

Loading profile data...