Details

Time bar (total: 1.8s)

analyze24.0ms (1.4%)

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)

sample1.0s (58.3%)

Results
967.0ms8256×body256valid
45.0ms239×body256infinite
Bogosity

preprocess87.0ms (4.9%)

Algorithm
egg-herbie
Rules
1172×exp-prod
1158×associate-*r*
1056×fma-def
962×sqr-pow
908×times-frac
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01134
12334
24034
36934
413934
532534
689134
7279634
8435234
9512934
10665034
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 (pow.f64 (exp.f64 y) x) y)
(pow.f64 (pow.f64 (exp.f64 y) y) x)
(exp.f64 (*.f64 (*.f64 y x) x))
(pow.f64 (exp.f64 (*.f64 x y)) x)
(pow.f64 (pow.f64 (exp.f64 x) y) x)
(pow.f64 (pow.f64 (exp.f64 y) x) x)
Compiler

Compiled 10 to 7 computations (30% saved)

simplify76.0ms (4.3%)

Algorithm
egg-herbie
Rules
1328×unswap-sqr
1038×sqr-pow
856×associate-*r/
728×exp-prod
654×associate-*r*
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0817
11417
22517
34317
48717
520617
656017
7171217
8462017
9510317
10604217
Stop Event
node limit
Counts
1 → 6
Calls
Call 1
Inputs
(exp.f64 (*.f64 (*.f64 x y) y))
Outputs
(exp.f64 (*.f64 (*.f64 x y) y))
(exp.f64 (*.f64 x (*.f64 y y)))
(pow.f64 (pow.f64 (exp.f64 x) y) y)
(pow.f64 (pow.f64 (exp.f64 y) y) x)
(pow.f64 (exp.f64 y) (*.f64 x y))
(pow.f64 (exp.f64 x) (*.f64 y y))

eval1.0ms (0.1%)

Compiler

Compiled 38 to 16 computations (57.9% saved)

prune1.0ms (0.1%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New516
Fresh101
Picked000
Done000
Total617
Accurracy
100.0%
Counts
7 → 1
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(exp.f64 (*.f64 x (*.f64 y y)))
Compiler

Compiled 8 to 5 computations (37.5% saved)

localize6.0ms (0.3%)

Local Accuracy

Found 2 expressions with local accuracy:

NewAccuracyProgram
100.0%
(exp.f64 (*.f64 x (*.f64 y y)))
83.6%
(*.f64 x (*.f64 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 x (*.f64 y y))
1.0ms
y
@inf
(*.f64 x (*.f64 y y))
0.0ms
y
@0
(*.f64 x (*.f64 y y))
0.0ms
x
@inf
(*.f64 x (*.f64 y y))
0.0ms
x
@-inf
(*.f64 x (*.f64 y y))

rewrite95.0ms (5.4%)

Algorithm
batch-egg-rewrite
Rules
1410×pow1
1286×add-exp-log
1286×log1p-expm1-u
1286×expm1-log1p-u
1254×add-log-exp
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0830
115630
2183530
Stop Event
node limit
Counts
2 → 38
Calls
Call 1
Inputs
(*.f64 x (*.f64 y y))
(exp.f64 (*.f64 x (*.f64 y y)))
Outputs
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 y) y) x))) (log.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 y) y) x))))
(+.f64 0 (*.f64 x (*.f64 y y)))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 y) y) x)) 2)) (log.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 y) y) x))))
(-.f64 (+.f64 1 (*.f64 x (*.f64 y y))) 1)
(pow.f64 (*.f64 x (*.f64 y y)) 1)
(pow.f64 (cbrt.f64 (*.f64 x (*.f64 y y))) 3)
(pow.f64 (pow.f64 (*.f64 x (*.f64 y y)) 3) 1/3)
(pow.f64 (*.f64 y (sqrt.f64 x)) 2)
(sqrt.f64 (*.f64 (pow.f64 y 4) (*.f64 x x)))
(log.f64 (pow.f64 (pow.f64 (exp.f64 y) y) x))
(cbrt.f64 (pow.f64 (*.f64 x (*.f64 y y)) 3))
(expm1.f64 (log1p.f64 (*.f64 x (*.f64 y y))))
(exp.f64 (log.f64 (*.f64 x (*.f64 y y))))
(log1p.f64 (expm1.f64 (*.f64 x (*.f64 y y))))
(+.f64 1 (expm1.f64 (*.f64 x (*.f64 y y))))
(-.f64 (+.f64 1 (pow.f64 (pow.f64 (exp.f64 y) y) x)) 1)
(*.f64 (pow.f64 (pow.f64 (exp.f64 y) y) x) 1)
(*.f64 1 (pow.f64 (pow.f64 (exp.f64 y) y) x))
(*.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 y) y) x)) (pow.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 y) y) x)) 2))
(*.f64 (pow.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 y) y) x)) 2) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 y) y) x)))
(*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 y) y) x)) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 y) y) x)))
(pow.f64 (pow.f64 (pow.f64 (exp.f64 y) y) x) 1)
(pow.f64 (pow.f64 (exp.f64 y) y) x)
(pow.f64 (exp.f64 x) (*.f64 y y))
(pow.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 y) y) x)) 3)
(pow.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 y) y) x) 3) 1/3)
(pow.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 y) y) x)) 2)
(pow.f64 (exp.f64 (*.f64 y (sqrt.f64 x))) (*.f64 y (sqrt.f64 x)))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (*.f64 x (*.f64 y y))) 2)) (cbrt.f64 (*.f64 x (*.f64 y y))))
(pow.f64 (exp.f64 (*.f64 x y)) y)
(pow.f64 (exp.f64 1) (*.f64 x (*.f64 y y)))
(pow.f64 (pow.f64 (exp.f64 x) y) y)
(pow.f64 (pow.f64 (exp.f64 x) (cbrt.f64 (pow.f64 y 4))) (pow.f64 (cbrt.f64 y) 2))
(sqrt.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 y) y) x) 2))
(log.f64 (exp.f64 (pow.f64 (pow.f64 (exp.f64 y) y) x)))
(cbrt.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 y) y) x) 3))
(expm1.f64 (log1p.f64 (pow.f64 (pow.f64 (exp.f64 y) y) x)))
(log1p.f64 (expm1.f64 (pow.f64 (pow.f64 (exp.f64 y) y) x)))

