Details

Time bar (total: 7.8s)

analyze369.0ms (4.7%)

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.1s (26.3%)

Results
1.4s8256×body256valid
578.0ms3672×body256invalid

preprocess115.0ms (1.5%)

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)

simplify159.0ms (2%)

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

localize9.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 32 to 8 computations (75% saved)

series7.0ms (0.1%)

Counts
1 → 48
Calls

12 calls:

TimeVariablePointExpression
1.0ms
d3
@-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))))
1.0ms
d2
@inf
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
1.0ms
d1
@-inf
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))

rewrite70.0ms (0.9%)

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
0913
121813
2361213
Stop Event
node limit
Counts
1 → 62
Calls
Call 1
Inputs
(*.f64 d1 (+.f64 d2 (-.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))))))

simplify67.0ms (0.8%)

Algorithm
egg-herbie
Rules
391×associate-*l*_binary64
367×distribute-rgt-out_binary64
351×distribute-neg-in_binary64
349×distribute-rgt-neg-in_binary64
295×distribute-rgt-in_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
029692
173656
2164548
3475548
41631548
54747548
Stop Event
node limit
Counts
110 → 82
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)))
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 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d4 d3) (-.f64 d2 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 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d4 d3) (-.f64 d2 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 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d4 d3) (-.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 (+.f64 d2 d4) d3)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d4 d3) (-.f64 d2 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 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d4 d3) (-.f64 d2 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 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d4 d3) (-.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 (+.f64 d2 d4) d3)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d4 d3) (-.f64 d2 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 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d4 d3) (-.f64 d2 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 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d4 d3) (-.f64 d2 d1)))
(*.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 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d4 d3) (-.f64 d2 d1)))
(+.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 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d4 d3) (-.f64 d2 d1)))
(+.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 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d4 d3) (-.f64 d2 d1)))
(*.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 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d4 d3) (-.f64 d2 d1)))
(+.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 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d4 d3) (-.f64 d2 d1)))
(+.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 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d4 d3) (-.f64 d2 d1)))
(*.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 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d4 d3) (-.f64 d2 d1)))
(+.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 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d4 d3) (-.f64 d2 d1)))
(+.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 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d4 d3) (-.f64 d2 d1)))
(*.f64 (-.f64 d2 (+.f64 d1 d3)) d1)
(*.f64 d1 (-.f64 d2 (+.f64 d1 d3)))
(*.f64 d1 (-.f64 (-.f64 d2 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 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d4 d3) (-.f64 d2 d1)))
(+.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 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d4 d3) (-.f64 d2 d1)))
(+.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 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d4 d3) (-.f64 d2 d1)))
(*.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 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d4 d3) (-.f64 d2 d1)))
(+.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 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d4 d3) (-.f64 d2 d1)))
(+.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 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d4 d3) (-.f64 d2 d1)))
(*.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 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d4 d3) (-.f64 d2 d1)))
(+.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 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d4 d3) (-.f64 d2 d1)))
(+.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 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d4 d3) (-.f64 d2 d1)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d1))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 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 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d4 d3) (-.f64 d2 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 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d4 d3) (-.f64 d2 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 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d4 d3) (-.f64 d2 d1)))
(*.f64 -1 (*.f64 d1 d3))
(neg.f64 (*.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 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d4 d3) (-.f64 d2 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 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d4 d3) (-.f64 d2 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 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d4 d3) (-.f64 d2 d1)))
(*.f64 -1 (*.f64 d1 d3))
(neg.f64 (*.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 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d4 d3) (-.f64 d2 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 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d4 d3) (-.f64 d2 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 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d4 d3) (-.f64 d2 d1)))

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

series18.0ms (0.2%)

Counts
3 → 132
Calls

33 calls:

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

rewrite107.0ms (1.4%)

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

simplify181.0ms (2.3%)

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

eval99.0ms (1.3%)

Compiler

Compiled 7389 to 1676 computations (77.3% saved)

prune78.0ms (1%)

Pruning

12 alts after pruning (12 fresh and 0 done)

PrunedKeptTotal
New38612398
Fresh000
Picked101
Done101
Total38812400
Error
0b
Counts
400 → 12
Alt Table
Click to see full alt table
StatusErrorProgram
17.7b
(-.f64 (*.f64 d1 (-.f64 d4 d3)) (*.f64 d1 d1))
0.0b
(+.f64 (*.f64 (-.f64 d2 (+.f64 d1 d3)) d1) (*.f64 d1 d4))
0.0b
(fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 d4 d1)))
55.4b
(*.f64 d1 (neg.f64 d1))
16.5b
(-.f64 (*.f64 d1 (+.f64 d2 d4)) (*.f64 d1 d1))
6.8b
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
22.1b
(*.f64 (-.f64 d2 (+.f64 d1 d3)) d1)
44.2b
(*.f64 d2 d1)
0.0b
(fma.f64 d1 (+.f64 (-.f64 d2 d3) d4) (*.f64 d1 (neg.f64 d1)))
45.3b
(*.f64 d1 (neg.f64 d3))
16.5b
(*.f64 d1 (-.f64 (+.f64 d2 d4) d1))
39.7b
(*.f64 d1 d4)
Compiler

Compiled 266 to 170 computations (36.1% saved)

localize10.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 29 to 8 computations (72.4% saved)

series8.0ms (0.1%)

Counts
2 → 72
Calls

18 calls:

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

rewrite114.0ms (1.5%)

Algorithm
batch-egg-rewrite
Rules
894×prod-diff_binary64
516×log-prod_binary64
388×fma-def_binary64
287×pow2_binary64
198×pow1/3_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0921
120020
2289620
Stop Event
node limit
Counts
2 → 78
Calls
Call 1
Inputs
(*.f64 d1 (-.f64 d4 d1))
(fma.f64 d1 (-.f64 d2 d3) (*.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 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 (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 pow.f64 (*.f64 (pow.f64 d1 3) (pow.f64 (-.f64 d4 d1) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (-.f64 d4 d1) 3) (pow.f64 d1 3)) 1/3)))) (#(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 cbrt.f64 (*.f64 (pow.f64 d1 3) (pow.f64 (-.f64 d4 d1) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (-.f64 d4 d1) 3) (pow.f64 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 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 (sqrt.f64 d4) (sqrt.f64 d1)) (*.f64 (sqrt.f64 d4) (sqrt.f64 d1)) (*.f64 (neg.f64 d1) d1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 d4) (sqrt.f64 d1)) (*.f64 (sqrt.f64 d4) (sqrt.f64 d1)) (*.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)))))))
((#(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 (*.f64 d1 (-.f64 d2 d3)) (*.f64 d1 (-.f64 d4 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 d1 (-.f64 d2 d3)) 1) (*.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 (-.f64 d2 d3) (-.f64 d4 d1)))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 d1) (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 d1) (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 d1) (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))) (pow.f64 (cbrt.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))) 2) (cbrt.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))) (sqrt.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 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 (pow.f64 (*.f64 d1 (-.f64 d4 d1)) 2) (*.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 d2 d3)) 2) (pow.f64 (*.f64 d1 (-.f64 d4 d1)) 2)) (-.f64 (*.f64 d1 (-.f64 d2 d3)) (*.f64 d1 (-.f64 d4 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 d1) (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 d1) (-.f64 d4 d1)) (exp.f64 (*.f64 d1 (-.f64 d2 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 d1 (-.f64 d4 d1)))) (exp.f64 (*.f64 d1 (-.f64 d2 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 d1 (-.f64 d2 d3))) (+.f64 1 (expm1.f64 (*.f64 d1 (-.f64 d4 d1))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 d1 (+.f64 (-.f64 d2 d3) (-.f64 d4 d1)))) 1))))))

simplify110.0ms (1.4%)

Algorithm
egg-herbie
Rules
501×unsub-neg_binary64
441×fma-def_binary64
385×sub-neg_binary64
354×unswap-sqr_binary64
351×distribute-rgt-neg-in_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
034929
195818
2249704
3853704
43513704
55839704
67349704
Stop Event
node limit
Counts
150 → 100
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))
(*.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 (*.f64 (+.f64 (*.f64 -1 (-.f64 d2 d3)) (*.f64 -1 d4)) d1)) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (-.f64 d2 d3)) (*.f64 -1 d4)) d1)) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (-.f64 d2 d3)) (*.f64 -1 d4)) d1)) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 d4 d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1)))
(*.f64 d1 d4)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1)))
(*.f64 d1 d4)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1)))
Outputs
(*.f64 d1 d4)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 d4))
(*.f64 d1 (-.f64 d4 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 d4))
(*.f64 d1 (-.f64 d4 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 d4))
(*.f64 d1 (-.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 d4))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 d4))
(*.f64 d1 (-.f64 d4 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 d4))
(*.f64 d1 (-.f64 d4 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 d4))
(*.f64 d1 (-.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 d4))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 d4))
(*.f64 d1 (-.f64 d4 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 d4))
(*.f64 d1 (-.f64 d4 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 d4))
(*.f64 d1 (-.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 d4))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 d4))
(*.f64 d1 (-.f64 d4 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 d4))
(*.f64 d1 (-.f64 d4 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 d4))
(*.f64 d1 (-.f64 d4 d1))
(*.f64 d1 d4)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 d4))
(*.f64 d1 (-.f64 d4 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 d4))
(*.f64 d1 (-.f64 d4 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 d4))
(*.f64 d1 (-.f64 d4 d1))
(*.f64 d1 d4)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 d4))
(*.f64 d1 (-.f64 d4 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 d4))
(*.f64 d1 (-.f64 d4 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 d4))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 d4))
(*.f64 d1 (-.f64 d4 d1))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (-.f64 d4 (-.f64 d3 d2)))
(+.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 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 (-.f64 d3 d2)) d1))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d3 d1))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (-.f64 d2 (-.f64 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 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 (-.f64 d3 d2)) d1))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d3 d1))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (-.f64 d2 (-.f64 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 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 (-.f64 d3 d2)) d1))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d3 d1))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (-.f64 d2 (-.f64 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 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 (-.f64 d3 d2)) d1))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d3 d1))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (-.f64 d2 (-.f64 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 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 (-.f64 d3 d2)) d1))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d3 d1))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (-.f64 d2 (-.f64 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 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 (-.f64 d3 d2)) d1))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d3 d1))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (-.f64 d2 (-.f64 d3 (-.f64 d4 d1))))
(*.f64 -1 (pow.f64 d1 2))
(neg.f64 (*.f64 d1 d1))
(*.f64 d1 (neg.f64 d1))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (-.f64 d2 d3)) (*.f64 -1 d4)) d1)) (*.f64 -1 (pow.f64 d1 2)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 (-.f64 d3 d2)) d1))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d3 d1))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (-.f64 d2 (-.f64 d3 (-.f64 d4 d1))))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (-.f64 d2 d3)) (*.f64 -1 d4)) d1)) (*.f64 -1 (pow.f64 d1 2)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 (-.f64 d3 d2)) d1))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d3 d1))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (-.f64 d2 (-.f64 d3 (-.f64 d4 d1))))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (-.f64 d2 d3)) (*.f64 -1 d4)) d1)) (*.f64 -1 (pow.f64 d1 2)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 (-.f64 d3 d2)) d1))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d3 d1))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (-.f64 d2 (-.f64 d3 (-.f64 d4 d1))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 d4 d1)))
(fma.f64 -1 (*.f64 d1 d3) (*.f64 d1 (-.f64 d4 d1)))
(fma.f64 (neg.f64 d1) d3 (*.f64 d1 (-.f64 d4 d1)))
(*.f64 d1 (-.f64 (-.f64 d4 d1) d3))
(*.f64 d1 (-.f64 d4 (+.f64 d1 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 (-.f64 d3 d2)) d1))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d3 d1))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (-.f64 d2 (-.f64 d3 (-.f64 d4 d1))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 (-.f64 d3 d2)) d1))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d3 d1))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (-.f64 d2 (-.f64 d3 (-.f64 d4 d1))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 (-.f64 d3 d2)) d1))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d3 d1))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (-.f64 d2 (-.f64 d3 (-.f64 d4 d1))))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 (-.f64 d3 d2)) d1))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d3 d1))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (-.f64 d2 (-.f64 d3 (-.f64 d4 d1))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 (-.f64 d3 d2)) d1))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d3 d1))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (-.f64 d2 (-.f64 d3 (-.f64 d4 d1))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 (-.f64 d3 d2)) d1))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d3 d1))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (-.f64 d2 (-.f64 d3 (-.f64 d4 d1))))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 (-.f64 d3 d2)) d1))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d3 d1))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (-.f64 d2 (-.f64 d3 (-.f64 d4 d1))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 (-.f64 d3 d2)) d1))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d3 d1))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (-.f64 d2 (-.f64 d3 (-.f64 d4 d1))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 (-.f64 d3 d2)) d1))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d3 d1))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (-.f64 d2 (-.f64 d3 (-.f64 d4 d1))))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1)))
(fma.f64 d2 d1 (*.f64 d1 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(*.f64 d1 (-.f64 d4 (-.f64 d1 d2)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 (-.f64 d3 d2)) d1))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d3 d1))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (-.f64 d2 (-.f64 d3 (-.f64 d4 d1))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 (-.f64 d3 d2)) d1))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d3 d1))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (-.f64 d2 (-.f64 d3 (-.f64 d4 d1))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 (-.f64 d3 d2)) d1))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d3 d1))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (-.f64 d2 (-.f64 d3 (-.f64 d4 d1))))
(*.f64 -1 (*.f64 d1 d3))
(neg.f64 (*.f64 d1 d3))
(*.f64 d1 (neg.f64 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 (-.f64 d3 d2)) d1))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d3 d1))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (-.f64 d2 (-.f64 d3 (-.f64 d4 d1))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 (-.f64 d3 d2)) d1))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d3 d1))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (-.f64 d2 (-.f64 d3 (-.f64 d4 d1))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 (-.f64 d3 d2)) d1))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d3 d1))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (-.f64 d2 (-.f64 d3 (-.f64 d4 d1))))
(*.f64 -1 (*.f64 d1 d3))
(neg.f64 (*.f64 d1 d3))
(*.f64 d1 (neg.f64 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 (-.f64 d3 d2)) d1))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d3 d1))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (-.f64 d2 (-.f64 d3 (-.f64 d4 d1))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 (-.f64 d3 d2)) d1))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d3 d1))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (-.f64 d2 (-.f64 d3 (-.f64 d4 d1))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 (-.f64 d3 d2)) d1))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d3 d1))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (-.f64 d2 (-.f64 d3 (-.f64 d4 d1))))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d2 d3) d1))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (-.f64 d2 d3)))
(-.f64 (*.f64 d1 (-.f64 d2 d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d2 d3) d1))
(*.f64 d1 (-.f64 d2 (+.f64 d3 d1)))
(*.f64 d1 (-.f64 d2 (+.f64 d1 d3)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 (-.f64 d3 d2)) d1))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d3 d1))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (-.f64 d2 (-.f64 d3 (-.f64 d4 d1))))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 (-.f64 d3 d2)) d1))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d3 d1))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (-.f64 d2 (-.f64 d3 (-.f64 d4 d1))))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 (-.f64 d3 d2)) d1))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d3 d1))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (-.f64 d2 (-.f64 d3 (-.f64 d4 d1))))
(*.f64 d1 d4)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 (-.f64 d3 d2)) d1))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d3 d1))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (-.f64 d2 (-.f64 d3 (-.f64 d4 d1))))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 (-.f64 d3 d2)) d1))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d3 d1))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (-.f64 d2 (-.f64 d3 (-.f64 d4 d1))))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 (-.f64 d3 d2)) d1))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d3 d1))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (-.f64 d2 (-.f64 d3 (-.f64 d4 d1))))
(*.f64 d1 d4)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 (-.f64 d3 d2)) d1))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d3 d1))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (-.f64 d2 (-.f64 d3 (-.f64 d4 d1))))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 (-.f64 d3 d2)) d1))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d3 d1))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (-.f64 d2 (-.f64 d3 (-.f64 d4 d1))))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 (-.f64 d3 d2)) d1))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d3 d1))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (-.f64 d2 (-.f64 d3 (-.f64 d4 d1))))

