Details

Time bar (total: 1.8s)

analyze50.0ms (2.8%)

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
0%0%99.9%0.1%0%0%0%3
0%0%99.9%0.1%0%0%0%4
25%25%74.9%0.1%0%0%0%5
37.5%37.5%62.4%0.1%0%0%0%6
48%37.5%40.6%0.1%21.9%0%0%7
57.1%43.7%32.8%0.1%23.4%0%0%8
67.5%43.7%21.1%0.1%35.1%0%0%9
73.6%46.8%16.8%0.1%36.3%0%0%10
81.4%46.8%10.7%0.1%42.3%0%0%11
85.1%48.4%8.5%0.1%43%0%0%12
Compiler

Compiled 9 to 6 computations (33.3% saved)

sample792.0ms (44.5%)

Results
689.0ms8256×body256valid
91.0ms1089×body256infinite
Bogosity

preprocess79.0ms (4.5%)

Algorithm
egg-herbie
Rules
496×sqr-pow_binary64
428×unswap-sqr_binary64
350×distribute-rgt-in_binary64
332×associate-/l/_binary64
306×distribute-lft-in_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0918
11518
22218
34018
49418
526618
686218
7143318
8377418
9404418
10448318
11526718
12792118
022
Stop Event
saturated
node limit
Calls
Call 1
Inputs
0
1
Outputs
0
1
Call 2
Inputs
(*.f64 x (exp.f64 (*.f64 y y)))
(*.f64 y (exp.f64 (*.f64 x x)))
Outputs
(*.f64 x (exp.f64 (*.f64 y y)))
(*.f64 x (pow.f64 (exp.f64 y) y))
(*.f64 y (exp.f64 (*.f64 x x)))
(*.f64 y (pow.f64 (exp.f64 x) x))
Compiler

Compiled 10 to 7 computations (30% saved)

simplify61.0ms (3.5%)

Algorithm
egg-herbie
Rules
611×sqr-pow_binary64
450×associate-*l*_binary64
424×pow-sqr_binary64
390×associate-*l/_binary64
368×unswap-sqr_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
069
199
2139
3229
4509
51399
64509
714759
827179
940609
1044449
1150199
1266719
Stop Event
node limit
Counts
1 → 2
Calls
Call 1
Inputs
(*.f64 x (exp.f64 (*.f64 y y)))
Outputs
(*.f64 x (exp.f64 (*.f64 y y)))
(*.f64 x (pow.f64 (exp.f64 y) y))

eval0.0ms (0%)

Compiler

Compiled 14 to 8 computations (42.9% saved)

