Details

Time bar (total: 10.3s)

analyze3.0ms (0%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%100%0%0%0%0%0
0%0%100%0%0%0%0%1
0%0%100%0%0%0%0%2
50%50%50%0%0%0%0%3
66.7%50%25%0%25%0%0%4
83.3%62.5%12.5%0%25%0%0%5
91.7%68.7%6.2%0%25%0%0%6
95.8%71.8%3.1%0%25%0%0%7
97.9%73.4%1.6%0%25%0%0%8
99%74.2%0.8%0%25%0%0%9
99.5%74.6%0.4%0%25%0%0%10
99.7%74.8%0.2%0%25%0%0%11
99.9%74.9%0.1%0%25%0%0%12
Compiler

Compiled 11 to 9 computations (18.2% saved)

sample997.0ms (9.7%)

Results
807.0ms7623×body256valid
151.0ms416×body1024valid
28.0ms217×body512valid
1.0msbody256infinite
Bogosity

preprocess5.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0925
11225
21525
31825
011
Stop Event
saturated
saturated
Calls
Call 1
Inputs
0
Outputs
0
Call 2
Inputs
(*.f64 (*.f64 3 (-.f64 2 (*.f64 x 3))) x)
Outputs
(*.f64 (*.f64 3 (-.f64 2 (*.f64 x 3))) x)
(*.f64 x (*.f64 3 (-.f64 2 (*.f64 3 x))))
Compiler

Compiled 11 to 9 computations (18.2% saved)

simplify7.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0925
11225
21525
31825
Stop Event
saturated
Counts
1 → 2
Calls
Call 1
Inputs
(*.f64 (*.f64 3 (-.f64 2 (*.f64 x 3))) x)
Outputs
(*.f64 (*.f64 3 (-.f64 2 (*.f64 x 3))) x)
(*.f64 x (*.f64 3 (-.f64 2 (*.f64 3 x))))

eval1.0ms (0%)

Compiler

Compiled 19 to 15 computations (21.1% saved)

prune1.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New112
Fresh011
Picked000
Done000
Total123
Error
0.2b
Counts
3 → 1
Alt Table
Click to see full alt table
StatusErrorProgram
0.2b
(*.f64 (*.f64 3 (-.f64 2 (*.f64 x 3))) x)
Compiler

Compiled 10 to 8 computations (20% saved)

localize11.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(-.f64 2 (*.f64 x 3))
0.1b
(*.f64 (*.f64 3 (-.f64 2 (*.f64 x 3))) x)
0.1b
(*.f64 3 (-.f64 2 (*.f64 x 3)))
Compiler

Compiled 28 to 22 computations (21.4% saved)

series2.0ms (0%)

Counts
3 → 36
Calls

9 calls:

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

rewrite85.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
1332×bool.json-1
1332×bool.json-2
1282×rational.json-1
1282×rational.json-2
1282×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0957
18957
223257
348157
498757
5220557
6481457
Stop Event
node limit
Counts
3 → 69
Calls
Call 1
Inputs
(*.f64 3 (-.f64 2 (*.f64 x 3)))
(*.f64 (*.f64 3 (-.f64 2 (*.f64 x 3))) x)
(-.f64 2 (*.f64 x 3))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 2 (*.f64 3 x)) (*.f64 2 (-.f64 2 (*.f64 3 x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 2 (*.f64 3 x)) (neg.f64 (+.f64 -2 (+.f64 (*.f64 x 6) -2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 3 (-.f64 2 (*.f64 3 x))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 3 (-.f64 2 (*.f64 3 x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 2 (-.f64 2 (*.f64 3 x))) (-.f64 2 (*.f64 3 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (+.f64 (+.f64 -1 (*.f64 2 (neg.f64 (+.f64 (*.f64 3 x) -3)))) (-.f64 2 (*.f64 3 x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (+.f64 (neg.f64 (+.f64 (*.f64 3 x) -3)) (*.f64 2 (-.f64 2 (*.f64 3 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (+.f64 (*.f64 3 x) -3)) (+.f64 -1 (*.f64 2 (-.f64 2 (*.f64 3 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 2 (*.f64 3 x)) 3/2) (*.f64 (-.f64 2 (*.f64 3 x)) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (+.f64 -2 (+.f64 (*.f64 x 6) -2))) (-.f64 2 (*.f64 3 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (+.f64 -1 (*.f64 2 (neg.f64 (+.f64 (*.f64 3 x) -3)))) (-.f64 2 (*.f64 3 x))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (neg.f64 (+.f64 (*.f64 3 x) -3)) (*.f64 2 (-.f64 2 (*.f64 3 x)))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 -1 (*.f64 2 (-.f64 2 (*.f64 3 x)))) (neg.f64 (+.f64 (*.f64 3 x) -3)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 3 (-.f64 2 (*.f64 3 x))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 3 (-.f64 2 (*.f64 3 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 2 (*.f64 3 x)) 6) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 2 (*.f64 3 x)) 12) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (-.f64 2 (*.f64 3 x)) 12)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 2 (*.f64 3 x)) 12))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 2 (*.f64 3 x)) 12)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 2 (*.f64 3 x)) 12)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 2 (*.f64 3 x)) 12))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 3 (-.f64 2 (*.f64 3 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 3 (-.f64 2 (*.f64 3 x))) (*.f64 3 (-.f64 2 (*.f64 3 x))))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 3 (-.f64 2 (*.f64 3 x))) (*.f64 3 (-.f64 2 (*.f64 3 x))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 3 (-.f64 2 (*.f64 3 x)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (*.f64 3 (-.f64 2 (*.f64 3 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (-.f64 2 (*.f64 3 x))) (*.f64 (-.f64 2 (*.f64 3 x)) (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 2 (*.f64 3 x)) (+.f64 x x)) (*.f64 x (-.f64 2 (*.f64 3 x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 2 (*.f64 3 x)) (*.f64 x 3/2)) (*.f64 (-.f64 2 (*.f64 3 x)) (*.f64 x 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (*.f64 3 (-.f64 2 (*.f64 3 x)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 3 (-.f64 2 (*.f64 3 x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 2 (*.f64 3 x)) (*.f64 x 6)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 (-.f64 2 (*.f64 3 x)) 12)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 x (*.f64 (-.f64 2 (*.f64 3 x)) 12))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (-.f64 2 (*.f64 3 x)) 12)))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (-.f64 2 (*.f64 3 x)) 12))))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (-.f64 2 (*.f64 3 x)) 12))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (-.f64 2 (*.f64 3 x)) 12)))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 x (*.f64 3 (-.f64 2 (*.f64 3 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 x (*.f64 3 (-.f64 2 (*.f64 3 x)))) (*.f64 x (*.f64 3 (-.f64 2 (*.f64 3 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 x (*.f64 3 (-.f64 2 (*.f64 3 x)))) (*.f64 x (*.f64 3 (-.f64 2 (*.f64 3 x)))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 2 (*.f64 3 x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (-.f64 2 (*.f64 3 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -2 (-.f64 1 (+.f64 (*.f64 3 x) -3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (neg.f64 (+.f64 (*.f64 3 x) -3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (+.f64 (*.f64 3 x) -3)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 2 (*.f64 3 x)) 1/2) (*.f64 (-.f64 2 (*.f64 3 x)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (-.f64 2 (*.f64 3 x)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 2 (*.f64 3 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 2 (*.f64 3 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (-.f64 2 (*.f64 3 x))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 3 x) -2) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (-.f64 2 (*.f64 3 x)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 2 (*.f64 3 x)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (+.f64 (*.f64 3 x) -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 2 (-.f64 2 (*.f64 3 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 2 (*.f64 3 x)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (-.f64 2 (*.f64 3 x)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 2 (*.f64 3 x)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 2 (*.f64 3 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (-.f64 2 (*.f64 3 x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 3 x) -2) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 2 (*.f64 3 x)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 -2 (+.f64 (*.f64 x 6) -2)) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 2 (*.f64 3 x)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 3 x) -2) 4) -4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (-.f64 2 (*.f64 3 x)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 -2 (+.f64 (*.f64 x 6) -2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) -2) 4)) -8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 2 (*.f64 3 x)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (neg.f64 (+.f64 -2 (+.f64 (*.f64 x 6) -2)))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 (+.f64 (*.f64 3 x) -2) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 2 (*.f64 3 x)) 8))) (*.f64 2 (*.f64 2 (*.f64 (-.f64 2 (*.f64 3 x)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (neg.f64 (+.f64 -2 (+.f64 (*.f64 x 6) -2)))) (*.f64 2 (neg.f64 (+.f64 -2 (+.f64 (*.f64 x 6) -2))))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (neg.f64 (*.f64 (+.f64 (*.f64 3 x) -2) 4)) (neg.f64 (*.f64 (+.f64 (*.f64 3 x) -2) 4))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (+.f64 (*.f64 3 x) -2))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (-.f64 2 (*.f64 3 x))))))) (#(struct:change #<rule egg-rr> (2) ((x and (-.f64 2 (*.f64 3 x)) (-.f64 2 (*.f64 3 x)))))) (#(struct:change #<rule egg-rr> (2) ((x or (-.f64 2 (*.f64 3 x)) (-.f64 2 (*.f64 3 x)))))))

simplify605.0ms (5.9%)

Algorithm
egg-herbie
Rules
3302×rational.json-simplify-2
2866×rational.json-simplify-35
1722×rational.json-simplify-53
1316×rational.json-simplify-1
1016×rational.json-simplify-51
Iterations

Useful iterations: 5 (0.0ms)

IterNodesCost
01522231
13241955
28401943
317821943
437661931
543761927
645811927
747581927
849191927
950961927
1065651927
1166081927
1266211927
1366221927
1466221927
1567611927
1669001927
1770391927
1871781927
Stop Event
node limit
Counts
105 → 100
Calls
Call 1
Inputs
6
(+.f64 (*.f64 -9 x) 6)
(+.f64 (*.f64 -9 x) 6)
(+.f64 (*.f64 -9 x) 6)
(*.f64 -9 x)
(+.f64 6 (*.f64 -9 x))
(+.f64 6 (*.f64 -9 x))
(+.f64 6 (*.f64 -9 x))
(*.f64 -9 x)
(+.f64 6 (*.f64 -9 x))
(+.f64 6 (*.f64 -9 x))
(+.f64 6 (*.f64 -9 x))
(*.f64 6 x)
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(*.f64 -9 (pow.f64 x 2))
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(*.f64 -9 (pow.f64 x 2))
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
2
(+.f64 (*.f64 -3 x) 2)
(+.f64 (*.f64 -3 x) 2)
(+.f64 (*.f64 -3 x) 2)
(*.f64 -3 x)
(+.f64 2 (*.f64 -3 x))
(+.f64 2 (*.f64 -3 x))
(+.f64 2 (*.f64 -3 x))
(*.f64 -3 x)
(+.f64 2 (*.f64 -3 x))
(+.f64 2 (*.f64 -3 x))
(+.f64 2 (*.f64 -3 x))
(+.f64 (-.f64 2 (*.f64 3 x)) (*.f64 2 (-.f64 2 (*.f64 3 x))))
(+.f64 (-.f64 2 (*.f64 3 x)) (neg.f64 (+.f64 -2 (+.f64 (*.f64 x 6) -2))))
(+.f64 (*.f64 3 (-.f64 2 (*.f64 3 x))) 0)
(+.f64 0 (*.f64 3 (-.f64 2 (*.f64 3 x))))
(+.f64 (*.f64 2 (-.f64 2 (*.f64 3 x))) (-.f64 2 (*.f64 3 x)))
(+.f64 -1 (+.f64 (+.f64 -1 (*.f64 2 (neg.f64 (+.f64 (*.f64 3 x) -3)))) (-.f64 2 (*.f64 3 x))))
(+.f64 -1 (+.f64 (neg.f64 (+.f64 (*.f64 3 x) -3)) (*.f64 2 (-.f64 2 (*.f64 3 x)))))
(+.f64 (neg.f64 (+.f64 (*.f64 3 x) -3)) (+.f64 -1 (*.f64 2 (-.f64 2 (*.f64 3 x)))))
(+.f64 (*.f64 (-.f64 2 (*.f64 3 x)) 3/2) (*.f64 (-.f64 2 (*.f64 3 x)) 3/2))
(+.f64 (neg.f64 (+.f64 -2 (+.f64 (*.f64 x 6) -2))) (-.f64 2 (*.f64 3 x)))
(+.f64 (+.f64 (+.f64 -1 (*.f64 2 (neg.f64 (+.f64 (*.f64 3 x) -3)))) (-.f64 2 (*.f64 3 x))) -1)
(+.f64 (+.f64 (neg.f64 (+.f64 (*.f64 3 x) -3)) (*.f64 2 (-.f64 2 (*.f64 3 x)))) -1)
(+.f64 (+.f64 -1 (*.f64 2 (-.f64 2 (*.f64 3 x)))) (neg.f64 (+.f64 (*.f64 3 x) -3)))
(-.f64 (*.f64 3 (-.f64 2 (*.f64 3 x))) 0)
(/.f64 (*.f64 3 (-.f64 2 (*.f64 3 x))) 1)
(/.f64 (*.f64 (-.f64 2 (*.f64 3 x)) 6) 2)
(/.f64 (*.f64 (-.f64 2 (*.f64 3 x)) 12) 4)
(/.f64 (*.f64 2 (*.f64 (-.f64 2 (*.f64 3 x)) 12)) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 2 (*.f64 3 x)) 12))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 2 (*.f64 3 x)) 12)))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 2 (*.f64 3 x)) 12)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 2 (*.f64 3 x)) 12))))) 64)
(+.f64 (*.f64 x (*.f64 3 (-.f64 2 (*.f64 3 x)))) 0)
(+.f64 0 (*.f64 x (*.f64 3 (-.f64 2 (*.f64 3 x)))))
(+.f64 (*.f64 x (-.f64 2 (*.f64 3 x))) (*.f64 (-.f64 2 (*.f64 3 x)) (+.f64 x x)))
(+.f64 (*.f64 (-.f64 2 (*.f64 3 x)) (+.f64 x x)) (*.f64 x (-.f64 2 (*.f64 3 x))))
(+.f64 (*.f64 (-.f64 2 (*.f64 3 x)) (*.f64 x 3/2)) (*.f64 (-.f64 2 (*.f64 3 x)) (*.f64 x 3/2)))
(-.f64 (*.f64 x (*.f64 3 (-.f64 2 (*.f64 3 x)))) 0)
(/.f64 (*.f64 x (*.f64 3 (-.f64 2 (*.f64 3 x)))) 1)
(/.f64 (*.f64 (-.f64 2 (*.f64 3 x)) (*.f64 x 6)) 2)
(/.f64 (*.f64 x (*.f64 (-.f64 2 (*.f64 3 x)) 12)) 4)
(/.f64 (*.f64 2 (*.f64 x (*.f64 (-.f64 2 (*.f64 3 x)) 12))) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (-.f64 2 (*.f64 3 x)) 12)))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (-.f64 2 (*.f64 3 x)) 12))))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (-.f64 2 (*.f64 3 x)) 12))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (-.f64 2 (*.f64 3 x)) 12)))))) 64)
(+.f64 (-.f64 2 (*.f64 3 x)) 0)
(+.f64 0 (-.f64 2 (*.f64 3 x)))
(+.f64 -2 (-.f64 1 (+.f64 (*.f64 3 x) -3)))
(+.f64 -1 (neg.f64 (+.f64 (*.f64 3 x) -3)))
(+.f64 (neg.f64 (+.f64 (*.f64 3 x) -3)) -1)
(+.f64 (*.f64 (-.f64 2 (*.f64 3 x)) 1/2) (*.f64 (-.f64 2 (*.f64 3 x)) 1/2))
(*.f64 2 (*.f64 (-.f64 2 (*.f64 3 x)) 1/2))
(*.f64 (-.f64 2 (*.f64 3 x)) 1)
(*.f64 1 (-.f64 2 (*.f64 3 x)))
(*.f64 (*.f64 2 (-.f64 2 (*.f64 3 x))) 1/2)
(*.f64 (+.f64 (*.f64 3 x) -2) -1)
(*.f64 4 (/.f64 (-.f64 2 (*.f64 3 x)) 4))
(*.f64 (*.f64 (-.f64 2 (*.f64 3 x)) 4) 1/4)
(*.f64 -1 (+.f64 (*.f64 3 x) -2))
(*.f64 1/2 (*.f64 2 (-.f64 2 (*.f64 3 x))))
(*.f64 (*.f64 (-.f64 2 (*.f64 3 x)) 1/2) 2)
(*.f64 1/4 (*.f64 (-.f64 2 (*.f64 3 x)) 4))
(*.f64 (/.f64 (-.f64 2 (*.f64 3 x)) 4) 4)
(/.f64 (-.f64 2 (*.f64 3 x)) 1)
(/.f64 (*.f64 2 (-.f64 2 (*.f64 3 x))) 2)
(/.f64 (+.f64 (*.f64 3 x) -2) -1)
(/.f64 (*.f64 (-.f64 2 (*.f64 3 x)) 4) 4)
(/.f64 (+.f64 -2 (+.f64 (*.f64 x 6) -2)) -2)
(/.f64 (*.f64 (-.f64 2 (*.f64 3 x)) 8) 8)
(/.f64 (*.f64 (+.f64 (*.f64 3 x) -2) 4) -4)
(/.f64 (*.f64 2 (*.f64 (-.f64 2 (*.f64 3 x)) 8)) 16)
(/.f64 (neg.f64 (+.f64 -2 (+.f64 (*.f64 x 6) -2))) 2)
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) -2) 4)) -8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 2 (*.f64 3 x)) 8))) 32)
(/.f64 (*.f64 2 (neg.f64 (+.f64 -2 (+.f64 (*.f64 x 6) -2)))) 4)
(/.f64 (neg.f64 (*.f64 (+.f64 (*.f64 3 x) -2) 4)) 4)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 2 (*.f64 3 x)) 8))) (*.f64 2 (*.f64 2 (*.f64 (-.f64 2 (*.f64 3 x)) 8)))) 64)
(/.f64 (+.f64 (*.f64 2 (neg.f64 (+.f64 -2 (+.f64 (*.f64 x 6) -2)))) (*.f64 2 (neg.f64 (+.f64 -2 (+.f64 (*.f64 x 6) -2))))) 8)
(/.f64 (+.f64 (neg.f64 (*.f64 (+.f64 (*.f64 3 x) -2) 4)) (neg.f64 (*.f64 (+.f64 (*.f64 3 x) -2) 4))) 8)
(neg.f64 (+.f64 (*.f64 3 x) -2))
Outputs
6
(+.f64 (*.f64 -9 x) 6)
(+.f64 6 (*.f64 -9 x))
(+.f64 (*.f64 -9 x) 6)
(+.f64 6 (*.f64 -9 x))
(+.f64 (*.f64 -9 x) 6)
(+.f64 6 (*.f64 -9 x))
(*.f64 -9 x)
(+.f64 6 (*.f64 -9 x))
(+.f64 6 (*.f64 -9 x))
(+.f64 6 (*.f64 -9 x))
(*.f64 -9 x)
(+.f64 6 (*.f64 -9 x))
(+.f64 6 (*.f64 -9 x))
(+.f64 6 (*.f64 -9 x))
(*.f64 6 x)
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(+.f64 (*.f64 -9 (pow.f64 x 2)) (*.f64 6 x))
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(+.f64 (*.f64 -9 (pow.f64 x 2)) (*.f64 6 x))
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(+.f64 (*.f64 -9 (pow.f64 x 2)) (*.f64 6 x))
(*.f64 -9 (pow.f64 x 2))
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(+.f64 (*.f64 -9 (pow.f64 x 2)) (*.f64 6 x))
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(+.f64 (*.f64 -9 (pow.f64 x 2)) (*.f64 6 x))
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(+.f64 (*.f64 -9 (pow.f64 x 2)) (*.f64 6 x))
(*.f64 -9 (pow.f64 x 2))
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(+.f64 (*.f64 -9 (pow.f64 x 2)) (*.f64 6 x))
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(+.f64 (*.f64 -9 (pow.f64 x 2)) (*.f64 6 x))
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(+.f64 (*.f64 -9 (pow.f64 x 2)) (*.f64 6 x))
2
(+.f64 (*.f64 -3 x) 2)
(+.f64 2 (*.f64 x -3))
(+.f64 (*.f64 -3 x) 2)
(+.f64 2 (*.f64 x -3))
(+.f64 (*.f64 -3 x) 2)
(+.f64 2 (*.f64 x -3))
(*.f64 -3 x)
(*.f64 x -3)
(+.f64 2 (*.f64 -3 x))
(+.f64 2 (*.f64 x -3))
(+.f64 2 (*.f64 -3 x))
(+.f64 2 (*.f64 x -3))
(+.f64 2 (*.f64 -3 x))
(+.f64 2 (*.f64 x -3))
(*.f64 -3 x)
(*.f64 x -3)
(+.f64 2 (*.f64 -3 x))
(+.f64 2 (*.f64 x -3))
(+.f64 2 (*.f64 -3 x))
(+.f64 2 (*.f64 x -3))
(+.f64 2 (*.f64 -3 x))
(+.f64 2 (*.f64 x -3))
(+.f64 (-.f64 2 (*.f64 3 x)) (*.f64 2 (-.f64 2 (*.f64 3 x))))
(+.f64 (-.f64 2 (*.f64 x 3)) (*.f64 2 (-.f64 2 (*.f64 x 3))))
(*.f64 3 (-.f64 2 (*.f64 x 3)))
(+.f64 (-.f64 2 (*.f64 3 x)) (neg.f64 (+.f64 -2 (+.f64 (*.f64 x 6) -2))))
(+.f64 (-.f64 2 (*.f64 x 3)) (neg.f64 (+.f64 (*.f64 6 x) -4)))
(+.f64 (*.f64 3 (-.f64 2 (*.f64 3 x))) 0)
(+.f64 (-.f64 2 (*.f64 x 3)) (*.f64 2 (-.f64 2 (*.f64 x 3))))
(*.f64 3 (-.f64 2 (*.f64 x 3)))
(+.f64 0 (*.f64 3 (-.f64 2 (*.f64 3 x))))
(+.f64 (-.f64 2 (*.f64 x 3)) (*.f64 2 (-.f64 2 (*.f64 x 3))))
(*.f64 3 (-.f64 2 (*.f64 x 3)))
(+.f64 (*.f64 2 (-.f64 2 (*.f64 3 x))) (-.f64 2 (*.f64 3 x)))
(+.f64 (-.f64 2 (*.f64 x 3)) (*.f64 2 (-.f64 2 (*.f64 x 3))))
(*.f64 3 (-.f64 2 (*.f64 x 3)))
(+.f64 -1 (+.f64 (+.f64 -1 (*.f64 2 (neg.f64 (+.f64 (*.f64 3 x) -3)))) (-.f64 2 (*.f64 3 x))))
(+.f64 (+.f64 -1 (*.f64 2 (neg.f64 (+.f64 -3 (*.f64 x 3))))) (+.f64 (-.f64 2 (*.f64 x 3)) -1))
(+.f64 (-.f64 2 (*.f64 x 3)) (+.f64 (+.f64 -1 (*.f64 (+.f64 -3 (*.f64 x 3)) -2)) -1))
(+.f64 (-.f64 2 (*.f64 x 3)) (+.f64 (*.f64 -2 (+.f64 -3 (*.f64 x 3))) -2))
(+.f64 (-.f64 2 (*.f64 x 3)) (+.f64 -2 (*.f64 -2 (+.f64 -3 (*.f64 x 3)))))
(+.f64 (*.f64 -2 (+.f64 -3 (*.f64 x 3))) (-.f64 0 (*.f64 x 3)))
(+.f64 (*.f64 -2 (+.f64 -3 (*.f64 x 3))) (neg.f64 (*.f64 x 3)))
(+.f64 -1 (+.f64 (neg.f64 (+.f64 (*.f64 3 x) -3)) (*.f64 2 (-.f64 2 (*.f64 3 x)))))
(+.f64 (neg.f64 (+.f64 -3 (*.f64 x 3))) (+.f64 (*.f64 2 (-.f64 2 (*.f64 x 3))) -1))
(+.f64 (*.f64 2 (-.f64 2 (*.f64 x 3))) (-.f64 -1 (+.f64 -3 (*.f64 x 3))))
(+.f64 (neg.f64 (+.f64 (*.f64 3 x) -3)) (+.f64 -1 (*.f64 2 (-.f64 2 (*.f64 3 x)))))
(+.f64 (neg.f64 (+.f64 -3 (*.f64 x 3))) (+.f64 (*.f64 2 (-.f64 2 (*.f64 x 3))) -1))
(+.f64 (*.f64 2 (-.f64 2 (*.f64 x 3))) (-.f64 -1 (+.f64 -3 (*.f64 x 3))))
(+.f64 (*.f64 (-.f64 2 (*.f64 3 x)) 3/2) (*.f64 (-.f64 2 (*.f64 3 x)) 3/2))
(+.f64 (-.f64 2 (*.f64 x 3)) (*.f64 2 (-.f64 2 (*.f64 x 3))))
(*.f64 3 (-.f64 2 (*.f64 x 3)))
(+.f64 (neg.f64 (+.f64 -2 (+.f64 (*.f64 x 6) -2))) (-.f64 2 (*.f64 3 x)))
(+.f64 (-.f64 2 (*.f64 x 3)) (neg.f64 (+.f64 (*.f64 6 x) -4)))
(+.f64 (+.f64 (+.f64 -1 (*.f64 2 (neg.f64 (+.f64 (*.f64 3 x) -3)))) (-.f64 2 (*.f64 3 x))) -1)
(+.f64 (+.f64 -1 (*.f64 2 (neg.f64 (+.f64 -3 (*.f64 x 3))))) (+.f64 (-.f64 2 (*.f64 x 3)) -1))
(+.f64 (-.f64 2 (*.f64 x 3)) (+.f64 (+.f64 -1 (*.f64 (+.f64 -3 (*.f64 x 3)) -2)) -1))
(+.f64 (-.f64 2 (*.f64 x 3)) (+.f64 (*.f64 -2 (+.f64 -3 (*.f64 x 3))) -2))
(+.f64 (-.f64 2 (*.f64 x 3)) (+.f64 -2 (*.f64 -2 (+.f64 -3 (*.f64 x 3)))))
(+.f64 (*.f64 -2 (+.f64 -3 (*.f64 x 3))) (-.f64 0 (*.f64 x 3)))
(+.f64 (*.f64 -2 (+.f64 -3 (*.f64 x 3))) (neg.f64 (*.f64 x 3)))
(+.f64 (+.f64 (neg.f64 (+.f64 (*.f64 3 x) -3)) (*.f64 2 (-.f64 2 (*.f64 3 x)))) -1)
(+.f64 (neg.f64 (+.f64 -3 (*.f64 x 3))) (+.f64 (*.f64 2 (-.f64 2 (*.f64 x 3))) -1))
(+.f64 (*.f64 2 (-.f64 2 (*.f64 x 3))) (-.f64 -1 (+.f64 -3 (*.f64 x 3))))
(+.f64 (+.f64 -1 (*.f64 2 (-.f64 2 (*.f64 3 x)))) (neg.f64 (+.f64 (*.f64 3 x) -3)))
(+.f64 (neg.f64 (+.f64 -3 (*.f64 x 3))) (+.f64 (*.f64 2 (-.f64 2 (*.f64 x 3))) -1))
(+.f64 (*.f64 2 (-.f64 2 (*.f64 x 3))) (-.f64 -1 (+.f64 -3 (*.f64 x 3))))
(-.f64 (*.f64 3 (-.f64 2 (*.f64 3 x))) 0)
(+.f64 (-.f64 2 (*.f64 x 3)) (*.f64 2 (-.f64 2 (*.f64 x 3))))
(*.f64 3 (-.f64 2 (*.f64 x 3)))
(/.f64 (*.f64 3 (-.f64 2 (*.f64 3 x))) 1)
(+.f64 (-.f64 2 (*.f64 x 3)) (*.f64 2 (-.f64 2 (*.f64 x 3))))
(*.f64 3 (-.f64 2 (*.f64 x 3)))
(/.f64 (*.f64 (-.f64 2 (*.f64 3 x)) 6) 2)
(+.f64 (-.f64 2 (*.f64 x 3)) (*.f64 2 (-.f64 2 (*.f64 x 3))))
(*.f64 3 (-.f64 2 (*.f64 x 3)))
(/.f64 (*.f64 (-.f64 2 (*.f64 3 x)) 12) 4)
(+.f64 (-.f64 2 (*.f64 x 3)) (*.f64 2 (-.f64 2 (*.f64 x 3))))
(*.f64 3 (-.f64 2 (*.f64 x 3)))
(/.f64 (*.f64 2 (*.f64 (-.f64 2 (*.f64 3 x)) 12)) 8)
(+.f64 (-.f64 2 (*.f64 x 3)) (*.f64 2 (-.f64 2 (*.f64 x 3))))
(*.f64 3 (-.f64 2 (*.f64 x 3)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 2 (*.f64 3 x)) 12))) 16)
(+.f64 (-.f64 2 (*.f64 x 3)) (*.f64 2 (-.f64 2 (*.f64 x 3))))
(*.f64 3 (-.f64 2 (*.f64 x 3)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 2 (*.f64 3 x)) 12)))) 32)
(+.f64 (-.f64 2 (*.f64 x 3)) (*.f64 2 (-.f64 2 (*.f64 x 3))))
(*.f64 3 (-.f64 2 (*.f64 x 3)))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 2 (*.f64 3 x)) 12)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (-.f64 2 (*.f64 3 x)) 12))))) 64)
(+.f64 (-.f64 2 (*.f64 x 3)) (*.f64 2 (-.f64 2 (*.f64 x 3))))
(*.f64 3 (-.f64 2 (*.f64 x 3)))
(+.f64 (*.f64 x (*.f64 3 (-.f64 2 (*.f64 3 x)))) 0)
(*.f64 3 (*.f64 x (-.f64 2 (*.f64 x 3))))
(*.f64 x (*.f64 3 (-.f64 2 (*.f64 x 3))))
(+.f64 0 (*.f64 x (*.f64 3 (-.f64 2 (*.f64 3 x)))))
(*.f64 3 (*.f64 x (-.f64 2 (*.f64 x 3))))
(*.f64 x (*.f64 3 (-.f64 2 (*.f64 x 3))))
(+.f64 (*.f64 x (-.f64 2 (*.f64 3 x))) (*.f64 (-.f64 2 (*.f64 3 x)) (+.f64 x x)))
(*.f64 3 (*.f64 x (-.f64 2 (*.f64 x 3))))
(*.f64 x (*.f64 3 (-.f64 2 (*.f64 x 3))))
(+.f64 (*.f64 (-.f64 2 (*.f64 3 x)) (+.f64 x x)) (*.f64 x (-.f64 2 (*.f64 3 x))))
(*.f64 3 (*.f64 x (-.f64 2 (*.f64 x 3))))
(*.f64 x (*.f64 3 (-.f64 2 (*.f64 x 3))))
(+.f64 (*.f64 (-.f64 2 (*.f64 3 x)) (*.f64 x 3/2)) (*.f64 (-.f64 2 (*.f64 3 x)) (*.f64 x 3/2)))
(*.f64 3 (*.f64 x (-.f64 2 (*.f64 x 3))))
(*.f64 x (*.f64 3 (-.f64 2 (*.f64 x 3))))
(-.f64 (*.f64 x (*.f64 3 (-.f64 2 (*.f64 3 x)))) 0)
(*.f64 3 (*.f64 x (-.f64 2 (*.f64 x 3))))
(*.f64 x (*.f64 3 (-.f64 2 (*.f64 x 3))))
(/.f64 (*.f64 x (*.f64 3 (-.f64 2 (*.f64 3 x)))) 1)
(*.f64 3 (*.f64 x (-.f64 2 (*.f64 x 3))))
(*.f64 x (*.f64 3 (-.f64 2 (*.f64 x 3))))
(/.f64 (*.f64 (-.f64 2 (*.f64 3 x)) (*.f64 x 6)) 2)
(*.f64 3 (*.f64 x (-.f64 2 (*.f64 x 3))))
(*.f64 x (*.f64 3 (-.f64 2 (*.f64 x 3))))
(/.f64 (*.f64 x (*.f64 (-.f64 2 (*.f64 3 x)) 12)) 4)
(*.f64 3 (*.f64 x (-.f64 2 (*.f64 x 3))))
(*.f64 x (*.f64 3 (-.f64 2 (*.f64 x 3))))
(/.f64 (*.f64 2 (*.f64 x (*.f64 (-.f64 2 (*.f64 3 x)) 12))) 8)
(*.f64 3 (*.f64 x (-.f64 2 (*.f64 x 3))))
(*.f64 x (*.f64 3 (-.f64 2 (*.f64 x 3))))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (-.f64 2 (*.f64 3 x)) 12)))) 16)
(*.f64 3 (*.f64 x (-.f64 2 (*.f64 x 3))))
(*.f64 x (*.f64 3 (-.f64 2 (*.f64 x 3))))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (-.f64 2 (*.f64 3 x)) 12))))) 32)
(*.f64 3 (*.f64 x (-.f64 2 (*.f64 x 3))))
(*.f64 x (*.f64 3 (-.f64 2 (*.f64 x 3))))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (-.f64 2 (*.f64 3 x)) 12))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (-.f64 2 (*.f64 3 x)) 12)))))) 64)
(*.f64 3 (*.f64 x (-.f64 2 (*.f64 x 3))))
(*.f64 x (*.f64 3 (-.f64 2 (*.f64 x 3))))
(+.f64 (-.f64 2 (*.f64 3 x)) 0)
(-.f64 2 (*.f64 x 3))
(+.f64 0 (-.f64 2 (*.f64 3 x)))
(-.f64 2 (*.f64 x 3))
(+.f64 -2 (-.f64 1 (+.f64 (*.f64 3 x) -3)))
(+.f64 -2 (-.f64 1 (+.f64 -3 (*.f64 x 3))))
(-.f64 -1 (+.f64 -3 (*.f64 x 3)))
(+.f64 -1 (neg.f64 (+.f64 (*.f64 3 x) -3)))
(+.f64 -2 (-.f64 1 (+.f64 -3 (*.f64 x 3))))
(-.f64 -1 (+.f64 -3 (*.f64 x 3)))
(+.f64 (neg.f64 (+.f64 (*.f64 3 x) -3)) -1)
(+.f64 -2 (-.f64 1 (+.f64 -3 (*.f64 x 3))))
(-.f64 -1 (+.f64 -3 (*.f64 x 3)))
(+.f64 (*.f64 (-.f64 2 (*.f64 3 x)) 1/2) (*.f64 (-.f64 2 (*.f64 3 x)) 1/2))
(-.f64 2 (*.f64 x 3))
(*.f64 2 (*.f64 (-.f64 2 (*.f64 3 x)) 1/2))
(-.f64 2 (*.f64 x 3))
(*.f64 (-.f64 2 (*.f64 3 x)) 1)
(-.f64 2 (*.f64 x 3))
(*.f64 1 (-.f64 2 (*.f64 3 x)))
(-.f64 2 (*.f64 x 3))
(*.f64 (*.f64 2 (-.f64 2 (*.f64 3 x))) 1/2)
(-.f64 2 (*.f64 x 3))
(*.f64 (+.f64 (*.f64 3 x) -2) -1)
(neg.f64 (+.f64 (*.f64 x 3) -2))
(*.f64 4 (/.f64 (-.f64 2 (*.f64 3 x)) 4))
(-.f64 2 (*.f64 x 3))
(*.f64 (*.f64 (-.f64 2 (*.f64 3 x)) 4) 1/4)
(-.f64 2 (*.f64 x 3))
(*.f64 -1 (+.f64 (*.f64 3 x) -2))
(neg.f64 (+.f64 (*.f64 x 3) -2))
(*.f64 1/2 (*.f64 2 (-.f64 2 (*.f64 3 x))))
(-.f64 2 (*.f64 x 3))
(*.f64 (*.f64 (-.f64 2 (*.f64 3 x)) 1/2) 2)
(-.f64 2 (*.f64 x 3))
(*.f64 1/4 (*.f64 (-.f64 2 (*.f64 3 x)) 4))
(-.f64 2 (*.f64 x 3))
(*.f64 (/.f64 (-.f64 2 (*.f64 3 x)) 4) 4)
(-.f64 2 (*.f64 x 3))
(/.f64 (-.f64 2 (*.f64 3 x)) 1)
(-.f64 2 (*.f64 x 3))
(/.f64 (*.f64 2 (-.f64 2 (*.f64 3 x))) 2)
(-.f64 2 (*.f64 x 3))
(/.f64 (+.f64 (*.f64 3 x) -2) -1)
(neg.f64 (+.f64 (*.f64 x 3) -2))
(/.f64 (*.f64 (-.f64 2 (*.f64 3 x)) 4) 4)
(-.f64 2 (*.f64 x 3))
(/.f64 (+.f64 -2 (+.f64 (*.f64 x 6) -2)) -2)
(neg.f64 (+.f64 (*.f64 x 3) -2))
(/.f64 (*.f64 (-.f64 2 (*.f64 3 x)) 8) 8)
(-.f64 2 (*.f64 x 3))
(/.f64 (*.f64 (+.f64 (*.f64 3 x) -2) 4) -4)
(neg.f64 (+.f64 (*.f64 x 3) -2))
(/.f64 (*.f64 2 (*.f64 (-.f64 2 (*.f64 3 x)) 8)) 16)
(-.f64 2 (*.f64 x 3))
(/.f64 (neg.f64 (+.f64 -2 (+.f64 (*.f64 x 6) -2))) 2)
(neg.f64 (+.f64 (*.f64 x 3) -2))
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) -2) 4)) -8)
(neg.f64 (+.f64 (*.f64 x 3) -2))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 2 (*.f64 3 x)) 8))) 32)
(-.f64 2 (*.f64 x 3))
(/.f64 (*.f64 2 (neg.f64 (+.f64 -2 (+.f64 (*.f64 x 6) -2)))) 4)
(neg.f64 (+.f64 (*.f64 x 3) -2))
(/.f64 (neg.f64 (*.f64 (+.f64 (*.f64 3 x) -2) 4)) 4)
(neg.f64 (+.f64 (*.f64 x 3) -2))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (-.f64 2 (*.f64 3 x)) 8))) (*.f64 2 (*.f64 2 (*.f64 (-.f64 2 (*.f64 3 x)) 8)))) 64)
(-.f64 2 (*.f64 x 3))
(/.f64 (+.f64 (*.f64 2 (neg.f64 (+.f64 -2 (+.f64 (*.f64 x 6) -2)))) (*.f64 2 (neg.f64 (+.f64 -2 (+.f64 (*.f64 x 6) -2))))) 8)
(neg.f64 (+.f64 (*.f64 x 3) -2))
(/.f64 (+.f64 (neg.f64 (*.f64 (+.f64 (*.f64 3 x) -2) 4)) (neg.f64 (*.f64 (+.f64 (*.f64 3 x) -2) 4))) 8)
(neg.f64 (+.f64 (*.f64 x 3) -2))
(neg.f64 (+.f64 (*.f64 3 x) -2))
(neg.f64 (+.f64 (*.f64 x 3) -2))

