Details

Time bar (total: 1.4s)

analyze24.0ms (1.7%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
0%0%99.9%0.1%0%0%0%1
0%0%99.9%0.1%0%0%0%2
50%50%50%0.1%0%0%0%3
50%50%50%0.1%0%0%0%4
62.5%62.4%37.5%0.1%0%0%0%5
66.7%62.4%31.2%0.1%6.2%0%0%6
75%65.6%21.9%0.1%12.5%0%0%7
79.6%67.1%17.2%0.1%15.6%0%0%8
86.5%70.2%10.9%0.1%18.7%0%0%9
89.2%71%8.6%0.1%20.3%0%0%10
93%72.6%5.5%0.1%21.9%0%0%11
94.4%73%4.3%0.1%22.6%0%0%12
Compiler

Compiled 9 to 6 computations (33.3% saved)

sample776.0ms (55.3%)

Results
745.0ms8256×body256valid
20.0ms256×body256infinite
Bogosity

preprocess81.0ms (5.8%)

Algorithm
egg-herbie
Rules
1158×pow-sqr
1112×sqr-pow
1020×exp-prod
968×associate-/r/
950×fma-def
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01134
12234
23934
36834
413834
531134
677734
7219334
8371234
9453034
10610034
022
Stop Event
saturated
node limit
Calls
Call 1
Inputs
0
1
Outputs
0
1
Call 2
Inputs
(exp.f64 (*.f64 (*.f64 x y) y))
(exp.f64 (*.f64 (*.f64 y x) x))
Outputs
(exp.f64 (*.f64 (*.f64 x y) y))
(pow.f64 (exp.f64 (*.f64 x y)) y)
(pow.f64 (pow.f64 (exp.f64 x) y) y)
(pow.f64 (exp.f64 x) (*.f64 y y))
(exp.f64 (*.f64 (*.f64 y x) x))
(pow.f64 (exp.f64 (*.f64 x y)) x)
(pow.f64 (exp.f64 x) (*.f64 x y))
(pow.f64 (pow.f64 (exp.f64 x) y) x)
Compiler

Compiled 10 to 7 computations (30% saved)

simplify95.0ms (6.8%)

Algorithm
egg-herbie
Rules
1206×sqr-pow
960×associate-*r/
748×distribute-lft-in
688×unswap-sqr
648×pow-sqr
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0817
11417
22517
34317
48717
519917
649917
7138417
8374017
9424617
10523117
11711917
Stop Event
node limit
Counts
1 → 4
Calls
Call 1
Inputs
(exp.f64 (*.f64 (*.f64 x y) y))
Outputs
(exp.f64 (*.f64 (*.f64 x y) y))
(pow.f64 (exp.f64 (*.f64 x y)) y)
(pow.f64 (exp.f64 x) (*.f64 y y))
(pow.f64 (pow.f64 (exp.f64 x) y) y)

eval1.0ms (0%)

Compiler

Compiled 26 to 12 computations (53.8% saved)

prune1.0ms (0.1%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New314
Fresh011
Picked000
Done000
Total325
Error
0.01%
Counts
5 → 1
Alt Table
Click to see full alt table
StatusErrorProgram
0.01%
(exp.f64 (*.f64 (*.f64 x y) y))
Compiler

Compiled 8 to 5 computations (37.5% saved)

localize6.0ms (0.4%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.01%
(exp.f64 (*.f64 (*.f64 x y) y))
0.27%
(*.f64 (*.f64 x y) y)
Compiler

Compiled 18 to 5 computations (72.2% saved)

series3.0ms (0.2%)

Counts
2 → 48
Calls

12 calls:

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

rewrite54.0ms (3.8%)

Algorithm
batch-egg-rewrite
Rules
1446×add-sqr-sqrt
1436×*-un-lft-identity
1322×add-cube-cbrt
1298×add-cbrt-cube
1282×add-exp-log
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0830
115530
2182830
Stop Event
node limit
Counts
2 → 39
Calls
Call 1
Inputs
(*.f64 (*.f64 x y) y)
(exp.f64 (*.f64 (*.f64 x y) y))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 y) x) (*.f64 2 y)))) (log.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 y) x) y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 y) x) y))) (log.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 y) x) y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 y (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 y (*.f64 x y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y (*.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 x) y) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 y (*.f64 x y))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 y (*.f64 x y)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 y (*.f64 x y)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (pow.f64 (exp.f64 y) x) y))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 y (*.f64 x y)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 y (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 y (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 y (*.f64 x y))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 y (*.f64 x y))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (expm1.f64 (*.f64 y (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (pow.f64 (exp.f64 y) x) y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (exp.f64 y) x) y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (pow.f64 (exp.f64 y) x) y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 y) x) y)) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 y) x) y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 y) x) y)) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 y) x) (*.f64 2 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 y) x) (*.f64 2 y))) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 y) x) y)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (pow.f64 (exp.f64 y) x) y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 y) x) y)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 y) x) y)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 y) x) y) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (exp.f64 y) x) y)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 x) (*.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 y) (*.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (*.f64 (sqrt.f64 x) y)) (*.f64 (sqrt.f64 x) y))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (*.f64 y (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (*.f64 y (*.f64 x y))) 2)) (cbrt.f64 (*.f64 y (*.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (pow.f64 (exp.f64 y) x) (sqrt.f64 y)) (sqrt.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (pow.f64 (exp.f64 y) x) (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (pow.f64 (exp.f64 y) x) (*.f64 2 y)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (pow.f64 (exp.f64 y) x) y)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 y) x) y) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (pow.f64 (exp.f64 y) x) y)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (pow.f64 (exp.f64 y) x) y)))))))

