Details

Time bar (total: 14.8s)

analyze118.0ms (0.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
53.3%50%43.7%0.1%6.2%0%0%7
63.3%59.3%34.3%0.1%6.2%0%0%8
74.1%67.1%23.4%0.1%9.4%0%0%9
80.2%72.6%18%0.1%9.4%0%0%10
86.4%76.9%12.1%0.1%10.9%0%0%11
89.7%79.8%9.2%0.1%10.9%0%0%12
Compiler

Compiled 12 to 10 computations (16.7% saved)

sample1.2s (8.4%)

Results
1.2s8256×body256valid
13.0ms153×body256infinite
Bogosity

preprocess10.0ms (0.1%)

Algorithm
egg-herbie
Rules
24×rational.json-simplify-2
rational.json-simplify-43
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01538
11938
22738
33538
022
Stop Event
saturated
saturated
Calls
Call 1
Inputs
0
1
Outputs
0
1
Call 2
Inputs
(*.f64 (*.f64 (-.f64 x (/.f64 16 116)) 3) y)
(*.f64 (*.f64 (-.f64 y (/.f64 16 116)) 3) x)
Outputs
(*.f64 (*.f64 (-.f64 x (/.f64 16 116)) 3) y)
(*.f64 (*.f64 (-.f64 x 4/29) 3) y)
(*.f64 (-.f64 x 4/29) (*.f64 3 y))
(*.f64 (*.f64 (-.f64 y (/.f64 16 116)) 3) x)
(*.f64 x (*.f64 3 (-.f64 y 4/29)))
(*.f64 3 (*.f64 (-.f64 y 4/29) x))
(*.f64 3 (*.f64 x (-.f64 y 4/29)))
Compiler

Compiled 13 to 11 computations (15.4% saved)

simplify10.0ms (0.1%)

Algorithm
egg-herbie
Rules
12×rational.json-simplify-2
rational.json-simplify-43
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01219
11419
21819
32219
Stop Event
saturated
Counts
1 → 3
Calls
Call 1
Inputs
(*.f64 (*.f64 (-.f64 x (/.f64 16 116)) 3) y)
Outputs
(*.f64 (*.f64 (-.f64 x (/.f64 16 116)) 3) y)
(*.f64 (*.f64 (-.f64 x 4/29) 3) y)
(*.f64 (-.f64 x 4/29) (*.f64 3 y))

eval1.0ms (0%)

Compiler

Compiled 25 to 19 computations (24% saved)

prune1.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New123
Fresh101
Picked000
Done000
Total224
Error
0.1b
Counts
4 → 2
Alt Table
Click to see full alt table
StatusErrorProgram
0.2b
(*.f64 (-.f64 x 4/29) (*.f64 3 y))
0.2b
(*.f64 (*.f64 (-.f64 x 4/29) 3) y)
Compiler

Compiled 18 to 14 computations (22.2% saved)

localize8.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(-.f64 x 4/29)
0.0b
(*.f64 (-.f64 x 4/29) 3)
0.2b
(*.f64 (*.f64 (-.f64 x 4/29) 3) y)
Compiler

Compiled 21 to 15 computations (28.6% saved)

series5.0ms (0%)

Counts
3 → 39
Calls

12 calls:

TimeVariablePointExpression
2.0ms
x
@-inf
(*.f64 (*.f64 (-.f64 x 4/29) 3) y)
1.0ms
y
@0
(*.f64 (*.f64 (-.f64 x 4/29) 3) y)
0.0ms
x
@inf
(*.f64 (*.f64 (-.f64 x 4/29) 3) y)
0.0ms
y
@inf
(*.f64 (*.f64 (-.f64 x 4/29) 3) y)
0.0ms
x
@0
(*.f64 (*.f64 (-.f64 x 4/29) 3) y)

rewrite221.0ms (1.5%)

Algorithm
batch-egg-rewrite
Rules
2600×rational.json-simplify-35
1430×rational.json-simplify-1
1250×exponential.json-3
1250×rational.json-1
1250×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0939
15839
211939
325239
446339
5107239
6241839
7424039
8529139
9631639
10727039
11727039
12727039
Stop Event
node limit
Counts
3 → 72
Calls
Call 1
Inputs
(*.f64 (*.f64 (-.f64 x 4/29) 3) y)
(*.f64 (-.f64 x 4/29) 3)
(-.f64 x 4/29)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 x -4/29) (*.f64 3 y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (+.f64 x -4/29) (*.f64 3 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 x -4/29) y) (*.f64 (+.f64 x -4/29) (+.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 x -4/29) (+.f64 y y)) (*.f64 (+.f64 x -4/29) y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 x -4/29) (*.f64 y 3/2)) (*.f64 (+.f64 x -4/29) (*.f64 y 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (+.f64 x -4/29) (*.f64 3 y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x -4/29) (*.f64 3 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x -4/29) (*.f64 y 6)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x -4/29) (*.f64 y 12)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 24 (*.f64 (+.f64 x -4/29) y)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 24 (*.f64 (+.f64 x -4/29) y))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 24 (*.f64 (+.f64 x -4/29) y)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 24 (*.f64 (+.f64 x -4/29) y))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 24 (*.f64 (+.f64 x -4/29) y)))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 24 (*.f64 (+.f64 x -4/29) y))))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 24 (*.f64 (+.f64 x -4/29) y))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 24 (*.f64 (+.f64 x -4/29) y)))))))) 512)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (+.f64 x -4/29) (*.f64 3 y)) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 x (+.f64 x (+.f64 -4/29 (+.f64 x -8/29))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 x -4/29) (+.f64 x (+.f64 x -8/29)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 x -4/29) 3) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (+.f64 x -4/29) 3))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 x (+.f64 x -8/29)) (+.f64 x -4/29))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -4/29 (+.f64 x (+.f64 x (+.f64 x -8/29))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -4/29 (+.f64 (+.f64 x -4/29) (+.f64 (+.f64 x x) -4/29)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 x -8/29) (+.f64 (+.f64 x x) -4/29))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 x -4/29) 3/2) (*.f64 (+.f64 x -4/29) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (+.f64 x x) -4/29) (+.f64 x -8/29))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 x (+.f64 -4/29 (+.f64 x -8/29))) x)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 x (+.f64 x (+.f64 x -8/29))) -4/29)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (+.f64 x -4/29) (+.f64 (+.f64 x x) -4/29)) -4/29)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (+.f64 x -4/29) 3) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x -4/29) 3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x -4/29) 6) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x -4/29) 12) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (+.f64 x -4/29) 3) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 (+.f64 x -4/29) 3) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 x -4/29) 3) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 x -4/29) 3) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 x -4/29) 3) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 x -4/29) 3) 8)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 x -4/29) 3) 8)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 x -4/29) 3) 8))))))) 512)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (+.f64 x -4/29) 3) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 x -4/29)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 x -4/29) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (+.f64 x -4/29))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -4/29 x)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x 1/2) (+.f64 -4/29 (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 x -4/29) 1/2) (*.f64 (+.f64 x -4/29) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 -4/29 (*.f64 x 1/2)) (*.f64 x 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x -4/29) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 x -4/29))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 x -4/29) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (+.f64 x -8/29)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (+.f64 x -4/29) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x -4/29) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x -4/29) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 x (+.f64 x -8/29)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x -4/29) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 x -4/29) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x -4/29) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (+.f64 x -4/29) 8))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x -4/29) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x (+.f64 x -8/29)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x -4/29) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x -4/29) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 x -4/29) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x -4/29) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x -4/29) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x -4/29) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x -4/29) 8)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x -4/29) 8)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x -4/29) 8))))))) 512)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 x -4/29) 1)))))

simplify386.0ms (2.6%)

Algorithm
egg-herbie
Rules
3002×rational.json-simplify-53
2846×rational.json-simplify-2
2210×rational.json-simplify-35
1378×exponential.json-simplify-26
1314×rational.json-simplify-1
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01581629
13491575
210771425
326391425
438041425
544371425
645731425
746591425
847401425
959731425
1066611425
1167411425
1268201425
1368991425
1468991425
1569781425
Stop Event
node limit
Counts
111 → 90
Calls
Call 1
Inputs
(*.f64 -12/29 y)
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(*.f64 3 (*.f64 y x))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(*.f64 3 (*.f64 y x))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
-12/29
(-.f64 (*.f64 3 x) 12/29)
(-.f64 (*.f64 3 x) 12/29)
(-.f64 (*.f64 3 x) 12/29)
(*.f64 3 x)
(-.f64 (*.f64 3 x) 12/29)
(-.f64 (*.f64 3 x) 12/29)
(-.f64 (*.f64 3 x) 12/29)
(*.f64 3 x)
(-.f64 (*.f64 3 x) 12/29)
(-.f64 (*.f64 3 x) 12/29)
(-.f64 (*.f64 3 x) 12/29)
-4/29
x
x
(+.f64 (*.f64 (+.f64 x -4/29) (*.f64 3 y)) 0)
(+.f64 0 (*.f64 (+.f64 x -4/29) (*.f64 3 y)))
(+.f64 (*.f64 (+.f64 x -4/29) y) (*.f64 (+.f64 x -4/29) (+.f64 y y)))
(+.f64 (*.f64 (+.f64 x -4/29) (+.f64 y y)) (*.f64 (+.f64 x -4/29) y))
(+.f64 (*.f64 (+.f64 x -4/29) (*.f64 y 3/2)) (*.f64 (+.f64 x -4/29) (*.f64 y 3/2)))
(-.f64 (*.f64 (+.f64 x -4/29) (*.f64 3 y)) 0)
(/.f64 (*.f64 (+.f64 x -4/29) (*.f64 3 y)) 1)
(/.f64 (*.f64 (+.f64 x -4/29) (*.f64 y 6)) 2)
(/.f64 (*.f64 (+.f64 x -4/29) (*.f64 y 12)) 4)
(/.f64 (*.f64 24 (*.f64 (+.f64 x -4/29) y)) 8)
(/.f64 (*.f64 2 (*.f64 24 (*.f64 (+.f64 x -4/29) y))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 24 (*.f64 (+.f64 x -4/29) y)))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 24 (*.f64 (+.f64 x -4/29) y))))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 24 (*.f64 (+.f64 x -4/29) y)))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 24 (*.f64 (+.f64 x -4/29) y))))))) 256)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 24 (*.f64 (+.f64 x -4/29) y))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 24 (*.f64 (+.f64 x -4/29) y)))))))) 512)
(pow.f64 (*.f64 (+.f64 x -4/29) (*.f64 3 y)) 1)
(+.f64 x (+.f64 x (+.f64 -4/29 (+.f64 x -8/29))))
(+.f64 (+.f64 x -4/29) (+.f64 x (+.f64 x -8/29)))
(+.f64 (*.f64 (+.f64 x -4/29) 3) 0)
(+.f64 0 (*.f64 (+.f64 x -4/29) 3))
(+.f64 (+.f64 x (+.f64 x -8/29)) (+.f64 x -4/29))
(+.f64 -4/29 (+.f64 x (+.f64 x (+.f64 x -8/29))))
(+.f64 -4/29 (+.f64 (+.f64 x -4/29) (+.f64 (+.f64 x x) -4/29)))
(+.f64 (+.f64 x -8/29) (+.f64 (+.f64 x x) -4/29))
(+.f64 (*.f64 (+.f64 x -4/29) 3/2) (*.f64 (+.f64 x -4/29) 3/2))
(+.f64 (+.f64 (+.f64 x x) -4/29) (+.f64 x -8/29))
(+.f64 (+.f64 x (+.f64 -4/29 (+.f64 x -8/29))) x)
(+.f64 (+.f64 x (+.f64 x (+.f64 x -8/29))) -4/29)
(+.f64 (+.f64 (+.f64 x -4/29) (+.f64 (+.f64 x x) -4/29)) -4/29)
(-.f64 (*.f64 (+.f64 x -4/29) 3) 0)
(/.f64 (*.f64 (+.f64 x -4/29) 3) 1)
(/.f64 (*.f64 (+.f64 x -4/29) 6) 2)
(/.f64 (*.f64 (+.f64 x -4/29) 12) 4)
(/.f64 (*.f64 (*.f64 (+.f64 x -4/29) 3) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 (+.f64 x -4/29) 3) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 x -4/29) 3) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 x -4/29) 3) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 x -4/29) 3) 8))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 x -4/29) 3) 8)))))) 256)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 x -4/29) 3) 8)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 x -4/29) 3) 8))))))) 512)
(pow.f64 (*.f64 (+.f64 x -4/29) 3) 1)
(+.f64 x -4/29)
(+.f64 (+.f64 x -4/29) 0)
(+.f64 0 (+.f64 x -4/29))
(+.f64 -4/29 x)
(+.f64 (*.f64 x 1/2) (+.f64 -4/29 (*.f64 x 1/2)))
(+.f64 (*.f64 (+.f64 x -4/29) 1/2) (*.f64 (+.f64 x -4/29) 1/2))
(+.f64 (+.f64 -4/29 (*.f64 x 1/2)) (*.f64 x 1/2))
(*.f64 (+.f64 x -4/29) 1)
(*.f64 1 (+.f64 x -4/29))
(*.f64 2 (*.f64 (+.f64 x -4/29) 1/2))
(*.f64 (+.f64 x (+.f64 x -8/29)) 1/2)
(*.f64 4 (*.f64 (+.f64 x -4/29) 1/4))
(*.f64 (*.f64 (+.f64 x -4/29) 4) 1/4)
(*.f64 (*.f64 (+.f64 x -4/29) 8) 1/8)
(*.f64 1/2 (+.f64 x (+.f64 x -8/29)))
(*.f64 (*.f64 (+.f64 x -4/29) 1/2) 2)
(*.f64 1/4 (*.f64 (+.f64 x -4/29) 4))
(*.f64 (*.f64 (+.f64 x -4/29) 1/4) 4)
(*.f64 1/8 (*.f64 (+.f64 x -4/29) 8))
(/.f64 (+.f64 x -4/29) 1)
(/.f64 (+.f64 x (+.f64 x -8/29)) 2)
(/.f64 (*.f64 (+.f64 x -4/29) 4) 4)
(/.f64 (*.f64 (+.f64 x -4/29) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 x -4/29) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x -4/29) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x -4/29) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x -4/29) 8))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x -4/29) 8)))))) 256)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x -4/29) 8)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x -4/29) 8))))))) 512)
(pow.f64 (+.f64 x -4/29) 1)
Outputs
(*.f64 -12/29 y)
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 3 x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 3 x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 3 x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 3 x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 3 x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 3 x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 3 x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 3 x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 3 x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 y (*.f64 (-.f64 x 4/29) 3))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(*.f64 (+.f64 x -4/29) (*.f64 y 3))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 y (*.f64 (-.f64 x 4/29) 3))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(*.f64 (+.f64 x -4/29) (*.f64 y 3))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 y (*.f64 (-.f64 x 4/29) 3))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(*.f64 (+.f64 x -4/29) (*.f64 y 3))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 y (*.f64 (-.f64 x 4/29) 3))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(*.f64 (+.f64 x -4/29) (*.f64 y 3))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 y (*.f64 (-.f64 x 4/29) 3))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(*.f64 (+.f64 x -4/29) (*.f64 y 3))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 y (*.f64 (-.f64 x 4/29) 3))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(*.f64 (+.f64 x -4/29) (*.f64 y 3))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 y (*.f64 (-.f64 x 4/29) 3))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(*.f64 (+.f64 x -4/29) (*.f64 y 3))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 y (*.f64 (-.f64 x 4/29) 3))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(*.f64 (+.f64 x -4/29) (*.f64 y 3))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 y (*.f64 (-.f64 x 4/29) 3))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(*.f64 (+.f64 x -4/29) (*.f64 y 3))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 y (*.f64 (-.f64 x 4/29) 3))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(*.f64 (+.f64 x -4/29) (*.f64 y 3))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 y (*.f64 (-.f64 x 4/29) 3))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(*.f64 (+.f64 x -4/29) (*.f64 y 3))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 y (*.f64 (-.f64 x 4/29) 3))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(*.f64 (+.f64 x -4/29) (*.f64 y 3))
-12/29
(-.f64 (*.f64 3 x) 12/29)
(-.f64 (*.f64 3 x) 12/29)
(-.f64 (*.f64 3 x) 12/29)
(*.f64 3 x)
(-.f64 (*.f64 3 x) 12/29)
(-.f64 (*.f64 3 x) 12/29)
(-.f64 (*.f64 3 x) 12/29)
(*.f64 3 x)
(-.f64 (*.f64 3 x) 12/29)
(-.f64 (*.f64 3 x) 12/29)
(-.f64 (*.f64 3 x) 12/29)
-4/29
x
x
(+.f64 (*.f64 (+.f64 x -4/29) (*.f64 3 y)) 0)
(*.f64 y (*.f64 (-.f64 x 4/29) 3))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(*.f64 (+.f64 x -4/29) (*.f64 y 3))
(+.f64 0 (*.f64 (+.f64 x -4/29) (*.f64 3 y)))
(*.f64 y (*.f64 (-.f64 x 4/29) 3))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(*.f64 (+.f64 x -4/29) (*.f64 y 3))
(+.f64 (*.f64 (+.f64 x -4/29) y) (*.f64 (+.f64 x -4/29) (+.f64 y y)))
(*.f64 y (*.f64 (-.f64 x 4/29) 3))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(*.f64 (+.f64 x -4/29) (*.f64 y 3))
(+.f64 (*.f64 (+.f64 x -4/29) (+.f64 y y)) (*.f64 (+.f64 x -4/29) y))
(*.f64 y (*.f64 (-.f64 x 4/29) 3))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(*.f64 (+.f64 x -4/29) (*.f64 y 3))
(+.f64 (*.f64 (+.f64 x -4/29) (*.f64 y 3/2)) (*.f64 (+.f64 x -4/29) (*.f64 y 3/2)))
(*.f64 y (*.f64 (-.f64 x 4/29) 3))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(*.f64 (+.f64 x -4/29) (*.f64 y 3))
(-.f64 (*.f64 (+.f64 x -4/29) (*.f64 3 y)) 0)
(*.f64 y (*.f64 (-.f64 x 4/29) 3))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(*.f64 (+.f64 x -4/29) (*.f64 y 3))
(/.f64 (*.f64 (+.f64 x -4/29) (*.f64 3 y)) 1)
(*.f64 y (*.f64 (-.f64 x 4/29) 3))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(*.f64 (+.f64 x -4/29) (*.f64 y 3))
(/.f64 (*.f64 (+.f64 x -4/29) (*.f64 y 6)) 2)
(*.f64 y (*.f64 (-.f64 x 4/29) 3))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(*.f64 (+.f64 x -4/29) (*.f64 y 3))
(/.f64 (*.f64 (+.f64 x -4/29) (*.f64 y 12)) 4)
(*.f64 y (*.f64 (-.f64 x 4/29) 3))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(*.f64 (+.f64 x -4/29) (*.f64 y 3))
(/.f64 (*.f64 24 (*.f64 (+.f64 x -4/29) y)) 8)
(*.f64 y (*.f64 (-.f64 x 4/29) 3))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(*.f64 (+.f64 x -4/29) (*.f64 y 3))
(/.f64 (*.f64 2 (*.f64 24 (*.f64 (+.f64 x -4/29) y))) 16)
(*.f64 y (*.f64 (-.f64 x 4/29) 3))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(*.f64 (+.f64 x -4/29) (*.f64 y 3))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 24 (*.f64 (+.f64 x -4/29) y)))) 32)
(*.f64 y (*.f64 (-.f64 x 4/29) 3))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(*.f64 (+.f64 x -4/29) (*.f64 y 3))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 24 (*.f64 (+.f64 x -4/29) y))))) 64)
(*.f64 y (*.f64 (-.f64 x 4/29) 3))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(*.f64 (+.f64 x -4/29) (*.f64 y 3))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 24 (*.f64 (+.f64 x -4/29) y)))))) 128)
(*.f64 y (*.f64 (-.f64 x 4/29) 3))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(*.f64 (+.f64 x -4/29) (*.f64 y 3))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 24 (*.f64 (+.f64 x -4/29) y))))))) 256)
(*.f64 y (*.f64 (-.f64 x 4/29) 3))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(*.f64 (+.f64 x -4/29) (*.f64 y 3))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 24 (*.f64 (+.f64 x -4/29) y))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 24 (*.f64 (+.f64 x -4/29) y)))))))) 512)
(*.f64 y (*.f64 (-.f64 x 4/29) 3))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(*.f64 (+.f64 x -4/29) (*.f64 y 3))
(pow.f64 (*.f64 (+.f64 x -4/29) (*.f64 3 y)) 1)
(*.f64 y (*.f64 (-.f64 x 4/29) 3))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(*.f64 (+.f64 x -4/29) (*.f64 y 3))
(+.f64 x (+.f64 x (+.f64 -4/29 (+.f64 x -8/29))))
(+.f64 x (+.f64 x (+.f64 x -12/29)))
(+.f64 x (+.f64 -12/29 (+.f64 x x)))
(*.f64 3 (+.f64 x -4/29))
(+.f64 (+.f64 x -4/29) (+.f64 x (+.f64 x -8/29)))
(+.f64 x (+.f64 x (+.f64 x -12/29)))
(+.f64 x (+.f64 -12/29 (+.f64 x x)))
(*.f64 3 (+.f64 x -4/29))
(+.f64 (*.f64 (+.f64 x -4/29) 3) 0)
(+.f64 x (+.f64 x (+.f64 x -12/29)))
(+.f64 x (+.f64 -12/29 (+.f64 x x)))
(*.f64 3 (+.f64 x -4/29))
(+.f64 0 (*.f64 (+.f64 x -4/29) 3))
(+.f64 x (+.f64 x (+.f64 x -12/29)))
(+.f64 x (+.f64 -12/29 (+.f64 x x)))
(*.f64 3 (+.f64 x -4/29))
(+.f64 (+.f64 x (+.f64 x -8/29)) (+.f64 x -4/29))
(+.f64 x (+.f64 x (+.f64 x -12/29)))
(+.f64 x (+.f64 -12/29 (+.f64 x x)))
(*.f64 3 (+.f64 x -4/29))
(+.f64 -4/29 (+.f64 x (+.f64 x (+.f64 x -8/29))))
(+.f64 x (+.f64 x (+.f64 x -12/29)))
(+.f64 x (+.f64 -12/29 (+.f64 x x)))
(*.f64 3 (+.f64 x -4/29))
(+.f64 -4/29 (+.f64 (+.f64 x -4/29) (+.f64 (+.f64 x x) -4/29)))
(+.f64 x (+.f64 x (+.f64 x -12/29)))
(+.f64 x (+.f64 -12/29 (+.f64 x x)))
(*.f64 3 (+.f64 x -4/29))
(+.f64 (+.f64 x -8/29) (+.f64 (+.f64 x x) -4/29))
(+.f64 x (+.f64 x (+.f64 x -12/29)))
(+.f64 x (+.f64 -12/29 (+.f64 x x)))
(*.f64 3 (+.f64 x -4/29))
(+.f64 (*.f64 (+.f64 x -4/29) 3/2) (*.f64 (+.f64 x -4/29) 3/2))
(+.f64 x (+.f64 x (+.f64 x -12/29)))
(+.f64 x (+.f64 -12/29 (+.f64 x x)))
(*.f64 3 (+.f64 x -4/29))
(+.f64 (+.f64 (+.f64 x x) -4/29) (+.f64 x -8/29))
(+.f64 x (+.f64 x (+.f64 x -12/29)))
(+.f64 x (+.f64 -12/29 (+.f64 x x)))
(*.f64 3 (+.f64 x -4/29))
(+.f64 (+.f64 x (+.f64 -4/29 (+.f64 x -8/29))) x)
(+.f64 x (+.f64 x (+.f64 x -12/29)))
(+.f64 x (+.f64 -12/29 (+.f64 x x)))
(*.f64 3 (+.f64 x -4/29))
(+.f64 (+.f64 x (+.f64 x (+.f64 x -8/29))) -4/29)
(+.f64 x (+.f64 x (+.f64 x -12/29)))
(+.f64 x (+.f64 -12/29 (+.f64 x x)))
(*.f64 3 (+.f64 x -4/29))
(+.f64 (+.f64 (+.f64 x -4/29) (+.f64 (+.f64 x x) -4/29)) -4/29)
(+.f64 x (+.f64 x (+.f64 x -12/29)))
(+.f64 x (+.f64 -12/29 (+.f64 x x)))
(*.f64 3 (+.f64 x -4/29))
(-.f64 (*.f64 (+.f64 x -4/29) 3) 0)
(+.f64 x (+.f64 x (+.f64 x -12/29)))
(+.f64 x (+.f64 -12/29 (+.f64 x x)))
(*.f64 3 (+.f64 x -4/29))
(/.f64 (*.f64 (+.f64 x -4/29) 3) 1)
(+.f64 x (+.f64 x (+.f64 x -12/29)))
(+.f64 x (+.f64 -12/29 (+.f64 x x)))
(*.f64 3 (+.f64 x -4/29))
(/.f64 (*.f64 (+.f64 x -4/29) 6) 2)
(+.f64 x (+.f64 x (+.f64 x -12/29)))
(+.f64 x (+.f64 -12/29 (+.f64 x x)))
(*.f64 3 (+.f64 x -4/29))
(/.f64 (*.f64 (+.f64 x -4/29) 12) 4)
(+.f64 x (+.f64 x (+.f64 x -12/29)))
(+.f64 x (+.f64 -12/29 (+.f64 x x)))
(*.f64 3 (+.f64 x -4/29))
(/.f64 (*.f64 (*.f64 (+.f64 x -4/29) 3) 8) 8)
(+.f64 x (+.f64 x (+.f64 x -12/29)))
(+.f64 x (+.f64 -12/29 (+.f64 x x)))
(*.f64 3 (+.f64 x -4/29))
(/.f64 (*.f64 2 (*.f64 (*.f64 (+.f64 x -4/29) 3) 8)) 16)
(+.f64 x (+.f64 x (+.f64 x -12/29)))
(+.f64 x (+.f64 -12/29 (+.f64 x x)))
(*.f64 3 (+.f64 x -4/29))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 x -4/29) 3) 8))) 32)
(+.f64 x (+.f64 x (+.f64 x -12/29)))
(+.f64 x (+.f64 -12/29 (+.f64 x x)))
(*.f64 3 (+.f64 x -4/29))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 x -4/29) 3) 8)))) 64)
(+.f64 x (+.f64 x (+.f64 x -12/29)))
(+.f64 x (+.f64 -12/29 (+.f64 x x)))
(*.f64 3 (+.f64 x -4/29))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 x -4/29) 3) 8))))) 128)
(+.f64 x (+.f64 x (+.f64 x -12/29)))
(+.f64 x (+.f64 -12/29 (+.f64 x x)))
(*.f64 3 (+.f64 x -4/29))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 x -4/29) 3) 8)))))) 256)
(+.f64 x (+.f64 x (+.f64 x -12/29)))
(+.f64 x (+.f64 -12/29 (+.f64 x x)))
(*.f64 3 (+.f64 x -4/29))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 x -4/29) 3) 8)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 x -4/29) 3) 8))))))) 512)
(+.f64 x (+.f64 x (+.f64 x -12/29)))
(+.f64 x (+.f64 -12/29 (+.f64 x x)))
(*.f64 3 (+.f64 x -4/29))
(pow.f64 (*.f64 (+.f64 x -4/29) 3) 1)
(+.f64 x (+.f64 x (+.f64 x -12/29)))
(+.f64 x (+.f64 -12/29 (+.f64 x x)))
(*.f64 3 (+.f64 x -4/29))
(+.f64 x -4/29)
(+.f64 (+.f64 x -4/29) 0)
(+.f64 x -4/29)
(+.f64 0 (+.f64 x -4/29))
(+.f64 x -4/29)
(+.f64 -4/29 x)
(+.f64 x -4/29)
(+.f64 (*.f64 x 1/2) (+.f64 -4/29 (*.f64 x 1/2)))
(+.f64 x -4/29)
(+.f64 (*.f64 (+.f64 x -4/29) 1/2) (*.f64 (+.f64 x -4/29) 1/2))
(+.f64 x -4/29)
(+.f64 (+.f64 -4/29 (*.f64 x 1/2)) (*.f64 x 1/2))
(+.f64 x -4/29)
(*.f64 (+.f64 x -4/29) 1)
(+.f64 x -4/29)
(*.f64 1 (+.f64 x -4/29))
(+.f64 x -4/29)
(*.f64 2 (*.f64 (+.f64 x -4/29) 1/2))
(+.f64 x -4/29)
(*.f64 (+.f64 x (+.f64 x -8/29)) 1/2)
(+.f64 x -4/29)
(*.f64 4 (*.f64 (+.f64 x -4/29) 1/4))
(+.f64 x -4/29)
(*.f64 (*.f64 (+.f64 x -4/29) 4) 1/4)
(+.f64 x -4/29)
(*.f64 (*.f64 (+.f64 x -4/29) 8) 1/8)
(+.f64 x -4/29)
(*.f64 1/2 (+.f64 x (+.f64 x -8/29)))
(+.f64 x -4/29)
(*.f64 (*.f64 (+.f64 x -4/29) 1/2) 2)
(+.f64 x -4/29)
(*.f64 1/4 (*.f64 (+.f64 x -4/29) 4))
(+.f64 x -4/29)
(*.f64 (*.f64 (+.f64 x -4/29) 1/4) 4)
(+.f64 x -4/29)
(*.f64 1/8 (*.f64 (+.f64 x -4/29) 8))
(+.f64 x -4/29)
(/.f64 (+.f64 x -4/29) 1)
(+.f64 x -4/29)
(/.f64 (+.f64 x (+.f64 x -8/29)) 2)
(+.f64 x -4/29)
(/.f64 (*.f64 (+.f64 x -4/29) 4) 4)
(+.f64 x -4/29)
(/.f64 (*.f64 (+.f64 x -4/29) 8) 8)
(+.f64 x -4/29)
(/.f64 (*.f64 2 (*.f64 (+.f64 x -4/29) 8)) 16)
(+.f64 x -4/29)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x -4/29) 8))) 32)
(+.f64 x -4/29)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x -4/29) 8)))) 64)
(+.f64 x -4/29)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x -4/29) 8))))) 128)
(+.f64 x -4/29)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x -4/29) 8)))))) 256)
(+.f64 x -4/29)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x -4/29) 8)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x -4/29) 8))))))) 512)
(+.f64 x -4/29)
(pow.f64 (+.f64 x -4/29) 1)
(+.f64 x -4/29)

