Details

Time bar (total: 2.9s)

analyze93.0ms (3.2%)

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)

sample1.6s (53.6%)

Results
1.4s8256×body256valid
157.0ms1141×body256infinite
Bogosity

preprocess12.0ms (0.4%)

Algorithm
egg-herbie
Rules
rational.json-simplify-2
rational.json-simplify-54
rational.json-simplify-55
rational.json-simplify-73
rational.json-simplify-71
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01134
11534
21934
32334
43134
53134
022
Stop Event
saturated
saturated
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 y (exp.f64 (*.f64 x x)))
Compiler

Compiled 10 to 7 computations (30% saved)

simplify35.0ms (1.2%)

Algorithm
egg-herbie
Rules
rational.json-simplify-2
rational.json-simplify-54
rational.json-simplify-55
rational.json-simplify-73
rational.json-simplify-71
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0817
11017
21217
31417
41817
51817
Stop Event
saturated
Counts
1 → 1
Calls
Call 1
Inputs
(*.f64 x (exp.f64 (*.f64 y y)))
Outputs
(*.f64 x (exp.f64 (*.f64 y y)))

eval1.0ms (0%)

Compiler

Compiled 8 to 5 computations (37.5% saved)

prune1.0ms (0.1%)

Pruning

2 alts after pruning (2 fresh and 0 done)

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

Compiled 8 to 5 computations (37.5% saved)

localize11.0ms (0.4%)

Local error

Found 1 expressions with local error:

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

Compiled 17 to 5 computations (70.6% saved)

series5.0ms (0.2%)

Counts
1 → 24
Calls

6 calls:

TimeVariablePointExpression
1.0ms
x
@0
(*.f64 x (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)))
1.0ms
x
@-inf
(*.f64 x (exp.f64 (*.f64 y y)))
1.0ms
y
@0
(*.f64 x (exp.f64 (*.f64 y y)))

rewrite129.0ms (4.4%)

Algorithm
batch-egg-rewrite
Rules
1856×rational.json-5
1854×exponential.json-3
1854×rational.json-1
1854×rational.json-2
1854×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0817
16817
223517
388517
4360017
Stop Event
node limit
Counts
1 → 6
Calls
Call 1
Inputs
(*.f64 x (exp.f64 (*.f64 y y)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (exp.f64 (*.f64 y y))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (exp.f64 (*.f64 y y))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (exp.f64 (*.f64 y y))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (exp.f64 (*.f64 y y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (exp.f64 (*.f64 y y))) (/.f64 (*.f64 x (exp.f64 (*.f64 y y))) (*.f64 x (exp.f64 (*.f64 y y)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (exp.f64 (*.f64 y y))) 1)))))

simplify220.0ms (7.5%)