eval88.0ms (0.9%)

Compiler

Compiled 1354 to 1121 computations (17.2% saved)

prune19.0ms (0.2%)

Pruning

10 alts after pruning (9 fresh and 1 done)

PrunedKeptTotal
New919100
Fresh000
Picked011
Done000
Total9110101
Error
0.1b
Counts
101 → 10
Alt Table
Click to see full alt table
StatusErrorProgram
0.3b
(/.f64 (*.f64 (-.f64 2 (*.f64 3 x)) (*.f64 x 6)) 2)
0.2b
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
0.2b
(*.f64 (+.f64 (*.f64 -9 x) 6) x)
0.2b
(*.f64 (*.f64 3 (-.f64 2 (*.f64 x 3))) x)
0.2b
(*.f64 (*.f64 3 (-.f64 -1 (+.f64 -3 (*.f64 x 3)))) x)
43.3b
(*.f64 (*.f64 3 (*.f64 x -3)) x)
43.3b
(*.f64 (*.f64 -9 x) x)
19.5b
(*.f64 6 x)
0.2b
(*.f64 3 (*.f64 x (-.f64 2 (*.f64 x 3))))
43.3b
(*.f64 -9 (pow.f64 x 2))
Compiler

Compiled 162 to 128 computations (21% saved)