prune1.0ms (0.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
0.0b
Counts
3 → 2
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(*.f64 x (pow.f64 (exp.f64 y) y))
0.0b
(*.f64 x (exp.f64 (*.f64 y y)))
Compiler

Compiled 16 to 10 computations (37.5% saved)

localize6.0ms (0.3%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(*.f64 x (exp.f64 (*.f64 y y)))
0.0b
(exp.f64 (*.f64 y y))
Compiler

Compiled 17 to 5 computations (70.6% saved)

series10.0ms (0.6%)

Counts
2 → 36
Calls

9 calls:

TimeVariablePointExpression
3.0ms
y
@0
(*.f64 x (exp.f64 (*.f64 y y)))
1.0ms
x
@0
(*.f64 x (exp.f64 (*.f64 y y)))
1.0ms
y
@0
(exp.f64 (*.f64 y y))
1.0ms
y
@inf
(*.f64 x (exp.f64 (*.f64 y y)))
1.0ms
x
@inf
(*.f64 x (exp.f64 (*.f64 y y)))
Compiler

Compiled 404 to 334 computations (17.3% saved)

rewrite38.0ms (2.1%)

Algorithm
batch-egg-rewrite
Rules
511×pow1_binary64
486×add-sqr-sqrt_binary64
468×add-log-exp_binary64
468×log1p-expm1-u_binary64
468×expm1-log1p-u_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify48.0ms (2.7%)

Algorithm
egg-herbie
Rules
475×fma-def_binary64
445×unswap-sqr_binary64
332×fma-neg_binary64
279×sqr-pow_binary64
250×distribute-rgt-in_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0107738
1250730
2830563
32916563
46404563
Stop Event
node limit
Counts
68 → 65
Calls
Call 1
Inputs
1
(+.f64 1 (pow.f64 y 2))
(+.f64 1 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))))
(+.f64 (*.f64 1/6 (pow.f64 y 6)) (+.f64 1 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))))
(exp.f64 (/.f64 1 (pow.f64 (/.f64 1 y) 2)))
(exp.f64 (/.f64 1 (pow.f64 (/.f64 1 y) 2)))
(exp.f64 (/.f64 1 (pow.f64 (/.f64 1 y) 2)))
(exp.f64 (/.f64 1 (pow.f64 (/.f64 1 y) 2)))
(exp.f64 (/.f64 1 (pow.f64 (/.f64 -1 y) 2)))
(exp.f64 (/.f64 1 (pow.f64 (/.f64 -1 y) 2)))
(exp.f64 (/.f64 1 (pow.f64 (/.f64 -1 y) 2)))
(exp.f64 (/.f64 1 (pow.f64 (/.f64 -1 y) 2)))
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 (exp.f64 (pow.f64 y 2)) x)
x
(+.f64 (*.f64 (pow.f64 y 2) x) x)
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 y 4) x)) (+.f64 (*.f64 (pow.f64 y 2) x) x))
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 y 4) x)) (+.f64 (*.f64 (pow.f64 y 2) x) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 y 6) x)) x)))
(*.f64 x (exp.f64 (/.f64 1 (pow.f64 (/.f64 1 y) 2))))
(*.f64 x (exp.f64 (/.f64 1 (pow.f64 (/.f64 1 y) 2))))
(*.f64 x (exp.f64 (/.f64 1 (pow.f64 (/.f64 1 y) 2))))
(*.f64 x (exp.f64 (/.f64 1 (pow.f64 (/.f64 1 y) 2))))
(*.f64 (exp.f64 (/.f64 1 (pow.f64 (/.f64 -1 y) 2))) x)
(*.f64 (exp.f64 (/.f64 1 (pow.f64 (/.f64 -1 y) 2))) x)
(*.f64 (exp.f64 (/.f64 1 (pow.f64 (/.f64 -1 y) 2))) x)
(*.f64 (exp.f64 (/.f64 1 (pow.f64 (/.f64 -1 y) 2))) x)
(+.f64 1 (expm1.f64 (*.f64 y y)))
(-.f64 (+.f64 1 (pow.f64 (exp.f64 y) y)) 1)
(*.f64 (pow.f64 (exp.f64 y) y) 1)
(*.f64 1 (pow.f64 (exp.f64 y) y))
(*.f64 (cbrt.f64 (pow.f64 (exp.f64 y) y)) (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 y) y)) 2))
(*.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 y) y)) 2) (cbrt.f64 (pow.f64 (exp.f64 y) y)))
(*.f64 (sqrt.f64 (pow.f64 (exp.f64 y) y)) (sqrt.f64 (pow.f64 (exp.f64 y) y)))
(pow.f64 (pow.f64 (exp.f64 y) y) 1)
(pow.f64 (exp.f64 y) y)
(pow.f64 (pow.f64 (pow.f64 (exp.f64 y) y) 3) 1/3)
(pow.f64 (cbrt.f64 (pow.f64 (exp.f64 y) y)) 3)
(pow.f64 (sqrt.f64 (pow.f64 (exp.f64 y) y)) 2)
(pow.f64 (exp.f64 (cbrt.f64 (pow.f64 y 4))) (pow.f64 (cbrt.f64 y) 2))
(pow.f64 (exp.f64 1) (*.f64 y y))
(pow.f64 (pow.f64 (exp.f64 y) (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 y))
(pow.f64 (pow.f64 (exp.f64 y) (sqrt.f64 y)) (sqrt.f64 y))
(sqrt.f64 (pow.f64 (pow.f64 (exp.f64 y) y) 2))
(log.f64 (exp.f64 (pow.f64 (exp.f64 y) y)))
(cbrt.f64 (pow.f64 (pow.f64 (exp.f64 y) y) 3))
(expm1.f64 (log1p.f64 (pow.f64 (exp.f64 y) y)))
(log1p.f64 (expm1.f64 (pow.f64 (exp.f64 y) y)))
(-.f64 (+.f64 1 (*.f64 (pow.f64 (exp.f64 y) y) x)) 1)
(pow.f64 (*.f64 (pow.f64 (exp.f64 y) y) x) 1)
(pow.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 y) y) x) 3) 1/3)
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 y) y) x)) 3)
(pow.f64 (sqrt.f64 (*.f64 (pow.f64 (exp.f64 y) y) x)) 2)
(sqrt.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 y) y) x) 2))
(log.f64 (pow.f64 (exp.f64 x) (pow.f64 (exp.f64 y) y)))
(cbrt.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 y) y) x) 3))
(expm1.f64 (log1p.f64 (*.f64 (pow.f64 (exp.f64 y) y) x)))
(log1p.f64 (expm1.f64 (*.f64 (pow.f64 (exp.f64 y) y) x)))
(exp.f64 (+.f64 (*.f64 y y) (log.f64 x)))
Outputs
1
(+.f64 1 (pow.f64 y 2))
(+.f64 1 (*.f64 y y))
(fma.f64 y y 1)
(+.f64 1 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))))
(+.f64 1 (+.f64 (*.f64 y y) (*.f64 1/2 (pow.f64 y 4))))
(+.f64 1 (fma.f64 y y (*.f64 1/2 (pow.f64 y 4))))
(fma.f64 y y (fma.f64 1/2 (pow.f64 y 4) 1))
(+.f64 (*.f64 1/6 (pow.f64 y 6)) (+.f64 1 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))))
(fma.f64 1/6 (pow.f64 y 6) (+.f64 1 (+.f64 (*.f64 y y) (*.f64 1/2 (pow.f64 y 4)))))
(+.f64 (fma.f64 y y (*.f64 1/2 (pow.f64 y 4))) (fma.f64 1/6 (pow.f64 y 6) 1))
(fma.f64 1/6 (pow.f64 y 6) (fma.f64 y y (fma.f64 1/2 (pow.f64 y 4) 1)))
(fma.f64 y y (fma.f64 1/2 (pow.f64 y 4) (fma.f64 1/6 (pow.f64 y 6) 1)))
(exp.f64 (/.f64 1 (pow.f64 (/.f64 1 y) 2)))
(pow.f64 (exp.f64 y) y)
(exp.f64 (/.f64 1 (pow.f64 (/.f64 1 y) 2)))
(pow.f64 (exp.f64 y) y)
(exp.f64 (/.f64 1 (pow.f64 (/.f64 1 y) 2)))
(pow.f64 (exp.f64 y) y)
(exp.f64 (/.f64 1 (pow.f64 (/.f64 1 y) 2)))
(pow.f64 (exp.f64 y) y)
(exp.f64 (/.f64 1 (pow.f64 (/.f64 -1 y) 2)))
(exp.f64 (/.f64 1 (pow.f64 (/.f64 1 y) 2)))
(pow.f64 (exp.f64 y) y)
(exp.f64 (/.f64 1 (pow.f64 (/.f64 -1 y) 2)))
(exp.f64 (/.f64 1 (pow.f64 (/.f64 1 y) 2)))
(pow.f64 (exp.f64 y) y)
(exp.f64 (/.f64 1 (pow.f64 (/.f64 -1 y) 2)))
(exp.f64 (/.f64 1 (pow.f64 (/.f64 1 y) 2)))
(pow.f64 (exp.f64 y) y)
(exp.f64 (/.f64 1 (pow.f64 (/.f64 -1 y) 2)))
(exp.f64 (/.f64 1 (pow.f64 (/.f64 1 y) 2)))
(pow.f64 (exp.f64 y) y)
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 (exp.f64 (*.f64 y y)) x)
(*.f64 x (pow.f64 (exp.f64 y) y))
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 (exp.f64 (*.f64 y y)) x)
(*.f64 x (pow.f64 (exp.f64 y) y))
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 (exp.f64 (*.f64 y y)) x)
(*.f64 x (pow.f64 (exp.f64 y) y))
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 (exp.f64 (*.f64 y y)) x)
(*.f64 x (pow.f64 (exp.f64 y) y))
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 (exp.f64 (*.f64 y y)) x)
(*.f64 x (pow.f64 (exp.f64 y) y))
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 (exp.f64 (*.f64 y y)) x)
(*.f64 x (pow.f64 (exp.f64 y) y))
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 (exp.f64 (*.f64 y y)) x)
(*.f64 x (pow.f64 (exp.f64 y) y))
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 (exp.f64 (*.f64 y y)) x)
(*.f64 x (pow.f64 (exp.f64 y) y))
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 (exp.f64 (*.f64 y y)) x)
(*.f64 x (pow.f64 (exp.f64 y) y))
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 (exp.f64 (*.f64 y y)) x)
(*.f64 x (pow.f64 (exp.f64 y) y))
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 (exp.f64 (*.f64 y y)) x)
(*.f64 x (pow.f64 (exp.f64 y) y))
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 (exp.f64 (*.f64 y y)) x)
(*.f64 x (pow.f64 (exp.f64 y) y))
x
(+.f64 (*.f64 (pow.f64 y 2) x) x)
(fma.f64 (*.f64 y y) x x)
(*.f64 (fma.f64 y y 1) x)
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 y 4) x)) (+.f64 (*.f64 (pow.f64 y 2) x) x))
(fma.f64 1/2 (*.f64 (pow.f64 y 4) x) (fma.f64 (*.f64 y y) x x))
(+.f64 x (*.f64 x (fma.f64 y y (*.f64 1/2 (pow.f64 y 4)))))
(*.f64 (fma.f64 y y (fma.f64 1/2 (pow.f64 y 4) 1)) x)
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 y 4) x)) (+.f64 (*.f64 (pow.f64 y 2) x) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 y 6) x)) x)))
(fma.f64 1/2 (*.f64 (pow.f64 y 4) x) (fma.f64 (*.f64 y y) x (fma.f64 1/6 (*.f64 (pow.f64 y 6) x) x)))
(+.f64 (fma.f64 (*.f64 1/6 (pow.f64 y 6)) x x) (*.f64 x (fma.f64 y y (*.f64 1/2 (pow.f64 y 4)))))
(*.f64 x (fma.f64 1/6 (pow.f64 y 6) (fma.f64 y y (fma.f64 1/2 (pow.f64 y 4) 1))))
(*.f64 (fma.f64 y y (fma.f64 1/2 (pow.f64 y 4) (fma.f64 1/6 (pow.f64 y 6) 1))) x)
(*.f64 x (exp.f64 (/.f64 1 (pow.f64 (/.f64 1 y) 2))))
(*.f64 (exp.f64 (*.f64 y y)) x)
(*.f64 x (pow.f64 (exp.f64 y) y))
(*.f64 x (exp.f64 (/.f64 1 (pow.f64 (/.f64 1 y) 2))))
(*.f64 (exp.f64 (*.f64 y y)) x)
(*.f64 x (pow.f64 (exp.f64 y) y))
(*.f64 x (exp.f64 (/.f64 1 (pow.f64 (/.f64 1 y) 2))))
(*.f64 (exp.f64 (*.f64 y y)) x)
(*.f64 x (pow.f64 (exp.f64 y) y))
(*.f64 x (exp.f64 (/.f64 1 (pow.f64 (/.f64 1 y) 2))))
(*.f64 (exp.f64 (*.f64 y y)) x)
(*.f64 x (pow.f64 (exp.f64 y) y))
(*.f64 (exp.f64 (/.f64 1 (pow.f64 (/.f64 -1 y) 2))) x)
(*.f64 (exp.f64 (*.f64 y y)) x)
(*.f64 x (pow.f64 (exp.f64 y) y))
(*.f64 (exp.f64 (/.f64 1 (pow.f64 (/.f64 -1 y) 2))) x)
(*.f64 (exp.f64 (*.f64 y y)) x)
(*.f64 x (pow.f64 (exp.f64 y) y))
(*.f64 (exp.f64 (/.f64 1 (pow.f64 (/.f64 -1 y) 2))) x)
(*.f64 (exp.f64 (*.f64 y y)) x)
(*.f64 x (pow.f64 (exp.f64 y) y))
(*.f64 (exp.f64 (/.f64 1 (pow.f64 (/.f64 -1 y) 2))) x)
(*.f64 (exp.f64 (*.f64 y y)) x)
(*.f64 x (pow.f64 (exp.f64 y) y))
(+.f64 1 (expm1.f64 (*.f64 y y)))
(exp.f64 (/.f64 1 (pow.f64 (/.f64 1 y) 2)))
(pow.f64 (exp.f64 y) y)
(-.f64 (+.f64 1 (pow.f64 (exp.f64 y) y)) 1)
(exp.f64 (/.f64 1 (pow.f64 (/.f64 1 y) 2)))
(pow.f64 (exp.f64 y) y)
(*.f64 (pow.f64 (exp.f64 y) y) 1)
(exp.f64 (/.f64 1 (pow.f64 (/.f64 1 y) 2)))
(pow.f64 (exp.f64 y) y)
(*.f64 1 (pow.f64 (exp.f64 y) y))
(exp.f64 (/.f64 1 (pow.f64 (/.f64 1 y) 2)))
(pow.f64 (exp.f64 y) y)
(*.f64 (cbrt.f64 (pow.f64 (exp.f64 y) y)) (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 y) y)) 2))
(exp.f64 (/.f64 1 (pow.f64 (/.f64 1 y) 2)))
(pow.f64 (exp.f64 y) y)
(*.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 y) y)) 2) (cbrt.f64 (pow.f64 (exp.f64 y) y)))
(exp.f64 (/.f64 1 (pow.f64 (/.f64 1 y) 2)))
(pow.f64 (exp.f64 y) y)
(*.f64 (sqrt.f64 (pow.f64 (exp.f64 y) y)) (sqrt.f64 (pow.f64 (exp.f64 y) y)))
(exp.f64 (/.f64 1 (pow.f64 (/.f64 1 y) 2)))
(pow.f64 (exp.f64 y) y)
(pow.f64 (pow.f64 (exp.f64 y) y) 1)
(exp.f64 (/.f64 1 (pow.f64 (/.f64 1 y) 2)))
(pow.f64 (exp.f64 y) y)
(pow.f64 (exp.f64 y) y)
(exp.f64 (/.f64 1 (pow.f64 (/.f64 1 y) 2)))
(pow.f64 (pow.f64 (pow.f64 (exp.f64 y) y) 3) 1/3)
(exp.f64 (/.f64 1 (pow.f64 (/.f64 1 y) 2)))
(pow.f64 (exp.f64 y) y)
(pow.f64 (cbrt.f64 (pow.f64 (exp.f64 y) y)) 3)
(exp.f64 (/.f64 1 (pow.f64 (/.f64 1 y) 2)))
(pow.f64 (exp.f64 y) y)
(pow.f64 (sqrt.f64 (pow.f64 (exp.f64 y) y)) 2)
(exp.f64 (/.f64 1 (pow.f64 (/.f64 1 y) 2)))
(pow.f64 (exp.f64 y) y)
(pow.f64 (exp.f64 (cbrt.f64 (pow.f64 y 4))) (pow.f64 (cbrt.f64 y) 2))
(pow.f64 (exp.f64 1) (*.f64 y y))
(exp.f64 (/.f64 1 (pow.f64 (/.f64 1 y) 2)))
(pow.f64 (exp.f64 y) y)
(pow.f64 (pow.f64 (exp.f64 y) (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 y))
(pow.f64 (pow.f64 (exp.f64 y) (sqrt.f64 y)) (sqrt.f64 y))
(sqrt.f64 (pow.f64 (pow.f64 (exp.f64 y) y) 2))
(exp.f64 (/.f64 1 (pow.f64 (/.f64 1 y) 2)))
(pow.f64 (exp.f64 y) y)
(log.f64 (exp.f64 (pow.f64 (exp.f64 y) y)))
(exp.f64 (/.f64 1 (pow.f64 (/.f64 1 y) 2)))
(pow.f64 (exp.f64 y) y)
(cbrt.f64 (pow.f64 (pow.f64 (exp.f64 y) y) 3))
(exp.f64 (/.f64 1 (pow.f64 (/.f64 1 y) 2)))
(pow.f64 (exp.f64 y) y)
(expm1.f64 (log1p.f64 (pow.f64 (exp.f64 y) y)))
(exp.f64 (/.f64 1 (pow.f64 (/.f64 1 y) 2)))
(pow.f64 (exp.f64 y) y)
(log1p.f64 (expm1.f64 (pow.f64 (exp.f64 y) y)))
(exp.f64 (/.f64 1 (pow.f64 (/.f64 1 y) 2)))
(pow.f64 (exp.f64 y) y)
(-.f64 (+.f64 1 (*.f64 (pow.f64 (exp.f64 y) y) x)) 1)
(*.f64 (exp.f64 (*.f64 y y)) x)
(*.f64 x (pow.f64 (exp.f64 y) y))
(pow.f64 (*.f64 (pow.f64 (exp.f64 y) y) x) 1)
(*.f64 (exp.f64 (*.f64 y y)) x)
(*.f64 x (pow.f64 (exp.f64 y) y))
(pow.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 y) y) x) 3) 1/3)
(*.f64 (exp.f64 (*.f64 y y)) x)
(*.f64 x (pow.f64 (exp.f64 y) y))
(pow.f64 (cbrt.f64 (*.f64 (pow.f64 (exp.f64 y) y) x)) 3)
(*.f64 (exp.f64 (*.f64 y y)) x)
(*.f64 x (pow.f64 (exp.f64 y) y))
(pow.f64 (sqrt.f64 (*.f64 (pow.f64 (exp.f64 y) y) x)) 2)
(*.f64 (exp.f64 (*.f64 y y)) x)
(*.f64 x (pow.f64 (exp.f64 y) y))
(sqrt.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 y) y) x) 2))
(*.f64 (exp.f64 (*.f64 y y)) x)
(*.f64 x (pow.f64 (exp.f64 y) y))
(log.f64 (pow.f64 (exp.f64 x) (pow.f64 (exp.f64 y) y)))
(*.f64 (exp.f64 (*.f64 y y)) x)
(*.f64 x (pow.f64 (exp.f64 y) y))
(cbrt.f64 (pow.f64 (*.f64 (pow.f64 (exp.f64 y) y) x) 3))
(*.f64 (exp.f64 (*.f64 y y)) x)
(*.f64 x (pow.f64 (exp.f64 y) y))
(expm1.f64 (log1p.f64 (*.f64 (pow.f64 (exp.f64 y) y) x)))
(*.f64 (exp.f64 (*.f64 y y)) x)
(*.f64 x (pow.f64 (exp.f64 y) y))
(log1p.f64 (expm1.f64 (*.f64 (pow.f64 (exp.f64 y) y) x)))
(*.f64 (exp.f64 (*.f64 y y)) x)
(*.f64 x (pow.f64 (exp.f64 y) y))
(exp.f64 (+.f64 (*.f64 y y) (log.f64 x)))
(*.f64 (exp.f64 (*.f64 y y)) x)
(*.f64 x (pow.f64 (exp.f64 y) y))