simplify81.0ms (5.8%)

Algorithm
egg-herbie
Rules
832×associate-*r/
830×unswap-sqr
770×*-commutative
566×log-prod
532×+-commutative
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01051499
12551475
210611475
334771467
478941467
Stop Event
node limit
Counts
87 → 61
Calls
Call 1
Inputs
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
1
(+.f64 1 (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 y 4) (pow.f64 x 2))) (+.f64 1 (*.f64 (pow.f64 y 2) x)))
(+.f64 (*.f64 1/6 (*.f64 (pow.f64 y 6) (pow.f64 x 3))) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 y 4) (pow.f64 x 2))) (+.f64 1 (*.f64 (pow.f64 y 2) x))))
(exp.f64 (*.f64 (pow.f64 y 2) x))
(exp.f64 (*.f64 (pow.f64 y 2) x))
(exp.f64 (*.f64 (pow.f64 y 2) x))
(exp.f64 (*.f64 (pow.f64 y 2) x))
(exp.f64 (*.f64 (pow.f64 y 2) x))
(exp.f64 (*.f64 (pow.f64 y 2) x))
(exp.f64 (*.f64 (pow.f64 y 2) x))
(exp.f64 (*.f64 (pow.f64 y 2) x))
1
(+.f64 1 (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 y 4) (pow.f64 x 2))) (+.f64 1 (*.f64 (pow.f64 y 2) x)))
(+.f64 (*.f64 1/6 (*.f64 (pow.f64 y 6) (pow.f64 x 3))) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 y 4) (pow.f64 x 2))) (+.f64 1 (*.f64 (pow.f64 y 2) x))))
(exp.f64 (*.f64 (pow.f64 y 2) x))
(exp.f64 (*.f64 (pow.f64 y 2) x))
(exp.f64 (*.f64 (pow.f64 y 2) x))
(exp.f64 (*.f64 (pow.f64 y 2) x))
(exp.f64 (*.f64 (pow.f64 y 2) x))
(exp.f64 (*.f64 (pow.f64 y 2) x))
(exp.f64 (*.f64 (pow.f64 y 2) x))
(exp.f64 (*.f64 (pow.f64 y 2) x))
(+.f64 (log.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 y) x) (*.f64 2 y)))) (log.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 y) x) y))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 y) x) y))) (log.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 y) x) y))))
(+.f64 0 (*.f64 y (*.f64 x y)))
(-.f64 (+.f64 1 (*.f64 y (*.f64 x y))) 1)
(pow.f64 (*.f64 y (*.f64 x y)) 1)
(pow.f64 (*.f64 (sqrt.f64 x) y) 2)
(pow.f64 (cbrt.f64 (*.f64 y (*.f64 x y))) 3)
(pow.f64 (pow.f64 (*.f64 y (*.f64 x y)) 3) 1/3)
(sqrt.f64 (pow.f64 (*.f64 y (*.f64 x y)) 2))
(log.f64 (pow.f64 (pow.f64 (exp.f64 y) x) y))
(cbrt.f64 (pow.f64 (*.f64 y (*.f64 x y)) 3))
(expm1.f64 (log1p.f64 (*.f64 y (*.f64 x y))))
(exp.f64 (log.f64 (*.f64 y (*.f64 x y))))
(exp.f64 (*.f64 (log.f64 (*.f64 y (*.f64 x y))) 1))
(log1p.f64 (expm1.f64 (*.f64 y (*.f64 x y))))
(+.f64 1 (expm1.f64 (*.f64 y (*.f64 x y))))
(-.f64 (+.f64 1 (pow.f64 (pow.f64 (exp.f64 y) x) y)) 1)
(*.f64 (pow.f64 (pow.f64 (exp.f64 y) x) y) 1)
(*.f64 1 (pow.f64 (pow.f64 (exp.f64 y) x) y))
(*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 y) x) y)) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 y) x) y)))
(*.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 y) x) y)) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 y) x) (*.f64 2 y))))
(*.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 y) x) (*.f64 2 y))) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 y) x) y)))
(pow.f64 (pow.f64 (pow.f64 (exp.f64 y) x) y) 1)
(pow.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 y) x) y)) 2)
(pow.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 y) x) y)) 3)
(pow.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 y) x) y) 3) 1/3)
(pow.f64 (pow.f64 (exp.f64 y) x) y)
(pow.f64 (exp.f64 x) (*.f64 y y))
(pow.f64 (exp.f64 y) (*.f64 x y))
(pow.f64 (exp.f64 (*.f64 (sqrt.f64 x) y)) (*.f64 (sqrt.f64 x) y))
(pow.f64 (exp.f64 1) (*.f64 y (*.f64 x y)))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (*.f64 y (*.f64 x y))) 2)) (cbrt.f64 (*.f64 y (*.f64 x y))))
(pow.f64 (pow.f64 (pow.f64 (exp.f64 y) x) (sqrt.f64 y)) (sqrt.f64 y))
(pow.f64 (pow.f64 (pow.f64 (exp.f64 y) x) (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 y))
(sqrt.f64 (pow.f64 (pow.f64 (exp.f64 y) x) (*.f64 2 y)))
(log.f64 (exp.f64 (pow.f64 (pow.f64 (exp.f64 y) x) y)))
(cbrt.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 y) x) y) 3))
(expm1.f64 (log1p.f64 (pow.f64 (pow.f64 (exp.f64 y) x) y)))
(log1p.f64 (expm1.f64 (pow.f64 (pow.f64 (exp.f64 y) x) y)))
Outputs
(*.f64 (pow.f64 y 2) x)
(*.f64 (*.f64 y y) x)
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 (*.f64 y y) x)
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 (*.f64 y y) x)
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 (*.f64 y y) x)
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 (*.f64 y y) x)
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 (*.f64 y y) x)
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 (*.f64 y y) x)
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 (*.f64 y y) x)
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 (*.f64 y y) x)
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 (*.f64 y y) x)
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 (*.f64 y y) x)
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 (*.f64 y y) x)
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 (*.f64 y y) x)
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 (*.f64 y y) x)
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 (*.f64 y y) x)
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 (*.f64 y y) x)
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 (*.f64 y y) x)
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 (*.f64 y y) x)
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 (*.f64 y y) x)
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 (*.f64 y y) x)
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 (*.f64 y y) x)
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 (*.f64 y y) x)
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 (*.f64 y y) x)
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 (*.f64 y y) x)
(*.f64 y (*.f64 y x))
1
(+.f64 1 (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 (*.f64 y y) x) 1)
(fma.f64 y (*.f64 y x) 1)
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 y 4) (pow.f64 x 2))) (+.f64 1 (*.f64 (pow.f64 y 2) x)))
(fma.f64 1/2 (*.f64 (pow.f64 y 4) (*.f64 x x)) (+.f64 (*.f64 (*.f64 y y) x) 1))
(fma.f64 (*.f64 1/2 (pow.f64 y 4)) (*.f64 x x) (fma.f64 y (*.f64 y x) 1))
(fma.f64 1/2 (pow.f64 (*.f64 y (*.f64 y x)) 2) (fma.f64 y (*.f64 y x) 1))
(fma.f64 1/2 (pow.f64 (*.f64 y (sqrt.f64 x)) 4) (fma.f64 y (*.f64 y x) 1))
(+.f64 (*.f64 1/6 (*.f64 (pow.f64 y 6) (pow.f64 x 3))) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 y 4) (pow.f64 x 2))) (+.f64 1 (*.f64 (pow.f64 y 2) x))))
(fma.f64 1/6 (*.f64 (pow.f64 y 6) (pow.f64 x 3)) (fma.f64 1/2 (*.f64 (pow.f64 y 4) (*.f64 x x)) (+.f64 (*.f64 (*.f64 y y) x) 1)))
(fma.f64 1/6 (*.f64 (pow.f64 y 6) (pow.f64 x 3)) (fma.f64 (*.f64 1/2 (pow.f64 y 4)) (*.f64 x x) (fma.f64 y (*.f64 y x) 1)))
(fma.f64 1/6 (*.f64 (pow.f64 y 6) (pow.f64 x 3)) (fma.f64 1/2 (pow.f64 (*.f64 y (*.f64 y x)) 2) (fma.f64 y (*.f64 y x) 1)))
(fma.f64 1/2 (pow.f64 (*.f64 y (sqrt.f64 x)) 4) (fma.f64 1/6 (*.f64 (pow.f64 y 6) (pow.f64 x 3)) (fma.f64 y (*.f64 y x) 1)))
(exp.f64 (*.f64 (pow.f64 y 2) x))
(pow.f64 (exp.f64 (*.f64 y y)) x)
(pow.f64 (pow.f64 (exp.f64 y) y) x)
(pow.f64 (exp.f64 y) (*.f64 y x))
(exp.f64 (*.f64 (pow.f64 y 2) x))
(pow.f64 (exp.f64 (*.f64 y y)) x)
(pow.f64 (pow.f64 (exp.f64 y) y) x)
(pow.f64 (exp.f64 y) (*.f64 y x))
(exp.f64 (*.f64 (pow.f64 y 2) x))
(pow.f64 (exp.f64 (*.f64 y y)) x)
(pow.f64 (pow.f64 (exp.f64 y) y) x)
(pow.f64 (exp.f64 y) (*.f64 y x))
(exp.f64 (*.f64 (pow.f64 y 2) x))
(pow.f64 (exp.f64 (*.f64 y y)) x)
(pow.f64 (pow.f64 (exp.f64 y) y) x)
(pow.f64 (exp.f64 y) (*.f64 y x))
(exp.f64 (*.f64 (pow.f64 y 2) x))
(pow.f64 (exp.f64 (*.f64 y y)) x)
(pow.f64 (pow.f64 (exp.f64 y) y) x)
(pow.f64 (exp.f64 y) (*.f64 y x))
(exp.f64 (*.f64 (pow.f64 y 2) x))
(pow.f64 (exp.f64 (*.f64 y y)) x)
(pow.f64 (pow.f64 (exp.f64 y) y) x)
(pow.f64 (exp.f64 y) (*.f64 y x))
(exp.f64 (*.f64 (pow.f64 y 2) x))
(pow.f64 (exp.f64 (*.f64 y y)) x)
(pow.f64 (pow.f64 (exp.f64 y) y) x)
(pow.f64 (exp.f64 y) (*.f64 y x))
(exp.f64 (*.f64 (pow.f64 y 2) x))
(pow.f64 (exp.f64 (*.f64 y y)) x)
(pow.f64 (pow.f64 (exp.f64 y) y) x)
(pow.f64 (exp.f64 y) (*.f64 y x))
1
(+.f64 1 (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 (*.f64 y y) x) 1)
(fma.f64 y (*.f64 y x) 1)
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 y 4) (pow.f64 x 2))) (+.f64 1 (*.f64 (pow.f64 y 2) x)))
(fma.f64 1/2 (*.f64 (pow.f64 y 4) (*.f64 x x)) (+.f64 (*.f64 (*.f64 y y) x) 1))
(fma.f64 (*.f64 1/2 (pow.f64 y 4)) (*.f64 x x) (fma.f64 y (*.f64 y x) 1))
(fma.f64 1/2 (pow.f64 (*.f64 y (*.f64 y x)) 2) (fma.f64 y (*.f64 y x) 1))
(fma.f64 1/2 (pow.f64 (*.f64 y (sqrt.f64 x)) 4) (fma.f64 y (*.f64 y x) 1))
(+.f64 (*.f64 1/6 (*.f64 (pow.f64 y 6) (pow.f64 x 3))) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 y 4) (pow.f64 x 2))) (+.f64 1 (*.f64 (pow.f64 y 2) x))))
(fma.f64 1/6 (*.f64 (pow.f64 y 6) (pow.f64 x 3)) (fma.f64 1/2 (*.f64 (pow.f64 y 4) (*.f64 x x)) (+.f64 (*.f64 (*.f64 y y) x) 1)))
(fma.f64 1/6 (*.f64 (pow.f64 y 6) (pow.f64 x 3)) (fma.f64 (*.f64 1/2 (pow.f64 y 4)) (*.f64 x x) (fma.f64 y (*.f64 y x) 1)))
(fma.f64 1/6 (*.f64 (pow.f64 y 6) (pow.f64 x 3)) (fma.f64 1/2 (pow.f64 (*.f64 y (*.f64 y x)) 2) (fma.f64 y (*.f64 y x) 1)))
(fma.f64 1/2 (pow.f64 (*.f64 y (sqrt.f64 x)) 4) (fma.f64 1/6 (*.f64 (pow.f64 y 6) (pow.f64 x 3)) (fma.f64 y (*.f64 y x) 1)))
(exp.f64 (*.f64 (pow.f64 y 2) x))
(pow.f64 (exp.f64 (*.f64 y y)) x)
(pow.f64 (pow.f64 (exp.f64 y) y) x)
(pow.f64 (exp.f64 y) (*.f64 y x))
(exp.f64 (*.f64 (pow.f64 y 2) x))
(pow.f64 (exp.f64 (*.f64 y y)) x)
(pow.f64 (pow.f64 (exp.f64 y) y) x)
(pow.f64 (exp.f64 y) (*.f64 y x))
(exp.f64 (*.f64 (pow.f64 y 2) x))
(pow.f64 (exp.f64 (*.f64 y y)) x)
(pow.f64 (pow.f64 (exp.f64 y) y) x)
(pow.f64 (exp.f64 y) (*.f64 y x))
(exp.f64 (*.f64 (pow.f64 y 2) x))
(pow.f64 (exp.f64 (*.f64 y y)) x)
(pow.f64 (pow.f64 (exp.f64 y) y) x)
(pow.f64 (exp.f64 y) (*.f64 y x))
(exp.f64 (*.f64 (pow.f64 y 2) x))
(pow.f64 (exp.f64 (*.f64 y y)) x)
(pow.f64 (pow.f64 (exp.f64 y) y) x)
(pow.f64 (exp.f64 y) (*.f64 y x))
(exp.f64 (*.f64 (pow.f64 y 2) x))
(pow.f64 (exp.f64 (*.f64 y y)) x)
(pow.f64 (pow.f64 (exp.f64 y) y) x)
(pow.f64 (exp.f64 y) (*.f64 y x))
(exp.f64 (*.f64 (pow.f64 y 2) x))
(pow.f64 (exp.f64 (*.f64 y y)) x)
(pow.f64 (pow.f64 (exp.f64 y) y) x)
(pow.f64 (exp.f64 y) (*.f64 y x))
(exp.f64 (*.f64 (pow.f64 y 2) x))
(pow.f64 (exp.f64 (*.f64 y y)) x)
(pow.f64 (pow.f64 (exp.f64 y) y) x)
(pow.f64 (exp.f64 y) (*.f64 y x))
(+.f64 (log.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 y) x) (*.f64 2 y)))) (log.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 y) x) y))))
(*.f64 (*.f64 y y) x)
(*.f64 y (*.f64 y x))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 y) x) y))) (log.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 y) x) y))))
(*.f64 (*.f64 y y) x)
(*.f64 y (*.f64 y x))
(+.f64 0 (*.f64 y (*.f64 x y)))
(*.f64 (*.f64 y y) x)
(*.f64 y (*.f64 y x))
(-.f64 (+.f64 1 (*.f64 y (*.f64 x y))) 1)
(*.f64 (*.f64 y y) x)
(*.f64 y (*.f64 y x))
(pow.f64 (*.f64 y (*.f64 x y)) 1)
(*.f64 (*.f64 y y) x)
(*.f64 y (*.f64 y x))
(pow.f64 (*.f64 (sqrt.f64 x) y) 2)
(*.f64 (*.f64 y y) x)
(*.f64 y (*.f64 y x))
(pow.f64 (cbrt.f64 (*.f64 y (*.f64 x y))) 3)
(*.f64 (*.f64 y y) x)
(*.f64 y (*.f64 y x))
(pow.f64 (pow.f64 (*.f64 y (*.f64 x y)) 3) 1/3)
(*.f64 (*.f64 y y) x)
(*.f64 y (*.f64 y x))
(sqrt.f64 (pow.f64 (*.f64 y (*.f64 x y)) 2))
(*.f64 (*.f64 y y) x)
(*.f64 y (*.f64 y x))
(log.f64 (pow.f64 (pow.f64 (exp.f64 y) x) y))
(*.f64 (*.f64 y y) x)
(*.f64 y (*.f64 y x))
(cbrt.f64 (pow.f64 (*.f64 y (*.f64 x y)) 3))
(*.f64 (*.f64 y y) x)
(*.f64 y (*.f64 y x))
(expm1.f64 (log1p.f64 (*.f64 y (*.f64 x y))))
(*.f64 (*.f64 y y) x)
(*.f64 y (*.f64 y x))
(exp.f64 (log.f64 (*.f64 y (*.f64 x y))))
(*.f64 (*.f64 y y) x)
(*.f64 y (*.f64 y x))
(exp.f64 (*.f64 (log.f64 (*.f64 y (*.f64 x y))) 1))
(*.f64 (*.f64 y y) x)
(*.f64 y (*.f64 y x))
(log1p.f64 (expm1.f64 (*.f64 y (*.f64 x y))))
(*.f64 (*.f64 y y) x)
(*.f64 y (*.f64 y x))
(+.f64 1 (expm1.f64 (*.f64 y (*.f64 x y))))
(+.f64 1 (expm1.f64 (*.f64 y (*.f64 y x))))
(-.f64 (+.f64 1 (pow.f64 (pow.f64 (exp.f64 y) x) y)) 1)
(pow.f64 (exp.f64 (*.f64 y y)) x)
(pow.f64 (pow.f64 (exp.f64 y) y) x)
(pow.f64 (exp.f64 y) (*.f64 y x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 y) x) y) 1)
(pow.f64 (exp.f64 (*.f64 y y)) x)
(pow.f64 (pow.f64 (exp.f64 y) y) x)
(pow.f64 (exp.f64 y) (*.f64 y x))
(*.f64 1 (pow.f64 (pow.f64 (exp.f64 y) x) y))
(pow.f64 (exp.f64 (*.f64 y y)) x)
(pow.f64 (pow.f64 (exp.f64 y) y) x)
(pow.f64 (exp.f64 y) (*.f64 y x))
(*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 y) x) y)) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 y) x) y)))
(pow.f64 (exp.f64 (*.f64 y y)) x)
(pow.f64 (pow.f64 (exp.f64 y) y) x)
(pow.f64 (exp.f64 y) (*.f64 y x))
(*.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 y) x) y)) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 y) x) (*.f64 2 y))))
(pow.f64 (exp.f64 (*.f64 y y)) x)
(pow.f64 (pow.f64 (exp.f64 y) y) x)
(pow.f64 (exp.f64 y) (*.f64 y x))
(*.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 y) x) (*.f64 2 y))) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 y) x) y)))
(pow.f64 (exp.f64 (*.f64 y y)) x)
(pow.f64 (pow.f64 (exp.f64 y) y) x)
(pow.f64 (exp.f64 y) (*.f64 y x))
(pow.f64 (pow.f64 (pow.f64 (exp.f64 y) x) y) 1)
(pow.f64 (exp.f64 (*.f64 y y)) x)
(pow.f64 (pow.f64 (exp.f64 y) y) x)
(pow.f64 (exp.f64 y) (*.f64 y x))
(pow.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 y) x) y)) 2)
(pow.f64 (exp.f64 (*.f64 y y)) x)
(pow.f64 (pow.f64 (exp.f64 y) y) x)
(pow.f64 (exp.f64 y) (*.f64 y x))
(pow.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 y) x) y)) 3)
(pow.f64 (exp.f64 (*.f64 y y)) x)
(pow.f64 (pow.f64 (exp.f64 y) y) x)
(pow.f64 (exp.f64 y) (*.f64 y x))
(pow.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 y) x) y) 3) 1/3)
(pow.f64 (exp.f64 (*.f64 y y)) x)
(pow.f64 (pow.f64 (exp.f64 y) y) x)
(pow.f64 (exp.f64 y) (*.f64 y x))
(pow.f64 (pow.f64 (exp.f64 y) x) y)
(pow.f64 (exp.f64 (*.f64 y y)) x)
(pow.f64 (pow.f64 (exp.f64 y) y) x)
(pow.f64 (exp.f64 y) (*.f64 y x))
(pow.f64 (exp.f64 x) (*.f64 y y))
(pow.f64 (exp.f64 (*.f64 y y)) x)
(pow.f64 (pow.f64 (exp.f64 y) y) x)
(pow.f64 (exp.f64 y) (*.f64 y x))
(pow.f64 (exp.f64 y) (*.f64 x y))
(pow.f64 (exp.f64 (*.f64 y y)) x)
(pow.f64 (pow.f64 (exp.f64 y) y) x)
(pow.f64 (exp.f64 y) (*.f64 y x))
(pow.f64 (exp.f64 (*.f64 (sqrt.f64 x) y)) (*.f64 (sqrt.f64 x) y))
(pow.f64 (exp.f64 (*.f64 y y)) x)
(pow.f64 (pow.f64 (exp.f64 y) y) x)
(pow.f64 (exp.f64 y) (*.f64 y x))
(pow.f64 (exp.f64 1) (*.f64 y (*.f64 x y)))
(pow.f64 (exp.f64 (*.f64 y y)) x)
(pow.f64 (pow.f64 (exp.f64 y) y) x)
(pow.f64 (exp.f64 y) (*.f64 y x))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (*.f64 y (*.f64 x y))) 2)) (cbrt.f64 (*.f64 y (*.f64 x y))))
(pow.f64 (exp.f64 (*.f64 y y)) x)
(pow.f64 (pow.f64 (exp.f64 y) y) x)
(pow.f64 (exp.f64 y) (*.f64 y x))
(pow.f64 (pow.f64 (pow.f64 (exp.f64 y) x) (sqrt.f64 y)) (sqrt.f64 y))
(pow.f64 (pow.f64 (pow.f64 (exp.f64 y) x) (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 y))
(sqrt.f64 (pow.f64 (pow.f64 (exp.f64 y) x) (*.f64 2 y)))
(pow.f64 (exp.f64 (*.f64 y y)) x)
(pow.f64 (pow.f64 (exp.f64 y) y) x)
(pow.f64 (exp.f64 y) (*.f64 y x))
(log.f64 (exp.f64 (pow.f64 (pow.f64 (exp.f64 y) x) y)))
(pow.f64 (exp.f64 (*.f64 y y)) x)
(pow.f64 (pow.f64 (exp.f64 y) y) x)
(pow.f64 (exp.f64 y) (*.f64 y x))
(cbrt.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 y) x) y) 3))
(pow.f64 (exp.f64 (*.f64 y y)) x)
(pow.f64 (pow.f64 (exp.f64 y) y) x)
(pow.f64 (exp.f64 y) (*.f64 y x))
(expm1.f64 (log1p.f64 (pow.f64 (pow.f64 (exp.f64 y) x) y)))
(pow.f64 (exp.f64 (*.f64 y y)) x)
(pow.f64 (pow.f64 (exp.f64 y) y) x)
(pow.f64 (exp.f64 y) (*.f64 y x))
(log1p.f64 (expm1.f64 (pow.f64 (pow.f64 (exp.f64 y) x) y)))
(pow.f64 (exp.f64 (*.f64 y y)) x)
(pow.f64 (pow.f64 (exp.f64 y) y) x)
(pow.f64 (exp.f64 y) (*.f64 y x))