localize7.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.1b
(*.f64 (+.f64 (*.f64 -9 x) 6) x)
Compiler

Compiled 19 to 14 computations (26.3% saved)

series1.0ms (0%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
0.0ms
x
@-inf
(*.f64 (+.f64 (*.f64 -9 x) 6) x)
0.0ms
x
@inf
(*.f64 (+.f64 (*.f64 -9 x) 6) x)
0.0ms
x
@0
(*.f64 (+.f64 (*.f64 -9 x) 6) x)

rewrite544.0ms (5.3%)

Algorithm
batch-egg-rewrite
Rules
1538×bool.json-1
1538×bool.json-2
1490×rational.json-1
1490×rational.json-2
1490×rational.json-3
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0819
18019
221019
342619
487619
5190419
6385119
7612719
Stop Event
node limit
Counts
1 → 11
Calls
Call 1
Inputs
(*.f64 (+.f64 (*.f64 -9 x) 6) x)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (+.f64 (*.f64 -9 x) 6)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (+.f64 (*.f64 -9 x) 6)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 (+.f64 (*.f64 -9 x) 6) 1/2)) (*.f64 x (*.f64 (+.f64 (*.f64 -9 x) 6) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (+.f64 (*.f64 -9 x) 6)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 (*.f64 -9 x) 6)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 6 (+.f64 6 (*.f64 x -18)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 -9 x) 6) (*.f64 x 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x (+.f64 (*.f64 -9 x) 6)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 (*.f64 -9 x) 6)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 (*.f64 -9 x) 6)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 (*.f64 -9 x) 6)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 (*.f64 -9 x) 6)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 x (+.f64 (*.f64 -9 x) 6))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 x (+.f64 (*.f64 -9 x) 6)) (*.f64 x (+.f64 (*.f64 -9 x) 6)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 x (+.f64 (*.f64 -9 x) 6)) (*.f64 x (+.f64 (*.f64 -9 x) 6)))))))

simplify1.1s (10.6%)

Algorithm
egg-herbie
Rules
7794×rational.json-simplify-41
5508×rational.json-simplify-35
2098×rational.json-simplify-2
1020×rational.json-simplify-53
818×rational.json-simplify-1
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
045479
1102473
2198473
3422473
41675473
53240473
64163473
74475473
84670473
94822473
104971473
115336473
125336473
135359473
145544473
155714473
165889473
176058473
186208473
196356473
206504473
216652473
226652473
236800473
246948473
257096473
267244473
277392473
287540473
Stop Event
node limit
Counts
23 → 19
Calls
Call 1
Inputs
(*.f64 6 x)
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(*.f64 -9 (pow.f64 x 2))
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(*.f64 -9 (pow.f64 x 2))
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(+.f64 (*.f64 x (+.f64 (*.f64 -9 x) 6)) 0)
(+.f64 0 (*.f64 x (+.f64 (*.f64 -9 x) 6)))
(+.f64 (*.f64 x (*.f64 (+.f64 (*.f64 -9 x) 6) 1/2)) (*.f64 x (*.f64 (+.f64 (*.f64 -9 x) 6) 1/2)))
(-.f64 (*.f64 x (+.f64 (*.f64 -9 x) 6)) 0)
(/.f64 (*.f64 x (+.f64 (*.f64 -9 x) 6)) 1)
(/.f64 (*.f64 x (+.f64 6 (+.f64 6 (*.f64 x -18)))) 2)
(/.f64 (*.f64 (+.f64 (*.f64 -9 x) 6) (*.f64 x 4)) 4)
(/.f64 (*.f64 (*.f64 x (+.f64 (*.f64 -9 x) 6)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 (*.f64 -9 x) 6)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 (*.f64 -9 x) 6)) 8))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 (*.f64 -9 x) 6)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 (*.f64 -9 x) 6)) 8)))) 64)
Outputs
(*.f64 6 x)
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(*.f64 -9 (pow.f64 x 2))
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(*.f64 -9 (pow.f64 x 2))
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(+.f64 (*.f64 x (+.f64 (*.f64 -9 x) 6)) 0)
(*.f64 x (+.f64 6 (*.f64 x -9)))
(+.f64 0 (*.f64 x (+.f64 (*.f64 -9 x) 6)))
(*.f64 x (+.f64 6 (*.f64 x -9)))
(+.f64 (*.f64 x (*.f64 (+.f64 (*.f64 -9 x) 6) 1/2)) (*.f64 x (*.f64 (+.f64 (*.f64 -9 x) 6) 1/2)))
(*.f64 x (+.f64 6 (*.f64 x -9)))
(-.f64 (*.f64 x (+.f64 (*.f64 -9 x) 6)) 0)
(*.f64 x (+.f64 6 (*.f64 x -9)))
(/.f64 (*.f64 x (+.f64 (*.f64 -9 x) 6)) 1)
(*.f64 x (+.f64 6 (*.f64 x -9)))
(/.f64 (*.f64 x (+.f64 6 (+.f64 6 (*.f64 x -18)))) 2)
(*.f64 (+.f64 6 (+.f64 6 (*.f64 x -18))) (/.f64 x 2))
(*.f64 (+.f64 (*.f64 x -18) 12) (/.f64 x 2))
(*.f64 (+.f64 (*.f64 x -18) 12) (*.f64 x 1/2))
(*.f64 1/2 (*.f64 x (+.f64 (*.f64 x -18) 12)))
(/.f64 (*.f64 (+.f64 (*.f64 -9 x) 6) (*.f64 x 4)) 4)
(*.f64 x (+.f64 6 (*.f64 x -9)))
(/.f64 (*.f64 (*.f64 x (+.f64 (*.f64 -9 x) 6)) 8) 8)
(*.f64 x (+.f64 6 (*.f64 x -9)))
(/.f64 (*.f64 2 (*.f64 (*.f64 x (+.f64 (*.f64 -9 x) 6)) 8)) 16)
(*.f64 x (+.f64 6 (*.f64 x -9)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 (*.f64 -9 x) 6)) 8))) 32)
(*.f64 x (+.f64 6 (*.f64 x -9)))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 (*.f64 -9 x) 6)) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (+.f64 (*.f64 -9 x) 6)) 8)))) 64)
(*.f64 x (+.f64 6 (*.f64 x -9)))

localize69.0ms (0.7%)

Compiler

Compiled 6 to 4 computations (33.3% saved)

localize7.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.1b
(*.f64 (*.f64 3 (*.f64 x -3)) x)
0.2b
(*.f64 3 (*.f64 x -3))
Compiler

Compiled 19 to 14 computations (26.3% saved)

series2.0ms (0%)

Counts
2 → 24
Calls

6 calls:

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

rewrite76.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
1358×bool.json-1
1358×bool.json-2
1294×rational.json-1
1294×rational.json-2
1294×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0820
18320
222920
349420
4103820
5238020
6510920
Stop Event
node limit
Counts
2 → 24
Calls
Call 1
Inputs
(*.f64 3 (*.f64 x -3))
(*.f64 (*.f64 3 (*.f64 x -3)) x)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x -3) (*.f64 x -6))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x -9) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x -9))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x -6) (*.f64 x -3))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x -9/2) (*.f64 x -9/2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x -9) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x -9) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x -18) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x -36) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 x -36)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 x -36))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x -36)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 x -9)))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 x -9) (*.f64 x -9))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 x -9) (*.f64 x -9))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 -9 (*.f64 x x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 -9 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 x -3)) (*.f64 x (*.f64 x -6)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 x -6)) (*.f64 x (*.f64 x -3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 x -9/2)) (*.f64 x (*.f64 x -9/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 -9 (*.f64 x x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -9 (*.f64 x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x x) -18) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x x) -36) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 -9 (*.f64 x x)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 -9 (*.f64 x x)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 -9 (*.f64 x x)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 -9 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 -9 (*.f64 x x)) (*.f64 -9 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 -9 (*.f64 x x)) (*.f64 -9 (*.f64 x x)))))))

simplify105.0ms (1%)

Algorithm
egg-herbie
Rules
1194×rational.json-simplify-35
1112×rational.json-simplify-41
1044×rational.json-simplify-2
1042×rational.json-simplify-55
742×rational.json-simplify-53
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
062480
1143480
2286480
3916480
42342480
55812480
Stop Event
node limit
Counts
48 → 28
Calls
Call 1
Inputs
(*.f64 -9 x)
(*.f64 -9 x)
(*.f64 -9 x)
(*.f64 -9 x)
(*.f64 -9 x)
(*.f64 -9 x)
(*.f64 -9 x)
(*.f64 -9 x)
(*.f64 -9 x)
(*.f64 -9 x)
(*.f64 -9 x)
(*.f64 -9 x)
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(+.f64 (*.f64 x -3) (*.f64 x -6))
(+.f64 (*.f64 x -9) 0)
(+.f64 0 (*.f64 x -9))
(+.f64 (*.f64 x -6) (*.f64 x -3))
(+.f64 (*.f64 x -9/2) (*.f64 x -9/2))
(-.f64 (*.f64 x -9) 0)
(/.f64 (*.f64 x -9) 1)
(/.f64 (*.f64 x -18) 2)
(/.f64 (*.f64 x -36) 4)
(/.f64 (*.f64 2 (*.f64 x -36)) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 x -36))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x -36)))) 32)
(+.f64 (*.f64 -9 (*.f64 x x)) 0)
(+.f64 0 (*.f64 -9 (*.f64 x x)))
(+.f64 (*.f64 x (*.f64 x -3)) (*.f64 x (*.f64 x -6)))
(+.f64 (*.f64 x (*.f64 x -6)) (*.f64 x (*.f64 x -3)))
(+.f64 (*.f64 x (*.f64 x -9/2)) (*.f64 x (*.f64 x -9/2)))
(-.f64 (*.f64 -9 (*.f64 x x)) 0)
(/.f64 (*.f64 -9 (*.f64 x x)) 1)
(/.f64 (*.f64 (*.f64 x x) -18) 2)
(/.f64 (*.f64 (*.f64 x x) -36) 4)
(/.f64 (*.f64 (*.f64 -9 (*.f64 x x)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 -9 (*.f64 x x)) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 -9 (*.f64 x x)) 8))) 32)
Outputs
(*.f64 -9 x)
(*.f64 -9 x)
(*.f64 -9 x)
(*.f64 -9 x)
(*.f64 -9 x)
(*.f64 -9 x)
(*.f64 -9 x)
(*.f64 -9 x)
(*.f64 -9 x)
(*.f64 -9 x)
(*.f64 -9 x)
(*.f64 -9 x)
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(+.f64 (*.f64 x -3) (*.f64 x -6))
(*.f64 -9 x)
(+.f64 (*.f64 x -9) 0)
(*.f64 -9 x)
(+.f64 0 (*.f64 x -9))
(*.f64 -9 x)
(+.f64 (*.f64 x -6) (*.f64 x -3))
(*.f64 -9 x)
(+.f64 (*.f64 x -9/2) (*.f64 x -9/2))
(*.f64 -9 x)
(-.f64 (*.f64 x -9) 0)
(*.f64 -9 x)
(/.f64 (*.f64 x -9) 1)
(*.f64 -9 x)
(/.f64 (*.f64 x -18) 2)
(*.f64 -9 x)
(/.f64 (*.f64 x -36) 4)
(*.f64 -9 x)
(/.f64 (*.f64 2 (*.f64 x -36)) 8)
(*.f64 -9 x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 x -36))) 16)
(*.f64 -9 x)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x -36)))) 32)
(*.f64 -9 x)
(+.f64 (*.f64 -9 (*.f64 x x)) 0)
(*.f64 -9 (*.f64 x x))
(*.f64 x (*.f64 -9 x))
(+.f64 0 (*.f64 -9 (*.f64 x x)))
(*.f64 -9 (*.f64 x x))
(*.f64 x (*.f64 -9 x))
(+.f64 (*.f64 x (*.f64 x -3)) (*.f64 x (*.f64 x -6)))
(*.f64 -9 (*.f64 x x))
(*.f64 x (*.f64 -9 x))
(+.f64 (*.f64 x (*.f64 x -6)) (*.f64 x (*.f64 x -3)))
(*.f64 -9 (*.f64 x x))
(*.f64 x (*.f64 -9 x))
(+.f64 (*.f64 x (*.f64 x -9/2)) (*.f64 x (*.f64 x -9/2)))
(*.f64 -9 (*.f64 x x))
(*.f64 x (*.f64 -9 x))
(-.f64 (*.f64 -9 (*.f64 x x)) 0)
(*.f64 -9 (*.f64 x x))
(*.f64 x (*.f64 -9 x))
(/.f64 (*.f64 -9 (*.f64 x x)) 1)
(*.f64 -9 (*.f64 x x))
(*.f64 x (*.f64 -9 x))
(/.f64 (*.f64 (*.f64 x x) -18) 2)
(*.f64 -9 (*.f64 x x))
(*.f64 x (*.f64 -9 x))
(/.f64 (*.f64 (*.f64 x x) -36) 4)
(*.f64 -9 (*.f64 x x))
(*.f64 x (*.f64 -9 x))
(/.f64 (*.f64 (*.f64 -9 (*.f64 x x)) 8) 8)
(*.f64 -9 (*.f64 x x))
(*.f64 x (*.f64 -9 x))
(/.f64 (*.f64 2 (*.f64 (*.f64 -9 (*.f64 x x)) 8)) 16)
(*.f64 -9 (*.f64 x x))
(*.f64 x (*.f64 -9 x))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 -9 (*.f64 x x)) 8))) 32)
(*.f64 -9 (*.f64 x x))
(*.f64 x (*.f64 -9 x))

localize15.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(-.f64 -1 (+.f64 -3 (*.f64 x 3)))
0.1b
(*.f64 (*.f64 3 (-.f64 -1 (+.f64 -3 (*.f64 x 3)))) x)
0.1b
(*.f64 3 (-.f64 -1 (+.f64 -3 (*.f64 x 3))))
Compiler

Compiled 40 to 33 computations (17.5% saved)

series1.0ms (0%)

Counts
3 → 36
Calls

9 calls:

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

rewrite156.0ms (1.5%)