simplify115.0ms (6.5%)

Algorithm
egg-herbie
Rules
1264×unswap-sqr
1092×log-prod
754×fma-def
686×associate-*r/
506×associate-*l/
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01041466
12471442
29121442
342161434
Stop Event
node limit
Counts
86 → 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 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 y) y) x))) (log.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 y) y) x))))
(+.f64 0 (*.f64 x (*.f64 y y)))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 y) y) x)) 2)) (log.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 y) y) x))))
(-.f64 (+.f64 1 (*.f64 x (*.f64 y y))) 1)
(pow.f64 (*.f64 x (*.f64 y y)) 1)
(pow.f64 (cbrt.f64 (*.f64 x (*.f64 y y))) 3)
(pow.f64 (pow.f64 (*.f64 x (*.f64 y y)) 3) 1/3)
(pow.f64 (*.f64 y (sqrt.f64 x)) 2)
(sqrt.f64 (*.f64 (pow.f64 y 4) (*.f64 x x)))
(log.f64 (pow.f64 (pow.f64 (exp.f64 y) y) x))
(cbrt.f64 (pow.f64 (*.f64 x (*.f64 y y)) 3))
(expm1.f64 (log1p.f64 (*.f64 x (*.f64 y y))))
(exp.f64 (log.f64 (*.f64 x (*.f64 y y))))
(log1p.f64 (expm1.f64 (*.f64 x (*.f64 y y))))
(+.f64 1 (expm1.f64 (*.f64 x (*.f64 y y))))
(-.f64 (+.f64 1 (pow.f64 (pow.f64 (exp.f64 y) y) x)) 1)
(*.f64 (pow.f64 (pow.f64 (exp.f64 y) y) x) 1)
(*.f64 1 (pow.f64 (pow.f64 (exp.f64 y) y) x))
(*.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 y) y) x)) (pow.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 y) y) x)) 2))
(*.f64 (pow.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 y) y) x)) 2) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 y) y) x)))
(*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 y) y) x)) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 y) y) x)))
(pow.f64 (pow.f64 (pow.f64 (exp.f64 y) y) x) 1)
(pow.f64 (pow.f64 (exp.f64 y) y) x)
(pow.f64 (exp.f64 x) (*.f64 y y))
(pow.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 y) y) x)) 3)
(pow.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 y) y) x) 3) 1/3)
(pow.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 y) y) x)) 2)
(pow.f64 (exp.f64 (*.f64 y (sqrt.f64 x))) (*.f64 y (sqrt.f64 x)))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (*.f64 x (*.f64 y y))) 2)) (cbrt.f64 (*.f64 x (*.f64 y y))))
(pow.f64 (exp.f64 (*.f64 x y)) y)
(pow.f64 (exp.f64 1) (*.f64 x (*.f64 y y)))
(pow.f64 (pow.f64 (exp.f64 x) y) y)
(pow.f64 (pow.f64 (exp.f64 x) (cbrt.f64 (pow.f64 y 4))) (pow.f64 (cbrt.f64 y) 2))
(sqrt.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 y) y) x) 2))
(log.f64 (exp.f64 (pow.f64 (pow.f64 (exp.f64 y) y) x)))
(cbrt.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 y) y) x) 3))
(expm1.f64 (log1p.f64 (pow.f64 (pow.f64 (exp.f64 y) y) x)))
(log1p.f64 (expm1.f64 (pow.f64 (pow.f64 (exp.f64 y) y) x)))
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 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))
1
(+.f64 1 (*.f64 (pow.f64 y 2) x))
(+.f64 1 (*.f64 x (*.f64 y y)))
(fma.f64 x (*.f64 y y) 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 1 (*.f64 x (*.f64 y y))))
(fma.f64 1/2 (*.f64 x (*.f64 x (pow.f64 y 4))) (fma.f64 x (*.f64 y y) 1))
(fma.f64 y (*.f64 y x) (fma.f64 1/2 (pow.f64 (*.f64 y (*.f64 y x)) 2) 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 1 (*.f64 x (*.f64 y y)))))
(fma.f64 1/6 (pow.f64 (*.f64 x (*.f64 y y)) 3) (fma.f64 1/2 (*.f64 x (*.f64 x (pow.f64 y 4))) (fma.f64 x (*.f64 y y) 1)))
(fma.f64 1/2 (pow.f64 (*.f64 y (*.f64 y x)) 2) (fma.f64 1/6 (*.f64 (pow.f64 y 6) (pow.f64 x 3)) (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)
(exp.f64 (*.f64 x (*.f64 y y)))
(exp.f64 (*.f64 y (*.f64 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)
(exp.f64 (*.f64 x (*.f64 y y)))
(exp.f64 (*.f64 y (*.f64 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)
(exp.f64 (*.f64 x (*.f64 y y)))
(exp.f64 (*.f64 y (*.f64 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)
(exp.f64 (*.f64 x (*.f64 y y)))
(exp.f64 (*.f64 y (*.f64 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)
(exp.f64 (*.f64 x (*.f64 y y)))
(exp.f64 (*.f64 y (*.f64 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)
(exp.f64 (*.f64 x (*.f64 y y)))
(exp.f64 (*.f64 y (*.f64 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)
(exp.f64 (*.f64 x (*.f64 y y)))
(exp.f64 (*.f64 y (*.f64 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)
(exp.f64 (*.f64 x (*.f64 y y)))
(exp.f64 (*.f64 y (*.f64 y x)))
(pow.f64 (exp.f64 y) (*.f64 y x))
1
(+.f64 1 (*.f64 (pow.f64 y 2) x))
(+.f64 1 (*.f64 x (*.f64 y y)))
(fma.f64 x (*.f64 y y) 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 1 (*.f64 x (*.f64 y y))))
(fma.f64 1/2 (*.f64 x (*.f64 x (pow.f64 y 4))) (fma.f64 x (*.f64 y y) 1))
(fma.f64 y (*.f64 y x) (fma.f64 1/2 (pow.f64 (*.f64 y (*.f64 y x)) 2) 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 1 (*.f64 x (*.f64 y y)))))
(fma.f64 1/6 (pow.f64 (*.f64 x (*.f64 y y)) 3) (fma.f64 1/2 (*.f64 x (*.f64 x (pow.f64 y 4))) (fma.f64 x (*.f64 y y) 1)))
(fma.f64 1/2 (pow.f64 (*.f64 y (*.f64 y x)) 2) (fma.f64 1/6 (*.f64 (pow.f64 y 6) (pow.f64 x 3)) (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)
(exp.f64 (*.f64 x (*.f64 y y)))
(exp.f64 (*.f64 y (*.f64 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)
(exp.f64 (*.f64 x (*.f64 y y)))
(exp.f64 (*.f64 y (*.f64 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)
(exp.f64 (*.f64 x (*.f64 y y)))
(exp.f64 (*.f64 y (*.f64 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)
(exp.f64 (*.f64 x (*.f64 y y)))
(exp.f64 (*.f64 y (*.f64 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)
(exp.f64 (*.f64 x (*.f64 y y)))
(exp.f64 (*.f64 y (*.f64 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)
(exp.f64 (*.f64 x (*.f64 y y)))
(exp.f64 (*.f64 y (*.f64 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)
(exp.f64 (*.f64 x (*.f64 y y)))
(exp.f64 (*.f64 y (*.f64 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)
(exp.f64 (*.f64 x (*.f64 y y)))
(exp.f64 (*.f64 y (*.f64 y x)))
(pow.f64 (exp.f64 y) (*.f64 y x))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 y) y) x))) (log.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 y) y) x))))
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(+.f64 0 (*.f64 x (*.f64 y y)))
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 y) y) x)) 2)) (log.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 y) y) 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 (cbrt.f64 (*.f64 x (*.f64 y y))) 3)
(*.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 (*.f64 y (sqrt.f64 x)) 2)
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(sqrt.f64 (*.f64 (pow.f64 y 4) (*.f64 x x)))
(*.f64 x (*.f64 y y))
(*.f64 y (*.f64 y x))
(log.f64 (pow.f64 (pow.f64 (exp.f64 y) y) x))
(*.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))
(exp.f64 (log.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))
(+.f64 1 (expm1.f64 (*.f64 x (*.f64 y y))))
(pow.f64 (exp.f64 (*.f64 y y)) x)
(exp.f64 (*.f64 x (*.f64 y y)))
(exp.f64 (*.f64 y (*.f64 y x)))
(pow.f64 (exp.f64 y) (*.f64 y x))
(-.f64 (+.f64 1 (pow.f64 (pow.f64 (exp.f64 y) y) x)) 1)
(pow.f64 (exp.f64 (*.f64 y y)) x)
(exp.f64 (*.f64 x (*.f64 y y)))
(exp.f64 (*.f64 y (*.f64 y x)))
(pow.f64 (exp.f64 y) (*.f64 y x))
(*.f64 (pow.f64 (pow.f64 (exp.f64 y) y) x) 1)
(pow.f64 (exp.f64 (*.f64 y y)) x)
(exp.f64 (*.f64 x (*.f64 y y)))
(exp.f64 (*.f64 y (*.f64 y x)))
(pow.f64 (exp.f64 y) (*.f64 y x))
(*.f64 1 (pow.f64 (pow.f64 (exp.f64 y) y) x))
(pow.f64 (exp.f64 (*.f64 y y)) x)
(exp.f64 (*.f64 x (*.f64 y y)))
(exp.f64 (*.f64 y (*.f64 y x)))
(pow.f64 (exp.f64 y) (*.f64 y x))
(*.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 y) y) x)) (pow.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 y) y) x)) 2))
(pow.f64 (exp.f64 (*.f64 y y)) x)
(exp.f64 (*.f64 x (*.f64 y y)))
(exp.f64 (*.f64 y (*.f64 y x)))
(pow.f64 (exp.f64 y) (*.f64 y x))
(*.f64 (pow.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 y) y) x)) 2) (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 y) y) x)))
(pow.f64 (exp.f64 (*.f64 y y)) x)
(exp.f64 (*.f64 x (*.f64 y y)))
(exp.f64 (*.f64 y (*.f64 y x)))
(pow.f64 (exp.f64 y) (*.f64 y x))
(*.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 y) y) x)) (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 y) y) x)))
(pow.f64 (exp.f64 (*.f64 y y)) x)
(exp.f64 (*.f64 x (*.f64 y y)))
(exp.f64 (*.f64 y (*.f64 y x)))
(pow.f64 (exp.f64 y) (*.f64 y x))
(pow.f64 (pow.f64 (pow.f64 (exp.f64 y) y) x) 1)
(pow.f64 (exp.f64 (*.f64 y y)) x)
(exp.f64 (*.f64 x (*.f64 y y)))
(exp.f64 (*.f64 y (*.f64 y x)))
(pow.f64 (exp.f64 y) (*.f64 y x))
(pow.f64 (pow.f64 (exp.f64 y) y) x)
(pow.f64 (exp.f64 (*.f64 y y)) x)
(exp.f64 (*.f64 x (*.f64 y y)))
(exp.f64 (*.f64 y (*.f64 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)
(exp.f64 (*.f64 x (*.f64 y y)))
(exp.f64 (*.f64 y (*.f64 y x)))
(pow.f64 (exp.f64 y) (*.f64 y x))
(pow.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 y) y) x)) 3)
(pow.f64 (exp.f64 (*.f64 y y)) x)
(exp.f64 (*.f64 x (*.f64 y y)))
(exp.f64 (*.f64 y (*.f64 y x)))
(pow.f64 (exp.f64 y) (*.f64 y x))
(pow.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 y) y) x) 3) 1/3)
(pow.f64 (exp.f64 (*.f64 y y)) x)
(exp.f64 (*.f64 x (*.f64 y y)))
(exp.f64 (*.f64 y (*.f64 y x)))
(pow.f64 (exp.f64 y) (*.f64 y x))
(pow.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 y) y) x)) 2)
(pow.f64 (exp.f64 (*.f64 y y)) x)
(exp.f64 (*.f64 x (*.f64 y y)))
(exp.f64 (*.f64 y (*.f64 y x)))
(pow.f64 (exp.f64 y) (*.f64 y x))
(pow.f64 (exp.f64 (*.f64 y (sqrt.f64 x))) (*.f64 y (sqrt.f64 x)))
(pow.f64 (exp.f64 (*.f64 y y)) x)
(exp.f64 (*.f64 x (*.f64 y y)))
(exp.f64 (*.f64 y (*.f64 y x)))
(pow.f64 (exp.f64 y) (*.f64 y x))
(pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (*.f64 x (*.f64 y y))) 2)) (cbrt.f64 (*.f64 x (*.f64 y y))))
(pow.f64 (exp.f64 (*.f64 y y)) x)
(exp.f64 (*.f64 x (*.f64 y y)))
(exp.f64 (*.f64 y (*.f64 y x)))
(pow.f64 (exp.f64 y) (*.f64 y x))
(pow.f64 (exp.f64 (*.f64 x y)) y)
(pow.f64 (exp.f64 (*.f64 y y)) x)
(exp.f64 (*.f64 x (*.f64 y y)))
(exp.f64 (*.f64 y (*.f64 y x)))
(pow.f64 (exp.f64 y) (*.f64 y x))
(pow.f64 (exp.f64 1) (*.f64 x (*.f64 y y)))
(pow.f64 (exp.f64 (*.f64 y y)) x)
(exp.f64 (*.f64 x (*.f64 y y)))
(exp.f64 (*.f64 y (*.f64 y x)))
(pow.f64 (exp.f64 y) (*.f64 y x))
(pow.f64 (pow.f64 (exp.f64 x) y) y)
(pow.f64 (exp.f64 (*.f64 y y)) x)
(exp.f64 (*.f64 x (*.f64 y y)))
(exp.f64 (*.f64 y (*.f64 y x)))
(pow.f64 (exp.f64 y) (*.f64 y x))
(pow.f64 (pow.f64 (exp.f64 x) (cbrt.f64 (pow.f64 y 4))) (pow.f64 (cbrt.f64 y) 2))
(sqrt.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 y) y) x) 2))
(pow.f64 (exp.f64 (*.f64 y y)) x)
(exp.f64 (*.f64 x (*.f64 y y)))
(exp.f64 (*.f64 y (*.f64 y x)))
(pow.f64 (exp.f64 y) (*.f64 y x))
(log.f64 (exp.f64 (pow.f64 (pow.f64 (exp.f64 y) y) x)))
(pow.f64 (exp.f64 (*.f64 y y)) x)
(exp.f64 (*.f64 x (*.f64 y y)))
(exp.f64 (*.f64 y (*.f64 y x)))
(pow.f64 (exp.f64 y) (*.f64 y x))
(cbrt.f64 (pow.f64 (pow.f64 (pow.f64 (exp.f64 y) y) x) 3))
(pow.f64 (exp.f64 (*.f64 y y)) x)
(exp.f64 (*.f64 x (*.f64 y y)))
(exp.f64 (*.f64 y (*.f64 y x)))
(pow.f64 (exp.f64 y) (*.f64 y x))
(expm1.f64 (log1p.f64 (pow.f64 (pow.f64 (exp.f64 y) y) x)))
(pow.f64 (exp.f64 (*.f64 y y)) x)
(exp.f64 (*.f64 x (*.f64 y y)))
(exp.f64 (*.f64 y (*.f64 y x)))
(pow.f64 (exp.f64 y) (*.f64 y x))
(log1p.f64 (expm1.f64 (pow.f64 (pow.f64 (exp.f64 y) y) x)))
(pow.f64 (exp.f64 (*.f64 y y)) x)
(exp.f64 (*.f64 x (*.f64 y y)))
(exp.f64 (*.f64 y (*.f64 y x)))
(pow.f64 (exp.f64 y) (*.f64 y x))

