Details

Time bar (total: 11.9s)

analyze59.0ms (0.5%)

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.4s (11.5%)

Results
1.4s8256×body256valid
12.0ms136×body256infinite
Bogosity

preprocess12.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.3b
(*.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)

series3.0ms (0%)

Counts
3 → 39
Calls

12 calls:

TimeVariablePointExpression
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)
0.0ms
x
@-inf
(*.f64 (*.f64 (-.f64 x 4/29) 3) y)

rewrite240.0ms (2%)

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)))))

simplify411.0ms (3.4%)

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)

localize8.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(-.f64 x 4/29)
0.3b
(*.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
y
@-inf
(*.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))

rewrite233.0ms (2%)

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)))))

simplify610.0ms (5.1%)

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)))

eval165.0ms (1.4%)

Compiler

Compiled 1731 to 1359 computations (21.5% saved)

prune22.0ms (0.2%)

Pruning

8 alts after pruning (8 fresh and 0 done)

PrunedKeptTotal
New1438151
Fresh000
Picked101
Done101
Total1458153
Error
0.0b
Counts
153 → 8
Alt Table
Click to see full alt table
StatusErrorProgram
0.2b
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
0.2b
(*.f64 (-.f64 (*.f64 3 x) 12/29) y)
32.5b
(*.f64 (*.f64 x 3) y)
32.5b
(*.f64 x (*.f64 3 y))
0.3b
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
32.5b
(*.f64 3 (*.f64 y x))
30.4b
(*.f64 -4/29 (*.f64 3 y))
30.3b
(*.f64 -12/29 y)
Compiler

Compiled 124 to 94 computations (24.2% saved)

localize9.0ms (0.1%)

Local error

Found 3 expressions with local error:

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

Compiled 26 to 14 computations (46.2% saved)

series4.0ms (0%)

Counts
3 → 15
Calls

15 calls:

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

rewrite221.0ms (1.8%)

