Details

Time bar (total: 3.3s)

analyze79.0ms (2.4%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.9%0.1%0
0%99.9%0.1%1
0%99.9%0.1%2
0%99.9%0.1%3
0%99.9%0.1%4
25%74.9%0.1%5
37.5%62.4%0.1%6
50%46.8%3.2%7
59.3%35.9%4.8%8
67.1%25.8%7.1%9
72.6%19.1%8.3%10
76.9%13.5%9.7%11
79.8%9.9%10.3%12
Compiler

Compiled 14 to 10 computations (28.6% saved)

sample865.0ms (26.4%)

Results
806.0ms8150×body256valid
22.0ms219×body256invalid
18.0ms74×body1024valid
5.0ms31×body512valid
0.0msbody2048valid

preprocess23.0ms (0.7%)

Algorithm
egg-herbie
Rules
48×fma-def_binary64
15×*-commutative_binary64
14×+-commutative_binary64
10×associate-+r+_binary64
10×distribute-lft-out_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01526
13620
28814
313914
414914
515114
022
Stop Event
saturated
saturated
Calls
Call 1
Inputs
0
1
Outputs
0
1
Call 2
Inputs
(+.f64 (+.f64 (*.f64 d1 10) (*.f64 d1 d2)) (*.f64 d1 20))
(+.f64 (+.f64 (*.f64 d2 10) (*.f64 d2 d1)) (*.f64 d2 20))
Outputs
(+.f64 (+.f64 (*.f64 d1 10) (*.f64 d1 d2)) (*.f64 d1 20))
(+.f64 (*.f64 d1 (+.f64 10 d2)) (*.f64 d1 20))
(*.f64 d1 (+.f64 (+.f64 10 d2) 20))
(*.f64 d1 (+.f64 d2 30))
(+.f64 (+.f64 (*.f64 d2 10) (*.f64 d2 d1)) (*.f64 d2 20))
(+.f64 (*.f64 d2 (+.f64 10 d1)) (*.f64 d2 20))
(*.f64 d2 (+.f64 (+.f64 d1 10) 20))
(*.f64 d2 (+.f64 d1 30))
Compiler

Compiled 15 to 11 computations (26.7% saved)

simplify8.0ms (0.2%)

Algorithm
egg-herbie
Rules
24×fma-def_binary64
*-commutative_binary64
+-commutative_binary64
associate-+r+_binary64
distribute-lft-out_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01013
12010
2467
3737
4787
5797
Stop Event
saturated
Counts
1 → 2
Calls
Call 1
Inputs
(+.f64 (+.f64 (*.f64 d1 10) (*.f64 d1 d2)) (*.f64 d1 20))
Outputs
(+.f64 (+.f64 (*.f64 d1 10) (*.f64 d1 d2)) (*.f64 d1 20))
(+.f64 (*.f64 d1 (+.f64 10 d2)) (*.f64 d1 20))
(*.f64 d1 (+.f64 (+.f64 10 d2) 20))
(*.f64 d1 (+.f64 d2 30))

eval1.0ms (0%)

Compiler

Compiled 18 to 12 computations (33.3% saved)

prune1.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New112
Fresh101
Picked000
Done000
Total213
Error
0.0b
Counts
3 → 1
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(*.f64 d1 (+.f64 d2 30))
Compiler

Compiled 7 to 5 computations (28.6% saved)

localize10.0ms (0.3%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(*.f64 d1 (+.f64 d2 30))
0.0b
(*.f64 d1 (+.f64 d2 30))
Compiler

Compiled 13 to 8 computations (38.5% saved)

series4.0ms (0.1%)

Counts
1 → 20
Calls

6 calls:

TimeVariablePointExpression
1.0ms
d2
@inf
(*.f64 d1 (+.f64 d2 30))
1.0ms
d1
@0
(*.f64 d1 (+.f64 d2 30))
1.0ms
d1
@-inf
(*.f64 d1 (+.f64 d2 30))
1.0ms
d1
@inf
(*.f64 d1 (+.f64 d2 30))
0.0ms
d2
@0
(*.f64 d1 (+.f64 d2 30))

rewrite50.0ms (1.5%)

Algorithm
batch-egg-rewrite
Rules
725×pow1_binary64
679×add-log-exp_binary64
679×log1p-expm1-u_binary64
679×expm1-log1p-u_binary64
666×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
067
11367
218207
Stop Event
node limit
Counts
1 → 24
Calls
Call 1
Inputs
(*.f64 d1 (+.f64 d2 30))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 d2) (*.f64 d1 30))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 30) (*.f64 d1 d2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 d1 d2) 1) (*.f64 (*.f64 d1 30) 1))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 d1 (+.f64 d2 30))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 d1 d2) 3) (pow.f64 (*.f64 d1 30) 3)) (+.f64 (*.f64 (*.f64 d1 d2) (*.f64 d1 d2)) (-.f64 (*.f64 (*.f64 d1 30) (*.f64 d1 30)) (*.f64 (*.f64 d1 d2) (*.f64 d1 30)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (*.f64 d1 d2) (*.f64 d1 d2)) (*.f64 (*.f64 d1 30) (*.f64 d1 30))) (-.f64 (*.f64 d1 d2) (*.f64 d1 30)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 27000 (pow.f64 d2 3)) d1) (fma.f64 d2 d2 (-.f64 900 (*.f64 d2 30))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (fma.f64 d2 d2 -900) d1) (+.f64 d2 -30))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (+.f64 27000 (pow.f64 d2 3))) (fma.f64 d2 d2 (-.f64 900 (*.f64 d2 30))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (fma.f64 d2 d2 -900)) (+.f64 d2 -30))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 d1 (+.f64 d2 30)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 d1 (+.f64 d2 30)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 d1 (+.f64 d2 30))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 d1 (+.f64 d2 30))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 d1 (+.f64 d2 30)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 d1) (+.f64 d2 30)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 d1 (+.f64 d2 30)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 d1 3) (pow.f64 (+.f64 d2 30) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (+.f64 d2 30) 3) (pow.f64 d1 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d1 d2 (*.f64 d1 30))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d2 d1 (*.f64 d1 30))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 d1 (+.f64 d2 30))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 d1 (+.f64 d2 30))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 d1 (+.f64 d2 30))))))))

simplify9.0ms (0.3%)

Algorithm
egg-herbie
Rules
fma-def_binary64
*-commutative_binary64
+-commutative_binary64
distribute-lft-in_binary64
distribute-rgt-in_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
09131
117131
220131
Stop Event
saturated
Counts
44 → 30
Calls
Call 1
Inputs
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 30 d1)
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
Outputs
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 30 d1)
(*.f64 d1 30)
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 30 d2))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 30 d2))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 30 d2))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 30 d2))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 30 d2))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 30 d2))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 30 d2))

eval6.0ms (0.2%)

Compiler

Compiled 278 to 175 computations (37.1% saved)

prune19.0ms (0.6%)

Pruning

8 alts after pruning (7 fresh and 1 done)

PrunedKeptTotal
New23730
Fresh000
Picked011
Done000
Total23831
Error
0.0b
Counts
31 → 8
Alt Table
Click to see full alt table
StatusErrorProgram
1.4b
(pow.f64 (cbrt.f64 (*.f64 d1 (+.f64 d2 30))) 3)
24.2b
(*.f64 d1 30)
12.0b
(/.f64 (*.f64 d1 (fma.f64 d2 d2 -900)) (+.f64 d2 -30))
15.7b
(/.f64 (*.f64 d1 (+.f64 27000 (pow.f64 d2 3))) (fma.f64 d2 d2 (-.f64 900 (*.f64 d2 30))))
0.0b
(*.f64 d1 (+.f64 d2 30))
0.0b
(fma.f64 d1 d2 (*.f64 d1 30))
40.3b
(cbrt.f64 (pow.f64 (*.f64 d1 (+.f64 d2 30)) 3))
38.4b
(*.f64 d2 d1)
Compiler

Compiled 143 to 103 computations (28% saved)

localize6.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(fma.f64 d1 d2 (*.f64 d1 30))
0.0b
(fma.f64 d1 d2 (*.f64 d1 30))
Compiler

Compiled 14 to 8 computations (42.9% saved)

series4.0ms (0.1%)

Counts
1 → 24
Calls

6 calls:

TimeVariablePointExpression
1.0ms
d1
@-inf
(fma.f64 d1 d2 (*.f64 d1 30))
1.0ms
d1
@0
(fma.f64 d1 d2 (*.f64 d1 30))
1.0ms
d1
@inf
(fma.f64 d1 d2 (*.f64 d1 30))
0.0ms
d2
@-inf
(fma.f64 d1 d2 (*.f64 d1 30))
0.0ms
d2
@0
(fma.f64 d1 d2 (*.f64 d1 30))

rewrite41.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
553×pow1_binary64
510×add-log-exp_binary64
510×log1p-expm1-u_binary64
510×expm1-log1p-u_binary64
499×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
068
11207
213657
Stop Event
node limit
Counts
1 → 22
Calls
Call 1
Inputs
(fma.f64 d1 d2 (*.f64 d1 30))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 30) (*.f64 d1 d2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 d2) (*.f64 d1 30))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 d1 d2) 1) (*.f64 d1 30))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 d1 (+.f64 d2 30))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 d1 (+.f64 d2 30))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (+.f64 d2 30)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 d1 (+.f64 d2 30)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 d1 (+.f64 d2 30))) (pow.f64 (cbrt.f64 (*.f64 d1 (+.f64 d2 30))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 d1 (+.f64 d2 30))) 2) (cbrt.f64 (*.f64 d1 (+.f64 d2 30))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 d1 (+.f64 d2 30))) (sqrt.f64 (*.f64 d1 (+.f64 d2 30))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 d1 d2) 3) (pow.f64 (*.f64 d1 30) 3)) (+.f64 (*.f64 (*.f64 d1 d2) (*.f64 d1 d2)) (-.f64 (*.f64 (*.f64 d1 d1) 900) (*.f64 (*.f64 d1 d2) (*.f64 d1 30)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (*.f64 d1 d2) (*.f64 d1 d2)) (*.f64 (*.f64 d1 d1) 900)) (-.f64 (*.f64 d1 d2) (*.f64 d1 30)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 d1 (+.f64 d2 30)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 d1 (+.f64 d2 30)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 d1 (+.f64 d2 30))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 d1 (+.f64 d2 30))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 d1 (+.f64 d2 30)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (*.f64 d1 (+.f64 d2 30))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 d1 (+.f64 d2 30)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 d1 (+.f64 d2 30))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 d1 (+.f64 d2 30))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 d1 (+.f64 d2 30))))))))

simplify24.0ms (0.7%)

Algorithm
egg-herbie
Rules
100×fma-neg_binary64
77×fma-def_binary64
31×cancel-sign-sub-inv_binary64
24×distribute-rgt-in_binary64
20×unsub-neg_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
014159
133159
264159
3127159
4213159
5344159
6516159
7557159
Stop Event
saturated
Counts
46 → 28
Calls
Call 1
Inputs
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 d2 30))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 d2) 30) d1))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 d2) 30) d1))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 d2) 30) d1))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 d2) 30) d1))
(*.f64 30 d1)
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
Outputs
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 d2 30))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 d2) 30) d1))
(*.f64 d1 (+.f64 d2 30))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 d2) 30) d1))
(*.f64 d1 (+.f64 d2 30))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 d2) 30) d1))
(*.f64 d1 (+.f64 d2 30))
(*.f64 -1 (*.f64 (-.f64 (*.f64 -1 d2) 30) d1))
(*.f64 d1 (+.f64 d2 30))
(*.f64 30 d1)
(*.f64 d1 30)
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 d2 30))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 d2 30))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 d2 30))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 d2 30))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 d2 30))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 d2 30))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 d2 30))

localize3.0ms (0.1%)

Compiler

Compiled 7 to 3 computations (57.1% saved)

localize3.0ms (0.1%)

Compiler

Compiled 7 to 5 computations (28.6% saved)

localize13.0ms (0.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
7.5b
(/.f64 (*.f64 d1 (fma.f64 d2 d2 -900)) (+.f64 d2 -30))
3.7b
(*.f64 d1 (fma.f64 d2 d2 -900))
3.7b
(*.f64 d1 (fma.f64 d2 d2 -900))
7.5b
(/.f64 (*.f64 d1 (fma.f64 d2 d2 -900)) (+.f64 d2 -30))
Compiler

Compiled 29 to 17 computations (41.4% saved)

series13.0ms (0.4%)

Counts
2 → 48
Calls

12 calls:

TimeVariablePointExpression
6.0ms
d2
@-inf
(/.f64 (*.f64 d1 (fma.f64 d2 d2 -900)) (+.f64 d2 -30))
1.0ms
d1
@0
(/.f64 (*.f64 d1 (fma.f64 d2 d2 -900)) (+.f64 d2 -30))
1.0ms
d2
@inf
(/.f64 (*.f64 d1 (fma.f64 d2 d2 -900)) (+.f64 d2 -30))
1.0ms
d2
@0
(/.f64 (*.f64 d1 (fma.f64 d2 d2 -900)) (+.f64 d2 -30))
1.0ms
d1
@inf
(/.f64 (*.f64 d1 (fma.f64 d2 d2 -900)) (+.f64 d2 -30))

rewrite63.0ms (1.9%)

Algorithm
batch-egg-rewrite
Rules
477×log-prod_binary64
375×exp-prod_binary64
342×prod-exp_binary64
297×pow-prod-down_binary64
256×pow2_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0922
119918
2266018
Stop Event
node limit
Counts
2 → 99
Calls
Call 1
Inputs
(/.f64 (*.f64 d1 (fma.f64 d2 d2 -900)) (+.f64 d2 -30))
(*.f64 d1 (fma.f64 d2 d2 -900))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (/.f64 d1 1) (+.f64 d2 30)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (/.f64 d1 1)) (+.f64 d2 30))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (/.f64 d1 1)) (+.f64 d2 30)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (/.f64 d1 1)) (+.f64 d2 30)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (/.f64 d1 1)) (+.f64 d2 30)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (/.f64 d1 1) (+.f64 d2 30)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 d1 (/.f64 1 (/.f64 1 (+.f64 d2 30))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 d1 (*.f64 (fma.f64 d2 d2 -900) (/.f64 1 (+.f64 d2 -30))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 d2 d2 -900) (*.f64 d1 (/.f64 1 (+.f64 d2 -30))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (fma.f64 d2 d2 -900)) (/.f64 1 (+.f64 d2 -30)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 d1 1) (+.f64 d2 30)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (/.f64 d1 1) (+.f64 d2 30)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (/.f64 d1 1) (+.f64 d2 30))) (pow.f64 (cbrt.f64 (*.f64 (/.f64 d1 1) (+.f64 d2 30))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 (/.f64 d1 1) (+.f64 d2 30))) 2) (cbrt.f64 (*.f64 (/.f64 d1 1) (+.f64 d2 30))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 d1 (fma.f64 d2 d2 -900))) 2) (*.f64 (cbrt.f64 (*.f64 d1 (fma.f64 d2 d2 -900))) (/.f64 1 (+.f64 d2 -30))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (/.f64 d1 1) (+.f64 d2 30))) (sqrt.f64 (*.f64 (/.f64 d1 1) (+.f64 d2 30))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 d1 (fma.f64 d2 d2 -900))) (*.f64 (sqrt.f64 (*.f64 d1 (fma.f64 d2 d2 -900))) (/.f64 1 (+.f64 d2 -30))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (neg.f64 (fma.f64 d2 d2 -900))) (/.f64 1 (+.f64 30 (neg.f64 d2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (+.f64 d2 -30)) (*.f64 d1 (fma.f64 d2 d2 -900)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 d1 1) (+.f64 d2 30))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (fma.f64 d2 d2 -900) 1) (/.f64 d1 (+.f64 d2 -30)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 d1 (+.f64 d2 -30)) (fma.f64 d2 d2 -900))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (*.f64 d1 (fma.f64 d2 d2 -900))) 2) 1) (/.f64 (cbrt.f64 (*.f64 d1 (fma.f64 d2 d2 -900))) (+.f64 d2 -30)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (*.f64 d1 (fma.f64 d2 d2 -900))) 1) (/.f64 (sqrt.f64 (*.f64 d1 (fma.f64 d2 d2 -900))) (+.f64 d2 -30)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 d1 (pow.f64 (cbrt.f64 (+.f64 d2 -30)) 2)) (/.f64 (fma.f64 d2 d2 -900) (cbrt.f64 (+.f64 d2 -30))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (fma.f64 d2 d2 -900) (pow.f64 (cbrt.f64 (+.f64 d2 -30)) 2)) (/.f64 d1 (cbrt.f64 (+.f64 d2 -30))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 d2 -30)) -2) (/.f64 (*.f64 d1 (fma.f64 d2 d2 -900)) (cbrt.f64 (+.f64 d2 -30))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (*.f64 d1 (fma.f64 d2 d2 -900))) 2) (pow.f64 (cbrt.f64 (+.f64 d2 -30)) 2)) (cbrt.f64 (*.f64 (/.f64 d1 1) (+.f64 d2 30))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (*.f64 d1 (fma.f64 d2 d2 -900))) (pow.f64 (cbrt.f64 (+.f64 d2 -30)) 2)) (/.f64 (sqrt.f64 (*.f64 d1 (fma.f64 d2 d2 -900))) (cbrt.f64 (+.f64 d2 -30))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 d1 (sqrt.f64 (+.f64 d2 -30))) (/.f64 (fma.f64 d2 d2 -900) (sqrt.f64 (+.f64 d2 -30))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (fma.f64 d2 d2 -900) (sqrt.f64 (+.f64 d2 -30))) (/.f64 d1 (sqrt.f64 (+.f64 d2 -30))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (+.f64 d2 -30) -1/2) (/.f64 (*.f64 d1 (fma.f64 d2 d2 -900)) (sqrt.f64 (+.f64 d2 -30))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (*.f64 d1 (fma.f64 d2 d2 -900))) 2) (sqrt.f64 (+.f64 d2 -30))) (/.f64 (cbrt.f64 (*.f64 d1 (fma.f64 d2 d2 -900))) (sqrt.f64 (+.f64 d2 -30))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 d1 (fma.f64 d2 d2 -900)) (+.f64 -27000 (pow.f64 d2 3))) (-.f64 (fma.f64 d2 d2 900) (*.f64 d2 -30)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 d1 (fma.f64 d2 d2 -900)) (fma.f64 d2 d2 -900)) (+.f64 d2 30))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 d1 1) (+.f64 d2 30)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 d1 1) (+.f64 d2 30)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 d1 1) (+.f64 d2 30)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (/.f64 d1 1) (+.f64 d2 30))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (/.f64 d1 1) (+.f64 d2 30))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (/.f64 1 (+.f64 d2 30)) d1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (*.f64 (/.f64 d1 1) (+.f64 d2 30))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 (*.f64 d1 (fma.f64 d2 d2 -900)) 3) (pow.f64 (+.f64 d2 -30) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (/.f64 (/.f64 1 (+.f64 d2 30)) d1) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 (/.f64 d1 1) (+.f64 d2 30)))) 2)) (cbrt.f64 (log.f64 (*.f64 (/.f64 d1 1) (+.f64 d2 30)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 (/.f64 d1 1) (+.f64 d2 30))))) (sqrt.f64 (log.f64 (*.f64 (/.f64 d1 1) (+.f64 d2 30)))))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (*.f64 d1 (fma.f64 d2 d2 -900)) (+.f64 30 (neg.f64 d2))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (/.f64 d1 1) (+.f64 d2 30)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (/.f64 d1 1)) (+.f64 d2 30)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (/.f64 d1 1) (+.f64 d2 30)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (/.f64 d1 1) (+.f64 d2 30)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (*.f64 d1 (fma.f64 d2 d2 -900)) 3) (pow.f64 (+.f64 d2 -30) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (/.f64 d1 1) (+.f64 d2 30))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (/.f64 d1 1) (+.f64 d2 30))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 (/.f64 d1 1) (+.f64 d2 30)))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (/.f64 d1 1) (+.f64 d2 30)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (/.f64 d1 1) (+.f64 d2 30)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 (/.f64 1 (+.f64 d2 30)) d1)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (/.f64 d1 1) (+.f64 d2 30))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (*.f64 (log.f64 d1) 1) (neg.f64 (log.f64 (+.f64 d2 30)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (*.f64 (log.f64 (*.f64 d1 (fma.f64 d2 d2 -900))) 1) (log.f64 (+.f64 d2 -30))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (log.f64 (*.f64 d1 (fma.f64 d2 d2 -900))) (*.f64 (log.f64 (+.f64 d2 -30)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (*.f64 (log.f64 (*.f64 d1 (fma.f64 d2 d2 -900))) 1) (*.f64 (log.f64 (+.f64 d2 -30)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (*.f64 d1 (fma.f64 d2 d2 -900))) 1) (neg.f64 (log.f64 (+.f64 d2 -30)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (neg.f64 (log.f64 (+.f64 d2 -30))) (*.f64 (log.f64 (*.f64 d1 (fma.f64 d2 d2 -900))) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (/.f64 d1 1) (+.f64 d2 30))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (/.f64 d1 1) (+.f64 d2 30))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 d1 (fma.f64 d2 d2 -900)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 d2 d2) d1) (*.f64 -900 d1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 (*.f64 d2 d2)) (*.f64 d1 -900))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 d1) (fma.f64 d2 d2 -900))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 d1) (fma.f64 d2 d2 -900)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 d1) (fma.f64 d2 d2 -900)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 d1) (fma.f64 d2 d2 -900)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 d1 (fma.f64 d2 d2 -900)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 d1 (fma.f64 d2 d2 -900)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 d1 (fma.f64 d2 d2 -900)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 d1 (fma.f64 d2 d2 -900)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 d1 (fma.f64 d2 d2 -900))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 d1 (fma.f64 d2 d2 -900))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (*.f64 d1 (fma.f64 d2 d2 -900))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 d1 (fma.f64 d2 d2 -900)))) 2)) (cbrt.f64 (log.f64 (*.f64 d1 (fma.f64 d2 d2 -900)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 d1 (fma.f64 d2 d2 -900))))) (sqrt.f64 (log.f64 (*.f64 d1 (fma.f64 d2 d2 -900)))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 d1 (fma.f64 d2 d2 -900)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 d1) (fma.f64 d2 d2 -900)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 d1 (fma.f64 d2 d2 -900)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 d1 (fma.f64 d2 d2 -900)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d1 (*.f64 d2 d2) (*.f64 d1 -900))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d2 d2) d1 (*.f64 -900 d1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 d1 (fma.f64 d2 d2 -900))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 d1 (fma.f64 d2 d2 -900))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 d1 (fma.f64 d2 d2 -900)) 3)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 d1 (fma.f64 d2 d2 -900)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 d1 (fma.f64 d2 d2 -900)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 d1 (fma.f64 d2 d2 -900))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 d1) 1) (log.f64 (fma.f64 d2 d2 -900))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log.f64 d1) (*.f64 (log.f64 (fma.f64 d2 d2 -900)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 d1) 1) (*.f64 (log.f64 (fma.f64 d2 d2 -900)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (fma.f64 d2 d2 -900)) 1) (log.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log.f64 (fma.f64 d2 d2 -900)) (*.f64 (log.f64 d1) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (fma.f64 d2 d2 -900)) 1) (*.f64 (log.f64 d1) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 d1 (fma.f64 d2 d2 -900))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 d1 (fma.f64 d2 d2 -900))))))))

simplify47.0ms (1.4%)

Algorithm
egg-herbie
Rules
707×associate-*l/_binary64
532×associate-*l*_binary64
435×unswap-sqr_binary64
431×fma-neg_binary64
386×associate-*r*_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
018495
143429
275429
3117429
4250429
5764429
64180429
Stop Event
node limit
Counts
147 → 113
Calls
Call 1
Inputs
(/.f64 (*.f64 (-.f64 (pow.f64 d2 2) 900) d1) (-.f64 d2 30))
(/.f64 (*.f64 (-.f64 (pow.f64 d2 2) 900) d1) (-.f64 d2 30))
(/.f64 (*.f64 (-.f64 (pow.f64 d2 2) 900) d1) (-.f64 d2 30))
(/.f64 (*.f64 (-.f64 (pow.f64 d2 2) 900) d1) (-.f64 d2 30))
(/.f64 (*.f64 (-.f64 (pow.f64 d2 2) 900) d1) (-.f64 d2 30))
(/.f64 (*.f64 (-.f64 (pow.f64 d2 2) 900) d1) (-.f64 d2 30))
(/.f64 (*.f64 (-.f64 (pow.f64 d2 2) 900) d1) (-.f64 d2 30))
(/.f64 (*.f64 (-.f64 (pow.f64 d2 2) 900) d1) (-.f64 d2 30))
(/.f64 (*.f64 (-.f64 (pow.f64 d2 2) 900) d1) (-.f64 d2 30))
(/.f64 (*.f64 (-.f64 (pow.f64 d2 2) 900) d1) (-.f64 d2 30))
(/.f64 (*.f64 (-.f64 (pow.f64 d2 2) 900) d1) (-.f64 d2 30))
(/.f64 (*.f64 (-.f64 (pow.f64 d2 2) 900) d1) (-.f64 d2 30))
(*.f64 30 d1)
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 (-.f64 (pow.f64 d2 2) 900) d1)
(*.f64 (-.f64 (pow.f64 d2 2) 900) d1)
(*.f64 (-.f64 (pow.f64 d2 2) 900) d1)
(*.f64 (-.f64 (pow.f64 d2 2) 900) d1)
(*.f64 (-.f64 (pow.f64 d2 2) 900) d1)
(*.f64 (-.f64 (pow.f64 d2 2) 900) d1)
(*.f64 (-.f64 (pow.f64 d2 2) 900) d1)
(*.f64 (-.f64 (pow.f64 d2 2) 900) d1)
(*.f64 (-.f64 (pow.f64 d2 2) 900) d1)
(*.f64 (-.f64 (pow.f64 d2 2) 900) d1)
(*.f64 (-.f64 (pow.f64 d2 2) 900) d1)
(*.f64 (-.f64 (pow.f64 d2 2) 900) d1)
(*.f64 -900 d1)
(+.f64 (*.f64 -900 d1) (*.f64 (pow.f64 d2 2) d1))
(+.f64 (*.f64 -900 d1) (*.f64 (pow.f64 d2 2) d1))
(+.f64 (*.f64 -900 d1) (*.f64 (pow.f64 d2 2) d1))
(*.f64 (pow.f64 d2 2) d1)
(+.f64 (*.f64 -900 d1) (*.f64 (pow.f64 d2 2) d1))
(+.f64 (*.f64 -900 d1) (*.f64 (pow.f64 d2 2) d1))
(+.f64 (*.f64 -900 d1) (*.f64 (pow.f64 d2 2) d1))
(*.f64 (pow.f64 d2 2) d1)
(+.f64 (*.f64 -900 d1) (*.f64 (pow.f64 d2 2) d1))
(+.f64 (*.f64 -900 d1) (*.f64 (pow.f64 d2 2) d1))
(+.f64 (*.f64 -900 d1) (*.f64 (pow.f64 d2 2) d1))
Outputs
(/.f64 (*.f64 (-.f64 (pow.f64 d2 2) 900) d1) (-.f64 d2 30))
(/.f64 (+.f64 (*.f64 d2 d2) -900) (/.f64 (+.f64 d2 -30) d1))
(*.f64 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)) d1)
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)))
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (-.f64 d2 30)))
(*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (-.f64 d2 30)))
(/.f64 (fma.f64 d2 d2 -900) (/.f64 (+.f64 d2 -30) d1))
(*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30)))
(/.f64 (*.f64 (-.f64 (pow.f64 d2 2) 900) d1) (-.f64 d2 30))
(/.f64 (+.f64 (*.f64 d2 d2) -900) (/.f64 (+.f64 d2 -30) d1))
(*.f64 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)) d1)
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)))
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (-.f64 d2 30)))
(*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (-.f64 d2 30)))
(/.f64 (fma.f64 d2 d2 -900) (/.f64 (+.f64 d2 -30) d1))
(*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30)))
(/.f64 (*.f64 (-.f64 (pow.f64 d2 2) 900) d1) (-.f64 d2 30))
(/.f64 (+.f64 (*.f64 d2 d2) -900) (/.f64 (+.f64 d2 -30) d1))
(*.f64 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)) d1)
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)))
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (-.f64 d2 30)))
(*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (-.f64 d2 30)))
(/.f64 (fma.f64 d2 d2 -900) (/.f64 (+.f64 d2 -30) d1))
(*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30)))
(/.f64 (*.f64 (-.f64 (pow.f64 d2 2) 900) d1) (-.f64 d2 30))
(/.f64 (+.f64 (*.f64 d2 d2) -900) (/.f64 (+.f64 d2 -30) d1))
(*.f64 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)) d1)
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)))
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (-.f64 d2 30)))
(*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (-.f64 d2 30)))
(/.f64 (fma.f64 d2 d2 -900) (/.f64 (+.f64 d2 -30) d1))
(*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30)))
(/.f64 (*.f64 (-.f64 (pow.f64 d2 2) 900) d1) (-.f64 d2 30))
(/.f64 (+.f64 (*.f64 d2 d2) -900) (/.f64 (+.f64 d2 -30) d1))
(*.f64 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)) d1)
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)))
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (-.f64 d2 30)))
(*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (-.f64 d2 30)))
(/.f64 (fma.f64 d2 d2 -900) (/.f64 (+.f64 d2 -30) d1))
(*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30)))
(/.f64 (*.f64 (-.f64 (pow.f64 d2 2) 900) d1) (-.f64 d2 30))
(/.f64 (+.f64 (*.f64 d2 d2) -900) (/.f64 (+.f64 d2 -30) d1))
(*.f64 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)) d1)
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)))
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (-.f64 d2 30)))
(*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (-.f64 d2 30)))
(/.f64 (fma.f64 d2 d2 -900) (/.f64 (+.f64 d2 -30) d1))
(*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30)))
(/.f64 (*.f64 (-.f64 (pow.f64 d2 2) 900) d1) (-.f64 d2 30))
(/.f64 (+.f64 (*.f64 d2 d2) -900) (/.f64 (+.f64 d2 -30) d1))
(*.f64 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)) d1)
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)))
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (-.f64 d2 30)))
(*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (-.f64 d2 30)))
(/.f64 (fma.f64 d2 d2 -900) (/.f64 (+.f64 d2 -30) d1))
(*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30)))
(/.f64 (*.f64 (-.f64 (pow.f64 d2 2) 900) d1) (-.f64 d2 30))
(/.f64 (+.f64 (*.f64 d2 d2) -900) (/.f64 (+.f64 d2 -30) d1))
(*.f64 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)) d1)
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)))
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (-.f64 d2 30)))
(*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (-.f64 d2 30)))
(/.f64 (fma.f64 d2 d2 -900) (/.f64 (+.f64 d2 -30) d1))
(*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30)))
(/.f64 (*.f64 (-.f64 (pow.f64 d2 2) 900) d1) (-.f64 d2 30))
(/.f64 (+.f64 (*.f64 d2 d2) -900) (/.f64 (+.f64 d2 -30) d1))
(*.f64 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)) d1)
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)))
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (-.f64 d2 30)))
(*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (-.f64 d2 30)))
(/.f64 (fma.f64 d2 d2 -900) (/.f64 (+.f64 d2 -30) d1))
(*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30)))
(/.f64 (*.f64 (-.f64 (pow.f64 d2 2) 900) d1) (-.f64 d2 30))
(/.f64 (+.f64 (*.f64 d2 d2) -900) (/.f64 (+.f64 d2 -30) d1))
(*.f64 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)) d1)
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)))
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (-.f64 d2 30)))
(*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (-.f64 d2 30)))
(/.f64 (fma.f64 d2 d2 -900) (/.f64 (+.f64 d2 -30) d1))
(*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30)))
(/.f64 (*.f64 (-.f64 (pow.f64 d2 2) 900) d1) (-.f64 d2 30))
(/.f64 (+.f64 (*.f64 d2 d2) -900) (/.f64 (+.f64 d2 -30) d1))
(*.f64 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)) d1)
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)))
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (-.f64 d2 30)))
(*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (-.f64 d2 30)))
(/.f64 (fma.f64 d2 d2 -900) (/.f64 (+.f64 d2 -30) d1))
(*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30)))
(/.f64 (*.f64 (-.f64 (pow.f64 d2 2) 900) d1) (-.f64 d2 30))
(/.f64 (+.f64 (*.f64 d2 d2) -900) (/.f64 (+.f64 d2 -30) d1))
(*.f64 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)) d1)
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)))
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (-.f64 d2 30)))
(*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (-.f64 d2 30)))
(/.f64 (fma.f64 d2 d2 -900) (/.f64 (+.f64 d2 -30) d1))
(*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30)))
(*.f64 30 d1)
(*.f64 d1 30)
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 d2 30))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 d2 30))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d2 d1)
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 d2 30))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 d2 30))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d2 d1)
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 d2 30))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 d2 30))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 d2 30))
(*.f64 (-.f64 (pow.f64 d2 2) 900) d1)
(*.f64 (+.f64 (*.f64 d2 d2) -900) d1)
(*.f64 (fma.f64 d2 d2 -900) d1)
(*.f64 (-.f64 (pow.f64 d2 2) 900) d1)
(*.f64 (+.f64 (*.f64 d2 d2) -900) d1)
(*.f64 (fma.f64 d2 d2 -900) d1)
(*.f64 (-.f64 (pow.f64 d2 2) 900) d1)
(*.f64 (+.f64 (*.f64 d2 d2) -900) d1)
(*.f64 (fma.f64 d2 d2 -900) d1)
(*.f64 (-.f64 (pow.f64 d2 2) 900) d1)
(*.f64 (+.f64 (*.f64 d2 d2) -900) d1)
(*.f64 (fma.f64 d2 d2 -900) d1)
(*.f64 (-.f64 (pow.f64 d2 2) 900) d1)
(*.f64 (+.f64 (*.f64 d2 d2) -900) d1)
(*.f64 (fma.f64 d2 d2 -900) d1)
(*.f64 (-.f64 (pow.f64 d2 2) 900) d1)
(*.f64 (+.f64 (*.f64 d2 d2) -900) d1)
(*.f64 (fma.f64 d2 d2 -900) d1)
(*.f64 (-.f64 (pow.f64 d2 2) 900) d1)
(*.f64 (+.f64 (*.f64 d2 d2) -900) d1)
(*.f64 (fma.f64 d2 d2 -900) d1)
(*.f64 (-.f64 (pow.f64 d2 2) 900) d1)
(*.f64 (+.f64 (*.f64 d2 d2) -900) d1)
(*.f64 (fma.f64 d2 d2 -900) d1)
(*.f64 (-.f64 (pow.f64 d2 2) 900) d1)
(*.f64 (+.f64 (*.f64 d2 d2) -900) d1)
(*.f64 (fma.f64 d2 d2 -900) d1)
(*.f64 (-.f64 (pow.f64 d2 2) 900) d1)
(*.f64 (+.f64 (*.f64 d2 d2) -900) d1)
(*.f64 (fma.f64 d2 d2 -900) d1)
(*.f64 (-.f64 (pow.f64 d2 2) 900) d1)
(*.f64 (+.f64 (*.f64 d2 d2) -900) d1)
(*.f64 (fma.f64 d2 d2 -900) d1)
(*.f64 (-.f64 (pow.f64 d2 2) 900) d1)
(*.f64 (+.f64 (*.f64 d2 d2) -900) d1)
(*.f64 (fma.f64 d2 d2 -900) d1)
(*.f64 -900 d1)
(*.f64 d1 -900)
(+.f64 (*.f64 -900 d1) (*.f64 (pow.f64 d2 2) d1))
(*.f64 (+.f64 (*.f64 d2 d2) -900) d1)
(*.f64 (fma.f64 d2 d2 -900) d1)
(+.f64 (*.f64 -900 d1) (*.f64 (pow.f64 d2 2) d1))
(*.f64 (+.f64 (*.f64 d2 d2) -900) d1)
(*.f64 (fma.f64 d2 d2 -900) d1)
(+.f64 (*.f64 -900 d1) (*.f64 (pow.f64 d2 2) d1))
(*.f64 (+.f64 (*.f64 d2 d2) -900) d1)
(*.f64 (fma.f64 d2 d2 -900) d1)
(*.f64 (pow.f64 d2 2) d1)
(*.f64 (*.f64 d2 d2) d1)
(*.f64 d2 (*.f64 d2 d1))
(+.f64 (*.f64 -900 d1) (*.f64 (pow.f64 d2 2) d1))
(*.f64 (+.f64 (*.f64 d2 d2) -900) d1)
(*.f64 (fma.f64 d2 d2 -900) d1)
(+.f64 (*.f64 -900 d1) (*.f64 (pow.f64 d2 2) d1))
(*.f64 (+.f64 (*.f64 d2 d2) -900) d1)
(*.f64 (fma.f64 d2 d2 -900) d1)
(+.f64 (*.f64 -900 d1) (*.f64 (pow.f64 d2 2) d1))
(*.f64 (+.f64 (*.f64 d2 d2) -900) d1)
(*.f64 (fma.f64 d2 d2 -900) d1)
(*.f64 (pow.f64 d2 2) d1)
(*.f64 (*.f64 d2 d2) d1)
(*.f64 d2 (*.f64 d2 d1))
(+.f64 (*.f64 -900 d1) (*.f64 (pow.f64 d2 2) d1))
(*.f64 (+.f64 (*.f64 d2 d2) -900) d1)
(*.f64 (fma.f64 d2 d2 -900) d1)
(+.f64 (*.f64 -900 d1) (*.f64 (pow.f64 d2 2) d1))
(*.f64 (+.f64 (*.f64 d2 d2) -900) d1)
(*.f64 (fma.f64 d2 d2 -900) d1)
(+.f64 (*.f64 -900 d1) (*.f64 (pow.f64 d2 2) d1))
(*.f64 (+.f64 (*.f64 d2 d2) -900) d1)
(*.f64 (fma.f64 d2 d2 -900) d1)