Algorithm
batch-egg-rewrite
Rules
1530×rational.json-simplify-35
1426×bool.json-1
1426×bool.json-2
1376×rational.json-1
1376×rational.json-2
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
01175
111275
229469
358969
4121661
5269861
6558161
Stop Event
node limit
Counts
3 → 61
Calls
Call 1
Inputs
(*.f64 3 (-.f64 -1 (+.f64 -3 (*.f64 x 3))))
(*.f64 (*.f64 3 (-.f64 -1 (+.f64 -3 (*.f64 x 3)))) x)
(-.f64 -1 (+.f64 -3 (*.f64 x 3)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (+.f64 (*.f64 3 x) -2)) (*.f64 (+.f64 (*.f64 3 x) -2) -2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 -3 (+.f64 (*.f64 3 x) -2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 -3 (+.f64 (*.f64 3 x) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 (*.f64 3 x) -2) -2) (neg.f64 (+.f64 (*.f64 3 x) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (neg.f64 (+.f64 (*.f64 3 x) -2)) 3/2) (*.f64 (neg.f64 (+.f64 (*.f64 3 x) -2)) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (*.f64 2 (+.f64 (*.f64 3 x) -2))) (neg.f64 (+.f64 (*.f64 3 x) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 -3 (+.f64 (*.f64 3 x) -2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -3 (+.f64 (*.f64 3 x) -2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 3 x) -2) -6) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 (+.f64 (*.f64 3 x) -2)) 12) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (+.f64 (*.f64 3 x) -2) -2) 12) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 (+.f64 (*.f64 3 x) -2) -2) 12)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 (*.f64 3 x) -2) -2) 12))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 (*.f64 3 x) -2) -2) 12))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 (*.f64 3 x) -2) -2) 12)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 -3 (+.f64 (*.f64 3 x) -2))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 -3 (+.f64 (*.f64 3 x) -2)) (*.f64 -3 (+.f64 (*.f64 3 x) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 -3 (+.f64 (*.f64 3 x) -2)) (*.f64 -3 (+.f64 (*.f64 3 x) -2)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 -3 (+.f64 (*.f64 3 x) -2))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (*.f64 -3 (+.f64 (*.f64 3 x) -2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 -2 (*.f64 (+.f64 (*.f64 3 x) -2) x)) (*.f64 x (neg.f64 (+.f64 (*.f64 3 x) -2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (neg.f64 (+.f64 (*.f64 3 x) -2)) (*.f64 x 3/2)) (*.f64 (neg.f64 (+.f64 (*.f64 3 x) -2)) (*.f64 x 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (*.f64 -3 (+.f64 (*.f64 3 x) -2))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 -3 (+.f64 (*.f64 3 x) -2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 (+.f64 (*.f64 3 x) -2) -6)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 (+.f64 (*.f64 3 x) -2)) (*.f64 x 12)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x (*.f64 -3 (+.f64 (*.f64 3 x) -2))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 x (*.f64 -3 (+.f64 (*.f64 3 x) -2))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (*.f64 -3 (+.f64 (*.f64 3 x) -2))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (*.f64 -3 (+.f64 (*.f64 3 x) -2))) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (*.f64 -3 (+.f64 (*.f64 3 x) -2))) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 x (*.f64 -3 (+.f64 (*.f64 3 x) -2)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 x (*.f64 -3 (+.f64 (*.f64 3 x) -2))) (*.f64 x (*.f64 -3 (+.f64 (*.f64 3 x) -2))))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 x (*.f64 -3 (+.f64 (*.f64 3 x) -2))) (*.f64 x (*.f64 -3 (+.f64 (*.f64 3 x) -2))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (neg.f64 (+.f64 -3 (*.f64 3 x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (+.f64 (*.f64 3 x) -2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (neg.f64 (+.f64 (*.f64 3 x) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -2 (-.f64 1 (+.f64 -3 (*.f64 3 x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (+.f64 -3 (*.f64 3 x))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 (+.f64 (*.f64 3 x) -2) -2) (/.f64 (+.f64 (*.f64 3 x) -2) -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (+.f64 (*.f64 3 x) -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (+.f64 (*.f64 3 x) -2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (neg.f64 (+.f64 (*.f64 3 x) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 (+.f64 (*.f64 3 x) -2) -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 3 x) -2) -2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 3 x) -2) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 (*.f64 3 x) -2) -4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 3 x) -2) -4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 (*.f64 3 x) -2) -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (*.f64 3 x) -2) -2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (*.f64 3 x) -2) -4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (*.f64 3 x) -2) -4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (*.f64 3 x) -2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 3 x) -2) -2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 3 x) -2) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 3 x) -2) -4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (+.f64 (*.f64 3 x) -2)) -2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 (+.f64 (*.f64 3 x) -2)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (neg.f64 (+.f64 (*.f64 3 x) -2)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 3 x) -2) 4) -4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 2 (+.f64 (*.f64 3 x) -2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) -2) 4)) -8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (neg.f64 (+.f64 (*.f64 3 x) -2)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (neg.f64 (*.f64 2 (+.f64 (*.f64 3 x) -2)))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 (+.f64 (*.f64 3 x) -2) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (neg.f64 (+.f64 (*.f64 3 x) -2)) 8))) (*.f64 2 (*.f64 2 (*.f64 (neg.f64 (+.f64 (*.f64 3 x) -2)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (neg.f64 (*.f64 2 (+.f64 (*.f64 3 x) -2)))) (*.f64 2 (neg.f64 (*.f64 2 (+.f64 (*.f64 3 x) -2))))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (neg.f64 (*.f64 (+.f64 (*.f64 3 x) -2) 4)) (neg.f64 (*.f64 (+.f64 (*.f64 3 x) -2) 4))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (+.f64 (*.f64 3 x) -2))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (neg.f64 (+.f64 (*.f64 3 x) -2))))))) (#(struct:change #<rule egg-rr> (2) ((x and (neg.f64 (+.f64 (*.f64 3 x) -2)) (neg.f64 (+.f64 (*.f64 3 x) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x or (neg.f64 (+.f64 (*.f64 3 x) -2)) (neg.f64 (+.f64 (*.f64 3 x) -2)))))))

simplify622.0ms (6.1%)

Algorithm
egg-herbie
Rules
4284×rational.json-simplify-53
3370×rational.json-simplify-2
2966×rational.json-simplify-35
1058×rational.json-simplify-51
838×rational.json-simplify-1
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01382009
13051689
27951689
319281689
439651689
544441689
646031689
747511689
848891689
950201689
1064031689
1165471689
1265721689
1365741689
1465801689
1565821689
1665821689
1767161689
1868501689
1969841689
Stop Event
node limit
Counts
97 → 81
Calls
Call 1
Inputs
6
(+.f64 (*.f64 -9 x) 6)
(+.f64 (*.f64 -9 x) 6)
(+.f64 (*.f64 -9 x) 6)
(*.f64 -9 x)
(+.f64 6 (*.f64 -9 x))
(+.f64 6 (*.f64 -9 x))
(+.f64 6 (*.f64 -9 x))
(*.f64 -9 x)
(+.f64 6 (*.f64 -9 x))
(+.f64 6 (*.f64 -9 x))
(+.f64 6 (*.f64 -9 x))
(*.f64 6 x)
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(*.f64 -9 (pow.f64 x 2))
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(*.f64 -9 (pow.f64 x 2))
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
2
(+.f64 (*.f64 -3 x) 2)
(+.f64 (*.f64 -3 x) 2)
(+.f64 (*.f64 -3 x) 2)
(*.f64 -3 x)
(+.f64 2 (*.f64 -3 x))
(+.f64 2 (*.f64 -3 x))
(+.f64 2 (*.f64 -3 x))
(*.f64 -3 x)
(+.f64 2 (*.f64 -3 x))
(+.f64 2 (*.f64 -3 x))
(+.f64 2 (*.f64 -3 x))
(+.f64 (neg.f64 (+.f64 (*.f64 3 x) -2)) (*.f64 (+.f64 (*.f64 3 x) -2) -2))
(+.f64 (*.f64 -3 (+.f64 (*.f64 3 x) -2)) 0)
(+.f64 0 (*.f64 -3 (+.f64 (*.f64 3 x) -2)))
(+.f64 (*.f64 (+.f64 (*.f64 3 x) -2) -2) (neg.f64 (+.f64 (*.f64 3 x) -2)))
(+.f64 (*.f64 (neg.f64 (+.f64 (*.f64 3 x) -2)) 3/2) (*.f64 (neg.f64 (+.f64 (*.f64 3 x) -2)) 3/2))
(+.f64 (neg.f64 (*.f64 2 (+.f64 (*.f64 3 x) -2))) (neg.f64 (+.f64 (*.f64 3 x) -2)))
(-.f64 (*.f64 -3 (+.f64 (*.f64 3 x) -2)) 0)
(/.f64 (*.f64 -3 (+.f64 (*.f64 3 x) -2)) 1)
(/.f64 (*.f64 (+.f64 (*.f64 3 x) -2) -6) 2)
(/.f64 (*.f64 (neg.f64 (+.f64 (*.f64 3 x) -2)) 12) 4)
(/.f64 (*.f64 (*.f64 (+.f64 (*.f64 3 x) -2) -2) 12) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 (+.f64 (*.f64 3 x) -2) -2) 12)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 (*.f64 3 x) -2) -2) 12))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 (*.f64 3 x) -2) -2) 12))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 (*.f64 3 x) -2) -2) 12)))) 64)
(+.f64 (*.f64 x (*.f64 -3 (+.f64 (*.f64 3 x) -2))) 0)
(+.f64 0 (*.f64 x (*.f64 -3 (+.f64 (*.f64 3 x) -2))))
(+.f64 (*.f64 -2 (*.f64 (+.f64 (*.f64 3 x) -2) x)) (*.f64 x (neg.f64 (+.f64 (*.f64 3 x) -2))))
(+.f64 (*.f64 (neg.f64 (+.f64 (*.f64 3 x) -2)) (*.f64 x 3/2)) (*.f64 (neg.f64 (+.f64 (*.f64 3 x) -2)) (*.f64 x 3/2)))
(-.f64 (*.f64 x (*.f64 -3 (+.f64 (*.f64 3 x) -2))) 0)
(/.f64 (*.f64 x (*.f64 -3 (+.f64 (*.f64 3 x) -2))) 1)
(/.f64 (*.f64 x (*.f64 (+.f64 (*.f64 3 x) -2) -6)) 2)
(/.f64 (*.f64 (neg.f64 (+.f64 (*.f64 3 x) -2)) (*.f64 x 12)) 4)
(/.f64 (*.f64 (*.f64 x (*.f64 -3 (+.f64 (*.f64 3 x) -2))) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 x (*.f64 -3 (+.f64 (*.f64 3 x) -2))) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (*.f64 -3 (+.f64 (*.f64 3 x) -2))) 8))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (*.f64 -3 (+.f64 (*.f64 3 x) -2))) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (*.f64 -3 (+.f64 (*.f64 3 x) -2))) 8)))) 64)
(+.f64 -1 (neg.f64 (+.f64 -3 (*.f64 3 x))))
(+.f64 (neg.f64 (+.f64 (*.f64 3 x) -2)) 0)
(+.f64 0 (neg.f64 (+.f64 (*.f64 3 x) -2)))
(+.f64 -2 (-.f64 1 (+.f64 -3 (*.f64 3 x))))
(+.f64 (neg.f64 (+.f64 -3 (*.f64 3 x))) -1)
(+.f64 (/.f64 (+.f64 (*.f64 3 x) -2) -2) (/.f64 (+.f64 (*.f64 3 x) -2) -2))
(*.f64 -1 (+.f64 (*.f64 3 x) -2))
(*.f64 (neg.f64 (+.f64 (*.f64 3 x) -2)) 1)
(*.f64 1 (neg.f64 (+.f64 (*.f64 3 x) -2)))
(*.f64 2 (/.f64 (+.f64 (*.f64 3 x) -2) -2))
(*.f64 (*.f64 (+.f64 (*.f64 3 x) -2) -2) 1/2)
(*.f64 (+.f64 (*.f64 3 x) -2) -1)
(*.f64 4 (/.f64 (+.f64 (*.f64 3 x) -2) -4))
(*.f64 (*.f64 (+.f64 (*.f64 3 x) -2) -4) 1/4)
(*.f64 1/2 (*.f64 (+.f64 (*.f64 3 x) -2) -2))
(*.f64 (/.f64 (+.f64 (*.f64 3 x) -2) -2) 2)
(*.f64 1/4 (*.f64 (+.f64 (*.f64 3 x) -2) -4))
(*.f64 (/.f64 (+.f64 (*.f64 3 x) -2) -4) 4)
(/.f64 (neg.f64 (+.f64 (*.f64 3 x) -2)) 1)
(/.f64 (*.f64 (+.f64 (*.f64 3 x) -2) -2) 2)
(/.f64 (+.f64 (*.f64 3 x) -2) -1)
(/.f64 (*.f64 (+.f64 (*.f64 3 x) -2) -4) 4)
(/.f64 (*.f64 2 (+.f64 (*.f64 3 x) -2)) -2)
(/.f64 (*.f64 (neg.f64 (+.f64 (*.f64 3 x) -2)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (neg.f64 (+.f64 (*.f64 3 x) -2)) 8)) 16)
(/.f64 (*.f64 (+.f64 (*.f64 3 x) -2) 4) -4)
(/.f64 (neg.f64 (*.f64 2 (+.f64 (*.f64 3 x) -2))) 2)
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) -2) 4)) -8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (neg.f64 (+.f64 (*.f64 3 x) -2)) 8))) 32)
(/.f64 (*.f64 2 (neg.f64 (*.f64 2 (+.f64 (*.f64 3 x) -2)))) 4)
(/.f64 (neg.f64 (*.f64 (+.f64 (*.f64 3 x) -2) 4)) 4)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (neg.f64 (+.f64 (*.f64 3 x) -2)) 8))) (*.f64 2 (*.f64 2 (*.f64 (neg.f64 (+.f64 (*.f64 3 x) -2)) 8)))) 64)
(/.f64 (+.f64 (*.f64 2 (neg.f64 (*.f64 2 (+.f64 (*.f64 3 x) -2)))) (*.f64 2 (neg.f64 (*.f64 2 (+.f64 (*.f64 3 x) -2))))) 8)
(/.f64 (+.f64 (neg.f64 (*.f64 (+.f64 (*.f64 3 x) -2) 4)) (neg.f64 (*.f64 (+.f64 (*.f64 3 x) -2) 4))) 8)
(neg.f64 (+.f64 (*.f64 3 x) -2))
Outputs
6
(+.f64 (*.f64 -9 x) 6)
(+.f64 6 (*.f64 -9 x))
(+.f64 (*.f64 -9 x) 6)
(+.f64 6 (*.f64 -9 x))
(+.f64 (*.f64 -9 x) 6)
(+.f64 6 (*.f64 -9 x))
(*.f64 -9 x)
(+.f64 6 (*.f64 -9 x))
(+.f64 6 (*.f64 -9 x))
(+.f64 6 (*.f64 -9 x))
(*.f64 -9 x)
(+.f64 6 (*.f64 -9 x))
(+.f64 6 (*.f64 -9 x))
(+.f64 6 (*.f64 -9 x))
(*.f64 6 x)
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(+.f64 (*.f64 -9 (pow.f64 x 2)) (*.f64 6 x))
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(+.f64 (*.f64 -9 (pow.f64 x 2)) (*.f64 6 x))
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(+.f64 (*.f64 -9 (pow.f64 x 2)) (*.f64 6 x))
(*.f64 -9 (pow.f64 x 2))
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(+.f64 (*.f64 -9 (pow.f64 x 2)) (*.f64 6 x))
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(+.f64 (*.f64 -9 (pow.f64 x 2)) (*.f64 6 x))
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(+.f64 (*.f64 -9 (pow.f64 x 2)) (*.f64 6 x))
(*.f64 -9 (pow.f64 x 2))
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(+.f64 (*.f64 -9 (pow.f64 x 2)) (*.f64 6 x))
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(+.f64 (*.f64 -9 (pow.f64 x 2)) (*.f64 6 x))
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(+.f64 (*.f64 -9 (pow.f64 x 2)) (*.f64 6 x))
2
(+.f64 (*.f64 -3 x) 2)
(+.f64 2 (*.f64 x -3))
(+.f64 (*.f64 -3 x) 2)
(+.f64 2 (*.f64 x -3))
(+.f64 (*.f64 -3 x) 2)
(+.f64 2 (*.f64 x -3))
(*.f64 -3 x)
(*.f64 x -3)
(+.f64 2 (*.f64 -3 x))
(+.f64 2 (*.f64 x -3))
(+.f64 2 (*.f64 -3 x))
(+.f64 2 (*.f64 x -3))
(+.f64 2 (*.f64 -3 x))
(+.f64 2 (*.f64 x -3))
(*.f64 -3 x)
(*.f64 x -3)
(+.f64 2 (*.f64 -3 x))
(+.f64 2 (*.f64 x -3))
(+.f64 2 (*.f64 -3 x))
(+.f64 2 (*.f64 x -3))
(+.f64 2 (*.f64 -3 x))
(+.f64 2 (*.f64 x -3))
(+.f64 (neg.f64 (+.f64 (*.f64 3 x) -2)) (*.f64 (+.f64 (*.f64 3 x) -2) -2))
(+.f64 (neg.f64 (+.f64 (*.f64 x 3) -2)) (*.f64 -2 (+.f64 (*.f64 x 3) -2)))
(*.f64 -3 (+.f64 (*.f64 x 3) -2))
(+.f64 (*.f64 -3 (+.f64 (*.f64 3 x) -2)) 0)
(+.f64 (neg.f64 (+.f64 (*.f64 x 3) -2)) (*.f64 -2 (+.f64 (*.f64 x 3) -2)))
(*.f64 -3 (+.f64 (*.f64 x 3) -2))
(+.f64 0 (*.f64 -3 (+.f64 (*.f64 3 x) -2)))
(+.f64 (neg.f64 (+.f64 (*.f64 x 3) -2)) (*.f64 -2 (+.f64 (*.f64 x 3) -2)))
(*.f64 -3 (+.f64 (*.f64 x 3) -2))
(+.f64 (*.f64 (+.f64 (*.f64 3 x) -2) -2) (neg.f64 (+.f64 (*.f64 3 x) -2)))
(+.f64 (neg.f64 (+.f64 (*.f64 x 3) -2)) (*.f64 -2 (+.f64 (*.f64 x 3) -2)))
(*.f64 -3 (+.f64 (*.f64 x 3) -2))
(+.f64 (*.f64 (neg.f64 (+.f64 (*.f64 3 x) -2)) 3/2) (*.f64 (neg.f64 (+.f64 (*.f64 3 x) -2)) 3/2))
(+.f64 (neg.f64 (+.f64 (*.f64 x 3) -2)) (*.f64 -2 (+.f64 (*.f64 x 3) -2)))
(*.f64 -3 (+.f64 (*.f64 x 3) -2))
(+.f64 (neg.f64 (*.f64 2 (+.f64 (*.f64 3 x) -2))) (neg.f64 (+.f64 (*.f64 3 x) -2)))
(+.f64 (neg.f64 (+.f64 (*.f64 x 3) -2)) (*.f64 -2 (+.f64 (*.f64 x 3) -2)))
(*.f64 -3 (+.f64 (*.f64 x 3) -2))
(-.f64 (*.f64 -3 (+.f64 (*.f64 3 x) -2)) 0)
(+.f64 (neg.f64 (+.f64 (*.f64 x 3) -2)) (*.f64 -2 (+.f64 (*.f64 x 3) -2)))
(*.f64 -3 (+.f64 (*.f64 x 3) -2))
(/.f64 (*.f64 -3 (+.f64 (*.f64 3 x) -2)) 1)
(+.f64 (neg.f64 (+.f64 (*.f64 x 3) -2)) (*.f64 -2 (+.f64 (*.f64 x 3) -2)))
(*.f64 -3 (+.f64 (*.f64 x 3) -2))
(/.f64 (*.f64 (+.f64 (*.f64 3 x) -2) -6) 2)
(+.f64 (neg.f64 (+.f64 (*.f64 x 3) -2)) (*.f64 -2 (+.f64 (*.f64 x 3) -2)))
(*.f64 -3 (+.f64 (*.f64 x 3) -2))
(/.f64 (*.f64 (neg.f64 (+.f64 (*.f64 3 x) -2)) 12) 4)
(+.f64 (neg.f64 (+.f64 (*.f64 x 3) -2)) (*.f64 -2 (+.f64 (*.f64 x 3) -2)))
(*.f64 -3 (+.f64 (*.f64 x 3) -2))
(/.f64 (*.f64 (*.f64 (+.f64 (*.f64 3 x) -2) -2) 12) 8)
(+.f64 (neg.f64 (+.f64 (*.f64 x 3) -2)) (*.f64 -2 (+.f64 (*.f64 x 3) -2)))
(*.f64 -3 (+.f64 (*.f64 x 3) -2))
(/.f64 (*.f64 2 (*.f64 (*.f64 (+.f64 (*.f64 3 x) -2) -2) 12)) 16)
(+.f64 (neg.f64 (+.f64 (*.f64 x 3) -2)) (*.f64 -2 (+.f64 (*.f64 x 3) -2)))
(*.f64 -3 (+.f64 (*.f64 x 3) -2))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 (*.f64 3 x) -2) -2) 12))) 32)
(+.f64 (neg.f64 (+.f64 (*.f64 x 3) -2)) (*.f64 -2 (+.f64 (*.f64 x 3) -2)))
(*.f64 -3 (+.f64 (*.f64 x 3) -2))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 (*.f64 3 x) -2) -2) 12))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 (+.f64 (*.f64 3 x) -2) -2) 12)))) 64)
(+.f64 (neg.f64 (+.f64 (*.f64 x 3) -2)) (*.f64 -2 (+.f64 (*.f64 x 3) -2)))
(*.f64 -3 (+.f64 (*.f64 x 3) -2))
(+.f64 (*.f64 x (*.f64 -3 (+.f64 (*.f64 3 x) -2))) 0)
(*.f64 x (*.f64 -3 (+.f64 (*.f64 x 3) -2)))
(+.f64 0 (*.f64 x (*.f64 -3 (+.f64 (*.f64 3 x) -2))))
(*.f64 x (*.f64 -3 (+.f64 (*.f64 x 3) -2)))
(+.f64 (*.f64 -2 (*.f64 (+.f64 (*.f64 3 x) -2) x)) (*.f64 x (neg.f64 (+.f64 (*.f64 3 x) -2))))
(*.f64 x (*.f64 -3 (+.f64 (*.f64 x 3) -2)))
(+.f64 (*.f64 (neg.f64 (+.f64 (*.f64 3 x) -2)) (*.f64 x 3/2)) (*.f64 (neg.f64 (+.f64 (*.f64 3 x) -2)) (*.f64 x 3/2)))
(*.f64 x (*.f64 -3 (+.f64 (*.f64 x 3) -2)))
(-.f64 (*.f64 x (*.f64 -3 (+.f64 (*.f64 3 x) -2))) 0)
(*.f64 x (*.f64 -3 (+.f64 (*.f64 x 3) -2)))
(/.f64 (*.f64 x (*.f64 -3 (+.f64 (*.f64 3 x) -2))) 1)
(*.f64 x (*.f64 -3 (+.f64 (*.f64 x 3) -2)))
(/.f64 (*.f64 x (*.f64 (+.f64 (*.f64 3 x) -2) -6)) 2)
(*.f64 x (*.f64 -3 (+.f64 (*.f64 x 3) -2)))
(/.f64 (*.f64 (neg.f64 (+.f64 (*.f64 3 x) -2)) (*.f64 x 12)) 4)
(*.f64 x (*.f64 -3 (+.f64 (*.f64 x 3) -2)))
(/.f64 (*.f64 (*.f64 x (*.f64 -3 (+.f64 (*.f64 3 x) -2))) 8) 8)
(*.f64 x (*.f64 -3 (+.f64 (*.f64 x 3) -2)))
(/.f64 (*.f64 2 (*.f64 (*.f64 x (*.f64 -3 (+.f64 (*.f64 3 x) -2))) 8)) 16)
(*.f64 x (*.f64 -3 (+.f64 (*.f64 x 3) -2)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (*.f64 -3 (+.f64 (*.f64 3 x) -2))) 8))) 32)
(*.f64 x (*.f64 -3 (+.f64 (*.f64 x 3) -2)))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (*.f64 -3 (+.f64 (*.f64 3 x) -2))) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (*.f64 -3 (+.f64 (*.f64 3 x) -2))) 8)))) 64)
(*.f64 x (*.f64 -3 (+.f64 (*.f64 x 3) -2)))
(+.f64 -1 (neg.f64 (+.f64 -3 (*.f64 3 x))))
(+.f64 -1 (neg.f64 (+.f64 -3 (*.f64 x 3))))
(-.f64 -1 (+.f64 -3 (*.f64 x 3)))
(+.f64 (neg.f64 (+.f64 (*.f64 3 x) -2)) 0)
(neg.f64 (+.f64 (*.f64 x 3) -2))
(+.f64 0 (neg.f64 (+.f64 (*.f64 3 x) -2)))
(neg.f64 (+.f64 (*.f64 x 3) -2))
(+.f64 -2 (-.f64 1 (+.f64 -3 (*.f64 3 x))))
(+.f64 -1 (neg.f64 (+.f64 -3 (*.f64 x 3))))
(-.f64 -1 (+.f64 -3 (*.f64 x 3)))
(+.f64 (neg.f64 (+.f64 -3 (*.f64 3 x))) -1)
(+.f64 -1 (neg.f64 (+.f64 -3 (*.f64 x 3))))
(-.f64 -1 (+.f64 -3 (*.f64 x 3)))
(+.f64 (/.f64 (+.f64 (*.f64 3 x) -2) -2) (/.f64 (+.f64 (*.f64 3 x) -2) -2))
(neg.f64 (+.f64 (*.f64 x 3) -2))
(*.f64 -1 (+.f64 (*.f64 3 x) -2))
(neg.f64 (+.f64 (*.f64 x 3) -2))
(*.f64 (neg.f64 (+.f64 (*.f64 3 x) -2)) 1)
(neg.f64 (+.f64 (*.f64 x 3) -2))
(*.f64 1 (neg.f64 (+.f64 (*.f64 3 x) -2)))
(neg.f64 (+.f64 (*.f64 x 3) -2))
(*.f64 2 (/.f64 (+.f64 (*.f64 3 x) -2) -2))
(neg.f64 (+.f64 (*.f64 x 3) -2))
(*.f64 (*.f64 (+.f64 (*.f64 3 x) -2) -2) 1/2)
(neg.f64 (+.f64 (*.f64 x 3) -2))
(*.f64 (+.f64 (*.f64 3 x) -2) -1)
(neg.f64 (+.f64 (*.f64 x 3) -2))
(*.f64 4 (/.f64 (+.f64 (*.f64 3 x) -2) -4))
(neg.f64 (+.f64 (*.f64 x 3) -2))
(*.f64 (*.f64 (+.f64 (*.f64 3 x) -2) -4) 1/4)
(neg.f64 (+.f64 (*.f64 x 3) -2))
(*.f64 1/2 (*.f64 (+.f64 (*.f64 3 x) -2) -2))
(neg.f64 (+.f64 (*.f64 x 3) -2))
(*.f64 (/.f64 (+.f64 (*.f64 3 x) -2) -2) 2)
(neg.f64 (+.f64 (*.f64 x 3) -2))
(*.f64 1/4 (*.f64 (+.f64 (*.f64 3 x) -2) -4))
(neg.f64 (+.f64 (*.f64 x 3) -2))
(*.f64 (/.f64 (+.f64 (*.f64 3 x) -2) -4) 4)
(neg.f64 (+.f64 (*.f64 x 3) -2))
(/.f64 (neg.f64 (+.f64 (*.f64 3 x) -2)) 1)
(neg.f64 (+.f64 (*.f64 x 3) -2))
(/.f64 (*.f64 (+.f64 (*.f64 3 x) -2) -2) 2)
(neg.f64 (+.f64 (*.f64 x 3) -2))
(/.f64 (+.f64 (*.f64 3 x) -2) -1)
(neg.f64 (+.f64 (*.f64 x 3) -2))
(/.f64 (*.f64 (+.f64 (*.f64 3 x) -2) -4) 4)
(neg.f64 (+.f64 (*.f64 x 3) -2))
(/.f64 (*.f64 2 (+.f64 (*.f64 3 x) -2)) -2)
(neg.f64 (+.f64 (*.f64 x 3) -2))
(/.f64 (*.f64 (neg.f64 (+.f64 (*.f64 3 x) -2)) 8) 8)
(neg.f64 (+.f64 (*.f64 x 3) -2))
(/.f64 (*.f64 2 (*.f64 (neg.f64 (+.f64 (*.f64 3 x) -2)) 8)) 16)
(neg.f64 (+.f64 (*.f64 x 3) -2))
(/.f64 (*.f64 (+.f64 (*.f64 3 x) -2) 4) -4)
(neg.f64 (+.f64 (*.f64 x 3) -2))
(/.f64 (neg.f64 (*.f64 2 (+.f64 (*.f64 3 x) -2))) 2)
(neg.f64 (+.f64 (*.f64 x 3) -2))
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 3 x) -2) 4)) -8)
(neg.f64 (+.f64 (*.f64 x 3) -2))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (neg.f64 (+.f64 (*.f64 3 x) -2)) 8))) 32)
(neg.f64 (+.f64 (*.f64 x 3) -2))
(/.f64 (*.f64 2 (neg.f64 (*.f64 2 (+.f64 (*.f64 3 x) -2)))) 4)
(neg.f64 (+.f64 (*.f64 x 3) -2))
(/.f64 (neg.f64 (*.f64 (+.f64 (*.f64 3 x) -2) 4)) 4)
(neg.f64 (+.f64 (*.f64 x 3) -2))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (neg.f64 (+.f64 (*.f64 3 x) -2)) 8))) (*.f64 2 (*.f64 2 (*.f64 (neg.f64 (+.f64 (*.f64 3 x) -2)) 8)))) 64)
(neg.f64 (+.f64 (*.f64 x 3) -2))
(/.f64 (+.f64 (*.f64 2 (neg.f64 (*.f64 2 (+.f64 (*.f64 3 x) -2)))) (*.f64 2 (neg.f64 (*.f64 2 (+.f64 (*.f64 3 x) -2))))) 8)
(neg.f64 (+.f64 (*.f64 x 3) -2))
(/.f64 (+.f64 (neg.f64 (*.f64 (+.f64 (*.f64 3 x) -2) 4)) (neg.f64 (*.f64 (+.f64 (*.f64 3 x) -2) 4))) 8)
(neg.f64 (+.f64 (*.f64 x 3) -2))
(neg.f64 (+.f64 (*.f64 3 x) -2))
(neg.f64 (+.f64 (*.f64 x 3) -2))

