Details

Time bar (total: 9.1s)

analyze392.0ms (4.3%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.8%0.2%0
0%99.8%0.2%1
0%99.8%0.2%2
0%99.8%0.2%3
0%99.8%0.2%4
0%99.8%0.2%5
0%99.8%0.2%6
0%99.8%0.2%7
0%99.8%0.2%8
6.2%93.6%0.2%9
6.2%90.4%3.3%10
9.4%87.3%3.3%11
14%82.7%3.3%12
Compiler

Compiled 20 to 12 computations (40% saved)

sample2.7s (30.2%)

Results
2.1s8256×body256valid
620.0ms3720×body256invalid

preprocess82.0ms (0.9%)

Algorithm
egg-herbie
Rules
614×sub-neg_binary64
471×fma-neg_binary64
371×distribute-neg-in_binary64
329×associate-*r*_binary64
329×cancel-sign-sub-inv_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
040133
116998
255591
3196191
4494791
5722791
044
144
Stop Event
unsound
node limit
Calls
Call 1
Inputs
0
1
2
3
Outputs
0
1
2
3
1
Call 2
Inputs
(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1))
(-.f64 (+.f64 (-.f64 (*.f64 d2 d1) (*.f64 d2 d3)) (*.f64 d4 d2)) (*.f64 d2 d2))
(-.f64 (+.f64 (-.f64 (*.f64 d3 d2) (*.f64 d3 d1)) (*.f64 d4 d3)) (*.f64 d3 d3))
(-.f64 (+.f64 (-.f64 (*.f64 d4 d2) (*.f64 d4 d3)) (*.f64 d1 d4)) (*.f64 d4 d4))
(-.f64 (+.f64 (-.f64 (*.f64 d1 d3) (*.f64 d1 d2)) (*.f64 d4 d1)) (*.f64 d1 d1))
(-.f64 (+.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d3)) (*.f64 d2 d1)) (*.f64 d1 d1))
(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d4)) (*.f64 d3 d1)) (*.f64 d1 d1))
Outputs
(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1))
(+.f64 (*.f64 d1 (-.f64 d2 d3)) (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)))
(fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 d4 d1)))
(*.f64 d1 (-.f64 (+.f64 d2 (-.f64 d4 d3)) d1))
(*.f64 d1 (+.f64 d2 (-.f64 (-.f64 d4 d3) d1)))
(-.f64 (+.f64 (-.f64 (*.f64 d2 d1) (*.f64 d2 d3)) (*.f64 d4 d2)) (*.f64 d2 d2))
(+.f64 (*.f64 d2 (-.f64 d1 d3)) (-.f64 (*.f64 d2 d4) (*.f64 d2 d2)))
(fma.f64 d2 (-.f64 d1 d3) (*.f64 d2 (-.f64 d4 d2)))
(*.f64 d2 (-.f64 (+.f64 d1 (-.f64 d4 d3)) d2))
(*.f64 d2 (+.f64 (-.f64 d1 d2) (-.f64 d4 d3)))
(-.f64 (+.f64 (-.f64 (*.f64 d3 d2) (*.f64 d3 d1)) (*.f64 d4 d3)) (*.f64 d3 d3))
(+.f64 (*.f64 d3 (-.f64 d2 d1)) (-.f64 (*.f64 d3 d4) (*.f64 d3 d3)))
(fma.f64 d3 (-.f64 d2 d1) (*.f64 d3 (-.f64 d4 d3)))
(*.f64 d3 (-.f64 (-.f64 d2 (-.f64 d1 d4)) d3))
(*.f64 d3 (+.f64 d2 (-.f64 (-.f64 d4 d3) d1)))
(-.f64 (+.f64 (-.f64 (*.f64 d4 d2) (*.f64 d4 d3)) (*.f64 d1 d4)) (*.f64 d4 d4))
(+.f64 (*.f64 d4 (-.f64 d2 d3)) (-.f64 (*.f64 d1 d4) (*.f64 d4 d4)))
(fma.f64 d4 (-.f64 d2 d3) (*.f64 d4 (-.f64 d1 d4)))
(*.f64 d4 (+.f64 (-.f64 d2 d3) (-.f64 d1 d4)))
(-.f64 (+.f64 (-.f64 (*.f64 d1 d3) (*.f64 d1 d2)) (*.f64 d4 d1)) (*.f64 d1 d1))
(-.f64 (-.f64 (*.f64 d1 d3) (*.f64 d1 (-.f64 d2 d4))) (*.f64 d1 d1))
(fma.f64 d1 (-.f64 d3 d2) (*.f64 d1 (-.f64 d4 d1)))
(*.f64 d1 (-.f64 (+.f64 d4 (-.f64 d3 d2)) d1))
(*.f64 d1 (+.f64 d3 (-.f64 (-.f64 d4 d2) d1)))
(*.f64 d1 (+.f64 d3 (-.f64 (-.f64 d4 d1) d2)))
(*.f64 d1 (+.f64 d3 (-.f64 d4 (+.f64 d1 d2))))
(-.f64 (+.f64 (-.f64 (*.f64 d1 d4) (*.f64 d1 d3)) (*.f64 d2 d1)) (*.f64 d1 d1))
(+.f64 (*.f64 d1 (-.f64 d2 d3)) (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)))
(fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 d4 d1)))
(*.f64 d1 (-.f64 (+.f64 d2 (-.f64 d4 d3)) d1))
(*.f64 d1 (+.f64 d2 (-.f64 (-.f64 d4 d3) d1)))
(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d4)) (*.f64 d3 d1)) (*.f64 d1 d1))
(+.f64 (*.f64 d1 (-.f64 d2 d4)) (-.f64 (*.f64 d1 d3) (*.f64 d1 d1)))
(fma.f64 d1 (-.f64 d2 d4) (*.f64 d1 (-.f64 d3 d1)))
(*.f64 d1 (-.f64 (+.f64 d3 (-.f64 d2 d4)) d1))
(*.f64 d1 (+.f64 d2 (-.f64 (-.f64 d3 d4) d1)))
Symmetry

(sort d2 d4)

Compiler

Compiled 23 to 15 computations (34.8% saved)

simplify154.0ms (1.7%)

Algorithm
egg-herbie
Rules
1400×fma-neg_binary64
637×fma-def_binary64
211×sub-neg_binary64
208×unsub-neg_binary64
156×cancel-sign-sub-inv_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01219
13214
210013
331613
493213
5249113
6373413
7424313
8424313
9548213
10580213
11580213
Stop Event
saturated
Counts
1 → 2
Calls
Call 1
Inputs
(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1))
Outputs
(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1))
(+.f64 (*.f64 d1 (-.f64 d2 d3)) (-.f64 (*.f64 d1 d4) (*.f64 d1 d1)))
(fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 d4 d1)))
(*.f64 d1 (-.f64 (-.f64 d2 (-.f64 d3 d4)) d1))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d3 d1))))
(*.f64 d1 (+.f64 d2 (-.f64 (-.f64 d4 d3) d1)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))

eval1.0ms (0%)

Compiler

Compiled 28 to 15 computations (46.4% saved)

prune1.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
0b
Counts
3 → 2
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
0.0b
(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1))
Compiler

Compiled 32 to 19 computations (40.6% saved)

localize19.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(-.f64 d4 (+.f64 d1 d3))
0.0b
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
Compiler

Compiled 32 to 8 computations (75% saved)

series19.0ms (0.2%)

Counts
2 → 84
Calls

21 calls:

TimeVariablePointExpression
2.0ms
d3
@-inf
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
1.0ms
d1
@inf
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
1.0ms
d2
@inf
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
1.0ms
d1
@0
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
1.0ms
d1
@-inf
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))

rewrite125.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
658×fma-def_binary64
567×log-prod_binary64
337×fma-neg_binary64
317×pow2_binary64
218×pow1/3_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0920
121820
2361220
Stop Event
node limit
Counts
2 → 179
Calls
Call 1
Inputs
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(-.f64 d4 (+.f64 d1 d3))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 d2) (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d1 d2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 d1 (-.f64 d4 (-.f64 (+.f64 d1 d3) d2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 d1 d2) 1) (*.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 d1) (-.f64 d4 (-.f64 (+.f64 d1 d3) d2)))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 d1) (-.f64 d4 (-.f64 (+.f64 d1 d3) d2))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 d1) (-.f64 d4 (-.f64 (+.f64 d1 d3) d2))))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 d1) (-.f64 d4 (-.f64 (+.f64 d1 d3) d2))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 d1 (-.f64 d4 (-.f64 (+.f64 d1 d3) d2))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 d1 d2) 3) (pow.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) 3)) (+.f64 (pow.f64 (*.f64 d1 d2) 2) (-.f64 (pow.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) 2) (*.f64 (*.f64 d1 d2) (*.f64 d1 (-.f64 d4 (+.f64 d1 d3)))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 d1 d2) 2) (pow.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) 2)) (-.f64 (*.f64 d1 d2) (*.f64 d1 (-.f64 d4 (+.f64 d1 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (pow.f64 d2 3) (pow.f64 (-.f64 d4 (+.f64 d1 d3)) 3)) d1) (fma.f64 (-.f64 d4 (+.f64 d1 d3)) (-.f64 (-.f64 d4 (+.f64 d1 d3)) d2) (*.f64 d2 d2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (*.f64 d2 d2) (pow.f64 (-.f64 d4 (+.f64 d1 d3)) 2)) d1) (+.f64 (-.f64 d2 d4) (+.f64 d1 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (+.f64 (pow.f64 d2 3) (pow.f64 (-.f64 d4 (+.f64 d1 d3)) 3))) (fma.f64 (-.f64 d4 (+.f64 d1 d3)) (-.f64 (-.f64 d4 (+.f64 d1 d3)) d2) (*.f64 d2 d2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (-.f64 (*.f64 d2 d2) (pow.f64 (-.f64 d4 (+.f64 d1 d3)) 2))) (+.f64 (-.f64 d2 d4) (+.f64 d1 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 d1 (-.f64 d4 (-.f64 (+.f64 d1 d3) d2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 d1 (-.f64 d4 (-.f64 (+.f64 d1 d3) d2))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 d1 (-.f64 d4 (-.f64 (+.f64 d1 d3) d2))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 d1 (-.f64 d4 (-.f64 (+.f64 d1 d3) d2)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 d1 (-.f64 d4 (-.f64 (+.f64 d1 d3) d2)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 d1 3) (pow.f64 (-.f64 d4 (-.f64 (+.f64 d1 d3) d2)) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (-.f64 d4 (-.f64 (+.f64 d1 d3) d2)) 3) (pow.f64 d1 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 d1 (-.f64 d4 (-.f64 (+.f64 d1 d3) d2))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 d1) (-.f64 d4 (-.f64 (+.f64 d1 d3) d2))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 d1 (-.f64 d4 (-.f64 (+.f64 d1 d3) d2))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3)))) (exp.f64 (*.f64 d1 d2))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 d1 (-.f64 d4 (-.f64 (+.f64 d1 d3) d2))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 d1 3) (pow.f64 (-.f64 d4 (-.f64 (+.f64 d1 d3) d2)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (-.f64 d4 (-.f64 (+.f64 d1 d3) d2)) 3) (pow.f64 d1 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 d1 (-.f64 d4 (-.f64 (+.f64 d1 d3) d2)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 d1 (-.f64 d4 (-.f64 (+.f64 d1 d3) d2)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 d1 (-.f64 d4 (-.f64 (+.f64 d1 d3) d2)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 d1 (-.f64 d4 (-.f64 (+.f64 d1 d3) d2)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d1 d2 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d1 (-.f64 d4 (+.f64 d1 d3)) (*.f64 d1 d2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d2 d1 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 d4 (+.f64 d1 d3)) d1 (*.f64 d1 d2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 d1 d2) (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d1 d2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 d1) 2) (*.f64 (cbrt.f64 d1) d2) (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 d1) 2) (*.f64 (cbrt.f64 d1) (-.f64 d4 (+.f64 d1 d3))) (*.f64 d1 d2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 d2) 2) (*.f64 (cbrt.f64 d2) d1) (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (-.f64 d4 (+.f64 d1 d3)) 2)) (*.f64 (cbrt.f64 (-.f64 d4 (+.f64 d1 d3))) d1) (*.f64 d1 d2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 d1) (*.f64 (sqrt.f64 d1) d2) (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 d1) (*.f64 (sqrt.f64 d1) (-.f64 d4 (+.f64 d1 d3))) (*.f64 d1 d2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 d2) (*.f64 (sqrt.f64 d2) d1) (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 d4 (+.f64 d1 d3))) (*.f64 (sqrt.f64 (-.f64 d4 (+.f64 d1 d3))) d1) (*.f64 d1 d2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d1 d2) 1 (*.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 d1 d2)) 2) (cbrt.f64 (*.f64 d1 d2)) (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3)))) 2) (cbrt.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3)))) (*.f64 d1 d2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 d1 d2)) (sqrt.f64 (*.f64 d1 d2)) (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3)))) (sqrt.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3)))) (*.f64 d1 d2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 d1) (sqrt.f64 d2)) (*.f64 (sqrt.f64 d1) (sqrt.f64 d2)) (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 d2) (sqrt.f64 d1)) (*.f64 (sqrt.f64 d2) (sqrt.f64 d1)) (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 d1) (sqrt.f64 (-.f64 d4 (+.f64 d1 d3)))) (*.f64 (sqrt.f64 d1) (sqrt.f64 (-.f64 d4 (+.f64 d1 d3)))) (*.f64 d1 d2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 (-.f64 d4 (+.f64 d1 d3))) (sqrt.f64 d1)) (*.f64 (sqrt.f64 (-.f64 d4 (+.f64 d1 d3))) (sqrt.f64 d1)) (*.f64 d1 d2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d1 (pow.f64 (cbrt.f64 d2) 2)) (cbrt.f64 d2) (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d1 (sqrt.f64 d2)) (sqrt.f64 d2) (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d2 (pow.f64 (cbrt.f64 d1) 2)) (cbrt.f64 d1) (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d2 (sqrt.f64 d1)) (sqrt.f64 d1) (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d1 (cbrt.f64 (pow.f64 (-.f64 d4 (+.f64 d1 d3)) 2))) (cbrt.f64 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d1 d2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d1 (sqrt.f64 (-.f64 d4 (+.f64 d1 d3)))) (sqrt.f64 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d1 d2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 d4 (+.f64 d1 d3)) (pow.f64 (cbrt.f64 d1) 2)) (cbrt.f64 d1) (*.f64 d1 d2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 d4 (+.f64 d1 d3)) (sqrt.f64 d1)) (sqrt.f64 d1) (*.f64 d1 d2))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 d4 (neg.f64 (+.f64 d1 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 d4 (*.f64 (neg.f64 (+.f64 d1 d3)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 d4 (+.f64 d1 d3)) (fma.f64 (neg.f64 (+.f64 d1 d3)) 1 (+.f64 d1 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 d4 (+.f64 d1 d3)) (fma.f64 (neg.f64 (cbrt.f64 (+.f64 d1 d3))) (pow.f64 (cbrt.f64 (+.f64 d1 d3)) 2) (+.f64 d1 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 d4 (+.f64 d1 d3)) (+.f64 (neg.f64 (+.f64 d1 d3)) (+.f64 d1 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (+.f64 d1 d3)) d4)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 d4 d1) (neg.f64 d3))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 d4 d1) (*.f64 -1 d3))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 d4 d1) (*.f64 (neg.f64 (pow.f64 (cbrt.f64 d3) 2)) (cbrt.f64 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 d4 d1) (*.f64 (neg.f64 (sqrt.f64 d3)) (sqrt.f64 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (-.f64 d4 (+.f64 d1 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (-.f64 d4 (+.f64 d1 d3)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (-.f64 d4 (+.f64 d1 d3))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (-.f64 d4 (+.f64 d1 d3))))) (log.f64 (sqrt.f64 (exp.f64 (-.f64 d4 (+.f64 d1 d3))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 d4 (+.f64 d1 d3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 d4 (+.f64 d1 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (-.f64 d4 (+.f64 d1 d3))) (cbrt.f64 (pow.f64 (-.f64 d4 (+.f64 d1 d3)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (-.f64 d4 (+.f64 d1 d3)) 2)) (cbrt.f64 (-.f64 d4 (+.f64 d1 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (-.f64 d4 (+.f64 d1 d3))) (sqrt.f64 (-.f64 d4 (+.f64 d1 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 d4 3) (pow.f64 (+.f64 d1 d3) 3)) (/.f64 1 (fma.f64 (+.f64 d1 d3) (+.f64 (+.f64 d4 d3) d1) (*.f64 d4 d4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 d4 d4) (pow.f64 (+.f64 d1 d3) 2)) (/.f64 1 (+.f64 (+.f64 d4 d3) d1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sqrt.f64 d4) (sqrt.f64 (+.f64 d1 d3))) (-.f64 (sqrt.f64 d4) (sqrt.f64 (+.f64 d1 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 (+.f64 d1 d3) (+.f64 (+.f64 d4 d3) d1) (*.f64 d4 d4)) (-.f64 (pow.f64 d4 3) (pow.f64 (+.f64 d1 d3) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (+.f64 d4 d3) d1) (-.f64 (*.f64 d4 d4) (pow.f64 (+.f64 d1 d3) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 d4 3) (pow.f64 (+.f64 d1 d3) 3)) (fma.f64 (+.f64 d1 d3) (+.f64 (+.f64 d4 d3) d1) (*.f64 d4 d4)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 d4 d4) (pow.f64 (+.f64 d1 d3) 2)) (+.f64 (+.f64 d4 d3) d1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 d4 3) (pow.f64 (+.f64 d1 d3) 3))) (neg.f64 (fma.f64 (+.f64 d1 d3) (+.f64 (+.f64 d4 d3) d1) (*.f64 d4 d4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (*.f64 d4 d4) (pow.f64 (+.f64 d1 d3) 2))) (neg.f64 (+.f64 (+.f64 d4 d3) d1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (-.f64 d4 d1) 3) (pow.f64 d3 3)) (+.f64 (pow.f64 (-.f64 d4 d1) 2) (fma.f64 d3 d3 (*.f64 (-.f64 d4 d1) d3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 d4 3) (pow.f64 (neg.f64 (+.f64 d1 d3)) 3)) (fma.f64 d4 d4 (-.f64 (pow.f64 (neg.f64 (+.f64 d1 d3)) 2) (*.f64 d4 (neg.f64 (+.f64 d1 d3))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (-.f64 d4 d1) 2) (*.f64 d3 d3)) (+.f64 (-.f64 d4 d1) d3))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 d4 d4) (pow.f64 (neg.f64 (+.f64 d1 d3)) 2)) (-.f64 d4 (neg.f64 (+.f64 d1 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 d4 (+.f64 d1 d3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 d4 (+.f64 d1 d3)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (-.f64 d4 (+.f64 d1 d3))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (-.f64 d4 (+.f64 d1 d3))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 d4 (+.f64 d1 d3)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 (+.f64 d1 d3) (+.f64 (+.f64 d4 d3) d1) (*.f64 d4 d4)) (-.f64 (pow.f64 d4 3) (pow.f64 (+.f64 d1 d3) 3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (+.f64 (+.f64 d4 d3) d1) (-.f64 (*.f64 d4 d4) (pow.f64 (+.f64 d1 d3) 2))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (-.f64 d4 (+.f64 d1 d3)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (-.f64 d4 (+.f64 d1 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (-.f64 d4 (+.f64 d1 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (expm1.f64 d4)) (exp.f64 (+.f64 d1 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (exp.f64 d4) (+.f64 1 (expm1.f64 (+.f64 d1 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (expm1.f64 d4)) (+.f64 1 (expm1.f64 (+.f64 d1 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (/.f64 (exp.f64 d4) (exp.f64 d1)) (exp.f64 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (exp.f64 (-.f64 d4 d1)) (+.f64 1 (expm1.f64 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (/.f64 (exp.f64 d4) (exp.f64 d1)) (+.f64 1 (expm1.f64 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 d4)) (exp.f64 (neg.f64 (+.f64 d1 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 d4) (/.f64 1 (exp.f64 (+.f64 d1 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 d4)) (/.f64 1 (exp.f64 (+.f64 d1 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (neg.f64 (+.f64 d1 d3))) (exp.f64 d4)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (/.f64 1 (exp.f64 (+.f64 d1 d3))) (exp.f64 d4)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (neg.f64 (+.f64 d1 d3))) (+.f64 1 (expm1.f64 d4))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (/.f64 1 (exp.f64 (+.f64 d1 d3))) (+.f64 1 (expm1.f64 d4))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (-.f64 d4 (+.f64 d1 d3)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (-.f64 d4 (+.f64 d1 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (-.f64 d4 (+.f64 d1 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (-.f64 d4 (+.f64 d1 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (-.f64 d4 (+.f64 d1 d3))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d4 1 (neg.f64 (+.f64 d1 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d4 1 (*.f64 (neg.f64 (+.f64 d1 d3)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 d4 (+.f64 d1 d3)) 1 (fma.f64 (neg.f64 (+.f64 d1 d3)) 1 (+.f64 d1 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 d4 (+.f64 d1 d3)) 1 (fma.f64 (neg.f64 (cbrt.f64 (+.f64 d1 d3))) (pow.f64 (cbrt.f64 (+.f64 d1 d3)) 2) (+.f64 d1 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 d4 (+.f64 d1 d3)) 1 (+.f64 (neg.f64 (+.f64 d1 d3)) (+.f64 d1 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 d4 (neg.f64 (+.f64 d1 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 d4 (*.f64 (neg.f64 (+.f64 d1 d3)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (-.f64 d4 (+.f64 d1 d3)) (fma.f64 (neg.f64 (+.f64 d1 d3)) 1 (+.f64 d1 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (-.f64 d4 (+.f64 d1 d3)) (fma.f64 (neg.f64 (cbrt.f64 (+.f64 d1 d3))) (pow.f64 (cbrt.f64 (+.f64 d1 d3)) 2) (+.f64 d1 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (-.f64 d4 (+.f64 d1 d3)) (+.f64 (neg.f64 (+.f64 d1 d3)) (+.f64 d1 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (neg.f64 (+.f64 d1 d3)) d4)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (-.f64 d4 d1) (neg.f64 d3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (-.f64 d4 d1) (*.f64 -1 d3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (-.f64 d4 d1) (*.f64 (neg.f64 (pow.f64 (cbrt.f64 d3) 2)) (cbrt.f64 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (-.f64 d4 d1) (*.f64 (neg.f64 (sqrt.f64 d3)) (sqrt.f64 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (+.f64 d1 d3)) 2) (neg.f64 (cbrt.f64 (+.f64 d1 d3))) d4)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (-.f64 d4 (+.f64 d1 d3))) (cbrt.f64 (pow.f64 (-.f64 d4 (+.f64 d1 d3)) 2)) (fma.f64 (neg.f64 (+.f64 d1 d3)) 1 (+.f64 d1 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (-.f64 d4 (+.f64 d1 d3))) (cbrt.f64 (pow.f64 (-.f64 d4 (+.f64 d1 d3)) 2)) (fma.f64 (neg.f64 (cbrt.f64 (+.f64 d1 d3))) (pow.f64 (cbrt.f64 (+.f64 d1 d3)) 2) (+.f64 d1 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (-.f64 d4 (+.f64 d1 d3))) (cbrt.f64 (pow.f64 (-.f64 d4 (+.f64 d1 d3)) 2)) (+.f64 (neg.f64 (+.f64 d1 d3)) (+.f64 d1 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (-.f64 d4 (+.f64 d1 d3)) 2)) (cbrt.f64 (-.f64 d4 (+.f64 d1 d3))) (fma.f64 (neg.f64 (+.f64 d1 d3)) 1 (+.f64 d1 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (-.f64 d4 (+.f64 d1 d3)) 2)) (cbrt.f64 (-.f64 d4 (+.f64 d1 d3))) (fma.f64 (neg.f64 (cbrt.f64 (+.f64 d1 d3))) (pow.f64 (cbrt.f64 (+.f64 d1 d3)) 2) (+.f64 d1 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (-.f64 d4 (+.f64 d1 d3)) 2)) (cbrt.f64 (-.f64 d4 (+.f64 d1 d3))) (+.f64 (neg.f64 (+.f64 d1 d3)) (+.f64 d1 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 d4) (cbrt.f64 (*.f64 d4 d4)) (neg.f64 (+.f64 d1 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 d4) (cbrt.f64 (*.f64 d4 d4)) (*.f64 (neg.f64 (+.f64 d1 d3)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 d4 d4)) (cbrt.f64 d4) (neg.f64 (+.f64 d1 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 d4 d4)) (cbrt.f64 d4) (*.f64 (neg.f64 (+.f64 d1 d3)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 d1 d3)) (neg.f64 (sqrt.f64 (+.f64 d1 d3))) d4)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 d4 (+.f64 d1 d3))) (sqrt.f64 (-.f64 d4 (+.f64 d1 d3))) (fma.f64 (neg.f64 (+.f64 d1 d3)) 1 (+.f64 d1 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 d4 (+.f64 d1 d3))) (sqrt.f64 (-.f64 d4 (+.f64 d1 d3))) (fma.f64 (neg.f64 (cbrt.f64 (+.f64 d1 d3))) (pow.f64 (cbrt.f64 (+.f64 d1 d3)) 2) (+.f64 d1 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 d4 (+.f64 d1 d3))) (sqrt.f64 (-.f64 d4 (+.f64 d1 d3))) (+.f64 (neg.f64 (+.f64 d1 d3)) (+.f64 d1 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 d4) (sqrt.f64 d4) (neg.f64 (+.f64 d1 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 d4) (sqrt.f64 d4) (*.f64 (neg.f64 (+.f64 d1 d3)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 d4 3) (pow.f64 (+.f64 d1 d3) 3)) (/.f64 1 (fma.f64 (+.f64 d1 d3) (+.f64 (+.f64 d4 d3) d1) (*.f64 d4 d4))) (fma.f64 (neg.f64 (+.f64 d1 d3)) 1 (+.f64 d1 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 d4 3) (pow.f64 (+.f64 d1 d3) 3)) (/.f64 1 (fma.f64 (+.f64 d1 d3) (+.f64 (+.f64 d4 d3) d1) (*.f64 d4 d4))) (fma.f64 (neg.f64 (cbrt.f64 (+.f64 d1 d3))) (pow.f64 (cbrt.f64 (+.f64 d1 d3)) 2) (+.f64 d1 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 d4 3) (pow.f64 (+.f64 d1 d3) 3)) (/.f64 1 (fma.f64 (+.f64 d1 d3) (+.f64 (+.f64 d4 d3) d1) (*.f64 d4 d4))) (+.f64 (neg.f64 (+.f64 d1 d3)) (+.f64 d1 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 d4 d4) (pow.f64 (+.f64 d1 d3) 2)) (/.f64 1 (+.f64 (+.f64 d4 d3) d1)) (fma.f64 (neg.f64 (+.f64 d1 d3)) 1 (+.f64 d1 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 d4 d4) (pow.f64 (+.f64 d1 d3) 2)) (/.f64 1 (+.f64 (+.f64 d4 d3) d1)) (fma.f64 (neg.f64 (cbrt.f64 (+.f64 d1 d3))) (pow.f64 (cbrt.f64 (+.f64 d1 d3)) 2) (+.f64 d1 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 d4 d4) (pow.f64 (+.f64 d1 d3) 2)) (/.f64 1 (+.f64 (+.f64 d4 d3) d1)) (+.f64 (neg.f64 (+.f64 d1 d3)) (+.f64 d1 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 d4 d1)) 2) (cbrt.f64 (-.f64 d4 d1)) (neg.f64 d3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 d4 d1)) 2) (cbrt.f64 (-.f64 d4 d1)) (*.f64 -1 d3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 d4 d1)) 2) (cbrt.f64 (-.f64 d4 d1)) (*.f64 (neg.f64 (pow.f64 (cbrt.f64 d3) 2)) (cbrt.f64 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 d4 d1)) 2) (cbrt.f64 (-.f64 d4 d1)) (*.f64 (neg.f64 (sqrt.f64 d3)) (sqrt.f64 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (neg.f64 (+.f64 d1 d3))) 2) (cbrt.f64 (neg.f64 (+.f64 d1 d3))) d4)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 d4 d1)) (sqrt.f64 (-.f64 d4 d1)) (neg.f64 d3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 d4 d1)) (sqrt.f64 (-.f64 d4 d1)) (*.f64 -1 d3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 d4 d1)) (sqrt.f64 (-.f64 d4 d1)) (*.f64 (neg.f64 (pow.f64 (cbrt.f64 d3) 2)) (cbrt.f64 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 d4 d1)) (sqrt.f64 (-.f64 d4 d1)) (*.f64 (neg.f64 (sqrt.f64 d3)) (sqrt.f64 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (neg.f64 (+.f64 d1 d3))) (sqrt.f64 (neg.f64 (+.f64 d1 d3))) d4)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (sqrt.f64 (+.f64 d1 d3))) (sqrt.f64 (+.f64 d1 d3)) d4)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1 (+.f64 d1 d3) d4)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 d4) (sqrt.f64 (+.f64 d1 d3))) (-.f64 (sqrt.f64 d4) (sqrt.f64 (+.f64 d1 d3))) (fma.f64 (neg.f64 (+.f64 d1 d3)) 1 (+.f64 d1 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 d4) (sqrt.f64 (+.f64 d1 d3))) (-.f64 (sqrt.f64 d4) (sqrt.f64 (+.f64 d1 d3))) (fma.f64 (neg.f64 (cbrt.f64 (+.f64 d1 d3))) (pow.f64 (cbrt.f64 (+.f64 d1 d3)) 2) (+.f64 d1 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 d4) (sqrt.f64 (+.f64 d1 d3))) (-.f64 (sqrt.f64 d4) (sqrt.f64 (+.f64 d1 d3))) (+.f64 (neg.f64 (+.f64 d1 d3)) (+.f64 d1 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 d4) (sqrt.f64 d1)) (-.f64 (sqrt.f64 d4) (sqrt.f64 d1)) (neg.f64 d3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 d4) (sqrt.f64 d1)) (-.f64 (sqrt.f64 d4) (sqrt.f64 d1)) (*.f64 -1 d3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 d4) (sqrt.f64 d1)) (-.f64 (sqrt.f64 d4) (sqrt.f64 d1)) (*.f64 (neg.f64 (pow.f64 (cbrt.f64 d3) 2)) (cbrt.f64 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 d4) (sqrt.f64 d1)) (-.f64 (sqrt.f64 d4) (sqrt.f64 d1)) (*.f64 (neg.f64 (sqrt.f64 d3)) (sqrt.f64 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (pow.f64 (cbrt.f64 (+.f64 d1 d3)) 2)) (cbrt.f64 (+.f64 d1 d3)) d4)))))

simplify76.0ms (0.8%)

Algorithm
egg-herbie
Rules
510×associate-*l*_binary64
412×fma-neg_binary64
401×unsub-neg_binary64
395×distribute-rgt-neg-in_binary64
389×associate-*r*_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
039909
1101873
2198765
3542765
41780765
55685765
Stop Event
node limit
Counts
263 → 212
Calls
Call 1
Inputs
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(*.f64 -1 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(*.f64 -1 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 d3)))
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
(*.f64 (-.f64 d2 (+.f64 d1 d3)) d1)
(+.f64 (*.f64 (-.f64 d2 (+.f64 d1 d3)) d1) (*.f64 d1 d4))
(+.f64 (*.f64 (-.f64 d2 (+.f64 d1 d3)) d1) (*.f64 d1 d4))
(+.f64 (*.f64 (-.f64 d2 (+.f64 d1 d3)) d1) (*.f64 d1 d4))
(*.f64 d1 d4)
(+.f64 (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))) (*.f64 d1 d4))
(+.f64 (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))) (*.f64 d1 d4))
(+.f64 (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))) (*.f64 d1 d4))
(*.f64 d1 d4)
(+.f64 (*.f64 (-.f64 d2 (+.f64 d1 d3)) d1) (*.f64 d1 d4))
(+.f64 (*.f64 (-.f64 d2 (+.f64 d1 d3)) d1) (*.f64 d1 d4))
(+.f64 (*.f64 (-.f64 d2 (+.f64 d1 d3)) d1) (*.f64 d1 d4))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)))
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)))
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)))
(*.f64 -1 (+.f64 d1 d3))
(+.f64 (*.f64 -1 (+.f64 d1 d3)) d4)
(+.f64 (*.f64 -1 (+.f64 d1 d3)) d4)
(+.f64 (*.f64 -1 (+.f64 d1 d3)) d4)
d4
(+.f64 (*.f64 -1 (+.f64 d1 d3)) d4)
(+.f64 (*.f64 -1 (+.f64 d1 d3)) d4)
(+.f64 (*.f64 -1 (+.f64 d1 d3)) d4)
d4
(+.f64 (*.f64 -1 (+.f64 d1 d3)) d4)
(+.f64 (*.f64 -1 (+.f64 d1 d3)) d4)
(+.f64 (*.f64 -1 (+.f64 d1 d3)) d4)
(-.f64 d4 d3)
(-.f64 (+.f64 d4 (*.f64 -1 d1)) d3)
(-.f64 (+.f64 d4 (*.f64 -1 d1)) d3)
(-.f64 (+.f64 d4 (*.f64 -1 d1)) d3)
(*.f64 -1 d1)
(-.f64 (+.f64 d4 (*.f64 -1 d1)) d3)
(-.f64 (+.f64 d4 (*.f64 -1 d1)) d3)
(-.f64 (+.f64 d4 (*.f64 -1 d1)) d3)
(*.f64 -1 d1)
(-.f64 (+.f64 d4 (*.f64 -1 d1)) d3)
(-.f64 (+.f64 d4 (*.f64 -1 d1)) d3)
(-.f64 (+.f64 d4 (*.f64 -1 d1)) d3)
(-.f64 d4 d1)
(-.f64 (+.f64 (*.f64 -1 d3) d4) d1)
(-.f64 (+.f64 (*.f64 -1 d3) d4) d1)
(-.f64 (+.f64 (*.f64 -1 d3) d4) d1)
(*.f64 -1 d3)
(-.f64 (+.f64 (*.f64 -1 d3) d4) d1)
(-.f64 (+.f64 (*.f64 -1 d3) d4) d1)
(-.f64 (+.f64 (*.f64 -1 d3) d4) d1)
(*.f64 -1 d3)
(-.f64 (+.f64 (*.f64 -1 d3) d4) d1)
(-.f64 (+.f64 (*.f64 -1 d3) d4) d1)
(-.f64 (+.f64 (*.f64 -1 d3) d4) d1)
Outputs
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 d3) (-.f64 d1 d2)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 d3) (-.f64 d1 d2)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 d3) (-.f64 d1 d2)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(*.f64 -1 (pow.f64 d1 2))
(neg.f64 (*.f64 d1 d1))
(*.f64 d1 (neg.f64 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 d3) (-.f64 d1 d2)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 d3) (-.f64 d1 d2)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 d3) (-.f64 d1 d2)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(*.f64 -1 (pow.f64 d1 2))
(neg.f64 (*.f64 d1 d1))
(*.f64 d1 (neg.f64 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 d3) (-.f64 d1 d2)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 d3) (-.f64 d1 d2)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 d3) (-.f64 d1 d2)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(*.f64 d1 (-.f64 d4 (+.f64 d1 d3)))
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 d3) (-.f64 d1 d2)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 d3) (-.f64 d1 d2)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 d3) (-.f64 d1 d2)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 d3) (-.f64 d1 d2)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 d3) (-.f64 d1 d2)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 d3) (-.f64 d1 d2)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 d3) (-.f64 d1 d2)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 d3) (-.f64 d1 d2)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 d3) (-.f64 d1 d2)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(*.f64 (-.f64 d2 (+.f64 d1 d3)) d1)
(*.f64 d1 (-.f64 d2 (+.f64 d1 d3)))
(+.f64 (*.f64 (-.f64 d2 (+.f64 d1 d3)) d1) (*.f64 d1 d4))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 d3) (-.f64 d1 d2)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(+.f64 (*.f64 (-.f64 d2 (+.f64 d1 d3)) d1) (*.f64 d1 d4))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 d3) (-.f64 d1 d2)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(+.f64 (*.f64 (-.f64 d2 (+.f64 d1 d3)) d1) (*.f64 d1 d4))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 d3) (-.f64 d1 d2)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(*.f64 d1 d4)
(+.f64 (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))) (*.f64 d1 d4))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 d3) (-.f64 d1 d2)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(+.f64 (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))) (*.f64 d1 d4))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 d3) (-.f64 d1 d2)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(+.f64 (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))) (*.f64 d1 d4))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 d3) (-.f64 d1 d2)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(*.f64 d1 d4)
(+.f64 (*.f64 (-.f64 d2 (+.f64 d1 d3)) d1) (*.f64 d1 d4))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 d3) (-.f64 d1 d2)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(+.f64 (*.f64 (-.f64 d2 (+.f64 d1 d3)) d1) (*.f64 d1 d4))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 d3) (-.f64 d1 d2)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(+.f64 (*.f64 (-.f64 d2 (+.f64 d1 d3)) d1) (*.f64 d1 d4))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 d3) (-.f64 d1 d2)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d1))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 d3) (-.f64 d1 d2)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 d3) (-.f64 d1 d2)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 d3) (-.f64 d1 d2)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(*.f64 -1 (*.f64 d1 d3))
(*.f64 (neg.f64 d1) d3)
(*.f64 d3 (neg.f64 d1))
(*.f64 d1 (neg.f64 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 d3) (-.f64 d1 d2)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 d3) (-.f64 d1 d2)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 d3) (-.f64 d1 d2)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(*.f64 -1 (*.f64 d1 d3))
(*.f64 (neg.f64 d1) d3)
(*.f64 d3 (neg.f64 d1))
(*.f64 d1 (neg.f64 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 d3) (-.f64 d1 d2)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 d3) (-.f64 d1 d2)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 d3) (-.f64 d1 d2)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(*.f64 -1 (+.f64 d1 d3))
(neg.f64 (+.f64 d1 d3))
(-.f64 (neg.f64 d1) d3)
(-.f64 (neg.f64 d3) d1)
(+.f64 (*.f64 -1 (+.f64 d1 d3)) d4)
(-.f64 d4 (+.f64 d1 d3))
(+.f64 (*.f64 -1 (+.f64 d1 d3)) d4)
(-.f64 d4 (+.f64 d1 d3))
(+.f64 (*.f64 -1 (+.f64 d1 d3)) d4)
(-.f64 d4 (+.f64 d1 d3))
d4
(+.f64 (*.f64 -1 (+.f64 d1 d3)) d4)
(-.f64 d4 (+.f64 d1 d3))
(+.f64 (*.f64 -1 (+.f64 d1 d3)) d4)
(-.f64 d4 (+.f64 d1 d3))
(+.f64 (*.f64 -1 (+.f64 d1 d3)) d4)
(-.f64 d4 (+.f64 d1 d3))
d4
(+.f64 (*.f64 -1 (+.f64 d1 d3)) d4)
(-.f64 d4 (+.f64 d1 d3))
(+.f64 (*.f64 -1 (+.f64 d1 d3)) d4)
(-.f64 d4 (+.f64 d1 d3))
(+.f64 (*.f64 -1 (+.f64 d1 d3)) d4)
(-.f64 d4 (+.f64 d1 d3))
(-.f64 d4 d3)
(-.f64 (+.f64 d4 (*.f64 -1 d1)) d3)
(-.f64 d4 (+.f64 d1 d3))
(-.f64 (+.f64 d4 (*.f64 -1 d1)) d3)
(-.f64 d4 (+.f64 d1 d3))
(-.f64 (+.f64 d4 (*.f64 -1 d1)) d3)
(-.f64 d4 (+.f64 d1 d3))
(*.f64 -1 d1)
(neg.f64 d1)
(-.f64 (+.f64 d4 (*.f64 -1 d1)) d3)
(-.f64 d4 (+.f64 d1 d3))
(-.f64 (+.f64 d4 (*.f64 -1 d1)) d3)
(-.f64 d4 (+.f64 d1 d3))
(-.f64 (+.f64 d4 (*.f64 -1 d1)) d3)
(-.f64 d4 (+.f64 d1 d3))
(*.f64 -1 d1)
(neg.f64 d1)
(-.f64 (+.f64 d4 (*.f64 -1 d1)) d3)
(-.f64 d4 (+.f64 d1 d3))
(-.f64 (+.f64 d4 (*.f64 -1 d1)) d3)
(-.f64 d4 (+.f64 d1 d3))
(-.f64 (+.f64 d4 (*.f64 -1 d1)) d3)
(-.f64 d4 (+.f64 d1 d3))
(-.f64 d4 d1)
(-.f64 (+.f64 (*.f64 -1 d3) d4) d1)
(-.f64 d4 (+.f64 d1 d3))
(-.f64 (+.f64 (*.f64 -1 d3) d4) d1)
(-.f64 d4 (+.f64 d1 d3))
(-.f64 (+.f64 (*.f64 -1 d3) d4) d1)
(-.f64 d4 (+.f64 d1 d3))
(*.f64 -1 d3)
(neg.f64 d3)
(-.f64 (+.f64 (*.f64 -1 d3) d4) d1)
(-.f64 d4 (+.f64 d1 d3))
(-.f64 (+.f64 (*.f64 -1 d3) d4) d1)
(-.f64 d4 (+.f64 d1 d3))
(-.f64 (+.f64 (*.f64 -1 d3) d4) d1)
(-.f64 d4 (+.f64 d1 d3))
(*.f64 -1 d3)
(neg.f64 d3)
(-.f64 (+.f64 (*.f64 -1 d3) d4) d1)
(-.f64 d4 (+.f64 d1 d3))
(-.f64 (+.f64 (*.f64 -1 d3) d4) d1)
(-.f64 d4 (+.f64 d1 d3))
(-.f64 (+.f64 (*.f64 -1 d3) d4) d1)
(-.f64 d4 (+.f64 d1 d3))