localize17.0ms (0.5%)

Local error

Found 6 expressions with local error:

NewErrorProgram
38.8b
(cbrt.f64 (pow.f64 (*.f64 d1 (+.f64 d2 30)) 3))
0.2b
(pow.f64 (*.f64 d1 (+.f64 d2 30)) 3)
0.0b
(*.f64 d1 (+.f64 d2 30))
0.0b
(*.f64 d1 (+.f64 d2 30))
0.2b
(pow.f64 (*.f64 d1 (+.f64 d2 30)) 3)
38.8b
(cbrt.f64 (pow.f64 (*.f64 d1 (+.f64 d2 30)) 3))
Compiler

Compiled 29 to 20 computations (31% saved)

series8.0ms (0.2%)

Counts
2 → 48
Calls

12 calls:

TimeVariablePointExpression
2.0ms
d1
@-inf
(cbrt.f64 (pow.f64 (*.f64 d1 (+.f64 d2 30)) 3))
1.0ms
d1
@0
(pow.f64 (*.f64 d1 (+.f64 d2 30)) 3)
1.0ms
d1
@inf
(pow.f64 (*.f64 d1 (+.f64 d2 30)) 3)
1.0ms
d1
@-inf
(pow.f64 (*.f64 d1 (+.f64 d2 30)) 3)
1.0ms
d2
@0
(pow.f64 (*.f64 d1 (+.f64 d2 30)) 3)

rewrite51.0ms (1.6%)

Algorithm
batch-egg-rewrite
Rules
905×pow1_binary64
855×add-log-exp_binary64
855×log1p-expm1-u_binary64
855×expm1-log1p-u_binary64
835×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0917
120617
2238117
Stop Event
node limit
Counts
2 → 67
Calls
Call 1
Inputs
(cbrt.f64 (pow.f64 (*.f64 d1 (+.f64 d2 30)) 3))
(pow.f64 (*.f64 d1 (+.f64 d2 30)) 3)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 d2) (*.f64 d1 30))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 30) (*.f64 d1 d2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 d1 d2) 1) (*.f64 (*.f64 d1 30) 1))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 d1 (+.f64 d2 30))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 d1 (+.f64 d2 30))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 d2 30) d1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (+.f64 d2 30)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 d1 (+.f64 d2 30)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 d2 30)) 2) (*.f64 (cbrt.f64 (+.f64 d2 30)) d1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 d1) 2) (*.f64 (cbrt.f64 d1) (+.f64 d2 30)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 d1 (+.f64 d2 30))) (pow.f64 (cbrt.f64 (*.f64 d1 (+.f64 d2 30))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 d1 (+.f64 d2 30))) (pow.f64 (pow.f64 (*.f64 d1 (+.f64 d2 30)) 2) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 d1 (+.f64 d2 30))) 2) (cbrt.f64 (*.f64 d1 (+.f64 d2 30))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 d2 30)) (*.f64 (sqrt.f64 (+.f64 d2 30)) d1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 d1) (*.f64 (sqrt.f64 d1) (+.f64 d2 30)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 d1 (+.f64 d2 30))) (sqrt.f64 (*.f64 d1 (+.f64 d2 30))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (*.f64 d1 (+.f64 d2 30)) 2) 1/3) (cbrt.f64 (*.f64 d1 (+.f64 d2 30))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/3) (*.f64 d1 (+.f64 d2 30)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (*.f64 d1 (+.f64 d2 30)) 3/2) 1/3) (pow.f64 (pow.f64 (*.f64 d1 (+.f64 d2 30)) 3/2) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (pow.f64 (cbrt.f64 (+.f64 d2 30)) 2)) (cbrt.f64 (+.f64 d2 30)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (sqrt.f64 (+.f64 d2 30))) (sqrt.f64 (+.f64 d2 30)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 d2 30) (pow.f64 (cbrt.f64 d1) 2)) (cbrt.f64 d1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 d2 30) (sqrt.f64 d1)) (sqrt.f64 d1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 d1 d2) 3) (pow.f64 (*.f64 d1 30) 3)) (+.f64 (*.f64 (*.f64 d1 d2) (*.f64 d1 d2)) (-.f64 (*.f64 (*.f64 d1 30) (*.f64 d1 30)) (*.f64 (*.f64 d1 d2) (*.f64 d1 30)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (*.f64 d1 d2) (*.f64 d1 d2)) (*.f64 (*.f64 d1 30) (*.f64 d1 30))) (-.f64 (*.f64 d1 d2) (*.f64 d1 30)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 27000 (pow.f64 d2 3)) d1) (fma.f64 d2 d2 (-.f64 900 (*.f64 d2 30))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (fma.f64 d2 d2 -900) d1) (+.f64 d2 -30))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (+.f64 27000 (pow.f64 d2 3))) (fma.f64 d2 d2 (-.f64 900 (*.f64 d2 30))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (fma.f64 d2 d2 -900)) (+.f64 d2 -30))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 d1 (+.f64 d2 30)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 d1 (+.f64 d2 30)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 d1 (+.f64 d2 30))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 d1 (+.f64 d2 30))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 d1 (+.f64 d2 30)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 d1) (+.f64 d2 30)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d1 d2 (*.f64 d1 30))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d2 d1 (*.f64 d1 30))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 d1 (+.f64 d2 30))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 d1 (+.f64 d2 30))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 d1 (+.f64 d2 30))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 d1 d2) (pow.f64 (*.f64 d1 (+.f64 d2 30)) 2)) (*.f64 (*.f64 d1 30) (pow.f64 (*.f64 d1 (+.f64 d2 30)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 (*.f64 d1 (+.f64 d2 30)) 2) (*.f64 d1 d2)) (*.f64 (pow.f64 (*.f64 d1 (+.f64 d2 30)) 2) (*.f64 d1 30)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (*.f64 d1 (+.f64 d2 30)) 3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 d1 (*.f64 (+.f64 d2 30) (pow.f64 (*.f64 d1 (+.f64 d2 30)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 d2 30) (*.f64 d1 (pow.f64 (*.f64 d1 (+.f64 d2 30)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (+.f64 d2 30)) (pow.f64 (*.f64 d1 (+.f64 d2 30)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 d1 (+.f64 d2 30)) 3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (*.f64 d1 (+.f64 d2 30)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 d1 (+.f64 d2 30)) 2) (*.f64 d1 (+.f64 d2 30)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 d1 (+.f64 d2 30))) 2) (*.f64 (cbrt.f64 (*.f64 d1 (+.f64 d2 30))) (pow.f64 (*.f64 d1 (+.f64 d2 30)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 d1 (+.f64 d2 30))) (*.f64 (sqrt.f64 (*.f64 d1 (+.f64 d2 30))) (pow.f64 (*.f64 d1 (+.f64 d2 30)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 d1 3) (pow.f64 (+.f64 d2 30) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (+.f64 d2 30) 3) (pow.f64 d1 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 d1 (+.f64 d2 30)) 3/2) (pow.f64 (*.f64 d1 (+.f64 d2 30)) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 d1 (+.f64 d2 30))) 2) 3) (*.f64 d1 (+.f64 d2 30)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (*.f64 d1 (+.f64 d2 30))) 3) (pow.f64 (sqrt.f64 (*.f64 d1 (+.f64 d2 30))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (*.f64 d1 (+.f64 d2 30)) 2) d1) (+.f64 d2 30))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (*.f64 d1 (+.f64 d2 30)) 2) (+.f64 d2 30)) d1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (*.f64 d1 (+.f64 d2 30)) 2) 1) (*.f64 d1 (+.f64 d2 30)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (*.f64 d1 (+.f64 d2 30)) 2) (pow.f64 (cbrt.f64 (*.f64 d1 (+.f64 d2 30))) 2)) (cbrt.f64 (*.f64 d1 (+.f64 d2 30))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (*.f64 d1 (+.f64 d2 30)) 2) (sqrt.f64 (*.f64 d1 (+.f64 d2 30)))) (sqrt.f64 (*.f64 d1 (+.f64 d2 30))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 d1 (+.f64 d2 30)) 6))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (*.f64 d1 (+.f64 d2 30)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (*.f64 d1 (+.f64 d2 30)) 3) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 3 (log.f64 (*.f64 d1 (+.f64 d2 30)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (*.f64 d1 (+.f64 d2 30)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (*.f64 d1 (+.f64 d2 30)) 3)))))))

simplify40.0ms (1.2%)

Algorithm
egg-herbie
Rules
680×distribute-rgt-out_binary64
573×fma-neg_binary64
558×fma-def_binary64
534×cancel-sign-sub-inv_binary64
487×distribute-rgt-in_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
057721
1195643
2762601
33601521
Stop Event
node limit
Counts
115 → 94
Calls
Call 1
Inputs
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 d2 30))
(*.f64 -1 (*.f64 d1 (*.f64 (cbrt.f64 -1) (+.f64 30 d2))))
(*.f64 -1 (*.f64 d1 (*.f64 (cbrt.f64 -1) (+.f64 30 d2))))
(*.f64 -1 (*.f64 d1 (*.f64 (cbrt.f64 -1) (+.f64 30 d2))))
(*.f64 -1 (*.f64 d1 (*.f64 (cbrt.f64 -1) (+.f64 30 d2))))
(*.f64 30 d1)
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 (pow.f64 d1 3) (*.f64 (+.f64 d2 30) (pow.f64 (+.f64 30 d2) 2)))
(*.f64 (pow.f64 d1 3) (*.f64 (+.f64 d2 30) (pow.f64 (+.f64 30 d2) 2)))
(*.f64 (pow.f64 d1 3) (*.f64 (+.f64 d2 30) (pow.f64 (+.f64 30 d2) 2)))
(*.f64 (pow.f64 d1 3) (*.f64 (+.f64 d2 30) (pow.f64 (+.f64 30 d2) 2)))
(*.f64 (pow.f64 d1 3) (*.f64 (pow.f64 (+.f64 d2 30) 2) (+.f64 30 d2)))
(*.f64 (pow.f64 d1 3) (*.f64 (pow.f64 (+.f64 d2 30) 2) (+.f64 30 d2)))
(*.f64 (pow.f64 d1 3) (*.f64 (pow.f64 (+.f64 d2 30) 2) (+.f64 30 d2)))
(*.f64 (pow.f64 d1 3) (*.f64 (pow.f64 (+.f64 d2 30) 2) (+.f64 30 d2)))
(*.f64 (pow.f64 d1 3) (*.f64 (+.f64 d2 30) (pow.f64 (+.f64 30 d2) 2)))
(*.f64 (pow.f64 d1 3) (*.f64 (+.f64 d2 30) (pow.f64 (+.f64 30 d2) 2)))
(*.f64 (pow.f64 d1 3) (*.f64 (+.f64 d2 30) (pow.f64 (+.f64 30 d2) 2)))
(*.f64 (pow.f64 d1 3) (*.f64 (+.f64 d2 30) (pow.f64 (+.f64 30 d2) 2)))
(*.f64 27000 (pow.f64 d1 3))
(+.f64 (*.f64 27000 (pow.f64 d1 3)) (*.f64 d2 (+.f64 (*.f64 900 (pow.f64 d1 3)) (*.f64 1800 (pow.f64 d1 3)))))
(+.f64 (*.f64 27000 (pow.f64 d1 3)) (+.f64 (*.f64 d2 (+.f64 (*.f64 900 (pow.f64 d1 3)) (*.f64 1800 (pow.f64 d1 3)))) (*.f64 (pow.f64 d2 2) (+.f64 (*.f64 30 (pow.f64 d1 3)) (*.f64 60 (pow.f64 d1 3))))))
(+.f64 (*.f64 27000 (pow.f64 d1 3)) (+.f64 (*.f64 (pow.f64 d2 3) (pow.f64 d1 3)) (+.f64 (*.f64 d2 (+.f64 (*.f64 900 (pow.f64 d1 3)) (*.f64 1800 (pow.f64 d1 3)))) (*.f64 (pow.f64 d2 2) (+.f64 (*.f64 30 (pow.f64 d1 3)) (*.f64 60 (pow.f64 d1 3)))))))
(*.f64 (pow.f64 d2 3) (pow.f64 d1 3))
(+.f64 (*.f64 (pow.f64 d2 3) (pow.f64 d1 3)) (*.f64 (pow.f64 d2 2) (+.f64 (*.f64 30 (pow.f64 d1 3)) (*.f64 60 (pow.f64 d1 3)))))
(+.f64 (*.f64 (pow.f64 d2 3) (pow.f64 d1 3)) (+.f64 (*.f64 d2 (+.f64 (*.f64 900 (pow.f64 d1 3)) (*.f64 1800 (pow.f64 d1 3)))) (*.f64 (pow.f64 d2 2) (+.f64 (*.f64 30 (pow.f64 d1 3)) (*.f64 60 (pow.f64 d1 3))))))
(+.f64 (*.f64 27000 (pow.f64 d1 3)) (+.f64 (*.f64 (pow.f64 d2 3) (pow.f64 d1 3)) (+.f64 (*.f64 d2 (+.f64 (*.f64 900 (pow.f64 d1 3)) (*.f64 1800 (pow.f64 d1 3)))) (*.f64 (pow.f64 d2 2) (+.f64 (*.f64 30 (pow.f64 d1 3)) (*.f64 60 (pow.f64 d1 3)))))))
(*.f64 (pow.f64 d2 3) (pow.f64 d1 3))
(+.f64 (*.f64 (pow.f64 d2 3) (pow.f64 d1 3)) (*.f64 (pow.f64 d2 2) (+.f64 (*.f64 30 (pow.f64 d1 3)) (*.f64 60 (pow.f64 d1 3)))))
(+.f64 (*.f64 (pow.f64 d2 3) (pow.f64 d1 3)) (+.f64 (*.f64 -1 (*.f64 d2 (+.f64 (*.f64 -1800 (pow.f64 d1 3)) (*.f64 -900 (pow.f64 d1 3))))) (*.f64 (pow.f64 d2 2) (+.f64 (*.f64 30 (pow.f64 d1 3)) (*.f64 60 (pow.f64 d1 3))))))
(+.f64 (*.f64 27000 (pow.f64 d1 3)) (+.f64 (*.f64 (pow.f64 d2 3) (pow.f64 d1 3)) (+.f64 (*.f64 -1 (*.f64 d2 (+.f64 (*.f64 -1800 (pow.f64 d1 3)) (*.f64 -900 (pow.f64 d1 3))))) (*.f64 (pow.f64 d2 2) (+.f64 (*.f64 30 (pow.f64 d1 3)) (*.f64 60 (pow.f64 d1 3)))))))
Outputs
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 30 d2))
(*.f64 -1 (*.f64 d1 (*.f64 (cbrt.f64 -1) (+.f64 30 d2))))
(neg.f64 (*.f64 (*.f64 d1 (cbrt.f64 -1)) (+.f64 30 d2)))
(*.f64 (*.f64 (neg.f64 d1) (cbrt.f64 -1)) (+.f64 30 d2))
(*.f64 d1 (*.f64 (+.f64 30 d2) (neg.f64 (cbrt.f64 -1))))
(*.f64 d1 (*.f64 (cbrt.f64 -1) (-.f64 -30 d2)))
(*.f64 -1 (*.f64 d1 (*.f64 (cbrt.f64 -1) (+.f64 30 d2))))
(neg.f64 (*.f64 (*.f64 d1 (cbrt.f64 -1)) (+.f64 30 d2)))
(*.f64 (*.f64 (neg.f64 d1) (cbrt.f64 -1)) (+.f64 30 d2))
(*.f64 d1 (*.f64 (+.f64 30 d2) (neg.f64 (cbrt.f64 -1))))
(*.f64 d1 (*.f64 (cbrt.f64 -1) (-.f64 -30 d2)))
(*.f64 -1 (*.f64 d1 (*.f64 (cbrt.f64 -1) (+.f64 30 d2))))
(neg.f64 (*.f64 (*.f64 d1 (cbrt.f64 -1)) (+.f64 30 d2)))
(*.f64 (*.f64 (neg.f64 d1) (cbrt.f64 -1)) (+.f64 30 d2))
(*.f64 d1 (*.f64 (+.f64 30 d2) (neg.f64 (cbrt.f64 -1))))
(*.f64 d1 (*.f64 (cbrt.f64 -1) (-.f64 -30 d2)))
(*.f64 -1 (*.f64 d1 (*.f64 (cbrt.f64 -1) (+.f64 30 d2))))
(neg.f64 (*.f64 (*.f64 d1 (cbrt.f64 -1)) (+.f64 30 d2)))
(*.f64 (*.f64 (neg.f64 d1) (cbrt.f64 -1)) (+.f64 30 d2))
(*.f64 d1 (*.f64 (+.f64 30 d2) (neg.f64 (cbrt.f64 -1))))
(*.f64 d1 (*.f64 (cbrt.f64 -1) (-.f64 -30 d2)))
(*.f64 30 d1)
(*.f64 d1 30)
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 30 d2))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 30 d2))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 30 d2))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 30 d2))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 30 d2))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 30 d2))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 30 d2))
(*.f64 (pow.f64 d1 3) (*.f64 (+.f64 d2 30) (pow.f64 (+.f64 30 d2) 2)))
(*.f64 (pow.f64 d1 3) (*.f64 (+.f64 30 d2) (pow.f64 (+.f64 30 d2) 2)))
(*.f64 (pow.f64 d1 3) (pow.f64 (+.f64 30 d2) 3))
(pow.f64 (*.f64 d1 (+.f64 30 d2)) 3)
(*.f64 (pow.f64 d1 3) (*.f64 (+.f64 d2 30) (pow.f64 (+.f64 30 d2) 2)))
(*.f64 (pow.f64 d1 3) (*.f64 (+.f64 30 d2) (pow.f64 (+.f64 30 d2) 2)))
(*.f64 (pow.f64 d1 3) (pow.f64 (+.f64 30 d2) 3))
(pow.f64 (*.f64 d1 (+.f64 30 d2)) 3)
(*.f64 (pow.f64 d1 3) (*.f64 (+.f64 d2 30) (pow.f64 (+.f64 30 d2) 2)))
(*.f64 (pow.f64 d1 3) (*.f64 (+.f64 30 d2) (pow.f64 (+.f64 30 d2) 2)))
(*.f64 (pow.f64 d1 3) (pow.f64 (+.f64 30 d2) 3))
(pow.f64 (*.f64 d1 (+.f64 30 d2)) 3)
(*.f64 (pow.f64 d1 3) (*.f64 (+.f64 d2 30) (pow.f64 (+.f64 30 d2) 2)))
(*.f64 (pow.f64 d1 3) (*.f64 (+.f64 30 d2) (pow.f64 (+.f64 30 d2) 2)))
(*.f64 (pow.f64 d1 3) (pow.f64 (+.f64 30 d2) 3))
(pow.f64 (*.f64 d1 (+.f64 30 d2)) 3)
(*.f64 (pow.f64 d1 3) (*.f64 (pow.f64 (+.f64 d2 30) 2) (+.f64 30 d2)))
(*.f64 (pow.f64 d1 3) (*.f64 (+.f64 30 d2) (pow.f64 (+.f64 30 d2) 2)))
(*.f64 (pow.f64 d1 3) (pow.f64 (+.f64 30 d2) 3))
(pow.f64 (*.f64 d1 (+.f64 30 d2)) 3)
(*.f64 (pow.f64 d1 3) (*.f64 (pow.f64 (+.f64 d2 30) 2) (+.f64 30 d2)))
(*.f64 (pow.f64 d1 3) (*.f64 (+.f64 30 d2) (pow.f64 (+.f64 30 d2) 2)))
(*.f64 (pow.f64 d1 3) (pow.f64 (+.f64 30 d2) 3))
(pow.f64 (*.f64 d1 (+.f64 30 d2)) 3)
(*.f64 (pow.f64 d1 3) (*.f64 (pow.f64 (+.f64 d2 30) 2) (+.f64 30 d2)))
(*.f64 (pow.f64 d1 3) (*.f64 (+.f64 30 d2) (pow.f64 (+.f64 30 d2) 2)))
(*.f64 (pow.f64 d1 3) (pow.f64 (+.f64 30 d2) 3))
(pow.f64 (*.f64 d1 (+.f64 30 d2)) 3)
(*.f64 (pow.f64 d1 3) (*.f64 (pow.f64 (+.f64 d2 30) 2) (+.f64 30 d2)))
(*.f64 (pow.f64 d1 3) (*.f64 (+.f64 30 d2) (pow.f64 (+.f64 30 d2) 2)))
(*.f64 (pow.f64 d1 3) (pow.f64 (+.f64 30 d2) 3))
(pow.f64 (*.f64 d1 (+.f64 30 d2)) 3)
(*.f64 (pow.f64 d1 3) (*.f64 (+.f64 d2 30) (pow.f64 (+.f64 30 d2) 2)))
(*.f64 (pow.f64 d1 3) (*.f64 (+.f64 30 d2) (pow.f64 (+.f64 30 d2) 2)))
(*.f64 (pow.f64 d1 3) (pow.f64 (+.f64 30 d2) 3))
(pow.f64 (*.f64 d1 (+.f64 30 d2)) 3)
(*.f64 (pow.f64 d1 3) (*.f64 (+.f64 d2 30) (pow.f64 (+.f64 30 d2) 2)))
(*.f64 (pow.f64 d1 3) (*.f64 (+.f64 30 d2) (pow.f64 (+.f64 30 d2) 2)))
(*.f64 (pow.f64 d1 3) (pow.f64 (+.f64 30 d2) 3))
(pow.f64 (*.f64 d1 (+.f64 30 d2)) 3)
(*.f64 (pow.f64 d1 3) (*.f64 (+.f64 d2 30) (pow.f64 (+.f64 30 d2) 2)))
(*.f64 (pow.f64 d1 3) (*.f64 (+.f64 30 d2) (pow.f64 (+.f64 30 d2) 2)))
(*.f64 (pow.f64 d1 3) (pow.f64 (+.f64 30 d2) 3))
(pow.f64 (*.f64 d1 (+.f64 30 d2)) 3)
(*.f64 (pow.f64 d1 3) (*.f64 (+.f64 d2 30) (pow.f64 (+.f64 30 d2) 2)))
(*.f64 (pow.f64 d1 3) (*.f64 (+.f64 30 d2) (pow.f64 (+.f64 30 d2) 2)))
(*.f64 (pow.f64 d1 3) (pow.f64 (+.f64 30 d2) 3))
(pow.f64 (*.f64 d1 (+.f64 30 d2)) 3)
(*.f64 27000 (pow.f64 d1 3))
(*.f64 (pow.f64 d1 3) 27000)
(+.f64 (*.f64 27000 (pow.f64 d1 3)) (*.f64 d2 (+.f64 (*.f64 900 (pow.f64 d1 3)) (*.f64 1800 (pow.f64 d1 3)))))
(fma.f64 27000 (pow.f64 d1 3) (*.f64 d2 (*.f64 (pow.f64 d1 3) 2700)))
(fma.f64 d2 (*.f64 (pow.f64 d1 3) 2700) (*.f64 (pow.f64 d1 3) 27000))
(*.f64 (pow.f64 d1 3) (+.f64 (*.f64 d2 2700) 27000))
(+.f64 (*.f64 27000 (pow.f64 d1 3)) (+.f64 (*.f64 d2 (+.f64 (*.f64 900 (pow.f64 d1 3)) (*.f64 1800 (pow.f64 d1 3)))) (*.f64 (pow.f64 d2 2) (+.f64 (*.f64 30 (pow.f64 d1 3)) (*.f64 60 (pow.f64 d1 3))))))
(fma.f64 27000 (pow.f64 d1 3) (fma.f64 d2 (*.f64 (pow.f64 d1 3) 2700) (*.f64 (*.f64 (pow.f64 d1 3) 90) (*.f64 d2 d2))))
(fma.f64 (pow.f64 d1 3) 27000 (fma.f64 (*.f64 (pow.f64 d1 3) 90) (*.f64 d2 d2) (*.f64 d2 (*.f64 (pow.f64 d1 3) 2700))))
(fma.f64 d2 (*.f64 d2 (*.f64 (pow.f64 d1 3) 90)) (*.f64 (pow.f64 d1 3) (+.f64 (*.f64 d2 2700) 27000)))
(*.f64 (pow.f64 d1 3) (-.f64 (+.f64 (*.f64 (*.f64 d2 d2) 90) 27000) (*.f64 d2 -2700)))
(+.f64 (*.f64 27000 (pow.f64 d1 3)) (+.f64 (*.f64 (pow.f64 d2 3) (pow.f64 d1 3)) (+.f64 (*.f64 d2 (+.f64 (*.f64 900 (pow.f64 d1 3)) (*.f64 1800 (pow.f64 d1 3)))) (*.f64 (pow.f64 d2 2) (+.f64 (*.f64 30 (pow.f64 d1 3)) (*.f64 60 (pow.f64 d1 3)))))))
(fma.f64 27000 (pow.f64 d1 3) (fma.f64 (pow.f64 d2 3) (pow.f64 d1 3) (fma.f64 d2 (*.f64 (pow.f64 d1 3) 2700) (*.f64 (*.f64 (pow.f64 d1 3) 90) (*.f64 d2 d2)))))
(+.f64 (fma.f64 (*.f64 (pow.f64 d1 3) 90) (*.f64 d2 d2) (*.f64 d2 (*.f64 (pow.f64 d1 3) 2700))) (*.f64 (pow.f64 d1 3) (+.f64 27000 (pow.f64 d2 3))))
(fma.f64 (pow.f64 d1 3) (+.f64 27000 (pow.f64 d2 3)) (*.f64 (pow.f64 d1 3) (-.f64 (*.f64 (*.f64 d2 d2) 90) (*.f64 d2 -2700))))
(*.f64 (pow.f64 d1 3) (-.f64 (+.f64 (+.f64 27000 (pow.f64 d2 3)) (*.f64 (*.f64 d2 d2) 90)) (*.f64 d2 -2700)))
(*.f64 (pow.f64 d2 3) (pow.f64 d1 3))
(*.f64 (pow.f64 d1 3) (pow.f64 d2 3))
(+.f64 (*.f64 (pow.f64 d2 3) (pow.f64 d1 3)) (*.f64 (pow.f64 d2 2) (+.f64 (*.f64 30 (pow.f64 d1 3)) (*.f64 60 (pow.f64 d1 3)))))
(fma.f64 (pow.f64 d2 3) (pow.f64 d1 3) (*.f64 (*.f64 (pow.f64 d1 3) 90) (*.f64 d2 d2)))
(fma.f64 (*.f64 (pow.f64 d1 3) 90) (*.f64 d2 d2) (*.f64 (pow.f64 d1 3) (pow.f64 d2 3)))
(*.f64 (pow.f64 d1 3) (+.f64 (*.f64 (*.f64 d2 d2) 90) (pow.f64 d2 3)))
(*.f64 d2 (*.f64 d2 (*.f64 (pow.f64 d1 3) (+.f64 90 d2))))
(+.f64 (*.f64 (pow.f64 d2 3) (pow.f64 d1 3)) (+.f64 (*.f64 d2 (+.f64 (*.f64 900 (pow.f64 d1 3)) (*.f64 1800 (pow.f64 d1 3)))) (*.f64 (pow.f64 d2 2) (+.f64 (*.f64 30 (pow.f64 d1 3)) (*.f64 60 (pow.f64 d1 3))))))
(fma.f64 (pow.f64 d2 3) (pow.f64 d1 3) (fma.f64 d2 (*.f64 (pow.f64 d1 3) 2700) (*.f64 (*.f64 (pow.f64 d1 3) 90) (*.f64 d2 d2))))
(fma.f64 (pow.f64 d1 3) (pow.f64 d2 3) (fma.f64 (*.f64 (pow.f64 d1 3) 90) (*.f64 d2 d2) (*.f64 d2 (*.f64 (pow.f64 d1 3) 2700))))
(fma.f64 d2 (*.f64 (pow.f64 d1 3) 2700) (*.f64 (pow.f64 d1 3) (+.f64 (*.f64 (*.f64 d2 d2) 90) (pow.f64 d2 3))))
(*.f64 (pow.f64 d1 3) (-.f64 (*.f64 (*.f64 d2 d2) (+.f64 90 d2)) (*.f64 d2 -2700)))
(+.f64 (*.f64 27000 (pow.f64 d1 3)) (+.f64 (*.f64 (pow.f64 d2 3) (pow.f64 d1 3)) (+.f64 (*.f64 d2 (+.f64 (*.f64 900 (pow.f64 d1 3)) (*.f64 1800 (pow.f64 d1 3)))) (*.f64 (pow.f64 d2 2) (+.f64 (*.f64 30 (pow.f64 d1 3)) (*.f64 60 (pow.f64 d1 3)))))))
(fma.f64 27000 (pow.f64 d1 3) (fma.f64 (pow.f64 d2 3) (pow.f64 d1 3) (fma.f64 d2 (*.f64 (pow.f64 d1 3) 2700) (*.f64 (*.f64 (pow.f64 d1 3) 90) (*.f64 d2 d2)))))
(+.f64 (fma.f64 (*.f64 (pow.f64 d1 3) 90) (*.f64 d2 d2) (*.f64 d2 (*.f64 (pow.f64 d1 3) 2700))) (*.f64 (pow.f64 d1 3) (+.f64 27000 (pow.f64 d2 3))))
(fma.f64 (pow.f64 d1 3) (+.f64 27000 (pow.f64 d2 3)) (*.f64 (pow.f64 d1 3) (-.f64 (*.f64 (*.f64 d2 d2) 90) (*.f64 d2 -2700))))
(*.f64 (pow.f64 d1 3) (-.f64 (+.f64 (+.f64 27000 (pow.f64 d2 3)) (*.f64 (*.f64 d2 d2) 90)) (*.f64 d2 -2700)))
(*.f64 (pow.f64 d2 3) (pow.f64 d1 3))
(*.f64 (pow.f64 d1 3) (pow.f64 d2 3))
(+.f64 (*.f64 (pow.f64 d2 3) (pow.f64 d1 3)) (*.f64 (pow.f64 d2 2) (+.f64 (*.f64 30 (pow.f64 d1 3)) (*.f64 60 (pow.f64 d1 3)))))
(fma.f64 (pow.f64 d2 3) (pow.f64 d1 3) (*.f64 (*.f64 (pow.f64 d1 3) 90) (*.f64 d2 d2)))
(fma.f64 (*.f64 (pow.f64 d1 3) 90) (*.f64 d2 d2) (*.f64 (pow.f64 d1 3) (pow.f64 d2 3)))
(*.f64 (pow.f64 d1 3) (+.f64 (*.f64 (*.f64 d2 d2) 90) (pow.f64 d2 3)))
(*.f64 d2 (*.f64 d2 (*.f64 (pow.f64 d1 3) (+.f64 90 d2))))
(+.f64 (*.f64 (pow.f64 d2 3) (pow.f64 d1 3)) (+.f64 (*.f64 -1 (*.f64 d2 (+.f64 (*.f64 -1800 (pow.f64 d1 3)) (*.f64 -900 (pow.f64 d1 3))))) (*.f64 (pow.f64 d2 2) (+.f64 (*.f64 30 (pow.f64 d1 3)) (*.f64 60 (pow.f64 d1 3))))))
(fma.f64 (pow.f64 d2 3) (pow.f64 d1 3) (fma.f64 d2 (*.f64 (pow.f64 d1 3) 2700) (*.f64 (*.f64 (pow.f64 d1 3) 90) (*.f64 d2 d2))))
(fma.f64 (pow.f64 d1 3) (pow.f64 d2 3) (fma.f64 (*.f64 (pow.f64 d1 3) 90) (*.f64 d2 d2) (*.f64 d2 (*.f64 (pow.f64 d1 3) 2700))))
(fma.f64 d2 (*.f64 (pow.f64 d1 3) 2700) (*.f64 (pow.f64 d1 3) (+.f64 (*.f64 (*.f64 d2 d2) 90) (pow.f64 d2 3))))
(*.f64 (pow.f64 d1 3) (-.f64 (*.f64 (*.f64 d2 d2) (+.f64 90 d2)) (*.f64 d2 -2700)))
(+.f64 (*.f64 27000 (pow.f64 d1 3)) (+.f64 (*.f64 (pow.f64 d2 3) (pow.f64 d1 3)) (+.f64 (*.f64 -1 (*.f64 d2 (+.f64 (*.f64 -1800 (pow.f64 d1 3)) (*.f64 -900 (pow.f64 d1 3))))) (*.f64 (pow.f64 d2 2) (+.f64 (*.f64 30 (pow.f64 d1 3)) (*.f64 60 (pow.f64 d1 3)))))))
(fma.f64 27000 (pow.f64 d1 3) (fma.f64 (pow.f64 d2 3) (pow.f64 d1 3) (fma.f64 d2 (*.f64 (pow.f64 d1 3) 2700) (*.f64 (*.f64 (pow.f64 d1 3) 90) (*.f64 d2 d2)))))
(+.f64 (fma.f64 (*.f64 (pow.f64 d1 3) 90) (*.f64 d2 d2) (*.f64 d2 (*.f64 (pow.f64 d1 3) 2700))) (*.f64 (pow.f64 d1 3) (+.f64 27000 (pow.f64 d2 3))))
(fma.f64 (pow.f64 d1 3) (+.f64 27000 (pow.f64 d2 3)) (*.f64 (pow.f64 d1 3) (-.f64 (*.f64 (*.f64 d2 d2) 90) (*.f64 d2 -2700))))
(*.f64 (pow.f64 d1 3) (-.f64 (+.f64 (+.f64 27000 (pow.f64 d2 3)) (*.f64 (*.f64 d2 d2) 90)) (*.f64 d2 -2700)))