localize7.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(-.f64 x 4/29)
0.2b
(*.f64 (-.f64 x 4/29) (*.f64 3 y))
Compiler

Compiled 19 to 13 computations (31.6% saved)

series1.0ms (0%)

Counts
1 → 24
Calls

6 calls:

TimeVariablePointExpression
0.0ms
x
@0
(*.f64 (-.f64 x 4/29) (*.f64 3 y))
0.0ms
x
@inf
(*.f64 (-.f64 x 4/29) (*.f64 3 y))
0.0ms
x
@-inf
(*.f64 (-.f64 x 4/29) (*.f64 3 y))
0.0ms
y
@inf
(*.f64 (-.f64 x 4/29) (*.f64 3 y))
0.0ms
y
@-inf
(*.f64 (-.f64 x 4/29) (*.f64 3 y))

rewrite217.0ms (1.5%)

Algorithm
batch-egg-rewrite
Rules
2594×rational.json-simplify-35
1422×rational.json-simplify-1
1256×exponential.json-3
1256×rational.json-1
1256×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0919
16019
213019
326819
448819
5111619
6251219
7436019
8540319
9640519
10734119
11734119
12734119
Stop Event
node limit
Counts
1 → 17
Calls
Call 1
Inputs
(*.f64 (-.f64 x 4/29) (*.f64 3 y))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 x -4/29) (*.f64 3 y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (+.f64 x -4/29) (*.f64 3 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 x -4/29) y) (*.f64 (+.f64 x -4/29) (+.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 x -4/29) (+.f64 y y)) (*.f64 (+.f64 x -4/29) y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 x -4/29) (*.f64 y 3/2)) (*.f64 (+.f64 x -4/29) (*.f64 y 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (+.f64 x -4/29) (*.f64 3 y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x -4/29) (*.f64 3 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x -4/29) (*.f64 y 6)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x -4/29) (*.f64 y 12)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 24 (*.f64 (+.f64 x -4/29) y)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 24 (*.f64 (+.f64 x -4/29) y))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 24 (*.f64 (+.f64 x -4/29) y)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 24 (*.f64 (+.f64 x -4/29) y))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 24 (*.f64 (+.f64 x -4/29) y)))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 24 (*.f64 (+.f64 x -4/29) y))))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 24 (*.f64 (+.f64 x -4/29) y))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 24 (*.f64 (+.f64 x -4/29) y)))))))) 512)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (+.f64 x -4/29) (*.f64 3 y)) 1)))))

simplify574.0ms (3.9%)

Algorithm
egg-herbie
Rules
3698×rational.json-simplify-35
2504×rational.json-simplify-2
1216×rational.json-simplify-53
1068×rational.json-simplify-1
992×exponential.json-simplify-26
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
066809
1159755
2303755
3728755
42056755
53645755
64530755
74884755
85102755
95277755
105446755
115727755
125983755
136043755
146130755
156223755
166393755
176560755
186727755
196894755
207234755
217738755
Stop Event
node limit
Counts
41 → 29
Calls
Call 1
Inputs
(*.f64 -12/29 y)
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(*.f64 3 (*.f64 y x))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(*.f64 3 (*.f64 y x))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(+.f64 (*.f64 (+.f64 x -4/29) (*.f64 3 y)) 0)
(+.f64 0 (*.f64 (+.f64 x -4/29) (*.f64 3 y)))
(+.f64 (*.f64 (+.f64 x -4/29) y) (*.f64 (+.f64 x -4/29) (+.f64 y y)))
(+.f64 (*.f64 (+.f64 x -4/29) (+.f64 y y)) (*.f64 (+.f64 x -4/29) y))
(+.f64 (*.f64 (+.f64 x -4/29) (*.f64 y 3/2)) (*.f64 (+.f64 x -4/29) (*.f64 y 3/2)))
(-.f64 (*.f64 (+.f64 x -4/29) (*.f64 3 y)) 0)
(/.f64 (*.f64 (+.f64 x -4/29) (*.f64 3 y)) 1)
(/.f64 (*.f64 (+.f64 x -4/29) (*.f64 y 6)) 2)
(/.f64 (*.f64 (+.f64 x -4/29) (*.f64 y 12)) 4)
(/.f64 (*.f64 24 (*.f64 (+.f64 x -4/29) y)) 8)
(/.f64 (*.f64 2 (*.f64 24 (*.f64 (+.f64 x -4/29) y))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 24 (*.f64 (+.f64 x -4/29) y)))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 24 (*.f64 (+.f64 x -4/29) y))))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 24 (*.f64 (+.f64 x -4/29) y)))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 24 (*.f64 (+.f64 x -4/29) y))))))) 256)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 24 (*.f64 (+.f64 x -4/29) y))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 24 (*.f64 (+.f64 x -4/29) y)))))))) 512)
(pow.f64 (*.f64 (+.f64 x -4/29) (*.f64 3 y)) 1)
Outputs
(*.f64 -12/29 y)
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 3 (*.f64 y x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 3 (*.f64 y x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 3 (*.f64 y x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 3 (*.f64 y x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 3 (*.f64 y x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 3 (*.f64 y x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 3 (*.f64 y x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 3 (*.f64 y x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 3 (*.f64 y x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 (-.f64 x 4/29) (*.f64 y 3))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 (-.f64 x 4/29) (*.f64 y 3))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 (-.f64 x 4/29) (*.f64 y 3))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 (-.f64 x 4/29) (*.f64 y 3))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 (-.f64 x 4/29) (*.f64 y 3))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 (-.f64 x 4/29) (*.f64 y 3))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 (-.f64 x 4/29) (*.f64 y 3))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 (-.f64 x 4/29) (*.f64 y 3))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 (-.f64 x 4/29) (*.f64 y 3))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 (-.f64 x 4/29) (*.f64 y 3))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 (-.f64 x 4/29) (*.f64 y 3))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 (-.f64 x 4/29) (*.f64 y 3))
(*.f64 y (*.f64 3 (-.f64 x 4/29)))
(+.f64 (*.f64 (+.f64 x -4/29) (*.f64 3 y)) 0)
(*.f64 (+.f64 x -4/29) (*.f64 y 3))
(*.f64 y (*.f64 (+.f64 x -4/29) 3))
(*.f64 y (*.f64 3 (+.f64 x -4/29)))
(+.f64 0 (*.f64 (+.f64 x -4/29) (*.f64 3 y)))
(*.f64 (+.f64 x -4/29) (*.f64 y 3))
(*.f64 y (*.f64 (+.f64 x -4/29) 3))
(*.f64 y (*.f64 3 (+.f64 x -4/29)))
(+.f64 (*.f64 (+.f64 x -4/29) y) (*.f64 (+.f64 x -4/29) (+.f64 y y)))
(*.f64 (+.f64 x -4/29) (*.f64 y 3))
(*.f64 y (*.f64 (+.f64 x -4/29) 3))
(*.f64 y (*.f64 3 (+.f64 x -4/29)))
(+.f64 (*.f64 (+.f64 x -4/29) (+.f64 y y)) (*.f64 (+.f64 x -4/29) y))
(*.f64 (+.f64 x -4/29) (*.f64 y 3))
(*.f64 y (*.f64 (+.f64 x -4/29) 3))
(*.f64 y (*.f64 3 (+.f64 x -4/29)))
(+.f64 (*.f64 (+.f64 x -4/29) (*.f64 y 3/2)) (*.f64 (+.f64 x -4/29) (*.f64 y 3/2)))
(*.f64 (+.f64 x -4/29) (*.f64 y 3))
(*.f64 y (*.f64 (+.f64 x -4/29) 3))
(*.f64 y (*.f64 3 (+.f64 x -4/29)))
(-.f64 (*.f64 (+.f64 x -4/29) (*.f64 3 y)) 0)
(*.f64 (+.f64 x -4/29) (*.f64 y 3))
(*.f64 y (*.f64 (+.f64 x -4/29) 3))
(*.f64 y (*.f64 3 (+.f64 x -4/29)))
(/.f64 (*.f64 (+.f64 x -4/29) (*.f64 3 y)) 1)
(*.f64 (+.f64 x -4/29) (*.f64 y 3))
(*.f64 y (*.f64 (+.f64 x -4/29) 3))
(*.f64 y (*.f64 3 (+.f64 x -4/29)))
(/.f64 (*.f64 (+.f64 x -4/29) (*.f64 y 6)) 2)
(*.f64 (+.f64 x -4/29) (*.f64 y 3))
(*.f64 y (*.f64 (+.f64 x -4/29) 3))
(*.f64 y (*.f64 3 (+.f64 x -4/29)))
(/.f64 (*.f64 (+.f64 x -4/29) (*.f64 y 12)) 4)
(*.f64 (+.f64 x -4/29) (*.f64 y 3))
(*.f64 y (*.f64 (+.f64 x -4/29) 3))
(*.f64 y (*.f64 3 (+.f64 x -4/29)))
(/.f64 (*.f64 24 (*.f64 (+.f64 x -4/29) y)) 8)
(*.f64 (+.f64 x -4/29) (*.f64 y 3))
(*.f64 y (*.f64 (+.f64 x -4/29) 3))
(*.f64 y (*.f64 3 (+.f64 x -4/29)))
(/.f64 (*.f64 2 (*.f64 24 (*.f64 (+.f64 x -4/29) y))) 16)
(*.f64 (+.f64 x -4/29) (*.f64 y 3))
(*.f64 y (*.f64 (+.f64 x -4/29) 3))
(*.f64 y (*.f64 3 (+.f64 x -4/29)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 24 (*.f64 (+.f64 x -4/29) y)))) 32)
(*.f64 (+.f64 x -4/29) (*.f64 y 3))
(*.f64 y (*.f64 (+.f64 x -4/29) 3))
(*.f64 y (*.f64 3 (+.f64 x -4/29)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 24 (*.f64 (+.f64 x -4/29) y))))) 64)
(*.f64 (+.f64 x -4/29) (*.f64 y 3))
(*.f64 y (*.f64 (+.f64 x -4/29) 3))
(*.f64 y (*.f64 3 (+.f64 x -4/29)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 24 (*.f64 (+.f64 x -4/29) y)))))) 128)
(*.f64 (+.f64 x -4/29) (*.f64 y 3))
(*.f64 y (*.f64 (+.f64 x -4/29) 3))
(*.f64 y (*.f64 3 (+.f64 x -4/29)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 24 (*.f64 (+.f64 x -4/29) y))))))) 256)
(*.f64 (+.f64 x -4/29) (*.f64 y 3))
(*.f64 y (*.f64 (+.f64 x -4/29) 3))
(*.f64 y (*.f64 3 (+.f64 x -4/29)))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 24 (*.f64 (+.f64 x -4/29) y))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 24 (*.f64 (+.f64 x -4/29) y)))))))) 512)
(*.f64 (+.f64 x -4/29) (*.f64 y 3))
(*.f64 y (*.f64 (+.f64 x -4/29) 3))
(*.f64 y (*.f64 3 (+.f64 x -4/29)))
(pow.f64 (*.f64 (+.f64 x -4/29) (*.f64 3 y)) 1)
(*.f64 (+.f64 x -4/29) (*.f64 y 3))
(*.f64 y (*.f64 (+.f64 x -4/29) 3))
(*.f64 y (*.f64 3 (+.f64 x -4/29)))

eval103.0ms (0.7%)

Compiler

Compiled 1731 to 1359 computations (21.5% saved)

prune24.0ms (0.2%)

Pruning

9 alts after pruning (8 fresh and 1 done)

PrunedKeptTotal
New1438151
Fresh000
Picked011
Done101
Total1449153
Error
0.0b
Counts
153 → 9
Alt Table
Click to see full alt table
StatusErrorProgram
0.2b
(*.f64 (-.f64 (*.f64 3 x) 12/29) y)
0.2b
(*.f64 (-.f64 x 4/29) (*.f64 3 y))
0.2b
(*.f64 (+.f64 x (+.f64 x (+.f64 x -12/29))) y)
34.7b
(*.f64 (*.f64 x 3) y)
34.7b
(*.f64 x (*.f64 3 y))
0.3b
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
34.8b
(*.f64 3 (*.f64 y x))
28.3b
(*.f64 -4/29 (*.f64 3 y))
28.2b
(*.f64 -12/29 y)
Compiler

Compiled 133 to 99 computations (25.6% saved)

localize102.0ms (0.7%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(-.f64 (*.f64 3 x) 12/29)
0.2b
(*.f64 (-.f64 (*.f64 3 x) 12/29) y)
Compiler

Compiled 21 to 15 computations (28.6% saved)

series3.0ms (0%)

Counts
2 → 15
Calls

9 calls:

TimeVariablePointExpression
1.0ms
x
@0
(*.f64 (-.f64 (*.f64 3 x) 12/29) y)
0.0ms
y
@0
(*.f64 (-.f64 (*.f64 3 x) 12/29) y)
0.0ms
x
@-inf
(*.f64 (-.f64 (*.f64 3 x) 12/29) y)
0.0ms
x
@inf
(*.f64 (-.f64 (*.f64 3 x) 12/29) y)
0.0ms
y
@inf
(*.f64 (-.f64 (*.f64 3 x) 12/29) y)

rewrite210.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
2450×rational.json-simplify-35
1462×rational.json-simplify-1
1238×exponential.json-3
1238×rational.json-1
1238×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0932
15832
211532
323032
441332
590732
6220532
7385932
8496732
9635832
10709732
11709732
12709732
Stop Event
node limit
Counts
2 → 49
Calls
Call 1
Inputs
(*.f64 (-.f64 (*.f64 3 x) 12/29) y)
(-.f64 (*.f64 3 x) 12/29)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) y) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (+.f64 (*.f64 3 x) -12/29) y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) (*.f64 y 1/2)) (*.f64 (+.f64 (*.f64 3 x) -12/29) (*.f64 y 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) y) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) (+.f64 y y)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) (*.f64 y 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) (*.f64 y 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) -12/29) (*.f64 y 8))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) -12/29) (*.f64 y 8)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) -12/29) (*.f64 y 8))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) -12/29) (*.f64 y 8)))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) -12/29) (*.f64 y 8))))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) -12/29) (*.f64 y 8))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) -12/29) (*.f64 y 8)))))))) 512)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) y) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 x (+.f64 (+.f64 x x) -12/29))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 3 x) -12/29)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (*.f64 3 x) -12/29) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (+.f64 (*.f64 3 x) -12/29))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 x x) (+.f64 x -12/29))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -12/29 (*.f64 3 x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) 1/2) (*.f64 (+.f64 (*.f64 3 x) -12/29) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x 3/2) (+.f64 -12/29 (*.f64 x 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 x -12/29) (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (+.f64 x x) -12/29) x)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 -12/29 (*.f64 x 3/2)) (*.f64 x 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 3 x) -12/29) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 3 x) -12/29))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 (*.f64 3 x) -12/29) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 -12/29 (+.f64 (*.f64 x 6) -12/29)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (+.f64 (*.f64 3 x) -12/29) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 -12/29 (+.f64 (*.f64 x 6) -12/29)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (*.f64 3 x) -12/29) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (+.f64 (*.f64 3 x) -12/29) 8))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 3 x) -12/29) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 -12/29 (+.f64 (*.f64 x 6) -12/29)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) -12/29) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) -12/29) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) -12/29) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) -12/29) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) -12/29) 8)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) -12/29) 8)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) -12/29) 8))))))) 512)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (*.f64 3 x) -12/29) 1)))))

simplify527.0ms (3.6%)

Algorithm
egg-herbie
Rules
3502×rational.json-simplify-53
2438×rational.json-simplify-2
2182×rational.json-simplify-35
1300×rational.json-simplify-51
914×rational.json-simplify-1
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01091114
1238970
2725970
31806970
44468970
54953970
65086970
75181970
85275970
95369970
106549970
116643970
126737970
136831970
146831970
156831970
166925970
Stop Event
node limit
Counts
64 → 60
Calls
Call 1
Inputs
(*.f64 -12/29 y)
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(*.f64 3 (*.f64 y x))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(*.f64 3 (*.f64 y x))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
-12/29
(*.f64 3 x)
(*.f64 3 x)
(+.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) y) 0)
(+.f64 0 (*.f64 (+.f64 (*.f64 3 x) -12/29) y))
(+.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) (*.f64 y 1/2)) (*.f64 (+.f64 (*.f64 3 x) -12/29) (*.f64 y 1/2)))
(-.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) y) 0)
(/.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) y) 1)
(/.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) (+.f64 y y)) 2)
(/.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) (*.f64 y 4)) 4)
(/.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) (*.f64 y 8)) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) -12/29) (*.f64 y 8))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) -12/29) (*.f64 y 8)))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) -12/29) (*.f64 y 8))))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) -12/29) (*.f64 y 8)))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) -12/29) (*.f64 y 8))))))) 256)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) -12/29) (*.f64 y 8))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) -12/29) (*.f64 y 8)))))))) 512)
(pow.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) y) 1)
(+.f64 x (+.f64 (+.f64 x x) -12/29))
(+.f64 (*.f64 3 x) -12/29)
(+.f64 (+.f64 (*.f64 3 x) -12/29) 0)
(+.f64 0 (+.f64 (*.f64 3 x) -12/29))
(+.f64 (+.f64 x x) (+.f64 x -12/29))
(+.f64 -12/29 (*.f64 3 x))
(+.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) 1/2) (*.f64 (+.f64 (*.f64 3 x) -12/29) 1/2))
(+.f64 (*.f64 x 3/2) (+.f64 -12/29 (*.f64 x 3/2)))
(+.f64 (+.f64 x -12/29) (+.f64 x x))
(+.f64 (+.f64 (+.f64 x x) -12/29) x)
(+.f64 (+.f64 -12/29 (*.f64 x 3/2)) (*.f64 x 3/2))
(*.f64 (+.f64 (*.f64 3 x) -12/29) 1)
(*.f64 1 (+.f64 (*.f64 3 x) -12/29))
(*.f64 2 (*.f64 (+.f64 (*.f64 3 x) -12/29) 1/2))
(*.f64 (+.f64 -12/29 (+.f64 (*.f64 x 6) -12/29)) 1/2)
(*.f64 4 (*.f64 (+.f64 (*.f64 3 x) -12/29) 1/4))
(*.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) 4) 1/4)
(*.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) 8) 1/8)
(*.f64 1/2 (+.f64 -12/29 (+.f64 (*.f64 x 6) -12/29)))
(*.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) 1/2) 2)
(*.f64 1/4 (*.f64 (+.f64 (*.f64 3 x) -12/29) 4))
(*.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) 1/4) 4)
(*.f64 1/8 (*.f64 (+.f64 (*.f64 3 x) -12/29) 8))
(/.f64 (+.f64 (*.f64 3 x) -12/29) 1)
(/.f64 (+.f64 -12/29 (+.f64 (*.f64 x 6) -12/29)) 2)
(/.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) 4) 4)
(/.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) -12/29) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) -12/29) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) -12/29) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) -12/29) 8))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) -12/29) 8)))))) 256)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) -12/29) 8)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) -12/29) 8))))))) 512)
(pow.f64 (+.f64 (*.f64 3 x) -12/29) 1)
Outputs
(*.f64 -12/29 y)
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 3 (*.f64 y x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 3 (*.f64 y x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 3 (*.f64 y x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 3 (*.f64 y x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 3 (*.f64 y x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 3 (*.f64 y x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 3 (*.f64 y x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 3 (*.f64 y x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 3 (*.f64 y x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
-12/29
(*.f64 3 x)
(*.f64 3 x)
(+.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) y) 0)
(+.f64 (*.f64 -12/29 y) (*.f64 3 (*.f64 y x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(+.f64 0 (*.f64 (+.f64 (*.f64 3 x) -12/29) y))
(+.f64 (*.f64 -12/29 y) (*.f64 3 (*.f64 y x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(+.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) (*.f64 y 1/2)) (*.f64 (+.f64 (*.f64 3 x) -12/29) (*.f64 y 1/2)))
(+.f64 (*.f64 -12/29 y) (*.f64 3 (*.f64 y x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(-.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) y) 0)
(+.f64 (*.f64 -12/29 y) (*.f64 3 (*.f64 y x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(/.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) y) 1)
(+.f64 (*.f64 -12/29 y) (*.f64 3 (*.f64 y x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(/.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) (+.f64 y y)) 2)
(+.f64 (*.f64 -12/29 y) (*.f64 3 (*.f64 y x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(/.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) (*.f64 y 4)) 4)
(+.f64 (*.f64 -12/29 y) (*.f64 3 (*.f64 y x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(/.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) (*.f64 y 8)) 8)
(+.f64 (*.f64 -12/29 y) (*.f64 3 (*.f64 y x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) -12/29) (*.f64 y 8))) 16)
(+.f64 (*.f64 -12/29 y) (*.f64 3 (*.f64 y x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) -12/29) (*.f64 y 8)))) 32)
(+.f64 (*.f64 -12/29 y) (*.f64 3 (*.f64 y x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) -12/29) (*.f64 y 8))))) 64)
(+.f64 (*.f64 -12/29 y) (*.f64 3 (*.f64 y x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) -12/29) (*.f64 y 8)))))) 128)
(+.f64 (*.f64 -12/29 y) (*.f64 3 (*.f64 y x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) -12/29) (*.f64 y 8))))))) 256)
(+.f64 (*.f64 -12/29 y) (*.f64 3 (*.f64 y x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) -12/29) (*.f64 y 8))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) -12/29) (*.f64 y 8)))))))) 512)
(+.f64 (*.f64 -12/29 y) (*.f64 3 (*.f64 y x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(pow.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) y) 1)
(+.f64 (*.f64 -12/29 y) (*.f64 3 (*.f64 y x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(+.f64 x (+.f64 (+.f64 x x) -12/29))
(+.f64 (+.f64 x x) (+.f64 -12/29 x))
(+.f64 x (+.f64 -12/29 (+.f64 x x)))
(+.f64 x (+.f64 x (+.f64 -12/29 x)))
(+.f64 (*.f64 3 x) -12/29)
(+.f64 -12/29 (*.f64 3 x))
(+.f64 (+.f64 (*.f64 3 x) -12/29) 0)
(+.f64 -12/29 (*.f64 3 x))
(+.f64 0 (+.f64 (*.f64 3 x) -12/29))
(+.f64 -12/29 (*.f64 3 x))
(+.f64 (+.f64 x x) (+.f64 x -12/29))
(+.f64 (+.f64 x x) (+.f64 -12/29 x))
(+.f64 x (+.f64 -12/29 (+.f64 x x)))
(+.f64 x (+.f64 x (+.f64 -12/29 x)))
(+.f64 -12/29 (*.f64 3 x))
(+.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) 1/2) (*.f64 (+.f64 (*.f64 3 x) -12/29) 1/2))
(+.f64 -12/29 (*.f64 3 x))
(+.f64 (*.f64 x 3/2) (+.f64 -12/29 (*.f64 x 3/2)))
(+.f64 -12/29 (*.f64 3 x))
(+.f64 (+.f64 x -12/29) (+.f64 x x))
(+.f64 (+.f64 x x) (+.f64 -12/29 x))
(+.f64 x (+.f64 -12/29 (+.f64 x x)))
(+.f64 x (+.f64 x (+.f64 -12/29 x)))
(+.f64 (+.f64 (+.f64 x x) -12/29) x)
(+.f64 (+.f64 x x) (+.f64 -12/29 x))
(+.f64 x (+.f64 -12/29 (+.f64 x x)))
(+.f64 x (+.f64 x (+.f64 -12/29 x)))
(+.f64 (+.f64 -12/29 (*.f64 x 3/2)) (*.f64 x 3/2))
(+.f64 -12/29 (*.f64 3 x))
(*.f64 (+.f64 (*.f64 3 x) -12/29) 1)
(+.f64 -12/29 (*.f64 3 x))
(*.f64 1 (+.f64 (*.f64 3 x) -12/29))
(+.f64 -12/29 (*.f64 3 x))
(*.f64 2 (*.f64 (+.f64 (*.f64 3 x) -12/29) 1/2))
(+.f64 -12/29 (*.f64 3 x))
(*.f64 (+.f64 -12/29 (+.f64 (*.f64 x 6) -12/29)) 1/2)
(+.f64 -12/29 (*.f64 3 x))
(*.f64 4 (*.f64 (+.f64 (*.f64 3 x) -12/29) 1/4))
(+.f64 -12/29 (*.f64 3 x))
(*.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) 4) 1/4)
(+.f64 -12/29 (*.f64 3 x))
(*.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) 8) 1/8)
(+.f64 -12/29 (*.f64 3 x))
(*.f64 1/2 (+.f64 -12/29 (+.f64 (*.f64 x 6) -12/29)))
(+.f64 -12/29 (*.f64 3 x))
(*.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) 1/2) 2)
(+.f64 -12/29 (*.f64 3 x))
(*.f64 1/4 (*.f64 (+.f64 (*.f64 3 x) -12/29) 4))
(+.f64 -12/29 (*.f64 3 x))
(*.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) 1/4) 4)
(+.f64 -12/29 (*.f64 3 x))
(*.f64 1/8 (*.f64 (+.f64 (*.f64 3 x) -12/29) 8))
(+.f64 -12/29 (*.f64 3 x))
(/.f64 (+.f64 (*.f64 3 x) -12/29) 1)
(+.f64 -12/29 (*.f64 3 x))
(/.f64 (+.f64 -12/29 (+.f64 (*.f64 x 6) -12/29)) 2)
(+.f64 -12/29 (*.f64 3 x))
(/.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) 4) 4)
(+.f64 -12/29 (*.f64 3 x))
(/.f64 (*.f64 (+.f64 (*.f64 3 x) -12/29) 8) 8)
(+.f64 -12/29 (*.f64 3 x))
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) -12/29) 8)) 16)
(+.f64 -12/29 (*.f64 3 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) -12/29) 8))) 32)
(+.f64 -12/29 (*.f64 3 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) -12/29) 8)))) 64)
(+.f64 -12/29 (*.f64 3 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) -12/29) 8))))) 128)
(+.f64 -12/29 (*.f64 3 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) -12/29) 8)))))) 256)
(+.f64 -12/29 (*.f64 3 x))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) -12/29) 8)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) -12/29) 8))))))) 512)
(+.f64 -12/29 (*.f64 3 x))
(pow.f64 (+.f64 (*.f64 3 x) -12/29) 1)
(+.f64 -12/29 (*.f64 3 x))

