Details

Time bar (total: 9.9s)

analyze9.0ms (0.1%)

Algorithm
search
Search
TrueOtherFalseIter
0%100%0%0
0%100%0%1
0%100%0%2
50%50%0%3
50%37.5%12.5%4
62.5%18.7%18.8%5
68.7%9.4%21.9%6
71.8%4.7%23.5%7
73.4%2.3%24.3%8
74.2%1.2%24.6%9
74.6%0.6%24.8%10
74.8%0.3%24.9%11
74.9%0.1%25%12
Compiler

Compiled 15 to 12 computations (20% saved)

sample2.5s (25.6%)

Results
2.5s8256×body256valid
2.0ms16×body256invalid

preprocess93.0ms (0.9%)

Algorithm
egg-herbie
Rules
954×fma-def_binary64
722×fma-neg_binary64
150×cancel-sign-sub-inv_binary64
108×distribute-rgt-in_binary64
76×associate-*l*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01119
13314
27612
318612
43809
55459
68729
715339
824219
928029
1029139
1130399
1230459
1330459
011
Stop Event
saturated
saturated
Calls
Call 1
Inputs
0
Outputs
0
Call 2
Inputs
(*.f64 3 (+.f64 (-.f64 (*.f64 (*.f64 x 3) x) (*.f64 x 4)) 1))
Outputs
(*.f64 3 (+.f64 (-.f64 (*.f64 (*.f64 x 3) x) (*.f64 x 4)) 1))
(+.f64 (*.f64 (fma.f64 (*.f64 3 x) x (neg.f64 (*.f64 x 4))) 3) 3)
(fma.f64 3 (*.f64 x (-.f64 (*.f64 3 x) 4)) 3)
(fma.f64 3 (*.f64 x (fma.f64 3 x -4)) 3)
(fma.f64 x (fma.f64 x 9 -12) 3)
Compiler

Compiled 15 to 12 computations (20% saved)

simplify78.0ms (0.8%)

Algorithm
egg-herbie
Rules
954×fma-def_binary64
722×fma-neg_binary64
150×cancel-sign-sub-inv_binary64
108×distribute-rgt-in_binary64
76×associate-*l*_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
01119
13314
27612
318612
43809
55459
68729
715339
824219
928029
1029139
1130399
1230459
1330459
Stop Event
saturated
Counts
1 → 2
Calls
Call 1
Inputs
(*.f64 3 (+.f64 (-.f64 (*.f64 (*.f64 x 3) x) (*.f64 x 4)) 1))
Outputs
(*.f64 3 (+.f64 (-.f64 (*.f64 (*.f64 x 3) x) (*.f64 x 4)) 1))
(+.f64 (*.f64 (fma.f64 (*.f64 3 x) x (neg.f64 (*.f64 x 4))) 3) 3)
(fma.f64 3 (*.f64 x (-.f64 (*.f64 3 x) 4)) 3)
(fma.f64 3 (*.f64 x (fma.f64 3 x -4)) 3)
(fma.f64 x (fma.f64 x 9 -12) 3)

eval1.0ms (0%)

Compiler

Compiled 21 to 16 computations (23.8% saved)

prune1.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
0.0b
Counts
3 → 2
Alt Table
Click to see full alt table
StatusErrorProgram
0.2b
(*.f64 3 (+.f64 (-.f64 (*.f64 (*.f64 x 3) x) (*.f64 x 4)) 1))
0.1b
(fma.f64 x (fma.f64 x 9 -12) 3)
Compiler

Compiled 22 to 17 computations (22.7% saved)

localize23.0ms (0.2%)

Local error

Found 4 expressions with local error:

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

Compiled 49 to 35 computations (28.6% saved)

series6.0ms (0.1%)

Counts
4 → 48
Calls

12 calls:

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

rewrite110.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
707×fma-def_binary64
571×log-prod_binary64
400×fma-neg_binary64
343×pow-prod-down_binary64
303×pow2_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01155
125644
2335936
Stop Event
node limit
Counts
4 → 363
Calls
Call 1
Inputs
(*.f64 (*.f64 x 3) x)
(*.f64 3 (+.f64 (-.f64 (*.f64 (*.f64 x 3) x) (*.f64 x 4)) 1))
(-.f64 (*.f64 (*.f64 x 3) x) (*.f64 x 4))
(+.f64 (-.f64 (*.f64 (*.f64 x 3) x) (*.f64 x 4)) 1)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (*.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 3))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 3)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 x (*.f64 x 3)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (*.f64 x 3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x (*.f64 x 3)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 x (*.f64 x 3))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 x (*.f64 x 3))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x (*.f64 x 3)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 x (*.f64 x 3)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 x) (*.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 x (*.f64 x 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 x (*.f64 x 3)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x (*.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 x (*.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 x (*.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 x (*.f64 x 3))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 3 (*.f64 3 (*.f64 x (fma.f64 x 3 -4))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 3 (fma.f64 x (fma.f64 x 3 -4) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 3 (*.f64 x (fma.f64 x 3 -4))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 3 (*.f64 x (fma.f64 x 3 -4))) 1) 3)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (exp.f64 (fma.f64 x (fma.f64 x 3 -4) 1)) 2)) (fma.f64 x (fma.f64 x 3 -4) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 3) (fma.f64 x (fma.f64 x 3 -4) 1)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 3) (fma.f64 x (fma.f64 x 3 -4) 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 3 (fma.f64 x (fma.f64 x 3 -4) 1)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 3 (*.f64 x (fma.f64 x 3 -4))) 3) 27) (+.f64 (pow.f64 (*.f64 3 (*.f64 x (fma.f64 x 3 -4))) 2) (-.f64 9 (*.f64 (*.f64 3 (*.f64 x (fma.f64 x 3 -4))) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 3 (*.f64 x (fma.f64 x 3 -4))) 2) 9) (fma.f64 3 (*.f64 x (fma.f64 x 3 -4)) -3))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 1 (pow.f64 (*.f64 x (fma.f64 x 3 -4)) 3)) 3) (+.f64 (pow.f64 (*.f64 x (fma.f64 x 3 -4)) 2) (-.f64 1 (*.f64 x (fma.f64 x 3 -4)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (pow.f64 (*.f64 x (fma.f64 x 3 -4)) 2) -1) 3) (fma.f64 x (fma.f64 x 3 -4) -1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 3 (+.f64 1 (pow.f64 (*.f64 x (fma.f64 x 3 -4)) 3))) (+.f64 (pow.f64 (*.f64 x (fma.f64 x 3 -4)) 2) (-.f64 1 (*.f64 x (fma.f64 x 3 -4)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 3 (+.f64 (pow.f64 (*.f64 x (fma.f64 x 3 -4)) 2) -1)) (fma.f64 x (fma.f64 x 3 -4) -1))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 3 (fma.f64 x (fma.f64 x 3 -4) 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 9 (pow.f64 (fma.f64 x (fma.f64 x 3 -4) 1) 2)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 3 (fma.f64 x (fma.f64 x 3 -4) 1)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 3 (fma.f64 x (fma.f64 x 3 -4) 1))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 3 (fma.f64 x (fma.f64 x 3 -4) 1))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 9 (pow.f64 (fma.f64 x (fma.f64 x 3 -4) 1) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 3) (fma.f64 x (fma.f64 x 3 -4) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 3 (fma.f64 x (fma.f64 x 3 -4) 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 3 (fma.f64 x (fma.f64 x 3 -4) 1)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 3 (fma.f64 x (fma.f64 x 3 -4) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 3 (fma.f64 x (fma.f64 x 3 -4) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 3 (fma.f64 x (fma.f64 x 3 -4) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 3 (fma.f64 x (fma.f64 x 3 -4) 1))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 3 (*.f64 x (fma.f64 x 3 -4)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (fma.f64 x 3 -4)) 3 3)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 3 (*.f64 x (fma.f64 x 3 -4))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 x 3 -4))) 2) (*.f64 (cbrt.f64 (*.f64 x (fma.f64 x 3 -4))) 3) 3)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x (fma.f64 x 3 -4))) (*.f64 (sqrt.f64 (*.f64 x (fma.f64 x 3 -4))) 3) 3)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 (*.f64 x (fma.f64 x 3 -4))) 1 3)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 3 (*.f64 x (fma.f64 x 3 -4)))) 2) (cbrt.f64 (*.f64 3 (*.f64 x (fma.f64 x 3 -4)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 3 (*.f64 x (fma.f64 x 3 -4)))) (sqrt.f64 (*.f64 3 (*.f64 x (fma.f64 x 3 -4)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 x 3 -4))) 2)) (cbrt.f64 (*.f64 x (fma.f64 x 3 -4))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 (sqrt.f64 (*.f64 x (fma.f64 x 3 -4)))) (sqrt.f64 (*.f64 x (fma.f64 x 3 -4))) 3)))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 x 3)) (*.f64 x -4))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 x 3)) (*.f64 (*.f64 x -4) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 x 3)) (fma.f64 x -4 (fma.f64 x -4 (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (fma.f64 x 3 -4)) (fma.f64 x -4 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (fma.f64 x 3 -4)) (fma.f64 (*.f64 x -4) 1 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (fma.f64 x 3 -4)) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 x 4))) (pow.f64 (cbrt.f64 (*.f64 x 4)) 2) (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (fma.f64 x 3 -4)) (*.f64 (fma.f64 x -4 (*.f64 x 4)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (fma.f64 x 3 -4)) (+.f64 (fma.f64 x -4 (*.f64 x 4)) (fma.f64 x -4 (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (fma.f64 x 3 -4)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 x -4 (*.f64 x 4)) (*.f64 x (fma.f64 x 3 -4)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x -4) (*.f64 x (*.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (fma.f64 x 3 -4))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (fma.f64 x 3 -4)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (fma.f64 x 3 -4)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (fma.f64 x 3 -4)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (fma.f64 x 3 -4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (fma.f64 x 3 -4)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 x (fma.f64 x 3 -4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 x (fma.f64 x 3 -4))) (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 x 3 -4))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 x 3 -4))) 2) (cbrt.f64 (*.f64 x (fma.f64 x 3 -4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 x 3 -4))) 2) (*.f64 (cbrt.f64 (*.f64 x (fma.f64 x 3 -4))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 x (fma.f64 x 3 -4))) (sqrt.f64 (*.f64 x (fma.f64 x 3 -4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 x (fma.f64 x 3 -4))) (*.f64 (sqrt.f64 (*.f64 x (fma.f64 x 3 -4))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (*.f64 x (*.f64 x 3)) 3) (*.f64 (pow.f64 x 3) 64)) (/.f64 1 (fma.f64 (*.f64 x 4) (*.f64 x (fma.f64 x 3 4)) (pow.f64 (*.f64 x (*.f64 x 3)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 x (fma.f64 x 3 4)) (*.f64 x (fma.f64 x 3 -4))) (/.f64 1 (*.f64 x (fma.f64 x 3 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sqrt.f64 (*.f64 x (*.f64 x 3))) (sqrt.f64 (*.f64 x 4))) (-.f64 (sqrt.f64 (*.f64 x (*.f64 x 3))) (sqrt.f64 (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 (*.f64 x 4) (*.f64 x (fma.f64 x 3 4)) (pow.f64 (*.f64 x (*.f64 x 3)) 2)) (-.f64 (pow.f64 (*.f64 x (*.f64 x 3)) 3) (*.f64 (pow.f64 x 3) 64))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (*.f64 x (fma.f64 x 3 4)) (*.f64 (*.f64 x (fma.f64 x 3 4)) (*.f64 x (fma.f64 x 3 -4)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 x (*.f64 x 3)) 3) (*.f64 (pow.f64 x 3) 64)) (fma.f64 (*.f64 x 4) (*.f64 x (fma.f64 x 3 4)) (pow.f64 (*.f64 x (*.f64 x 3)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 x (fma.f64 x 3 4)) (*.f64 x (fma.f64 x 3 -4))) (*.f64 x (fma.f64 x 3 4)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 x (*.f64 x 3)) 3) (*.f64 (pow.f64 x 3) 64))) (neg.f64 (fma.f64 (*.f64 x 4) (*.f64 x (fma.f64 x 3 4)) (pow.f64 (*.f64 x (*.f64 x 3)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 (*.f64 x (fma.f64 x 3 4)) (*.f64 x (fma.f64 x 3 -4)))) (neg.f64 (*.f64 x (fma.f64 x 3 4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 x (*.f64 x 3)) 3) (pow.f64 (*.f64 x -4) 3)) (+.f64 (pow.f64 (*.f64 x (*.f64 x 3)) 2) (-.f64 (pow.f64 (*.f64 x -4) 2) (*.f64 (*.f64 x (*.f64 x 3)) (*.f64 x -4)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 x (fma.f64 x 3 -4)) 3) (pow.f64 (fma.f64 x -4 (*.f64 x 4)) 3)) (+.f64 (pow.f64 (*.f64 x (fma.f64 x 3 -4)) 2) (-.f64 (pow.f64 (fma.f64 x -4 (*.f64 x 4)) 2) (*.f64 (*.f64 x (fma.f64 x 3 -4)) (fma.f64 x -4 (*.f64 x 4))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 x (*.f64 x 3)) 2) (pow.f64 (*.f64 x -4) 2)) (-.f64 (*.f64 x (*.f64 x 3)) (*.f64 x -4)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 x (fma.f64 x 3 -4)) 2) (pow.f64 (fma.f64 x -4 (*.f64 x 4)) 2)) (-.f64 (*.f64 x (fma.f64 x 3 -4)) (fma.f64 x -4 (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (pow.f64 (*.f64 x (*.f64 x 3)) 3) (*.f64 (pow.f64 x 3) 64)) 1) (fma.f64 (*.f64 x 4) (*.f64 x (fma.f64 x 3 4)) (pow.f64 (*.f64 x (*.f64 x 3)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (*.f64 x (fma.f64 x 3 4)) (*.f64 x (fma.f64 x 3 -4))) 1) (*.f64 x (fma.f64 x 3 4)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (fma.f64 x 3 -4)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x (fma.f64 x 3 -4)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 x (fma.f64 x 3 -4))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 x (fma.f64 x 3 -4))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x (fma.f64 x 3 -4)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 (*.f64 x 4) (*.f64 x (fma.f64 x 3 4)) (pow.f64 (*.f64 x (*.f64 x 3)) 2)) (-.f64 (pow.f64 (*.f64 x (*.f64 x 3)) 3) (*.f64 (pow.f64 x 3) 64))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (*.f64 x (fma.f64 x 3 4)) (*.f64 (*.f64 x (fma.f64 x 3 4)) (*.f64 x (fma.f64 x 3 -4)))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 x (fma.f64 x 3 -4)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 x) (fma.f64 x 3 -4)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 x (fma.f64 x 3 -4)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (expm1.f64 (*.f64 x (*.f64 x 3)))) (pow.f64 (exp.f64 x) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (pow.f64 (exp.f64 x) (*.f64 x 3)) (+.f64 1 (expm1.f64 (*.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (expm1.f64 (*.f64 x (*.f64 x 3)))) (+.f64 1 (expm1.f64 (*.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 x (*.f64 x 3)))) (exp.f64 (*.f64 x -4))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 x (*.f64 x 3)))) (pow.f64 (exp.f64 x) -4)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 x (fma.f64 x 3 -4)))) (exp.f64 (fma.f64 x -4 (*.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (fma.f64 x -4 (*.f64 x 4))) (pow.f64 (exp.f64 x) (fma.f64 x 3 -4))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (fma.f64 x -4 (*.f64 x 4))) (+.f64 1 (expm1.f64 (*.f64 x (fma.f64 x 3 -4))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 x -4)) (pow.f64 (exp.f64 x) (*.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 x -4)) (+.f64 1 (expm1.f64 (*.f64 x (*.f64 x 3))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 x) -4) (+.f64 1 (expm1.f64 (*.f64 x (*.f64 x 3))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 x (fma.f64 x 3 -4)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x (fma.f64 x 3 -4))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (*.f64 (log1p.f64 (*.f64 x (fma.f64 x 3 -4))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 x (fma.f64 x 3 -4))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 x (fma.f64 x 3 -4))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 x (fma.f64 x 3 -4))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (*.f64 x 3) (*.f64 x -4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (*.f64 x 3) (*.f64 (*.f64 x -4) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (*.f64 x 3) (fma.f64 x -4 (fma.f64 x -4 (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (*.f64 x 3) (neg.f64 (-.f64 (*.f64 x 4) (fma.f64 x -4 (*.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x -4 (*.f64 x (*.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (fma.f64 x 3 -4) (fma.f64 x -4 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (fma.f64 x 3 -4) (fma.f64 (*.f64 x -4) 1 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (fma.f64 x 3 -4) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 x 4))) (pow.f64 (cbrt.f64 (*.f64 x 4)) 2) (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (fma.f64 x 3 -4) (*.f64 (fma.f64 x -4 (*.f64 x 4)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (fma.f64 x 3 -4) (+.f64 (fma.f64 x -4 (*.f64 x 4)) (fma.f64 x -4 (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 3 (*.f64 x x) (*.f64 x -4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 3 (*.f64 x x) (*.f64 (*.f64 x -4) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 3 (*.f64 x x) (fma.f64 x -4 (fma.f64 x -4 (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 3 (*.f64 x x) (neg.f64 (-.f64 (*.f64 x 4) (fma.f64 x -4 (*.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x 3) x (*.f64 x -4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x 3) x (*.f64 (*.f64 x -4) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x 3) x (fma.f64 x -4 (fma.f64 x -4 (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x 3) x (neg.f64 (-.f64 (*.f64 x 4) (fma.f64 x -4 (*.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (*.f64 x 3)) 1 (*.f64 x -4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (*.f64 x 3)) 1 (*.f64 (*.f64 x -4) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (*.f64 x 3)) 1 (fma.f64 x -4 (fma.f64 x -4 (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (*.f64 x 3)) 1 (neg.f64 (-.f64 (*.f64 x 4) (fma.f64 x -4 (*.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 4 (neg.f64 x) (*.f64 x (*.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (fma.f64 x 3 -4)) 1 (fma.f64 x -4 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (fma.f64 x 3 -4)) 1 (fma.f64 (*.f64 x -4) 1 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (fma.f64 x 3 -4)) 1 (fma.f64 (neg.f64 (cbrt.f64 (*.f64 x 4))) (pow.f64 (cbrt.f64 (*.f64 x 4)) 2) (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (fma.f64 x 3 -4)) 1 (*.f64 (fma.f64 x -4 (*.f64 x 4)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (fma.f64 x 3 -4)) 1 (+.f64 (fma.f64 x -4 (*.f64 x 4)) (fma.f64 x -4 (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x (*.f64 x 3)) (*.f64 x -4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x (*.f64 x 3)) (*.f64 (*.f64 x -4) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x (*.f64 x 3)) (fma.f64 x -4 (fma.f64 x -4 (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x (*.f64 x 3)) (neg.f64 (-.f64 (*.f64 x 4) (fma.f64 x -4 (*.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x (fma.f64 x 3 -4)) (fma.f64 x -4 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x (fma.f64 x 3 -4)) (fma.f64 (*.f64 x -4) 1 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x (fma.f64 x 3 -4)) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 x 4))) (pow.f64 (cbrt.f64 (*.f64 x 4)) 2) (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x (fma.f64 x 3 -4)) (*.f64 (fma.f64 x -4 (*.f64 x 4)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x (fma.f64 x 3 -4)) (+.f64 (fma.f64 x -4 (*.f64 x 4)) (fma.f64 x -4 (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 x (fma.f64 x 3 -4) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 x -4 (*.f64 x 4)) (*.f64 x (fma.f64 x 3 -4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x -4) (*.f64 x (*.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 x (fma.f64 x 3 -4) 1) 1 -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x x) 3 (*.f64 x -4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x x) 3 (*.f64 (*.f64 x -4) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x x) 3 (fma.f64 x -4 (fma.f64 x -4 (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x x) 3 (neg.f64 (-.f64 (*.f64 x 4) (fma.f64 x -4 (*.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x (fma.f64 x 3 -4))) (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 x 3 -4))) 2) (fma.f64 x -4 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x (fma.f64 x 3 -4))) (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 x 3 -4))) 2) (fma.f64 (*.f64 x -4) 1 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x (fma.f64 x 3 -4))) (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 x 3 -4))) 2) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 x 4))) (pow.f64 (cbrt.f64 (*.f64 x 4)) 2) (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x (fma.f64 x 3 -4))) (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 x 3 -4))) 2) (*.f64 (fma.f64 x -4 (*.f64 x 4)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x (fma.f64 x 3 -4))) (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 x 3 -4))) 2) (+.f64 (fma.f64 x -4 (*.f64 x 4)) (fma.f64 x -4 (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 x 3 -4))) 2) (cbrt.f64 (*.f64 x (fma.f64 x 3 -4))) (fma.f64 x -4 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 x 3 -4))) 2) (cbrt.f64 (*.f64 x (fma.f64 x 3 -4))) (fma.f64 (*.f64 x -4) 1 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 x 3 -4))) 2) (cbrt.f64 (*.f64 x (fma.f64 x 3 -4))) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 x 4))) (pow.f64 (cbrt.f64 (*.f64 x 4)) 2) (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 x 3 -4))) 2) (cbrt.f64 (*.f64 x (fma.f64 x 3 -4))) (*.f64 (fma.f64 x -4 (*.f64 x 4)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 x 3 -4))) 2) (cbrt.f64 (*.f64 x (fma.f64 x 3 -4))) (+.f64 (fma.f64 x -4 (*.f64 x 4)) (fma.f64 x -4 (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 x 3 -4))) 2) (*.f64 (cbrt.f64 (*.f64 x (fma.f64 x 3 -4))) 1) (fma.f64 x -4 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 x 3 -4))) 2) (*.f64 (cbrt.f64 (*.f64 x (fma.f64 x 3 -4))) 1) (fma.f64 (*.f64 x -4) 1 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 x 3 -4))) 2) (*.f64 (cbrt.f64 (*.f64 x (fma.f64 x 3 -4))) 1) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 x 4))) (pow.f64 (cbrt.f64 (*.f64 x 4)) 2) (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 x 3 -4))) 2) (*.f64 (cbrt.f64 (*.f64 x (fma.f64 x 3 -4))) 1) (*.f64 (fma.f64 x -4 (*.f64 x 4)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 x 3 -4))) 2) (*.f64 (cbrt.f64 (*.f64 x (fma.f64 x 3 -4))) 1) (+.f64 (fma.f64 x -4 (*.f64 x 4)) (fma.f64 x -4 (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x (*.f64 x 3))) (pow.f64 (cbrt.f64 (*.f64 x (*.f64 x 3))) 2) (*.f64 x -4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x (*.f64 x 3))) (pow.f64 (cbrt.f64 (*.f64 x (*.f64 x 3))) 2) (*.f64 (*.f64 x -4) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x (*.f64 x 3))) (pow.f64 (cbrt.f64 (*.f64 x (*.f64 x 3))) 2) (fma.f64 x -4 (fma.f64 x -4 (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x (*.f64 x 3))) (pow.f64 (cbrt.f64 (*.f64 x (*.f64 x 3))) 2) (neg.f64 (-.f64 (*.f64 x 4) (fma.f64 x -4 (*.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x (*.f64 x 3))) 2) (cbrt.f64 (*.f64 x (*.f64 x 3))) (*.f64 x -4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x (*.f64 x 3))) 2) (cbrt.f64 (*.f64 x (*.f64 x 3))) (*.f64 (*.f64 x -4) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x (*.f64 x 3))) 2) (cbrt.f64 (*.f64 x (*.f64 x 3))) (fma.f64 x -4 (fma.f64 x -4 (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x (*.f64 x 3))) 2) (cbrt.f64 (*.f64 x (*.f64 x 3))) (neg.f64 (-.f64 (*.f64 x 4) (fma.f64 x -4 (*.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) (*.f64 x 3)) (*.f64 x -4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) (*.f64 x 3)) (*.f64 (*.f64 x -4) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) (*.f64 x 3)) (fma.f64 x -4 (fma.f64 x -4 (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) (*.f64 x 3)) (neg.f64 (-.f64 (*.f64 x 4) (fma.f64 x -4 (*.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (fma.f64 x (fma.f64 x 3 -4) 1)) (pow.f64 (cbrt.f64 (fma.f64 x (fma.f64 x 3 -4) 1)) 2) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 x (fma.f64 x 3 -4) 1)) 2) (cbrt.f64 (fma.f64 x (fma.f64 x 3 -4) 1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x 4)) 2) (neg.f64 (cbrt.f64 (*.f64 x 4))) (*.f64 x (*.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x 3)) 2) (*.f64 (cbrt.f64 (*.f64 x 3)) x) (*.f64 x -4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x 3)) 2) (*.f64 (cbrt.f64 (*.f64 x 3)) x) (*.f64 (*.f64 x -4) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x 3)) 2) (*.f64 (cbrt.f64 (*.f64 x 3)) x) (fma.f64 x -4 (fma.f64 x -4 (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x 3)) 2) (*.f64 (cbrt.f64 (*.f64 x 3)) x) (neg.f64 (-.f64 (*.f64 x 4) (fma.f64 x -4 (*.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x (fma.f64 x 3 -4))) (sqrt.f64 (*.f64 x (fma.f64 x 3 -4))) (fma.f64 x -4 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x (fma.f64 x 3 -4))) (sqrt.f64 (*.f64 x (fma.f64 x 3 -4))) (fma.f64 (*.f64 x -4) 1 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x (fma.f64 x 3 -4))) (sqrt.f64 (*.f64 x (fma.f64 x 3 -4))) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 x 4))) (pow.f64 (cbrt.f64 (*.f64 x 4)) 2) (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x (fma.f64 x 3 -4))) (sqrt.f64 (*.f64 x (fma.f64 x 3 -4))) (*.f64 (fma.f64 x -4 (*.f64 x 4)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x (fma.f64 x 3 -4))) (sqrt.f64 (*.f64 x (fma.f64 x 3 -4))) (+.f64 (fma.f64 x -4 (*.f64 x 4)) (fma.f64 x -4 (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x (fma.f64 x 3 -4))) (*.f64 (sqrt.f64 (*.f64 x (fma.f64 x 3 -4))) 1) (fma.f64 x -4 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x (fma.f64 x 3 -4))) (*.f64 (sqrt.f64 (*.f64 x (fma.f64 x 3 -4))) 1) (fma.f64 (*.f64 x -4) 1 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x (fma.f64 x 3 -4))) (*.f64 (sqrt.f64 (*.f64 x (fma.f64 x 3 -4))) 1) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 x 4))) (pow.f64 (cbrt.f64 (*.f64 x 4)) 2) (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x (fma.f64 x 3 -4))) (*.f64 (sqrt.f64 (*.f64 x (fma.f64 x 3 -4))) 1) (*.f64 (fma.f64 x -4 (*.f64 x 4)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x (fma.f64 x 3 -4))) (*.f64 (sqrt.f64 (*.f64 x (fma.f64 x 3 -4))) 1) (+.f64 (fma.f64 x -4 (*.f64 x 4)) (fma.f64 x -4 (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x (*.f64 x 3))) (sqrt.f64 (*.f64 x (*.f64 x 3))) (*.f64 x -4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x (*.f64 x 3))) (sqrt.f64 (*.f64 x (*.f64 x 3))) (*.f64 (*.f64 x -4) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x (*.f64 x 3))) (sqrt.f64 (*.f64 x (*.f64 x 3))) (fma.f64 x -4 (fma.f64 x -4 (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x (*.f64 x 3))) (sqrt.f64 (*.f64 x (*.f64 x 3))) (neg.f64 (-.f64 (*.f64 x 4) (fma.f64 x -4 (*.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) (*.f64 x 3)) (*.f64 x -4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) (*.f64 x 3)) (*.f64 (*.f64 x -4) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) (*.f64 x 3)) (fma.f64 x -4 (fma.f64 x -4 (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) (*.f64 x 3)) (neg.f64 (-.f64 (*.f64 x 4) (fma.f64 x -4 (*.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 x (fma.f64 x 3 -4) 1)) (sqrt.f64 (fma.f64 x (fma.f64 x 3 -4) 1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x 4)) (neg.f64 (sqrt.f64 (*.f64 x 4))) (*.f64 x (*.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x 3)) (*.f64 (sqrt.f64 (*.f64 x 3)) x) (*.f64 x -4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x 3)) (*.f64 (sqrt.f64 (*.f64 x 3)) x) (*.f64 (*.f64 x -4) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x 3)) (*.f64 (sqrt.f64 (*.f64 x 3)) x) (fma.f64 x -4 (fma.f64 x -4 (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x 3)) (*.f64 (sqrt.f64 (*.f64 x 3)) x) (neg.f64 (-.f64 (*.f64 x 4) (fma.f64 x -4 (*.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -4 x (*.f64 x (*.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (*.f64 x (*.f64 x 3)) 3) (*.f64 (pow.f64 x 3) 64)) (/.f64 1 (fma.f64 (*.f64 x 4) (*.f64 x (fma.f64 x 3 4)) (pow.f64 (*.f64 x (*.f64 x 3)) 2))) (fma.f64 x -4 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (*.f64 x (*.f64 x 3)) 3) (*.f64 (pow.f64 x 3) 64)) (/.f64 1 (fma.f64 (*.f64 x 4) (*.f64 x (fma.f64 x 3 4)) (pow.f64 (*.f64 x (*.f64 x 3)) 2))) (fma.f64 (*.f64 x -4) 1 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (*.f64 x (*.f64 x 3)) 3) (*.f64 (pow.f64 x 3) 64)) (/.f64 1 (fma.f64 (*.f64 x 4) (*.f64 x (fma.f64 x 3 4)) (pow.f64 (*.f64 x (*.f64 x 3)) 2))) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 x 4))) (pow.f64 (cbrt.f64 (*.f64 x 4)) 2) (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (*.f64 x (*.f64 x 3)) 3) (*.f64 (pow.f64 x 3) 64)) (/.f64 1 (fma.f64 (*.f64 x 4) (*.f64 x (fma.f64 x 3 4)) (pow.f64 (*.f64 x (*.f64 x 3)) 2))) (*.f64 (fma.f64 x -4 (*.f64 x 4)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (*.f64 x (*.f64 x 3)) 3) (*.f64 (pow.f64 x 3) 64)) (/.f64 1 (fma.f64 (*.f64 x 4) (*.f64 x (fma.f64 x 3 4)) (pow.f64 (*.f64 x (*.f64 x 3)) 2))) (+.f64 (fma.f64 x -4 (*.f64 x 4)) (fma.f64 x -4 (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 1 (pow.f64 (*.f64 x (fma.f64 x 3 -4)) 3)) (/.f64 1 (+.f64 (pow.f64 (*.f64 x (fma.f64 x 3 -4)) 2) (-.f64 1 (*.f64 x (fma.f64 x 3 -4))))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 x (fma.f64 x 3 4)) (*.f64 x (fma.f64 x 3 -4))) (/.f64 1 (*.f64 x (fma.f64 x 3 4))) (fma.f64 x -4 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 x (fma.f64 x 3 4)) (*.f64 x (fma.f64 x 3 -4))) (/.f64 1 (*.f64 x (fma.f64 x 3 4))) (fma.f64 (*.f64 x -4) 1 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 x (fma.f64 x 3 4)) (*.f64 x (fma.f64 x 3 -4))) (/.f64 1 (*.f64 x (fma.f64 x 3 4))) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 x 4))) (pow.f64 (cbrt.f64 (*.f64 x 4)) 2) (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 x (fma.f64 x 3 4)) (*.f64 x (fma.f64 x 3 -4))) (/.f64 1 (*.f64 x (fma.f64 x 3 4))) (*.f64 (fma.f64 x -4 (*.f64 x 4)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 x (fma.f64 x 3 4)) (*.f64 x (fma.f64 x 3 -4))) (/.f64 1 (*.f64 x (fma.f64 x 3 4))) (+.f64 (fma.f64 x -4 (*.f64 x 4)) (fma.f64 x -4 (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (pow.f64 (*.f64 x (fma.f64 x 3 -4)) 2) -1) (/.f64 1 (fma.f64 x (fma.f64 x 3 -4) -1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 x) 4 (*.f64 x (*.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 x -4 (*.f64 x 4))) 2) (cbrt.f64 (fma.f64 x -4 (*.f64 x 4))) (*.f64 x (fma.f64 x 3 -4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x -4)) 2) (cbrt.f64 (*.f64 x -4)) (*.f64 x (*.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 x -4 (*.f64 x 4))) (sqrt.f64 (fma.f64 x -4 (*.f64 x 4))) (*.f64 x (fma.f64 x 3 -4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x -4)) (sqrt.f64 (*.f64 x -4)) (*.f64 x (*.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (sqrt.f64 (*.f64 x 4))) (sqrt.f64 (*.f64 x 4)) (*.f64 x (*.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1 (*.f64 x 4) (*.f64 x (*.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 (*.f64 x (*.f64 x 3))) (sqrt.f64 (*.f64 x 4))) (-.f64 (sqrt.f64 (*.f64 x (*.f64 x 3))) (sqrt.f64 (*.f64 x 4))) (fma.f64 x -4 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 (*.f64 x (*.f64 x 3))) (sqrt.f64 (*.f64 x 4))) (-.f64 (sqrt.f64 (*.f64 x (*.f64 x 3))) (sqrt.f64 (*.f64 x 4))) (fma.f64 (*.f64 x -4) 1 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 (*.f64 x (*.f64 x 3))) (sqrt.f64 (*.f64 x 4))) (-.f64 (sqrt.f64 (*.f64 x (*.f64 x 3))) (sqrt.f64 (*.f64 x 4))) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 x 4))) (pow.f64 (cbrt.f64 (*.f64 x 4)) 2) (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 (*.f64 x (*.f64 x 3))) (sqrt.f64 (*.f64 x 4))) (-.f64 (sqrt.f64 (*.f64 x (*.f64 x 3))) (sqrt.f64 (*.f64 x 4))) (*.f64 (fma.f64 x -4 (*.f64 x 4)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 (*.f64 x (*.f64 x 3))) (sqrt.f64 (*.f64 x 4))) (-.f64 (sqrt.f64 (*.f64 x (*.f64 x 3))) (sqrt.f64 (*.f64 x 4))) (+.f64 (fma.f64 x -4 (*.f64 x 4)) (fma.f64 x -4 (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (pow.f64 (cbrt.f64 (*.f64 x 4)) 2)) (cbrt.f64 (*.f64 x 4)) (*.f64 x (*.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (pow.f64 (cbrt.f64 (*.f64 x 3)) 2)) (cbrt.f64 (*.f64 x 3)) (*.f64 x -4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (pow.f64 (cbrt.f64 (*.f64 x 3)) 2)) (cbrt.f64 (*.f64 x 3)) (*.f64 (*.f64 x -4) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (pow.f64 (cbrt.f64 (*.f64 x 3)) 2)) (cbrt.f64 (*.f64 x 3)) (fma.f64 x -4 (fma.f64 x -4 (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (pow.f64 (cbrt.f64 (*.f64 x 3)) 2)) (cbrt.f64 (*.f64 x 3)) (neg.f64 (-.f64 (*.f64 x 4) (fma.f64 x -4 (*.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (sqrt.f64 (*.f64 x 3))) (sqrt.f64 (*.f64 x 3)) (*.f64 x -4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (sqrt.f64 (*.f64 x 3))) (sqrt.f64 (*.f64 x 3)) (*.f64 (*.f64 x -4) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (sqrt.f64 (*.f64 x 3))) (sqrt.f64 (*.f64 x 3)) (fma.f64 x -4 (fma.f64 x -4 (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (sqrt.f64 (*.f64 x 3))) (sqrt.f64 (*.f64 x 3)) (neg.f64 (-.f64 (*.f64 x 4) (fma.f64 x -4 (*.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 x 3) (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x) (*.f64 x -4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 x 3) (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x) (*.f64 (*.f64 x -4) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 x 3) (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x) (fma.f64 x -4 (fma.f64 x -4 (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 x 3) (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x) (neg.f64 (-.f64 (*.f64 x 4) (fma.f64 x -4 (*.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 x 3) (sqrt.f64 x)) (sqrt.f64 x) (*.f64 x -4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 x 3) (sqrt.f64 x)) (sqrt.f64 x) (*.f64 (*.f64 x -4) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 x 3) (sqrt.f64 x)) (sqrt.f64 x) (fma.f64 x -4 (fma.f64 x -4 (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 x 3) (sqrt.f64 x)) (sqrt.f64 x) (neg.f64 (-.f64 (*.f64 x 4) (fma.f64 x -4 (*.f64 x 4)))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 x (*.f64 x 3)) (fma.f64 x 4 -1))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 x (fma.f64 x 3 -4) 1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 x (*.f64 x 3))) (*.f64 x 4))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (*.f64 x (fma.f64 x 3 -4)) 2) (fma.f64 x (fma.f64 x 3 -4) -1)) (/.f64 1 (fma.f64 x (fma.f64 x 3 -4) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 x (fma.f64 x 3 -4) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 x (fma.f64 x 3 -4) 1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 x (fma.f64 x 3 -4) 1)) (pow.f64 (cbrt.f64 (fma.f64 x (fma.f64 x 3 -4) 1)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 x (fma.f64 x 3 -4) 1)) 2) (cbrt.f64 (fma.f64 x (fma.f64 x 3 -4) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 x (fma.f64 x 3 -4) 1)) (sqrt.f64 (fma.f64 x (fma.f64 x 3 -4) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1 (pow.f64 (*.f64 x (fma.f64 x 3 -4)) 3)) (/.f64 1 (+.f64 (pow.f64 (*.f64 x (fma.f64 x 3 -4)) 2) (-.f64 1 (*.f64 x (fma.f64 x 3 -4))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (*.f64 x (fma.f64 x 3 -4)) 2) -1) (/.f64 1 (fma.f64 x (fma.f64 x 3 -4) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 (*.f64 x (fma.f64 x 3 -4)) 2) (-.f64 1 (*.f64 x (fma.f64 x 3 -4)))) (+.f64 1 (pow.f64 (*.f64 x (fma.f64 x 3 -4)) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 x (fma.f64 x 3 -4) -1) (+.f64 (pow.f64 (*.f64 x (fma.f64 x 3 -4)) 2) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 1 (pow.f64 (*.f64 x (fma.f64 x 3 -4)) 3)) (+.f64 (pow.f64 (*.f64 x (fma.f64 x 3 -4)) 2) (-.f64 1 (*.f64 x (fma.f64 x 3 -4)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 1 (pow.f64 (*.f64 x (fma.f64 x 3 -4)) 3)) (+.f64 1 (-.f64 (pow.f64 (*.f64 x (fma.f64 x 3 -4)) 2) (*.f64 x (fma.f64 x 3 -4)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 x (fma.f64 x 3 -4)) 2) -1) (fma.f64 x (fma.f64 x 3 -4) -1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 1 (pow.f64 (*.f64 x (fma.f64 x 3 -4)) 3))) (neg.f64 (+.f64 (pow.f64 (*.f64 x (fma.f64 x 3 -4)) 2) (-.f64 1 (*.f64 x (fma.f64 x 3 -4))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 x (fma.f64 x 3 -4)) 2) -1)) (neg.f64 (fma.f64 x (fma.f64 x 3 -4) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 x (*.f64 x 3)) 3) (pow.f64 (fma.f64 x 4 -1) 3)) (+.f64 (pow.f64 (*.f64 x (*.f64 x 3)) 2) (+.f64 (pow.f64 (fma.f64 x 4 -1) 2) (*.f64 (*.f64 x (*.f64 x 3)) (fma.f64 x 4 -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 1 (pow.f64 (*.f64 x (fma.f64 x 3 -4)) 2)) (-.f64 1 (*.f64 x (fma.f64 x 3 -4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 x (*.f64 x 3)) 2) (pow.f64 (fma.f64 x 4 -1) 2)) (fma.f64 x (*.f64 x 3) (fma.f64 x 4 -1)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 x (fma.f64 x 3 -4) 1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 x (fma.f64 x 3 -4) 1) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 x (fma.f64 x 3 -4) 1) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 x (fma.f64 x 3 -4) 1)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 x (fma.f64 x 3 -4) 1)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (+.f64 (pow.f64 (*.f64 x (fma.f64 x 3 -4)) 2) (-.f64 1 (*.f64 x (fma.f64 x 3 -4)))) (+.f64 1 (pow.f64 (*.f64 x (fma.f64 x 3 -4)) 3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 x (fma.f64 x 3 -4) -1) (+.f64 (pow.f64 (*.f64 x (fma.f64 x 3 -4)) 2) -1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 x (fma.f64 x 3 -4) 1) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 x (fma.f64 x 3 -4) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 x (fma.f64 x 3 -4) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (expm1.f64 (*.f64 x (*.f64 x 3)))) (exp.f64 (fma.f64 x 4 -1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (fma.f64 x (fma.f64 x 3 -4) 1)) (exp.f64 (fma.f64 x -4 (*.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (fma.f64 x (fma.f64 x 3 -4) 1))) (exp.f64 (fma.f64 x -4 (*.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 x (fma.f64 x 3 -4) 1) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 x (fma.f64 x 3 -4) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 x (fma.f64 x 3 -4) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log1p.f64 (*.f64 x (fma.f64 x 3 -4))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log1p.f64 (*.f64 x (fma.f64 x 3 -4))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (*.f64 x 3) (neg.f64 (fma.f64 x 4 -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (*.f64 x 3) (fma.f64 x -4 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (fma.f64 x 3 -4) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (fma.f64 x 3 -4) (+.f64 (fma.f64 x -4 (*.f64 x 4)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 3 (*.f64 x x) (neg.f64 (fma.f64 x 4 -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 3 (*.f64 x x) (fma.f64 x -4 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x 3) x (neg.f64 (fma.f64 x 4 -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x 3) x (fma.f64 x -4 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (*.f64 x 3)) 1 (neg.f64 (fma.f64 x 4 -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (*.f64 x 3)) 1 (fma.f64 x -4 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (fma.f64 x 3 -4)) 1 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (fma.f64 x 3 -4)) 1 (+.f64 (fma.f64 x -4 (*.f64 x 4)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x (*.f64 x 3)) (neg.f64 (fma.f64 x 4 -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x (*.f64 x 3)) (fma.f64 x -4 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x (fma.f64 x 3 -4)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x (fma.f64 x 3 -4)) (+.f64 (fma.f64 x -4 (*.f64 x 4)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 x (fma.f64 x 3 -4) 1) (fma.f64 x -4 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 x (fma.f64 x 3 -4) 1) 1 (fma.f64 x -4 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x x) 3 (neg.f64 (fma.f64 x 4 -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x x) 3 (fma.f64 x -4 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x (fma.f64 x 3 -4))) (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 x 3 -4))) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x (fma.f64 x 3 -4))) (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 x 3 -4))) 2) (+.f64 (fma.f64 x -4 (*.f64 x 4)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 x 3 -4))) 2) (cbrt.f64 (*.f64 x (fma.f64 x 3 -4))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 x 3 -4))) 2) (cbrt.f64 (*.f64 x (fma.f64 x 3 -4))) (+.f64 (fma.f64 x -4 (*.f64 x 4)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 x 3 -4))) 2) (*.f64 (cbrt.f64 (*.f64 x (fma.f64 x 3 -4))) 1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 x 3 -4))) 2) (*.f64 (cbrt.f64 (*.f64 x (fma.f64 x 3 -4))) 1) (+.f64 (fma.f64 x -4 (*.f64 x 4)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x (*.f64 x 3))) (pow.f64 (cbrt.f64 (*.f64 x (*.f64 x 3))) 2) (neg.f64 (fma.f64 x 4 -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x (*.f64 x 3))) (pow.f64 (cbrt.f64 (*.f64 x (*.f64 x 3))) 2) (fma.f64 x -4 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x (*.f64 x 3))) 2) (cbrt.f64 (*.f64 x (*.f64 x 3))) (neg.f64 (fma.f64 x 4 -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x (*.f64 x 3))) 2) (cbrt.f64 (*.f64 x (*.f64 x 3))) (fma.f64 x -4 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) (*.f64 x 3)) (neg.f64 (fma.f64 x 4 -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) (*.f64 x 3)) (fma.f64 x -4 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (fma.f64 x (fma.f64 x 3 -4) 1)) (pow.f64 (cbrt.f64 (fma.f64 x (fma.f64 x 3 -4) 1)) 2) (fma.f64 x -4 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 x (fma.f64 x 3 -4) 1)) 2) (cbrt.f64 (fma.f64 x (fma.f64 x 3 -4) 1)) (fma.f64 x -4 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x 3)) 2) (*.f64 (cbrt.f64 (*.f64 x 3)) x) (neg.f64 (fma.f64 x 4 -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x 3)) 2) (*.f64 (cbrt.f64 (*.f64 x 3)) x) (fma.f64 x -4 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x (fma.f64 x 3 -4))) (sqrt.f64 (*.f64 x (fma.f64 x 3 -4))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x (fma.f64 x 3 -4))) (sqrt.f64 (*.f64 x (fma.f64 x 3 -4))) (+.f64 (fma.f64 x -4 (*.f64 x 4)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x (fma.f64 x 3 -4))) (*.f64 (sqrt.f64 (*.f64 x (fma.f64 x 3 -4))) 1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x (fma.f64 x 3 -4))) (*.f64 (sqrt.f64 (*.f64 x (fma.f64 x 3 -4))) 1) (+.f64 (fma.f64 x -4 (*.f64 x 4)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x (*.f64 x 3))) (sqrt.f64 (*.f64 x (*.f64 x 3))) (neg.f64 (fma.f64 x 4 -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x (*.f64 x 3))) (sqrt.f64 (*.f64 x (*.f64 x 3))) (fma.f64 x -4 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) (*.f64 x 3)) (neg.f64 (fma.f64 x 4 -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) (*.f64 x 3)) (fma.f64 x -4 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 x (fma.f64 x 3 -4) 1)) (sqrt.f64 (fma.f64 x (fma.f64 x 3 -4) 1)) (fma.f64 x -4 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x 3)) (*.f64 (sqrt.f64 (*.f64 x 3)) x) (neg.f64 (fma.f64 x 4 -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x 3)) (*.f64 (sqrt.f64 (*.f64 x 3)) x) (fma.f64 x -4 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (*.f64 x (*.f64 x 3)) 3) (*.f64 (pow.f64 x 3) 64)) (/.f64 1 (fma.f64 (*.f64 x 4) (*.f64 x (fma.f64 x 3 4)) (pow.f64 (*.f64 x (*.f64 x 3)) 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (*.f64 x (*.f64 x 3)) 3) (*.f64 (pow.f64 x 3) 64)) (/.f64 1 (fma.f64 (*.f64 x 4) (*.f64 x (fma.f64 x 3 4)) (pow.f64 (*.f64 x (*.f64 x 3)) 2))) (+.f64 (fma.f64 x -4 (*.f64 x 4)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 1 (pow.f64 (*.f64 x (fma.f64 x 3 -4)) 3)) (/.f64 1 (+.f64 (pow.f64 (*.f64 x (fma.f64 x 3 -4)) 2) (-.f64 1 (*.f64 x (fma.f64 x 3 -4))))) (fma.f64 x -4 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 x (fma.f64 x 3 4)) (*.f64 x (fma.f64 x 3 -4))) (/.f64 1 (*.f64 x (fma.f64 x 3 4))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 x (fma.f64 x 3 4)) (*.f64 x (fma.f64 x 3 -4))) (/.f64 1 (*.f64 x (fma.f64 x 3 4))) (+.f64 (fma.f64 x -4 (*.f64 x 4)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (pow.f64 (*.f64 x (fma.f64 x 3 -4)) 2) -1) (/.f64 1 (fma.f64 x (fma.f64 x 3 -4) -1)) (fma.f64 x -4 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 (*.f64 x (*.f64 x 3))) (sqrt.f64 (*.f64 x 4))) (-.f64 (sqrt.f64 (*.f64 x (*.f64 x 3))) (sqrt.f64 (*.f64 x 4))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 (*.f64 x (*.f64 x 3))) (sqrt.f64 (*.f64 x 4))) (-.f64 (sqrt.f64 (*.f64 x (*.f64 x 3))) (sqrt.f64 (*.f64 x 4))) (+.f64 (fma.f64 x -4 (*.f64 x 4)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (pow.f64 (cbrt.f64 (*.f64 x 3)) 2)) (cbrt.f64 (*.f64 x 3)) (neg.f64 (fma.f64 x 4 -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (pow.f64 (cbrt.f64 (*.f64 x 3)) 2)) (cbrt.f64 (*.f64 x 3)) (fma.f64 x -4 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (sqrt.f64 (*.f64 x 3))) (sqrt.f64 (*.f64 x 3)) (neg.f64 (fma.f64 x 4 -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (sqrt.f64 (*.f64 x 3))) (sqrt.f64 (*.f64 x 3)) (fma.f64 x -4 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 x 3) (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x) (neg.f64 (fma.f64 x 4 -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 x 3) (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x) (fma.f64 x -4 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 x 3) (sqrt.f64 x)) (sqrt.f64 x) (neg.f64 (fma.f64 x 4 -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 x 3) (sqrt.f64 x)) (sqrt.f64 x) (fma.f64 x -4 1))))))