eval14.0ms (1%)

Compiler

Compiled 658 to 280 computations (57.4% saved)

prune8.0ms (0.6%)

Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New59261
Fresh000
Picked011
Done000
Total59362
Error
0.01%
Counts
62 → 3
Alt Table
Click to see full alt table
StatusErrorProgram
31.85%
(+.f64 (*.f64 (*.f64 y y) x) 1)
0.01%
(exp.f64 (*.f64 (*.f64 x y) y))
31.15%
1
Compiler

Compiled 20 to 14 computations (30% saved)

localize6.0ms (0.4%)

Local error

Found 1 expressions with local error:

NewErrorProgram
12.7%
(*.f64 (*.f64 y y) x)
Compiler

Compiled 20 to 7 computations (65% saved)

series0.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

rewrite62.0ms (4.4%)

Algorithm
batch-egg-rewrite
Rules
1120×add-sqr-sqrt
1108×*-un-lft-identity
1040×pow1
1024×add-cube-cbrt
1008×add-cbrt-cube
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0613
112013
2147113
Stop Event
node limit
Counts
1 → 11
Calls
Call 1
Inputs
(*.f64 (*.f64 y y) x)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 y (*.f64 y x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y (*.f64 y x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y (sqrt.f64 x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 y (*.f64 y x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 y (*.f64 y x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (*.f64 x x) (pow.f64 y 4)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 y) (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 y (*.f64 y x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 y (*.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 y (*.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 y (*.f64 y x))))))))

simplify41.0ms (2.9%)

Algorithm
egg-herbie
Rules
1654×distribute-rgt-in
1626×distribute-lft-in
1326×log-prod
870×associate-*r*
812×associate-+r+
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
038455
194455
2362455
32087455
Stop Event
node limit
Counts
35 → 13
Calls
Call 1
Inputs
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(*.f64 (pow.f64 y 2) x)
(-.f64 (+.f64 1 (*.f64 y (*.f64 y x))) 1)
(pow.f64 (*.f64 y (*.f64 y x)) 1)
(pow.f64 (*.f64 y (sqrt.f64 x)) 2)
(pow.f64 (cbrt.f64 (*.f64 y (*.f64 y x))) 3)
(pow.f64 (pow.f64 (*.f64 y (*.f64 y x)) 3) 1/3)
(sqrt.f64 (*.f64 (*.f64 x x) (pow.f64 y 4)))
(log.f64 (pow.f64 (exp.f64 y) (*.f64 y x)))
(cbrt.f64 (pow.f64 (*.f64 y (*.f64 y x)) 3))
(expm1.f64 (log1p.f64 (*.f64 y (*.f64 y x))))
(exp.f64 (log.f64 (*.f64 y (*.f64 y x))))
(log1p.f64 (expm1.f64 (*.f64 y (*.f64 y x))))
Outputs
(*.f64 (pow.f64 y 2) x)
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 y (*.f64 y x))
(-.f64 (+.f64 1 (*.f64 y (*.f64 y x))) 1)
(*.f64 y (*.f64 y x))
(pow.f64 (*.f64 y (*.f64 y x)) 1)
(*.f64 y (*.f64 y x))
(pow.f64 (*.f64 y (sqrt.f64 x)) 2)
(*.f64 y (*.f64 y x))
(pow.f64 (cbrt.f64 (*.f64 y (*.f64 y x))) 3)
(*.f64 y (*.f64 y x))
(pow.f64 (pow.f64 (*.f64 y (*.f64 y x)) 3) 1/3)
(*.f64 y (*.f64 y x))
(sqrt.f64 (*.f64 (*.f64 x x) (pow.f64 y 4)))
(*.f64 y (*.f64 y x))
(log.f64 (pow.f64 (exp.f64 y) (*.f64 y x)))
(*.f64 y (*.f64 y x))
(cbrt.f64 (pow.f64 (*.f64 y (*.f64 y x)) 3))
(*.f64 y (*.f64 y x))
(expm1.f64 (log1p.f64 (*.f64 y (*.f64 y x))))
(*.f64 y (*.f64 y x))
(exp.f64 (log.f64 (*.f64 y (*.f64 y x))))
(*.f64 y (*.f64 y x))
(log1p.f64 (expm1.f64 (*.f64 y (*.f64 y x))))
(*.f64 y (*.f64 y x))