localize4.0ms (0.1%)

Compiler

Compiled 9 to 5 computations (44.4% saved)

localize5.0ms (0.1%)

Compiler

Compiled 11 to 6 computations (45.5% saved)

localize9.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.1%)

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
d4
@0
(*.f64 d1 (-.f64 (+.f64 d2 d4) d1))

rewrite66.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.2%)

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

localize11.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 22 to 7 computations (68.2% saved)

series7.0ms (0.1%)

Counts
1 → 36
Calls

9 calls:

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

rewrite60.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
612×unpow-prod-down_binary64
414×log-prod_binary64
401×fma-def_binary64
313×pow-prod-down_binary64
300×exp-prod_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify73.0ms (0.9%)

Algorithm
egg-herbie
Rules
798×fma-neg_binary64
586×cancel-sign-sub-inv_binary64
470×unswap-sqr_binary64
463×unsub-neg_binary64
383×distribute-rgt-in_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
021406
152379
2113325
3278325
4890325
52924325
66570325
Stop Event
node limit
Counts
68 → 48
Calls
Call 1
Inputs
(*.f64 -1 (*.f64 (+.f64 d1 d3) d1))
(+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(*.f64 d2 d1)
(+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(*.f64 d2 d1)
(+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(*.f64 (-.f64 d2 d3) d1)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d2 d3) d1))
(*.f64 -1 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d2 d3) d1))
(*.f64 -1 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d2 d3) d1))
(*.f64 (-.f64 d2 d1) d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 (-.f64 d2 d1) d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 (-.f64 d2 d1) d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 (-.f64 d2 d1) d1))
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 (-.f64 d2 d1) d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 (-.f64 d2 d1) d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 (-.f64 d2 d1) d1))
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 (-.f64 d2 d1) d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 (-.f64 d2 d1) d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 (-.f64 d2 d1) d1))
Outputs
(*.f64 -1 (*.f64 (+.f64 d1 d3) d1))
(neg.f64 (*.f64 d1 (+.f64 d1 d3)))
(*.f64 d1 (neg.f64 (+.f64 d1 d3)))
(*.f64 (+.f64 d1 d3) (neg.f64 d1))
(*.f64 d1 (-.f64 (neg.f64 d1) d3))
(+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(fma.f64 d2 d1 (neg.f64 (*.f64 d1 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (neg.f64 (+.f64 d1 d3)) d2))
(*.f64 d1 (-.f64 d2 (+.f64 d1 d3)))
(*.f64 d1 (-.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(fma.f64 d2 d1 (neg.f64 (*.f64 d1 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (neg.f64 (+.f64 d1 d3)) d2))
(*.f64 d1 (-.f64 d2 (+.f64 d1 d3)))
(*.f64 d1 (-.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(fma.f64 d2 d1 (neg.f64 (*.f64 d1 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (neg.f64 (+.f64 d1 d3)) d2))
(*.f64 d1 (-.f64 d2 (+.f64 d1 d3)))
(*.f64 d1 (-.f64 (-.f64 d2 d3) d1))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(fma.f64 d2 d1 (neg.f64 (*.f64 d1 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (neg.f64 (+.f64 d1 d3)) d2))
(*.f64 d1 (-.f64 d2 (+.f64 d1 d3)))
(*.f64 d1 (-.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(fma.f64 d2 d1 (neg.f64 (*.f64 d1 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (neg.f64 (+.f64 d1 d3)) d2))
(*.f64 d1 (-.f64 d2 (+.f64 d1 d3)))
(*.f64 d1 (-.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(fma.f64 d2 d1 (neg.f64 (*.f64 d1 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (neg.f64 (+.f64 d1 d3)) d2))
(*.f64 d1 (-.f64 d2 (+.f64 d1 d3)))
(*.f64 d1 (-.f64 (-.f64 d2 d3) d1))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(fma.f64 d2 d1 (neg.f64 (*.f64 d1 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (neg.f64 (+.f64 d1 d3)) d2))
(*.f64 d1 (-.f64 d2 (+.f64 d1 d3)))
(*.f64 d1 (-.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(fma.f64 d2 d1 (neg.f64 (*.f64 d1 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (neg.f64 (+.f64 d1 d3)) d2))
(*.f64 d1 (-.f64 d2 (+.f64 d1 d3)))
(*.f64 d1 (-.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(fma.f64 d2 d1 (neg.f64 (*.f64 d1 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (neg.f64 (+.f64 d1 d3)) d2))
(*.f64 d1 (-.f64 d2 (+.f64 d1 d3)))
(*.f64 d1 (-.f64 (-.f64 d2 d3) d1))
(*.f64 (-.f64 d2 d3) d1)
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d2 d3) d1))
(fma.f64 d2 d1 (neg.f64 (*.f64 d1 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (neg.f64 (+.f64 d1 d3)) d2))
(*.f64 d1 (-.f64 d2 (+.f64 d1 d3)))
(*.f64 d1 (-.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d2 d3) d1))
(fma.f64 d2 d1 (neg.f64 (*.f64 d1 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (neg.f64 (+.f64 d1 d3)) d2))
(*.f64 d1 (-.f64 d2 (+.f64 d1 d3)))
(*.f64 d1 (-.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d2 d3) d1))
(fma.f64 d2 d1 (neg.f64 (*.f64 d1 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (neg.f64 (+.f64 d1 d3)) d2))
(*.f64 d1 (-.f64 d2 (+.f64 d1 d3)))
(*.f64 d1 (-.f64 (-.f64 d2 d3) 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 (-.f64 d2 d3) d1))
(fma.f64 d2 d1 (neg.f64 (*.f64 d1 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (neg.f64 (+.f64 d1 d3)) d2))
(*.f64 d1 (-.f64 d2 (+.f64 d1 d3)))
(*.f64 d1 (-.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d2 d3) d1))
(fma.f64 d2 d1 (neg.f64 (*.f64 d1 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (neg.f64 (+.f64 d1 d3)) d2))
(*.f64 d1 (-.f64 d2 (+.f64 d1 d3)))
(*.f64 d1 (-.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d2 d3) d1))
(fma.f64 d2 d1 (neg.f64 (*.f64 d1 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (neg.f64 (+.f64 d1 d3)) d2))
(*.f64 d1 (-.f64 d2 (+.f64 d1 d3)))
(*.f64 d1 (-.f64 (-.f64 d2 d3) 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 (-.f64 d2 d3) d1))
(fma.f64 d2 d1 (neg.f64 (*.f64 d1 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (neg.f64 (+.f64 d1 d3)) d2))
(*.f64 d1 (-.f64 d2 (+.f64 d1 d3)))
(*.f64 d1 (-.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d2 d3) d1))
(fma.f64 d2 d1 (neg.f64 (*.f64 d1 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (neg.f64 (+.f64 d1 d3)) d2))
(*.f64 d1 (-.f64 d2 (+.f64 d1 d3)))
(*.f64 d1 (-.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d2 d3) d1))
(fma.f64 d2 d1 (neg.f64 (*.f64 d1 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (neg.f64 (+.f64 d1 d3)) d2))
(*.f64 d1 (-.f64 d2 (+.f64 d1 d3)))
(*.f64 d1 (-.f64 (-.f64 d2 d3) d1))
(*.f64 (-.f64 d2 d1) d1)
(*.f64 d1 (-.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 (-.f64 d2 d1) d1))
(fma.f64 d2 d1 (neg.f64 (*.f64 d1 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (neg.f64 (+.f64 d1 d3)) d2))
(*.f64 d1 (-.f64 d2 (+.f64 d1 d3)))
(*.f64 d1 (-.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 (-.f64 d2 d1) d1))
(fma.f64 d2 d1 (neg.f64 (*.f64 d1 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (neg.f64 (+.f64 d1 d3)) d2))
(*.f64 d1 (-.f64 d2 (+.f64 d1 d3)))
(*.f64 d1 (-.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 (-.f64 d2 d1) d1))
(fma.f64 d2 d1 (neg.f64 (*.f64 d1 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (neg.f64 (+.f64 d1 d3)) d2))
(*.f64 d1 (-.f64 d2 (+.f64 d1 d3)))
(*.f64 d1 (-.f64 (-.f64 d2 d3) d1))
(*.f64 -1 (*.f64 d1 d3))
(neg.f64 (*.f64 d1 d3))
(*.f64 d1 (neg.f64 d3))
(*.f64 d3 (neg.f64 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 (-.f64 d2 d1) d1))
(fma.f64 d2 d1 (neg.f64 (*.f64 d1 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (neg.f64 (+.f64 d1 d3)) d2))
(*.f64 d1 (-.f64 d2 (+.f64 d1 d3)))
(*.f64 d1 (-.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 (-.f64 d2 d1) d1))
(fma.f64 d2 d1 (neg.f64 (*.f64 d1 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (neg.f64 (+.f64 d1 d3)) d2))
(*.f64 d1 (-.f64 d2 (+.f64 d1 d3)))
(*.f64 d1 (-.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 (-.f64 d2 d1) d1))
(fma.f64 d2 d1 (neg.f64 (*.f64 d1 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (neg.f64 (+.f64 d1 d3)) d2))
(*.f64 d1 (-.f64 d2 (+.f64 d1 d3)))
(*.f64 d1 (-.f64 (-.f64 d2 d3) d1))
(*.f64 -1 (*.f64 d1 d3))
(neg.f64 (*.f64 d1 d3))
(*.f64 d1 (neg.f64 d3))
(*.f64 d3 (neg.f64 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 (-.f64 d2 d1) d1))
(fma.f64 d2 d1 (neg.f64 (*.f64 d1 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (neg.f64 (+.f64 d1 d3)) d2))
(*.f64 d1 (-.f64 d2 (+.f64 d1 d3)))
(*.f64 d1 (-.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 (-.f64 d2 d1) d1))
(fma.f64 d2 d1 (neg.f64 (*.f64 d1 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (neg.f64 (+.f64 d1 d3)) d2))
(*.f64 d1 (-.f64 d2 (+.f64 d1 d3)))
(*.f64 d1 (-.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 (-.f64 d2 d1) d1))
(fma.f64 d2 d1 (neg.f64 (*.f64 d1 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (neg.f64 (+.f64 d1 d3)) d2))
(*.f64 d1 (-.f64 d2 (+.f64 d1 d3)))
(*.f64 d1 (-.f64 (-.f64 d2 d3) d1))

eval45.0ms (0.6%)

Compiler

Compiled 2641 to 690 computations (73.9% saved)

prune50.0ms (0.6%)

Pruning

15 alts after pruning (13 fresh and 2 done)

PrunedKeptTotal
New2019210
Fresh347
Picked101
Done224
Total20715222
Error
0b
Counts
222 → 15
Alt Table
Click to see full alt table
StatusErrorProgram
45.3b
(*.f64 d3 (neg.f64 d1))
17.7b
(-.f64 (*.f64 d1 (-.f64 d4 d3)) (*.f64 d1 d1))
0.0b
(+.f64 (*.f64 (-.f64 d2 (+.f64 d1 d3)) d1) (*.f64 d1 d4))
38.5b
(*.f64 (-.f64 d2 d1) d1)
44.2b
(*.f64 d2 d1)
28.4b
(*.f64 (-.f64 d2 d3) d1)
34.0b
(*.f64 d1 (-.f64 d4 d1))
39.2b
(*.f64 d1 (-.f64 (neg.f64 d1) d3))
22.5b
(*.f64 d1 (+.f64 d2 d4))
16.5b
(fma.f64 (+.f64 d2 d4) d1 (*.f64 (neg.f64 d1) d1))
39.7b
(*.f64 d1 d4)
6.8b
(fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 d4))
55.4b
(*.f64 d1 (neg.f64 d1))
6.8b
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
16.5b
(+.f64 (*.f64 d2 d1) (*.f64 (-.f64 d4 d1) d1))
Compiler

Compiled 291 to 189 computations (35.1% saved)

localize17.0ms (0.2%)

Local error

Found 2 expressions with local error:

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

Compiled 37 to 9 computations (75.7% saved)

series9.0ms (0.1%)

Counts
1 → 48
Calls

12 calls:

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

rewrite105.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
715×fma-def_binary64
615×log-prod_binary64
330×pow2_binary64
328×fma-neg_binary64
224×pow1/3_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01014
123113
2361113
Stop Event
node limit
Counts
1 → 70
Calls
Call 1
Inputs
(+.f64 (*.f64 (-.f64 d2 (+.f64 d1 d3)) d1) (*.f64 d1 d4))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (*.f64 d1 (-.f64 (-.f64 d2 d1) d3)) 2) (*.f64 d1 (-.f64 (-.f64 (-.f64 d2 d1) d3) d4))) (/.f64 (pow.f64 (*.f64 d1 d4) 2) (*.f64 d1 (-.f64 (-.f64 (-.f64 d2 d1) d3) d4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 d1 (+.f64 (-.f64 (-.f64 d2 d1) d3) d4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))) (pow.f64 (cbrt.f64 (*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))) 2) (cbrt.f64 (*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))) (sqrt.f64 (*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (*.f64 d1 (-.f64 (-.f64 d2 d1) d3)) 3) (pow.f64 (*.f64 d1 d4) 3)) (/.f64 1 (fma.f64 (*.f64 d1 d4) (-.f64 (*.f64 d1 d4) (*.f64 d1 (-.f64 (-.f64 d2 d1) d3))) (pow.f64 (*.f64 d1 (-.f64 (-.f64 d2 d1) d3)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (*.f64 d1 (-.f64 (-.f64 d2 d1) d3)) 2) (pow.f64 (*.f64 d1 d4) 2)) (/.f64 1 (*.f64 d1 (-.f64 (-.f64 (-.f64 d2 d1) d3) d4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 (*.f64 d1 d4) (-.f64 (*.f64 d1 d4) (*.f64 d1 (-.f64 (-.f64 d2 d1) d3))) (pow.f64 (*.f64 d1 (-.f64 (-.f64 d2 d1) d3)) 2)) (+.f64 (pow.f64 (*.f64 d1 (-.f64 (-.f64 d2 d1) d3)) 3) (pow.f64 (*.f64 d1 d4) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (*.f64 d1 (-.f64 (-.f64 (-.f64 d2 d1) d3) d4)) (-.f64 (pow.f64 (*.f64 d1 (-.f64 (-.f64 d2 d1) d3)) 2) (pow.f64 (*.f64 d1 d4) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 d1 (-.f64 (-.f64 d2 d1) d3)) 3) (pow.f64 (*.f64 d1 d4) 3)) (fma.f64 (*.f64 d1 d4) (-.f64 (*.f64 d1 d4) (*.f64 d1 (-.f64 (-.f64 d2 d1) d3))) (pow.f64 (*.f64 d1 (-.f64 (-.f64 d2 d1) d3)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 d1 (-.f64 (-.f64 d2 d1) d3)) 3) (pow.f64 (*.f64 d1 d4) 3)) (+.f64 (pow.f64 (*.f64 d1 d4) 2) (-.f64 (pow.f64 (*.f64 d1 (-.f64 (-.f64 d2 d1) d3)) 2) (*.f64 d1 (*.f64 (-.f64 (-.f64 d2 d1) d3) (*.f64 d1 d4))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 d1 (-.f64 (-.f64 d2 d1) d3)) 2) (pow.f64 (*.f64 d1 d4) 2)) (*.f64 d1 (-.f64 (-.f64 (-.f64 d2 d1) d3) d4)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 d1 (-.f64 (-.f64 d2 d1) d3)) 3) (pow.f64 (*.f64 d1 d4) 3))) (neg.f64 (fma.f64 (*.f64 d1 d4) (-.f64 (*.f64 d1 d4) (*.f64 d1 (-.f64 (-.f64 d2 d1) d3))) (pow.f64 (*.f64 d1 (-.f64 (-.f64 d2 d1) d3)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 d1 (-.f64 (-.f64 d2 d1) d3)) 2) (pow.f64 (*.f64 d1 d4) 2))) (neg.f64 (*.f64 d1 (-.f64 (-.f64 (-.f64 d2 d1) d3) d4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 d1 d4) 2) (pow.f64 (*.f64 d1 (-.f64 (-.f64 d2 d1) d3)) 2)) (-.f64 (*.f64 d1 d4) (*.f64 d1 (-.f64 (-.f64 d2 d1) d3))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 (*.f64 d1 d4) (-.f64 (*.f64 d1 d4) (*.f64 d1 (-.f64 (-.f64 d2 d1) d3))) (pow.f64 (*.f64 d1 (-.f64 (-.f64 d2 d1) d3)) 2)) (+.f64 (pow.f64 (*.f64 d1 (-.f64 (-.f64 d2 d1) d3)) 3) (pow.f64 (*.f64 d1 d4) 3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (*.f64 d1 (-.f64 (-.f64 (-.f64 d2 d1) d3) d4)) (-.f64 (pow.f64 (*.f64 d1 (-.f64 (-.f64 d2 d1) d3)) 2) (pow.f64 (*.f64 d1 d4) 2))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 d1 (-.f64 (-.f64 d2 d1) d3)))) (pow.f64 (exp.f64 d4) d1)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 d1) (-.f64 (-.f64 d2 d1) 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 (-.f64 d2 d1) 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 (-.f64 d2 d1) d3))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 d4) d1) (+.f64 1 (expm1.f64 (*.f64 d1 (-.f64 (-.f64 d2 d1) 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 (-.f64 d2 d1) d3))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d1 (-.f64 (-.f64 d2 d1) d3) (*.f64 d1 d4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d1 d4 (*.f64 d1 (-.f64 (-.f64 d2 d1) d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (-.f64 d2 d1) d3) d1 (*.f64 d1 d4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d1 (-.f64 (-.f64 d2 d1) d3)) 1 (*.f64 d1 d4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d4 d1 (*.f64 d1 (-.f64 (-.f64 d2 d1) d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d1 d4) 1 (*.f64 d1 (-.f64 (-.f64 d2 d1) d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 d1 (-.f64 (-.f64 d2 d1) d3)) (*.f64 d1 d4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 d1 d4) (*.f64 d1 (-.f64 (-.f64 d2 d1) d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 d4 d4)) (*.f64 (cbrt.f64 d4) d1) (*.f64 d1 (-.f64 (-.f64 d2 d1) d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 d1 d4)) (pow.f64 (cbrt.f64 (*.f64 d1 d4)) 2) (*.f64 d1 (-.f64 (-.f64 d2 d1) d3)))))) (#(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 (-.f64 d2 d1) d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 (-.f64 d2 d1) d3)) 2) (*.f64 (cbrt.f64 (-.f64 (-.f64 d2 d1) d3)) d1) (*.f64 d1 d4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 d1) 2) (*.f64 (cbrt.f64 d1) d4) (*.f64 d1 (-.f64 (-.f64 d2 d1) d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 d1) 2) (*.f64 (cbrt.f64 d1) (-.f64 (-.f64 d2 d1) d3)) (*.f64 d1 d4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 d1 (-.f64 (-.f64 d2 d1) d3))) (pow.f64 (cbrt.f64 (*.f64 d1 (-.f64 (-.f64 d2 d1) d3))) 2) (*.f64 d1 d4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 d1 (-.f64 (-.f64 d2 d1) d3))) 2) (cbrt.f64 (*.f64 d1 (-.f64 (-.f64 d2 d1) d3))) (*.f64 d1 d4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 d4) (*.f64 (sqrt.f64 d4) d1) (*.f64 d1 (-.f64 (-.f64 d2 d1) d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 d1 d4)) (sqrt.f64 (*.f64 d1 d4)) (*.f64 d1 (-.f64 (-.f64 d2 d1) d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 (-.f64 d2 d1) d3)) (*.f64 (sqrt.f64 (-.f64 (-.f64 d2 d1) d3)) d1) (*.f64 d1 d4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 d1) (*.f64 (sqrt.f64 d1) d4) (*.f64 d1 (-.f64 (-.f64 d2 d1) d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 d1) (*.f64 (sqrt.f64 d1) (-.f64 (-.f64 d2 d1) d3)) (*.f64 d1 d4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 d1 (-.f64 (-.f64 d2 d1) d3))) (sqrt.f64 (*.f64 d1 (-.f64 (-.f64 d2 d1) d3))) (*.f64 d1 d4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d1 (cbrt.f64 (*.f64 d4 d4))) (cbrt.f64 d4) (*.f64 d1 (-.f64 (-.f64 d2 d1) d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d1 (sqrt.f64 d4)) (sqrt.f64 d4) (*.f64 d1 (-.f64 (-.f64 d2 d1) d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d4 (pow.f64 (cbrt.f64 d1) 2)) (cbrt.f64 d1) (*.f64 d1 (-.f64 (-.f64 d2 d1) d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d4 (sqrt.f64 d1)) (sqrt.f64 d1) (*.f64 d1 (-.f64 (-.f64 d2 d1) d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d1 (pow.f64 (cbrt.f64 (-.f64 (-.f64 d2 d1) d3)) 2)) (cbrt.f64 (-.f64 (-.f64 d2 d1) d3)) (*.f64 d1 d4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d1 (sqrt.f64 (-.f64 (-.f64 d2 d1) d3))) (sqrt.f64 (-.f64 (-.f64 d2 d1) d3)) (*.f64 d1 d4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 (-.f64 d2 d1) d3) (pow.f64 (cbrt.f64 d1) 2)) (cbrt.f64 d1) (*.f64 d1 d4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 (-.f64 d2 d1) d3) (sqrt.f64 d1)) (sqrt.f64 d1) (*.f64 d1 d4))))))

simplify101.0ms (1.3%)

Algorithm
egg-herbie
Rules
579×unsub-neg_binary64
458×fma-def_binary64
383×distribute-rgt-neg-in_binary64
363×distribute-rgt-out--_binary64
325×distribute-lft-neg-in_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
038696
1113550
2304548
31023548
43805548
56089548
67707548
Stop Event
node limit
Counts
118 → 91
Calls
Call 1
Inputs
(+.f64 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(+.f64 (*.f64 d2 d1) (+.f64 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1))))
(+.f64 (*.f64 d2 d1) (+.f64 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1))))
(+.f64 (*.f64 d2 d1) (+.f64 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1))))
(*.f64 d2 d1)
(+.f64 (*.f64 d1 d4) (+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1))))
(+.f64 (*.f64 d1 d4) (+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1))))
(+.f64 (*.f64 d1 d4) (+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1))))
(*.f64 d2 d1)
(+.f64 (*.f64 d1 d4) (+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1))))
(+.f64 (*.f64 d1 d4) (+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1))))
(+.f64 (*.f64 d1 d4) (+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) 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 (*.f64 (+.f64 (*.f64 -1 (-.f64 d2 d3)) (*.f64 -1 d4)) d1)) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (-.f64 d2 d3)) (*.f64 -1 d4)) d1)) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (-.f64 d2 d3)) (*.f64 -1 d4)) d1)) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1)))
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1)))
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1)))
(*.f64 d1 (-.f64 d2 (+.f64 d1 d3)))
(+.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 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 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))
Outputs
(+.f64 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(fma.f64 d1 d4 (neg.f64 (*.f64 d1 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (neg.f64 (+.f64 d1 d3)) d4))
(*.f64 d1 (-.f64 d4 (+.f64 d1 d3)))
(+.f64 (*.f64 d2 d1) (+.f64 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1))))
(fma.f64 d2 d1 (fma.f64 d1 d4 (neg.f64 (*.f64 d1 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(+.f64 (*.f64 d2 d1) (+.f64 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1))))
(fma.f64 d2 d1 (fma.f64 d1 d4 (neg.f64 (*.f64 d1 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(+.f64 (*.f64 d2 d1) (+.f64 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1))))
(fma.f64 d2 d1 (fma.f64 d1 d4 (neg.f64 (*.f64 d1 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d1 d4) (+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1))))
(fma.f64 d2 d1 (fma.f64 d1 d4 (neg.f64 (*.f64 d1 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(+.f64 (*.f64 d1 d4) (+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1))))
(fma.f64 d2 d1 (fma.f64 d1 d4 (neg.f64 (*.f64 d1 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(+.f64 (*.f64 d1 d4) (+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1))))
(fma.f64 d2 d1 (fma.f64 d1 d4 (neg.f64 (*.f64 d1 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d1 d4) (+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1))))
(fma.f64 d2 d1 (fma.f64 d1 d4 (neg.f64 (*.f64 d1 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(+.f64 (*.f64 d1 d4) (+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1))))
(fma.f64 d2 d1 (fma.f64 d1 d4 (neg.f64 (*.f64 d1 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(+.f64 (*.f64 d1 d4) (+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1))))
(fma.f64 d2 d1 (fma.f64 d1 d4 (neg.f64 (*.f64 d1 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (-.f64 (+.f64 d4 d2) d3))
(*.f64 d1 (-.f64 d2 (-.f64 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 d2 d1 (fma.f64 d1 d4 (neg.f64 (*.f64 d1 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(fma.f64 d2 d1 (fma.f64 d1 d4 (neg.f64 (*.f64 d1 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(fma.f64 d2 d1 (fma.f64 d1 d4 (neg.f64 (*.f64 d1 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.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 d2 d1 (fma.f64 d1 d4 (neg.f64 (*.f64 d1 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(fma.f64 d2 d1 (fma.f64 d1 d4 (neg.f64 (*.f64 d1 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(fma.f64 d2 d1 (fma.f64 d1 d4 (neg.f64 (*.f64 d1 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 -1 (pow.f64 d1 2))
(neg.f64 (*.f64 d1 d1))
(*.f64 d1 (neg.f64 d1))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (-.f64 d2 d3)) (*.f64 -1 d4)) d1)) (*.f64 -1 (pow.f64 d1 2)))
(fma.f64 d2 d1 (fma.f64 d1 d4 (neg.f64 (*.f64 d1 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (-.f64 d2 d3)) (*.f64 -1 d4)) d1)) (*.f64 -1 (pow.f64 d1 2)))
(fma.f64 d2 d1 (fma.f64 d1 d4 (neg.f64 (*.f64 d1 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (-.f64 d2 d3)) (*.f64 -1 d4)) d1)) (*.f64 -1 (pow.f64 d1 2)))
(fma.f64 d2 d1 (fma.f64 d1 d4 (neg.f64 (*.f64 d1 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1))
(fma.f64 d1 d4 (*.f64 d1 (-.f64 d2 d1)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1)))
(fma.f64 d2 d1 (fma.f64 d1 d4 (neg.f64 (*.f64 d1 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1)))
(fma.f64 d2 d1 (fma.f64 d1 d4 (neg.f64 (*.f64 d1 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1)))
(fma.f64 d2 d1 (fma.f64 d1 d4 (neg.f64 (*.f64 d1 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 -1 (*.f64 d1 d3))
(neg.f64 (*.f64 d1 d3))
(*.f64 d1 (neg.f64 d3))
(*.f64 d3 (neg.f64 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1)))
(fma.f64 d2 d1 (fma.f64 d1 d4 (neg.f64 (*.f64 d1 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1)))
(fma.f64 d2 d1 (fma.f64 d1 d4 (neg.f64 (*.f64 d1 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1)))
(fma.f64 d2 d1 (fma.f64 d1 d4 (neg.f64 (*.f64 d1 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 -1 (*.f64 d1 d3))
(neg.f64 (*.f64 d1 d3))
(*.f64 d1 (neg.f64 d3))
(*.f64 d3 (neg.f64 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1)))
(fma.f64 d2 d1 (fma.f64 d1 d4 (neg.f64 (*.f64 d1 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1)))
(fma.f64 d2 d1 (fma.f64 d1 d4 (neg.f64 (*.f64 d1 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d1) d1)))
(fma.f64 d2 d1 (fma.f64 d1 d4 (neg.f64 (*.f64 d1 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 (-.f64 d2 (+.f64 d1 d3)))
(+.f64 (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))) (*.f64 d1 d4))
(fma.f64 d2 d1 (fma.f64 d1 d4 (neg.f64 (*.f64 d1 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(+.f64 (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))) (*.f64 d1 d4))
(fma.f64 d2 d1 (fma.f64 d1 d4 (neg.f64 (*.f64 d1 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(+.f64 (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))) (*.f64 d1 d4))
(fma.f64 d2 d1 (fma.f64 d1 d4 (neg.f64 (*.f64 d1 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 d4)
(+.f64 (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))) (*.f64 d1 d4))
(fma.f64 d2 d1 (fma.f64 d1 d4 (neg.f64 (*.f64 d1 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(+.f64 (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))) (*.f64 d1 d4))
(fma.f64 d2 d1 (fma.f64 d1 d4 (neg.f64 (*.f64 d1 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(+.f64 (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))) (*.f64 d1 d4))
(fma.f64 d2 d1 (fma.f64 d1 d4 (neg.f64 (*.f64 d1 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(*.f64 d1 d4)
(+.f64 (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))) (*.f64 d1 d4))
(fma.f64 d2 d1 (fma.f64 d1 d4 (neg.f64 (*.f64 d1 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(+.f64 (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))) (*.f64 d1 d4))
(fma.f64 d2 d1 (fma.f64 d1 d4 (neg.f64 (*.f64 d1 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))
(+.f64 (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))) (*.f64 d1 d4))
(fma.f64 d2 d1 (fma.f64 d1 d4 (neg.f64 (*.f64 d1 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d4 (-.f64 d2 (+.f64 d1 d3))))

localize4.0ms (0.1%)

Compiler

Compiled 9 to 5 computations (44.4% saved)

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

localize7.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 18 to 7 computations (61.1% saved)

series3.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

rewrite49.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
662×pow1_binary64
616×add-log-exp_binary64
615×log1p-expm1-u_binary64
615×expm1-log1p-u_binary64
603×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify105.0ms (1.3%)

Algorithm
egg-herbie
Rules
925×fma-def_binary64
789×fma-neg_binary64
349×distribute-lft-neg-out_binary64
300×unswap-sqr_binary64
282×distribute-rgt-neg-in_binary64
Iterations

Useful iterations: 8 (0.0ms)

IterNodesCost
011270
129198
269198
3153198
4444198
51420198
63027198
74773198
85285150
96240150
106854150
117459150
Stop Event
node limit
Counts
43 → 26
Calls
Call 1
Inputs
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 d3)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 d3)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 d3)))
(*.f64 -1 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 -1 (pow.f64 d1 2)))
(*.f64 -1 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 -1 (pow.f64 d1 2)))
(*.f64 -1 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 -1 (pow.f64 d1 2)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 -1 (pow.f64 d1 2)))
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 d3)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 d3)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 d3)))
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 d3)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 d3)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 d3)))
Outputs
(*.f64 -1 (*.f64 d1 d3))
(neg.f64 (*.f64 d1 d3))
(*.f64 d3 (neg.f64 d1))
(*.f64 d1 (neg.f64 d3))
(*.f64 d1 d3)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 d3)))
(fma.f64 -1 (*.f64 d1 d3) (neg.f64 (*.f64 d1 d1)))
(neg.f64 (*.f64 d1 (+.f64 d1 d3)))
(*.f64 d1 (neg.f64 (+.f64 d1 d3)))
(*.f64 (neg.f64 d1) (+.f64 d1 d3))
(*.f64 d1 (-.f64 (neg.f64 d1) d3))
(*.f64 d1 (+.f64 d1 d3))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 d3)))
(fma.f64 -1 (*.f64 d1 d3) (neg.f64 (*.f64 d1 d1)))
(neg.f64 (*.f64 d1 (+.f64 d1 d3)))
(*.f64 d1 (neg.f64 (+.f64 d1 d3)))
(*.f64 (neg.f64 d1) (+.f64 d1 d3))
(*.f64 d1 (-.f64 (neg.f64 d1) d3))
(*.f64 d1 (+.f64 d1 d3))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 d3)))
(fma.f64 -1 (*.f64 d1 d3) (neg.f64 (*.f64 d1 d1)))
(neg.f64 (*.f64 d1 (+.f64 d1 d3)))
(*.f64 d1 (neg.f64 (+.f64 d1 d3)))
(*.f64 (neg.f64 d1) (+.f64 d1 d3))
(*.f64 d1 (-.f64 (neg.f64 d1) d3))
(*.f64 d1 (+.f64 d1 d3))
(*.f64 -1 (pow.f64 d1 2))
(neg.f64 (*.f64 d1 d1))
(*.f64 d1 (neg.f64 d1))
(*.f64 d1 d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 -1 (pow.f64 d1 2)))
(fma.f64 -1 (*.f64 d1 d3) (neg.f64 (*.f64 d1 d1)))
(neg.f64 (*.f64 d1 (+.f64 d1 d3)))
(*.f64 d1 (neg.f64 (+.f64 d1 d3)))
(*.f64 (neg.f64 d1) (+.f64 d1 d3))
(*.f64 d1 (-.f64 (neg.f64 d1) d3))
(*.f64 d1 (+.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 -1 (pow.f64 d1 2)))
(fma.f64 -1 (*.f64 d1 d3) (neg.f64 (*.f64 d1 d1)))
(neg.f64 (*.f64 d1 (+.f64 d1 d3)))
(*.f64 d1 (neg.f64 (+.f64 d1 d3)))
(*.f64 (neg.f64 d1) (+.f64 d1 d3))
(*.f64 d1 (-.f64 (neg.f64 d1) d3))
(*.f64 d1 (+.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 -1 (pow.f64 d1 2)))
(fma.f64 -1 (*.f64 d1 d3) (neg.f64 (*.f64 d1 d1)))
(neg.f64 (*.f64 d1 (+.f64 d1 d3)))
(*.f64 d1 (neg.f64 (+.f64 d1 d3)))
(*.f64 (neg.f64 d1) (+.f64 d1 d3))
(*.f64 d1 (-.f64 (neg.f64 d1) d3))
(*.f64 d1 (+.f64 d1 d3))
(*.f64 -1 (pow.f64 d1 2))
(neg.f64 (*.f64 d1 d1))
(*.f64 d1 (neg.f64 d1))
(*.f64 d1 d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 -1 (pow.f64 d1 2)))
(fma.f64 -1 (*.f64 d1 d3) (neg.f64 (*.f64 d1 d1)))
(neg.f64 (*.f64 d1 (+.f64 d1 d3)))
(*.f64 d1 (neg.f64 (+.f64 d1 d3)))
(*.f64 (neg.f64 d1) (+.f64 d1 d3))
(*.f64 d1 (-.f64 (neg.f64 d1) d3))
(*.f64 d1 (+.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 -1 (pow.f64 d1 2)))
(fma.f64 -1 (*.f64 d1 d3) (neg.f64 (*.f64 d1 d1)))
(neg.f64 (*.f64 d1 (+.f64 d1 d3)))
(*.f64 d1 (neg.f64 (+.f64 d1 d3)))
(*.f64 (neg.f64 d1) (+.f64 d1 d3))
(*.f64 d1 (-.f64 (neg.f64 d1) d3))
(*.f64 d1 (+.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 -1 (pow.f64 d1 2)))
(fma.f64 -1 (*.f64 d1 d3) (neg.f64 (*.f64 d1 d1)))
(neg.f64 (*.f64 d1 (+.f64 d1 d3)))
(*.f64 d1 (neg.f64 (+.f64 d1 d3)))
(*.f64 (neg.f64 d1) (+.f64 d1 d3))
(*.f64 d1 (-.f64 (neg.f64 d1) d3))
(*.f64 d1 (+.f64 d1 d3))
(*.f64 -1 (pow.f64 d1 2))
(neg.f64 (*.f64 d1 d1))
(*.f64 d1 (neg.f64 d1))
(*.f64 d1 d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 -1 (pow.f64 d1 2)))
(fma.f64 -1 (*.f64 d1 d3) (neg.f64 (*.f64 d1 d1)))
(neg.f64 (*.f64 d1 (+.f64 d1 d3)))
(*.f64 d1 (neg.f64 (+.f64 d1 d3)))
(*.f64 (neg.f64 d1) (+.f64 d1 d3))
(*.f64 d1 (-.f64 (neg.f64 d1) d3))
(*.f64 d1 (+.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 -1 (pow.f64 d1 2)))
(fma.f64 -1 (*.f64 d1 d3) (neg.f64 (*.f64 d1 d1)))
(neg.f64 (*.f64 d1 (+.f64 d1 d3)))
(*.f64 d1 (neg.f64 (+.f64 d1 d3)))
(*.f64 (neg.f64 d1) (+.f64 d1 d3))
(*.f64 d1 (-.f64 (neg.f64 d1) d3))
(*.f64 d1 (+.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 -1 (pow.f64 d1 2)))
(fma.f64 -1 (*.f64 d1 d3) (neg.f64 (*.f64 d1 d1)))
(neg.f64 (*.f64 d1 (+.f64 d1 d3)))
(*.f64 d1 (neg.f64 (+.f64 d1 d3)))
(*.f64 (neg.f64 d1) (+.f64 d1 d3))
(*.f64 d1 (-.f64 (neg.f64 d1) d3))
(*.f64 d1 (+.f64 d1 d3))
(*.f64 -1 (*.f64 d1 d3))
(neg.f64 (*.f64 d1 d3))
(*.f64 d3 (neg.f64 d1))
(*.f64 d1 (neg.f64 d3))
(*.f64 d1 d3)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 d3)))
(fma.f64 -1 (*.f64 d1 d3) (neg.f64 (*.f64 d1 d1)))
(neg.f64 (*.f64 d1 (+.f64 d1 d3)))
(*.f64 d1 (neg.f64 (+.f64 d1 d3)))
(*.f64 (neg.f64 d1) (+.f64 d1 d3))
(*.f64 d1 (-.f64 (neg.f64 d1) d3))
(*.f64 d1 (+.f64 d1 d3))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 d3)))
(fma.f64 -1 (*.f64 d1 d3) (neg.f64 (*.f64 d1 d1)))
(neg.f64 (*.f64 d1 (+.f64 d1 d3)))
(*.f64 d1 (neg.f64 (+.f64 d1 d3)))
(*.f64 (neg.f64 d1) (+.f64 d1 d3))
(*.f64 d1 (-.f64 (neg.f64 d1) d3))
(*.f64 d1 (+.f64 d1 d3))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 d3)))
(fma.f64 -1 (*.f64 d1 d3) (neg.f64 (*.f64 d1 d1)))
(neg.f64 (*.f64 d1 (+.f64 d1 d3)))
(*.f64 d1 (neg.f64 (+.f64 d1 d3)))
(*.f64 (neg.f64 d1) (+.f64 d1 d3))
(*.f64 d1 (-.f64 (neg.f64 d1) d3))
(*.f64 d1 (+.f64 d1 d3))
(*.f64 -1 (*.f64 d1 d3))
(neg.f64 (*.f64 d1 d3))
(*.f64 d3 (neg.f64 d1))
(*.f64 d1 (neg.f64 d3))
(*.f64 d1 d3)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 d3)))
(fma.f64 -1 (*.f64 d1 d3) (neg.f64 (*.f64 d1 d1)))
(neg.f64 (*.f64 d1 (+.f64 d1 d3)))
(*.f64 d1 (neg.f64 (+.f64 d1 d3)))
(*.f64 (neg.f64 d1) (+.f64 d1 d3))
(*.f64 d1 (-.f64 (neg.f64 d1) d3))
(*.f64 d1 (+.f64 d1 d3))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 d3)))
(fma.f64 -1 (*.f64 d1 d3) (neg.f64 (*.f64 d1 d1)))
(neg.f64 (*.f64 d1 (+.f64 d1 d3)))
(*.f64 d1 (neg.f64 (+.f64 d1 d3)))
(*.f64 (neg.f64 d1) (+.f64 d1 d3))
(*.f64 d1 (-.f64 (neg.f64 d1) d3))
(*.f64 d1 (+.f64 d1 d3))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 d3)))
(fma.f64 -1 (*.f64 d1 d3) (neg.f64 (*.f64 d1 d1)))
(neg.f64 (*.f64 d1 (+.f64 d1 d3)))
(*.f64 d1 (neg.f64 (+.f64 d1 d3)))
(*.f64 (neg.f64 d1) (+.f64 d1 d3))
(*.f64 d1 (-.f64 (neg.f64 d1) d3))
(*.f64 d1 (+.f64 d1 d3))

localize9.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 27 to 8 computations (70.4% saved)

series6.0ms (0.1%)

Counts
2 → 72
Calls

18 calls:

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

rewrite84.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
582×fma-def_binary64
486×log-prod_binary64
358×pow-prod-down_binary64
278×fma-neg_binary64
260×pow2_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0817
118917
2286317
Stop Event
node limit
Counts
2 → 226
Calls
Call 1
Inputs
(*.f64 d1 (-.f64 d4 d3))
(-.f64 (*.f64 d1 (-.f64 d4 d3)) (*.f64 d1 d1))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 d1 (-.f64 d4 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d4 d1) (*.f64 (neg.f64 d3) d1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 d4) (*.f64 d1 (neg.f64 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 d1) (-.f64 d4 d3))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 d1) (-.f64 d4 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 d1) (-.f64 d4 d3)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 d1) (-.f64 d4 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 d1 (-.f64 d4 d3)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (pow.f64 d4 3) (pow.f64 d3 3)) d1) (fma.f64 d3 (+.f64 d4 d3) (*.f64 d4 d4)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (*.f64 d4 d4) (*.f64 d3 d3)) d1) (+.f64 d4 d3))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (-.f64 (pow.f64 d4 3) (pow.f64 d3 3))) (fma.f64 d3 (+.f64 d4 d3) (*.f64 d4 d4)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 d1 (-.f64 (*.f64 d4 d4) (*.f64 d3 d3))) (+.f64 d4 d3))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 d1 (-.f64 d4 d3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 d1 (-.f64 d4 d3)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 d1 (-.f64 d4 d3))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 d1 (-.f64 d4 d3))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 d1 (-.f64 d4 d3)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 d1 (-.f64 d4 d3)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 d1) (-.f64 d4 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 d1 (-.f64 d4 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 d1 (-.f64 d4 d3)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 d1 (-.f64 d4 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 d1 (-.f64 d4 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 d1 (-.f64 d4 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 d1 (-.f64 d4 d3))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 d1 (-.f64 d4 d3)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 d1 (-.f64 d4 d3)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 d1 (-.f64 d4 d3)) 3)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 d1 (-.f64 d4 d3))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 d1 (-.f64 d4 d3))) 3) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d1 d4 (*.f64 d1 (neg.f64 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d4 d1 (*.f64 (neg.f64 d3) d1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 (-.f64 d4 d3)) (*.f64 d1 (neg.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 (-.f64 d4 d3)) (*.f64 (*.f64 d1 (neg.f64 d1)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 (-.f64 d4 d3)) (fma.f64 d1 (neg.f64 d1) (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1))) (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1))) (fma.f64 (*.f64 d1 (neg.f64 d1)) 1 (*.f64 d1 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1))) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 d1) 2)) (*.f64 (cbrt.f64 d1) d1) (*.f64 d1 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1))) (*.f64 (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1))) (+.f64 (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1)) (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 (neg.f64 d1)) (*.f64 d1 (-.f64 d4 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1)) (*.f64 d1 (-.f64 d4 (+.f64 d3 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 d1) (-.f64 d4 (+.f64 d3 d1)))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 d1) (-.f64 d4 (+.f64 d3 d1))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 d1) (-.f64 d4 (+.f64 d3 d1))))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 d1) (-.f64 d4 (+.f64 d3 d1))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 d1 (-.f64 d4 (+.f64 d3 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))) (pow.f64 (cbrt.f64 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))) 2) (cbrt.f64 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 d1) 2) (*.f64 (cbrt.f64 d1) (-.f64 d4 (+.f64 d3 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))) (sqrt.f64 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 d1) (*.f64 (sqrt.f64 d1) (-.f64 d4 (+.f64 d3 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (*.f64 d1 (-.f64 d4 d3)) 3) (pow.f64 d1 6)) (/.f64 1 (+.f64 (pow.f64 (*.f64 d1 (-.f64 d4 d3)) 2) (fma.f64 (-.f64 d4 d3) (pow.f64 d1 3) (pow.f64 d1 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (*.f64 d1 (-.f64 d4 d3)) 2) (pow.f64 d1 4)) (/.f64 1 (*.f64 d1 (+.f64 (-.f64 d4 d3) d1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 d4 (+.f64 d3 d1)) d1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sqrt.f64 (*.f64 d1 (-.f64 d4 d3))) d1) (-.f64 (sqrt.f64 (*.f64 d1 (-.f64 d4 d3))) d1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 (*.f64 d1 (-.f64 d4 d3)) 2) (fma.f64 (-.f64 d4 d3) (pow.f64 d1 3) (pow.f64 d1 4))) (-.f64 (pow.f64 (*.f64 d1 (-.f64 d4 d3)) 3) (pow.f64 d1 6))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (*.f64 d1 (+.f64 (-.f64 d4 d3) d1)) (-.f64 (pow.f64 (*.f64 d1 (-.f64 d4 d3)) 2) (pow.f64 d1 4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 d1 (-.f64 d4 d3)) 3) (pow.f64 d1 6)) (+.f64 (pow.f64 (*.f64 d1 (-.f64 d4 d3)) 2) (fma.f64 (-.f64 d4 d3) (pow.f64 d1 3) (pow.f64 d1 4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 d1 (-.f64 d4 d3)) 2) (pow.f64 d1 4)) (*.f64 d1 (+.f64 (-.f64 d4 d3) d1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 d1 (-.f64 d4 d3)) 3) (pow.f64 d1 6))) (neg.f64 (+.f64 (pow.f64 (*.f64 d1 (-.f64 d4 d3)) 2) (fma.f64 (-.f64 d4 d3) (pow.f64 d1 3) (pow.f64 d1 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 d1 (-.f64 d4 d3)) 2) (pow.f64 d1 4))) (neg.f64 (*.f64 d1 (+.f64 (-.f64 d4 d3) d1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 d1 (-.f64 d4 d3)) 3) (pow.f64 (*.f64 d1 (neg.f64 d1)) 3)) (+.f64 (pow.f64 (*.f64 d1 (-.f64 d4 d3)) 2) (-.f64 (pow.f64 (*.f64 d1 (neg.f64 d1)) 2) (*.f64 (*.f64 d1 (-.f64 d4 d3)) (*.f64 d1 (neg.f64 d1))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1))) 3) (pow.f64 (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1)) 3)) (+.f64 (pow.f64 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1))) 2) (-.f64 (pow.f64 (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1)) 2) (*.f64 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1))) (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 d1 (-.f64 d4 d3)) 2) (pow.f64 (*.f64 d1 (neg.f64 d1)) 2)) (-.f64 (*.f64 d1 (-.f64 d4 d3)) (*.f64 d1 (neg.f64 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1))) 2) (pow.f64 (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1)) 2)) (-.f64 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1))) (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (+.f64 (pow.f64 (*.f64 d1 (-.f64 d4 d3)) 2) (fma.f64 (-.f64 d4 d3) (pow.f64 d1 3) (pow.f64 d1 4))) (-.f64 (pow.f64 (*.f64 d1 (-.f64 d4 d3)) 3) (pow.f64 d1 6))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (*.f64 d1 (+.f64 (-.f64 d4 d3) d1)) (-.f64 (pow.f64 (*.f64 d1 (-.f64 d4 d3)) 2) (pow.f64 d1 4))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 d1) (-.f64 d4 (+.f64 d3 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (expm1.f64 (*.f64 d1 (-.f64 d4 d3)))) (exp.f64 (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (pow.f64 (exp.f64 d1) (-.f64 d4 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 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 d3)))) (pow.f64 (exp.f64 d1) (neg.f64 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1))))) (exp.f64 (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 d1) (neg.f64 d1)) (+.f64 1 (expm1.f64 (*.f64 d1 (-.f64 d4 d3))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1))) (pow.f64 (exp.f64 d1) (-.f64 d4 (+.f64 d3 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1))) (+.f64 1 (expm1.f64 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1))))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1))))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1))))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d1 (-.f64 d4 d3) (*.f64 d1 (neg.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d1 (-.f64 d4 d3) (*.f64 (*.f64 d1 (neg.f64 d1)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d1 (-.f64 d4 d3) (fma.f64 d1 (neg.f64 d1) (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d1 (-.f64 d4 d3) (neg.f64 (-.f64 (*.f64 d1 d1) (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d1 (neg.f64 d1) (*.f64 d1 (-.f64 d4 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d1 (-.f64 d4 (+.f64 d3 d1)) (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d1 (-.f64 d4 (+.f64 d3 d1)) (fma.f64 (*.f64 d1 (neg.f64 d1)) 1 (*.f64 d1 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d1 (-.f64 d4 (+.f64 d3 d1)) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 d1) 2)) (*.f64 (cbrt.f64 d1) d1) (*.f64 d1 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d1 (-.f64 d4 (+.f64 d3 d1)) (*.f64 (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d1 (-.f64 d4 (+.f64 d3 d1)) (+.f64 (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1)) (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 d4 d3) d1 (*.f64 d1 (neg.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 d4 d3) d1 (*.f64 (*.f64 d1 (neg.f64 d1)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 d4 d3) d1 (fma.f64 d1 (neg.f64 d1) (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 d4 d3) d1 (neg.f64 (-.f64 (*.f64 d1 d1) (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d1 (-.f64 d4 d3)) 1 (*.f64 d1 (neg.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d1 (-.f64 d4 d3)) 1 (*.f64 (*.f64 d1 (neg.f64 d1)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d1 (-.f64 d4 d3)) 1 (fma.f64 d1 (neg.f64 d1) (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d1 (-.f64 d4 d3)) 1 (neg.f64 (-.f64 (*.f64 d1 d1) (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1))) 1 (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1))) 1 (fma.f64 (*.f64 d1 (neg.f64 d1)) 1 (*.f64 d1 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1))) 1 (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 d1) 2)) (*.f64 (cbrt.f64 d1) d1) (*.f64 d1 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1))) 1 (*.f64 (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1))) 1 (+.f64 (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1)) (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 d1 (-.f64 d4 d3)) (*.f64 d1 (neg.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 d1 (-.f64 d4 d3)) (*.f64 (*.f64 d1 (neg.f64 d1)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 d1 (-.f64 d4 d3)) (fma.f64 d1 (neg.f64 d1) (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 d1 (-.f64 d4 d3)) (neg.f64 (-.f64 (*.f64 d1 d1) (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1))) (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1))) (fma.f64 (*.f64 d1 (neg.f64 d1)) 1 (*.f64 d1 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1))) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 d1) 2)) (*.f64 (cbrt.f64 d1) d1) (*.f64 d1 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1))) (*.f64 (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1))) (+.f64 (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1)) (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 d1 (neg.f64 d1)) (*.f64 d1 (-.f64 d4 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1)) (*.f64 d1 (-.f64 d4 (+.f64 d3 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))) (pow.f64 (cbrt.f64 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))) 2) (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))) (pow.f64 (cbrt.f64 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))) 2) (fma.f64 (*.f64 d1 (neg.f64 d1)) 1 (*.f64 d1 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))) (pow.f64 (cbrt.f64 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))) 2) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 d1) 2)) (*.f64 (cbrt.f64 d1) d1) (*.f64 d1 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))) (pow.f64 (cbrt.f64 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))) 2) (*.f64 (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))) (pow.f64 (cbrt.f64 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))) 2) (+.f64 (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1)) (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))) 2) (cbrt.f64 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))) (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))) 2) (cbrt.f64 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))) (fma.f64 (*.f64 d1 (neg.f64 d1)) 1 (*.f64 d1 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))) 2) (cbrt.f64 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 d1) 2)) (*.f64 (cbrt.f64 d1) d1) (*.f64 d1 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))) 2) (cbrt.f64 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))) (*.f64 (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))) 2) (cbrt.f64 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))) (+.f64 (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1)) (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 d4 d3)) 2) (*.f64 (cbrt.f64 (-.f64 d4 d3)) d1) (*.f64 d1 (neg.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 d4 d3)) 2) (*.f64 (cbrt.f64 (-.f64 d4 d3)) d1) (*.f64 (*.f64 d1 (neg.f64 d1)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 d4 d3)) 2) (*.f64 (cbrt.f64 (-.f64 d4 d3)) d1) (fma.f64 d1 (neg.f64 d1) (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 d4 d3)) 2) (*.f64 (cbrt.f64 (-.f64 d4 d3)) d1) (neg.f64 (-.f64 (*.f64 d1 d1) (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 d1) 2) (*.f64 (cbrt.f64 d1) (-.f64 d4 (+.f64 d3 d1))) (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 d1) 2) (*.f64 (cbrt.f64 d1) (-.f64 d4 (+.f64 d3 d1))) (fma.f64 (*.f64 d1 (neg.f64 d1)) 1 (*.f64 d1 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 d1) 2) (*.f64 (cbrt.f64 d1) (-.f64 d4 (+.f64 d3 d1))) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 d1) 2)) (*.f64 (cbrt.f64 d1) d1) (*.f64 d1 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 d1) 2) (*.f64 (cbrt.f64 d1) (-.f64 d4 (+.f64 d3 d1))) (*.f64 (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 d1) 2) (*.f64 (cbrt.f64 d1) (-.f64 d4 (+.f64 d3 d1))) (+.f64 (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1)) (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 d1) 2) (*.f64 (cbrt.f64 d1) (-.f64 d4 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) (-.f64 d4 d3)) (*.f64 (*.f64 d1 (neg.f64 d1)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 d1) 2) (*.f64 (cbrt.f64 d1) (-.f64 d4 d3)) (fma.f64 d1 (neg.f64 d1) (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 d1) 2) (*.f64 (cbrt.f64 d1) (-.f64 d4 d3)) (neg.f64 (-.f64 (*.f64 d1 d1) (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 d1 (-.f64 d4 d3))) (pow.f64 (cbrt.f64 (*.f64 d1 (-.f64 d4 d3))) 2) (*.f64 d1 (neg.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 d1 (-.f64 d4 d3))) (pow.f64 (cbrt.f64 (*.f64 d1 (-.f64 d4 d3))) 2) (*.f64 (*.f64 d1 (neg.f64 d1)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 d1 (-.f64 d4 d3))) (pow.f64 (cbrt.f64 (*.f64 d1 (-.f64 d4 d3))) 2) (fma.f64 d1 (neg.f64 d1) (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 d1 (-.f64 d4 d3))) (pow.f64 (cbrt.f64 (*.f64 d1 (-.f64 d4 d3))) 2) (neg.f64 (-.f64 (*.f64 d1 d1) (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 d1 (-.f64 d4 d3))) 2) (cbrt.f64 (*.f64 d1 (-.f64 d4 d3))) (*.f64 d1 (neg.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 d1 (-.f64 d4 d3))) 2) (cbrt.f64 (*.f64 d1 (-.f64 d4 d3))) (*.f64 (*.f64 d1 (neg.f64 d1)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 d1 (-.f64 d4 d3))) 2) (cbrt.f64 (*.f64 d1 (-.f64 d4 d3))) (fma.f64 d1 (neg.f64 d1) (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 d1 (-.f64 d4 d3))) 2) (cbrt.f64 (*.f64 d1 (-.f64 d4 d3))) (neg.f64 (-.f64 (*.f64 d1 d1) (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 d1) d1) (neg.f64 (pow.f64 (cbrt.f64 d1) 2)) (*.f64 d1 (-.f64 d4 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))) (sqrt.f64 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))) (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))) (sqrt.f64 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))) (fma.f64 (*.f64 d1 (neg.f64 d1)) 1 (*.f64 d1 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))) (sqrt.f64 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 d1) 2)) (*.f64 (cbrt.f64 d1) d1) (*.f64 d1 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))) (sqrt.f64 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))) (*.f64 (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))) (sqrt.f64 (*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))) (+.f64 (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1)) (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 d4 d3)) (*.f64 (sqrt.f64 (-.f64 d4 d3)) d1) (*.f64 d1 (neg.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 d4 d3)) (*.f64 (sqrt.f64 (-.f64 d4 d3)) d1) (*.f64 (*.f64 d1 (neg.f64 d1)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 d4 d3)) (*.f64 (sqrt.f64 (-.f64 d4 d3)) d1) (fma.f64 d1 (neg.f64 d1) (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 d4 d3)) (*.f64 (sqrt.f64 (-.f64 d4 d3)) d1) (neg.f64 (-.f64 (*.f64 d1 d1) (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 d1) (*.f64 (sqrt.f64 d1) (-.f64 d4 (+.f64 d3 d1))) (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 d1) (*.f64 (sqrt.f64 d1) (-.f64 d4 (+.f64 d3 d1))) (fma.f64 (*.f64 d1 (neg.f64 d1)) 1 (*.f64 d1 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 d1) (*.f64 (sqrt.f64 d1) (-.f64 d4 (+.f64 d3 d1))) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 d1) 2)) (*.f64 (cbrt.f64 d1) d1) (*.f64 d1 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 d1) (*.f64 (sqrt.f64 d1) (-.f64 d4 (+.f64 d3 d1))) (*.f64 (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 d1) (*.f64 (sqrt.f64 d1) (-.f64 d4 (+.f64 d3 d1))) (+.f64 (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1)) (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 d1) (*.f64 (sqrt.f64 d1) (-.f64 d4 d3)) (*.f64 d1 (neg.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 d1) (*.f64 (sqrt.f64 d1) (-.f64 d4 d3)) (*.f64 (*.f64 d1 (neg.f64 d1)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 d1) (*.f64 (sqrt.f64 d1) (-.f64 d4 d3)) (fma.f64 d1 (neg.f64 d1) (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 d1) (*.f64 (sqrt.f64 d1) (-.f64 d4 d3)) (neg.f64 (-.f64 (*.f64 d1 d1) (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 d1 (-.f64 d4 d3))) (sqrt.f64 (*.f64 d1 (-.f64 d4 d3))) (*.f64 d1 (neg.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 d1 (-.f64 d4 d3))) (sqrt.f64 (*.f64 d1 (-.f64 d4 d3))) (*.f64 (*.f64 d1 (neg.f64 d1)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 d1 (-.f64 d4 d3))) (sqrt.f64 (*.f64 d1 (-.f64 d4 d3))) (fma.f64 d1 (neg.f64 d1) (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 d1 (-.f64 d4 d3))) (sqrt.f64 (*.f64 d1 (-.f64 d4 d3))) (neg.f64 (-.f64 (*.f64 d1 d1) (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 d1) d1 (*.f64 d1 (-.f64 d4 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (*.f64 d1 (-.f64 d4 d3)) 3) (pow.f64 d1 6)) (/.f64 1 (+.f64 (pow.f64 (*.f64 d1 (-.f64 d4 d3)) 2) (fma.f64 (-.f64 d4 d3) (pow.f64 d1 3) (pow.f64 d1 4)))) (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (*.f64 d1 (-.f64 d4 d3)) 3) (pow.f64 d1 6)) (/.f64 1 (+.f64 (pow.f64 (*.f64 d1 (-.f64 d4 d3)) 2) (fma.f64 (-.f64 d4 d3) (pow.f64 d1 3) (pow.f64 d1 4)))) (fma.f64 (*.f64 d1 (neg.f64 d1)) 1 (*.f64 d1 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (*.f64 d1 (-.f64 d4 d3)) 3) (pow.f64 d1 6)) (/.f64 1 (+.f64 (pow.f64 (*.f64 d1 (-.f64 d4 d3)) 2) (fma.f64 (-.f64 d4 d3) (pow.f64 d1 3) (pow.f64 d1 4)))) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 d1) 2)) (*.f64 (cbrt.f64 d1) d1) (*.f64 d1 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (*.f64 d1 (-.f64 d4 d3)) 3) (pow.f64 d1 6)) (/.f64 1 (+.f64 (pow.f64 (*.f64 d1 (-.f64 d4 d3)) 2) (fma.f64 (-.f64 d4 d3) (pow.f64 d1 3) (pow.f64 d1 4)))) (*.f64 (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (*.f64 d1 (-.f64 d4 d3)) 3) (pow.f64 d1 6)) (/.f64 1 (+.f64 (pow.f64 (*.f64 d1 (-.f64 d4 d3)) 2) (fma.f64 (-.f64 d4 d3) (pow.f64 d1 3) (pow.f64 d1 4)))) (+.f64 (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1)) (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (*.f64 d1 (-.f64 d4 d3)) 2) (pow.f64 d1 4)) (/.f64 1 (*.f64 d1 (+.f64 (-.f64 d4 d3) d1))) (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (*.f64 d1 (-.f64 d4 d3)) 2) (pow.f64 d1 4)) (/.f64 1 (*.f64 d1 (+.f64 (-.f64 d4 d3) d1))) (fma.f64 (*.f64 d1 (neg.f64 d1)) 1 (*.f64 d1 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (*.f64 d1 (-.f64 d4 d3)) 2) (pow.f64 d1 4)) (/.f64 1 (*.f64 d1 (+.f64 (-.f64 d4 d3) d1))) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 d1) 2)) (*.f64 (cbrt.f64 d1) d1) (*.f64 d1 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (*.f64 d1 (-.f64 d4 d3)) 2) (pow.f64 d1 4)) (/.f64 1 (*.f64 d1 (+.f64 (-.f64 d4 d3) d1))) (*.f64 (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (*.f64 d1 (-.f64 d4 d3)) 2) (pow.f64 d1 4)) (/.f64 1 (*.f64 d1 (+.f64 (-.f64 d4 d3) d1))) (+.f64 (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1)) (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 d4 (+.f64 d3 d1)) d1 (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 d4 (+.f64 d3 d1)) d1 (fma.f64 (*.f64 d1 (neg.f64 d1)) 1 (*.f64 d1 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 d4 (+.f64 d3 d1)) d1 (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 d1) 2)) (*.f64 (cbrt.f64 d1) d1) (*.f64 d1 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 d4 (+.f64 d3 d1)) d1 (*.f64 (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 d4 (+.f64 d3 d1)) d1 (+.f64 (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1)) (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 d1 (neg.f64 d1))) 2) (cbrt.f64 (*.f64 d1 (neg.f64 d1))) (*.f64 d1 (-.f64 d4 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1))) 2) (cbrt.f64 (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1))) (*.f64 d1 (-.f64 d4 (+.f64 d3 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 d1 (neg.f64 d1))) (sqrt.f64 (*.f64 d1 (neg.f64 d1))) (*.f64 d1 (-.f64 d4 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (hypot.f64 (sqrt.f64 (*.f64 d1 (neg.f64 d1))) d1) (hypot.f64 (sqrt.f64 (*.f64 d1 (neg.f64 d1))) d1) (*.f64 d1 (-.f64 d4 (+.f64 d3 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (-.f64 d4 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 (*.f64 d1 (-.f64 d4 d3))) d1) (-.f64 (sqrt.f64 (*.f64 d1 (-.f64 d4 d3))) d1) (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 (*.f64 d1 (-.f64 d4 d3))) d1) (-.f64 (sqrt.f64 (*.f64 d1 (-.f64 d4 d3))) d1) (fma.f64 (*.f64 d1 (neg.f64 d1)) 1 (*.f64 d1 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 (*.f64 d1 (-.f64 d4 d3))) d1) (-.f64 (sqrt.f64 (*.f64 d1 (-.f64 d4 d3))) d1) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 d1) 2)) (*.f64 (cbrt.f64 d1) d1) (*.f64 d1 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 (*.f64 d1 (-.f64 d4 d3))) d1) (-.f64 (sqrt.f64 (*.f64 d1 (-.f64 d4 d3))) d1) (*.f64 (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 (*.f64 d1 (-.f64 d4 d3))) d1) (-.f64 (sqrt.f64 (*.f64 d1 (-.f64 d4 d3))) d1) (+.f64 (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1)) (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (*.f64 (cbrt.f64 d1) d1)) (pow.f64 (cbrt.f64 d1) 2) (*.f64 d1 (-.f64 d4 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (neg.f64 d1) 1) d1 (*.f64 d1 (-.f64 d4 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (neg.f64 d1) (pow.f64 (cbrt.f64 d1) 2)) (cbrt.f64 d1) (*.f64 d1 (-.f64 d4 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (neg.f64 d1) (sqrt.f64 d1)) (sqrt.f64 d1) (*.f64 d1 (-.f64 d4 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d1 (pow.f64 (cbrt.f64 (-.f64 d4 d3)) 2)) (cbrt.f64 (-.f64 d4 d3)) (*.f64 d1 (neg.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d1 (pow.f64 (cbrt.f64 (-.f64 d4 d3)) 2)) (cbrt.f64 (-.f64 d4 d3)) (*.f64 (*.f64 d1 (neg.f64 d1)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d1 (pow.f64 (cbrt.f64 (-.f64 d4 d3)) 2)) (cbrt.f64 (-.f64 d4 d3)) (fma.f64 d1 (neg.f64 d1) (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d1 (pow.f64 (cbrt.f64 (-.f64 d4 d3)) 2)) (cbrt.f64 (-.f64 d4 d3)) (neg.f64 (-.f64 (*.f64 d1 d1) (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d1 (sqrt.f64 (-.f64 d4 d3))) (sqrt.f64 (-.f64 d4 d3)) (*.f64 d1 (neg.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d1 (sqrt.f64 (-.f64 d4 d3))) (sqrt.f64 (-.f64 d4 d3)) (*.f64 (*.f64 d1 (neg.f64 d1)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d1 (sqrt.f64 (-.f64 d4 d3))) (sqrt.f64 (-.f64 d4 d3)) (fma.f64 d1 (neg.f64 d1) (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d1 (sqrt.f64 (-.f64 d4 d3))) (sqrt.f64 (-.f64 d4 d3)) (neg.f64 (-.f64 (*.f64 d1 d1) (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 d4 d3) (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 d4 d3) (pow.f64 (cbrt.f64 d1) 2)) (cbrt.f64 d1) (*.f64 (*.f64 d1 (neg.f64 d1)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 d4 d3) (pow.f64 (cbrt.f64 d1) 2)) (cbrt.f64 d1) (fma.f64 d1 (neg.f64 d1) (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 d4 d3) (pow.f64 (cbrt.f64 d1) 2)) (cbrt.f64 d1) (neg.f64 (-.f64 (*.f64 d1 d1) (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 d4 d3) (sqrt.f64 d1)) (sqrt.f64 d1) (*.f64 d1 (neg.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 d4 d3) (sqrt.f64 d1)) (sqrt.f64 d1) (*.f64 (*.f64 d1 (neg.f64 d1)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 d4 d3) (sqrt.f64 d1)) (sqrt.f64 d1) (fma.f64 d1 (neg.f64 d1) (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 d4 d3) (sqrt.f64 d1)) (sqrt.f64 d1) (neg.f64 (-.f64 (*.f64 d1 d1) (fma.f64 d1 (neg.f64 d1) (*.f64 d1 d1)))))))))

simplify133.0ms (1.7%)

Algorithm
egg-herbie
Rules
515×unsub-neg_binary64
368×fma-def_binary64
306×sub-neg_binary64
300×unswap-sqr_binary64
298×distribute-rgt-out--_binary64
Iterations

Useful iterations: 8 (0.0ms)

IterNodesCost
018679
145649
295565
3248565
4879565
52904565
65060565
76664565
87516549
Stop Event
node limit
Counts
298 → 241
Calls
Call 1
Inputs
(*.f64 (-.f64 d4 d3) d1)
(*.f64 (-.f64 d4 d3) d1)
(*.f64 (-.f64 d4 d3) d1)
(*.f64 (-.f64 d4 d3) d1)
(*.f64 (-.f64 d4 d3) d1)
(*.f64 (-.f64 d4 d3) d1)
(*.f64 (-.f64 d4 d3) d1)
(*.f64 (-.f64 d4 d3) d1)
(*.f64 (-.f64 d4 d3) d1)
(*.f64 (-.f64 d4 d3) d1)
(*.f64 (-.f64 d4 d3) d1)
(*.f64 (-.f64 d4 d3) d1)
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(*.f64 d1 d4)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(*.f64 d1 d4)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(*.f64 d1 d4)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(*.f64 (-.f64 d4 d3) d1)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d4 d3) d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d4 d3) d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d4 d3) d1))
(*.f64 -1 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d4 d3) d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d4 d3) d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d4 d3) d1))
(*.f64 -1 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d4 d3) d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d4 d3) d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d4 d3) d1))
(-.f64 (*.f64 -1 (*.f64 d1 d3)) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4)) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4)) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4)) (pow.f64 d1 2))
(*.f64 d1 d4)
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4)) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4)) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4)) (pow.f64 d1 2))
(*.f64 d1 d4)
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4)) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4)) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4)) (pow.f64 d1 2))
(-.f64 (*.f64 d1 d4) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4)) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4)) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4)) (pow.f64 d1 2))
(*.f64 -1 (*.f64 d1 d3))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4)) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4)) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4)) (pow.f64 d1 2))
(*.f64 -1 (*.f64 d1 d3))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4)) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4)) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4)) (pow.f64 d1 2))
Outputs
(*.f64 (-.f64 d4 d3) d1)
(*.f64 (-.f64 d4 d3) d1)
(*.f64 (-.f64 d4 d3) d1)
(*.f64 (-.f64 d4 d3) d1)
(*.f64 (-.f64 d4 d3) d1)
(*.f64 (-.f64 d4 d3) d1)
(*.f64 (-.f64 d4 d3) d1)
(*.f64 (-.f64 d4 d3) d1)
(*.f64 (-.f64 d4 d3) d1)
(*.f64 (-.f64 d4 d3) d1)
(*.f64 (-.f64 d4 d3) d1)
(*.f64 (-.f64 d4 d3) d1)
(*.f64 -1 (*.f64 d1 d3))
(neg.f64 (*.f64 d3 d1))
(*.f64 d3 (neg.f64 d1))
(*.f64 d1 (neg.f64 d3))
(*.f64 d3 d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(*.f64 (-.f64 d4 d3) d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(*.f64 (-.f64 d4 d3) d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(*.f64 (-.f64 d4 d3) d1)
(*.f64 d1 d4)
(*.f64 d4 d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(*.f64 (-.f64 d4 d3) d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(*.f64 (-.f64 d4 d3) d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(*.f64 (-.f64 d4 d3) d1)
(*.f64 d1 d4)
(*.f64 d4 d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(*.f64 (-.f64 d4 d3) d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(*.f64 (-.f64 d4 d3) d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(*.f64 (-.f64 d4 d3) d1)
(*.f64 d1 d4)
(*.f64 d4 d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(*.f64 (-.f64 d4 d3) d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(*.f64 (-.f64 d4 d3) d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(*.f64 (-.f64 d4 d3) d1)
(*.f64 -1 (*.f64 d1 d3))
(neg.f64 (*.f64 d3 d1))
(*.f64 d3 (neg.f64 d1))
(*.f64 d1 (neg.f64 d3))
(*.f64 d3 d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(*.f64 (-.f64 d4 d3) d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(*.f64 (-.f64 d4 d3) d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(*.f64 (-.f64 d4 d3) d1)
(*.f64 -1 (*.f64 d1 d3))
(neg.f64 (*.f64 d3 d1))
(*.f64 d3 (neg.f64 d1))
(*.f64 d1 (neg.f64 d3))
(*.f64 d3 d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(*.f64 (-.f64 d4 d3) d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(*.f64 (-.f64 d4 d3) d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(*.f64 (-.f64 d4 d3) d1)
(*.f64 (-.f64 d4 d3) d1)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d4 d3) d1))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 (-.f64 d4 d3) d1))
(-.f64 (*.f64 (-.f64 d4 d3) d1) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 d3) d1))
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
(*.f64 d1 (-.f64 (-.f64 d4 d1) d3))
(*.f64 d1 (-.f64 (+.f64 d4 d1) d3))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d4 d3) d1))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 (-.f64 d4 d3) d1))
(-.f64 (*.f64 (-.f64 d4 d3) d1) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 d3) d1))
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
(*.f64 d1 (-.f64 (-.f64 d4 d1) d3))
(*.f64 d1 (-.f64 (+.f64 d4 d1) d3))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d4 d3) d1))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 (-.f64 d4 d3) d1))
(-.f64 (*.f64 (-.f64 d4 d3) d1) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 d3) d1))
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
(*.f64 d1 (-.f64 (-.f64 d4 d1) d3))
(*.f64 d1 (-.f64 (+.f64 d4 d1) d3))
(*.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 (-.f64 d4 d3) d1))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 (-.f64 d4 d3) d1))
(-.f64 (*.f64 (-.f64 d4 d3) d1) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 d3) d1))
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
(*.f64 d1 (-.f64 (-.f64 d4 d1) d3))
(*.f64 d1 (-.f64 (+.f64 d4 d1) d3))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d4 d3) d1))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 (-.f64 d4 d3) d1))
(-.f64 (*.f64 (-.f64 d4 d3) d1) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 d3) d1))
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
(*.f64 d1 (-.f64 (-.f64 d4 d1) d3))
(*.f64 d1 (-.f64 (+.f64 d4 d1) d3))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d4 d3) d1))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 (-.f64 d4 d3) d1))
(-.f64 (*.f64 (-.f64 d4 d3) d1) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 d3) d1))
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
(*.f64 d1 (-.f64 (-.f64 d4 d1) d3))
(*.f64 d1 (-.f64 (+.f64 d4 d1) d3))
(*.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 (-.f64 d4 d3) d1))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 (-.f64 d4 d3) d1))
(-.f64 (*.f64 (-.f64 d4 d3) d1) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 d3) d1))
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
(*.f64 d1 (-.f64 (-.f64 d4 d1) d3))
(*.f64 d1 (-.f64 (+.f64 d4 d1) d3))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d4 d3) d1))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 (-.f64 d4 d3) d1))
(-.f64 (*.f64 (-.f64 d4 d3) d1) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 d3) d1))
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
(*.f64 d1 (-.f64 (-.f64 d4 d1) d3))
(*.f64 d1 (-.f64 (+.f64 d4 d1) d3))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d4 d3) d1))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 (-.f64 d4 d3) d1))
(-.f64 (*.f64 (-.f64 d4 d3) d1) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 d3) d1))
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
(*.f64 d1 (-.f64 (-.f64 d4 d1) d3))
(*.f64 d1 (-.f64 (+.f64 d4 d1) d3))
(-.f64 (*.f64 -1 (*.f64 d1 d3)) (pow.f64 d1 2))
(-.f64 (neg.f64 (*.f64 d3 d1)) (*.f64 d1 d1))
(-.f64 (*.f64 d3 (neg.f64 d1)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (neg.f64 d3) d1))
(*.f64 d1 (+.f64 d3 d1))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4)) (pow.f64 d1 2))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 (-.f64 d4 d3) d1))
(-.f64 (*.f64 (-.f64 d4 d3) d1) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 d3) d1))
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
(*.f64 d1 (-.f64 (-.f64 d4 d1) d3))
(*.f64 d1 (-.f64 (+.f64 d4 d1) d3))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4)) (pow.f64 d1 2))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 (-.f64 d4 d3) d1))
(-.f64 (*.f64 (-.f64 d4 d3) d1) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 d3) d1))
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
(*.f64 d1 (-.f64 (-.f64 d4 d1) d3))
(*.f64 d1 (-.f64 (+.f64 d4 d1) d3))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4)) (pow.f64 d1 2))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 (-.f64 d4 d3) d1))
(-.f64 (*.f64 (-.f64 d4 d3) d1) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 d3) d1))
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
(*.f64 d1 (-.f64 (-.f64 d4 d1) d3))
(*.f64 d1 (-.f64 (+.f64 d4 d1) d3))
(*.f64 d1 d4)
(*.f64 d4 d1)
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4)) (pow.f64 d1 2))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 (-.f64 d4 d3) d1))
(-.f64 (*.f64 (-.f64 d4 d3) d1) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 d3) d1))
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
(*.f64 d1 (-.f64 (-.f64 d4 d1) d3))
(*.f64 d1 (-.f64 (+.f64 d4 d1) d3))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4)) (pow.f64 d1 2))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 (-.f64 d4 d3) d1))
(-.f64 (*.f64 (-.f64 d4 d3) d1) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 d3) d1))
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
(*.f64 d1 (-.f64 (-.f64 d4 d1) d3))
(*.f64 d1 (-.f64 (+.f64 d4 d1) d3))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4)) (pow.f64 d1 2))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 (-.f64 d4 d3) d1))
(-.f64 (*.f64 (-.f64 d4 d3) d1) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 d3) d1))
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
(*.f64 d1 (-.f64 (-.f64 d4 d1) d3))
(*.f64 d1 (-.f64 (+.f64 d4 d1) d3))
(*.f64 d1 d4)
(*.f64 d4 d1)
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4)) (pow.f64 d1 2))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 (-.f64 d4 d3) d1))
(-.f64 (*.f64 (-.f64 d4 d3) d1) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 d3) d1))
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
(*.f64 d1 (-.f64 (-.f64 d4 d1) d3))
(*.f64 d1 (-.f64 (+.f64 d4 d1) d3))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4)) (pow.f64 d1 2))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 (-.f64 d4 d3) d1))
(-.f64 (*.f64 (-.f64 d4 d3) d1) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 d3) d1))
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
(*.f64 d1 (-.f64 (-.f64 d4 d1) d3))
(*.f64 d1 (-.f64 (+.f64 d4 d1) d3))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4)) (pow.f64 d1 2))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 (-.f64 d4 d3) d1))
(-.f64 (*.f64 (-.f64 d4 d3) d1) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 d3) d1))
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
(*.f64 d1 (-.f64 (-.f64 d4 d1) d3))
(*.f64 d1 (-.f64 (+.f64 d4 d1) d3))
(-.f64 (*.f64 d1 d4) (pow.f64 d1 2))
(-.f64 (*.f64 d4 d1) (*.f64 d1 d1))
(*.f64 d1 (-.f64 d4 d1))
(*.f64 d1 (+.f64 d4 d1))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4)) (pow.f64 d1 2))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 (-.f64 d4 d3) d1))
(-.f64 (*.f64 (-.f64 d4 d3) d1) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 d3) d1))
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
(*.f64 d1 (-.f64 (-.f64 d4 d1) d3))
(*.f64 d1 (-.f64 (+.f64 d4 d1) d3))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4)) (pow.f64 d1 2))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 (-.f64 d4 d3) d1))
(-.f64 (*.f64 (-.f64 d4 d3) d1) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 d3) d1))
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
(*.f64 d1 (-.f64 (-.f64 d4 d1) d3))
(*.f64 d1 (-.f64 (+.f64 d4 d1) d3))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4)) (pow.f64 d1 2))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 (-.f64 d4 d3) d1))
(-.f64 (*.f64 (-.f64 d4 d3) d1) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 d3) d1))
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
(*.f64 d1 (-.f64 (-.f64 d4 d1) d3))
(*.f64 d1 (-.f64 (+.f64 d4 d1) d3))
(*.f64 -1 (*.f64 d1 d3))
(neg.f64 (*.f64 d3 d1))
(*.f64 d3 (neg.f64 d1))
(*.f64 d1 (neg.f64 d3))
(*.f64 d3 d1)
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4)) (pow.f64 d1 2))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 (-.f64 d4 d3) d1))
(-.f64 (*.f64 (-.f64 d4 d3) d1) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 d3) d1))
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
(*.f64 d1 (-.f64 (-.f64 d4 d1) d3))
(*.f64 d1 (-.f64 (+.f64 d4 d1) d3))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4)) (pow.f64 d1 2))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 (-.f64 d4 d3) d1))
(-.f64 (*.f64 (-.f64 d4 d3) d1) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 d3) d1))
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
(*.f64 d1 (-.f64 (-.f64 d4 d1) d3))
(*.f64 d1 (-.f64 (+.f64 d4 d1) d3))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4)) (pow.f64 d1 2))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 (-.f64 d4 d3) d1))
(-.f64 (*.f64 (-.f64 d4 d3) d1) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 d3) d1))
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
(*.f64 d1 (-.f64 (-.f64 d4 d1) d3))
(*.f64 d1 (-.f64 (+.f64 d4 d1) d3))
(*.f64 -1 (*.f64 d1 d3))
(neg.f64 (*.f64 d3 d1))
(*.f64 d3 (neg.f64 d1))
(*.f64 d1 (neg.f64 d3))
(*.f64 d3 d1)
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4)) (pow.f64 d1 2))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 (-.f64 d4 d3) d1))
(-.f64 (*.f64 (-.f64 d4 d3) d1) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 d3) d1))
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
(*.f64 d1 (-.f64 (-.f64 d4 d1) d3))
(*.f64 d1 (-.f64 (+.f64 d4 d1) d3))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4)) (pow.f64 d1 2))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 (-.f64 d4 d3) d1))
(-.f64 (*.f64 (-.f64 d4 d3) d1) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 d3) d1))
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
(*.f64 d1 (-.f64 (-.f64 d4 d1) d3))
(*.f64 d1 (-.f64 (+.f64 d4 d1) d3))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4)) (pow.f64 d1 2))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 (-.f64 d4 d3) d1))
(-.f64 (*.f64 (-.f64 d4 d3) d1) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 d4 d3) d1))
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
(*.f64 d1 (-.f64 (-.f64 d4 d1) d3))
(*.f64 d1 (-.f64 (+.f64 d4 d1) d3))