simplify212.0ms (2.1%)

Algorithm
egg-herbie
Rules
2020×unswap-sqr_binary64
1080×sqr-pow_binary64
636×fabs-mul_binary64
612×pow-sqr_binary64
610×cube-prod_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
020455
145429
281416
3160354
4359354
5949354
61462354
71930354
82040354
92172354
102341354
112584354
122897354
133267354
143724354
154311354
165019354
175877354
186301354
196617354
206925354
217007354
227043354
Stop Event
node limit
Counts
411 → 383
Calls
Call 1
Inputs
(*.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))
3
(+.f64 (*.f64 -12 x) 3)
(+.f64 (*.f64 -12 x) (+.f64 3 (*.f64 9 (pow.f64 x 2))))
(+.f64 (*.f64 -12 x) (+.f64 3 (*.f64 9 (pow.f64 x 2))))
(*.f64 9 (pow.f64 x 2))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(+.f64 (*.f64 -12 x) (+.f64 3 (*.f64 9 (pow.f64 x 2))))
(+.f64 (*.f64 -12 x) (+.f64 3 (*.f64 9 (pow.f64 x 2))))
(*.f64 9 (pow.f64 x 2))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(+.f64 (*.f64 -12 x) (+.f64 3 (*.f64 9 (pow.f64 x 2))))
(+.f64 (*.f64 -12 x) (+.f64 3 (*.f64 9 (pow.f64 x 2))))
(*.f64 -4 x)
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(*.f64 3 (pow.f64 x 2))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(*.f64 3 (pow.f64 x 2))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
1
(+.f64 1 (*.f64 -4 x))
(+.f64 (*.f64 3 (pow.f64 x 2)) (+.f64 1 (*.f64 -4 x)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (+.f64 1 (*.f64 -4 x)))
(*.f64 3 (pow.f64 x 2))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(+.f64 (*.f64 3 (pow.f64 x 2)) (+.f64 1 (*.f64 -4 x)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (+.f64 1 (*.f64 -4 x)))
(*.f64 3 (pow.f64 x 2))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(+.f64 (*.f64 3 (pow.f64 x 2)) (+.f64 1 (*.f64 -4 x)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (+.f64 1 (*.f64 -4 x)))
Outputs
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (*.f64 x x))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (*.f64 x x))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (*.f64 x x))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (*.f64 x x))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (*.f64 x x))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (*.f64 x x))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (*.f64 x x))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (*.f64 x x))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (*.f64 x x))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (*.f64 x x))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (*.f64 x x))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (*.f64 x x))
3
(+.f64 (*.f64 -12 x) 3)
(fma.f64 -12 x 3)
(fma.f64 x -12 3)
(+.f64 (*.f64 -12 x) (+.f64 3 (*.f64 9 (pow.f64 x 2))))
(+.f64 (fma.f64 -12 x 3) (*.f64 (*.f64 x x) 9))
(fma.f64 x -12 (fma.f64 (*.f64 x x) 9 3))
(fma.f64 x (fma.f64 x 9 -12) 3)
(+.f64 (*.f64 -12 x) (+.f64 3 (*.f64 9 (pow.f64 x 2))))
(+.f64 (fma.f64 -12 x 3) (*.f64 (*.f64 x x) 9))
(fma.f64 x -12 (fma.f64 (*.f64 x x) 9 3))
(fma.f64 x (fma.f64 x 9 -12) 3)
(*.f64 9 (pow.f64 x 2))
(*.f64 (*.f64 x x) 9)
(*.f64 x (*.f64 x 9))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 (*.f64 x x) 9))
(fma.f64 x -12 (*.f64 x (*.f64 x 9)))
(*.f64 x (+.f64 (*.f64 x 9) -12))
(*.f64 x (fma.f64 x 9 -12))
(+.f64 (*.f64 -12 x) (+.f64 3 (*.f64 9 (pow.f64 x 2))))
(+.f64 (fma.f64 -12 x 3) (*.f64 (*.f64 x x) 9))
(fma.f64 x -12 (fma.f64 (*.f64 x x) 9 3))
(fma.f64 x (fma.f64 x 9 -12) 3)
(+.f64 (*.f64 -12 x) (+.f64 3 (*.f64 9 (pow.f64 x 2))))
(+.f64 (fma.f64 -12 x 3) (*.f64 (*.f64 x x) 9))
(fma.f64 x -12 (fma.f64 (*.f64 x x) 9 3))
(fma.f64 x (fma.f64 x 9 -12) 3)
(*.f64 9 (pow.f64 x 2))
(*.f64 (*.f64 x x) 9)
(*.f64 x (*.f64 x 9))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 (*.f64 x x) 9))
(fma.f64 x -12 (*.f64 x (*.f64 x 9)))
(*.f64 x (+.f64 (*.f64 x 9) -12))
(*.f64 x (fma.f64 x 9 -12))
(+.f64 (*.f64 -12 x) (+.f64 3 (*.f64 9 (pow.f64 x 2))))
(+.f64 (fma.f64 -12 x 3) (*.f64 (*.f64 x x) 9))
(fma.f64 x -12 (fma.f64 (*.f64 x x) 9 3))
(fma.f64 x (fma.f64 x 9 -12) 3)
(+.f64 (*.f64 -12 x) (+.f64 3 (*.f64 9 (pow.f64 x 2))))
(+.f64 (fma.f64 -12 x 3) (*.f64 (*.f64 x x) 9))
(fma.f64 x -12 (fma.f64 (*.f64 x x) 9 3))
(fma.f64 x (fma.f64 x 9 -12) 3)
(*.f64 -4 x)
(*.f64 x -4)
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(fma.f64 3 (*.f64 x x) (*.f64 x -4))
(*.f64 x (+.f64 (*.f64 3 x) -4))
(*.f64 x (fma.f64 3 x -4))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(fma.f64 3 (*.f64 x x) (*.f64 x -4))
(*.f64 x (+.f64 (*.f64 3 x) -4))
(*.f64 x (fma.f64 3 x -4))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(fma.f64 3 (*.f64 x x) (*.f64 x -4))
(*.f64 x (+.f64 (*.f64 3 x) -4))
(*.f64 x (fma.f64 3 x -4))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (*.f64 x x))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(fma.f64 3 (*.f64 x x) (*.f64 x -4))
(*.f64 x (+.f64 (*.f64 3 x) -4))
(*.f64 x (fma.f64 3 x -4))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(fma.f64 3 (*.f64 x x) (*.f64 x -4))
(*.f64 x (+.f64 (*.f64 3 x) -4))
(*.f64 x (fma.f64 3 x -4))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(fma.f64 3 (*.f64 x x) (*.f64 x -4))
(*.f64 x (+.f64 (*.f64 3 x) -4))
(*.f64 x (fma.f64 3 x -4))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (*.f64 x x))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(fma.f64 3 (*.f64 x x) (*.f64 x -4))
(*.f64 x (+.f64 (*.f64 3 x) -4))
(*.f64 x (fma.f64 3 x -4))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(fma.f64 3 (*.f64 x x) (*.f64 x -4))
(*.f64 x (+.f64 (*.f64 3 x) -4))
(*.f64 x (fma.f64 3 x -4))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(fma.f64 3 (*.f64 x x) (*.f64 x -4))
(*.f64 x (+.f64 (*.f64 3 x) -4))
(*.f64 x (fma.f64 3 x -4))
1
(+.f64 1 (*.f64 -4 x))
(+.f64 (*.f64 x -4) 1)
(fma.f64 x -4 1)
(+.f64 (*.f64 3 (pow.f64 x 2)) (+.f64 1 (*.f64 -4 x)))
(fma.f64 3 (*.f64 x x) (+.f64 (*.f64 x -4) 1))
(fma.f64 3 (*.f64 x x) (fma.f64 x -4 1))
(fma.f64 x (fma.f64 3 x -4) 1)
(+.f64 (*.f64 3 (pow.f64 x 2)) (+.f64 1 (*.f64 -4 x)))
(fma.f64 3 (*.f64 x x) (+.f64 (*.f64 x -4) 1))
(fma.f64 3 (*.f64 x x) (fma.f64 x -4 1))
(fma.f64 x (fma.f64 3 x -4) 1)
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (*.f64 x x))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(fma.f64 3 (*.f64 x x) (*.f64 x -4))
(*.f64 x (+.f64 (*.f64 3 x) -4))
(*.f64 x (fma.f64 3 x -4))
(+.f64 (*.f64 3 (pow.f64 x 2)) (+.f64 1 (*.f64 -4 x)))
(fma.f64 3 (*.f64 x x) (+.f64 (*.f64 x -4) 1))
(fma.f64 3 (*.f64 x x) (fma.f64 x -4 1))
(fma.f64 x (fma.f64 3 x -4) 1)
(+.f64 (*.f64 3 (pow.f64 x 2)) (+.f64 1 (*.f64 -4 x)))
(fma.f64 3 (*.f64 x x) (+.f64 (*.f64 x -4) 1))
(fma.f64 3 (*.f64 x x) (fma.f64 x -4 1))
(fma.f64 x (fma.f64 3 x -4) 1)
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (*.f64 x x))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(fma.f64 3 (*.f64 x x) (*.f64 x -4))
(*.f64 x (+.f64 (*.f64 3 x) -4))
(*.f64 x (fma.f64 3 x -4))
(+.f64 (*.f64 3 (pow.f64 x 2)) (+.f64 1 (*.f64 -4 x)))
(fma.f64 3 (*.f64 x x) (+.f64 (*.f64 x -4) 1))
(fma.f64 3 (*.f64 x x) (fma.f64 x -4 1))
(fma.f64 x (fma.f64 3 x -4) 1)
(+.f64 (*.f64 3 (pow.f64 x 2)) (+.f64 1 (*.f64 -4 x)))
(fma.f64 3 (*.f64 x x) (+.f64 (*.f64 x -4) 1))
(fma.f64 3 (*.f64 x x) (fma.f64 x -4 1))
(fma.f64 x (fma.f64 3 x -4) 1)

localize9.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(fma.f64 x 9 -12)
0.1b
(fma.f64 x (fma.f64 x 9 -12) 3)
Compiler

Compiled 16 to 12 computations (25% saved)

series2.0ms (0%)

Counts
2 → 24
Calls

6 calls:

TimeVariablePointExpression
0.0ms
x
@0
(fma.f64 x (fma.f64 x 9 -12) 3)
0.0ms
x
@-inf
(fma.f64 x (fma.f64 x 9 -12) 3)
0.0ms
x
@inf
(fma.f64 x 9 -12)
0.0ms
x
@inf
(fma.f64 x (fma.f64 x 9 -12) 3)
0.0ms
x
@0
(fma.f64 x 9 -12)

rewrite60.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
607×pow1_binary64
568×add-log-exp_binary64
568×log1p-expm1-u_binary64
568×expm1-log1p-u_binary64
559×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0714
114214
2149514
Stop Event
node limit
Counts
2 → 42
Calls
Call 1
Inputs
(fma.f64 x (fma.f64 x 9 -12) 3)
(fma.f64 x 9 -12)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 3 (*.f64 x (fma.f64 x 9 -12)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (fma.f64 x 9 -12)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 x (fma.f64 x 9 -12)) 1) 3)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (fma.f64 x (fma.f64 x 9 -12) 3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 x (fma.f64 x 9 -12) 3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 x (fma.f64 x 9 -12) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 x (fma.f64 x 9 -12) 3)) (pow.f64 (cbrt.f64 (fma.f64 x (fma.f64 x 9 -12) 3)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 x (fma.f64 x 9 -12) 3)) 2) (cbrt.f64 (fma.f64 x (fma.f64 x 9 -12) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 x (fma.f64 x 9 -12) 3)) (sqrt.f64 (fma.f64 x (fma.f64 x 9 -12) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 x (fma.f64 x 9 -12)) 3) 27) (+.f64 (*.f64 (*.f64 x (fma.f64 x 9 -12)) (*.f64 x (fma.f64 x 9 -12))) (-.f64 9 (*.f64 (*.f64 x (fma.f64 x 9 -12)) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (*.f64 x (fma.f64 x 9 -12)) (*.f64 x (fma.f64 x 9 -12))) 9) (-.f64 (*.f64 x (fma.f64 x 9 -12)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 x (fma.f64 x 9 -12) 3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 x (fma.f64 x 9 -12) 3) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 x (fma.f64 x 9 -12) 3)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 x (fma.f64 x 9 -12) 3)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 x (fma.f64 x 9 -12) 3) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 x (fma.f64 x 9 -12) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 x (fma.f64 x 9 -12) 3) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 x (fma.f64 x 9 -12) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 x (fma.f64 x 9 -12) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 x (fma.f64 x 9 -12) 3)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 -12 (*.f64 x 9))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x 9) -12)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 x 9) 1) -12)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (fma.f64 x 9 -12)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 x 9 -12) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 x 9 -12))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 x 9 -12)) (pow.f64 (cbrt.f64 (fma.f64 x 9 -12)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 x 9 -12)) 2) (cbrt.f64 (fma.f64 x 9 -12)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 x 9 -12)) (sqrt.f64 (fma.f64 x 9 -12)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 x 9) 3) -1728) (+.f64 (*.f64 (*.f64 x 9) (*.f64 x 9)) (-.f64 144 (*.f64 (*.f64 x 9) -12))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (*.f64 x 9) (*.f64 x 9)) 144) (-.f64 (*.f64 x 9) -12))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 x 9 -12) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 x 9 -12) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 x 9 -12)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 x 9 -12)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 x 9 -12) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 x 9 -12)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 x 9 -12) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 x 9 -12)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 x 9 -12)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 x 9 -12)))))))

simplify158.0ms (1.6%)

Algorithm
egg-herbie
Rules
778×sqr-pow_binary64
540×cube-prod_binary64
537×fabs-mul_binary64
532×associate-*l*_binary64
494×fma-def_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
016180
135168
256156
388144
4194144
5521144
61793144
73129144
83334144
93546144
103766144
114081144
124483144
134994144
145563144
156251144
167088144
177478144
187770144
Stop Event
node limit
Counts
66 → 56
Calls
Call 1
Inputs
3
(+.f64 (*.f64 -12 x) 3)
(+.f64 (*.f64 -12 x) (+.f64 3 (*.f64 9 (pow.f64 x 2))))
(+.f64 (*.f64 -12 x) (+.f64 3 (*.f64 9 (pow.f64 x 2))))
(*.f64 9 (pow.f64 x 2))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(+.f64 (*.f64 -12 x) (+.f64 3 (*.f64 9 (pow.f64 x 2))))
(+.f64 (*.f64 -12 x) (+.f64 3 (*.f64 9 (pow.f64 x 2))))
(*.f64 9 (pow.f64 x 2))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(+.f64 (*.f64 -12 x) (+.f64 3 (*.f64 9 (pow.f64 x 2))))
(+.f64 (*.f64 -12 x) (+.f64 3 (*.f64 9 (pow.f64 x 2))))
-12
(-.f64 (*.f64 9 x) 12)
(-.f64 (*.f64 9 x) 12)
(-.f64 (*.f64 9 x) 12)
(*.f64 9 x)
(-.f64 (*.f64 9 x) 12)
(-.f64 (*.f64 9 x) 12)
(-.f64 (*.f64 9 x) 12)
(*.f64 9 x)
(-.f64 (*.f64 9 x) 12)
(-.f64 (*.f64 9 x) 12)
(-.f64 (*.f64 9 x) 12)
Outputs
3
(+.f64 (*.f64 -12 x) 3)
(fma.f64 -12 x 3)
(+.f64 (*.f64 -12 x) (+.f64 3 (*.f64 9 (pow.f64 x 2))))
(+.f64 (fma.f64 -12 x 3) (*.f64 9 (*.f64 x x)))
(fma.f64 -12 x (fma.f64 9 (*.f64 x x) 3))
(+.f64 3 (*.f64 x (fma.f64 x 9 -12)))
(fma.f64 x (fma.f64 x 9 -12) 3)
(+.f64 (*.f64 -12 x) (+.f64 3 (*.f64 9 (pow.f64 x 2))))
(+.f64 (fma.f64 -12 x 3) (*.f64 9 (*.f64 x x)))
(fma.f64 -12 x (fma.f64 9 (*.f64 x x) 3))
(+.f64 3 (*.f64 x (fma.f64 x 9 -12)))
(fma.f64 x (fma.f64 x 9 -12) 3)
(*.f64 9 (pow.f64 x 2))
(*.f64 9 (*.f64 x x))
(*.f64 x (*.f64 x 9))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 9 (*.f64 x x) (*.f64 -12 x))
(*.f64 x (fma.f64 x 9 -12))
(+.f64 (*.f64 -12 x) (+.f64 3 (*.f64 9 (pow.f64 x 2))))
(+.f64 (fma.f64 -12 x 3) (*.f64 9 (*.f64 x x)))
(fma.f64 -12 x (fma.f64 9 (*.f64 x x) 3))
(+.f64 3 (*.f64 x (fma.f64 x 9 -12)))
(fma.f64 x (fma.f64 x 9 -12) 3)
(+.f64 (*.f64 -12 x) (+.f64 3 (*.f64 9 (pow.f64 x 2))))
(+.f64 (fma.f64 -12 x 3) (*.f64 9 (*.f64 x x)))
(fma.f64 -12 x (fma.f64 9 (*.f64 x x) 3))
(+.f64 3 (*.f64 x (fma.f64 x 9 -12)))
(fma.f64 x (fma.f64 x 9 -12) 3)
(*.f64 9 (pow.f64 x 2))
(*.f64 9 (*.f64 x x))
(*.f64 x (*.f64 x 9))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 9 (*.f64 x x) (*.f64 -12 x))
(*.f64 x (fma.f64 x 9 -12))
(+.f64 (*.f64 -12 x) (+.f64 3 (*.f64 9 (pow.f64 x 2))))
(+.f64 (fma.f64 -12 x 3) (*.f64 9 (*.f64 x x)))
(fma.f64 -12 x (fma.f64 9 (*.f64 x x) 3))
(+.f64 3 (*.f64 x (fma.f64 x 9 -12)))
(fma.f64 x (fma.f64 x 9 -12) 3)
(+.f64 (*.f64 -12 x) (+.f64 3 (*.f64 9 (pow.f64 x 2))))
(+.f64 (fma.f64 -12 x 3) (*.f64 9 (*.f64 x x)))
(fma.f64 -12 x (fma.f64 9 (*.f64 x x) 3))
(+.f64 3 (*.f64 x (fma.f64 x 9 -12)))
(fma.f64 x (fma.f64 x 9 -12) 3)
-12
(-.f64 (*.f64 9 x) 12)
(fma.f64 9 x -12)
(fma.f64 x 9 -12)
(-.f64 (*.f64 9 x) 12)
(fma.f64 9 x -12)
(fma.f64 x 9 -12)
(-.f64 (*.f64 9 x) 12)
(fma.f64 9 x -12)
(fma.f64 x 9 -12)
(*.f64 9 x)
(*.f64 x 9)
(-.f64 (*.f64 9 x) 12)
(fma.f64 9 x -12)
(fma.f64 x 9 -12)
(-.f64 (*.f64 9 x) 12)
(fma.f64 9 x -12)
(fma.f64 x 9 -12)
(-.f64 (*.f64 9 x) 12)
(fma.f64 9 x -12)
(fma.f64 x 9 -12)
(*.f64 9 x)
(*.f64 x 9)
(-.f64 (*.f64 9 x) 12)
(fma.f64 9 x -12)
(fma.f64 x 9 -12)
(-.f64 (*.f64 9 x) 12)
(fma.f64 9 x -12)
(fma.f64 x 9 -12)
(-.f64 (*.f64 9 x) 12)
(fma.f64 9 x -12)
(fma.f64 x 9 -12)