localize15.0ms (0.2%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1))
0.0b
(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1))
0.0b
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
Compiler

Compiled 53 to 11 computations (79.2% saved)

series28.0ms (0.3%)

Counts
3 → 132
Calls

33 calls:

TimeVariablePointExpression
12.0ms
d1
@0
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
2.0ms
d1
@-inf
(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1))
1.0ms
d1
@inf
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
1.0ms
d1
@-inf
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
1.0ms
d1
@inf
(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1))

rewrite112.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
780×log-prod_binary64
712×fma-neg_binary64
265×expm1-udef_binary64
265×log1p-udef_binary64
216×log-pow_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01239
128831
2455531
Stop Event
node limit
Counts
3 → 285
Calls
Call 1
Inputs
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1))
(+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 d2) (*.f64 d1 (neg.f64 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 d2) (*.f64 (*.f64 d1 (neg.f64 d3)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 d2) (+.f64 (*.f64 d1 (neg.f64 d3)) (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 (-.f64 d2 d3)) (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 (-.f64 d2 d3)) (fma.f64 (*.f64 d1 (neg.f64 d3)) 1 (*.f64 d1 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 (-.f64 d2 d3)) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 d1 d3))) (pow.f64 (cbrt.f64 (*.f64 d1 d3)) 2) (*.f64 d1 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 (-.f64 d2 d3)) (*.f64 (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 (-.f64 d2 d3)) (+.f64 (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3)) (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 d2 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 d1 (-.f64 d2 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 d1) (-.f64 d2 d3))) (cbrt.f64 (pow.f64 (exp.f64 d1) (-.f64 d2 d3))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 d1) (-.f64 d2 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 d1) (-.f64 d2 d3)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 d1) (-.f64 d2 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 d1 (-.f64 d2 d3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (-.f64 d2 d3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 d1 (-.f64 d2 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 d1) 2) (*.f64 (cbrt.f64 d1) (-.f64 d2 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 d1 (-.f64 d2 d3))) (pow.f64 (cbrt.f64 (*.f64 d1 (-.f64 d2 d3))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 d1 (-.f64 d2 d3))) 2) (cbrt.f64 (*.f64 d1 (-.f64 d2 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 d1) (*.f64 (sqrt.f64 d1) (-.f64 d2 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 d1 (-.f64 d2 d3))) (sqrt.f64 (*.f64 d1 (-.f64 d2 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (*.f64 d1 d2) 3) (pow.f64 (*.f64 d1 d3) 3)) (/.f64 1 (+.f64 (pow.f64 (*.f64 d1 d2) 2) (*.f64 (*.f64 d1 d3) (*.f64 d1 (+.f64 d2 d3))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (*.f64 d1 d2) 2) (pow.f64 (*.f64 d1 d3) 2)) (/.f64 1 (*.f64 d1 (+.f64 d2 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 d2 d3) d1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sqrt.f64 (*.f64 d1 d2)) (sqrt.f64 (*.f64 d1 d3))) (-.f64 (sqrt.f64 (*.f64 d1 d2)) (sqrt.f64 (*.f64 d1 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 (*.f64 d1 d2) 2) (*.f64 (*.f64 d1 d3) (*.f64 d1 (+.f64 d2 d3)))) (-.f64 (pow.f64 (*.f64 d1 d2) 3) (pow.f64 (*.f64 d1 d3) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (*.f64 d1 (+.f64 d2 d3)) (-.f64 (pow.f64 (*.f64 d1 d2) 2) (pow.f64 (*.f64 d1 d3) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 d1 d2) 3) (pow.f64 (*.f64 d1 d3) 3)) (+.f64 (pow.f64 (*.f64 d1 d2) 2) (*.f64 (*.f64 d1 d3) (*.f64 d1 (+.f64 d2 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 d1 d2) 2) (pow.f64 (*.f64 d1 d3) 2)) (*.f64 d1 (+.f64 d2 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 d1 d2) 3) (pow.f64 (*.f64 d1 d3) 3))) (neg.f64 (+.f64 (pow.f64 (*.f64 d1 d2) 2) (*.f64 (*.f64 d1 d3) (*.f64 d1 (+.f64 d2 d3))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 d1 d2) 2) (pow.f64 (*.f64 d1 d3) 2))) (neg.f64 (*.f64 d1 (+.f64 d2 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 d1 d2) 3) (pow.f64 (*.f64 d1 (neg.f64 d3)) 3)) (+.f64 (pow.f64 (*.f64 d1 d2) 2) (-.f64 (*.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (neg.f64 d3))) (*.f64 (*.f64 d1 d2) (*.f64 d1 (neg.f64 d3))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 d1 (-.f64 d2 d3)) 3) (pow.f64 (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3)) 3)) (+.f64 (pow.f64 (*.f64 d1 (-.f64 d2 d3)) 2) (-.f64 (*.f64 (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3)) (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3))) (*.f64 (*.f64 d1 (-.f64 d2 d3)) (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 d1 d2) 2) (*.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (neg.f64 d3)))) (-.f64 (*.f64 d1 d2) (*.f64 d1 (neg.f64 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 d1 (-.f64 d2 d3)) 2) (*.f64 (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3)) (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3)))) (-.f64 (*.f64 d1 (-.f64 d2 d3)) (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 d1 (-.f64 d2 d3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 d1 (-.f64 d2 d3))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 d1 (-.f64 d2 d3))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 d1 (-.f64 d2 d3)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 d1 (-.f64 d2 d3)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 d1) (-.f64 d2 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 d1 (-.f64 d2 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (expm1.f64 (*.f64 d1 d2))) (pow.f64 (exp.f64 d3) d1)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (pow.f64 (exp.f64 d1) d2) (+.f64 1 (expm1.f64 (*.f64 d1 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (expm1.f64 (*.f64 d1 d2))) (+.f64 1 (expm1.f64 (*.f64 d1 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 d1 d2))) (exp.f64 (*.f64 d1 (neg.f64 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 d1) d2) (/.f64 1 (pow.f64 (exp.f64 d3) d1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 d1 d2))) (/.f64 1 (pow.f64 (exp.f64 d3) d1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 d1 (-.f64 d2 d3)))) (exp.f64 (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3))) (pow.f64 (exp.f64 d1) (-.f64 d2 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3))) (+.f64 1 (expm1.f64 (*.f64 d1 (-.f64 d2 d3))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 d1 (neg.f64 d3))) (pow.f64 (exp.f64 d1) d2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (/.f64 1 (pow.f64 (exp.f64 d3) d1)) (pow.f64 (exp.f64 d1) d2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 d1 (neg.f64 d3))) (+.f64 1 (expm1.f64 (*.f64 d1 d2)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (/.f64 1 (pow.f64 (exp.f64 d3) d1)) (+.f64 1 (expm1.f64 (*.f64 d1 d2)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 d1 (-.f64 d2 d3)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 d1 (-.f64 d2 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 d1 (-.f64 d2 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 d1 (-.f64 d2 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 d1 (-.f64 d2 d3))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d1 d2 (*.f64 d1 (neg.f64 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d1 d2 (neg.f64 (-.f64 (*.f64 d1 d3) (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d1 (-.f64 d2 d3) (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d2 d1 (*.f64 d1 (neg.f64 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d2 d1 (neg.f64 (-.f64 (*.f64 d1 d3) (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d1 d2) 1 (*.f64 d1 (neg.f64 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d1 d2) 1 (neg.f64 (-.f64 (*.f64 d1 d3) (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 d1 d2) (*.f64 d1 (neg.f64 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 d1 d2) (neg.f64 (-.f64 (*.f64 d1 d3) (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 d1 (-.f64 d2 d3)) (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 d1) 2) (*.f64 (cbrt.f64 d1) d2) (*.f64 d1 (neg.f64 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 d1) 2) (*.f64 (cbrt.f64 d1) d2) (neg.f64 (-.f64 (*.f64 d1 d3) (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 d2) 2) (*.f64 (cbrt.f64 d2) d1) (*.f64 d1 (neg.f64 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 d2) 2) (*.f64 (cbrt.f64 d2) d1) (neg.f64 (-.f64 (*.f64 d1 d3) (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 d1 (-.f64 d2 d3))) 2) (cbrt.f64 (*.f64 d1 (-.f64 d2 d3))) (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 d1 d2)) (pow.f64 (cbrt.f64 (*.f64 d1 d2)) 2) (*.f64 d1 (neg.f64 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 d1 d2)) (pow.f64 (cbrt.f64 (*.f64 d1 d2)) 2) (neg.f64 (-.f64 (*.f64 d1 d3) (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 d1 d2)) 2) (cbrt.f64 (*.f64 d1 d2)) (*.f64 d1 (neg.f64 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 d1 d2)) 2) (cbrt.f64 (*.f64 d1 d2)) (neg.f64 (-.f64 (*.f64 d1 d3) (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 d1) (*.f64 (sqrt.f64 d1) d2) (*.f64 d1 (neg.f64 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 d1) (*.f64 (sqrt.f64 d1) d2) (neg.f64 (-.f64 (*.f64 d1 d3) (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 d2) (*.f64 (sqrt.f64 d2) d1) (*.f64 d1 (neg.f64 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 d2) (*.f64 (sqrt.f64 d2) d1) (neg.f64 (-.f64 (*.f64 d1 d3) (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 d1 (-.f64 d2 d3))) (sqrt.f64 (*.f64 d1 (-.f64 d2 d3))) (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 d1 d2)) (sqrt.f64 (*.f64 d1 d2)) (*.f64 d1 (neg.f64 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 d1 d2)) (sqrt.f64 (*.f64 d1 d2)) (neg.f64 (-.f64 (*.f64 d1 d3) (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d1 (pow.f64 (cbrt.f64 d2) 2)) (cbrt.f64 d2) (*.f64 d1 (neg.f64 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d1 (pow.f64 (cbrt.f64 d2) 2)) (cbrt.f64 d2) (neg.f64 (-.f64 (*.f64 d1 d3) (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d1 (sqrt.f64 d2)) (sqrt.f64 d2) (*.f64 d1 (neg.f64 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d1 (sqrt.f64 d2)) (sqrt.f64 d2) (neg.f64 (-.f64 (*.f64 d1 d3) (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d2 (pow.f64 (cbrt.f64 d1) 2)) (cbrt.f64 d1) (*.f64 d1 (neg.f64 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d2 (pow.f64 (cbrt.f64 d1) 2)) (cbrt.f64 d1) (neg.f64 (-.f64 (*.f64 d1 d3) (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d2 (sqrt.f64 d1)) (sqrt.f64 d1) (*.f64 d1 (neg.f64 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d2 (sqrt.f64 d1)) (sqrt.f64 d1) (neg.f64 (-.f64 (*.f64 d1 d3) (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3)))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 d2) (+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (-.f64 d4 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 (-.f64 d2 d3)) (*.f64 d1 (-.f64 d4 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 (-.f64 d2 d3)) (*.f64 (*.f64 d1 (-.f64 d4 d1)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 (-.f64 d2 d3)) (+.f64 (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 d4 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 d4) (fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (neg.f64 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 (-.f64 d2 d3)) (*.f64 d1 (neg.f64 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) (*.f64 d1 (neg.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) (*.f64 (*.f64 d1 (neg.f64 d1)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 d4 d1))) (fma.f64 (neg.f64 d1) d1 (*.f64 d1 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 d4 d1))) (fma.f64 (*.f64 d1 (neg.f64 d1)) 1 (*.f64 d1 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 d4 d1))) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 d1) 2)) (cbrt.f64 (pow.f64 d1 4)) (*.f64 d1 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 (neg.f64 d1)) (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 (-.f64 d4 d1)) (*.f64 d1 (-.f64 d2 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 d4 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 d4 d1))))) (cbrt.f64 (exp.f64 (fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 d4 d1))))))) (log.f64 (cbrt.f64 (exp.f64 (fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 d4 d1)))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 d4 d1)))))) (log.f64 (sqrt.f64 (exp.f64 (fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 d4 d1)))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 d4 d1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 d4 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 d4 d1)))) (cbrt.f64 (pow.f64 (fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 d4 d1))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 d4 d1))) 2)) (cbrt.f64 (fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 d4 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 d4 d1)))) (sqrt.f64 (fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 d4 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 3) (pow.f64 d1 6)) (/.f64 1 (+.f64 (+.f64 (pow.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 2) (pow.f64 d1 4)) (*.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) (*.f64 d1 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 2) (pow.f64 d1 4)) (/.f64 1 (+.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sqrt.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))) d1) (-.f64 (sqrt.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))) d1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (+.f64 (pow.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 2) (pow.f64 d1 4)) (*.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) (*.f64 d1 d1))) (-.f64 (pow.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 3) (pow.f64 d1 6))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) (*.f64 d1 d1)) (-.f64 (pow.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 2) (pow.f64 d1 4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 3) (pow.f64 d1 6)) (+.f64 (+.f64 (pow.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 2) (pow.f64 d1 4)) (*.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 2) (pow.f64 d1 4)) (+.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) (*.f64 d1 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 3) (pow.f64 d1 6))) (neg.f64 (+.f64 (+.f64 (pow.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 2) (pow.f64 d1 4)) (*.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) (*.f64 d1 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 2) (pow.f64 d1 4))) (neg.f64 (+.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 d1 (-.f64 d2 d3)) 3) (pow.f64 (*.f64 d1 (-.f64 d4 d1)) 3)) (+.f64 (pow.f64 (*.f64 d1 (-.f64 d2 d3)) 2) (-.f64 (*.f64 (*.f64 d1 (-.f64 d4 d1)) (*.f64 d1 (-.f64 d4 d1))) (*.f64 (*.f64 d1 (-.f64 d2 d3)) (*.f64 d1 (-.f64 d4 d1))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 3) (pow.f64 (*.f64 d1 (neg.f64 d1)) 3)) (+.f64 (pow.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 2) (-.f64 (*.f64 (*.f64 d1 (neg.f64 d1)) (*.f64 d1 (neg.f64 d1))) (*.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) (*.f64 d1 (neg.f64 d1))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 d1 (-.f64 d2 d3)) 2) (*.f64 (*.f64 d1 (-.f64 d4 d1)) (*.f64 d1 (-.f64 d4 d1)))) (-.f64 (*.f64 d1 (-.f64 d2 d3)) (*.f64 d1 (-.f64 d4 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 2) (*.f64 (*.f64 d1 (neg.f64 d1)) (*.f64 d1 (neg.f64 d1)))) (-.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) (*.f64 d1 (neg.f64 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 d4 d1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 d4 d1))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 d4 d1)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 d4 d1)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 d4 d1))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 d4 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 d4 d1))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (expm1.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))))) (pow.f64 (exp.f64 d1) d1)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (exp.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))) (+.f64 1 (expm1.f64 (*.f64 d1 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (expm1.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))))) (+.f64 1 (expm1.f64 (*.f64 d1 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 d1 (-.f64 d2 d3)))) (exp.f64 (*.f64 d1 (-.f64 d4 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 d1) (-.f64 d2 d3)) (/.f64 (pow.f64 (exp.f64 d4) d1) (pow.f64 (exp.f64 d1) d1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 d1 (-.f64 d2 d3)))) (/.f64 (pow.f64 (exp.f64 d4) d1) (pow.f64 (exp.f64 d1) d1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))))) (exp.f64 (*.f64 d1 (neg.f64 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))) (/.f64 1 (pow.f64 (exp.f64 d1) d1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))))) (/.f64 1 (pow.f64 (exp.f64 d1) d1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 d1 (neg.f64 d1))) (exp.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (/.f64 1 (pow.f64 (exp.f64 d1) d1)) (exp.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 d1 (neg.f64 d1))) (+.f64 1 (expm1.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (/.f64 1 (pow.f64 (exp.f64 d1) d1)) (+.f64 1 (expm1.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 d1 (-.f64 d4 d1))) (pow.f64 (exp.f64 d1) (-.f64 d2 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (/.f64 (pow.f64 (exp.f64 d4) d1) (pow.f64 (exp.f64 d1) d1)) (pow.f64 (exp.f64 d1) (-.f64 d2 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 d1 (-.f64 d4 d1))) (+.f64 1 (expm1.f64 (*.f64 d1 (-.f64 d2 d3))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (/.f64 (pow.f64 (exp.f64 d4) d1) (pow.f64 (exp.f64 d1) d1)) (+.f64 1 (expm1.f64 (*.f64 d1 (-.f64 d2 d3))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 d4 d1))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 d4 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 d4 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 d4 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 d4 d1)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d1 d2 (neg.f64 (+.f64 (*.f64 d1 (-.f64 d3 d4)) (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d1 d2 (neg.f64 (-.f64 (*.f64 d1 d3) (*.f64 d1 (-.f64 d4 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d1 d2 (neg.f64 (-.f64 (*.f64 d1 (-.f64 d3 d4)) (*.f64 d1 (neg.f64 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 d4 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d1 (+.f64 (-.f64 d2 d3) d4) (*.f64 d1 (neg.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d1 (+.f64 d4 (-.f64 d2 d3)) (*.f64 d1 (neg.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d2 d1 (neg.f64 (+.f64 (*.f64 d1 (-.f64 d3 d4)) (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d2 d1 (neg.f64 (-.f64 (*.f64 d1 d3) (*.f64 d1 (-.f64 d4 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d2 d1 (neg.f64 (-.f64 (*.f64 d1 (-.f64 d3 d4)) (*.f64 d1 (neg.f64 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d1 d2) 1 (neg.f64 (+.f64 (*.f64 d1 (-.f64 d3 d4)) (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d1 d2) 1 (neg.f64 (-.f64 (*.f64 d1 d3) (*.f64 d1 (-.f64 d4 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d1 d2) 1 (neg.f64 (-.f64 (*.f64 d1 (-.f64 d3 d4)) (*.f64 d1 (neg.f64 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 1 (*.f64 d1 (neg.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 d1 d2) (neg.f64 (+.f64 (*.f64 d1 (-.f64 d3 d4)) (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 d1 d2) (neg.f64 (-.f64 (*.f64 d1 d3) (*.f64 d1 (-.f64 d4 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 d1 d2) (neg.f64 (-.f64 (*.f64 d1 (-.f64 d3 d4)) (*.f64 d1 (neg.f64 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 d1 (-.f64 d2 d3)) (*.f64 d1 (-.f64 d4 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) (*.f64 d1 (neg.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 d1) 2) (*.f64 (cbrt.f64 d1) d2) (neg.f64 (+.f64 (*.f64 d1 (-.f64 d3 d4)) (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 d1) 2) (*.f64 (cbrt.f64 d1) d2) (neg.f64 (-.f64 (*.f64 d1 d3) (*.f64 d1 (-.f64 d4 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 d1) 2) (*.f64 (cbrt.f64 d1) d2) (neg.f64 (-.f64 (*.f64 d1 (-.f64 d3 d4)) (*.f64 d1 (neg.f64 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 d2) 2) (*.f64 (cbrt.f64 d2) d1) (neg.f64 (+.f64 (*.f64 d1 (-.f64 d3 d4)) (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 d2) 2) (*.f64 (cbrt.f64 d2) d1) (neg.f64 (-.f64 (*.f64 d1 d3) (*.f64 d1 (-.f64 d4 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 d2) 2) (*.f64 (cbrt.f64 d2) d1) (neg.f64 (-.f64 (*.f64 d1 (-.f64 d3 d4)) (*.f64 d1 (neg.f64 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))) (pow.f64 (cbrt.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))) 2) (*.f64 d1 (neg.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))) 2) (cbrt.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))) (*.f64 d1 (neg.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 d1 (-.f64 d2 d3))) 2) (cbrt.f64 (*.f64 d1 (-.f64 d2 d3))) (*.f64 d1 (-.f64 d4 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 d1 d2)) (pow.f64 (cbrt.f64 (*.f64 d1 d2)) 2) (neg.f64 (+.f64 (*.f64 d1 (-.f64 d3 d4)) (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 d1 d2)) (pow.f64 (cbrt.f64 (*.f64 d1 d2)) 2) (neg.f64 (-.f64 (*.f64 d1 d3) (*.f64 d1 (-.f64 d4 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 d1 d2)) (pow.f64 (cbrt.f64 (*.f64 d1 d2)) 2) (neg.f64 (-.f64 (*.f64 d1 (-.f64 d3 d4)) (*.f64 d1 (neg.f64 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 d1 d2)) 2) (cbrt.f64 (*.f64 d1 d2)) (neg.f64 (+.f64 (*.f64 d1 (-.f64 d3 d4)) (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 d1 d2)) 2) (cbrt.f64 (*.f64 d1 d2)) (neg.f64 (-.f64 (*.f64 d1 d3) (*.f64 d1 (-.f64 d4 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 d1 d2)) 2) (cbrt.f64 (*.f64 d1 d2)) (neg.f64 (-.f64 (*.f64 d1 (-.f64 d3 d4)) (*.f64 d1 (neg.f64 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 d1) (*.f64 (sqrt.f64 d1) d2) (neg.f64 (+.f64 (*.f64 d1 (-.f64 d3 d4)) (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 d1) (*.f64 (sqrt.f64 d1) d2) (neg.f64 (-.f64 (*.f64 d1 d3) (*.f64 d1 (-.f64 d4 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 d1) (*.f64 (sqrt.f64 d1) d2) (neg.f64 (-.f64 (*.f64 d1 (-.f64 d3 d4)) (*.f64 d1 (neg.f64 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 d2) (*.f64 (sqrt.f64 d2) d1) (neg.f64 (+.f64 (*.f64 d1 (-.f64 d3 d4)) (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 d2) (*.f64 (sqrt.f64 d2) d1) (neg.f64 (-.f64 (*.f64 d1 d3) (*.f64 d1 (-.f64 d4 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 d2) (*.f64 (sqrt.f64 d2) d1) (neg.f64 (-.f64 (*.f64 d1 (-.f64 d3 d4)) (*.f64 d1 (neg.f64 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))) (sqrt.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))) (*.f64 d1 (neg.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 d1 (-.f64 d2 d3))) (sqrt.f64 (*.f64 d1 (-.f64 d2 d3))) (*.f64 d1 (-.f64 d4 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 d1 d2)) (sqrt.f64 (*.f64 d1 d2)) (neg.f64 (+.f64 (*.f64 d1 (-.f64 d3 d4)) (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 d1 d2)) (sqrt.f64 (*.f64 d1 d2)) (neg.f64 (-.f64 (*.f64 d1 d3) (*.f64 d1 (-.f64 d4 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 d1 d2)) (sqrt.f64 (*.f64 d1 d2)) (neg.f64 (-.f64 (*.f64 d1 (-.f64 d3 d4)) (*.f64 d1 (neg.f64 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (pow.f64 (*.f64 d1 (-.f64 d2 d3)) 3) (pow.f64 (*.f64 d1 d4) 3)) (/.f64 1 (+.f64 (pow.f64 (*.f64 d1 (-.f64 d2 d3)) 2) (*.f64 (*.f64 d1 d4) (-.f64 (*.f64 d1 d4) (*.f64 d1 (-.f64 d2 d3)))))) (*.f64 d1 (neg.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (*.f64 d1 (-.f64 d2 d3)) 2) (pow.f64 (*.f64 d1 d4) 2)) (/.f64 1 (*.f64 d1 (-.f64 (-.f64 d2 d3) d4))) (*.f64 d1 (neg.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d1 (pow.f64 (cbrt.f64 d2) 2)) (cbrt.f64 d2) (neg.f64 (+.f64 (*.f64 d1 (-.f64 d3 d4)) (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d1 (pow.f64 (cbrt.f64 d2) 2)) (cbrt.f64 d2) (neg.f64 (-.f64 (*.f64 d1 d3) (*.f64 d1 (-.f64 d4 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d1 (pow.f64 (cbrt.f64 d2) 2)) (cbrt.f64 d2) (neg.f64 (-.f64 (*.f64 d1 (-.f64 d3 d4)) (*.f64 d1 (neg.f64 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d1 (sqrt.f64 d2)) (sqrt.f64 d2) (neg.f64 (+.f64 (*.f64 d1 (-.f64 d3 d4)) (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d1 (sqrt.f64 d2)) (sqrt.f64 d2) (neg.f64 (-.f64 (*.f64 d1 d3) (*.f64 d1 (-.f64 d4 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d1 (sqrt.f64 d2)) (sqrt.f64 d2) (neg.f64 (-.f64 (*.f64 d1 (-.f64 d3 d4)) (*.f64 d1 (neg.f64 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d2 (pow.f64 (cbrt.f64 d1) 2)) (cbrt.f64 d1) (neg.f64 (+.f64 (*.f64 d1 (-.f64 d3 d4)) (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d2 (pow.f64 (cbrt.f64 d1) 2)) (cbrt.f64 d1) (neg.f64 (-.f64 (*.f64 d1 d3) (*.f64 d1 (-.f64 d4 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d2 (pow.f64 (cbrt.f64 d1) 2)) (cbrt.f64 d1) (neg.f64 (-.f64 (*.f64 d1 (-.f64 d3 d4)) (*.f64 d1 (neg.f64 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d2 (sqrt.f64 d1)) (sqrt.f64 d1) (neg.f64 (+.f64 (*.f64 d1 (-.f64 d3 d4)) (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d2 (sqrt.f64 d1)) (sqrt.f64 d1) (neg.f64 (-.f64 (*.f64 d1 d3) (*.f64 d1 (-.f64 d4 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d2 (sqrt.f64 d1)) (sqrt.f64 d1) (neg.f64 (-.f64 (*.f64 d1 (-.f64 d3 d4)) (*.f64 d1 (neg.f64 d1)))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 d1 d2) (*.f64 d1 (-.f64 d3 d4)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (*.f64 d1 (-.f64 d2 d3)) 2) (*.f64 d1 (-.f64 (-.f64 d2 d3) d4))) (/.f64 (pow.f64 (*.f64 d1 d4) 2) (*.f64 d1 (-.f64 (-.f64 d2 d3) d4))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 d1 d4) (*.f64 d1 d2)) (*.f64 d1 d3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 d1 (+.f64 (-.f64 d2 d3) d4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 d1 (+.f64 d4 (-.f64 d2 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))) (pow.f64 (cbrt.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))) 2) (cbrt.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))) (sqrt.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (*.f64 d1 (-.f64 d2 d3)) 3) (pow.f64 (*.f64 d1 d4) 3)) (/.f64 1 (+.f64 (pow.f64 (*.f64 d1 (-.f64 d2 d3)) 2) (*.f64 (*.f64 d1 d4) (-.f64 (*.f64 d1 d4) (*.f64 d1 (-.f64 d2 d3)))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (*.f64 d1 (-.f64 d2 d3)) 2) (pow.f64 (*.f64 d1 d4) 2)) (/.f64 1 (*.f64 d1 (-.f64 (-.f64 d2 d3) d4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 (*.f64 d1 (-.f64 d2 d3)) 2) (*.f64 (*.f64 d1 d4) (-.f64 (*.f64 d1 d4) (*.f64 d1 (-.f64 d2 d3))))) (+.f64 (pow.f64 (*.f64 d1 (-.f64 d2 d3)) 3) (pow.f64 (*.f64 d1 d4) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (*.f64 d1 (-.f64 (-.f64 d2 d3) d4)) (-.f64 (pow.f64 (*.f64 d1 (-.f64 d2 d3)) 2) (pow.f64 (*.f64 d1 d4) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 d1 (-.f64 d2 d3)) 3) (pow.f64 (*.f64 d1 d4) 3)) (+.f64 (pow.f64 (*.f64 d1 (-.f64 d2 d3)) 2) (*.f64 (*.f64 d1 d4) (-.f64 (*.f64 d1 d4) (*.f64 d1 (-.f64 d2 d3))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 d1 (-.f64 d2 d3)) 3) (pow.f64 (*.f64 d1 d4) 3)) (+.f64 (pow.f64 (*.f64 d1 d4) 2) (-.f64 (pow.f64 (*.f64 d1 (-.f64 d2 d3)) 2) (*.f64 d1 (*.f64 (-.f64 d2 d3) (*.f64 d1 d4))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 d1 (-.f64 d2 d3)) 2) (pow.f64 (*.f64 d1 d4) 2)) (*.f64 d1 (-.f64 (-.f64 d2 d3) d4)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 d1 (-.f64 d2 d3)) 3) (pow.f64 (*.f64 d1 d4) 3))) (neg.f64 (+.f64 (pow.f64 (*.f64 d1 (-.f64 d2 d3)) 2) (*.f64 (*.f64 d1 d4) (-.f64 (*.f64 d1 d4) (*.f64 d1 (-.f64 d2 d3)))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 d1 (-.f64 d2 d3)) 2) (pow.f64 (*.f64 d1 d4) 2))) (neg.f64 (*.f64 d1 (-.f64 (-.f64 d2 d3) d4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 d1 d2) 3) (pow.f64 (*.f64 d1 (-.f64 d3 d4)) 3)) (+.f64 (pow.f64 (*.f64 d1 d2) 2) (+.f64 (*.f64 (*.f64 d1 (-.f64 d3 d4)) (*.f64 d1 (-.f64 d3 d4))) (*.f64 (*.f64 d1 d2) (*.f64 d1 (-.f64 d3 d4))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 d1 d2) 2) (*.f64 (*.f64 d1 (-.f64 d3 d4)) (*.f64 d1 (-.f64 d3 d4)))) (+.f64 (*.f64 d1 d2) (*.f64 d1 (-.f64 d3 d4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 d1 d4) 2) (pow.f64 (*.f64 d1 (-.f64 d2 d3)) 2)) (-.f64 (*.f64 d1 d4) (*.f64 d1 (-.f64 d2 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (expm1.f64 (*.f64 d1 d2))) (exp.f64 (*.f64 d1 (-.f64 d3 d4)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (pow.f64 (exp.f64 d1) d2) (/.f64 (pow.f64 (exp.f64 d3) d1) (pow.f64 (exp.f64 d4) d1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (expm1.f64 (*.f64 d1 d2))) (/.f64 (pow.f64 (exp.f64 d3) d1) (pow.f64 (exp.f64 d4) d1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 d1 (-.f64 d2 d3)))) (pow.f64 (exp.f64 d4) d1)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 d1) (-.f64 d2 d3)) (+.f64 1 (expm1.f64 (*.f64 d1 d4)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 d1 (-.f64 d2 d3)))) (+.f64 1 (expm1.f64 (*.f64 d1 d4)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 d1 d4))) (pow.f64 (exp.f64 d1) (-.f64 d2 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 d4) d1) (+.f64 1 (expm1.f64 (*.f64 d1 (-.f64 d2 d3))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 d1 d4))) (+.f64 1 (expm1.f64 (*.f64 d1 (-.f64 d2 d3))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))) (exp.f64 (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))))) (exp.f64 (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d1 d2 (neg.f64 (*.f64 d1 (-.f64 d3 d4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d1 d4 (*.f64 d1 (-.f64 d2 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 d4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d2 d1 (neg.f64 (*.f64 d1 (-.f64 d3 d4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d1 d2) 1 (neg.f64 (*.f64 d1 (-.f64 d3 d4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d4 d1 (*.f64 d1 (-.f64 d2 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 d1 d2) (neg.f64 (*.f64 d1 (-.f64 d3 d4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 d1 (-.f64 d2 d3)) (*.f64 d1 d4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 d1 d4) (*.f64 d1 (-.f64 d2 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 d1) 2) (*.f64 (cbrt.f64 d1) d2) (neg.f64 (*.f64 d1 (-.f64 d3 d4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 d1 d4)) 2) (cbrt.f64 (*.f64 d1 d4)) (*.f64 d1 (-.f64 d2 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 d2) 2) (*.f64 (cbrt.f64 d2) d1) (neg.f64 (*.f64 d1 (-.f64 d3 d4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 d1 (-.f64 d2 d3))) 2) (cbrt.f64 (*.f64 d1 (-.f64 d2 d3))) (*.f64 d1 d4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 d1 d2)) (pow.f64 (cbrt.f64 (*.f64 d1 d2)) 2) (neg.f64 (*.f64 d1 (-.f64 d3 d4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 d1 d2)) 2) (cbrt.f64 (*.f64 d1 d2)) (neg.f64 (*.f64 d1 (-.f64 d3 d4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 d1) (*.f64 (sqrt.f64 d1) d2) (neg.f64 (*.f64 d1 (-.f64 d3 d4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 d1 d4)) (sqrt.f64 (*.f64 d1 d4)) (*.f64 d1 (-.f64 d2 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 d2) (*.f64 (sqrt.f64 d2) d1) (neg.f64 (*.f64 d1 (-.f64 d3 d4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 d1 (-.f64 d2 d3))) (sqrt.f64 (*.f64 d1 (-.f64 d2 d3))) (*.f64 d1 d4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 d1 d2)) (sqrt.f64 (*.f64 d1 d2)) (neg.f64 (*.f64 d1 (-.f64 d3 d4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d1 (pow.f64 (cbrt.f64 d2) 2)) (cbrt.f64 d2) (neg.f64 (*.f64 d1 (-.f64 d3 d4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d1 (sqrt.f64 d2)) (sqrt.f64 d2) (neg.f64 (*.f64 d1 (-.f64 d3 d4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d2 (pow.f64 (cbrt.f64 d1) 2)) (cbrt.f64 d1) (neg.f64 (*.f64 d1 (-.f64 d3 d4))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d2 (sqrt.f64 d1)) (sqrt.f64 d1) (neg.f64 (*.f64 d1 (-.f64 d3 d4))))))))

simplify135.0ms (1.5%)

Algorithm
egg-herbie
Rules
714×fma-def_binary64
524×unsub-neg_binary64
380×neg-sub0_binary64
375×fma-neg_binary64
343×neg-mul-1_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0451388
11491342
23801227
311851227
442001227
558951227
665431227
777591227
Stop Event
node limit
Counts
417 → 316
Calls
Call 1
Inputs
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) (*.f64 -1 d3))))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) (*.f64 -1 d3))))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) (*.f64 -1 d3))))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) (*.f64 -1 d3))))
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(*.f64 -1 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(*.f64 -1 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 (-.f64 (+.f64 (*.f64 -1 d4) (*.f64 -1 d2)) (*.f64 -1 d3)))))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 (-.f64 (+.f64 (*.f64 -1 d4) (*.f64 -1 d2)) (*.f64 -1 d3)))))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 (-.f64 (+.f64 (*.f64 -1 d4) (*.f64 -1 d2)) (*.f64 -1 d3)))))
(-.f64 (*.f64 d1 d4) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(*.f64 d2 d1)
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(*.f64 d2 d1)
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4))) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4))) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4))) (pow.f64 d1 2))
(*.f64 -1 (*.f64 d1 d3))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4))) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4))) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4))) (pow.f64 d1 2))
(*.f64 -1 (*.f64 d1 d3))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4))) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4))) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4))) (pow.f64 d1 2))
(-.f64 (*.f64 d2 d1) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(*.f64 d1 d4)
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(*.f64 d1 d4)
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 -1 (*.f64 d1 (-.f64 (+.f64 (*.f64 -1 d4) (*.f64 -1 d2)) (*.f64 -1 d3))))
(*.f64 -1 (*.f64 d1 (-.f64 (+.f64 (*.f64 -1 d4) (*.f64 -1 d2)) (*.f64 -1 d3))))
(*.f64 -1 (*.f64 d1 (-.f64 (+.f64 (*.f64 -1 d4) (*.f64 -1 d2)) (*.f64 -1 d3))))
(*.f64 -1 (*.f64 d1 (-.f64 (+.f64 (*.f64 -1 d4) (*.f64 -1 d2)) (*.f64 -1 d3))))
(-.f64 (*.f64 d1 d4) (*.f64 d1 d3))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (*.f64 d1 d3))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (*.f64 d1 d3))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (*.f64 d1 d3))
(*.f64 d2 d1)
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (*.f64 d1 d3))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (*.f64 d1 d3))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (*.f64 d1 d3))
(*.f64 d2 d1)
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (*.f64 d1 d3))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (*.f64 d1 d3))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (*.f64 d1 d3))
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(-.f64 (*.f64 d2 d1) (*.f64 d1 d3))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (*.f64 d1 d3))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (*.f64 d1 d3))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (*.f64 d1 d3))
(*.f64 d1 d4)
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (*.f64 d1 d3))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (*.f64 d1 d3))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (*.f64 d1 d3))
(*.f64 d1 d4)
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (*.f64 d1 d3))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (*.f64 d1 d3))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (*.f64 d1 d3))
Outputs
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) (*.f64 -1 d3))))
(*.f64 (-.f64 d2 d3) d1)
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) (*.f64 -1 d3))))
(*.f64 (-.f64 d2 d3) d1)
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) (*.f64 -1 d3))))
(*.f64 (-.f64 d2 d3) d1)
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) (*.f64 -1 d3))))
(*.f64 (-.f64 d2 d3) d1)
(*.f64 -1 (*.f64 d1 d3))
(neg.f64 (*.f64 d3 d1))
(*.f64 d3 (neg.f64 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 (-.f64 d2 d3) d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 (-.f64 d2 d3) d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 (-.f64 d2 d3) d1)
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 (-.f64 d2 d3) d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 (-.f64 d2 d3) d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 (-.f64 d2 d3) d1)
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 (-.f64 d2 d3) d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 (-.f64 d2 d3) d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 (-.f64 d2 d3) d1)
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 (-.f64 d2 d3) d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 (-.f64 d2 d3) d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 (-.f64 d2 d3) d1)
(*.f64 -1 (*.f64 d1 d3))
(neg.f64 (*.f64 d3 d1))
(*.f64 d3 (neg.f64 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 (-.f64 d2 d3) d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 (-.f64 d2 d3) d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 (-.f64 d2 d3) d1)
(*.f64 -1 (*.f64 d1 d3))
(neg.f64 (*.f64 d3 d1))
(*.f64 d3 (neg.f64 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 (-.f64 d2 d3) d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 (-.f64 d2 d3) d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 (-.f64 d2 d3) d1)
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 (-.f64 d2 d3) d4))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 d1 (-.f64 d4 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (-.f64 (+.f64 (-.f64 d2 d3) d4) d1))
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 d1 (-.f64 d4 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (-.f64 (+.f64 (-.f64 d2 d3) d4) d1))
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 d1 (-.f64 d4 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (-.f64 (+.f64 (-.f64 d2 d3) d4) d1))
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(*.f64 -1 (pow.f64 d1 2))
(neg.f64 (*.f64 d1 d1))
(*.f64 d1 (neg.f64 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 d1 (-.f64 d4 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (-.f64 (+.f64 (-.f64 d2 d3) d4) d1))
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 d1 (-.f64 d4 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (-.f64 (+.f64 (-.f64 d2 d3) d4) d1))
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 d1 (-.f64 d4 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (-.f64 (+.f64 (-.f64 d2 d3) d4) d1))
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(*.f64 -1 (pow.f64 d1 2))
(neg.f64 (*.f64 d1 d1))
(*.f64 d1 (neg.f64 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 (-.f64 (+.f64 (*.f64 -1 d4) (*.f64 -1 d2)) (*.f64 -1 d3)))))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 d1 (-.f64 d4 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (-.f64 (+.f64 (-.f64 d2 d3) d4) d1))
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 (-.f64 (+.f64 (*.f64 -1 d4) (*.f64 -1 d2)) (*.f64 -1 d3)))))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 d1 (-.f64 d4 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (-.f64 (+.f64 (-.f64 d2 d3) d4) d1))
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 (-.f64 (+.f64 (*.f64 -1 d4) (*.f64 -1 d2)) (*.f64 -1 d3)))))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 d1 (-.f64 d4 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (-.f64 (+.f64 (-.f64 d2 d3) d4) d1))
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(-.f64 (*.f64 d1 d4) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(-.f64 (*.f64 d1 d4) (+.f64 (*.f64 d3 d1) (*.f64 d1 d1)))
(-.f64 (*.f64 d1 d4) (*.f64 d1 (+.f64 d1 d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 d1 (-.f64 d4 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (-.f64 (+.f64 (-.f64 d2 d3) d4) d1))
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 d1 (-.f64 d4 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (-.f64 (+.f64 (-.f64 d2 d3) d4) d1))
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 d1 (-.f64 d4 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (-.f64 (+.f64 (-.f64 d2 d3) d4) d1))
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(*.f64 d2 d1)
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 d1 (-.f64 d4 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (-.f64 (+.f64 (-.f64 d2 d3) d4) d1))
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 d1 (-.f64 d4 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (-.f64 (+.f64 (-.f64 d2 d3) d4) d1))
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 d1 (-.f64 d4 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (-.f64 (+.f64 (-.f64 d2 d3) d4) d1))
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(*.f64 d2 d1)
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 d1 (-.f64 d4 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (-.f64 (+.f64 (-.f64 d2 d3) d4) d1))
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 d1 (-.f64 d4 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (-.f64 (+.f64 (-.f64 d2 d3) d4) d1))
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 d1 (-.f64 d4 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (-.f64 (+.f64 (-.f64 d2 d3) d4) d1))
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (pow.f64 d1 2))
(-.f64 (fma.f64 d2 d1 (*.f64 d1 d4)) (*.f64 d1 d1))
(fma.f64 d1 d4 (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d1))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4))) (pow.f64 d1 2))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 d1 (-.f64 d4 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (-.f64 (+.f64 (-.f64 d2 d3) d4) d1))
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4))) (pow.f64 d1 2))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 d1 (-.f64 d4 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (-.f64 (+.f64 (-.f64 d2 d3) d4) d1))
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4))) (pow.f64 d1 2))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 d1 (-.f64 d4 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (-.f64 (+.f64 (-.f64 d2 d3) d4) d1))
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(*.f64 -1 (*.f64 d1 d3))
(neg.f64 (*.f64 d3 d1))
(*.f64 d3 (neg.f64 d1))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4))) (pow.f64 d1 2))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 d1 (-.f64 d4 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (-.f64 (+.f64 (-.f64 d2 d3) d4) d1))
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4))) (pow.f64 d1 2))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 d1 (-.f64 d4 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (-.f64 (+.f64 (-.f64 d2 d3) d4) d1))
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4))) (pow.f64 d1 2))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 d1 (-.f64 d4 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (-.f64 (+.f64 (-.f64 d2 d3) d4) d1))
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(*.f64 -1 (*.f64 d1 d3))
(neg.f64 (*.f64 d3 d1))
(*.f64 d3 (neg.f64 d1))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4))) (pow.f64 d1 2))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 d1 (-.f64 d4 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (-.f64 (+.f64 (-.f64 d2 d3) d4) d1))
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4))) (pow.f64 d1 2))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 d1 (-.f64 d4 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (-.f64 (+.f64 (-.f64 d2 d3) d4) d1))
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4))) (pow.f64 d1 2))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 d1 (-.f64 d4 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (-.f64 (+.f64 (-.f64 d2 d3) d4) d1))
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(-.f64 (*.f64 d2 d1) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(-.f64 (*.f64 d2 d1) (+.f64 (*.f64 d3 d1) (*.f64 d1 d1)))
(-.f64 (*.f64 d2 d1) (*.f64 d1 (+.f64 d1 d3)))
(*.f64 d1 (-.f64 (-.f64 d2 d3) d1))
(*.f64 d1 (-.f64 d2 (+.f64 d3 d1)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 d1 (-.f64 d4 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (-.f64 (+.f64 (-.f64 d2 d3) d4) d1))
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 d1 (-.f64 d4 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (-.f64 (+.f64 (-.f64 d2 d3) d4) d1))
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 d1 (-.f64 d4 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (-.f64 (+.f64 (-.f64 d2 d3) d4) d1))
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(*.f64 d1 d4)
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 d1 (-.f64 d4 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (-.f64 (+.f64 (-.f64 d2 d3) d4) d1))
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 d1 (-.f64 d4 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (-.f64 (+.f64 (-.f64 d2 d3) d4) d1))
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 d1 (-.f64 d4 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (-.f64 (+.f64 (-.f64 d2 d3) d4) d1))
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(*.f64 d1 d4)
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 d1 (-.f64 d4 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (-.f64 (+.f64 (-.f64 d2 d3) d4) d1))
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 d1 (-.f64 d4 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (-.f64 (+.f64 (-.f64 d2 d3) d4) d1))
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 d1 (-.f64 d4 d3)) (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (-.f64 (+.f64 (-.f64 d2 d3) d4) d1))
(*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 (-.f64 d2 d3) d4))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 (-.f64 d2 d3) d4))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 (-.f64 d2 d3) d4))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 (-.f64 d2 d3) d4))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 (-.f64 d2 d3) d4))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 (-.f64 d2 d3) d4))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 (-.f64 d2 d3) d4))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 (-.f64 d2 d3) d4))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 -1 (*.f64 d1 (-.f64 (+.f64 (*.f64 -1 d4) (*.f64 -1 d2)) (*.f64 -1 d3))))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 (-.f64 d2 d3) d4))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 -1 (*.f64 d1 (-.f64 (+.f64 (*.f64 -1 d4) (*.f64 -1 d2)) (*.f64 -1 d3))))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 (-.f64 d2 d3) d4))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 -1 (*.f64 d1 (-.f64 (+.f64 (*.f64 -1 d4) (*.f64 -1 d2)) (*.f64 -1 d3))))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 (-.f64 d2 d3) d4))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 -1 (*.f64 d1 (-.f64 (+.f64 (*.f64 -1 d4) (*.f64 -1 d2)) (*.f64 -1 d3))))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 (-.f64 d2 d3) d4))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(-.f64 (*.f64 d1 d4) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d4 d3))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (*.f64 d1 d3))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 (-.f64 d2 d3) d4))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (*.f64 d1 d3))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 (-.f64 d2 d3) d4))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (*.f64 d1 d3))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 (-.f64 d2 d3) d4))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d2 d1)
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (*.f64 d1 d3))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 (-.f64 d2 d3) d4))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (*.f64 d1 d3))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 (-.f64 d2 d3) d4))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (*.f64 d1 d3))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 (-.f64 d2 d3) d4))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d2 d1)
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (*.f64 d1 d3))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 (-.f64 d2 d3) d4))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (*.f64 d1 d3))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 (-.f64 d2 d3) d4))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (*.f64 d1 d3))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 (-.f64 d2 d3) d4))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(fma.f64 d2 d1 (*.f64 d1 d4))
(*.f64 d1 (+.f64 d2 d4))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 (-.f64 d2 d3) d4))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 (-.f64 d2 d3) d4))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 (-.f64 d2 d3) d4))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 -1 (*.f64 d1 d3))
(neg.f64 (*.f64 d3 d1))
(*.f64 d3 (neg.f64 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 (-.f64 d2 d3) d4))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 (-.f64 d2 d3) d4))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 (-.f64 d2 d3) d4))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 -1 (*.f64 d1 d3))
(neg.f64 (*.f64 d3 d1))
(*.f64 d3 (neg.f64 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 (-.f64 d2 d3) d4))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 (-.f64 d2 d3) d4))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 (-.f64 d2 d3) d4))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(-.f64 (*.f64 d2 d1) (*.f64 d1 d3))
(*.f64 (-.f64 d2 d3) d1)
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (*.f64 d1 d3))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 (-.f64 d2 d3) d4))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (*.f64 d1 d3))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 (-.f64 d2 d3) d4))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (*.f64 d1 d3))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 (-.f64 d2 d3) d4))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 d4)
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (*.f64 d1 d3))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 (-.f64 d2 d3) d4))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (*.f64 d1 d3))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 (-.f64 d2 d3) d4))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (*.f64 d1 d3))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 (-.f64 d2 d3) d4))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 d4)
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (*.f64 d1 d3))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 (-.f64 d2 d3) d4))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (*.f64 d1 d3))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 (-.f64 d2 d3) d4))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (*.f64 d1 d3))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (+.f64 (-.f64 d2 d3) d4))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))