localize3.0ms (0%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.1b
(*.f64 -12/29 y)
Compiler

Compiled 7 to 5 computations (28.6% saved)

series1.0ms (0%)

Counts
1 → 0
Calls

3 calls:

TimeVariablePointExpression
0.0ms
y
@inf
(*.f64 -12/29 y)
0.0ms
y
@-inf
(*.f64 -12/29 y)
0.0ms
y
@0
(*.f64 -12/29 y)

rewrite244.0ms (1.6%)

Algorithm
batch-egg-rewrite
Rules
2416×rational.json-simplify-2
2364×rational.json-simplify-35
1474×rational.json-simplify-1
1110×exponential.json-3
1110×rational.json-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
057
1337
2787
31587
42787
55837
613387
728317
843977
949637
1060307
1167377
1267377
1378027
1478027
Stop Event
node limit
Counts
1 → 16
Calls
Call 1
Inputs
(*.f64 -12/29 y)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 -12/29 y) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 -12/29 y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y -6/29) (*.f64 y -6/29))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 -12/29 y) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -12/29 y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y -24/29) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y -48/29) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y -96/29) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 y -96/29)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 y -96/29))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -96/29)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -96/29))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -96/29)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -96/29))))))) 512)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -96/29))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -96/29)))))))) 1024)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 -12/29 y) 1)))))

simplify442.0ms (3%)

Algorithm
egg-herbie
Rules
3476×rational.json-simplify-51
2910×rational.json-simplify-2
2064×rational.json-simplify-35
1168×rational.json-simplify-1
686×rational.json-simplify-49
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
048112
1122112
2214112
3537112
41350112
52639112
63509112
73681112
83774112
93845112
103910112
113974112
124035112
134095112
144154112
154213112
164272112
174331112
184390112
194449112
207041112
217181112
227239112
237244112
247244112
Stop Event
node limit
Counts
16 → 17
Calls
Call 1
Inputs
(+.f64 (*.f64 -12/29 y) 0)
(+.f64 0 (*.f64 -12/29 y))
(+.f64 (*.f64 y -6/29) (*.f64 y -6/29))
(-.f64 (*.f64 -12/29 y) 0)
(/.f64 (*.f64 -12/29 y) 1)
(/.f64 (*.f64 y -24/29) 2)
(/.f64 (*.f64 y -48/29) 4)
(/.f64 (*.f64 y -96/29) 8)
(/.f64 (*.f64 2 (*.f64 y -96/29)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 y -96/29))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -96/29)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -96/29))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -96/29)))))) 256)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -96/29))))))) 512)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -96/29))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -96/29)))))))) 1024)
(pow.f64 (*.f64 -12/29 y) 1)
Outputs
(+.f64 (*.f64 -12/29 y) 0)
(*.f64 -12/29 y)
(+.f64 0 (*.f64 -12/29 y))
(*.f64 -12/29 y)
(+.f64 (*.f64 y -6/29) (*.f64 y -6/29))
(*.f64 -12/29 y)
(-.f64 (*.f64 -12/29 y) 0)
(*.f64 -12/29 y)
(/.f64 (*.f64 -12/29 y) 1)
(*.f64 -12/29 y)
(/.f64 (*.f64 y -24/29) 2)
(*.f64 -12/29 y)
(/.f64 (*.f64 y -48/29) 4)
(*.f64 -12/29 y)
(/.f64 (*.f64 y -96/29) 8)
(*.f64 -12/29 y)
(/.f64 (*.f64 2 (*.f64 y -96/29)) 16)
(*.f64 -12/29 y)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 y -96/29))) 32)
(*.f64 -12/29 y)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -96/29)))) 64)
(*.f64 -12/29 y)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -96/29))))) 128)
(*.f64 -12/29 y)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -96/29)))))) 256)
(*.f64 -12/29 y)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -96/29))))))) 512)
(*.f64 -12/29 y)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -96/29))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -96/29)))))))) 1024)
(*.f64 -12/29 y)
(pow.f64 (*.f64 -12/29 y) 1)
(*.f64 -12/29 y)

localize5.0ms (0%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.3b
(*.f64 3 (*.f64 y x))
Compiler

Compiled 13 to 6 computations (53.8% saved)

series3.0ms (0%)

Counts
1 → 0
Calls

6 calls:

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

rewrite253.0ms (1.7%)

Algorithm
batch-egg-rewrite
Rules
2502×rational.json-simplify-2
2146×rational.json-simplify-35
1280×rational.json-1
1280×rational.json-2
1280×rational.json-3
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
14813
211413
323913
443313
598413
6214613
7365113
8449213
9536713
10613413
11613413
12693713
13693713
14769913
Stop Event
node limit
Counts
1 → 17
Calls
Call 1
Inputs
(*.f64 3 (*.f64 y x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y x) (*.f64 (*.f64 y x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 3 (*.f64 y x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 3 (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 y x) 2) (*.f64 y x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (*.f64 x 3/2)) (*.f64 y (*.f64 x 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 3 (*.f64 y x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 3 (*.f64 y x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 x 6)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 x 12)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 y (*.f64 x 6)) 4) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 y (*.f64 x 6)) 4)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 x 6)) 4))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 x 6)) 4)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 x 6)) 4))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 x 6)) 4)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 x 6)) 4)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 x 6)) 4))))))) 512)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 3 (*.f64 y x)) 1)))))

simplify752.0ms (5.1%)

Algorithm
egg-herbie
Rules
4584×rational.json-simplify-35
2304×rational.json-simplify-2
1068×exponential.json-simplify-26
918×rational.json-simplify-1
688×rational.json-simplify-53
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
052425
1131425
2267323
3638323
41847221
53601221
64411221
74851221
85149221
95370221
105558221
116459221
126461221
136478221
146500221
156512221
166691221
176867221
187043221
197219221
207395221
217571221
227774221
237778221
247778221
257954221
Stop Event
node limit
Counts
17 → 21
Calls
Call 1
Inputs
(+.f64 (*.f64 y x) (*.f64 (*.f64 y x) 2))
(+.f64 (*.f64 3 (*.f64 y x)) 0)
(+.f64 0 (*.f64 3 (*.f64 y x)))
(+.f64 (*.f64 (*.f64 y x) 2) (*.f64 y x))
(+.f64 (*.f64 y (*.f64 x 3/2)) (*.f64 y (*.f64 x 3/2)))
(-.f64 (*.f64 3 (*.f64 y x)) 0)
(/.f64 (*.f64 3 (*.f64 y x)) 1)
(/.f64 (*.f64 y (*.f64 x 6)) 2)
(/.f64 (*.f64 y (*.f64 x 12)) 4)
(/.f64 (*.f64 (*.f64 y (*.f64 x 6)) 4) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 y (*.f64 x 6)) 4)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 x 6)) 4))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 x 6)) 4)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 x 6)) 4))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 x 6)) 4)))))) 256)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 x 6)) 4)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 x 6)) 4))))))) 512)
(pow.f64 (*.f64 3 (*.f64 y x)) 1)
Outputs
(+.f64 (*.f64 y x) (*.f64 (*.f64 y x) 2))
(+.f64 (*.f64 y x) (*.f64 y (*.f64 x 2)))
(*.f64 y (+.f64 x (*.f64 x 2)))
(*.f64 x (+.f64 y (+.f64 y y)))
(*.f64 y (*.f64 x 3))
(+.f64 (*.f64 3 (*.f64 y x)) 0)
(+.f64 (*.f64 y x) (*.f64 (*.f64 y x) 2))
(+.f64 (*.f64 y x) (*.f64 y (*.f64 x 2)))
(*.f64 y (+.f64 x (*.f64 x 2)))
(*.f64 x (+.f64 y (+.f64 y y)))
(*.f64 y (*.f64 x 3))
(+.f64 0 (*.f64 3 (*.f64 y x)))
(+.f64 (*.f64 y x) (*.f64 (*.f64 y x) 2))
(+.f64 (*.f64 y x) (*.f64 y (*.f64 x 2)))
(*.f64 y (+.f64 x (*.f64 x 2)))
(*.f64 x (+.f64 y (+.f64 y y)))
(*.f64 y (*.f64 x 3))
(+.f64 (*.f64 (*.f64 y x) 2) (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 (*.f64 y x) 2))
(+.f64 (*.f64 y x) (*.f64 y (*.f64 x 2)))
(*.f64 y (+.f64 x (*.f64 x 2)))
(*.f64 x (+.f64 y (+.f64 y y)))
(*.f64 y (*.f64 x 3))
(+.f64 (*.f64 y (*.f64 x 3/2)) (*.f64 y (*.f64 x 3/2)))
(+.f64 (*.f64 y x) (*.f64 (*.f64 y x) 2))
(+.f64 (*.f64 y x) (*.f64 y (*.f64 x 2)))
(*.f64 y (+.f64 x (*.f64 x 2)))
(*.f64 x (+.f64 y (+.f64 y y)))
(*.f64 y (*.f64 x 3))
(-.f64 (*.f64 3 (*.f64 y x)) 0)
(+.f64 (*.f64 y x) (*.f64 (*.f64 y x) 2))
(+.f64 (*.f64 y x) (*.f64 y (*.f64 x 2)))
(*.f64 y (+.f64 x (*.f64 x 2)))
(*.f64 x (+.f64 y (+.f64 y y)))
(*.f64 y (*.f64 x 3))
(/.f64 (*.f64 3 (*.f64 y x)) 1)
(+.f64 (*.f64 y x) (*.f64 (*.f64 y x) 2))
(+.f64 (*.f64 y x) (*.f64 y (*.f64 x 2)))
(*.f64 y (+.f64 x (*.f64 x 2)))
(*.f64 x (+.f64 y (+.f64 y y)))
(*.f64 y (*.f64 x 3))
(/.f64 (*.f64 y (*.f64 x 6)) 2)
(+.f64 (*.f64 y x) (*.f64 (*.f64 y x) 2))
(+.f64 (*.f64 y x) (*.f64 y (*.f64 x 2)))
(*.f64 y (+.f64 x (*.f64 x 2)))
(*.f64 x (+.f64 y (+.f64 y y)))
(*.f64 y (*.f64 x 3))
(/.f64 (*.f64 y (*.f64 x 12)) 4)
(+.f64 (*.f64 y x) (*.f64 (*.f64 y x) 2))
(+.f64 (*.f64 y x) (*.f64 y (*.f64 x 2)))
(*.f64 y (+.f64 x (*.f64 x 2)))
(*.f64 x (+.f64 y (+.f64 y y)))
(*.f64 y (*.f64 x 3))
(/.f64 (*.f64 (*.f64 y (*.f64 x 6)) 4) 8)
(+.f64 (*.f64 y x) (*.f64 (*.f64 y x) 2))
(+.f64 (*.f64 y x) (*.f64 y (*.f64 x 2)))
(*.f64 y (+.f64 x (*.f64 x 2)))
(*.f64 x (+.f64 y (+.f64 y y)))
(*.f64 y (*.f64 x 3))
(/.f64 (*.f64 2 (*.f64 (*.f64 y (*.f64 x 6)) 4)) 16)
(+.f64 (*.f64 y x) (*.f64 (*.f64 y x) 2))
(+.f64 (*.f64 y x) (*.f64 y (*.f64 x 2)))
(*.f64 y (+.f64 x (*.f64 x 2)))
(*.f64 x (+.f64 y (+.f64 y y)))
(*.f64 y (*.f64 x 3))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 x 6)) 4))) 32)
(+.f64 (*.f64 y x) (*.f64 (*.f64 y x) 2))
(+.f64 (*.f64 y x) (*.f64 y (*.f64 x 2)))
(*.f64 y (+.f64 x (*.f64 x 2)))
(*.f64 x (+.f64 y (+.f64 y y)))
(*.f64 y (*.f64 x 3))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 x 6)) 4)))) 64)
(+.f64 (*.f64 y x) (*.f64 (*.f64 y x) 2))
(+.f64 (*.f64 y x) (*.f64 y (*.f64 x 2)))
(*.f64 y (+.f64 x (*.f64 x 2)))
(*.f64 x (+.f64 y (+.f64 y y)))
(*.f64 y (*.f64 x 3))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 x 6)) 4))))) 128)
(+.f64 (*.f64 y x) (*.f64 (*.f64 y x) 2))
(+.f64 (*.f64 y x) (*.f64 y (*.f64 x 2)))
(*.f64 y (+.f64 x (*.f64 x 2)))
(*.f64 x (+.f64 y (+.f64 y y)))
(*.f64 y (*.f64 x 3))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 x 6)) 4)))))) 256)
(+.f64 (*.f64 y x) (*.f64 (*.f64 y x) 2))
(+.f64 (*.f64 y x) (*.f64 y (*.f64 x 2)))
(*.f64 y (+.f64 x (*.f64 x 2)))
(*.f64 x (+.f64 y (+.f64 y y)))
(*.f64 y (*.f64 x 3))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 x 6)) 4)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (*.f64 x 6)) 4))))))) 512)
(+.f64 (*.f64 y x) (*.f64 (*.f64 y x) 2))
(+.f64 (*.f64 y x) (*.f64 y (*.f64 x 2)))
(*.f64 y (+.f64 x (*.f64 x 2)))
(*.f64 x (+.f64 y (+.f64 y y)))
(*.f64 y (*.f64 x 3))
(pow.f64 (*.f64 3 (*.f64 y x)) 1)
(+.f64 (*.f64 y x) (*.f64 (*.f64 y x) 2))
(+.f64 (*.f64 y x) (*.f64 y (*.f64 x 2)))
(*.f64 y (+.f64 x (*.f64 x 2)))
(*.f64 x (+.f64 y (+.f64 y y)))
(*.f64 y (*.f64 x 3))

localize5.0ms (0%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (*.f64 x 3) y)
Compiler

Compiled 13 to 8 computations (38.5% saved)

series0.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

rewrite312.0ms (2.1%)

Algorithm
batch-egg-rewrite
Rules
2630×rational.json-simplify-2
2170×rational.json-simplify-35
1300×rational.json-1
1140×rational.json-simplify-1
1038×exponential.json-3
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
14613
210313
322313
440913
595013
6210013
7365013
8456013
9546613
10627013
11627013
12713413
13713413
14791213
Stop Event
node limit
Counts
1 → 17
Calls
Call 1
Inputs
(*.f64 (*.f64 x 3) y)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 3 y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (*.f64 3 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x y) (*.f64 y (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (+.f64 x x)) (*.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 x y) 3/2) (*.f64 (*.f64 x y) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (*.f64 3 y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 3 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 y 6)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 y 12)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x y) 24) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 x y) 24)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x y) 24))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x y) 24)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x y) 24))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x y) 24)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x y) 24)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x y) 24))))))) 512)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (*.f64 3 y)) 1)))))

simplify935.0ms (6.3%)

Algorithm
egg-herbie
Rules
4578×rational.json-simplify-35
2450×rational.json-simplify-2
1174×rational.json-simplify-1
816×exponential.json-simplify-26
786×rational.json-simplify-53
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
056533
1138533
2276533
3705533
41941533
53586533
64339533
74630533
84834533
95018533
105195533
115674533
125775533
135833533
145915533
156058533
166360533
176650533
186913533
197094533
207262533
217430533
227597533
237767533
247781533
257793533
267793533
277957533
Stop Event
node limit
Counts
41 → 19
Calls
Call 1
Inputs
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(+.f64 (*.f64 x (*.f64 3 y)) 0)
(+.f64 0 (*.f64 x (*.f64 3 y)))
(+.f64 (*.f64 x y) (*.f64 y (+.f64 x x)))
(+.f64 (*.f64 y (+.f64 x x)) (*.f64 x y))
(+.f64 (*.f64 (*.f64 x y) 3/2) (*.f64 (*.f64 x y) 3/2))
(-.f64 (*.f64 x (*.f64 3 y)) 0)
(/.f64 (*.f64 x (*.f64 3 y)) 1)
(/.f64 (*.f64 x (*.f64 y 6)) 2)
(/.f64 (*.f64 x (*.f64 y 12)) 4)
(/.f64 (*.f64 (*.f64 x y) 24) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 x y) 24)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x y) 24))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x y) 24)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x y) 24))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x y) 24)))))) 256)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x y) 24)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x y) 24))))))) 512)
(pow.f64 (*.f64 x (*.f64 3 y)) 1)
Outputs
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(+.f64 (*.f64 x (*.f64 3 y)) 0)
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(+.f64 0 (*.f64 x (*.f64 3 y)))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(+.f64 (*.f64 x y) (*.f64 y (+.f64 x x)))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(+.f64 (*.f64 y (+.f64 x x)) (*.f64 x y))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(+.f64 (*.f64 (*.f64 x y) 3/2) (*.f64 (*.f64 x y) 3/2))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(-.f64 (*.f64 x (*.f64 3 y)) 0)
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(/.f64 (*.f64 x (*.f64 3 y)) 1)
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(/.f64 (*.f64 x (*.f64 y 6)) 2)
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(/.f64 (*.f64 x (*.f64 y 12)) 4)
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(/.f64 (*.f64 (*.f64 x y) 24) 8)
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(/.f64 (*.f64 2 (*.f64 (*.f64 x y) 24)) 16)
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x y) 24))) 32)
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x y) 24)))) 64)
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x y) 24))))) 128)
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x y) 24)))))) 256)
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x y) 24)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x y) 24))))))) 512)
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(pow.f64 (*.f64 x (*.f64 3 y)) 1)
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))

localize11.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(+.f64 x (+.f64 x (+.f64 x -12/29)))
0.0b
(+.f64 x -12/29)
0.0b
(+.f64 x (+.f64 x -12/29))
0.2b
(*.f64 (+.f64 x (+.f64 x (+.f64 x -12/29))) y)
Compiler

Compiled 29 to 17 computations (41.4% saved)

series4.0ms (0%)

Counts
4 → 60
Calls

15 calls:

TimeVariablePointExpression
1.0ms
x
@inf
(+.f64 x -12/29)
1.0ms
y
@0
(*.f64 (+.f64 x (+.f64 x (+.f64 x -12/29))) y)
0.0ms
x
@0
(*.f64 (+.f64 x (+.f64 x (+.f64 x -12/29))) y)
0.0ms
x
@inf
(*.f64 (+.f64 x (+.f64 x (+.f64 x -12/29))) y)
0.0ms
y
@inf
(*.f64 (+.f64 x (+.f64 x (+.f64 x -12/29))) y)

rewrite233.0ms (1.6%)

Algorithm
batch-egg-rewrite
Rules
2444×rational.json-simplify-35
1670×rational.json-simplify-1
1418×rational.json-1
1418×rational.json-2
1418×rational.json-3
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0964
16064
212364
325952
454552
5136852
6316552
7481252
8632952
9743352
10745552
11745552
12786152
Stop Event
node limit
Counts
4 → 81
Calls
Call 1
Inputs
(*.f64 (+.f64 x (+.f64 x (+.f64 x -12/29))) y)
(+.f64 x (+.f64 x -12/29))
(+.f64 x -12/29)
(+.f64 x (+.f64 x (+.f64 x -12/29)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 -12/29 (*.f64 x 3)) y) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (+.f64 -12/29 (*.f64 x 3)) y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 -12/29 (*.f64 x 3)) (*.f64 y 1/2)) (*.f64 (+.f64 -12/29 (*.f64 x 3)) (*.f64 y 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (+.f64 -12/29 (*.f64 x 3)) y) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 -12/29 (*.f64 x 3)) y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 -12/29 (*.f64 x 3)) (+.f64 y y)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 -12/29 (*.f64 x 3)) (*.f64 y 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 -12/29 (*.f64 x 3)) (*.f64 y 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 -12/29 (*.f64 x 3)) (*.f64 y 8))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -12/29 (*.f64 x 3)) (*.f64 y 8)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -12/29 (*.f64 x 3)) (*.f64 y 8))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -12/29 (*.f64 x 3)) (*.f64 y 8)))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -12/29 (*.f64 x 3)) (*.f64 y 8)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -12/29 (*.f64 x 3)) (*.f64 y 8))))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (+.f64 -12/29 (*.f64 x 3)) y) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 -12/29 (+.f64 x x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 -12/29 (+.f64 x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 -12/29 (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 -12/29 (+.f64 x x)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 -12/29 (+.f64 -12/29 (*.f64 x 4))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (+.f64 -12/29 (+.f64 x x)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 -12/29 (+.f64 x x)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 -12/29 (+.f64 x x)) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 -12/29 (+.f64 -12/29 (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 -12/29 (+.f64 x x)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 -12/29 (+.f64 x x)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 -12/29 (+.f64 x x)) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 -12/29 (+.f64 x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 -12/29 (+.f64 -12/29 (*.f64 x 4))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 -12/29 (+.f64 x x)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 -12/29 (+.f64 x x)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 -12/29 (+.f64 x x)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -12/29 (+.f64 x x)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -12/29 (+.f64 x x)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -12/29 (+.f64 x x)) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -12/29 (+.f64 x x)) 8))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -12/29 (+.f64 x x)) 8)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 -12/29 (+.f64 x x)) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 x -12/29) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x -12/29) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 x -12/29))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 x -12/29) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (+.f64 x -24/29)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (+.f64 x -12/29) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x -12/29) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x -12/29) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 x (+.f64 x -24/29)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x -12/29) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 x -12/29) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x -12/29) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x -12/29) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x (+.f64 x -24/29)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x -12/29) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x -12/29) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 x -12/29) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x -12/29) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x -12/29) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x -12/29) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x -12/29) 8))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x -12/29) 8)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 x -12/29) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 -12/29 (*.f64 x 3)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 -12/29 (*.f64 x 3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 -12/29 (*.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 x (*.f64 (+.f64 x -12/29) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 -12/29 (+.f64 -12/29 (*.f64 x 6))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (+.f64 -12/29 (*.f64 x 3)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 -12/29 (*.f64 x 3)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 -12/29 (*.f64 x 3)) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 -12/29 (+.f64 -12/29 (*.f64 x 6))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (+.f64 x (+.f64 x -24/29)) (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (*.f64 (+.f64 x -12/29) 1/2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 -12/29 (*.f64 x 3)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 -12/29 (*.f64 x 3)) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 -12/29 (*.f64 x 3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 -12/29 (+.f64 -12/29 (*.f64 x 6))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 -12/29 (*.f64 x 3)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 -12/29 (*.f64 x 3)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 -12/29 (*.f64 x 3)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -12/29 (*.f64 x 3)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -12/29 (*.f64 x 3)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -12/29 (*.f64 x 3)) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -12/29 (*.f64 x 3)) 8))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -12/29 (*.f64 x 3)) 8)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 -12/29 (*.f64 x 3)) 1)))))

simplify1.2s (8%)