eval435.0ms (4.4%)

Compiler

Compiled 8449 to 6577 computations (22.2% saved)

prune91.0ms (0.9%)

Pruning

12 alts after pruning (11 fresh and 1 done)

PrunedKeptTotal
New42811439
Fresh000
Picked101
Done011
Total42912441
Error
0.0b
Counts
441 → 12
Alt Table
Click to see full alt table
StatusErrorProgram
0.2b
(+.f64 (*.f64 3 (*.f64 x (fma.f64 x 3 -4))) 3)
40.6b
(*.f64 9 (pow.f64 x 2))
22.0b
(+.f64 (*.f64 -12 x) 3)
0.4b
(*.f64 3 (+.f64 (fma.f64 (pow.f64 (cbrt.f64 (*.f64 x 3)) 2) (*.f64 (cbrt.f64 (*.f64 x 3)) x) (*.f64 x -4)) 1))
40.5b
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
40.5b
(*.f64 x (*.f64 x 9))
22.2b
3
0.1b
(*.f64 3 (+.f64 (-.f64 (*.f64 3 (*.f64 x x)) (*.f64 x 4)) 1))
0.2b
(fma.f64 (*.f64 x (fma.f64 x 3 -4)) 3 3)
0.2b
(*.f64 3 (+.f64 (-.f64 (*.f64 (*.f64 x 3) x) (*.f64 x 4)) 1))
22.0b
(*.f64 3 (+.f64 (*.f64 x -4) 1))
40.4b
(*.f64 x (fma.f64 x 9 -12))
Compiler

Compiled 214 to 171 computations (20.1% saved)

localize19.0ms (0.2%)

Local error

Found 4 expressions with local error:

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

Compiled 49 to 30 computations (38.8% saved)

series3.0ms (0%)

Counts
4 → 48
Calls

12 calls:

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

rewrite140.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
686×fma-def_binary64
557×log-prod_binary64
398×fma-neg_binary64
336×pow-prod-down_binary64
299×pow2_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01155
125644
2337536
Stop Event
node limit
Counts
4 → 345
Calls
Call 1
Inputs
(*.f64 3 (*.f64 x x))
(*.f64 3 (+.f64 (-.f64 (*.f64 3 (*.f64 x x)) (*.f64 x 4)) 1))
(-.f64 (*.f64 3 (*.f64 x x)) (*.f64 x 4))
(+.f64 (-.f64 (*.f64 3 (*.f64 x x)) (*.f64 x 4)) 1)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 3 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (pow.f64 (exp.f64 x) x) 2)) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 3) (*.f64 x x)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 3) (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 3 (*.f64 x x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 3 (*.f64 x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 9 (pow.f64 x 4)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 3 (*.f64 x x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (sqrt.f64 3)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 27 (pow.f64 x 6)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 9 (pow.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 3) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 3 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 27 (pow.f64 x 6)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 3 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 3 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (fma.f64 2 (log.f64 x) (log1p.f64 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (fma.f64 2 (log.f64 x) (log1p.f64 2)) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 3 (*.f64 3 (*.f64 x (fma.f64 3 x -4))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 3 (fma.f64 x (fma.f64 3 x -4) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 3 (*.f64 x (fma.f64 3 x -4))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 3 (*.f64 x (fma.f64 3 x -4))) 1) 3)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (exp.f64 (fma.f64 x (fma.f64 3 x -4) 1)) 2)) (fma.f64 x (fma.f64 3 x -4) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 3) (fma.f64 x (fma.f64 3 x -4) 1)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 3) (fma.f64 x (fma.f64 3 x -4) 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 3 (fma.f64 x (fma.f64 3 x -4) 1)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 3 (*.f64 x (fma.f64 3 x -4))) 3) 27) (+.f64 (pow.f64 (*.f64 3 (*.f64 x (fma.f64 3 x -4))) 2) (-.f64 9 (*.f64 (*.f64 3 (*.f64 x (fma.f64 3 x -4))) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 3 (*.f64 x (fma.f64 3 x -4))) 2) 9) (fma.f64 3 (*.f64 x (fma.f64 3 x -4)) -3))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 1 (pow.f64 (*.f64 x (fma.f64 3 x -4)) 3)) 3) (+.f64 (pow.f64 (*.f64 x (fma.f64 3 x -4)) 2) (-.f64 1 (*.f64 x (fma.f64 3 x -4)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (pow.f64 (*.f64 x (fma.f64 3 x -4)) 2) -1) 3) (fma.f64 x (fma.f64 3 x -4) -1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 3 (+.f64 1 (pow.f64 (*.f64 x (fma.f64 3 x -4)) 3))) (+.f64 (pow.f64 (*.f64 x (fma.f64 3 x -4)) 2) (-.f64 1 (*.f64 x (fma.f64 3 x -4)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 3 (+.f64 (pow.f64 (*.f64 x (fma.f64 3 x -4)) 2) -1)) (fma.f64 x (fma.f64 3 x -4) -1))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 3 (fma.f64 x (fma.f64 3 x -4) 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 9 (pow.f64 (fma.f64 x (fma.f64 3 x -4) 1) 2)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 3 (fma.f64 x (fma.f64 3 x -4) 1)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 3 (fma.f64 x (fma.f64 3 x -4) 1))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 3 (fma.f64 x (fma.f64 3 x -4) 1))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 9 (pow.f64 (fma.f64 x (fma.f64 3 x -4) 1) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 3) (fma.f64 x (fma.f64 3 x -4) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 3 (fma.f64 x (fma.f64 3 x -4) 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 3 (fma.f64 x (fma.f64 3 x -4) 1)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 3 (fma.f64 x (fma.f64 3 x -4) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 3 (fma.f64 x (fma.f64 3 x -4) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 3 (fma.f64 x (fma.f64 3 x -4) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 3 (fma.f64 x (fma.f64 3 x -4) 1))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 3 (*.f64 x (fma.f64 3 x -4)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (fma.f64 3 x -4)) 3 3)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 3 (*.f64 x (fma.f64 3 x -4))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 3 x -4))) 2) (*.f64 (cbrt.f64 (*.f64 x (fma.f64 3 x -4))) 3) 3)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x (fma.f64 3 x -4))) (*.f64 (sqrt.f64 (*.f64 x (fma.f64 3 x -4))) 3) 3)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 (*.f64 x (fma.f64 3 x -4))) 1 3)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 3 (*.f64 x (fma.f64 3 x -4)))) 2) (cbrt.f64 (*.f64 3 (*.f64 x (fma.f64 3 x -4)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 3 (*.f64 x (fma.f64 3 x -4)))) (sqrt.f64 (*.f64 3 (*.f64 x (fma.f64 3 x -4)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 3 x -4))) 2)) (cbrt.f64 (*.f64 x (fma.f64 3 x -4))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 (sqrt.f64 (*.f64 x (fma.f64 3 x -4)))) (sqrt.f64 (*.f64 x (fma.f64 3 x -4))) 3)))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 3 (*.f64 x x)) (*.f64 x -4))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 3 (*.f64 x x)) (*.f64 (*.f64 x -4) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 3 (*.f64 x x)) (fma.f64 x -4 (fma.f64 x -4 (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (fma.f64 3 x -4)) (fma.f64 x -4 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (fma.f64 3 x -4)) (fma.f64 (*.f64 x -4) 1 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (fma.f64 3 x -4)) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 x 4))) (pow.f64 (cbrt.f64 (*.f64 x 4)) 2) (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (fma.f64 3 x -4)) (*.f64 (fma.f64 x -4 (*.f64 x 4)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (fma.f64 3 x -4)) (+.f64 (fma.f64 x -4 (*.f64 x 4)) (fma.f64 x -4 (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (fma.f64 3 x -4)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 x -4 (*.f64 x 4)) (*.f64 x (fma.f64 3 x -4)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x -4) (*.f64 3 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (fma.f64 3 x -4))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (fma.f64 3 x -4)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (fma.f64 3 x -4)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (fma.f64 3 x -4)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (fma.f64 3 x -4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (fma.f64 3 x -4)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 x (fma.f64 3 x -4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 x (fma.f64 3 x -4))) (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 3 x -4))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 3 x -4))) 2) (cbrt.f64 (*.f64 x (fma.f64 3 x -4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 3 x -4))) 2) (*.f64 (cbrt.f64 (*.f64 x (fma.f64 3 x -4))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 x (fma.f64 3 x -4))) (sqrt.f64 (*.f64 x (fma.f64 3 x -4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 x (fma.f64 3 x -4))) (*.f64 (sqrt.f64 (*.f64 x (fma.f64 3 x -4))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 27 (pow.f64 x 6)) (*.f64 64 (pow.f64 x 3))) (/.f64 1 (fma.f64 (*.f64 x 4) (*.f64 x (fma.f64 3 x 4)) (*.f64 9 (pow.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 (*.f64 x x) 16)) (/.f64 1 (*.f64 x (fma.f64 3 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 x (sqrt.f64 3) (*.f64 2 (sqrt.f64 x))) (-.f64 (*.f64 x (sqrt.f64 3)) (*.f64 2 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 (*.f64 x 4) (*.f64 x (fma.f64 3 x 4)) (*.f64 9 (pow.f64 x 4))) (-.f64 (*.f64 27 (pow.f64 x 6)) (*.f64 64 (pow.f64 x 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (*.f64 x (fma.f64 3 x 4)) (-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 (*.f64 x x) 16))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 27 (pow.f64 x 6)) (*.f64 64 (pow.f64 x 3))) (fma.f64 (*.f64 x 4) (*.f64 x (fma.f64 3 x 4)) (*.f64 9 (pow.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 (*.f64 x x) 16)) (*.f64 x (fma.f64 3 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (*.f64 27 (pow.f64 x 6)) (*.f64 64 (pow.f64 x 3)))) (neg.f64 (fma.f64 (*.f64 x 4) (*.f64 x (fma.f64 3 x 4)) (*.f64 9 (pow.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 (*.f64 x x) 16))) (neg.f64 (*.f64 x (fma.f64 3 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 27 (pow.f64 x 6) (pow.f64 (*.f64 x -4) 3)) (fma.f64 9 (pow.f64 x 4) (-.f64 (pow.f64 (*.f64 x -4) 2) (*.f64 (*.f64 3 (*.f64 x x)) (*.f64 x -4)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 x (fma.f64 3 x -4)) 3) (pow.f64 (fma.f64 x -4 (*.f64 x 4)) 3)) (+.f64 (pow.f64 (*.f64 x (fma.f64 3 x -4)) 2) (-.f64 (pow.f64 (fma.f64 x -4 (*.f64 x 4)) 2) (*.f64 (*.f64 x (fma.f64 3 x -4)) (fma.f64 x -4 (*.f64 x 4))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 9 (pow.f64 x 4)) (pow.f64 (*.f64 x -4) 2)) (-.f64 (*.f64 3 (*.f64 x x)) (*.f64 x -4)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 x (fma.f64 3 x -4)) 2) (pow.f64 (fma.f64 x -4 (*.f64 x 4)) 2)) (-.f64 (*.f64 x (fma.f64 3 x -4)) (fma.f64 x -4 (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (*.f64 27 (pow.f64 x 6)) (*.f64 64 (pow.f64 x 3))) 1) (fma.f64 (*.f64 x 4) (*.f64 x (fma.f64 3 x 4)) (*.f64 9 (pow.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 (*.f64 x x) 16)) 1) (*.f64 x (fma.f64 3 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (fma.f64 3 x -4)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x (fma.f64 3 x -4)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 x (fma.f64 3 x -4))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 x (fma.f64 3 x -4))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x (fma.f64 3 x -4)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 (*.f64 x 4) (*.f64 x (fma.f64 3 x 4)) (*.f64 9 (pow.f64 x 4))) (-.f64 (*.f64 27 (pow.f64 x 6)) (*.f64 64 (pow.f64 x 3)))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (*.f64 x (fma.f64 3 x 4)) (-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 (*.f64 x x) 16))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 x (fma.f64 3 x -4)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 x) (fma.f64 3 x -4)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 x (fma.f64 3 x -4)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (expm1.f64 (*.f64 3 (*.f64 x x)))) (pow.f64 (exp.f64 4) x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (pow.f64 (exp.f64 3) (*.f64 x x)) (+.f64 1 (expm1.f64 (*.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (expm1.f64 (*.f64 3 (*.f64 x x)))) (+.f64 1 (expm1.f64 (*.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 3 (*.f64 x x)))) (exp.f64 (*.f64 x -4))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 3 (*.f64 x x)))) (pow.f64 (exp.f64 x) -4)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 x (fma.f64 3 x -4)))) (exp.f64 (fma.f64 x -4 (*.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (fma.f64 x -4 (*.f64 x 4))) (pow.f64 (exp.f64 x) (fma.f64 3 x -4))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (fma.f64 x -4 (*.f64 x 4))) (+.f64 1 (expm1.f64 (*.f64 x (fma.f64 3 x -4))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 x -4)) (pow.f64 (exp.f64 3) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 x -4)) (+.f64 1 (expm1.f64 (*.f64 3 (*.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 x) -4) (+.f64 1 (expm1.f64 (*.f64 3 (*.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 x (fma.f64 3 x -4)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x (fma.f64 3 x -4))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (*.f64 (log1p.f64 (*.f64 x (fma.f64 3 x -4))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 x (fma.f64 3 x -4))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 x (fma.f64 3 x -4))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 x (fma.f64 3 x -4))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 3 (*.f64 x x) (*.f64 x -4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 3 (*.f64 x x) (*.f64 (*.f64 x -4) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 3 (*.f64 x x) (fma.f64 x -4 (fma.f64 x -4 (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 3 (*.f64 x x) (neg.f64 (-.f64 (*.f64 x 4) (fma.f64 x -4 (*.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x -4 (*.f64 3 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (*.f64 3 x) (*.f64 x -4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (*.f64 3 x) (*.f64 (*.f64 x -4) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (*.f64 3 x) (fma.f64 x -4 (fma.f64 x -4 (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (*.f64 3 x) (neg.f64 (-.f64 (*.f64 x 4) (fma.f64 x -4 (*.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (fma.f64 3 x -4) (fma.f64 x -4 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (fma.f64 3 x -4) (fma.f64 (*.f64 x -4) 1 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (fma.f64 3 x -4) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 x 4))) (pow.f64 (cbrt.f64 (*.f64 x 4)) 2) (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (fma.f64 3 x -4) (*.f64 (fma.f64 x -4 (*.f64 x 4)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (fma.f64 3 x -4) (+.f64 (fma.f64 x -4 (*.f64 x 4)) (fma.f64 x -4 (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x x) 3 (*.f64 x -4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x x) 3 (*.f64 (*.f64 x -4) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x x) 3 (fma.f64 x -4 (fma.f64 x -4 (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x x) 3 (neg.f64 (-.f64 (*.f64 x 4) (fma.f64 x -4 (*.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 (*.f64 x x)) 1 (*.f64 x -4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 (*.f64 x x)) 1 (*.f64 (*.f64 x -4) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 (*.f64 x x)) 1 (fma.f64 x -4 (fma.f64 x -4 (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 (*.f64 x x)) 1 (neg.f64 (-.f64 (*.f64 x 4) (fma.f64 x -4 (*.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 4 (neg.f64 x) (*.f64 3 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (fma.f64 3 x -4)) 1 (fma.f64 x -4 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (fma.f64 3 x -4)) 1 (fma.f64 (*.f64 x -4) 1 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (fma.f64 3 x -4)) 1 (fma.f64 (neg.f64 (cbrt.f64 (*.f64 x 4))) (pow.f64 (cbrt.f64 (*.f64 x 4)) 2) (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (fma.f64 3 x -4)) 1 (*.f64 (fma.f64 x -4 (*.f64 x 4)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (fma.f64 3 x -4)) 1 (+.f64 (fma.f64 x -4 (*.f64 x 4)) (fma.f64 x -4 (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 3 (*.f64 x x)) (*.f64 x -4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 3 (*.f64 x x)) (*.f64 (*.f64 x -4) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 3 (*.f64 x x)) (fma.f64 x -4 (fma.f64 x -4 (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 3 (*.f64 x x)) (neg.f64 (-.f64 (*.f64 x 4) (fma.f64 x -4 (*.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x (fma.f64 3 x -4)) (fma.f64 x -4 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x (fma.f64 3 x -4)) (fma.f64 (*.f64 x -4) 1 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x (fma.f64 3 x -4)) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 x 4))) (pow.f64 (cbrt.f64 (*.f64 x 4)) 2) (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x (fma.f64 3 x -4)) (*.f64 (fma.f64 x -4 (*.f64 x 4)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x (fma.f64 3 x -4)) (+.f64 (fma.f64 x -4 (*.f64 x 4)) (fma.f64 x -4 (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 x (fma.f64 3 x -4) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 x -4 (*.f64 x 4)) (*.f64 x (fma.f64 3 x -4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x -4) (*.f64 3 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 x (fma.f64 3 x -4) 1) 1 -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x (fma.f64 3 x -4))) (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 3 x -4))) 2) (fma.f64 x -4 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x (fma.f64 3 x -4))) (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 3 x -4))) 2) (fma.f64 (*.f64 x -4) 1 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x (fma.f64 3 x -4))) (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 3 x -4))) 2) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 x 4))) (pow.f64 (cbrt.f64 (*.f64 x 4)) 2) (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x (fma.f64 3 x -4))) (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 3 x -4))) 2) (*.f64 (fma.f64 x -4 (*.f64 x 4)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x (fma.f64 3 x -4))) (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 3 x -4))) 2) (+.f64 (fma.f64 x -4 (*.f64 x 4)) (fma.f64 x -4 (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 3 x -4))) 2) (cbrt.f64 (*.f64 x (fma.f64 3 x -4))) (fma.f64 x -4 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 3 x -4))) 2) (cbrt.f64 (*.f64 x (fma.f64 3 x -4))) (fma.f64 (*.f64 x -4) 1 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 3 x -4))) 2) (cbrt.f64 (*.f64 x (fma.f64 3 x -4))) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 x 4))) (pow.f64 (cbrt.f64 (*.f64 x 4)) 2) (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 3 x -4))) 2) (cbrt.f64 (*.f64 x (fma.f64 3 x -4))) (*.f64 (fma.f64 x -4 (*.f64 x 4)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 3 x -4))) 2) (cbrt.f64 (*.f64 x (fma.f64 3 x -4))) (+.f64 (fma.f64 x -4 (*.f64 x 4)) (fma.f64 x -4 (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 3 x -4))) 2) (*.f64 (cbrt.f64 (*.f64 x (fma.f64 3 x -4))) 1) (fma.f64 x -4 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 3 x -4))) 2) (*.f64 (cbrt.f64 (*.f64 x (fma.f64 3 x -4))) 1) (fma.f64 (*.f64 x -4) 1 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 3 x -4))) 2) (*.f64 (cbrt.f64 (*.f64 x (fma.f64 3 x -4))) 1) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 x 4))) (pow.f64 (cbrt.f64 (*.f64 x 4)) 2) (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 3 x -4))) 2) (*.f64 (cbrt.f64 (*.f64 x (fma.f64 3 x -4))) 1) (*.f64 (fma.f64 x -4 (*.f64 x 4)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 3 x -4))) 2) (*.f64 (cbrt.f64 (*.f64 x (fma.f64 3 x -4))) 1) (+.f64 (fma.f64 x -4 (*.f64 x 4)) (fma.f64 x -4 (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 3 (*.f64 x x))) (cbrt.f64 (*.f64 9 (pow.f64 x 4))) (*.f64 x -4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 3 (*.f64 x x))) (cbrt.f64 (*.f64 9 (pow.f64 x 4))) (*.f64 (*.f64 x -4) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 3 (*.f64 x x))) (cbrt.f64 (*.f64 9 (pow.f64 x 4))) (fma.f64 x -4 (fma.f64 x -4 (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 3 (*.f64 x x))) (cbrt.f64 (*.f64 9 (pow.f64 x 4))) (neg.f64 (-.f64 (*.f64 x 4) (fma.f64 x -4 (*.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 9 (pow.f64 x 4))) (cbrt.f64 (*.f64 3 (*.f64 x x))) (*.f64 x -4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 9 (pow.f64 x 4))) (cbrt.f64 (*.f64 3 (*.f64 x x))) (*.f64 (*.f64 x -4) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 9 (pow.f64 x 4))) (cbrt.f64 (*.f64 3 (*.f64 x x))) (fma.f64 x -4 (fma.f64 x -4 (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 9 (pow.f64 x 4))) (cbrt.f64 (*.f64 3 (*.f64 x x))) (neg.f64 (-.f64 (*.f64 x 4) (fma.f64 x -4 (*.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (fma.f64 x (fma.f64 3 x -4) 1)) (pow.f64 (cbrt.f64 (fma.f64 x (fma.f64 3 x -4) 1)) 2) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 x (fma.f64 3 x -4) 1)) 2) (cbrt.f64 (fma.f64 x (fma.f64 3 x -4) 1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x 4)) 2) (neg.f64 (cbrt.f64 (*.f64 x 4))) (*.f64 3 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 x) x) (*.f64 (pow.f64 (cbrt.f64 x) 2) 3) (*.f64 x -4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 x) x) (*.f64 (pow.f64 (cbrt.f64 x) 2) 3) (*.f64 (*.f64 x -4) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 x) x) (*.f64 (pow.f64 (cbrt.f64 x) 2) 3) (fma.f64 x -4 (fma.f64 x -4 (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 x) x) (*.f64 (pow.f64 (cbrt.f64 x) 2) 3) (neg.f64 (-.f64 (*.f64 x 4) (fma.f64 x -4 (*.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x (fma.f64 3 x -4))) (sqrt.f64 (*.f64 x (fma.f64 3 x -4))) (fma.f64 x -4 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x (fma.f64 3 x -4))) (sqrt.f64 (*.f64 x (fma.f64 3 x -4))) (fma.f64 (*.f64 x -4) 1 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x (fma.f64 3 x -4))) (sqrt.f64 (*.f64 x (fma.f64 3 x -4))) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 x 4))) (pow.f64 (cbrt.f64 (*.f64 x 4)) 2) (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x (fma.f64 3 x -4))) (sqrt.f64 (*.f64 x (fma.f64 3 x -4))) (*.f64 (fma.f64 x -4 (*.f64 x 4)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x (fma.f64 3 x -4))) (sqrt.f64 (*.f64 x (fma.f64 3 x -4))) (+.f64 (fma.f64 x -4 (*.f64 x 4)) (fma.f64 x -4 (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x (fma.f64 3 x -4))) (*.f64 (sqrt.f64 (*.f64 x (fma.f64 3 x -4))) 1) (fma.f64 x -4 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x (fma.f64 3 x -4))) (*.f64 (sqrt.f64 (*.f64 x (fma.f64 3 x -4))) 1) (fma.f64 (*.f64 x -4) 1 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x (fma.f64 3 x -4))) (*.f64 (sqrt.f64 (*.f64 x (fma.f64 3 x -4))) 1) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 x 4))) (pow.f64 (cbrt.f64 (*.f64 x 4)) 2) (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x (fma.f64 3 x -4))) (*.f64 (sqrt.f64 (*.f64 x (fma.f64 3 x -4))) 1) (*.f64 (fma.f64 x -4 (*.f64 x 4)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x (fma.f64 3 x -4))) (*.f64 (sqrt.f64 (*.f64 x (fma.f64 3 x -4))) 1) (+.f64 (fma.f64 x -4 (*.f64 x 4)) (fma.f64 x -4 (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (sqrt.f64 3)) (*.f64 x (sqrt.f64 3)) (*.f64 x -4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (sqrt.f64 3)) (*.f64 x (sqrt.f64 3)) (*.f64 (*.f64 x -4) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (sqrt.f64 3)) (*.f64 x (sqrt.f64 3)) (fma.f64 x -4 (fma.f64 x -4 (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (sqrt.f64 3)) (*.f64 x (sqrt.f64 3)) (neg.f64 (-.f64 (*.f64 x 4) (fma.f64 x -4 (*.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 x (fma.f64 3 x -4) 1)) (sqrt.f64 (fma.f64 x (fma.f64 3 x -4) 1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 2 (sqrt.f64 x)) (neg.f64 (*.f64 2 (sqrt.f64 x))) (*.f64 3 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -4 x (*.f64 3 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 27 (pow.f64 x 6)) (*.f64 64 (pow.f64 x 3))) (/.f64 1 (fma.f64 (*.f64 x 4) (*.f64 x (fma.f64 3 x 4)) (*.f64 9 (pow.f64 x 4)))) (fma.f64 x -4 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 27 (pow.f64 x 6)) (*.f64 64 (pow.f64 x 3))) (/.f64 1 (fma.f64 (*.f64 x 4) (*.f64 x (fma.f64 3 x 4)) (*.f64 9 (pow.f64 x 4)))) (fma.f64 (*.f64 x -4) 1 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 27 (pow.f64 x 6)) (*.f64 64 (pow.f64 x 3))) (/.f64 1 (fma.f64 (*.f64 x 4) (*.f64 x (fma.f64 3 x 4)) (*.f64 9 (pow.f64 x 4)))) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 x 4))) (pow.f64 (cbrt.f64 (*.f64 x 4)) 2) (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 27 (pow.f64 x 6)) (*.f64 64 (pow.f64 x 3))) (/.f64 1 (fma.f64 (*.f64 x 4) (*.f64 x (fma.f64 3 x 4)) (*.f64 9 (pow.f64 x 4)))) (*.f64 (fma.f64 x -4 (*.f64 x 4)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 27 (pow.f64 x 6)) (*.f64 64 (pow.f64 x 3))) (/.f64 1 (fma.f64 (*.f64 x 4) (*.f64 x (fma.f64 3 x 4)) (*.f64 9 (pow.f64 x 4)))) (+.f64 (fma.f64 x -4 (*.f64 x 4)) (fma.f64 x -4 (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 1 (pow.f64 (*.f64 x (fma.f64 3 x -4)) 3)) (/.f64 1 (+.f64 (pow.f64 (*.f64 x (fma.f64 3 x -4)) 2) (-.f64 1 (*.f64 x (fma.f64 3 x -4))))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 (*.f64 x x) 16)) (/.f64 1 (*.f64 x (fma.f64 3 x 4))) (fma.f64 x -4 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 (*.f64 x x) 16)) (/.f64 1 (*.f64 x (fma.f64 3 x 4))) (fma.f64 (*.f64 x -4) 1 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 (*.f64 x x) 16)) (/.f64 1 (*.f64 x (fma.f64 3 x 4))) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 x 4))) (pow.f64 (cbrt.f64 (*.f64 x 4)) 2) (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 (*.f64 x x) 16)) (/.f64 1 (*.f64 x (fma.f64 3 x 4))) (*.f64 (fma.f64 x -4 (*.f64 x 4)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 (*.f64 x x) 16)) (/.f64 1 (*.f64 x (fma.f64 3 x 4))) (+.f64 (fma.f64 x -4 (*.f64 x 4)) (fma.f64 x -4 (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (pow.f64 (*.f64 x (fma.f64 3 x -4)) 2) -1) (/.f64 1 (fma.f64 x (fma.f64 3 x -4) -1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 x) 4 (*.f64 3 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 x) x (*.f64 x -4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 x) x (*.f64 (*.f64 x -4) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 x) x (fma.f64 x -4 (fma.f64 x -4 (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 x) x (neg.f64 (-.f64 (*.f64 x 4) (fma.f64 x -4 (*.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 x -4 (*.f64 x 4))) 2) (cbrt.f64 (fma.f64 x -4 (*.f64 x 4))) (*.f64 x (fma.f64 3 x -4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x -4)) 2) (cbrt.f64 (*.f64 x -4)) (*.f64 3 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 x -4 (*.f64 x 4))) (sqrt.f64 (fma.f64 x -4 (*.f64 x 4))) (*.f64 x (fma.f64 3 x -4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x -4)) (sqrt.f64 (*.f64 x -4)) (*.f64 3 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (*.f64 2 (sqrt.f64 x))) (*.f64 2 (sqrt.f64 x)) (*.f64 3 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1 (*.f64 x 4) (*.f64 3 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 x (sqrt.f64 3) (*.f64 2 (sqrt.f64 x))) (-.f64 (*.f64 x (sqrt.f64 3)) (*.f64 2 (sqrt.f64 x))) (fma.f64 x -4 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 x (sqrt.f64 3) (*.f64 2 (sqrt.f64 x))) (-.f64 (*.f64 x (sqrt.f64 3)) (*.f64 2 (sqrt.f64 x))) (fma.f64 (*.f64 x -4) 1 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 x (sqrt.f64 3) (*.f64 2 (sqrt.f64 x))) (-.f64 (*.f64 x (sqrt.f64 3)) (*.f64 2 (sqrt.f64 x))) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 x 4))) (pow.f64 (cbrt.f64 (*.f64 x 4)) 2) (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 x (sqrt.f64 3) (*.f64 2 (sqrt.f64 x))) (-.f64 (*.f64 x (sqrt.f64 3)) (*.f64 2 (sqrt.f64 x))) (*.f64 (fma.f64 x -4 (*.f64 x 4)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 x (sqrt.f64 3) (*.f64 2 (sqrt.f64 x))) (-.f64 (*.f64 x (sqrt.f64 3)) (*.f64 2 (sqrt.f64 x))) (+.f64 (fma.f64 x -4 (*.f64 x 4)) (fma.f64 x -4 (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (pow.f64 (cbrt.f64 (*.f64 x 4)) 2)) (cbrt.f64 (*.f64 x 4)) (*.f64 3 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 (*.f64 (cbrt.f64 x) x)) (pow.f64 (cbrt.f64 x) 2) (*.f64 x -4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 (*.f64 (cbrt.f64 x) x)) (pow.f64 (cbrt.f64 x) 2) (*.f64 (*.f64 x -4) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 (*.f64 (cbrt.f64 x) x)) (pow.f64 (cbrt.f64 x) 2) (fma.f64 x -4 (fma.f64 x -4 (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 (*.f64 (cbrt.f64 x) x)) (pow.f64 (cbrt.f64 x) 2) (neg.f64 (-.f64 (*.f64 x 4) (fma.f64 x -4 (*.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 3 x) 1) x (*.f64 x -4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 3 x) 1) x (*.f64 (*.f64 x -4) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 3 x) 1) x (fma.f64 x -4 (fma.f64 x -4 (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 3 x) 1) x (neg.f64 (-.f64 (*.f64 x 4) (fma.f64 x -4 (*.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 3 x) (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x) (*.f64 x -4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 3 x) (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x) (*.f64 (*.f64 x -4) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 3 x) (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x) (fma.f64 x -4 (fma.f64 x -4 (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 3 x) (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x) (neg.f64 (-.f64 (*.f64 x 4) (fma.f64 x -4 (*.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 3 x) (sqrt.f64 x)) (sqrt.f64 x) (*.f64 x -4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 3 x) (sqrt.f64 x)) (sqrt.f64 x) (*.f64 (*.f64 x -4) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 3 x) (sqrt.f64 x)) (sqrt.f64 x) (fma.f64 x -4 (fma.f64 x -4 (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 3 x) (sqrt.f64 x)) (sqrt.f64 x) (neg.f64 (-.f64 (*.f64 x 4) (fma.f64 x -4 (*.f64 x 4)))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 3 (*.f64 x x)) (fma.f64 x 4 -1))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 x (fma.f64 3 x -4) 1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 3 (*.f64 x x))) (*.f64 x 4))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (*.f64 x (fma.f64 3 x -4)) 2) (fma.f64 x (fma.f64 3 x -4) -1)) (/.f64 1 (fma.f64 x (fma.f64 3 x -4) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 x (fma.f64 3 x -4) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 x (fma.f64 3 x -4) 1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 x (fma.f64 3 x -4) 1)) (pow.f64 (cbrt.f64 (fma.f64 x (fma.f64 3 x -4) 1)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 x (fma.f64 3 x -4) 1)) 2) (cbrt.f64 (fma.f64 x (fma.f64 3 x -4) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 x (fma.f64 3 x -4) 1)) (sqrt.f64 (fma.f64 x (fma.f64 3 x -4) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1 (pow.f64 (*.f64 x (fma.f64 3 x -4)) 3)) (/.f64 1 (+.f64 (pow.f64 (*.f64 x (fma.f64 3 x -4)) 2) (-.f64 1 (*.f64 x (fma.f64 3 x -4))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (*.f64 x (fma.f64 3 x -4)) 2) -1) (/.f64 1 (fma.f64 x (fma.f64 3 x -4) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 (*.f64 x (fma.f64 3 x -4)) 2) (-.f64 1 (*.f64 x (fma.f64 3 x -4)))) (+.f64 1 (pow.f64 (*.f64 x (fma.f64 3 x -4)) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 x (fma.f64 3 x -4) -1) (+.f64 (pow.f64 (*.f64 x (fma.f64 3 x -4)) 2) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 1 (pow.f64 (*.f64 x (fma.f64 3 x -4)) 3)) (+.f64 (pow.f64 (*.f64 x (fma.f64 3 x -4)) 2) (-.f64 1 (*.f64 x (fma.f64 3 x -4)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 1 (pow.f64 (*.f64 x (fma.f64 3 x -4)) 3)) (+.f64 1 (-.f64 (pow.f64 (*.f64 x (fma.f64 3 x -4)) 2) (*.f64 x (fma.f64 3 x -4)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 x (fma.f64 3 x -4)) 2) -1) (fma.f64 x (fma.f64 3 x -4) -1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 1 (pow.f64 (*.f64 x (fma.f64 3 x -4)) 3))) (neg.f64 (+.f64 (pow.f64 (*.f64 x (fma.f64 3 x -4)) 2) (-.f64 1 (*.f64 x (fma.f64 3 x -4))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 x (fma.f64 3 x -4)) 2) -1)) (neg.f64 (fma.f64 x (fma.f64 3 x -4) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 27 (pow.f64 x 6)) (pow.f64 (fma.f64 x 4 -1) 3)) (fma.f64 9 (pow.f64 x 4) (+.f64 (pow.f64 (fma.f64 x 4 -1) 2) (*.f64 (*.f64 3 (*.f64 x x)) (fma.f64 x 4 -1)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 1 (pow.f64 (*.f64 x (fma.f64 3 x -4)) 2)) (-.f64 1 (*.f64 x (fma.f64 3 x -4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 9 (pow.f64 x 4)) (pow.f64 (fma.f64 x 4 -1) 2)) (fma.f64 3 (*.f64 x x) (fma.f64 x 4 -1)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 x (fma.f64 3 x -4) 1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 x (fma.f64 3 x -4) 1) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 x (fma.f64 3 x -4) 1) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 x (fma.f64 3 x -4) 1)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 x (fma.f64 3 x -4) 1)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (+.f64 (pow.f64 (*.f64 x (fma.f64 3 x -4)) 2) (-.f64 1 (*.f64 x (fma.f64 3 x -4)))) (+.f64 1 (pow.f64 (*.f64 x (fma.f64 3 x -4)) 3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 x (fma.f64 3 x -4) -1) (+.f64 (pow.f64 (*.f64 x (fma.f64 3 x -4)) 2) -1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 x (fma.f64 3 x -4) 1) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 x (fma.f64 3 x -4) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 x (fma.f64 3 x -4) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (expm1.f64 (*.f64 3 (*.f64 x x)))) (exp.f64 (fma.f64 x 4 -1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (fma.f64 x (fma.f64 3 x -4) 1)) (exp.f64 (fma.f64 x -4 (*.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (fma.f64 x (fma.f64 3 x -4) 1))) (exp.f64 (fma.f64 x -4 (*.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 x (fma.f64 3 x -4) 1) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 x (fma.f64 3 x -4) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 x (fma.f64 3 x -4) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log1p.f64 (*.f64 x (fma.f64 3 x -4))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log1p.f64 (*.f64 x (fma.f64 3 x -4))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 3 (*.f64 x x) (neg.f64 (fma.f64 x 4 -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 3 (*.f64 x x) (fma.f64 x -4 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (*.f64 3 x) (neg.f64 (fma.f64 x 4 -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (*.f64 3 x) (fma.f64 x -4 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (fma.f64 3 x -4) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (fma.f64 3 x -4) (+.f64 (fma.f64 x -4 (*.f64 x 4)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x x) 3 (neg.f64 (fma.f64 x 4 -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x x) 3 (fma.f64 x -4 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 (*.f64 x x)) 1 (neg.f64 (fma.f64 x 4 -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 (*.f64 x x)) 1 (fma.f64 x -4 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (fma.f64 3 x -4)) 1 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (fma.f64 3 x -4)) 1 (+.f64 (fma.f64 x -4 (*.f64 x 4)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 3 (*.f64 x x)) (neg.f64 (fma.f64 x 4 -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 3 (*.f64 x x)) (fma.f64 x -4 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x (fma.f64 3 x -4)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x (fma.f64 3 x -4)) (+.f64 (fma.f64 x -4 (*.f64 x 4)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 x (fma.f64 3 x -4) 1) (fma.f64 x -4 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 x (fma.f64 3 x -4) 1) 1 (fma.f64 x -4 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x (fma.f64 3 x -4))) (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 3 x -4))) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 x (fma.f64 3 x -4))) (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 3 x -4))) 2) (+.f64 (fma.f64 x -4 (*.f64 x 4)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 3 x -4))) 2) (cbrt.f64 (*.f64 x (fma.f64 3 x -4))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 3 x -4))) 2) (cbrt.f64 (*.f64 x (fma.f64 3 x -4))) (+.f64 (fma.f64 x -4 (*.f64 x 4)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 3 x -4))) 2) (*.f64 (cbrt.f64 (*.f64 x (fma.f64 3 x -4))) 1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 3 x -4))) 2) (*.f64 (cbrt.f64 (*.f64 x (fma.f64 3 x -4))) 1) (+.f64 (fma.f64 x -4 (*.f64 x 4)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 3 (*.f64 x x))) (cbrt.f64 (*.f64 9 (pow.f64 x 4))) (neg.f64 (fma.f64 x 4 -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 3 (*.f64 x x))) (cbrt.f64 (*.f64 9 (pow.f64 x 4))) (fma.f64 x -4 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 9 (pow.f64 x 4))) (cbrt.f64 (*.f64 3 (*.f64 x x))) (neg.f64 (fma.f64 x 4 -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 9 (pow.f64 x 4))) (cbrt.f64 (*.f64 3 (*.f64 x x))) (fma.f64 x -4 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (fma.f64 x (fma.f64 3 x -4) 1)) (pow.f64 (cbrt.f64 (fma.f64 x (fma.f64 3 x -4) 1)) 2) (fma.f64 x -4 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 x (fma.f64 3 x -4) 1)) 2) (cbrt.f64 (fma.f64 x (fma.f64 3 x -4) 1)) (fma.f64 x -4 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 x) x) (*.f64 (pow.f64 (cbrt.f64 x) 2) 3) (neg.f64 (fma.f64 x 4 -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 x) x) (*.f64 (pow.f64 (cbrt.f64 x) 2) 3) (fma.f64 x -4 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x (fma.f64 3 x -4))) (sqrt.f64 (*.f64 x (fma.f64 3 x -4))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x (fma.f64 3 x -4))) (sqrt.f64 (*.f64 x (fma.f64 3 x -4))) (+.f64 (fma.f64 x -4 (*.f64 x 4)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x (fma.f64 3 x -4))) (*.f64 (sqrt.f64 (*.f64 x (fma.f64 3 x -4))) 1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x (fma.f64 3 x -4))) (*.f64 (sqrt.f64 (*.f64 x (fma.f64 3 x -4))) 1) (+.f64 (fma.f64 x -4 (*.f64 x 4)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (sqrt.f64 3)) (*.f64 x (sqrt.f64 3)) (neg.f64 (fma.f64 x 4 -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (sqrt.f64 3)) (*.f64 x (sqrt.f64 3)) (fma.f64 x -4 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 x (fma.f64 3 x -4) 1)) (sqrt.f64 (fma.f64 x (fma.f64 3 x -4) 1)) (fma.f64 x -4 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 27 (pow.f64 x 6)) (*.f64 64 (pow.f64 x 3))) (/.f64 1 (fma.f64 (*.f64 x 4) (*.f64 x (fma.f64 3 x 4)) (*.f64 9 (pow.f64 x 4)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 27 (pow.f64 x 6)) (*.f64 64 (pow.f64 x 3))) (/.f64 1 (fma.f64 (*.f64 x 4) (*.f64 x (fma.f64 3 x 4)) (*.f64 9 (pow.f64 x 4)))) (+.f64 (fma.f64 x -4 (*.f64 x 4)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 1 (pow.f64 (*.f64 x (fma.f64 3 x -4)) 3)) (/.f64 1 (+.f64 (pow.f64 (*.f64 x (fma.f64 3 x -4)) 2) (-.f64 1 (*.f64 x (fma.f64 3 x -4))))) (fma.f64 x -4 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 (*.f64 x x) 16)) (/.f64 1 (*.f64 x (fma.f64 3 x 4))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 9 (pow.f64 x 4)) (*.f64 (*.f64 x x) 16)) (/.f64 1 (*.f64 x (fma.f64 3 x 4))) (+.f64 (fma.f64 x -4 (*.f64 x 4)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (pow.f64 (*.f64 x (fma.f64 3 x -4)) 2) -1) (/.f64 1 (fma.f64 x (fma.f64 3 x -4) -1)) (fma.f64 x -4 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 x) x (neg.f64 (fma.f64 x 4 -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 x) x (fma.f64 x -4 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 x (sqrt.f64 3) (*.f64 2 (sqrt.f64 x))) (-.f64 (*.f64 x (sqrt.f64 3)) (*.f64 2 (sqrt.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 x (sqrt.f64 3) (*.f64 2 (sqrt.f64 x))) (-.f64 (*.f64 x (sqrt.f64 3)) (*.f64 2 (sqrt.f64 x))) (+.f64 (fma.f64 x -4 (*.f64 x 4)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 (*.f64 (cbrt.f64 x) x)) (pow.f64 (cbrt.f64 x) 2) (neg.f64 (fma.f64 x 4 -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 (*.f64 (cbrt.f64 x) x)) (pow.f64 (cbrt.f64 x) 2) (fma.f64 x -4 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 3 x) 1) x (neg.f64 (fma.f64 x 4 -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 3 x) 1) x (fma.f64 x -4 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 3 x) (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x) (neg.f64 (fma.f64 x 4 -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 3 x) (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x) (fma.f64 x -4 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 3 x) (sqrt.f64 x)) (sqrt.f64 x) (neg.f64 (fma.f64 x 4 -1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 3 x) (sqrt.f64 x)) (sqrt.f64 x) (fma.f64 x -4 1))))))