Algorithm
egg-herbie
Rules
1360×rational.json-simplify-79
1236×rational.json-simplify-49
910×rational.json-simplify-2
894×rational.json-simplify-47
796×rational.json-simplify-76
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
037572
168572
2147560
3321554
41047554
52159554
65129554
76648554
Stop Event
node limit
Counts
30 → 21
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 (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 (*.f64 x (exp.f64 (*.f64 y y))) 0)
(+.f64 0 (*.f64 x (exp.f64 (*.f64 y y))))
(-.f64 (*.f64 x (exp.f64 (*.f64 y y))) 0)
(/.f64 (*.f64 x (exp.f64 (*.f64 y y))) 1)
(/.f64 (*.f64 x (exp.f64 (*.f64 y y))) (/.f64 (*.f64 x (exp.f64 (*.f64 y y))) (*.f64 x (exp.f64 (*.f64 y y)))))
(pow.f64 (*.f64 x (exp.f64 (*.f64 y y))) 1)
Outputs
(*.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 x (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 y 4) x)) (+.f64 (*.f64 (pow.f64 y 2) x) x))
(+.f64 (*.f64 (pow.f64 y 2) x) (+.f64 x (*.f64 1/2 (*.f64 x (pow.f64 y 4)))))
(+.f64 x (+.f64 (*.f64 x (*.f64 1/2 (pow.f64 y 4))) (*.f64 (pow.f64 y 2) x)))
(+.f64 x (*.f64 x (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))))
(+.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 (*.f64 1/2 (*.f64 x (pow.f64 y 4))) (+.f64 (*.f64 (pow.f64 y 2) x) (+.f64 x (*.f64 1/6 (*.f64 x (pow.f64 y 6))))))
(+.f64 (*.f64 x (*.f64 1/2 (pow.f64 y 4))) (+.f64 (*.f64 (pow.f64 y 2) x) (+.f64 x (*.f64 x (*.f64 (pow.f64 y 6) 1/6)))))
(+.f64 x (+.f64 (*.f64 x (+.f64 (pow.f64 y 2) (*.f64 1/6 (pow.f64 y 6)))) (*.f64 (pow.f64 y 4) (*.f64 x 1/2))))
(+.f64 x (*.f64 x (+.f64 (*.f64 1/2 (pow.f64 y 4)) (+.f64 (pow.f64 y 2) (*.f64 1/6 (pow.f64 y 6))))))
(+.f64 x (*.f64 x (+.f64 (pow.f64 y 2) (+.f64 (*.f64 1/6 (pow.f64 y 6)) (*.f64 1/2 (pow.f64 y 4))))))
(*.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 (*.f64 x (exp.f64 (*.f64 y y))) 0)
(*.f64 x (exp.f64 (*.f64 y y)))
(+.f64 0 (*.f64 x (exp.f64 (*.f64 y y))))
(*.f64 x (exp.f64 (*.f64 y y)))
(-.f64 (*.f64 x (exp.f64 (*.f64 y y))) 0)
(*.f64 x (exp.f64 (*.f64 y y)))
(/.f64 (*.f64 x (exp.f64 (*.f64 y y))) 1)
(*.f64 x (exp.f64 (*.f64 y y)))
(/.f64 (*.f64 x (exp.f64 (*.f64 y y))) (/.f64 (*.f64 x (exp.f64 (*.f64 y y))) (*.f64 x (exp.f64 (*.f64 y y)))))
(*.f64 x (exp.f64 (*.f64 y y)))
(pow.f64 (*.f64 x (exp.f64 (*.f64 y y))) 1)
(*.f64 x (exp.f64 (*.f64 y y)))

eval14.0ms (0.5%)

Compiler

Compiled 275 to 159 computations (42.2% saved)

prune8.0ms (0.3%)

Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New18321
Fresh000
Picked011
Done000
Total18422
Error
0.0b
Counts
22 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
0.2b
(+.f64 (*.f64 (pow.f64 y 2) x) x)
0.1b
(+.f64 x (*.f64 x (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))))
0.0b
(*.f64 x (exp.f64 (*.f64 y y)))
0.6b
x
Compiler

Compiled 35 to 24 computations (31.4% saved)

localize43.0ms (1.5%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(*.f64 1/2 (pow.f64 y 4))
0.0b
(+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))
7.0b
(*.f64 x (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))))
Compiler

Compiled 51 to 37 computations (27.5% saved)

series12.0ms (0.4%)

Counts
3 → 27
Calls

12 calls:

TimeVariablePointExpression
3.0ms
y
@0
(*.f64 1/2 (pow.f64 y 4))
2.0ms
y
@0
(*.f64 x (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))))
2.0ms
x
@0
(*.f64 x (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))))
1.0ms
y
@inf
(*.f64 x (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))))
1.0ms
y
@-inf
(*.f64 x (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))))

rewrite134.0ms (4.6%)