Algorithm
egg-herbie
Rules
3390×rational.json-simplify-35
2390×rational.json-simplify-2
1702×rational.json-simplify-53
1466×rational.json-simplify-1
1004×rational.json-simplify-41
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01702091
13611917
29861917
322471917
439111917
547071917
648571917
749491917
850391917
951231917
1061761917
1165071917
1268291917
1369781917
1470121917
1570291917
1670311917
1770311917
1870311917
1971141917
2071971917
2172801917
2274861917
2375791917
2476721917
2577551917
2678381917
2779211917
Stop Event
node limit
Counts
141 → 115
Calls
Call 1
Inputs
(*.f64 -12/29 y)
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(*.f64 3 (*.f64 y x))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(*.f64 3 (*.f64 y x))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(*.f64 y (-.f64 (+.f64 (*.f64 2 x) x) 12/29))
(*.f64 y (-.f64 (+.f64 (*.f64 2 x) x) 12/29))
(*.f64 y (-.f64 (+.f64 (*.f64 2 x) x) 12/29))
(*.f64 y (-.f64 (+.f64 (*.f64 2 x) x) 12/29))
(*.f64 y (-.f64 (+.f64 (*.f64 2 x) x) 12/29))
(*.f64 y (-.f64 (+.f64 (*.f64 2 x) x) 12/29))
(*.f64 y (-.f64 (+.f64 (*.f64 2 x) x) 12/29))
(*.f64 y (-.f64 (+.f64 (*.f64 2 x) x) 12/29))
(*.f64 y (-.f64 (+.f64 (*.f64 2 x) x) 12/29))
(*.f64 y (-.f64 (+.f64 (*.f64 2 x) x) 12/29))
(*.f64 y (-.f64 (+.f64 (*.f64 2 x) x) 12/29))
(*.f64 y (-.f64 (+.f64 (*.f64 2 x) x) 12/29))
-12/29
(-.f64 (*.f64 2 x) 12/29)
(-.f64 (*.f64 2 x) 12/29)
(-.f64 (*.f64 2 x) 12/29)
(*.f64 2 x)
(-.f64 (*.f64 2 x) 12/29)
(-.f64 (*.f64 2 x) 12/29)
(-.f64 (*.f64 2 x) 12/29)
(*.f64 2 x)
(-.f64 (*.f64 2 x) 12/29)
(-.f64 (*.f64 2 x) 12/29)
(-.f64 (*.f64 2 x) 12/29)
-12/29
(-.f64 x 12/29)
(-.f64 x 12/29)
(-.f64 x 12/29)
x
(-.f64 x 12/29)
(-.f64 x 12/29)
(-.f64 x 12/29)
x
(-.f64 x 12/29)
(-.f64 x 12/29)
(-.f64 x 12/29)
-12/29
(-.f64 (*.f64 3 x) 12/29)
(-.f64 (*.f64 3 x) 12/29)
(-.f64 (*.f64 3 x) 12/29)
(*.f64 3 x)
(-.f64 (*.f64 3 x) 12/29)
(-.f64 (*.f64 3 x) 12/29)
(-.f64 (*.f64 3 x) 12/29)
(*.f64 3 x)
(-.f64 (*.f64 3 x) 12/29)
(-.f64 (*.f64 3 x) 12/29)
(-.f64 (*.f64 3 x) 12/29)
(+.f64 (*.f64 (+.f64 -12/29 (*.f64 x 3)) y) 0)
(+.f64 0 (*.f64 (+.f64 -12/29 (*.f64 x 3)) y))
(+.f64 (*.f64 (+.f64 -12/29 (*.f64 x 3)) (*.f64 y 1/2)) (*.f64 (+.f64 -12/29 (*.f64 x 3)) (*.f64 y 1/2)))
(-.f64 (*.f64 (+.f64 -12/29 (*.f64 x 3)) y) 0)
(/.f64 (*.f64 (+.f64 -12/29 (*.f64 x 3)) y) 1)
(/.f64 (*.f64 (+.f64 -12/29 (*.f64 x 3)) (+.f64 y y)) 2)
(/.f64 (*.f64 (+.f64 -12/29 (*.f64 x 3)) (*.f64 y 4)) 4)
(/.f64 (*.f64 (+.f64 -12/29 (*.f64 x 3)) (*.f64 y 8)) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 -12/29 (*.f64 x 3)) (*.f64 y 8))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -12/29 (*.f64 x 3)) (*.f64 y 8)))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -12/29 (*.f64 x 3)) (*.f64 y 8))))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -12/29 (*.f64 x 3)) (*.f64 y 8)))))) 128)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -12/29 (*.f64 x 3)) (*.f64 y 8)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -12/29 (*.f64 x 3)) (*.f64 y 8))))))) 256)
(pow.f64 (*.f64 (+.f64 -12/29 (*.f64 x 3)) y) 1)
(-.f64 (+.f64 -12/29 (+.f64 x x)) 0)
(*.f64 (+.f64 -12/29 (+.f64 x x)) 1)
(*.f64 1 (+.f64 -12/29 (+.f64 x x)))
(*.f64 2 (*.f64 (+.f64 -12/29 (+.f64 x x)) 1/2))
(*.f64 (+.f64 -12/29 (+.f64 -12/29 (*.f64 x 4))) 1/2)
(*.f64 4 (*.f64 (+.f64 -12/29 (+.f64 x x)) 1/4))
(*.f64 (*.f64 (+.f64 -12/29 (+.f64 x x)) 4) 1/4)
(*.f64 (*.f64 (+.f64 -12/29 (+.f64 x x)) 8) 1/8)
(*.f64 1/2 (+.f64 -12/29 (+.f64 -12/29 (*.f64 x 4))))
(*.f64 (*.f64 (+.f64 -12/29 (+.f64 x x)) 1/2) 2)
(*.f64 1/4 (*.f64 (+.f64 -12/29 (+.f64 x x)) 4))
(*.f64 (*.f64 (+.f64 -12/29 (+.f64 x x)) 1/4) 4)
(/.f64 (+.f64 -12/29 (+.f64 x x)) 1)
(/.f64 (+.f64 -12/29 (+.f64 -12/29 (*.f64 x 4))) 2)
(/.f64 (*.f64 (+.f64 -12/29 (+.f64 x x)) 4) 4)
(/.f64 (*.f64 (+.f64 -12/29 (+.f64 x x)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 -12/29 (+.f64 x x)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -12/29 (+.f64 x x)) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -12/29 (+.f64 x x)) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -12/29 (+.f64 x x)) 8))))) 128)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -12/29 (+.f64 x x)) 8))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -12/29 (+.f64 x x)) 8)))))) 256)
(pow.f64 (+.f64 -12/29 (+.f64 x x)) 1)
(-.f64 (+.f64 x -12/29) 0)
(*.f64 (+.f64 x -12/29) 1)
(*.f64 1 (+.f64 x -12/29))
(*.f64 2 (*.f64 (+.f64 x -12/29) 1/2))
(*.f64 (+.f64 x (+.f64 x -24/29)) 1/2)
(*.f64 4 (*.f64 (+.f64 x -12/29) 1/4))
(*.f64 (*.f64 (+.f64 x -12/29) 4) 1/4)
(*.f64 (*.f64 (+.f64 x -12/29) 8) 1/8)
(*.f64 1/2 (+.f64 x (+.f64 x -24/29)))
(*.f64 (*.f64 (+.f64 x -12/29) 1/2) 2)
(*.f64 1/4 (*.f64 (+.f64 x -12/29) 4))
(*.f64 (*.f64 (+.f64 x -12/29) 1/4) 4)
(/.f64 (+.f64 x -12/29) 1)
(/.f64 (+.f64 x (+.f64 x -24/29)) 2)
(/.f64 (*.f64 (+.f64 x -12/29) 4) 4)
(/.f64 (*.f64 (+.f64 x -12/29) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 x -12/29) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x -12/29) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x -12/29) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x -12/29) 8))))) 128)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x -12/29) 8))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x -12/29) 8)))))) 256)
(pow.f64 (+.f64 x -12/29) 1)
(-.f64 (+.f64 -12/29 (*.f64 x 3)) 0)
(*.f64 (+.f64 -12/29 (*.f64 x 3)) 1)
(*.f64 1 (+.f64 -12/29 (*.f64 x 3)))
(*.f64 2 (+.f64 x (*.f64 (+.f64 x -12/29) 1/2)))
(*.f64 (+.f64 -12/29 (+.f64 -12/29 (*.f64 x 6))) 1/2)
(*.f64 4 (*.f64 (+.f64 -12/29 (*.f64 x 3)) 1/4))
(*.f64 (*.f64 (+.f64 -12/29 (*.f64 x 3)) 4) 1/4)
(*.f64 (*.f64 (+.f64 -12/29 (*.f64 x 3)) 8) 1/8)
(*.f64 1/2 (+.f64 -12/29 (+.f64 -12/29 (*.f64 x 6))))
(*.f64 1/2 (+.f64 (+.f64 x (+.f64 x -24/29)) (*.f64 x 4)))
(*.f64 (+.f64 x (*.f64 (+.f64 x -12/29) 1/2)) 2)
(*.f64 1/4 (*.f64 (+.f64 -12/29 (*.f64 x 3)) 4))
(*.f64 (*.f64 (+.f64 -12/29 (*.f64 x 3)) 1/4) 4)
(/.f64 (+.f64 -12/29 (*.f64 x 3)) 1)
(/.f64 (+.f64 -12/29 (+.f64 -12/29 (*.f64 x 6))) 2)
(/.f64 (*.f64 (+.f64 -12/29 (*.f64 x 3)) 4) 4)
(/.f64 (*.f64 (+.f64 -12/29 (*.f64 x 3)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 -12/29 (*.f64 x 3)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -12/29 (*.f64 x 3)) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -12/29 (*.f64 x 3)) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -12/29 (*.f64 x 3)) 8))))) 128)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -12/29 (*.f64 x 3)) 8))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -12/29 (*.f64 x 3)) 8)))))) 256)
(pow.f64 (+.f64 -12/29 (*.f64 x 3)) 1)
Outputs
(*.f64 -12/29 y)
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 3 x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 3 x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 3 x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 3 x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 3 x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 3 x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 3 x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 3 x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 3 x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(*.f64 y (-.f64 (+.f64 (*.f64 2 x) x) 12/29))
(*.f64 y (-.f64 (+.f64 x (*.f64 x 2)) 12/29))
(*.f64 y (+.f64 x (-.f64 (*.f64 x 2) 12/29)))
(*.f64 y (-.f64 (+.f64 (*.f64 2 x) x) 12/29))
(*.f64 y (-.f64 (+.f64 x (*.f64 x 2)) 12/29))
(*.f64 y (+.f64 x (-.f64 (*.f64 x 2) 12/29)))
(*.f64 y (-.f64 (+.f64 (*.f64 2 x) x) 12/29))
(*.f64 y (-.f64 (+.f64 x (*.f64 x 2)) 12/29))
(*.f64 y (+.f64 x (-.f64 (*.f64 x 2) 12/29)))
(*.f64 y (-.f64 (+.f64 (*.f64 2 x) x) 12/29))
(*.f64 y (-.f64 (+.f64 x (*.f64 x 2)) 12/29))
(*.f64 y (+.f64 x (-.f64 (*.f64 x 2) 12/29)))
(*.f64 y (-.f64 (+.f64 (*.f64 2 x) x) 12/29))
(*.f64 y (-.f64 (+.f64 x (*.f64 x 2)) 12/29))
(*.f64 y (+.f64 x (-.f64 (*.f64 x 2) 12/29)))
(*.f64 y (-.f64 (+.f64 (*.f64 2 x) x) 12/29))
(*.f64 y (-.f64 (+.f64 x (*.f64 x 2)) 12/29))
(*.f64 y (+.f64 x (-.f64 (*.f64 x 2) 12/29)))
(*.f64 y (-.f64 (+.f64 (*.f64 2 x) x) 12/29))
(*.f64 y (-.f64 (+.f64 x (*.f64 x 2)) 12/29))
(*.f64 y (+.f64 x (-.f64 (*.f64 x 2) 12/29)))
(*.f64 y (-.f64 (+.f64 (*.f64 2 x) x) 12/29))
(*.f64 y (-.f64 (+.f64 x (*.f64 x 2)) 12/29))
(*.f64 y (+.f64 x (-.f64 (*.f64 x 2) 12/29)))
(*.f64 y (-.f64 (+.f64 (*.f64 2 x) x) 12/29))
(*.f64 y (-.f64 (+.f64 x (*.f64 x 2)) 12/29))
(*.f64 y (+.f64 x (-.f64 (*.f64 x 2) 12/29)))
(*.f64 y (-.f64 (+.f64 (*.f64 2 x) x) 12/29))
(*.f64 y (-.f64 (+.f64 x (*.f64 x 2)) 12/29))
(*.f64 y (+.f64 x (-.f64 (*.f64 x 2) 12/29)))
(*.f64 y (-.f64 (+.f64 (*.f64 2 x) x) 12/29))
(*.f64 y (-.f64 (+.f64 x (*.f64 x 2)) 12/29))
(*.f64 y (+.f64 x (-.f64 (*.f64 x 2) 12/29)))
(*.f64 y (-.f64 (+.f64 (*.f64 2 x) x) 12/29))
(*.f64 y (-.f64 (+.f64 x (*.f64 x 2)) 12/29))
(*.f64 y (+.f64 x (-.f64 (*.f64 x 2) 12/29)))
-12/29
(-.f64 (*.f64 2 x) 12/29)
(-.f64 (*.f64 x 2) 12/29)
(-.f64 (*.f64 2 x) 12/29)
(-.f64 (*.f64 x 2) 12/29)
(-.f64 (*.f64 2 x) 12/29)
(-.f64 (*.f64 x 2) 12/29)
(*.f64 2 x)
(*.f64 x 2)
(-.f64 (*.f64 2 x) 12/29)
(-.f64 (*.f64 x 2) 12/29)
(-.f64 (*.f64 2 x) 12/29)
(-.f64 (*.f64 x 2) 12/29)
(-.f64 (*.f64 2 x) 12/29)
(-.f64 (*.f64 x 2) 12/29)
(*.f64 2 x)
(*.f64 x 2)
(-.f64 (*.f64 2 x) 12/29)
(-.f64 (*.f64 x 2) 12/29)
(-.f64 (*.f64 2 x) 12/29)
(-.f64 (*.f64 x 2) 12/29)
(-.f64 (*.f64 2 x) 12/29)
(-.f64 (*.f64 x 2) 12/29)
-12/29
(-.f64 x 12/29)
(-.f64 x 12/29)
(-.f64 x 12/29)
x
(-.f64 x 12/29)
(-.f64 x 12/29)
(-.f64 x 12/29)
x
(-.f64 x 12/29)
(-.f64 x 12/29)
(-.f64 x 12/29)
-12/29
(-.f64 (*.f64 3 x) 12/29)
(-.f64 (*.f64 3 x) 12/29)
(-.f64 (*.f64 3 x) 12/29)
(*.f64 3 x)
(-.f64 (*.f64 3 x) 12/29)
(-.f64 (*.f64 3 x) 12/29)
(-.f64 (*.f64 3 x) 12/29)
(*.f64 3 x)
(-.f64 (*.f64 3 x) 12/29)
(-.f64 (*.f64 3 x) 12/29)
(-.f64 (*.f64 3 x) 12/29)
(+.f64 (*.f64 (+.f64 -12/29 (*.f64 x 3)) y) 0)
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 3 x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(+.f64 0 (*.f64 (+.f64 -12/29 (*.f64 x 3)) y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 3 x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(+.f64 (*.f64 (+.f64 -12/29 (*.f64 x 3)) (*.f64 y 1/2)) (*.f64 (+.f64 -12/29 (*.f64 x 3)) (*.f64 y 1/2)))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 3 x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(-.f64 (*.f64 (+.f64 -12/29 (*.f64 x 3)) y) 0)
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 3 x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(/.f64 (*.f64 (+.f64 -12/29 (*.f64 x 3)) y) 1)
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 3 x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(/.f64 (*.f64 (+.f64 -12/29 (*.f64 x 3)) (+.f64 y y)) 2)
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 3 x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(/.f64 (*.f64 (+.f64 -12/29 (*.f64 x 3)) (*.f64 y 4)) 4)
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 3 x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(/.f64 (*.f64 (+.f64 -12/29 (*.f64 x 3)) (*.f64 y 8)) 8)
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 3 x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(/.f64 (*.f64 2 (*.f64 (+.f64 -12/29 (*.f64 x 3)) (*.f64 y 8))) 16)
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 3 x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -12/29 (*.f64 x 3)) (*.f64 y 8)))) 32)
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 3 x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -12/29 (*.f64 x 3)) (*.f64 y 8))))) 64)
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 3 x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -12/29 (*.f64 x 3)) (*.f64 y 8)))))) 128)
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 3 x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -12/29 (*.f64 x 3)) (*.f64 y 8)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -12/29 (*.f64 x 3)) (*.f64 y 8))))))) 256)
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 3 x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(pow.f64 (*.f64 (+.f64 -12/29 (*.f64 x 3)) y) 1)
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 3 x)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(-.f64 (+.f64 -12/29 (+.f64 x x)) 0)
(+.f64 -12/29 (+.f64 x x))
(+.f64 x (+.f64 -12/29 x))
(*.f64 (+.f64 -12/29 (+.f64 x x)) 1)
(+.f64 -12/29 (+.f64 x x))
(+.f64 x (+.f64 -12/29 x))
(*.f64 1 (+.f64 -12/29 (+.f64 x x)))
(+.f64 -12/29 (+.f64 x x))
(+.f64 x (+.f64 -12/29 x))
(*.f64 2 (*.f64 (+.f64 -12/29 (+.f64 x x)) 1/2))
(+.f64 -12/29 (+.f64 x x))
(+.f64 x (+.f64 -12/29 x))
(*.f64 (+.f64 -12/29 (+.f64 -12/29 (*.f64 x 4))) 1/2)
(*.f64 1/2 (+.f64 -12/29 (+.f64 -12/29 (*.f64 x 4))))
(*.f64 1/2 (+.f64 (*.f64 x 4) -24/29))
(*.f64 4 (*.f64 (+.f64 -12/29 (+.f64 x x)) 1/4))
(+.f64 -12/29 (+.f64 x x))
(+.f64 x (+.f64 -12/29 x))
(*.f64 (*.f64 (+.f64 -12/29 (+.f64 x x)) 4) 1/4)
(+.f64 -12/29 (+.f64 x x))
(+.f64 x (+.f64 -12/29 x))
(*.f64 (*.f64 (+.f64 -12/29 (+.f64 x x)) 8) 1/8)
(+.f64 -12/29 (+.f64 x x))
(+.f64 x (+.f64 -12/29 x))
(*.f64 1/2 (+.f64 -12/29 (+.f64 -12/29 (*.f64 x 4))))
(*.f64 1/2 (+.f64 (*.f64 x 4) -24/29))
(*.f64 (*.f64 (+.f64 -12/29 (+.f64 x x)) 1/2) 2)
(+.f64 -12/29 (+.f64 x x))
(+.f64 x (+.f64 -12/29 x))
(*.f64 1/4 (*.f64 (+.f64 -12/29 (+.f64 x x)) 4))
(+.f64 -12/29 (+.f64 x x))
(+.f64 x (+.f64 -12/29 x))
(*.f64 (*.f64 (+.f64 -12/29 (+.f64 x x)) 1/4) 4)
(+.f64 -12/29 (+.f64 x x))
(+.f64 x (+.f64 -12/29 x))
(/.f64 (+.f64 -12/29 (+.f64 x x)) 1)
(+.f64 -12/29 (+.f64 x x))
(+.f64 x (+.f64 -12/29 x))
(/.f64 (+.f64 -12/29 (+.f64 -12/29 (*.f64 x 4))) 2)
(/.f64 (+.f64 (*.f64 x 4) -24/29) 2)
(/.f64 (*.f64 (+.f64 -12/29 (+.f64 x x)) 4) 4)
(+.f64 -12/29 (+.f64 x x))
(+.f64 x (+.f64 -12/29 x))
(/.f64 (*.f64 (+.f64 -12/29 (+.f64 x x)) 8) 8)
(+.f64 -12/29 (+.f64 x x))
(+.f64 x (+.f64 -12/29 x))
(/.f64 (*.f64 2 (*.f64 (+.f64 -12/29 (+.f64 x x)) 8)) 16)
(+.f64 -12/29 (+.f64 x x))
(+.f64 x (+.f64 -12/29 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -12/29 (+.f64 x x)) 8))) 32)
(+.f64 -12/29 (+.f64 x x))
(+.f64 x (+.f64 -12/29 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -12/29 (+.f64 x x)) 8)))) 64)
(+.f64 -12/29 (+.f64 x x))
(+.f64 x (+.f64 -12/29 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -12/29 (+.f64 x x)) 8))))) 128)
(+.f64 -12/29 (+.f64 x x))
(+.f64 x (+.f64 -12/29 x))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -12/29 (+.f64 x x)) 8))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -12/29 (+.f64 x x)) 8)))))) 256)
(+.f64 -12/29 (+.f64 x x))
(+.f64 x (+.f64 -12/29 x))
(pow.f64 (+.f64 -12/29 (+.f64 x x)) 1)
(+.f64 -12/29 (+.f64 x x))
(+.f64 x (+.f64 -12/29 x))
(-.f64 (+.f64 x -12/29) 0)
(+.f64 -12/29 x)
(*.f64 (+.f64 x -12/29) 1)
(+.f64 -12/29 x)
(*.f64 1 (+.f64 x -12/29))
(+.f64 -12/29 x)
(*.f64 2 (*.f64 (+.f64 x -12/29) 1/2))
(+.f64 -12/29 x)
(*.f64 (+.f64 x (+.f64 x -24/29)) 1/2)
(+.f64 -12/29 x)
(*.f64 4 (*.f64 (+.f64 x -12/29) 1/4))
(+.f64 -12/29 x)
(*.f64 (*.f64 (+.f64 x -12/29) 4) 1/4)
(+.f64 -12/29 x)
(*.f64 (*.f64 (+.f64 x -12/29) 8) 1/8)
(+.f64 -12/29 x)
(*.f64 1/2 (+.f64 x (+.f64 x -24/29)))
(+.f64 -12/29 x)
(*.f64 (*.f64 (+.f64 x -12/29) 1/2) 2)
(+.f64 -12/29 x)
(*.f64 1/4 (*.f64 (+.f64 x -12/29) 4))
(+.f64 -12/29 x)
(*.f64 (*.f64 (+.f64 x -12/29) 1/4) 4)
(+.f64 -12/29 x)
(/.f64 (+.f64 x -12/29) 1)
(+.f64 -12/29 x)
(/.f64 (+.f64 x (+.f64 x -24/29)) 2)
(+.f64 -12/29 x)
(/.f64 (*.f64 (+.f64 x -12/29) 4) 4)
(+.f64 -12/29 x)
(/.f64 (*.f64 (+.f64 x -12/29) 8) 8)
(+.f64 -12/29 x)
(/.f64 (*.f64 2 (*.f64 (+.f64 x -12/29) 8)) 16)
(+.f64 -12/29 x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x -12/29) 8))) 32)
(+.f64 -12/29 x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x -12/29) 8)))) 64)
(+.f64 -12/29 x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x -12/29) 8))))) 128)
(+.f64 -12/29 x)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x -12/29) 8))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x -12/29) 8)))))) 256)
(+.f64 -12/29 x)
(pow.f64 (+.f64 x -12/29) 1)
(+.f64 -12/29 x)
(-.f64 (+.f64 -12/29 (*.f64 x 3)) 0)
(+.f64 -12/29 (*.f64 3 x))
(*.f64 (+.f64 -12/29 (*.f64 x 3)) 1)
(+.f64 -12/29 (*.f64 3 x))
(*.f64 1 (+.f64 -12/29 (*.f64 x 3)))
(+.f64 -12/29 (*.f64 3 x))
(*.f64 2 (+.f64 x (*.f64 (+.f64 x -12/29) 1/2)))
(*.f64 2 (+.f64 x (*.f64 1/2 (+.f64 -12/29 x))))
(*.f64 (+.f64 -12/29 (+.f64 -12/29 (*.f64 x 6))) 1/2)
(*.f64 1/2 (+.f64 -12/29 (+.f64 -12/29 (*.f64 x 6))))
(*.f64 1/2 (+.f64 (*.f64 x 6) -24/29))
(*.f64 1/2 (+.f64 -24/29 (*.f64 x 6)))
(*.f64 4 (*.f64 (+.f64 -12/29 (*.f64 x 3)) 1/4))
(+.f64 -12/29 (*.f64 3 x))
(*.f64 (*.f64 (+.f64 -12/29 (*.f64 x 3)) 4) 1/4)
(+.f64 -12/29 (*.f64 3 x))
(*.f64 (*.f64 (+.f64 -12/29 (*.f64 x 3)) 8) 1/8)
(+.f64 -12/29 (*.f64 3 x))
(*.f64 1/2 (+.f64 -12/29 (+.f64 -12/29 (*.f64 x 6))))
(*.f64 1/2 (+.f64 (*.f64 x 6) -24/29))
(*.f64 1/2 (+.f64 -24/29 (*.f64 x 6)))
(*.f64 1/2 (+.f64 (+.f64 x (+.f64 x -24/29)) (*.f64 x 4)))
(*.f64 1/2 (+.f64 (*.f64 x 4) (+.f64 x (+.f64 x -24/29))))
(*.f64 1/2 (+.f64 x (+.f64 (+.f64 x -24/29) (*.f64 x 4))))
(*.f64 1/2 (+.f64 -24/29 (+.f64 (+.f64 x x) (*.f64 x 4))))
(*.f64 1/2 (+.f64 (+.f64 x x) (+.f64 (*.f64 x 4) -24/29)))
(*.f64 1/2 (+.f64 x (+.f64 (*.f64 x 4) (+.f64 x -24/29))))
(*.f64 (+.f64 x (*.f64 (+.f64 x -12/29) 1/2)) 2)
(*.f64 2 (+.f64 x (*.f64 1/2 (+.f64 -12/29 x))))
(*.f64 1/4 (*.f64 (+.f64 -12/29 (*.f64 x 3)) 4))
(+.f64 -12/29 (*.f64 3 x))
(*.f64 (*.f64 (+.f64 -12/29 (*.f64 x 3)) 1/4) 4)
(+.f64 -12/29 (*.f64 3 x))
(/.f64 (+.f64 -12/29 (*.f64 x 3)) 1)
(+.f64 -12/29 (*.f64 3 x))
(/.f64 (+.f64 -12/29 (+.f64 -12/29 (*.f64 x 6))) 2)
(/.f64 (+.f64 (*.f64 x 6) -24/29) 2)
(/.f64 (+.f64 -24/29 (*.f64 x 6)) 2)
(/.f64 (*.f64 (+.f64 -12/29 (*.f64 x 3)) 4) 4)
(+.f64 -12/29 (*.f64 3 x))
(/.f64 (*.f64 (+.f64 -12/29 (*.f64 x 3)) 8) 8)
(+.f64 -12/29 (*.f64 3 x))
(/.f64 (*.f64 2 (*.f64 (+.f64 -12/29 (*.f64 x 3)) 8)) 16)
(+.f64 -12/29 (*.f64 3 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -12/29 (*.f64 x 3)) 8))) 32)
(+.f64 -12/29 (*.f64 3 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -12/29 (*.f64 x 3)) 8)))) 64)
(+.f64 -12/29 (*.f64 3 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -12/29 (*.f64 x 3)) 8))))) 128)
(+.f64 -12/29 (*.f64 3 x))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -12/29 (*.f64 x 3)) 8))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -12/29 (*.f64 x 3)) 8)))))) 256)
(+.f64 -12/29 (*.f64 3 x))
(pow.f64 (+.f64 -12/29 (*.f64 x 3)) 1)
(+.f64 -12/29 (*.f64 3 x))

eval186.0ms (1.3%)

Compiler

Compiled 2706 to 2019 computations (25.4% saved)

prune37.0ms (0.2%)

Pruning

11 alts after pruning (5 fresh and 6 done)

PrunedKeptTotal
New2302232
Fresh033
Picked011
Done055
Total23011241
Error
0.0b
Counts
241 → 11
Alt Table
Click to see full alt table
StatusErrorProgram
0.2b
(*.f64 (-.f64 (*.f64 3 x) 12/29) y)
0.2b
(*.f64 (-.f64 x 4/29) (*.f64 3 y))
0.2b
(*.f64 (+.f64 x (+.f64 x (+.f64 x -12/29))) y)
24.2b
(*.f64 (+.f64 x -12/29) y)
34.7b
(*.f64 (*.f64 x 3) y)
0.2b
(*.f64 (*.f64 1/2 (+.f64 x (+.f64 (+.f64 x -24/29) (*.f64 x 4)))) y)
34.7b
(*.f64 x (*.f64 3 y))
0.3b
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
34.8b
(*.f64 3 (*.f64 y x))
28.3b
(*.f64 -4/29 (*.f64 3 y))
28.2b
(*.f64 -12/29 y)
Compiler

Compiled 138 to 103 computations (25.4% saved)

localize81.0ms (0.5%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (+.f64 x -24/29) (*.f64 x 4))
0.2b
(*.f64 (*.f64 1/2 (+.f64 x (+.f64 (+.f64 x -24/29) (*.f64 x 4)))) y)
0.2b
(+.f64 x (+.f64 (+.f64 x -24/29) (*.f64 x 4)))
Compiler

Compiled 53 to 37 computations (30.2% saved)

series4.0ms (0%)

Counts
3 → 48
Calls

12 calls:

TimeVariablePointExpression
1.0ms
y
@0
(*.f64 (*.f64 1/2 (+.f64 x (+.f64 (+.f64 x -24/29) (*.f64 x 4)))) y)
1.0ms
y
@inf
(*.f64 (*.f64 1/2 (+.f64 x (+.f64 (+.f64 x -24/29) (*.f64 x 4)))) y)
0.0ms
x
@0
(*.f64 (*.f64 1/2 (+.f64 x (+.f64 (+.f64 x -24/29) (*.f64 x 4)))) y)
0.0ms
x
@-inf
(*.f64 (*.f64 1/2 (+.f64 x (+.f64 (+.f64 x -24/29) (*.f64 x 4)))) y)
0.0ms
x
@inf
(*.f64 (*.f64 1/2 (+.f64 x (+.f64 (+.f64 x -24/29) (*.f64 x 4)))) y)