eval156.0ms (1.7%)

Compiler

Compiled 9707 to 2425 computations (75% saved)

prune130.0ms (1.4%)

Pruning

11 alts after pruning (11 fresh and 0 done)

PrunedKeptTotal
New51711528
Fresh000
Picked101
Done101
Total51911530
Error
0b
Counts
530 → 11
Alt Table
Click to see full alt table
StatusErrorProgram
42.6b
(*.f64 d1 d4)
14.4b
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d4 d1)) (*.f64 d1 d1))
22.4b
(*.f64 d1 (+.f64 d2 d4))
41.6b
(*.f64 d2 d1)
47.3b
(*.f64 d1 (neg.f64 d3))
27.5b
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
14.4b
(*.f64 d1 (-.f64 (+.f64 d2 d4) d1))
34.1b
(*.f64 d1 (+.f64 d2 (neg.f64 d1)))
20.6b
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
14.4b
(-.f64 (*.f64 d1 (+.f64 d2 d4)) (*.f64 d1 d1))
53.9b
(*.f64 d1 (neg.f64 d1))
Compiler

Compiled 218 to 146 computations (33% saved)

localize8.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 22 to 7 computations (68.2% saved)

series4.0ms (0%)

Counts
1 → 36
Calls

9 calls:

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

rewrite76.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
613×unpow-prod-down_binary64
432×fma-def_binary64
414×log-prod_binary64
326×pow-prod-down_binary64
231×pow2_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0710
116110
2249210
Stop Event
node limit
Counts
1 → 49
Calls
Call 1
Inputs
(*.f64 d1 (-.f64 (+.f64 d2 d4) d1))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 (+.f64 d2 d4)) (*.f64 (neg.f64 d1) d1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 (+.f64 d2 d4)) (*.f64 d1 (neg.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d2 d1) (*.f64 (-.f64 d4 d1) d1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 d2) (*.f64 d1 (-.f64 d4 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (+.f64 d2 (-.f64 d4 d1))) d1)) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (+.f64 d2 (-.f64 d4 d1))) d1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (+.f64 d2 (-.f64 d4 d1))) d1))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (+.f64 d2 (-.f64 d4 d1))) d1))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (pow.f64 (+.f64 d2 d4) 3) (pow.f64 d1 3)) d1) (fma.f64 d1 (+.f64 d4 (+.f64 d2 d1)) (pow.f64 (+.f64 d2 d4) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (pow.f64 (+.f64 d2 d4) 2) (*.f64 d1 d1)) d1) (+.f64 d4 (+.f64 d2 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (-.f64 (pow.f64 (+.f64 d2 d4) 3) (pow.f64 d1 3))) (fma.f64 d1 (+.f64 d4 (+.f64 d2 d1)) (pow.f64 (+.f64 d2 d4) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (-.f64 (pow.f64 (+.f64 d2 d4) 2) (*.f64 d1 d1))) (+.f64 d4 (+.f64 d2 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (+.f64 d2 (-.f64 d4 d1))) d1))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d1 d2 (*.f64 d1 (-.f64 d4 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d1 (+.f64 d2 d4) (*.f64 (neg.f64 d1) d1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d1 (+.f64 d2 d4) (*.f64 d1 (neg.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d2 d1 (*.f64 (-.f64 d4 d1) d1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 d2 d4) d1 (*.f64 (neg.f64 d1) d1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 d2 d4) d1 (*.f64 d1 (neg.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 d1 (+.f64 d2 d4)) (*.f64 (neg.f64 d1) d1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 d1 (+.f64 d2 d4)) (*.f64 d1 (neg.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (+.f64 d2 d4)) 2) (*.f64 (cbrt.f64 (+.f64 d2 d4)) d1) (*.f64 (neg.f64 d1) d1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (+.f64 d2 d4)) 2) (*.f64 (cbrt.f64 (+.f64 d2 d4)) d1) (*.f64 d1 (neg.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 d2 d4)) (*.f64 (sqrt.f64 (+.f64 d2 d4)) d1) (*.f64 (neg.f64 d1) d1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 d2 d4)) (*.f64 (sqrt.f64 (+.f64 d2 d4)) d1) (*.f64 d1 (neg.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 d1 (+.f64 d2 d4))) 2) (cbrt.f64 (*.f64 d1 (+.f64 d2 d4))) (*.f64 (neg.f64 d1) d1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 d1 (+.f64 d2 d4))) 2) (cbrt.f64 (*.f64 d1 (+.f64 d2 d4))) (*.f64 d1 (neg.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 d1 (+.f64 d2 d4))) (sqrt.f64 (*.f64 d1 (+.f64 d2 d4))) (*.f64 (neg.f64 d1) d1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 d1 (+.f64 d2 d4))) (sqrt.f64 (*.f64 d1 (+.f64 d2 d4))) (*.f64 d1 (neg.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (+.f64 d2 d4) (pow.f64 (cbrt.f64 d1) 2)) (cbrt.f64 d1) (*.f64 (neg.f64 d1) d1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (+.f64 d2 d4) (pow.f64 (cbrt.f64 d1) 2)) (cbrt.f64 d1) (*.f64 d1 (neg.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (+.f64 d2 d4) (sqrt.f64 d1)) (sqrt.f64 d1) (*.f64 (neg.f64 d1) d1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (+.f64 d2 d4) (sqrt.f64 d1)) (sqrt.f64 d1) (*.f64 d1 (neg.f64 d1)))))))