eval46.0ms (2.6%)

Compiler

Compiled 648 to 267 computations (58.8% saved)

prune7.0ms (0.4%)

Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New59261
Fresh000
Picked011
Done000
Total59362
Accurracy
100.0%
Counts
62 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
67.8%
(+.f64 1 (*.f64 x (*.f64 y y)))
100.0%
(exp.f64 (*.f64 x (*.f64 y y)))
68.1%
1
Compiler

Compiled 20 to 14 computations (30% saved)

localize6.0ms (0.3%)

Local Accuracy

Found 1 expressions with local accuracy:

NewAccuracyProgram
83.6%
(*.f64 x (*.f64 y y))
Compiler

Compiled 20 to 7 computations (65% saved)

eval3.0ms (0.2%)

Compiler

Compiled 177 to 89 computations (49.7% saved)

prune38.0ms (2.2%)

Pruning

3 alts after pruning (1 fresh and 2 done)

PrunedKeptTotal
New17017
Fresh011
Picked011
Done011
Total17320
Accurracy
100.0%
Counts
20 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
67.8%
(+.f64 1 (*.f64 x (*.f64 y y)))
100.0%
(exp.f64 (*.f64 x (*.f64 y y)))
68.1%
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
Accurracy
100.0%
Counts
3 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
67.8%
(+.f64 1 (*.f64 x (*.f64 y y)))
100.0%
(exp.f64 (*.f64 x (*.f64 y y)))
68.1%
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
Accurracy
100.0%
Counts
3 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
67.8%
(+.f64 1 (*.f64 x (*.f64 y y)))
100.0%
(exp.f64 (*.f64 x (*.f64 y y)))
68.1%
1
Compiler