rewrite141.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
1584×rational.json-1
1508×rational.json-2
1508×rational.json-3
1494×rational.json-simplify-35
1458×exponential.json-3
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01381
18863
218063
340651
489751
5203251
6355951
7530051
8670051
9797851
Stop Event
node limit
Counts
3 → 58
Calls
Call 1
Inputs
(+.f64 x (+.f64 (+.f64 x -24/29) (*.f64 x 4)))
(*.f64 (*.f64 1/2 (+.f64 x (+.f64 (+.f64 x -24/29) (*.f64 x 4)))) y)
(+.f64 (+.f64 x -24/29) (*.f64 x 4))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 -24/29 (*.f64 x 6)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (+.f64 -24/29 (*.f64 x 6)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 -24/29 (*.f64 x 6)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 -24/29 (*.f64 x 6)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (+.f64 x (+.f64 x -48/29)) (*.f64 x 10)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (+.f64 -24/29 (+.f64 -24/29 (*.f64 x 10))) (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 -24/29 (*.f64 x 6)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 -24/29 (*.f64 x 6)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 -24/29 (*.f64 x 6)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 -24/29 (*.f64 x 6)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 4 (+.f64 -24/29 (*.f64 x 6))) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 4 (+.f64 -24/29 (*.f64 x 6))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 -24/29 (*.f64 x 6)) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 -24/29 (*.f64 x 6)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 -24/29 (*.f64 x 6)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 4 (+.f64 -24/29 (*.f64 x 6))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 -24/29 (*.f64 x 6)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 -24/29 (*.f64 x 6)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -24/29 (*.f64 x 6)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -24/29 (*.f64 x 6)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -24/29 (*.f64 x 6)) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 -24/29 (*.f64 x 6)) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 -24/29 (*.f64 x 6)) (*.f64 1/2 y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (+.f64 -24/29 (*.f64 x 6)) (*.f64 1/2 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 -24/29 (*.f64 x 6)) (/.f64 y 4)) (*.f64 (+.f64 -24/29 (*.f64 x 6)) (/.f64 y 4)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 y 1/4) (+.f64 -24/29 (*.f64 x 6))) (*.f64 (*.f64 y 1/4) (+.f64 -24/29 (*.f64 x 6))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (+.f64 -24/29 (*.f64 x 6)) (*.f64 1/2 y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 -24/29 (*.f64 x 6)) (*.f64 1/2 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 -24/29 (*.f64 x 6)) y) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 -24/29 (*.f64 x 6)) (+.f64 y y)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 4 (*.f64 (+.f64 -24/29 (*.f64 x 6)) y)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 -24/29 (*.f64 x 6)) (*.f64 y 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 16 (*.f64 (+.f64 -24/29 (*.f64 x 6)) y)) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 16 (*.f64 (+.f64 -24/29 (*.f64 x 6)) y))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 16 (*.f64 (+.f64 -24/29 (*.f64 x 6)) y)))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (+.f64 -24/29 (*.f64 x 6)) (*.f64 1/2 y)) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 -24/29 (*.f64 x 5)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 -24/29 (*.f64 x 5)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (+.f64 x (/.f64 (+.f64 x -24/29) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 -24/29 (*.f64 x 5)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 -24/29 (+.f64 -24/29 (*.f64 x 10))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (+.f64 x (+.f64 x -48/29)) (*.f64 x 8)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 -24/29 (*.f64 x 5)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 -24/29 (*.f64 x 5)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 -24/29 (+.f64 -24/29 (*.f64 x 10))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 4 (+.f64 -24/29 (*.f64 x 5))) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 4 (+.f64 -24/29 (*.f64 x 5))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 -24/29 (*.f64 x 5)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 -24/29 (*.f64 x 5)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 -24/29 (*.f64 x 5)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 -24/29 (+.f64 -24/29 (*.f64 x 10))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 4 (+.f64 -24/29 (*.f64 x 5))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 -24/29 (*.f64 x 5)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 -24/29 (*.f64 x 5)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -24/29 (*.f64 x 5)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -24/29 (*.f64 x 5)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -24/29 (*.f64 x 5)) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 -24/29 (*.f64 x 5)) 1)))))

simplify585.0ms (3.9%)

Algorithm
egg-herbie
Rules
3212×rational.json-simplify-53
3104×rational.json-simplify-2
2008×rational.json-simplify-35
1414×rational.json-simplify-51
976×rational.json-simplify-1
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01441984
13221762
29731762
319351762
441261762
548371762
649341762
750141762
850871762
951601762
1064911762
1167751762
1268481762
1369211762
1469941762
1570671762
1671401762
1771401762
1871401762
Stop Event
node limit
Counts
106 → 94
Calls
Call 1
Inputs
-24/29
(-.f64 (*.f64 6 x) 24/29)
(-.f64 (*.f64 6 x) 24/29)
(-.f64 (*.f64 6 x) 24/29)
(*.f64 6 x)
(-.f64 (*.f64 6 x) 24/29)
(-.f64 (*.f64 6 x) 24/29)
(-.f64 (*.f64 6 x) 24/29)
(*.f64 6 x)
(-.f64 (*.f64 6 x) 24/29)
(-.f64 (*.f64 6 x) 24/29)
(-.f64 (*.f64 6 x) 24/29)
(*.f64 -12/29 y)
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(*.f64 3 (*.f64 y x))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(*.f64 3 (*.f64 y x))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(*.f64 1/2 (*.f64 y (-.f64 (+.f64 (*.f64 2 x) (*.f64 4 x)) 24/29)))
(*.f64 1/2 (*.f64 y (-.f64 (+.f64 (*.f64 2 x) (*.f64 4 x)) 24/29)))
(*.f64 1/2 (*.f64 y (-.f64 (+.f64 (*.f64 2 x) (*.f64 4 x)) 24/29)))
(*.f64 1/2 (*.f64 y (-.f64 (+.f64 (*.f64 2 x) (*.f64 4 x)) 24/29)))
(*.f64 1/2 (*.f64 y (-.f64 (+.f64 (*.f64 2 x) (*.f64 4 x)) 24/29)))
(*.f64 1/2 (*.f64 y (-.f64 (+.f64 (*.f64 2 x) (*.f64 4 x)) 24/29)))
(*.f64 1/2 (*.f64 y (-.f64 (+.f64 (*.f64 2 x) (*.f64 4 x)) 24/29)))
(*.f64 1/2 (*.f64 y (-.f64 (+.f64 (*.f64 2 x) (*.f64 4 x)) 24/29)))
(*.f64 1/2 (*.f64 y (-.f64 (+.f64 (*.f64 2 x) (*.f64 4 x)) 24/29)))
(*.f64 1/2 (*.f64 y (-.f64 (+.f64 (*.f64 2 x) (*.f64 4 x)) 24/29)))
(*.f64 1/2 (*.f64 y (-.f64 (+.f64 (*.f64 2 x) (*.f64 4 x)) 24/29)))
(*.f64 1/2 (*.f64 y (-.f64 (+.f64 (*.f64 2 x) (*.f64 4 x)) 24/29)))
-24/29
(-.f64 (*.f64 5 x) 24/29)
(-.f64 (*.f64 5 x) 24/29)
(-.f64 (*.f64 5 x) 24/29)
(*.f64 5 x)
(-.f64 (*.f64 5 x) 24/29)
(-.f64 (*.f64 5 x) 24/29)
(-.f64 (*.f64 5 x) 24/29)
(*.f64 5 x)
(-.f64 (*.f64 5 x) 24/29)
(-.f64 (*.f64 5 x) 24/29)
(-.f64 (*.f64 5 x) 24/29)
(-.f64 (+.f64 -24/29 (*.f64 x 6)) 0)
(*.f64 4 (*.f64 (+.f64 -24/29 (*.f64 x 6)) 1/4))
(*.f64 (+.f64 -24/29 (*.f64 x 6)) 1)
(*.f64 1/2 (*.f64 (+.f64 -24/29 (*.f64 x 6)) 2))
(*.f64 1/2 (+.f64 (+.f64 x (+.f64 x -48/29)) (*.f64 x 10)))
(*.f64 1/2 (+.f64 (+.f64 -24/29 (+.f64 -24/29 (*.f64 x 10))) (+.f64 x x)))
(*.f64 (*.f64 (+.f64 -24/29 (*.f64 x 6)) 1/2) 2)
(*.f64 1 (+.f64 -24/29 (*.f64 x 6)))
(*.f64 2 (*.f64 (+.f64 -24/29 (*.f64 x 6)) 1/2))
(*.f64 (*.f64 (+.f64 -24/29 (*.f64 x 6)) 2) 1/2)
(*.f64 (*.f64 4 (+.f64 -24/29 (*.f64 x 6))) 1/4)
(*.f64 1/4 (*.f64 4 (+.f64 -24/29 (*.f64 x 6))))
(*.f64 (*.f64 (+.f64 -24/29 (*.f64 x 6)) 1/4) 4)
(/.f64 (+.f64 -24/29 (*.f64 x 6)) 1)
(/.f64 (*.f64 (+.f64 -24/29 (*.f64 x 6)) 2) 2)
(/.f64 (*.f64 4 (+.f64 -24/29 (*.f64 x 6))) 4)
(/.f64 (*.f64 (+.f64 -24/29 (*.f64 x 6)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 -24/29 (*.f64 x 6)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -24/29 (*.f64 x 6)) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -24/29 (*.f64 x 6)) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -24/29 (*.f64 x 6)) 8))))) 128)
(pow.f64 (+.f64 -24/29 (*.f64 x 6)) 1)
(+.f64 (*.f64 (+.f64 -24/29 (*.f64 x 6)) (*.f64 1/2 y)) 0)
(+.f64 0 (*.f64 (+.f64 -24/29 (*.f64 x 6)) (*.f64 1/2 y)))
(+.f64 (*.f64 (+.f64 -24/29 (*.f64 x 6)) (/.f64 y 4)) (*.f64 (+.f64 -24/29 (*.f64 x 6)) (/.f64 y 4)))
(+.f64 (*.f64 (*.f64 y 1/4) (+.f64 -24/29 (*.f64 x 6))) (*.f64 (*.f64 y 1/4) (+.f64 -24/29 (*.f64 x 6))))
(-.f64 (*.f64 (+.f64 -24/29 (*.f64 x 6)) (*.f64 1/2 y)) 0)
(/.f64 (*.f64 (+.f64 -24/29 (*.f64 x 6)) (*.f64 1/2 y)) 1)
(/.f64 (*.f64 (+.f64 -24/29 (*.f64 x 6)) y) 2)
(/.f64 (*.f64 (+.f64 -24/29 (*.f64 x 6)) (+.f64 y y)) 4)
(/.f64 (*.f64 4 (*.f64 (+.f64 -24/29 (*.f64 x 6)) y)) 8)
(/.f64 (*.f64 (+.f64 -24/29 (*.f64 x 6)) (*.f64 y 8)) 16)
(/.f64 (*.f64 16 (*.f64 (+.f64 -24/29 (*.f64 x 6)) y)) 32)
(/.f64 (*.f64 2 (*.f64 16 (*.f64 (+.f64 -24/29 (*.f64 x 6)) y))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 16 (*.f64 (+.f64 -24/29 (*.f64 x 6)) y)))) 128)
(pow.f64 (*.f64 (+.f64 -24/29 (*.f64 x 6)) (*.f64 1/2 y)) 1)
(-.f64 (+.f64 -24/29 (*.f64 x 5)) 0)
(*.f64 4 (/.f64 (+.f64 -24/29 (*.f64 x 5)) 4))
(*.f64 4 (+.f64 x (/.f64 (+.f64 x -24/29) 4)))
(*.f64 (+.f64 -24/29 (*.f64 x 5)) 1)
(*.f64 1/2 (+.f64 -24/29 (+.f64 -24/29 (*.f64 x 10))))
(*.f64 1/2 (+.f64 (+.f64 x (+.f64 x -48/29)) (*.f64 x 8)))
(*.f64 1 (+.f64 -24/29 (*.f64 x 5)))
(*.f64 2 (*.f64 (+.f64 -24/29 (*.f64 x 5)) 1/2))
(*.f64 (+.f64 -24/29 (+.f64 -24/29 (*.f64 x 10))) 1/2)
(*.f64 (*.f64 4 (+.f64 -24/29 (*.f64 x 5))) 1/4)
(*.f64 1/4 (*.f64 4 (+.f64 -24/29 (*.f64 x 5))))
(*.f64 (*.f64 (+.f64 -24/29 (*.f64 x 5)) 1/2) 2)
(*.f64 (/.f64 (+.f64 -24/29 (*.f64 x 5)) 4) 4)
(/.f64 (+.f64 -24/29 (*.f64 x 5)) 1)
(/.f64 (+.f64 -24/29 (+.f64 -24/29 (*.f64 x 10))) 2)
(/.f64 (*.f64 4 (+.f64 -24/29 (*.f64 x 5))) 4)
(/.f64 (*.f64 (+.f64 -24/29 (*.f64 x 5)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 -24/29 (*.f64 x 5)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -24/29 (*.f64 x 5)) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -24/29 (*.f64 x 5)) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -24/29 (*.f64 x 5)) 8))))) 128)
(pow.f64 (+.f64 -24/29 (*.f64 x 5)) 1)
Outputs
-24/29
(-.f64 (*.f64 6 x) 24/29)
(-.f64 (*.f64 6 x) 24/29)
(-.f64 (*.f64 6 x) 24/29)
(*.f64 6 x)
(-.f64 (*.f64 6 x) 24/29)
(-.f64 (*.f64 6 x) 24/29)
(-.f64 (*.f64 6 x) 24/29)
(*.f64 6 x)
(-.f64 (*.f64 6 x) 24/29)
(-.f64 (*.f64 6 x) 24/29)
(-.f64 (*.f64 6 x) 24/29)
(*.f64 -12/29 y)
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 x 3)))
(*.f64 y (+.f64 -12/29 (*.f64 x 3)))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 x 3)))
(*.f64 y (+.f64 -12/29 (*.f64 x 3)))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 x 3)))
(*.f64 y (+.f64 -12/29 (*.f64 x 3)))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 x 3))
(*.f64 x (*.f64 3 y))
(*.f64 x (*.f64 y 3))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 x 3)))
(*.f64 y (+.f64 -12/29 (*.f64 x 3)))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 x 3)))
(*.f64 y (+.f64 -12/29 (*.f64 x 3)))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 x 3)))
(*.f64 y (+.f64 -12/29 (*.f64 x 3)))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 x 3))
(*.f64 x (*.f64 3 y))
(*.f64 x (*.f64 y 3))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 x 3)))
(*.f64 y (+.f64 -12/29 (*.f64 x 3)))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 x 3)))
(*.f64 y (+.f64 -12/29 (*.f64 x 3)))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 x 3)))
(*.f64 y (+.f64 -12/29 (*.f64 x 3)))
(*.f64 1/2 (*.f64 y (-.f64 (+.f64 (*.f64 2 x) (*.f64 4 x)) 24/29)))
(*.f64 y (*.f64 (+.f64 (*.f64 x 4) (-.f64 (*.f64 x 2) 24/29)) 1/2))
(*.f64 1/2 (*.f64 y (-.f64 (*.f64 6 x) 24/29)))
(*.f64 (-.f64 (*.f64 6 x) 24/29) (*.f64 y 1/2))
(*.f64 y (*.f64 1/2 (-.f64 (*.f64 6 x) 24/29)))
(*.f64 1/2 (*.f64 y (-.f64 (+.f64 (*.f64 2 x) (*.f64 4 x)) 24/29)))
(*.f64 y (*.f64 (+.f64 (*.f64 x 4) (-.f64 (*.f64 x 2) 24/29)) 1/2))
(*.f64 1/2 (*.f64 y (-.f64 (*.f64 6 x) 24/29)))
(*.f64 (-.f64 (*.f64 6 x) 24/29) (*.f64 y 1/2))
(*.f64 y (*.f64 1/2 (-.f64 (*.f64 6 x) 24/29)))
(*.f64 1/2 (*.f64 y (-.f64 (+.f64 (*.f64 2 x) (*.f64 4 x)) 24/29)))
(*.f64 y (*.f64 (+.f64 (*.f64 x 4) (-.f64 (*.f64 x 2) 24/29)) 1/2))
(*.f64 1/2 (*.f64 y (-.f64 (*.f64 6 x) 24/29)))
(*.f64 (-.f64 (*.f64 6 x) 24/29) (*.f64 y 1/2))
(*.f64 y (*.f64 1/2 (-.f64 (*.f64 6 x) 24/29)))
(*.f64 1/2 (*.f64 y (-.f64 (+.f64 (*.f64 2 x) (*.f64 4 x)) 24/29)))
(*.f64 y (*.f64 (+.f64 (*.f64 x 4) (-.f64 (*.f64 x 2) 24/29)) 1/2))
(*.f64 1/2 (*.f64 y (-.f64 (*.f64 6 x) 24/29)))
(*.f64 (-.f64 (*.f64 6 x) 24/29) (*.f64 y 1/2))
(*.f64 y (*.f64 1/2 (-.f64 (*.f64 6 x) 24/29)))
(*.f64 1/2 (*.f64 y (-.f64 (+.f64 (*.f64 2 x) (*.f64 4 x)) 24/29)))
(*.f64 y (*.f64 (+.f64 (*.f64 x 4) (-.f64 (*.f64 x 2) 24/29)) 1/2))
(*.f64 1/2 (*.f64 y (-.f64 (*.f64 6 x) 24/29)))
(*.f64 (-.f64 (*.f64 6 x) 24/29) (*.f64 y 1/2))
(*.f64 y (*.f64 1/2 (-.f64 (*.f64 6 x) 24/29)))
(*.f64 1/2 (*.f64 y (-.f64 (+.f64 (*.f64 2 x) (*.f64 4 x)) 24/29)))
(*.f64 y (*.f64 (+.f64 (*.f64 x 4) (-.f64 (*.f64 x 2) 24/29)) 1/2))
(*.f64 1/2 (*.f64 y (-.f64 (*.f64 6 x) 24/29)))
(*.f64 (-.f64 (*.f64 6 x) 24/29) (*.f64 y 1/2))
(*.f64 y (*.f64 1/2 (-.f64 (*.f64 6 x) 24/29)))
(*.f64 1/2 (*.f64 y (-.f64 (+.f64 (*.f64 2 x) (*.f64 4 x)) 24/29)))
(*.f64 y (*.f64 (+.f64 (*.f64 x 4) (-.f64 (*.f64 x 2) 24/29)) 1/2))
(*.f64 1/2 (*.f64 y (-.f64 (*.f64 6 x) 24/29)))
(*.f64 (-.f64 (*.f64 6 x) 24/29) (*.f64 y 1/2))
(*.f64 y (*.f64 1/2 (-.f64 (*.f64 6 x) 24/29)))
(*.f64 1/2 (*.f64 y (-.f64 (+.f64 (*.f64 2 x) (*.f64 4 x)) 24/29)))
(*.f64 y (*.f64 (+.f64 (*.f64 x 4) (-.f64 (*.f64 x 2) 24/29)) 1/2))
(*.f64 1/2 (*.f64 y (-.f64 (*.f64 6 x) 24/29)))
(*.f64 (-.f64 (*.f64 6 x) 24/29) (*.f64 y 1/2))
(*.f64 y (*.f64 1/2 (-.f64 (*.f64 6 x) 24/29)))
(*.f64 1/2 (*.f64 y (-.f64 (+.f64 (*.f64 2 x) (*.f64 4 x)) 24/29)))
(*.f64 y (*.f64 (+.f64 (*.f64 x 4) (-.f64 (*.f64 x 2) 24/29)) 1/2))
(*.f64 1/2 (*.f64 y (-.f64 (*.f64 6 x) 24/29)))
(*.f64 (-.f64 (*.f64 6 x) 24/29) (*.f64 y 1/2))
(*.f64 y (*.f64 1/2 (-.f64 (*.f64 6 x) 24/29)))
(*.f64 1/2 (*.f64 y (-.f64 (+.f64 (*.f64 2 x) (*.f64 4 x)) 24/29)))
(*.f64 y (*.f64 (+.f64 (*.f64 x 4) (-.f64 (*.f64 x 2) 24/29)) 1/2))
(*.f64 1/2 (*.f64 y (-.f64 (*.f64 6 x) 24/29)))
(*.f64 (-.f64 (*.f64 6 x) 24/29) (*.f64 y 1/2))
(*.f64 y (*.f64 1/2 (-.f64 (*.f64 6 x) 24/29)))
(*.f64 1/2 (*.f64 y (-.f64 (+.f64 (*.f64 2 x) (*.f64 4 x)) 24/29)))
(*.f64 y (*.f64 (+.f64 (*.f64 x 4) (-.f64 (*.f64 x 2) 24/29)) 1/2))
(*.f64 1/2 (*.f64 y (-.f64 (*.f64 6 x) 24/29)))
(*.f64 (-.f64 (*.f64 6 x) 24/29) (*.f64 y 1/2))
(*.f64 y (*.f64 1/2 (-.f64 (*.f64 6 x) 24/29)))
(*.f64 1/2 (*.f64 y (-.f64 (+.f64 (*.f64 2 x) (*.f64 4 x)) 24/29)))
(*.f64 y (*.f64 (+.f64 (*.f64 x 4) (-.f64 (*.f64 x 2) 24/29)) 1/2))
(*.f64 1/2 (*.f64 y (-.f64 (*.f64 6 x) 24/29)))
(*.f64 (-.f64 (*.f64 6 x) 24/29) (*.f64 y 1/2))
(*.f64 y (*.f64 1/2 (-.f64 (*.f64 6 x) 24/29)))
-24/29
(-.f64 (*.f64 5 x) 24/29)
(-.f64 (*.f64 x 5) 24/29)
(-.f64 (*.f64 5 x) 24/29)
(-.f64 (*.f64 x 5) 24/29)
(-.f64 (*.f64 5 x) 24/29)
(-.f64 (*.f64 x 5) 24/29)
(*.f64 5 x)
(*.f64 x 5)
(-.f64 (*.f64 5 x) 24/29)
(-.f64 (*.f64 x 5) 24/29)
(-.f64 (*.f64 5 x) 24/29)
(-.f64 (*.f64 x 5) 24/29)
(-.f64 (*.f64 5 x) 24/29)
(-.f64 (*.f64 x 5) 24/29)
(*.f64 5 x)
(*.f64 x 5)
(-.f64 (*.f64 5 x) 24/29)
(-.f64 (*.f64 x 5) 24/29)
(-.f64 (*.f64 5 x) 24/29)
(-.f64 (*.f64 x 5) 24/29)
(-.f64 (*.f64 5 x) 24/29)
(-.f64 (*.f64 x 5) 24/29)
(-.f64 (+.f64 -24/29 (*.f64 x 6)) 0)
(+.f64 -24/29 (*.f64 6 x))
(*.f64 4 (*.f64 (+.f64 -24/29 (*.f64 x 6)) 1/4))
(+.f64 -24/29 (*.f64 6 x))
(*.f64 (+.f64 -24/29 (*.f64 x 6)) 1)
(+.f64 -24/29 (*.f64 6 x))
(*.f64 1/2 (*.f64 (+.f64 -24/29 (*.f64 x 6)) 2))
(+.f64 -24/29 (*.f64 6 x))
(*.f64 1/2 (+.f64 (+.f64 x (+.f64 x -48/29)) (*.f64 x 10)))
(*.f64 1/2 (+.f64 x (+.f64 (+.f64 x -48/29) (*.f64 x 10))))
(*.f64 1/2 (+.f64 -48/29 (+.f64 (+.f64 x x) (*.f64 x 10))))
(*.f64 1/2 (+.f64 -48/29 (+.f64 (*.f64 x 10) (+.f64 x x))))
(*.f64 1/2 (+.f64 (+.f64 -24/29 (+.f64 -24/29 (*.f64 x 10))) (+.f64 x x)))
(*.f64 1/2 (+.f64 (+.f64 x (+.f64 x -48/29)) (*.f64 x 10)))
(*.f64 1/2 (+.f64 x (+.f64 (+.f64 x -48/29) (*.f64 x 10))))
(*.f64 1/2 (+.f64 -48/29 (+.f64 (+.f64 x x) (*.f64 x 10))))
(*.f64 1/2 (+.f64 -48/29 (+.f64 (*.f64 x 10) (+.f64 x x))))
(*.f64 (*.f64 (+.f64 -24/29 (*.f64 x 6)) 1/2) 2)
(+.f64 -24/29 (*.f64 6 x))
(*.f64 1 (+.f64 -24/29 (*.f64 x 6)))
(+.f64 -24/29 (*.f64 6 x))
(*.f64 2 (*.f64 (+.f64 -24/29 (*.f64 x 6)) 1/2))
(+.f64 -24/29 (*.f64 6 x))
(*.f64 (*.f64 (+.f64 -24/29 (*.f64 x 6)) 2) 1/2)
(+.f64 -24/29 (*.f64 6 x))
(*.f64 (*.f64 4 (+.f64 -24/29 (*.f64 x 6))) 1/4)
(+.f64 -24/29 (*.f64 6 x))
(*.f64 1/4 (*.f64 4 (+.f64 -24/29 (*.f64 x 6))))
(+.f64 -24/29 (*.f64 6 x))
(*.f64 (*.f64 (+.f64 -24/29 (*.f64 x 6)) 1/4) 4)
(+.f64 -24/29 (*.f64 6 x))
(/.f64 (+.f64 -24/29 (*.f64 x 6)) 1)
(+.f64 -24/29 (*.f64 6 x))
(/.f64 (*.f64 (+.f64 -24/29 (*.f64 x 6)) 2) 2)
(+.f64 -24/29 (*.f64 6 x))
(/.f64 (*.f64 4 (+.f64 -24/29 (*.f64 x 6))) 4)
(+.f64 -24/29 (*.f64 6 x))
(/.f64 (*.f64 (+.f64 -24/29 (*.f64 x 6)) 8) 8)
(+.f64 -24/29 (*.f64 6 x))
(/.f64 (*.f64 2 (*.f64 (+.f64 -24/29 (*.f64 x 6)) 8)) 16)
(+.f64 -24/29 (*.f64 6 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -24/29 (*.f64 x 6)) 8))) 32)
(+.f64 -24/29 (*.f64 6 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -24/29 (*.f64 x 6)) 8)))) 64)
(+.f64 -24/29 (*.f64 6 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -24/29 (*.f64 x 6)) 8))))) 128)
(+.f64 -24/29 (*.f64 6 x))
(pow.f64 (+.f64 -24/29 (*.f64 x 6)) 1)
(+.f64 -24/29 (*.f64 6 x))
(+.f64 (*.f64 (+.f64 -24/29 (*.f64 x 6)) (*.f64 1/2 y)) 0)
(*.f64 1/2 (*.f64 y (+.f64 -24/29 (*.f64 6 x))))
(*.f64 y (*.f64 1/2 (+.f64 -24/29 (*.f64 6 x))))
(+.f64 0 (*.f64 (+.f64 -24/29 (*.f64 x 6)) (*.f64 1/2 y)))
(*.f64 1/2 (*.f64 y (+.f64 -24/29 (*.f64 6 x))))
(*.f64 y (*.f64 1/2 (+.f64 -24/29 (*.f64 6 x))))
(+.f64 (*.f64 (+.f64 -24/29 (*.f64 x 6)) (/.f64 y 4)) (*.f64 (+.f64 -24/29 (*.f64 x 6)) (/.f64 y 4)))
(+.f64 (*.f64 (+.f64 -24/29 (*.f64 6 x)) (/.f64 y 4)) (*.f64 (+.f64 -24/29 (*.f64 6 x)) (/.f64 y 4)))
(*.f64 (/.f64 y 4) (*.f64 2 (+.f64 -24/29 (*.f64 6 x))))
(*.f64 (*.f64 2 (+.f64 -24/29 (*.f64 6 x))) (/.f64 y 4))
(*.f64 2 (*.f64 (+.f64 -24/29 (*.f64 6 x)) (/.f64 y 4)))
(+.f64 (*.f64 (*.f64 y 1/4) (+.f64 -24/29 (*.f64 x 6))) (*.f64 (*.f64 y 1/4) (+.f64 -24/29 (*.f64 x 6))))
(*.f64 1/2 (*.f64 y (+.f64 -24/29 (*.f64 6 x))))
(*.f64 y (*.f64 1/2 (+.f64 -24/29 (*.f64 6 x))))
(-.f64 (*.f64 (+.f64 -24/29 (*.f64 x 6)) (*.f64 1/2 y)) 0)
(*.f64 1/2 (*.f64 y (+.f64 -24/29 (*.f64 6 x))))
(*.f64 y (*.f64 1/2 (+.f64 -24/29 (*.f64 6 x))))
(/.f64 (*.f64 (+.f64 -24/29 (*.f64 x 6)) (*.f64 1/2 y)) 1)
(*.f64 1/2 (*.f64 y (+.f64 -24/29 (*.f64 6 x))))
(*.f64 y (*.f64 1/2 (+.f64 -24/29 (*.f64 6 x))))
(/.f64 (*.f64 (+.f64 -24/29 (*.f64 x 6)) y) 2)
(*.f64 1/2 (*.f64 y (+.f64 -24/29 (*.f64 6 x))))
(*.f64 y (*.f64 1/2 (+.f64 -24/29 (*.f64 6 x))))
(/.f64 (*.f64 (+.f64 -24/29 (*.f64 x 6)) (+.f64 y y)) 4)
(*.f64 1/2 (*.f64 y (+.f64 -24/29 (*.f64 6 x))))
(*.f64 y (*.f64 1/2 (+.f64 -24/29 (*.f64 6 x))))
(/.f64 (*.f64 4 (*.f64 (+.f64 -24/29 (*.f64 x 6)) y)) 8)
(*.f64 1/2 (*.f64 y (+.f64 -24/29 (*.f64 6 x))))
(*.f64 y (*.f64 1/2 (+.f64 -24/29 (*.f64 6 x))))
(/.f64 (*.f64 (+.f64 -24/29 (*.f64 x 6)) (*.f64 y 8)) 16)
(*.f64 1/2 (*.f64 y (+.f64 -24/29 (*.f64 6 x))))
(*.f64 y (*.f64 1/2 (+.f64 -24/29 (*.f64 6 x))))
(/.f64 (*.f64 16 (*.f64 (+.f64 -24/29 (*.f64 x 6)) y)) 32)
(*.f64 1/2 (*.f64 y (+.f64 -24/29 (*.f64 6 x))))
(*.f64 y (*.f64 1/2 (+.f64 -24/29 (*.f64 6 x))))
(/.f64 (*.f64 2 (*.f64 16 (*.f64 (+.f64 -24/29 (*.f64 x 6)) y))) 64)
(*.f64 1/2 (*.f64 y (+.f64 -24/29 (*.f64 6 x))))
(*.f64 y (*.f64 1/2 (+.f64 -24/29 (*.f64 6 x))))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 16 (*.f64 (+.f64 -24/29 (*.f64 x 6)) y)))) 128)
(*.f64 1/2 (*.f64 y (+.f64 -24/29 (*.f64 6 x))))
(*.f64 y (*.f64 1/2 (+.f64 -24/29 (*.f64 6 x))))
(pow.f64 (*.f64 (+.f64 -24/29 (*.f64 x 6)) (*.f64 1/2 y)) 1)
(*.f64 1/2 (*.f64 y (+.f64 -24/29 (*.f64 6 x))))
(*.f64 y (*.f64 1/2 (+.f64 -24/29 (*.f64 6 x))))
(-.f64 (+.f64 -24/29 (*.f64 x 5)) 0)
(+.f64 -24/29 (*.f64 x 5))
(*.f64 4 (/.f64 (+.f64 -24/29 (*.f64 x 5)) 4))
(+.f64 -24/29 (*.f64 x 5))
(*.f64 4 (+.f64 x (/.f64 (+.f64 x -24/29) 4)))
(*.f64 4 (+.f64 x (/.f64 (+.f64 -24/29 x) 4)))
(*.f64 (+.f64 -24/29 (*.f64 x 5)) 1)
(+.f64 -24/29 (*.f64 x 5))
(*.f64 1/2 (+.f64 -24/29 (+.f64 -24/29 (*.f64 x 10))))
(+.f64 -24/29 (*.f64 x 5))
(*.f64 1/2 (+.f64 (+.f64 x (+.f64 x -48/29)) (*.f64 x 8)))
(*.f64 1/2 (+.f64 x (+.f64 (+.f64 x -48/29) (*.f64 x 8))))
(*.f64 1/2 (+.f64 (*.f64 x 8) (+.f64 -48/29 (+.f64 x x))))
(*.f64 1/2 (+.f64 (+.f64 x x) (+.f64 (*.f64 x 8) -48/29)))
(*.f64 1/2 (+.f64 (+.f64 x x) (+.f64 -48/29 (*.f64 x 8))))
(*.f64 1 (+.f64 -24/29 (*.f64 x 5)))
(+.f64 -24/29 (*.f64 x 5))
(*.f64 2 (*.f64 (+.f64 -24/29 (*.f64 x 5)) 1/2))
(+.f64 -24/29 (*.f64 x 5))
(*.f64 (+.f64 -24/29 (+.f64 -24/29 (*.f64 x 10))) 1/2)
(+.f64 -24/29 (*.f64 x 5))
(*.f64 (*.f64 4 (+.f64 -24/29 (*.f64 x 5))) 1/4)
(+.f64 -24/29 (*.f64 x 5))
(*.f64 1/4 (*.f64 4 (+.f64 -24/29 (*.f64 x 5))))
(+.f64 -24/29 (*.f64 x 5))
(*.f64 (*.f64 (+.f64 -24/29 (*.f64 x 5)) 1/2) 2)
(+.f64 -24/29 (*.f64 x 5))
(*.f64 (/.f64 (+.f64 -24/29 (*.f64 x 5)) 4) 4)
(+.f64 -24/29 (*.f64 x 5))
(/.f64 (+.f64 -24/29 (*.f64 x 5)) 1)
(+.f64 -24/29 (*.f64 x 5))
(/.f64 (+.f64 -24/29 (+.f64 -24/29 (*.f64 x 10))) 2)
(+.f64 -24/29 (*.f64 x 5))
(/.f64 (*.f64 4 (+.f64 -24/29 (*.f64 x 5))) 4)
(+.f64 -24/29 (*.f64 x 5))
(/.f64 (*.f64 (+.f64 -24/29 (*.f64 x 5)) 8) 8)
(+.f64 -24/29 (*.f64 x 5))
(/.f64 (*.f64 2 (*.f64 (+.f64 -24/29 (*.f64 x 5)) 8)) 16)
(+.f64 -24/29 (*.f64 x 5))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -24/29 (*.f64 x 5)) 8))) 32)
(+.f64 -24/29 (*.f64 x 5))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -24/29 (*.f64 x 5)) 8)))) 64)
(+.f64 -24/29 (*.f64 x 5))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 -24/29 (*.f64 x 5)) 8))))) 128)
(+.f64 -24/29 (*.f64 x 5))
(pow.f64 (+.f64 -24/29 (*.f64 x 5)) 1)
(+.f64 -24/29 (*.f64 x 5))