simplify95.0ms (1%)

Algorithm
egg-herbie
Rules
503×unsub-neg_binary64
372×neg-mul-1_binary64
365×distribute-rgt-neg-in_binary64
359×neg-sub0_binary64
351×fma-neg_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
019427
144319
285319
3199319
4576319
51824319
64087319
75969319
87159319
Stop Event
node limit
Counts
85 → 62
Calls
Call 1
Inputs
(*.f64 d1 (+.f64 d2 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 d4)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 d4)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 d4)))
(*.f64 -1 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 d4)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 d4)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 d4)))
(*.f64 -1 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 d4)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 d4)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 d4)))
(*.f64 d1 (-.f64 d4 d1))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1)))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1)))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1)))
(*.f64 d2 d1)
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1)))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1)))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1)))
(*.f64 d2 d1)
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1)))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1)))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1)))
(*.f64 (-.f64 d2 d1) d1)
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1))
(*.f64 d1 d4)
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1))
(*.f64 d1 d4)
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1))
Outputs
(*.f64 d1 (+.f64 d2 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 d4)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 d4)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 d4)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 d4)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 d4)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 d4)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(*.f64 -1 (pow.f64 d1 2))
(neg.f64 (*.f64 d1 d1))
(*.f64 d1 (neg.f64 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 d4)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 d4)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 d4)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 d4)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 d4)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 d4)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(*.f64 -1 (pow.f64 d1 2))
(neg.f64 (*.f64 d1 d1))
(*.f64 d1 (neg.f64 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 d4)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 d4)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 d4)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 d4)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 d4)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 d4)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(*.f64 d1 (-.f64 d4 d1))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 d4)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 d4)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 d4)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 d4)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 d4)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 d4)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 d4)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 d4)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 d4)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(*.f64 (-.f64 d2 d1) d1)
(*.f64 d1 (-.f64 d2 d1))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 d4)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 d4)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 d4)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(*.f64 d1 d4)
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 d4)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 d4)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 d4)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(*.f64 d1 d4)
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 d4)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 d4)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 d4)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))

localize47.0ms (0.5%)

Compiler

Compiled 9 to 5 computations (44.4% saved)

localize5.0ms (0.1%)

Compiler

Compiled 11 to 6 computations (45.5% saved)

localize6.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 15 to 6 computations (60% saved)

series4.0ms (0%)

Counts
1 → 24
Calls

9 calls:

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

rewrite60.0ms (0.7%)

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

Useful iterations: 0 (0.0ms)

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

simplify13.0ms (0.1%)

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

Useful iterations: 1 (0.0ms)

IterNodesCost
08168
112150
218150
320150
Stop Event
saturated
Counts
48 → 30
Calls
Call 1
Inputs
(*.f64 d1 d4)
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(*.f64 d2 d1)
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(*.f64 d1 d4)
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(*.f64 d1 d4)
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
Outputs
(*.f64 d1 d4)
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(fma.f64 d1 d4 (*.f64 d1 d2))
(*.f64 d1 (+.f64 d4 d2))
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(fma.f64 d1 d4 (*.f64 d1 d2))
(*.f64 d1 (+.f64 d4 d2))
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(fma.f64 d1 d4 (*.f64 d1 d2))
(*.f64 d1 (+.f64 d4 d2))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(fma.f64 d1 d4 (*.f64 d1 d2))
(*.f64 d1 (+.f64 d4 d2))
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(fma.f64 d1 d4 (*.f64 d1 d2))
(*.f64 d1 (+.f64 d4 d2))
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(fma.f64 d1 d4 (*.f64 d1 d2))
(*.f64 d1 (+.f64 d4 d2))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(fma.f64 d1 d4 (*.f64 d1 d2))
(*.f64 d1 (+.f64 d4 d2))
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(fma.f64 d1 d4 (*.f64 d1 d2))
(*.f64 d1 (+.f64 d4 d2))
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(fma.f64 d1 d4 (*.f64 d1 d2))
(*.f64 d1 (+.f64 d4 d2))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(fma.f64 d1 d4 (*.f64 d1 d2))
(*.f64 d1 (+.f64 d4 d2))
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(fma.f64 d1 d4 (*.f64 d1 d2))
(*.f64 d1 (+.f64 d4 d2))
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(fma.f64 d1 d4 (*.f64 d1 d2))
(*.f64 d1 (+.f64 d4 d2))
(*.f64 d1 d4)
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(fma.f64 d1 d4 (*.f64 d1 d2))
(*.f64 d1 (+.f64 d4 d2))
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(fma.f64 d1 d4 (*.f64 d1 d2))
(*.f64 d1 (+.f64 d4 d2))
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(fma.f64 d1 d4 (*.f64 d1 d2))
(*.f64 d1 (+.f64 d4 d2))
(*.f64 d1 d4)
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(fma.f64 d1 d4 (*.f64 d1 d2))
(*.f64 d1 (+.f64 d4 d2))
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(fma.f64 d1 d4 (*.f64 d1 d2))
(*.f64 d1 (+.f64 d4 d2))
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(fma.f64 d1 d4 (*.f64 d1 d2))
(*.f64 d1 (+.f64 d4 d2))

localize7.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 19 to 7 computations (63.2% saved)

series4.0ms (0%)

Counts
1 → 36
Calls

9 calls:

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

rewrite62.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
777×pow1_binary64
723×add-log-exp_binary64
722×log1p-expm1-u_binary64
722×expm1-log1p-u_binary64
704×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
077
11587
224477
Stop Event
node limit
Counts
1 → 24
Calls
Call 1
Inputs
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 d2) (*.f64 d1 d3))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 d3) (*.f64 d1 d2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 d1 d2) 1) (*.f64 (*.f64 d1 d3) 1))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 d1 (+.f64 d2 d3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 d1 d2) 3) (pow.f64 (*.f64 d1 d3) 3)) (+.f64 (*.f64 (*.f64 d1 d2) (*.f64 d1 d2)) (-.f64 (*.f64 (*.f64 d1 d3) (*.f64 d1 d3)) (*.f64 (*.f64 d1 d2) (*.f64 d1 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (*.f64 d1 d2) (*.f64 d1 d2)) (*.f64 (*.f64 d1 d3) (*.f64 d1 d3))) (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (pow.f64 d2 3) (pow.f64 d3 3)) d1) (fma.f64 d2 d2 (*.f64 d3 (-.f64 d3 d2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 (+.f64 d2 d3) 2) d1) (+.f64 d2 d3))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (+.f64 (pow.f64 d2 3) (pow.f64 d3 3))) (fma.f64 d2 d2 (*.f64 d3 (-.f64 d3 d2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (pow.f64 (+.f64 d2 d3) 2)) (+.f64 d2 d3))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 d1 (+.f64 d2 d3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 d1 (+.f64 d2 d3)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 d1 (+.f64 d2 d3))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 d1 (+.f64 d2 d3))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 d1 (+.f64 d2 d3)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (+.f64 d2 d3)) d1))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 d1 (+.f64 d2 d3)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 d1 3) (pow.f64 (+.f64 d2 d3) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (+.f64 d2 d3) 3) (pow.f64 d1 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 d1 (+.f64 d2 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 d1 (+.f64 d2 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 d1 (+.f64 d2 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d1 d2 (*.f64 d1 d3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d2 d1 (*.f64 d1 d3))))))

simplify34.0ms (0.4%)