eval79.0ms (2.4%)

Compiler

Compiled 3445 to 2442 computations (29.1% saved)

prune37.0ms (1.1%)

Pruning

8 alts after pruning (4 fresh and 4 done)

PrunedKeptTotal
New2614265
Fresh202
Picked101
Done145
Total2658273
Error
0b
Counts
273 → 8
Alt Table
Click to see full alt table
StatusErrorProgram
0.3b
(pow.f64 (/.f64 (/.f64 1 (+.f64 d2 30)) d1) -1)
11.1b
(*.f64 (fma.f64 d2 d2 -900) (*.f64 d1 (/.f64 1 (+.f64 d2 -30))))
24.2b
(*.f64 d1 30)
24.5b
(/.f64 (*.f64 d1 -900) (+.f64 d2 -30))
0.0b
(*.f64 d1 (+.f64 d2 30))
0.0b
(fma.f64 d1 d2 (*.f64 d1 30))
38.4b
(*.f64 d2 d1)
11.0b
(*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30)))
Compiler

Compiled 71 to 51 computations (28.2% saved)

localize15.0ms (0.5%)

Local error

Found 4 expressions with local error:

NewErrorProgram
10.6b
(*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30)))
0.0b
(/.f64 d1 (+.f64 d2 -30))
0.0b
(/.f64 d1 (+.f64 d2 -30))
10.6b
(*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30)))
Compiler

Compiled 28 to 17 computations (39.3% saved)

series5.0ms (0.2%)

Counts
2 → 48
Calls

12 calls:

TimeVariablePointExpression
1.0ms
d2
@inf
(/.f64 d1 (+.f64 d2 -30))
1.0ms
d1
@-inf
(/.f64 d1 (+.f64 d2 -30))
1.0ms
d1
@0
(/.f64 d1 (+.f64 d2 -30))
0.0ms
d2
@-inf
(/.f64 d1 (+.f64 d2 -30))
0.0ms
d1
@inf
(/.f64 d1 (+.f64 d2 -30))

rewrite56.0ms (1.7%)

Algorithm
batch-egg-rewrite
Rules
621×unpow-prod-down_binary64
461×log-prod_binary64
352×exp-prod_binary64
292×pow-prod-down_binary64
256×pow2_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0921
119921
2260221
Stop Event
node limit
Counts
2 → 114
Calls
Call 1
Inputs
(*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30)))
(/.f64 d1 (+.f64 d2 -30))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 d2 d2) (/.f64 d1 (+.f64 d2 -30))) (*.f64 -900 (/.f64 d1 (+.f64 d2 -30))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (/.f64 d1 (+.f64 d2 -30)) (*.f64 d2 d2)) (*.f64 (/.f64 d1 (+.f64 d2 -30)) -900))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (/.f64 d1 (+.f64 d2 -30))) (fma.f64 d2 d2 -900))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (/.f64 d1 (+.f64 d2 -30))) (fma.f64 d2 d2 -900)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (/.f64 d1 (+.f64 d2 -30))) (fma.f64 d2 d2 -900)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (/.f64 d1 (+.f64 d2 -30))) (fma.f64 d2 d2 -900)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 d2 d2 -900) (/.f64 (+.f64 d2 -30) d1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 d2 -30) (*.f64 (fma.f64 d2 d2 -900) d1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (fma.f64 d2 d2 -900) d1) (+.f64 d2 -30))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 (fma.f64 d2 d2 -900) d1)) (+.f64 30 (neg.f64 d2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 (fma.f64 d2 d2 -900) d1) 1) (+.f64 d2 -30))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 (fma.f64 d2 d2 -900) d1) (pow.f64 (cbrt.f64 (+.f64 d2 -30)) 2)) (cbrt.f64 (+.f64 d2 -30)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 (fma.f64 d2 d2 -900) d1) (sqrt.f64 (+.f64 d2 -30))) (sqrt.f64 (+.f64 d2 -30)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 d1) (fma.f64 d2 d2 -900)) (+.f64 30 (neg.f64 d2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (fma.f64 d2 d2 -900) (neg.f64 d1)) (+.f64 30 (neg.f64 d2)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (+.f64 d2 -30) (*.f64 (fma.f64 d2 d2 -900) d1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30))))) 2)) (cbrt.f64 (log.f64 (*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30))))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30)))))) (sqrt.f64 (log.f64 (*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30))))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (/.f64 d1 (+.f64 d2 -30))) (fma.f64 d2 d2 -900)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 d1 (+.f64 d2 -30)) (*.f64 d2 d2) (*.f64 (/.f64 d1 (+.f64 d2 -30)) -900))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d2 d2) (/.f64 d1 (+.f64 d2 -30)) (*.f64 -900 (/.f64 d1 (+.f64 d2 -30))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30))))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30))))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30))))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30)))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30)))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30)))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 d1 (+.f64 d2 -30)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (/.f64 d1 (+.f64 d2 -30)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (/.f64 d1 (+.f64 d2 -30))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (/.f64 d1 (+.f64 d2 -30))))) (log.f64 (sqrt.f64 (exp.f64 (/.f64 d1 (+.f64 d2 -30))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 d1 (+.f64 d2 -30)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 d1 (/.f64 1 (+.f64 d2 -30)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 d1 (+.f64 d2 -30)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 d1 (+.f64 d2 -30)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 d1 (+.f64 d2 -30))) (pow.f64 (cbrt.f64 (/.f64 d1 (+.f64 d2 -30))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 d1 (+.f64 d2 -30))) 2) (cbrt.f64 (/.f64 d1 (+.f64 d2 -30))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 d1) 2) (*.f64 (cbrt.f64 d1) (/.f64 1 (+.f64 d2 -30))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 d1 (+.f64 d2 -30))) (sqrt.f64 (/.f64 d1 (+.f64 d2 -30))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 d1) (*.f64 (sqrt.f64 d1) (/.f64 1 (+.f64 d2 -30))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 d1) (/.f64 1 (+.f64 30 (neg.f64 d2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 d1) (pow.f64 (/.f64 1 (+.f64 30 (neg.f64 d2))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (+.f64 d2 -30)) d1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (+.f64 d2 -30)) (pow.f64 (/.f64 1 d1) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 d1) 2) 1) (/.f64 (cbrt.f64 d1) (+.f64 d2 -30)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 d1) 1) (/.f64 (sqrt.f64 d1) (+.f64 d2 -30)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 d2 -30)) -2) (/.f64 d1 (cbrt.f64 (+.f64 d2 -30))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 d1) 2) (pow.f64 (cbrt.f64 (+.f64 d2 -30)) 2)) (cbrt.f64 (/.f64 d1 (+.f64 d2 -30))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 d1) (pow.f64 (cbrt.f64 (+.f64 d2 -30)) 2)) (/.f64 (sqrt.f64 d1) (cbrt.f64 (+.f64 d2 -30))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (+.f64 d2 -30) -1/2) (/.f64 d1 (sqrt.f64 (+.f64 d2 -30))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 d1) 2) (sqrt.f64 (+.f64 d2 -30))) (/.f64 (cbrt.f64 d1) (sqrt.f64 (+.f64 d2 -30))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 d1 (+.f64 -27000 (pow.f64 d2 3))) (-.f64 (fma.f64 d2 d2 900) (*.f64 d2 -30)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 d1 (fma.f64 d2 d2 -900)) (+.f64 d2 30))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/3) (/.f64 d1 (+.f64 d2 -30)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 (pow.f64 (cbrt.f64 d1) 2) 1) 1) (pow.f64 (/.f64 (cbrt.f64 d1) (+.f64 d2 -30)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 (sqrt.f64 d1) 1) 1) (pow.f64 (/.f64 (sqrt.f64 d1) (+.f64 d2 -30)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (+.f64 d2 -30)) -2) 1) (pow.f64 (/.f64 d1 (cbrt.f64 (+.f64 d2 -30))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 (pow.f64 (cbrt.f64 d1) 2) (pow.f64 (cbrt.f64 (+.f64 d2 -30)) 2)) 1) (cbrt.f64 (/.f64 d1 (+.f64 d2 -30))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 (sqrt.f64 d1) (pow.f64 (cbrt.f64 (+.f64 d2 -30)) 2)) 1) (pow.f64 (/.f64 (sqrt.f64 d1) (cbrt.f64 (+.f64 d2 -30))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (+.f64 d2 -30) -1/2) 1) (pow.f64 (/.f64 d1 (sqrt.f64 (+.f64 d2 -30))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 (pow.f64 (cbrt.f64 d1) 2) (sqrt.f64 (+.f64 d2 -30))) 1) (pow.f64 (/.f64 (cbrt.f64 d1) (sqrt.f64 (+.f64 d2 -30))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 d1 (+.f64 -27000 (pow.f64 d2 3))) 1) (-.f64 (fma.f64 d2 d2 900) (*.f64 d2 -30)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 d1 (fma.f64 d2 d2 -900)) 1) (+.f64 d2 30))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (pow.f64 (/.f64 d1 (+.f64 d2 -30)) 3)) 1/3) (pow.f64 (sqrt.f64 (pow.f64 (/.f64 d1 (+.f64 d2 -30)) 3)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (pow.f64 (/.f64 d1 (+.f64 d2 -30)) 2) d1) 1/3) (cbrt.f64 (/.f64 1 (+.f64 d2 -30))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (*.f64 (/.f64 d1 (+.f64 d2 -30)) (cbrt.f64 (/.f64 d1 (+.f64 d2 -30)))) 2) 1/3) (cbrt.f64 (cbrt.f64 (/.f64 d1 (+.f64 d2 -30)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (/.f64 d1 (+.f64 d2 -30)) 5/2) 1/3) (cbrt.f64 (sqrt.f64 (/.f64 d1 (+.f64 d2 -30)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (/.f64 d1 (+.f64 d2 -30)))) 2) 3) (cbrt.f64 (/.f64 d1 (+.f64 d2 -30))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (cbrt.f64 (/.f64 d1 (+.f64 d2 -30)))) 3) (pow.f64 (sqrt.f64 (cbrt.f64 (/.f64 d1 (+.f64 d2 -30)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (/.f64 (+.f64 d2 -30) d1)) 2) -1) (cbrt.f64 (/.f64 d1 (+.f64 d2 -30))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 (pow.f64 (cbrt.f64 (+.f64 d2 -30)) 2) 1) -1) (pow.f64 (/.f64 (cbrt.f64 (+.f64 d2 -30)) d1) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 (sqrt.f64 (+.f64 d2 -30)) 1) -1) (pow.f64 (/.f64 (sqrt.f64 (+.f64 d2 -30)) d1) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 d1) -2) -1) (pow.f64 (/.f64 (+.f64 d2 -30) (cbrt.f64 d1)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 (pow.f64 (cbrt.f64 (+.f64 d2 -30)) 2) (pow.f64 (cbrt.f64 d1) 2)) -1) (pow.f64 (/.f64 (cbrt.f64 (+.f64 d2 -30)) (cbrt.f64 d1)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 (sqrt.f64 (+.f64 d2 -30)) (pow.f64 (cbrt.f64 d1) 2)) -1) (pow.f64 (/.f64 (sqrt.f64 (+.f64 d2 -30)) (cbrt.f64 d1)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 d1 -1/2) -1) (pow.f64 (/.f64 (+.f64 d2 -30) (sqrt.f64 d1)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 (pow.f64 (cbrt.f64 (+.f64 d2 -30)) 2) (sqrt.f64 d1)) -1) (pow.f64 (/.f64 (cbrt.f64 (+.f64 d2 -30)) (sqrt.f64 d1)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 (sqrt.f64 (+.f64 d2 -30)) (sqrt.f64 d1)) -1) (pow.f64 (/.f64 (sqrt.f64 (+.f64 d2 -30)) (sqrt.f64 d1)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 d1 (+.f64 d2 -30)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 d1 (+.f64 d2 -30)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 d1 (+.f64 d2 -30)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 d1 (+.f64 d2 -30))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 d1 (+.f64 d2 -30))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (+.f64 d2 -30) d1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (/.f64 d1 (+.f64 d2 -30))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 d1 3) (pow.f64 (+.f64 d2 -30) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (/.f64 (+.f64 d2 -30) d1) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (/.f64 d1 (+.f64 d2 -30)))) 2)) (cbrt.f64 (log.f64 (/.f64 d1 (+.f64 d2 -30)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (/.f64 d1 (+.f64 d2 -30))))) (sqrt.f64 (log.f64 (/.f64 d1 (+.f64 d2 -30)))))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 d1 (+.f64 30 (neg.f64 d2))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 d1 (+.f64 d2 -30)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 d1 (+.f64 d2 -30))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 d1 (+.f64 d2 -30)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 d1 (+.f64 d2 -30)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 d1 3) (pow.f64 (+.f64 d2 -30) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 d1 (+.f64 d2 -30))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 d1 (+.f64 d2 -30))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (/.f64 d1 (+.f64 d2 -30)) 3)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (/.f64 d1 (+.f64 d2 -30)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (/.f64 d1 (+.f64 d2 -30)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 (+.f64 d2 -30) d1)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (/.f64 d1 (+.f64 d2 -30))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 d1 (+.f64 d2 -30))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 d1 (+.f64 d2 -30))))))))

simplify52.0ms (1.6%)

Algorithm
egg-herbie
Rules
717×fma-def_binary64
692×associate-/l*_binary64
531×associate-/l/_binary64
475×associate-*l/_binary64
429×distribute-rgt-out_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
047582
1123551
2327521
3963507
43229507
57536507
Stop Event
node limit
Counts
162 → 138
Calls
Call 1
Inputs
(*.f64 30 d1)
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(/.f64 (*.f64 (-.f64 (pow.f64 d2 2) 900) d1) (-.f64 d2 30))
(/.f64 (*.f64 (-.f64 (pow.f64 d2 2) 900) d1) (-.f64 d2 30))
(/.f64 (*.f64 (-.f64 (pow.f64 d2 2) 900) d1) (-.f64 d2 30))
(/.f64 (*.f64 (-.f64 (pow.f64 d2 2) 900) d1) (-.f64 d2 30))
(/.f64 (*.f64 (-.f64 (pow.f64 d2 2) 900) d1) (-.f64 d2 30))
(/.f64 (*.f64 (-.f64 (pow.f64 d2 2) 900) d1) (-.f64 d2 30))
(/.f64 (*.f64 (-.f64 (pow.f64 d2 2) 900) d1) (-.f64 d2 30))
(/.f64 (*.f64 (-.f64 (pow.f64 d2 2) 900) d1) (-.f64 d2 30))
(/.f64 (*.f64 (-.f64 (pow.f64 d2 2) 900) d1) (-.f64 d2 30))
(/.f64 (*.f64 (-.f64 (pow.f64 d2 2) 900) d1) (-.f64 d2 30))
(/.f64 (*.f64 (-.f64 (pow.f64 d2 2) 900) d1) (-.f64 d2 30))
(/.f64 (*.f64 (-.f64 (pow.f64 d2 2) 900) d1) (-.f64 d2 30))
(/.f64 d1 (-.f64 d2 30))
(/.f64 d1 (-.f64 d2 30))
(/.f64 d1 (-.f64 d2 30))
(/.f64 d1 (-.f64 d2 30))
(/.f64 d1 (-.f64 d2 30))
(/.f64 d1 (-.f64 d2 30))
(/.f64 d1 (-.f64 d2 30))
(/.f64 d1 (-.f64 d2 30))
(/.f64 d1 (-.f64 d2 30))
(/.f64 d1 (-.f64 d2 30))
(/.f64 d1 (-.f64 d2 30))
(/.f64 d1 (-.f64 d2 30))
(*.f64 -1/30 d1)
(+.f64 (*.f64 -1/30 d1) (*.f64 -1/900 (*.f64 d2 d1)))
(+.f64 (*.f64 -1/27000 (*.f64 (pow.f64 d2 2) d1)) (+.f64 (*.f64 -1/30 d1) (*.f64 -1/900 (*.f64 d2 d1))))
(+.f64 (*.f64 -1/27000 (*.f64 (pow.f64 d2 2) d1)) (+.f64 (*.f64 -1/810000 (*.f64 (pow.f64 d2 3) d1)) (+.f64 (*.f64 -1/30 d1) (*.f64 -1/900 (*.f64 d2 d1)))))
(/.f64 d1 d2)
(+.f64 (/.f64 d1 d2) (*.f64 30 (/.f64 d1 (pow.f64 d2 2))))
(+.f64 (/.f64 d1 d2) (+.f64 (*.f64 900 (/.f64 d1 (pow.f64 d2 3))) (*.f64 30 (/.f64 d1 (pow.f64 d2 2)))))
(+.f64 (/.f64 d1 d2) (+.f64 (*.f64 900 (/.f64 d1 (pow.f64 d2 3))) (+.f64 (*.f64 30 (/.f64 d1 (pow.f64 d2 2))) (*.f64 27000 (/.f64 d1 (pow.f64 d2 4))))))
(/.f64 d1 d2)
(+.f64 (/.f64 d1 d2) (*.f64 30 (/.f64 d1 (pow.f64 d2 2))))
(+.f64 (/.f64 d1 d2) (+.f64 (*.f64 900 (/.f64 d1 (pow.f64 d2 3))) (*.f64 30 (/.f64 d1 (pow.f64 d2 2)))))
(+.f64 (/.f64 d1 d2) (+.f64 (*.f64 900 (/.f64 d1 (pow.f64 d2 3))) (+.f64 (*.f64 30 (/.f64 d1 (pow.f64 d2 2))) (*.f64 27000 (/.f64 d1 (pow.f64 d2 4))))))
Outputs
(*.f64 30 d1)
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 30 d2))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 30 d2))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 30 d2))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 30 d2))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 30 d2))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 30 d2))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 30 d2))
(/.f64 (*.f64 (-.f64 (pow.f64 d2 2) 900) d1) (-.f64 d2 30))
(/.f64 (+.f64 (*.f64 d2 d2) -900) (/.f64 (+.f64 d2 -30) d1))
(*.f64 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)) d1)
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (-.f64 d2 30)))
(*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30)))
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)))
(/.f64 (*.f64 (-.f64 (pow.f64 d2 2) 900) d1) (-.f64 d2 30))
(/.f64 (+.f64 (*.f64 d2 d2) -900) (/.f64 (+.f64 d2 -30) d1))
(*.f64 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)) d1)
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (-.f64 d2 30)))
(*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30)))
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)))
(/.f64 (*.f64 (-.f64 (pow.f64 d2 2) 900) d1) (-.f64 d2 30))
(/.f64 (+.f64 (*.f64 d2 d2) -900) (/.f64 (+.f64 d2 -30) d1))
(*.f64 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)) d1)
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (-.f64 d2 30)))
(*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30)))
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)))
(/.f64 (*.f64 (-.f64 (pow.f64 d2 2) 900) d1) (-.f64 d2 30))
(/.f64 (+.f64 (*.f64 d2 d2) -900) (/.f64 (+.f64 d2 -30) d1))
(*.f64 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)) d1)
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (-.f64 d2 30)))
(*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30)))
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)))
(/.f64 (*.f64 (-.f64 (pow.f64 d2 2) 900) d1) (-.f64 d2 30))
(/.f64 (+.f64 (*.f64 d2 d2) -900) (/.f64 (+.f64 d2 -30) d1))
(*.f64 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)) d1)
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (-.f64 d2 30)))
(*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30)))
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)))
(/.f64 (*.f64 (-.f64 (pow.f64 d2 2) 900) d1) (-.f64 d2 30))
(/.f64 (+.f64 (*.f64 d2 d2) -900) (/.f64 (+.f64 d2 -30) d1))
(*.f64 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)) d1)
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (-.f64 d2 30)))
(*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30)))
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)))
(/.f64 (*.f64 (-.f64 (pow.f64 d2 2) 900) d1) (-.f64 d2 30))
(/.f64 (+.f64 (*.f64 d2 d2) -900) (/.f64 (+.f64 d2 -30) d1))
(*.f64 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)) d1)
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (-.f64 d2 30)))
(*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30)))
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)))
(/.f64 (*.f64 (-.f64 (pow.f64 d2 2) 900) d1) (-.f64 d2 30))
(/.f64 (+.f64 (*.f64 d2 d2) -900) (/.f64 (+.f64 d2 -30) d1))
(*.f64 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)) d1)
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (-.f64 d2 30)))
(*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30)))
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)))
(/.f64 (*.f64 (-.f64 (pow.f64 d2 2) 900) d1) (-.f64 d2 30))
(/.f64 (+.f64 (*.f64 d2 d2) -900) (/.f64 (+.f64 d2 -30) d1))
(*.f64 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)) d1)
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (-.f64 d2 30)))
(*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30)))
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)))
(/.f64 (*.f64 (-.f64 (pow.f64 d2 2) 900) d1) (-.f64 d2 30))
(/.f64 (+.f64 (*.f64 d2 d2) -900) (/.f64 (+.f64 d2 -30) d1))
(*.f64 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)) d1)
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (-.f64 d2 30)))
(*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30)))
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)))
(/.f64 (*.f64 (-.f64 (pow.f64 d2 2) 900) d1) (-.f64 d2 30))
(/.f64 (+.f64 (*.f64 d2 d2) -900) (/.f64 (+.f64 d2 -30) d1))
(*.f64 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)) d1)
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (-.f64 d2 30)))
(*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30)))
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)))
(/.f64 (*.f64 (-.f64 (pow.f64 d2 2) 900) d1) (-.f64 d2 30))
(/.f64 (+.f64 (*.f64 d2 d2) -900) (/.f64 (+.f64 d2 -30) d1))
(*.f64 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)) d1)
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (-.f64 d2 30)))
(*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30)))
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)))
(/.f64 d1 (-.f64 d2 30))
(/.f64 d1 (+.f64 d2 -30))
(/.f64 d1 (-.f64 d2 30))
(/.f64 d1 (+.f64 d2 -30))
(/.f64 d1 (-.f64 d2 30))
(/.f64 d1 (+.f64 d2 -30))
(/.f64 d1 (-.f64 d2 30))
(/.f64 d1 (+.f64 d2 -30))
(/.f64 d1 (-.f64 d2 30))
(/.f64 d1 (+.f64 d2 -30))
(/.f64 d1 (-.f64 d2 30))
(/.f64 d1 (+.f64 d2 -30))
(/.f64 d1 (-.f64 d2 30))
(/.f64 d1 (+.f64 d2 -30))
(/.f64 d1 (-.f64 d2 30))
(/.f64 d1 (+.f64 d2 -30))
(/.f64 d1 (-.f64 d2 30))
(/.f64 d1 (+.f64 d2 -30))
(/.f64 d1 (-.f64 d2 30))
(/.f64 d1 (+.f64 d2 -30))
(/.f64 d1 (-.f64 d2 30))
(/.f64 d1 (+.f64 d2 -30))
(/.f64 d1 (-.f64 d2 30))
(/.f64 d1 (+.f64 d2 -30))
(*.f64 -1/30 d1)
(*.f64 d1 -1/30)
(+.f64 (*.f64 -1/30 d1) (*.f64 -1/900 (*.f64 d2 d1)))
(fma.f64 -1/30 d1 (*.f64 (*.f64 d1 d2) -1/900))
(*.f64 d1 (+.f64 (*.f64 d2 -1/900) -1/30))
(*.f64 d1 (fma.f64 d2 -1/900 -1/30))
(+.f64 (*.f64 -1/27000 (*.f64 (pow.f64 d2 2) d1)) (+.f64 (*.f64 -1/30 d1) (*.f64 -1/900 (*.f64 d2 d1))))
(fma.f64 -1/27000 (*.f64 d1 (*.f64 d2 d2)) (fma.f64 -1/30 d1 (*.f64 (*.f64 d1 d2) -1/900)))
(fma.f64 -1/27000 (*.f64 d1 (*.f64 d2 d2)) (*.f64 d1 (+.f64 (*.f64 d2 -1/900) -1/30)))
(*.f64 d1 (+.f64 (*.f64 (*.f64 d2 d2) -1/27000) (fma.f64 d2 -1/900 -1/30)))
(*.f64 d1 (fma.f64 d2 -1/900 (fma.f64 d2 (*.f64 d2 -1/27000) -1/30)))
(+.f64 (*.f64 -1/27000 (*.f64 (pow.f64 d2 2) d1)) (+.f64 (*.f64 -1/810000 (*.f64 (pow.f64 d2 3) d1)) (+.f64 (*.f64 -1/30 d1) (*.f64 -1/900 (*.f64 d2 d1)))))
(fma.f64 -1/27000 (*.f64 d1 (*.f64 d2 d2)) (fma.f64 -1/810000 (*.f64 d1 (pow.f64 d2 3)) (fma.f64 -1/30 d1 (*.f64 (*.f64 d1 d2) -1/900))))
(fma.f64 -1/27000 (*.f64 d1 (*.f64 d2 d2)) (fma.f64 -1/810000 (*.f64 d1 (pow.f64 d2 3)) (*.f64 d1 (+.f64 (*.f64 d2 -1/900) -1/30))))
(*.f64 d1 (+.f64 (fma.f64 d2 -1/900 -1/30) (*.f64 (*.f64 d2 d2) (+.f64 -1/27000 (*.f64 d2 -1/810000)))))
(*.f64 d1 (fma.f64 d2 (*.f64 d2 (+.f64 -1/27000 (*.f64 d2 -1/810000))) (fma.f64 d2 -1/900 -1/30)))
(*.f64 d1 (fma.f64 (*.f64 d2 d2) (+.f64 -1/27000 (*.f64 d2 -1/810000)) (fma.f64 d2 -1/900 -1/30)))
(/.f64 d1 d2)
(+.f64 (/.f64 d1 d2) (*.f64 30 (/.f64 d1 (pow.f64 d2 2))))
(+.f64 (/.f64 d1 d2) (/.f64 (*.f64 30 d1) (*.f64 d2 d2)))
(fma.f64 30 (/.f64 d1 (*.f64 d2 d2)) (/.f64 d1 d2))
(*.f64 (+.f64 (/.f64 30 d2) 1) (/.f64 d1 d2))
(*.f64 (/.f64 d1 d2) (+.f64 1 (/.f64 30 d2)))
(+.f64 (/.f64 d1 d2) (+.f64 (*.f64 900 (/.f64 d1 (pow.f64 d2 3))) (*.f64 30 (/.f64 d1 (pow.f64 d2 2)))))
(+.f64 (/.f64 d1 d2) (fma.f64 900 (/.f64 d1 (pow.f64 d2 3)) (/.f64 (*.f64 30 d1) (*.f64 d2 d2))))
(+.f64 (/.f64 d1 d2) (fma.f64 900 (/.f64 d1 (pow.f64 d2 3)) (*.f64 (/.f64 d1 d2) (/.f64 30 d2))))
(+.f64 (/.f64 d1 d2) (*.f64 (/.f64 d1 (*.f64 d2 d2)) (+.f64 30 (/.f64 900 d2))))
(fma.f64 (/.f64 d1 (*.f64 d2 d2)) (+.f64 30 (/.f64 900 d2)) (/.f64 d1 d2))
(+.f64 (/.f64 d1 d2) (+.f64 (*.f64 900 (/.f64 d1 (pow.f64 d2 3))) (+.f64 (*.f64 30 (/.f64 d1 (pow.f64 d2 2))) (*.f64 27000 (/.f64 d1 (pow.f64 d2 4))))))
(+.f64 (/.f64 d1 d2) (fma.f64 900 (/.f64 d1 (pow.f64 d2 3)) (fma.f64 30 (/.f64 d1 (*.f64 d2 d2)) (*.f64 27000 (/.f64 d1 (pow.f64 d2 4))))))
(+.f64 (/.f64 d1 d2) (fma.f64 900 (/.f64 d1 (pow.f64 d2 3)) (fma.f64 27000 (/.f64 d1 (pow.f64 d2 4)) (*.f64 (/.f64 d1 d2) (/.f64 30 d2)))))
(+.f64 (/.f64 d1 d2) (fma.f64 27000 (/.f64 d1 (pow.f64 d2 4)) (*.f64 (/.f64 d1 (*.f64 d2 d2)) (+.f64 30 (/.f64 900 d2)))))
(fma.f64 (+.f64 1 (/.f64 30 d2)) (/.f64 d1 d2) (*.f64 (/.f64 d1 (pow.f64 d2 3)) (+.f64 900 (/.f64 27000 d2))))
(fma.f64 (+.f64 1 (/.f64 30 d2)) (/.f64 d1 d2) (/.f64 (*.f64 d1 (+.f64 900 (/.f64 27000 d2))) (pow.f64 d2 3)))
(/.f64 d1 d2)
(+.f64 (/.f64 d1 d2) (*.f64 30 (/.f64 d1 (pow.f64 d2 2))))
(+.f64 (/.f64 d1 d2) (/.f64 (*.f64 30 d1) (*.f64 d2 d2)))
(fma.f64 30 (/.f64 d1 (*.f64 d2 d2)) (/.f64 d1 d2))
(*.f64 (+.f64 (/.f64 30 d2) 1) (/.f64 d1 d2))
(*.f64 (/.f64 d1 d2) (+.f64 1 (/.f64 30 d2)))
(+.f64 (/.f64 d1 d2) (+.f64 (*.f64 900 (/.f64 d1 (pow.f64 d2 3))) (*.f64 30 (/.f64 d1 (pow.f64 d2 2)))))
(+.f64 (/.f64 d1 d2) (fma.f64 900 (/.f64 d1 (pow.f64 d2 3)) (/.f64 (*.f64 30 d1) (*.f64 d2 d2))))
(+.f64 (/.f64 d1 d2) (fma.f64 900 (/.f64 d1 (pow.f64 d2 3)) (*.f64 (/.f64 d1 d2) (/.f64 30 d2))))
(+.f64 (/.f64 d1 d2) (*.f64 (/.f64 d1 (*.f64 d2 d2)) (+.f64 30 (/.f64 900 d2))))
(fma.f64 (/.f64 d1 (*.f64 d2 d2)) (+.f64 30 (/.f64 900 d2)) (/.f64 d1 d2))
(+.f64 (/.f64 d1 d2) (+.f64 (*.f64 900 (/.f64 d1 (pow.f64 d2 3))) (+.f64 (*.f64 30 (/.f64 d1 (pow.f64 d2 2))) (*.f64 27000 (/.f64 d1 (pow.f64 d2 4))))))
(+.f64 (/.f64 d1 d2) (fma.f64 900 (/.f64 d1 (pow.f64 d2 3)) (fma.f64 30 (/.f64 d1 (*.f64 d2 d2)) (*.f64 27000 (/.f64 d1 (pow.f64 d2 4))))))
(+.f64 (/.f64 d1 d2) (fma.f64 900 (/.f64 d1 (pow.f64 d2 3)) (fma.f64 27000 (/.f64 d1 (pow.f64 d2 4)) (*.f64 (/.f64 d1 d2) (/.f64 30 d2)))))
(+.f64 (/.f64 d1 d2) (fma.f64 27000 (/.f64 d1 (pow.f64 d2 4)) (*.f64 (/.f64 d1 (*.f64 d2 d2)) (+.f64 30 (/.f64 900 d2)))))
(fma.f64 (+.f64 1 (/.f64 30 d2)) (/.f64 d1 d2) (*.f64 (/.f64 d1 (pow.f64 d2 3)) (+.f64 900 (/.f64 27000 d2))))
(fma.f64 (+.f64 1 (/.f64 30 d2)) (/.f64 d1 d2) (/.f64 (*.f64 d1 (+.f64 900 (/.f64 27000 d2))) (pow.f64 d2 3)))