Algorithm
batch-egg-rewrite
Rules
1992×rational.json-5
1990×rational.json-1
1990×rational.json-2
1990×rational.json-4
1990×rational.json-3
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01269
19869
228569
3100969
4387469
Stop Event
node limit
Counts
3 → 23
Calls
Call 1
Inputs
(*.f64 x (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))))
(+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))
(*.f64 1/2 (pow.f64 y 4))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))) (/.f64 (*.f64 x (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))) (*.f64 x (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) (/.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))) (/.f64 1 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))) (*.f64 (/.f64 1 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))) (*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) (*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) (*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))))) (/.f64 (/.f64 1 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))) (*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) (/.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 1/2 (pow.f64 y 4)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 1/2 (pow.f64 y 4)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 1/2 (pow.f64 y 4)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 1/2 (pow.f64 y 4)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 1/2 (pow.f64 y 4)) (/.f64 (pow.f64 y 4) (pow.f64 y 4)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 1/2 (pow.f64 y 4)) 1)))))

simplify297.0ms (10.2%)

Algorithm
egg-herbie
Rules
1062×rational.json-simplify-47
888×rational.json-simplify-2
854×rational.json-simplify-49
796×exponential.json-simplify-26
708×rational.json-simplify-1
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0511298
1931292
22981292
312871292
446441292
577421292
Stop Event
node limit
Counts
50 → 32
Calls
Call 1
Inputs
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(*.f64 (pow.f64 y 2) x)
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 y 4) x)) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 y 4) x)) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 y 4) x)) (*.f64 (pow.f64 y 2) x))
(*.f64 1/2 (*.f64 (pow.f64 y 4) x))
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 y 4) x)) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 y 4) x)) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 y 4) x)) (*.f64 (pow.f64 y 2) x))
(*.f64 1/2 (*.f64 (pow.f64 y 4) x))
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 y 4) x)) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 y 4) x)) (*.f64 (pow.f64 y 2) x))
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 y 4) x)) (*.f64 (pow.f64 y 2) x))
(pow.f64 y 2)
(*.f64 1/2 (pow.f64 y 4))
(*.f64 1/2 (pow.f64 y 4))
(+.f64 (*.f64 x (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))) 0)
(+.f64 0 (*.f64 x (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))))
(-.f64 (*.f64 x (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))) 0)
(/.f64 (*.f64 x (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))) 1)
(/.f64 (*.f64 x (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))) (/.f64 (*.f64 x (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))) (*.f64 x (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))))))
(pow.f64 (*.f64 x (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))) 1)
(-.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) 0)
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) 1)
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) (/.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))))
(*.f64 1 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))))
(*.f64 (*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))) (/.f64 1 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))))
(*.f64 (*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))) (*.f64 (/.f64 1 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))) 1))
(*.f64 (/.f64 1 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))) (*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))))
(*.f64 (*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) (*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) (*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))))) (/.f64 (/.f64 1 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))) (*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))))))
(/.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) 1)
(/.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) (/.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))))
(pow.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) 1)
(+.f64 (*.f64 1/2 (pow.f64 y 4)) 0)
(+.f64 0 (*.f64 1/2 (pow.f64 y 4)))
(-.f64 (*.f64 1/2 (pow.f64 y 4)) 0)
(/.f64 (*.f64 1/2 (pow.f64 y 4)) 1)
(/.f64 (*.f64 1/2 (pow.f64 y 4)) (/.f64 (pow.f64 y 4) (pow.f64 y 4)))
(pow.f64 (*.f64 1/2 (pow.f64 y 4)) 1)
Outputs
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(*.f64 (pow.f64 y 2) x)
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 y 4) x)) (*.f64 (pow.f64 y 2) x))
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 y 4) x)) (*.f64 (pow.f64 y 2) x))
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 y 4) x)) (*.f64 (pow.f64 y 2) x))
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(*.f64 1/2 (*.f64 (pow.f64 y 4) x))
(*.f64 (pow.f64 y 4) (*.f64 1/2 x))
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 y 4) x)) (*.f64 (pow.f64 y 2) x))
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 y 4) x)) (*.f64 (pow.f64 y 2) x))
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 y 4) x)) (*.f64 (pow.f64 y 2) x))
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(*.f64 1/2 (*.f64 (pow.f64 y 4) x))
(*.f64 (pow.f64 y 4) (*.f64 1/2 x))
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 y 4) x)) (*.f64 (pow.f64 y 2) x))
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 y 4) x)) (*.f64 (pow.f64 y 2) x))
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 y 4) x)) (*.f64 (pow.f64 y 2) x))
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(pow.f64 y 2)
(*.f64 1/2 (pow.f64 y 4))
(*.f64 1/2 (pow.f64 y 4))
(+.f64 (*.f64 x (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))) 0)
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(+.f64 0 (*.f64 x (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))))
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(-.f64 (*.f64 x (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))) 0)
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(/.f64 (*.f64 x (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))) 1)
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(/.f64 (*.f64 x (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))) (/.f64 (*.f64 x (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))) (*.f64 x (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))))))
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(pow.f64 (*.f64 x (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))) 1)
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) x)
(-.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) 0)
(+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) 1)
(+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))
(*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) (/.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))))
(+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))
(*.f64 1 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))))
(+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))
(*.f64 (*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))) (/.f64 1 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))))
(+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))
(*.f64 (*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))) (*.f64 (/.f64 1 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))) 1))
(+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))
(*.f64 (/.f64 1 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))) (*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))))
(+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))
(*.f64 (*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) (*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) (*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))))) (/.f64 (/.f64 1 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))) (*.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))))))
(+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))
(/.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) 1)
(+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))
(/.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) (/.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))))
(+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))
(pow.f64 (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4))) 1)
(+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))
(+.f64 (*.f64 1/2 (pow.f64 y 4)) 0)
(*.f64 1/2 (pow.f64 y 4))
(+.f64 0 (*.f64 1/2 (pow.f64 y 4)))
(*.f64 1/2 (pow.f64 y 4))
(-.f64 (*.f64 1/2 (pow.f64 y 4)) 0)
(*.f64 1/2 (pow.f64 y 4))
(/.f64 (*.f64 1/2 (pow.f64 y 4)) 1)
(*.f64 1/2 (pow.f64 y 4))
(/.f64 (*.f64 1/2 (pow.f64 y 4)) (/.f64 (pow.f64 y 4) (pow.f64 y 4)))
(*.f64 (pow.f64 (*.f64 y y) 4) (/.f64 1/2 (pow.f64 y 4)))
(pow.f64 (*.f64 1/2 (pow.f64 y 4)) 1)
(*.f64 1/2 (pow.f64 y 4))