localize5.0ms (0%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.2b
(*.f64 -9 (pow.f64 x 2))
Compiler

Compiled 12 to 9 computations (25% saved)

series0.0ms (0%)

Counts
1 → 0
Calls

3 calls:

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

rewrite89.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
1580×bool.json-1
1580×bool.json-2
1522×rational.json-1
1522×rational.json-2
1522×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
16913
218713
337213
474313
5157013
6365413
7633313
Stop Event
node limit
Counts
1 → 11
Calls
Call 1
Inputs
(*.f64 -9 (pow.f64 x 2))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 -9 (pow.f64 x 2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 -9 (pow.f64 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 x 2) -9/2) (*.f64 (pow.f64 x 2) -9/2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 -9 (pow.f64 x 2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -9 (pow.f64 x 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 2) -18) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 2) -36) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 x 2) -72) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (pow.f64 x 2) -72)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) -72))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) -72))) (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) -72)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 -9 (pow.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 -9 (pow.f64 x 2)) (*.f64 -9 (pow.f64 x 2)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 -9 (pow.f64 x 2)) (*.f64 -9 (pow.f64 x 2)))))))

simplify625.0ms (6.1%)

Algorithm
egg-herbie
Rules
7718×rational.json-simplify-41
3842×rational.json-simplify-35
2326×rational.json-simplify-49
2126×rational.json-simplify-2
768×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
036143
179143
2143143
3322143
4757143
52210143
62940143
73095143
83154143
93199143
103239143
113277143
123315143
133353143
143391143
153429143
163467143
173505143
183543143
193581143
203619143
215102143
225304143
235321143
245322143
255322143
266000143
276168143
286336143
296504143
306672143
316840143
327008143
337008143
Stop Event
node limit
Counts
11 → 12
Calls
Call 1
Inputs
(+.f64 (*.f64 -9 (pow.f64 x 2)) 0)
(+.f64 0 (*.f64 -9 (pow.f64 x 2)))
(+.f64 (*.f64 (pow.f64 x 2) -9/2) (*.f64 (pow.f64 x 2) -9/2))
(-.f64 (*.f64 -9 (pow.f64 x 2)) 0)
(/.f64 (*.f64 -9 (pow.f64 x 2)) 1)
(/.f64 (*.f64 (pow.f64 x 2) -18) 2)
(/.f64 (*.f64 (pow.f64 x 2) -36) 4)
(/.f64 (*.f64 (pow.f64 x 2) -72) 8)
(/.f64 (*.f64 2 (*.f64 (pow.f64 x 2) -72)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) -72))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) -72))) (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) -72)))) 64)
Outputs
(+.f64 (*.f64 -9 (pow.f64 x 2)) 0)
(*.f64 -9 (pow.f64 x 2))
(+.f64 0 (*.f64 -9 (pow.f64 x 2)))
(*.f64 -9 (pow.f64 x 2))
(+.f64 (*.f64 (pow.f64 x 2) -9/2) (*.f64 (pow.f64 x 2) -9/2))
(*.f64 -9 (pow.f64 x 2))
(-.f64 (*.f64 -9 (pow.f64 x 2)) 0)
(*.f64 -9 (pow.f64 x 2))
(/.f64 (*.f64 -9 (pow.f64 x 2)) 1)
(*.f64 -9 (pow.f64 x 2))
(/.f64 (*.f64 (pow.f64 x 2) -18) 2)
(*.f64 -9 (pow.f64 x 2))
(/.f64 (*.f64 (pow.f64 x 2) -36) 4)
(*.f64 -9 (pow.f64 x 2))
(/.f64 (*.f64 (pow.f64 x 2) -72) 8)
(*.f64 -9 (pow.f64 x 2))
(/.f64 (*.f64 2 (*.f64 (pow.f64 x 2) -72)) 16)
(*.f64 -9 (pow.f64 x 2))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) -72))) 32)
(*.f64 -9 (pow.f64 x 2))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) -72))) (*.f64 2 (*.f64 2 (*.f64 (pow.f64 x 2) -72)))) 64)
(*.f64 -9 (pow.f64 x 2))

eval93.0ms (0.9%)

Compiler

Compiled 1603 to 1302 computations (18.8% saved)

prune838.0ms (8.2%)

Pruning

9 alts after pruning (4 fresh and 5 done)

PrunedKeptTotal
New1391140
Fresh134
Picked101
Done055
Total1419150
Error
0.1b
Counts
150 → 9
Alt Table
Click to see full alt table
StatusErrorProgram
0.2b
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
0.2b
(*.f64 (+.f64 (*.f64 -9 x) 6) x)
0.2b
(*.f64 (*.f64 3 (-.f64 2 (*.f64 x 3))) x)
0.2b
(*.f64 (*.f64 3 (-.f64 -1 (+.f64 -3 (*.f64 x 3)))) x)
43.3b
(*.f64 (*.f64 3 (*.f64 x -3)) x)
43.3b
(*.f64 (*.f64 -9 x) x)
19.5b
(*.f64 6 x)
0.2b
(*.f64 3 (*.f64 x (-.f64 2 (*.f64 x 3))))
43.3b
(*.f64 -9 (*.f64 x x))
Compiler

Compiled 74 to 57 computations (23% saved)

localize5.0ms (0%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.2b
(*.f64 -9 (*.f64 x x))
Compiler

Compiled 11 to 5 computations (54.5% saved)

series0.0ms (0%)

Counts
1 → 12
Calls

3 calls:

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

rewrite87.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
1570×bool.json-1
1570×bool.json-2
1534×rational.json-1
1534×rational.json-2
1534×rational.json-3
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0613
16413
220313
348513
4160613
5523713
Stop Event
node limit
Counts
1 → 9
Calls
Call 1
Inputs
(*.f64 -9 (*.f64 x x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 -9 (*.f64 x x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 -9 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 -9 (*.f64 x x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -9 (*.f64 x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x x) -18) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x x) -36) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -9 (fabs.f64 x)) (/.f64 1 (fabs.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 x x) -36)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 x x) -36)) (*.f64 2 (*.f64 (*.f64 x x) -36))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 -9 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 -9 (*.f64 x x)) (*.f64 -9 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 -9 (*.f64 x x)) (*.f64 -9 (*.f64 x x)))))))

simplify87.0ms (0.8%)

Algorithm
egg-herbie
Rules
1602×rational.json-simplify-2
910×rational.json-simplify-39
854×rational.json-simplify-59
810×rational.json-simplify-1
806×rational.json-simplify-49
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
033273
178273
2179273
3623273
43135273
55962273
Stop Event
node limit
Counts
21 → 12
Calls
Call 1
Inputs
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(+.f64 (*.f64 -9 (*.f64 x x)) 0)
(+.f64 0 (*.f64 -9 (*.f64 x x)))
(-.f64 (*.f64 -9 (*.f64 x x)) 0)
(/.f64 (*.f64 -9 (*.f64 x x)) 1)
(/.f64 (*.f64 (*.f64 x x) -18) 2)
(/.f64 (*.f64 (*.f64 x x) -36) 4)
(/.f64 (*.f64 -9 (fabs.f64 x)) (/.f64 1 (fabs.f64 x)))
(/.f64 (*.f64 2 (*.f64 (*.f64 x x) -36)) 8)
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 x x) -36)) (*.f64 2 (*.f64 (*.f64 x x) -36))) 16)
Outputs
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(+.f64 (*.f64 -9 (*.f64 x x)) 0)
(*.f64 -9 (*.f64 x x))
(*.f64 x (*.f64 -9 x))
(+.f64 0 (*.f64 -9 (*.f64 x x)))
(*.f64 -9 (*.f64 x x))
(*.f64 x (*.f64 -9 x))
(-.f64 (*.f64 -9 (*.f64 x x)) 0)
(*.f64 -9 (*.f64 x x))
(*.f64 x (*.f64 -9 x))
(/.f64 (*.f64 -9 (*.f64 x x)) 1)
(*.f64 -9 (*.f64 x x))
(*.f64 x (*.f64 -9 x))
(/.f64 (*.f64 (*.f64 x x) -18) 2)
(*.f64 -9 (*.f64 x x))
(*.f64 x (*.f64 -9 x))
(/.f64 (*.f64 (*.f64 x x) -36) 4)
(*.f64 -9 (*.f64 x x))
(*.f64 x (*.f64 -9 x))
(/.f64 (*.f64 -9 (fabs.f64 x)) (/.f64 1 (fabs.f64 x)))
(*.f64 -9 (*.f64 x x))
(*.f64 x (*.f64 -9 x))
(/.f64 (*.f64 2 (*.f64 (*.f64 x x) -36)) 8)
(*.f64 -9 (*.f64 x x))
(*.f64 x (*.f64 -9 x))
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 x x) -36)) (*.f64 2 (*.f64 (*.f64 x x) -36))) 16)
(*.f64 -9 (*.f64 x x))
(*.f64 x (*.f64 -9 x))

localize11.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(-.f64 2 (*.f64 x 3))
0.1b
(*.f64 x (-.f64 2 (*.f64 x 3)))
0.1b
(*.f64 3 (*.f64 x (-.f64 2 (*.f64 x 3))))
Compiler

Compiled 28 to 21 computations (25% saved)

series1.0ms (0%)

Counts
2 → 24
Calls

6 calls:

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

rewrite82.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
1350×bool.json-1
1350×bool.json-2
1302×rational.json-1
1302×rational.json-2
1302×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0944
19144
224444
350144
4101344
5226444
6491544
Stop Event
node limit
Counts
2 → 24
Calls
Call 1
Inputs
(*.f64 3 (*.f64 x (-.f64 2 (*.f64 x 3))))
(*.f64 x (-.f64 2 (*.f64 x 3)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (-.f64 2 (*.f64 3 x))) (*.f64 x (*.f64 2 (-.f64 2 (*.f64 3 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 3 (*.f64 x (-.f64 2 (*.f64 3 x)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 3 (*.f64 x (-.f64 2 (*.f64 3 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 2 (-.f64 2 (*.f64 3 x)))) (*.f64 x (-.f64 2 (*.f64 3 x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 (-.f64 2 (*.f64 3 x)) 3/2)) (*.f64 x (*.f64 (-.f64 2 (*.f64 3 x)) 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 3 (*.f64 x (-.f64 2 (*.f64 3 x)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 3 (*.f64 x (-.f64 2 (*.f64 3 x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 2 (*.f64 3 x)) (*.f64 x 6)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 (-.f64 2 (*.f64 3 x)) 12)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 x (*.f64 (-.f64 2 (*.f64 3 x)) 12))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (-.f64 2 (*.f64 3 x)) 12)))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (-.f64 2 (*.f64 3 x)) 12))))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (-.f64 2 (*.f64 3 x)) 12))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (-.f64 2 (*.f64 3 x)) 12)))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 3 (*.f64 x (-.f64 2 (*.f64 3 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 3 (*.f64 x (-.f64 2 (*.f64 3 x)))) (*.f64 3 (*.f64 x (-.f64 2 (*.f64 3 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 3 (*.f64 x (-.f64 2 (*.f64 3 x)))) (*.f64 3 (*.f64 x (-.f64 2 (*.f64 3 x)))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (-.f64 2 (*.f64 3 x))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (-.f64 2 (*.f64 3 x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 2 (*.f64 3 x)) (*.f64 x 1/2)) (*.f64 (-.f64 2 (*.f64 3 x)) (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (-.f64 2 (*.f64 3 x))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (-.f64 2 (*.f64 3 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 2 (-.f64 2 (*.f64 3 x)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 (-.f64 2 (*.f64 3 x)) 4)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x (-.f64 2 (*.f64 3 x))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 x (-.f64 2 (*.f64 3 x))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 2 (*.f64 3 x))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 2 (*.f64 3 x))) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 2 (*.f64 3 x))) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 x (-.f64 2 (*.f64 3 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 x (-.f64 2 (*.f64 3 x))) (*.f64 x (-.f64 2 (*.f64 3 x))))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 x (-.f64 2 (*.f64 3 x))) (*.f64 x (-.f64 2 (*.f64 3 x))))))))

simplify776.0ms (7.6%)