localize5.0ms (0%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.3b
(*.f64 -4/29 (*.f64 3 y))
Compiler

Compiled 13 to 10 computations (23.1% saved)

series0.0ms (0%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
0.0ms
y
@0
(*.f64 -4/29 (*.f64 3 y))
0.0ms
y
@inf
(*.f64 -4/29 (*.f64 3 y))
0.0ms
y
@-inf
(*.f64 -4/29 (*.f64 3 y))

rewrite436.0ms (2.9%)

Algorithm
batch-egg-rewrite
Rules
3338×rational.json-simplify-35
2312×rational.json-simplify-2
1152×rational.json-simplify-1
1036×exponential.json-3
1036×rational.json-1
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0713
1487
21117
32227
44017
58787
618897
729557
833667
939257
1045727
1149557
1249557
1353987
1453987
1558197
1665157
1774277
1878107
1978647
2078647
2178647
Stop Event
node limit
Counts
1 → 20
Calls
Call 1
Inputs
(*.f64 -4/29 (*.f64 3 y))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y -12/29) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 y -12/29))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 -4/29 y) (*.f64 y -8/29))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y -8/29) (*.f64 -4/29 y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y -6/29) (*.f64 y -6/29))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y -12/29) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y -12/29) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y -24/29) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y -48/29) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 y -12/29) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 y -12/29) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y -12/29) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y -12/29) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y -12/29) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y -12/29) 8)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y -12/29) 8))))))) 512)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y -12/29) 8)))))))) 1024)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y -12/29) 8))))))))) 2048)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y -12/29) 8)))))))))) 4096)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y -12/29) 1)))))

simplify275.0ms (1.9%)

Algorithm
egg-herbie
Rules
2522×rational.json-simplify-2
2308×rational.json-simplify-51
2284×rational.json-simplify-41
2192×rational.json-simplify-35
488×exponential.json-simplify-26
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
060224
1156224
2300224
31045224
42428224
53094224
63414224
73501224
83576224
93651224
107041224
117341224
127426224
137498224
147570224
157642224
Stop Event
node limit
Counts
32 → 21
Calls
Call 1
Inputs
(*.f64 -12/29 y)
(*.f64 -12/29 y)
(*.f64 -12/29 y)
(*.f64 -12/29 y)
(*.f64 -12/29 y)
(*.f64 -12/29 y)
(*.f64 -12/29 y)
(*.f64 -12/29 y)
(*.f64 -12/29 y)
(*.f64 -12/29 y)
(*.f64 -12/29 y)
(*.f64 -12/29 y)
(+.f64 (*.f64 y -12/29) 0)
(+.f64 0 (*.f64 y -12/29))
(+.f64 (*.f64 -4/29 y) (*.f64 y -8/29))
(+.f64 (*.f64 y -8/29) (*.f64 -4/29 y))
(+.f64 (*.f64 y -6/29) (*.f64 y -6/29))
(-.f64 (*.f64 y -12/29) 0)
(/.f64 (*.f64 y -12/29) 1)
(/.f64 (*.f64 y -24/29) 2)
(/.f64 (*.f64 y -48/29) 4)
(/.f64 (*.f64 (*.f64 y -12/29) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 y -12/29) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y -12/29) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y -12/29) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y -12/29) 8))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y -12/29) 8)))))) 256)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y -12/29) 8))))))) 512)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y -12/29) 8)))))))) 1024)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y -12/29) 8))))))))) 2048)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y -12/29) 8)))))))))) 4096)
(pow.f64 (*.f64 y -12/29) 1)
Outputs
(*.f64 -12/29 y)
(*.f64 -12/29 y)
(*.f64 -12/29 y)
(*.f64 -12/29 y)
(*.f64 -12/29 y)
(*.f64 -12/29 y)
(*.f64 -12/29 y)
(*.f64 -12/29 y)
(*.f64 -12/29 y)
(*.f64 -12/29 y)
(*.f64 -12/29 y)
(*.f64 -12/29 y)
(+.f64 (*.f64 y -12/29) 0)
(*.f64 -12/29 y)
(+.f64 0 (*.f64 y -12/29))
(*.f64 -12/29 y)
(+.f64 (*.f64 -4/29 y) (*.f64 y -8/29))
(*.f64 -12/29 y)
(+.f64 (*.f64 y -8/29) (*.f64 -4/29 y))
(*.f64 -12/29 y)
(+.f64 (*.f64 y -6/29) (*.f64 y -6/29))
(*.f64 -12/29 y)
(-.f64 (*.f64 y -12/29) 0)
(*.f64 -12/29 y)
(/.f64 (*.f64 y -12/29) 1)
(*.f64 -12/29 y)
(/.f64 (*.f64 y -24/29) 2)
(*.f64 -12/29 y)
(/.f64 (*.f64 y -48/29) 4)
(*.f64 -12/29 y)
(/.f64 (*.f64 (*.f64 y -12/29) 8) 8)
(*.f64 -12/29 y)
(/.f64 (*.f64 2 (*.f64 (*.f64 y -12/29) 8)) 16)
(*.f64 -12/29 y)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y -12/29) 8))) 32)
(*.f64 -12/29 y)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y -12/29) 8)))) 64)
(*.f64 -12/29 y)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y -12/29) 8))))) 128)
(*.f64 -12/29 y)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y -12/29) 8)))))) 256)
(*.f64 -12/29 y)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y -12/29) 8))))))) 512)
(*.f64 -12/29 y)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y -12/29) 8)))))))) 1024)
(*.f64 -12/29 y)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y -12/29) 8))))))))) 2048)
(*.f64 -12/29 y)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y -12/29) 8)))))))))) 4096)
(*.f64 -12/29 y)
(pow.f64 (*.f64 y -12/29) 1)
(*.f64 -12/29 y)

localize5.0ms (0%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.2b
(*.f64 x (*.f64 3 y))
Compiler

Compiled 13 to 8 computations (38.5% saved)

series3.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

rewrite225.0ms (1.5%)

Algorithm
batch-egg-rewrite
Rules
2642×rational.json-simplify-2
2192×rational.json-simplify-35
1154×rational.json-simplify-1
1056×exponential.json-3
1056×rational.json-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
14813
211413
323913
443313
599113
6219713
7378513
8469313
9558913
10638713
11638713
12724313
13724313
Stop Event
node limit
Counts
1 → 17
Calls
Call 1
Inputs
(*.f64 x (*.f64 3 y))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 3 y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (*.f64 3 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x y) (*.f64 x (+.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (+.f64 y y)) (*.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 y 3/2)) (*.f64 x (*.f64 y 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (*.f64 3 y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 3 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 y 6)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x y) 12) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x y) 24) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 x y) 24)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x y) 24))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x y) 24)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x y) 24))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x y) 24)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x y) 24)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x y) 24))))))) 512)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (*.f64 3 y)) 1)))))

simplify928.0ms (6.2%)

Algorithm
egg-herbie
Rules
5576×rational.json-simplify-35
1958×rational.json-simplify-2
1076×rational.json-simplify-1
780×exponential.json-simplify-26
674×rational.json-simplify-41
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
056533
1136533
2279533
3701533
41912533
53414533
64203533
74694533
84897533
95074533
105247533
115432533
125487533
135570533
145616533
155699533
165928533
176131533
186326533
196496533
206658533
216819533
226980533
237141533
247141533
257302533
267463533
277624533
287785533
297946533
Stop Event
node limit
Counts
41 → 19
Calls
Call 1
Inputs
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(+.f64 (*.f64 x (*.f64 3 y)) 0)
(+.f64 0 (*.f64 x (*.f64 3 y)))
(+.f64 (*.f64 x y) (*.f64 x (+.f64 y y)))
(+.f64 (*.f64 x (+.f64 y y)) (*.f64 x y))
(+.f64 (*.f64 x (*.f64 y 3/2)) (*.f64 x (*.f64 y 3/2)))
(-.f64 (*.f64 x (*.f64 3 y)) 0)
(/.f64 (*.f64 x (*.f64 3 y)) 1)
(/.f64 (*.f64 x (*.f64 y 6)) 2)
(/.f64 (*.f64 (*.f64 x y) 12) 4)
(/.f64 (*.f64 (*.f64 x y) 24) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 x y) 24)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x y) 24))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x y) 24)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x y) 24))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x y) 24)))))) 256)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x y) 24)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x y) 24))))))) 512)
(pow.f64 (*.f64 x (*.f64 3 y)) 1)
Outputs
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(+.f64 (*.f64 x (*.f64 3 y)) 0)
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(+.f64 0 (*.f64 x (*.f64 3 y)))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(+.f64 (*.f64 x y) (*.f64 x (+.f64 y y)))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(+.f64 (*.f64 x (+.f64 y y)) (*.f64 x y))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(+.f64 (*.f64 x (*.f64 y 3/2)) (*.f64 x (*.f64 y 3/2)))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(-.f64 (*.f64 x (*.f64 3 y)) 0)
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(/.f64 (*.f64 x (*.f64 3 y)) 1)
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(/.f64 (*.f64 x (*.f64 y 6)) 2)
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(/.f64 (*.f64 (*.f64 x y) 12) 4)
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(/.f64 (*.f64 (*.f64 x y) 24) 8)
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(/.f64 (*.f64 2 (*.f64 (*.f64 x y) 24)) 16)
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x y) 24))) 32)
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x y) 24)))) 64)
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x y) 24))))) 128)
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x y) 24)))))) 256)
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x y) 24)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x y) 24))))))) 512)
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))
(pow.f64 (*.f64 x (*.f64 3 y)) 1)
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 3 x))

localize6.0ms (0%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(+.f64 x -12/29)
0.1b
(*.f64 (+.f64 x -12/29) y)
Compiler

Compiled 13 to 8 computations (38.5% saved)

series4.0ms (0%)

Counts
1 → 24
Calls

6 calls:

TimeVariablePointExpression
2.0ms
y
@inf
(*.f64 (+.f64 x -12/29) y)
0.0ms
y
@0
(*.f64 (+.f64 x -12/29) y)
0.0ms
x
@-inf
(*.f64 (+.f64 x -12/29) y)
0.0ms
x
@0
(*.f64 (+.f64 x -12/29) y)
0.0ms
y
@-inf
(*.f64 (+.f64 x -12/29) y)

rewrite204.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
2428×rational.json-simplify-35
1494×rational.json-simplify-1
1476×rational.json-simplify-53
1242×exponential.json-3
1242×rational.json-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
14613
29913
320113
436913
582013
6206213
7365413
8476213
9615913
10689813
11689813
12689813
Stop Event
node limit
Counts
1 → 15
Calls
Call 1
Inputs
(*.f64 (+.f64 x -12/29) y)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 x -12/29) y) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (+.f64 x -12/29) y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 x -12/29) (*.f64 y 1/2)) (*.f64 (+.f64 x -12/29) (*.f64 y 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (+.f64 x -12/29) y) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x -12/29) y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x -12/29) (+.f64 y y)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x -12/29) (*.f64 y 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x -12/29) (*.f64 y 8)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 8 (*.f64 (+.f64 x -12/29) (*.f64 y 8)))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 16 (*.f64 (+.f64 x -12/29) y)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x -12/29) (*.f64 8 (*.f64 y 4))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 8 (*.f64 (+.f64 x -12/29) (*.f64 y 8))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 8 (*.f64 (+.f64 x -12/29) (*.f64 y 8))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 8 (*.f64 (+.f64 x -12/29) (*.f64 y 8))))) (*.f64 2 (*.f64 2 (*.f64 8 (*.f64 (+.f64 x -12/29) (*.f64 y 8)))))) 512)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (+.f64 x -12/29) y) 1)))))

simplify423.0ms (2.9%)

Algorithm
egg-herbie
Rules
2660×rational.json-simplify-35
1974×rational.json-simplify-2
1614×rational.json-simplify-1
1608×rational.json-simplify-53
1156×rational.json-simplify-41
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
055489
1142489
2298489
3737489
42397489
54679489
64983489
75178489
85351489
95506489
105508489
116946489
127600489
137684489
147685489
157838489
167991489
Stop Event
node limit
Counts
39 → 20
Calls
Call 1
Inputs
(*.f64 -12/29 y)
(+.f64 (*.f64 y x) (*.f64 -12/29 y))
(+.f64 (*.f64 y x) (*.f64 -12/29 y))
(+.f64 (*.f64 y x) (*.f64 -12/29 y))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 -12/29 y))
(+.f64 (*.f64 y x) (*.f64 -12/29 y))
(+.f64 (*.f64 y x) (*.f64 -12/29 y))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 -12/29 y))
(+.f64 (*.f64 y x) (*.f64 -12/29 y))
(+.f64 (*.f64 y x) (*.f64 -12/29 y))
(*.f64 y (-.f64 x 12/29))
(*.f64 y (-.f64 x 12/29))
(*.f64 y (-.f64 x 12/29))
(*.f64 y (-.f64 x 12/29))
(*.f64 y (-.f64 x 12/29))
(*.f64 y (-.f64 x 12/29))
(*.f64 y (-.f64 x 12/29))
(*.f64 y (-.f64 x 12/29))
(*.f64 y (-.f64 x 12/29))
(*.f64 y (-.f64 x 12/29))
(*.f64 y (-.f64 x 12/29))
(*.f64 y (-.f64 x 12/29))
(+.f64 (*.f64 (+.f64 x -12/29) y) 0)
(+.f64 0 (*.f64 (+.f64 x -12/29) y))
(+.f64 (*.f64 (+.f64 x -12/29) (*.f64 y 1/2)) (*.f64 (+.f64 x -12/29) (*.f64 y 1/2)))
(-.f64 (*.f64 (+.f64 x -12/29) y) 0)
(/.f64 (*.f64 (+.f64 x -12/29) y) 1)
(/.f64 (*.f64 (+.f64 x -12/29) (+.f64 y y)) 2)
(/.f64 (*.f64 (+.f64 x -12/29) (*.f64 y 4)) 4)
(/.f64 (*.f64 (+.f64 x -12/29) (*.f64 y 8)) 8)
(/.f64 (*.f64 2 (*.f64 8 (*.f64 (+.f64 x -12/29) (*.f64 y 8)))) 128)
(/.f64 (*.f64 16 (*.f64 (+.f64 x -12/29) y)) 16)
(/.f64 (*.f64 (+.f64 x -12/29) (*.f64 8 (*.f64 y 4))) 32)
(/.f64 (*.f64 8 (*.f64 (+.f64 x -12/29) (*.f64 y 8))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 8 (*.f64 (+.f64 x -12/29) (*.f64 y 8))))) 256)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 8 (*.f64 (+.f64 x -12/29) (*.f64 y 8))))) (*.f64 2 (*.f64 2 (*.f64 8 (*.f64 (+.f64 x -12/29) (*.f64 y 8)))))) 512)
(pow.f64 (*.f64 (+.f64 x -12/29) y) 1)
Outputs
(*.f64 -12/29 y)
(+.f64 (*.f64 y x) (*.f64 -12/29 y))
(*.f64 y (+.f64 -12/29 x))
(+.f64 (*.f64 y x) (*.f64 -12/29 y))
(*.f64 y (+.f64 -12/29 x))
(+.f64 (*.f64 y x) (*.f64 -12/29 y))
(*.f64 y (+.f64 -12/29 x))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 -12/29 y))
(*.f64 y (+.f64 -12/29 x))
(+.f64 (*.f64 y x) (*.f64 -12/29 y))
(*.f64 y (+.f64 -12/29 x))
(+.f64 (*.f64 y x) (*.f64 -12/29 y))
(*.f64 y (+.f64 -12/29 x))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 -12/29 y))
(*.f64 y (+.f64 -12/29 x))
(+.f64 (*.f64 y x) (*.f64 -12/29 y))
(*.f64 y (+.f64 -12/29 x))
(+.f64 (*.f64 y x) (*.f64 -12/29 y))
(*.f64 y (+.f64 -12/29 x))
(*.f64 y (-.f64 x 12/29))
(*.f64 y (-.f64 x 12/29))
(*.f64 y (-.f64 x 12/29))
(*.f64 y (-.f64 x 12/29))
(*.f64 y (-.f64 x 12/29))
(*.f64 y (-.f64 x 12/29))
(*.f64 y (-.f64 x 12/29))
(*.f64 y (-.f64 x 12/29))
(*.f64 y (-.f64 x 12/29))
(*.f64 y (-.f64 x 12/29))
(*.f64 y (-.f64 x 12/29))
(*.f64 y (-.f64 x 12/29))
(+.f64 (*.f64 (+.f64 x -12/29) y) 0)
(*.f64 y (+.f64 -12/29 x))
(+.f64 0 (*.f64 (+.f64 x -12/29) y))
(*.f64 y (+.f64 -12/29 x))
(+.f64 (*.f64 (+.f64 x -12/29) (*.f64 y 1/2)) (*.f64 (+.f64 x -12/29) (*.f64 y 1/2)))
(*.f64 y (+.f64 -12/29 x))
(-.f64 (*.f64 (+.f64 x -12/29) y) 0)
(*.f64 y (+.f64 -12/29 x))
(/.f64 (*.f64 (+.f64 x -12/29) y) 1)
(*.f64 y (+.f64 -12/29 x))
(/.f64 (*.f64 (+.f64 x -12/29) (+.f64 y y)) 2)
(*.f64 y (+.f64 -12/29 x))
(/.f64 (*.f64 (+.f64 x -12/29) (*.f64 y 4)) 4)
(*.f64 y (+.f64 -12/29 x))
(/.f64 (*.f64 (+.f64 x -12/29) (*.f64 y 8)) 8)
(*.f64 y (+.f64 -12/29 x))
(/.f64 (*.f64 2 (*.f64 8 (*.f64 (+.f64 x -12/29) (*.f64 y 8)))) 128)
(*.f64 y (+.f64 -12/29 x))
(/.f64 (*.f64 16 (*.f64 (+.f64 x -12/29) y)) 16)
(*.f64 y (+.f64 -12/29 x))
(/.f64 (*.f64 (+.f64 x -12/29) (*.f64 8 (*.f64 y 4))) 32)
(*.f64 y (+.f64 -12/29 x))
(/.f64 (*.f64 8 (*.f64 (+.f64 x -12/29) (*.f64 y 8))) 64)
(*.f64 y (+.f64 -12/29 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 8 (*.f64 (+.f64 x -12/29) (*.f64 y 8))))) 256)
(*.f64 y (+.f64 -12/29 x))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 8 (*.f64 (+.f64 x -12/29) (*.f64 y 8))))) (*.f64 2 (*.f64 2 (*.f64 8 (*.f64 (+.f64 x -12/29) (*.f64 y 8)))))) 512)
(*.f64 y (+.f64 -12/29 x))
(pow.f64 (*.f64 (+.f64 x -12/29) y) 1)
(*.f64 y (+.f64 -12/29 x))

localize8.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(-.f64 x 4/29)
0.1b
(*.f64 y (-.f64 x 4/29))
0.3b
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
Compiler

Compiled 21 to 14 computations (33.3% saved)

series1.0ms (0%)

Counts
2 → 24
Calls

12 calls:

TimeVariablePointExpression
0.0ms
y
@-inf
(*.f64 y (-.f64 x 4/29))
0.0ms
x
@-inf
(*.f64 y (-.f64 x 4/29))
0.0ms
y
@inf
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
0.0ms
y
@0
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
0.0ms
x
@inf
(*.f64 3 (*.f64 y (-.f64 x 4/29)))

rewrite217.0ms (1.5%)

Algorithm
batch-egg-rewrite
Rules
2558×rational.json-simplify-35
1400×rational.json-simplify-1
1232×exponential.json-3
1232×rational.json-1
1232×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0932
16032
213032
326832
448832
5111032
6247032
7423632
8521532
9621432
10712532
11712532
12712532
Stop Event
node limit
Counts
2 → 32
Calls
Call 1
Inputs
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 y (-.f64 x 4/29))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x (+.f64 x -8/29))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 3 (*.f64 y (+.f64 x -4/29))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 3 (*.f64 y (+.f64 x -4/29))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (+.f64 x (+.f64 x -8/29))) (*.f64 y (+.f64 x -4/29)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (*.f64 (+.f64 x -4/29) 3/2)) (*.f64 y (*.f64 (+.f64 x -4/29) 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 3 (*.f64 y (+.f64 x -4/29))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 3 (*.f64 y (+.f64 x -4/29))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 (+.f64 x -4/29) 6)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 (+.f64 x -4/29) 12)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 y (*.f64 (+.f64 x -4/29) 12))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (+.f64 x -4/29) 12)))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (+.f64 x -4/29) 12))))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (+.f64 x -4/29) 12)))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (+.f64 x -4/29) 12))))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (+.f64 x -4/29) 12)))))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (+.f64 x -4/29) 12)))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (+.f64 x -4/29) 12))))))))) 512)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 3 (*.f64 y (+.f64 x -4/29))) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (+.f64 x -4/29)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 y (+.f64 x -4/29)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y (*.f64 (+.f64 x -4/29) 1/2)) (*.f64 y (*.f64 (+.f64 x -4/29) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y (+.f64 x -4/29)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (+.f64 x -4/29)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (+.f64 x (+.f64 x -8/29))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 (+.f64 x -4/29) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (+.f64 x -4/29) 8) y) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 (+.f64 x -4/29) 8) y)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 x -4/29) 8) y))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 x -4/29) 8) y)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 x -4/29) 8) y))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 x -4/29) 8) y)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 x -4/29) 8) y)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 x -4/29) 8) y))))))) 512)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y (+.f64 x -4/29)) 1)))))