simplify218.0ms (2.2%)

Algorithm
egg-herbie
Rules
2020×unswap-sqr_binary64
1080×sqr-pow_binary64
636×fabs-mul_binary64
612×pow-sqr_binary64
610×cube-prod_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
020455
145429
281416
3160354
4359354
5949354
61462354
71930354
82040354
92172354
102341354
112584354
122897354
133267354
143724354
154311354
165019354
175877354
186301354
196617354
206925354
217007354
227043354
Stop Event
node limit
Counts
393 → 363
Calls
Call 1
Inputs
(*.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))
3
(+.f64 (*.f64 -12 x) 3)
(+.f64 (*.f64 -12 x) (+.f64 3 (*.f64 9 (pow.f64 x 2))))
(+.f64 (*.f64 -12 x) (+.f64 3 (*.f64 9 (pow.f64 x 2))))
(*.f64 9 (pow.f64 x 2))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(+.f64 (*.f64 -12 x) (+.f64 3 (*.f64 9 (pow.f64 x 2))))
(+.f64 (*.f64 -12 x) (+.f64 3 (*.f64 9 (pow.f64 x 2))))
(*.f64 9 (pow.f64 x 2))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(+.f64 (*.f64 -12 x) (+.f64 3 (*.f64 9 (pow.f64 x 2))))
(+.f64 (*.f64 -12 x) (+.f64 3 (*.f64 9 (pow.f64 x 2))))
(*.f64 -4 x)
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(*.f64 3 (pow.f64 x 2))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(*.f64 3 (pow.f64 x 2))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
1
(+.f64 1 (*.f64 -4 x))
(+.f64 (*.f64 3 (pow.f64 x 2)) (+.f64 1 (*.f64 -4 x)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (+.f64 1 (*.f64 -4 x)))
(*.f64 3 (pow.f64 x 2))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(+.f64 (*.f64 3 (pow.f64 x 2)) (+.f64 1 (*.f64 -4 x)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (+.f64 1 (*.f64 -4 x)))
(*.f64 3 (pow.f64 x 2))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(+.f64 (*.f64 3 (pow.f64 x 2)) (+.f64 1 (*.f64 -4 x)))
(+.f64 (*.f64 3 (pow.f64 x 2)) (+.f64 1 (*.f64 -4 x)))
Outputs
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (*.f64 x x))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (*.f64 x x))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (*.f64 x x))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (*.f64 x x))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (*.f64 x x))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (*.f64 x x))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (*.f64 x x))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (*.f64 x x))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (*.f64 x x))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (*.f64 x x))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (*.f64 x x))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (*.f64 x x))
3
(+.f64 (*.f64 -12 x) 3)
(fma.f64 -12 x 3)
(fma.f64 x -12 3)
(+.f64 (*.f64 -12 x) (+.f64 3 (*.f64 9 (pow.f64 x 2))))
(+.f64 (fma.f64 -12 x 3) (*.f64 (*.f64 x x) 9))
(fma.f64 x -12 (fma.f64 (*.f64 x x) 9 3))
(fma.f64 x (fma.f64 x 9 -12) 3)
(+.f64 (*.f64 -12 x) (+.f64 3 (*.f64 9 (pow.f64 x 2))))
(+.f64 (fma.f64 -12 x 3) (*.f64 (*.f64 x x) 9))
(fma.f64 x -12 (fma.f64 (*.f64 x x) 9 3))
(fma.f64 x (fma.f64 x 9 -12) 3)
(*.f64 9 (pow.f64 x 2))
(*.f64 (*.f64 x x) 9)
(*.f64 x (*.f64 x 9))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 (*.f64 x x) 9))
(fma.f64 x -12 (*.f64 x (*.f64 x 9)))
(*.f64 x (+.f64 (*.f64 x 9) -12))
(*.f64 x (fma.f64 x 9 -12))
(+.f64 (*.f64 -12 x) (+.f64 3 (*.f64 9 (pow.f64 x 2))))
(+.f64 (fma.f64 -12 x 3) (*.f64 (*.f64 x x) 9))
(fma.f64 x -12 (fma.f64 (*.f64 x x) 9 3))
(fma.f64 x (fma.f64 x 9 -12) 3)
(+.f64 (*.f64 -12 x) (+.f64 3 (*.f64 9 (pow.f64 x 2))))
(+.f64 (fma.f64 -12 x 3) (*.f64 (*.f64 x x) 9))
(fma.f64 x -12 (fma.f64 (*.f64 x x) 9 3))
(fma.f64 x (fma.f64 x 9 -12) 3)
(*.f64 9 (pow.f64 x 2))
(*.f64 (*.f64 x x) 9)
(*.f64 x (*.f64 x 9))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 (*.f64 x x) 9))
(fma.f64 x -12 (*.f64 x (*.f64 x 9)))
(*.f64 x (+.f64 (*.f64 x 9) -12))
(*.f64 x (fma.f64 x 9 -12))
(+.f64 (*.f64 -12 x) (+.f64 3 (*.f64 9 (pow.f64 x 2))))
(+.f64 (fma.f64 -12 x 3) (*.f64 (*.f64 x x) 9))
(fma.f64 x -12 (fma.f64 (*.f64 x x) 9 3))
(fma.f64 x (fma.f64 x 9 -12) 3)
(+.f64 (*.f64 -12 x) (+.f64 3 (*.f64 9 (pow.f64 x 2))))
(+.f64 (fma.f64 -12 x 3) (*.f64 (*.f64 x x) 9))
(fma.f64 x -12 (fma.f64 (*.f64 x x) 9 3))
(fma.f64 x (fma.f64 x 9 -12) 3)
(*.f64 -4 x)
(*.f64 x -4)
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(fma.f64 3 (*.f64 x x) (*.f64 x -4))
(*.f64 x (+.f64 (*.f64 3 x) -4))
(*.f64 x (fma.f64 3 x -4))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(fma.f64 3 (*.f64 x x) (*.f64 x -4))
(*.f64 x (+.f64 (*.f64 3 x) -4))
(*.f64 x (fma.f64 3 x -4))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(fma.f64 3 (*.f64 x x) (*.f64 x -4))
(*.f64 x (+.f64 (*.f64 3 x) -4))
(*.f64 x (fma.f64 3 x -4))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (*.f64 x x))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(fma.f64 3 (*.f64 x x) (*.f64 x -4))
(*.f64 x (+.f64 (*.f64 3 x) -4))
(*.f64 x (fma.f64 3 x -4))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(fma.f64 3 (*.f64 x x) (*.f64 x -4))
(*.f64 x (+.f64 (*.f64 3 x) -4))
(*.f64 x (fma.f64 3 x -4))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(fma.f64 3 (*.f64 x x) (*.f64 x -4))
(*.f64 x (+.f64 (*.f64 3 x) -4))
(*.f64 x (fma.f64 3 x -4))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (*.f64 x x))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(fma.f64 3 (*.f64 x x) (*.f64 x -4))
(*.f64 x (+.f64 (*.f64 3 x) -4))
(*.f64 x (fma.f64 3 x -4))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(fma.f64 3 (*.f64 x x) (*.f64 x -4))
(*.f64 x (+.f64 (*.f64 3 x) -4))
(*.f64 x (fma.f64 3 x -4))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(fma.f64 3 (*.f64 x x) (*.f64 x -4))
(*.f64 x (+.f64 (*.f64 3 x) -4))
(*.f64 x (fma.f64 3 x -4))
1
(+.f64 1 (*.f64 -4 x))
(+.f64 (*.f64 x -4) 1)
(fma.f64 x -4 1)
(+.f64 (*.f64 3 (pow.f64 x 2)) (+.f64 1 (*.f64 -4 x)))
(fma.f64 3 (*.f64 x x) (+.f64 (*.f64 x -4) 1))
(fma.f64 3 (*.f64 x x) (fma.f64 x -4 1))
(fma.f64 x (fma.f64 3 x -4) 1)
(+.f64 (*.f64 3 (pow.f64 x 2)) (+.f64 1 (*.f64 -4 x)))
(fma.f64 3 (*.f64 x x) (+.f64 (*.f64 x -4) 1))
(fma.f64 3 (*.f64 x x) (fma.f64 x -4 1))
(fma.f64 x (fma.f64 3 x -4) 1)
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (*.f64 x x))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(fma.f64 3 (*.f64 x x) (*.f64 x -4))
(*.f64 x (+.f64 (*.f64 3 x) -4))
(*.f64 x (fma.f64 3 x -4))
(+.f64 (*.f64 3 (pow.f64 x 2)) (+.f64 1 (*.f64 -4 x)))
(fma.f64 3 (*.f64 x x) (+.f64 (*.f64 x -4) 1))
(fma.f64 3 (*.f64 x x) (fma.f64 x -4 1))
(fma.f64 x (fma.f64 3 x -4) 1)
(+.f64 (*.f64 3 (pow.f64 x 2)) (+.f64 1 (*.f64 -4 x)))
(fma.f64 3 (*.f64 x x) (+.f64 (*.f64 x -4) 1))
(fma.f64 3 (*.f64 x x) (fma.f64 x -4 1))
(fma.f64 x (fma.f64 3 x -4) 1)
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (*.f64 x x))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(fma.f64 3 (*.f64 x x) (*.f64 x -4))
(*.f64 x (+.f64 (*.f64 3 x) -4))
(*.f64 x (fma.f64 3 x -4))
(+.f64 (*.f64 3 (pow.f64 x 2)) (+.f64 1 (*.f64 -4 x)))
(fma.f64 3 (*.f64 x x) (+.f64 (*.f64 x -4) 1))
(fma.f64 3 (*.f64 x x) (fma.f64 x -4 1))
(fma.f64 x (fma.f64 3 x -4) 1)
(+.f64 (*.f64 3 (pow.f64 x 2)) (+.f64 1 (*.f64 -4 x)))
(fma.f64 3 (*.f64 x x) (+.f64 (*.f64 x -4) 1))
(fma.f64 3 (*.f64 x x) (fma.f64 x -4 1))
(fma.f64 x (fma.f64 3 x -4) 1)

localize13.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 11 to 7 computations (36.4% saved)

series3.0ms (0%)

Counts
1 → 12
Calls

3 calls:

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

rewrite70.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
445×pow1_binary64
429×add-sqr-sqrt_binary64
422×*-un-lft-identity_binary64
413×add-log-exp_binary64
413×log1p-expm1-u_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
057
11027
211417
Stop Event
node limit
Counts
1 → 14
Calls
Call 1
Inputs
(*.f64 x (*.f64 x 9))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (*.f64 x 9)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 9))) (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 9))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 9)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 9)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (*.f64 x 9)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 x (*.f64 x 9))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (*.f64 x 9)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x (*.f64 x 9)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 x (*.f64 x 9))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x 3) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 x (*.f64 x 9)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 x) (*.f64 x 9)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 x (*.f64 x 9)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x (*.f64 x 9))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 x (*.f64 x 9))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 2 (log.f64 (*.f64 x 3))))))))

simplify191.0ms (1.9%)

Algorithm
egg-herbie
Rules
1082×sqr-pow_binary64
617×cube-prod_binary64
554×fabs-mul_binary64
523×pow-sqr_binary64
441×associate-*l*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0684
11284
22384
34484
410584
533184
6125084
7212384
8228784
9247084
10267884
11297384
12336484
13384784
14441584
15509984
16593484
17633084
18661884
19689484
20696684
21700284
22794384
Stop Event
node limit
Counts
26 → 16
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))
Outputs
(*.f64 9 (pow.f64 x 2))
(*.f64 9 (*.f64 x x))
(*.f64 x (*.f64 9 x))
(*.f64 9 (pow.f64 x 2))
(*.f64 9 (*.f64 x x))
(*.f64 x (*.f64 9 x))
(*.f64 9 (pow.f64 x 2))
(*.f64 9 (*.f64 x x))
(*.f64 x (*.f64 9 x))
(*.f64 9 (pow.f64 x 2))
(*.f64 9 (*.f64 x x))
(*.f64 x (*.f64 9 x))
(*.f64 9 (pow.f64 x 2))
(*.f64 9 (*.f64 x x))
(*.f64 x (*.f64 9 x))
(*.f64 9 (pow.f64 x 2))
(*.f64 9 (*.f64 x x))
(*.f64 x (*.f64 9 x))
(*.f64 9 (pow.f64 x 2))
(*.f64 9 (*.f64 x x))
(*.f64 x (*.f64 9 x))
(*.f64 9 (pow.f64 x 2))
(*.f64 9 (*.f64 x x))
(*.f64 x (*.f64 9 x))
(*.f64 9 (pow.f64 x 2))
(*.f64 9 (*.f64 x x))
(*.f64 x (*.f64 9 x))
(*.f64 9 (pow.f64 x 2))
(*.f64 9 (*.f64 x x))
(*.f64 x (*.f64 9 x))
(*.f64 9 (pow.f64 x 2))
(*.f64 9 (*.f64 x x))
(*.f64 x (*.f64 9 x))
(*.f64 9 (pow.f64 x 2))
(*.f64 9 (*.f64 x x))
(*.f64 x (*.f64 9 x))

localize57.0ms (0.6%)

Local error

Found 1 expressions with local error:

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

Compiled 20 to 16 computations (20% saved)

series2.0ms (0%)

Counts
1 → 12
Calls

3 calls:

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

rewrite79.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
762×pow1_binary64
713×log1p-expm1-u_binary64
713×expm1-log1p-u_binary64
712×add-log-exp_binary64
701×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
088
11707
219877
Stop Event
node limit
Counts
1 → 22
Calls
Call 1
Inputs
(*.f64 3 (+.f64 (*.f64 x -4) 1))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 3 (*.f64 x -12))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x -12) 3)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 x -12) 1) 3)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (+.f64 3 (*.f64 x -12))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 x -12) 3) 27) (+.f64 (*.f64 (*.f64 x -12) (*.f64 x -12)) (-.f64 9 (*.f64 (*.f64 x -12) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (*.f64 x -12) (*.f64 x -12)) 9) (-.f64 (*.f64 x -12) 3))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 1 (*.f64 (pow.f64 x 3) -64)) 3) (+.f64 (*.f64 (*.f64 x x) 16) (-.f64 1 (*.f64 x -4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 (*.f64 x x) 16) -1) 3) (fma.f64 x -4 -1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 3 (+.f64 1 (*.f64 (pow.f64 x 3) -64))) (+.f64 (*.f64 (*.f64 x x) 16) (-.f64 1 (*.f64 x -4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 3 (+.f64 (*.f64 (*.f64 x x) 16) -1)) (fma.f64 x -4 -1))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 3 (*.f64 x -12)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 3 (*.f64 x -12)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (+.f64 3 (*.f64 x -12))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (+.f64 3 (*.f64 x -12))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (+.f64 3 (*.f64 x -12)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (+.f64 3 (*.f64 x -12))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (+.f64 3 (*.f64 x -12)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (+.f64 3 (*.f64 x -12))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (+.f64 3 (*.f64 x -12))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (+.f64 3 (*.f64 x -12))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 3 (*.f64 x -4) 3)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x -4) 3 3)))))

simplify16.0ms (0.2%)

Algorithm
egg-herbie
Rules
fma-def_binary64
+-commutative_binary64
*-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0754
1954
21054
Stop Event
saturated
Counts
34 → 27
Calls
Call 1
Inputs
3
(+.f64 (*.f64 -12 x) 3)
(+.f64 (*.f64 -12 x) 3)
(+.f64 (*.f64 -12 x) 3)
(*.f64 -12 x)
(+.f64 3 (*.f64 -12 x))
(+.f64 3 (*.f64 -12 x))
(+.f64 3 (*.f64 -12 x))
(*.f64 -12 x)
(+.f64 3 (*.f64 -12 x))
(+.f64 3 (*.f64 -12 x))
(+.f64 3 (*.f64 -12 x))
Outputs
3
(+.f64 (*.f64 -12 x) 3)
(fma.f64 -12 x 3)
(+.f64 (*.f64 -12 x) 3)
(fma.f64 -12 x 3)
(+.f64 (*.f64 -12 x) 3)
(fma.f64 -12 x 3)
(*.f64 -12 x)
(+.f64 3 (*.f64 -12 x))
(fma.f64 -12 x 3)
(+.f64 3 (*.f64 -12 x))
(fma.f64 -12 x 3)
(+.f64 3 (*.f64 -12 x))
(fma.f64 -12 x 3)
(*.f64 -12 x)
(+.f64 3 (*.f64 -12 x))
(fma.f64 -12 x 3)
(+.f64 3 (*.f64 -12 x))
(fma.f64 -12 x 3)
(+.f64 3 (*.f64 -12 x))
(fma.f64 -12 x 3)

localize13.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 14 to 10 computations (28.6% saved)

series3.0ms (0%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
1.0ms
x
@-inf
(*.f64 x (fma.f64 x 9 -12))
1.0ms
x
@0
(*.f64 x (fma.f64 x 9 -12))
1.0ms
x
@inf
(*.f64 x (fma.f64 x 9 -12))

rewrite145.0ms (1.5%)

Algorithm
batch-egg-rewrite
Rules
538×pow1_binary64
526×add-sqr-sqrt_binary64
504×add-log-exp_binary64
504×log1p-expm1-u_binary64
504×expm1-log1p-u_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
068
11238
213388
Stop Event
node limit
Counts
1 → 13
Calls
Call 1
Inputs
(*.f64 x (fma.f64 x 9 -12))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 x 9) x) (*.f64 -12 x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 x 9)) (*.f64 x -12))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 x (fma.f64 x 9 -12))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (fma.f64 x 9 -12)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x (fma.f64 x 9 -12)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 x (fma.f64 x 9 -12))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 x (fma.f64 x 9 -12))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 x (fma.f64 x 9 -12)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 x) (fma.f64 x 9 -12)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 x (fma.f64 x 9 -12)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x (fma.f64 x 9 -12))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 x (fma.f64 x 9 -12))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 x (fma.f64 x 9 -12))))))))

simplify209.0ms (2.1%)

Algorithm
egg-herbie
Rules
778×sqr-pow_binary64
565×cube-prod_binary64
561×fabs-mul_binary64
529×associate-*l*_binary64
434×unswap-sqr_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
09117
118117
232108
36890
416890
548090
6170290
7295590
8315990
9337190
10359190
11390490
12430690
13481990
14538790
15607190
16690890
17730490
18759490
19786890
20794490
21798090
Stop Event
node limit
Counts
25 → 18
Calls
Call 1
Inputs
(*.f64 -12 x)
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(*.f64 9 (pow.f64 x 2))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(*.f64 9 (pow.f64 x 2))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
Outputs
(*.f64 -12 x)
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 9 (*.f64 x x) (*.f64 -12 x))
(*.f64 x (+.f64 -12 (*.f64 x 9)))
(*.f64 x (fma.f64 x 9 -12))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 9 (*.f64 x x) (*.f64 -12 x))
(*.f64 x (+.f64 -12 (*.f64 x 9)))
(*.f64 x (fma.f64 x 9 -12))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 9 (*.f64 x x) (*.f64 -12 x))
(*.f64 x (+.f64 -12 (*.f64 x 9)))
(*.f64 x (fma.f64 x 9 -12))
(*.f64 9 (pow.f64 x 2))
(*.f64 9 (*.f64 x x))
(*.f64 x (*.f64 x 9))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 9 (*.f64 x x) (*.f64 -12 x))
(*.f64 x (+.f64 -12 (*.f64 x 9)))
(*.f64 x (fma.f64 x 9 -12))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 9 (*.f64 x x) (*.f64 -12 x))
(*.f64 x (+.f64 -12 (*.f64 x 9)))
(*.f64 x (fma.f64 x 9 -12))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 9 (*.f64 x x) (*.f64 -12 x))
(*.f64 x (+.f64 -12 (*.f64 x 9)))
(*.f64 x (fma.f64 x 9 -12))
(*.f64 9 (pow.f64 x 2))
(*.f64 9 (*.f64 x x))
(*.f64 x (*.f64 x 9))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 9 (*.f64 x x) (*.f64 -12 x))
(*.f64 x (+.f64 -12 (*.f64 x 9)))
(*.f64 x (fma.f64 x 9 -12))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 9 (*.f64 x x) (*.f64 -12 x))
(*.f64 x (+.f64 -12 (*.f64 x 9)))
(*.f64 x (fma.f64 x 9 -12))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 9 (*.f64 x x) (*.f64 -12 x))
(*.f64 x (+.f64 -12 (*.f64 x 9)))
(*.f64 x (fma.f64 x 9 -12))

localize23.0ms (0.2%)

Local error

Found 3 expressions with local error:

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

Compiled 32 to 24 computations (25% saved)

series5.0ms (0.1%)

Counts
3 → 36
Calls

9 calls:

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

rewrite89.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
647×pow1_binary64
601×add-log-exp_binary64
601×log1p-expm1-u_binary64
601×expm1-log1p-u_binary64
591×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0724
114424
2164824
Stop Event
node limit
Counts
3 → 47
Calls
Call 1
Inputs
(*.f64 3 (*.f64 x (fma.f64 x 3 -4)))
(*.f64 x (fma.f64 x 3 -4))
(fma.f64 x 3 -4)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 3 x) (*.f64 3 x)) (*.f64 (*.f64 3 x) -4))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 3 x) (*.f64 3 x)) (*.f64 -4 (*.f64 3 x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 3 (*.f64 x (fma.f64 x 3 -4)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 3 (*.f64 x (fma.f64 x 3 -4))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 3 (*.f64 x (fma.f64 x 3 -4))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 3 (*.f64 x (fma.f64 x 3 -4)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 3 (*.f64 x (fma.f64 x 3 -4)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 3 (*.f64 x (fma.f64 x 3 -4))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (*.f64 3 x)) (fma.f64 x 3 -4)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 3 (*.f64 x (fma.f64 x 3 -4))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 3 (*.f64 x (fma.f64 x 3 -4)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 3 (*.f64 x (fma.f64 x 3 -4)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 3 (*.f64 x (fma.f64 x 3 -4)))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 3 x) x) (*.f64 -4 x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 3 x)) (*.f64 x -4))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 x (fma.f64 x 3 -4))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (fma.f64 x 3 -4)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x (fma.f64 x 3 -4)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 x (fma.f64 x 3 -4))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 x (fma.f64 x 3 -4))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 x (fma.f64 x 3 -4)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 x) (fma.f64 x 3 -4)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 x (fma.f64 x 3 -4)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x (fma.f64 x 3 -4))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 x (fma.f64 x 3 -4))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 x (fma.f64 x 3 -4))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 -4 (*.f64 3 x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 3 x) -4)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 3 x) 1) -4)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (fma.f64 x 3 -4)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 x 3 -4) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 x 3 -4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 x 3 -4)) (pow.f64 (cbrt.f64 (fma.f64 x 3 -4)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 x 3 -4)) 2) (cbrt.f64 (fma.f64 x 3 -4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 x 3 -4)) (sqrt.f64 (fma.f64 x 3 -4)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 3 x) 3) -64) (+.f64 (*.f64 (*.f64 3 x) (*.f64 3 x)) (-.f64 16 (*.f64 (*.f64 3 x) -4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (*.f64 3 x) (*.f64 3 x)) 16) (-.f64 (*.f64 3 x) -4))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 x 3 -4) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 x 3 -4) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 x 3 -4)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 x 3 -4)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 x 3 -4) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 x 3 -4)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 x 3 -4) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 x 3 -4)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 x 3 -4)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 x 3 -4)))))))

simplify213.0ms (2.2%)