localize8.0ms (0.5%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(pow.f64 (exp.f64 y) y)
0.0b
(*.f64 x (pow.f64 (exp.f64 y) y))
Compiler

Compiled 16 to 5 computations (68.8% saved)

series42.0ms (2.4%)

Counts
2 → 36
Calls

9 calls:

TimeVariablePointExpression
33.0ms
x
@0
(*.f64 x (pow.f64 (exp.f64 y) y))
3.0ms
x
@inf
(*.f64 x (pow.f64 (exp.f64 y) y))
1.0ms
y
@0
(*.f64 x (pow.f64 (exp.f64 y) y))
1.0ms
y
@-inf
(*.f64 x (pow.f64 (exp.f64 y) y))
1.0ms
y
@inf
(*.f64 x (pow.f64 (exp.f64 y) y))
Compiler

Compiled 404 to 334 computations (17.3% saved)

rewrite43.0ms (2.4%)

Algorithm
batch-egg-rewrite
Rules
550×pow1_binary64
524×add-sqr-sqrt_binary64
505×add-log-exp_binary64
505×log1p-expm1-u_binary64
505×expm1-log1p-u_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify38.0ms (2.1%)

Algorithm
egg-herbie
Rules
698×fma-def_binary64
535×distribute-rgt-in_binary64
525×distribute-lft-in_binary64
478×associate-*l*_binary64
448×associate-*r*_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0100665
1228657
2668520
33481520
Stop Event
node limit
Counts
62 → 61
Calls
Call 1
Inputs
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 (exp.f64 (pow.f64 y 2)) x)
x
(+.f64 (*.f64 (pow.f64 y 2) x) x)
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 y 4) x)) (+.f64 (*.f64 (pow.f64 y 2) x) x))
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 y 4) x)) (+.f64 (*.f64 (pow.f64 y 2) x) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 y 6) x)) x)))
(*.f64 x (exp.f64 (/.f64 1 (pow.f64 (/.f64 1 y) 2))))
(*.f64 x (exp.f64 (/.f64 1 (pow.f64 (/.f64 1 y) 2))))
(*.f64 x (exp.f64 (/.f64 1 (pow.f64 (/.f64 1 y) 2))))
(*.f64 x (exp.f64 (/.f64 1 (pow.f64 (/.f64 1 y) 2))))
(*.f64 (exp.f64 (/.f64 1 (pow.f64 (/.f64 -1 y) 2))) x)
(*.f64 (exp.f64 (/.f64 1 (pow.f64 (/.f64 -1 y) 2))) x)
(*.f64 (exp.f64 (/.f64 1 (pow.f64 (/.f64 -1 y) 2))) x)
(*.f64 (exp.f64 (/.f64 1 (pow.f64 (/.f64 -1 y) 2))) x)
1
(+.f64 1 (pow.f64 y 2))
(+.f64 1 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))))
(+.f64 (*.f64 1/6 (pow.f64 y 6)) (+.f64 1 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))))
(exp.f64 (/.f64 1 (pow.f64 (/.f64 1 y) 2)))
(exp.f64 (/.f64 1 (pow.f64 (/.f64 1 y) 2)))
(exp.f64 (/.f64 1 (pow.f64 (/.f64 1 y) 2)))
(exp.f64 (/.f64 1 (pow.f64 (/.f64 1 y) 2)))
(exp.f64 (/.f64 1 (pow.f64 (/.f64 -1 y) 2)))
(exp.f64 (/.f64 1 (pow.f64 (/.f64 -1 y) 2)))
(exp.f64 (/.f64 1 (pow.f64 (/.f64 -1 y) 2)))
(exp.f64 (/.f64 1 (pow.f64 (/.f64 -1 y) 2)))
(-.f64 (+.f64 1 (*.f64 x (pow.f64 (exp.f64 y) y))) 1)
(pow.f64 (*.f64 x (pow.f64 (exp.f64 y) y)) 1)
(pow.f64 (pow.f64 (*.f64 x (pow.f64 (exp.f64 y) y)) 3) 1/3)
(pow.f64 (cbrt.f64 (*.f64 x (pow.f64 (exp.f64 y) y))) 3)
(pow.f64 (sqrt.f64 (*.f64 x (pow.f64 (exp.f64 y) y))) 2)
(sqrt.f64 (pow.f64 (*.f64 x (pow.f64 (exp.f64 y) y)) 2))
(log.f64 (pow.f64 (exp.f64 (pow.f64 (exp.f64 y) y)) x))
(cbrt.f64 (pow.f64 (*.f64 x (pow.f64 (exp.f64 y) y)) 3))
(expm1.f64 (log1p.f64 (*.f64 x (pow.f64 (exp.f64 y) y))))
(log1p.f64 (expm1.f64 (*.f64 x (pow.f64 (exp.f64 y) y))))
(exp.f64 (+.f64 (log.f64 x) (*.f64 y y)))
(-.f64 (+.f64 1 (pow.f64 (exp.f64 y) y)) 1)
(*.f64 (pow.f64 (exp.f64 y) y) 1)
(*.f64 1 (pow.f64 (exp.f64 y) y))
(*.f64 (cbrt.f64 (pow.f64 (exp.f64 y) y)) (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 y) y)) 2))
(*.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 y) y)) 2) (cbrt.f64 (pow.f64 (exp.f64 y) y)))
(*.f64 (sqrt.f64 (pow.f64 (exp.f64 y) y)) (sqrt.f64 (pow.f64 (exp.f64 y) y)))
(*.f64 (pow.f64 1 y) (pow.f64 (exp.f64 y) y))
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (exp.f64 y)) 2) y) (pow.f64 (cbrt.f64 (exp.f64 y)) y))
(*.f64 (pow.f64 (sqrt.f64 (exp.f64 y)) y) (pow.f64 (sqrt.f64 (exp.f64 y)) y))
(sqrt.f64 (pow.f64 (exp.f64 y) (+.f64 y y)))
(log.f64 (exp.f64 (pow.f64 (exp.f64 y) y)))
(cbrt.f64 (pow.f64 (pow.f64 (exp.f64 y) y) 3))
(expm1.f64 (log1p.f64 (pow.f64 (exp.f64 y) y)))
(log1p.f64 (expm1.f64 (pow.f64 (exp.f64 y) y)))
(exp.f64 (*.f64 y y))
Outputs
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 x (pow.f64 (exp.f64 y) y))
(exp.f64 (fma.f64 y y (log.f64 x)))
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 x (pow.f64 (exp.f64 y) y))
(exp.f64 (fma.f64 y y (log.f64 x)))
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 x (pow.f64 (exp.f64 y) y))
(exp.f64 (fma.f64 y y (log.f64 x)))
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 x (pow.f64 (exp.f64 y) y))
(exp.f64 (fma.f64 y y (log.f64 x)))
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 x (pow.f64 (exp.f64 y) y))
(exp.f64 (fma.f64 y y (log.f64 x)))
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 x (pow.f64 (exp.f64 y) y))
(exp.f64 (fma.f64 y y (log.f64 x)))
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 x (pow.f64 (exp.f64 y) y))
(exp.f64 (fma.f64 y y (log.f64 x)))
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 x (pow.f64 (exp.f64 y) y))
(exp.f64 (fma.f64 y y (log.f64 x)))
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 x (pow.f64 (exp.f64 y) y))
(exp.f64 (fma.f64 y y (log.f64 x)))
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 x (pow.f64 (exp.f64 y) y))
(exp.f64 (fma.f64 y y (log.f64 x)))
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 x (pow.f64 (exp.f64 y) y))
(exp.f64 (fma.f64 y y (log.f64 x)))
(*.f64 (exp.f64 (pow.f64 y 2)) x)
(*.f64 x (pow.f64 (exp.f64 y) y))
(exp.f64 (fma.f64 y y (log.f64 x)))
x
(+.f64 (*.f64 (pow.f64 y 2) x) x)
(fma.f64 (*.f64 y y) x x)
(*.f64 x (fma.f64 y y 1))
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 y 4) x)) (+.f64 (*.f64 (pow.f64 y 2) x) x))
(fma.f64 1/2 (*.f64 x (pow.f64 y 4)) (fma.f64 (*.f64 y y) x x))
(+.f64 x (*.f64 x (fma.f64 y y (*.f64 1/2 (pow.f64 y 4)))))
(*.f64 x (fma.f64 y y (fma.f64 1/2 (pow.f64 y 4) 1)))
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 y 4) x)) (+.f64 (*.f64 (pow.f64 y 2) x) (+.f64 (*.f64 1/6 (*.f64 (pow.f64 y 6) x)) x)))
(fma.f64 1/2 (*.f64 x (pow.f64 y 4)) (fma.f64 (*.f64 y y) x (fma.f64 1/6 (*.f64 x (pow.f64 y 6)) x)))
(+.f64 (*.f64 (fma.f64 1/6 (pow.f64 y 6) 1) x) (*.f64 x (fma.f64 y y (*.f64 1/2 (pow.f64 y 4)))))
(*.f64 x (fma.f64 1/6 (pow.f64 y 6) (fma.f64 y y (fma.f64 1/2 (pow.f64 y 4) 1))))
(*.f64 x (fma.f64 1/2 (pow.f64 y 4) (fma.f64 1/6 (pow.f64 y 6) (fma.f64 y y 1))))
(*.f64 x (exp.f64 (/.f64 1 (pow.f64 (/.f64 1 y) 2))))
(*.f64 x (pow.f64 (exp.f64 y) y))
(exp.f64 (fma.f64 y y (log.f64 x)))
(*.f64 x (exp.f64 (/.f64 1 (pow.f64 (/.f64 1 y) 2))))
(*.f64 x (pow.f64 (exp.f64 y) y))
(exp.f64 (fma.f64 y y (log.f64 x)))
(*.f64 x (exp.f64 (/.f64 1 (pow.f64 (/.f64 1 y) 2))))
(*.f64 x (pow.f64 (exp.f64 y) y))
(exp.f64 (fma.f64 y y (log.f64 x)))
(*.f64 x (exp.f64 (/.f64 1 (pow.f64 (/.f64 1 y) 2))))
(*.f64 x (pow.f64 (exp.f64 y) y))
(exp.f64 (fma.f64 y y (log.f64 x)))
(*.f64 (exp.f64 (/.f64 1 (pow.f64 (/.f64 -1 y) 2))) x)
(*.f64 x (pow.f64 (exp.f64 y) y))
(exp.f64 (fma.f64 y y (log.f64 x)))
(*.f64 (exp.f64 (/.f64 1 (pow.f64 (/.f64 -1 y) 2))) x)
(*.f64 x (pow.f64 (exp.f64 y) y))
(exp.f64 (fma.f64 y y (log.f64 x)))
(*.f64 (exp.f64 (/.f64 1 (pow.f64 (/.f64 -1 y) 2))) x)
(*.f64 x (pow.f64 (exp.f64 y) y))
(exp.f64 (fma.f64 y y (log.f64 x)))
(*.f64 (exp.f64 (/.f64 1 (pow.f64 (/.f64 -1 y) 2))) x)
(*.f64 x (pow.f64 (exp.f64 y) y))
(exp.f64 (fma.f64 y y (log.f64 x)))
1
(+.f64 1 (pow.f64 y 2))
(+.f64 (*.f64 y y) 1)
(fma.f64 y y 1)
(+.f64 1 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))))
(+.f64 (+.f64 (*.f64 y y) 1) (*.f64 1/2 (pow.f64 y 4)))
(+.f64 1 (fma.f64 y y (*.f64 1/2 (pow.f64 y 4))))
(fma.f64 y y (fma.f64 1/2 (pow.f64 y 4) 1))
(+.f64 (*.f64 1/6 (pow.f64 y 6)) (+.f64 1 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))))
(fma.f64 1/6 (pow.f64 y 6) (+.f64 (+.f64 (*.f64 y y) 1) (*.f64 1/2 (pow.f64 y 4))))
(+.f64 (fma.f64 y y (*.f64 1/2 (pow.f64 y 4))) (fma.f64 1/6 (pow.f64 y 6) 1))
(fma.f64 1/6 (pow.f64 y 6) (fma.f64 y y (fma.f64 1/2 (pow.f64 y 4) 1)))
(fma.f64 1/2 (pow.f64 y 4) (fma.f64 1/6 (pow.f64 y 6) (fma.f64 y y 1)))
(exp.f64 (/.f64 1 (pow.f64 (/.f64 1 y) 2)))
(pow.f64 (exp.f64 y) y)
(exp.f64 (/.f64 1 (pow.f64 (/.f64 1 y) 2)))
(pow.f64 (exp.f64 y) y)
(exp.f64 (/.f64 1 (pow.f64 (/.f64 1 y) 2)))
(pow.f64 (exp.f64 y) y)
(exp.f64 (/.f64 1 (pow.f64 (/.f64 1 y) 2)))
(pow.f64 (exp.f64 y) y)
(exp.f64 (/.f64 1 (pow.f64 (/.f64 -1 y) 2)))
(exp.f64 (/.f64 1 (pow.f64 (/.f64 1 y) 2)))
(pow.f64 (exp.f64 y) y)
(exp.f64 (/.f64 1 (pow.f64 (/.f64 -1 y) 2)))
(exp.f64 (/.f64 1 (pow.f64 (/.f64 1 y) 2)))
(pow.f64 (exp.f64 y) y)
(exp.f64 (/.f64 1 (pow.f64 (/.f64 -1 y) 2)))
(exp.f64 (/.f64 1 (pow.f64 (/.f64 1 y) 2)))
(pow.f64 (exp.f64 y) y)
(exp.f64 (/.f64 1 (pow.f64 (/.f64 -1 y) 2)))
(exp.f64 (/.f64 1 (pow.f64 (/.f64 1 y) 2)))
(pow.f64 (exp.f64 y) y)
(-.f64 (+.f64 1 (*.f64 x (pow.f64 (exp.f64 y) y))) 1)
(*.f64 x (pow.f64 (exp.f64 y) y))
(exp.f64 (fma.f64 y y (log.f64 x)))
(pow.f64 (*.f64 x (pow.f64 (exp.f64 y) y)) 1)
(*.f64 x (pow.f64 (exp.f64 y) y))
(exp.f64 (fma.f64 y y (log.f64 x)))
(pow.f64 (pow.f64 (*.f64 x (pow.f64 (exp.f64 y) y)) 3) 1/3)
(*.f64 x (pow.f64 (exp.f64 y) y))
(exp.f64 (fma.f64 y y (log.f64 x)))
(pow.f64 (cbrt.f64 (*.f64 x (pow.f64 (exp.f64 y) y))) 3)
(*.f64 x (pow.f64 (exp.f64 y) y))
(exp.f64 (fma.f64 y y (log.f64 x)))
(pow.f64 (sqrt.f64 (*.f64 x (pow.f64 (exp.f64 y) y))) 2)
(*.f64 x (pow.f64 (exp.f64 y) y))
(exp.f64 (fma.f64 y y (log.f64 x)))
(sqrt.f64 (pow.f64 (*.f64 x (pow.f64 (exp.f64 y) y)) 2))
(*.f64 x (pow.f64 (exp.f64 y) y))
(exp.f64 (fma.f64 y y (log.f64 x)))
(log.f64 (pow.f64 (exp.f64 (pow.f64 (exp.f64 y) y)) x))
(*.f64 x (pow.f64 (exp.f64 y) y))
(exp.f64 (fma.f64 y y (log.f64 x)))
(cbrt.f64 (pow.f64 (*.f64 x (pow.f64 (exp.f64 y) y)) 3))
(*.f64 x (pow.f64 (exp.f64 y) y))
(exp.f64 (fma.f64 y y (log.f64 x)))
(expm1.f64 (log1p.f64 (*.f64 x (pow.f64 (exp.f64 y) y))))
(*.f64 x (pow.f64 (exp.f64 y) y))
(exp.f64 (fma.f64 y y (log.f64 x)))
(log1p.f64 (expm1.f64 (*.f64 x (pow.f64 (exp.f64 y) y))))
(*.f64 x (pow.f64 (exp.f64 y) y))
(exp.f64 (fma.f64 y y (log.f64 x)))
(exp.f64 (+.f64 (log.f64 x) (*.f64 y y)))
(*.f64 x (pow.f64 (exp.f64 y) y))
(exp.f64 (fma.f64 y y (log.f64 x)))
(-.f64 (+.f64 1 (pow.f64 (exp.f64 y) y)) 1)
(exp.f64 (/.f64 1 (pow.f64 (/.f64 1 y) 2)))
(pow.f64 (exp.f64 y) y)
(*.f64 (pow.f64 (exp.f64 y) y) 1)
(exp.f64 (/.f64 1 (pow.f64 (/.f64 1 y) 2)))
(pow.f64 (exp.f64 y) y)
(*.f64 1 (pow.f64 (exp.f64 y) y))
(exp.f64 (/.f64 1 (pow.f64 (/.f64 1 y) 2)))
(pow.f64 (exp.f64 y) y)
(*.f64 (cbrt.f64 (pow.f64 (exp.f64 y) y)) (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 y) y)) 2))
(exp.f64 (/.f64 1 (pow.f64 (/.f64 1 y) 2)))
(pow.f64 (exp.f64 y) y)
(*.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 y) y)) 2) (cbrt.f64 (pow.f64 (exp.f64 y) y)))
(exp.f64 (/.f64 1 (pow.f64 (/.f64 1 y) 2)))
(pow.f64 (exp.f64 y) y)
(*.f64 (sqrt.f64 (pow.f64 (exp.f64 y) y)) (sqrt.f64 (pow.f64 (exp.f64 y) y)))
(exp.f64 (/.f64 1 (pow.f64 (/.f64 1 y) 2)))
(pow.f64 (exp.f64 y) y)
(*.f64 (pow.f64 1 y) (pow.f64 (exp.f64 y) y))
(exp.f64 (/.f64 1 (pow.f64 (/.f64 1 y) 2)))
(pow.f64 (exp.f64 y) y)
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (exp.f64 y)) 2) y) (pow.f64 (cbrt.f64 (exp.f64 y)) y))
(*.f64 (pow.f64 (sqrt.f64 (exp.f64 y)) y) (pow.f64 (sqrt.f64 (exp.f64 y)) y))
(pow.f64 (sqrt.f64 (exp.f64 y)) (+.f64 y y))
(sqrt.f64 (pow.f64 (exp.f64 y) (+.f64 y y)))
(exp.f64 (/.f64 1 (pow.f64 (/.f64 1 y) 2)))
(pow.f64 (exp.f64 y) y)
(log.f64 (exp.f64 (pow.f64 (exp.f64 y) y)))
(exp.f64 (/.f64 1 (pow.f64 (/.f64 1 y) 2)))
(pow.f64 (exp.f64 y) y)
(cbrt.f64 (pow.f64 (pow.f64 (exp.f64 y) y) 3))
(exp.f64 (/.f64 1 (pow.f64 (/.f64 1 y) 2)))
(pow.f64 (exp.f64 y) y)
(expm1.f64 (log1p.f64 (pow.f64 (exp.f64 y) y)))
(exp.f64 (/.f64 1 (pow.f64 (/.f64 1 y) 2)))
(pow.f64 (exp.f64 y) y)
(log1p.f64 (expm1.f64 (pow.f64 (exp.f64 y) y)))
(exp.f64 (/.f64 1 (pow.f64 (/.f64 1 y) 2)))
(pow.f64 (exp.f64 y) y)
(exp.f64 (*.f64 y y))
(exp.f64 (/.f64 1 (pow.f64 (/.f64 1 y) 2)))
(pow.f64 (exp.f64 y) y)