localize8.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.2b
(/.f64 (*.f64 d1 -900) (+.f64 d2 -30))
0.2b
(/.f64 (*.f64 d1 -900) (+.f64 d2 -30))
Compiler

Compiled 19 to 13 computations (31.6% saved)

series3.0ms (0.1%)

Counts
1 → 24
Calls

6 calls:

TimeVariablePointExpression
1.0ms
d1
@-inf
(/.f64 (*.f64 d1 -900) (+.f64 d2 -30))
1.0ms
d1
@0
(/.f64 (*.f64 d1 -900) (+.f64 d2 -30))
1.0ms
d1
@inf
(/.f64 (*.f64 d1 -900) (+.f64 d2 -30))
0.0ms
d2
@inf
(/.f64 (*.f64 d1 -900) (+.f64 d2 -30))
0.0ms
d2
@0
(/.f64 (*.f64 d1 -900) (+.f64 d2 -30))

rewrite53.0ms (1.6%)

Algorithm
batch-egg-rewrite
Rules
582×unpow-prod-down_binary64
424×log-prod_binary64
328×exp-prod_binary64
262×prod-exp_binary64
232×pow2_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0810
117910
2237610
Stop Event
node limit
Counts
1 → 107
Calls
Call 1
Inputs
(/.f64 (*.f64 d1 -900) (+.f64 d2 -30))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 -900 (/.f64 d1 (+.f64 d2 -30))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 -900) (/.f64 d1 (+.f64 d2 -30)))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 -900) (/.f64 d1 (+.f64 d2 -30))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 -900) (/.f64 d1 (+.f64 d2 -30))))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 -900) (/.f64 d1 (+.f64 d2 -30))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 -900 (/.f64 d1 (+.f64 d2 -30))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 d1 (/.f64 1 (*.f64 (+.f64 d2 -30) -1/900)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 d1 (*.f64 -900 (/.f64 1 (+.f64 d2 -30))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 d1 (pow.f64 (/.f64 1 (*.f64 (+.f64 d2 -30) -1/900)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 d1 (pow.f64 (*.f64 -900 (/.f64 1 (+.f64 d2 -30))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -900 (/.f64 d1 (+.f64 d2 -30)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -900 (*.f64 d1 (/.f64 1 (+.f64 d2 -30))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -900 (pow.f64 (/.f64 d1 (+.f64 d2 -30)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -900 (pow.f64 (/.f64 (+.f64 d2 -30) d1) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 -900) (/.f64 1 (+.f64 d2 -30)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 -900 (/.f64 d1 (+.f64 d2 -30))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 -900 (/.f64 d1 (+.f64 d2 -30))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 -900 (/.f64 d1 (+.f64 d2 -30)))) (cbrt.f64 (*.f64 810000 (pow.f64 (/.f64 d1 (+.f64 d2 -30)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 810000 (pow.f64 (/.f64 d1 (+.f64 d2 -30)) 2))) (cbrt.f64 (*.f64 -900 (/.f64 d1 (+.f64 d2 -30)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (*.f64 d1 -900) 2)) (*.f64 (cbrt.f64 (*.f64 d1 -900)) (/.f64 1 (+.f64 d2 -30))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 -900 (/.f64 d1 (+.f64 d2 -30)))) (sqrt.f64 (*.f64 -900 (/.f64 d1 (+.f64 d2 -30)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 d1 -900)) (*.f64 (sqrt.f64 (*.f64 d1 -900)) (/.f64 1 (+.f64 d2 -30))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 900) (/.f64 1 (+.f64 30 (neg.f64 d2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 900) (pow.f64 (/.f64 1 (+.f64 30 (neg.f64 d2))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (+.f64 d2 -30)) (*.f64 d1 -900))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (+.f64 d2 -30)) (pow.f64 (/.f64 1 (*.f64 d1 -900)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 d1 1) (/.f64 -900 (+.f64 d2 -30)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 d1 (+.f64 d2 -30)) -900)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (pow.f64 (*.f64 d1 -900) 2)) 1) (/.f64 (cbrt.f64 (*.f64 d1 -900)) (+.f64 d2 -30)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (*.f64 d1 -900)) 1) (/.f64 (sqrt.f64 (*.f64 d1 -900)) (+.f64 d2 -30)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 d1 (pow.f64 (cbrt.f64 (+.f64 d2 -30)) 2)) (/.f64 -900 (cbrt.f64 (+.f64 d2 -30))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 -900 (pow.f64 (cbrt.f64 (+.f64 d2 -30)) 2)) (/.f64 d1 (cbrt.f64 (+.f64 d2 -30))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 d2 -30)) -2) (/.f64 (*.f64 d1 -900) (cbrt.f64 (+.f64 d2 -30))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (pow.f64 (*.f64 d1 -900) 2)) (pow.f64 (cbrt.f64 (+.f64 d2 -30)) 2)) (cbrt.f64 (*.f64 -900 (/.f64 d1 (+.f64 d2 -30)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (*.f64 d1 -900)) (pow.f64 (cbrt.f64 (+.f64 d2 -30)) 2)) (/.f64 (sqrt.f64 (*.f64 d1 -900)) (cbrt.f64 (+.f64 d2 -30))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 d1 (sqrt.f64 (+.f64 d2 -30))) (/.f64 -900 (sqrt.f64 (+.f64 d2 -30))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 -900 (sqrt.f64 (+.f64 d2 -30))) (/.f64 d1 (sqrt.f64 (+.f64 d2 -30))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (+.f64 d2 -30) -1/2) (/.f64 (*.f64 d1 -900) (sqrt.f64 (+.f64 d2 -30))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (pow.f64 (*.f64 d1 -900) 2)) (sqrt.f64 (+.f64 d2 -30))) (/.f64 (cbrt.f64 (*.f64 d1 -900)) (sqrt.f64 (+.f64 d2 -30))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 d1 -900) (+.f64 -27000 (pow.f64 d2 3))) (-.f64 (fma.f64 d2 d2 900) (*.f64 d2 -30)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 d1 -900) (fma.f64 d2 d2 -900)) (+.f64 d2 30))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/3) (*.f64 -900 (/.f64 d1 (+.f64 d2 -30))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 d1 (+.f64 d2 -30)) 1) -900)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 d1 1) 1) (pow.f64 (/.f64 -900 (+.f64 d2 -30)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 (cbrt.f64 (pow.f64 (*.f64 d1 -900) 2)) 1) 1) (pow.f64 (/.f64 (cbrt.f64 (*.f64 d1 -900)) (+.f64 d2 -30)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 (sqrt.f64 (*.f64 d1 -900)) 1) 1) (pow.f64 (/.f64 (sqrt.f64 (*.f64 d1 -900)) (+.f64 d2 -30)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 d1 (pow.f64 (cbrt.f64 (+.f64 d2 -30)) 2)) 1) (pow.f64 (/.f64 -900 (cbrt.f64 (+.f64 d2 -30))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 -900 (pow.f64 (cbrt.f64 (+.f64 d2 -30)) 2)) 1) (pow.f64 (/.f64 d1 (cbrt.f64 (+.f64 d2 -30))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (+.f64 d2 -30)) -2) 1) (pow.f64 (/.f64 (*.f64 d1 -900) (cbrt.f64 (+.f64 d2 -30))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 (cbrt.f64 (pow.f64 (*.f64 d1 -900) 2)) (pow.f64 (cbrt.f64 (+.f64 d2 -30)) 2)) 1) (cbrt.f64 (*.f64 -900 (/.f64 d1 (+.f64 d2 -30)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 (sqrt.f64 (*.f64 d1 -900)) (pow.f64 (cbrt.f64 (+.f64 d2 -30)) 2)) 1) (pow.f64 (/.f64 (sqrt.f64 (*.f64 d1 -900)) (cbrt.f64 (+.f64 d2 -30))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 d1 (sqrt.f64 (+.f64 d2 -30))) 1) (pow.f64 (/.f64 -900 (sqrt.f64 (+.f64 d2 -30))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 -900 (sqrt.f64 (+.f64 d2 -30))) 1) (pow.f64 (/.f64 d1 (sqrt.f64 (+.f64 d2 -30))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (+.f64 d2 -30) -1/2) 1) (pow.f64 (/.f64 (*.f64 d1 -900) (sqrt.f64 (+.f64 d2 -30))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 (cbrt.f64 (pow.f64 (*.f64 d1 -900) 2)) (sqrt.f64 (+.f64 d2 -30))) 1) (pow.f64 (/.f64 (cbrt.f64 (*.f64 d1 -900)) (sqrt.f64 (+.f64 d2 -30))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 (*.f64 d1 -900) (+.f64 -27000 (pow.f64 d2 3))) 1) (-.f64 (fma.f64 d2 d2 900) (*.f64 d2 -30)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 (*.f64 d1 -900) (fma.f64 d2 d2 -900)) 1) (+.f64 d2 30))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (pow.f64 (/.f64 (+.f64 d2 -30) (*.f64 d1 -900)) -3)) 1/3) (pow.f64 (sqrt.f64 (pow.f64 (/.f64 (+.f64 d2 -30) (*.f64 d1 -900)) -3)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (*.f64 810000 (pow.f64 (/.f64 d1 (+.f64 d2 -30)) 2)) (*.f64 d1 -900)) 1/3) (cbrt.f64 (/.f64 1 (+.f64 d2 -30))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (*.f64 (*.f64 -900 (/.f64 d1 (+.f64 d2 -30))) (cbrt.f64 (*.f64 -900 (/.f64 d1 (+.f64 d2 -30))))) 2) 1/3) (cbrt.f64 (cbrt.f64 (*.f64 -900 (/.f64 d1 (+.f64 d2 -30))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (*.f64 -900 (/.f64 d1 (+.f64 d2 -30))) 5/2) 1/3) (cbrt.f64 (sqrt.f64 (*.f64 -900 (/.f64 d1 (+.f64 d2 -30))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 -900 (/.f64 d1 (+.f64 d2 -30))))) 2) 3) (cbrt.f64 (*.f64 -900 (/.f64 d1 (+.f64 d2 -30)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (cbrt.f64 (*.f64 -900 (/.f64 d1 (+.f64 d2 -30))))) 3) (pow.f64 (sqrt.f64 (cbrt.f64 (*.f64 -900 (/.f64 d1 (+.f64 d2 -30))))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (/.f64 (+.f64 d2 -30) (*.f64 d1 -900))) 2) -1) (cbrt.f64 (*.f64 -900 (/.f64 d1 (+.f64 d2 -30)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 1 d1) -1) (/.f64 1 (*.f64 (+.f64 d2 -30) -1/900)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 (pow.f64 (cbrt.f64 (+.f64 d2 -30)) 2) d1) -1) (pow.f64 (/.f64 (cbrt.f64 (+.f64 d2 -30)) -900) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 (sqrt.f64 (+.f64 d2 -30)) d1) -1) (pow.f64 (/.f64 (sqrt.f64 (+.f64 d2 -30)) -900) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 (sqrt.f64 (+.f64 d2 -30)) -900) -1) (pow.f64 (/.f64 (sqrt.f64 (+.f64 d2 -30)) d1) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 (pow.f64 (cbrt.f64 (+.f64 d2 -30)) 2) -900) -1) (pow.f64 (/.f64 (cbrt.f64 (+.f64 d2 -30)) d1) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 (pow.f64 (cbrt.f64 (+.f64 d2 -30)) 2) 1) -1) (pow.f64 (/.f64 (cbrt.f64 (+.f64 d2 -30)) (*.f64 d1 -900)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 (sqrt.f64 (+.f64 d2 -30)) 1) -1) (pow.f64 (/.f64 (sqrt.f64 (+.f64 d2 -30)) (*.f64 d1 -900)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 d1 -900)) -2) -1) (pow.f64 (/.f64 (+.f64 d2 -30) (cbrt.f64 (*.f64 d1 -900))) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 (pow.f64 (cbrt.f64 (+.f64 d2 -30)) 2) (cbrt.f64 (pow.f64 (*.f64 d1 -900) 2))) -1) (pow.f64 (/.f64 (cbrt.f64 (+.f64 d2 -30)) (cbrt.f64 (*.f64 d1 -900))) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 (sqrt.f64 (+.f64 d2 -30)) (cbrt.f64 (pow.f64 (*.f64 d1 -900) 2))) -1) (pow.f64 (/.f64 (sqrt.f64 (+.f64 d2 -30)) (cbrt.f64 (*.f64 d1 -900))) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (*.f64 d1 -900) -1/2) -1) (pow.f64 (/.f64 (+.f64 d2 -30) (sqrt.f64 (*.f64 d1 -900))) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 (pow.f64 (cbrt.f64 (+.f64 d2 -30)) 2) (sqrt.f64 (*.f64 d1 -900))) -1) (pow.f64 (/.f64 (cbrt.f64 (+.f64 d2 -30)) (sqrt.f64 (*.f64 d1 -900))) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 (sqrt.f64 (+.f64 d2 -30)) (sqrt.f64 (*.f64 d1 -900))) -1) (pow.f64 (/.f64 (sqrt.f64 (+.f64 d2 -30)) (sqrt.f64 (*.f64 d1 -900))) -1))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 -900 (/.f64 d1 (+.f64 d2 -30))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 810000 (pow.f64 (/.f64 d1 (+.f64 d2 -30)) 2)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (+.f64 d2 -30) (*.f64 d1 -900)) -3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 -900 (/.f64 d1 (+.f64 d2 -30)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 -900 (/.f64 d1 (+.f64 d2 -30)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (+.f64 d2 -30) (*.f64 d1 -900)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (*.f64 -900 (/.f64 d1 (+.f64 d2 -30)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (*.f64 (pow.f64 d1 3) -729000000) (pow.f64 (+.f64 d2 -30) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (/.f64 (+.f64 d2 -30) (*.f64 d1 -900)) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 -900 (/.f64 d1 (+.f64 d2 -30))))) 2)) (cbrt.f64 (log.f64 (*.f64 -900 (/.f64 d1 (+.f64 d2 -30))))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 -900 (/.f64 d1 (+.f64 d2 -30)))))) (sqrt.f64 (log.f64 (*.f64 -900 (/.f64 d1 (+.f64 d2 -30))))))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (*.f64 d1 -900) (+.f64 30 (neg.f64 d2))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 810000 (pow.f64 (/.f64 d1 (+.f64 d2 -30)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 -900) (/.f64 d1 (+.f64 d2 -30))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 -900 (/.f64 d1 (+.f64 d2 -30))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 (+.f64 d2 -30) (*.f64 d1 -900)) -3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (*.f64 (pow.f64 d1 3) -729000000) (pow.f64 (+.f64 d2 -30) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 -900 (/.f64 d1 (+.f64 d2 -30)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 -900 (/.f64 d1 (+.f64 d2 -30)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (/.f64 (+.f64 d2 -30) (*.f64 d1 -900)) -3)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 -900 (/.f64 d1 (+.f64 d2 -30))))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 -900 (/.f64 d1 (+.f64 d2 -30))))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 (+.f64 d2 -30) (*.f64 d1 -900))) -1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 -900 (/.f64 d1 (+.f64 d2 -30)))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (*.f64 (log.f64 d1) 1) (log.f64 (*.f64 (+.f64 d2 -30) -1/900))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (*.f64 (log.f64 (*.f64 d1 -900)) 1) (log.f64 (+.f64 d2 -30))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (log.f64 (*.f64 d1 -900)) (*.f64 (log.f64 (+.f64 d2 -30)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (*.f64 (log.f64 (*.f64 d1 -900)) 1) (*.f64 (log.f64 (+.f64 d2 -30)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (*.f64 d1 -900)) 1) (neg.f64 (log.f64 (+.f64 d2 -30)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (neg.f64 (log.f64 (+.f64 d2 -30))) (*.f64 (log.f64 (*.f64 d1 -900)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 -900 (/.f64 d1 (+.f64 d2 -30)))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 -900 (/.f64 d1 (+.f64 d2 -30)))))))))

simplify60.0ms (1.8%)

Algorithm
egg-herbie
Rules
698×fma-def_binary64
653×associate-/l*_binary64
534×associate-/l/_binary64
501×associate-*l/_binary64
427×distribute-rgt-out_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
045353
1120350
2305319
3888305
43116305
57427305
67904305
Stop Event
node limit
Counts
131 → 125
Calls
Call 1
Inputs
(*.f64 -900 (/.f64 d1 (-.f64 d2 30)))
(*.f64 -900 (/.f64 d1 (-.f64 d2 30)))
(*.f64 -900 (/.f64 d1 (-.f64 d2 30)))
(*.f64 -900 (/.f64 d1 (-.f64 d2 30)))
(*.f64 -900 (/.f64 d1 (-.f64 d2 30)))
(*.f64 -900 (/.f64 d1 (-.f64 d2 30)))
(*.f64 -900 (/.f64 d1 (-.f64 d2 30)))
(*.f64 -900 (/.f64 d1 (-.f64 d2 30)))
(*.f64 -900 (/.f64 d1 (-.f64 d2 30)))
(*.f64 -900 (/.f64 d1 (-.f64 d2 30)))
(*.f64 -900 (/.f64 d1 (-.f64 d2 30)))
(*.f64 -900 (/.f64 d1 (-.f64 d2 30)))
(*.f64 30 d1)
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d2 d1) (+.f64 (*.f64 30 d1) (*.f64 1/30 (*.f64 (pow.f64 d2 2) d1))))
(+.f64 (*.f64 d2 d1) (+.f64 (*.f64 30 d1) (+.f64 (*.f64 1/900 (*.f64 (pow.f64 d2 3) d1)) (*.f64 1/30 (*.f64 (pow.f64 d2 2) d1)))))
(*.f64 -900 (/.f64 d1 d2))
(+.f64 (*.f64 -900 (/.f64 d1 d2)) (*.f64 -27000 (/.f64 d1 (pow.f64 d2 2))))
(+.f64 (*.f64 -900 (/.f64 d1 d2)) (+.f64 (*.f64 -810000 (/.f64 d1 (pow.f64 d2 3))) (*.f64 -27000 (/.f64 d1 (pow.f64 d2 2)))))
(+.f64 (*.f64 -900 (/.f64 d1 d2)) (+.f64 (*.f64 -810000 (/.f64 d1 (pow.f64 d2 3))) (+.f64 (*.f64 -27000 (/.f64 d1 (pow.f64 d2 2))) (*.f64 -24300000 (/.f64 d1 (pow.f64 d2 4))))))
(*.f64 -900 (/.f64 d1 d2))
(+.f64 (*.f64 -900 (/.f64 d1 d2)) (*.f64 -27000 (/.f64 d1 (pow.f64 d2 2))))
(+.f64 (*.f64 -900 (/.f64 d1 d2)) (+.f64 (*.f64 -810000 (/.f64 d1 (pow.f64 d2 3))) (*.f64 -27000 (/.f64 d1 (pow.f64 d2 2)))))
(+.f64 (*.f64 -900 (/.f64 d1 d2)) (+.f64 (*.f64 -810000 (/.f64 d1 (pow.f64 d2 3))) (+.f64 (*.f64 -27000 (/.f64 d1 (pow.f64 d2 2))) (*.f64 -24300000 (/.f64 d1 (pow.f64 d2 4))))))
Outputs
(*.f64 -900 (/.f64 d1 (-.f64 d2 30)))
(/.f64 -900 (/.f64 (-.f64 d2 30) d1))
(*.f64 -900 (/.f64 d1 (+.f64 d2 -30)))
(/.f64 (*.f64 -900 d1) (+.f64 d2 -30))
(*.f64 -900 (/.f64 d1 (-.f64 d2 30)))
(/.f64 -900 (/.f64 (-.f64 d2 30) d1))
(*.f64 -900 (/.f64 d1 (+.f64 d2 -30)))
(/.f64 (*.f64 -900 d1) (+.f64 d2 -30))
(*.f64 -900 (/.f64 d1 (-.f64 d2 30)))
(/.f64 -900 (/.f64 (-.f64 d2 30) d1))
(*.f64 -900 (/.f64 d1 (+.f64 d2 -30)))
(/.f64 (*.f64 -900 d1) (+.f64 d2 -30))
(*.f64 -900 (/.f64 d1 (-.f64 d2 30)))
(/.f64 -900 (/.f64 (-.f64 d2 30) d1))
(*.f64 -900 (/.f64 d1 (+.f64 d2 -30)))
(/.f64 (*.f64 -900 d1) (+.f64 d2 -30))
(*.f64 -900 (/.f64 d1 (-.f64 d2 30)))
(/.f64 -900 (/.f64 (-.f64 d2 30) d1))
(*.f64 -900 (/.f64 d1 (+.f64 d2 -30)))
(/.f64 (*.f64 -900 d1) (+.f64 d2 -30))
(*.f64 -900 (/.f64 d1 (-.f64 d2 30)))
(/.f64 -900 (/.f64 (-.f64 d2 30) d1))
(*.f64 -900 (/.f64 d1 (+.f64 d2 -30)))
(/.f64 (*.f64 -900 d1) (+.f64 d2 -30))
(*.f64 -900 (/.f64 d1 (-.f64 d2 30)))
(/.f64 -900 (/.f64 (-.f64 d2 30) d1))
(*.f64 -900 (/.f64 d1 (+.f64 d2 -30)))
(/.f64 (*.f64 -900 d1) (+.f64 d2 -30))
(*.f64 -900 (/.f64 d1 (-.f64 d2 30)))
(/.f64 -900 (/.f64 (-.f64 d2 30) d1))
(*.f64 -900 (/.f64 d1 (+.f64 d2 -30)))
(/.f64 (*.f64 -900 d1) (+.f64 d2 -30))
(*.f64 -900 (/.f64 d1 (-.f64 d2 30)))
(/.f64 -900 (/.f64 (-.f64 d2 30) d1))
(*.f64 -900 (/.f64 d1 (+.f64 d2 -30)))
(/.f64 (*.f64 -900 d1) (+.f64 d2 -30))
(*.f64 -900 (/.f64 d1 (-.f64 d2 30)))
(/.f64 -900 (/.f64 (-.f64 d2 30) d1))
(*.f64 -900 (/.f64 d1 (+.f64 d2 -30)))
(/.f64 (*.f64 -900 d1) (+.f64 d2 -30))
(*.f64 -900 (/.f64 d1 (-.f64 d2 30)))
(/.f64 -900 (/.f64 (-.f64 d2 30) d1))
(*.f64 -900 (/.f64 d1 (+.f64 d2 -30)))
(/.f64 (*.f64 -900 d1) (+.f64 d2 -30))
(*.f64 -900 (/.f64 d1 (-.f64 d2 30)))
(/.f64 -900 (/.f64 (-.f64 d2 30) d1))
(*.f64 -900 (/.f64 d1 (+.f64 d2 -30)))
(/.f64 (*.f64 -900 d1) (+.f64 d2 -30))
(*.f64 30 d1)
(*.f64 d1 30)
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 d2 30))
(+.f64 (*.f64 d2 d1) (+.f64 (*.f64 30 d1) (*.f64 1/30 (*.f64 (pow.f64 d2 2) d1))))
(fma.f64 d2 d1 (fma.f64 30 d1 (*.f64 1/30 (*.f64 d1 (*.f64 d2 d2)))))
(fma.f64 d1 (+.f64 d2 30) (*.f64 (*.f64 d2 d2) (*.f64 d1 1/30)))
(*.f64 d1 (+.f64 d2 (fma.f64 1/30 (*.f64 d2 d2) 30)))
(*.f64 d1 (+.f64 d2 (fma.f64 d2 (*.f64 d2 1/30) 30)))
(*.f64 d1 (fma.f64 d2 (*.f64 d2 1/30) (+.f64 d2 30)))
(+.f64 (*.f64 d2 d1) (+.f64 (*.f64 30 d1) (+.f64 (*.f64 1/900 (*.f64 (pow.f64 d2 3) d1)) (*.f64 1/30 (*.f64 (pow.f64 d2 2) d1)))))
(fma.f64 d2 d1 (fma.f64 30 d1 (fma.f64 1/900 (*.f64 d1 (pow.f64 d2 3)) (*.f64 1/30 (*.f64 d1 (*.f64 d2 d2))))))
(fma.f64 d1 (+.f64 d2 30) (*.f64 d1 (+.f64 (*.f64 1/900 (pow.f64 d2 3)) (*.f64 1/30 (*.f64 d2 d2)))))
(*.f64 d1 (+.f64 (+.f64 d2 30) (*.f64 (*.f64 d2 d2) (+.f64 (*.f64 d2 1/900) 1/30))))
(*.f64 d1 (fma.f64 d2 (*.f64 d2 (fma.f64 d2 1/900 1/30)) (+.f64 d2 30)))
(*.f64 d1 (+.f64 d2 (fma.f64 d2 (*.f64 d2 (fma.f64 d2 1/900 1/30)) 30)))
(*.f64 -900 (/.f64 d1 d2))
(/.f64 (*.f64 -900 d1) d2)
(+.f64 (*.f64 -900 (/.f64 d1 d2)) (*.f64 -27000 (/.f64 d1 (pow.f64 d2 2))))
(fma.f64 -900 (/.f64 d1 d2) (*.f64 -27000 (/.f64 d1 (*.f64 d2 d2))))
(fma.f64 -900 (/.f64 d1 d2) (*.f64 (/.f64 -27000 d2) (/.f64 d1 d2)))
(*.f64 (/.f64 d1 d2) (+.f64 -900 (/.f64 -27000 d2)))
(+.f64 (*.f64 -900 (/.f64 d1 d2)) (+.f64 (*.f64 -810000 (/.f64 d1 (pow.f64 d2 3))) (*.f64 -27000 (/.f64 d1 (pow.f64 d2 2)))))
(fma.f64 -900 (/.f64 d1 d2) (fma.f64 -810000 (/.f64 d1 (pow.f64 d2 3)) (*.f64 -27000 (/.f64 d1 (*.f64 d2 d2)))))
(fma.f64 -900 (/.f64 d1 d2) (fma.f64 -27000 (/.f64 d1 (*.f64 d2 d2)) (/.f64 (*.f64 d1 -810000) (pow.f64 d2 3))))
(fma.f64 -810000 (/.f64 d1 (pow.f64 d2 3)) (*.f64 (/.f64 d1 d2) (+.f64 -900 (/.f64 -27000 d2))))
(*.f64 (/.f64 d1 d2) (+.f64 (/.f64 -810000 (*.f64 d2 d2)) (+.f64 -900 (/.f64 -27000 d2))))
(+.f64 (*.f64 -900 (/.f64 d1 d2)) (+.f64 (*.f64 -810000 (/.f64 d1 (pow.f64 d2 3))) (+.f64 (*.f64 -27000 (/.f64 d1 (pow.f64 d2 2))) (*.f64 -24300000 (/.f64 d1 (pow.f64 d2 4))))))
(fma.f64 -900 (/.f64 d1 d2) (fma.f64 -810000 (/.f64 d1 (pow.f64 d2 3)) (fma.f64 -27000 (/.f64 d1 (*.f64 d2 d2)) (*.f64 -24300000 (/.f64 d1 (pow.f64 d2 4))))))
(fma.f64 -900 (/.f64 d1 d2) (fma.f64 -810000 (/.f64 d1 (pow.f64 d2 3)) (fma.f64 -27000 (/.f64 d1 (*.f64 d2 d2)) (/.f64 (*.f64 d1 -24300000) (pow.f64 d2 4)))))
(fma.f64 -900 (/.f64 d1 d2) (fma.f64 -24300000 (/.f64 d1 (pow.f64 d2 4)) (*.f64 (/.f64 d1 (*.f64 d2 d2)) (+.f64 -27000 (/.f64 -810000 d2)))))
(fma.f64 (/.f64 d1 d2) (+.f64 -900 (/.f64 -27000 d2)) (*.f64 (/.f64 d1 (pow.f64 d2 3)) (+.f64 -810000 (/.f64 -24300000 d2))))
(*.f64 -900 (/.f64 d1 d2))
(/.f64 (*.f64 -900 d1) d2)
(+.f64 (*.f64 -900 (/.f64 d1 d2)) (*.f64 -27000 (/.f64 d1 (pow.f64 d2 2))))
(fma.f64 -900 (/.f64 d1 d2) (*.f64 -27000 (/.f64 d1 (*.f64 d2 d2))))
(fma.f64 -900 (/.f64 d1 d2) (*.f64 (/.f64 -27000 d2) (/.f64 d1 d2)))
(*.f64 (/.f64 d1 d2) (+.f64 -900 (/.f64 -27000 d2)))
(+.f64 (*.f64 -900 (/.f64 d1 d2)) (+.f64 (*.f64 -810000 (/.f64 d1 (pow.f64 d2 3))) (*.f64 -27000 (/.f64 d1 (pow.f64 d2 2)))))
(fma.f64 -900 (/.f64 d1 d2) (fma.f64 -810000 (/.f64 d1 (pow.f64 d2 3)) (*.f64 -27000 (/.f64 d1 (*.f64 d2 d2)))))
(fma.f64 -900 (/.f64 d1 d2) (fma.f64 -27000 (/.f64 d1 (*.f64 d2 d2)) (/.f64 (*.f64 d1 -810000) (pow.f64 d2 3))))
(fma.f64 -810000 (/.f64 d1 (pow.f64 d2 3)) (*.f64 (/.f64 d1 d2) (+.f64 -900 (/.f64 -27000 d2))))
(*.f64 (/.f64 d1 d2) (+.f64 (/.f64 -810000 (*.f64 d2 d2)) (+.f64 -900 (/.f64 -27000 d2))))
(+.f64 (*.f64 -900 (/.f64 d1 d2)) (+.f64 (*.f64 -810000 (/.f64 d1 (pow.f64 d2 3))) (+.f64 (*.f64 -27000 (/.f64 d1 (pow.f64 d2 2))) (*.f64 -24300000 (/.f64 d1 (pow.f64 d2 4))))))
(fma.f64 -900 (/.f64 d1 d2) (fma.f64 -810000 (/.f64 d1 (pow.f64 d2 3)) (fma.f64 -27000 (/.f64 d1 (*.f64 d2 d2)) (*.f64 -24300000 (/.f64 d1 (pow.f64 d2 4))))))
(fma.f64 -900 (/.f64 d1 d2) (fma.f64 -810000 (/.f64 d1 (pow.f64 d2 3)) (fma.f64 -27000 (/.f64 d1 (*.f64 d2 d2)) (/.f64 (*.f64 d1 -24300000) (pow.f64 d2 4)))))
(fma.f64 -900 (/.f64 d1 d2) (fma.f64 -24300000 (/.f64 d1 (pow.f64 d2 4)) (*.f64 (/.f64 d1 (*.f64 d2 d2)) (+.f64 -27000 (/.f64 -810000 d2)))))
(fma.f64 (/.f64 d1 d2) (+.f64 -900 (/.f64 -27000 d2)) (*.f64 (/.f64 d1 (pow.f64 d2 3)) (+.f64 -810000 (/.f64 -24300000 d2))))