Compiled 20 to 14 computations (30% saved)

regimes12.0ms (0.7%)

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

4 calls:

3.0ms
y
3.0ms
x
3.0ms
(*.f64 (*.f64 x y) y)
2.0ms
(exp.f64 (*.f64 (*.f64 x y) y))
Results
AccuracySegmentsBranch
100.0%1x
100.0%1y
100.0%1(exp.f64 (*.f64 (*.f64 x y) y))
100.0%1(*.f64 (*.f64 x y) y)
Compiler

Compiled 43 to 24 computations (44.2% saved)

regimes49.0ms (2.8%)

Accuracy

Total -0.4b remaining (-2.1%)

Threshold costs -0.4b (-2.1%)

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

2 calls:

3.0ms
y
3.0ms
x
Results
AccuracySegmentsBranch
68.1%1x
68.1%1y
Compiler

Compiled 16 to 11 computations (31.3% saved)

simplify4.0ms (0.2%)

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

Useful iterations: 0 (0.0ms)

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

Compiled 11 to 8 computations (27.3% saved)

soundness141.0ms (8%)

Rules
1328×unswap-sqr
1038×sqr-pow
856×associate-*r/
728×exp-prod
654×associate-*r*
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0817
11417
22517
34317
48717
520617
656017
7171217
8462017
9510317
10604217
Stop Event
node limit
Compiler

Compiled 14 to 8 computations (42.9% saved)

end15.0ms (0.8%)

Compiler

Compiled 9 to 6 computations (33.3% saved)

Profiling

Loading profile data...