eval27.0ms (1.5%)

Compiler

Compiled 1327 to 680 computations (48.8% saved)

prune15.0ms (0.9%)

Pruning

5 alts after pruning (3 fresh and 2 done)

PrunedKeptTotal
New1233126
Fresh000
Picked011
Done011
Total1235128
Error
0b
Counts
128 → 5
Alt Table
Click to see full alt table
StatusErrorProgram
0.5b
(fma.f64 (*.f64 y y) x x)
0.0b
(*.f64 x (pow.f64 (exp.f64 y) y))
0.5b
(*.f64 x (+.f64 (*.f64 y y) 1))
0.0b
(*.f64 x (exp.f64 (*.f64 y y)))
0.9b
x
Compiler

Compiled 36 to 22 computations (38.9% saved)

localize6.0ms (0.4%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(*.f64 x (+.f64 (*.f64 y y) 1))
Compiler

Compiled 20 to 9 computations (55% saved)

series5.0ms (0.3%)

Counts
1 → 24
Calls

6 calls:

TimeVariablePointExpression
1.0ms
y
@inf
(*.f64 x (+.f64 (*.f64 y y) 1))
1.0ms
x
@0
(*.f64 x (+.f64 (*.f64 y y) 1))
1.0ms
x
@inf
(*.f64 x (+.f64 (*.f64 y y) 1))
1.0ms
x
@-inf
(*.f64 x (+.f64 (*.f64 y y) 1))
1.0ms
y
@-inf
(*.f64 x (+.f64 (*.f64 y y) 1))
Compiler

Compiled 246 to 190 computations (22.8% saved)

rewrite41.0ms (2.3%)

Algorithm
batch-egg-rewrite
Rules
701×pow1_binary64
653×add-log-exp_binary64
653×log1p-expm1-u_binary64
653×expm1-log1p-u_binary64
637×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
078
11488
219038
Stop Event
node limit
Counts
1 → 24
Calls
Call 1
Inputs
(*.f64 x (+.f64 (*.f64 y y) 1))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 x (*.f64 x (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 y y)) x)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 x (*.f64 y y)) 1) x)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 x (fma.f64 y y 1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 x (*.f64 y y)) 3) (pow.f64 x 3)) (+.f64 (*.f64 (*.f64 x (*.f64 y y)) (*.f64 x (*.f64 y y))) (-.f64 (*.f64 x x) (*.f64 (*.f64 x (*.f64 y y)) x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (*.f64 x (*.f64 y y)) (*.f64 x (*.f64 y y))) (*.f64 x x)) (-.f64 (*.f64 x (*.f64 y y)) x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 1 (pow.f64 y 6)) x) (+.f64 (pow.f64 y 4) (-.f64 1 (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (pow.f64 y 4) -1) x) (fma.f64 y y -1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 1 (pow.f64 y 6))) (+.f64 (pow.f64 y 4) (-.f64 1 (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 (pow.f64 y 4) -1)) (fma.f64 y y -1))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (fma.f64 y y 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x (fma.f64 y y 1)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 x (fma.f64 y y 1))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (hypot.f64 1 y) (sqrt.f64 x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 x (fma.f64 y y 1)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 x) (fma.f64 y y 1)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 x (fma.f64 y y 1)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 x 3) (pow.f64 (fma.f64 y y 1) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (fma.f64 y y 1) 3) (pow.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x (fma.f64 y y 1))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 x (fma.f64 y y 1))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 x (fma.f64 y y 1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (*.f64 y y) x)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 y y) x x)))))