Algorithm
egg-herbie
Rules
2020×unswap-sqr_binary64
1080×sqr-pow_binary64
641×fabs-mul_binary64
612×pow-sqr_binary64
610×cube-prod_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
017288
134288
255252
3107234
4269234
5814234
61256234
71720234
81828234
91962234
102134234
112375234
122688234
133058234
143515234
154104234
164818234
175680234
186104234
196418234
206726234
216804234
226840234
Stop Event
node limit
Counts
83 → 63
Calls
Call 1
Inputs
(*.f64 -12 x)
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(*.f64 9 (pow.f64 x 2))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(*.f64 9 (pow.f64 x 2))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(*.f64 -4 x)
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(*.f64 3 (pow.f64 x 2))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(*.f64 3 (pow.f64 x 2))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
-4
(-.f64 (*.f64 3 x) 4)
(-.f64 (*.f64 3 x) 4)
(-.f64 (*.f64 3 x) 4)
(*.f64 3 x)
(-.f64 (*.f64 3 x) 4)
(-.f64 (*.f64 3 x) 4)
(-.f64 (*.f64 3 x) 4)
(*.f64 3 x)
(-.f64 (*.f64 3 x) 4)
(-.f64 (*.f64 3 x) 4)
(-.f64 (*.f64 3 x) 4)
Outputs
(*.f64 -12 x)
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 9 (*.f64 x x) (*.f64 -12 x))
(*.f64 x (+.f64 -12 (*.f64 x 9)))
(*.f64 x (fma.f64 x 9 -12))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 9 (*.f64 x x) (*.f64 -12 x))
(*.f64 x (+.f64 -12 (*.f64 x 9)))
(*.f64 x (fma.f64 x 9 -12))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 9 (*.f64 x x) (*.f64 -12 x))
(*.f64 x (+.f64 -12 (*.f64 x 9)))
(*.f64 x (fma.f64 x 9 -12))
(*.f64 9 (pow.f64 x 2))
(*.f64 9 (*.f64 x x))
(*.f64 x (*.f64 x 9))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 9 (*.f64 x x) (*.f64 -12 x))
(*.f64 x (+.f64 -12 (*.f64 x 9)))
(*.f64 x (fma.f64 x 9 -12))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 9 (*.f64 x x) (*.f64 -12 x))
(*.f64 x (+.f64 -12 (*.f64 x 9)))
(*.f64 x (fma.f64 x 9 -12))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 9 (*.f64 x x) (*.f64 -12 x))
(*.f64 x (+.f64 -12 (*.f64 x 9)))
(*.f64 x (fma.f64 x 9 -12))
(*.f64 9 (pow.f64 x 2))
(*.f64 9 (*.f64 x x))
(*.f64 x (*.f64 x 9))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 9 (*.f64 x x) (*.f64 -12 x))
(*.f64 x (+.f64 -12 (*.f64 x 9)))
(*.f64 x (fma.f64 x 9 -12))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 9 (*.f64 x x) (*.f64 -12 x))
(*.f64 x (+.f64 -12 (*.f64 x 9)))
(*.f64 x (fma.f64 x 9 -12))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 9 (*.f64 x x) (*.f64 -12 x))
(*.f64 x (+.f64 -12 (*.f64 x 9)))
(*.f64 x (fma.f64 x 9 -12))
(*.f64 -4 x)
(*.f64 x -4)
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(fma.f64 3 (*.f64 x x) (*.f64 x -4))
(fma.f64 x -4 (*.f64 x (*.f64 x 3)))
(*.f64 x (fma.f64 x 3 -4))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(fma.f64 3 (*.f64 x x) (*.f64 x -4))
(fma.f64 x -4 (*.f64 x (*.f64 x 3)))
(*.f64 x (fma.f64 x 3 -4))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(fma.f64 3 (*.f64 x x) (*.f64 x -4))
(fma.f64 x -4 (*.f64 x (*.f64 x 3)))
(*.f64 x (fma.f64 x 3 -4))
(*.f64 3 (pow.f64 x 2))
(*.f64 (*.f64 x x) 3)
(*.f64 x (*.f64 x 3))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(fma.f64 3 (*.f64 x x) (*.f64 x -4))
(fma.f64 x -4 (*.f64 x (*.f64 x 3)))
(*.f64 x (fma.f64 x 3 -4))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(fma.f64 3 (*.f64 x x) (*.f64 x -4))
(fma.f64 x -4 (*.f64 x (*.f64 x 3)))
(*.f64 x (fma.f64 x 3 -4))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(fma.f64 3 (*.f64 x x) (*.f64 x -4))
(fma.f64 x -4 (*.f64 x (*.f64 x 3)))
(*.f64 x (fma.f64 x 3 -4))
(*.f64 3 (pow.f64 x 2))
(*.f64 (*.f64 x x) 3)
(*.f64 x (*.f64 x 3))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(fma.f64 3 (*.f64 x x) (*.f64 x -4))
(fma.f64 x -4 (*.f64 x (*.f64 x 3)))
(*.f64 x (fma.f64 x 3 -4))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(fma.f64 3 (*.f64 x x) (*.f64 x -4))
(fma.f64 x -4 (*.f64 x (*.f64 x 3)))
(*.f64 x (fma.f64 x 3 -4))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(fma.f64 3 (*.f64 x x) (*.f64 x -4))
(fma.f64 x -4 (*.f64 x (*.f64 x 3)))
(*.f64 x (fma.f64 x 3 -4))
-4
(-.f64 (*.f64 3 x) 4)
(fma.f64 3 x -4)
(fma.f64 x 3 -4)
(-.f64 (*.f64 3 x) 4)
(fma.f64 3 x -4)
(fma.f64 x 3 -4)
(-.f64 (*.f64 3 x) 4)
(fma.f64 3 x -4)
(fma.f64 x 3 -4)
(*.f64 3 x)
(*.f64 x 3)
(-.f64 (*.f64 3 x) 4)
(fma.f64 3 x -4)
(fma.f64 x 3 -4)
(-.f64 (*.f64 3 x) 4)
(fma.f64 3 x -4)
(fma.f64 x 3 -4)
(-.f64 (*.f64 3 x) 4)
(fma.f64 3 x -4)
(fma.f64 x 3 -4)
(*.f64 3 x)
(*.f64 x 3)
(-.f64 (*.f64 3 x) 4)
(fma.f64 3 x -4)
(fma.f64 x 3 -4)
(-.f64 (*.f64 3 x) 4)
(fma.f64 3 x -4)
(fma.f64 x 3 -4)
(-.f64 (*.f64 3 x) 4)
(fma.f64 3 x -4)
(fma.f64 x 3 -4)

eval352.0ms (3.6%)

Compiler

Compiled 8784 to 6809 computations (22.5% saved)

prune217.0ms (2.2%)

Pruning

11 alts after pruning (9 fresh and 2 done)

PrunedKeptTotal
New5049513
Fresh606
Picked101
Done325
Total51411525
Error
0b
Counts
525 → 11
Alt Table
Click to see full alt table
StatusErrorProgram
1.8b
(+.f64 (*.f64 3 (*.f64 x (*.f64 x 3))) 3)
61.7b
(*.f64 x -12)
22.0b
(+.f64 (*.f64 x -12) 3)
0.1b
(+.f64 (*.f64 3 (*.f64 x (-.f64 (*.f64 3 x) 4))) 3)
22.0b
(*.f64 3 (+.f64 (*.f64 x -4) 1))
40.4b
(+.f64 (*.f64 (*.f64 x 9) x) (*.f64 -12 x))
40.5b
(*.f64 x (*.f64 x 9))
0.3b
(*.f64 3 (+.f64 (-.f64 (pow.f64 (*.f64 x (sqrt.f64 3)) 2) (*.f64 x 4)) 1))
0.2b
(+.f64 (+.f64 (*.f64 (*.f64 3 x) (*.f64 3 x)) (*.f64 (*.f64 3 x) -4)) 3)
40.4b
(*.f64 x (-.f64 (*.f64 9 x) 12))
22.2b
3
Compiler

Compiled 178 to 143 computations (19.7% saved)

localize28.0ms (0.3%)

Local error

Found 3 expressions with local error:

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

Compiled 39 to 30 computations (23.1% saved)

series7.0ms (0.1%)

Counts
3 → 27
Calls

9 calls:

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

rewrite136.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
846×pow1_binary64
791×add-log-exp_binary64
791×log1p-expm1-u_binary64
791×expm1-log1p-u_binary64
778×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0824
117624
2213324
Stop Event
node limit
Counts
3 → 67
Calls
Call 1
Inputs
(*.f64 3 (*.f64 x (-.f64 (*.f64 3 x) 4)))
(*.f64 x (-.f64 (*.f64 3 x) 4))
(-.f64 (*.f64 3 x) 4)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 9 (*.f64 x x)) (*.f64 (*.f64 3 x) -4))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 9 (*.f64 x x)) (*.f64 -4 (*.f64 3 x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 3 (*.f64 x (fma.f64 3 x -4)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 3 x) (+.f64 (*.f64 27 (pow.f64 x 3)) -64)) (+.f64 (*.f64 9 (*.f64 x x)) (+.f64 16 (*.f64 x 12))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 3 x) (+.f64 (*.f64 9 (*.f64 x x)) -16)) (fma.f64 3 x 4))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 3 (*.f64 x (fma.f64 3 x -4))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 3 (*.f64 x (fma.f64 3 x -4))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 3 (*.f64 x (fma.f64 3 x -4)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 3 (*.f64 x (fma.f64 3 x -4)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 9 (pow.f64 (*.f64 x (fma.f64 3 x -4)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (pow.f64 (exp.f64 3) x) (fma.f64 3 x -4)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 3 (*.f64 x (fma.f64 3 x -4))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (*.f64 27 (pow.f64 x 3)) (pow.f64 (fma.f64 3 x -4) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 3 (*.f64 x (fma.f64 3 x -4)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 3 (*.f64 x (fma.f64 3 x -4)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 3 (*.f64 x (fma.f64 3 x -4)))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 3 x) x) (*.f64 -4 x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 3 x)) (*.f64 x -4))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 x (fma.f64 3 x -4))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 27 (pow.f64 x 3)) -64) x) (+.f64 (*.f64 9 (*.f64 x x)) (+.f64 16 (*.f64 x 12))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 9 (*.f64 x x)) -16) x) (fma.f64 3 x 4))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 (*.f64 27 (pow.f64 x 3)) -64)) (+.f64 (*.f64 9 (*.f64 x x)) (+.f64 16 (*.f64 x 12))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 (*.f64 9 (*.f64 x x)) -16)) (fma.f64 3 x 4))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (fma.f64 3 x -4)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x (fma.f64 3 x -4)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 x (fma.f64 3 x -4))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 x (fma.f64 3 x -4))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 x (fma.f64 3 x -4)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (fma.f64 3 x -4)) x))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 x (fma.f64 3 x -4)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 x 3) (pow.f64 (fma.f64 3 x -4) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (fma.f64 3 x -4) 3) (pow.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x (fma.f64 3 x -4))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 x (fma.f64 3 x -4))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 x (fma.f64 3 x -4))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 3 x) -4)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -4 (*.f64 3 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 3 x -4) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 3 x -4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 3 x -4)) (pow.f64 (cbrt.f64 (fma.f64 3 x -4)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 3 x -4)) 2) (cbrt.f64 (fma.f64 3 x -4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 3 x -4)) (sqrt.f64 (fma.f64 3 x -4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 27 (pow.f64 x 3)) -64) (/.f64 1 (+.f64 (*.f64 9 (*.f64 x x)) (+.f64 16 (*.f64 x 12)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 9 (*.f64 x x)) -16) (/.f64 1 (fma.f64 3 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (*.f64 9 (*.f64 x x)) (+.f64 16 (*.f64 x 12))) (+.f64 (*.f64 27 (pow.f64 x 3)) -64)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 3 x 4) (+.f64 (*.f64 9 (*.f64 x x)) -16)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 27 (pow.f64 x 3)) -64) (+.f64 (*.f64 9 (*.f64 x x)) (+.f64 16 (*.f64 x 12))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 27 (pow.f64 x 3)) -64) (+.f64 (*.f64 9 (*.f64 x x)) (-.f64 16 (*.f64 (*.f64 3 x) -4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 9 (*.f64 x x)) -16) (fma.f64 3 x 4))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 9 (*.f64 x x)) -16) (-.f64 (*.f64 3 x) -4))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (*.f64 27 (pow.f64 x 3)) -64)) (neg.f64 (+.f64 (*.f64 9 (*.f64 x x)) (+.f64 16 (*.f64 x 12)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (*.f64 9 (*.f64 x x)) -16)) (neg.f64 (fma.f64 3 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 3 x -4) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 3 x -4) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 3 x -4)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 3 x -4)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 3 x -4) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 3 x -4)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 3 x -4) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 3 x -4)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 3 x -4)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 3 x -4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 3 x -4)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x 3 -4)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 3 x) -4)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 3 x)) 2) (cbrt.f64 (*.f64 3 x)) -4)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 3 x)) (sqrt.f64 (*.f64 3 x)) -4)))))

simplify251.0ms (2.5%)

Algorithm
egg-herbie
Rules
2020×unswap-sqr_binary64
1080×sqr-pow_binary64
634×fabs-mul_binary64
612×pow-sqr_binary64
610×cube-prod_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
015243
129243
248225
3103189
4276189
5820189
61257189
71721189
81829189
91961189
102133189
112374189
122687189
133059189
143517189
154100189
164808189
175668189
186092189
196408189
206714189
216792189
226828189
Stop Event
node limit
Counts
94 → 81
Calls
Call 1
Inputs
(*.f64 -12 x)
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(*.f64 9 (pow.f64 x 2))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(*.f64 9 (pow.f64 x 2))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(*.f64 -4 x)
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(*.f64 3 (pow.f64 x 2))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(*.f64 3 (pow.f64 x 2))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
-4
(*.f64 3 x)
(*.f64 3 x)
Outputs
(*.f64 -12 x)
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 9 (*.f64 x x) (*.f64 -12 x))
(*.f64 x (+.f64 (*.f64 x 9) -12))
(*.f64 x (fma.f64 x 9 -12))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 9 (*.f64 x x) (*.f64 -12 x))
(*.f64 x (+.f64 (*.f64 x 9) -12))
(*.f64 x (fma.f64 x 9 -12))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 9 (*.f64 x x) (*.f64 -12 x))
(*.f64 x (+.f64 (*.f64 x 9) -12))
(*.f64 x (fma.f64 x 9 -12))
(*.f64 9 (pow.f64 x 2))
(*.f64 9 (*.f64 x x))
(*.f64 x (*.f64 x 9))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 9 (*.f64 x x) (*.f64 -12 x))
(*.f64 x (+.f64 (*.f64 x 9) -12))
(*.f64 x (fma.f64 x 9 -12))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 9 (*.f64 x x) (*.f64 -12 x))
(*.f64 x (+.f64 (*.f64 x 9) -12))
(*.f64 x (fma.f64 x 9 -12))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 9 (*.f64 x x) (*.f64 -12 x))
(*.f64 x (+.f64 (*.f64 x 9) -12))
(*.f64 x (fma.f64 x 9 -12))
(*.f64 9 (pow.f64 x 2))
(*.f64 9 (*.f64 x x))
(*.f64 x (*.f64 x 9))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 9 (*.f64 x x) (*.f64 -12 x))
(*.f64 x (+.f64 (*.f64 x 9) -12))
(*.f64 x (fma.f64 x 9 -12))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 9 (*.f64 x x) (*.f64 -12 x))
(*.f64 x (+.f64 (*.f64 x 9) -12))
(*.f64 x (fma.f64 x 9 -12))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 9 (*.f64 x x) (*.f64 -12 x))
(*.f64 x (+.f64 (*.f64 x 9) -12))
(*.f64 x (fma.f64 x 9 -12))
(*.f64 -4 x)
(*.f64 x -4)
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(fma.f64 3 (*.f64 x x) (*.f64 x -4))
(fma.f64 x -4 (*.f64 x (*.f64 x 3)))
(*.f64 x (+.f64 (*.f64 x 3) -4))
(*.f64 x (fma.f64 x 3 -4))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(fma.f64 3 (*.f64 x x) (*.f64 x -4))
(fma.f64 x -4 (*.f64 x (*.f64 x 3)))
(*.f64 x (+.f64 (*.f64 x 3) -4))
(*.f64 x (fma.f64 x 3 -4))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(fma.f64 3 (*.f64 x x) (*.f64 x -4))
(fma.f64 x -4 (*.f64 x (*.f64 x 3)))
(*.f64 x (+.f64 (*.f64 x 3) -4))
(*.f64 x (fma.f64 x 3 -4))
(*.f64 3 (pow.f64 x 2))
(*.f64 (*.f64 x x) 3)
(*.f64 x (*.f64 x 3))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(fma.f64 3 (*.f64 x x) (*.f64 x -4))
(fma.f64 x -4 (*.f64 x (*.f64 x 3)))
(*.f64 x (+.f64 (*.f64 x 3) -4))
(*.f64 x (fma.f64 x 3 -4))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(fma.f64 3 (*.f64 x x) (*.f64 x -4))
(fma.f64 x -4 (*.f64 x (*.f64 x 3)))
(*.f64 x (+.f64 (*.f64 x 3) -4))
(*.f64 x (fma.f64 x 3 -4))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(fma.f64 3 (*.f64 x x) (*.f64 x -4))
(fma.f64 x -4 (*.f64 x (*.f64 x 3)))
(*.f64 x (+.f64 (*.f64 x 3) -4))
(*.f64 x (fma.f64 x 3 -4))
(*.f64 3 (pow.f64 x 2))
(*.f64 (*.f64 x x) 3)
(*.f64 x (*.f64 x 3))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(fma.f64 3 (*.f64 x x) (*.f64 x -4))
(fma.f64 x -4 (*.f64 x (*.f64 x 3)))
(*.f64 x (+.f64 (*.f64 x 3) -4))
(*.f64 x (fma.f64 x 3 -4))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(fma.f64 3 (*.f64 x x) (*.f64 x -4))
(fma.f64 x -4 (*.f64 x (*.f64 x 3)))
(*.f64 x (+.f64 (*.f64 x 3) -4))
(*.f64 x (fma.f64 x 3 -4))
(+.f64 (*.f64 3 (pow.f64 x 2)) (*.f64 -4 x))
(fma.f64 3 (*.f64 x x) (*.f64 x -4))
(fma.f64 x -4 (*.f64 x (*.f64 x 3)))
(*.f64 x (+.f64 (*.f64 x 3) -4))
(*.f64 x (fma.f64 x 3 -4))
-4
(*.f64 3 x)
(*.f64 x 3)
(*.f64 3 x)
(*.f64 x 3)

localize3.0ms (0%)

Compiler

Compiled 6 to 4 computations (33.3% saved)

localize8.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 19 to 14 computations (26.3% saved)

series2.0ms (0%)

Counts
1 → 12
Calls

3 calls:

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

rewrite103.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
747×pow1_binary64
702×add-log-exp_binary64
702×log1p-expm1-u_binary64
702×expm1-log1p-u_binary64
691×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
078
11558
218538
Stop Event
node limit
Counts
1 → 19
Calls
Call 1
Inputs
(*.f64 x (-.f64 (*.f64 9 x) 12))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 x 9) x) (*.f64 -12 x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (*.f64 x 9)) (*.f64 x -12))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 x (fma.f64 x 9 -12))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 729 (pow.f64 x 3)) -1728) x) (+.f64 (*.f64 81 (*.f64 x x)) (+.f64 144 (*.f64 x 108))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 81 (*.f64 x x)) -144) x) (fma.f64 x 9 12))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 (*.f64 729 (pow.f64 x 3)) -1728)) (+.f64 (*.f64 81 (*.f64 x x)) (+.f64 144 (*.f64 x 108))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (+.f64 (*.f64 81 (*.f64 x x)) -144)) (fma.f64 x 9 12))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (fma.f64 x 9 -12)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x (fma.f64 x 9 -12)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 x (fma.f64 x 9 -12))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 x (fma.f64 x 9 -12))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 x (fma.f64 x 9 -12)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (fma.f64 x 9 -12)) x))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 x (fma.f64 x 9 -12)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 x 3) (pow.f64 (fma.f64 x 9 -12) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (fma.f64 x 9 -12) 3) (pow.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x (fma.f64 x 9 -12))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 x (fma.f64 x 9 -12))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 x (fma.f64 x 9 -12))))))))

simplify189.0ms (1.9%)

Algorithm
egg-herbie
Rules
778×sqr-pow_binary64
565×cube-prod_binary64
561×fabs-mul_binary64
529×associate-*l*_binary64
434×unswap-sqr_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
09117
118117
232108
36890
416890
548090
6170290
7295590
8315990
9337190
10359190
11390490
12430690
13481990
14538790
15607190
16690890
17730490
18759490
19786890
20794490
21798090
Stop Event
node limit
Counts
31 → 24
Calls
Call 1
Inputs
(*.f64 -12 x)
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(*.f64 9 (pow.f64 x 2))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(*.f64 9 (pow.f64 x 2))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
Outputs
(*.f64 -12 x)
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 9 (*.f64 x x) (*.f64 -12 x))
(*.f64 x (+.f64 -12 (*.f64 x 9)))
(*.f64 x (fma.f64 x 9 -12))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 9 (*.f64 x x) (*.f64 -12 x))
(*.f64 x (+.f64 -12 (*.f64 x 9)))
(*.f64 x (fma.f64 x 9 -12))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 9 (*.f64 x x) (*.f64 -12 x))
(*.f64 x (+.f64 -12 (*.f64 x 9)))
(*.f64 x (fma.f64 x 9 -12))
(*.f64 9 (pow.f64 x 2))
(*.f64 9 (*.f64 x x))
(*.f64 x (*.f64 x 9))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 9 (*.f64 x x) (*.f64 -12 x))
(*.f64 x (+.f64 -12 (*.f64 x 9)))
(*.f64 x (fma.f64 x 9 -12))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 9 (*.f64 x x) (*.f64 -12 x))
(*.f64 x (+.f64 -12 (*.f64 x 9)))
(*.f64 x (fma.f64 x 9 -12))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 9 (*.f64 x x) (*.f64 -12 x))
(*.f64 x (+.f64 -12 (*.f64 x 9)))
(*.f64 x (fma.f64 x 9 -12))
(*.f64 9 (pow.f64 x 2))
(*.f64 9 (*.f64 x x))
(*.f64 x (*.f64 x 9))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 9 (*.f64 x x) (*.f64 -12 x))
(*.f64 x (+.f64 -12 (*.f64 x 9)))
(*.f64 x (fma.f64 x 9 -12))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 9 (*.f64 x x) (*.f64 -12 x))
(*.f64 x (+.f64 -12 (*.f64 x 9)))
(*.f64 x (fma.f64 x 9 -12))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 9 (*.f64 x x) (*.f64 -12 x))
(*.f64 x (+.f64 -12 (*.f64 x 9)))
(*.f64 x (fma.f64 x 9 -12))

localize19.0ms (0.2%)

Local error

Found 2 expressions with local error:

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

Compiled 24 to 16 computations (33.3% saved)

series2.0ms (0%)

Counts
2 → 24
Calls

6 calls:

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

rewrite70.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
883×pow1_binary64
827×add-log-exp_binary64
827×log1p-expm1-u_binary64
827×expm1-log1p-u_binary64
812×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0817
117615
2225715
Stop Event
node limit
Counts
2 → 52
Calls
Call 1
Inputs
(*.f64 (*.f64 x 9) x)
(+.f64 (*.f64 (*.f64 x 9) x) (*.f64 -12 x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 x (*.f64 x 9))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (*.f64 x 9)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 x (*.f64 x 9))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 x (*.f64 x 9))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x (*.f64 x 9)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 x (*.f64 x 9)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 x) (*.f64 x 9)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 x (*.f64 x 9)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x (*.f64 x 9))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 x (*.f64 x 9))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 x (*.f64 x 9))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 x (fma.f64 x 9 -12))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (*.f64 x (*.f64 x 9)) 2) (*.f64 x (-.f64 (*.f64 x 9) -12))) (/.f64 (*.f64 (*.f64 x x) 144) (*.f64 x (-.f64 (*.f64 x 9) -12))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (fma.f64 x 9 -12))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (fma.f64 x 9 -12)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 x (fma.f64 x 9 -12)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 x (fma.f64 x 9 -12))) (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 x 9 -12))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 x (fma.f64 x 9 -12))) 2) (cbrt.f64 (*.f64 x (fma.f64 x 9 -12))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) (fma.f64 x 9 -12)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 x (fma.f64 x 9 -12))) (sqrt.f64 (*.f64 x (fma.f64 x 9 -12))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) (fma.f64 x 9 -12)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (*.f64 x (*.f64 x 9)) 3) (*.f64 (pow.f64 x 3) -1728)) (/.f64 1 (+.f64 (pow.f64 (*.f64 x (*.f64 x 9)) 2) (*.f64 (*.f64 x -12) (-.f64 (*.f64 x -12) (*.f64 x (*.f64 x 9)))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (*.f64 x (*.f64 x 9)) 2) (*.f64 (*.f64 x x) 144)) (/.f64 1 (*.f64 x (-.f64 (*.f64 x 9) -12))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 x 9 -12) x)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 (*.f64 x (*.f64 x 9)) 2) (*.f64 (*.f64 x -12) (-.f64 (*.f64 x -12) (*.f64 x (*.f64 x 9))))) (+.f64 (pow.f64 (*.f64 x (*.f64 x 9)) 3) (*.f64 (pow.f64 x 3) -1728))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (*.f64 x (-.f64 (*.f64 x 9) -12)) (-.f64 (pow.f64 (*.f64 x (*.f64 x 9)) 2) (*.f64 (*.f64 x x) 144))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 x (*.f64 x 9)) 3) (*.f64 (pow.f64 x 3) -1728)) (+.f64 (pow.f64 (*.f64 x (*.f64 x 9)) 2) (*.f64 (*.f64 x -12) (-.f64 (*.f64 x -12) (*.f64 x (*.f64 x 9))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 x (*.f64 x 9)) 3) (*.f64 (pow.f64 x 3) -1728)) (+.f64 (*.f64 (*.f64 x x) 144) (-.f64 (pow.f64 (*.f64 x (*.f64 x 9)) 2) (*.f64 x (*.f64 (*.f64 x 9) (*.f64 x -12))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 x (*.f64 x 9)) 2) (*.f64 (*.f64 x x) 144)) (*.f64 x (-.f64 (*.f64 x 9) -12)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 x (*.f64 x 9)) 3) (*.f64 (pow.f64 x 3) -1728))) (neg.f64 (+.f64 (pow.f64 (*.f64 x (*.f64 x 9)) 2) (*.f64 (*.f64 x -12) (-.f64 (*.f64 x -12) (*.f64 x (*.f64 x 9)))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 x (*.f64 x 9)) 2) (*.f64 (*.f64 x x) 144))) (neg.f64 (*.f64 x (-.f64 (*.f64 x 9) -12))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (*.f64 x x) 144) (pow.f64 (*.f64 x (*.f64 x 9)) 2)) (-.f64 (*.f64 x -12) (*.f64 x (*.f64 x 9))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (fma.f64 x 9 -12)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x (fma.f64 x 9 -12)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 x (fma.f64 x 9 -12))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 x (fma.f64 x 9 -12))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 x (fma.f64 x 9 -12)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 x) (fma.f64 x 9 -12)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 x (fma.f64 x 9 -12)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x (fma.f64 x 9 -12))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 x (fma.f64 x 9 -12))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 x (fma.f64 x 9 -12))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (*.f64 x 9) (*.f64 x -12))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x -12 (*.f64 x (*.f64 x 9)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x 9) x (*.f64 x -12))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -12 x (*.f64 x (*.f64 x 9)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x (*.f64 x 9)) (*.f64 x -12))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x -12) (*.f64 x (*.f64 x 9)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x (*.f64 x 9))) 2) (cbrt.f64 (*.f64 x (*.f64 x 9))) (*.f64 x -12))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x -12)) 2) (cbrt.f64 (*.f64 x -12)) (*.f64 x (*.f64 x 9)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x (*.f64 x 9))) (sqrt.f64 (*.f64 x (*.f64 x 9))) (*.f64 x -12))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x -12)) (sqrt.f64 (*.f64 x -12)) (*.f64 x (*.f64 x 9)))))))

simplify181.0ms (1.8%)

Algorithm
egg-herbie
Rules
778×sqr-pow_binary64
561×cube-prod_binary64
553×fabs-mul_binary64
542×associate-*l*_binary64
434×unswap-sqr_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
09201
118201
232192
369174
4168174
5495174
61761174
73001174
83205174
93417174
103637174
113945174
124347174
134856174
145424174
156112174
166945174
177335174
187621174
197901174
207975174
Stop Event
node limit
Counts
76 → 58
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 -12 x)
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(*.f64 9 (pow.f64 x 2))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(*.f64 9 (pow.f64 x 2))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
Outputs
(*.f64 9 (pow.f64 x 2))
(*.f64 9 (*.f64 x x))
(*.f64 9 (pow.f64 x 2))
(*.f64 9 (*.f64 x x))
(*.f64 9 (pow.f64 x 2))
(*.f64 9 (*.f64 x x))
(*.f64 9 (pow.f64 x 2))
(*.f64 9 (*.f64 x x))
(*.f64 9 (pow.f64 x 2))
(*.f64 9 (*.f64 x x))
(*.f64 9 (pow.f64 x 2))
(*.f64 9 (*.f64 x x))
(*.f64 9 (pow.f64 x 2))
(*.f64 9 (*.f64 x x))
(*.f64 9 (pow.f64 x 2))
(*.f64 9 (*.f64 x x))
(*.f64 9 (pow.f64 x 2))
(*.f64 9 (*.f64 x x))
(*.f64 9 (pow.f64 x 2))
(*.f64 9 (*.f64 x x))
(*.f64 9 (pow.f64 x 2))
(*.f64 9 (*.f64 x x))
(*.f64 9 (pow.f64 x 2))
(*.f64 9 (*.f64 x x))
(*.f64 -12 x)
(*.f64 x -12)
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 9 (*.f64 x x) (*.f64 x -12))
(*.f64 x (+.f64 (*.f64 9 x) -12))
(*.f64 x (fma.f64 9 x -12))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 9 (*.f64 x x) (*.f64 x -12))
(*.f64 x (+.f64 (*.f64 9 x) -12))
(*.f64 x (fma.f64 9 x -12))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 9 (*.f64 x x) (*.f64 x -12))
(*.f64 x (+.f64 (*.f64 9 x) -12))
(*.f64 x (fma.f64 9 x -12))
(*.f64 9 (pow.f64 x 2))
(*.f64 9 (*.f64 x x))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 9 (*.f64 x x) (*.f64 x -12))
(*.f64 x (+.f64 (*.f64 9 x) -12))
(*.f64 x (fma.f64 9 x -12))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 9 (*.f64 x x) (*.f64 x -12))
(*.f64 x (+.f64 (*.f64 9 x) -12))
(*.f64 x (fma.f64 9 x -12))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 9 (*.f64 x x) (*.f64 x -12))
(*.f64 x (+.f64 (*.f64 9 x) -12))
(*.f64 x (fma.f64 9 x -12))
(*.f64 9 (pow.f64 x 2))
(*.f64 9 (*.f64 x x))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 9 (*.f64 x x) (*.f64 x -12))
(*.f64 x (+.f64 (*.f64 9 x) -12))
(*.f64 x (fma.f64 9 x -12))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 9 (*.f64 x x) (*.f64 x -12))
(*.f64 x (+.f64 (*.f64 9 x) -12))
(*.f64 x (fma.f64 9 x -12))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 9 (*.f64 x x) (*.f64 x -12))
(*.f64 x (+.f64 (*.f64 9 x) -12))
(*.f64 x (fma.f64 9 x -12))

localize28.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(-.f64 (pow.f64 (*.f64 x (sqrt.f64 3)) 2) (*.f64 x 4))
0.1b
(*.f64 3 (+.f64 (-.f64 (pow.f64 (*.f64 x (sqrt.f64 3)) 2) (*.f64 x 4)) 1))
0.3b
(pow.f64 (*.f64 x (sqrt.f64 3)) 2)
0.4b
(*.f64 x (sqrt.f64 3))
Compiler

Compiled 57 to 47 computations (17.5% saved)

series5.0ms (0.1%)

Counts
4 → 48
Calls

12 calls:

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