eval101.0ms (1.3%)

Compiler

Compiled 7388 to 1777 computations (75.9% saved)

prune86.0ms (1.1%)

Pruning

18 alts after pruning (12 fresh and 6 done)

PrunedKeptTotal
New4526458
Fresh268
Picked011
Done156
Total45518473
Error
0b
Counts
473 → 18
Alt Table
Click to see full alt table
StatusErrorProgram
6.8b
(+.f64 (*.f64 (-.f64 d2 d3) d1) (*.f64 d1 d4))
38.5b
(*.f64 (-.f64 d2 d1) d1)
44.2b
(*.f64 d2 d1)
60.9b
(*.f64 d1 d3)
45.3b
(*.f64 d3 (neg.f64 d1))
28.4b
(*.f64 (-.f64 d2 d3) d1)
34.0b
(*.f64 d1 (-.f64 d4 d1))
34.0b
(fma.f64 d4 d1 (*.f64 (neg.f64 d1) d1))
6.8b
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
39.2b
(*.f64 d1 (-.f64 (neg.f64 d1) d3))
22.5b
(*.f64 d1 (+.f64 d2 d4))
17.7b
(-.f64 (*.f64 d1 (-.f64 d4 d3)) (*.f64 d1 d1))
22.5b
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
6.8b
(fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 d4))
60.7b
(*.f64 d1 d1)
55.4b
(*.f64 d1 (neg.f64 d1))
16.5b
(+.f64 (*.f64 d2 d1) (*.f64 (-.f64 d4 d1) d1))
39.7b
(*.f64 d1 d4)
Compiler