simplify41.0ms (2.3%)

Algorithm
egg-herbie
Rules
619×associate-*l*_binary64
589×log-prod_binary64
530×associate-*r*_binary64
447×associate-/l*_binary64
265×fma-neg_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
089454
1244449
2789436
34324435
Stop Event
node limit
Counts
48 → 40
Calls
Call 1
Inputs
(*.f64 (+.f64 1 (pow.f64 y 2)) x)
(*.f64 (+.f64 1 (pow.f64 y 2)) x)
(*.f64 (+.f64 1 (pow.f64 y 2)) x)
(*.f64 (+.f64 1 (pow.f64 y 2)) x)
(*.f64 (+.f64 1 (pow.f64 y 2)) x)
(*.f64 (+.f64 1 (pow.f64 y 2)) x)
(*.f64 (+.f64 1 (pow.f64 y 2)) x)
(*.f64 (+.f64 1 (pow.f64 y 2)) x)
(*.f64 (+.f64 1 (pow.f64 y 2)) x)
(*.f64 (+.f64 1 (pow.f64 y 2)) x)
(*.f64 (+.f64 1 (pow.f64 y 2)) x)
(*.f64 (+.f64 1 (pow.f64 y 2)) x)
x
(+.f64 (*.f64 (pow.f64 y 2) x) x)
(+.f64 (*.f64 (pow.f64 y 2) x) x)
(+.f64 (*.f64 (pow.f64 y 2) x) x)
(*.f64 (pow.f64 (/.f64 1 y) -2) x)
(+.f64 (*.f64 (pow.f64 (/.f64 1 y) -2) x) x)
(+.f64 (*.f64 (pow.f64 (/.f64 1 y) -2) x) x)
(+.f64 (*.f64 (pow.f64 (/.f64 1 y) -2) x) x)
(*.f64 (pow.f64 (/.f64 -1 y) -2) x)
(+.f64 (*.f64 (pow.f64 (/.f64 -1 y) -2) x) x)
(+.f64 (*.f64 (pow.f64 (/.f64 -1 y) -2) x) x)
(+.f64 (*.f64 (pow.f64 (/.f64 -1 y) -2) x) x)
(+.f64 x (*.f64 x (*.f64 y y)))
(+.f64 (*.f64 x (*.f64 y y)) x)
(+.f64 (*.f64 (*.f64 x (*.f64 y y)) 1) x)
(-.f64 (+.f64 1 (*.f64 x (fma.f64 y y 1))) 1)
(/.f64 (+.f64 (pow.f64 (*.f64 x (*.f64 y y)) 3) (pow.f64 x 3)) (+.f64 (*.f64 (*.f64 x (*.f64 y y)) (*.f64 x (*.f64 y y))) (-.f64 (*.f64 x x) (*.f64 (*.f64 x (*.f64 y y)) x))))
(/.f64 (-.f64 (*.f64 (*.f64 x (*.f64 y y)) (*.f64 x (*.f64 y y))) (*.f64 x x)) (-.f64 (*.f64 x (*.f64 y y)) x))
(/.f64 (*.f64 (+.f64 1 (pow.f64 y 6)) x) (+.f64 (pow.f64 y 4) (-.f64 1 (*.f64 y y))))
(/.f64 (*.f64 (+.f64 (pow.f64 y 4) -1) x) (fma.f64 y y -1))
(/.f64 (*.f64 x (+.f64 1 (pow.f64 y 6))) (+.f64 (pow.f64 y 4) (-.f64 1 (*.f64 y y))))
(/.f64 (*.f64 x (+.f64 (pow.f64 y 4) -1)) (fma.f64 y y -1))
(pow.f64 (*.f64 x (fma.f64 y y 1)) 1)
(pow.f64 (pow.f64 (*.f64 x (fma.f64 y y 1)) 3) 1/3)
(pow.f64 (cbrt.f64 (*.f64 x (fma.f64 y y 1))) 3)
(pow.f64 (*.f64 (hypot.f64 1 y) (sqrt.f64 x)) 2)
(sqrt.f64 (pow.f64 (*.f64 x (fma.f64 y y 1)) 2))
(log.f64 (pow.f64 (exp.f64 x) (fma.f64 y y 1)))
(cbrt.f64 (pow.f64 (*.f64 x (fma.f64 y y 1)) 3))
(cbrt.f64 (*.f64 (pow.f64 x 3) (pow.f64 (fma.f64 y y 1) 3)))
(cbrt.f64 (*.f64 (pow.f64 (fma.f64 y y 1) 3) (pow.f64 x 3)))
(expm1.f64 (log1p.f64 (*.f64 x (fma.f64 y y 1))))
(log1p.f64 (expm1.f64 (*.f64 x (fma.f64 y y 1))))
(exp.f64 (log.f64 (*.f64 x (fma.f64 y y 1))))
(fma.f64 x (*.f64 y y) x)
(fma.f64 (*.f64 y y) x x)
Outputs
(*.f64 (+.f64 1 (pow.f64 y 2)) x)
(fma.f64 x (*.f64 y y) x)
(*.f64 x (fma.f64 y y 1))
(*.f64 (+.f64 1 (pow.f64 y 2)) x)
(fma.f64 x (*.f64 y y) x)
(*.f64 x (fma.f64 y y 1))
(*.f64 (+.f64 1 (pow.f64 y 2)) x)
(fma.f64 x (*.f64 y y) x)
(*.f64 x (fma.f64 y y 1))
(*.f64 (+.f64 1 (pow.f64 y 2)) x)
(fma.f64 x (*.f64 y y) x)
(*.f64 x (fma.f64 y y 1))
(*.f64 (+.f64 1 (pow.f64 y 2)) x)
(fma.f64 x (*.f64 y y) x)
(*.f64 x (fma.f64 y y 1))
(*.f64 (+.f64 1 (pow.f64 y 2)) x)
(fma.f64 x (*.f64 y y) x)
(*.f64 x (fma.f64 y y 1))
(*.f64 (+.f64 1 (pow.f64 y 2)) x)
(fma.f64 x (*.f64 y y) x)
(*.f64 x (fma.f64 y y 1))
(*.f64 (+.f64 1 (pow.f64 y 2)) x)
(fma.f64 x (*.f64 y y) x)
(*.f64 x (fma.f64 y y 1))
(*.f64 (+.f64 1 (pow.f64 y 2)) x)
(fma.f64 x (*.f64 y y) x)
(*.f64 x (fma.f64 y y 1))
(*.f64 (+.f64 1 (pow.f64 y 2)) x)
(fma.f64 x (*.f64 y y) x)
(*.f64 x (fma.f64 y y 1))
(*.f64 (+.f64 1 (pow.f64 y 2)) x)
(fma.f64 x (*.f64 y y) x)
(*.f64 x (fma.f64 y y 1))
(*.f64 (+.f64 1 (pow.f64 y 2)) x)
(fma.f64 x (*.f64 y y) x)
(*.f64 x (fma.f64 y y 1))
x
(+.f64 (*.f64 (pow.f64 y 2) x) x)
(fma.f64 x (*.f64 y y) x)
(*.f64 x (fma.f64 y y 1))
(+.f64 (*.f64 (pow.f64 y 2) x) x)
(fma.f64 x (*.f64 y y) x)
(*.f64 x (fma.f64 y y 1))
(+.f64 (*.f64 (pow.f64 y 2) x) x)
(fma.f64 x (*.f64 y y) x)
(*.f64 x (fma.f64 y y 1))
(*.f64 (pow.f64 (/.f64 1 y) -2) x)
(*.f64 x (pow.f64 (/.f64 1 y) -2))
(*.f64 y (*.f64 y x))
(+.f64 (*.f64 (pow.f64 (/.f64 1 y) -2) x) x)
(fma.f64 x (*.f64 y y) x)
(*.f64 x (fma.f64 y y 1))
(+.f64 (*.f64 (pow.f64 (/.f64 1 y) -2) x) x)
(fma.f64 x (*.f64 y y) x)
(*.f64 x (fma.f64 y y 1))
(+.f64 (*.f64 (pow.f64 (/.f64 1 y) -2) x) x)
(fma.f64 x (*.f64 y y) x)
(*.f64 x (fma.f64 y y 1))
(*.f64 (pow.f64 (/.f64 -1 y) -2) x)
(*.f64 x (pow.f64 (/.f64 1 y) -2))
(*.f64 y (*.f64 y x))
(+.f64 (*.f64 (pow.f64 (/.f64 -1 y) -2) x) x)
(fma.f64 x (*.f64 y y) x)
(*.f64 x (fma.f64 y y 1))
(+.f64 (*.f64 (pow.f64 (/.f64 -1 y) -2) x) x)
(fma.f64 x (*.f64 y y) x)
(*.f64 x (fma.f64 y y 1))
(+.f64 (*.f64 (pow.f64 (/.f64 -1 y) -2) x) x)
(fma.f64 x (*.f64 y y) x)
(*.f64 x (fma.f64 y y 1))
(+.f64 x (*.f64 x (*.f64 y y)))
(fma.f64 x (*.f64 y y) x)
(*.f64 x (fma.f64 y y 1))
(+.f64 (*.f64 x (*.f64 y y)) x)
(fma.f64 x (*.f64 y y) x)
(*.f64 x (fma.f64 y y 1))
(+.f64 (*.f64 (*.f64 x (*.f64 y y)) 1) x)
(fma.f64 x (*.f64 y y) x)
(*.f64 x (fma.f64 y y 1))
(-.f64 (+.f64 1 (*.f64 x (fma.f64 y y 1))) 1)
(fma.f64 x (*.f64 y y) x)
(*.f64 x (fma.f64 y y 1))
(/.f64 (+.f64 (pow.f64 (*.f64 x (*.f64 y y)) 3) (pow.f64 x 3)) (+.f64 (*.f64 (*.f64 x (*.f64 y y)) (*.f64 x (*.f64 y y))) (-.f64 (*.f64 x x) (*.f64 (*.f64 x (*.f64 y y)) x))))
(/.f64 (+.f64 (pow.f64 (*.f64 x (*.f64 y y)) 3) (pow.f64 x 3)) (+.f64 (*.f64 (*.f64 x x) (pow.f64 y 4)) (*.f64 x (-.f64 x (*.f64 x (*.f64 y y))))))
(/.f64 (fma.f64 (pow.f64 x 3) (pow.f64 y 6) (pow.f64 x 3)) (*.f64 x (+.f64 (*.f64 x (pow.f64 y 4)) (-.f64 x (*.f64 x (*.f64 y y))))))
(/.f64 (*.f64 (+.f64 1 (pow.f64 y 6)) (pow.f64 x 3)) (*.f64 x (-.f64 (fma.f64 x (pow.f64 y 4) x) (*.f64 y (*.f64 y x)))))
(/.f64 (*.f64 (pow.f64 x 3) (+.f64 1 (pow.f64 y 6))) (*.f64 x (+.f64 (*.f64 x (-.f64 (pow.f64 y 4) (*.f64 y y))) x)))
(/.f64 (-.f64 (*.f64 (*.f64 x (*.f64 y y)) (*.f64 x (*.f64 y y))) (*.f64 x x)) (-.f64 (*.f64 x (*.f64 y y)) x))
(fma.f64 x (*.f64 y y) x)
(*.f64 x (fma.f64 y y 1))
(/.f64 (*.f64 (+.f64 1 (pow.f64 y 6)) x) (+.f64 (pow.f64 y 4) (-.f64 1 (*.f64 y y))))
(/.f64 x (/.f64 (+.f64 (pow.f64 y 4) (-.f64 1 (*.f64 y y))) (+.f64 1 (pow.f64 y 6))))
(/.f64 (fma.f64 x (pow.f64 y 6) x) (+.f64 1 (-.f64 (pow.f64 y 4) (*.f64 y y))))
(/.f64 (*.f64 (+.f64 (pow.f64 y 4) -1) x) (fma.f64 y y -1))
(fma.f64 x (*.f64 y y) x)
(*.f64 x (fma.f64 y y 1))
(/.f64 (*.f64 x (+.f64 1 (pow.f64 y 6))) (+.f64 (pow.f64 y 4) (-.f64 1 (*.f64 y y))))
(/.f64 x (/.f64 (+.f64 (pow.f64 y 4) (-.f64 1 (*.f64 y y))) (+.f64 1 (pow.f64 y 6))))
(/.f64 (fma.f64 x (pow.f64 y 6) x) (+.f64 1 (-.f64 (pow.f64 y 4) (*.f64 y y))))
(/.f64 (*.f64 x (+.f64 (pow.f64 y 4) -1)) (fma.f64 y y -1))
(fma.f64 x (*.f64 y y) x)
(*.f64 x (fma.f64 y y 1))
(pow.f64 (*.f64 x (fma.f64 y y 1)) 1)
(fma.f64 x (*.f64 y y) x)
(*.f64 x (fma.f64 y y 1))
(pow.f64 (pow.f64 (*.f64 x (fma.f64 y y 1)) 3) 1/3)
(fma.f64 x (*.f64 y y) x)
(*.f64 x (fma.f64 y y 1))
(pow.f64 (cbrt.f64 (*.f64 x (fma.f64 y y 1))) 3)
(fma.f64 x (*.f64 y y) x)
(*.f64 x (fma.f64 y y 1))
(pow.f64 (*.f64 (hypot.f64 1 y) (sqrt.f64 x)) 2)
(sqrt.f64 (pow.f64 (*.f64 x (fma.f64 y y 1)) 2))
(fma.f64 x (*.f64 y y) x)
(*.f64 x (fma.f64 y y 1))
(log.f64 (pow.f64 (exp.f64 x) (fma.f64 y y 1)))
(fma.f64 x (*.f64 y y) x)
(*.f64 x (fma.f64 y y 1))
(cbrt.f64 (pow.f64 (*.f64 x (fma.f64 y y 1)) 3))
(fma.f64 x (*.f64 y y) x)
(*.f64 x (fma.f64 y y 1))
(cbrt.f64 (*.f64 (pow.f64 x 3) (pow.f64 (fma.f64 y y 1) 3)))
(fma.f64 x (*.f64 y y) x)
(*.f64 x (fma.f64 y y 1))
(cbrt.f64 (*.f64 (pow.f64 (fma.f64 y y 1) 3) (pow.f64 x 3)))
(fma.f64 x (*.f64 y y) x)
(*.f64 x (fma.f64 y y 1))
(expm1.f64 (log1p.f64 (*.f64 x (fma.f64 y y 1))))
(fma.f64 x (*.f64 y y) x)
(*.f64 x (fma.f64 y y 1))
(log1p.f64 (expm1.f64 (*.f64 x (fma.f64 y y 1))))
(fma.f64 x (*.f64 y y) x)
(*.f64 x (fma.f64 y y 1))
(exp.f64 (log.f64 (*.f64 x (fma.f64 y y 1))))
(fma.f64 x (*.f64 y y) x)
(*.f64 x (fma.f64 y y 1))
(fma.f64 x (*.f64 y y) x)
(*.f64 x (fma.f64 y y 1))
(fma.f64 (*.f64 y y) x x)
(fma.f64 x (*.f64 y y) x)
(*.f64 x (fma.f64 y y 1))