Algorithm
batch-egg-rewrite
Rules
1818×rational.json-simplify-1
1410×exponential.json-3
1410×rational.json-1
1410×rational.json-2
1410×rational.json-4
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01045
16839
214539
330839
458839
5139139
6310139
7537039
8650039
9762039
10762039
11762039
Stop Event
node limit
Counts
3 → 61
Calls
Call 1
Inputs
(*.f64 3 (*.f64 y x))
(*.f64 -12/29 y)
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y x) (*.f64 y (+.f64 x x)))))) (#(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 y (+.f64 x x)) (*.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 (*.f64 y 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 2 (*.f64 y (*.f64 x 12))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 x 12)))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 x 12))))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 x 12)))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 x 12))))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 3 (*.f64 y x)) 1)))))
((#(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 -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 pow.f64 (*.f64 y -12/29) 1)))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (+.f64 -12/29 (*.f64 3 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 y (+.f64 -12/29 (*.f64 3 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 y (*.f64 x 3/2)) (*.f64 y -6/29)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (*.f64 (+.f64 -12/29 (*.f64 3 x)) 1/2) y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 y -24/29) (*.f64 (*.f64 y x) 6)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y y) (*.f64 (+.f64 -12/29 (*.f64 3 x)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y y) (/.f64 (+.f64 -12/29 (*.f64 3 x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y y) (+.f64 (*.f64 x 3/2) -6/29))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 -12/29 (*.f64 3 x)) y)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (*.f64 (+.f64 -12/29 (*.f64 3 x)) 4)) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 -12/29 (+.f64 -12/29 (*.f64 x 6))) (*.f64 y 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 y -24/29) (*.f64 (*.f64 y x) 6)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y 1/2) (+.f64 -12/29 (+.f64 -12/29 (*.f64 x 6))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y 1/2) (+.f64 (*.f64 x 6) -24/29))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 y (*.f64 x 3/2)) (*.f64 y -6/29)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 -12/29 (*.f64 3 x)) 1/2) (+.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 y (*.f64 (+.f64 -12/29 (*.f64 3 x)) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 -12/29 (*.f64 3 x)) 2) (+.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 x 3/2) -6/29) (+.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 x 6) -24/29) (*.f64 y 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 y -24/29) (*.f64 (*.f64 y x) 6)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (*.f64 (+.f64 -12/29 (*.f64 3 x)) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 1)))))

simplify313.0ms (2.6%)

Algorithm
egg-herbie
Rules
2650×rational.json-simplify-2
2386×rational.json-simplify-35
1308×rational.json-simplify-51
1008×exponential.json-simplify-26
894×rational.json-simplify-1
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01391246
13191214
26991214
321561214
450691214
560341214
664981214
767471214
869451214
969561214
1078691214
1178701214
1278741214
1378741214
Stop Event
node limit
Counts
76 → 75
Calls
Call 1
Inputs
(*.f64 (-.f64 (*.f64 3 x) 12/29) y)
(*.f64 (-.f64 (*.f64 3 x) 12/29) y)
(*.f64 (-.f64 (*.f64 3 x) 12/29) y)
(*.f64 (-.f64 (*.f64 3 x) 12/29) y)
(*.f64 (-.f64 (*.f64 3 x) 12/29) y)
(*.f64 (-.f64 (*.f64 3 x) 12/29) y)
(*.f64 (-.f64 (*.f64 3 x) 12/29) y)
(*.f64 (-.f64 (*.f64 3 x) 12/29) y)
(*.f64 -1 (*.f64 y (+.f64 12/29 (*.f64 -3 x))))
(*.f64 -1 (*.f64 y (+.f64 12/29 (*.f64 -3 x))))
(*.f64 -1 (*.f64 y (+.f64 12/29 (*.f64 -3 x))))
(*.f64 -1 (*.f64 y (+.f64 12/29 (*.f64 -3 x))))
(*.f64 -12/29 y)
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 y x))
(+.f64 (*.f64 y x) (*.f64 y (+.f64 x x)))
(+.f64 (*.f64 3 (*.f64 y x)) 0)
(+.f64 0 (*.f64 3 (*.f64 y x)))
(+.f64 (*.f64 y (+.f64 x x)) (*.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 (*.f64 y x) 6) 2)
(/.f64 (*.f64 y (*.f64 x 12)) 4)
(/.f64 (*.f64 2 (*.f64 y (*.f64 x 12))) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 x 12)))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 x 12))))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 x 12)))))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 x 12))))))) 128)
(pow.f64 (*.f64 3 (*.f64 y x)) 1)
(+.f64 (*.f64 y -12/29) 0)
(+.f64 0 (*.f64 y -12/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 (*.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)
(pow.f64 (*.f64 y -12/29) 1)
(-.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 0)
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(*.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 1)
(*.f64 1 (*.f64 y (+.f64 -12/29 (*.f64 3 x))))
(*.f64 2 (+.f64 (*.f64 y (*.f64 x 3/2)) (*.f64 y -6/29)))
(*.f64 2 (*.f64 (*.f64 (+.f64 -12/29 (*.f64 3 x)) 1/2) y))
(*.f64 (+.f64 (*.f64 y -24/29) (*.f64 (*.f64 y x) 6)) 1/2)
(*.f64 (+.f64 y y) (*.f64 (+.f64 -12/29 (*.f64 3 x)) 1/2))
(*.f64 (+.f64 y y) (/.f64 (+.f64 -12/29 (*.f64 3 x)) 2))
(*.f64 (+.f64 y y) (+.f64 (*.f64 x 3/2) -6/29))
(*.f64 (+.f64 -12/29 (*.f64 3 x)) y)
(*.f64 4 (/.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 4))
(*.f64 (*.f64 y (*.f64 (+.f64 -12/29 (*.f64 3 x)) 4)) 1/4)
(*.f64 (+.f64 -12/29 (+.f64 -12/29 (*.f64 x 6))) (*.f64 y 1/2))
(*.f64 1/2 (+.f64 (*.f64 y -24/29) (*.f64 (*.f64 y x) 6)))
(*.f64 (*.f64 y 1/2) (+.f64 -12/29 (+.f64 -12/29 (*.f64 x 6))))
(*.f64 (*.f64 y 1/2) (+.f64 (*.f64 x 6) -24/29))
(*.f64 (+.f64 (*.f64 y (*.f64 x 3/2)) (*.f64 y -6/29)) 2)
(*.f64 (*.f64 (+.f64 -12/29 (*.f64 3 x)) 1/2) (+.f64 y y))
(*.f64 1/4 (*.f64 y (*.f64 (+.f64 -12/29 (*.f64 3 x)) 4)))
(*.f64 (/.f64 (+.f64 -12/29 (*.f64 3 x)) 2) (+.f64 y y))
(*.f64 (/.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 4) 4)
(*.f64 (+.f64 (*.f64 x 3/2) -6/29) (+.f64 y y))
(*.f64 (+.f64 (*.f64 x 6) -24/29) (*.f64 y 1/2))
(/.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 1)
(/.f64 (+.f64 (*.f64 y -24/29) (*.f64 (*.f64 y x) 6)) 2)
(/.f64 (*.f64 y (*.f64 (+.f64 -12/29 (*.f64 3 x)) 4)) 4)
(/.f64 (*.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 8))) 32)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 8)))) 64)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 8))))) 128)
(pow.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 1)
Outputs
(*.f64 (-.f64 (*.f64 3 x) 12/29) y)
(*.f64 (-.f64 (*.f64 3 x) 12/29) y)
(*.f64 (-.f64 (*.f64 3 x) 12/29) y)
(*.f64 (-.f64 (*.f64 3 x) 12/29) y)
(*.f64 (-.f64 (*.f64 3 x) 12/29) y)
(*.f64 (-.f64 (*.f64 3 x) 12/29) y)
(*.f64 (-.f64 (*.f64 3 x) 12/29) y)
(*.f64 (-.f64 (*.f64 3 x) 12/29) y)
(*.f64 -1 (*.f64 y (+.f64 12/29 (*.f64 -3 x))))
(*.f64 y (*.f64 (+.f64 12/29 (*.f64 x -3)) -1))
(*.f64 y (neg.f64 (+.f64 12/29 (*.f64 x -3))))
(*.f64 (+.f64 12/29 (*.f64 x -3)) (neg.f64 y))
(*.f64 -1 (*.f64 y (+.f64 12/29 (*.f64 -3 x))))
(*.f64 y (*.f64 (+.f64 12/29 (*.f64 x -3)) -1))
(*.f64 y (neg.f64 (+.f64 12/29 (*.f64 x -3))))
(*.f64 (+.f64 12/29 (*.f64 x -3)) (neg.f64 y))
(*.f64 -1 (*.f64 y (+.f64 12/29 (*.f64 -3 x))))
(*.f64 y (*.f64 (+.f64 12/29 (*.f64 x -3)) -1))
(*.f64 y (neg.f64 (+.f64 12/29 (*.f64 x -3))))
(*.f64 (+.f64 12/29 (*.f64 x -3)) (neg.f64 y))
(*.f64 -1 (*.f64 y (+.f64 12/29 (*.f64 -3 x))))
(*.f64 y (*.f64 (+.f64 12/29 (*.f64 x -3)) -1))
(*.f64 y (neg.f64 (+.f64 12/29 (*.f64 x -3))))
(*.f64 (+.f64 12/29 (*.f64 x -3)) (neg.f64 y))
(*.f64 -12/29 y)
(*.f64 y -12/29)
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 x y))
(*.f64 3 (*.f64 y x))
(*.f64 3 (*.f64 x y))
(+.f64 (*.f64 y x) (*.f64 y (+.f64 x x)))
(*.f64 3 (*.f64 x y))
(+.f64 (*.f64 3 (*.f64 y x)) 0)
(*.f64 3 (*.f64 x y))
(+.f64 0 (*.f64 3 (*.f64 y x)))
(*.f64 3 (*.f64 x y))
(+.f64 (*.f64 y (+.f64 x x)) (*.f64 y x))
(*.f64 3 (*.f64 x y))
(+.f64 (*.f64 y (*.f64 x 3/2)) (*.f64 y (*.f64 x 3/2)))
(*.f64 3 (*.f64 x y))
(-.f64 (*.f64 3 (*.f64 y x)) 0)
(*.f64 3 (*.f64 x y))
(/.f64 (*.f64 3 (*.f64 y x)) 1)
(*.f64 3 (*.f64 x y))
(/.f64 (*.f64 (*.f64 y x) 6) 2)
(*.f64 3 (*.f64 x y))
(/.f64 (*.f64 y (*.f64 x 12)) 4)
(*.f64 3 (*.f64 x y))
(/.f64 (*.f64 2 (*.f64 y (*.f64 x 12))) 8)
(*.f64 3 (*.f64 x y))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 x 12)))) 16)
(*.f64 3 (*.f64 x y))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 x 12))))) 32)
(*.f64 3 (*.f64 x y))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 x 12)))))) 64)
(*.f64 3 (*.f64 x y))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y (*.f64 x 12))))))) 128)
(*.f64 3 (*.f64 x y))
(pow.f64 (*.f64 3 (*.f64 y x)) 1)
(*.f64 3 (*.f64 x y))
(+.f64 (*.f64 y -12/29) 0)
(*.f64 y -12/29)
(+.f64 0 (*.f64 y -12/29))
(*.f64 y -12/29)
(+.f64 (*.f64 y -6/29) (*.f64 y -6/29))
(*.f64 y -12/29)
(-.f64 (*.f64 y -12/29) 0)
(*.f64 y -12/29)
(/.f64 (*.f64 y -12/29) 1)
(*.f64 y -12/29)
(/.f64 (*.f64 y -24/29) 2)
(*.f64 y -12/29)
(/.f64 (*.f64 y -48/29) 4)
(*.f64 y -12/29)
(/.f64 (*.f64 (*.f64 y -12/29) 8) 8)
(*.f64 y -12/29)
(/.f64 (*.f64 2 (*.f64 (*.f64 y -12/29) 8)) 16)
(*.f64 y -12/29)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y -12/29) 8))) 32)
(*.f64 y -12/29)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y -12/29) 8)))) 64)
(*.f64 y -12/29)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y -12/29) 8))))) 128)
(*.f64 y -12/29)
(pow.f64 (*.f64 y -12/29) 1)
(*.f64 y -12/29)
(-.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 0)
(*.f64 y (+.f64 (*.f64 3 x) -12/29))
(*.f64 y (+.f64 -12/29 (*.f64 3 x)))
(*.f64 y (+.f64 (*.f64 3 x) -12/29))
(*.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 1)
(*.f64 y (+.f64 (*.f64 3 x) -12/29))
(*.f64 1 (*.f64 y (+.f64 -12/29 (*.f64 3 x))))
(*.f64 y (+.f64 (*.f64 3 x) -12/29))
(*.f64 2 (+.f64 (*.f64 y (*.f64 x 3/2)) (*.f64 y -6/29)))
(*.f64 2 (+.f64 (*.f64 x (*.f64 3/2 y)) (*.f64 y -6/29)))
(*.f64 2 (*.f64 y (+.f64 (*.f64 x 3/2) -6/29)))
(*.f64 y (*.f64 (+.f64 (*.f64 x 3/2) -6/29) 2))
(*.f64 y (*.f64 2 (+.f64 (*.f64 x 3/2) -6/29)))
(*.f64 2 (*.f64 (*.f64 (+.f64 -12/29 (*.f64 3 x)) 1/2) y))
(*.f64 y (+.f64 (*.f64 3 x) -12/29))
(*.f64 (+.f64 (*.f64 y -24/29) (*.f64 (*.f64 y x) 6)) 1/2)
(*.f64 y (+.f64 (*.f64 3 x) -12/29))
(*.f64 (+.f64 y y) (*.f64 (+.f64 -12/29 (*.f64 3 x)) 1/2))
(*.f64 y (+.f64 (*.f64 3 x) -12/29))
(*.f64 (+.f64 y y) (/.f64 (+.f64 -12/29 (*.f64 3 x)) 2))
(*.f64 y (+.f64 (*.f64 3 x) -12/29))
(*.f64 (+.f64 y y) (+.f64 (*.f64 x 3/2) -6/29))
(*.f64 2 (+.f64 (*.f64 x (*.f64 3/2 y)) (*.f64 y -6/29)))
(*.f64 2 (*.f64 y (+.f64 (*.f64 x 3/2) -6/29)))
(*.f64 y (*.f64 (+.f64 (*.f64 x 3/2) -6/29) 2))
(*.f64 y (*.f64 2 (+.f64 (*.f64 x 3/2) -6/29)))
(*.f64 (+.f64 -12/29 (*.f64 3 x)) y)
(*.f64 y (+.f64 (*.f64 3 x) -12/29))
(*.f64 4 (/.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 4))
(*.f64 y (+.f64 (*.f64 3 x) -12/29))
(*.f64 (*.f64 y (*.f64 (+.f64 -12/29 (*.f64 3 x)) 4)) 1/4)
(*.f64 y (+.f64 (*.f64 3 x) -12/29))
(*.f64 (+.f64 -12/29 (+.f64 -12/29 (*.f64 x 6))) (*.f64 y 1/2))
(*.f64 y (+.f64 (*.f64 3 x) -12/29))
(*.f64 1/2 (+.f64 (*.f64 y -24/29) (*.f64 (*.f64 y x) 6)))
(*.f64 y (+.f64 (*.f64 3 x) -12/29))
(*.f64 (*.f64 y 1/2) (+.f64 -12/29 (+.f64 -12/29 (*.f64 x 6))))
(*.f64 y (+.f64 (*.f64 3 x) -12/29))
(*.f64 (*.f64 y 1/2) (+.f64 (*.f64 x 6) -24/29))
(*.f64 y (+.f64 (*.f64 3 x) -12/29))
(*.f64 (+.f64 (*.f64 y (*.f64 x 3/2)) (*.f64 y -6/29)) 2)
(*.f64 2 (+.f64 (*.f64 x (*.f64 3/2 y)) (*.f64 y -6/29)))
(*.f64 2 (*.f64 y (+.f64 (*.f64 x 3/2) -6/29)))
(*.f64 y (*.f64 (+.f64 (*.f64 x 3/2) -6/29) 2))
(*.f64 y (*.f64 2 (+.f64 (*.f64 x 3/2) -6/29)))
(*.f64 (*.f64 (+.f64 -12/29 (*.f64 3 x)) 1/2) (+.f64 y y))
(*.f64 y (+.f64 (*.f64 3 x) -12/29))
(*.f64 1/4 (*.f64 y (*.f64 (+.f64 -12/29 (*.f64 3 x)) 4)))
(*.f64 y (+.f64 (*.f64 3 x) -12/29))
(*.f64 (/.f64 (+.f64 -12/29 (*.f64 3 x)) 2) (+.f64 y y))
(*.f64 y (+.f64 (*.f64 3 x) -12/29))
(*.f64 (/.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 4) 4)
(*.f64 y (+.f64 (*.f64 3 x) -12/29))
(*.f64 (+.f64 (*.f64 x 3/2) -6/29) (+.f64 y y))
(*.f64 2 (+.f64 (*.f64 x (*.f64 3/2 y)) (*.f64 y -6/29)))
(*.f64 2 (*.f64 y (+.f64 (*.f64 x 3/2) -6/29)))
(*.f64 y (*.f64 (+.f64 (*.f64 x 3/2) -6/29) 2))
(*.f64 y (*.f64 2 (+.f64 (*.f64 x 3/2) -6/29)))
(*.f64 (+.f64 (*.f64 x 6) -24/29) (*.f64 y 1/2))
(*.f64 y (+.f64 (*.f64 3 x) -12/29))
(/.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 1)
(*.f64 y (+.f64 (*.f64 3 x) -12/29))
(/.f64 (+.f64 (*.f64 y -24/29) (*.f64 (*.f64 y x) 6)) 2)
(*.f64 y (+.f64 (*.f64 3 x) -12/29))
(/.f64 (*.f64 y (*.f64 (+.f64 -12/29 (*.f64 3 x)) 4)) 4)
(*.f64 y (+.f64 (*.f64 3 x) -12/29))
(/.f64 (*.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 8) 8)
(*.f64 y (+.f64 (*.f64 3 x) -12/29))
(/.f64 (*.f64 2 (*.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 8)) 16)
(*.f64 y (+.f64 (*.f64 3 x) -12/29))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 8))) 32)
(*.f64 y (+.f64 (*.f64 3 x) -12/29))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 8)))) 64)
(*.f64 y (+.f64 (*.f64 3 x) -12/29))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 8))))) 128)
(*.f64 y (+.f64 (*.f64 3 x) -12/29))
(pow.f64 (*.f64 y (+.f64 -12/29 (*.f64 3 x))) 1)
(*.f64 y (+.f64 (*.f64 3 x) -12/29))

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)

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)

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)