Compiled 294 to 193 computations (34.4% saved)

localize8.0ms (0.1%)

Compiler

Compiled 22 to 7 computations (68.2% saved)

localize4.0ms (0%)

Compiler

Compiled 8 to 5 computations (37.5% saved)

localize5.0ms (0.1%)

Compiler

Compiled 12 to 6 computations (50% saved)

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

series9.0ms (0.1%)

Counts
1 → 24
Calls

6 calls:

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

rewrite51.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 (-.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))))))))

simplify113.0ms (1.4%)

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

localize14.0ms (0.2%)

Local error

Found 1 expressions with local error:

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

Compiled 23 to 7 computations (69.6% saved)

series9.0ms (0.1%)

Counts
1 → 36
Calls

12 calls:

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

rewrite85.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
458×log-prod_binary64
422×fma-def_binary64
366×pow-prod-down_binary64
343×exp-prod_binary64
257×pow2_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify94.0ms (1.2%)

Algorithm
egg-herbie
Rules
568×fma-def_binary64
460×fma-neg_binary64
147×cancel-sign-sub-inv_binary64
96×distribute-rgt-in_binary64
69×sub-neg_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
021319
146319
287319
3147319
4233319
5406319
6805319
71281319
81763319
92099319
102129319
Stop Event
saturated
Counts
72 → 51
Calls
Call 1
Inputs
(*.f64 (-.f64 d4 d3) d1)
(+.f64 (*.f64 d2 d1) (*.f64 (-.f64 d4 d3) d1))
(+.f64 (*.f64 d2 d1) (*.f64 (-.f64 d4 d3) d1))
(+.f64 (*.f64 d2 d1) (*.f64 (-.f64 d4 d3) d1))
(*.f64 d2 d1)
(+.f64 (*.f64 d2 d1) (*.f64 (-.f64 d4 d3) d1))
(+.f64 (*.f64 d2 d1) (*.f64 (-.f64 d4 d3) d1))
(+.f64 (*.f64 d2 d1) (*.f64 (-.f64 d4 d3) d1))
(*.f64 d2 d1)
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d3)))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d3)))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d3)))
(*.f64 (-.f64 d2 d3) d1)
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
(*.f64 d1 d4)
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
(*.f64 d1 d4)
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
(*.f64 d1 (+.f64 d2 d4))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (+.f64 d2 d4)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (+.f64 d2 d4)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (+.f64 d2 d4)))
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (+.f64 d2 d4)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (+.f64 d2 d4)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (+.f64 d2 d4)))
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (+.f64 d2 d4)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (+.f64 d2 d4)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (+.f64 d2 d4)))
Outputs
(*.f64 (-.f64 d4 d3) d1)
(+.f64 (*.f64 d2 d1) (*.f64 (-.f64 d4 d3) d1))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 (-.f64 d4 d3) d2))
(+.f64 (*.f64 d2 d1) (*.f64 (-.f64 d4 d3) d1))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 (-.f64 d4 d3) d2))
(+.f64 (*.f64 d2 d1) (*.f64 (-.f64 d4 d3) d1))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 (-.f64 d4 d3) d2))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d2 d1) (*.f64 (-.f64 d4 d3) d1))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 (-.f64 d4 d3) d2))
(+.f64 (*.f64 d2 d1) (*.f64 (-.f64 d4 d3) d1))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 (-.f64 d4 d3) d2))
(+.f64 (*.f64 d2 d1) (*.f64 (-.f64 d4 d3) d1))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 (-.f64 d4 d3) d2))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 (-.f64 d4 d3) d2))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 (-.f64 d4 d3) d2))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 (-.f64 d4 d3) d2))
(*.f64 (-.f64 d2 d3) d1)
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 (-.f64 d4 d3) d2))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 (-.f64 d4 d3) d2))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 (-.f64 d4 d3) d2))
(*.f64 d1 d4)
(*.f64 d4 d1)
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 (-.f64 d4 d3) d2))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 (-.f64 d4 d3) d2))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 (-.f64 d4 d3) d2))
(*.f64 d1 d4)
(*.f64 d4 d1)
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 (-.f64 d4 d3) d2))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 (-.f64 d4 d3) d2))
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 (-.f64 d4 d3) d2))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 (+.f64 d4 d2))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (+.f64 d2 d4)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 (-.f64 d4 d3) d2))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (+.f64 d2 d4)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 (-.f64 d4 d3) d2))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (+.f64 d2 d4)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 (-.f64 d4 d3) d2))
(*.f64 -1 (*.f64 d1 d3))
(neg.f64 (*.f64 d3 d1))
(*.f64 d3 (neg.f64 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (+.f64 d2 d4)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 (-.f64 d4 d3) d2))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (+.f64 d2 d4)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 (-.f64 d4 d3) d2))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (+.f64 d2 d4)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 (-.f64 d4 d3) d2))
(*.f64 -1 (*.f64 d1 d3))
(neg.f64 (*.f64 d3 d1))
(*.f64 d3 (neg.f64 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (+.f64 d2 d4)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 (-.f64 d4 d3) d2))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (+.f64 d2 d4)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 (-.f64 d4 d3) d2))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (+.f64 d2 d4)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 (-.f64 d4 d3) d2))