localize16.0ms (0.5%)

Local error

Found 6 expressions with local error:

NewErrorProgram
10.6b
(*.f64 (fma.f64 d2 d2 -900) (*.f64 d1 (/.f64 1 (+.f64 d2 -30))))
0.1b
(*.f64 d1 (/.f64 1 (+.f64 d2 -30)))
0.0b
(/.f64 1 (+.f64 d2 -30))
0.0b
(/.f64 1 (+.f64 d2 -30))
0.1b
(*.f64 d1 (/.f64 1 (+.f64 d2 -30)))
10.6b
(*.f64 (fma.f64 d2 d2 -900) (*.f64 d1 (/.f64 1 (+.f64 d2 -30))))
Compiler

Compiled 38 to 26 computations (31.6% saved)

series4.0ms (0.1%)

Counts
3 → 60
Calls

15 calls:

TimeVariablePointExpression
0.0ms
d2
@inf
(/.f64 1 (+.f64 d2 -30))
0.0ms
d2
@0
(*.f64 (fma.f64 d2 d2 -900) (*.f64 d1 (/.f64 1 (+.f64 d2 -30))))
0.0ms
d2
@0
(/.f64 1 (+.f64 d2 -30))
0.0ms
d2
@-inf
(/.f64 1 (+.f64 d2 -30))
0.0ms
d1
@-inf
(*.f64 (fma.f64 d2 d2 -900) (*.f64 d1 (/.f64 1 (+.f64 d2 -30))))

rewrite60.0ms (1.8%)

Algorithm
batch-egg-rewrite
Rules
514×log-prod_binary64
401×exp-prod_binary64
341×pow-prod-down_binary64
281×pow2_binary64
199×pow1/3_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01128
123528
2288428
Stop Event
node limit
Counts
3 → 111
Calls
Call 1
Inputs
(*.f64 (fma.f64 d2 d2 -900) (*.f64 d1 (/.f64 1 (+.f64 d2 -30))))
(*.f64 d1 (/.f64 1 (+.f64 d2 -30)))
(/.f64 1 (+.f64 d2 -30))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 d2 d2) (/.f64 d1 (+.f64 d2 -30))) (*.f64 -900 (/.f64 d1 (+.f64 d2 -30))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (/.f64 d1 (+.f64 d2 -30)) (*.f64 d2 d2)) (*.f64 (/.f64 d1 (+.f64 d2 -30)) -900))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (fma.f64 d2 d2 -900)) (/.f64 d1 (+.f64 d2 -30)))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (fma.f64 d2 d2 -900)) (/.f64 d1 (+.f64 d2 -30))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (fma.f64 d2 d2 -900)) (/.f64 d1 (+.f64 d2 -30))))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (fma.f64 d2 d2 -900)) (/.f64 d1 (+.f64 d2 -30))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (fma.f64 d2 d2 -900) d1) (+.f64 d2 -30))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (fma.f64 d2 d2 -900) d1) 1) (+.f64 d2 -30))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (fma.f64 d2 d2 -900) d1) -1) (+.f64 30 (neg.f64 d2)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (E.f64) (log.f64 (*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30))))) 2)) (cbrt.f64 (log.f64 (*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30))))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30)))))) (sqrt.f64 (log.f64 (*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30))))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (fma.f64 d2 d2 -900)) (/.f64 d1 (+.f64 d2 -30))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 d1 (+.f64 d2 -30)) (*.f64 d2 d2) (*.f64 (/.f64 d1 (+.f64 d2 -30)) -900))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d2 d2) (/.f64 d1 (+.f64 d2 -30)) (*.f64 -900 (/.f64 d1 (+.f64 d2 -30))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30))) 3)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30))))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30))))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30)))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30)))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (fma.f64 d2 d2 -900) (/.f64 d1 (+.f64 d2 -30)))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 d1 (+.f64 d2 -30)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (/.f64 d1 (+.f64 d2 -30)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (/.f64 d1 (+.f64 d2 -30))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (/.f64 d1 (+.f64 d2 -30))))) (log.f64 (sqrt.f64 (exp.f64 (/.f64 d1 (+.f64 d2 -30))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 d1 (+.f64 d2 -30)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 d1 (+.f64 d2 -30))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 d2 -30) d1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (cbrt.f64 d1) 2) (/.f64 (+.f64 d2 -30) (cbrt.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 d1) (/.f64 (+.f64 d2 -30) (sqrt.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 d1) (+.f64 30 (neg.f64 d2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 d1 (sqrt.f64 (+.f64 d2 -30))) (sqrt.f64 (+.f64 d2 -30)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 d1 1) (+.f64 d2 -30))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 d1 (pow.f64 (cbrt.f64 (+.f64 d2 -30)) 2)) (cbrt.f64 (+.f64 d2 -30)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -1 d1) (+.f64 30 (neg.f64 d2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 -1) (+.f64 30 (neg.f64 d2)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 d1 (+.f64 d2 -30)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (E.f64) (log.f64 (/.f64 d1 (+.f64 d2 -30))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 d1 (+.f64 d2 -30)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 d1 (+.f64 d2 -30)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 d1 (+.f64 d2 -30))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 d1 (+.f64 d2 -30))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 d1 3) (pow.f64 (+.f64 d2 -30) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (+.f64 d2 -30) d1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (/.f64 d1 (+.f64 d2 -30)))) 2)) (cbrt.f64 (log.f64 (/.f64 d1 (+.f64 d2 -30)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (/.f64 d1 (+.f64 d2 -30))))) (sqrt.f64 (log.f64 (/.f64 d1 (+.f64 d2 -30)))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 d1 (+.f64 d2 -30)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 d1 (+.f64 d2 -30))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 d1 (+.f64 d2 -30)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 d1 (+.f64 d2 -30)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 d1 3) (pow.f64 (+.f64 d2 -30) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 d1 (+.f64 d2 -30))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 d1 (+.f64 d2 -30))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (/.f64 d1 (+.f64 d2 -30)))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (/.f64 d1 (+.f64 d2 -30)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (/.f64 d1 (+.f64 d2 -30)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (/.f64 d1 (+.f64 d2 -30))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 d1 (+.f64 d2 -30))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 d1 (+.f64 d2 -30))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 1 (+.f64 d2 -30)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (/.f64 1 (+.f64 d2 -30)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (/.f64 1 (+.f64 d2 -30))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (/.f64 1 (+.f64 d2 -30))))) (log.f64 (sqrt.f64 (exp.f64 (/.f64 1 (+.f64 d2 -30))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 1 (+.f64 d2 -30)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 1 (+.f64 d2 -30)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (+.f64 d2 -30)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (cbrt.f64 (+.f64 d2 -30))) (cbrt.f64 (pow.f64 (+.f64 d2 -30) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (+.f64 d2 -30) -2)) (/.f64 1 (cbrt.f64 (+.f64 d2 -30))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (+.f64 d2 -30) -1/2) (pow.f64 (+.f64 d2 -30) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (/.f64 1 (+.f64 30 (neg.f64 d2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 d2 -30)) -2) (/.f64 1 (cbrt.f64 (+.f64 d2 -30))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (+.f64 -27000 (pow.f64 d2 3))) (-.f64 (fma.f64 d2 d2 900) (*.f64 d2 -30)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (fma.f64 d2 d2 -900)) (+.f64 d2 30))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 d2 -30) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 1 (+.f64 d2 -30)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (E.f64) (neg.f64 (log.f64 (+.f64 d2 -30))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 d2 -30) 2) -1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 d2 -30) 3) -1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 d2 -30) -2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 d2 -30) -3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (+.f64 d2 -30)) -3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 1 (cbrt.f64 (+.f64 d2 -30))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (+.f64 d2 -30)) -2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 d2 -30) -1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 -1) (log.f64 (+.f64 d2 -30)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (neg.f64 (+.f64 30 (neg.f64 d2))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (neg.f64 (log.f64 (+.f64 d2 -30)))) 2)) (cbrt.f64 (neg.f64 (log.f64 (+.f64 d2 -30)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (neg.f64 (log.f64 (+.f64 d2 -30))))) (sqrt.f64 (neg.f64 (log.f64 (+.f64 d2 -30)))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (+.f64 d2 -30) -2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 1 (+.f64 d2 -30))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 1 (+.f64 d2 -30)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (+.f64 d2 -30) -3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (neg.f64 (log.f64 (+.f64 d2 -30))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (+.f64 d2 -30)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (neg.f64 (log.f64 (+.f64 d2 -30))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (+.f64 d2 -30) -3)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (neg.f64 (log.f64 (cbrt.f64 (+.f64 d2 -30)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 -1/2 (log.f64 (+.f64 d2 -30))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (+.f64 d2 -30)) 1) -1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (+.f64 d2 -30)) -1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (neg.f64 (log.f64 (+.f64 d2 -30))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 1 (+.f64 d2 -30))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 1 (+.f64 d2 -30))))))))

simplify58.0ms (1.8%)

Algorithm
egg-herbie
Rules
877×fma-def_binary64
610×associate-*r/_binary64
345×distribute-rgt-out_binary64
301×associate-*l*_binary64
301×distribute-lft-out_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
070763
1185723
2469695
31295673
44004671
56968671
Stop Event
node limit
Counts
171 → 148
Calls
Call 1
Inputs
(*.f64 30 d1)
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(/.f64 (*.f64 (-.f64 (pow.f64 d2 2) 900) d1) (-.f64 d2 30))
(/.f64 (*.f64 (-.f64 (pow.f64 d2 2) 900) d1) (-.f64 d2 30))
(/.f64 (*.f64 (-.f64 (pow.f64 d2 2) 900) d1) (-.f64 d2 30))
(/.f64 (*.f64 (-.f64 (pow.f64 d2 2) 900) d1) (-.f64 d2 30))
(/.f64 (*.f64 (-.f64 (pow.f64 d2 2) 900) d1) (-.f64 d2 30))
(/.f64 (*.f64 (-.f64 (pow.f64 d2 2) 900) d1) (-.f64 d2 30))
(/.f64 (*.f64 (-.f64 (pow.f64 d2 2) 900) d1) (-.f64 d2 30))
(/.f64 (*.f64 (-.f64 (pow.f64 d2 2) 900) d1) (-.f64 d2 30))
(/.f64 (*.f64 (-.f64 (pow.f64 d2 2) 900) d1) (-.f64 d2 30))
(/.f64 (*.f64 (-.f64 (pow.f64 d2 2) 900) d1) (-.f64 d2 30))
(/.f64 (*.f64 (-.f64 (pow.f64 d2 2) 900) d1) (-.f64 d2 30))
(/.f64 (*.f64 (-.f64 (pow.f64 d2 2) 900) d1) (-.f64 d2 30))
(/.f64 d1 (-.f64 d2 30))
(/.f64 d1 (-.f64 d2 30))
(/.f64 d1 (-.f64 d2 30))
(/.f64 d1 (-.f64 d2 30))
(/.f64 d1 (-.f64 d2 30))
(/.f64 d1 (-.f64 d2 30))
(/.f64 d1 (-.f64 d2 30))
(/.f64 d1 (-.f64 d2 30))
(/.f64 d1 (-.f64 d2 30))
(/.f64 d1 (-.f64 d2 30))
(/.f64 d1 (-.f64 d2 30))
(/.f64 d1 (-.f64 d2 30))
(*.f64 -1/30 d1)
(+.f64 (*.f64 -1/30 d1) (*.f64 -1/900 (*.f64 d2 d1)))
(+.f64 (*.f64 -1/27000 (*.f64 (pow.f64 d2 2) d1)) (+.f64 (*.f64 -1/30 d1) (*.f64 -1/900 (*.f64 d2 d1))))
(+.f64 (*.f64 -1/27000 (*.f64 (pow.f64 d2 2) d1)) (+.f64 (*.f64 -1/810000 (*.f64 (pow.f64 d2 3) d1)) (+.f64 (*.f64 -1/30 d1) (*.f64 -1/900 (*.f64 d2 d1)))))
(/.f64 d1 d2)
(+.f64 (/.f64 d1 d2) (*.f64 30 (/.f64 d1 (pow.f64 d2 2))))
(+.f64 (/.f64 d1 d2) (+.f64 (*.f64 900 (/.f64 d1 (pow.f64 d2 3))) (*.f64 30 (/.f64 d1 (pow.f64 d2 2)))))
(+.f64 (/.f64 d1 d2) (+.f64 (*.f64 900 (/.f64 d1 (pow.f64 d2 3))) (+.f64 (*.f64 30 (/.f64 d1 (pow.f64 d2 2))) (*.f64 27000 (/.f64 d1 (pow.f64 d2 4))))))
(/.f64 d1 d2)
(+.f64 (/.f64 d1 d2) (*.f64 30 (/.f64 d1 (pow.f64 d2 2))))
(+.f64 (/.f64 d1 d2) (+.f64 (*.f64 900 (/.f64 d1 (pow.f64 d2 3))) (*.f64 30 (/.f64 d1 (pow.f64 d2 2)))))
(+.f64 (/.f64 d1 d2) (+.f64 (*.f64 900 (/.f64 d1 (pow.f64 d2 3))) (+.f64 (*.f64 30 (/.f64 d1 (pow.f64 d2 2))) (*.f64 27000 (/.f64 d1 (pow.f64 d2 4))))))
-1/30
(-.f64 (*.f64 -1/900 d2) 1/30)
(-.f64 (+.f64 (*.f64 -1/27000 (pow.f64 d2 2)) (*.f64 -1/900 d2)) 1/30)
(-.f64 (+.f64 (*.f64 -1/27000 (pow.f64 d2 2)) (+.f64 (*.f64 -1/810000 (pow.f64 d2 3)) (*.f64 -1/900 d2))) 1/30)
(/.f64 1 d2)
(+.f64 (/.f64 1 d2) (*.f64 30 (/.f64 1 (pow.f64 d2 2))))
(+.f64 (/.f64 1 d2) (+.f64 (*.f64 900 (/.f64 1 (pow.f64 d2 3))) (*.f64 30 (/.f64 1 (pow.f64 d2 2)))))
(+.f64 (/.f64 1 d2) (+.f64 (*.f64 27000 (/.f64 1 (pow.f64 d2 4))) (+.f64 (*.f64 900 (/.f64 1 (pow.f64 d2 3))) (*.f64 30 (/.f64 1 (pow.f64 d2 2))))))
(/.f64 1 d2)
(+.f64 (/.f64 1 d2) (*.f64 30 (/.f64 1 (pow.f64 d2 2))))
(+.f64 (/.f64 1 d2) (+.f64 (*.f64 900 (/.f64 1 (pow.f64 d2 3))) (*.f64 30 (/.f64 1 (pow.f64 d2 2)))))
(+.f64 (/.f64 1 d2) (+.f64 (*.f64 27000 (/.f64 1 (pow.f64 d2 4))) (+.f64 (*.f64 900 (/.f64 1 (pow.f64 d2 3))) (*.f64 30 (/.f64 1 (pow.f64 d2 2))))))
Outputs
(*.f64 30 d1)
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 30 d2))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 30 d2))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 30 d2))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 30 d2))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 30 d2))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 30 d2))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 30 d2))
(/.f64 (*.f64 (-.f64 (pow.f64 d2 2) 900) d1) (-.f64 d2 30))
(/.f64 (+.f64 (*.f64 d2 d2) -900) (/.f64 (+.f64 d2 -30) d1))
(*.f64 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)) d1)
(/.f64 (fma.f64 d2 d2 -900) (/.f64 (-.f64 d2 30) d1))
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (-.f64 d2 30)))
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)))
(/.f64 (*.f64 (-.f64 (pow.f64 d2 2) 900) d1) (-.f64 d2 30))
(/.f64 (+.f64 (*.f64 d2 d2) -900) (/.f64 (+.f64 d2 -30) d1))
(*.f64 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)) d1)
(/.f64 (fma.f64 d2 d2 -900) (/.f64 (-.f64 d2 30) d1))
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (-.f64 d2 30)))
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)))
(/.f64 (*.f64 (-.f64 (pow.f64 d2 2) 900) d1) (-.f64 d2 30))
(/.f64 (+.f64 (*.f64 d2 d2) -900) (/.f64 (+.f64 d2 -30) d1))
(*.f64 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)) d1)
(/.f64 (fma.f64 d2 d2 -900) (/.f64 (-.f64 d2 30) d1))
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (-.f64 d2 30)))
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)))
(/.f64 (*.f64 (-.f64 (pow.f64 d2 2) 900) d1) (-.f64 d2 30))
(/.f64 (+.f64 (*.f64 d2 d2) -900) (/.f64 (+.f64 d2 -30) d1))
(*.f64 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)) d1)
(/.f64 (fma.f64 d2 d2 -900) (/.f64 (-.f64 d2 30) d1))
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (-.f64 d2 30)))
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)))
(/.f64 (*.f64 (-.f64 (pow.f64 d2 2) 900) d1) (-.f64 d2 30))
(/.f64 (+.f64 (*.f64 d2 d2) -900) (/.f64 (+.f64 d2 -30) d1))
(*.f64 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)) d1)
(/.f64 (fma.f64 d2 d2 -900) (/.f64 (-.f64 d2 30) d1))
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (-.f64 d2 30)))
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)))
(/.f64 (*.f64 (-.f64 (pow.f64 d2 2) 900) d1) (-.f64 d2 30))
(/.f64 (+.f64 (*.f64 d2 d2) -900) (/.f64 (+.f64 d2 -30) d1))
(*.f64 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)) d1)
(/.f64 (fma.f64 d2 d2 -900) (/.f64 (-.f64 d2 30) d1))
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (-.f64 d2 30)))
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)))
(/.f64 (*.f64 (-.f64 (pow.f64 d2 2) 900) d1) (-.f64 d2 30))
(/.f64 (+.f64 (*.f64 d2 d2) -900) (/.f64 (+.f64 d2 -30) d1))
(*.f64 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)) d1)
(/.f64 (fma.f64 d2 d2 -900) (/.f64 (-.f64 d2 30) d1))
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (-.f64 d2 30)))
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)))
(/.f64 (*.f64 (-.f64 (pow.f64 d2 2) 900) d1) (-.f64 d2 30))
(/.f64 (+.f64 (*.f64 d2 d2) -900) (/.f64 (+.f64 d2 -30) d1))
(*.f64 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)) d1)
(/.f64 (fma.f64 d2 d2 -900) (/.f64 (-.f64 d2 30) d1))
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (-.f64 d2 30)))
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)))
(/.f64 (*.f64 (-.f64 (pow.f64 d2 2) 900) d1) (-.f64 d2 30))
(/.f64 (+.f64 (*.f64 d2 d2) -900) (/.f64 (+.f64 d2 -30) d1))
(*.f64 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)) d1)
(/.f64 (fma.f64 d2 d2 -900) (/.f64 (-.f64 d2 30) d1))
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (-.f64 d2 30)))
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)))
(/.f64 (*.f64 (-.f64 (pow.f64 d2 2) 900) d1) (-.f64 d2 30))
(/.f64 (+.f64 (*.f64 d2 d2) -900) (/.f64 (+.f64 d2 -30) d1))
(*.f64 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)) d1)
(/.f64 (fma.f64 d2 d2 -900) (/.f64 (-.f64 d2 30) d1))
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (-.f64 d2 30)))
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)))
(/.f64 (*.f64 (-.f64 (pow.f64 d2 2) 900) d1) (-.f64 d2 30))
(/.f64 (+.f64 (*.f64 d2 d2) -900) (/.f64 (+.f64 d2 -30) d1))
(*.f64 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)) d1)
(/.f64 (fma.f64 d2 d2 -900) (/.f64 (-.f64 d2 30) d1))
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (-.f64 d2 30)))
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)))
(/.f64 (*.f64 (-.f64 (pow.f64 d2 2) 900) d1) (-.f64 d2 30))
(/.f64 (+.f64 (*.f64 d2 d2) -900) (/.f64 (+.f64 d2 -30) d1))
(*.f64 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)) d1)
(/.f64 (fma.f64 d2 d2 -900) (/.f64 (-.f64 d2 30) d1))
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (-.f64 d2 30)))
(*.f64 d1 (/.f64 (fma.f64 d2 d2 -900) (+.f64 d2 -30)))
(/.f64 d1 (-.f64 d2 30))
(/.f64 d1 (+.f64 d2 -30))
(/.f64 d1 (-.f64 d2 30))
(/.f64 d1 (+.f64 d2 -30))
(/.f64 d1 (-.f64 d2 30))
(/.f64 d1 (+.f64 d2 -30))
(/.f64 d1 (-.f64 d2 30))
(/.f64 d1 (+.f64 d2 -30))
(/.f64 d1 (-.f64 d2 30))
(/.f64 d1 (+.f64 d2 -30))
(/.f64 d1 (-.f64 d2 30))
(/.f64 d1 (+.f64 d2 -30))
(/.f64 d1 (-.f64 d2 30))
(/.f64 d1 (+.f64 d2 -30))
(/.f64 d1 (-.f64 d2 30))
(/.f64 d1 (+.f64 d2 -30))
(/.f64 d1 (-.f64 d2 30))
(/.f64 d1 (+.f64 d2 -30))
(/.f64 d1 (-.f64 d2 30))
(/.f64 d1 (+.f64 d2 -30))
(/.f64 d1 (-.f64 d2 30))
(/.f64 d1 (+.f64 d2 -30))
(/.f64 d1 (-.f64 d2 30))
(/.f64 d1 (+.f64 d2 -30))
(*.f64 -1/30 d1)
(*.f64 d1 -1/30)
(+.f64 (*.f64 -1/30 d1) (*.f64 -1/900 (*.f64 d2 d1)))
(fma.f64 -1/30 d1 (*.f64 (*.f64 d1 d2) -1/900))
(*.f64 d1 (fma.f64 d2 -1/900 -1/30))
(+.f64 (*.f64 -1/27000 (*.f64 (pow.f64 d2 2) d1)) (+.f64 (*.f64 -1/30 d1) (*.f64 -1/900 (*.f64 d2 d1))))
(fma.f64 -1/27000 (*.f64 d1 (*.f64 d2 d2)) (fma.f64 -1/30 d1 (*.f64 (*.f64 d1 d2) -1/900)))
(fma.f64 -1/27000 (*.f64 d1 (*.f64 d2 d2)) (*.f64 d1 (fma.f64 d2 -1/900 -1/30)))
(*.f64 d1 (fma.f64 d2 -1/900 (fma.f64 (*.f64 d2 d2) -1/27000 -1/30)))
(*.f64 d1 (fma.f64 d2 (fma.f64 d2 -1/27000 -1/900) -1/30))
(+.f64 (*.f64 -1/27000 (*.f64 (pow.f64 d2 2) d1)) (+.f64 (*.f64 -1/810000 (*.f64 (pow.f64 d2 3) d1)) (+.f64 (*.f64 -1/30 d1) (*.f64 -1/900 (*.f64 d2 d1)))))
(fma.f64 -1/27000 (*.f64 d1 (*.f64 d2 d2)) (fma.f64 -1/810000 (*.f64 d1 (pow.f64 d2 3)) (fma.f64 -1/30 d1 (*.f64 (*.f64 d1 d2) -1/900))))
(+.f64 (*.f64 d1 (fma.f64 d2 -1/900 -1/30)) (*.f64 d1 (fma.f64 (*.f64 d2 d2) -1/27000 (*.f64 -1/810000 (pow.f64 d2 3)))))
(*.f64 d1 (fma.f64 d2 (*.f64 d2 -1/27000) (fma.f64 d2 -1/900 (fma.f64 -1/810000 (pow.f64 d2 3) -1/30))))
(*.f64 d1 (fma.f64 d2 (fma.f64 d2 -1/27000 -1/900) (fma.f64 -1/810000 (pow.f64 d2 3) -1/30)))
(*.f64 d1 (fma.f64 d2 (+.f64 -1/900 (*.f64 d2 (fma.f64 d2 -1/810000 -1/27000))) -1/30))
(/.f64 d1 d2)
(+.f64 (/.f64 d1 d2) (*.f64 30 (/.f64 d1 (pow.f64 d2 2))))
(+.f64 (/.f64 d1 d2) (/.f64 (*.f64 30 d1) (*.f64 d2 d2)))
(fma.f64 30 (/.f64 d1 (*.f64 d2 d2)) (/.f64 d1 d2))
(*.f64 (+.f64 (/.f64 30 d2) 1) (/.f64 d1 d2))
(*.f64 (/.f64 d1 d2) (+.f64 1 (/.f64 30 d2)))
(+.f64 (/.f64 d1 d2) (+.f64 (*.f64 900 (/.f64 d1 (pow.f64 d2 3))) (*.f64 30 (/.f64 d1 (pow.f64 d2 2)))))
(+.f64 (/.f64 d1 d2) (fma.f64 900 (/.f64 d1 (pow.f64 d2 3)) (/.f64 (*.f64 30 d1) (*.f64 d2 d2))))
(+.f64 (/.f64 d1 d2) (fma.f64 900 (/.f64 d1 (pow.f64 d2 3)) (*.f64 (/.f64 d1 d2) (/.f64 30 d2))))
(+.f64 (/.f64 d1 d2) (*.f64 (/.f64 d1 (*.f64 d2 d2)) (+.f64 (/.f64 900 d2) 30)))
(fma.f64 (/.f64 d1 (*.f64 d2 d2)) (+.f64 30 (/.f64 900 d2)) (/.f64 d1 d2))
(+.f64 (/.f64 d1 d2) (+.f64 (*.f64 900 (/.f64 d1 (pow.f64 d2 3))) (+.f64 (*.f64 30 (/.f64 d1 (pow.f64 d2 2))) (*.f64 27000 (/.f64 d1 (pow.f64 d2 4))))))
(+.f64 (/.f64 d1 d2) (fma.f64 900 (/.f64 d1 (pow.f64 d2 3)) (fma.f64 30 (/.f64 d1 (*.f64 d2 d2)) (*.f64 27000 (/.f64 d1 (pow.f64 d2 4))))))
(+.f64 (/.f64 d1 d2) (fma.f64 900 (/.f64 d1 (pow.f64 d2 3)) (fma.f64 27000 (/.f64 d1 (pow.f64 d2 4)) (*.f64 (/.f64 d1 d2) (/.f64 30 d2)))))
(+.f64 (/.f64 d1 d2) (fma.f64 27000 (/.f64 d1 (pow.f64 d2 4)) (*.f64 (/.f64 d1 (*.f64 d2 d2)) (+.f64 (/.f64 900 d2) 30))))
(fma.f64 (+.f64 1 (/.f64 30 d2)) (/.f64 d1 d2) (*.f64 (/.f64 d1 (pow.f64 d2 3)) (+.f64 900 (/.f64 27000 d2))))
(/.f64 d1 d2)
(+.f64 (/.f64 d1 d2) (*.f64 30 (/.f64 d1 (pow.f64 d2 2))))
(+.f64 (/.f64 d1 d2) (/.f64 (*.f64 30 d1) (*.f64 d2 d2)))
(fma.f64 30 (/.f64 d1 (*.f64 d2 d2)) (/.f64 d1 d2))
(*.f64 (+.f64 (/.f64 30 d2) 1) (/.f64 d1 d2))
(*.f64 (/.f64 d1 d2) (+.f64 1 (/.f64 30 d2)))
(+.f64 (/.f64 d1 d2) (+.f64 (*.f64 900 (/.f64 d1 (pow.f64 d2 3))) (*.f64 30 (/.f64 d1 (pow.f64 d2 2)))))
(+.f64 (/.f64 d1 d2) (fma.f64 900 (/.f64 d1 (pow.f64 d2 3)) (/.f64 (*.f64 30 d1) (*.f64 d2 d2))))
(+.f64 (/.f64 d1 d2) (fma.f64 900 (/.f64 d1 (pow.f64 d2 3)) (*.f64 (/.f64 d1 d2) (/.f64 30 d2))))
(+.f64 (/.f64 d1 d2) (*.f64 (/.f64 d1 (*.f64 d2 d2)) (+.f64 (/.f64 900 d2) 30)))
(fma.f64 (/.f64 d1 (*.f64 d2 d2)) (+.f64 30 (/.f64 900 d2)) (/.f64 d1 d2))
(+.f64 (/.f64 d1 d2) (+.f64 (*.f64 900 (/.f64 d1 (pow.f64 d2 3))) (+.f64 (*.f64 30 (/.f64 d1 (pow.f64 d2 2))) (*.f64 27000 (/.f64 d1 (pow.f64 d2 4))))))
(+.f64 (/.f64 d1 d2) (fma.f64 900 (/.f64 d1 (pow.f64 d2 3)) (fma.f64 30 (/.f64 d1 (*.f64 d2 d2)) (*.f64 27000 (/.f64 d1 (pow.f64 d2 4))))))
(+.f64 (/.f64 d1 d2) (fma.f64 900 (/.f64 d1 (pow.f64 d2 3)) (fma.f64 27000 (/.f64 d1 (pow.f64 d2 4)) (*.f64 (/.f64 d1 d2) (/.f64 30 d2)))))
(+.f64 (/.f64 d1 d2) (fma.f64 27000 (/.f64 d1 (pow.f64 d2 4)) (*.f64 (/.f64 d1 (*.f64 d2 d2)) (+.f64 (/.f64 900 d2) 30))))
(fma.f64 (+.f64 1 (/.f64 30 d2)) (/.f64 d1 d2) (*.f64 (/.f64 d1 (pow.f64 d2 3)) (+.f64 900 (/.f64 27000 d2))))
-1/30
(-.f64 (*.f64 -1/900 d2) 1/30)
(fma.f64 -1/900 d2 -1/30)
(fma.f64 d2 -1/900 -1/30)
(-.f64 (+.f64 (*.f64 -1/27000 (pow.f64 d2 2)) (*.f64 -1/900 d2)) 1/30)
(+.f64 (*.f64 (*.f64 d2 d2) -1/27000) (fma.f64 -1/900 d2 -1/30))
(fma.f64 (*.f64 d2 d2) -1/27000 (fma.f64 d2 -1/900 -1/30))
(fma.f64 d2 -1/900 (fma.f64 (*.f64 d2 d2) -1/27000 -1/30))
(fma.f64 d2 (fma.f64 d2 -1/27000 -1/900) -1/30)
(-.f64 (+.f64 (*.f64 -1/27000 (pow.f64 d2 2)) (+.f64 (*.f64 -1/810000 (pow.f64 d2 3)) (*.f64 -1/900 d2))) 1/30)
(+.f64 (fma.f64 -1/27000 (*.f64 d2 d2) (fma.f64 -1/810000 (pow.f64 d2 3) (*.f64 d2 -1/900))) -1/30)
(+.f64 -1/30 (fma.f64 (*.f64 d2 d2) -1/27000 (fma.f64 -1/810000 (pow.f64 d2 3) (*.f64 d2 -1/900))))
(fma.f64 d2 (*.f64 d2 -1/27000) (fma.f64 d2 -1/900 (fma.f64 -1/810000 (pow.f64 d2 3) -1/30)))
(fma.f64 d2 (fma.f64 d2 -1/27000 -1/900) (fma.f64 -1/810000 (pow.f64 d2 3) -1/30))
(fma.f64 d2 (+.f64 -1/900 (*.f64 d2 (fma.f64 d2 -1/810000 -1/27000))) -1/30)
(/.f64 1 d2)
(+.f64 (/.f64 1 d2) (*.f64 30 (/.f64 1 (pow.f64 d2 2))))
(+.f64 (/.f64 1 d2) (/.f64 30 (*.f64 d2 d2)))
(+.f64 (/.f64 1 d2) (+.f64 (*.f64 900 (/.f64 1 (pow.f64 d2 3))) (*.f64 30 (/.f64 1 (pow.f64 d2 2)))))
(+.f64 (+.f64 (/.f64 1 d2) (/.f64 900 (pow.f64 d2 3))) (/.f64 30 (*.f64 d2 d2)))
(+.f64 (/.f64 30 (*.f64 d2 d2)) (+.f64 (/.f64 1 d2) (/.f64 900 (pow.f64 d2 3))))
(+.f64 (/.f64 1 d2) (+.f64 (/.f64 30 (*.f64 d2 d2)) (/.f64 900 (pow.f64 d2 3))))
(+.f64 (/.f64 1 d2) (+.f64 (*.f64 27000 (/.f64 1 (pow.f64 d2 4))) (+.f64 (*.f64 900 (/.f64 1 (pow.f64 d2 3))) (*.f64 30 (/.f64 1 (pow.f64 d2 2))))))
(+.f64 (/.f64 1 d2) (+.f64 (+.f64 (/.f64 27000 (pow.f64 d2 4)) (/.f64 900 (pow.f64 d2 3))) (/.f64 30 (*.f64 d2 d2))))
(+.f64 (/.f64 1 d2) (+.f64 (/.f64 30 (*.f64 d2 d2)) (+.f64 (/.f64 900 (pow.f64 d2 3)) (/.f64 27000 (pow.f64 d2 4)))))
(+.f64 (/.f64 1 d2) (+.f64 (/.f64 900 (pow.f64 d2 3)) (+.f64 (/.f64 30 (*.f64 d2 d2)) (/.f64 27000 (pow.f64 d2 4)))))
(/.f64 1 d2)
(+.f64 (/.f64 1 d2) (*.f64 30 (/.f64 1 (pow.f64 d2 2))))
(+.f64 (/.f64 1 d2) (/.f64 30 (*.f64 d2 d2)))
(+.f64 (/.f64 1 d2) (+.f64 (*.f64 900 (/.f64 1 (pow.f64 d2 3))) (*.f64 30 (/.f64 1 (pow.f64 d2 2)))))
(+.f64 (+.f64 (/.f64 1 d2) (/.f64 900 (pow.f64 d2 3))) (/.f64 30 (*.f64 d2 d2)))
(+.f64 (/.f64 30 (*.f64 d2 d2)) (+.f64 (/.f64 1 d2) (/.f64 900 (pow.f64 d2 3))))
(+.f64 (/.f64 1 d2) (+.f64 (/.f64 30 (*.f64 d2 d2)) (/.f64 900 (pow.f64 d2 3))))
(+.f64 (/.f64 1 d2) (+.f64 (*.f64 27000 (/.f64 1 (pow.f64 d2 4))) (+.f64 (*.f64 900 (/.f64 1 (pow.f64 d2 3))) (*.f64 30 (/.f64 1 (pow.f64 d2 2))))))
(+.f64 (/.f64 1 d2) (+.f64 (+.f64 (/.f64 27000 (pow.f64 d2 4)) (/.f64 900 (pow.f64 d2 3))) (/.f64 30 (*.f64 d2 d2))))
(+.f64 (/.f64 1 d2) (+.f64 (/.f64 30 (*.f64 d2 d2)) (+.f64 (/.f64 900 (pow.f64 d2 3)) (/.f64 27000 (pow.f64 d2 4)))))
(+.f64 (/.f64 1 d2) (+.f64 (/.f64 900 (pow.f64 d2 3)) (+.f64 (/.f64 30 (*.f64 d2 d2)) (/.f64 27000 (pow.f64 d2 4)))))