rewrite271.0ms (2.3%)

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)))))

simplify972.0ms (8.2%)

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))

localize9.0ms (0.1%)

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)

rewrite433.0ms (3.6%)

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)))))

simplify653.0ms (5.5%)

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))

eval43.0ms (0.4%)

Compiler

Compiled 1978 to 1466 computations (25.9% saved)

prune683.0ms (5.7%)

Pruning

8 alts after pruning (3 fresh and 5 done)

PrunedKeptTotal
New1820182
Fresh033
Picked011
Done044
Total1828190
Error
0.0b
Counts
190 → 8
Alt Table
Click to see full alt table
StatusErrorProgram
0.2b
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
0.2b
(*.f64 (-.f64 (*.f64 3 x) 12/29) y)
32.5b
(*.f64 (*.f64 x 3) y)
32.5b
(*.f64 x (*.f64 3 y))
0.3b
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
32.5b
(*.f64 3 (*.f64 y x))
30.4b
(*.f64 -4/29 (*.f64 3 y))
30.3b
(*.f64 -12/29 y)
Compiler

Compiled 62 to 47 computations (24.2% saved)

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))

rewrite464.0ms (3.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)))))

simplify285.0ms (2.4%)

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)

localize9.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
x
@-inf
(*.f64 3 (*.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)))