Algorithm
egg-herbie
Rules
3136×rational.json-simplify-35
2860×rational.json-simplify-2
1896×rational.json-simplify-1
1392×rational.json-simplify-53
1276×rational.json-simplify-41
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0731362
11731284
23451050
311051050
424751050
541301050
646451050
748401050
849881050
950861050
1051821050
1164181050
1265381050
1366351050
1468351050
1569221050
1669491050
1769581050
1869581050
1970541050
2071501050
2174561050
2275971050
2377801050
2479171050
Stop Event
node limit
Counts
48 → 40
Calls
Call 1
Inputs
(*.f64 6 x)
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(*.f64 -9 (pow.f64 x 2))
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(*.f64 -9 (pow.f64 x 2))
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(*.f64 2 x)
(+.f64 (*.f64 2 x) (*.f64 -3 (pow.f64 x 2)))
(+.f64 (*.f64 2 x) (*.f64 -3 (pow.f64 x 2)))
(+.f64 (*.f64 2 x) (*.f64 -3 (pow.f64 x 2)))
(*.f64 -3 (pow.f64 x 2))
(+.f64 (*.f64 2 x) (*.f64 -3 (pow.f64 x 2)))
(+.f64 (*.f64 2 x) (*.f64 -3 (pow.f64 x 2)))
(+.f64 (*.f64 2 x) (*.f64 -3 (pow.f64 x 2)))
(*.f64 -3 (pow.f64 x 2))
(+.f64 (*.f64 2 x) (*.f64 -3 (pow.f64 x 2)))
(+.f64 (*.f64 2 x) (*.f64 -3 (pow.f64 x 2)))
(+.f64 (*.f64 2 x) (*.f64 -3 (pow.f64 x 2)))
(+.f64 (*.f64 x (-.f64 2 (*.f64 3 x))) (*.f64 x (*.f64 2 (-.f64 2 (*.f64 3 x)))))
(+.f64 (*.f64 3 (*.f64 x (-.f64 2 (*.f64 3 x)))) 0)
(+.f64 0 (*.f64 3 (*.f64 x (-.f64 2 (*.f64 3 x)))))
(+.f64 (*.f64 x (*.f64 2 (-.f64 2 (*.f64 3 x)))) (*.f64 x (-.f64 2 (*.f64 3 x))))
(+.f64 (*.f64 x (*.f64 (-.f64 2 (*.f64 3 x)) 3/2)) (*.f64 x (*.f64 (-.f64 2 (*.f64 3 x)) 3/2)))
(-.f64 (*.f64 3 (*.f64 x (-.f64 2 (*.f64 3 x)))) 0)
(/.f64 (*.f64 3 (*.f64 x (-.f64 2 (*.f64 3 x)))) 1)
(/.f64 (*.f64 (-.f64 2 (*.f64 3 x)) (*.f64 x 6)) 2)
(/.f64 (*.f64 x (*.f64 (-.f64 2 (*.f64 3 x)) 12)) 4)
(/.f64 (*.f64 2 (*.f64 x (*.f64 (-.f64 2 (*.f64 3 x)) 12))) 8)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (-.f64 2 (*.f64 3 x)) 12)))) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (-.f64 2 (*.f64 3 x)) 12))))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (-.f64 2 (*.f64 3 x)) 12))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (-.f64 2 (*.f64 3 x)) 12)))))) 64)
(+.f64 (*.f64 x (-.f64 2 (*.f64 3 x))) 0)
(+.f64 0 (*.f64 x (-.f64 2 (*.f64 3 x))))
(+.f64 (*.f64 (-.f64 2 (*.f64 3 x)) (*.f64 x 1/2)) (*.f64 (-.f64 2 (*.f64 3 x)) (*.f64 x 1/2)))
(-.f64 (*.f64 x (-.f64 2 (*.f64 3 x))) 0)
(/.f64 (*.f64 x (-.f64 2 (*.f64 3 x))) 1)
(/.f64 (*.f64 x (*.f64 2 (-.f64 2 (*.f64 3 x)))) 2)
(/.f64 (*.f64 x (*.f64 (-.f64 2 (*.f64 3 x)) 4)) 4)
(/.f64 (*.f64 (*.f64 x (-.f64 2 (*.f64 3 x))) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 x (-.f64 2 (*.f64 3 x))) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 2 (*.f64 3 x))) 8))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 2 (*.f64 3 x))) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 2 (*.f64 3 x))) 8)))) 64)
Outputs
(*.f64 6 x)
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(*.f64 -9 (pow.f64 x 2))
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(*.f64 -9 (pow.f64 x 2))
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(*.f64 2 x)
(*.f64 x 2)
(+.f64 x x)
(+.f64 (*.f64 2 x) (*.f64 -3 (pow.f64 x 2)))
(+.f64 (*.f64 x 2) (*.f64 (pow.f64 x 2) -3))
(+.f64 (*.f64 (pow.f64 x 2) -3) (+.f64 x x))
(+.f64 (*.f64 2 x) (*.f64 -3 (pow.f64 x 2)))
(+.f64 (*.f64 x 2) (*.f64 (pow.f64 x 2) -3))
(+.f64 (*.f64 (pow.f64 x 2) -3) (+.f64 x x))
(+.f64 (*.f64 2 x) (*.f64 -3 (pow.f64 x 2)))
(+.f64 (*.f64 x 2) (*.f64 (pow.f64 x 2) -3))
(+.f64 (*.f64 (pow.f64 x 2) -3) (+.f64 x x))
(*.f64 -3 (pow.f64 x 2))
(*.f64 (pow.f64 x 2) -3)
(+.f64 (*.f64 2 x) (*.f64 -3 (pow.f64 x 2)))
(+.f64 (*.f64 x 2) (*.f64 (pow.f64 x 2) -3))
(+.f64 (*.f64 (pow.f64 x 2) -3) (+.f64 x x))
(+.f64 (*.f64 2 x) (*.f64 -3 (pow.f64 x 2)))
(+.f64 (*.f64 x 2) (*.f64 (pow.f64 x 2) -3))
(+.f64 (*.f64 (pow.f64 x 2) -3) (+.f64 x x))
(+.f64 (*.f64 2 x) (*.f64 -3 (pow.f64 x 2)))
(+.f64 (*.f64 x 2) (*.f64 (pow.f64 x 2) -3))
(+.f64 (*.f64 (pow.f64 x 2) -3) (+.f64 x x))
(*.f64 -3 (pow.f64 x 2))
(*.f64 (pow.f64 x 2) -3)
(+.f64 (*.f64 2 x) (*.f64 -3 (pow.f64 x 2)))
(+.f64 (*.f64 x 2) (*.f64 (pow.f64 x 2) -3))
(+.f64 (*.f64 (pow.f64 x 2) -3) (+.f64 x x))
(+.f64 (*.f64 2 x) (*.f64 -3 (pow.f64 x 2)))
(+.f64 (*.f64 x 2) (*.f64 (pow.f64 x 2) -3))
(+.f64 (*.f64 (pow.f64 x 2) -3) (+.f64 x x))
(+.f64 (*.f64 2 x) (*.f64 -3 (pow.f64 x 2)))
(+.f64 (*.f64 x 2) (*.f64 (pow.f64 x 2) -3))
(+.f64 (*.f64 (pow.f64 x 2) -3) (+.f64 x x))
(+.f64 (*.f64 x (-.f64 2 (*.f64 3 x))) (*.f64 x (*.f64 2 (-.f64 2 (*.f64 3 x)))))
(+.f64 (*.f64 x (-.f64 2 (*.f64 x 3))) (*.f64 x (*.f64 2 (-.f64 2 (*.f64 x 3)))))
(*.f64 x (+.f64 (*.f64 2 (-.f64 2 (*.f64 x 3))) (-.f64 2 (*.f64 x 3))))
(*.f64 3 (*.f64 x (-.f64 2 (*.f64 x 3))))
(*.f64 (*.f64 x 3) (-.f64 2 (*.f64 x 3)))
(+.f64 (*.f64 3 (*.f64 x (-.f64 2 (*.f64 3 x)))) 0)
(+.f64 (*.f64 x (-.f64 2 (*.f64 x 3))) (*.f64 x (*.f64 2 (-.f64 2 (*.f64 x 3)))))
(*.f64 x (+.f64 (*.f64 2 (-.f64 2 (*.f64 x 3))) (-.f64 2 (*.f64 x 3))))
(*.f64 3 (*.f64 x (-.f64 2 (*.f64 x 3))))
(*.f64 (*.f64 x 3) (-.f64 2 (*.f64 x 3)))
(+.f64 0 (*.f64 3 (*.f64 x (-.f64 2 (*.f64 3 x)))))
(+.f64 (*.f64 x (-.f64 2 (*.f64 x 3))) (*.f64 x (*.f64 2 (-.f64 2 (*.f64 x 3)))))
(*.f64 x (+.f64 (*.f64 2 (-.f64 2 (*.f64 x 3))) (-.f64 2 (*.f64 x 3))))
(*.f64 3 (*.f64 x (-.f64 2 (*.f64 x 3))))
(*.f64 (*.f64 x 3) (-.f64 2 (*.f64 x 3)))
(+.f64 (*.f64 x (*.f64 2 (-.f64 2 (*.f64 3 x)))) (*.f64 x (-.f64 2 (*.f64 3 x))))
(+.f64 (*.f64 x (-.f64 2 (*.f64 x 3))) (*.f64 x (*.f64 2 (-.f64 2 (*.f64 x 3)))))
(*.f64 x (+.f64 (*.f64 2 (-.f64 2 (*.f64 x 3))) (-.f64 2 (*.f64 x 3))))
(*.f64 3 (*.f64 x (-.f64 2 (*.f64 x 3))))
(*.f64 (*.f64 x 3) (-.f64 2 (*.f64 x 3)))
(+.f64 (*.f64 x (*.f64 (-.f64 2 (*.f64 3 x)) 3/2)) (*.f64 x (*.f64 (-.f64 2 (*.f64 3 x)) 3/2)))
(+.f64 (*.f64 x (-.f64 2 (*.f64 x 3))) (*.f64 x (*.f64 2 (-.f64 2 (*.f64 x 3)))))
(*.f64 x (+.f64 (*.f64 2 (-.f64 2 (*.f64 x 3))) (-.f64 2 (*.f64 x 3))))
(*.f64 3 (*.f64 x (-.f64 2 (*.f64 x 3))))
(*.f64 (*.f64 x 3) (-.f64 2 (*.f64 x 3)))
(-.f64 (*.f64 3 (*.f64 x (-.f64 2 (*.f64 3 x)))) 0)
(+.f64 (*.f64 x (-.f64 2 (*.f64 x 3))) (*.f64 x (*.f64 2 (-.f64 2 (*.f64 x 3)))))
(*.f64 x (+.f64 (*.f64 2 (-.f64 2 (*.f64 x 3))) (-.f64 2 (*.f64 x 3))))
(*.f64 3 (*.f64 x (-.f64 2 (*.f64 x 3))))
(*.f64 (*.f64 x 3) (-.f64 2 (*.f64 x 3)))
(/.f64 (*.f64 3 (*.f64 x (-.f64 2 (*.f64 3 x)))) 1)
(+.f64 (*.f64 x (-.f64 2 (*.f64 x 3))) (*.f64 x (*.f64 2 (-.f64 2 (*.f64 x 3)))))
(*.f64 x (+.f64 (*.f64 2 (-.f64 2 (*.f64 x 3))) (-.f64 2 (*.f64 x 3))))
(*.f64 3 (*.f64 x (-.f64 2 (*.f64 x 3))))
(*.f64 (*.f64 x 3) (-.f64 2 (*.f64 x 3)))
(/.f64 (*.f64 (-.f64 2 (*.f64 3 x)) (*.f64 x 6)) 2)
(+.f64 (*.f64 x (-.f64 2 (*.f64 x 3))) (*.f64 x (*.f64 2 (-.f64 2 (*.f64 x 3)))))
(*.f64 x (+.f64 (*.f64 2 (-.f64 2 (*.f64 x 3))) (-.f64 2 (*.f64 x 3))))
(*.f64 3 (*.f64 x (-.f64 2 (*.f64 x 3))))
(*.f64 (*.f64 x 3) (-.f64 2 (*.f64 x 3)))
(/.f64 (*.f64 x (*.f64 (-.f64 2 (*.f64 3 x)) 12)) 4)
(+.f64 (*.f64 x (-.f64 2 (*.f64 x 3))) (*.f64 x (*.f64 2 (-.f64 2 (*.f64 x 3)))))
(*.f64 x (+.f64 (*.f64 2 (-.f64 2 (*.f64 x 3))) (-.f64 2 (*.f64 x 3))))
(*.f64 3 (*.f64 x (-.f64 2 (*.f64 x 3))))
(*.f64 (*.f64 x 3) (-.f64 2 (*.f64 x 3)))
(/.f64 (*.f64 2 (*.f64 x (*.f64 (-.f64 2 (*.f64 3 x)) 12))) 8)
(+.f64 (*.f64 x (-.f64 2 (*.f64 x 3))) (*.f64 x (*.f64 2 (-.f64 2 (*.f64 x 3)))))
(*.f64 x (+.f64 (*.f64 2 (-.f64 2 (*.f64 x 3))) (-.f64 2 (*.f64 x 3))))
(*.f64 3 (*.f64 x (-.f64 2 (*.f64 x 3))))
(*.f64 (*.f64 x 3) (-.f64 2 (*.f64 x 3)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (-.f64 2 (*.f64 3 x)) 12)))) 16)
(+.f64 (*.f64 x (-.f64 2 (*.f64 x 3))) (*.f64 x (*.f64 2 (-.f64 2 (*.f64 x 3)))))
(*.f64 x (+.f64 (*.f64 2 (-.f64 2 (*.f64 x 3))) (-.f64 2 (*.f64 x 3))))
(*.f64 3 (*.f64 x (-.f64 2 (*.f64 x 3))))
(*.f64 (*.f64 x 3) (-.f64 2 (*.f64 x 3)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (-.f64 2 (*.f64 3 x)) 12))))) 32)
(+.f64 (*.f64 x (-.f64 2 (*.f64 x 3))) (*.f64 x (*.f64 2 (-.f64 2 (*.f64 x 3)))))
(*.f64 x (+.f64 (*.f64 2 (-.f64 2 (*.f64 x 3))) (-.f64 2 (*.f64 x 3))))
(*.f64 3 (*.f64 x (-.f64 2 (*.f64 x 3))))
(*.f64 (*.f64 x 3) (-.f64 2 (*.f64 x 3)))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (-.f64 2 (*.f64 3 x)) 12))))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x (*.f64 (-.f64 2 (*.f64 3 x)) 12)))))) 64)
(+.f64 (*.f64 x (-.f64 2 (*.f64 x 3))) (*.f64 x (*.f64 2 (-.f64 2 (*.f64 x 3)))))
(*.f64 x (+.f64 (*.f64 2 (-.f64 2 (*.f64 x 3))) (-.f64 2 (*.f64 x 3))))
(*.f64 3 (*.f64 x (-.f64 2 (*.f64 x 3))))
(*.f64 (*.f64 x 3) (-.f64 2 (*.f64 x 3)))
(+.f64 (*.f64 x (-.f64 2 (*.f64 3 x))) 0)
(*.f64 x (-.f64 2 (*.f64 x 3)))
(+.f64 0 (*.f64 x (-.f64 2 (*.f64 3 x))))
(*.f64 x (-.f64 2 (*.f64 x 3)))
(+.f64 (*.f64 (-.f64 2 (*.f64 3 x)) (*.f64 x 1/2)) (*.f64 (-.f64 2 (*.f64 3 x)) (*.f64 x 1/2)))
(*.f64 x (-.f64 2 (*.f64 x 3)))
(-.f64 (*.f64 x (-.f64 2 (*.f64 3 x))) 0)
(*.f64 x (-.f64 2 (*.f64 x 3)))
(/.f64 (*.f64 x (-.f64 2 (*.f64 3 x))) 1)
(*.f64 x (-.f64 2 (*.f64 x 3)))
(/.f64 (*.f64 x (*.f64 2 (-.f64 2 (*.f64 3 x)))) 2)
(*.f64 x (-.f64 2 (*.f64 x 3)))
(/.f64 (*.f64 x (*.f64 (-.f64 2 (*.f64 3 x)) 4)) 4)
(*.f64 x (-.f64 2 (*.f64 x 3)))
(/.f64 (*.f64 (*.f64 x (-.f64 2 (*.f64 3 x))) 8) 8)
(*.f64 x (-.f64 2 (*.f64 x 3)))
(/.f64 (*.f64 2 (*.f64 (*.f64 x (-.f64 2 (*.f64 3 x))) 8)) 16)
(*.f64 x (-.f64 2 (*.f64 x 3)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 2 (*.f64 3 x))) 8))) 32)
(*.f64 x (-.f64 2 (*.f64 x 3)))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 2 (*.f64 3 x))) 8))) (*.f64 2 (*.f64 2 (*.f64 (*.f64 x (-.f64 2 (*.f64 3 x))) 8)))) 64)
(*.f64 x (-.f64 2 (*.f64 x 3)))

localize4.0ms (0%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.1b
(*.f64 (*.f64 -9 x) x)
Compiler

Compiled 11 to 7 computations (36.4% saved)

series0.0ms (0%)

Counts
1 → 12
Calls

3 calls:

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

rewrite398.0ms (3.9%)

Algorithm
batch-egg-rewrite
Rules
1404×bool.json-1
1404×bool.json-2
1358×rational.json-1
1358×rational.json-2
1358×rational.json-4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0613
16113
217613
338013
477813
5174813
6436913
Stop Event
node limit
Counts
1 → 10
Calls
Call 1
Inputs
(*.f64 (*.f64 -9 x) x)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 -9 (*.f64 x x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 -9 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 x -9/2)) (*.f64 x (*.f64 x -9/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 -9 (*.f64 x x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -9 (*.f64 x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 x -18)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 x -36)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 -9 (*.f64 x x)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 -9 (*.f64 x x)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 -9 (*.f64 x x)) 8)) (*.f64 2 (*.f64 (*.f64 -9 (*.f64 x x)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 -9 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 -9 (*.f64 x x)) (*.f64 -9 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 -9 (*.f64 x x)) (*.f64 -9 (*.f64 x x)))))))

simplify119.0ms (1.2%)

Algorithm
egg-herbie
Rules
1998×rational.json-simplify-35
1302×rational.json-simplify-2
1264×rational.json-simplify-53
808×rational.json-simplify-19
786×rational.json-simplify-46
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
037286
180286
2171286
3425286
41836286
54136286
66490286
77769286
Stop Event
node limit
Counts
22 → 12
Calls
Call 1
Inputs
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(+.f64 (*.f64 -9 (*.f64 x x)) 0)
(+.f64 0 (*.f64 -9 (*.f64 x x)))
(+.f64 (*.f64 x (*.f64 x -9/2)) (*.f64 x (*.f64 x -9/2)))
(-.f64 (*.f64 -9 (*.f64 x x)) 0)
(/.f64 (*.f64 -9 (*.f64 x x)) 1)
(/.f64 (*.f64 x (*.f64 x -18)) 2)
(/.f64 (*.f64 x (*.f64 x -36)) 4)
(/.f64 (*.f64 (*.f64 -9 (*.f64 x x)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 -9 (*.f64 x x)) 8)) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 -9 (*.f64 x x)) 8)) (*.f64 2 (*.f64 (*.f64 -9 (*.f64 x x)) 8))) 32)
Outputs
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(+.f64 (*.f64 -9 (*.f64 x x)) 0)
(*.f64 -9 (*.f64 x x))
(+.f64 0 (*.f64 -9 (*.f64 x x)))
(*.f64 -9 (*.f64 x x))
(+.f64 (*.f64 x (*.f64 x -9/2)) (*.f64 x (*.f64 x -9/2)))
(*.f64 -9 (*.f64 x x))
(-.f64 (*.f64 -9 (*.f64 x x)) 0)
(*.f64 -9 (*.f64 x x))
(/.f64 (*.f64 -9 (*.f64 x x)) 1)
(*.f64 -9 (*.f64 x x))
(/.f64 (*.f64 x (*.f64 x -18)) 2)
(*.f64 -9 (*.f64 x x))
(/.f64 (*.f64 x (*.f64 x -36)) 4)
(*.f64 -9 (*.f64 x x))
(/.f64 (*.f64 (*.f64 -9 (*.f64 x x)) 8) 8)
(*.f64 -9 (*.f64 x x))
(/.f64 (*.f64 2 (*.f64 (*.f64 -9 (*.f64 x x)) 8)) 16)
(*.f64 -9 (*.f64 x x))
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 -9 (*.f64 x x)) 8)) (*.f64 2 (*.f64 (*.f64 -9 (*.f64 x x)) 8))) 32)
(*.f64 -9 (*.f64 x x))

localize11.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
0.2b
(*.f64 -9 (pow.f64 x 2))
Compiler

Compiled 25 to 19 computations (24% saved)

series1.0ms (0%)

Counts
1 → 3
Calls

3 calls:

TimeVariablePointExpression
0.0ms
x
@inf
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
0.0ms
x
@0
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
0.0ms
x
@-inf
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))

rewrite108.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
1708×bool.json-1
1708×bool.json-2
1652×rational.json-1
1222×rational.json-simplify-35
1094×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01025
19825
224325
347425
498125
5214325
6437725
7694725
Stop Event
node limit
Counts
1 → 20
Calls
Call 1
Inputs
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 x 3) (*.f64 (pow.f64 x 2) -9/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2))) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 2 (+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 (pow.f64 x 2) -18) (*.f64 x 12)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2))) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2))) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2))) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2))) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2))) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2))) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x and (+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2))) (+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2))))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2))) (+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2))))))))

simplify967.0ms (9.4%)

Algorithm
egg-herbie
Rules
5876×rational.json-simplify-51
1972×rational.json-simplify-35
1702×rational.json-simplify-2
1130×rational.json-simplify-1
1124×rational.json-simplify-49
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
057539
1110539
2270539
3692539
41097539
52413539
63182539
73230539
83260539
93286539
103312539
113338539
123387539
133413539
143439539
153465539
163491539
173517539
183543539
194371539
204743539
214775539
224805539
234834539
244863539
254892539
264921539
274950539
284979539
295008539
305037539
315066539
325095539
335124539
345153539
355182539
365211539
375240539
385269539
395298539
405298539
Stop Event
node limit
Counts
23 → 23
Calls
Call 1
Inputs
(*.f64 6 x)
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(-.f64 (+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2))) 0)
(*.f64 2 (*.f64 (+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2))) 1/2))
(*.f64 2 (+.f64 (*.f64 x 3) (*.f64 (pow.f64 x 2) -9/2)))
(*.f64 (+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2))) 1)
(*.f64 1 (+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2))))
(*.f64 (*.f64 2 (+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))) 1/2)
(*.f64 4 (/.f64 (+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2))) 4))
(*.f64 (*.f64 (+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2))) 4) 1/4)
(*.f64 1/2 (*.f64 2 (+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))))
(*.f64 1/2 (+.f64 (*.f64 (pow.f64 x 2) -18) (*.f64 x 12)))
(*.f64 (*.f64 (+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2))) 1/2) 2)
(*.f64 1/4 (*.f64 (+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2))) 4))
(*.f64 (/.f64 (+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2))) 4) 4)
(/.f64 (+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2))) 1)
(/.f64 (*.f64 2 (+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))) 2)
(/.f64 (*.f64 (+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2))) 4) 4)
(/.f64 (*.f64 (+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2))) 8) 8)
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2))) 8)) 16)
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2))) 8))) 32)
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2))) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2))) 8)))) 64)
Outputs
(*.f64 6 x)
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(-.f64 (+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2))) 0)
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(*.f64 2 (*.f64 (+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2))) 1/2))
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(*.f64 2 (+.f64 (*.f64 x 3) (*.f64 (pow.f64 x 2) -9/2)))
(*.f64 (+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2))) 1)
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(*.f64 1 (+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2))))
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(*.f64 (*.f64 2 (+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))) 1/2)
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(*.f64 4 (/.f64 (+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2))) 4))
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(*.f64 (*.f64 (+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2))) 4) 1/4)
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(*.f64 1/2 (*.f64 2 (+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))))
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(*.f64 1/2 (+.f64 (*.f64 (pow.f64 x 2) -18) (*.f64 x 12)))
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(*.f64 (*.f64 (+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2))) 1/2) 2)
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(*.f64 1/4 (*.f64 (+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2))) 4))
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(*.f64 (/.f64 (+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2))) 4) 4)
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(/.f64 (+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2))) 1)
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(/.f64 (*.f64 2 (+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))) 2)
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(/.f64 (*.f64 (+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2))) 4) 4)
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(/.f64 (*.f64 (+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2))) 8) 8)
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(/.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2))) 8)) 16)
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2))) 8))) 32)
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2))) 8))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2))) 8)))) 64)
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))