localize10.0ms (0.4%)

Local error

Found 1 expressions with local error:

NewErrorProgram
7.0b
(*.f64 (pow.f64 y 2) x)
Compiler

Compiled 20 to 12 computations (40% saved)

series2.0ms (0.1%)

Counts
1 → 0
Calls

6 calls:

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

rewrite88.0ms (3%)

Algorithm
batch-egg-rewrite
Rules
1356×rational.json-5
1354×exponential.json-3
1354×rational.json-1
1354×rational.json-2
1354×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
15813
218713
366313
4259113
Stop Event
node limit
Counts
1 → 9
Calls
Call 1
Inputs
(*.f64 (pow.f64 y 2) x)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 y 2) x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (pow.f64 y 2) x))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (pow.f64 y 2) x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (*.f64 (pow.f64 y 2) x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (-.f64 0 (-.f64 -1 (*.f64 (pow.f64 y 2) x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 y 2) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 y 2) x) (/.f64 (*.f64 (pow.f64 y 2) x) (*.f64 (pow.f64 y 2) x)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 y 2) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (*.f64 (pow.f64 y 2) x)))))))

simplify173.0ms (5.9%)

Algorithm
egg-herbie
Rules
1792×rational.json-simplify-47
834×rational.json-simplify-1
826×rational.json-simplify-111
782×rational.json-simplify-104
736×rational.json-simplify-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
024117
147117
2117117
3351117
41394117
53608117
66485117
Stop Event
node limit
Counts
9 → 10
Calls
Call 1
Inputs
(+.f64 (*.f64 (pow.f64 y 2) x) 0)
(+.f64 0 (*.f64 (pow.f64 y 2) x))
(-.f64 (*.f64 (pow.f64 y 2) x) 0)
(-.f64 0 (neg.f64 (*.f64 (pow.f64 y 2) x)))
(-.f64 (-.f64 0 (-.f64 -1 (*.f64 (pow.f64 y 2) x))) 1)
(/.f64 (*.f64 (pow.f64 y 2) x) 1)
(/.f64 (*.f64 (pow.f64 y 2) x) (/.f64 (*.f64 (pow.f64 y 2) x) (*.f64 (pow.f64 y 2) x)))
(pow.f64 (*.f64 (pow.f64 y 2) x) 1)
(neg.f64 (neg.f64 (*.f64 (pow.f64 y 2) x)))
Outputs
(+.f64 (*.f64 (pow.f64 y 2) x) 0)
(*.f64 (pow.f64 y 2) x)
(+.f64 0 (*.f64 (pow.f64 y 2) x))
(*.f64 (pow.f64 y 2) x)
(-.f64 (*.f64 (pow.f64 y 2) x) 0)
(*.f64 (pow.f64 y 2) x)
(-.f64 0 (neg.f64 (*.f64 (pow.f64 y 2) x)))
(*.f64 (pow.f64 y 2) x)
(-.f64 (-.f64 0 (-.f64 -1 (*.f64 (pow.f64 y 2) x))) 1)
(*.f64 (pow.f64 y 2) x)
(/.f64 (*.f64 (pow.f64 y 2) x) 1)
(*.f64 (pow.f64 y 2) x)
(/.f64 (*.f64 (pow.f64 y 2) x) (/.f64 (*.f64 (pow.f64 y 2) x) (*.f64 (pow.f64 y 2) x)))
(*.f64 (pow.f64 y 2) x)
(pow.f64 (*.f64 (pow.f64 y 2) x) 1)
(*.f64 (pow.f64 y 2) x)
(neg.f64 (neg.f64 (*.f64 (pow.f64 y 2) x)))
(*.f64 (pow.f64 y 2) x)