rewrite236.0ms (2%)

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)))))

simplify614.0ms (5.2%)

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))

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)

series0.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

rewrite239.0ms (2%)

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)))))

simplify1.1s (8.9%)

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))

eval135.0ms (1.1%)

Compiler

Compiled 1368 to 1094 computations (20% saved)

prune18.0ms (0.2%)

Pruning

9 alts after pruning (1 fresh and 8 done)

PrunedKeptTotal
New1191120
Fresh000
Picked011
Done077
Total1199128
Error
0.0b
Counts
128 → 9
Alt Table
Click to see full alt table
StatusErrorProgram
0.2b
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
0.2b
(*.f64 (-.f64 (*.f64 3 x) 12/29) y)
32.5b
(*.f64 (*.f64 x 3) y)
32.5b
(*.f64 x (*.f64 3 y))
0.3b
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
32.5b
(*.f64 3 (*.f64 y x))
30.4b
(*.f64 3 (*.f64 y -4/29))
30.4b
(*.f64 -4/29 (*.f64 3 y))
30.3b
(*.f64 -12/29 y)
Compiler

Compiled 69 to 53 computations (23.2% saved)

localize5.0ms (0%)

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
@0
(*.f64 y -4/29)
0.0ms
y
@inf
(*.f64 y -4/29)
0.0ms
y
@0
(*.f64 3 (*.f64 y -4/29))
0.0ms
y
@inf
(*.f64 3 (*.f64 y -4/29))