localize5.0ms (0.3%)

Compiler

Compiled 13 to 4 computations (69.2% saved)

eval11.0ms (0.6%)

Compiler

Compiled 470 to 255 computations (45.7% saved)

prune7.0ms (0.4%)

Pruning

6 alts after pruning (3 fresh and 3 done)

PrunedKeptTotal
New38240
Fresh011
Picked101
Done033
Total39645
Error
0b
Counts
45 → 6
Alt Table
Click to see full alt table
StatusErrorProgram
0.5b
(+.f64 (*.f64 x (*.f64 y y)) x)
61.0b
(*.f64 y (*.f64 y x))
0.0b
(*.f64 x (pow.f64 (exp.f64 y) y))
0.5b
(*.f64 x (+.f64 (*.f64 y y) 1))
0.0b
(*.f64 x (exp.f64 (*.f64 y y)))
0.9b
x
Compiler

Compiled 44 to 27 computations (38.6% saved)

localize5.0ms (0.3%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.1b
(*.f64 y (*.f64 y x))
Compiler

Compiled 12 to 4 computations (66.7% saved)

series5.0ms (0.3%)

Counts
1 → 24
Calls

6 calls:

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

Compiled 208 to 160 computations (23.1% saved)

rewrite34.0ms (1.9%)

Algorithm
batch-egg-rewrite
Rules
471×pow1_binary64
447×add-sqr-sqrt_binary64
442×*-un-lft-identity_binary64
431×add-log-exp_binary64
431×log1p-expm1-u_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
057
1997
211947
Stop Event
node limit
Counts
1 → 11
Calls
Call 1
Inputs
(*.f64 y (*.f64 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 (pow.f64 (*.f64 y (*.f64 y x)) 3) 1/3)))) (#(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 (*.f64 y (sqrt.f64 x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 y (*.f64 y x)) 2))))) (#(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 log1p.f64 (expm1.f64 (*.f64 y (*.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 y (*.f64 y x))))))))

simplify30.0ms (1.7%)

Algorithm
egg-herbie
Rules
734×log-prod_binary64
631×distribute-rgt-in_binary64
619×distribute-lft-in_binary64
486×associate-*l*_binary64
405×associate-*r*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
041245
198245
2353245
32494245
Stop Event
node limit
Counts
35 → 15
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 (/.f64 1 y) -2) x)
(*.f64 (pow.f64 (/.f64 1 y) -2) x)
(*.f64 (pow.f64 (/.f64 1 y) -2) x)
(*.f64 (pow.f64 (/.f64 1 y) -2) x)
(*.f64 (pow.f64 (/.f64 -1 y) -2) x)
(*.f64 (pow.f64 (/.f64 -1 y) -2) x)
(*.f64 (pow.f64 (/.f64 -1 y) -2) x)
(*.f64 (pow.f64 (/.f64 -1 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 (pow.f64 (*.f64 y (*.f64 y x)) 3) 1/3)
(pow.f64 (cbrt.f64 (*.f64 y (*.f64 y x))) 3)
(pow.f64 (*.f64 y (sqrt.f64 x)) 2)
(sqrt.f64 (pow.f64 (*.f64 y (*.f64 y x)) 2))
(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))))
(log1p.f64 (expm1.f64 (*.f64 y (*.f64 y x))))
(exp.f64 (log.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 (/.f64 1 y) -2) x)
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 (/.f64 1 y) -2) x)
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 (/.f64 1 y) -2) x)
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 (/.f64 1 y) -2) x)
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 (/.f64 -1 y) -2) x)
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 (/.f64 -1 y) -2) x)
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 (/.f64 -1 y) -2) x)
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 (/.f64 -1 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 (pow.f64 (*.f64 y (*.f64 y x)) 3) 1/3)
(*.f64 y (*.f64 y x))
(pow.f64 (cbrt.f64 (*.f64 y (*.f64 y x))) 3)
(*.f64 y (*.f64 y x))
(pow.f64 (*.f64 y (sqrt.f64 x)) 2)
(*.f64 y (*.f64 y x))
(sqrt.f64 (pow.f64 (*.f64 y (*.f64 y x)) 2))
(*.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))
(log1p.f64 (expm1.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))