eval23.0ms (0.3%)

Compiler

Compiled 727 to 229 computations (68.5% saved)

prune36.0ms (0.5%)

Pruning

19 alts after pruning (8 fresh and 11 done)

PrunedKeptTotal
New71374
Fresh257
Picked011
Done01010
Total731992
Error
0b
Counts
92 → 19
Alt Table
Click to see full alt table
StatusErrorProgram
22.5b
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
24.1b
(*.f64 (-.f64 d4 d3) d1)
6.8b
(+.f64 (*.f64 (-.f64 d2 d3) d1) (*.f64 d1 d4))
38.5b
(*.f64 (-.f64 d2 d1) d1)
44.2b
(*.f64 d2 d1)
60.7b
(*.f64 d1 d1)
22.5b
(*.f64 d1 (+.f64 d4 d2))
60.9b
(*.f64 d1 d3)
45.3b
(*.f64 d3 (neg.f64 d1))
28.4b
(*.f64 (-.f64 d2 d3) d1)
34.0b
(*.f64 d1 (-.f64 d4 d1))
34.0b
(fma.f64 d4 d1 (*.f64 (neg.f64 d1) d1))
6.8b
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
17.7b
(-.f64 (*.f64 d1 (-.f64 d4 d3)) (*.f64 d1 d1))
38.5b
(+.f64 (*.f64 d2 d1) (*.f64 (neg.f64 d1) d1))
6.8b
(fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 d4))
55.4b
(*.f64 d1 (neg.f64 d1))
39.2b
(*.f64 d1 (-.f64 (neg.f64 d1) d3))
39.7b
(*.f64 d1 d4)
Compiler