simplify581.0ms (3.9%)

Algorithm
egg-herbie
Rules
3994×rational.json-simplify-41
3384×rational.json-simplify-35
2068×rational.json-simplify-2
962×exponential.json-simplify-26
928×rational.json-simplify-49
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0921220
12301064
24781064
31044860
42750860
54247860
64640860
74853860
85016860
95177860
105849860
116173860
126173860
136174860
146177860
156330860
166482860
176634860
186786860
196938860
Stop Event
node limit
Counts
56 → 48
Calls
Call 1
Inputs
(*.f64 -12/29 y)
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(*.f64 3 (*.f64 y x))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(*.f64 3 (*.f64 y x))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(*.f64 -4/29 y)
(+.f64 (*.f64 y x) (*.f64 -4/29 y))
(+.f64 (*.f64 y x) (*.f64 -4/29 y))
(+.f64 (*.f64 y x) (*.f64 -4/29 y))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 -4/29 y))
(+.f64 (*.f64 y x) (*.f64 -4/29 y))
(+.f64 (*.f64 y x) (*.f64 -4/29 y))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 -4/29 y))
(+.f64 (*.f64 y x) (*.f64 -4/29 y))
(+.f64 (*.f64 y x) (*.f64 -4/29 y))
(+.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x (+.f64 x -8/29))))
(+.f64 (*.f64 3 (*.f64 y (+.f64 x -4/29))) 0)
(+.f64 0 (*.f64 3 (*.f64 y (+.f64 x -4/29))))
(+.f64 (*.f64 y (+.f64 x (+.f64 x -8/29))) (*.f64 y (+.f64 x -4/29)))
(+.f64 (*.f64 y (*.f64 (+.f64 x -4/29) 3/2)) (*.f64 y (*.f64 (+.f64 x -4/29) 3/2)))
(-.f64 (*.f64 3 (*.f64 y (+.f64 x -4/29))) 0)
(/.f64 (*.f64 3 (*.f64 y (+.f64 x -4/29))) 1)
(/.f64 (*.f64 y (*.f64 (+.f64 x -4/29) 6)) 2)
(/.f64 (*.f64 y (*.f64 (+.f64 x -4/29) 12)) 4)
(/.f64 (*.f64 2 (*.f64 y (*.f64 (+.f64 x -4/29) 12))) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (+.f64 x -4/29) 12)))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (+.f64 x -4/29) 12))))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (+.f64 x -4/29) 12)))))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (+.f64 x -4/29) 12))))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (+.f64 x -4/29) 12)))))))) 256)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (+.f64 x -4/29) 12)))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (+.f64 x -4/29) 12))))))))) 512)
(pow.f64 (*.f64 3 (*.f64 y (+.f64 x -4/29))) 1)
(+.f64 (*.f64 y (+.f64 x -4/29)) 0)
(+.f64 0 (*.f64 y (+.f64 x -4/29)))
(+.f64 (*.f64 y (*.f64 (+.f64 x -4/29) 1/2)) (*.f64 y (*.f64 (+.f64 x -4/29) 1/2)))
(-.f64 (*.f64 y (+.f64 x -4/29)) 0)
(/.f64 (*.f64 y (+.f64 x -4/29)) 1)
(/.f64 (*.f64 y (+.f64 x (+.f64 x -8/29))) 2)
(/.f64 (*.f64 y (*.f64 (+.f64 x -4/29) 4)) 4)
(/.f64 (*.f64 (*.f64 (+.f64 x -4/29) 8) y) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 (+.f64 x -4/29) 8) y)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 x -4/29) 8) y))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 x -4/29) 8) y)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 x -4/29) 8) y))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 x -4/29) 8) y)))))) 256)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 x -4/29) 8) y)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 x -4/29) 8) y))))))) 512)
(pow.f64 (*.f64 y (+.f64 x -4/29)) 1)
Outputs
(*.f64 -12/29 y)
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 x 3)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 x 3)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 x 3)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 x 3))
(*.f64 y (*.f64 3 x))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 x 3)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 x 3)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 x 3)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(*.f64 3 (*.f64 y x))
(*.f64 y (*.f64 x 3))
(*.f64 y (*.f64 3 x))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 x 3)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 x 3)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(+.f64 (*.f64 -12/29 y) (*.f64 y (*.f64 x 3)))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(*.f64 -4/29 y)
(*.f64 y -4/29)
(+.f64 (*.f64 y x) (*.f64 -4/29 y))
(*.f64 y (+.f64 x -4/29))
(+.f64 (*.f64 y x) (*.f64 -4/29 y))
(*.f64 y (+.f64 x -4/29))
(+.f64 (*.f64 y x) (*.f64 -4/29 y))
(*.f64 y (+.f64 x -4/29))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 -4/29 y))
(*.f64 y (+.f64 x -4/29))
(+.f64 (*.f64 y x) (*.f64 -4/29 y))
(*.f64 y (+.f64 x -4/29))
(+.f64 (*.f64 y x) (*.f64 -4/29 y))
(*.f64 y (+.f64 x -4/29))
(*.f64 y x)
(+.f64 (*.f64 y x) (*.f64 -4/29 y))
(*.f64 y (+.f64 x -4/29))
(+.f64 (*.f64 y x) (*.f64 -4/29 y))
(*.f64 y (+.f64 x -4/29))
(+.f64 (*.f64 y x) (*.f64 -4/29 y))
(*.f64 y (+.f64 x -4/29))
(+.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x (+.f64 x -8/29))))
(*.f64 y (+.f64 (+.f64 x (+.f64 x -8/29)) (+.f64 x -4/29)))
(*.f64 y (+.f64 x (+.f64 (+.f64 x -8/29) (+.f64 x -4/29))))
(*.f64 y (*.f64 3 (+.f64 x -4/29)))
(*.f64 (+.f64 x -4/29) (*.f64 y 3))
(+.f64 (*.f64 3 (*.f64 y (+.f64 x -4/29))) 0)
(+.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x (+.f64 x -8/29))))
(*.f64 y (+.f64 (+.f64 x (+.f64 x -8/29)) (+.f64 x -4/29)))
(*.f64 y (+.f64 x (+.f64 (+.f64 x -8/29) (+.f64 x -4/29))))
(*.f64 y (*.f64 3 (+.f64 x -4/29)))
(*.f64 (+.f64 x -4/29) (*.f64 y 3))
(+.f64 0 (*.f64 3 (*.f64 y (+.f64 x -4/29))))
(+.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x (+.f64 x -8/29))))
(*.f64 y (+.f64 (+.f64 x (+.f64 x -8/29)) (+.f64 x -4/29)))
(*.f64 y (+.f64 x (+.f64 (+.f64 x -8/29) (+.f64 x -4/29))))
(*.f64 y (*.f64 3 (+.f64 x -4/29)))
(*.f64 (+.f64 x -4/29) (*.f64 y 3))
(+.f64 (*.f64 y (+.f64 x (+.f64 x -8/29))) (*.f64 y (+.f64 x -4/29)))
(+.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x (+.f64 x -8/29))))
(*.f64 y (+.f64 (+.f64 x (+.f64 x -8/29)) (+.f64 x -4/29)))
(*.f64 y (+.f64 x (+.f64 (+.f64 x -8/29) (+.f64 x -4/29))))
(*.f64 y (*.f64 3 (+.f64 x -4/29)))
(*.f64 (+.f64 x -4/29) (*.f64 y 3))
(+.f64 (*.f64 y (*.f64 (+.f64 x -4/29) 3/2)) (*.f64 y (*.f64 (+.f64 x -4/29) 3/2)))
(+.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x (+.f64 x -8/29))))
(*.f64 y (+.f64 (+.f64 x (+.f64 x -8/29)) (+.f64 x -4/29)))
(*.f64 y (+.f64 x (+.f64 (+.f64 x -8/29) (+.f64 x -4/29))))
(*.f64 y (*.f64 3 (+.f64 x -4/29)))
(*.f64 (+.f64 x -4/29) (*.f64 y 3))
(-.f64 (*.f64 3 (*.f64 y (+.f64 x -4/29))) 0)
(+.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x (+.f64 x -8/29))))
(*.f64 y (+.f64 (+.f64 x (+.f64 x -8/29)) (+.f64 x -4/29)))
(*.f64 y (+.f64 x (+.f64 (+.f64 x -8/29) (+.f64 x -4/29))))
(*.f64 y (*.f64 3 (+.f64 x -4/29)))
(*.f64 (+.f64 x -4/29) (*.f64 y 3))
(/.f64 (*.f64 3 (*.f64 y (+.f64 x -4/29))) 1)
(+.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x (+.f64 x -8/29))))
(*.f64 y (+.f64 (+.f64 x (+.f64 x -8/29)) (+.f64 x -4/29)))
(*.f64 y (+.f64 x (+.f64 (+.f64 x -8/29) (+.f64 x -4/29))))
(*.f64 y (*.f64 3 (+.f64 x -4/29)))
(*.f64 (+.f64 x -4/29) (*.f64 y 3))
(/.f64 (*.f64 y (*.f64 (+.f64 x -4/29) 6)) 2)
(+.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x (+.f64 x -8/29))))
(*.f64 y (+.f64 (+.f64 x (+.f64 x -8/29)) (+.f64 x -4/29)))
(*.f64 y (+.f64 x (+.f64 (+.f64 x -8/29) (+.f64 x -4/29))))
(*.f64 y (*.f64 3 (+.f64 x -4/29)))
(*.f64 (+.f64 x -4/29) (*.f64 y 3))
(/.f64 (*.f64 y (*.f64 (+.f64 x -4/29) 12)) 4)
(+.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x (+.f64 x -8/29))))
(*.f64 y (+.f64 (+.f64 x (+.f64 x -8/29)) (+.f64 x -4/29)))
(*.f64 y (+.f64 x (+.f64 (+.f64 x -8/29) (+.f64 x -4/29))))
(*.f64 y (*.f64 3 (+.f64 x -4/29)))
(*.f64 (+.f64 x -4/29) (*.f64 y 3))
(/.f64 (*.f64 2 (*.f64 y (*.f64 (+.f64 x -4/29) 12))) 8)
(+.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x (+.f64 x -8/29))))
(*.f64 y (+.f64 (+.f64 x (+.f64 x -8/29)) (+.f64 x -4/29)))
(*.f64 y (+.f64 x (+.f64 (+.f64 x -8/29) (+.f64 x -4/29))))
(*.f64 y (*.f64 3 (+.f64 x -4/29)))
(*.f64 (+.f64 x -4/29) (*.f64 y 3))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (+.f64 x -4/29) 12)))) 16)
(+.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x (+.f64 x -8/29))))
(*.f64 y (+.f64 (+.f64 x (+.f64 x -8/29)) (+.f64 x -4/29)))
(*.f64 y (+.f64 x (+.f64 (+.f64 x -8/29) (+.f64 x -4/29))))
(*.f64 y (*.f64 3 (+.f64 x -4/29)))
(*.f64 (+.f64 x -4/29) (*.f64 y 3))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (+.f64 x -4/29) 12))))) 32)
(+.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x (+.f64 x -8/29))))
(*.f64 y (+.f64 (+.f64 x (+.f64 x -8/29)) (+.f64 x -4/29)))
(*.f64 y (+.f64 x (+.f64 (+.f64 x -8/29) (+.f64 x -4/29))))
(*.f64 y (*.f64 3 (+.f64 x -4/29)))
(*.f64 (+.f64 x -4/29) (*.f64 y 3))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (+.f64 x -4/29) 12)))))) 64)
(+.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x (+.f64 x -8/29))))
(*.f64 y (+.f64 (+.f64 x (+.f64 x -8/29)) (+.f64 x -4/29)))
(*.f64 y (+.f64 x (+.f64 (+.f64 x -8/29) (+.f64 x -4/29))))
(*.f64 y (*.f64 3 (+.f64 x -4/29)))
(*.f64 (+.f64 x -4/29) (*.f64 y 3))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (+.f64 x -4/29) 12))))))) 128)
(+.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x (+.f64 x -8/29))))
(*.f64 y (+.f64 (+.f64 x (+.f64 x -8/29)) (+.f64 x -4/29)))
(*.f64 y (+.f64 x (+.f64 (+.f64 x -8/29) (+.f64 x -4/29))))
(*.f64 y (*.f64 3 (+.f64 x -4/29)))
(*.f64 (+.f64 x -4/29) (*.f64 y 3))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (+.f64 x -4/29) 12)))))))) 256)
(+.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x (+.f64 x -8/29))))
(*.f64 y (+.f64 (+.f64 x (+.f64 x -8/29)) (+.f64 x -4/29)))
(*.f64 y (+.f64 x (+.f64 (+.f64 x -8/29) (+.f64 x -4/29))))
(*.f64 y (*.f64 3 (+.f64 x -4/29)))
(*.f64 (+.f64 x -4/29) (*.f64 y 3))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (+.f64 x -4/29) 12)))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 (+.f64 x -4/29) 12))))))))) 512)
(+.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x (+.f64 x -8/29))))
(*.f64 y (+.f64 (+.f64 x (+.f64 x -8/29)) (+.f64 x -4/29)))
(*.f64 y (+.f64 x (+.f64 (+.f64 x -8/29) (+.f64 x -4/29))))
(*.f64 y (*.f64 3 (+.f64 x -4/29)))
(*.f64 (+.f64 x -4/29) (*.f64 y 3))
(pow.f64 (*.f64 3 (*.f64 y (+.f64 x -4/29))) 1)
(+.f64 (*.f64 y (+.f64 x -4/29)) (*.f64 y (+.f64 x (+.f64 x -8/29))))
(*.f64 y (+.f64 (+.f64 x (+.f64 x -8/29)) (+.f64 x -4/29)))
(*.f64 y (+.f64 x (+.f64 (+.f64 x -8/29) (+.f64 x -4/29))))
(*.f64 y (*.f64 3 (+.f64 x -4/29)))
(*.f64 (+.f64 x -4/29) (*.f64 y 3))
(+.f64 (*.f64 y (+.f64 x -4/29)) 0)
(*.f64 y (+.f64 x -4/29))
(+.f64 0 (*.f64 y (+.f64 x -4/29)))
(*.f64 y (+.f64 x -4/29))
(+.f64 (*.f64 y (*.f64 (+.f64 x -4/29) 1/2)) (*.f64 y (*.f64 (+.f64 x -4/29) 1/2)))
(*.f64 y (+.f64 x -4/29))
(-.f64 (*.f64 y (+.f64 x -4/29)) 0)
(*.f64 y (+.f64 x -4/29))
(/.f64 (*.f64 y (+.f64 x -4/29)) 1)
(*.f64 y (+.f64 x -4/29))
(/.f64 (*.f64 y (+.f64 x (+.f64 x -8/29))) 2)
(*.f64 y (+.f64 x -4/29))
(/.f64 (*.f64 y (*.f64 (+.f64 x -4/29) 4)) 4)
(*.f64 y (+.f64 x -4/29))
(/.f64 (*.f64 (*.f64 (+.f64 x -4/29) 8) y) 8)
(*.f64 y (+.f64 x -4/29))
(/.f64 (*.f64 2 (*.f64 (*.f64 (+.f64 x -4/29) 8) y)) 16)
(*.f64 y (+.f64 x -4/29))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 x -4/29) 8) y))) 32)
(*.f64 y (+.f64 x -4/29))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 x -4/29) 8) y)))) 64)
(*.f64 y (+.f64 x -4/29))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 x -4/29) 8) y))))) 128)
(*.f64 y (+.f64 x -4/29))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 x -4/29) 8) y)))))) 256)
(*.f64 y (+.f64 x -4/29))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 x -4/29) 8) y)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 x -4/29) 8) y))))))) 512)
(*.f64 y (+.f64 x -4/29))
(pow.f64 (*.f64 y (+.f64 x -4/29)) 1)
(*.f64 y (+.f64 x -4/29))

eval60.0ms (0.4%)

Compiler

Compiled 2997 to 2361 computations (21.2% saved)

prune91.0ms (0.6%)

Pruning

13 alts after pruning (3 fresh and 10 done)

PrunedKeptTotal
New2563259
Fresh000
Picked011
Done1910
Total25713270
Error
0.0b
Counts
270 → 13
Alt Table
Click to see full alt table
StatusErrorProgram
0.2b
(*.f64 (-.f64 (*.f64 3 x) 12/29) y)
0.2b
(*.f64 (-.f64 x 4/29) (*.f64 3 y))
0.2b
(*.f64 (+.f64 x (+.f64 x (+.f64 x -12/29))) y)
24.2b
(*.f64 (+.f64 x -12/29) y)
34.7b
(*.f64 (*.f64 x 3) y)
34.7b
(*.f64 (*.f64 1/2 (+.f64 x (*.f64 x 5))) y)
57.2b
(*.f64 y x)
34.7b
(*.f64 x (*.f64 3 y))
0.3b
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
34.8b
(*.f64 3 (*.f64 y x))
28.3b
(*.f64 3 (*.f64 y -4/29))
28.3b
(*.f64 -4/29 (*.f64 3 y))
28.2b
(*.f64 -12/29 y)
Compiler

Compiled 101 to 75 computations (25.7% saved)

localize204.0ms (1.4%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.1b
(*.f64 y -4/29)
0.3b
(*.f64 3 (*.f64 y -4/29))
Compiler

Compiled 13 to 10 computations (23.1% saved)

series1.0ms (0%)

Counts
2 → 24
Calls

6 calls:

TimeVariablePointExpression
0.0ms
y
@-inf
(*.f64 y -4/29)
0.0ms
y
@inf
(*.f64 y -4/29)
0.0ms
y
@0
(*.f64 y -4/29)
0.0ms
y
@-inf
(*.f64 3 (*.f64 y -4/29))
0.0ms
y
@0
(*.f64 3 (*.f64 y -4/29))

rewrite274.0ms (1.8%)

Algorithm
batch-egg-rewrite
Rules
3624×rational.json-simplify-35
1826×rational.json-simplify-2
1062×exponential.json-3
1062×rational.json-1
1062×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0714
14914
210814
321614
439614
586314
6204414
7325714
8368914
9432214
10506314
11551614
12551614
13602514
14602514
15650314
16730614
Stop Event
node limit
Counts
2 → 38
Calls
Call 1
Inputs
(*.f64 3 (*.f64 y -4/29))
(*.f64 y -4/29)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y -4/29) (*.f64 y -8/29))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y -12/29) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 y -12/29))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y -8/29) (*.f64 y -4/29))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y -6/29) (*.f64 y -6/29))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y -12/29) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y -12/29) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y -24/29) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y -48/29) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y -96/29) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 y -96/29)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 y -96/29))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -96/29)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -96/29))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -96/29)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -96/29))))))) 512)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -96/29)))))))) 1024)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -96/29))))))))) 2048)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -96/29))))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -96/29)))))))))) 4096)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y -12/29) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y -4/29) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 y -4/29))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y -2/29) (*.f64 y -2/29))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y -4/29) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y -4/29) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y -8/29) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y -16/29) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y -32/29) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 y -32/29)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 y -32/29))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -32/29)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -32/29))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -32/29)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -32/29))))))) 512)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -32/29)))))))) 1024)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -32/29))))))))) 2048)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -32/29))))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -32/29)))))))))) 4096)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y -4/29) 1)))))

simplify291.0ms (2%)

Algorithm
egg-herbie
Rules
4674×rational.json-simplify-41
1990×rational.json-simplify-35
1550×rational.json-simplify-2
892×rational.json-simplify-51
652×rational.json-simplify-43
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
095434
1236434
2447434
31110434
43035434
54024434
64233434
74377434
84481434
94582434
104676434
114812434
124900434
134988434
144988434
Stop Event
node limit
Counts
62 → 41
Calls
Call 1
Inputs
(*.f64 -12/29 y)
(*.f64 -12/29 y)
(*.f64 -12/29 y)
(*.f64 -12/29 y)
(*.f64 -12/29 y)
(*.f64 -12/29 y)
(*.f64 -12/29 y)
(*.f64 -12/29 y)
(*.f64 -12/29 y)
(*.f64 -12/29 y)
(*.f64 -12/29 y)
(*.f64 -12/29 y)
(*.f64 -4/29 y)
(*.f64 -4/29 y)
(*.f64 -4/29 y)
(*.f64 -4/29 y)
(*.f64 -4/29 y)
(*.f64 -4/29 y)
(*.f64 -4/29 y)
(*.f64 -4/29 y)
(*.f64 -4/29 y)
(*.f64 -4/29 y)
(*.f64 -4/29 y)
(*.f64 -4/29 y)
(+.f64 (*.f64 y -4/29) (*.f64 y -8/29))
(+.f64 (*.f64 y -12/29) 0)
(+.f64 0 (*.f64 y -12/29))
(+.f64 (*.f64 y -8/29) (*.f64 y -4/29))
(+.f64 (*.f64 y -6/29) (*.f64 y -6/29))
(-.f64 (*.f64 y -12/29) 0)
(/.f64 (*.f64 y -12/29) 1)
(/.f64 (*.f64 y -24/29) 2)
(/.f64 (*.f64 y -48/29) 4)
(/.f64 (*.f64 y -96/29) 8)
(/.f64 (*.f64 2 (*.f64 y -96/29)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 y -96/29))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -96/29)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -96/29))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -96/29)))))) 256)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -96/29))))))) 512)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -96/29)))))))) 1024)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -96/29))))))))) 2048)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -96/29))))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -96/29)))))))))) 4096)
(pow.f64 (*.f64 y -12/29) 1)
(+.f64 (*.f64 y -4/29) 0)
(+.f64 0 (*.f64 y -4/29))
(+.f64 (*.f64 y -2/29) (*.f64 y -2/29))
(-.f64 (*.f64 y -4/29) 0)
(/.f64 (*.f64 y -4/29) 1)
(/.f64 (*.f64 y -8/29) 2)
(/.f64 (*.f64 y -16/29) 4)
(/.f64 (*.f64 y -32/29) 8)
(/.f64 (*.f64 2 (*.f64 y -32/29)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 y -32/29))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -32/29)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -32/29))))) 128)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -32/29)))))) 256)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -32/29))))))) 512)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -32/29)))))))) 1024)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -32/29))))))))) 2048)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -32/29))))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -32/29)))))))))) 4096)
(pow.f64 (*.f64 y -4/29) 1)
Outputs
(*.f64 -12/29 y)
(*.f64 -12/29 y)
(*.f64 -12/29 y)
(*.f64 -12/29 y)
(*.f64 -12/29 y)
(*.f64 -12/29 y)
(*.f64 -12/29 y)
(*.f64 -12/29 y)
(*.f64 -12/29 y)
(*.f64 -12/29 y)
(*.f64 -12/29 y)
(*.f64 -12/29 y)
(*.f64 -4/29 y)
(*.f64 y -4/29)
(*.f64 -4/29 y)
(*.f64 y -4/29)
(*.f64 -4/29 y)
(*.f64 y -4/29)
(*.f64 -4/29 y)
(*.f64 y -4/29)
(*.f64 -4/29 y)
(*.f64 y -4/29)
(*.f64 -4/29 y)
(*.f64 y -4/29)
(*.f64 -4/29 y)
(*.f64 y -4/29)
(*.f64 -4/29 y)
(*.f64 y -4/29)
(*.f64 -4/29 y)
(*.f64 y -4/29)
(*.f64 -4/29 y)
(*.f64 y -4/29)
(*.f64 -4/29 y)
(*.f64 y -4/29)
(*.f64 -4/29 y)
(*.f64 y -4/29)
(+.f64 (*.f64 y -4/29) (*.f64 y -8/29))
(*.f64 -12/29 y)
(+.f64 (*.f64 y -12/29) 0)
(*.f64 -12/29 y)
(+.f64 0 (*.f64 y -12/29))
(*.f64 -12/29 y)
(+.f64 (*.f64 y -8/29) (*.f64 y -4/29))
(*.f64 -12/29 y)
(+.f64 (*.f64 y -6/29) (*.f64 y -6/29))
(*.f64 -12/29 y)
(-.f64 (*.f64 y -12/29) 0)
(*.f64 -12/29 y)
(/.f64 (*.f64 y -12/29) 1)
(*.f64 -12/29 y)
(/.f64 (*.f64 y -24/29) 2)
(*.f64 -12/29 y)
(/.f64 (*.f64 y -48/29) 4)
(*.f64 -12/29 y)
(/.f64 (*.f64 y -96/29) 8)
(*.f64 -12/29 y)
(/.f64 (*.f64 2 (*.f64 y -96/29)) 16)
(*.f64 -12/29 y)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 y -96/29))) 32)
(*.f64 -12/29 y)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -96/29)))) 64)
(*.f64 -12/29 y)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -96/29))))) 128)
(*.f64 -12/29 y)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -96/29)))))) 256)
(*.f64 -12/29 y)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -96/29))))))) 512)
(*.f64 -12/29 y)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -96/29)))))))) 1024)
(*.f64 -12/29 y)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -96/29))))))))) 2048)
(*.f64 -12/29 y)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -96/29))))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -96/29)))))))))) 4096)
(*.f64 -12/29 y)
(pow.f64 (*.f64 y -12/29) 1)
(*.f64 -12/29 y)
(+.f64 (*.f64 y -4/29) 0)
(*.f64 y -4/29)
(+.f64 0 (*.f64 y -4/29))
(*.f64 y -4/29)
(+.f64 (*.f64 y -2/29) (*.f64 y -2/29))
(*.f64 y -4/29)
(-.f64 (*.f64 y -4/29) 0)
(*.f64 y -4/29)
(/.f64 (*.f64 y -4/29) 1)
(*.f64 y -4/29)
(/.f64 (*.f64 y -8/29) 2)
(*.f64 y -4/29)
(/.f64 (*.f64 y -16/29) 4)
(*.f64 y -4/29)
(/.f64 (*.f64 y -32/29) 8)
(*.f64 y -4/29)
(/.f64 (*.f64 2 (*.f64 y -32/29)) 16)
(*.f64 y -4/29)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 y -32/29))) 32)
(*.f64 y -4/29)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -32/29)))) 64)
(*.f64 y -4/29)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -32/29))))) 128)
(*.f64 y -4/29)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -32/29)))))) 256)
(*.f64 y -4/29)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -32/29))))))) 512)
(*.f64 y -4/29)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -32/29)))))))) 1024)
(*.f64 y -4/29)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -32/29))))))))) 2048)
(*.f64 y -4/29)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -32/29))))))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y -32/29)))))))))) 4096)
(*.f64 y -4/29)
(pow.f64 (*.f64 y -4/29) 1)
(*.f64 y -4/29)

localize70.0ms (0.5%)

Compiler

Compiled 7 to 3 computations (57.1% saved)