rewrite92.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
584×log-prod_binary64
478×fma-def_binary64
329×fma-neg_binary64
320×pow2_binary64
219×pow1/3_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01351
129039
2366439
Stop Event
node limit
Counts
4 → 219
Calls
Call 1
Inputs
(*.f64 x (sqrt.f64 3))
(pow.f64 (*.f64 x (sqrt.f64 3)) 2)
(*.f64 3 (+.f64 (-.f64 (pow.f64 (*.f64 x (sqrt.f64 3)) 2) (*.f64 x 4)) 1))
(-.f64 (pow.f64 (*.f64 x (sqrt.f64 3)) 2) (*.f64 x 4))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 x (sqrt.f64 3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (sqrt.f64 3))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (sqrt.f64 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (sqrt.f64 3)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (sqrt.f64 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 x (sqrt.f64 3)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (sqrt.f64 3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 3 (*.f64 x x)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x (sqrt.f64 3)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 x (sqrt.f64 3))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 3 (*.f64 x x))) 3/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 x (sqrt.f64 3))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 x 6) 27) 1/6)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 x 3) (pow.f64 3 3/2)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 3 3/2) (pow.f64 x 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 3 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 x (sqrt.f64 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 x) (sqrt.f64 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 x (sqrt.f64 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 x (sqrt.f64 3)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 x 3) (pow.f64 3 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 3 3/2) (pow.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x (sqrt.f64 3))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 x (sqrt.f64 3))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 x (sqrt.f64 3))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 x (sqrt.f64 3))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 3 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (*.f64 3 (*.f64 x x)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (*.f64 3 (*.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (*.f64 3 (*.f64 x x))))) (log.f64 (sqrt.f64 (exp.f64 (*.f64 3 (*.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 3 (*.f64 x x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 (sqrt.f64 3) (*.f64 x (sqrt.f64 3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 3 (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 3) (*.f64 x (*.f64 x (sqrt.f64 3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (sqrt.f64 3)) (*.f64 x (sqrt.f64 3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 3 (*.f64 x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 3 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 3 (*.f64 x x))) (pow.f64 (cbrt.f64 (*.f64 x (sqrt.f64 3))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 3 (*.f64 x x))) (*.f64 (cbrt.f64 (*.f64 x (sqrt.f64 3))) (*.f64 x (sqrt.f64 3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 x (sqrt.f64 3))) 4) (cbrt.f64 (*.f64 3 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 x (sqrt.f64 3))) (*.f64 (sqrt.f64 (*.f64 x (sqrt.f64 3))) (*.f64 x (sqrt.f64 3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x x) 3)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (*.f64 x (sqrt.f64 3))) 3) (sqrt.f64 (*.f64 x (sqrt.f64 3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 x (sqrt.f64 3)) x) (sqrt.f64 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 x (sqrt.f64 3)) (sqrt.f64 3)) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 x (sqrt.f64 3)) (cbrt.f64 (*.f64 3 (*.f64 x x)))) (cbrt.f64 (*.f64 x (sqrt.f64 3))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 x (sqrt.f64 3)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (*.f64 3 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 3 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 x 6) 27))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 3 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 3 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 3 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 3 (*.f64 x x))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 3 (*.f64 3 (fma.f64 3 (*.f64 x x) (*.f64 x -4))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 3 (fma.f64 3 (*.f64 x x) (fma.f64 x -4 1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 3 (fma.f64 3 (*.f64 x x) (*.f64 x -4))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 3 (fma.f64 3 (*.f64 x x) (*.f64 x -4))) 1) 3)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (exp.f64 (fma.f64 3 (*.f64 x x) (fma.f64 x -4 1))) 2)) (fma.f64 3 (*.f64 x x) (fma.f64 x -4 1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 3) (fma.f64 3 (*.f64 x x) (fma.f64 x -4 1))))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 3) (fma.f64 3 (*.f64 x x) (fma.f64 x -4 1))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 3 (fma.f64 3 (*.f64 x x) (fma.f64 x -4 1))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 3 (fma.f64 3 (*.f64 x x) (*.f64 x -4))) 3) 27) (+.f64 (pow.f64 (*.f64 3 (fma.f64 3 (*.f64 x x) (*.f64 x -4))) 2) (-.f64 9 (*.f64 (*.f64 3 (fma.f64 3 (*.f64 x x) (*.f64 x -4))) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 3 (fma.f64 3 (*.f64 x x) (*.f64 x -4))) 2) 9) (fma.f64 3 (fma.f64 3 (*.f64 x x) (*.f64 x -4)) -3))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 1 (pow.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4)) 3)) 3) (+.f64 (pow.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4)) 2) (-.f64 1 (fma.f64 3 (*.f64 x x) (*.f64 x -4)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (pow.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4)) 2) -1) 3) (fma.f64 3 (*.f64 x x) (fma.f64 x -4 -1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 3 (+.f64 1 (pow.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4)) 3))) (+.f64 (pow.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4)) 2) (-.f64 1 (fma.f64 3 (*.f64 x x) (*.f64 x -4)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 3 (+.f64 (pow.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4)) 2) -1)) (fma.f64 3 (*.f64 x x) (fma.f64 x -4 -1)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 3 (fma.f64 3 (*.f64 x x) (fma.f64 x -4 1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (fma.f64 3 (*.f64 x x) (fma.f64 x -4 1)) 2) 9) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 3 (fma.f64 3 (*.f64 x x) (fma.f64 x -4 1))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 3 (fma.f64 3 (*.f64 x x) (fma.f64 x -4 1)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 3 (fma.f64 3 (*.f64 x x) (fma.f64 x -4 1)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 (fma.f64 3 (*.f64 x x) (fma.f64 x -4 1)) 2) 9))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 3) (fma.f64 3 (*.f64 x x) (fma.f64 x -4 1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 3 (fma.f64 3 (*.f64 x x) (fma.f64 x -4 1))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 3 (fma.f64 3 (*.f64 x x) (fma.f64 x -4 1))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 3 (fma.f64 3 (*.f64 x x) (fma.f64 x -4 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 3 (fma.f64 3 (*.f64 x x) (fma.f64 x -4 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 3 (fma.f64 3 (*.f64 x x) (fma.f64 x -4 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 3 (fma.f64 3 (*.f64 x x) (fma.f64 x -4 1)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 3 (fma.f64 3 (*.f64 x x) (*.f64 x -4)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4)) 3 3)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 3 (fma.f64 3 (*.f64 x x) (*.f64 x -4))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4))) 2) (*.f64 (cbrt.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4))) 3) 3)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4))) (*.f64 (sqrt.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4))) 3) 3)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 (fma.f64 3 (*.f64 x x) (*.f64 x -4))) 1 3)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 3 (fma.f64 3 (*.f64 x x) (*.f64 x -4)))) 2) (cbrt.f64 (*.f64 3 (fma.f64 3 (*.f64 x x) (*.f64 x -4)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 3 (fma.f64 3 (*.f64 x x) (*.f64 x -4)))) (sqrt.f64 (*.f64 3 (fma.f64 3 (*.f64 x x) (*.f64 x -4)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 (pow.f64 (cbrt.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4))) 2)) (cbrt.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 (sqrt.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4)))) (sqrt.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4))) 3)))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 3 (*.f64 x x)) (*.f64 x -4))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 3 (*.f64 x x)) (*.f64 (*.f64 x -4) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4)) (fma.f64 (*.f64 x -4) 1 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4)) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 x 4))) (pow.f64 (cbrt.f64 (*.f64 x 4)) 2) (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4)) (fma.f64 -4 x (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (fma.f64 3 (*.f64 x x) (*.f64 x -4)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x -4) (*.f64 3 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4))))) (log.f64 (sqrt.f64 (exp.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 3 (*.f64 x x) (*.f64 x -4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4))) (pow.f64 (cbrt.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4))) 2) (cbrt.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4))) 2) (*.f64 (cbrt.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4))) (sqrt.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4))) (*.f64 (sqrt.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 (pow.f64 x 6) 27) (*.f64 64 (pow.f64 x 3))) (/.f64 1 (fma.f64 (*.f64 x 4) (fma.f64 3 (*.f64 x x) (*.f64 x 4)) (pow.f64 (*.f64 x (sqrt.f64 3)) 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (*.f64 x (sqrt.f64 3)) 4) (*.f64 16 (*.f64 x x))) (/.f64 1 (fma.f64 3 (*.f64 x x) (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 x (sqrt.f64 3) (*.f64 2 (sqrt.f64 x))) (-.f64 (*.f64 x (sqrt.f64 3)) (*.f64 2 (sqrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 (*.f64 x 4) (fma.f64 3 (*.f64 x x) (*.f64 x 4)) (pow.f64 (*.f64 x (sqrt.f64 3)) 4)) (-.f64 (*.f64 (pow.f64 x 6) 27) (*.f64 64 (pow.f64 x 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 3 (*.f64 x x) (*.f64 x 4)) (-.f64 (pow.f64 (*.f64 x (sqrt.f64 3)) 4) (*.f64 16 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (pow.f64 x 6) 27) (*.f64 64 (pow.f64 x 3))) (fma.f64 (*.f64 x 4) (fma.f64 3 (*.f64 x x) (*.f64 x 4)) (pow.f64 (*.f64 x (sqrt.f64 3)) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 x (sqrt.f64 3)) 4) (*.f64 16 (*.f64 x x))) (fma.f64 3 (*.f64 x x) (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (*.f64 (pow.f64 x 6) 27) (*.f64 64 (pow.f64 x 3)))) (neg.f64 (fma.f64 (*.f64 x 4) (fma.f64 3 (*.f64 x x) (*.f64 x 4)) (pow.f64 (*.f64 x (sqrt.f64 3)) 4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 x (sqrt.f64 3)) 4) (*.f64 16 (*.f64 x x)))) (neg.f64 (fma.f64 3 (*.f64 x x) (*.f64 x 4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 (pow.f64 x 6) 27 (pow.f64 (*.f64 x -4) 3)) (fma.f64 (pow.f64 (*.f64 x x) 2) 9 (-.f64 (pow.f64 (*.f64 x -4) 2) (*.f64 (*.f64 3 (*.f64 x x)) (*.f64 x -4)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 x (sqrt.f64 3)) 4) (pow.f64 (*.f64 x -4) 2)) (fma.f64 3 (*.f64 x x) (neg.f64 (*.f64 x -4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (*.f64 (pow.f64 x 6) 27) (*.f64 64 (pow.f64 x 3))) 1) (fma.f64 (*.f64 x 4) (fma.f64 3 (*.f64 x x) (*.f64 x 4)) (pow.f64 (*.f64 x (sqrt.f64 3)) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (pow.f64 (*.f64 x (sqrt.f64 3)) 4) (*.f64 16 (*.f64 x x))) 1) (fma.f64 3 (*.f64 x x) (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 (*.f64 x 4) (fma.f64 3 (*.f64 x x) (*.f64 x 4)) (pow.f64 (*.f64 x (sqrt.f64 3)) 4)) (-.f64 (*.f64 (pow.f64 x 6) 27) (*.f64 64 (pow.f64 x 3)))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 3 (*.f64 x x) (*.f64 x 4)) (-.f64 (pow.f64 (*.f64 x (sqrt.f64 3)) 4) (*.f64 16 (*.f64 x x)))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (expm1.f64 (*.f64 3 (*.f64 x x)))) (pow.f64 (exp.f64 4) x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (exp.f64 (*.f64 3 (*.f64 x x))) (+.f64 1 (expm1.f64 (*.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (expm1.f64 (*.f64 3 (*.f64 x x)))) (+.f64 1 (expm1.f64 (*.f64 x 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 3 (*.f64 x x)))) (exp.f64 (*.f64 x -4))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 3 (*.f64 x x)))) (pow.f64 (exp.f64 x) -4)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 x -4)) (exp.f64 (*.f64 3 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 x -4)) (+.f64 1 (expm1.f64 (*.f64 3 (*.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 x) -4) (+.f64 1 (expm1.f64 (*.f64 3 (*.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (*.f64 (log1p.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x -4 (*.f64 3 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (*.f64 (sqrt.f64 3) (*.f64 x (sqrt.f64 3))) (*.f64 x -4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (*.f64 (sqrt.f64 3) (*.f64 x (sqrt.f64 3))) (*.f64 (*.f64 x -4) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 3 (*.f64 x x) (*.f64 x -4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 3 (*.f64 x x) (*.f64 (*.f64 x -4) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 3) (*.f64 x (*.f64 x (sqrt.f64 3))) (*.f64 x -4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 3) (*.f64 x (*.f64 x (sqrt.f64 3))) (*.f64 (*.f64 x -4) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (sqrt.f64 3)) (*.f64 x (sqrt.f64 3)) (*.f64 x -4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x (sqrt.f64 3)) (*.f64 x (sqrt.f64 3)) (*.f64 (*.f64 x -4) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 (*.f64 x x)) 1 (*.f64 x -4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 (*.f64 x x)) 1 (*.f64 (*.f64 x -4) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 4 (neg.f64 x) (*.f64 3 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4)) 1 (fma.f64 (*.f64 x -4) 1 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4)) 1 (fma.f64 (neg.f64 (cbrt.f64 (*.f64 x 4))) (pow.f64 (cbrt.f64 (*.f64 x 4)) 2) (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4)) 1 (fma.f64 -4 x (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 3 (*.f64 x x)) (*.f64 x -4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 3 (*.f64 x x)) (*.f64 (*.f64 x -4) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 3 (*.f64 x x) (*.f64 x -4)) (fma.f64 (*.f64 x -4) 1 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 3 (*.f64 x x) (*.f64 x -4)) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 x 4))) (pow.f64 (cbrt.f64 (*.f64 x 4)) 2) (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 3 (*.f64 x x) (*.f64 x -4)) (fma.f64 -4 x (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 3 (*.f64 x x) (fma.f64 x -4 1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x -4) (*.f64 3 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 3 (*.f64 x x) (fma.f64 x -4 1)) 1 -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (fma.f64 3 (*.f64 x x) (fma.f64 x -4 1))) (pow.f64 (cbrt.f64 (fma.f64 3 (*.f64 x x) (fma.f64 x -4 1))) 2) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 3 (*.f64 x x) (fma.f64 x -4 1))) 2) (cbrt.f64 (fma.f64 3 (*.f64 x x) (fma.f64 x -4 1))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x 4)) 2) (neg.f64 (cbrt.f64 (*.f64 x 4))) (*.f64 3 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4))) (pow.f64 (cbrt.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4))) 2) (fma.f64 (*.f64 x -4) 1 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4))) (pow.f64 (cbrt.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4))) 2) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 x 4))) (pow.f64 (cbrt.f64 (*.f64 x 4)) 2) (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4))) (pow.f64 (cbrt.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4))) 2) (fma.f64 -4 x (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4))) 2) (cbrt.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4))) (fma.f64 (*.f64 x -4) 1 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4))) 2) (cbrt.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4))) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 x 4))) (pow.f64 (cbrt.f64 (*.f64 x 4)) 2) (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4))) 2) (cbrt.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4))) (fma.f64 -4 x (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4))) 2) (*.f64 (cbrt.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4))) 1) (fma.f64 (*.f64 x -4) 1 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4))) 2) (*.f64 (cbrt.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4))) 1) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 x 4))) (pow.f64 (cbrt.f64 (*.f64 x 4)) 2) (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4))) 2) (*.f64 (cbrt.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4))) 1) (fma.f64 -4 x (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 3 (*.f64 x x))) (pow.f64 (cbrt.f64 (*.f64 x (sqrt.f64 3))) 4) (*.f64 x -4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 3 (*.f64 x x))) (pow.f64 (cbrt.f64 (*.f64 x (sqrt.f64 3))) 4) (*.f64 (*.f64 x -4) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 3 (*.f64 x x))) (*.f64 (cbrt.f64 (*.f64 x (sqrt.f64 3))) (*.f64 x (sqrt.f64 3))) (*.f64 x -4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 3 (*.f64 x x))) (*.f64 (cbrt.f64 (*.f64 x (sqrt.f64 3))) (*.f64 x (sqrt.f64 3))) (*.f64 (*.f64 x -4) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x (sqrt.f64 3))) 4) (cbrt.f64 (*.f64 3 (*.f64 x x))) (*.f64 x -4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x (sqrt.f64 3))) 4) (cbrt.f64 (*.f64 3 (*.f64 x x))) (*.f64 (*.f64 x -4) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x (sqrt.f64 3))) (*.f64 (sqrt.f64 (*.f64 x (sqrt.f64 3))) (*.f64 x (sqrt.f64 3))) (*.f64 x -4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x (sqrt.f64 3))) (*.f64 (sqrt.f64 (*.f64 x (sqrt.f64 3))) (*.f64 x (sqrt.f64 3))) (*.f64 (*.f64 x -4) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 3 (*.f64 x x) (fma.f64 x -4 1))) (sqrt.f64 (fma.f64 3 (*.f64 x x) (fma.f64 x -4 1))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 2 (sqrt.f64 x)) (neg.f64 (*.f64 2 (sqrt.f64 x))) (*.f64 3 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4))) (sqrt.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4))) (fma.f64 (*.f64 x -4) 1 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4))) (sqrt.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4))) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 x 4))) (pow.f64 (cbrt.f64 (*.f64 x 4)) 2) (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4))) (sqrt.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4))) (fma.f64 -4 x (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4))) (*.f64 (sqrt.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4))) 1) (fma.f64 (*.f64 x -4) 1 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4))) (*.f64 (sqrt.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4))) 1) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 x 4))) (pow.f64 (cbrt.f64 (*.f64 x 4)) 2) (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4))) (*.f64 (sqrt.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4))) 1) (fma.f64 -4 x (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x x) 3 (*.f64 x -4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x x) 3 (*.f64 (*.f64 x -4) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 (pow.f64 x 6) 27) (*.f64 64 (pow.f64 x 3))) (/.f64 1 (fma.f64 (*.f64 x 4) (fma.f64 3 (*.f64 x x) (*.f64 x 4)) (pow.f64 (*.f64 x (sqrt.f64 3)) 4))) (fma.f64 (*.f64 x -4) 1 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 (pow.f64 x 6) 27) (*.f64 64 (pow.f64 x 3))) (/.f64 1 (fma.f64 (*.f64 x 4) (fma.f64 3 (*.f64 x x) (*.f64 x 4)) (pow.f64 (*.f64 x (sqrt.f64 3)) 4))) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 x 4))) (pow.f64 (cbrt.f64 (*.f64 x 4)) 2) (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 (pow.f64 x 6) 27) (*.f64 64 (pow.f64 x 3))) (/.f64 1 (fma.f64 (*.f64 x 4) (fma.f64 3 (*.f64 x x) (*.f64 x 4)) (pow.f64 (*.f64 x (sqrt.f64 3)) 4))) (fma.f64 -4 x (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 1 (pow.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4)) 3)) (/.f64 1 (+.f64 (pow.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4)) 2) (-.f64 1 (fma.f64 3 (*.f64 x x) (*.f64 x -4))))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (*.f64 x (sqrt.f64 3)) 4) (*.f64 16 (*.f64 x x))) (/.f64 1 (fma.f64 3 (*.f64 x x) (*.f64 x 4))) (fma.f64 (*.f64 x -4) 1 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (*.f64 x (sqrt.f64 3)) 4) (*.f64 16 (*.f64 x x))) (/.f64 1 (fma.f64 3 (*.f64 x x) (*.f64 x 4))) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 x 4))) (pow.f64 (cbrt.f64 (*.f64 x 4)) 2) (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (*.f64 x (sqrt.f64 3)) 4) (*.f64 16 (*.f64 x x))) (/.f64 1 (fma.f64 3 (*.f64 x x) (*.f64 x 4))) (fma.f64 -4 x (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (pow.f64 (fma.f64 3 (*.f64 x x) (*.f64 x -4)) 2) -1) (/.f64 1 (fma.f64 3 (*.f64 x x) (fma.f64 x -4 -1))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 x) 4 (*.f64 3 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (sqrt.f64 (*.f64 x (sqrt.f64 3))) 3) (sqrt.f64 (*.f64 x (sqrt.f64 3))) (*.f64 x -4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (sqrt.f64 (*.f64 x (sqrt.f64 3))) 3) (sqrt.f64 (*.f64 x (sqrt.f64 3))) (*.f64 (*.f64 x -4) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x -4)) 2) (cbrt.f64 (*.f64 x -4)) (*.f64 3 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x -4)) (sqrt.f64 (*.f64 x -4)) (*.f64 3 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -4 x (*.f64 3 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (*.f64 2 (sqrt.f64 x))) (*.f64 2 (sqrt.f64 x)) (*.f64 3 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1 (*.f64 x 4) (*.f64 3 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 x (sqrt.f64 3) (*.f64 2 (sqrt.f64 x))) (-.f64 (*.f64 x (sqrt.f64 3)) (*.f64 2 (sqrt.f64 x))) (fma.f64 (*.f64 x -4) 1 (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 x (sqrt.f64 3) (*.f64 2 (sqrt.f64 x))) (-.f64 (*.f64 x (sqrt.f64 3)) (*.f64 2 (sqrt.f64 x))) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 x 4))) (pow.f64 (cbrt.f64 (*.f64 x 4)) 2) (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 x (sqrt.f64 3) (*.f64 2 (sqrt.f64 x))) (-.f64 (*.f64 x (sqrt.f64 3)) (*.f64 2 (sqrt.f64 x))) (fma.f64 -4 x (*.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (pow.f64 (cbrt.f64 (*.f64 x 4)) 2)) (cbrt.f64 (*.f64 x 4)) (*.f64 3 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 x (sqrt.f64 3)) x) (sqrt.f64 3) (*.f64 x -4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 x (sqrt.f64 3)) x) (sqrt.f64 3) (*.f64 (*.f64 x -4) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 x (sqrt.f64 3)) (sqrt.f64 3)) x (*.f64 x -4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 x (sqrt.f64 3)) (sqrt.f64 3)) x (*.f64 (*.f64 x -4) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 x (sqrt.f64 3)) (cbrt.f64 (*.f64 3 (*.f64 x x)))) (cbrt.f64 (*.f64 x (sqrt.f64 3))) (*.f64 x -4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 x (sqrt.f64 3)) (cbrt.f64 (*.f64 3 (*.f64 x x)))) (cbrt.f64 (*.f64 x (sqrt.f64 3))) (*.f64 (*.f64 x -4) 1))))))

simplify196.0ms (2%)

Algorithm
egg-herbie
Rules
738×unswap-sqr_binary64
733×sqr-pow_binary64
650×cube-prod_binary64
602×fabs-mul_binary64
525×fma-def_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
021582
148387
296376
3229336
4875336
51669336
62974336
73220336
83416336
93631336
103886336
114222336
124649336
135169336
145830336
156663336
167135336
177541336
187879336
Stop Event
node limit
Counts
267 → 236
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 3) x)
(*.f64 (sqrt.f64 3) x)
(*.f64 (sqrt.f64 3) x)
(*.f64 (sqrt.f64 3) x)
(*.f64 (sqrt.f64 3) x)
(*.f64 (sqrt.f64 3) x)
(*.f64 (sqrt.f64 3) x)
(*.f64 (sqrt.f64 3) x)
(*.f64 (sqrt.f64 3) x)
(*.f64 (sqrt.f64 3) x)
(*.f64 (sqrt.f64 3) x)
(*.f64 (sqrt.f64 3) x)
(*.f64 (pow.f64 (sqrt.f64 3) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (sqrt.f64 3) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (sqrt.f64 3) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (sqrt.f64 3) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (sqrt.f64 3) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (sqrt.f64 3) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (sqrt.f64 3) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (sqrt.f64 3) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (sqrt.f64 3) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (sqrt.f64 3) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (sqrt.f64 3) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (sqrt.f64 3) 2) (pow.f64 x 2))
3
(+.f64 (*.f64 -12 x) 3)
(+.f64 (*.f64 -12 x) (+.f64 (*.f64 3 (*.f64 (pow.f64 (sqrt.f64 3) 2) (pow.f64 x 2))) 3))
(+.f64 (*.f64 -12 x) (+.f64 (*.f64 3 (*.f64 (pow.f64 (sqrt.f64 3) 2) (pow.f64 x 2))) 3))
(*.f64 3 (*.f64 (pow.f64 (sqrt.f64 3) 2) (pow.f64 x 2)))
(+.f64 (*.f64 -12 x) (*.f64 3 (*.f64 (pow.f64 (sqrt.f64 3) 2) (pow.f64 x 2))))
(+.f64 (*.f64 -12 x) (+.f64 3 (*.f64 3 (*.f64 (pow.f64 (sqrt.f64 3) 2) (pow.f64 x 2)))))
(+.f64 (*.f64 -12 x) (+.f64 3 (*.f64 3 (*.f64 (pow.f64 (sqrt.f64 3) 2) (pow.f64 x 2)))))
(*.f64 3 (*.f64 (pow.f64 (sqrt.f64 3) 2) (pow.f64 x 2)))
(+.f64 (*.f64 -12 x) (*.f64 3 (*.f64 (pow.f64 (sqrt.f64 3) 2) (pow.f64 x 2))))
(+.f64 (*.f64 -12 x) (+.f64 3 (*.f64 3 (*.f64 (pow.f64 (sqrt.f64 3) 2) (pow.f64 x 2)))))
(+.f64 (*.f64 -12 x) (+.f64 3 (*.f64 3 (*.f64 (pow.f64 (sqrt.f64 3) 2) (pow.f64 x 2)))))
(*.f64 -4 x)
(+.f64 (*.f64 -4 x) (*.f64 (pow.f64 (sqrt.f64 3) 2) (pow.f64 x 2)))
(+.f64 (*.f64 -4 x) (*.f64 (pow.f64 (sqrt.f64 3) 2) (pow.f64 x 2)))
(+.f64 (*.f64 -4 x) (*.f64 (pow.f64 (sqrt.f64 3) 2) (pow.f64 x 2)))
(*.f64 (pow.f64 (sqrt.f64 3) 2) (pow.f64 x 2))
(+.f64 (*.f64 -4 x) (*.f64 (pow.f64 (sqrt.f64 3) 2) (pow.f64 x 2)))
(+.f64 (*.f64 -4 x) (*.f64 (pow.f64 (sqrt.f64 3) 2) (pow.f64 x 2)))
(+.f64 (*.f64 -4 x) (*.f64 (pow.f64 (sqrt.f64 3) 2) (pow.f64 x 2)))
(*.f64 (pow.f64 (sqrt.f64 3) 2) (pow.f64 x 2))
(+.f64 (*.f64 -4 x) (*.f64 (pow.f64 (sqrt.f64 3) 2) (pow.f64 x 2)))
(+.f64 (*.f64 -4 x) (*.f64 (pow.f64 (sqrt.f64 3) 2) (pow.f64 x 2)))
(+.f64 (*.f64 -4 x) (*.f64 (pow.f64 (sqrt.f64 3) 2) (pow.f64 x 2)))
Outputs
(*.f64 (sqrt.f64 3) x)
(*.f64 (sqrt.f64 3) x)
(*.f64 (sqrt.f64 3) x)
(*.f64 (sqrt.f64 3) x)
(*.f64 (sqrt.f64 3) x)
(*.f64 (sqrt.f64 3) x)
(*.f64 (sqrt.f64 3) x)
(*.f64 (sqrt.f64 3) x)
(*.f64 (sqrt.f64 3) x)
(*.f64 (sqrt.f64 3) x)
(*.f64 (sqrt.f64 3) x)
(*.f64 (sqrt.f64 3) x)
(*.f64 (pow.f64 (sqrt.f64 3) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (sqrt.f64 3) 2) (*.f64 x x))
(*.f64 3 (*.f64 x x))
(*.f64 x (*.f64 3 x))
(*.f64 (pow.f64 (sqrt.f64 3) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (sqrt.f64 3) 2) (*.f64 x x))
(*.f64 3 (*.f64 x x))
(*.f64 x (*.f64 3 x))
(*.f64 (pow.f64 (sqrt.f64 3) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (sqrt.f64 3) 2) (*.f64 x x))
(*.f64 3 (*.f64 x x))
(*.f64 x (*.f64 3 x))
(*.f64 (pow.f64 (sqrt.f64 3) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (sqrt.f64 3) 2) (*.f64 x x))
(*.f64 3 (*.f64 x x))
(*.f64 x (*.f64 3 x))
(*.f64 (pow.f64 (sqrt.f64 3) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (sqrt.f64 3) 2) (*.f64 x x))
(*.f64 3 (*.f64 x x))
(*.f64 x (*.f64 3 x))
(*.f64 (pow.f64 (sqrt.f64 3) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (sqrt.f64 3) 2) (*.f64 x x))
(*.f64 3 (*.f64 x x))
(*.f64 x (*.f64 3 x))
(*.f64 (pow.f64 (sqrt.f64 3) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (sqrt.f64 3) 2) (*.f64 x x))
(*.f64 3 (*.f64 x x))
(*.f64 x (*.f64 3 x))
(*.f64 (pow.f64 (sqrt.f64 3) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (sqrt.f64 3) 2) (*.f64 x x))
(*.f64 3 (*.f64 x x))
(*.f64 x (*.f64 3 x))
(*.f64 (pow.f64 (sqrt.f64 3) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (sqrt.f64 3) 2) (*.f64 x x))
(*.f64 3 (*.f64 x x))
(*.f64 x (*.f64 3 x))
(*.f64 (pow.f64 (sqrt.f64 3) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (sqrt.f64 3) 2) (*.f64 x x))
(*.f64 3 (*.f64 x x))
(*.f64 x (*.f64 3 x))
(*.f64 (pow.f64 (sqrt.f64 3) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (sqrt.f64 3) 2) (*.f64 x x))
(*.f64 3 (*.f64 x x))
(*.f64 x (*.f64 3 x))
(*.f64 (pow.f64 (sqrt.f64 3) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (sqrt.f64 3) 2) (*.f64 x x))
(*.f64 3 (*.f64 x x))
(*.f64 x (*.f64 3 x))
3
(+.f64 (*.f64 -12 x) 3)
(fma.f64 -12 x 3)
(fma.f64 x -12 3)
(+.f64 (*.f64 -12 x) (+.f64 (*.f64 3 (*.f64 (pow.f64 (sqrt.f64 3) 2) (pow.f64 x 2))) 3))
(fma.f64 -12 x (fma.f64 3 (*.f64 (pow.f64 (sqrt.f64 3) 2) (*.f64 x x)) 3))
(fma.f64 x -12 (fma.f64 9 (*.f64 x x) 3))
(fma.f64 x -12 (fma.f64 (*.f64 x x) 9 3))
(fma.f64 x (fma.f64 x 9 -12) 3)
(+.f64 (*.f64 -12 x) (+.f64 (*.f64 3 (*.f64 (pow.f64 (sqrt.f64 3) 2) (pow.f64 x 2))) 3))
(fma.f64 -12 x (fma.f64 3 (*.f64 (pow.f64 (sqrt.f64 3) 2) (*.f64 x x)) 3))
(fma.f64 x -12 (fma.f64 9 (*.f64 x x) 3))
(fma.f64 x -12 (fma.f64 (*.f64 x x) 9 3))
(fma.f64 x (fma.f64 x 9 -12) 3)
(*.f64 3 (*.f64 (pow.f64 (sqrt.f64 3) 2) (pow.f64 x 2)))
(*.f64 3 (*.f64 (pow.f64 (sqrt.f64 3) 2) (*.f64 x x)))
(*.f64 (*.f64 x x) 9)
(*.f64 x (*.f64 x 9))
(+.f64 (*.f64 -12 x) (*.f64 3 (*.f64 (pow.f64 (sqrt.f64 3) 2) (pow.f64 x 2))))
(fma.f64 -12 x (*.f64 3 (*.f64 (pow.f64 (sqrt.f64 3) 2) (*.f64 x x))))
(fma.f64 9 (*.f64 x x) (*.f64 x -12))
(*.f64 x (+.f64 (*.f64 x 9) -12))
(*.f64 x (fma.f64 x 9 -12))
(+.f64 (*.f64 -12 x) (+.f64 3 (*.f64 3 (*.f64 (pow.f64 (sqrt.f64 3) 2) (pow.f64 x 2)))))
(fma.f64 -12 x (fma.f64 3 (*.f64 (pow.f64 (sqrt.f64 3) 2) (*.f64 x x)) 3))
(fma.f64 x -12 (fma.f64 9 (*.f64 x x) 3))
(fma.f64 x -12 (fma.f64 (*.f64 x x) 9 3))
(fma.f64 x (fma.f64 x 9 -12) 3)
(+.f64 (*.f64 -12 x) (+.f64 3 (*.f64 3 (*.f64 (pow.f64 (sqrt.f64 3) 2) (pow.f64 x 2)))))
(fma.f64 -12 x (fma.f64 3 (*.f64 (pow.f64 (sqrt.f64 3) 2) (*.f64 x x)) 3))
(fma.f64 x -12 (fma.f64 9 (*.f64 x x) 3))
(fma.f64 x -12 (fma.f64 (*.f64 x x) 9 3))
(fma.f64 x (fma.f64 x 9 -12) 3)
(*.f64 3 (*.f64 (pow.f64 (sqrt.f64 3) 2) (pow.f64 x 2)))
(*.f64 3 (*.f64 (pow.f64 (sqrt.f64 3) 2) (*.f64 x x)))
(*.f64 (*.f64 x x) 9)
(*.f64 x (*.f64 x 9))
(+.f64 (*.f64 -12 x) (*.f64 3 (*.f64 (pow.f64 (sqrt.f64 3) 2) (pow.f64 x 2))))
(fma.f64 -12 x (*.f64 3 (*.f64 (pow.f64 (sqrt.f64 3) 2) (*.f64 x x))))
(fma.f64 9 (*.f64 x x) (*.f64 x -12))
(*.f64 x (+.f64 (*.f64 x 9) -12))
(*.f64 x (fma.f64 x 9 -12))
(+.f64 (*.f64 -12 x) (+.f64 3 (*.f64 3 (*.f64 (pow.f64 (sqrt.f64 3) 2) (pow.f64 x 2)))))
(fma.f64 -12 x (fma.f64 3 (*.f64 (pow.f64 (sqrt.f64 3) 2) (*.f64 x x)) 3))
(fma.f64 x -12 (fma.f64 9 (*.f64 x x) 3))
(fma.f64 x -12 (fma.f64 (*.f64 x x) 9 3))
(fma.f64 x (fma.f64 x 9 -12) 3)
(+.f64 (*.f64 -12 x) (+.f64 3 (*.f64 3 (*.f64 (pow.f64 (sqrt.f64 3) 2) (pow.f64 x 2)))))
(fma.f64 -12 x (fma.f64 3 (*.f64 (pow.f64 (sqrt.f64 3) 2) (*.f64 x x)) 3))
(fma.f64 x -12 (fma.f64 9 (*.f64 x x) 3))
(fma.f64 x -12 (fma.f64 (*.f64 x x) 9 3))
(fma.f64 x (fma.f64 x 9 -12) 3)
(*.f64 -4 x)
(*.f64 x -4)
(+.f64 (*.f64 -4 x) (*.f64 (pow.f64 (sqrt.f64 3) 2) (pow.f64 x 2)))
(fma.f64 -4 x (*.f64 (pow.f64 (sqrt.f64 3) 2) (*.f64 x x)))
(fma.f64 3 (*.f64 x x) (*.f64 x -4))
(*.f64 x (+.f64 (*.f64 3 x) -4))
(*.f64 x (fma.f64 3 x -4))
(+.f64 (*.f64 -4 x) (*.f64 (pow.f64 (sqrt.f64 3) 2) (pow.f64 x 2)))
(fma.f64 -4 x (*.f64 (pow.f64 (sqrt.f64 3) 2) (*.f64 x x)))
(fma.f64 3 (*.f64 x x) (*.f64 x -4))
(*.f64 x (+.f64 (*.f64 3 x) -4))
(*.f64 x (fma.f64 3 x -4))
(+.f64 (*.f64 -4 x) (*.f64 (pow.f64 (sqrt.f64 3) 2) (pow.f64 x 2)))
(fma.f64 -4 x (*.f64 (pow.f64 (sqrt.f64 3) 2) (*.f64 x x)))
(fma.f64 3 (*.f64 x x) (*.f64 x -4))
(*.f64 x (+.f64 (*.f64 3 x) -4))
(*.f64 x (fma.f64 3 x -4))
(*.f64 (pow.f64 (sqrt.f64 3) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (sqrt.f64 3) 2) (*.f64 x x))
(*.f64 3 (*.f64 x x))
(*.f64 x (*.f64 3 x))
(+.f64 (*.f64 -4 x) (*.f64 (pow.f64 (sqrt.f64 3) 2) (pow.f64 x 2)))
(fma.f64 -4 x (*.f64 (pow.f64 (sqrt.f64 3) 2) (*.f64 x x)))
(fma.f64 3 (*.f64 x x) (*.f64 x -4))
(*.f64 x (+.f64 (*.f64 3 x) -4))
(*.f64 x (fma.f64 3 x -4))
(+.f64 (*.f64 -4 x) (*.f64 (pow.f64 (sqrt.f64 3) 2) (pow.f64 x 2)))
(fma.f64 -4 x (*.f64 (pow.f64 (sqrt.f64 3) 2) (*.f64 x x)))
(fma.f64 3 (*.f64 x x) (*.f64 x -4))
(*.f64 x (+.f64 (*.f64 3 x) -4))
(*.f64 x (fma.f64 3 x -4))
(+.f64 (*.f64 -4 x) (*.f64 (pow.f64 (sqrt.f64 3) 2) (pow.f64 x 2)))
(fma.f64 -4 x (*.f64 (pow.f64 (sqrt.f64 3) 2) (*.f64 x x)))
(fma.f64 3 (*.f64 x x) (*.f64 x -4))
(*.f64 x (+.f64 (*.f64 3 x) -4))
(*.f64 x (fma.f64 3 x -4))
(*.f64 (pow.f64 (sqrt.f64 3) 2) (pow.f64 x 2))
(*.f64 (pow.f64 (sqrt.f64 3) 2) (*.f64 x x))
(*.f64 3 (*.f64 x x))
(*.f64 x (*.f64 3 x))
(+.f64 (*.f64 -4 x) (*.f64 (pow.f64 (sqrt.f64 3) 2) (pow.f64 x 2)))
(fma.f64 -4 x (*.f64 (pow.f64 (sqrt.f64 3) 2) (*.f64 x x)))
(fma.f64 3 (*.f64 x x) (*.f64 x -4))
(*.f64 x (+.f64 (*.f64 3 x) -4))
(*.f64 x (fma.f64 3 x -4))
(+.f64 (*.f64 -4 x) (*.f64 (pow.f64 (sqrt.f64 3) 2) (pow.f64 x 2)))
(fma.f64 -4 x (*.f64 (pow.f64 (sqrt.f64 3) 2) (*.f64 x x)))
(fma.f64 3 (*.f64 x x) (*.f64 x -4))
(*.f64 x (+.f64 (*.f64 3 x) -4))
(*.f64 x (fma.f64 3 x -4))
(+.f64 (*.f64 -4 x) (*.f64 (pow.f64 (sqrt.f64 3) 2) (pow.f64 x 2)))
(fma.f64 -4 x (*.f64 (pow.f64 (sqrt.f64 3) 2) (*.f64 x x)))
(fma.f64 3 (*.f64 x x) (*.f64 x -4))
(*.f64 x (+.f64 (*.f64 3 x) -4))
(*.f64 x (fma.f64 3 x -4))