rewrite397.0ms (3.3%)

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)))))

simplify452.0ms (3.8%)

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)

eval12.0ms (0.1%)

Compiler

Compiled 465 to 418 computations (10.1% saved)

prune10.0ms (0.1%)

Pruning

9 alts after pruning (0 fresh and 9 done)

PrunedKeptTotal
New41041
Fresh000
Picked011
Done088
Total41950
Error
0.0b
Counts
50 → 9
Alt Table
Click to see full alt table
StatusErrorProgram
0.2b
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
0.2b
(*.f64 (-.f64 (*.f64 3 x) 12/29) y)
32.5b
(*.f64 (*.f64 x 3) y)
32.5b
(*.f64 x (*.f64 3 y))
0.3b
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
32.5b
(*.f64 3 (*.f64 y x))
30.4b
(*.f64 3 (*.f64 y -4/29))
30.4b
(*.f64 -4/29 (*.f64 3 y))
30.3b
(*.f64 -12/29 y)
Compiler

Compiled 69 to 53 computations (23.2% saved)

regimes38.0ms (0.3%)

Counts
12 → 1
Calls
Call 1
Inputs
(*.f64 -12/29 y)
(*.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 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 (-.f64 x (/.f64 16 116)) 3) y)
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
Outputs
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
Calls