Compiled 182 to 121 computations (33.5% saved)

regimes167.0ms (2.1%)

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

5 calls:

33.0ms
(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1))
32.0ms
d3
30.0ms
d2
29.0ms
d4
29.0ms
d1
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 259 to 85 computations (67.2% saved)

regimes157.0ms (2%)

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

5 calls:

30.0ms
(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1))
29.0ms
d4
29.0ms
d1
29.0ms
d2
28.0ms
d3
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 238 to 82 computations (65.5% saved)

regimes110.0ms (1.4%)

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

4 calls:

27.0ms
d3
25.0ms
d1
25.0ms
d4
24.0ms
d2
Results
ErrorSegmentsBranch
0.0b1d1
0.0b1d2
0.0b1d3
0.0b1d4
Compiler

Compiled 169 to 62 computations (63.3% saved)

regimes286.0ms (3.6%)

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

4 calls:

84.0ms
d1
65.0ms
d4
64.0ms
d3
63.0ms
d2
Results
ErrorSegmentsBranch
2.6b4d1
3.1b2d2
2.1b3d3
1.8b2d4
Compiler

Compiled 160 to 59 computations (63.1% saved)

bsearch39.0ms (0.5%)

Algorithm
binary-search
Steps
TimeLeftRight
38.0ms
2.3588317800041587e-49
1.2985253930179578e-45
Compiler