eval2.0ms (0.2%)

Compiler

Compiled 121 to 67 computations (44.6% saved)

prune3.0ms (0.2%)

Pruning

3 alts after pruning (1 fresh and 2 done)

PrunedKeptTotal
New13013
Fresh011
Picked011
Done011
Total13316
Error
0.01%
Counts
16 → 3
Alt Table
Click to see full alt table
StatusErrorProgram
31.85%
(+.f64 (*.f64 (*.f64 y y) x) 1)
0.01%
(exp.f64 (*.f64 (*.f64 x y) y))
31.15%
1
Compiler

Compiled 20 to 14 computations (30% saved)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune1.0ms (0.1%)

Pruning

3 alts after pruning (1 fresh and 2 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done022
Total033
Error
0.01%
Counts
3 → 3
Alt Table
Click to see full alt table
StatusErrorProgram
31.85%
(+.f64 (*.f64 (*.f64 y y) x) 1)
0.01%
(exp.f64 (*.f64 (*.f64 x y) y))
31.15%
1
Compiler

Compiled 20 to 14 computations (30% saved)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune1.0ms (0.1%)

Pruning

3 alts after pruning (1 fresh and 2 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done022
Total033
Error
0.01%
Counts
3 → 3
Alt Table
Click to see full alt table
StatusErrorProgram
31.85%
(+.f64 (*.f64 (*.f64 y y) x) 1)
0.01%
(exp.f64 (*.f64 (*.f64 x y) y))
31.15%
1
Compiler

Compiled 20 to 14 computations (30% saved)

regimes15.0ms (1.1%)

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

4 calls:

7.0ms
y
3.0ms
x
3.0ms
(*.f64 (*.f64 x y) y)
2.0ms
(exp.f64 (*.f64 (*.f64 x y) y))
Results
ErrorSegmentsBranch
0.01%1x
0.01%1y
0.01%1(exp.f64 (*.f64 (*.f64 x y) y))
0.01%1(*.f64 (*.f64 x y) y)
Compiler

Compiled 37 to 23 computations (37.8% saved)

regimes7.0ms (0.5%)

Accuracy

Total -0.5b remaining (-2.6%)

Threshold costs -0.5b (-2.6%)

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

2 calls:

3.0ms
x
3.0ms
y
Results
ErrorSegmentsBranch
31.15%1x
31.15%1y
Compiler

Compiled 16 to 11 computations (31.3% saved)

simplify5.0ms (0.4%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0918
11318
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(exp.f64 (*.f64 (*.f64 x y) y))
1
Outputs
(exp.f64 (*.f64 (*.f64 x y) y))
(exp.f64 (*.f64 y (*.f64 x y)))
1
Compiler

Compiled 11 to 8 computations (27.3% saved)

soundness0.0ms (0%)

end116.0ms (8.3%)

Compiler

Compiled 9 to 6 computations (33.3% saved)

Profiling

Loading profile data...