Algorithm
egg-herbie
Rules
202×fma-def_binary64
124×fma-neg_binary64
41×cancel-sign-sub-inv_binary64
35×distribute-rgt-in_binary64
26×sub-neg_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
011240
122240
240240
361240
492240
5158240
6287240
7419240
8592240
9730240
10742240
Stop Event
saturated
Counts
60 → 29
Calls
Call 1
Inputs
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
Outputs
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 -1 (*.f64 d1 d3))
(neg.f64 (*.f64 d3 d1))
(*.f64 d3 (neg.f64 d1))
(*.f64 d1 (neg.f64 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 (-.f64 d2 d3) d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 (-.f64 d2 d3) d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 (-.f64 d2 d3) d1)
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 (-.f64 d2 d3) d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 (-.f64 d2 d3) d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 (-.f64 d2 d3) d1)
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 (-.f64 d2 d3) d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 (-.f64 d2 d3) d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 (-.f64 d2 d3) d1)
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 (-.f64 d2 d3) d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 (-.f64 d2 d3) d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 (-.f64 d2 d3) d1)
(*.f64 -1 (*.f64 d1 d3))
(neg.f64 (*.f64 d3 d1))
(*.f64 d3 (neg.f64 d1))
(*.f64 d1 (neg.f64 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 (-.f64 d2 d3) d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 (-.f64 d2 d3) d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 (-.f64 d2 d3) d1)
(*.f64 -1 (*.f64 d1 d3))
(neg.f64 (*.f64 d3 d1))
(*.f64 d3 (neg.f64 d1))
(*.f64 d1 (neg.f64 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 (-.f64 d2 d3) d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 (-.f64 d2 d3) d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 (-.f64 d2 d3) d1)

eval23.0ms (0.3%)

Compiler

Compiled 1281 to 379 computations (70.4% saved)

prune32.0ms (0.3%)

Pruning

12 alts after pruning (8 fresh and 4 done)

PrunedKeptTotal
New1147121
Fresh516
Picked101
Done044
Total12012132
Error
0b
Counts
132 → 12
Alt Table
Click to see full alt table
StatusErrorProgram
14.4b
(+.f64 (*.f64 d2 d1) (*.f64 (-.f64 d4 d1) d1))
14.4b
(*.f64 d1 (-.f64 (+.f64 d2 d4) d1))
41.6b
(*.f64 d2 d1)
42.6b
(*.f64 d1 d4)
47.3b
(*.f64 d1 (neg.f64 d3))
34.1b
(*.f64 (-.f64 d2 d1) d1)
22.4b
(*.f64 d1 (+.f64 d2 d4))
34.8b
(*.f64 d1 (-.f64 d4 d1))
22.4b
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
27.5b
(*.f64 (-.f64 d2 d3) d1)
20.6b
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
53.9b
(*.f64 d1 (neg.f64 d1))
Compiler

Compiled 189 to 126 computations (33.3% saved)

localize9.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 27 to 8 computations (70.4% saved)

series10.0ms (0.1%)

Counts
2 → 60
Calls

15 calls:

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

rewrite76.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
524×fma-def_binary64
498×log-prod_binary64
381×pow-prod-down_binary64
353×exp-prod_binary64
257×pow2_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0817
118217
2273517
Stop Event
node limit
Counts
2 → 128
Calls
Call 1
Inputs
(+.f64 (*.f64 d2 d1) (*.f64 (-.f64 d4 d1) d1))
(*.f64 (-.f64 d4 d1) d1)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (*.f64 d2 d1) 2) (*.f64 d1 (-.f64 d2 (-.f64 d4 d1)))) (/.f64 (pow.f64 (*.f64 d1 (-.f64 d4 d1)) 2) (*.f64 d1 (-.f64 d2 (-.f64 d4 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 d1 (+.f64 d2 (-.f64 d4 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))) (pow.f64 (cbrt.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))) 2) (cbrt.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 d1) 2) (*.f64 (cbrt.f64 d1) (+.f64 d2 (-.f64 d4 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))) (sqrt.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 d1) (*.f64 (sqrt.f64 d1) (+.f64 d2 (-.f64 d4 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (*.f64 d2 d1) 3) (pow.f64 (*.f64 d1 (-.f64 d4 d1)) 3)) (/.f64 1 (fma.f64 (*.f64 d1 (-.f64 d4 d1)) (-.f64 (*.f64 d1 (-.f64 d4 d1)) (*.f64 d2 d1)) (pow.f64 (*.f64 d2 d1) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (*.f64 d2 d1) 2) (pow.f64 (*.f64 d1 (-.f64 d4 d1)) 2)) (/.f64 1 (*.f64 d1 (-.f64 d2 (-.f64 d4 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 d2 (-.f64 d4 d1)) d1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 (*.f64 d1 (-.f64 d4 d1)) (-.f64 (*.f64 d1 (-.f64 d4 d1)) (*.f64 d2 d1)) (pow.f64 (*.f64 d2 d1) 2)) (+.f64 (pow.f64 (*.f64 d2 d1) 3) (pow.f64 (*.f64 d1 (-.f64 d4 d1)) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (*.f64 d1 (-.f64 d2 (-.f64 d4 d1))) (-.f64 (pow.f64 (*.f64 d2 d1) 2) (pow.f64 (*.f64 d1 (-.f64 d4 d1)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 d2 d1) 3) (pow.f64 (*.f64 d1 (-.f64 d4 d1)) 3)) (fma.f64 (*.f64 d1 (-.f64 d4 d1)) (-.f64 (*.f64 d1 (-.f64 d4 d1)) (*.f64 d2 d1)) (pow.f64 (*.f64 d2 d1) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 d2 d1) 3) (pow.f64 (*.f64 d1 (-.f64 d4 d1)) 3)) (+.f64 (pow.f64 (*.f64 d1 (-.f64 d4 d1)) 2) (-.f64 (pow.f64 (*.f64 d2 d1) 2) (*.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 d2 d1) 2) (pow.f64 (*.f64 d1 (-.f64 d4 d1)) 2)) (*.f64 d1 (-.f64 d2 (-.f64 d4 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 d2 d1) 3) (pow.f64 (*.f64 d1 (-.f64 d4 d1)) 3))) (neg.f64 (fma.f64 (*.f64 d1 (-.f64 d4 d1)) (-.f64 (*.f64 d1 (-.f64 d4 d1)) (*.f64 d2 d1)) (pow.f64 (*.f64 d2 d1) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 d2 d1) 2) (pow.f64 (*.f64 d1 (-.f64 d4 d1)) 2))) (neg.f64 (*.f64 d1 (-.f64 d2 (-.f64 d4 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 d1 (-.f64 d4 d1)) 2) (pow.f64 (*.f64 d2 d1) 2)) (-.f64 (*.f64 d1 (-.f64 d4 d1)) (*.f64 d2 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 (*.f64 d1 (-.f64 d4 d1)) (-.f64 (*.f64 d1 (-.f64 d4 d1)) (*.f64 d2 d1)) (pow.f64 (*.f64 d2 d1) 2)) (+.f64 (pow.f64 (*.f64 d2 d1) 3) (pow.f64 (*.f64 d1 (-.f64 d4 d1)) 3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (*.f64 d1 (-.f64 d2 (-.f64 d4 d1))) (-.f64 (pow.f64 (*.f64 d2 d1) 2) (pow.f64 (*.f64 d1 (-.f64 d4 d1)) 2))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))))) 2)) (cbrt.f64 (log.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))))) (sqrt.f64 (log.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 d1) (+.f64 d2 (-.f64 d4 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 d2 d1))) (pow.f64 (exp.f64 d1) (-.f64 d4 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 d2) d1) (+.f64 1 (expm1.f64 (*.f64 d1 (-.f64 d4 d1))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 d2 d1))) (+.f64 1 (expm1.f64 (*.f64 d1 (-.f64 d4 d1))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 d1 (-.f64 d4 d1)))) (pow.f64 (exp.f64 d2) d1)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 d1) (-.f64 d4 d1)) (+.f64 1 (expm1.f64 (*.f64 d2 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 d1 (-.f64 d4 d1)))) (+.f64 1 (expm1.f64 (*.f64 d2 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1))))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d2 d1 (*.f64 d1 (-.f64 d4 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d1 d2 (*.f64 d1 (-.f64 d4 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d1 (-.f64 d4 d1) (*.f64 d2 d1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d2 d1) 1 (*.f64 d1 (-.f64 d4 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 d4 d1) d1 (*.f64 d2 d1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d1 (-.f64 d4 d1)) 1 (*.f64 d2 d1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 d1 (-.f64 d4 d1)) (*.f64 d2 d1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 d2) 2) (*.f64 (cbrt.f64 d2) d1) (*.f64 d1 (-.f64 d4 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 d4 d1)) 2) (*.f64 (cbrt.f64 (-.f64 d4 d1)) d1) (*.f64 d2 d1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 d1) 2) (*.f64 (cbrt.f64 d1) (-.f64 d4 d1)) (*.f64 d2 d1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 d1) 2) (*.f64 (cbrt.f64 d1) d2) (*.f64 d1 (-.f64 d4 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 d1 (-.f64 d4 d1))) (pow.f64 (cbrt.f64 (*.f64 d1 (-.f64 d4 d1))) 2) (*.f64 d2 d1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 d1 (-.f64 d4 d1))) 2) (cbrt.f64 (*.f64 d1 (-.f64 d4 d1))) (*.f64 d2 d1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 d2 d1)) (pow.f64 (cbrt.f64 (*.f64 d2 d1)) 2) (*.f64 d1 (-.f64 d4 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 d2 d1)) 2) (cbrt.f64 (*.f64 d2 d1)) (*.f64 d1 (-.f64 d4 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 d2) (*.f64 (sqrt.f64 d2) d1) (*.f64 d1 (-.f64 d4 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 d4 d1)) (*.f64 (sqrt.f64 (-.f64 d4 d1)) d1) (*.f64 d2 d1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 d1) (*.f64 (sqrt.f64 d1) (-.f64 d4 d1)) (*.f64 d2 d1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 d1) (*.f64 (sqrt.f64 d1) d2) (*.f64 d1 (-.f64 d4 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 d1 (-.f64 d4 d1))) (sqrt.f64 (*.f64 d1 (-.f64 d4 d1))) (*.f64 d2 d1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 d2 d1)) (sqrt.f64 (*.f64 d2 d1)) (*.f64 d1 (-.f64 d4 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d1 (pow.f64 (cbrt.f64 (-.f64 d4 d1)) 2)) (cbrt.f64 (-.f64 d4 d1)) (*.f64 d2 d1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d1 (sqrt.f64 (-.f64 d4 d1))) (sqrt.f64 (-.f64 d4 d1)) (*.f64 d2 d1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 d4 d1) (pow.f64 (cbrt.f64 d1) 2)) (cbrt.f64 d1) (*.f64 d2 d1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 d4 d1) (sqrt.f64 d1)) (sqrt.f64 d1) (*.f64 d2 d1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d2 (pow.f64 (cbrt.f64 d1) 2)) (cbrt.f64 d1) (*.f64 d1 (-.f64 d4 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d2 (sqrt.f64 d1)) (sqrt.f64 d1) (*.f64 d1 (-.f64 d4 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d1 (pow.f64 (cbrt.f64 d2) 2)) (cbrt.f64 d2) (*.f64 d1 (-.f64 d4 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d1 (sqrt.f64 d2)) (sqrt.f64 d2) (*.f64 d1 (-.f64 d4 d1)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 d4) (*.f64 (neg.f64 d1) d1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 d4) (*.f64 d1 (neg.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 d1 (-.f64 d4 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 d1) (-.f64 d4 d1))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 d1) (-.f64 d4 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 d1) (-.f64 d4 d1)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 d1) (-.f64 d4 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 d1 (-.f64 d4 d1)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (pow.f64 d4 3) (pow.f64 d1 3)) d1) (fma.f64 d1 (+.f64 d1 d4) (*.f64 d4 d4)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (*.f64 d4 d4) (*.f64 d1 d1)) d1) (+.f64 d1 d4))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (-.f64 (pow.f64 d4 3) (pow.f64 d1 3))) (fma.f64 d1 (+.f64 d1 d4) (*.f64 d4 d4)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (-.f64 (*.f64 d4 d4) (*.f64 d1 d1))) (+.f64 d1 d4))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 d1 (-.f64 d4 d1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 d1 (-.f64 d4 d1)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 d1 (-.f64 d4 d1))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 d1 (-.f64 d4 d1))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 d1 (-.f64 d4 d1)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (*.f64 d1 (-.f64 d4 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 d1 (-.f64 d4 d1)))) 2)) (cbrt.f64 (log.f64 (*.f64 d1 (-.f64 d4 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 d1 (-.f64 d4 d1))))) (sqrt.f64 (log.f64 (*.f64 d1 (-.f64 d4 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 d1 (-.f64 d4 d1)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 d1) (-.f64 d4 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 d1 (-.f64 d4 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 d1 (-.f64 d4 d1)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 d1 (-.f64 d4 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 d1 (-.f64 d4 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 d1 (-.f64 d4 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 d1 (-.f64 d4 d1))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 d1 (-.f64 d4 d1)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 d1 (-.f64 d4 d1)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 d1 (-.f64 d4 d1)))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 d1 (-.f64 d4 d1))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 d1 (-.f64 d4 d1))) 3) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d1 d4 (*.f64 (neg.f64 d1) d1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d1 d4 (*.f64 d1 (neg.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d4 d1 (*.f64 (neg.f64 d1) d1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d4 d1 (*.f64 d1 (neg.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 d1 d4) (*.f64 (neg.f64 d1) d1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 d1 d4) (*.f64 d1 (neg.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 d4) 2) (*.f64 (cbrt.f64 d4) d1) (*.f64 (neg.f64 d1) d1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 d4) 2) (*.f64 (cbrt.f64 d4) d1) (*.f64 d1 (neg.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 d4) (*.f64 (sqrt.f64 d4) d1) (*.f64 (neg.f64 d1) d1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 d4) (*.f64 (sqrt.f64 d4) d1) (*.f64 d1 (neg.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 d1 d4)) 2) (cbrt.f64 (*.f64 d1 d4)) (*.f64 (neg.f64 d1) d1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 d1 d4)) 2) (cbrt.f64 (*.f64 d1 d4)) (*.f64 d1 (neg.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 d1 d4)) (sqrt.f64 (*.f64 d1 d4)) (*.f64 (neg.f64 d1) d1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 d1 d4)) (sqrt.f64 (*.f64 d1 d4)) (*.f64 d1 (neg.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d4 (pow.f64 (cbrt.f64 d1) 2)) (cbrt.f64 d1) (*.f64 (neg.f64 d1) d1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d4 (pow.f64 (cbrt.f64 d1) 2)) (cbrt.f64 d1) (*.f64 d1 (neg.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d4 (sqrt.f64 d1)) (sqrt.f64 d1) (*.f64 (neg.f64 d1) d1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d4 (sqrt.f64 d1)) (sqrt.f64 d1) (*.f64 d1 (neg.f64 d1)))))))

simplify165.0ms (1.8%)

Algorithm
egg-herbie
Rules
1681×fma-neg_binary64
549×fma-def_binary64
366×distribute-rgt-neg-in_binary64
268×unswap-sqr_binary64
252×distribute-lft-neg-in_binary64
Iterations

Useful iterations: 9 (0.0ms)