Compiled 26 to 17 computations (34.6% saved)

regimes174.0ms (2.2%)

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

4 calls:

55.0ms
d4
54.0ms
d3
37.0ms
d1
20.0ms
d2
Results
ErrorSegmentsBranch
2.6b4d1
6.8b1d2
2.1b3d3
1.8b2d4
Compiler

Compiled 124 to 53 computations (57.3% saved)

bsearch23.0ms (0.3%)

Algorithm
binary-search
Steps
TimeLeftRight
22.0ms
2.3588317800041587e-49
1.2985253930179578e-45
Compiler

Compiled 26 to 17 computations (34.6% saved)

regimes48.0ms (0.6%)

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

4 calls:

17.0ms
d1
9.0ms
d2
9.0ms
d4
9.0ms
d3
Results
ErrorSegmentsBranch
4.4b2d1
6.8b1d2
6.8b1d3
6.8b1d4
Compiler

Compiled 102 to 46 computations (54.9% saved)

bsearch61.0ms (0.8%)

Algorithm
binary-search
Steps
TimeLeftRight
61.0ms
1.288349066715291e+50
2.3260682974069212e+58
Compiler

Compiled 224 to 152 computations (32.1% saved)

regimes167.0ms (2.1%)

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

4 calls:

68.0ms
d1
46.0ms
d3
32.0ms
d2
17.0ms
d4
Results
ErrorSegmentsBranch
14.6b9d1
9.9b4d2
8.9b6d3
9.4b2d4
Compiler

Compiled 95 to 44 computations (53.7% saved)

bsearch108.0ms (1.4%)

Algorithm
binary-search
Steps
TimeLeftRight
21.0ms
1.927371358207162e+119
7.895741905237066e+133
21.0ms
-574373177314322900.0
-447671424433143.44
21.0ms
-3.448076334887785e+53
-6.361470897723939e+52
22.0ms
-3.825501482466774e+84
-1.0428861332381983e+82
22.0ms
-2.3544833646285208e+113
-8.363158048636861e+110
Compiler

Compiled 26 to 17 computations (34.6% saved)

regimes155.0ms (2%)

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

4 calls:

64.0ms
d1
43.0ms
d3
29.0ms
d2
16.0ms
d4
Results
ErrorSegmentsBranch
14.6b9d1
9.9b4d2
8.9b6d3
9.4b2d4
Compiler

Compiled 88 to 43 computations (51.1% saved)

bsearch109.0ms (1.4%)

Algorithm
binary-search
Steps
TimeLeftRight
22.0ms
1.927371358207162e+119
7.895741905237066e+133
22.0ms
-574373177314322900.0
-447671424433143.44
21.0ms
-3.448076334887785e+53
-6.361470897723939e+52
21.0ms
-3.825501482466774e+84
-1.0428861332381983e+82
22.0ms
-2.3544833646285208e+113
-8.363158048636861e+110
Compiler

Compiled 26 to 17 computations (34.6% saved)

regimes108.0ms (1.4%)

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

4 calls:

53.0ms
d1
20.0ms
d3
19.0ms
d2
13.0ms
d4
Results
ErrorSegmentsBranch
16.1b9d1
11.1b2d2
10.0b3d3
9.4b2d4
Compiler

Compiled 72 to 37 computations (48.6% saved)

bsearch22.0ms (0.3%)

Algorithm
binary-search
Steps
TimeLeftRight
22.0ms
4.7966823443891195e-58
1.0780870079560612e-54
Compiler

Compiled 26 to 17 computations (34.6% saved)

regimes96.0ms (1.2%)

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

4 calls:

40.0ms
d1
23.0ms
d3
18.0ms
d4
12.0ms
d2
Results
ErrorSegmentsBranch
17.7b7d1
12.2b2d2
11.1b3d3
14.6b2d4
Compiler

Compiled 67 to 35 computations (47.8% saved)

bsearch43.0ms (0.6%)

Algorithm
binary-search
Steps
TimeLeftRight
21.0ms
1.6258774209151778e+119
1.927371358207162e+119
22.0ms
-2.6375710794760755e+144
-4.71052875235692e+142
Compiler

Compiled 26 to 17 computations (34.6% saved)

regimes92.0ms (1.2%)

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

4 calls:

25.0ms
d4
25.0ms
d2
20.0ms
d1
20.0ms
d3
Results
ErrorSegmentsBranch
21.8b4d1
13.0b5d2
22.5b3d3
16.5b4d4
Compiler

Compiled 57 to 31 computations (45.6% saved)

bsearch87.0ms (1.1%)

Algorithm
binary-search
Steps
TimeLeftRight
22.0ms
-4.195010618982268e+20
-5875374105358362000.0
21.0ms
-4.22899108828013e+30
-4.7448546326537525e+28
21.0ms
-2.2953449869905247e+35
-1.2623430357326626e+33
22.0ms
-2.8645683616144374e+97
-3.513106230293418e+96
Compiler

Compiled 26 to 17 computations (34.6% saved)

regimes127.0ms (1.6%)

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

4 calls:

49.0ms
d1
29.0ms
d2
24.0ms
d4
23.0ms
d3
Results
ErrorSegmentsBranch
31.9b11d1
24.7b5d2
25.6b5d3
20.7b5d4
Compiler

Compiled 52 to 29 computations (44.2% saved)

bsearch87.0ms (1.1%)

Algorithm
binary-search
Steps
TimeLeftRight
21.0ms
5788881537600.205
7778647723081.822
21.0ms
6.16918366052222e-303
4.519833108145058e-296
22.0ms
-1.4868189919802926e-102
-2.444424106204969e-114
22.0ms
-2.8958648435099907e-19
-2.5181480201558454e-31
Compiler

Compiled 26 to 17 computations (34.6% saved)

regimes62.0ms (0.8%)

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

4 calls:

21.0ms
d1
20.0ms
d3
11.0ms
d2
8.0ms
d4
Results
ErrorSegmentsBranch
35.6b6d1
26.9b2d2
36.0b5d3
25.1b2d4
Compiler

Compiled 36 to 24 computations (33.3% saved)

bsearch22.0ms (0.3%)

Algorithm
binary-search
Steps
TimeLeftRight
21.0ms
4.7966823443891195e-58
1.0780870079560612e-54
Compiler

Compiled 26 to 17 computations (34.6% saved)

regimes16.0ms (0.2%)

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

4 calls:

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

Compiled 33 to 23 computations (30.3% saved)

regimes16.0ms (0.2%)

Accuracy

Total -0.6b remaining (-1.1%)

Threshold costs -0.6b (-1.1%)

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

4 calls:

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

Compiled 30 to 22 computations (26.7% saved)

simplify20.0ms (0.3%)

Algorithm
egg-herbie
Rules
17×+-commutative_binary64
17×*-commutative_binary64
11×sub-neg_binary64
neg-sub0_binary64
neg-mul-1_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
095447
1128447
2148447
3159447
4163447
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 d4 d1)))
(+.f64 (*.f64 (-.f64 d2 (+.f64 d1 d3)) d1) (*.f64 d1 d4))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(if (<=.f64 d4 6359397898569212928/26959946667150639794667015087019630673637144422540572481103610249216) (*.f64 (-.f64 d2 (+.f64 d1 d3)) d1) (+.f64 (*.f64 (-.f64 d2 d3) d1) (*.f64 d1 d4)))
(if (<=.f64 d4 6359397898569212928/26959946667150639794667015087019630673637144422540572481103610249216) (*.f64 (-.f64 d2 (+.f64 d1 d3)) d1) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(if (<=.f64 d1 130000000000000009918700793419453104283454462230528) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 d1 (-.f64 d4 d1)))
(if (<=.f64 d3 -235448336462852078511872759919933812506878756402161700419331974100884922376144685742677091299304784962572257329152) (*.f64 (-.f64 d2 d3) d1) (if (<=.f64 d3 -3825501482466773886321708689812021090578177634676123956750299360291911292519735885824) (*.f64 d1 (-.f64 d4 d1)) (if (<=.f64 d3 -344807633488778478884151913830451063206688358112690176) (*.f64 d1 (+.f64 d4 d2)) (if (<=.f64 d3 -574373177314322880) (*.f64 d1 (-.f64 d4 d1)) (if (<=.f64 d3 192737135820716193582126994935409583059150653184688399104840610366533198343080567263334948722818643605061318575835316224) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (*.f64 (-.f64 d2 d3) d1))))))
(if (<=.f64 d3 -235448336462852078511872759919933812506878756402161700419331974100884922376144685742677091299304784962572257329152) (*.f64 (-.f64 d2 d3) d1) (if (<=.f64 d3 -3825501482466773886321708689812021090578177634676123956750299360291911292519735885824) (*.f64 d1 (-.f64 d4 d1)) (if (<=.f64 d3 -344807633488778478884151913830451063206688358112690176) (*.f64 d1 (+.f64 d4 d2)) (if (<=.f64 d3 -574373177314322880) (*.f64 d1 (-.f64 d4 d1)) (if (<=.f64 d3 192737135820716193582126994935409583059150653184688399104840610366533198343080567263334948722818643605061318575835316224) (*.f64 d1 (+.f64 d4 d2)) (*.f64 (-.f64 d2 d3) d1))))))
(if (<=.f64 d4 1695000824171643/3533694129556768659166595001485837031654967793751237916243212402585239552) (*.f64 (-.f64 d2 d3) d1) (*.f64 (-.f64 d4 d3) d1))
(if (<=.f64 d3 -2637571079476075475520695664838286850897952042361815116024608294143907528210287900403839953939116819714374578527790157081657976329072971461165056) (*.f64 (-.f64 d4 d3) d1) (if (<=.f64 d3 162587742091517780805171118612172889993201317066485950497193105203595182877370350343823553934617244038685624884833288192) (*.f64 d1 (+.f64 d4 d2)) (*.f64 (-.f64 d4 d3) d1)))
(if (<=.f64 d2 -28645683616144374329657497912775233700544058982471132743844273934236554215349657663175178347085824) (*.f64 d2 d1) (if (<=.f64 d2 -229534498699052470745218281063317504) (*.f64 (-.f64 d4 d3) d1) (if (<=.f64 d2 -4228991088280129819005109141504) (*.f64 d2 d1) (if (<=.f64 d2 -419501061898226827264) (*.f64 d1 (neg.f64 d1)) (*.f64 (-.f64 d4 d3) d1)))))
(if (<=.f64 d4 -3007237985939675/10384593717069655257060992658440192) (*.f64 d2 d1) (if (<=.f64 d4 -3749353672635167/2521728396569246669585858566409191283525103313309788586748690777871726193375821479130513040312634601011624191379636224) (*.f64 d3 (neg.f64 d1)) (if (<=.f64 d4 4763247199845658/772103322247736428651791941524190166662432288223808740069966728315087660095197093551484618001698015194652854401843307157096133183997320086925557708514169730840749451738610692460887556999562135090788908685580234789131193097780962748024381086918485856402626253175196722230275782071039209488625822100242638638716536487936) (*.f64 d2 d1) (if (<=.f64 d4 2963907347251305/512) (*.f64 d3 (neg.f64 d1)) (*.f64 d1 d4)))))
(if (<=.f64 d4 1695000824171643/3533694129556768659166595001485837031654967793751237916243212402585239552) (*.f64 d2 d1) (*.f64 d1 d4))
(*.f64 d2 d1)
(*.f64 d1 d1)
(*.f64 d1 d3)
Outputs
(fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 d4 d1)))
(+.f64 (*.f64 (-.f64 d2 (+.f64 d1 d3)) d1) (*.f64 d1 d4))
(+.f64 (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))) (*.f64 d1 d4))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(if (<=.f64 d4 6359397898569212928/26959946667150639794667015087019630673637144422540572481103610249216) (*.f64 (-.f64 d2 (+.f64 d1 d3)) d1) (+.f64 (*.f64 (-.f64 d2 d3) d1) (*.f64 d1 d4)))
(if (<=.f64 d4 6210349510321497/26328072917139296674479506920917608079723773850137277813577744384) (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))) (+.f64 (*.f64 d1 d4) (*.f64 d1 (-.f64 d2 d3))))
(if (<=.f64 d4 6359397898569212928/26959946667150639794667015087019630673637144422540572481103610249216) (*.f64 (-.f64 d2 (+.f64 d1 d3)) d1) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(if (<=.f64 d4 6210349510321497/26328072917139296674479506920917608079723773850137277813577744384) (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(if (<=.f64 d1 130000000000000009918700793419453104283454462230528) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 d1 (-.f64 d4 d1)))
(if (<=.f64 d3 -235448336462852078511872759919933812506878756402161700419331974100884922376144685742677091299304784962572257329152) (*.f64 (-.f64 d2 d3) d1) (if (<=.f64 d3 -3825501482466773886321708689812021090578177634676123956750299360291911292519735885824) (*.f64 d1 (-.f64 d4 d1)) (if (<=.f64 d3 -344807633488778478884151913830451063206688358112690176) (*.f64 d1 (+.f64 d4 d2)) (if (<=.f64 d3 -574373177314322880) (*.f64 d1 (-.f64 d4 d1)) (if (<=.f64 d3 192737135820716193582126994935409583059150653184688399104840610366533198343080567263334948722818643605061318575835316224) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (*.f64 (-.f64 d2 d3) d1))))))
(if (<=.f64 d3 -235448336462852078511872759919933812506878756402161700419331974100884922376144685742677091299304784962572257329152) (*.f64 d1 (-.f64 d2 d3)) (if (<=.f64 d3 -3825501482466773886321708689812021090578177634676123956750299360291911292519735885824) (*.f64 d1 (-.f64 d4 d1)) (if (<=.f64 d3 -344807633488778478884151913830451063206688358112690176) (*.f64 d1 (+.f64 d2 d4)) (if (<=.f64 d3 -574373177314322880) (*.f64 d1 (-.f64 d4 d1)) (if (<=.f64 d3 192737135820716193582126994935409583059150653184688399104840610366533198343080567263334948722818643605061318575835316224) (+.f64 (*.f64 d1 d4) (*.f64 d1 d2)) (*.f64 d1 (-.f64 d2 d3)))))))
(if (<=.f64 d3 -235448336462852078511872759919933812506878756402161700419331974100884922376144685742677091299304784962572257329152) (*.f64 (-.f64 d2 d3) d1) (if (<=.f64 d3 -3825501482466773886321708689812021090578177634676123956750299360291911292519735885824) (*.f64 d1 (-.f64 d4 d1)) (if (<=.f64 d3 -344807633488778478884151913830451063206688358112690176) (*.f64 d1 (+.f64 d4 d2)) (if (<=.f64 d3 -574373177314322880) (*.f64 d1 (-.f64 d4 d1)) (if (<=.f64 d3 192737135820716193582126994935409583059150653184688399104840610366533198343080567263334948722818643605061318575835316224) (*.f64 d1 (+.f64 d4 d2)) (*.f64 (-.f64 d2 d3) d1))))))
(if (<=.f64 d3 -235448336462852078511872759919933812506878756402161700419331974100884922376144685742677091299304784962572257329152) (*.f64 d1 (-.f64 d2 d3)) (if (<=.f64 d3 -3825501482466773886321708689812021090578177634676123956750299360291911292519735885824) (*.f64 d1 (-.f64 d4 d1)) (if (<=.f64 d3 -344807633488778478884151913830451063206688358112690176) (*.f64 d1 (+.f64 d2 d4)) (if (<=.f64 d3 -574373177314322880) (*.f64 d1 (-.f64 d4 d1)) (if (<=.f64 d3 192737135820716193582126994935409583059150653184688399104840610366533198343080567263334948722818643605061318575835316224) (*.f64 d1 (+.f64 d2 d4)) (*.f64 d1 (-.f64 d2 d3)))))))
(if (<=.f64 d4 1695000824171643/3533694129556768659166595001485837031654967793751237916243212402585239552) (*.f64 (-.f64 d2 d3) d1) (*.f64 (-.f64 d4 d3) d1))
(if (<=.f64 d4 1695000824171643/3533694129556768659166595001485837031654967793751237916243212402585239552) (*.f64 d1 (-.f64 d2 d3)) (*.f64 d1 (-.f64 d4 d3)))
(if (<=.f64 d3 -2637571079476075475520695664838286850897952042361815116024608294143907528210287900403839953939116819714374578527790157081657976329072971461165056) (*.f64 (-.f64 d4 d3) d1) (if (<=.f64 d3 162587742091517780805171118612172889993201317066485950497193105203595182877370350343823553934617244038685624884833288192) (*.f64 d1 (+.f64 d4 d2)) (*.f64 (-.f64 d4 d3) d1)))
(if (<=.f64 d3 -2637571079476075475520695664838286850897952042361815116024608294143907528210287900403839953939116819714374578527790157081657976329072971461165056) (*.f64 d1 (-.f64 d4 d3)) (if (<=.f64 d3 162587742091517780805171118612172889993201317066485950497193105203595182877370350343823553934617244038685624884833288192) (*.f64 d1 (+.f64 d2 d4)) (*.f64 d1 (-.f64 d4 d3))))
(if (<=.f64 d2 -28645683616144374329657497912775233700544058982471132743844273934236554215349657663175178347085824) (*.f64 d2 d1) (if (<=.f64 d2 -229534498699052470745218281063317504) (*.f64 (-.f64 d4 d3) d1) (if (<=.f64 d2 -4228991088280129819005109141504) (*.f64 d2 d1) (if (<=.f64 d2 -419501061898226827264) (*.f64 d1 (neg.f64 d1)) (*.f64 (-.f64 d4 d3) d1)))))
(if (<=.f64 d2 -28645683616144374329657497912775233700544058982471132743844273934236554215349657663175178347085824) (*.f64 d1 d2) (if (<=.f64 d2 -229534498699052470745218281063317504) (*.f64 d1 (-.f64 d4 d3)) (if (<=.f64 d2 -4228991088280129819005109141504) (*.f64 d1 d2) (if (<=.f64 d2 -419501061898226827264) (*.f64 d1 (neg.f64 d1)) (*.f64 d1 (-.f64 d4 d3))))))
(if (<=.f64 d4 -3007237985939675/10384593717069655257060992658440192) (*.f64 d2 d1) (if (<=.f64 d4 -3749353672635167/2521728396569246669585858566409191283525103313309788586748690777871726193375821479130513040312634601011624191379636224) (*.f64 d3 (neg.f64 d1)) (if (<=.f64 d4 4763247199845658/772103322247736428651791941524190166662432288223808740069966728315087660095197093551484618001698015194652854401843307157096133183997320086925557708514169730840749451738610692460887556999562135090788908685580234789131193097780962748024381086918485856402626253175196722230275782071039209488625822100242638638716536487936) (*.f64 d2 d1) (if (<=.f64 d4 2963907347251305/512) (*.f64 d3 (neg.f64 d1)) (*.f64 d1 d4)))))
(if (<=.f64 d4 -3007237985939675/10384593717069655257060992658440192) (*.f64 d1 d2) (if (<=.f64 d4 -3749353672635167/2521728396569246669585858566409191283525103313309788586748690777871726193375821479130513040312634601011624191379636224) (*.f64 d3 (neg.f64 d1)) (if (<=.f64 d4 2381623599922829/386051661123868214325895970762095083331216144111904370034983364157543830047598546775742309000849007597326427200921653578548066591998660043462778854257084865420374725869305346230443778499781067545394454342790117394565596548890481374012190543459242928201313126587598361115137891035519604744312911050121319319358268243968) (*.f64 d1 d2) (if (<=.f64 d4 2963907347251305/512) (*.f64 d3 (neg.f64 d1)) (*.f64 d1 d4)))))
(if (<=.f64 d4 -3007237985939675/10384593717069655257060992658440192) (*.f64 d1 d2) (if (<=.f64 d4 -3749353672635167/2521728396569246669585858566409191283525103313309788586748690777871726193375821479130513040312634601011624191379636224) (*.f64 d1 (neg.f64 d3)) (if (<=.f64 d4 2381623599922829/386051661123868214325895970762095083331216144111904370034983364157543830047598546775742309000849007597326427200921653578548066591998660043462778854257084865420374725869305346230443778499781067545394454342790117394565596548890481374012190543459242928201313126587598361115137891035519604744312911050121319319358268243968) (*.f64 d1 d2) (if (<=.f64 d4 2963907347251305/512) (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d4)))))
(if (<=.f64 d4 1695000824171643/3533694129556768659166595001485837031654967793751237916243212402585239552) (*.f64 d2 d1) (*.f64 d1 d4))
(if (<=.f64 d4 1695000824171643/3533694129556768659166595001485837031654967793751237916243212402585239552) (*.f64 d1 d2) (*.f64 d1 d4))
(*.f64 d2 d1)
(*.f64 d1 d2)
(*.f64 d1 d1)
(*.f64 d1 d3)
Compiler

Compiled 375 to 207 computations (44.8% saved)

soundness0.0ms (0%)

end121.0ms (1.5%)

Compiler

Compiled 343 to 123 computations (64.1% saved)

Profiling

Loading profile data...