localize16.0ms (0.5%)

Local error

Found 6 expressions with local error:

NewErrorProgram
0.3b
(pow.f64 (/.f64 (/.f64 1 (+.f64 d2 30)) d1) -1)
0.1b
(/.f64 (/.f64 1 (+.f64 d2 30)) d1)
0.0b
(/.f64 1 (+.f64 d2 30))
0.0b
(/.f64 1 (+.f64 d2 30))
0.1b
(/.f64 (/.f64 1 (+.f64 d2 30)) d1)
0.3b
(pow.f64 (/.f64 (/.f64 1 (+.f64 d2 30)) d1) -1)
Compiler

Compiled 31 to 23 computations (25.8% saved)

series12.0ms (0.4%)

Counts
3 → 60
Calls

15 calls:

TimeVariablePointExpression
5.0ms
d2
@0
(pow.f64 (/.f64 (/.f64 1 (+.f64 d2 30)) d1) -1)
1.0ms
d1
@0
(pow.f64 (/.f64 (/.f64 1 (+.f64 d2 30)) d1) -1)
1.0ms
d1
@-inf
(pow.f64 (/.f64 (/.f64 1 (+.f64 d2 30)) d1) -1)
1.0ms
d1
@inf
(pow.f64 (/.f64 (/.f64 1 (+.f64 d2 30)) d1) -1)
1.0ms
d2
@inf
(pow.f64 (/.f64 (/.f64 1 (+.f64 d2 30)) d1) -1)

rewrite67.0ms (2.1%)

Algorithm
batch-egg-rewrite
Rules
451×log-prod_binary64
354×exp-prod_binary64
319×prod-exp_binary64
266×pow-prod-down_binary64
264×pow2_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01030
121824
2276924
Stop Event
node limit
Counts
3 → 189
Calls
Call 1
Inputs
(pow.f64 (/.f64 (/.f64 1 (+.f64 d2 30)) d1) -1)
(/.f64 (/.f64 1 (+.f64 d2 30)) d1)
(/.f64 1 (+.f64 d2 30))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (+.f64 d2 30) d1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d2 d1) (*.f64 30 d1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 30 d1) (*.f64 d2 d1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 d2) (*.f64 d1 30))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 30) (*.f64 d1 d2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 d1) (+.f64 d2 30))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 d1) (+.f64 d2 30)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 d1) (+.f64 d2 30)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 d1) (+.f64 d2 30)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (+.f64 d2 30) d1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (+.f64 d2 30) d1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 d2 30) d1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 d1 (+.f64 d2 30))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 d2 30) d1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (+.f64 d2 30) d1)) (pow.f64 (cbrt.f64 (*.f64 (+.f64 d2 30) d1)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 (+.f64 d2 30) d1)) 2) (cbrt.f64 (*.f64 (+.f64 d2 30) d1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 d1) 2) (*.f64 (cbrt.f64 d1) (+.f64 d2 30)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 d2 30)) (/.f64 d1 (pow.f64 (+.f64 d2 30) -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 d1) (*.f64 (sqrt.f64 d1) (+.f64 d2 30)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (+.f64 d2 30) d1)) (sqrt.f64 (*.f64 (+.f64 d2 30) d1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 1 (cbrt.f64 (*.f64 (+.f64 d2 30) d1))) -2) (cbrt.f64 (*.f64 (+.f64 d2 30) d1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 d1) 2) 1) (/.f64 (cbrt.f64 d1) (/.f64 1 (+.f64 d2 30))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 d1) 1) (/.f64 (sqrt.f64 d1) (/.f64 1 (+.f64 d2 30))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (cbrt.f64 (pow.f64 (+.f64 d2 30) -2))) (/.f64 d1 (/.f64 1 (cbrt.f64 (+.f64 d2 30)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 d1) 2) (cbrt.f64 (pow.f64 (+.f64 d2 30) -2))) (/.f64 (cbrt.f64 d1) (/.f64 1 (cbrt.f64 (+.f64 d2 30)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 d1) (cbrt.f64 (pow.f64 (+.f64 d2 30) -2))) (/.f64 (sqrt.f64 d1) (/.f64 1 (cbrt.f64 (+.f64 d2 30)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 d1) 2) (pow.f64 (+.f64 d2 30) -1/2)) (/.f64 (cbrt.f64 d1) (pow.f64 (+.f64 d2 30) -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 d1) (pow.f64 (+.f64 d2 30) -1/2)) (/.f64 (sqrt.f64 d1) (pow.f64 (+.f64 d2 30) -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 d1 1) (+.f64 d2 30))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (/.f64 -1 (+.f64 d2 30))) (neg.f64 d1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 d1 -1) (+.f64 -30 (neg.f64 d2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (cbrt.f64 (pow.f64 (+.f64 d2 30) 2))) (cbrt.f64 (+.f64 d2 30)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (sqrt.f64 (+.f64 d2 30))) (sqrt.f64 (+.f64 d2 30)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 1 (*.f64 (+.f64 d2 30) d1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (/.f64 1 (*.f64 (+.f64 d2 30) d1)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 d2 30) (/.f64 1 d1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 d1 (/.f64 1 (+.f64 d2 30)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -1 (neg.f64 (/.f64 1 (*.f64 (+.f64 d2 30) d1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (cbrt.f64 d1) 2) (/.f64 (/.f64 1 (+.f64 d2 30)) (cbrt.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 d1) (/.f64 (/.f64 1 (+.f64 d2 30)) (sqrt.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 d1) (/.f64 -1 (+.f64 d2 30)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (*.f64 (+.f64 d2 30) d1)) (pow.f64 (*.f64 (+.f64 d2 30) d1) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (/.f64 1 (cbrt.f64 (*.f64 (+.f64 d2 30) d1))) -2) (/.f64 1 (cbrt.f64 (*.f64 (+.f64 d2 30) d1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 d1 (pow.f64 (+.f64 d2 30) -1/2)) (pow.f64 (+.f64 d2 30) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 d1 1) (/.f64 1 (+.f64 d2 30)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 d1 (cbrt.f64 (pow.f64 (+.f64 d2 30) -2))) (/.f64 1 (cbrt.f64 (+.f64 d2 30))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (+.f64 27000 (pow.f64 d2 3))) (-.f64 (fma.f64 d2 d2 900) (*.f64 d2 30)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (fma.f64 d2 d2 -900)) (+.f64 d2 -30))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (+.f64 d2 30) d1) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 d1) (+.f64 d2 30)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (+.f64 d2 30) d1))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (+.f64 d2 30) d1) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 d1 3) (pow.f64 (+.f64 d2 30) -3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d2 d1 (*.f64 30 d1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 30 d1 (*.f64 d2 d1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d1 d2 (*.f64 d1 30))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d1 30 (*.f64 d1 d2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (+.f64 d2 30) d1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (+.f64 d2 30) d1)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 (+.f64 d2 30) d1) -2)) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 (+.f64 d2 30) d1))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (+.f64 d2 30) d1))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (+.f64 d2 30) d1))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (neg.f64 (log.f64 (*.f64 (+.f64 d2 30) d1))) 1) -1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (+.f64 d2 30) d1)) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (neg.f64 (log.f64 (*.f64 (+.f64 d2 30) d1))) -1/2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (*.f64 (log.f64 (+.f64 d2 30)) 1) (neg.f64 (log.f64 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (*.f64 (log.f64 d1) 1) (neg.f64 (log.f64 (+.f64 d2 30)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (log.f64 d1) (*.f64 (log.f64 (+.f64 d2 30)) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (*.f64 (log.f64 d1) 1) (*.f64 (log.f64 (+.f64 d2 30)) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (log.f64 d1) (*.f64 (neg.f64 (log.f64 (+.f64 d2 30))) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (*.f64 (log.f64 d1) 1) (*.f64 (neg.f64 (log.f64 (+.f64 d2 30))) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (*.f64 (neg.f64 (log.f64 (*.f64 (+.f64 d2 30) d1))) -1/2) (log.f64 (pow.f64 (*.f64 (+.f64 d2 30) d1) -1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (neg.f64 (*.f64 (neg.f64 (log.f64 (*.f64 (+.f64 d2 30) d1))) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (+.f64 d2 30)) 1) (log.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log.f64 (+.f64 d2 30)) (*.f64 (log.f64 d1) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (+.f64 d2 30)) 1) (*.f64 (log.f64 d1) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 d1) 1) (log.f64 (+.f64 d2 30))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log.f64 d1) (*.f64 (log.f64 (+.f64 d2 30)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 d1) 1) (*.f64 (log.f64 (+.f64 d2 30)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (neg.f64 (log.f64 (*.f64 (+.f64 d2 30) d1))) -1/2) (log.f64 (sqrt.f64 (*.f64 (+.f64 d2 30) d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log.f64 (sqrt.f64 (*.f64 (+.f64 d2 30) d1))) (*.f64 (neg.f64 (log.f64 (*.f64 (+.f64 d2 30) d1))) -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (neg.f64 (log.f64 (*.f64 (+.f64 d2 30) d1))) -1/2) (*.f64 (neg.f64 (log.f64 (*.f64 (+.f64 d2 30) d1))) -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (+.f64 d2 30) d1)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (+.f64 d2 30) d1)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 1 (*.f64 (+.f64 d2 30) d1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (/.f64 1 (*.f64 (+.f64 d2 30) d1)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (/.f64 1 (*.f64 (+.f64 d2 30) d1))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (/.f64 1 (*.f64 (+.f64 d2 30) d1))))) (log.f64 (sqrt.f64 (exp.f64 (/.f64 1 (*.f64 (+.f64 d2 30) d1))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 1 (*.f64 (+.f64 d2 30) d1)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 1 (*.f64 (+.f64 d2 30) d1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (+.f64 d2 30)) (/.f64 1 d1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (*.f64 (+.f64 d2 30) d1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (cbrt.f64 (*.f64 (+.f64 d2 30) d1))) (cbrt.f64 (pow.f64 (*.f64 (+.f64 d2 30) d1) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (*.f64 (+.f64 d2 30) d1) -2)) (/.f64 1 (cbrt.f64 (*.f64 (+.f64 d2 30) d1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (+.f64 d2 30) -2)) (*.f64 (/.f64 1 (cbrt.f64 (+.f64 d2 30))) (/.f64 1 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 (+.f64 d2 30) d1) -1/2) (pow.f64 (*.f64 (+.f64 d2 30) d1) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (+.f64 d2 30) -1/2) (*.f64 (pow.f64 (+.f64 d2 30) -1/2) (/.f64 1 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 -1 (+.f64 d2 30)) (/.f64 1 (neg.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 d1) (/.f64 1 (+.f64 d2 30)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (pow.f64 (+.f64 d2 30) -2)) 1) (/.f64 (/.f64 1 (cbrt.f64 (+.f64 d2 30))) d1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (+.f64 d2 30) -1/2) 1) (/.f64 (pow.f64 (+.f64 d2 30) -1/2) d1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 d1) -2) (/.f64 (/.f64 1 (+.f64 d2 30)) (cbrt.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (pow.f64 (+.f64 d2 30) -2)) (pow.f64 (cbrt.f64 d1) 2)) (/.f64 1 (cbrt.f64 (*.f64 (+.f64 d2 30) d1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (+.f64 d2 30) -1/2) (pow.f64 (cbrt.f64 d1) 2)) (/.f64 (pow.f64 (+.f64 d2 30) -1/2) (cbrt.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 d1 -1/2) (/.f64 (/.f64 1 (+.f64 d2 30)) (sqrt.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (pow.f64 (+.f64 d2 30) -2)) (sqrt.f64 d1)) (/.f64 (/.f64 1 (cbrt.f64 (+.f64 d2 30))) (sqrt.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 1 (*.f64 (+.f64 d2 30) d1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (+.f64 d2 30) d1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (E.f64) (neg.f64 (log.f64 (*.f64 (+.f64 d2 30) d1))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (+.f64 d2 30) d1) -2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (+.f64 d2 30) d1) -3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (+.f64 d2 30) d1) 3) -1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 1 (cbrt.f64 (*.f64 (+.f64 d2 30) d1))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (+.f64 d2 30) d1)) -3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (+.f64 d2 30) d1) -1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (+.f64 d2 30) d1)) -2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 (+.f64 d2 30) -3) (pow.f64 d1 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (*.f64 (+.f64 d2 30) d1) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (neg.f64 (log.f64 (*.f64 (+.f64 d2 30) d1)))) 2)) (cbrt.f64 (neg.f64 (log.f64 (*.f64 (+.f64 d2 30) d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (neg.f64 (log.f64 (*.f64 (+.f64 d2 30) d1))))) (sqrt.f64 (neg.f64 (log.f64 (*.f64 (+.f64 d2 30) d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (/.f64 1 (+.f64 d2 30)) (neg.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (+.f64 d2 30) d1) -2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 1 (*.f64 (+.f64 d2 30) d1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 1 (*.f64 (+.f64 d2 30) d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (+.f64 d2 30) d1) -3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (+.f64 d2 30) -3) (pow.f64 d1 3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (neg.f64 (log.f64 (*.f64 (+.f64 d2 30) d1))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (neg.f64 (log.f64 (*.f64 (+.f64 d2 30) d1))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (+.f64 d2 30) d1)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 (+.f64 d2 30) d1) -3)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (neg.f64 (log.f64 (cbrt.f64 (*.f64 (+.f64 d2 30) d1)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 (+.f64 d2 30) d1) -1/2)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (neg.f64 (log.f64 (*.f64 (+.f64 d2 30) d1))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (+.f64 d2 30) d1)) 1) -1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (*.f64 (log.f64 (+.f64 d2 30)) -1) (log.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (*.f64 (neg.f64 (log.f64 (+.f64 d2 30))) 1) (log.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (neg.f64 (log.f64 (+.f64 d2 30))) (*.f64 (log.f64 d1) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (*.f64 (log.f64 (+.f64 d2 30)) -1) (*.f64 (log.f64 d1) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (*.f64 (neg.f64 (log.f64 (+.f64 d2 30))) 1) (*.f64 (log.f64 d1) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (neg.f64 (log.f64 d1)) (*.f64 (log.f64 (+.f64 d2 30)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (neg.f64 (*.f64 (log.f64 (*.f64 (+.f64 d2 30) d1)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (+.f64 d2 30)) -1) (neg.f64 (log.f64 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (neg.f64 (log.f64 (+.f64 d2 30))) 1) (neg.f64 (log.f64 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (neg.f64 (log.f64 d1)) (*.f64 (log.f64 (+.f64 d2 30)) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (neg.f64 (log.f64 d1)) (*.f64 (neg.f64 (log.f64 (+.f64 d2 30))) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 1 (*.f64 (+.f64 d2 30) d1))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 1 (*.f64 (+.f64 d2 30) d1))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 1 (+.f64 d2 30)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (/.f64 1 (+.f64 d2 30)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (/.f64 1 (+.f64 d2 30))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (/.f64 1 (+.f64 d2 30))))) (log.f64 (sqrt.f64 (exp.f64 (/.f64 1 (+.f64 d2 30))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 1 (+.f64 d2 30)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 1 (+.f64 d2 30)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (+.f64 d2 30)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (/.f64 -1 (+.f64 d2 30)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (cbrt.f64 (+.f64 d2 30))) (cbrt.f64 (pow.f64 (+.f64 d2 30) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (+.f64 d2 30) -2)) (/.f64 1 (cbrt.f64 (+.f64 d2 30))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (+.f64 d2 30) -1/2) (pow.f64 (+.f64 d2 30) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 d2 30)) -2) (/.f64 1 (cbrt.f64 (+.f64 d2 30))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (+.f64 27000 (pow.f64 d2 3))) (-.f64 (fma.f64 d2 d2 900) (*.f64 d2 30)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (fma.f64 d2 d2 -900)) (+.f64 d2 -30))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 d2 30) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 1 (+.f64 d2 30)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (E.f64) (neg.f64 (log.f64 (+.f64 d2 30))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 -1) (log.f64 (+.f64 d2 30)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 d2 30) 2) -1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 d2 30) 3) -1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 d2 30) -2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 d2 30) -3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (+.f64 d2 30)) -3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 1 (cbrt.f64 (+.f64 d2 30))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (+.f64 d2 30)) -2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 d2 30) -1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (neg.f64 (+.f64 -30 (neg.f64 d2))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (neg.f64 (log.f64 (+.f64 d2 30)))) 2)) (cbrt.f64 (neg.f64 (log.f64 (+.f64 d2 30)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (neg.f64 (log.f64 (+.f64 d2 30))))) (sqrt.f64 (neg.f64 (log.f64 (+.f64 d2 30)))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (+.f64 d2 30) -2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 1 (+.f64 d2 30))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 1 (+.f64 d2 30)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (+.f64 d2 30) -3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (neg.f64 (log.f64 (+.f64 d2 30))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (+.f64 d2 30)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (neg.f64 (log.f64 (+.f64 d2 30))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (+.f64 d2 30) -3)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (neg.f64 (log.f64 (cbrt.f64 (+.f64 d2 30)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (+.f64 d2 30) -1/2)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (+.f64 d2 30)) 1) -1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (+.f64 d2 30)) -1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (neg.f64 (log.f64 (+.f64 d2 30))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (neg.f64 (*.f64 (log.f64 (+.f64 d2 30)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 1 (+.f64 d2 30))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 1 (+.f64 d2 30))))))))

simplify47.0ms (1.4%)

Algorithm
egg-herbie
Rules
605×fma-def_binary64
511×fma-neg_binary64
401×associate-*l*_binary64
369×associate-+l+_binary64
365×associate-*r*_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0122765
1378759
21472751
36252751
Stop Event
node limit
Counts
249 → 231
Calls
Call 1
Inputs
(*.f64 30 d1)
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 d2 2) (+.f64 (*.f64 1/30 d1) (*.f64 -1/30 d1)))) (+.f64 (*.f64 d2 d1) (*.f64 30 d1)))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 d2 2) (+.f64 (*.f64 1/30 d1) (*.f64 -1/30 d1)))) (+.f64 (*.f64 -1 (*.f64 (pow.f64 d2 3) (+.f64 (*.f64 1/30 (+.f64 (*.f64 1/30 d1) (*.f64 -1/30 d1))) (+.f64 (*.f64 -1/900 d1) (*.f64 1/900 d1))))) (+.f64 (*.f64 d2 d1) (*.f64 30 d1))))
(*.f64 d2 d1)
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 -900 d1) (*.f64 900 d1)) d2)) (+.f64 (*.f64 d2 d1) (*.f64 30 d1)))
(+.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 27000 d1) (+.f64 (*.f64 -27000 d1) (*.f64 30 (+.f64 (*.f64 -900 d1) (*.f64 900 d1))))) (pow.f64 d2 2))) (+.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 -900 d1) (*.f64 900 d1)) d2)) (+.f64 (*.f64 d2 d1) (*.f64 30 d1))))
(*.f64 d2 d1)
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 -900 (/.f64 d1 d2)) (+.f64 (*.f64 d2 d1) (+.f64 (*.f64 900 (/.f64 d1 d2)) (*.f64 30 d1))))
(+.f64 (*.f64 -900 (/.f64 d1 d2)) (+.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 -30 (+.f64 (*.f64 -900 d1) (*.f64 900 d1))) (+.f64 (*.f64 27000 d1) (*.f64 -27000 d1))) (pow.f64 d2 2))) (+.f64 (*.f64 d2 d1) (+.f64 (*.f64 900 (/.f64 d1 d2)) (*.f64 30 d1)))))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 d2 30))
(/.f64 1/30 d1)
(+.f64 (*.f64 1/30 (/.f64 1 d1)) (*.f64 -1/900 (/.f64 d2 d1)))
(+.f64 (*.f64 1/30 (/.f64 1 d1)) (+.f64 (*.f64 1/27000 (/.f64 (pow.f64 d2 2) d1)) (*.f64 -1/900 (/.f64 d2 d1))))
(+.f64 (*.f64 -1/810000 (/.f64 (pow.f64 d2 3) d1)) (+.f64 (*.f64 1/30 (/.f64 1 d1)) (+.f64 (*.f64 1/27000 (/.f64 (pow.f64 d2 2) d1)) (*.f64 -1/900 (/.f64 d2 d1)))))
(/.f64 1 (*.f64 d2 d1))
(-.f64 (/.f64 1 (*.f64 d2 d1)) (*.f64 30 (/.f64 1 (*.f64 (pow.f64 d2 2) d1))))
(-.f64 (+.f64 (/.f64 1 (*.f64 d2 d1)) (*.f64 900 (/.f64 1 (*.f64 (pow.f64 d2 3) d1)))) (*.f64 30 (/.f64 1 (*.f64 (pow.f64 d2 2) d1))))
(-.f64 (+.f64 (/.f64 1 (*.f64 d2 d1)) (*.f64 900 (/.f64 1 (*.f64 (pow.f64 d2 3) d1)))) (+.f64 (*.f64 27000 (/.f64 1 (*.f64 (pow.f64 d2 4) d1))) (*.f64 30 (/.f64 1 (*.f64 (pow.f64 d2 2) d1)))))
(/.f64 1 (*.f64 d2 d1))
(-.f64 (/.f64 1 (*.f64 d2 d1)) (*.f64 30 (/.f64 1 (*.f64 (pow.f64 d2 2) d1))))
(-.f64 (+.f64 (/.f64 1 (*.f64 d2 d1)) (*.f64 900 (/.f64 1 (*.f64 (pow.f64 d2 3) d1)))) (*.f64 30 (/.f64 1 (*.f64 (pow.f64 d2 2) d1))))
(-.f64 (+.f64 (/.f64 1 (*.f64 d2 d1)) (*.f64 900 (/.f64 1 (*.f64 (pow.f64 d2 3) d1)))) (+.f64 (*.f64 27000 (/.f64 1 (*.f64 (pow.f64 d2 4) d1))) (*.f64 30 (/.f64 1 (*.f64 (pow.f64 d2 2) d1)))))
(/.f64 1 (*.f64 d1 (+.f64 d2 30)))
(/.f64 1 (*.f64 d1 (+.f64 d2 30)))
(/.f64 1 (*.f64 d1 (+.f64 d2 30)))
(/.f64 1 (*.f64 d1 (+.f64 d2 30)))
(/.f64 1 (*.f64 d1 (+.f64 d2 30)))
(/.f64 1 (*.f64 d1 (+.f64 d2 30)))
(/.f64 1 (*.f64 d1 (+.f64 d2 30)))
(/.f64 1 (*.f64 d1 (+.f64 d2 30)))
(/.f64 1 (*.f64 d1 (+.f64 30 d2)))
(/.f64 1 (*.f64 d1 (+.f64 30 d2)))
(/.f64 1 (*.f64 d1 (+.f64 30 d2)))
(/.f64 1 (*.f64 d1 (+.f64 30 d2)))
1/30
(+.f64 1/30 (*.f64 -1/900 d2))
(+.f64 (*.f64 1/27000 (pow.f64 d2 2)) (+.f64 1/30 (*.f64 -1/900 d2)))
(+.f64 (*.f64 1/27000 (pow.f64 d2 2)) (+.f64 1/30 (+.f64 (*.f64 -1/810000 (pow.f64 d2 3)) (*.f64 -1/900 d2))))
(/.f64 1 d2)
(-.f64 (/.f64 1 d2) (*.f64 30 (/.f64 1 (pow.f64 d2 2))))
(-.f64 (+.f64 (/.f64 1 d2) (*.f64 900 (/.f64 1 (pow.f64 d2 3)))) (*.f64 30 (/.f64 1 (pow.f64 d2 2))))
(-.f64 (+.f64 (/.f64 1 d2) (*.f64 900 (/.f64 1 (pow.f64 d2 3)))) (+.f64 (*.f64 27000 (/.f64 1 (pow.f64 d2 4))) (*.f64 30 (/.f64 1 (pow.f64 d2 2)))))
(/.f64 1 d2)
(-.f64 (/.f64 1 d2) (*.f64 30 (/.f64 1 (pow.f64 d2 2))))
(-.f64 (+.f64 (/.f64 1 d2) (*.f64 900 (/.f64 1 (pow.f64 d2 3)))) (*.f64 30 (/.f64 1 (pow.f64 d2 2))))
(-.f64 (+.f64 (/.f64 1 d2) (*.f64 900 (/.f64 1 (pow.f64 d2 3)))) (+.f64 (*.f64 27000 (/.f64 1 (pow.f64 d2 4))) (*.f64 30 (/.f64 1 (pow.f64 d2 2)))))
Outputs
(*.f64 30 d1)
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 30 d2))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 d2 2) (+.f64 (*.f64 1/30 d1) (*.f64 -1/30 d1)))) (+.f64 (*.f64 d2 d1) (*.f64 30 d1)))
(*.f64 d1 (+.f64 30 d2))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 d2 2) (+.f64 (*.f64 1/30 d1) (*.f64 -1/30 d1)))) (+.f64 (*.f64 -1 (*.f64 (pow.f64 d2 3) (+.f64 (*.f64 1/30 (+.f64 (*.f64 1/30 d1) (*.f64 -1/30 d1))) (+.f64 (*.f64 -1/900 d1) (*.f64 1/900 d1))))) (+.f64 (*.f64 d2 d1) (*.f64 30 d1))))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 30 d2))
(+.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 -900 d1) (*.f64 900 d1)) d2)) (+.f64 (*.f64 d2 d1) (*.f64 30 d1)))
(*.f64 d1 (+.f64 30 d2))
(+.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 27000 d1) (+.f64 (*.f64 -27000 d1) (*.f64 30 (+.f64 (*.f64 -900 d1) (*.f64 900 d1))))) (pow.f64 d2 2))) (+.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 -900 d1) (*.f64 900 d1)) d2)) (+.f64 (*.f64 d2 d1) (*.f64 30 d1))))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 30 d2))
(+.f64 (*.f64 -900 (/.f64 d1 d2)) (+.f64 (*.f64 d2 d1) (+.f64 (*.f64 900 (/.f64 d1 d2)) (*.f64 30 d1))))
(fma.f64 -900 (/.f64 d1 d2) (fma.f64 d2 d1 (fma.f64 900 (/.f64 d1 d2) (*.f64 30 d1))))
(fma.f64 -900 (/.f64 d1 d2) (fma.f64 d1 d2 (fma.f64 30 d1 (*.f64 900 (/.f64 d1 d2)))))
(fma.f64 -900 (/.f64 d1 d2) (fma.f64 900 (/.f64 d1 d2) (*.f64 d1 (+.f64 30 d2))))
(+.f64 (*.f64 -900 (/.f64 d1 d2)) (+.f64 (*.f64 -1 (/.f64 (+.f64 (*.f64 -30 (+.f64 (*.f64 -900 d1) (*.f64 900 d1))) (+.f64 (*.f64 27000 d1) (*.f64 -27000 d1))) (pow.f64 d2 2))) (+.f64 (*.f64 d2 d1) (+.f64 (*.f64 900 (/.f64 d1 d2)) (*.f64 30 d1)))))
(fma.f64 -900 (/.f64 d1 d2) (fma.f64 d2 d1 (fma.f64 900 (/.f64 d1 d2) (*.f64 30 d1))))
(fma.f64 -900 (/.f64 d1 d2) (fma.f64 d1 d2 (fma.f64 30 d1 (*.f64 900 (/.f64 d1 d2)))))
(fma.f64 -900 (/.f64 d1 d2) (fma.f64 900 (/.f64 d1 d2) (*.f64 d1 (+.f64 30 d2))))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 30 d2))
(/.f64 1/30 d1)
(+.f64 (*.f64 1/30 (/.f64 1 d1)) (*.f64 -1/900 (/.f64 d2 d1)))
(+.f64 (/.f64 1/30 d1) (/.f64 (*.f64 d2 -1/900) d1))
(fma.f64 -1/900 (/.f64 d2 d1) (/.f64 1/30 d1))
(+.f64 (*.f64 1/30 (/.f64 1 d1)) (+.f64 (*.f64 1/27000 (/.f64 (pow.f64 d2 2) d1)) (*.f64 -1/900 (/.f64 d2 d1))))
(+.f64 (/.f64 1/30 d1) (fma.f64 1/27000 (/.f64 (*.f64 d2 d2) d1) (/.f64 (*.f64 d2 -1/900) d1)))
(+.f64 (/.f64 1/30 d1) (fma.f64 -1/900 (/.f64 d2 d1) (/.f64 1/27000 (/.f64 d1 (*.f64 d2 d2)))))
(fma.f64 1/27000 (*.f64 (/.f64 d2 d1) d2) (fma.f64 -1/900 (/.f64 d2 d1) (/.f64 1/30 d1)))
(+.f64 (*.f64 -1/810000 (/.f64 (pow.f64 d2 3) d1)) (+.f64 (*.f64 1/30 (/.f64 1 d1)) (+.f64 (*.f64 1/27000 (/.f64 (pow.f64 d2 2) d1)) (*.f64 -1/900 (/.f64 d2 d1)))))
(fma.f64 -1/810000 (/.f64 (pow.f64 d2 3) d1) (+.f64 (/.f64 1/30 d1) (fma.f64 1/27000 (/.f64 (*.f64 d2 d2) d1) (/.f64 (*.f64 d2 -1/900) d1))))
(+.f64 (fma.f64 -1/900 (/.f64 d2 d1) (/.f64 1/27000 (/.f64 d1 (*.f64 d2 d2)))) (fma.f64 -1/810000 (/.f64 (pow.f64 d2 3) d1) (/.f64 1/30 d1)))
(fma.f64 -1/810000 (/.f64 (pow.f64 d2 3) d1) (fma.f64 1/27000 (*.f64 (/.f64 d2 d1) d2) (fma.f64 -1/900 (/.f64 d2 d1) (/.f64 1/30 d1))))
(/.f64 1 (*.f64 d2 d1))
(/.f64 1 (*.f64 d1 d2))
(-.f64 (/.f64 1 (*.f64 d2 d1)) (*.f64 30 (/.f64 1 (*.f64 (pow.f64 d2 2) d1))))
(-.f64 (/.f64 1 (*.f64 d1 d2)) (/.f64 30 (*.f64 d1 (*.f64 d2 d2))))
(+.f64 (/.f64 1 (*.f64 d1 d2)) (/.f64 -30 (*.f64 d1 (*.f64 d2 d2))))
(-.f64 (+.f64 (/.f64 1 (*.f64 d2 d1)) (*.f64 900 (/.f64 1 (*.f64 (pow.f64 d2 3) d1)))) (*.f64 30 (/.f64 1 (*.f64 (pow.f64 d2 2) d1))))
(-.f64 (+.f64 (/.f64 1 (*.f64 d1 d2)) (/.f64 900 (*.f64 d1 (pow.f64 d2 3)))) (/.f64 30 (*.f64 d1 (*.f64 d2 d2))))
(+.f64 (/.f64 1 (*.f64 d1 d2)) (+.f64 (/.f64 900 (*.f64 d1 (pow.f64 d2 3))) (/.f64 -30 (*.f64 d1 (*.f64 d2 d2)))))
(-.f64 (+.f64 (/.f64 1 (*.f64 d2 d1)) (*.f64 900 (/.f64 1 (*.f64 (pow.f64 d2 3) d1)))) (+.f64 (*.f64 27000 (/.f64 1 (*.f64 (pow.f64 d2 4) d1))) (*.f64 30 (/.f64 1 (*.f64 (pow.f64 d2 2) d1)))))
(-.f64 (-.f64 (+.f64 (/.f64 1 (*.f64 d1 d2)) (/.f64 900 (*.f64 d1 (pow.f64 d2 3)))) (/.f64 27000 (*.f64 d1 (pow.f64 d2 4)))) (/.f64 30 (*.f64 d1 (*.f64 d2 d2))))
(+.f64 (/.f64 900 (*.f64 d1 (pow.f64 d2 3))) (-.f64 (/.f64 1 (*.f64 d1 d2)) (+.f64 (/.f64 30 (*.f64 d1 (*.f64 d2 d2))) (/.f64 27000 (*.f64 d1 (pow.f64 d2 4))))))
(+.f64 (/.f64 900 (*.f64 d1 (pow.f64 d2 3))) (+.f64 (/.f64 1 (*.f64 d1 d2)) (+.f64 (/.f64 -30 (*.f64 d1 (*.f64 d2 d2))) (/.f64 -27000 (*.f64 d1 (pow.f64 d2 4))))))
(-.f64 (+.f64 (/.f64 900 (*.f64 d1 (pow.f64 d2 3))) (/.f64 -27000 (*.f64 d1 (pow.f64 d2 4)))) (-.f64 (/.f64 30 (*.f64 d1 (*.f64 d2 d2))) (/.f64 1 (*.f64 d1 d2))))
(/.f64 1 (*.f64 d2 d1))
(/.f64 1 (*.f64 d1 d2))
(-.f64 (/.f64 1 (*.f64 d2 d1)) (*.f64 30 (/.f64 1 (*.f64 (pow.f64 d2 2) d1))))
(-.f64 (/.f64 1 (*.f64 d1 d2)) (/.f64 30 (*.f64 d1 (*.f64 d2 d2))))
(+.f64 (/.f64 1 (*.f64 d1 d2)) (/.f64 -30 (*.f64 d1 (*.f64 d2 d2))))
(-.f64 (+.f64 (/.f64 1 (*.f64 d2 d1)) (*.f64 900 (/.f64 1 (*.f64 (pow.f64 d2 3) d1)))) (*.f64 30 (/.f64 1 (*.f64 (pow.f64 d2 2) d1))))
(-.f64 (+.f64 (/.f64 1 (*.f64 d1 d2)) (/.f64 900 (*.f64 d1 (pow.f64 d2 3)))) (/.f64 30 (*.f64 d1 (*.f64 d2 d2))))
(+.f64 (/.f64 1 (*.f64 d1 d2)) (+.f64 (/.f64 900 (*.f64 d1 (pow.f64 d2 3))) (/.f64 -30 (*.f64 d1 (*.f64 d2 d2)))))
(-.f64 (+.f64 (/.f64 1 (*.f64 d2 d1)) (*.f64 900 (/.f64 1 (*.f64 (pow.f64 d2 3) d1)))) (+.f64 (*.f64 27000 (/.f64 1 (*.f64 (pow.f64 d2 4) d1))) (*.f64 30 (/.f64 1 (*.f64 (pow.f64 d2 2) d1)))))
(-.f64 (-.f64 (+.f64 (/.f64 1 (*.f64 d1 d2)) (/.f64 900 (*.f64 d1 (pow.f64 d2 3)))) (/.f64 27000 (*.f64 d1 (pow.f64 d2 4)))) (/.f64 30 (*.f64 d1 (*.f64 d2 d2))))
(+.f64 (/.f64 900 (*.f64 d1 (pow.f64 d2 3))) (-.f64 (/.f64 1 (*.f64 d1 d2)) (+.f64 (/.f64 30 (*.f64 d1 (*.f64 d2 d2))) (/.f64 27000 (*.f64 d1 (pow.f64 d2 4))))))
(+.f64 (/.f64 900 (*.f64 d1 (pow.f64 d2 3))) (+.f64 (/.f64 1 (*.f64 d1 d2)) (+.f64 (/.f64 -30 (*.f64 d1 (*.f64 d2 d2))) (/.f64 -27000 (*.f64 d1 (pow.f64 d2 4))))))
(-.f64 (+.f64 (/.f64 900 (*.f64 d1 (pow.f64 d2 3))) (/.f64 -27000 (*.f64 d1 (pow.f64 d2 4)))) (-.f64 (/.f64 30 (*.f64 d1 (*.f64 d2 d2))) (/.f64 1 (*.f64 d1 d2))))
(/.f64 1 (*.f64 d1 (+.f64 d2 30)))
(/.f64 1 (*.f64 d1 (+.f64 30 d2)))
(/.f64 1 (*.f64 d1 (+.f64 d2 30)))
(/.f64 1 (*.f64 d1 (+.f64 30 d2)))
(/.f64 1 (*.f64 d1 (+.f64 d2 30)))
(/.f64 1 (*.f64 d1 (+.f64 30 d2)))
(/.f64 1 (*.f64 d1 (+.f64 d2 30)))
(/.f64 1 (*.f64 d1 (+.f64 30 d2)))
(/.f64 1 (*.f64 d1 (+.f64 d2 30)))
(/.f64 1 (*.f64 d1 (+.f64 30 d2)))
(/.f64 1 (*.f64 d1 (+.f64 d2 30)))
(/.f64 1 (*.f64 d1 (+.f64 30 d2)))
(/.f64 1 (*.f64 d1 (+.f64 d2 30)))
(/.f64 1 (*.f64 d1 (+.f64 30 d2)))
(/.f64 1 (*.f64 d1 (+.f64 d2 30)))
(/.f64 1 (*.f64 d1 (+.f64 30 d2)))
(/.f64 1 (*.f64 d1 (+.f64 30 d2)))
(/.f64 1 (*.f64 d1 (+.f64 30 d2)))
(/.f64 1 (*.f64 d1 (+.f64 30 d2)))
(/.f64 1 (*.f64 d1 (+.f64 30 d2)))
1/30
(+.f64 1/30 (*.f64 -1/900 d2))
(+.f64 1/30 (*.f64 d2 -1/900))
(fma.f64 d2 -1/900 1/30)
(+.f64 (*.f64 1/27000 (pow.f64 d2 2)) (+.f64 1/30 (*.f64 -1/900 d2)))
(fma.f64 1/27000 (*.f64 d2 d2) (+.f64 1/30 (*.f64 d2 -1/900)))
(fma.f64 (*.f64 d2 d2) 1/27000 (fma.f64 d2 -1/900 1/30))
(fma.f64 d2 -1/900 (fma.f64 d2 (*.f64 d2 1/27000) 1/30))
(+.f64 (*.f64 1/27000 (pow.f64 d2 2)) (+.f64 1/30 (+.f64 (*.f64 -1/810000 (pow.f64 d2 3)) (*.f64 -1/900 d2))))
(fma.f64 1/27000 (*.f64 d2 d2) (+.f64 1/30 (fma.f64 -1/810000 (pow.f64 d2 3) (*.f64 d2 -1/900))))
(+.f64 (fma.f64 d2 -1/900 (*.f64 (pow.f64 d2 3) -1/810000)) (fma.f64 (*.f64 d2 d2) 1/27000 1/30))
(fma.f64 d2 (*.f64 d2 1/27000) (fma.f64 d2 -1/900 (fma.f64 (pow.f64 d2 3) -1/810000 1/30)))
(/.f64 1 d2)
(-.f64 (/.f64 1 d2) (*.f64 30 (/.f64 1 (pow.f64 d2 2))))
(-.f64 (/.f64 1 d2) (/.f64 30 (*.f64 d2 d2)))
(+.f64 (/.f64 1 d2) (/.f64 -30 (*.f64 d2 d2)))
(-.f64 (+.f64 (/.f64 1 d2) (*.f64 900 (/.f64 1 (pow.f64 d2 3)))) (*.f64 30 (/.f64 1 (pow.f64 d2 2))))
(+.f64 (/.f64 1 d2) (-.f64 (/.f64 900 (pow.f64 d2 3)) (/.f64 30 (*.f64 d2 d2))))
(+.f64 (/.f64 900 (pow.f64 d2 3)) (+.f64 (/.f64 1 d2) (/.f64 -30 (*.f64 d2 d2))))
(-.f64 (+.f64 (/.f64 1 d2) (*.f64 900 (/.f64 1 (pow.f64 d2 3)))) (+.f64 (*.f64 27000 (/.f64 1 (pow.f64 d2 4))) (*.f64 30 (/.f64 1 (pow.f64 d2 2)))))
(+.f64 (/.f64 1 d2) (-.f64 (/.f64 900 (pow.f64 d2 3)) (+.f64 (/.f64 30 (*.f64 d2 d2)) (/.f64 27000 (pow.f64 d2 4)))))
(+.f64 (/.f64 1 d2) (+.f64 (/.f64 900 (pow.f64 d2 3)) (+.f64 (/.f64 -30 (*.f64 d2 d2)) (/.f64 -27000 (pow.f64 d2 4)))))
(/.f64 1 d2)
(-.f64 (/.f64 1 d2) (*.f64 30 (/.f64 1 (pow.f64 d2 2))))
(-.f64 (/.f64 1 d2) (/.f64 30 (*.f64 d2 d2)))
(+.f64 (/.f64 1 d2) (/.f64 -30 (*.f64 d2 d2)))
(-.f64 (+.f64 (/.f64 1 d2) (*.f64 900 (/.f64 1 (pow.f64 d2 3)))) (*.f64 30 (/.f64 1 (pow.f64 d2 2))))
(+.f64 (/.f64 1 d2) (-.f64 (/.f64 900 (pow.f64 d2 3)) (/.f64 30 (*.f64 d2 d2))))
(+.f64 (/.f64 900 (pow.f64 d2 3)) (+.f64 (/.f64 1 d2) (/.f64 -30 (*.f64 d2 d2))))
(-.f64 (+.f64 (/.f64 1 d2) (*.f64 900 (/.f64 1 (pow.f64 d2 3)))) (+.f64 (*.f64 27000 (/.f64 1 (pow.f64 d2 4))) (*.f64 30 (/.f64 1 (pow.f64 d2 2)))))
(+.f64 (/.f64 1 d2) (-.f64 (/.f64 900 (pow.f64 d2 3)) (+.f64 (/.f64 30 (*.f64 d2 d2)) (/.f64 27000 (pow.f64 d2 4)))))
(+.f64 (/.f64 1 d2) (+.f64 (/.f64 900 (pow.f64 d2 3)) (+.f64 (/.f64 -30 (*.f64 d2 d2)) (/.f64 -27000 (pow.f64 d2 4)))))