eval18.0ms (0.6%)

Compiler

Compiled 737 to 537 computations (27.1% saved)

prune8.0ms (0.3%)

Pruning

4 alts after pruning (1 fresh and 3 done)

PrunedKeptTotal
New42042
Fresh011
Picked011
Done022
Total42446
Error
0.0b
Counts
46 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
0.2b
(+.f64 (*.f64 (pow.f64 y 2) x) x)
0.1b
(+.f64 x (*.f64 x (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))))
0.0b
(*.f64 x (exp.f64 (*.f64 y y)))
0.6b
x
Compiler

Compiled 35 to 24 computations (31.4% saved)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune2.0ms (0.1%)

Pruning

4 alts after pruning (1 fresh and 3 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done033
Total044
Error
0.0b
Counts
4 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
0.2b
(+.f64 (*.f64 (pow.f64 y 2) x) x)
0.1b
(+.f64 x (*.f64 x (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))))
0.0b
(*.f64 x (exp.f64 (*.f64 y y)))
0.6b
x
Compiler

Compiled 35 to 24 computations (31.4% saved)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune3.0ms (0.1%)

Pruning

4 alts after pruning (1 fresh and 3 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done033
Total044
Error
0.0b
Counts
4 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
0.2b
(+.f64 (*.f64 (pow.f64 y 2) x) x)
0.1b
(+.f64 x (*.f64 x (+.f64 (pow.f64 y 2) (*.f64 1/2 (pow.f64 y 4)))))
0.0b
(*.f64 x (exp.f64 (*.f64 y y)))
0.6b
x
Compiler

Compiled 35 to 24 computations (31.4% saved)

regimes20.0ms (0.7%)

Accuracy

Total -0.5b remaining (-4626.2%)

Threshold costs -0.5b (-4626.2%)

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

5 calls:

5.0ms
y
4.0ms
(*.f64 x (exp.f64 (*.f64 y y)))
4.0ms
x
2.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(*.f64 y y)
Compiler

Compiled 54 to 34 computations (37% saved)

simplify2.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

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

Compiled 11 to 7 computations (36.4% saved)

soundness0.0ms (0%)

end19.0ms (0.6%)

Compiler

Compiled 9 to 5 computations (44.4% saved)

Profiling

Loading profile data...