localize8.0ms (0.4%)

Local error

Found 1 expressions with local error:

NewErrorProgram
8.0b
(*.f64 x (*.f64 y y))
Compiler

Compiled 19 to 5 computations (73.7% saved)

series4.0ms (0.2%)

Counts
1 → 24
Calls

6 calls:

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

Compiled 208 to 160 computations (23.1% saved)

rewrite36.0ms (2%)

Algorithm
batch-egg-rewrite
Rules
458×pow1_binary64
435×add-sqr-sqrt_binary64
429×*-un-lft-identity_binary64
421×add-log-exp_binary64
421×log1p-expm1-u_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
057
11007
212077
Stop Event
node limit
Counts
1 → 11
Calls
Call 1
Inputs
(*.f64 x (*.f64 y y))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 x (*.f64 y y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (*.f64 y y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x (*.f64 y y)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 x (*.f64 y y))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y (sqrt.f64 x)) 2)))) (#(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 x) (*.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 x (*.f64 y y)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 x (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 x (*.f64 y y))))))))

simplify43.0ms (2.4%)

Algorithm
egg-herbie
Rules
664×log-prod_binary64
557×distribute-rgt-in_binary64
546×distribute-lft-in_binary64
410×associate-*l*_binary64
355×associate-*r*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
044245
1104245
2355245
32229245
47763245
Stop Event
node limit
Counts
35 → 16
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 (/.f64 1 y) -2) x)
(*.f64 (pow.f64 (/.f64 1 y) -2) x)
(*.f64 (pow.f64 (/.f64 1 y) -2) x)
(*.f64 (pow.f64 (/.f64 1 y) -2) x)
(*.f64 (pow.f64 (/.f64 -1 y) -2) x)
(*.f64 (pow.f64 (/.f64 -1 y) -2) x)
(*.f64 (pow.f64 (/.f64 -1 y) -2) x)
(*.f64 (pow.f64 (/.f64 -1 y) -2) x)
(-.f64 (+.f64 1 (*.f64 x (*.f64 y y))) 1)
(pow.f64 (*.f64 x (*.f64 y y)) 1)
(pow.f64 (pow.f64 (*.f64 x (*.f64 y y)) 3) 1/3)
(pow.f64 (cbrt.f64 (*.f64 x (*.f64 y y))) 3)
(pow.f64 (*.f64 y (sqrt.f64 x)) 2)
(sqrt.f64 (*.f64 (*.f64 x x) (pow.f64 y 4)))
(log.f64 (pow.f64 (exp.f64 x) (*.f64 y y)))
(cbrt.f64 (pow.f64 (*.f64 x (*.f64 y y)) 3))
(expm1.f64 (log1p.f64 (*.f64 x (*.f64 y y))))
(log1p.f64 (expm1.f64 (*.f64 x (*.f64 y y))))
(exp.f64 (log.f64 (*.f64 x (*.f64 y y))))
Outputs
(*.f64 (pow.f64 y 2) x)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 y 2) x)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 (/.f64 1 y) -2) x)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 (/.f64 1 y) -2) x)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 (/.f64 1 y) -2) x)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 (/.f64 1 y) -2) x)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 (/.f64 -1 y) -2) x)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 (/.f64 -1 y) -2) x)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 (/.f64 -1 y) -2) x)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(*.f64 (pow.f64 (/.f64 -1 y) -2) x)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(-.f64 (+.f64 1 (*.f64 x (*.f64 y y))) 1)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(pow.f64 (*.f64 x (*.f64 y y)) 1)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(pow.f64 (pow.f64 (*.f64 x (*.f64 y y)) 3) 1/3)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(pow.f64 (cbrt.f64 (*.f64 x (*.f64 y y))) 3)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(pow.f64 (*.f64 y (sqrt.f64 x)) 2)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(sqrt.f64 (*.f64 (*.f64 x x) (pow.f64 y 4)))
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(log.f64 (pow.f64 (exp.f64 x) (*.f64 y y)))
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(cbrt.f64 (pow.f64 (*.f64 x (*.f64 y y)) 3))
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(expm1.f64 (log1p.f64 (*.f64 x (*.f64 y y))))
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(log1p.f64 (expm1.f64 (*.f64 x (*.f64 y y))))
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(exp.f64 (log.f64 (*.f64 x (*.f64 y y))))
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))