eval554.0ms (16.9%)

Compiler

Compiled 9474 to 6867 computations (27.5% saved)

prune94.0ms (2.9%)

Pruning

7 alts after pruning (3 fresh and 4 done)

PrunedKeptTotal
New6393642
Fresh000
Picked101
Done347
Total6437650
Error
0b
Counts
650 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
24.5b
(*.f64 (/.f64 d1 (+.f64 d2 -30)) -900)
24.2b
(*.f64 d1 30)
24.5b
(*.f64 -900 (*.f64 d1 (/.f64 1 (+.f64 d2 -30))))
24.5b
(/.f64 (*.f64 d1 -900) (+.f64 d2 -30))
0.0b
(*.f64 d1 (+.f64 d2 30))
0.3b
(/.f64 (+.f64 d2 30) (/.f64 1 d1))
38.4b
(*.f64 d2 d1)
Compiler

Compiled 55 to 42 computations (23.6% saved)

localize9.0ms (0.3%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.3b
(/.f64 (+.f64 d2 30) (/.f64 1 d1))
0.3b
(/.f64 (+.f64 d2 30) (/.f64 1 d1))
Compiler

Compiled 19 to 13 computations (31.6% saved)

series2.0ms (0.1%)

Counts
1 → 24
Calls

6 calls:

TimeVariablePointExpression
0.0ms
d2
@0
(/.f64 (+.f64 d2 30) (/.f64 1 d1))
0.0ms
d2
@inf
(/.f64 (+.f64 d2 30) (/.f64 1 d1))
0.0ms
d2
@-inf
(/.f64 (+.f64 d2 30) (/.f64 1 d1))
0.0ms
d1
@0
(/.f64 (+.f64 d2 30) (/.f64 1 d1))
0.0ms
d1
@inf
(/.f64 (+.f64 d2 30) (/.f64 1 d1))

rewrite48.0ms (1.5%)

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

Useful iterations: 1 (0.0ms)

IterNodesCost
0810
11777
223057
Stop Event
node limit
Counts
1 → 34
Calls
Call 1
Inputs
(/.f64 (+.f64 d2 30) (/.f64 1 d1))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (+.f64 d2 30) d1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 d2 30) d1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (+.f64 d2 30) d1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 d1 (+.f64 d2 30))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 d2 30) d1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (+.f64 d2 30) d1)) (pow.f64 (cbrt.f64 (*.f64 (+.f64 d2 30) d1)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 (+.f64 d2 30) d1)) 2) (cbrt.f64 (*.f64 (+.f64 d2 30) d1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 d2 30)) 2) (*.f64 (cbrt.f64 (+.f64 d2 30)) d1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (+.f64 d2 30) d1)) (sqrt.f64 (*.f64 (+.f64 d2 30) d1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 d2 30)) (*.f64 (sqrt.f64 (+.f64 d2 30)) d1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 -30 (neg.f64 d2)) (/.f64 1 (/.f64 -1 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (+.f64 d2 30)) 2) 1) (/.f64 (cbrt.f64 (+.f64 d2 30)) (/.f64 1 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (+.f64 d2 30)) 1) (/.f64 (sqrt.f64 (+.f64 d2 30)) (/.f64 1 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (cbrt.f64 (pow.f64 d1 -2))) (/.f64 (+.f64 d2 30) (cbrt.f64 (/.f64 1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (+.f64 d2 30)) 2) (cbrt.f64 (pow.f64 d1 -2))) (cbrt.f64 (*.f64 (+.f64 d2 30) d1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (+.f64 d2 30)) (cbrt.f64 (pow.f64 d1 -2))) (/.f64 (sqrt.f64 (+.f64 d2 30)) (cbrt.f64 (/.f64 1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (pow.f64 d1 -1/2)) (/.f64 (+.f64 d2 30) (pow.f64 d1 -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (+.f64 d2 30)) 2) (pow.f64 d1 -1/2)) (/.f64 (cbrt.f64 (+.f64 d2 30)) (pow.f64 d1 -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 d2 30) -1) (neg.f64 d1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 d2 30) (pow.f64 (cbrt.f64 d1) 2)) (cbrt.f64 d1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 d2 30) (sqrt.f64 d1)) (sqrt.f64 d1))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (+.f64 d2 30) d1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (+.f64 d2 30) d1) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (+.f64 d2 30) d1)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (+.f64 d2 30) d1)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (/.f64 1 d1) (+.f64 d2 30)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (+.f64 d2 30) (/.f64 -1 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (+.f64 d2 30) d1) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (+.f64 d2 30)) d1))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (+.f64 d2 30) d1) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (+.f64 d2 30) 3) (/.f64 (pow.f64 d1 -2) d1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (+.f64 d2 30) d1)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (+.f64 d2 30) d1)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (+.f64 d2 30) d1)))))))

simplify10.0ms (0.3%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
fma-def_binary64
+-commutative_binary64
distribute-lft-in_binary64
distribute-rgt-in_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
011159
121159
224159
Stop Event
saturated
Counts
58 → 39
Calls
Call 1
Inputs
(*.f64 30 d1)
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
Outputs
(*.f64 30 d1)
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 30 d2))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 30 d2))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 30 d2))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 30 d2))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 30 d2))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 30 d2))
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 d2 30))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))
(*.f64 d1 (+.f64 30 d2))

localize13.0ms (0.4%)

Local error

Found 6 expressions with local error:

NewErrorProgram
0.3b
(*.f64 -900 (*.f64 d1 (/.f64 1 (+.f64 d2 -30))))
0.1b
(*.f64 d1 (/.f64 1 (+.f64 d2 -30)))
0.0b
(/.f64 1 (+.f64 d2 -30))
0.0b
(/.f64 1 (+.f64 d2 -30))
0.1b
(*.f64 d1 (/.f64 1 (+.f64 d2 -30)))
0.3b
(*.f64 -900 (*.f64 d1 (/.f64 1 (+.f64 d2 -30))))
Compiler

Compiled 31 to 23 computations (25.8% saved)

series2.0ms (0.1%)

Counts
1 → 24
Calls

6 calls:

TimeVariablePointExpression
0.0ms
d1
@inf
(*.f64 -900 (*.f64 d1 (/.f64 1 (+.f64 d2 -30))))
0.0ms
d2
@inf
(*.f64 -900 (*.f64 d1 (/.f64 1 (+.f64 d2 -30))))
0.0ms
d1
@-inf
(*.f64 -900 (*.f64 d1 (/.f64 1 (+.f64 d2 -30))))
0.0ms
d1
@0
(*.f64 -900 (*.f64 d1 (/.f64 1 (+.f64 d2 -30))))
0.0ms
d2
@0
(*.f64 -900 (*.f64 d1 (/.f64 1 (+.f64 d2 -30))))

rewrite53.0ms (1.6%)

Algorithm
batch-egg-rewrite
Rules
467×log-prod_binary64
369×exp-prod_binary64
309×prod-exp_binary64
257×pow2_binary64
256×pow-prod-down_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01010
121510
2261410
Stop Event
node limit
Counts
1 → 32
Calls
Call 1
Inputs
(*.f64 -900 (*.f64 d1 (/.f64 1 (+.f64 d2 -30))))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 -900 (/.f64 d1 (+.f64 d2 -30))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 -900) (/.f64 d1 (+.f64 d2 -30)))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 -900) (/.f64 d1 (+.f64 d2 -30))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 -900) (/.f64 d1 (+.f64 d2 -30))))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 -900) (/.f64 d1 (+.f64 d2 -30))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 -900 (/.f64 d1 (+.f64 d2 -30))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -900 d1) (+.f64 d2 -30))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 -900 d1) 1) (+.f64 d2 -30))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 -900 d1) -1) (+.f64 30 (neg.f64 d2)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 -900 (/.f64 d1 (+.f64 d2 -30))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (E.f64) (log.f64 (*.f64 -900 (/.f64 d1 (+.f64 d2 -30)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 810000 (pow.f64 (/.f64 d1 (+.f64 d2 -30)) 2)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 -900 (/.f64 d1 (+.f64 d2 -30))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 -900 (/.f64 d1 (+.f64 d2 -30)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 -900 (/.f64 d1 (+.f64 d2 -30)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 -900 (/.f64 d1 (+.f64 d2 -30))))) 2)) (cbrt.f64 (log.f64 (*.f64 -900 (/.f64 d1 (+.f64 d2 -30))))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 -900 (/.f64 d1 (+.f64 d2 -30)))))) (sqrt.f64 (log.f64 (*.f64 -900 (/.f64 d1 (+.f64 d2 -30))))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 810000 (pow.f64 (/.f64 d1 (+.f64 d2 -30)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 -900) (/.f64 d1 (+.f64 d2 -30))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 -900 (/.f64 d1 (+.f64 d2 -30))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 -900 (/.f64 d1 (+.f64 d2 -30))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 -900 (/.f64 d1 (+.f64 d2 -30)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 -900 (/.f64 d1 (+.f64 d2 -30)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 -900 (/.f64 d1 (+.f64 d2 -30))))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 -900 (/.f64 d1 (+.f64 d2 -30))))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 -900 (/.f64 d1 (+.f64 d2 -30))))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 -900 (/.f64 d1 (+.f64 d2 -30)))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (log.f64 (*.f64 -900 d1)) (*.f64 (log.f64 (+.f64 d2 -30)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (+.f64 d2 -30)) -1) (log.f64 (*.f64 -900 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (neg.f64 (log.f64 (+.f64 d2 -30))) 1) (log.f64 (*.f64 -900 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log.f64 (*.f64 -900 d1)) (*.f64 (log.f64 (+.f64 d2 -30)) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log.f64 (*.f64 -900 d1)) (*.f64 (neg.f64 (log.f64 (+.f64 d2 -30))) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 -900 (/.f64 d1 (+.f64 d2 -30)))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 -900 (/.f64 d1 (+.f64 d2 -30)))))))))

simplify69.0ms (2.1%)