localize11.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (*.f64 1/2 (+.f64 x (*.f64 x 5))) y)
0.5b
(+.f64 x (*.f64 x 5))
Compiler

Compiled 30 to 20 computations (33.3% saved)

series4.0ms (0%)

Counts
2 → 36
Calls

9 calls:

TimeVariablePointExpression
2.0ms
y
@0
(*.f64 (*.f64 1/2 (+.f64 x (*.f64 x 5))) y)
0.0ms
y
@inf
(*.f64 (*.f64 1/2 (+.f64 x (*.f64 x 5))) y)
0.0ms
x
@0
(*.f64 (*.f64 1/2 (+.f64 x (*.f64 x 5))) y)
0.0ms
x
@inf
(+.f64 x (*.f64 x 5))
0.0ms
x
@0
(+.f64 x (*.f64 x 5))

rewrite103.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
1824×rational.json-simplify-35
1396×rational.json-1
1396×rational.json-2
1396×rational.json-3
1382×exponential.json-3
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01038
16626
213520
329720
458420
5150620
6349620
7556320
8674720
Stop Event
node limit
Counts
2 → 44
Calls
Call 1
Inputs
(+.f64 x (*.f64 x 5))
(*.f64 (*.f64 1/2 (+.f64 x (*.f64 x 5))) y)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x 6) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x 6)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 6) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 x 12))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 3) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 x 6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 x 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 12) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x x) 3)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 6 x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 x 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 24) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 4) 3/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 3 (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 12 (*.f64 x 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 1/2) 12)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 x 24))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x 3/2) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x 6) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x 12) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x 24) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 x 24)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 x 24))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 24)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 24))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 24)))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 24)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 24))))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x 6) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 y 3)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (*.f64 y 3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x y) (*.f64 x (+.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 y 3/2)) (*.f64 x (*.f64 y 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (+.f64 y y)) (*.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (*.f64 y 3)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 y 3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 y 6)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 x 12)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 x 24)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 y (*.f64 x 24))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 x 24)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 x 24))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 x 24)))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 x 24)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 x 24))))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (*.f64 y 3)) 1)))))

simplify198.0ms (1.3%)

Algorithm
egg-herbie
Rules
2882×rational.json-simplify-2
1892×rational.json-simplify-1
1498×rational.json-simplify-35
1180×rational.json-simplify-51
1180×rational.json-simplify-41
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0101800
1227800
2526800
31469800
43293800
55762800
66060800
76254800
86385800
96510800
107544800
Stop Event
node limit
Counts
80 → 48
Calls
Call 1
Inputs
(*.f64 6 x)
(*.f64 6 x)
(*.f64 6 x)
(*.f64 6 x)
(*.f64 6 x)
(*.f64 6 x)
(*.f64 6 x)
(*.f64 6 x)
(*.f64 6 x)
(*.f64 6 x)
(*.f64 6 x)
(*.f64 6 x)
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(*.f64 1/2 (*.f64 y (+.f64 (*.f64 5 x) x)))
(*.f64 1/2 (*.f64 y (+.f64 (*.f64 5 x) x)))
(*.f64 1/2 (*.f64 y (+.f64 (*.f64 5 x) x)))
(*.f64 1/2 (*.f64 y (+.f64 (*.f64 5 x) x)))
(*.f64 1/2 (*.f64 y (+.f64 (*.f64 5 x) x)))
(*.f64 1/2 (*.f64 y (+.f64 (*.f64 5 x) x)))
(*.f64 1/2 (*.f64 y (+.f64 (*.f64 5 x) x)))
(*.f64 1/2 (*.f64 y (+.f64 (*.f64 5 x) x)))
(*.f64 1/2 (*.f64 y (+.f64 (*.f64 5 x) x)))
(*.f64 1/2 (*.f64 y (+.f64 (*.f64 5 x) x)))
(*.f64 1/2 (*.f64 y (+.f64 (*.f64 5 x) x)))
(*.f64 1/2 (*.f64 y (+.f64 (*.f64 5 x) x)))
(-.f64 (*.f64 x 6) 0)
(*.f64 x 6)
(*.f64 (*.f64 x 6) 1)
(*.f64 1/2 (*.f64 x 12))
(*.f64 (*.f64 x 3) 2)
(*.f64 1 (*.f64 x 6))
(*.f64 2 (*.f64 x 3))
(*.f64 (*.f64 x 12) 1/2)
(*.f64 (+.f64 x x) 3)
(*.f64 6 x)
(*.f64 4 (*.f64 x 3/2))
(*.f64 (*.f64 x 24) 1/4)
(*.f64 (*.f64 x 4) 3/2)
(*.f64 3 (+.f64 x x))
(*.f64 12 (*.f64 x 1/2))
(*.f64 (*.f64 x 1/2) 12)
(*.f64 1/4 (*.f64 x 24))
(*.f64 (*.f64 x 3/2) 4)
(/.f64 (*.f64 x 6) 1)
(/.f64 (*.f64 x 12) 2)
(/.f64 (*.f64 x 24) 4)
(/.f64 (*.f64 2 (*.f64 x 24)) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 x 24))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 24)))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 24))))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 24)))))) 128)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 24)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 24))))))) 256)
(pow.f64 (*.f64 x 6) 1)
(+.f64 (*.f64 x (*.f64 y 3)) 0)
(+.f64 0 (*.f64 x (*.f64 y 3)))
(+.f64 (*.f64 x y) (*.f64 x (+.f64 y y)))
(+.f64 (*.f64 x (*.f64 y 3/2)) (*.f64 x (*.f64 y 3/2)))
(+.f64 (*.f64 x (+.f64 y y)) (*.f64 x y))
(-.f64 (*.f64 x (*.f64 y 3)) 0)
(/.f64 (*.f64 x (*.f64 y 3)) 1)
(/.f64 (*.f64 x (*.f64 y 6)) 2)
(/.f64 (*.f64 y (*.f64 x 12)) 4)
(/.f64 (*.f64 y (*.f64 x 24)) 8)
(/.f64 (*.f64 2 (*.f64 y (*.f64 x 24))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 x 24)))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 x 24))))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 x 24)))))) 128)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 x 24)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 x 24))))))) 256)
(pow.f64 (*.f64 x (*.f64 y 3)) 1)
Outputs
(*.f64 6 x)
(*.f64 6 x)
(*.f64 6 x)
(*.f64 6 x)
(*.f64 6 x)
(*.f64 6 x)
(*.f64 6 x)
(*.f64 6 x)
(*.f64 6 x)
(*.f64 6 x)
(*.f64 6 x)
(*.f64 6 x)
(*.f64 3 (*.f64 y x))
(*.f64 x (*.f64 3 y))
(*.f64 3 (*.f64 x y))
(*.f64 3 (*.f64 y x))
(*.f64 x (*.f64 3 y))
(*.f64 3 (*.f64 x y))
(*.f64 3 (*.f64 y x))
(*.f64 x (*.f64 3 y))
(*.f64 3 (*.f64 x y))
(*.f64 3 (*.f64 y x))
(*.f64 x (*.f64 3 y))
(*.f64 3 (*.f64 x y))
(*.f64 3 (*.f64 y x))
(*.f64 x (*.f64 3 y))
(*.f64 3 (*.f64 x y))
(*.f64 3 (*.f64 y x))
(*.f64 x (*.f64 3 y))
(*.f64 3 (*.f64 x y))
(*.f64 3 (*.f64 y x))
(*.f64 x (*.f64 3 y))
(*.f64 3 (*.f64 x y))
(*.f64 3 (*.f64 y x))
(*.f64 x (*.f64 3 y))
(*.f64 3 (*.f64 x y))
(*.f64 3 (*.f64 y x))
(*.f64 x (*.f64 3 y))
(*.f64 3 (*.f64 x y))
(*.f64 3 (*.f64 y x))
(*.f64 x (*.f64 3 y))
(*.f64 3 (*.f64 x y))
(*.f64 3 (*.f64 y x))
(*.f64 x (*.f64 3 y))
(*.f64 3 (*.f64 x y))
(*.f64 3 (*.f64 y x))
(*.f64 x (*.f64 3 y))
(*.f64 3 (*.f64 x y))
(*.f64 1/2 (*.f64 y (+.f64 (*.f64 5 x) x)))
(*.f64 x (*.f64 3 y))
(*.f64 3 (*.f64 x y))
(*.f64 1/2 (*.f64 y (+.f64 (*.f64 5 x) x)))
(*.f64 x (*.f64 3 y))
(*.f64 3 (*.f64 x y))
(*.f64 1/2 (*.f64 y (+.f64 (*.f64 5 x) x)))
(*.f64 x (*.f64 3 y))
(*.f64 3 (*.f64 x y))
(*.f64 1/2 (*.f64 y (+.f64 (*.f64 5 x) x)))
(*.f64 x (*.f64 3 y))
(*.f64 3 (*.f64 x y))
(*.f64 1/2 (*.f64 y (+.f64 (*.f64 5 x) x)))
(*.f64 x (*.f64 3 y))
(*.f64 3 (*.f64 x y))
(*.f64 1/2 (*.f64 y (+.f64 (*.f64 5 x) x)))
(*.f64 x (*.f64 3 y))
(*.f64 3 (*.f64 x y))
(*.f64 1/2 (*.f64 y (+.f64 (*.f64 5 x) x)))
(*.f64 x (*.f64 3 y))
(*.f64 3 (*.f64 x y))
(*.f64 1/2 (*.f64 y (+.f64 (*.f64 5 x) x)))
(*.f64 x (*.f64 3 y))
(*.f64 3 (*.f64 x y))
(*.f64 1/2 (*.f64 y (+.f64 (*.f64 5 x) x)))
(*.f64 x (*.f64 3 y))
(*.f64 3 (*.f64 x y))
(*.f64 1/2 (*.f64 y (+.f64 (*.f64 5 x) x)))
(*.f64 x (*.f64 3 y))
(*.f64 3 (*.f64 x y))
(*.f64 1/2 (*.f64 y (+.f64 (*.f64 5 x) x)))
(*.f64 x (*.f64 3 y))
(*.f64 3 (*.f64 x y))
(*.f64 1/2 (*.f64 y (+.f64 (*.f64 5 x) x)))
(*.f64 x (*.f64 3 y))
(*.f64 3 (*.f64 x y))
(-.f64 (*.f64 x 6) 0)
(*.f64 6 x)
(*.f64 x 6)
(*.f64 6 x)
(*.f64 (*.f64 x 6) 1)
(*.f64 6 x)
(*.f64 1/2 (*.f64 x 12))
(*.f64 6 x)
(*.f64 (*.f64 x 3) 2)
(*.f64 6 x)
(*.f64 1 (*.f64 x 6))
(*.f64 6 x)
(*.f64 2 (*.f64 x 3))
(*.f64 6 x)
(*.f64 (*.f64 x 12) 1/2)
(*.f64 6 x)
(*.f64 (+.f64 x x) 3)
(*.f64 6 x)
(*.f64 6 x)
(*.f64 4 (*.f64 x 3/2))
(*.f64 6 x)
(*.f64 (*.f64 x 24) 1/4)
(*.f64 6 x)
(*.f64 (*.f64 x 4) 3/2)
(*.f64 6 x)
(*.f64 3 (+.f64 x x))
(*.f64 6 x)
(*.f64 12 (*.f64 x 1/2))
(*.f64 6 x)
(*.f64 (*.f64 x 1/2) 12)
(*.f64 6 x)
(*.f64 1/4 (*.f64 x 24))
(*.f64 6 x)
(*.f64 (*.f64 x 3/2) 4)
(*.f64 6 x)
(/.f64 (*.f64 x 6) 1)
(*.f64 6 x)
(/.f64 (*.f64 x 12) 2)
(*.f64 6 x)
(/.f64 (*.f64 x 24) 4)
(*.f64 6 x)
(/.f64 (*.f64 2 (*.f64 x 24)) 8)
(*.f64 6 x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 x 24))) 16)
(*.f64 6 x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 24)))) 32)
(*.f64 6 x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 24))))) 64)
(*.f64 6 x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 24)))))) 128)
(*.f64 6 x)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 24)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 24))))))) 256)
(*.f64 6 x)
(pow.f64 (*.f64 x 6) 1)
(*.f64 6 x)
(+.f64 (*.f64 x (*.f64 y 3)) 0)
(*.f64 x (*.f64 3 y))
(*.f64 3 (*.f64 x y))
(+.f64 0 (*.f64 x (*.f64 y 3)))
(*.f64 x (*.f64 3 y))
(*.f64 3 (*.f64 x y))
(+.f64 (*.f64 x y) (*.f64 x (+.f64 y y)))
(*.f64 x (*.f64 3 y))
(*.f64 3 (*.f64 x y))
(+.f64 (*.f64 x (*.f64 y 3/2)) (*.f64 x (*.f64 y 3/2)))
(*.f64 x (*.f64 3 y))
(*.f64 3 (*.f64 x y))
(+.f64 (*.f64 x (+.f64 y y)) (*.f64 x y))
(*.f64 x (*.f64 3 y))
(*.f64 3 (*.f64 x y))
(-.f64 (*.f64 x (*.f64 y 3)) 0)
(*.f64 x (*.f64 3 y))
(*.f64 3 (*.f64 x y))
(/.f64 (*.f64 x (*.f64 y 3)) 1)
(*.f64 x (*.f64 3 y))
(*.f64 3 (*.f64 x y))
(/.f64 (*.f64 x (*.f64 y 6)) 2)
(*.f64 x (*.f64 3 y))
(*.f64 3 (*.f64 x y))
(/.f64 (*.f64 y (*.f64 x 12)) 4)
(*.f64 x (*.f64 3 y))
(*.f64 3 (*.f64 x y))
(/.f64 (*.f64 y (*.f64 x 24)) 8)
(*.f64 x (*.f64 3 y))
(*.f64 3 (*.f64 x y))
(/.f64 (*.f64 2 (*.f64 y (*.f64 x 24))) 16)
(*.f64 x (*.f64 3 y))
(*.f64 3 (*.f64 x y))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 x 24)))) 32)
(*.f64 x (*.f64 3 y))
(*.f64 3 (*.f64 x y))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 x 24))))) 64)
(*.f64 x (*.f64 3 y))
(*.f64 3 (*.f64 x y))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 x 24)))))) 128)
(*.f64 x (*.f64 3 y))
(*.f64 3 (*.f64 x y))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 x 24)))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 x 24))))))) 256)
(*.f64 x (*.f64 3 y))
(*.f64 3 (*.f64 x y))
(pow.f64 (*.f64 x (*.f64 y 3)) 1)
(*.f64 x (*.f64 3 y))
(*.f64 3 (*.f64 x y))

eval90.0ms (0.6%)

Compiler

Compiled 953 to 791 computations (17% saved)

prune17.0ms (0.1%)

Pruning

13 alts after pruning (0 fresh and 13 done)

PrunedKeptTotal
New89089
Fresh000
Picked011
Done01212
Total8913102
Error
0.0b
Counts
102 → 13
Alt Table
Click to see full alt table
StatusErrorProgram
0.2b
(*.f64 (-.f64 (*.f64 3 x) 12/29) y)
0.2b
(*.f64 (-.f64 x 4/29) (*.f64 3 y))
0.2b
(*.f64 (+.f64 x (+.f64 x (+.f64 x -12/29))) y)
24.2b
(*.f64 (+.f64 x -12/29) y)
34.7b
(*.f64 (*.f64 x 3) y)
34.7b
(*.f64 (*.f64 1/2 (+.f64 x (*.f64 x 5))) y)
57.2b
(*.f64 y x)
34.7b
(*.f64 x (*.f64 3 y))
0.3b
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
34.8b
(*.f64 3 (*.f64 y x))
28.3b
(*.f64 3 (*.f64 y -4/29))
28.3b
(*.f64 -4/29 (*.f64 3 y))
28.2b
(*.f64 -12/29 y)
Compiler

Compiled 101 to 75 computations (25.7% saved)

regimes89.0ms (0.6%)

Counts
16 → 1
Calls
Call 1
Inputs
(*.f64 -12/29 y)
(*.f64 y x)
(*.f64 -4/29 (*.f64 3 y))
(*.f64 3 (*.f64 y -4/29))
(*.f64 3 (*.f64 y x))
(*.f64 x (*.f64 3 y))
(*.f64 (*.f64 x 3) y)
(*.f64 (+.f64 x -12/29) y)
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 (*.f64 (-.f64 x 4/29) 3) y)
(*.f64 (-.f64 x 4/29) (*.f64 3 y))
(*.f64 (-.f64 (*.f64 3 x) 12/29) y)
(*.f64 (*.f64 1/2 (+.f64 x (*.f64 x 5))) y)
(*.f64 (*.f64 (-.f64 x (/.f64 16 116)) 3) y)
(*.f64 (+.f64 x (+.f64 x (+.f64 x -12/29))) y)
(*.f64 (*.f64 1/2 (+.f64 x (+.f64 (+.f64 x -24/29) (*.f64 x 4)))) y)
Outputs
(*.f64 (-.f64 (*.f64 3 x) 12/29) y)
Calls

5 calls:

56.0ms
(*.f64 (-.f64 x (/.f64 16 116)) 3)
8.0ms
y
8.0ms
x
8.0ms
(*.f64 (*.f64 (-.f64 x (/.f64 16 116)) 3) y)
5.0ms
(-.f64 x (/.f64 16 116))
Results
ErrorSegmentsBranch
0.2b1x
0.2b1y
0.2b1(*.f64 (*.f64 (-.f64 x (/.f64 16 116)) 3) y)
0.2b1(*.f64 (-.f64 x (/.f64 16 116)) 3)
0.2b1(-.f64 x (/.f64 16 116))
Compiler

Compiled 139 to 98 computations (29.5% saved)

regimes15.0ms (0.1%)

Counts
11 → 1
Calls
Call 1
Inputs
(*.f64 -12/29 y)
(*.f64 y x)
(*.f64 -4/29 (*.f64 3 y))
(*.f64 3 (*.f64 y -4/29))
(*.f64 3 (*.f64 y x))
(*.f64 x (*.f64 3 y))
(*.f64 (*.f64 x 3) y)
(*.f64 (+.f64 x -12/29) y)
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(*.f64 (*.f64 (-.f64 x 4/29) 3) y)
(*.f64 (-.f64 x 4/29) (*.f64 3 y))
Outputs
(*.f64 (*.f64 (-.f64 x 4/29) 3) y)
Calls

2 calls:

7.0ms
y
6.0ms
x
Results
ErrorSegmentsBranch
0.2b1x
0.2b1y
Compiler

Compiled 65 to 43 computations (33.8% saved)

regimes14.0ms (0.1%)

Counts
9 → 1
Calls
Call 1
Inputs
(*.f64 -12/29 y)
(*.f64 y x)
(*.f64 -4/29 (*.f64 3 y))
(*.f64 3 (*.f64 y -4/29))
(*.f64 3 (*.f64 y x))
(*.f64 x (*.f64 3 y))
(*.f64 (*.f64 x 3) y)
(*.f64 (+.f64 x -12/29) y)
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
Outputs
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
Calls

2 calls:

6.0ms
y
5.0ms
x
Results
ErrorSegmentsBranch
0.3b1x
0.3b1y
Compiler

Compiled 51 to 33 computations (35.3% saved)

regimes59.0ms (0.4%)

Counts
8 → 3
Calls
Call 1
Inputs
(*.f64 -12/29 y)
(*.f64 y x)
(*.f64 -4/29 (*.f64 3 y))
(*.f64 3 (*.f64 y -4/29))
(*.f64 3 (*.f64 y x))
(*.f64 x (*.f64 3 y))
(*.f64 (*.f64 x 3) y)
(*.f64 (+.f64 x -12/29) y)
Outputs
(*.f64 (*.f64 x 3) y)
(*.f64 (+.f64 x -12/29) y)
(*.f64 x (*.f64 3 y))
Calls

2 calls:

42.0ms
y
15.0ms
x
Results
ErrorSegmentsBranch
1.7b3x
18.8b7y
Compiler

Compiled 44 to 28 computations (36.4% saved)

bsearch31.0ms (0.2%)

Algorithm
binary-search
Steps
TimeLeftRight
17.0ms
1.914280378772471e-5
2798.4325383448054
14.0ms
-0.3862571113998659
-0.0014612077474017652
Results
27.0ms272×body256valid
Compiler

Compiled 288 to 217 computations (24.7% saved)

regimes49.0ms (0.3%)

Counts
7 → 3
Calls
Call 1
Inputs
(*.f64 -12/29 y)
(*.f64 y x)
(*.f64 -4/29 (*.f64 3 y))
(*.f64 3 (*.f64 y -4/29))
(*.f64 3 (*.f64 y x))
(*.f64 x (*.f64 3 y))
(*.f64 (*.f64 x 3) y)
Outputs
(*.f64 (*.f64 x 3) y)
(*.f64 -12/29 y)
(*.f64 x (*.f64 3 y))
Calls

2 calls:

31.0ms
y
14.0ms
x
Results
ErrorSegmentsBranch
1.7b3x
20.9b7y
Compiler

Compiled 39 to 25 computations (35.9% saved)

bsearch28.0ms (0.2%)

Algorithm
binary-search
Steps
TimeLeftRight
15.0ms
1.914280378772471e-5
2798.4325383448054
14.0ms
-0.3862571113998659
-0.0014612077474017652
Results
25.0ms272×body256valid
Compiler

Compiled 254 to 200 computations (21.3% saved)

regimes43.0ms (0.3%)

Counts
6 → 3
Calls
Call 1
Inputs
(*.f64 -12/29 y)
(*.f64 y x)
(*.f64 -4/29 (*.f64 3 y))
(*.f64 3 (*.f64 y -4/29))
(*.f64 3 (*.f64 y x))
(*.f64 x (*.f64 3 y))
Outputs
(*.f64 x (*.f64 3 y))
(*.f64 -12/29 y)
(*.f64 x (*.f64 3 y))
Calls

2 calls:

29.0ms
y
12.0ms
x
Results
ErrorSegmentsBranch
1.7b3x
20.9b7y
Compiler

Compiled 34 to 22 computations (35.3% saved)

bsearch37.0ms (0.2%)

Algorithm
binary-search
Steps
TimeLeftRight
23.0ms
1.914280378772471e-5
2798.4325383448054
14.0ms
-0.3862571113998659
-0.0014612077474017652
Results
31.0ms272×body256valid
Compiler

Compiled 254 to 200 computations (21.3% saved)

regimes39.0ms (0.3%)

Counts
5 → 3
Calls
Call 1
Inputs
(*.f64 -12/29 y)
(*.f64 y x)
(*.f64 -4/29 (*.f64 3 y))
(*.f64 3 (*.f64 y -4/29))
(*.f64 3 (*.f64 y x))
Outputs
(*.f64 3 (*.f64 y x))
(*.f64 -12/29 y)
(*.f64 3 (*.f64 y x))
Calls

2 calls:

26.0ms
y
12.0ms
x
Results
ErrorSegmentsBranch
1.8b3x
20.9b7y
Compiler

Compiled 29 to 19 computations (34.5% saved)

bsearch34.0ms (0.2%)

Algorithm
binary-search
Steps
TimeLeftRight
20.0ms
1.914280378772471e-5
2798.4325383448054
14.0ms
-0.3862571113998659
-0.0014612077474017652
Results
30.0ms272×body256valid
Compiler

Compiled 254 to 200 computations (21.3% saved)

regimes30.0ms (0.2%)

Accuracy

Total -37.0b remaining (-152.6%)

Threshold costs -37.0b (-152.6%)

Counts
4 → 3
Calls
Call 1
Inputs
(*.f64 -12/29 y)
(*.f64 y x)
(*.f64 -4/29 (*.f64 3 y))
(*.f64 3 (*.f64 y -4/29))
Outputs
(*.f64 y x)
(*.f64 -12/29 y)
(*.f64 y x)
Calls

2 calls:

20.0ms
x
8.0ms
y
Results
ErrorSegmentsBranch
24.2b3x
28.2b1y
Compiler

Compiled 24 to 17 computations (29.2% saved)

bsearch173.0ms (1.2%)

Algorithm
binary-search
Steps
TimeLeftRight
26.0ms
1.914280378772471e-5
2798.4325383448054
146.0ms
-267065.30832556874
-0.3862571113998659
Results
167.0ms288×body256valid
Compiler

Compiled 232 to 175 computations (24.6% saved)

simplify11.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
045313
Stop Event
done
saturated
Calls
Call 1
Inputs
(*.f64 (-.f64 (*.f64 3 x) 12/29) y)
(*.f64 (*.f64 (-.f64 x 4/29) 3) y)
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(if (<=.f64 x -7385903388887613/36028797018963968) (*.f64 (*.f64 x 3) y) (if (<=.f64 x 1261007895663739/9007199254740992) (*.f64 (+.f64 x -12/29) y) (*.f64 x (*.f64 3 y))))
(if (<=.f64 x -1261007895663739/9007199254740992) (*.f64 (*.f64 x 3) y) (if (<=.f64 x 1261007895663739/9007199254740992) (*.f64 -12/29 y) (*.f64 x (*.f64 3 y))))
(if (<=.f64 x -1261007895663739/9007199254740992) (*.f64 x (*.f64 3 y)) (if (<=.f64 x 1261007895663739/9007199254740992) (*.f64 -12/29 y) (*.f64 x (*.f64 3 y))))
(if (<=.f64 x -1261007895663739/9007199254740992) (*.f64 3 (*.f64 y x)) (if (<=.f64 x 1261007895663739/9007199254740992) (*.f64 -12/29 y) (*.f64 3 (*.f64 y x))))
(if (<=.f64 x -7385903388887613/18014398509481984) (*.f64 y x) (if (<=.f64 x 1261007895663739/9007199254740992) (*.f64 -12/29 y) (*.f64 y x)))
(*.f64 -12/29 y)
Outputs
(*.f64 (-.f64 (*.f64 3 x) 12/29) y)
(*.f64 (*.f64 (-.f64 x 4/29) 3) y)
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
(if (<=.f64 x -7385903388887613/36028797018963968) (*.f64 (*.f64 x 3) y) (if (<=.f64 x 1261007895663739/9007199254740992) (*.f64 (+.f64 x -12/29) y) (*.f64 x (*.f64 3 y))))
(if (<=.f64 x -1261007895663739/9007199254740992) (*.f64 (*.f64 x 3) y) (if (<=.f64 x 1261007895663739/9007199254740992) (*.f64 -12/29 y) (*.f64 x (*.f64 3 y))))
(if (<=.f64 x -1261007895663739/9007199254740992) (*.f64 x (*.f64 3 y)) (if (<=.f64 x 1261007895663739/9007199254740992) (*.f64 -12/29 y) (*.f64 x (*.f64 3 y))))
(if (<=.f64 x -1261007895663739/9007199254740992) (*.f64 3 (*.f64 y x)) (if (<=.f64 x 1261007895663739/9007199254740992) (*.f64 -12/29 y) (*.f64 3 (*.f64 y x))))
(if (<=.f64 x -7385903388887613/18014398509481984) (*.f64 y x) (if (<=.f64 x 1261007895663739/9007199254740992) (*.f64 -12/29 y) (*.f64 y x)))
(*.f64 -12/29 y)
Compiler

Compiled 145 to 100 computations (31% saved)

soundness159.0ms (1.1%)

Algorithm
egg-herbie
Rules
12×rational.json-simplify-2
rational.json-simplify-43
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01219
11419
21819
32219
Stop Event
saturated
Compiler

Compiled 18 to 14 computations (22.2% saved)

end96.0ms (0.6%)

Compiler

Compiled 129 to 83 computations (35.7% saved)

Profiling

Loading profile data...