eval5.0ms (0.3%)

Compiler

Compiled 253 to 112 computations (55.7% saved)

prune8.0ms (0.4%)

Pruning

6 alts after pruning (1 fresh and 5 done)

PrunedKeptTotal
New31031
Fresh011
Picked011
Done044
Total31637
Error
0b
Counts
37 → 6
Alt Table
Click to see full alt table
StatusErrorProgram
0.5b
(+.f64 (*.f64 x (*.f64 y y)) x)
61.0b
(*.f64 y (*.f64 y x))
0.0b
(*.f64 x (pow.f64 (exp.f64 y) y))
0.5b
(*.f64 x (+.f64 (*.f64 y y) 1))
0.0b
(*.f64 x (exp.f64 (*.f64 y y)))
0.9b
x
Compiler

Compiled 44 to 27 computations (38.6% saved)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune2.0ms (0.1%)

Pruning

6 alts after pruning (1 fresh and 5 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done055
Total066
Error
0b
Counts
6 → 6
Alt Table
Click to see full alt table
StatusErrorProgram
0.5b
(+.f64 (*.f64 x (*.f64 y y)) x)
61.0b
(*.f64 y (*.f64 y x))
0.0b
(*.f64 x (pow.f64 (exp.f64 y) y))
0.5b
(*.f64 x (+.f64 (*.f64 y y) 1))
0.0b
(*.f64 x (exp.f64 (*.f64 y y)))
0.9b
x
Compiler

Compiled 44 to 27 computations (38.6% saved)

regimes26.0ms (1.5%)

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

7 calls:

6.0ms
x
5.0ms
(*.f64 x (exp.f64 (*.f64 y y)))
4.0ms
y
3.0ms
(exp.f64 (*.f64 y y))
2.0ms
(*.f64 y y)
Results
ErrorSegmentsBranch
0.0b1x
0.0b1y
0.0b1(*.f64 x (exp.f64 (*.f64 y y)))
0.0b1(exp.f64 (*.f64 y y))
0.0b1(exp.f64 (*.f64 y y))
0.0b1(*.f64 y y)
0.0b1(*.f64 y y)
Compiler

Compiled 76 to 39 computations (48.7% saved)

regimes19.0ms (1.1%)

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

5 calls:

5.0ms
(*.f64 x (exp.f64 (*.f64 y y)))
4.0ms
x
4.0ms
y
2.0ms
(*.f64 y y)
2.0ms
(exp.f64 (*.f64 y y))
Results
ErrorSegmentsBranch
0.0b1x
0.0b1y
0.0b1(*.f64 x (exp.f64 (*.f64 y y)))
0.0b1(exp.f64 (*.f64 y y))
0.0b1(*.f64 y y)
Compiler

Compiled 59 to 29 computations (50.8% saved)

regimes12.0ms (0.7%)

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

3 calls:

4.0ms
x
3.0ms
y
2.0ms
(*.f64 y y)
Results
ErrorSegmentsBranch
0.5b1x
0.5b1y
0.5b1(*.f64 y y)
Compiler

Compiled 33 to 17 computations (48.5% saved)

regimes10.0ms (0.6%)

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

3 calls:

4.0ms
y
3.0ms
x
2.0ms
(*.f64 y y)
Results
ErrorSegmentsBranch
0.5b1x
0.5b1y
0.5b1(*.f64 y y)
Compiler

Compiled 26 to 15 computations (42.3% saved)

regimes6.0ms (0.4%)

Accuracy

Total -60.1b remaining (-6965.1%)

Threshold costs -60.1b (-6965.1%)

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

2 calls:

3.0ms
x
3.0ms
y
Results
ErrorSegmentsBranch
0.9b1x
0.9b1y
Compiler

Compiled 14 to 8 computations (42.9% saved)

simplify8.0ms (0.5%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
+-commutative_binary64
1-exp_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01439
12239
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(*.f64 x (pow.f64 (exp.f64 y) y))
(*.f64 x (exp.f64 (*.f64 y y)))
(+.f64 (*.f64 x (*.f64 y y)) x)
(*.f64 x (+.f64 (*.f64 y y) 1))
x
Outputs
(*.f64 x (pow.f64 (exp.f64 y) y))
(*.f64 x (exp.f64 (*.f64 y y)))
(+.f64 (*.f64 x (*.f64 y y)) x)
(+.f64 x (*.f64 x (*.f64 y y)))
(*.f64 x (+.f64 (*.f64 y y) 1))
x
Compiler

Compiled 37 to 23 computations (37.8% saved)

soundness115.0ms (6.5%)

Algorithm
egg-herbie
Rules
611×sqr-pow_binary64
450×associate-*l*_binary64
424×pow-sqr_binary64
390×associate-*l/_binary64
368×unswap-sqr_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
069
199
2139
3229
4509
51399
64509
714759
827179
940609
1044449
1150199
1266719
Stop Event
node limit
Compiler

Compiled 16 to 10 computations (37.5% saved)

end29.0ms (1.6%)

Compiler

Compiled 29 to 13 computations (55.2% saved)

Profiling

Loading profile data...