eval374.0ms (3.8%)

Compiler

Compiled 7034 to 5297 computations (24.7% saved)

prune81.0ms (0.8%)

Pruning

11 alts after pruning (6 fresh and 5 done)

PrunedKeptTotal
New3954399
Fresh224
Picked101
Done156
Total39911410
Error
0b
Counts
410 → 11
Alt Table
Click to see full alt table
StatusErrorProgram
51.9b
(/.f64 (*.f64 (+.f64 (*.f64 729 (pow.f64 x 3)) -1728) x) (+.f64 (*.f64 81 (*.f64 x x)) (+.f64 144 (*.f64 x 108))))
1.8b
(+.f64 (*.f64 3 (*.f64 x (*.f64 x 3))) 3)
61.7b
(*.f64 x -12)
22.0b
(+.f64 (*.f64 x -12) 3)
0.1b
(+.f64 (*.f64 3 (*.f64 x (-.f64 (*.f64 3 x) 4))) 3)
22.0b
(*.f64 3 (+.f64 (*.f64 x -4) 1))
40.5b
(+.f64 (*.f64 9 (*.f64 x x)) (*.f64 -12 x))
40.5b
(*.f64 x (*.f64 x 9))
22.2b
3
0.2b
(+.f64 (+.f64 (*.f64 (*.f64 3 x) (*.f64 3 x)) (*.f64 (*.f64 3 x) -4)) 3)
40.4b
(*.f64 x (-.f64 (*.f64 9 x) 12))
Compiler

Compiled 168 to 132 computations (21.4% saved)

localize38.0ms (0.4%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (*.f64 (*.f64 3 x) (*.f64 3 x)) (*.f64 (*.f64 3 x) -4))
0.4b
(*.f64 (*.f64 3 x) (*.f64 3 x))
Compiler

Compiled 47 to 36 computations (23.4% saved)

series3.0ms (0%)

Counts
2 → 24
Calls

6 calls:

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

rewrite95.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
923×pow1_binary64
866×add-log-exp_binary64
866×log1p-expm1-u_binary64
866×expm1-log1p-u_binary64
849×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0820
118118
2244218
Stop Event
node limit
Counts
2 → 58
Calls
Call 1
Inputs
(*.f64 (*.f64 3 x) (*.f64 3 x))
(+.f64 (*.f64 (*.f64 3 x) (*.f64 3 x)) (*.f64 (*.f64 3 x) -4))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 x (*.f64 x 9))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 3 x) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (*.f64 x 9)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (cbrt.f64 (*.f64 3 x)) 2) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 3 x) 6) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 3 x) 4))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (*.f64 x 9)) x))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 3 x) 6))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x (*.f64 x 9))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 x (*.f64 x 9))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 3 x)) 2))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (*.f64 3 x) (fma.f64 3 x -4))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (*.f64 3 x) 4) (-.f64 (*.f64 x (*.f64 x 9)) (*.f64 x -12))) (/.f64 (pow.f64 (*.f64 x -12) 2) (-.f64 (*.f64 x (*.f64 x 9)) (*.f64 x -12))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 3 (+.f64 (*.f64 x (*.f64 3 x)) (*.f64 x -4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 3 (+.f64 (*.f64 x -4) (*.f64 x (*.f64 3 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 3 (*.f64 x (fma.f64 3 x -4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 3 (fma.f64 3 x -4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 3 x) (fma.f64 3 x -4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 3 x) (fma.f64 3 x -4)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (*.f64 3 x) (fma.f64 3 x -4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (*.f64 3 x) (fma.f64 3 x -4))) (pow.f64 (cbrt.f64 (*.f64 (*.f64 3 x) (fma.f64 3 x -4))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 (*.f64 3 x) (fma.f64 3 x -4))) 2) (cbrt.f64 (*.f64 (*.f64 3 x) (fma.f64 3 x -4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 3 x)) 2) (*.f64 (cbrt.f64 (*.f64 3 x)) (fma.f64 3 x -4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (hypot.f64 (*.f64 3 x) (sqrt.f64 (*.f64 x -12))) (hypot.f64 (*.f64 3 x) (sqrt.f64 (*.f64 x -12))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 3 x)) (*.f64 (sqrt.f64 (*.f64 3 x)) (fma.f64 3 x -4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (*.f64 3 x) 6) (pow.f64 (*.f64 x -12) 3)) (/.f64 1 (+.f64 (pow.f64 (*.f64 3 x) 4) (-.f64 (pow.f64 (*.f64 x -12) 2) (*.f64 (pow.f64 (*.f64 3 x) 3) -4)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (*.f64 3 x) 4) (pow.f64 (*.f64 x -12) 2)) (/.f64 1 (-.f64 (*.f64 x (*.f64 x 9)) (*.f64 x -12))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 3 x -4) (*.f64 3 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 (*.f64 3 x) 4) (-.f64 (pow.f64 (*.f64 x -12) 2) (*.f64 (pow.f64 (*.f64 3 x) 3) -4))) (+.f64 (pow.f64 (*.f64 3 x) 6) (pow.f64 (*.f64 x -12) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 (*.f64 x (*.f64 x 9)) (*.f64 x -12)) (-.f64 (pow.f64 (*.f64 3 x) 4) (pow.f64 (*.f64 x -12) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 3 x) 6) (pow.f64 (*.f64 x -12) 3)) (+.f64 (pow.f64 (*.f64 3 x) 4) (-.f64 (pow.f64 (*.f64 x -12) 2) (*.f64 (pow.f64 (*.f64 3 x) 3) -4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 3 x) 6) (pow.f64 (*.f64 x -12) 3)) (+.f64 (pow.f64 (*.f64 x -12) 2) (-.f64 (pow.f64 (*.f64 3 x) 4) (*.f64 (pow.f64 (*.f64 3 x) 3) -4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 3 x) 4) (pow.f64 (*.f64 x -12) 2)) (-.f64 (*.f64 x (*.f64 x 9)) (*.f64 x -12)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 3 x) 6) (pow.f64 (*.f64 x -12) 3))) (neg.f64 (+.f64 (pow.f64 (*.f64 3 x) 4) (-.f64 (pow.f64 (*.f64 x -12) 2) (*.f64 (pow.f64 (*.f64 3 x) 3) -4)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 3 x) 4) (pow.f64 (*.f64 x -12) 2))) (neg.f64 (-.f64 (*.f64 x (*.f64 x 9)) (*.f64 x -12))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 x -12) 2) (pow.f64 (*.f64 3 x) 4)) (-.f64 (*.f64 x -12) (*.f64 x (*.f64 x 9))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (*.f64 3 x) (fma.f64 3 x -4)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (*.f64 3 x) (fma.f64 3 x -4)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (*.f64 3 x) (fma.f64 3 x -4))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (hypot.f64 (*.f64 3 x) (sqrt.f64 (*.f64 x -12))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (*.f64 3 x) (fma.f64 3 x -4)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (pow.f64 (exp.f64 3) x) (fma.f64 3 x -4)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (*.f64 3 x) (fma.f64 3 x -4)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (*.f64 3 x) (fma.f64 3 x -4))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (*.f64 3 x) (fma.f64 3 x -4))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (*.f64 3 x) (fma.f64 3 x -4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 3 (*.f64 x (*.f64 3 x)) (*.f64 x -12))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 3 (*.f64 x -4) (*.f64 x (*.f64 x 9)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 x) (*.f64 3 x) (*.f64 x -12))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 x) -4 (*.f64 x (*.f64 x 9)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -4 (*.f64 3 x) (*.f64 x (*.f64 x 9)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x (*.f64 x 9)) (*.f64 x -12))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x -12) (*.f64 x (*.f64 x 9)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 9 (*.f64 x x) (*.f64 x -12))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (*.f64 3 x) 4)) (pow.f64 (cbrt.f64 (*.f64 3 x)) 2) (*.f64 x -12))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x -12)) 2) (cbrt.f64 (*.f64 x -12)) (*.f64 x (*.f64 x 9)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x -12)) (sqrt.f64 (*.f64 x -12)) (*.f64 x (*.f64 x 9)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x 9) x (*.f64 x -12))))))

simplify185.0ms (1.9%)

Algorithm
egg-herbie
Rules
778×sqr-pow_binary64
561×cube-prod_binary64
553×fabs-mul_binary64
542×associate-*l*_binary64
434×unswap-sqr_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
09201
118201
232192
369174
4168174
5495174
61761174
73001174
83205174
93417174
103637174
113945174
124347174
134856174
145424174
156112174
166945174
177335174
187621174
197901174
207975174
Stop Event
node limit
Counts
82 → 64
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 -12 x)
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(*.f64 9 (pow.f64 x 2))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(*.f64 9 (pow.f64 x 2))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
Outputs
(*.f64 9 (pow.f64 x 2))
(*.f64 9 (*.f64 x x))
(*.f64 9 (pow.f64 x 2))
(*.f64 9 (*.f64 x x))
(*.f64 9 (pow.f64 x 2))
(*.f64 9 (*.f64 x x))
(*.f64 9 (pow.f64 x 2))
(*.f64 9 (*.f64 x x))
(*.f64 9 (pow.f64 x 2))
(*.f64 9 (*.f64 x x))
(*.f64 9 (pow.f64 x 2))
(*.f64 9 (*.f64 x x))
(*.f64 9 (pow.f64 x 2))
(*.f64 9 (*.f64 x x))
(*.f64 9 (pow.f64 x 2))
(*.f64 9 (*.f64 x x))
(*.f64 9 (pow.f64 x 2))
(*.f64 9 (*.f64 x x))
(*.f64 9 (pow.f64 x 2))
(*.f64 9 (*.f64 x x))
(*.f64 9 (pow.f64 x 2))
(*.f64 9 (*.f64 x x))
(*.f64 9 (pow.f64 x 2))
(*.f64 9 (*.f64 x x))
(*.f64 -12 x)
(*.f64 x -12)
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 9 (*.f64 x x) (*.f64 x -12))
(*.f64 x (+.f64 (*.f64 9 x) -12))
(*.f64 x (fma.f64 9 x -12))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 9 (*.f64 x x) (*.f64 x -12))
(*.f64 x (+.f64 (*.f64 9 x) -12))
(*.f64 x (fma.f64 9 x -12))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 9 (*.f64 x x) (*.f64 x -12))
(*.f64 x (+.f64 (*.f64 9 x) -12))
(*.f64 x (fma.f64 9 x -12))
(*.f64 9 (pow.f64 x 2))
(*.f64 9 (*.f64 x x))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 9 (*.f64 x x) (*.f64 x -12))
(*.f64 x (+.f64 (*.f64 9 x) -12))
(*.f64 x (fma.f64 9 x -12))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 9 (*.f64 x x) (*.f64 x -12))
(*.f64 x (+.f64 (*.f64 9 x) -12))
(*.f64 x (fma.f64 9 x -12))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 9 (*.f64 x x) (*.f64 x -12))
(*.f64 x (+.f64 (*.f64 9 x) -12))
(*.f64 x (fma.f64 9 x -12))
(*.f64 9 (pow.f64 x 2))
(*.f64 9 (*.f64 x x))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 9 (*.f64 x x) (*.f64 x -12))
(*.f64 x (+.f64 (*.f64 9 x) -12))
(*.f64 x (fma.f64 9 x -12))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 9 (*.f64 x x) (*.f64 x -12))
(*.f64 x (+.f64 (*.f64 9 x) -12))
(*.f64 x (fma.f64 9 x -12))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 9 (*.f64 x x) (*.f64 x -12))
(*.f64 x (+.f64 (*.f64 9 x) -12))
(*.f64 x (fma.f64 9 x -12))

localize6.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 12 to 9 computations (25% saved)

series1.0ms (0%)

Counts
1 → 12
Calls

3 calls:

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

rewrite123.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
635×pow1_binary64
598×add-log-exp_binary64
598×log1p-expm1-u_binary64
598×expm1-log1p-u_binary64
589×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
065
11325
215685
Stop Event
node limit
Counts
1 → 32
Calls
Call 1
Inputs
(+.f64 (*.f64 x -12) 3)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (fma.f64 x -12 3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (*.f64 x -12) 2) (fma.f64 x -12 -3)) (/.f64 9 (fma.f64 x -12 -3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 x -12 3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 x -12 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 x -12 3)) (pow.f64 (cbrt.f64 (fma.f64 x -12 3)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 x -12 3)) 2) (cbrt.f64 (fma.f64 x -12 3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 x -12 3)) (sqrt.f64 (fma.f64 x -12 3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 27 (*.f64 -1728 (pow.f64 x 3))) (/.f64 1 (+.f64 (pow.f64 (*.f64 x -12) 2) (-.f64 9 (*.f64 x -36)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (*.f64 x -12) 2) -9) (/.f64 1 (fma.f64 x -12 -3)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 (*.f64 x -12) 2) (-.f64 9 (*.f64 x -36))) (+.f64 27 (*.f64 -1728 (pow.f64 x 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 x -12 -3) (+.f64 (pow.f64 (*.f64 x -12) 2) -9)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 27 (*.f64 -1728 (pow.f64 x 3))) (+.f64 (pow.f64 (*.f64 x -12) 2) (-.f64 9 (*.f64 x -36))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 27 (*.f64 -1728 (pow.f64 x 3))) (+.f64 9 (-.f64 (pow.f64 (*.f64 x -12) 2) (*.f64 x -36))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 x -12) 2) -9) (fma.f64 x -12 -3))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 27 (*.f64 -1728 (pow.f64 x 3)))) (neg.f64 (+.f64 (pow.f64 (*.f64 x -12) 2) (-.f64 9 (*.f64 x -36)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 x -12) 2) -9)) (neg.f64 (fma.f64 x -12 -3)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 9 (pow.f64 (*.f64 x -12) 2)) (-.f64 3 (*.f64 x -12)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 x -12 3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 x -12 3) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 x -12 3)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 x -12 3)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 x -12 3) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 x -12 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 x -12 3) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 x -12 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 x -12 3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 x -12 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x -12 3)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -12 x 3)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x -12) 3)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x -12)) 2) (cbrt.f64 (*.f64 x -12)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x -12)) (sqrt.f64 (*.f64 x -12)) 3)))))

simplify9.0ms (0.1%)

Algorithm
egg-herbie
Rules
fma-def_binary64
+-commutative_binary64
*-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0754
1954
21054
Stop Event
saturated
Counts
44 → 36
Calls
Call 1
Inputs
3
(+.f64 (*.f64 -12 x) 3)
(+.f64 (*.f64 -12 x) 3)
(+.f64 (*.f64 -12 x) 3)
(*.f64 -12 x)
(+.f64 3 (*.f64 -12 x))
(+.f64 3 (*.f64 -12 x))
(+.f64 3 (*.f64 -12 x))
(*.f64 -12 x)
(+.f64 3 (*.f64 -12 x))
(+.f64 3 (*.f64 -12 x))
(+.f64 3 (*.f64 -12 x))
Outputs
3
(+.f64 (*.f64 -12 x) 3)
(fma.f64 -12 x 3)
(+.f64 (*.f64 -12 x) 3)
(fma.f64 -12 x 3)
(+.f64 (*.f64 -12 x) 3)
(fma.f64 -12 x 3)
(*.f64 -12 x)
(+.f64 3 (*.f64 -12 x))
(fma.f64 -12 x 3)
(+.f64 3 (*.f64 -12 x))
(fma.f64 -12 x 3)
(+.f64 3 (*.f64 -12 x))
(fma.f64 -12 x 3)
(*.f64 -12 x)
(+.f64 3 (*.f64 -12 x))
(fma.f64 -12 x 3)
(+.f64 3 (*.f64 -12 x))
(fma.f64 -12 x 3)
(+.f64 3 (*.f64 -12 x))
(fma.f64 -12 x 3)

localize55.0ms (0.6%)

Local error

Found 2 expressions with local error:

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

Compiled 27 to 19 computations (29.6% saved)

series2.0ms (0%)

Counts
2 → 24
Calls

6 calls:

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

rewrite81.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
520×pow1_binary64
500×add-sqr-sqrt_binary64
480×add-log-exp_binary64
480×log1p-expm1-u_binary64
480×expm1-log1p-u_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0617
112314
2137814
Stop Event
node limit
Counts
2 → 22
Calls
Call 1
Inputs
(*.f64 x (*.f64 x 3))
(*.f64 3 (*.f64 x (*.f64 x 3)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 x (*.f64 x 3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (*.f64 x 3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x (*.f64 x 3)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 x (*.f64 x 3))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (sqrt.f64 3)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 x (*.f64 x 3)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 x) (*.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 x (*.f64 x 3)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x (*.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 x (*.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 x (*.f64 x 3))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 9 (*.f64 x x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x 3) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 9 (*.f64 x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 9 (*.f64 x x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (cbrt.f64 (*.f64 x 3)) 2) 3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 9 (*.f64 x x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (*.f64 9 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 9 (*.f64 x x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 9 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 9 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 9 (*.f64 x x))))))))

simplify166.0ms (1.7%)

Algorithm
egg-herbie
Rules
2020×unswap-sqr_binary64
1080×sqr-pow_binary64
640×fabs-mul_binary64
612×pow-sqr_binary64
610×cube-prod_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
08168
115168
230168
362168
4159168
5507168
6699168
71113168
81213168
91347168
101516168
111761168
122074168
132444168
142901168
153490168
164200168
175064168
185490168
195806168
206112168
216188168
226224168
Stop Event
node limit
Counts
46 → 26
Calls
Call 1
Inputs
(*.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 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))
Outputs
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (*.f64 x x))
(*.f64 x (*.f64 3 x))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (*.f64 x x))
(*.f64 x (*.f64 3 x))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (*.f64 x x))
(*.f64 x (*.f64 3 x))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (*.f64 x x))
(*.f64 x (*.f64 3 x))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (*.f64 x x))
(*.f64 x (*.f64 3 x))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (*.f64 x x))
(*.f64 x (*.f64 3 x))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (*.f64 x x))
(*.f64 x (*.f64 3 x))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (*.f64 x x))
(*.f64 x (*.f64 3 x))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (*.f64 x x))
(*.f64 x (*.f64 3 x))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (*.f64 x x))
(*.f64 x (*.f64 3 x))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (*.f64 x x))
(*.f64 x (*.f64 3 x))
(*.f64 3 (pow.f64 x 2))
(*.f64 3 (*.f64 x x))
(*.f64 x (*.f64 3 x))
(*.f64 9 (pow.f64 x 2))
(*.f64 (*.f64 x x) 9)
(*.f64 x (*.f64 x 9))
(*.f64 9 (*.f64 x x))
(*.f64 9 (pow.f64 x 2))
(*.f64 (*.f64 x x) 9)
(*.f64 x (*.f64 x 9))
(*.f64 9 (*.f64 x x))
(*.f64 9 (pow.f64 x 2))
(*.f64 (*.f64 x x) 9)
(*.f64 x (*.f64 x 9))
(*.f64 9 (*.f64 x x))
(*.f64 9 (pow.f64 x 2))
(*.f64 (*.f64 x x) 9)
(*.f64 x (*.f64 x 9))
(*.f64 9 (*.f64 x x))
(*.f64 9 (pow.f64 x 2))
(*.f64 (*.f64 x x) 9)
(*.f64 x (*.f64 x 9))
(*.f64 9 (*.f64 x x))
(*.f64 9 (pow.f64 x 2))
(*.f64 (*.f64 x x) 9)
(*.f64 x (*.f64 x 9))
(*.f64 9 (*.f64 x x))
(*.f64 9 (pow.f64 x 2))
(*.f64 (*.f64 x x) 9)
(*.f64 x (*.f64 x 9))
(*.f64 9 (*.f64 x x))
(*.f64 9 (pow.f64 x 2))
(*.f64 (*.f64 x x) 9)
(*.f64 x (*.f64 x 9))
(*.f64 9 (*.f64 x x))
(*.f64 9 (pow.f64 x 2))
(*.f64 (*.f64 x x) 9)
(*.f64 x (*.f64 x 9))
(*.f64 9 (*.f64 x x))
(*.f64 9 (pow.f64 x 2))
(*.f64 (*.f64 x x) 9)
(*.f64 x (*.f64 x 9))
(*.f64 9 (*.f64 x x))
(*.f64 9 (pow.f64 x 2))
(*.f64 (*.f64 x x) 9)
(*.f64 x (*.f64 x 9))
(*.f64 9 (*.f64 x x))
(*.f64 9 (pow.f64 x 2))
(*.f64 (*.f64 x x) 9)
(*.f64 x (*.f64 x 9))
(*.f64 9 (*.f64 x x))

localize41.0ms (0.4%)

Local error

Found 2 expressions with local error:

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

Compiled 24 to 13 computations (45.8% saved)

series2.0ms (0%)

Counts
2 → 24
Calls

6 calls:

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

rewrite84.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
856×pow1_binary64
804×add-log-exp_binary64
804×log1p-expm1-u_binary64
804×expm1-log1p-u_binary64
788×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0818
117517
2224617
Stop Event
node limit
Counts
2 → 51
Calls
Call 1
Inputs
(*.f64 9 (*.f64 x x))
(+.f64 (*.f64 9 (*.f64 x x)) (*.f64 -12 x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 9 (*.f64 x x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 9 (*.f64 x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 9 (*.f64 x x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x 3) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 729 (pow.f64 (*.f64 x x) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 81 (pow.f64 x 4)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 9) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 729 (pow.f64 (*.f64 x x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 9 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 9 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 9 (*.f64 x x))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 x (+.f64 (*.f64 9 x) -12))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (*.f64 81 (pow.f64 x 4)) (*.f64 x (-.f64 (*.f64 9 x) -12))) (/.f64 (*.f64 (*.f64 x x) 144) (*.f64 x (-.f64 (*.f64 9 x) -12))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (+.f64 (*.f64 9 x) -12))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (+.f64 -12 (*.f64 9 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (+.f64 (*.f64 9 x) -12)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 x (+.f64 (*.f64 9 x) -12)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 x (+.f64 (*.f64 9 x) -12))) (pow.f64 (cbrt.f64 (*.f64 x (+.f64 (*.f64 9 x) -12))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 x (+.f64 (*.f64 9 x) -12))) 2) (cbrt.f64 (*.f64 x (+.f64 (*.f64 9 x) -12))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (hypot.f64 (*.f64 x 3) (sqrt.f64 (*.f64 x -12))) (hypot.f64 (*.f64 x 3) (sqrt.f64 (*.f64 x -12))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 729 (pow.f64 (*.f64 x x) 3)) (*.f64 -1728 (pow.f64 x 3))) (/.f64 1 (+.f64 (*.f64 81 (pow.f64 x 4)) (*.f64 (*.f64 x -12) (-.f64 (*.f64 x -12) (*.f64 9 (*.f64 x x)))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 81 (pow.f64 x 4)) (*.f64 (*.f64 x x) 144)) (/.f64 1 (*.f64 x (-.f64 (*.f64 9 x) -12))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (*.f64 81 (pow.f64 x 4)) (*.f64 (*.f64 x -12) (-.f64 (*.f64 x -12) (*.f64 9 (*.f64 x x))))) (+.f64 (*.f64 729 (pow.f64 (*.f64 x x) 3)) (*.f64 -1728 (pow.f64 x 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (*.f64 x (-.f64 (*.f64 9 x) -12)) (-.f64 (*.f64 81 (pow.f64 x 4)) (*.f64 (*.f64 x x) 144))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 729 (pow.f64 (*.f64 x x) 3)) (*.f64 -1728 (pow.f64 x 3))) (+.f64 (*.f64 81 (pow.f64 x 4)) (*.f64 (*.f64 x -12) (-.f64 (*.f64 x -12) (*.f64 9 (*.f64 x x))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 729 (pow.f64 (*.f64 x x) 3)) (*.f64 -1728 (pow.f64 x 3))) (+.f64 (*.f64 (*.f64 x x) 144) (-.f64 (*.f64 81 (pow.f64 x 4)) (*.f64 9 (*.f64 (*.f64 x x) (*.f64 x -12))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 81 (pow.f64 x 4)) (*.f64 (*.f64 x x) 144)) (*.f64 x (-.f64 (*.f64 9 x) -12)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (*.f64 729 (pow.f64 (*.f64 x x) 3)) (*.f64 -1728 (pow.f64 x 3)))) (neg.f64 (+.f64 (*.f64 81 (pow.f64 x 4)) (*.f64 (*.f64 x -12) (-.f64 (*.f64 x -12) (*.f64 9 (*.f64 x x)))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (*.f64 81 (pow.f64 x 4)) (*.f64 (*.f64 x x) 144))) (neg.f64 (*.f64 x (-.f64 (*.f64 9 x) -12))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (*.f64 x x) 144) (*.f64 81 (pow.f64 x 4))) (-.f64 (*.f64 x -12) (*.f64 9 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (+.f64 (*.f64 9 x) -12)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x (+.f64 (*.f64 9 x) -12)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 x (+.f64 (*.f64 9 x) -12))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (hypot.f64 (*.f64 x 3) (sqrt.f64 (*.f64 x -12))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 x (+.f64 (*.f64 9 x) -12)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (*.f64 x (+.f64 (*.f64 9 x) -12))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 x (+.f64 (*.f64 9 x) -12)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x (+.f64 (*.f64 9 x) -12))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 x (+.f64 (*.f64 9 x) -12))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 x (+.f64 (*.f64 9 x) -12))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 9 (*.f64 x x) (*.f64 x -12))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x -12 (*.f64 9 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x x) 9 (*.f64 x -12))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -12 x (*.f64 9 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 9 (*.f64 x x)) (*.f64 x -12))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 x -12) (*.f64 9 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 81 (pow.f64 x 4))) (cbrt.f64 (*.f64 9 (*.f64 x x))) (*.f64 x -12))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 x -12)) 2) (cbrt.f64 (*.f64 x -12)) (*.f64 9 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 x 3) (*.f64 x 3) (*.f64 x -12))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 x -12)) (sqrt.f64 (*.f64 x -12)) (*.f64 9 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 9 x) x (*.f64 x -12))))))

simplify200.0ms (2%)

Algorithm
egg-herbie
Rules
778×sqr-pow_binary64
561×cube-prod_binary64
553×fabs-mul_binary64
542×associate-*l*_binary64
434×unswap-sqr_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
09201
118201
232192
369174
4168174
5495174
61761174
73001174
83205174
93417174
103637174
113945174
124347174
134856174
145424174
156112174
166945174
177335174
187621174
197901174
207975174
Stop Event
node limit
Counts
75 → 57
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 -12 x)
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(*.f64 9 (pow.f64 x 2))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(*.f64 9 (pow.f64 x 2))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
Outputs
(*.f64 9 (pow.f64 x 2))
(*.f64 9 (*.f64 x x))
(*.f64 9 (pow.f64 x 2))
(*.f64 9 (*.f64 x x))
(*.f64 9 (pow.f64 x 2))
(*.f64 9 (*.f64 x x))
(*.f64 9 (pow.f64 x 2))
(*.f64 9 (*.f64 x x))
(*.f64 9 (pow.f64 x 2))
(*.f64 9 (*.f64 x x))
(*.f64 9 (pow.f64 x 2))
(*.f64 9 (*.f64 x x))
(*.f64 9 (pow.f64 x 2))
(*.f64 9 (*.f64 x x))
(*.f64 9 (pow.f64 x 2))
(*.f64 9 (*.f64 x x))
(*.f64 9 (pow.f64 x 2))
(*.f64 9 (*.f64 x x))
(*.f64 9 (pow.f64 x 2))
(*.f64 9 (*.f64 x x))
(*.f64 9 (pow.f64 x 2))
(*.f64 9 (*.f64 x x))
(*.f64 9 (pow.f64 x 2))
(*.f64 9 (*.f64 x x))
(*.f64 -12 x)
(*.f64 x -12)
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 9 (*.f64 x x) (*.f64 x -12))
(*.f64 x (+.f64 (*.f64 9 x) -12))
(*.f64 x (fma.f64 9 x -12))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 9 (*.f64 x x) (*.f64 x -12))
(*.f64 x (+.f64 (*.f64 9 x) -12))
(*.f64 x (fma.f64 9 x -12))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 9 (*.f64 x x) (*.f64 x -12))
(*.f64 x (+.f64 (*.f64 9 x) -12))
(*.f64 x (fma.f64 9 x -12))
(*.f64 9 (pow.f64 x 2))
(*.f64 9 (*.f64 x x))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 9 (*.f64 x x) (*.f64 x -12))
(*.f64 x (+.f64 (*.f64 9 x) -12))
(*.f64 x (fma.f64 9 x -12))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 9 (*.f64 x x) (*.f64 x -12))
(*.f64 x (+.f64 (*.f64 9 x) -12))
(*.f64 x (fma.f64 9 x -12))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 9 (*.f64 x x) (*.f64 x -12))
(*.f64 x (+.f64 (*.f64 9 x) -12))
(*.f64 x (fma.f64 9 x -12))
(*.f64 9 (pow.f64 x 2))
(*.f64 9 (*.f64 x x))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 9 (*.f64 x x) (*.f64 x -12))
(*.f64 x (+.f64 (*.f64 9 x) -12))
(*.f64 x (fma.f64 9 x -12))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 9 (*.f64 x x) (*.f64 x -12))
(*.f64 x (+.f64 (*.f64 9 x) -12))
(*.f64 x (fma.f64 9 x -12))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 9 (*.f64 x x) (*.f64 x -12))
(*.f64 x (+.f64 (*.f64 9 x) -12))
(*.f64 x (fma.f64 9 x -12))