eval39.0ms (0.4%)

Compiler

Compiled 1726 to 1399 computations (18.9% saved)

prune20.0ms (0.2%)

Pruning

10 alts after pruning (2 fresh and 8 done)

PrunedKeptTotal
New1422144
Fresh000
Picked011
Done178
Total14310153
Error
0.1b
Counts
153 → 10
Alt Table
Click to see full alt table
StatusErrorProgram
43.3b
(/.f64 (*.f64 -9 (fabs.f64 x)) (/.f64 1 (fabs.f64 x)))
0.2b
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
0.2b
(*.f64 (+.f64 (*.f64 -9 x) 6) x)
0.2b
(*.f64 (*.f64 3 (-.f64 2 (*.f64 x 3))) x)
0.2b
(*.f64 (*.f64 3 (-.f64 -1 (+.f64 -3 (*.f64 x 3)))) x)
43.3b
(*.f64 (*.f64 -9 x) x)
19.5b
(*.f64 6 x)
0.2b
(*.f64 3 (*.f64 x (-.f64 2 (*.f64 x 3))))
43.3b
(*.f64 3 (*.f64 x (*.f64 x -3)))
43.3b
(*.f64 -9 (*.f64 x x))
Compiler

Compiled 84 to 64 computations (23.8% saved)

localize9.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 19 to 13 computations (31.6% saved)

series1.0ms (0%)

Counts
2 → 24
Calls

6 calls:

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

rewrite83.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
1766×bool.json-1
1766×bool.json-2
1704×rational.json-1
1334×bool.json-3
804×rational.json-simplify-2
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0832
18232
223026
350326
4105326
5246426
6589826
Stop Event
node limit
Counts
2 → 22
Calls
Call 1
Inputs
(*.f64 3 (*.f64 x (*.f64 x -3)))
(*.f64 x (*.f64 x -3))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 x -3)) (*.f64 x (*.f64 x -6)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 x -9)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (*.f64 x -9)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 x -6)) (*.f64 x (*.f64 x -3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 x -9/2)) (*.f64 x (*.f64 x -9/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (*.f64 x -9)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 x -9)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 x -18)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x x) -36) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x (*.f64 x -9)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 x (*.f64 x -9)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 x (*.f64 x -9)) 8)) (*.f64 2 (*.f64 (*.f64 x (*.f64 x -9)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 x (*.f64 x -9))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 x (*.f64 x -9)) (*.f64 x (*.f64 x -9)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 x (*.f64 x -9)) (*.f64 x (*.f64 x -9)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 x -3)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (*.f64 x -3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 x -3/2)) (*.f64 x (*.f64 x -3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (*.f64 x -3)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 x -3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 x -6)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 x -12)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x (*.f64 x -3)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (*.f64 x (*.f64 x -3)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 x (*.f64 x -3)) 8)) (*.f64 2 (*.f64 (*.f64 x (*.f64 x -3)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 x (*.f64 x -3))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 x (*.f64 x -3)) (*.f64 x (*.f64 x -3)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 x (*.f64 x -3)) (*.f64 x (*.f64 x -3)))))))

simplify89.0ms (0.9%)

Algorithm
egg-herbie
Rules
1136×rational.json-simplify-61
1130×rational.json-simplify-53
1062×rational.json-simplify-41
1054×rational.json-simplify-54
970×rational.json-simplify-49
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
065814
1136742
2296598
3731598
42954598
57243598
Stop Event
node limit
Counts
46 → 29
Calls
Call 1
Inputs
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -3 (pow.f64 x 2))
(*.f64 -3 (pow.f64 x 2))
(*.f64 -3 (pow.f64 x 2))
(*.f64 -3 (pow.f64 x 2))
(*.f64 -3 (pow.f64 x 2))
(*.f64 -3 (pow.f64 x 2))
(*.f64 -3 (pow.f64 x 2))
(*.f64 -3 (pow.f64 x 2))
(*.f64 -3 (pow.f64 x 2))
(*.f64 -3 (pow.f64 x 2))
(*.f64 -3 (pow.f64 x 2))
(*.f64 -3 (pow.f64 x 2))
(+.f64 (*.f64 x (*.f64 x -3)) (*.f64 x (*.f64 x -6)))
(+.f64 (*.f64 x (*.f64 x -9)) 0)
(+.f64 0 (*.f64 x (*.f64 x -9)))
(+.f64 (*.f64 x (*.f64 x -6)) (*.f64 x (*.f64 x -3)))
(+.f64 (*.f64 x (*.f64 x -9/2)) (*.f64 x (*.f64 x -9/2)))
(-.f64 (*.f64 x (*.f64 x -9)) 0)
(/.f64 (*.f64 x (*.f64 x -9)) 1)
(/.f64 (*.f64 x (*.f64 x -18)) 2)
(/.f64 (*.f64 (*.f64 x x) -36) 4)
(/.f64 (*.f64 (*.f64 x (*.f64 x -9)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 x (*.f64 x -9)) 8)) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 x (*.f64 x -9)) 8)) (*.f64 2 (*.f64 (*.f64 x (*.f64 x -9)) 8))) 32)
(+.f64 (*.f64 x (*.f64 x -3)) 0)
(+.f64 0 (*.f64 x (*.f64 x -3)))
(+.f64 (*.f64 x (*.f64 x -3/2)) (*.f64 x (*.f64 x -3/2)))
(-.f64 (*.f64 x (*.f64 x -3)) 0)
(/.f64 (*.f64 x (*.f64 x -3)) 1)
(/.f64 (*.f64 x (*.f64 x -6)) 2)
(/.f64 (*.f64 x (*.f64 x -12)) 4)
(/.f64 (*.f64 (*.f64 x (*.f64 x -3)) 8) 8)
(/.f64 (*.f64 2 (*.f64 (*.f64 x (*.f64 x -3)) 8)) 16)
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 x (*.f64 x -3)) 8)) (*.f64 2 (*.f64 (*.f64 x (*.f64 x -3)) 8))) 32)
Outputs
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -9 (pow.f64 x 2))
(*.f64 -3 (pow.f64 x 2))
(*.f64 (pow.f64 x 2) -3)
(*.f64 -3 (pow.f64 x 2))
(*.f64 (pow.f64 x 2) -3)
(*.f64 -3 (pow.f64 x 2))
(*.f64 (pow.f64 x 2) -3)
(*.f64 -3 (pow.f64 x 2))
(*.f64 (pow.f64 x 2) -3)
(*.f64 -3 (pow.f64 x 2))
(*.f64 (pow.f64 x 2) -3)
(*.f64 -3 (pow.f64 x 2))
(*.f64 (pow.f64 x 2) -3)
(*.f64 -3 (pow.f64 x 2))
(*.f64 (pow.f64 x 2) -3)
(*.f64 -3 (pow.f64 x 2))
(*.f64 (pow.f64 x 2) -3)
(*.f64 -3 (pow.f64 x 2))
(*.f64 (pow.f64 x 2) -3)
(*.f64 -3 (pow.f64 x 2))
(*.f64 (pow.f64 x 2) -3)
(*.f64 -3 (pow.f64 x 2))
(*.f64 (pow.f64 x 2) -3)
(*.f64 -3 (pow.f64 x 2))
(*.f64 (pow.f64 x 2) -3)
(+.f64 (*.f64 x (*.f64 x -3)) (*.f64 x (*.f64 x -6)))
(*.f64 x (+.f64 (*.f64 x -3) (*.f64 x -6)))
(*.f64 -9 (*.f64 x x))
(+.f64 (*.f64 x (*.f64 x -9)) 0)
(+.f64 (*.f64 x (*.f64 x -3)) (*.f64 x (*.f64 x -6)))
(*.f64 x (+.f64 (*.f64 x -3) (*.f64 x -6)))
(*.f64 -9 (*.f64 x x))
(+.f64 0 (*.f64 x (*.f64 x -9)))
(+.f64 (*.f64 x (*.f64 x -3)) (*.f64 x (*.f64 x -6)))
(*.f64 x (+.f64 (*.f64 x -3) (*.f64 x -6)))
(*.f64 -9 (*.f64 x x))
(+.f64 (*.f64 x (*.f64 x -6)) (*.f64 x (*.f64 x -3)))
(+.f64 (*.f64 x (*.f64 x -3)) (*.f64 x (*.f64 x -6)))
(*.f64 x (+.f64 (*.f64 x -3) (*.f64 x -6)))
(*.f64 -9 (*.f64 x x))
(+.f64 (*.f64 x (*.f64 x -9/2)) (*.f64 x (*.f64 x -9/2)))
(+.f64 (*.f64 x (*.f64 x -3)) (*.f64 x (*.f64 x -6)))
(*.f64 x (+.f64 (*.f64 x -3) (*.f64 x -6)))
(*.f64 -9 (*.f64 x x))
(-.f64 (*.f64 x (*.f64 x -9)) 0)
(+.f64 (*.f64 x (*.f64 x -3)) (*.f64 x (*.f64 x -6)))
(*.f64 x (+.f64 (*.f64 x -3) (*.f64 x -6)))
(*.f64 -9 (*.f64 x x))
(/.f64 (*.f64 x (*.f64 x -9)) 1)
(+.f64 (*.f64 x (*.f64 x -3)) (*.f64 x (*.f64 x -6)))
(*.f64 x (+.f64 (*.f64 x -3) (*.f64 x -6)))
(*.f64 -9 (*.f64 x x))
(/.f64 (*.f64 x (*.f64 x -18)) 2)
(+.f64 (*.f64 x (*.f64 x -3)) (*.f64 x (*.f64 x -6)))
(*.f64 x (+.f64 (*.f64 x -3) (*.f64 x -6)))
(*.f64 -9 (*.f64 x x))
(/.f64 (*.f64 (*.f64 x x) -36) 4)
(+.f64 (*.f64 x (*.f64 x -3)) (*.f64 x (*.f64 x -6)))
(*.f64 x (+.f64 (*.f64 x -3) (*.f64 x -6)))
(*.f64 -9 (*.f64 x x))
(/.f64 (*.f64 (*.f64 x (*.f64 x -9)) 8) 8)
(+.f64 (*.f64 x (*.f64 x -3)) (*.f64 x (*.f64 x -6)))
(*.f64 x (+.f64 (*.f64 x -3) (*.f64 x -6)))
(*.f64 -9 (*.f64 x x))
(/.f64 (*.f64 2 (*.f64 (*.f64 x (*.f64 x -9)) 8)) 16)
(+.f64 (*.f64 x (*.f64 x -3)) (*.f64 x (*.f64 x -6)))
(*.f64 x (+.f64 (*.f64 x -3) (*.f64 x -6)))
(*.f64 -9 (*.f64 x x))
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 x (*.f64 x -9)) 8)) (*.f64 2 (*.f64 (*.f64 x (*.f64 x -9)) 8))) 32)
(+.f64 (*.f64 x (*.f64 x -3)) (*.f64 x (*.f64 x -6)))
(*.f64 x (+.f64 (*.f64 x -3) (*.f64 x -6)))
(*.f64 -9 (*.f64 x x))
(+.f64 (*.f64 x (*.f64 x -3)) 0)
(*.f64 x (*.f64 x -3))
(*.f64 -3 (*.f64 x x))
(+.f64 0 (*.f64 x (*.f64 x -3)))
(*.f64 x (*.f64 x -3))
(*.f64 -3 (*.f64 x x))
(+.f64 (*.f64 x (*.f64 x -3/2)) (*.f64 x (*.f64 x -3/2)))
(*.f64 x (*.f64 x -3))
(*.f64 -3 (*.f64 x x))
(-.f64 (*.f64 x (*.f64 x -3)) 0)
(*.f64 x (*.f64 x -3))
(*.f64 -3 (*.f64 x x))
(/.f64 (*.f64 x (*.f64 x -3)) 1)
(*.f64 x (*.f64 x -3))
(*.f64 -3 (*.f64 x x))
(/.f64 (*.f64 x (*.f64 x -6)) 2)
(*.f64 x (*.f64 x -3))
(*.f64 -3 (*.f64 x x))
(/.f64 (*.f64 x (*.f64 x -12)) 4)
(*.f64 x (*.f64 x -3))
(*.f64 -3 (*.f64 x x))
(/.f64 (*.f64 (*.f64 x (*.f64 x -3)) 8) 8)
(*.f64 x (*.f64 x -3))
(*.f64 -3 (*.f64 x x))
(/.f64 (*.f64 2 (*.f64 (*.f64 x (*.f64 x -3)) 8)) 16)
(*.f64 x (*.f64 x -3))
(*.f64 -3 (*.f64 x x))
(/.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 x (*.f64 x -3)) 8)) (*.f64 2 (*.f64 (*.f64 x (*.f64 x -3)) 8))) 32)
(*.f64 x (*.f64 x -3))
(*.f64 -3 (*.f64 x x))