Algorithm
egg-herbie
Rules
698×fma-def_binary64
653×associate-/l*_binary64
534×associate-/l/_binary64
501×associate-*l/_binary64
427×distribute-rgt-out_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
045353
1120350
2305319
3888305
43116305
57427305
67904305
Stop Event
node limit
Counts
56 → 49
Calls
Call 1
Inputs
(*.f64 -900 (/.f64 d1 (-.f64 d2 30)))
(*.f64 -900 (/.f64 d1 (-.f64 d2 30)))
(*.f64 -900 (/.f64 d1 (-.f64 d2 30)))
(*.f64 -900 (/.f64 d1 (-.f64 d2 30)))
(*.f64 -900 (/.f64 d1 (-.f64 d2 30)))
(*.f64 -900 (/.f64 d1 (-.f64 d2 30)))
(*.f64 -900 (/.f64 d1 (-.f64 d2 30)))
(*.f64 -900 (/.f64 d1 (-.f64 d2 30)))
(*.f64 -900 (/.f64 d1 (-.f64 d2 30)))
(*.f64 -900 (/.f64 d1 (-.f64 d2 30)))
(*.f64 -900 (/.f64 d1 (-.f64 d2 30)))
(*.f64 -900 (/.f64 d1 (-.f64 d2 30)))
(*.f64 30 d1)
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d2 d1) (+.f64 (*.f64 30 d1) (*.f64 1/30 (*.f64 (pow.f64 d2 2) d1))))
(+.f64 (*.f64 d2 d1) (+.f64 (*.f64 30 d1) (+.f64 (*.f64 1/900 (*.f64 (pow.f64 d2 3) d1)) (*.f64 1/30 (*.f64 (pow.f64 d2 2) d1)))))
(*.f64 -900 (/.f64 d1 d2))
(+.f64 (*.f64 -900 (/.f64 d1 d2)) (*.f64 -27000 (/.f64 d1 (pow.f64 d2 2))))
(+.f64 (*.f64 -900 (/.f64 d1 d2)) (+.f64 (*.f64 -810000 (/.f64 d1 (pow.f64 d2 3))) (*.f64 -27000 (/.f64 d1 (pow.f64 d2 2)))))
(+.f64 (*.f64 -900 (/.f64 d1 d2)) (+.f64 (*.f64 -810000 (/.f64 d1 (pow.f64 d2 3))) (+.f64 (*.f64 -27000 (/.f64 d1 (pow.f64 d2 2))) (*.f64 -24300000 (/.f64 d1 (pow.f64 d2 4))))))
(*.f64 -900 (/.f64 d1 d2))
(+.f64 (*.f64 -900 (/.f64 d1 d2)) (*.f64 -27000 (/.f64 d1 (pow.f64 d2 2))))
(+.f64 (*.f64 -900 (/.f64 d1 d2)) (+.f64 (*.f64 -810000 (/.f64 d1 (pow.f64 d2 3))) (*.f64 -27000 (/.f64 d1 (pow.f64 d2 2)))))
(+.f64 (*.f64 -900 (/.f64 d1 d2)) (+.f64 (*.f64 -810000 (/.f64 d1 (pow.f64 d2 3))) (+.f64 (*.f64 -27000 (/.f64 d1 (pow.f64 d2 2))) (*.f64 -24300000 (/.f64 d1 (pow.f64 d2 4))))))
Outputs
(*.f64 -900 (/.f64 d1 (-.f64 d2 30)))
(/.f64 -900 (/.f64 (-.f64 d2 30) d1))
(*.f64 -900 (/.f64 d1 (+.f64 d2 -30)))
(/.f64 (*.f64 -900 d1) (+.f64 d2 -30))
(*.f64 -900 (/.f64 d1 (-.f64 d2 30)))
(/.f64 -900 (/.f64 (-.f64 d2 30) d1))
(*.f64 -900 (/.f64 d1 (+.f64 d2 -30)))
(/.f64 (*.f64 -900 d1) (+.f64 d2 -30))
(*.f64 -900 (/.f64 d1 (-.f64 d2 30)))
(/.f64 -900 (/.f64 (-.f64 d2 30) d1))
(*.f64 -900 (/.f64 d1 (+.f64 d2 -30)))
(/.f64 (*.f64 -900 d1) (+.f64 d2 -30))
(*.f64 -900 (/.f64 d1 (-.f64 d2 30)))
(/.f64 -900 (/.f64 (-.f64 d2 30) d1))
(*.f64 -900 (/.f64 d1 (+.f64 d2 -30)))
(/.f64 (*.f64 -900 d1) (+.f64 d2 -30))
(*.f64 -900 (/.f64 d1 (-.f64 d2 30)))
(/.f64 -900 (/.f64 (-.f64 d2 30) d1))
(*.f64 -900 (/.f64 d1 (+.f64 d2 -30)))
(/.f64 (*.f64 -900 d1) (+.f64 d2 -30))
(*.f64 -900 (/.f64 d1 (-.f64 d2 30)))
(/.f64 -900 (/.f64 (-.f64 d2 30) d1))
(*.f64 -900 (/.f64 d1 (+.f64 d2 -30)))
(/.f64 (*.f64 -900 d1) (+.f64 d2 -30))
(*.f64 -900 (/.f64 d1 (-.f64 d2 30)))
(/.f64 -900 (/.f64 (-.f64 d2 30) d1))
(*.f64 -900 (/.f64 d1 (+.f64 d2 -30)))
(/.f64 (*.f64 -900 d1) (+.f64 d2 -30))
(*.f64 -900 (/.f64 d1 (-.f64 d2 30)))
(/.f64 -900 (/.f64 (-.f64 d2 30) d1))
(*.f64 -900 (/.f64 d1 (+.f64 d2 -30)))
(/.f64 (*.f64 -900 d1) (+.f64 d2 -30))
(*.f64 -900 (/.f64 d1 (-.f64 d2 30)))
(/.f64 -900 (/.f64 (-.f64 d2 30) d1))
(*.f64 -900 (/.f64 d1 (+.f64 d2 -30)))
(/.f64 (*.f64 -900 d1) (+.f64 d2 -30))
(*.f64 -900 (/.f64 d1 (-.f64 d2 30)))
(/.f64 -900 (/.f64 (-.f64 d2 30) d1))
(*.f64 -900 (/.f64 d1 (+.f64 d2 -30)))
(/.f64 (*.f64 -900 d1) (+.f64 d2 -30))
(*.f64 -900 (/.f64 d1 (-.f64 d2 30)))
(/.f64 -900 (/.f64 (-.f64 d2 30) d1))
(*.f64 -900 (/.f64 d1 (+.f64 d2 -30)))
(/.f64 (*.f64 -900 d1) (+.f64 d2 -30))
(*.f64 -900 (/.f64 d1 (-.f64 d2 30)))
(/.f64 -900 (/.f64 (-.f64 d2 30) d1))
(*.f64 -900 (/.f64 d1 (+.f64 d2 -30)))
(/.f64 (*.f64 -900 d1) (+.f64 d2 -30))
(*.f64 30 d1)
(*.f64 d1 30)
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 d2 30))
(+.f64 (*.f64 d2 d1) (+.f64 (*.f64 30 d1) (*.f64 1/30 (*.f64 (pow.f64 d2 2) d1))))
(fma.f64 d2 d1 (fma.f64 30 d1 (*.f64 1/30 (*.f64 d1 (*.f64 d2 d2)))))
(fma.f64 d1 (+.f64 d2 30) (*.f64 (*.f64 d2 d2) (*.f64 d1 1/30)))
(*.f64 d1 (+.f64 d2 (fma.f64 1/30 (*.f64 d2 d2) 30)))
(*.f64 d1 (+.f64 d2 (fma.f64 d2 (*.f64 d2 1/30) 30)))
(*.f64 d1 (fma.f64 d2 (*.f64 d2 1/30) (+.f64 d2 30)))
(+.f64 (*.f64 d2 d1) (+.f64 (*.f64 30 d1) (+.f64 (*.f64 1/900 (*.f64 (pow.f64 d2 3) d1)) (*.f64 1/30 (*.f64 (pow.f64 d2 2) d1)))))
(fma.f64 d2 d1 (fma.f64 30 d1 (fma.f64 1/900 (*.f64 d1 (pow.f64 d2 3)) (*.f64 1/30 (*.f64 d1 (*.f64 d2 d2))))))
(fma.f64 d1 (+.f64 d2 30) (*.f64 d1 (+.f64 (*.f64 1/900 (pow.f64 d2 3)) (*.f64 1/30 (*.f64 d2 d2)))))
(*.f64 d1 (+.f64 (+.f64 d2 30) (*.f64 (*.f64 d2 d2) (+.f64 (*.f64 d2 1/900) 1/30))))
(*.f64 d1 (fma.f64 d2 (*.f64 d2 (fma.f64 d2 1/900 1/30)) (+.f64 d2 30)))
(*.f64 d1 (+.f64 d2 (fma.f64 d2 (*.f64 d2 (fma.f64 d2 1/900 1/30)) 30)))
(*.f64 -900 (/.f64 d1 d2))
(/.f64 (*.f64 -900 d1) d2)
(+.f64 (*.f64 -900 (/.f64 d1 d2)) (*.f64 -27000 (/.f64 d1 (pow.f64 d2 2))))
(fma.f64 -900 (/.f64 d1 d2) (*.f64 -27000 (/.f64 d1 (*.f64 d2 d2))))
(fma.f64 -900 (/.f64 d1 d2) (*.f64 (/.f64 -27000 d2) (/.f64 d1 d2)))
(*.f64 (/.f64 d1 d2) (+.f64 -900 (/.f64 -27000 d2)))
(+.f64 (*.f64 -900 (/.f64 d1 d2)) (+.f64 (*.f64 -810000 (/.f64 d1 (pow.f64 d2 3))) (*.f64 -27000 (/.f64 d1 (pow.f64 d2 2)))))
(fma.f64 -900 (/.f64 d1 d2) (fma.f64 -810000 (/.f64 d1 (pow.f64 d2 3)) (*.f64 -27000 (/.f64 d1 (*.f64 d2 d2)))))
(fma.f64 -900 (/.f64 d1 d2) (fma.f64 -27000 (/.f64 d1 (*.f64 d2 d2)) (/.f64 (*.f64 d1 -810000) (pow.f64 d2 3))))
(fma.f64 -810000 (/.f64 d1 (pow.f64 d2 3)) (*.f64 (/.f64 d1 d2) (+.f64 -900 (/.f64 -27000 d2))))
(*.f64 (/.f64 d1 d2) (+.f64 (/.f64 -810000 (*.f64 d2 d2)) (+.f64 -900 (/.f64 -27000 d2))))
(+.f64 (*.f64 -900 (/.f64 d1 d2)) (+.f64 (*.f64 -810000 (/.f64 d1 (pow.f64 d2 3))) (+.f64 (*.f64 -27000 (/.f64 d1 (pow.f64 d2 2))) (*.f64 -24300000 (/.f64 d1 (pow.f64 d2 4))))))
(fma.f64 -900 (/.f64 d1 d2) (fma.f64 -810000 (/.f64 d1 (pow.f64 d2 3)) (fma.f64 -27000 (/.f64 d1 (*.f64 d2 d2)) (*.f64 -24300000 (/.f64 d1 (pow.f64 d2 4))))))
(fma.f64 -900 (/.f64 d1 d2) (fma.f64 -810000 (/.f64 d1 (pow.f64 d2 3)) (fma.f64 -27000 (/.f64 d1 (*.f64 d2 d2)) (/.f64 (*.f64 d1 -24300000) (pow.f64 d2 4)))))
(fma.f64 -900 (/.f64 d1 d2) (fma.f64 -24300000 (/.f64 d1 (pow.f64 d2 4)) (*.f64 (/.f64 d1 (*.f64 d2 d2)) (+.f64 -27000 (/.f64 -810000 d2)))))
(fma.f64 (/.f64 d1 d2) (+.f64 -900 (/.f64 -27000 d2)) (*.f64 (/.f64 d1 (pow.f64 d2 3)) (+.f64 -810000 (/.f64 -24300000 d2))))
(*.f64 -900 (/.f64 d1 d2))
(/.f64 (*.f64 -900 d1) d2)
(+.f64 (*.f64 -900 (/.f64 d1 d2)) (*.f64 -27000 (/.f64 d1 (pow.f64 d2 2))))
(fma.f64 -900 (/.f64 d1 d2) (*.f64 -27000 (/.f64 d1 (*.f64 d2 d2))))
(fma.f64 -900 (/.f64 d1 d2) (*.f64 (/.f64 -27000 d2) (/.f64 d1 d2)))
(*.f64 (/.f64 d1 d2) (+.f64 -900 (/.f64 -27000 d2)))
(+.f64 (*.f64 -900 (/.f64 d1 d2)) (+.f64 (*.f64 -810000 (/.f64 d1 (pow.f64 d2 3))) (*.f64 -27000 (/.f64 d1 (pow.f64 d2 2)))))
(fma.f64 -900 (/.f64 d1 d2) (fma.f64 -810000 (/.f64 d1 (pow.f64 d2 3)) (*.f64 -27000 (/.f64 d1 (*.f64 d2 d2)))))
(fma.f64 -900 (/.f64 d1 d2) (fma.f64 -27000 (/.f64 d1 (*.f64 d2 d2)) (/.f64 (*.f64 d1 -810000) (pow.f64 d2 3))))
(fma.f64 -810000 (/.f64 d1 (pow.f64 d2 3)) (*.f64 (/.f64 d1 d2) (+.f64 -900 (/.f64 -27000 d2))))
(*.f64 (/.f64 d1 d2) (+.f64 (/.f64 -810000 (*.f64 d2 d2)) (+.f64 -900 (/.f64 -27000 d2))))
(+.f64 (*.f64 -900 (/.f64 d1 d2)) (+.f64 (*.f64 -810000 (/.f64 d1 (pow.f64 d2 3))) (+.f64 (*.f64 -27000 (/.f64 d1 (pow.f64 d2 2))) (*.f64 -24300000 (/.f64 d1 (pow.f64 d2 4))))))
(fma.f64 -900 (/.f64 d1 d2) (fma.f64 -810000 (/.f64 d1 (pow.f64 d2 3)) (fma.f64 -27000 (/.f64 d1 (*.f64 d2 d2)) (*.f64 -24300000 (/.f64 d1 (pow.f64 d2 4))))))
(fma.f64 -900 (/.f64 d1 d2) (fma.f64 -810000 (/.f64 d1 (pow.f64 d2 3)) (fma.f64 -27000 (/.f64 d1 (*.f64 d2 d2)) (/.f64 (*.f64 d1 -24300000) (pow.f64 d2 4)))))
(fma.f64 -900 (/.f64 d1 d2) (fma.f64 -24300000 (/.f64 d1 (pow.f64 d2 4)) (*.f64 (/.f64 d1 (*.f64 d2 d2)) (+.f64 -27000 (/.f64 -810000 d2)))))
(fma.f64 (/.f64 d1 d2) (+.f64 -900 (/.f64 -27000 d2)) (*.f64 (/.f64 d1 (pow.f64 d2 3)) (+.f64 -810000 (/.f64 -24300000 d2))))

localize9.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(*.f64 (/.f64 d1 (+.f64 d2 -30)) -900)
0.0b
(/.f64 d1 (+.f64 d2 -30))
0.0b
(/.f64 d1 (+.f64 d2 -30))
0.3b
(*.f64 (/.f64 d1 (+.f64 d2 -30)) -900)
Compiler

Compiled 21 to 14 computations (33.3% saved)

series2.0ms (0.1%)

Counts
1 → 24
Calls

6 calls:

TimeVariablePointExpression
0.0ms
d1
@0
(*.f64 (/.f64 d1 (+.f64 d2 -30)) -900)
0.0ms
d2
@inf
(*.f64 (/.f64 d1 (+.f64 d2 -30)) -900)
0.0ms
d2
@-inf
(*.f64 (/.f64 d1 (+.f64 d2 -30)) -900)
0.0ms
d2
@0
(*.f64 (/.f64 d1 (+.f64 d2 -30)) -900)
0.0ms
d1
@inf
(*.f64 (/.f64 d1 (+.f64 d2 -30)) -900)

rewrite47.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
959×pow1_binary64
898×add-log-exp_binary64
898×log1p-expm1-u_binary64
898×expm1-log1p-u_binary64
91×add-sqr-sqrt_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0810
117910
2233410
Stop Event
node limit
Counts
1 → 22
Calls
Call 1
Inputs
(*.f64 (/.f64 d1 (+.f64 d2 -30)) -900)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (/.f64 d1 (+.f64 d2 -30)) -900))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 d1 (/.f64 (+.f64 d2 -30) -900))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -900 (/.f64 (+.f64 d2 -30) d1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 d2 -30) (*.f64 d1 -900)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 -900) (+.f64 d2 -30))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 d1 -900)) (+.f64 30 (neg.f64 d2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 d1 -900) 1) (+.f64 d2 -30))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 d1 -900) (pow.f64 (cbrt.f64 (+.f64 d2 -30)) 2)) (cbrt.f64 (+.f64 d2 -30)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 d1 -900) (sqrt.f64 (+.f64 d2 -30))) (sqrt.f64 (+.f64 d2 -30)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 d1) -900) (+.f64 30 (neg.f64 d2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -900 (neg.f64 d1)) (+.f64 30 (neg.f64 d2)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 d1 (+.f64 d2 -30)) -900) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 d1 (+.f64 d2 -30)) -900) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (/.f64 d1 (+.f64 d2 -30)) -900)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (/.f64 d1 (+.f64 d2 -30)) -900)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 (/.f64 d1 (+.f64 d2 -30)) 2) 810000))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (/.f64 d1 (+.f64 d2 -30))) -900))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (/.f64 d1 (+.f64 d2 -30)) -900))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (/.f64 d1 (+.f64 d2 -30)) -900) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (/.f64 d1 (+.f64 d2 -30)) -900)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (/.f64 d1 (+.f64 d2 -30)) -900)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (/.f64 d1 (+.f64 d2 -30)) -900)))))))

simplify56.0ms (1.7%)

Algorithm
egg-herbie
Rules
698×fma-def_binary64
653×associate-/l*_binary64
534×associate-/l/_binary64
501×associate-*l/_binary64
427×distribute-rgt-out_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
045353
1120350
2305319
3888305
43116305
57427305
67904305
Stop Event
node limit
Counts
46 → 40
Calls
Call 1
Inputs
(*.f64 -900 (/.f64 d1 (-.f64 d2 30)))
(*.f64 -900 (/.f64 d1 (-.f64 d2 30)))
(*.f64 -900 (/.f64 d1 (-.f64 d2 30)))
(*.f64 -900 (/.f64 d1 (-.f64 d2 30)))
(*.f64 -900 (/.f64 d1 (-.f64 d2 30)))
(*.f64 -900 (/.f64 d1 (-.f64 d2 30)))
(*.f64 -900 (/.f64 d1 (-.f64 d2 30)))
(*.f64 -900 (/.f64 d1 (-.f64 d2 30)))
(*.f64 -900 (/.f64 d1 (-.f64 d2 30)))
(*.f64 -900 (/.f64 d1 (-.f64 d2 30)))
(*.f64 -900 (/.f64 d1 (-.f64 d2 30)))
(*.f64 -900 (/.f64 d1 (-.f64 d2 30)))
(*.f64 30 d1)
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(+.f64 (*.f64 d2 d1) (+.f64 (*.f64 30 d1) (*.f64 1/30 (*.f64 (pow.f64 d2 2) d1))))
(+.f64 (*.f64 d2 d1) (+.f64 (*.f64 30 d1) (+.f64 (*.f64 1/900 (*.f64 (pow.f64 d2 3) d1)) (*.f64 1/30 (*.f64 (pow.f64 d2 2) d1)))))
(*.f64 -900 (/.f64 d1 d2))
(+.f64 (*.f64 -900 (/.f64 d1 d2)) (*.f64 -27000 (/.f64 d1 (pow.f64 d2 2))))
(+.f64 (*.f64 -900 (/.f64 d1 d2)) (+.f64 (*.f64 -810000 (/.f64 d1 (pow.f64 d2 3))) (*.f64 -27000 (/.f64 d1 (pow.f64 d2 2)))))
(+.f64 (*.f64 -900 (/.f64 d1 d2)) (+.f64 (*.f64 -810000 (/.f64 d1 (pow.f64 d2 3))) (+.f64 (*.f64 -27000 (/.f64 d1 (pow.f64 d2 2))) (*.f64 -24300000 (/.f64 d1 (pow.f64 d2 4))))))
(*.f64 -900 (/.f64 d1 d2))
(+.f64 (*.f64 -900 (/.f64 d1 d2)) (*.f64 -27000 (/.f64 d1 (pow.f64 d2 2))))
(+.f64 (*.f64 -900 (/.f64 d1 d2)) (+.f64 (*.f64 -810000 (/.f64 d1 (pow.f64 d2 3))) (*.f64 -27000 (/.f64 d1 (pow.f64 d2 2)))))
(+.f64 (*.f64 -900 (/.f64 d1 d2)) (+.f64 (*.f64 -810000 (/.f64 d1 (pow.f64 d2 3))) (+.f64 (*.f64 -27000 (/.f64 d1 (pow.f64 d2 2))) (*.f64 -24300000 (/.f64 d1 (pow.f64 d2 4))))))
Outputs
(*.f64 -900 (/.f64 d1 (-.f64 d2 30)))
(/.f64 -900 (/.f64 (-.f64 d2 30) d1))
(*.f64 -900 (/.f64 d1 (+.f64 d2 -30)))
(/.f64 (*.f64 -900 d1) (+.f64 d2 -30))
(*.f64 -900 (/.f64 d1 (-.f64 d2 30)))
(/.f64 -900 (/.f64 (-.f64 d2 30) d1))
(*.f64 -900 (/.f64 d1 (+.f64 d2 -30)))
(/.f64 (*.f64 -900 d1) (+.f64 d2 -30))
(*.f64 -900 (/.f64 d1 (-.f64 d2 30)))
(/.f64 -900 (/.f64 (-.f64 d2 30) d1))
(*.f64 -900 (/.f64 d1 (+.f64 d2 -30)))
(/.f64 (*.f64 -900 d1) (+.f64 d2 -30))
(*.f64 -900 (/.f64 d1 (-.f64 d2 30)))
(/.f64 -900 (/.f64 (-.f64 d2 30) d1))
(*.f64 -900 (/.f64 d1 (+.f64 d2 -30)))
(/.f64 (*.f64 -900 d1) (+.f64 d2 -30))
(*.f64 -900 (/.f64 d1 (-.f64 d2 30)))
(/.f64 -900 (/.f64 (-.f64 d2 30) d1))
(*.f64 -900 (/.f64 d1 (+.f64 d2 -30)))
(/.f64 (*.f64 -900 d1) (+.f64 d2 -30))
(*.f64 -900 (/.f64 d1 (-.f64 d2 30)))
(/.f64 -900 (/.f64 (-.f64 d2 30) d1))
(*.f64 -900 (/.f64 d1 (+.f64 d2 -30)))
(/.f64 (*.f64 -900 d1) (+.f64 d2 -30))
(*.f64 -900 (/.f64 d1 (-.f64 d2 30)))
(/.f64 -900 (/.f64 (-.f64 d2 30) d1))
(*.f64 -900 (/.f64 d1 (+.f64 d2 -30)))
(/.f64 (*.f64 -900 d1) (+.f64 d2 -30))
(*.f64 -900 (/.f64 d1 (-.f64 d2 30)))
(/.f64 -900 (/.f64 (-.f64 d2 30) d1))
(*.f64 -900 (/.f64 d1 (+.f64 d2 -30)))
(/.f64 (*.f64 -900 d1) (+.f64 d2 -30))
(*.f64 -900 (/.f64 d1 (-.f64 d2 30)))
(/.f64 -900 (/.f64 (-.f64 d2 30) d1))
(*.f64 -900 (/.f64 d1 (+.f64 d2 -30)))
(/.f64 (*.f64 -900 d1) (+.f64 d2 -30))
(*.f64 -900 (/.f64 d1 (-.f64 d2 30)))
(/.f64 -900 (/.f64 (-.f64 d2 30) d1))
(*.f64 -900 (/.f64 d1 (+.f64 d2 -30)))
(/.f64 (*.f64 -900 d1) (+.f64 d2 -30))
(*.f64 -900 (/.f64 d1 (-.f64 d2 30)))
(/.f64 -900 (/.f64 (-.f64 d2 30) d1))
(*.f64 -900 (/.f64 d1 (+.f64 d2 -30)))
(/.f64 (*.f64 -900 d1) (+.f64 d2 -30))
(*.f64 -900 (/.f64 d1 (-.f64 d2 30)))
(/.f64 -900 (/.f64 (-.f64 d2 30) d1))
(*.f64 -900 (/.f64 d1 (+.f64 d2 -30)))
(/.f64 (*.f64 -900 d1) (+.f64 d2 -30))
(*.f64 30 d1)
(*.f64 d1 30)
(+.f64 (*.f64 d2 d1) (*.f64 30 d1))
(*.f64 d1 (+.f64 d2 30))
(+.f64 (*.f64 d2 d1) (+.f64 (*.f64 30 d1) (*.f64 1/30 (*.f64 (pow.f64 d2 2) d1))))
(fma.f64 d2 d1 (fma.f64 30 d1 (*.f64 1/30 (*.f64 d1 (*.f64 d2 d2)))))
(fma.f64 d1 (+.f64 d2 30) (*.f64 (*.f64 d2 d2) (*.f64 d1 1/30)))
(*.f64 d1 (+.f64 d2 (fma.f64 1/30 (*.f64 d2 d2) 30)))
(*.f64 d1 (+.f64 d2 (fma.f64 d2 (*.f64 d2 1/30) 30)))
(*.f64 d1 (fma.f64 d2 (*.f64 d2 1/30) (+.f64 d2 30)))
(+.f64 (*.f64 d2 d1) (+.f64 (*.f64 30 d1) (+.f64 (*.f64 1/900 (*.f64 (pow.f64 d2 3) d1)) (*.f64 1/30 (*.f64 (pow.f64 d2 2) d1)))))
(fma.f64 d2 d1 (fma.f64 30 d1 (fma.f64 1/900 (*.f64 d1 (pow.f64 d2 3)) (*.f64 1/30 (*.f64 d1 (*.f64 d2 d2))))))
(fma.f64 d1 (+.f64 d2 30) (*.f64 d1 (+.f64 (*.f64 1/900 (pow.f64 d2 3)) (*.f64 1/30 (*.f64 d2 d2)))))
(*.f64 d1 (+.f64 (+.f64 d2 30) (*.f64 (*.f64 d2 d2) (+.f64 (*.f64 d2 1/900) 1/30))))
(*.f64 d1 (fma.f64 d2 (*.f64 d2 (fma.f64 d2 1/900 1/30)) (+.f64 d2 30)))
(*.f64 d1 (+.f64 d2 (fma.f64 d2 (*.f64 d2 (fma.f64 d2 1/900 1/30)) 30)))
(*.f64 -900 (/.f64 d1 d2))
(/.f64 (*.f64 -900 d1) d2)
(+.f64 (*.f64 -900 (/.f64 d1 d2)) (*.f64 -27000 (/.f64 d1 (pow.f64 d2 2))))
(fma.f64 -900 (/.f64 d1 d2) (*.f64 -27000 (/.f64 d1 (*.f64 d2 d2))))
(fma.f64 -900 (/.f64 d1 d2) (*.f64 (/.f64 -27000 d2) (/.f64 d1 d2)))
(*.f64 (/.f64 d1 d2) (+.f64 -900 (/.f64 -27000 d2)))
(+.f64 (*.f64 -900 (/.f64 d1 d2)) (+.f64 (*.f64 -810000 (/.f64 d1 (pow.f64 d2 3))) (*.f64 -27000 (/.f64 d1 (pow.f64 d2 2)))))
(fma.f64 -900 (/.f64 d1 d2) (fma.f64 -810000 (/.f64 d1 (pow.f64 d2 3)) (*.f64 -27000 (/.f64 d1 (*.f64 d2 d2)))))
(fma.f64 -900 (/.f64 d1 d2) (fma.f64 -27000 (/.f64 d1 (*.f64 d2 d2)) (/.f64 (*.f64 d1 -810000) (pow.f64 d2 3))))
(fma.f64 -810000 (/.f64 d1 (pow.f64 d2 3)) (*.f64 (/.f64 d1 d2) (+.f64 -900 (/.f64 -27000 d2))))
(*.f64 (/.f64 d1 d2) (+.f64 (/.f64 -810000 (*.f64 d2 d2)) (+.f64 -900 (/.f64 -27000 d2))))
(+.f64 (*.f64 -900 (/.f64 d1 d2)) (+.f64 (*.f64 -810000 (/.f64 d1 (pow.f64 d2 3))) (+.f64 (*.f64 -27000 (/.f64 d1 (pow.f64 d2 2))) (*.f64 -24300000 (/.f64 d1 (pow.f64 d2 4))))))
(fma.f64 -900 (/.f64 d1 d2) (fma.f64 -810000 (/.f64 d1 (pow.f64 d2 3)) (fma.f64 -27000 (/.f64 d1 (*.f64 d2 d2)) (*.f64 -24300000 (/.f64 d1 (pow.f64 d2 4))))))
(fma.f64 -900 (/.f64 d1 d2) (fma.f64 -810000 (/.f64 d1 (pow.f64 d2 3)) (fma.f64 -27000 (/.f64 d1 (*.f64 d2 d2)) (/.f64 (*.f64 d1 -24300000) (pow.f64 d2 4)))))
(fma.f64 -900 (/.f64 d1 d2) (fma.f64 -24300000 (/.f64 d1 (pow.f64 d2 4)) (*.f64 (/.f64 d1 (*.f64 d2 d2)) (+.f64 -27000 (/.f64 -810000 d2)))))
(fma.f64 (/.f64 d1 d2) (+.f64 -900 (/.f64 -27000 d2)) (*.f64 (/.f64 d1 (pow.f64 d2 3)) (+.f64 -810000 (/.f64 -24300000 d2))))
(*.f64 -900 (/.f64 d1 d2))
(/.f64 (*.f64 -900 d1) d2)
(+.f64 (*.f64 -900 (/.f64 d1 d2)) (*.f64 -27000 (/.f64 d1 (pow.f64 d2 2))))
(fma.f64 -900 (/.f64 d1 d2) (*.f64 -27000 (/.f64 d1 (*.f64 d2 d2))))
(fma.f64 -900 (/.f64 d1 d2) (*.f64 (/.f64 -27000 d2) (/.f64 d1 d2)))
(*.f64 (/.f64 d1 d2) (+.f64 -900 (/.f64 -27000 d2)))
(+.f64 (*.f64 -900 (/.f64 d1 d2)) (+.f64 (*.f64 -810000 (/.f64 d1 (pow.f64 d2 3))) (*.f64 -27000 (/.f64 d1 (pow.f64 d2 2)))))
(fma.f64 -900 (/.f64 d1 d2) (fma.f64 -810000 (/.f64 d1 (pow.f64 d2 3)) (*.f64 -27000 (/.f64 d1 (*.f64 d2 d2)))))
(fma.f64 -900 (/.f64 d1 d2) (fma.f64 -27000 (/.f64 d1 (*.f64 d2 d2)) (/.f64 (*.f64 d1 -810000) (pow.f64 d2 3))))
(fma.f64 -810000 (/.f64 d1 (pow.f64 d2 3)) (*.f64 (/.f64 d1 d2) (+.f64 -900 (/.f64 -27000 d2))))
(*.f64 (/.f64 d1 d2) (+.f64 (/.f64 -810000 (*.f64 d2 d2)) (+.f64 -900 (/.f64 -27000 d2))))
(+.f64 (*.f64 -900 (/.f64 d1 d2)) (+.f64 (*.f64 -810000 (/.f64 d1 (pow.f64 d2 3))) (+.f64 (*.f64 -27000 (/.f64 d1 (pow.f64 d2 2))) (*.f64 -24300000 (/.f64 d1 (pow.f64 d2 4))))))
(fma.f64 -900 (/.f64 d1 d2) (fma.f64 -810000 (/.f64 d1 (pow.f64 d2 3)) (fma.f64 -27000 (/.f64 d1 (*.f64 d2 d2)) (*.f64 -24300000 (/.f64 d1 (pow.f64 d2 4))))))
(fma.f64 -900 (/.f64 d1 d2) (fma.f64 -810000 (/.f64 d1 (pow.f64 d2 3)) (fma.f64 -27000 (/.f64 d1 (*.f64 d2 d2)) (/.f64 (*.f64 d1 -24300000) (pow.f64 d2 4)))))
(fma.f64 -900 (/.f64 d1 d2) (fma.f64 -24300000 (/.f64 d1 (pow.f64 d2 4)) (*.f64 (/.f64 d1 (*.f64 d2 d2)) (+.f64 -27000 (/.f64 -810000 d2)))))
(fma.f64 (/.f64 d1 d2) (+.f64 -900 (/.f64 -27000 d2)) (*.f64 (/.f64 d1 (pow.f64 d2 3)) (+.f64 -810000 (/.f64 -24300000 d2))))

eval106.0ms (3.2%)

Compiler

Compiled 4200 to 3154 computations (24.9% saved)

prune45.0ms (1.4%)

Pruning

6 alts after pruning (1 fresh and 5 done)

PrunedKeptTotal
New3301331
Fresh000
Picked101
Done156
Total3326338
Error
0b
Counts
338 → 6
Alt Table
Click to see full alt table
StatusErrorProgram
24.2b
(*.f64 d1 30)
24.3b
(*.f64 -900 (*.f64 d1 -1/30))
24.5b
(/.f64 (*.f64 d1 -900) (+.f64 d2 -30))
0.0b
(*.f64 d1 (+.f64 d2 30))
0.3b
(/.f64 (+.f64 d2 30) (/.f64 1 d1))
38.4b
(*.f64 d2 d1)
Compiler

Compiled 42 to 32 computations (23.8% saved)

regimes12.0ms (0.4%)

Counts
6 → 1
Calls
Call 1
Inputs
(*.f64 d2 d1)
(*.f64 d1 30)
(*.f64 d1 (+.f64 d2 30))
(*.f64 -900 (*.f64 d1 -1/30))
(/.f64 (+.f64 d2 30) (/.f64 1 d1))
(/.f64 (*.f64 d1 -900) (+.f64 d2 -30))
Outputs
(*.f64 d1 (+.f64 d2 30))
Calls

2 calls:

6.0ms
d2
5.0ms
d1
Results
ErrorSegmentsBranch
0.0b1d1
0.0b1d2
Compiler

Compiled 38 to 26 computations (31.6% saved)

regimes23.0ms (0.7%)

Accuracy

Total -60.1b remaining (-4824%)

Threshold costs -60.1b (-4824%)

Counts
2 → 3
Calls
Call 1
Inputs
(*.f64 d2 d1)
(*.f64 d1 30)
Outputs
(*.f64 d2 d1)
(*.f64 d1 30)
(*.f64 d2 d1)
Calls

2 calls:

13.0ms
d1
9.0ms
d2
Results
ErrorSegmentsBranch
21.2b3d1
1.2b3d2
Compiler

Compiled 14 to 9 computations (35.7% saved)

bsearch34.0ms (1.1%)

Algorithm
binary-search
Steps
TimeLeftRight
17.0ms
2.3583391504686918e-9
32075.51690087317
17.0ms
-83314956.79552375
-6.343413215155137
Compiler

Compiled 18 to 13 computations (27.8% saved)

simplify3.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01535
11935
Stop Event
saturated
Calls
Call 1
Inputs
(*.f64 d1 (+.f64 d2 30))
(if (<=.f64 d2 -357835014704427456/4294967296) (*.f64 d2 d1) (if (<=.f64 d2 5702114180819263/2417851639229258349412352) (*.f64 d1 30) (*.f64 d2 d1)))
(*.f64 d2 d1)
Outputs
(*.f64 d1 (+.f64 d2 30))
(if (<=.f64 d2 -357835014704427456/4294967296) (*.f64 d2 d1) (if (<=.f64 d2 5702114180819263/2417851639229258349412352) (*.f64 d1 30) (*.f64 d2 d1)))
(if (<=.f64 d2 -5591172104756679/67108864) (*.f64 d1 d2) (if (<=.f64 d2 5702114180819263/2417851639229258349412352) (*.f64 d1 30) (*.f64 d1 d2)))
(*.f64 d2 d1)
(*.f64 d1 d2)

end24.0ms (0.7%)

Stop Event
fuel
Compiler

Compiled 58 to 33 computations (43.1% saved)

Profiling

Loading profile data...