localize68.0ms (0.7%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(*.f64 (+.f64 (*.f64 729 (pow.f64 x 3)) -1728) x)
0.2b
(*.f64 729 (pow.f64 x 3))
0.2b
(*.f64 81 (*.f64 x x))
10.9b
(/.f64 (*.f64 (+.f64 (*.f64 729 (pow.f64 x 3)) -1728) x) (+.f64 (*.f64 81 (*.f64 x x)) (+.f64 144 (*.f64 x 108))))
Compiler

Compiled 80 to 57 computations (28.8% saved)

series20.0ms (0.2%)

Counts
4 → 36
Calls

12 calls:

TimeVariablePointExpression
5.0ms
x
@-inf
(*.f64 (+.f64 (*.f64 729 (pow.f64 x 3)) -1728) x)
5.0ms
x
@inf
(/.f64 (*.f64 (+.f64 (*.f64 729 (pow.f64 x 3)) -1728) x) (+.f64 (*.f64 81 (*.f64 x x)) (+.f64 144 (*.f64 x 108))))
2.0ms
x
@0
(/.f64 (*.f64 (+.f64 (*.f64 729 (pow.f64 x 3)) -1728) x) (+.f64 (*.f64 81 (*.f64 x x)) (+.f64 144 (*.f64 x 108))))
1.0ms
x
@-inf
(/.f64 (*.f64 (+.f64 (*.f64 729 (pow.f64 x 3)) -1728) x) (+.f64 (*.f64 81 (*.f64 x x)) (+.f64 144 (*.f64 x 108))))
1.0ms
x
@inf
(*.f64 729 (pow.f64 x 3))

rewrite127.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
584×fma-def_binary64
390×fma-neg_binary64
326×expm1-udef_binary64
326×log1p-udef_binary64
250×log-pow_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01852
141550
2538950
Stop Event
node limit
Counts
4 → 98
Calls
Call 1
Inputs
(/.f64 (*.f64 (+.f64 (*.f64 729 (pow.f64 x 3)) -1728) x) (+.f64 (*.f64 81 (*.f64 x x)) (+.f64 144 (*.f64 x 108))))
(*.f64 81 (*.f64 x x))
(*.f64 729 (pow.f64 x 3))
(*.f64 (+.f64 (*.f64 729 (pow.f64 x 3)) -1728) x)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (/.f64 (fma.f64 729 (pow.f64 x 3) -1728) (fma.f64 x 108 (fma.f64 x (*.f64 x 81) 144))) x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 (fma.f64 729 (pow.f64 x 3) -1728) (/.f64 1 (fma.f64 x 108 (fma.f64 x (*.f64 x 81) 144)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 729 (pow.f64 x 3) -1728) (/.f64 1 (/.f64 (fma.f64 x 108 (fma.f64 x (*.f64 x 81) 144)) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 729 (pow.f64 x 3) -1728) (*.f64 x (/.f64 1 (fma.f64 x 108 (fma.f64 x (*.f64 x 81) 144)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (fma.f64 729 (pow.f64 x 3) -1728)) (/.f64 1 (fma.f64 x 108 (fma.f64 x (*.f64 x 81) 144))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 (fma.f64 729 (pow.f64 x 3) -1728) (fma.f64 x 108 (fma.f64 x (*.f64 x 81) 144))) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (/.f64 (fma.f64 729 (pow.f64 x 3) -1728) (fma.f64 x 108 (fma.f64 x (*.f64 x 81) 144))) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (/.f64 (fma.f64 729 (pow.f64 x 3) -1728) (fma.f64 x 108 (fma.f64 x (*.f64 x 81) 144))) x)) (pow.f64 (cbrt.f64 (*.f64 (/.f64 (fma.f64 729 (pow.f64 x 3) -1728) (fma.f64 x 108 (fma.f64 x (*.f64 x 81) 144))) x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 (/.f64 (fma.f64 729 (pow.f64 x 3) -1728) (fma.f64 x 108 (fma.f64 x (*.f64 x 81) 144))) x)) 2) (cbrt.f64 (*.f64 (/.f64 (fma.f64 729 (pow.f64 x 3) -1728) (fma.f64 x 108 (fma.f64 x (*.f64 x 81) 144))) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (*.f64 x (fma.f64 729 (pow.f64 x 3) -1728)) 2)) (*.f64 (cbrt.f64 (*.f64 x (fma.f64 729 (pow.f64 x 3) -1728))) (/.f64 1 (fma.f64 x 108 (fma.f64 x (*.f64 x 81) 144)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (/.f64 (fma.f64 729 (pow.f64 x 3) -1728) (fma.f64 x 108 (fma.f64 x (*.f64 x 81) 144))) x)) (sqrt.f64 (*.f64 (/.f64 (fma.f64 729 (pow.f64 x 3) -1728) (fma.f64 x 108 (fma.f64 x (*.f64 x 81) 144))) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 x (fma.f64 729 (pow.f64 x 3) -1728))) (*.f64 (sqrt.f64 (*.f64 x (fma.f64 729 (pow.f64 x 3) -1728))) (/.f64 1 (fma.f64 x 108 (fma.f64 x (*.f64 x 81) 144)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (neg.f64 (fma.f64 729 (pow.f64 x 3) -1728))) (/.f64 1 (neg.f64 (fma.f64 x 108 (fma.f64 x (*.f64 x 81) 144)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (fma.f64 x 108 (fma.f64 x (*.f64 x 81) 144))) (*.f64 x (fma.f64 729 (pow.f64 x 3) -1728)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x 1) (/.f64 (fma.f64 729 (pow.f64 x 3) -1728) (fma.f64 x 108 (fma.f64 x (*.f64 x 81) 144))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (fma.f64 729 (pow.f64 x 3) -1728) (fma.f64 x 108 (fma.f64 x (*.f64 x 81) 144))) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (fma.f64 729 (pow.f64 x 3) -1728) 1) (/.f64 x (fma.f64 x 108 (fma.f64 x (*.f64 x 81) 144))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (pow.f64 (*.f64 x (fma.f64 729 (pow.f64 x 3) -1728)) 2)) 1) (/.f64 (cbrt.f64 (*.f64 x (fma.f64 729 (pow.f64 x 3) -1728))) (fma.f64 x 108 (fma.f64 x (*.f64 x 81) 144))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (*.f64 x (fma.f64 729 (pow.f64 x 3) -1728))) 1) (/.f64 (sqrt.f64 (*.f64 x (fma.f64 729 (pow.f64 x 3) -1728))) (fma.f64 x 108 (fma.f64 x (*.f64 x 81) 144))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x (pow.f64 (cbrt.f64 (fma.f64 x 108 (fma.f64 x (*.f64 x 81) 144))) 2)) (/.f64 (fma.f64 729 (pow.f64 x 3) -1728) (cbrt.f64 (fma.f64 x 108 (fma.f64 x (*.f64 x 81) 144)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (fma.f64 729 (pow.f64 x 3) -1728) (pow.f64 (cbrt.f64 (fma.f64 x 108 (fma.f64 x (*.f64 x 81) 144))) 2)) (/.f64 x (cbrt.f64 (fma.f64 x 108 (fma.f64 x (*.f64 x 81) 144)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (pow.f64 (cbrt.f64 (fma.f64 x 108 (fma.f64 x (*.f64 x 81) 144))) 2)) (/.f64 (*.f64 x (fma.f64 729 (pow.f64 x 3) -1728)) (cbrt.f64 (fma.f64 x 108 (fma.f64 x (*.f64 x 81) 144)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (pow.f64 (*.f64 x (fma.f64 729 (pow.f64 x 3) -1728)) 2)) (pow.f64 (cbrt.f64 (fma.f64 x 108 (fma.f64 x (*.f64 x 81) 144))) 2)) (cbrt.f64 (*.f64 (/.f64 (fma.f64 729 (pow.f64 x 3) -1728) (fma.f64 x 108 (fma.f64 x (*.f64 x 81) 144))) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (*.f64 x (fma.f64 729 (pow.f64 x 3) -1728))) (pow.f64 (cbrt.f64 (fma.f64 x 108 (fma.f64 x (*.f64 x 81) 144))) 2)) (/.f64 (sqrt.f64 (*.f64 x (fma.f64 729 (pow.f64 x 3) -1728))) (cbrt.f64 (fma.f64 x 108 (fma.f64 x (*.f64 x 81) 144)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x (hypot.f64 (*.f64 x 9) (sqrt.f64 (fma.f64 x 108 144)))) (/.f64 (fma.f64 729 (pow.f64 x 3) -1728) (hypot.f64 (*.f64 x 9) (sqrt.f64 (fma.f64 x 108 144)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (fma.f64 729 (pow.f64 x 3) -1728) (hypot.f64 (*.f64 x 9) (sqrt.f64 (fma.f64 x 108 144)))) (/.f64 x (hypot.f64 (*.f64 x 9) (sqrt.f64 (fma.f64 x 108 144)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (hypot.f64 (*.f64 x 9) (sqrt.f64 (fma.f64 x 108 144)))) (/.f64 (*.f64 x (fma.f64 729 (pow.f64 x 3) -1728)) (hypot.f64 (*.f64 x 9) (sqrt.f64 (fma.f64 x 108 144)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (pow.f64 (*.f64 x (fma.f64 729 (pow.f64 x 3) -1728)) 2)) (hypot.f64 (*.f64 x 9) (sqrt.f64 (fma.f64 x 108 144)))) (/.f64 (cbrt.f64 (*.f64 x (fma.f64 729 (pow.f64 x 3) -1728))) (hypot.f64 (*.f64 x 9) (sqrt.f64 (fma.f64 x 108 144)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 x (fma.f64 729 (pow.f64 x 3) -1728)) (fma.f64 (pow.f64 x 6) 531441 (pow.f64 (fma.f64 x 108 144) 3))) (fma.f64 (fma.f64 x 108 144) (-.f64 (fma.f64 x 108 144) (*.f64 81 (*.f64 x x))) (*.f64 (pow.f64 x 4) 6561)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 x (fma.f64 729 (pow.f64 x 3) -1728)) (-.f64 (*.f64 (pow.f64 x 4) 6561) (pow.f64 (fma.f64 x 108 144) 2))) (-.f64 (*.f64 81 (*.f64 x x)) (fma.f64 x 108 144)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 (fma.f64 729 (pow.f64 x 3) -1728) (fma.f64 x 108 (fma.f64 x (*.f64 x 81) 144))) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 (fma.f64 729 (pow.f64 x 3) -1728) (fma.f64 x 108 (fma.f64 x (*.f64 x 81) 144))) x) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (/.f64 (fma.f64 729 (pow.f64 x 3) -1728) (fma.f64 x 108 (fma.f64 x (*.f64 x 81) 144))) x)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (/.f64 (fma.f64 729 (pow.f64 x 3) -1728) (fma.f64 x 108 (fma.f64 x (*.f64 x 81) 144))) x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 x 108 (fma.f64 x (*.f64 x 81) 144)) (*.f64 x (fma.f64 729 (pow.f64 x 3) -1728))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (*.f64 x (fma.f64 729 (pow.f64 x 3) -1728)) (neg.f64 (fma.f64 x 108 (fma.f64 x (*.f64 x 81) 144)))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (/.f64 (fma.f64 729 (pow.f64 x 3) -1728) (fma.f64 x 108 (fma.f64 x (*.f64 x 81) 144))) x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (*.f64 (/.f64 (fma.f64 729 (pow.f64 x 3) -1728) (fma.f64 x 108 (fma.f64 x (*.f64 x 81) 144))) x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (/.f64 (fma.f64 729 (pow.f64 x 3) -1728) (fma.f64 x 108 (fma.f64 x (*.f64 x 81) 144))) x))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (/.f64 (fma.f64 729 (pow.f64 x 3) -1728) (fma.f64 x 108 (fma.f64 x (*.f64 x 81) 144))) x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (*.f64 x (fma.f64 729 (pow.f64 x 3) -1728)) 3) (pow.f64 (fma.f64 x 108 (fma.f64 x (*.f64 x 81) 144)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (/.f64 (fma.f64 729 (pow.f64 x 3) -1728) (fma.f64 x 108 (fma.f64 x (*.f64 x 81) 144))) x)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (/.f64 (fma.f64 729 (pow.f64 x 3) -1728) (fma.f64 x 108 (fma.f64 x (*.f64 x 81) 144))) x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (/.f64 (fma.f64 729 (pow.f64 x 3) -1728) (fma.f64 x 108 (fma.f64 x (*.f64 x 81) 144))) x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (/.f64 (fma.f64 729 (pow.f64 x 3) -1728) (fma.f64 x 108 (fma.f64 x (*.f64 x 81) 144))) x)) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 81 (*.f64 x x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 81 (*.f64 x x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 81 (*.f64 x x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x 9) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 x 6) 531441) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 x 4) 6561))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (*.f64 x x)) 81))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 81 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 x 6) 531441))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 81 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 81 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (fma.f64 2 (log.f64 x) (log1p.f64 80)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (fma.f64 2 (log.f64 x) (log1p.f64 80)) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (pow.f64 (*.f64 x 9) 3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x 9) 3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x 9) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 27 (pow.f64 x 3/2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (pow.f64 (*.f64 x 9) 3) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 x 6) 531441))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 729) (pow.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (pow.f64 (*.f64 x 9) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (*.f64 x 9) 3) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (*.f64 x 9) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (*.f64 x 9) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (pow.f64 (*.f64 x 9) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 x 9) 3)) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 (*.f64 x 9) 3) x) (*.f64 -1728 x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 -1728 x) (*.f64 (pow.f64 (*.f64 x 9) 3) x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x (pow.f64 (*.f64 x 9) 3)) (*.f64 x -1728))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x -1728) (*.f64 x (pow.f64 (*.f64 x 9) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 x (fma.f64 729 (pow.f64 x 3) -1728)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (fma.f64 (pow.f64 (pow.f64 x 3) 3) 387420489 -5159780352) x) (-.f64 (fma.f64 (pow.f64 x 6) 531441 2985984) (*.f64 (pow.f64 x 3) -1259712)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (fma.f64 (pow.f64 x 6) 531441 -2985984) x) (fma.f64 729 (pow.f64 x 3) 1728))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (fma.f64 (pow.f64 (pow.f64 x 3) 3) 387420489 -5159780352)) (-.f64 (fma.f64 (pow.f64 x 6) 531441 2985984) (*.f64 (pow.f64 x 3) -1259712)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (fma.f64 (pow.f64 x 6) 531441 -2985984)) (fma.f64 729 (pow.f64 x 3) 1728))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (fma.f64 729 (pow.f64 x 3) -1728)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x (fma.f64 729 (pow.f64 x 3) -1728)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 x (fma.f64 729 (pow.f64 x 3) -1728))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 x (fma.f64 729 (pow.f64 x 3) -1728))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 x (fma.f64 729 (pow.f64 x 3) -1728)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 x) (fma.f64 729 (pow.f64 x 3) -1728)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 x (fma.f64 729 (pow.f64 x 3) -1728)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 x (fma.f64 729 (pow.f64 x 3) -1728)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 x 3) (pow.f64 (fma.f64 729 (pow.f64 x 3) -1728) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (fma.f64 729 (pow.f64 x 3) -1728) 3) (pow.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x (fma.f64 729 (pow.f64 x 3) -1728))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 x (fma.f64 729 (pow.f64 x 3) -1728))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 x (fma.f64 729 (pow.f64 x 3) -1728))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 x (fma.f64 729 (pow.f64 x 3) -1728))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x (pow.f64 (*.f64 x 9) 3) (*.f64 x -1728))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 x -1728 (*.f64 x (pow.f64 (*.f64 x 9) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (*.f64 x 9) 3) x (*.f64 -1728 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1728 x (*.f64 (pow.f64 (*.f64 x 9) 3) x))))))

simplify218.0ms (2.2%)

Algorithm
egg-herbie
Rules
1076×sqr-pow_binary64
511×pow-sqr_binary64
501×associate-*l*_binary64
446×cube-prod_binary64
409×*-commutative_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
018318
134318
264309
3149291
4450291
51682291
62839291
73094291
83283291
93494291
103773291
114138291
124617291
135148291
145778291
156529291
166839291
177063291
187263291
197319291
207341291
Stop Event
node limit
Counts
134 → 110
Calls
Call 1
Inputs
(*.f64 -12 x)
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(*.f64 9 (pow.f64 x 2))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(*.f64 9 (pow.f64 x 2))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(*.f64 81 (pow.f64 x 2))
(*.f64 81 (pow.f64 x 2))
(*.f64 81 (pow.f64 x 2))
(*.f64 81 (pow.f64 x 2))
(*.f64 81 (pow.f64 x 2))
(*.f64 81 (pow.f64 x 2))
(*.f64 81 (pow.f64 x 2))
(*.f64 81 (pow.f64 x 2))
(*.f64 81 (pow.f64 x 2))
(*.f64 81 (pow.f64 x 2))
(*.f64 81 (pow.f64 x 2))
(*.f64 81 (pow.f64 x 2))
(*.f64 -1728 x)
(+.f64 (*.f64 -1728 x) (*.f64 729 (pow.f64 x 4)))
(+.f64 (*.f64 -1728 x) (*.f64 729 (pow.f64 x 4)))
(+.f64 (*.f64 -1728 x) (*.f64 729 (pow.f64 x 4)))
(*.f64 729 (pow.f64 x 4))
(+.f64 (*.f64 -1728 x) (*.f64 729 (pow.f64 x 4)))
(+.f64 (*.f64 -1728 x) (*.f64 729 (pow.f64 x 4)))
(+.f64 (*.f64 -1728 x) (*.f64 729 (pow.f64 x 4)))
(*.f64 729 (pow.f64 x 4))
(+.f64 (*.f64 -1728 x) (*.f64 729 (pow.f64 x 4)))
(+.f64 (*.f64 -1728 x) (*.f64 729 (pow.f64 x 4)))
(+.f64 (*.f64 -1728 x) (*.f64 729 (pow.f64 x 4)))
Outputs
(*.f64 -12 x)
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 -12 x (*.f64 x (*.f64 x 9)))
(*.f64 x (+.f64 -12 (*.f64 x 9)))
(*.f64 x (fma.f64 x 9 -12))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 -12 x (*.f64 x (*.f64 x 9)))
(*.f64 x (+.f64 -12 (*.f64 x 9)))
(*.f64 x (fma.f64 x 9 -12))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 -12 x (*.f64 x (*.f64 x 9)))
(*.f64 x (+.f64 -12 (*.f64 x 9)))
(*.f64 x (fma.f64 x 9 -12))
(*.f64 9 (pow.f64 x 2))
(*.f64 9 (*.f64 x x))
(*.f64 x (*.f64 x 9))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 -12 x (*.f64 x (*.f64 x 9)))
(*.f64 x (+.f64 -12 (*.f64 x 9)))
(*.f64 x (fma.f64 x 9 -12))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 -12 x (*.f64 x (*.f64 x 9)))
(*.f64 x (+.f64 -12 (*.f64 x 9)))
(*.f64 x (fma.f64 x 9 -12))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 -12 x (*.f64 x (*.f64 x 9)))
(*.f64 x (+.f64 -12 (*.f64 x 9)))
(*.f64 x (fma.f64 x 9 -12))
(*.f64 9 (pow.f64 x 2))
(*.f64 9 (*.f64 x x))
(*.f64 x (*.f64 x 9))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 -12 x (*.f64 x (*.f64 x 9)))
(*.f64 x (+.f64 -12 (*.f64 x 9)))
(*.f64 x (fma.f64 x 9 -12))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 -12 x (*.f64 x (*.f64 x 9)))
(*.f64 x (+.f64 -12 (*.f64 x 9)))
(*.f64 x (fma.f64 x 9 -12))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(fma.f64 -12 x (*.f64 9 (*.f64 x x)))
(fma.f64 -12 x (*.f64 x (*.f64 x 9)))
(*.f64 x (+.f64 -12 (*.f64 x 9)))
(*.f64 x (fma.f64 x 9 -12))
(*.f64 81 (pow.f64 x 2))
(*.f64 (*.f64 x x) 81)
(*.f64 x (*.f64 x 81))
(*.f64 81 (pow.f64 x 2))
(*.f64 (*.f64 x x) 81)
(*.f64 x (*.f64 x 81))
(*.f64 81 (pow.f64 x 2))
(*.f64 (*.f64 x x) 81)
(*.f64 x (*.f64 x 81))
(*.f64 81 (pow.f64 x 2))
(*.f64 (*.f64 x x) 81)
(*.f64 x (*.f64 x 81))
(*.f64 81 (pow.f64 x 2))
(*.f64 (*.f64 x x) 81)
(*.f64 x (*.f64 x 81))
(*.f64 81 (pow.f64 x 2))
(*.f64 (*.f64 x x) 81)
(*.f64 x (*.f64 x 81))
(*.f64 81 (pow.f64 x 2))
(*.f64 (*.f64 x x) 81)
(*.f64 x (*.f64 x 81))
(*.f64 81 (pow.f64 x 2))
(*.f64 (*.f64 x x) 81)
(*.f64 x (*.f64 x 81))
(*.f64 81 (pow.f64 x 2))
(*.f64 (*.f64 x x) 81)
(*.f64 x (*.f64 x 81))
(*.f64 81 (pow.f64 x 2))
(*.f64 (*.f64 x x) 81)
(*.f64 x (*.f64 x 81))
(*.f64 81 (pow.f64 x 2))
(*.f64 (*.f64 x x) 81)
(*.f64 x (*.f64 x 81))
(*.f64 81 (pow.f64 x 2))
(*.f64 (*.f64 x x) 81)
(*.f64 x (*.f64 x 81))
(*.f64 -1728 x)
(*.f64 x -1728)
(+.f64 (*.f64 -1728 x) (*.f64 729 (pow.f64 x 4)))
(fma.f64 -1728 x (*.f64 729 (pow.f64 x 4)))
(fma.f64 x -1728 (*.f64 729 (pow.f64 x 4)))
(fma.f64 729 (pow.f64 x 4) (*.f64 x -1728))
(+.f64 (*.f64 -1728 x) (*.f64 729 (pow.f64 x 4)))
(fma.f64 -1728 x (*.f64 729 (pow.f64 x 4)))
(fma.f64 x -1728 (*.f64 729 (pow.f64 x 4)))
(fma.f64 729 (pow.f64 x 4) (*.f64 x -1728))
(+.f64 (*.f64 -1728 x) (*.f64 729 (pow.f64 x 4)))
(fma.f64 -1728 x (*.f64 729 (pow.f64 x 4)))
(fma.f64 x -1728 (*.f64 729 (pow.f64 x 4)))
(fma.f64 729 (pow.f64 x 4) (*.f64 x -1728))
(*.f64 729 (pow.f64 x 4))
(+.f64 (*.f64 -1728 x) (*.f64 729 (pow.f64 x 4)))
(fma.f64 -1728 x (*.f64 729 (pow.f64 x 4)))
(fma.f64 x -1728 (*.f64 729 (pow.f64 x 4)))
(fma.f64 729 (pow.f64 x 4) (*.f64 x -1728))
(+.f64 (*.f64 -1728 x) (*.f64 729 (pow.f64 x 4)))
(fma.f64 -1728 x (*.f64 729 (pow.f64 x 4)))
(fma.f64 x -1728 (*.f64 729 (pow.f64 x 4)))
(fma.f64 729 (pow.f64 x 4) (*.f64 x -1728))
(+.f64 (*.f64 -1728 x) (*.f64 729 (pow.f64 x 4)))
(fma.f64 -1728 x (*.f64 729 (pow.f64 x 4)))
(fma.f64 x -1728 (*.f64 729 (pow.f64 x 4)))
(fma.f64 729 (pow.f64 x 4) (*.f64 x -1728))
(*.f64 729 (pow.f64 x 4))
(+.f64 (*.f64 -1728 x) (*.f64 729 (pow.f64 x 4)))
(fma.f64 -1728 x (*.f64 729 (pow.f64 x 4)))
(fma.f64 x -1728 (*.f64 729 (pow.f64 x 4)))
(fma.f64 729 (pow.f64 x 4) (*.f64 x -1728))
(+.f64 (*.f64 -1728 x) (*.f64 729 (pow.f64 x 4)))
(fma.f64 -1728 x (*.f64 729 (pow.f64 x 4)))
(fma.f64 x -1728 (*.f64 729 (pow.f64 x 4)))
(fma.f64 729 (pow.f64 x 4) (*.f64 x -1728))
(+.f64 (*.f64 -1728 x) (*.f64 729 (pow.f64 x 4)))
(fma.f64 -1728 x (*.f64 729 (pow.f64 x 4)))
(fma.f64 x -1728 (*.f64 729 (pow.f64 x 4)))
(fma.f64 729 (pow.f64 x 4) (*.f64 x -1728))

eval145.0ms (1.5%)

Compiler

Compiled 5032 to 3847 computations (23.5% saved)

prune43.0ms (0.4%)

Pruning

12 alts after pruning (3 fresh and 9 done)

PrunedKeptTotal
New2912293
Fresh011
Picked101
Done099
Total29212304
Error
0b
Counts
304 → 12
Alt Table
Click to see full alt table
StatusErrorProgram
51.9b
(/.f64 (*.f64 729 (pow.f64 x 4)) (+.f64 (*.f64 81 (*.f64 x x)) (+.f64 144 (*.f64 x 108))))
1.8b
(+.f64 (*.f64 3 (*.f64 x (*.f64 x 3))) 3)
61.7b
(*.f64 x -12)
22.0b
(+.f64 (*.f64 x -12) 3)
0.1b
(+.f64 (*.f64 3 (*.f64 x (-.f64 (*.f64 3 x) 4))) 3)
22.0b
(*.f64 3 (+.f64 (*.f64 x -4) 1))
40.5b
(+.f64 (*.f64 9 (*.f64 x x)) (*.f64 -12 x))
40.5b
(*.f64 x (*.f64 x 9))
22.2b
3
0.2b
(+.f64 (+.f64 (*.f64 (*.f64 3 x) (*.f64 3 x)) (*.f64 (*.f64 3 x) -4)) 3)
40.4b
(*.f64 x (-.f64 (*.f64 9 x) 12))
1.7b
(+.f64 (*.f64 9 (*.f64 x x)) 3)
Compiler

Compiled 108 to 85 computations (21.3% saved)

regimes77.0ms (0.8%)

Counts
28 → 1
Calls
Call 1
Inputs
3
3
3
(*.f64 x -12)
(+.f64 (*.f64 x -12) 3)
(+.f64 (*.f64 -12 x) 3)
(*.f64 x (*.f64 x 9))
(+.f64 (*.f64 9 (*.f64 x x)) 3)
(*.f64 x (-.f64 (*.f64 9 x) 12))
(*.f64 3 (+.f64 (*.f64 x -4) 1))
(+.f64 (*.f64 3 (*.f64 x (*.f64 x 3))) 3)
(+.f64 (*.f64 9 (*.f64 x x)) (*.f64 -12 x))
(+.f64 (*.f64 3 (*.f64 x (*.f64 x 3))) 3)
(+.f64 (*.f64 (*.f64 x 9) x) (*.f64 -12 x))
(+.f64 (*.f64 3 (*.f64 x (-.f64 (*.f64 3 x) 4))) 3)
(*.f64 3 (+.f64 (-.f64 (*.f64 3 (*.f64 x x)) (*.f64 x 4)) 1))
(*.f64 3 (+.f64 (-.f64 (*.f64 (*.f64 x 3) x) (*.f64 x 4)) 1))
(+.f64 (+.f64 (*.f64 (*.f64 3 x) (*.f64 3 x)) (*.f64 (*.f64 3 x) -4)) 3)
(*.f64 9 (pow.f64 x 2))
(*.f64 x (fma.f64 x 9 -12))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(+.f64 (*.f64 3 (*.f64 x (fma.f64 x 3 -4))) 3)
(/.f64 (*.f64 729 (pow.f64 x 4)) (+.f64 (*.f64 81 (*.f64 x x)) (+.f64 144 (*.f64 x 108))))
(/.f64 (*.f64 (+.f64 (*.f64 729 (pow.f64 x 3)) -1728) x) (+.f64 (*.f64 81 (*.f64 x x)) (+.f64 144 (*.f64 x 108))))
(fma.f64 x (fma.f64 x 9 -12) 3)
(fma.f64 (*.f64 x (fma.f64 x 3 -4)) 3 3)
(*.f64 3 (+.f64 (-.f64 (pow.f64 (*.f64 x (sqrt.f64 3)) 2) (*.f64 x 4)) 1))
(*.f64 3 (+.f64 (fma.f64 (pow.f64 (cbrt.f64 (*.f64 x 3)) 2) (*.f64 (cbrt.f64 (*.f64 x 3)) x) (*.f64 x -4)) 1))
Outputs
(fma.f64 x (fma.f64 x 9 -12) 3)
Calls

7 calls:

16.0ms
x
16.0ms
(-.f64 (*.f64 (*.f64 x 3) x) (*.f64 x 4))
15.0ms
(-.f64 (*.f64 (*.f64 x 3) x) (*.f64 x 4))
7.0ms
(*.f64 3 (+.f64 (-.f64 (*.f64 (*.f64 x 3) x) (*.f64 x 4)) 1))
5.0ms
(*.f64 3 (+.f64 (-.f64 (*.f64 (*.f64 x 3) x) (*.f64 x 4)) 1))
Results
ErrorSegmentsBranch
0.1b1x
0.1b1(*.f64 3 (+.f64 (-.f64 (*.f64 (*.f64 x 3) x) (*.f64 x 4)) 1))
0.1b1(*.f64 3 (+.f64 (-.f64 (*.f64 (*.f64 x 3) x) (*.f64 x 4)) 1))
0.1b1(+.f64 (-.f64 (*.f64 (*.f64 x 3) x) (*.f64 x 4)) 1)
0.1b1(+.f64 (-.f64 (*.f64 (*.f64 x 3) x) (*.f64 x 4)) 1)
0.1b1(-.f64 (*.f64 (*.f64 x 3) x) (*.f64 x 4))
0.1b1(-.f64 (*.f64 (*.f64 x 3) x) (*.f64 x 4))
Compiler

Compiled 323 to 243 computations (24.8% saved)

regimes70.0ms (0.7%)

Counts
24 → 1
Calls
Call 1
Inputs
3
3
3
(*.f64 x -12)
(+.f64 (*.f64 x -12) 3)
(+.f64 (*.f64 -12 x) 3)
(*.f64 x (*.f64 x 9))
(+.f64 (*.f64 9 (*.f64 x x)) 3)
(*.f64 x (-.f64 (*.f64 9 x) 12))
(*.f64 3 (+.f64 (*.f64 x -4) 1))
(+.f64 (*.f64 3 (*.f64 x (*.f64 x 3))) 3)
(+.f64 (*.f64 9 (*.f64 x x)) (*.f64 -12 x))
(+.f64 (*.f64 3 (*.f64 x (*.f64 x 3))) 3)
(+.f64 (*.f64 (*.f64 x 9) x) (*.f64 -12 x))
(+.f64 (*.f64 3 (*.f64 x (-.f64 (*.f64 3 x) 4))) 3)
(*.f64 3 (+.f64 (-.f64 (*.f64 3 (*.f64 x x)) (*.f64 x 4)) 1))
(*.f64 3 (+.f64 (-.f64 (*.f64 (*.f64 x 3) x) (*.f64 x 4)) 1))
(+.f64 (+.f64 (*.f64 (*.f64 3 x) (*.f64 3 x)) (*.f64 (*.f64 3 x) -4)) 3)
(*.f64 9 (pow.f64 x 2))
(*.f64 x (fma.f64 x 9 -12))
(+.f64 (*.f64 -12 x) (*.f64 9 (pow.f64 x 2)))
(+.f64 (*.f64 3 (*.f64 x (fma.f64 x 3 -4))) 3)
(/.f64 (*.f64 729 (pow.f64 x 4)) (+.f64 (*.f64 81 (*.f64 x x)) (+.f64 144 (*.f64 x 108))))
(/.f64 (*.f64 (+.f64 (*.f64 729 (pow.f64 x 3)) -1728) x) (+.f64 (*.f64 81 (*.f64 x x)) (+.f64 144 (*.f64 x 108))))
Outputs
(*.f64 3 (+.f64 (-.f64 (*.f64 3 (*.f64 x x)) (*.f64 x 4)) 1))
Calls

7 calls:

14.0ms
x
14.0ms
(-.f64 (*.f64 (*.f64 x 3) x) (*.f64 x 4))
14.0ms
(-.f64 (*.f64 (*.f64 x 3) x) (*.f64 x 4))
6.0ms
(*.f64 3 (+.f64 (-.f64 (*.f64 (*.f64 x 3) x) (*.f64 x 4)) 1))
5.0ms
(*.f64 3 (+.f64 (-.f64 (*.f64 (*.f64 x 3) x) (*.f64 x 4)) 1))
Results
ErrorSegmentsBranch
0.1b1x
0.1b1(*.f64 3 (+.f64 (-.f64 (*.f64 (*.f64 x 3) x) (*.f64 x 4)) 1))
0.1b1(*.f64 3 (+.f64 (-.f64 (*.f64 (*.f64 x 3) x) (*.f64 x 4)) 1))
0.1b1(+.f64 (-.f64 (*.f64 (*.f64 x 3) x) (*.f64 x 4)) 1)
0.1b1(+.f64 (-.f64 (*.f64 (*.f64 x 3) x) (*.f64 x 4)) 1)
0.1b1(-.f64 (*.f64 (*.f64 x 3) x) (*.f64 x 4))
0.1b1(-.f64 (*.f64 (*.f64 x 3) x) (*.f64 x 4))
Compiler

Compiled 273 to 203 computations (25.6% saved)

regimes12.0ms (0.1%)

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

1 calls:

8.0ms
x
Results
ErrorSegmentsBranch
0.1b1x
Compiler

Compiled 92 to 68 computations (26.1% saved)

regimes15.0ms (0.1%)

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

1 calls:

12.0ms
x
Results
ErrorSegmentsBranch
1.7b1x
Compiler

Compiled 81 to 59 computations (27.2% saved)

regimes25.0ms (0.2%)

Counts
7 → 3
Calls
Call 1
Inputs
3
3
3
(*.f64 x -12)
(+.f64 (*.f64 x -12) 3)
(+.f64 (*.f64 -12 x) 3)
(*.f64 x (*.f64 x 9))
Outputs
(*.f64 x (*.f64 x 9))
(+.f64 (*.f64 x -12) 3)
(*.f64 x (*.f64 x 9))
Calls

1 calls:

23.0ms
x
Results
ErrorSegmentsBranch
1.2b3x
Compiler

Compiled 24 to 18 computations (25% saved)

bsearch49.0ms (0.5%)

Algorithm
binary-search
Steps
TimeLeftRight
21.0ms
0.06185657187349748
3844635467.1486115
28.0ms
-7.202409520586058
-0.3039628827436206
Compiler

Compiled 18 to 14 computations (22.2% saved)

regimes6.0ms (0.1%)

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

1 calls:

5.0ms
x
Results
ErrorSegmentsBranch
22.0b1x
Compiler

Compiled 19 to 15 computations (21.1% saved)

regimes5.0ms (0%)

Accuracy

Total -39.7b remaining (-178.9%)

Threshold costs -39.7b (-178.9%)

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

1 calls:

4.0ms
x
Results
ErrorSegmentsBranch
22.2b1x
Compiler

Compiled 9 to 7 computations (22.2% saved)

simplify11.0ms (0.1%)

Algorithm
egg-herbie
Rules
12×*-commutative_binary64
+-commutative_binary64
sub-neg_binary64
distribute-rgt-neg-in_binary64
cancel-sign-sub-inv_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
03395
15795
26895
37295
47495
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(fma.f64 x (fma.f64 x 9 -12) 3)
(*.f64 3 (+.f64 (-.f64 (*.f64 3 (*.f64 x x)) (*.f64 x 4)) 1))
(+.f64 (*.f64 3 (*.f64 x (-.f64 (*.f64 3 x) 4))) 3)
(+.f64 (*.f64 9 (*.f64 x x)) 3)
(if (<=.f64 x -8109192208270271/1125899906842624) (*.f64 x (*.f64 x 9)) (if (<=.f64 x 4457235744638393/72057594037927936) (+.f64 (*.f64 x -12) 3) (*.f64 x (*.f64 x 9))))
(+.f64 (*.f64 x -12) 3)
3
Outputs
(fma.f64 x (fma.f64 x 9 -12) 3)
(*.f64 3 (+.f64 (-.f64 (*.f64 3 (*.f64 x x)) (*.f64 x 4)) 1))
(*.f64 3 (+.f64 (+.f64 (*.f64 3 (*.f64 x x)) (*.f64 x -4)) 1))
(+.f64 (*.f64 3 (*.f64 x (-.f64 (*.f64 3 x) 4))) 3)
(+.f64 3 (*.f64 3 (*.f64 x (+.f64 (*.f64 x 3) -4))))
(+.f64 (*.f64 9 (*.f64 x x)) 3)
(+.f64 3 (*.f64 9 (*.f64 x x)))
(if (<=.f64 x -8109192208270271/1125899906842624) (*.f64 x (*.f64 x 9)) (if (<=.f64 x 4457235744638393/72057594037927936) (+.f64 (*.f64 x -12) 3) (*.f64 x (*.f64 x 9))))
(if (<=.f64 x -8109192208270271/1125899906842624) (*.f64 x (*.f64 x 9)) (if (<=.f64 x 4457235744638393/72057594037927936) (+.f64 3 (*.f64 x -12)) (*.f64 x (*.f64 x 9))))
(+.f64 (*.f64 x -12) 3)
(+.f64 3 (*.f64 x -12))
3
Compiler

Compiled 74 to 57 computations (23% saved)

soundness175.0ms (1.8%)

Algorithm
egg-herbie
Rules
954×fma-def_binary64
722×fma-neg_binary64
150×cancel-sign-sub-inv_binary64
108×distribute-rgt-in_binary64
76×associate-*l*_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
01119
13314
27612
318612
43809
55459
68729
715339
824219
928029
1029139
1130399
1230459
1330459
Stop Event
saturated
Compiler

Compiled 185 to 151 computations (18.4% saved)

end53.0ms (0.5%)

Compiler

Compiled 68 to 50 computations (26.5% saved)

Profiling

Loading profile data...