localize21.0ms (0.2%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.2b
(/.f64 (*.f64 -9 (fabs.f64 x)) (/.f64 1 (fabs.f64 x)))
Compiler

Compiled 23 to 13 computations (43.5% saved)

series3.0ms (0%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
1.0ms
x
@-inf
(/.f64 (*.f64 -9 (fabs.f64 x)) (/.f64 1 (fabs.f64 x)))
1.0ms
x
@inf
(/.f64 (*.f64 -9 (fabs.f64 x)) (/.f64 1 (fabs.f64 x)))
1.0ms
x
@0
(/.f64 (*.f64 -9 (fabs.f64 x)) (/.f64 1 (fabs.f64 x)))

rewrite87.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
880×rational.json-simplify-19
824×rational.json-simplify-46
796×rational.json-simplify-35
672×rational.json-simplify-40
606×bool.json-1
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01027
111621
241513
3142413
4696513
Stop Event
node limit
Counts
1 → 46
Calls
Call 1
Inputs
(/.f64 (*.f64 -9 (fabs.f64 x)) (/.f64 1 (fabs.f64 x)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 -9 (*.f64 x x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 -9 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 -9 (*.f64 x x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -9 (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 -9 (*.f64 (fabs.f64 x) (/.f64 x (fabs.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (/.f64 x -1/9))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 x -9))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 (*.f64 (fabs.f64 x) (/.f64 x (fabs.f64 x))) -9))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 (*.f64 -9 (/.f64 x (fabs.f64 x))) (fabs.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 (*.f64 -9 (*.f64 (fabs.f64 x) (/.f64 x (fabs.f64 x)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 (/.f64 x -1/9) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fabs.f64 x) (*.f64 -9 (fabs.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 -9 (fabs.f64 x)) (fabs.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 -9 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 -9 (*.f64 x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x x) -9)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x x) (*.f64 (/.f64 1 (fabs.f64 x)) (*.f64 -9 (fabs.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fabs.f64 (+.f64 x x)) (/.f64 1/2 (/.f64 -1/9 (fabs.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fabs.f64 (+.f64 x x)) (/.f64 1 (/.f64 -2/9 (fabs.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fabs.f64 (+.f64 x x)) (/.f64 (*.f64 -9 (fabs.f64 x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fabs.f64 (+.f64 x x)) (*.f64 -9/2 (fabs.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fabs.f64 (+.f64 x x)) (*.f64 1/2 (*.f64 -9 (fabs.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fabs.f64 (+.f64 x x)) (*.f64 (/.f64 1/2 (/.f64 -1/9 (fabs.f64 x))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fabs.f64 (+.f64 x x)) (*.f64 (/.f64 1 (/.f64 -2/9 (fabs.f64 x))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fabs.f64 (+.f64 x x)) (*.f64 (/.f64 (*.f64 -9 (fabs.f64 x)) 2) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (fabs.f64 x) -18) (/.f64 (fabs.f64 x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (fabs.f64 x) -18) (*.f64 1/2 (fabs.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (fabs.f64 x) -18) (*.f64 (/.f64 (fabs.f64 x) 2) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -18 (/.f64 (*.f64 x x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -18 (*.f64 (/.f64 (fabs.f64 x) 2) (fabs.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -18 (*.f64 (/.f64 (*.f64 x x) 2) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x (fabs.f64 x)) (/.f64 x (/.f64 -1/9 (fabs.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x (fabs.f64 x)) (*.f64 (*.f64 x (fabs.f64 x)) -9))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x (fabs.f64 x)) (*.f64 (*.f64 -9 (fabs.f64 x)) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x (fabs.f64 x)) (*.f64 (/.f64 x -1/9) (fabs.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x (fabs.f64 x)) (*.f64 x (*.f64 -9 (fabs.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x (fabs.f64 x)) (*.f64 (/.f64 x (/.f64 -1/9 (fabs.f64 x))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 -9 (*.f64 (fabs.f64 x) (/.f64 x (fabs.f64 x)))) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x (/.f64 -1/9 (fabs.f64 x))) (/.f64 x (fabs.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x -1/9) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1/2 (/.f64 -1/9 (fabs.f64 x))) (fabs.f64 (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (/.f64 -2/9 (fabs.f64 x))) (fabs.f64 (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 -9 (fabs.f64 x)) 2) (fabs.f64 (+.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 x x) 2) -18)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (fabs.f64 x) 2) (*.f64 (fabs.f64 x) -18))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (*.f64 -9 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 -9 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 -9 (*.f64 x x)) (*.f64 -9 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 -9 (*.f64 x x)) (*.f64 -9 (*.f64 x x)))))))

simplify102.0ms (1%)

Algorithm
egg-herbie
Rules
1102×rational.json-simplify-19
878×rational.json-simplify-2
866×rational.json-simplify-35
850×rational.json-simplify-40
824×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0103802
1228802
2449802
31449802
45412802
57388802
Stop Event
node limit
Counts
58 → 48
Calls
Call 1
Inputs
(*.f64 -9 (pow.f64 (fabs.f64 x) 2))
(*.f64 -9 (pow.f64 (fabs.f64 x) 2))
(*.f64 -9 (pow.f64 (fabs.f64 x) 2))
(*.f64 -9 (pow.f64 (fabs.f64 x) 2))
(*.f64 -9 (pow.f64 (fabs.f64 x) 2))
(*.f64 -9 (pow.f64 (fabs.f64 x) 2))
(*.f64 -9 (pow.f64 (fabs.f64 x) 2))
(*.f64 -9 (pow.f64 (fabs.f64 x) 2))
(*.f64 -9 (pow.f64 (fabs.f64 x) 2))
(*.f64 -9 (pow.f64 (fabs.f64 x) 2))
(*.f64 -9 (pow.f64 (fabs.f64 x) 2))
(*.f64 -9 (pow.f64 (fabs.f64 x) 2))
(+.f64 (*.f64 -9 (*.f64 x x)) 0)
(+.f64 0 (*.f64 -9 (*.f64 x x)))
(-.f64 (*.f64 -9 (*.f64 x x)) 0)
(*.f64 -9 (*.f64 x x))
(*.f64 x (*.f64 -9 (*.f64 (fabs.f64 x) (/.f64 x (fabs.f64 x)))))
(*.f64 x (/.f64 x -1/9))
(*.f64 x (*.f64 x -9))
(*.f64 x (*.f64 (*.f64 (fabs.f64 x) (/.f64 x (fabs.f64 x))) -9))
(*.f64 x (*.f64 (*.f64 -9 (/.f64 x (fabs.f64 x))) (fabs.f64 x)))
(*.f64 x (*.f64 (*.f64 -9 (*.f64 (fabs.f64 x) (/.f64 x (fabs.f64 x)))) 1))
(*.f64 x (*.f64 (/.f64 x -1/9) 1))
(*.f64 (fabs.f64 x) (*.f64 -9 (fabs.f64 x)))
(*.f64 (*.f64 -9 (fabs.f64 x)) (fabs.f64 x))
(*.f64 1 (*.f64 -9 (*.f64 x x)))
(*.f64 (*.f64 -9 (*.f64 x x)) 1)
(*.f64 (*.f64 x x) -9)
(*.f64 (*.f64 x x) (*.f64 (/.f64 1 (fabs.f64 x)) (*.f64 -9 (fabs.f64 x))))
(*.f64 (fabs.f64 (+.f64 x x)) (/.f64 1/2 (/.f64 -1/9 (fabs.f64 x))))
(*.f64 (fabs.f64 (+.f64 x x)) (/.f64 1 (/.f64 -2/9 (fabs.f64 x))))
(*.f64 (fabs.f64 (+.f64 x x)) (/.f64 (*.f64 -9 (fabs.f64 x)) 2))
(*.f64 (fabs.f64 (+.f64 x x)) (*.f64 -9/2 (fabs.f64 x)))
(*.f64 (fabs.f64 (+.f64 x x)) (*.f64 1/2 (*.f64 -9 (fabs.f64 x))))
(*.f64 (fabs.f64 (+.f64 x x)) (*.f64 (/.f64 1/2 (/.f64 -1/9 (fabs.f64 x))) 1))
(*.f64 (fabs.f64 (+.f64 x x)) (*.f64 (/.f64 1 (/.f64 -2/9 (fabs.f64 x))) 1))
(*.f64 (fabs.f64 (+.f64 x x)) (*.f64 (/.f64 (*.f64 -9 (fabs.f64 x)) 2) 1))
(*.f64 (*.f64 (fabs.f64 x) -18) (/.f64 (fabs.f64 x) 2))
(*.f64 (*.f64 (fabs.f64 x) -18) (*.f64 1/2 (fabs.f64 x)))
(*.f64 (*.f64 (fabs.f64 x) -18) (*.f64 (/.f64 (fabs.f64 x) 2) 1))
(*.f64 -18 (/.f64 (*.f64 x x) 2))
(*.f64 -18 (*.f64 (/.f64 (fabs.f64 x) 2) (fabs.f64 x)))
(*.f64 -18 (*.f64 (/.f64 (*.f64 x x) 2) 1))
(*.f64 (/.f64 x (fabs.f64 x)) (/.f64 x (/.f64 -1/9 (fabs.f64 x))))
(*.f64 (/.f64 x (fabs.f64 x)) (*.f64 (*.f64 x (fabs.f64 x)) -9))
(*.f64 (/.f64 x (fabs.f64 x)) (*.f64 (*.f64 -9 (fabs.f64 x)) x))
(*.f64 (/.f64 x (fabs.f64 x)) (*.f64 (/.f64 x -1/9) (fabs.f64 x)))
(*.f64 (/.f64 x (fabs.f64 x)) (*.f64 x (*.f64 -9 (fabs.f64 x))))
(*.f64 (/.f64 x (fabs.f64 x)) (*.f64 (/.f64 x (/.f64 -1/9 (fabs.f64 x))) 1))
(*.f64 (*.f64 -9 (*.f64 (fabs.f64 x) (/.f64 x (fabs.f64 x)))) x)
(*.f64 (/.f64 x (/.f64 -1/9 (fabs.f64 x))) (/.f64 x (fabs.f64 x)))
(*.f64 (/.f64 x -1/9) x)
(*.f64 (/.f64 1/2 (/.f64 -1/9 (fabs.f64 x))) (fabs.f64 (+.f64 x x)))
(*.f64 (/.f64 1 (/.f64 -2/9 (fabs.f64 x))) (fabs.f64 (+.f64 x x)))
(*.f64 (/.f64 (*.f64 -9 (fabs.f64 x)) 2) (fabs.f64 (+.f64 x x)))
(*.f64 (/.f64 (*.f64 x x) 2) -18)
(*.f64 (/.f64 (fabs.f64 x) 2) (*.f64 (fabs.f64 x) -18))
(neg.f64 (neg.f64 (*.f64 -9 (*.f64 x x))))
Outputs
(*.f64 -9 (pow.f64 (fabs.f64 x) 2))
(*.f64 -9 (pow.f64 (fabs.f64 x) 2))
(*.f64 -9 (pow.f64 (fabs.f64 x) 2))
(*.f64 -9 (pow.f64 (fabs.f64 x) 2))
(*.f64 -9 (pow.f64 (fabs.f64 x) 2))
(*.f64 -9 (pow.f64 (fabs.f64 x) 2))
(*.f64 -9 (pow.f64 (fabs.f64 x) 2))
(*.f64 -9 (pow.f64 (fabs.f64 x) 2))
(*.f64 -9 (pow.f64 (fabs.f64 x) 2))
(*.f64 -9 (pow.f64 (fabs.f64 x) 2))
(*.f64 -9 (pow.f64 (fabs.f64 x) 2))
(*.f64 -9 (pow.f64 (fabs.f64 x) 2))
(+.f64 (*.f64 -9 (*.f64 x x)) 0)
(*.f64 x (*.f64 -9 x))
(*.f64 -9 (*.f64 x x))
(+.f64 0 (*.f64 -9 (*.f64 x x)))
(*.f64 x (*.f64 -9 x))
(*.f64 -9 (*.f64 x x))
(-.f64 (*.f64 -9 (*.f64 x x)) 0)
(*.f64 x (*.f64 -9 x))
(*.f64 -9 (*.f64 x x))
(*.f64 -9 (*.f64 x x))
(*.f64 x (*.f64 -9 x))
(*.f64 x (*.f64 -9 (*.f64 (fabs.f64 x) (/.f64 x (fabs.f64 x)))))
(*.f64 x (*.f64 -9 x))
(*.f64 -9 (*.f64 x x))
(*.f64 x (/.f64 x -1/9))
(*.f64 x (*.f64 -9 x))
(*.f64 -9 (*.f64 x x))
(*.f64 x (*.f64 x -9))
(*.f64 x (*.f64 -9 x))
(*.f64 -9 (*.f64 x x))
(*.f64 x (*.f64 (*.f64 (fabs.f64 x) (/.f64 x (fabs.f64 x))) -9))
(*.f64 x (*.f64 -9 x))
(*.f64 -9 (*.f64 x x))
(*.f64 x (*.f64 (*.f64 -9 (/.f64 x (fabs.f64 x))) (fabs.f64 x)))
(*.f64 x (*.f64 -9 x))
(*.f64 -9 (*.f64 x x))
(*.f64 x (*.f64 (*.f64 -9 (*.f64 (fabs.f64 x) (/.f64 x (fabs.f64 x)))) 1))
(*.f64 x (*.f64 -9 x))
(*.f64 -9 (*.f64 x x))
(*.f64 x (*.f64 (/.f64 x -1/9) 1))
(*.f64 x (*.f64 -9 x))
(*.f64 -9 (*.f64 x x))
(*.f64 (fabs.f64 x) (*.f64 -9 (fabs.f64 x)))
(*.f64 x (*.f64 -9 x))
(*.f64 -9 (*.f64 x x))
(*.f64 (*.f64 -9 (fabs.f64 x)) (fabs.f64 x))
(*.f64 x (*.f64 -9 x))
(*.f64 -9 (*.f64 x x))
(*.f64 1 (*.f64 -9 (*.f64 x x)))
(*.f64 x (*.f64 -9 x))
(*.f64 -9 (*.f64 x x))
(*.f64 (*.f64 -9 (*.f64 x x)) 1)
(*.f64 x (*.f64 -9 x))
(*.f64 -9 (*.f64 x x))
(*.f64 (*.f64 x x) -9)
(*.f64 x (*.f64 -9 x))
(*.f64 -9 (*.f64 x x))
(*.f64 (*.f64 x x) (*.f64 (/.f64 1 (fabs.f64 x)) (*.f64 -9 (fabs.f64 x))))
(*.f64 x (*.f64 -9 x))
(*.f64 -9 (*.f64 x x))
(*.f64 (fabs.f64 (+.f64 x x)) (/.f64 1/2 (/.f64 -1/9 (fabs.f64 x))))
(*.f64 x (*.f64 -9 x))
(*.f64 -9 (*.f64 x x))
(*.f64 (fabs.f64 (+.f64 x x)) (/.f64 1 (/.f64 -2/9 (fabs.f64 x))))
(*.f64 x (*.f64 -9 x))
(*.f64 -9 (*.f64 x x))
(*.f64 (fabs.f64 (+.f64 x x)) (/.f64 (*.f64 -9 (fabs.f64 x)) 2))
(*.f64 x (*.f64 -9 x))
(*.f64 -9 (*.f64 x x))
(*.f64 (fabs.f64 (+.f64 x x)) (*.f64 -9/2 (fabs.f64 x)))
(*.f64 x (*.f64 -9 x))
(*.f64 -9 (*.f64 x x))
(*.f64 (fabs.f64 (+.f64 x x)) (*.f64 1/2 (*.f64 -9 (fabs.f64 x))))
(*.f64 x (*.f64 -9 x))
(*.f64 -9 (*.f64 x x))
(*.f64 (fabs.f64 (+.f64 x x)) (*.f64 (/.f64 1/2 (/.f64 -1/9 (fabs.f64 x))) 1))
(*.f64 x (*.f64 -9 x))
(*.f64 -9 (*.f64 x x))
(*.f64 (fabs.f64 (+.f64 x x)) (*.f64 (/.f64 1 (/.f64 -2/9 (fabs.f64 x))) 1))
(*.f64 x (*.f64 -9 x))
(*.f64 -9 (*.f64 x x))
(*.f64 (fabs.f64 (+.f64 x x)) (*.f64 (/.f64 (*.f64 -9 (fabs.f64 x)) 2) 1))
(*.f64 x (*.f64 -9 x))
(*.f64 -9 (*.f64 x x))
(*.f64 (*.f64 (fabs.f64 x) -18) (/.f64 (fabs.f64 x) 2))
(*.f64 x (*.f64 -9 x))
(*.f64 -9 (*.f64 x x))
(*.f64 (*.f64 (fabs.f64 x) -18) (*.f64 1/2 (fabs.f64 x)))
(*.f64 x (*.f64 -9 x))
(*.f64 -9 (*.f64 x x))
(*.f64 (*.f64 (fabs.f64 x) -18) (*.f64 (/.f64 (fabs.f64 x) 2) 1))
(*.f64 x (*.f64 -9 x))
(*.f64 -9 (*.f64 x x))
(*.f64 -18 (/.f64 (*.f64 x x) 2))
(*.f64 x (*.f64 -9 x))
(*.f64 -9 (*.f64 x x))
(*.f64 -18 (*.f64 (/.f64 (fabs.f64 x) 2) (fabs.f64 x)))
(*.f64 x (*.f64 -9 x))
(*.f64 -9 (*.f64 x x))
(*.f64 -18 (*.f64 (/.f64 (*.f64 x x) 2) 1))
(*.f64 x (*.f64 -9 x))
(*.f64 -9 (*.f64 x x))
(*.f64 (/.f64 x (fabs.f64 x)) (/.f64 x (/.f64 -1/9 (fabs.f64 x))))
(*.f64 x (*.f64 -9 x))
(*.f64 -9 (*.f64 x x))
(*.f64 (/.f64 x (fabs.f64 x)) (*.f64 (*.f64 x (fabs.f64 x)) -9))
(*.f64 x (*.f64 -9 x))
(*.f64 -9 (*.f64 x x))
(*.f64 (/.f64 x (fabs.f64 x)) (*.f64 (*.f64 -9 (fabs.f64 x)) x))
(*.f64 x (*.f64 -9 x))
(*.f64 -9 (*.f64 x x))
(*.f64 (/.f64 x (fabs.f64 x)) (*.f64 (/.f64 x -1/9) (fabs.f64 x)))
(*.f64 x (*.f64 -9 x))
(*.f64 -9 (*.f64 x x))
(*.f64 (/.f64 x (fabs.f64 x)) (*.f64 x (*.f64 -9 (fabs.f64 x))))
(*.f64 x (*.f64 -9 x))
(*.f64 -9 (*.f64 x x))
(*.f64 (/.f64 x (fabs.f64 x)) (*.f64 (/.f64 x (/.f64 -1/9 (fabs.f64 x))) 1))
(*.f64 x (*.f64 -9 x))
(*.f64 -9 (*.f64 x x))
(*.f64 (*.f64 -9 (*.f64 (fabs.f64 x) (/.f64 x (fabs.f64 x)))) x)
(*.f64 x (*.f64 -9 x))
(*.f64 -9 (*.f64 x x))
(*.f64 (/.f64 x (/.f64 -1/9 (fabs.f64 x))) (/.f64 x (fabs.f64 x)))
(*.f64 x (*.f64 -9 x))
(*.f64 -9 (*.f64 x x))
(*.f64 (/.f64 x -1/9) x)
(*.f64 x (*.f64 -9 x))
(*.f64 -9 (*.f64 x x))
(*.f64 (/.f64 1/2 (/.f64 -1/9 (fabs.f64 x))) (fabs.f64 (+.f64 x x)))
(*.f64 x (*.f64 -9 x))
(*.f64 -9 (*.f64 x x))
(*.f64 (/.f64 1 (/.f64 -2/9 (fabs.f64 x))) (fabs.f64 (+.f64 x x)))
(*.f64 x (*.f64 -9 x))
(*.f64 -9 (*.f64 x x))
(*.f64 (/.f64 (*.f64 -9 (fabs.f64 x)) 2) (fabs.f64 (+.f64 x x)))
(*.f64 x (*.f64 -9 x))
(*.f64 -9 (*.f64 x x))
(*.f64 (/.f64 (*.f64 x x) 2) -18)
(*.f64 x (*.f64 -9 x))
(*.f64 -9 (*.f64 x x))
(*.f64 (/.f64 (fabs.f64 x) 2) (*.f64 (fabs.f64 x) -18))
(*.f64 x (*.f64 -9 x))
(*.f64 -9 (*.f64 x x))
(neg.f64 (neg.f64 (*.f64 -9 (*.f64 x x))))
(*.f64 x (*.f64 -9 x))
(*.f64 -9 (*.f64 x x))

eval13.0ms (0.1%)

Compiler

Compiled 721 to 422 computations (41.5% saved)

prune14.0ms (0.1%)

Pruning

10 alts after pruning (1 fresh and 9 done)

PrunedKeptTotal
New76177
Fresh000
Picked101
Done099
Total771087
Error
0.1b
Counts
87 → 10
Alt Table
Click to see full alt table
StatusErrorProgram
0.2b
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
43.3b
(*.f64 (/.f64 x -1/9) x)
0.2b
(*.f64 (+.f64 (*.f64 -9 x) 6) x)
0.2b
(*.f64 (*.f64 3 (-.f64 2 (*.f64 x 3))) x)
0.2b
(*.f64 (*.f64 3 (-.f64 -1 (+.f64 -3 (*.f64 x 3)))) x)
43.3b
(*.f64 (*.f64 -9 x) x)
19.5b
(*.f64 6 x)
0.2b
(*.f64 3 (*.f64 x (-.f64 2 (*.f64 x 3))))
43.3b
(*.f64 3 (*.f64 x (*.f64 x -3)))
43.3b
(*.f64 -9 (*.f64 x x))
Compiler

Compiled 80 to 61 computations (23.8% saved)

regimes93.0ms (0.9%)

Counts
14 → 1
Calls
Call 1
Inputs
(*.f64 6 x)
(*.f64 -9 (*.f64 x x))
(*.f64 (*.f64 -9 x) x)
(*.f64 (/.f64 x -1/9) x)
(*.f64 3 (*.f64 x (*.f64 x -3)))
(*.f64 (*.f64 3 (*.f64 x -3)) x)
(*.f64 (+.f64 (*.f64 -9 x) 6) x)
(*.f64 3 (*.f64 x (-.f64 2 (*.f64 x 3))))
(*.f64 (*.f64 3 (-.f64 2 (*.f64 x 3))) x)
(*.f64 (*.f64 3 (-.f64 -1 (+.f64 -3 (*.f64 x 3)))) x)
(/.f64 (*.f64 (-.f64 2 (*.f64 3 x)) (*.f64 x 6)) 2)
(*.f64 -9 (pow.f64 x 2))
(+.f64 (*.f64 6 x) (*.f64 -9 (pow.f64 x 2)))
(/.f64 (*.f64 -9 (fabs.f64 x)) (/.f64 1 (fabs.f64 x)))
Outputs
(*.f64 (+.f64 (*.f64 -9 x) 6) x)
Calls

2 calls:

83.0ms
(*.f64 (*.f64 3 (-.f64 2 (*.f64 x 3))) x)
7.0ms
x
Results
ErrorSegmentsBranch
0.2b1x
0.2b1(*.f64 (*.f64 3 (-.f64 2 (*.f64 x 3))) x)
Compiler

Compiled 115 to 85 computations (26.1% saved)

regimes14.0ms (0.1%)

Counts
6 → 3
Calls
Call 1
Inputs
(*.f64 6 x)
(*.f64 -9 (*.f64 x x))
(*.f64 (*.f64 -9 x) x)
(*.f64 (/.f64 x -1/9) x)
(*.f64 3 (*.f64 x (*.f64 x -3)))
(*.f64 (*.f64 3 (*.f64 x -3)) x)
Outputs
(*.f64 (*.f64 -9 x) x)
(*.f64 6 x)
(*.f64 (*.f64 -9 x) x)
Calls

1 calls:

13.0ms
x
Results
ErrorSegmentsBranch
2.3b3x
Compiler

Compiled 35 to 23 computations (34.3% saved)

bsearch745.0ms (7.3%)

Algorithm
binary-search
Steps
TimeLeftRight
14.0ms
0.0002382579243207876
821602.6497642815
731.0ms
-3.62680506880263
-0.42756829618060954
Results
742.0ms240×body256valid
Compiler

Compiled 194 to 146 computations (24.7% saved)

regimes10.0ms (0.1%)

Accuracy

Total -58.2b remaining (-2516%)

Threshold costs -58.2b (-2516%)

Counts
2 → 3
Calls
Call 1
Inputs
(*.f64 6 x)
(*.f64 -9 (*.f64 x x))
Outputs
(*.f64 -9 (*.f64 x x))
(*.f64 6 x)
(*.f64 -9 (*.f64 x x))
Calls

1 calls:

9.0ms
x
Results
ErrorSegmentsBranch
2.3b3x
Compiler

Compiled 11 to 7 computations (36.4% saved)

bsearch24.0ms (0.2%)

Algorithm
binary-search
Steps
TimeLeftRight
14.0ms
0.0002382579243207876
821602.6497642815
10.0ms
-3.62680506880263
-0.42756829618060954
Results
21.0ms240×body256valid
Compiler

Compiled 194 to 146 computations (24.7% saved)

simplify4.0ms (0%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
023128
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(*.f64 (+.f64 (*.f64 -9 x) 6) x)
(if (<=.f64 x -5854679515581645/9007199254740992) (*.f64 (*.f64 -9 x) x) (if (<=.f64 x 5944751508129055/9007199254740992) (*.f64 6 x) (*.f64 (*.f64 -9 x) x)))
(if (<=.f64 x -5854679515581645/9007199254740992) (*.f64 -9 (*.f64 x x)) (if (<=.f64 x 5944751508129055/9007199254740992) (*.f64 6 x) (*.f64 -9 (*.f64 x x))))
(*.f64 6 x)
Outputs
(*.f64 (+.f64 (*.f64 -9 x) 6) x)
(if (<=.f64 x -5854679515581645/9007199254740992) (*.f64 (*.f64 -9 x) x) (if (<=.f64 x 5944751508129055/9007199254740992) (*.f64 6 x) (*.f64 (*.f64 -9 x) x)))
(if (<=.f64 x -5854679515581645/9007199254740992) (*.f64 -9 (*.f64 x x)) (if (<=.f64 x 5944751508129055/9007199254740992) (*.f64 6 x) (*.f64 -9 (*.f64 x x))))
(*.f64 6 x)
Compiler

Compiled 56 to 38 computations (32.1% saved)

soundness0.0ms (0%)

end82.0ms (0.8%)

Compiler

Compiled 53 to 35 computations (34% saved)

Profiling

Loading profile data...