IterNodesCost
028506
182478
2197475
3460475
41690475
53888475
64818475
75654475
86222475
96775465
107738465
Stop Event
node limit
Counts
188 → 146
Calls
Call 1
Inputs
(*.f64 d1 (-.f64 d4 d1))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1)))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1)))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1)))
(*.f64 d2 d1)
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1)))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1)))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1)))
(*.f64 d2 d1)
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1)))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1)))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 d2 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 d4)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 d4)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 d4)))
(*.f64 -1 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 d4)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 d4)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 d4)))
(*.f64 -1 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 (+.f64 (*.f64 -1 d4) (*.f64 -1 d2)))))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 (+.f64 (*.f64 -1 d4) (*.f64 -1 d2)))))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 (+.f64 (*.f64 -1 d4) (*.f64 -1 d2)))))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(*.f64 d1 d4)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(*.f64 d1 d4)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(*.f64 -1 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(*.f64 d1 d4)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(*.f64 d1 d4)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(*.f64 d1 d4)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(*.f64 -1 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(*.f64 -1 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
Outputs
(*.f64 d1 (-.f64 d4 d1))
(*.f64 d1 (+.f64 d1 d4))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1)))
(fma.f64 d2 d1 (*.f64 d1 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(*.f64 d1 (+.f64 d1 (+.f64 d4 d2)))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1)))
(fma.f64 d2 d1 (*.f64 d1 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(*.f64 d1 (+.f64 d1 (+.f64 d4 d2)))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1)))
(fma.f64 d2 d1 (*.f64 d1 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(*.f64 d1 (+.f64 d1 (+.f64 d4 d2)))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1)))
(fma.f64 d2 d1 (*.f64 d1 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(*.f64 d1 (+.f64 d1 (+.f64 d4 d2)))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1)))
(fma.f64 d2 d1 (*.f64 d1 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(*.f64 d1 (+.f64 d1 (+.f64 d4 d2)))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1)))
(fma.f64 d2 d1 (*.f64 d1 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(*.f64 d1 (+.f64 d1 (+.f64 d4 d2)))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1)))
(fma.f64 d2 d1 (*.f64 d1 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(*.f64 d1 (+.f64 d1 (+.f64 d4 d2)))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1)))
(fma.f64 d2 d1 (*.f64 d1 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(*.f64 d1 (+.f64 d1 (+.f64 d4 d2)))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1)))
(fma.f64 d2 d1 (*.f64 d1 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(*.f64 d1 (+.f64 d1 (+.f64 d4 d2)))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 (+.f64 d4 d2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 d4)))
(fma.f64 d2 d1 (*.f64 d1 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(*.f64 d1 (+.f64 d1 (+.f64 d4 d2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 d4)))
(fma.f64 d2 d1 (*.f64 d1 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(*.f64 d1 (+.f64 d1 (+.f64 d4 d2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 d4)))
(fma.f64 d2 d1 (*.f64 d1 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(*.f64 d1 (+.f64 d1 (+.f64 d4 d2)))
(*.f64 -1 (pow.f64 d1 2))
(neg.f64 (*.f64 d1 d1))
(*.f64 d1 (neg.f64 d1))
(*.f64 d1 d1)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 d4)))
(fma.f64 d2 d1 (*.f64 d1 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(*.f64 d1 (+.f64 d1 (+.f64 d4 d2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 d4)))
(fma.f64 d2 d1 (*.f64 d1 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(*.f64 d1 (+.f64 d1 (+.f64 d4 d2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 d4)))
(fma.f64 d2 d1 (*.f64 d1 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(*.f64 d1 (+.f64 d1 (+.f64 d4 d2)))
(*.f64 -1 (pow.f64 d1 2))
(neg.f64 (*.f64 d1 d1))
(*.f64 d1 (neg.f64 d1))
(*.f64 d1 d1)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 (+.f64 (*.f64 -1 d4) (*.f64 -1 d2)))))
(fma.f64 d2 d1 (*.f64 d1 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(*.f64 d1 (+.f64 d1 (+.f64 d4 d2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 (+.f64 (*.f64 -1 d4) (*.f64 -1 d2)))))
(fma.f64 d2 d1 (*.f64 d1 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(*.f64 d1 (+.f64 d1 (+.f64 d4 d2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 (+.f64 (*.f64 -1 d4) (*.f64 -1 d2)))))
(fma.f64 d2 d1 (*.f64 d1 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(*.f64 d1 (+.f64 d1 (+.f64 d4 d2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 d2))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d1))
(*.f64 d1 (-.f64 d2 d1))
(*.f64 d1 (+.f64 d1 d2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(fma.f64 d2 d1 (*.f64 d1 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(*.f64 d1 (+.f64 d1 (+.f64 d4 d2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(fma.f64 d2 d1 (*.f64 d1 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(*.f64 d1 (+.f64 d1 (+.f64 d4 d2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(fma.f64 d2 d1 (*.f64 d1 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(*.f64 d1 (+.f64 d1 (+.f64 d4 d2)))
(*.f64 d1 d4)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(fma.f64 d2 d1 (*.f64 d1 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(*.f64 d1 (+.f64 d1 (+.f64 d4 d2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(fma.f64 d2 d1 (*.f64 d1 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(*.f64 d1 (+.f64 d1 (+.f64 d4 d2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(fma.f64 d2 d1 (*.f64 d1 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(*.f64 d1 (+.f64 d1 (+.f64 d4 d2)))
(*.f64 d1 d4)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(fma.f64 d2 d1 (*.f64 d1 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(*.f64 d1 (+.f64 d1 (+.f64 d4 d2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(fma.f64 d2 d1 (*.f64 d1 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(*.f64 d1 (+.f64 d1 (+.f64 d4 d2)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(fma.f64 d2 d1 (*.f64 d1 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(*.f64 d1 (+.f64 d1 (+.f64 d4 d2)))
(*.f64 -1 (pow.f64 d1 2))
(neg.f64 (*.f64 d1 d1))
(*.f64 d1 (neg.f64 d1))
(*.f64 d1 d1)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(*.f64 d1 (-.f64 d4 d1))
(*.f64 d1 (+.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(*.f64 d1 (-.f64 d4 d1))
(*.f64 d1 (+.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(*.f64 d1 (-.f64 d4 d1))
(*.f64 d1 (+.f64 d1 d4))
(*.f64 d1 d4)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(*.f64 d1 (-.f64 d4 d1))
(*.f64 d1 (+.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(*.f64 d1 (-.f64 d4 d1))
(*.f64 d1 (+.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(*.f64 d1 (-.f64 d4 d1))
(*.f64 d1 (+.f64 d1 d4))
(*.f64 d1 d4)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(*.f64 d1 (-.f64 d4 d1))
(*.f64 d1 (+.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(*.f64 d1 (-.f64 d4 d1))
(*.f64 d1 (+.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(*.f64 d1 (-.f64 d4 d1))
(*.f64 d1 (+.f64 d1 d4))
(*.f64 d1 d4)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(*.f64 d1 (-.f64 d4 d1))
(*.f64 d1 (+.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(*.f64 d1 (-.f64 d4 d1))
(*.f64 d1 (+.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(*.f64 d1 (-.f64 d4 d1))
(*.f64 d1 (+.f64 d1 d4))
(*.f64 -1 (pow.f64 d1 2))
(neg.f64 (*.f64 d1 d1))
(*.f64 d1 (neg.f64 d1))
(*.f64 d1 d1)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(*.f64 d1 (-.f64 d4 d1))
(*.f64 d1 (+.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(*.f64 d1 (-.f64 d4 d1))
(*.f64 d1 (+.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(*.f64 d1 (-.f64 d4 d1))
(*.f64 d1 (+.f64 d1 d4))
(*.f64 -1 (pow.f64 d1 2))
(neg.f64 (*.f64 d1 d1))
(*.f64 d1 (neg.f64 d1))
(*.f64 d1 d1)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(*.f64 d1 (-.f64 d4 d1))
(*.f64 d1 (+.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(*.f64 d1 (-.f64 d4 d1))
(*.f64 d1 (+.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(*.f64 d1 (-.f64 d4 d1))
(*.f64 d1 (+.f64 d1 d4))

localize4.0ms (0%)

Compiler

Compiled 9 to 5 computations (44.4% saved)

localize6.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(*.f64 d1 (-.f64 d4 d1))
Compiler

Compiled 14 to 6 computations (57.1% saved)

series2.0ms (0%)

Counts
1 → 24
Calls

6 calls:

TimeVariablePointExpression
0.0ms
d4
@-inf
(*.f64 d1 (-.f64 d4 d1))
0.0ms
d1
@0
(*.f64 d1 (-.f64 d4 d1))
0.0ms
d1
@inf
(*.f64 d1 (-.f64 d4 d1))
0.0ms
d1
@-inf
(*.f64 d1 (-.f64 d4 d1))
0.0ms
d4
@inf
(*.f64 d1 (-.f64 d4 d1))

rewrite64.0ms (0.7%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
057
11107
215707
Stop Event
node limit
Counts
1 → 17
Calls
Call 1
Inputs
(*.f64 d1 (-.f64 d4 d1))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 d4) (*.f64 (neg.f64 d1) d1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 d4) (*.f64 d1 (neg.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 d1 (-.f64 d4 d1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (pow.f64 d4 3) (pow.f64 d1 3)) d1) (fma.f64 d4 d4 (*.f64 d1 (+.f64 d1 d4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (*.f64 d4 d4) (*.f64 d1 d1)) d1) (+.f64 d1 d4))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (-.f64 (pow.f64 d4 3) (pow.f64 d1 3))) (fma.f64 d4 d4 (*.f64 d1 (+.f64 d1 d4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (-.f64 (*.f64 d4 d4) (*.f64 d1 d1))) (+.f64 d1 d4))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 d1 (-.f64 d4 d1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 d1 (-.f64 d4 d1)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 d1 (-.f64 d4 d1))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 d1 (-.f64 d4 d1))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 d1 (-.f64 d4 d1)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 d1) (-.f64 d4 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 d1 (-.f64 d4 d1)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 d1 (-.f64 d4 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 d1 (-.f64 d4 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 d1 (-.f64 d4 d1))))))))

simplify102.0ms (1.1%)

Algorithm
egg-herbie
Rules
761×fma-neg_binary64
639×fma-def_binary64
427×distribute-rgt-neg-in_binary64
356×neg-sub0_binary64
351×neg-mul-1_binary64
Iterations

Useful iterations: 9 (0.0ms)

IterNodesCost
09228
119210
238156
387156
4237156
5761156
61703156
73629156
85320156
96263150
107563150
Stop Event
node limit
Counts
41 → 22
Calls
Call 1
Inputs
(*.f64 d1 d4)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(*.f64 -1 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(*.f64 -1 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(*.f64 -1 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(*.f64 d1 d4)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(*.f64 d1 d4)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
Outputs
(*.f64 d1 d4)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 d4))
(-.f64 (*.f64 d1 d4) (*.f64 d1 d1))
(*.f64 d1 (-.f64 d4 d1))
(*.f64 d1 (+.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 d4))
(-.f64 (*.f64 d1 d4) (*.f64 d1 d1))
(*.f64 d1 (-.f64 d4 d1))
(*.f64 d1 (+.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 d4))
(-.f64 (*.f64 d1 d4) (*.f64 d1 d1))
(*.f64 d1 (-.f64 d4 d1))
(*.f64 d1 (+.f64 d1 d4))
(*.f64 -1 (pow.f64 d1 2))
(neg.f64 (*.f64 d1 d1))
(*.f64 d1 (neg.f64 d1))
(*.f64 d1 d1)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 d4))
(-.f64 (*.f64 d1 d4) (*.f64 d1 d1))
(*.f64 d1 (-.f64 d4 d1))
(*.f64 d1 (+.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 d4))
(-.f64 (*.f64 d1 d4) (*.f64 d1 d1))
(*.f64 d1 (-.f64 d4 d1))
(*.f64 d1 (+.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 d4))
(-.f64 (*.f64 d1 d4) (*.f64 d1 d1))
(*.f64 d1 (-.f64 d4 d1))
(*.f64 d1 (+.f64 d1 d4))
(*.f64 -1 (pow.f64 d1 2))
(neg.f64 (*.f64 d1 d1))
(*.f64 d1 (neg.f64 d1))
(*.f64 d1 d1)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 d4))
(-.f64 (*.f64 d1 d4) (*.f64 d1 d1))
(*.f64 d1 (-.f64 d4 d1))
(*.f64 d1 (+.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 d4))
(-.f64 (*.f64 d1 d4) (*.f64 d1 d1))
(*.f64 d1 (-.f64 d4 d1))
(*.f64 d1 (+.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 d4))
(-.f64 (*.f64 d1 d4) (*.f64 d1 d1))
(*.f64 d1 (-.f64 d4 d1))
(*.f64 d1 (+.f64 d1 d4))
(*.f64 -1 (pow.f64 d1 2))
(neg.f64 (*.f64 d1 d1))
(*.f64 d1 (neg.f64 d1))
(*.f64 d1 d1)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 d4))
(-.f64 (*.f64 d1 d4) (*.f64 d1 d1))
(*.f64 d1 (-.f64 d4 d1))
(*.f64 d1 (+.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 d4))
(-.f64 (*.f64 d1 d4) (*.f64 d1 d1))
(*.f64 d1 (-.f64 d4 d1))
(*.f64 d1 (+.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 d4))
(-.f64 (*.f64 d1 d4) (*.f64 d1 d1))
(*.f64 d1 (-.f64 d4 d1))
(*.f64 d1 (+.f64 d1 d4))
(*.f64 d1 d4)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 d4))
(-.f64 (*.f64 d1 d4) (*.f64 d1 d1))
(*.f64 d1 (-.f64 d4 d1))
(*.f64 d1 (+.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 d4))
(-.f64 (*.f64 d1 d4) (*.f64 d1 d1))
(*.f64 d1 (-.f64 d4 d1))
(*.f64 d1 (+.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 d4))
(-.f64 (*.f64 d1 d4) (*.f64 d1 d1))
(*.f64 d1 (-.f64 d4 d1))
(*.f64 d1 (+.f64 d1 d4))
(*.f64 d1 d4)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 d4))
(-.f64 (*.f64 d1 d4) (*.f64 d1 d1))
(*.f64 d1 (-.f64 d4 d1))
(*.f64 d1 (+.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 d4))
(-.f64 (*.f64 d1 d4) (*.f64 d1 d1))
(*.f64 d1 (-.f64 d4 d1))
(*.f64 d1 (+.f64 d1 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 d4))
(-.f64 (*.f64 d1 d4) (*.f64 d1 d1))
(*.f64 d1 (-.f64 d4 d1))
(*.f64 d1 (+.f64 d1 d4))

localize6.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(*.f64 (-.f64 d2 d3) d1)
Compiler

Compiled 15 to 6 computations (60% saved)

series3.0ms (0%)

Counts
1 → 24
Calls

9 calls:

TimeVariablePointExpression
0.0ms
d2
@0
(*.f64 (-.f64 d2 d3) d1)
0.0ms
d2
@inf
(*.f64 (-.f64 d2 d3) d1)
0.0ms
d3
@inf
(*.f64 (-.f64 d2 d3) d1)
0.0ms
d2
@-inf
(*.f64 (-.f64 d2 d3) d1)
0.0ms
d3
@-inf
(*.f64 (-.f64 d2 d3) d1)

rewrite60.0ms (0.7%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
067
11297
217847
Stop Event
node limit
Counts
1 → 19
Calls
Call 1
Inputs
(*.f64 (-.f64 d2 d3) d1)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d2 d1) (*.f64 (neg.f64 d3) d1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 d2) (*.f64 d1 (neg.f64 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (-.f64 d2 d3) d1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (pow.f64 d2 3) (pow.f64 d3 3)) d1) (fma.f64 d2 d2 (*.f64 d3 (+.f64 d2 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (*.f64 d2 d2) (*.f64 d3 d3)) d1) (+.f64 d2 d3))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (-.f64 (pow.f64 d2 3) (pow.f64 d3 3))) (fma.f64 d2 d2 (*.f64 d3 (+.f64 d2 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (-.f64 (*.f64 d2 d2) (*.f64 d3 d3))) (+.f64 d2 d3))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (-.f64 d2 d3) d1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (-.f64 d2 d3) d1) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (-.f64 d2 d3) d1)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (-.f64 d2 d3) d1)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (-.f64 d2 d3) d1) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 d1) (-.f64 d2 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (-.f64 d2 d3) d1) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (-.f64 d2 d3) 3) (pow.f64 d1 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 d1 3) (pow.f64 (-.f64 d2 d3) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (-.f64 d2 d3) d1)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (-.f64 d2 d3) d1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (-.f64 d2 d3) d1)))))))

simplify30.0ms (0.3%)

Algorithm
egg-herbie
Rules
217×fma-def_binary64
132×fma-neg_binary64
43×cancel-sign-sub-inv_binary64
25×distribute-rgt-in_binary64
25×sub-neg_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
09228
117210
235156
358156
486156
5138156
6254156
7410156
8579156
9733156
10747156
Stop Event
saturated
Counts
43 → 25
Calls
Call 1
Inputs
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
Outputs
(*.f64 -1 (*.f64 d1 d3))
(neg.f64 (*.f64 d1 d3))
(*.f64 d1 (neg.f64 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d3) (*.f64 d1 d2))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d3) (*.f64 d1 d2))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d3) (*.f64 d1 d2))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d3) (*.f64 d1 d2))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d3) (*.f64 d1 d2))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d3) (*.f64 d1 d2))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d3) (*.f64 d1 d2))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d3) (*.f64 d1 d2))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d3) (*.f64 d1 d2))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d3) (*.f64 d1 d2))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d3) (*.f64 d1 d2))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d3) (*.f64 d1 d2))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 -1 (*.f64 d1 d3))
(neg.f64 (*.f64 d1 d3))
(*.f64 d1 (neg.f64 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d3) (*.f64 d1 d2))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d3) (*.f64 d1 d2))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d3) (*.f64 d1 d2))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 -1 (*.f64 d1 d3))
(neg.f64 (*.f64 d1 d3))
(*.f64 d1 (neg.f64 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d3) (*.f64 d1 d2))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d3) (*.f64 d1 d2))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d3) (*.f64 d1 d2))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))

localize8.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 20 to 7 computations (65% saved)

series11.0ms (0.1%)

Counts
1 → 27
Calls

9 calls:

TimeVariablePointExpression
8.0ms
d1
@0
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
0.0ms
d1
@-inf
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
0.0ms
d4
@-inf
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
0.0ms
d2
@0
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
0.0ms
d1
@inf
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))

rewrite61.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
817×pow1_binary64
756×add-log-exp_binary64
756×log1p-expm1-u_binary64
756×expm1-log1p-u_binary64
739×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
078
11497
220607
Stop Event
node limit
Counts
1 → 39
Calls
Call 1
Inputs
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 d1 (+.f64 d4 d2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (*.f64 d2 d1) 2) (*.f64 d1 (-.f64 d2 d4))) (/.f64 (pow.f64 (*.f64 d1 d4) 2) (*.f64 d1 (-.f64 d2 d4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 d1 (+.f64 d2 d4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 d1 (+.f64 d4 d2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (+.f64 d4 d2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 d1 (+.f64 d4 d2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 d1 (+.f64 d4 d2))) (pow.f64 (cbrt.f64 (*.f64 d1 (+.f64 d4 d2))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 d1 (+.f64 d4 d2))) 2) (cbrt.f64 (*.f64 d1 (+.f64 d4 d2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 d1 (+.f64 d4 d2))) (sqrt.f64 (*.f64 d1 (+.f64 d4 d2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (*.f64 d2 d1) 3) (pow.f64 (*.f64 d1 d4) 3)) (/.f64 1 (+.f64 (pow.f64 (*.f64 d2 d1) 2) (*.f64 (*.f64 d1 d4) (-.f64 (*.f64 d1 d4) (*.f64 d2 d1))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 d1 (+.f64 d4 d2)) (*.f64 d1 (-.f64 d2 d4))) (/.f64 1 (*.f64 d1 (-.f64 d2 d4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 (*.f64 d2 d1) 2) (*.f64 (*.f64 d1 d4) (-.f64 (*.f64 d1 d4) (*.f64 d2 d1)))) (+.f64 (pow.f64 (*.f64 d2 d1) 3) (pow.f64 (*.f64 d1 d4) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (*.f64 d1 (-.f64 d2 d4)) (*.f64 (*.f64 d1 (+.f64 d4 d2)) (*.f64 d1 (-.f64 d2 d4)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 d2 d1) 3) (pow.f64 (*.f64 d1 d4) 3)) (+.f64 (pow.f64 (*.f64 d2 d1) 2) (*.f64 (*.f64 d1 d4) (-.f64 (*.f64 d1 d4) (*.f64 d2 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 d2 d1) 3) (pow.f64 (*.f64 d1 d4) 3)) (+.f64 (pow.f64 (*.f64 d1 d4) 2) (-.f64 (pow.f64 (*.f64 d2 d1) 2) (*.f64 (*.f64 d2 d1) (*.f64 d1 d4)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 d1 (+.f64 d4 d2)) (*.f64 d1 (-.f64 d2 d4))) (*.f64 d1 (-.f64 d2 d4)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 d2 d1) 3) (pow.f64 (*.f64 d1 d4) 3))) (neg.f64 (+.f64 (pow.f64 (*.f64 d2 d1) 2) (*.f64 (*.f64 d1 d4) (-.f64 (*.f64 d1 d4) (*.f64 d2 d1))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 (*.f64 d1 (+.f64 d4 d2)) (*.f64 d1 (-.f64 d2 d4)))) (neg.f64 (*.f64 d1 (-.f64 d2 d4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 d1 d4) 2) (pow.f64 (*.f64 d2 d1) 2)) (-.f64 (*.f64 d1 d4) (*.f64 d2 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 d1 (+.f64 d4 d2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 d1 (+.f64 d4 d2)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 d1 (+.f64 d4 d2))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 d1 (+.f64 d4 d2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 d1 (+.f64 d4 d2)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (*.f64 d1 (+.f64 d4 d2))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 d1 (+.f64 d4 d2)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 d1 (+.f64 d4 d2))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 d1 (+.f64 d4 d2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 d1 (+.f64 d4 d2))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d2 d1 (*.f64 d1 d4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d1 d2 (*.f64 d1 d4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d1 d4 (*.f64 d2 d1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d4 d1 (*.f64 d2 d1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 d2 d1) (*.f64 d1 d4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 d1 d4) (*.f64 d2 d1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 d1 d4)) 2) (cbrt.f64 (*.f64 d1 d4)) (*.f64 d2 d1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 d2 d1)) 2) (cbrt.f64 (*.f64 d2 d1)) (*.f64 d1 d4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 d1 d4)) (sqrt.f64 (*.f64 d1 d4)) (*.f64 d2 d1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 d2 d1)) (sqrt.f64 (*.f64 d2 d1)) (*.f64 d1 d4))))))

simplify48.0ms (0.5%)

Algorithm
egg-herbie
Rules
112×fma-neg_binary64
75×fma-def_binary64
31×unsub-neg_binary64
24×cancel-sign-sub-inv_binary64
23×associate-*l*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
015171
142171
2109171
3208171
4391171
5528171
6584171
7589171
Stop Event
saturated
Counts
66 → 44
Calls
Call 1
Inputs
(*.f64 d1 d4)
(*.f64 d2 d1)
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 -1 (*.f64 d1 (+.f64 (*.f64 -1 d4) (*.f64 -1 d2))))
(*.f64 -1 (*.f64 d1 (+.f64 (*.f64 -1 d4) (*.f64 -1 d2))))
(*.f64 -1 (*.f64 d1 (+.f64 (*.f64 -1 d4) (*.f64 -1 d2))))
(*.f64 -1 (*.f64 d1 (+.f64 (*.f64 -1 d4) (*.f64 -1 d2))))
(*.f64 d2 d1)
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(*.f64 d1 d4)
(*.f64 d1 d4)
Outputs
(*.f64 d1 d4)
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(*.f64 d1 (+.f64 d4 d2))
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(*.f64 d1 (+.f64 d4 d2))
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(*.f64 d1 (+.f64 d4 d2))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(*.f64 d1 (+.f64 d4 d2))
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(*.f64 d1 (+.f64 d4 d2))
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(*.f64 d1 (+.f64 d4 d2))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 (+.f64 d4 d2))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 (+.f64 d4 d2))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 (+.f64 d4 d2))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 (+.f64 d4 d2))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 (+.f64 d4 d2))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 (+.f64 d4 d2))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 (+.f64 d4 d2))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 (+.f64 d4 d2))
(*.f64 -1 (*.f64 d1 (+.f64 (*.f64 -1 d4) (*.f64 -1 d2))))
(*.f64 d1 (+.f64 d4 d2))
(*.f64 -1 (*.f64 d1 (+.f64 (*.f64 -1 d4) (*.f64 -1 d2))))
(*.f64 d1 (+.f64 d4 d2))
(*.f64 -1 (*.f64 d1 (+.f64 (*.f64 -1 d4) (*.f64 -1 d2))))
(*.f64 d1 (+.f64 d4 d2))
(*.f64 -1 (*.f64 d1 (+.f64 (*.f64 -1 d4) (*.f64 -1 d2))))
(*.f64 d1 (+.f64 d4 d2))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(*.f64 d1 (+.f64 d4 d2))
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(*.f64 d1 (+.f64 d4 d2))
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(*.f64 d1 (+.f64 d4 d2))
(*.f64 d1 d4)
(*.f64 d1 d4)

eval76.0ms (0.8%)

Compiler

Compiled 3009 to 860 computations (71.4% saved)

prune106.0ms (1.2%)

Pruning

13 alts after pruning (4 fresh and 9 done)

PrunedKeptTotal
New2361237
Fresh033
Picked011
Done088
Total23613249
Error
0b
Counts
249 → 13
Alt Table
Click to see full alt table
StatusErrorProgram
14.4b
(+.f64 (*.f64 d2 d1) (*.f64 (-.f64 d4 d1) d1))
14.4b
(*.f64 d1 (-.f64 (+.f64 d2 d4) d1))
41.6b
(*.f64 d2 d1)
42.6b
(*.f64 d1 d4)
47.3b
(*.f64 d1 (neg.f64 d3))
34.1b
(*.f64 (-.f64 d2 d1) d1)
22.4b
(*.f64 d1 (+.f64 d2 d4))
34.8b
(*.f64 d1 (-.f64 d4 d1))
61.2b
(*.f64 d1 d1)
22.4b
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
27.5b
(*.f64 (-.f64 d2 d3) d1)
20.6b
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
53.9b
(*.f64 d1 (neg.f64 d1))
Compiler

Compiled 119 to 80 computations (32.8% saved)

localize6.0ms (0.1%)

Compiler

Compiled 8 to 5 computations (37.5% saved)

localize6.0ms (0.1%)

Compiler

Compiled 12 to 6 computations (50% saved)

localize46.0ms (0.5%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(-.f64 d4 (+.f64 d3 d1))
Compiler

Compiled 22 to 7 computations (68.2% saved)

series3.0ms (0%)

Counts
1 → 36
Calls

9 calls:

TimeVariablePointExpression
0.0ms
d4
@0
(-.f64 d4 (+.f64 d3 d1))
0.0ms
d4
@-inf
(-.f64 d4 (+.f64 d3 d1))
0.0ms
d4
@inf
(-.f64 d4 (+.f64 d3 d1))
0.0ms
d3
@-inf
(-.f64 d4 (+.f64 d3 d1))
0.0ms
d1
@-inf
(-.f64 d4 (+.f64 d3 d1))

rewrite64.0ms (0.7%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
067
11417
222217
Stop Event
node limit
Counts
1 → 41
Calls
Call 1
Inputs
(-.f64 d4 (+.f64 d3 d1))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 d4 (neg.f64 (+.f64 d3 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 d4 (*.f64 (neg.f64 (+.f64 d3 d1)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 d4 (+.f64 d3 d1)) (fma.f64 (neg.f64 (+.f64 d3 d1)) 1 (+.f64 d3 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 d4 (+.f64 d3 d1)) (fma.f64 (neg.f64 (cbrt.f64 (+.f64 d3 d1))) (pow.f64 (cbrt.f64 (+.f64 d3 d1)) 2) (+.f64 d3 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 d4 (+.f64 d3 d1)) (fma.f64 (neg.f64 (sqrt.f64 (+.f64 d3 d1))) (sqrt.f64 (+.f64 d3 d1)) (+.f64 d3 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (+.f64 d3 d1)) d4)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 d4 d3) (neg.f64 d1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 d4 d3) (*.f64 -1 d1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 d4 d3) (*.f64 (neg.f64 (pow.f64 (cbrt.f64 d1) 2)) (cbrt.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 d4 d3) (*.f64 (neg.f64 (sqrt.f64 d1)) (sqrt.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 d4 (+.f64 d3 d1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 d4 (+.f64 d3 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (-.f64 d4 (+.f64 d3 d1))) (pow.f64 (cbrt.f64 (-.f64 d4 (+.f64 d3 d1))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (-.f64 d4 (+.f64 d3 d1))) 2) (cbrt.f64 (-.f64 d4 (+.f64 d3 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (-.f64 d4 (+.f64 d3 d1))) (sqrt.f64 (-.f64 d4 (+.f64 d3 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 d4 3) (pow.f64 (+.f64 d3 d1) 3)) (/.f64 1 (fma.f64 d4 d4 (*.f64 (+.f64 d3 d1) (+.f64 d4 (+.f64 d3 d1))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 d4 d4) (pow.f64 (+.f64 d3 d1) 2)) (/.f64 1 (+.f64 d4 (+.f64 d3 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sqrt.f64 d4) (sqrt.f64 (+.f64 d3 d1))) (-.f64 (sqrt.f64 d4) (sqrt.f64 (+.f64 d3 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 d4 d4 (*.f64 (+.f64 d3 d1) (+.f64 d4 (+.f64 d3 d1)))) (-.f64 (pow.f64 d4 3) (pow.f64 (+.f64 d3 d1) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 d4 (+.f64 d3 d1)) (-.f64 (*.f64 d4 d4) (pow.f64 (+.f64 d3 d1) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 d4 3) (pow.f64 (+.f64 d3 d1) 3)) (fma.f64 d4 d4 (*.f64 (+.f64 d3 d1) (+.f64 d4 (+.f64 d3 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 d4 d4) (pow.f64 (+.f64 d3 d1) 2)) (+.f64 d4 (+.f64 d3 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 d4 3) (pow.f64 (+.f64 d3 d1) 3))) (neg.f64 (fma.f64 d4 d4 (*.f64 (+.f64 d3 d1) (+.f64 d4 (+.f64 d3 d1))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (*.f64 d4 d4) (pow.f64 (+.f64 d3 d1) 2))) (neg.f64 (+.f64 d4 (+.f64 d3 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (-.f64 d4 d3) 3) (pow.f64 d1 3)) (+.f64 (*.f64 (-.f64 d4 d3) (-.f64 d4 d3)) (+.f64 (*.f64 d1 d1) (*.f64 (-.f64 d4 d3) d1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 d4 3) (pow.f64 (neg.f64 (+.f64 d3 d1)) 3)) (+.f64 (*.f64 d4 d4) (-.f64 (*.f64 (neg.f64 (+.f64 d3 d1)) (neg.f64 (+.f64 d3 d1))) (*.f64 d4 (neg.f64 (+.f64 d3 d1))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (-.f64 d4 d3) (-.f64 d4 d3)) (*.f64 d1 d1)) (+.f64 (-.f64 d4 d3) d1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 d4 d4) (*.f64 (neg.f64 (+.f64 d3 d1)) (neg.f64 (+.f64 d3 d1)))) (-.f64 d4 (neg.f64 (+.f64 d3 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 d4 (+.f64 d3 d1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 d4 (+.f64 d3 d1)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (-.f64 d4 (+.f64 d3 d1))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (-.f64 d4 (+.f64 d3 d1))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (-.f64 d4 (+.f64 d3 d1)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (-.f64 d4 (+.f64 d3 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (-.f64 d4 (+.f64 d3 d1)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (-.f64 d4 (+.f64 d3 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (-.f64 d4 (+.f64 d3 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (-.f64 d4 (+.f64 d3 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 d4 (neg.f64 (+.f64 d3 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 d4) 2) (cbrt.f64 d4) (neg.f64 (+.f64 d3 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 d4) (sqrt.f64 d4) (neg.f64 (+.f64 d3 d1)))))))

simplify35.0ms (0.4%)

Algorithm
egg-herbie
Rules
145×fma-neg_binary64
71×fma-def_binary64
46×cancel-sign-sub-inv_binary64
39×sub-neg_binary64
33×distribute-rgt-in_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
016244
140217
261217
3115217
4184217
5328217
6457217
7548217
8591217
9593217
Stop Event
saturated
Counts
77 → 54
Calls
Call 1
Inputs
(*.f64 -1 (+.f64 d1 d3))
(+.f64 (*.f64 -1 (+.f64 d1 d3)) d4)
(+.f64 (*.f64 -1 (+.f64 d1 d3)) d4)
(+.f64 (*.f64 -1 (+.f64 d1 d3)) d4)
d4
(+.f64 (*.f64 -1 (+.f64 d1 d3)) d4)
(+.f64 (*.f64 -1 (+.f64 d1 d3)) d4)
(+.f64 (*.f64 -1 (+.f64 d1 d3)) d4)
d4
(+.f64 (*.f64 -1 (+.f64 d1 d3)) d4)
(+.f64 (*.f64 -1 (+.f64 d1 d3)) d4)
(+.f64 (*.f64 -1 (+.f64 d1 d3)) d4)
(-.f64 d4 d1)
(-.f64 (+.f64 (*.f64 -1 d3) d4) d1)
(-.f64 (+.f64 (*.f64 -1 d3) d4) d1)
(-.f64 (+.f64 (*.f64 -1 d3) d4) d1)
(*.f64 -1 d3)
(-.f64 (+.f64 (*.f64 -1 d3) d4) d1)
(-.f64 (+.f64 (*.f64 -1 d3) d4) d1)
(-.f64 (+.f64 (*.f64 -1 d3) d4) d1)
(*.f64 -1 d3)
(-.f64 (+.f64 (*.f64 -1 d3) d4) d1)
(-.f64 (+.f64 (*.f64 -1 d3) d4) d1)
(-.f64 (+.f64 (*.f64 -1 d3) d4) d1)
(-.f64 d4 d3)
(-.f64 (+.f64 d4 (*.f64 -1 d1)) d3)
(-.f64 (+.f64 d4 (*.f64 -1 d1)) d3)
(-.f64 (+.f64 d4 (*.f64 -1 d1)) d3)
(*.f64 -1 d1)
(-.f64 (+.f64 d4 (*.f64 -1 d1)) d3)
(-.f64 (+.f64 d4 (*.f64 -1 d1)) d3)
(-.f64 (+.f64 d4 (*.f64 -1 d1)) d3)
(*.f64 -1 d1)
(-.f64 (+.f64 d4 (*.f64 -1 d1)) d3)
(-.f64 (+.f64 d4 (*.f64 -1 d1)) d3)
(-.f64 (+.f64 d4 (*.f64 -1 d1)) d3)
Outputs
(*.f64 -1 (+.f64 d1 d3))
(neg.f64 (+.f64 d1 d3))
(-.f64 (neg.f64 d1) d3)
(+.f64 (*.f64 -1 (+.f64 d1 d3)) d4)
(fma.f64 -1 (+.f64 d1 d3) d4)
(-.f64 d4 (+.f64 d1 d3))
(+.f64 (*.f64 -1 (+.f64 d1 d3)) d4)
(fma.f64 -1 (+.f64 d1 d3) d4)
(-.f64 d4 (+.f64 d1 d3))
(+.f64 (*.f64 -1 (+.f64 d1 d3)) d4)
(fma.f64 -1 (+.f64 d1 d3) d4)
(-.f64 d4 (+.f64 d1 d3))
d4
(+.f64 (*.f64 -1 (+.f64 d1 d3)) d4)
(fma.f64 -1 (+.f64 d1 d3) d4)
(-.f64 d4 (+.f64 d1 d3))
(+.f64 (*.f64 -1 (+.f64 d1 d3)) d4)
(fma.f64 -1 (+.f64 d1 d3) d4)
(-.f64 d4 (+.f64 d1 d3))
(+.f64 (*.f64 -1 (+.f64 d1 d3)) d4)
(fma.f64 -1 (+.f64 d1 d3) d4)
(-.f64 d4 (+.f64 d1 d3))
d4
(+.f64 (*.f64 -1 (+.f64 d1 d3)) d4)
(fma.f64 -1 (+.f64 d1 d3) d4)
(-.f64 d4 (+.f64 d1 d3))
(+.f64 (*.f64 -1 (+.f64 d1 d3)) d4)
(fma.f64 -1 (+.f64 d1 d3) d4)
(-.f64 d4 (+.f64 d1 d3))
(+.f64 (*.f64 -1 (+.f64 d1 d3)) d4)
(fma.f64 -1 (+.f64 d1 d3) d4)
(-.f64 d4 (+.f64 d1 d3))
(-.f64 d4 d1)
(-.f64 (+.f64 (*.f64 -1 d3) d4) d1)
(fma.f64 -1 (+.f64 d1 d3) d4)
(-.f64 d4 (+.f64 d1 d3))
(-.f64 (+.f64 (*.f64 -1 d3) d4) d1)
(fma.f64 -1 (+.f64 d1 d3) d4)
(-.f64 d4 (+.f64 d1 d3))
(-.f64 (+.f64 (*.f64 -1 d3) d4) d1)
(fma.f64 -1 (+.f64 d1 d3) d4)
(-.f64 d4 (+.f64 d1 d3))
(*.f64 -1 d3)
(neg.f64 d3)
(-.f64 (+.f64 (*.f64 -1 d3) d4) d1)
(fma.f64 -1 (+.f64 d1 d3) d4)
(-.f64 d4 (+.f64 d1 d3))
(-.f64 (+.f64 (*.f64 -1 d3) d4) d1)
(fma.f64 -1 (+.f64 d1 d3) d4)
(-.f64 d4 (+.f64 d1 d3))
(-.f64 (+.f64 (*.f64 -1 d3) d4) d1)
(fma.f64 -1 (+.f64 d1 d3) d4)
(-.f64 d4 (+.f64 d1 d3))
(*.f64 -1 d3)
(neg.f64 d3)
(-.f64 (+.f64 (*.f64 -1 d3) d4) d1)
(fma.f64 -1 (+.f64 d1 d3) d4)
(-.f64 d4 (+.f64 d1 d3))
(-.f64 (+.f64 (*.f64 -1 d3) d4) d1)
(fma.f64 -1 (+.f64 d1 d3) d4)
(-.f64 d4 (+.f64 d1 d3))
(-.f64 (+.f64 (*.f64 -1 d3) d4) d1)
(fma.f64 -1 (+.f64 d1 d3) d4)
(-.f64 d4 (+.f64 d1 d3))
(-.f64 d4 d3)
(-.f64 (+.f64 d4 (*.f64 -1 d1)) d3)
(fma.f64 -1 (+.f64 d1 d3) d4)
(-.f64 d4 (+.f64 d1 d3))
(-.f64 (+.f64 d4 (*.f64 -1 d1)) d3)
(fma.f64 -1 (+.f64 d1 d3) d4)
(-.f64 d4 (+.f64 d1 d3))
(-.f64 (+.f64 d4 (*.f64 -1 d1)) d3)
(fma.f64 -1 (+.f64 d1 d3) d4)
(-.f64 d4 (+.f64 d1 d3))
(*.f64 -1 d1)
(neg.f64 d1)
(-.f64 (+.f64 d4 (*.f64 -1 d1)) d3)
(fma.f64 -1 (+.f64 d1 d3) d4)
(-.f64 d4 (+.f64 d1 d3))
(-.f64 (+.f64 d4 (*.f64 -1 d1)) d3)
(fma.f64 -1 (+.f64 d1 d3) d4)
(-.f64 d4 (+.f64 d1 d3))
(-.f64 (+.f64 d4 (*.f64 -1 d1)) d3)
(fma.f64 -1 (+.f64 d1 d3) d4)
(-.f64 d4 (+.f64 d1 d3))
(*.f64 -1 d1)
(neg.f64 d1)
(-.f64 (+.f64 d4 (*.f64 -1 d1)) d3)
(fma.f64 -1 (+.f64 d1 d3) d4)
(-.f64 d4 (+.f64 d1 d3))
(-.f64 (+.f64 d4 (*.f64 -1 d1)) d3)
(fma.f64 -1 (+.f64 d1 d3) d4)
(-.f64 d4 (+.f64 d1 d3))
(-.f64 (+.f64 d4 (*.f64 -1 d1)) d3)
(fma.f64 -1 (+.f64 d1 d3) d4)
(-.f64 d4 (+.f64 d1 d3))

localize6.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(*.f64 (-.f64 d2 d1) d1)
Compiler

Compiled 14 to 6 computations (57.1% saved)

series3.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

rewrite58.0ms (0.6%)

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

Useful iterations: 0 (0.0ms)

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

simplify92.0ms (1%)

Algorithm
egg-herbie
Rules
761×fma-neg_binary64
638×fma-def_binary64
427×distribute-rgt-neg-in_binary64
356×neg-sub0_binary64
351×neg-mul-1_binary64
Iterations

Useful iterations: 9 (0.0ms)

IterNodesCost
09228
119210
238156
387156
4239156
5757156
61700156
73623156
85312156
96258150
107557150
Stop Event
node limit
Counts
41 → 23
Calls
Call 1
Inputs
(*.f64 -1 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(*.f64 -1 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(*.f64 -1 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
Outputs
(*.f64 -1 (pow.f64 d1 2))
(neg.f64 (*.f64 d1 d1))
(*.f64 d1 (neg.f64 d1))
(*.f64 d1 d1)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 d2))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d1))
(*.f64 d1 (-.f64 d2 d1))
(*.f64 d1 (+.f64 d1 d2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 d2))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d1))
(*.f64 d1 (-.f64 d2 d1))
(*.f64 d1 (+.f64 d1 d2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 d2))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d1))
(*.f64 d1 (-.f64 d2 d1))
(*.f64 d1 (+.f64 d1 d2))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 d2))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d1))
(*.f64 d1 (-.f64 d2 d1))
(*.f64 d1 (+.f64 d1 d2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 d2))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d1))
(*.f64 d1 (-.f64 d2 d1))
(*.f64 d1 (+.f64 d1 d2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 d2))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d1))
(*.f64 d1 (-.f64 d2 d1))
(*.f64 d1 (+.f64 d1 d2))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 d2))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d1))
(*.f64 d1 (-.f64 d2 d1))
(*.f64 d1 (+.f64 d1 d2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 d2))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d1))
(*.f64 d1 (-.f64 d2 d1))
(*.f64 d1 (+.f64 d1 d2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 d2))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d1))
(*.f64 d1 (-.f64 d2 d1))
(*.f64 d1 (+.f64 d1 d2))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 d2))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d1))
(*.f64 d1 (-.f64 d2 d1))
(*.f64 d1 (+.f64 d1 d2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 d2))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d1))
(*.f64 d1 (-.f64 d2 d1))
(*.f64 d1 (+.f64 d1 d2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 d2))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d1))
(*.f64 d1 (-.f64 d2 d1))
(*.f64 d1 (+.f64 d1 d2))
(*.f64 -1 (pow.f64 d1 2))
(neg.f64 (*.f64 d1 d1))
(*.f64 d1 (neg.f64 d1))
(*.f64 d1 d1)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 d2))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d1))
(*.f64 d1 (-.f64 d2 d1))
(*.f64 d1 (+.f64 d1 d2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 d2))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d1))
(*.f64 d1 (-.f64 d2 d1))
(*.f64 d1 (+.f64 d1 d2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 d2))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d1))
(*.f64 d1 (-.f64 d2 d1))
(*.f64 d1 (+.f64 d1 d2))
(*.f64 -1 (pow.f64 d1 2))
(neg.f64 (*.f64 d1 d1))
(*.f64 d1 (neg.f64 d1))
(*.f64 d1 d1)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 d2))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d1))
(*.f64 d1 (-.f64 d2 d1))
(*.f64 d1 (+.f64 d1 d2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 d2))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d1))
(*.f64 d1 (-.f64 d2 d1))
(*.f64 d1 (+.f64 d1 d2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 d2))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d1))
(*.f64 d1 (-.f64 d2 d1))
(*.f64 d1 (+.f64 d1 d2))