5 calls:

8.0ms
(*.f64 (*.f64 (-.f64 x (/.f64 16 116)) 3) y)
8.0ms
y
7.0ms
(-.f64 x (/.f64 16 116))
7.0ms
x
5.0ms
(*.f64 (-.f64 x (/.f64 16 116)) 3)
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 109 to 80 computations (26.6% saved)

regimes35.0ms (0.3%)

Counts
11 → 1
Calls
Call 1
Inputs
(*.f64 -12/29 y)
(*.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 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 (-.f64 x (/.f64 16 116)) 3) y)
Outputs
(*.f64 (-.f64 (*.f64 3 x) 12/29) y)
Calls

5 calls:

8.0ms
(*.f64 (*.f64 (-.f64 x (/.f64 16 116)) 3) y)
7.0ms
x
7.0ms
y
5.0ms
(*.f64 (-.f64 x (/.f64 16 116)) 3)
4.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 100 to 75 computations (25% saved)

regimes17.0ms (0.1%)

Counts
9 → 1
Calls
Call 1
Inputs
(*.f64 -12/29 y)
(*.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 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:

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

Compiled 57 to 40 computations (29.8% saved)

regimes12.0ms (0.1%)

Counts
7 → 1
Calls
Call 1
Inputs
(*.f64 -12/29 y)
(*.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 3 (*.f64 y (-.f64 x 4/29)))
Outputs
(*.f64 3 (*.f64 y (-.f64 x 4/29)))
Calls

2 calls:

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

Compiled 43 to 30 computations (30.2% saved)

regimes56.0ms (0.5%)

Counts
6 → 3
Calls
Call 1
Inputs
(*.f64 -12/29 y)
(*.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 x (*.f64 3 y))
(*.f64 -12/29 y)
(*.f64 (*.f64 x 3) y)
Calls

2 calls:

41.0ms
y
13.0ms
x
Results
ErrorSegmentsBranch
1.3b3x
21.3b9y
Compiler

Compiled 36 to 25 computations (30.6% saved)

bsearch32.0ms (0.3%)

Algorithm
binary-search
Steps
TimeLeftRight
18.0ms
7.580145340462773e-12
488628.45451538445
14.0ms
-868.8664824357297
-0.022831179921884617
Results
28.0ms288×body256valid
Compiler

Compiled 268 to 211 computations (21.3% saved)

regimes50.0ms (0.4%)

Counts
5 → 3
Calls
Call 1
Inputs
(*.f64 -12/29 y)
(*.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 3 (*.f64 y x))
Calls

2 calls:

36.0ms
y
12.0ms
x
Results
ErrorSegmentsBranch
1.3b3x
21.3b9y
Compiler

Compiled 31 to 22 computations (29% saved)

bsearch31.0ms (0.3%)

Algorithm
binary-search
Steps
TimeLeftRight
17.0ms
7.580145340462773e-12
488628.45451538445
14.0ms
-868.8664824357297
-0.022831179921884617
Results
28.0ms288×body256valid
Compiler

Compiled 268 to 211 computations (21.3% saved)

regimes630.0ms (5.3%)

Counts
4 → 3
Calls
Call 1
Inputs
(*.f64 -12/29 y)
(*.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:

432.0ms
x
197.0ms
y
Results
ErrorSegmentsBranch
1.3b3x
21.3b9y
Compiler

Compiled 26 to 19 computations (26.9% saved)

bsearch35.0ms (0.3%)

Algorithm
binary-search
Steps
TimeLeftRight
19.0ms
7.580145340462773e-12
488628.45451538445
15.0ms
-868.8664824357297
-0.022831179921884617
Results
31.0ms288×body256valid
Compiler

Compiled 268 to 211 computations (21.3% saved)

regimes9.0ms (0.1%)

Accuracy

Total -0.2b remaining (-0.7%)

Threshold costs -0.2b (-0.7%)

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

2 calls:

5.0ms
x
3.0ms
y
Results
ErrorSegmentsBranch
30.3b1x
30.3b1y
Compiler

Compiled 21 to 16 computations (23.8% saved)

simplify5.0ms (0%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
036242
Stop Event
done
saturated
Calls
Call 1
Inputs
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(*.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 -1261007895663739/9007199254740992) (*.f64 x (*.f64 3 y)) (if (<=.f64 x 607985949695017/4503599627370496) (*.f64 -12/29 y) (*.f64 (*.f64 x 3) y)))
(if (<=.f64 x -1261007895663739/9007199254740992) (*.f64 x (*.f64 3 y)) (if (<=.f64 x 607985949695017/4503599627370496) (*.f64 -12/29 y) (*.f64 3 (*.f64 y x))))
(if (<=.f64 x -1261007895663739/9007199254740992) (*.f64 3 (*.f64 y x)) (if (<=.f64 x 607985949695017/4503599627370496) (*.f64 -12/29 y) (*.f64 3 (*.f64 y x))))
(*.f64 -12/29 y)
Outputs
(+.f64 (*.f64 3 (*.f64 y x)) (*.f64 -12/29 y))
(*.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 -1261007895663739/9007199254740992) (*.f64 x (*.f64 3 y)) (if (<=.f64 x 607985949695017/4503599627370496) (*.f64 -12/29 y) (*.f64 (*.f64 x 3) y)))
(if (<=.f64 x -1261007895663739/9007199254740992) (*.f64 x (*.f64 3 y)) (if (<=.f64 x 607985949695017/4503599627370496) (*.f64 -12/29 y) (*.f64 3 (*.f64 y x))))
(if (<=.f64 x -1261007895663739/9007199254740992) (*.f64 3 (*.f64 y x)) (if (<=.f64 x 607985949695017/4503599627370496) (*.f64 -12/29 y) (*.f64 3 (*.f64 y x))))
(*.f64 -12/29 y)
Compiler

Compiled 112 to 80 computations (28.6% saved)

soundness11.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
Compiler

Compiled 18 to 14 computations (22.2% saved)

end219.0ms (1.8%)

Compiler

Compiled 98 to 64 computations (34.7% saved)

Profiling

Loading profile data...