eval16.0ms (0.2%)

Compiler

Compiled 895 to 320 computations (64.2% saved)

prune19.0ms (0.2%)

Pruning

16 alts after pruning (3 fresh and 13 done)

PrunedKeptTotal
New74377
Fresh000
Picked011
Done01212
Total741690
Error
0b
Counts
90 → 16
Alt Table
Click to see full alt table
StatusErrorProgram
14.4b
(+.f64 (*.f64 d2 d1) (*.f64 (-.f64 d4 d1) d1))
14.4b
(*.f64 d1 (-.f64 (+.f64 d2 d4) d1))
41.6b
(*.f64 d2 d1)
42.6b
(*.f64 d1 d4)
47.3b
(*.f64 d1 (neg.f64 d3))
28.5b
(*.f64 d1 (-.f64 d4 d3))
27.5b
(*.f64 (-.f64 d2 d3) d1)
34.1b
(*.f64 (-.f64 d2 d1) d1)
22.4b
(*.f64 d1 (+.f64 d2 d4))
34.8b
(*.f64 d1 (-.f64 d4 d1))
61.2b
(*.f64 d1 d1)
34.1b
(+.f64 (*.f64 d2 d1) (*.f64 (neg.f64 d1) d1))
22.4b
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
39.9b
(*.f64 d1 (-.f64 (neg.f64 d1) d3))
20.6b
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
53.9b
(*.f64 d1 (neg.f64 d1))
Compiler

Compiled 150 to 101 computations (32.7% saved)

regimes72.0ms (0.8%)

Counts
24 → 1
Calls
Call 1
Inputs
(*.f64 d1 d1)
(*.f64 d2 d1)
(*.f64 d1 d4)
(*.f64 d2 d1)
(*.f64 d1 (neg.f64 d3))
(*.f64 d1 (neg.f64 d3))
(*.f64 d1 (neg.f64 d1))
(*.f64 d1 (-.f64 d4 d3))
(*.f64 (-.f64 d2 d1) d1)
(*.f64 d1 (-.f64 d4 d1))
(*.f64 (-.f64 d2 d3) d1)
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 (-.f64 (neg.f64 d1) d3))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 d1 (+.f64 d2 (neg.f64 d1)))
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d1))
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
(+.f64 (*.f64 d2 d1) (*.f64 (neg.f64 d1) d1))
(+.f64 (*.f64 d2 d1) (*.f64 (-.f64 d4 d1) d1))
(-.f64 (*.f64 d1 (+.f64 d2 d4)) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d4 d1)) (*.f64 d1 d1))
(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1))
Outputs
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
Calls

5 calls:

14.0ms
d3
14.0ms
(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1))
14.0ms
d4
12.0ms
d1
12.0ms
d2
Results
ErrorSegmentsBranch
0.0b1d1
0.0b1d2
0.0b1d3
0.0b1d4
0.0b1(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1))
Compiler

Compiled 192 to 77 computations (59.9% saved)

regimes196.0ms (2.2%)

Counts
21 → 3
Calls
Call 1
Inputs
(*.f64 d1 d1)
(*.f64 d2 d1)
(*.f64 d1 d4)
(*.f64 d2 d1)
(*.f64 d1 (neg.f64 d3))
(*.f64 d1 (neg.f64 d3))
(*.f64 d1 (neg.f64 d1))
(*.f64 d1 (-.f64 d4 d3))
(*.f64 (-.f64 d2 d1) d1)
(*.f64 d1 (-.f64 d4 d1))
(*.f64 (-.f64 d2 d3) d1)
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 (-.f64 (neg.f64 d1) d3))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 d1 (+.f64 d2 (neg.f64 d1)))
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d1))
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
(+.f64 (*.f64 d2 d1) (*.f64 (neg.f64 d1) d1))
(+.f64 (*.f64 d2 d1) (*.f64 (-.f64 d4 d1) d1))
(-.f64 (*.f64 d1 (+.f64 d2 d4)) (*.f64 d1 d1))
Outputs
(*.f64 (-.f64 d2 d3) d1)
(*.f64 d1 (-.f64 (+.f64 d2 d4) d1))
(*.f64 d1 (-.f64 d4 d3))
Calls

4 calls:

71.0ms
d1
50.0ms
d4
39.0ms
d2
32.0ms
d3
Results
ErrorSegmentsBranch
9.6b7d1
5.0b2d2
4.1b3d3
7.5b4d4
Compiler

Compiled 138 to 54 computations (60.9% saved)

bsearch47.0ms (0.5%)

Algorithm
binary-search
Steps
TimeLeftRight
23.0ms
1.7391305552174773e+110
4.7061885772526554e+110
24.0ms
-4.18581583900377e+120
-3.084907406967929e+115
Compiler

Compiled 26 to 17 computations (34.6% saved)

regimes191.0ms (2.1%)

Counts
16 → 7
Calls
Call 1
Inputs
(*.f64 d1 d1)
(*.f64 d2 d1)
(*.f64 d1 d4)
(*.f64 d2 d1)
(*.f64 d1 (neg.f64 d3))
(*.f64 d1 (neg.f64 d3))
(*.f64 d1 (neg.f64 d1))
(*.f64 d1 (-.f64 d4 d3))
(*.f64 (-.f64 d2 d1) d1)
(*.f64 d1 (-.f64 d4 d1))
(*.f64 (-.f64 d2 d3) d1)
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 (-.f64 (neg.f64 d1) d3))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 d1 (+.f64 d2 (neg.f64 d1)))
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
Outputs
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d1) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 (-.f64 (neg.f64 d1) d3))
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(*.f64 d1 (-.f64 d4 d3))
Calls

4 calls:

74.0ms
d1
54.0ms
d4
32.0ms
d2
27.0ms
d3
Results
ErrorSegmentsBranch
12.5b10d1
10.8b4d2
12.2b3d3
8.6b7d4
Compiler

Compiled 98 to 44 computations (55.1% saved)

bsearch132.0ms (1.5%)

Algorithm
binary-search
Steps
TimeLeftRight
22.0ms
1.5720687059774793e+117
3.131595851905336e+117
23.0ms
5.975992571673666e+76
7.185455967297419e+77
22.0ms
3.330876381759067e+42
4.681502574014293e+45
22.0ms
5.879112490701724e+20
1.8292632417210136e+21
22.0ms
1.5016396958542261e-182
3.467855624563486e-177
22.0ms
-1.3335588599319317e-290
-9.696107098132088e-296
Compiler

Compiled 26 to 17 computations (34.6% saved)

regimes186.0ms (2%)

Counts
15 → 7
Calls
Call 1
Inputs
(*.f64 d1 d1)
(*.f64 d2 d1)
(*.f64 d1 d4)
(*.f64 d2 d1)
(*.f64 d1 (neg.f64 d3))
(*.f64 d1 (neg.f64 d3))
(*.f64 d1 (neg.f64 d1))
(*.f64 d1 (-.f64 d4 d3))
(*.f64 (-.f64 d2 d1) d1)
(*.f64 d1 (-.f64 d4 d1))
(*.f64 (-.f64 d2 d3) d1)
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 (-.f64 (neg.f64 d1) d3))
(*.f64 d1 (+.f64 d2 (neg.f64 d3)))
(*.f64 d1 (+.f64 d2 (neg.f64 d1)))
Outputs
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d1) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 (-.f64 (neg.f64 d1) d3))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 (-.f64 d4 d3))
Calls

4 calls:

73.0ms
d1
53.0ms
d4
33.0ms
d2
24.0ms
d3
Results
ErrorSegmentsBranch
12.5b10d1
10.8b4d2
12.2b3d3
8.6b7d4
Compiler

Compiled 91 to 43 computations (52.7% saved)

bsearch132.0ms (1.4%)

Algorithm
binary-search
Steps
TimeLeftRight
22.0ms
1.5720687059774793e+117
3.131595851905336e+117
22.0ms
5.975992571673666e+76
7.185455967297419e+77
22.0ms
3.330876381759067e+42
4.681502574014293e+45
22.0ms
5.879112490701724e+20
1.8292632417210136e+21
22.0ms
1.5016396958542261e-182
3.467855624563486e-177
22.0ms
-1.3335588599319317e-290
-9.696107098132088e-296
Compiler

Compiled 26 to 17 computations (34.6% saved)

regimes163.0ms (1.8%)

Counts
12 → 7
Calls
Call 1
Inputs
(*.f64 d1 d1)
(*.f64 d2 d1)
(*.f64 d1 d4)
(*.f64 d2 d1)
(*.f64 d1 (neg.f64 d3))
(*.f64 d1 (neg.f64 d3))
(*.f64 d1 (neg.f64 d1))
(*.f64 d1 (-.f64 d4 d3))
(*.f64 (-.f64 d2 d1) d1)
(*.f64 d1 (-.f64 d4 d1))
(*.f64 (-.f64 d2 d3) d1)
(*.f64 d1 (+.f64 d2 d4))
Outputs
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d1) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 d1 (-.f64 d4 d1))
(*.f64 (-.f64 d2 d3) d1)
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 (-.f64 d4 d3))
Calls

4 calls:

67.0ms
d1
46.0ms
d4
26.0ms
d2
20.0ms
d3
Results
ErrorSegmentsBranch
12.6b10d1
10.8b4d2
12.2b3d3
8.9b7d4
Compiler

Compiled 73 to 37 computations (49.3% saved)

bsearch139.0ms (1.5%)

Algorithm
binary-search
Steps
TimeLeftRight
25.0ms
1.5720687059774793e+117
3.131595851905336e+117
22.0ms
8.738221724990441e+86
4.061150536304023e+89
24.0ms
4.681502574014293e+45
4.3294638419792323e+46
22.0ms
4.3015370338658823e+33
2.216638997519436e+36
23.0ms
1.5016396958542261e-182
3.467855624563486e-177
22.0ms
-1.3335588599319317e-290
-9.696107098132088e-296
Compiler

Compiled 26 to 17 computations (34.6% saved)

regimes153.0ms (1.7%)

Counts
11 → 4
Calls
Call 1
Inputs
(*.f64 d1 d1)
(*.f64 d2 d1)
(*.f64 d1 d4)
(*.f64 d2 d1)
(*.f64 d1 (neg.f64 d3))
(*.f64 d1 (neg.f64 d3))
(*.f64 d1 (neg.f64 d1))
(*.f64 d1 (-.f64 d4 d3))
(*.f64 (-.f64 d2 d1) d1)
(*.f64 d1 (-.f64 d4 d1))
(*.f64 (-.f64 d2 d3) d1)
Outputs
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d1) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 d1 (-.f64 d4 d3))
Calls

4 calls:

51.0ms
d3
45.0ms
d1
30.0ms
d4
25.0ms
d2
Results
ErrorSegmentsBranch
19.1b6d1
10.8b4d2
12.9b8d3
10.0b4d4
Compiler

Compiled 68 to 35 computations (48.5% saved)

bsearch70.0ms (0.8%)

Algorithm
binary-search
Steps
TimeLeftRight
22.0ms
4.3015370338658823e+33
2.216638997519436e+36
23.0ms
1.5016396958542261e-182
3.467855624563486e-177
25.0ms
-1.3335588599319317e-290
-9.696107098132088e-296
Compiler

Compiled 26 to 17 computations (34.6% saved)

regimes173.0ms (1.9%)

Counts
10 → 6
Calls
Call 1
Inputs
(*.f64 d1 d1)
(*.f64 d2 d1)
(*.f64 d1 d4)
(*.f64 d2 d1)
(*.f64 d1 (neg.f64 d3))
(*.f64 d1 (neg.f64 d3))
(*.f64 d1 (neg.f64 d1))
(*.f64 d1 (-.f64 d4 d3))
(*.f64 (-.f64 d2 d1) d1)
(*.f64 d1 (-.f64 d4 d1))
Outputs
(*.f64 (-.f64 d2 d1) d1)
(*.f64 d1 (-.f64 d4 d3))
(*.f64 (-.f64 d2 d1) d1)
(*.f64 d1 (-.f64 d4 d3))
(*.f64 d1 (-.f64 d4 d1))
(*.f64 d1 (-.f64 d4 d3))
Calls

4 calls:

57.0ms
d3
47.0ms
d1
35.0ms
d2
30.0ms
d4
Results
ErrorSegmentsBranch
21.0b6d1
12.8b6d2
13.7b9d3
13.8b4d4
Compiler

Compiled 63 to 33 computations (47.6% saved)

bsearch124.0ms (1.4%)

Algorithm
binary-search
Steps
TimeLeftRight
29.0ms
6.420767691291201e-249
9.862295219693856e-230
22.0ms
-7.858136923995412e-257
-1.7391534645349425e-257
22.0ms
-3.21908658503192e-9
-1.0487800858658608e-12
28.0ms
-7.515565707230057e+59
-2.0768429652173555e+55
22.0ms
-1.499302884301287e+124
-1.4284526986286586e+119
Compiler

Compiled 26 to 17 computations (34.6% saved)

regimes143.0ms (1.6%)

Counts
9 → 4
Calls
Call 1
Inputs
(*.f64 d1 d1)
(*.f64 d2 d1)
(*.f64 d1 d4)
(*.f64 d2 d1)
(*.f64 d1 (neg.f64 d3))
(*.f64 d1 (neg.f64 d3))
(*.f64 d1 (neg.f64 d1))
(*.f64 d1 (-.f64 d4 d3))
(*.f64 (-.f64 d2 d1) d1)
Outputs
(*.f64 (-.f64 d2 d1) d1)
(*.f64 d1 (neg.f64 d3))
(*.f64 (-.f64 d2 d1) d1)
(*.f64 d1 (-.f64 d4 d3))
Calls

4 calls:

52.0ms
d3
36.0ms
d1
29.0ms
d4
23.0ms
d2
Results
ErrorSegmentsBranch
21.1b7d1
14.2b4d2
16.6b9d3
13.8b4d4
Compiler

Compiled 58 to 31 computations (46.6% saved)

bsearch66.0ms (0.7%)

Algorithm
binary-search
Steps
TimeLeftRight
22.0ms
3.4990594534881605e-40
2.4785502592571666e-37
22.0ms
1.8526296186257632e-143
1.0279119734276204e-136
22.0ms
1.5016396958542261e-182
3.467855624563486e-177
Compiler

Compiled 26 to 17 computations (34.6% saved)

regimes136.0ms (1.5%)

Counts
8 → 4
Calls
Call 1
Inputs
(*.f64 d1 d1)
(*.f64 d2 d1)
(*.f64 d1 d4)
(*.f64 d2 d1)
(*.f64 d1 (neg.f64 d3))
(*.f64 d1 (neg.f64 d3))
(*.f64 d1 (neg.f64 d1))
(*.f64 d1 (-.f64 d4 d3))
Outputs
(*.f64 d2 d1)
(*.f64 d1 (-.f64 d4 d3))
(*.f64 d2 d1)
(*.f64 d1 (-.f64 d4 d3))
Calls

4 calls:

44.0ms
d3
37.0ms
d1
33.0ms
d4
20.0ms
d2
Results
ErrorSegmentsBranch
23.6b7d1
15.1b4d2
20.6b9d3
17.7b6d4
Compiler

Compiled 53 to 29 computations (45.3% saved)

bsearch66.0ms (0.7%)

Algorithm
binary-search
Steps
TimeLeftRight
22.0ms
-2521890924.964147
-120588501.39895149
22.0ms
-7.515565707230057e+59
-2.0768429652173555e+55
22.0ms
-1.499302884301287e+124
-1.4284526986286586e+119
Compiler

Compiled 26 to 17 computations (34.6% saved)

regimes178.0ms (2%)

Counts
7 → 9
Calls
Call 1
Inputs
(*.f64 d1 d1)
(*.f64 d2 d1)
(*.f64 d1 d4)
(*.f64 d2 d1)
(*.f64 d1 (neg.f64 d3))
(*.f64 d1 (neg.f64 d3))
(*.f64 d1 (neg.f64 d1))
Outputs
(*.f64 d2 d1)
(*.f64 d1 (neg.f64 d3))
(*.f64 d2 d1)
(*.f64 d1 (neg.f64 d3))
(*.f64 d2 d1)
(*.f64 d1 (neg.f64 d3))
(*.f64 d1 d4)
(*.f64 d1 (neg.f64 d3))
(*.f64 d1 d4)
Calls

4 calls:

59.0ms
d3
46.0ms
d2
40.0ms
d4
31.0ms
d1
Results
ErrorSegmentsBranch
33.5b7d1
23.4b6d2
24.4b9d3
22.2b9d4
Compiler

Compiled 48 to 27 computations (43.8% saved)

bsearch176.0ms (1.9%)

Algorithm
binary-search
Steps
TimeLeftRight
22.0ms
4.061150536304023e+89
6.114283482335938e+90
22.0ms
3.330876381759067e+42
4.681502574014293e+45
22.0ms
5.879112490701724e+20
1.8292632417210136e+21
23.0ms
9.444204634317629e-91
3.873584092353377e-89
22.0ms
1.8526296186257632e-143
1.0279119734276204e-136
21.0ms
1.5016396958542261e-182
3.467855624563486e-177
22.0ms
-1.3335588599319317e-290
-9.696107098132088e-296
22.0ms
-1.0240183063868827e-168
-1.9496448263658894e-185
Compiler

Compiled 26 to 17 computations (34.6% saved)

regimes104.0ms (1.1%)

Counts
4 → 2
Calls
Call 1
Inputs
(*.f64 d1 d1)
(*.f64 d2 d1)
(*.f64 d1 d4)
(*.f64 d2 d1)
Outputs
(*.f64 d2 d1)
(*.f64 d1 d4)
Calls

4 calls:

73.0ms
d3
15.0ms
d1
7.0ms
d2
7.0ms
d4
Results
ErrorSegmentsBranch
38.5b4d1
26.4b2d2
32.4b9d3
27.1b2d4
Compiler

Compiled 36 to 23 computations (36.1% saved)

bsearch22.0ms (0.2%)

Algorithm
binary-search
Steps
TimeLeftRight
22.0ms
-3.784289850813809e-46
-1.2597526199554072e-54
Compiler

Compiled 26 to 17 computations (34.6% saved)

regimes14.0ms (0.2%)

Accuracy

Total -19.8b remaining (-47.7%)

Threshold costs -19.8b (-47.7%)

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

4 calls:

3.0ms
d4
3.0ms
d2
3.0ms
d1
3.0ms
d3
Results
ErrorSegmentsBranch
41.6b1d1
41.6b1d2
41.6b1d3
41.6b1d4
Compiler

Compiled 30 to 22 computations (26.7% saved)

simplify35.0ms (0.4%)

Algorithm
egg-herbie
Rules
18×*-commutative_binary64
15×+-commutative_binary64
12×sub-neg_binary64
neg-sub0_binary64
neg-mul-1_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0119628
1150628
2169628
3181628
4189628
5191628
6192628
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(if (<=.f64 d3 -4185815839003770115261635198991843186217680391892026618827581253099021461148446299966057359226159177897971179645631987712) (*.f64 (-.f64 d2 d3) d1) (if (<=.f64 d3 173913055521747731303615837368957036128751212968322564844095077157292204628218363622465818881424177230950432768) (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)) (*.f64 d1 (-.f64 d4 d3))))
(if (<=.f64 d4 -4682284389520411/351111940402796075728379920075981393284761128699669252487168127261196632432619068618571244770327218791250222421623815151677323767215657465806342637967722899175327916845440400930277772658683777577056802640791026892262013051450122815378736544025053197584668966180832613749896964723593195907881555331297312768) (*.f64 (-.f64 d2 d3) d1) (if (<=.f64 d4 2244982191357677/149502054158244092924433911175587146134101311725520811805218980426523448679093940601025751001247626027946551200107541538756647476310030352326743206124657514520641361489437161884315621531536712531968) (*.f64 (-.f64 d2 d1) d1) (if (<=.f64 d4 587911249070172405760) (*.f64 (-.f64 d2 d3) d1) (if (<=.f64 d4 3330876381759067006894127389789208344264704) (*.f64 d1 (+.f64 d2 d4)) (if (<=.f64 d4 59759925716736664143253867415797522176247173478877012928869150375265876049920) (*.f64 d1 (-.f64 (neg.f64 d1) d3)) (if (<=.f64 d4 1572068705977479268603950140595943422136221203540007448815994483448602351501218554175332223177362209900010655113543680) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (*.f64 d1 (-.f64 d4 d3))))))))
(if (<=.f64 d4 -4682284389520411/351111940402796075728379920075981393284761128699669252487168127261196632432619068618571244770327218791250222421623815151677323767215657465806342637967722899175327916845440400930277772658683777577056802640791026892262013051450122815378736544025053197584668966180832613749896964723593195907881555331297312768) (*.f64 (-.f64 d2 d3) d1) (if (<=.f64 d4 2244982191357677/149502054158244092924433911175587146134101311725520811805218980426523448679093940601025751001247626027946551200107541538756647476310030352326743206124657514520641361489437161884315621531536712531968) (*.f64 (-.f64 d2 d1) d1) (if (<=.f64 d4 587911249070172405760) (*.f64 (-.f64 d2 d3) d1) (if (<=.f64 d4 3330876381759067006894127389789208344264704) (*.f64 d1 (+.f64 d2 d4)) (if (<=.f64 d4 59759925716736664143253867415797522176247173478877012928869150375265876049920) (*.f64 d1 (-.f64 (neg.f64 d1) d3)) (if (<=.f64 d4 1572068705977479268603950140595943422136221203540007448815994483448602351501218554175332223177362209900010655113543680) (*.f64 d1 (+.f64 d2 d4)) (*.f64 d1 (-.f64 d4 d3))))))))
(if (<=.f64 d4 -4682284389520411/351111940402796075728379920075981393284761128699669252487168127261196632432619068618571244770327218791250222421623815151677323767215657465806342637967722899175327916845440400930277772658683777577056802640791026892262013051450122815378736544025053197584668966180832613749896964723593195907881555331297312768) (*.f64 (-.f64 d2 d3) d1) (if (<=.f64 d4 2244982191357677/149502054158244092924433911175587146134101311725520811805218980426523448679093940601025751001247626027946551200107541538756647476310030352326743206124657514520641361489437161884315621531536712531968) (*.f64 (-.f64 d2 d1) d1) (if (<=.f64 d4 4301537033865882346720522397548544) (*.f64 (-.f64 d2 d3) d1) (if (<=.f64 d4 4681502574014293006543969457655231231308070912) (*.f64 d1 (-.f64 d4 d1)) (if (<=.f64 d4 873822172499044074780689047169432892348984795627992563185378483428045132559938486272000) (*.f64 (-.f64 d2 d3) d1) (if (<=.f64 d4 1572068705977479268603950140595943422136221203540007448815994483448602351501218554175332223177362209900010655113543680) (*.f64 d1 (+.f64 d2 d4)) (*.f64 d1 (-.f64 d4 d3))))))))
(if (<=.f64 d4 -4682284389520411/351111940402796075728379920075981393284761128699669252487168127261196632432619068618571244770327218791250222421623815151677323767215657465806342637967722899175327916845440400930277772658683777577056802640791026892262013051450122815378736544025053197584668966180832613749896964723593195907881555331297312768) (*.f64 (-.f64 d2 d3) d1) (if (<=.f64 d4 2244982191357677/149502054158244092924433911175587146134101311725520811805218980426523448679093940601025751001247626027946551200107541538756647476310030352326743206124657514520641361489437161884315621531536712531968) (*.f64 (-.f64 d2 d1) d1) (if (<=.f64 d4 4301537033865882346720522397548544) (*.f64 (-.f64 d2 d3) d1) (*.f64 d1 (-.f64 d4 d3)))))
(if (<=.f64 d2 -14993028843012870225027121290327948534145501430555593223815393047015139100231555734105062408323968028366246455091501666926592) (*.f64 (-.f64 d2 d1) d1) (if (<=.f64 d2 -751556570723005674445862003985155882292060441476799655837696) (*.f64 d1 (-.f64 d4 d3)) (if (<=.f64 d2 -7783273776440343/2417851639229258349412352) (*.f64 (-.f64 d2 d1) d1) (if (<=.f64 d2 -5313805775183379/67621699985365151533099492469314125634412457732623554832378970755414259527260782012725408753620120050518322559136912470896940487616343748768068989243256265844273495551872650773597634262582584454787101812251032115730947621472199902571314803042180668990660938354910463787008) (*.f64 d1 (-.f64 d4 d3)) (if (<=.f64 d2 3234917122842515/503820925841965910293903145710484129446837736164208910110436162020372297817921504473130470168740451712297816270119789770967814979078946625948466280425014092358004268645291408699733274151255074551605446727954090503833797734023629893148800753371273495187319355867136) (*.f64 d1 (-.f64 d4 d1)) (*.f64 d1 (-.f64 d4 d3)))))))
(if (<=.f64 d4 2244982191357677/149502054158244092924433911175587146134101311725520811805218980426523448679093940601025751001247626027946551200107541538756647476310030352326743206124657514520641361489437161884315621531536712531968) (*.f64 (-.f64 d2 d1) d1) (if (<=.f64 d4 4069736790729857/219673525124179510879420825570604582952621929604585773100622830693937381868724993667921908501166545759273481964527387457187903615990932602002368905315681828864) (*.f64 d1 (neg.f64 d3)) (if (<=.f64 d4 134057325242381/383123885216472214589586756787577295904684780545900544) (*.f64 (-.f64 d2 d1) d1) (*.f64 d1 (-.f64 d4 d3)))))
(if (<=.f64 d2 -14993028843012870225027121290327948534145501430555593223815393047015139100231555734105062408323968028366246455091501666926592) (*.f64 d2 d1) (if (<=.f64 d2 -751556570723005674445862003985155882292060441476799655837696) (*.f64 d1 (-.f64 d4 d3)) (if (<=.f64 d2 -5288788597070411/2097152) (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d3)))))
(if (<=.f64 d4 -4351160222895633/4249103942534136789516705652419749018636744941816255385595553105603228478886817941913300018121834285351114635889972008122772634701221657915276159830132698815550650166683145752253825024) (*.f64 d2 d1) (if (<=.f64 d4 -4682284389520411/351111940402796075728379920075981393284761128699669252487168127261196632432619068618571244770327218791250222421623815151677323767215657465806342637967722899175327916845440400930277772658683777577056802640791026892262013051450122815378736544025053197584668966180832613749896964723593195907881555331297312768) (*.f64 d1 (neg.f64 d3)) (if (<=.f64 d4 2244982191357677/149502054158244092924433911175587146134101311725520811805218980426523448679093940601025751001247626027946551200107541538756647476310030352326743206124657514520641361489437161884315621531536712531968) (*.f64 d2 d1) (if (<=.f64 d4 4069736790729857/219673525124179510879420825570604582952621929604585773100622830693937381868724993667921908501166545759273481964527387457187903615990932602002368905315681828864) (*.f64 d1 (neg.f64 d3)) (if (<=.f64 d4 8664108103173801/9173994463960286046443283581208347763186259956673124494950355357547691504353939232280074212440502746218496) (*.f64 d2 d1) (if (<=.f64 d4 587911249070172405760) (*.f64 d1 (neg.f64 d3)) (if (<=.f64 d4 3330876381759067006894127389789208344264704) (*.f64 d1 d4) (if (<=.f64 d4 406115053630402322273209552542410685324426271270075628537906488654005576834346797825523712) (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d4)))))))))
(if (<=.f64 d2 -4864895465420711/12855504354071922204335696738729300820177623950262342682411008) (*.f64 d2 d1) (*.f64 d1 d4))
(*.f64 d2 d1)
(*.f64 d1 d1)
Outputs
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(if (<=.f64 d3 -4185815839003770115261635198991843186217680391892026618827581253099021461148446299966057359226159177897971179645631987712) (*.f64 (-.f64 d2 d3) d1) (if (<=.f64 d3 173913055521747731303615837368957036128751212968322564844095077157292204628218363622465818881424177230950432768) (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)) (*.f64 d1 (-.f64 d4 d3))))
(if (<=.f64 d3 -4185815839003770115261635198991843186217680391892026618827581253099021461148446299966057359226159177897971179645631987712) (*.f64 d1 (-.f64 d2 d3)) (if (<=.f64 d3 173913055521747731303615837368957036128751212968322564844095077157292204628218363622465818881424177230950432768) (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)) (*.f64 d1 (-.f64 d4 d3))))
(if (<=.f64 d4 -4682284389520411/351111940402796075728379920075981393284761128699669252487168127261196632432619068618571244770327218791250222421623815151677323767215657465806342637967722899175327916845440400930277772658683777577056802640791026892262013051450122815378736544025053197584668966180832613749896964723593195907881555331297312768) (*.f64 (-.f64 d2 d3) d1) (if (<=.f64 d4 2244982191357677/149502054158244092924433911175587146134101311725520811805218980426523448679093940601025751001247626027946551200107541538756647476310030352326743206124657514520641361489437161884315621531536712531968) (*.f64 (-.f64 d2 d1) d1) (if (<=.f64 d4 587911249070172405760) (*.f64 (-.f64 d2 d3) d1) (if (<=.f64 d4 3330876381759067006894127389789208344264704) (*.f64 d1 (+.f64 d2 d4)) (if (<=.f64 d4 59759925716736664143253867415797522176247173478877012928869150375265876049920) (*.f64 d1 (-.f64 (neg.f64 d1) d3)) (if (<=.f64 d4 1572068705977479268603950140595943422136221203540007448815994483448602351501218554175332223177362209900010655113543680) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (*.f64 d1 (-.f64 d4 d3))))))))
(if (<=.f64 d4 -4682284389520411/351111940402796075728379920075981393284761128699669252487168127261196632432619068618571244770327218791250222421623815151677323767215657465806342637967722899175327916845440400930277772658683777577056802640791026892262013051450122815378736544025053197584668966180832613749896964723593195907881555331297312768) (*.f64 d1 (-.f64 d2 d3)) (if (<=.f64 d4 2244982191357677/149502054158244092924433911175587146134101311725520811805218980426523448679093940601025751001247626027946551200107541538756647476310030352326743206124657514520641361489437161884315621531536712531968) (*.f64 d1 (-.f64 d2 d1)) (if (<=.f64 d4 587911249070172405760) (*.f64 d1 (-.f64 d2 d3)) (if (<=.f64 d4 3330876381759067006894127389789208344264704) (*.f64 d1 (+.f64 d2 d4)) (if (<=.f64 d4 59759925716736664143253867415797522176247173478877012928869150375265876049920) (*.f64 d1 (-.f64 (neg.f64 d1) d3)) (if (<=.f64 d4 1572068705977479268603950140595943422136221203540007448815994483448602351501218554175332223177362209900010655113543680) (+.f64 (*.f64 d1 d2) (*.f64 d1 d4)) (*.f64 d1 (-.f64 d4 d3))))))))
(if (<=.f64 d4 -4682284389520411/351111940402796075728379920075981393284761128699669252487168127261196632432619068618571244770327218791250222421623815151677323767215657465806342637967722899175327916845440400930277772658683777577056802640791026892262013051450122815378736544025053197584668966180832613749896964723593195907881555331297312768) (*.f64 d1 (-.f64 d2 d3)) (if (<=.f64 d4 2244982191357677/149502054158244092924433911175587146134101311725520811805218980426523448679093940601025751001247626027946551200107541538756647476310030352326743206124657514520641361489437161884315621531536712531968) (*.f64 d1 (-.f64 d2 d1)) (if (<=.f64 d4 587911249070172405760) (*.f64 d1 (-.f64 d2 d3)) (if (<=.f64 d4 3330876381759067006894127389789208344264704) (*.f64 d1 (+.f64 d2 d4)) (if (<=.f64 d4 59759925716736664143253867415797522176247173478877012928869150375265876049920) (neg.f64 (*.f64 d1 (+.f64 d1 d3))) (if (<=.f64 d4 1572068705977479268603950140595943422136221203540007448815994483448602351501218554175332223177362209900010655113543680) (+.f64 (*.f64 d1 d2) (*.f64 d1 d4)) (*.f64 d1 (-.f64 d4 d3))))))))
(if (<=.f64 d4 -4682284389520411/351111940402796075728379920075981393284761128699669252487168127261196632432619068618571244770327218791250222421623815151677323767215657465806342637967722899175327916845440400930277772658683777577056802640791026892262013051450122815378736544025053197584668966180832613749896964723593195907881555331297312768) (*.f64 d1 (-.f64 d2 d3)) (if (<=.f64 d4 2244982191357677/149502054158244092924433911175587146134101311725520811805218980426523448679093940601025751001247626027946551200107541538756647476310030352326743206124657514520641361489437161884315621531536712531968) (*.f64 d1 (-.f64 d2 d1)) (if (<=.f64 d4 587911249070172405760) (*.f64 d1 (-.f64 d2 d3)) (if (<=.f64 d4 3330876381759067006894127389789208344264704) (*.f64 d1 (+.f64 d2 d4)) (if (<=.f64 d4 59759925716736664143253867415797522176247173478877012928869150375265876049920) (*.f64 (+.f64 d1 d3) (neg.f64 d1)) (if (<=.f64 d4 1572068705977479268603950140595943422136221203540007448815994483448602351501218554175332223177362209900010655113543680) (+.f64 (*.f64 d1 d2) (*.f64 d1 d4)) (*.f64 d1 (-.f64 d4 d3))))))))
(if (<=.f64 d4 -4682284389520411/351111940402796075728379920075981393284761128699669252487168127261196632432619068618571244770327218791250222421623815151677323767215657465806342637967722899175327916845440400930277772658683777577056802640791026892262013051450122815378736544025053197584668966180832613749896964723593195907881555331297312768) (*.f64 (-.f64 d2 d3) d1) (if (<=.f64 d4 2244982191357677/149502054158244092924433911175587146134101311725520811805218980426523448679093940601025751001247626027946551200107541538756647476310030352326743206124657514520641361489437161884315621531536712531968) (*.f64 (-.f64 d2 d1) d1) (if (<=.f64 d4 587911249070172405760) (*.f64 (-.f64 d2 d3) d1) (if (<=.f64 d4 3330876381759067006894127389789208344264704) (*.f64 d1 (+.f64 d2 d4)) (if (<=.f64 d4 59759925716736664143253867415797522176247173478877012928869150375265876049920) (*.f64 d1 (-.f64 (neg.f64 d1) d3)) (if (<=.f64 d4 1572068705977479268603950140595943422136221203540007448815994483448602351501218554175332223177362209900010655113543680) (*.f64 d1 (+.f64 d2 d4)) (*.f64 d1 (-.f64 d4 d3))))))))
(if (<=.f64 d4 -4682284389520411/351111940402796075728379920075981393284761128699669252487168127261196632432619068618571244770327218791250222421623815151677323767215657465806342637967722899175327916845440400930277772658683777577056802640791026892262013051450122815378736544025053197584668966180832613749896964723593195907881555331297312768) (*.f64 d1 (-.f64 d2 d3)) (if (<=.f64 d4 2244982191357677/149502054158244092924433911175587146134101311725520811805218980426523448679093940601025751001247626027946551200107541538756647476310030352326743206124657514520641361489437161884315621531536712531968) (*.f64 d1 (-.f64 d2 d1)) (if (<=.f64 d4 587911249070172405760) (*.f64 d1 (-.f64 d2 d3)) (if (<=.f64 d4 3330876381759067006894127389789208344264704) (*.f64 d1 (+.f64 d2 d4)) (if (<=.f64 d4 59759925716736664143253867415797522176247173478877012928869150375265876049920) (*.f64 d1 (-.f64 (neg.f64 d1) d3)) (if (<=.f64 d4 1572068705977479268603950140595943422136221203540007448815994483448602351501218554175332223177362209900010655113543680) (*.f64 d1 (+.f64 d2 d4)) (*.f64 d1 (-.f64 d4 d3))))))))
(if (<=.f64 d4 -4682284389520411/351111940402796075728379920075981393284761128699669252487168127261196632432619068618571244770327218791250222421623815151677323767215657465806342637967722899175327916845440400930277772658683777577056802640791026892262013051450122815378736544025053197584668966180832613749896964723593195907881555331297312768) (*.f64 d1 (-.f64 d2 d3)) (if (<=.f64 d4 2244982191357677/149502054158244092924433911175587146134101311725520811805218980426523448679093940601025751001247626027946551200107541538756647476310030352326743206124657514520641361489437161884315621531536712531968) (*.f64 d1 (-.f64 d2 d1)) (if (<=.f64 d4 587911249070172405760) (*.f64 d1 (-.f64 d2 d3)) (if (<=.f64 d4 3330876381759067006894127389789208344264704) (*.f64 d1 (+.f64 d2 d4)) (if (<=.f64 d4 59759925716736664143253867415797522176247173478877012928869150375265876049920) (neg.f64 (*.f64 d1 (+.f64 d1 d3))) (if (<=.f64 d4 1572068705977479268603950140595943422136221203540007448815994483448602351501218554175332223177362209900010655113543680) (*.f64 d1 (+.f64 d2 d4)) (*.f64 d1 (-.f64 d4 d3))))))))
(if (<=.f64 d4 -4682284389520411/351111940402796075728379920075981393284761128699669252487168127261196632432619068618571244770327218791250222421623815151677323767215657465806342637967722899175327916845440400930277772658683777577056802640791026892262013051450122815378736544025053197584668966180832613749896964723593195907881555331297312768) (*.f64 d1 (-.f64 d2 d3)) (if (<=.f64 d4 2244982191357677/149502054158244092924433911175587146134101311725520811805218980426523448679093940601025751001247626027946551200107541538756647476310030352326743206124657514520641361489437161884315621531536712531968) (*.f64 d1 (-.f64 d2 d1)) (if (<=.f64 d4 587911249070172405760) (*.f64 d1 (-.f64 d2 d3)) (if (<=.f64 d4 3330876381759067006894127389789208344264704) (*.f64 d1 (+.f64 d2 d4)) (if (<=.f64 d4 59759925716736664143253867415797522176247173478877012928869150375265876049920) (*.f64 (+.f64 d1 d3) (neg.f64 d1)) (if (<=.f64 d4 1572068705977479268603950140595943422136221203540007448815994483448602351501218554175332223177362209900010655113543680) (*.f64 d1 (+.f64 d2 d4)) (*.f64 d1 (-.f64 d4 d3))))))))
(if (<=.f64 d4 -4682284389520411/351111940402796075728379920075981393284761128699669252487168127261196632432619068618571244770327218791250222421623815151677323767215657465806342637967722899175327916845440400930277772658683777577056802640791026892262013051450122815378736544025053197584668966180832613749896964723593195907881555331297312768) (*.f64 (-.f64 d2 d3) d1) (if (<=.f64 d4 2244982191357677/149502054158244092924433911175587146134101311725520811805218980426523448679093940601025751001247626027946551200107541538756647476310030352326743206124657514520641361489437161884315621531536712531968) (*.f64 (-.f64 d2 d1) d1) (if (<=.f64 d4 4301537033865882346720522397548544) (*.f64 (-.f64 d2 d3) d1) (if (<=.f64 d4 4681502574014293006543969457655231231308070912) (*.f64 d1 (-.f64 d4 d1)) (if (<=.f64 d4 873822172499044074780689047169432892348984795627992563185378483428045132559938486272000) (*.f64 (-.f64 d2 d3) d1) (if (<=.f64 d4 1572068705977479268603950140595943422136221203540007448815994483448602351501218554175332223177362209900010655113543680) (*.f64 d1 (+.f64 d2 d4)) (*.f64 d1 (-.f64 d4 d3))))))))
(if (<=.f64 d4 -4682284389520411/351111940402796075728379920075981393284761128699669252487168127261196632432619068618571244770327218791250222421623815151677323767215657465806342637967722899175327916845440400930277772658683777577056802640791026892262013051450122815378736544025053197584668966180832613749896964723593195907881555331297312768) (*.f64 d1 (-.f64 d2 d3)) (if (<=.f64 d4 2244982191357677/149502054158244092924433911175587146134101311725520811805218980426523448679093940601025751001247626027946551200107541538756647476310030352326743206124657514520641361489437161884315621531536712531968) (*.f64 d1 (-.f64 d2 d1)) (if (<=.f64 d4 4301537033865882346720522397548544) (*.f64 d1 (-.f64 d2 d3)) (if (<=.f64 d4 4681502574014293006543969457655231231308070912) (*.f64 d1 (-.f64 d4 d1)) (if (<=.f64 d4 873822172499044074780689047169432892348984795627992563185378483428045132559938486272000) (*.f64 d1 (-.f64 d2 d3)) (if (<=.f64 d4 1572068705977479268603950140595943422136221203540007448815994483448602351501218554175332223177362209900010655113543680) (*.f64 d1 (+.f64 d2 d4)) (*.f64 d1 (-.f64 d4 d3))))))))
(if (<=.f64 d4 -4682284389520411/351111940402796075728379920075981393284761128699669252487168127261196632432619068618571244770327218791250222421623815151677323767215657465806342637967722899175327916845440400930277772658683777577056802640791026892262013051450122815378736544025053197584668966180832613749896964723593195907881555331297312768) (*.f64 (-.f64 d2 d3) d1) (if (<=.f64 d4 2244982191357677/149502054158244092924433911175587146134101311725520811805218980426523448679093940601025751001247626027946551200107541538756647476310030352326743206124657514520641361489437161884315621531536712531968) (*.f64 (-.f64 d2 d1) d1) (if (<=.f64 d4 4301537033865882346720522397548544) (*.f64 (-.f64 d2 d3) d1) (*.f64 d1 (-.f64 d4 d3)))))
(if (<=.f64 d4 -4682284389520411/351111940402796075728379920075981393284761128699669252487168127261196632432619068618571244770327218791250222421623815151677323767215657465806342637967722899175327916845440400930277772658683777577056802640791026892262013051450122815378736544025053197584668966180832613749896964723593195907881555331297312768) (*.f64 d1 (-.f64 d2 d3)) (if (<=.f64 d4 2244982191357677/149502054158244092924433911175587146134101311725520811805218980426523448679093940601025751001247626027946551200107541538756647476310030352326743206124657514520641361489437161884315621531536712531968) (*.f64 d1 (-.f64 d2 d1)) (if (<=.f64 d4 4301537033865882346720522397548544) (*.f64 d1 (-.f64 d2 d3)) (*.f64 d1 (-.f64 d4 d3)))))
(if (<=.f64 d2 -14993028843012870225027121290327948534145501430555593223815393047015139100231555734105062408323968028366246455091501666926592) (*.f64 (-.f64 d2 d1) d1) (if (<=.f64 d2 -751556570723005674445862003985155882292060441476799655837696) (*.f64 d1 (-.f64 d4 d3)) (if (<=.f64 d2 -7783273776440343/2417851639229258349412352) (*.f64 (-.f64 d2 d1) d1) (if (<=.f64 d2 -5313805775183379/67621699985365151533099492469314125634412457732623554832378970755414259527260782012725408753620120050518322559136912470896940487616343748768068989243256265844273495551872650773597634262582584454787101812251032115730947621472199902571314803042180668990660938354910463787008) (*.f64 d1 (-.f64 d4 d3)) (if (<=.f64 d2 3234917122842515/503820925841965910293903145710484129446837736164208910110436162020372297817921504473130470168740451712297816270119789770967814979078946625948466280425014092358004268645291408699733274151255074551605446727954090503833797734023629893148800753371273495187319355867136) (*.f64 d1 (-.f64 d4 d1)) (*.f64 d1 (-.f64 d4 d3)))))))
(if (<=.f64 d2 -14993028843012870225027121290327948534145501430555593223815393047015139100231555734105062408323968028366246455091501666926592) (*.f64 d1 (-.f64 d2 d1)) (if (<=.f64 d2 -751556570723005674445862003985155882292060441476799655837696) (*.f64 d1 (-.f64 d4 d3)) (if (<=.f64 d2 -7783273776440343/2417851639229258349412352) (*.f64 d1 (-.f64 d2 d1)) (if (<=.f64 d2 -5313805775183379/67621699985365151533099492469314125634412457732623554832378970755414259527260782012725408753620120050518322559136912470896940487616343748768068989243256265844273495551872650773597634262582584454787101812251032115730947621472199902571314803042180668990660938354910463787008) (*.f64 d1 (-.f64 d4 d3)) (if (<=.f64 d2 3234917122842515/503820925841965910293903145710484129446837736164208910110436162020372297817921504473130470168740451712297816270119789770967814979078946625948466280425014092358004268645291408699733274151255074551605446727954090503833797734023629893148800753371273495187319355867136) (*.f64 d1 (-.f64 d4 d1)) (*.f64 d1 (-.f64 d4 d3)))))))
(if (<=.f64 d4 2244982191357677/149502054158244092924433911175587146134101311725520811805218980426523448679093940601025751001247626027946551200107541538756647476310030352326743206124657514520641361489437161884315621531536712531968) (*.f64 (-.f64 d2 d1) d1) (if (<=.f64 d4 4069736790729857/219673525124179510879420825570604582952621929604585773100622830693937381868724993667921908501166545759273481964527387457187903615990932602002368905315681828864) (*.f64 d1 (neg.f64 d3)) (if (<=.f64 d4 134057325242381/383123885216472214589586756787577295904684780545900544) (*.f64 (-.f64 d2 d1) d1) (*.f64 d1 (-.f64 d4 d3)))))
(if (<=.f64 d4 2244982191357677/149502054158244092924433911175587146134101311725520811805218980426523448679093940601025751001247626027946551200107541538756647476310030352326743206124657514520641361489437161884315621531536712531968) (*.f64 d1 (-.f64 d2 d1)) (if (<=.f64 d4 4069736790729857/219673525124179510879420825570604582952621929604585773100622830693937381868724993667921908501166545759273481964527387457187903615990932602002368905315681828864) (*.f64 d1 (neg.f64 d3)) (if (<=.f64 d4 134057325242381/383123885216472214589586756787577295904684780545900544) (*.f64 d1 (-.f64 d2 d1)) (*.f64 d1 (-.f64 d4 d3)))))
(if (<=.f64 d2 -14993028843012870225027121290327948534145501430555593223815393047015139100231555734105062408323968028366246455091501666926592) (*.f64 d2 d1) (if (<=.f64 d2 -751556570723005674445862003985155882292060441476799655837696) (*.f64 d1 (-.f64 d4 d3)) (if (<=.f64 d2 -5288788597070411/2097152) (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d3)))))
(if (<=.f64 d2 -14993028843012870225027121290327948534145501430555593223815393047015139100231555734105062408323968028366246455091501666926592) (*.f64 d1 d2) (if (<=.f64 d2 -751556570723005674445862003985155882292060441476799655837696) (*.f64 d1 (-.f64 d4 d3)) (if (<=.f64 d2 -5288788597070411/2097152) (*.f64 d1 d2) (*.f64 d1 (-.f64 d4 d3)))))
(if (<=.f64 d4 -4351160222895633/4249103942534136789516705652419749018636744941816255385595553105603228478886817941913300018121834285351114635889972008122772634701221657915276159830132698815550650166683145752253825024) (*.f64 d2 d1) (if (<=.f64 d4 -4682284389520411/351111940402796075728379920075981393284761128699669252487168127261196632432619068618571244770327218791250222421623815151677323767215657465806342637967722899175327916845440400930277772658683777577056802640791026892262013051450122815378736544025053197584668966180832613749896964723593195907881555331297312768) (*.f64 d1 (neg.f64 d3)) (if (<=.f64 d4 2244982191357677/149502054158244092924433911175587146134101311725520811805218980426523448679093940601025751001247626027946551200107541538756647476310030352326743206124657514520641361489437161884315621531536712531968) (*.f64 d2 d1) (if (<=.f64 d4 4069736790729857/219673525124179510879420825570604582952621929604585773100622830693937381868724993667921908501166545759273481964527387457187903615990932602002368905315681828864) (*.f64 d1 (neg.f64 d3)) (if (<=.f64 d4 8664108103173801/9173994463960286046443283581208347763186259956673124494950355357547691504353939232280074212440502746218496) (*.f64 d2 d1) (if (<=.f64 d4 587911249070172405760) (*.f64 d1 (neg.f64 d3)) (if (<=.f64 d4 3330876381759067006894127389789208344264704) (*.f64 d1 d4) (if (<=.f64 d4 406115053630402322273209552542410685324426271270075628537906488654005576834346797825523712) (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d4)))))))))
(if (<=.f64 d4 -4351160222895633/4249103942534136789516705652419749018636744941816255385595553105603228478886817941913300018121834285351114635889972008122772634701221657915276159830132698815550650166683145752253825024) (*.f64 d1 d2) (if (<=.f64 d4 -4682284389520411/351111940402796075728379920075981393284761128699669252487168127261196632432619068618571244770327218791250222421623815151677323767215657465806342637967722899175327916845440400930277772658683777577056802640791026892262013051450122815378736544025053197584668966180832613749896964723593195907881555331297312768) (*.f64 d1 (neg.f64 d3)) (if (<=.f64 d4 2244982191357677/149502054158244092924433911175587146134101311725520811805218980426523448679093940601025751001247626027946551200107541538756647476310030352326743206124657514520641361489437161884315621531536712531968) (*.f64 d1 d2) (if (<=.f64 d4 4069736790729857/219673525124179510879420825570604582952621929604585773100622830693937381868724993667921908501166545759273481964527387457187903615990932602002368905315681828864) (*.f64 d1 (neg.f64 d3)) (if (<=.f64 d4 8664108103173801/9173994463960286046443283581208347763186259956673124494950355357547691504353939232280074212440502746218496) (*.f64 d1 d2) (if (<=.f64 d4 587911249070172405760) (*.f64 d1 (neg.f64 d3)) (if (<=.f64 d4 3330876381759067006894127389789208344264704) (*.f64 d1 d4) (if (<=.f64 d4 406115053630402322273209552542410685324426271270075628537906488654005576834346797825523712) (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d4)))))))))
(if (<=.f64 d2 -4864895465420711/12855504354071922204335696738729300820177623950262342682411008) (*.f64 d2 d1) (*.f64 d1 d4))
(if (<=.f64 d2 -4864895465420711/12855504354071922204335696738729300820177623950262342682411008) (*.f64 d1 d2) (*.f64 d1 d4))
(*.f64 d2 d1)
(*.f64 d1 d2)
(*.f64 d1 d1)
Compiler

Compiled 487 to 256 computations (47.4% saved)

soundness327.0ms (3.6%)

Algorithm
egg-herbie
Rules
1400×fma-neg_binary64
637×fma-def_binary64
211×sub-neg_binary64
208×unsub-neg_binary64
156×cancel-sign-sub-inv_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01219
13214
210013
331613
493213
5249113
6373413
7424313
8424313
9548213
10580213
11580213
Stop Event
saturated
Compiler

Compiled 161 to 97 computations (39.8% saved)

end170.0ms (1.9%)

Remove

(sort d2 d4)

Compiler

Compiled 465 to 173 computations (62.8% saved)

Profiling

Loading profile data...