Details

Time bar (total: 7.3s)

analyze416.0ms (5.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)

sample1.8s (24.7%)

Results
1.3s8256×body256valid
485.0ms3595×body256invalid

preprocess71.0ms (1%)

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)

simplify138.0ms (1.9%)

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 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1))
0.0b
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
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)

series8.0ms (0.1%)

Counts
1 → 48
Calls

12 calls:

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

rewrite73.0ms (1%)

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

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

localize15.0ms (0.2%)

Local error

Found 3 expressions with local error:

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

Compiled 53 to 11 computations (79.2% saved)

series15.0ms (0.2%)

Counts
3 → 132
Calls

33 calls:

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

rewrite145.0ms (2%)

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

Useful iterations: 1 (0.0ms)

IterNodesCost
01239
128831
2455531
Stop Event
node limit
Counts
3 → 285
Calls
Call 1
Inputs
(+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1))
(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
Outputs
((#(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))))))))
((#(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 (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)))))))))

simplify133.0ms (1.8%)

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

Useful iterations: 2 (0.0ms)

IterNodesCost
0451481
11491342
23801227
311701227
442001227
558841227
665271227
777411227
Stop Event
node limit
Counts
417 → 317
Calls
Call 1
Inputs
(*.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))
(*.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 (-.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))
Outputs
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.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 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 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 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 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 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 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 d2 (-.f64 d4 d3)))
(*.f64 d2 d1)
(*.f64 d1 d2)
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (*.f64 d1 d3))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.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 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 d2 (-.f64 d4 d3)))
(*.f64 d2 d1)
(*.f64 d1 d2)
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (*.f64 d1 d3))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.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 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 d2 (-.f64 d4 d3)))
(+.f64 (*.f64 d1 d4) (*.f64 d2 d1))
(fma.f64 d1 d4 (*.f64 d1 d2))
(*.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 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 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 d2 (-.f64 d4 d3)))
(*.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 d4)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.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 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 d2 (-.f64 d4 d3)))
(*.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 d4)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.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 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 d2 (-.f64 d4 d3)))
(-.f64 (*.f64 d2 d1) (*.f64 d1 d3))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (*.f64 d1 d3))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.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 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 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 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 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 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 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 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 d2 (-.f64 d4 d3)))
(*.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 (+.f64 d2 d4) d3)))
(-.f64 (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (+.f64 d2 (-.f64 d4 d3)) d1))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.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 (+.f64 d2 d4) d3)))
(-.f64 (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (+.f64 d2 (-.f64 d4 d3)) d1))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.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 (+.f64 d2 d4) d3)))
(-.f64 (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (+.f64 d2 (-.f64 d4 d3)) d1))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.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 (+.f64 d2 d4) d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (+.f64 d2 (-.f64 d4 d3)) d1))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.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 (+.f64 d2 d4) d3)))
(-.f64 (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (+.f64 d2 (-.f64 d4 d3)) d1))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.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 (+.f64 d2 d4) d3)))
(-.f64 (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (+.f64 d2 (-.f64 d4 d3)) d1))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.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 (+.f64 d2 d4) d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (+.f64 d2 (-.f64 d4 d3)) d1))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(+.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 (+.f64 d2 d4) d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (+.f64 d2 (-.f64 d4 d3)) d1))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(+.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 (+.f64 d2 d4) d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (+.f64 d2 (-.f64 d4 d3)) d1))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(-.f64 (*.f64 d1 d4) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(-.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 d3) (*.f64 d1 d1)))
(-.f64 (*.f64 d1 d4) (*.f64 d1 (+.f64 d1 d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 d3)))
(-.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 (+.f64 d2 d4) d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (+.f64 d2 (-.f64 d4 d3)) d1))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(-.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 (+.f64 d2 d4) d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (+.f64 d2 (-.f64 d4 d3)) d1))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(-.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 (+.f64 d2 d4) d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (+.f64 d2 (-.f64 d4 d3)) d1))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d2 d1)
(*.f64 d1 d2)
(-.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 (+.f64 d2 d4) d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (+.f64 d2 (-.f64 d4 d3)) d1))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(-.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 (+.f64 d2 d4) d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (+.f64 d2 (-.f64 d4 d3)) d1))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(-.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 (+.f64 d2 d4) d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (+.f64 d2 (-.f64 d4 d3)) d1))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d2 d1)
(*.f64 d1 d2)
(-.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 (+.f64 d2 d4) d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (+.f64 d2 (-.f64 d4 d3)) d1))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(-.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 (+.f64 d2 d4) d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (+.f64 d2 (-.f64 d4 d3)) d1))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(-.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 (+.f64 d2 d4) d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (+.f64 d2 (-.f64 d4 d3)) d1))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (pow.f64 d1 2))
(-.f64 (fma.f64 d1 d4 (*.f64 d1 d2)) (*.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 (+.f64 d2 d4) d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (+.f64 d2 (-.f64 d4 d3)) d1))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(-.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 (+.f64 d2 d4) d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (+.f64 d2 (-.f64 d4 d3)) d1))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(-.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 (+.f64 d2 d4) d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (+.f64 d2 (-.f64 d4 d3)) d1))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 -1 (*.f64 d1 d3))
(neg.f64 (*.f64 d1 d3))
(*.f64 d1 (neg.f64 d3))
(-.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 (+.f64 d2 d4) d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (+.f64 d2 (-.f64 d4 d3)) d1))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(-.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 (+.f64 d2 d4) d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (+.f64 d2 (-.f64 d4 d3)) d1))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(-.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 (+.f64 d2 d4) d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (+.f64 d2 (-.f64 d4 d3)) d1))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 -1 (*.f64 d1 d3))
(neg.f64 (*.f64 d1 d3))
(*.f64 d1 (neg.f64 d3))
(-.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 (+.f64 d2 d4) d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (+.f64 d2 (-.f64 d4 d3)) d1))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(-.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 (+.f64 d2 d4) d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (+.f64 d2 (-.f64 d4 d3)) d1))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(-.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 (+.f64 d2 d4) d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (+.f64 d2 (-.f64 d4 d3)) d1))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(-.f64 (*.f64 d2 d1) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(-.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d1)) (*.f64 d1 d3))
(-.f64 (*.f64 d1 d2) (*.f64 d1 (+.f64 d1 d3)))
(*.f64 d1 (-.f64 (-.f64 d2 d1) d3))
(*.f64 d1 (-.f64 d2 (+.f64 d1 d3)))
(-.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 (+.f64 d2 d4) d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (+.f64 d2 (-.f64 d4 d3)) d1))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(-.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 (+.f64 d2 d4) d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (+.f64 d2 (-.f64 d4 d3)) d1))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(-.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 (+.f64 d2 d4) d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (+.f64 d2 (-.f64 d4 d3)) d1))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.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 (+.f64 d2 d4) d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (+.f64 d2 (-.f64 d4 d3)) d1))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(-.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 (+.f64 d2 d4) d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (+.f64 d2 (-.f64 d4 d3)) d1))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(-.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 (+.f64 d2 d4) d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (+.f64 d2 (-.f64 d4 d3)) d1))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.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 (+.f64 d2 d4) d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (+.f64 d2 (-.f64 d4 d3)) d1))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(-.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 (+.f64 d2 d4) d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (+.f64 d2 (-.f64 d4 d3)) d1))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(-.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 (+.f64 d2 d4) d3)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (+.f64 d2 (-.f64 d4 d3)) d1))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 (-.f64 d2 d3) d1)
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (-.f64 d2 d3) d1)
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (-.f64 d2 d3) d1)
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (-.f64 d2 d3) d1)
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (-.f64 d2 d3) d1)
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (-.f64 d2 d3) d1)
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (-.f64 d2 d3) d1)
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (-.f64 d2 d3) d1)
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) (*.f64 -1 d3))))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) (*.f64 -1 d3))))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) (*.f64 -1 d3))))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) (*.f64 -1 d3))))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 -1 (*.f64 d1 d3))
(neg.f64 (*.f64 d1 d3))
(*.f64 d1 (neg.f64 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 -1 (*.f64 d1 d3))
(neg.f64 (*.f64 d1 d3))
(*.f64 d1 (neg.f64 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 -1 (*.f64 d1 d3))
(neg.f64 (*.f64 d1 d3))
(*.f64 d1 (neg.f64 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))

eval117.0ms (1.6%)

Compiler

Compiled 7392 to 1672 computations (77.4% saved)

prune71.0ms (1%)

Pruning

11 alts after pruning (11 fresh and 0 done)

PrunedKeptTotal
New38811399
Fresh000
Picked101
Done101
Total39011401
Error
0b
Counts
401 → 11
Alt Table
Click to see full alt table
StatusErrorProgram
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)))
16.4b
(*.f64 d1 (-.f64 d4 (+.f64 d1 d3)))
45.8b
(*.f64 d2 d1)
0.0b
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
53.5b
(*.f64 d1 (neg.f64 d1))
40.6b
(*.f64 d1 (neg.f64 d3))
38.2b
(-.f64 (*.f64 d1 d4) (*.f64 d1 d1))
8.4b
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
22.3b
(*.f64 d1 (-.f64 (+.f64 d2 d4) d1))
46.1b
(*.f64 d1 d4)
Compiler

Compiled 236 to 152 computations (35.6% saved)

localize11.0ms (0.2%)

Local error

Found 2 expressions with local error:

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

Compiled 37 to 9 computations (75.7% saved)

series10.0ms (0.1%)

Counts
2 → 75
Calls

21 calls:

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

rewrite72.0ms (1%)

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

simplify119.0ms (1.6%)

Algorithm
egg-herbie
Rules
573×unsub-neg_binary64
524×fma-def_binary64
360×sub-neg_binary64
278×unswap-sqr_binary64
257×fma-neg_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
040980
1120923
2331756
31005756
44084756
56099756
66867756
77950756
Stop Event
node limit
Counts
170 → 124
Calls
Call 1
Inputs
(*.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 -1 (*.f64 (+.f64 d1 d3) d1))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(*.f64 d1 d4)
(+.f64 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(*.f64 d1 d4)
(+.f64 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(*.f64 d1 (-.f64 d4 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 d4 d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 d4 d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 d4 d1)))
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 d4 d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 d4 d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 d4 d1)))
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 d4 d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 d4 d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 d4 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 -1 (-.f64 d4 d3)) (*.f64 -1 d2)))))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 (+.f64 (*.f64 -1 (-.f64 d4 d3)) (*.f64 -1 d2)))))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 (+.f64 (*.f64 -1 (-.f64 d4 d3)) (*.f64 -1 d2)))))
(+.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 (*.f64 d1 d4) (+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1))))
(*.f64 d1 d4)
(+.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 d1 d4)
(+.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 (*.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 d1 (-.f64 d4 (+.f64 d1 d3)))
(*.f64 d2 d1)
(*.f64 d2 d1)
Outputs
(*.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 (*.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 (*.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 -1 (pow.f64 d1 2))
(neg.f64 (*.f64 d1 d1))
(*.f64 d1 (neg.f64 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 (*.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 (*.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 -1 (pow.f64 d1 2))
(neg.f64 (*.f64 d1 d1))
(*.f64 d1 (neg.f64 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 (*.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 (*.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 -1 (*.f64 (+.f64 d1 d3) d1))
(neg.f64 (*.f64 d1 (+.f64 d3 d1)))
(*.f64 (+.f64 d3 d1) (neg.f64 d1))
(*.f64 d1 (-.f64 (neg.f64 d3) d1))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 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 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 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 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 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 d4)
(*.f64 d4 d1)
(+.f64 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 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 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 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 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 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 d4)
(*.f64 d4 d1)
(+.f64 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 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 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 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 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 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 d4 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 d4 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 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 d4 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 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 d4 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 -1 (*.f64 d1 d3))
(neg.f64 (*.f64 d3 d1))
(*.f64 d3 (neg.f64 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 d4 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 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 d4 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 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 d4 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 -1 (*.f64 d1 d3))
(neg.f64 (*.f64 d3 d1))
(*.f64 d3 (neg.f64 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 d4 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 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 d4 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 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 d4 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 d2 d4) d3))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 (-.f64 d4 d3) d2))
(*.f64 d1 (-.f64 (+.f64 d4 d2) 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 (-.f64 d4 d3) d2)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 (+.f64 d4 d2) d3) d1))
(*.f64 d1 (-.f64 d4 (+.f64 (-.f64 d3 d2) d1)))
(*.f64 d1 (-.f64 (-.f64 d4 (-.f64 d3 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 (-.f64 d4 d3) d2)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 (+.f64 d4 d2) d3) d1))
(*.f64 d1 (-.f64 d4 (+.f64 (-.f64 d3 d2) d1)))
(*.f64 d1 (-.f64 (-.f64 d4 (-.f64 d3 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 (-.f64 d4 d3) d2)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 (+.f64 d4 d2) d3) d1))
(*.f64 d1 (-.f64 d4 (+.f64 (-.f64 d3 d2) d1)))
(*.f64 d1 (-.f64 (-.f64 d4 (-.f64 d3 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 (-.f64 d4 d3) d2)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 (+.f64 d4 d2) d3) d1))
(*.f64 d1 (-.f64 d4 (+.f64 (-.f64 d3 d2) d1)))
(*.f64 d1 (-.f64 (-.f64 d4 (-.f64 d3 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 (-.f64 d4 d3) d2)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 (+.f64 d4 d2) d3) d1))
(*.f64 d1 (-.f64 d4 (+.f64 (-.f64 d3 d2) d1)))
(*.f64 d1 (-.f64 (-.f64 d4 (-.f64 d3 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 (-.f64 d4 d3) d2)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 (+.f64 d4 d2) d3) d1))
(*.f64 d1 (-.f64 d4 (+.f64 (-.f64 d3 d2) d1)))
(*.f64 d1 (-.f64 (-.f64 d4 (-.f64 d3 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 -1 (*.f64 d1 (+.f64 (*.f64 -1 (-.f64 d4 d3)) (*.f64 -1 d2)))))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 (-.f64 d4 d3) d2)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 (+.f64 d4 d2) d3) d1))
(*.f64 d1 (-.f64 d4 (+.f64 (-.f64 d3 d2) d1)))
(*.f64 d1 (-.f64 (-.f64 d4 (-.f64 d3 d2)) d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 (+.f64 (*.f64 -1 (-.f64 d4 d3)) (*.f64 -1 d2)))))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 (-.f64 d4 d3) d2)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 (+.f64 d4 d2) d3) d1))
(*.f64 d1 (-.f64 d4 (+.f64 (-.f64 d3 d2) d1)))
(*.f64 d1 (-.f64 (-.f64 d4 (-.f64 d3 d2)) d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 (+.f64 (*.f64 -1 (-.f64 d4 d3)) (*.f64 -1 d2)))))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 (-.f64 d4 d3) d2)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 (+.f64 d4 d2) d3) d1))
(*.f64 d1 (-.f64 d4 (+.f64 (-.f64 d3 d2) d1)))
(*.f64 d1 (-.f64 (-.f64 d4 (-.f64 d3 d2)) d1))
(+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(fma.f64 d2 d1 (neg.f64 (*.f64 d1 (+.f64 d3 d1))))
(*.f64 d1 (+.f64 (neg.f64 (+.f64 d3 d1)) d2))
(*.f64 d1 (-.f64 d2 (+.f64 d3 d1)))
(+.f64 (*.f64 d1 d4) (+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1))))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 (-.f64 d4 d3) d2)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 (+.f64 d4 d2) d3) d1))
(*.f64 d1 (-.f64 d4 (+.f64 (-.f64 d3 d2) d1)))
(*.f64 d1 (-.f64 (-.f64 d4 (-.f64 d3 d2)) d1))
(+.f64 (*.f64 d1 d4) (+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1))))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 (-.f64 d4 d3) d2)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 (+.f64 d4 d2) d3) d1))
(*.f64 d1 (-.f64 d4 (+.f64 (-.f64 d3 d2) d1)))
(*.f64 d1 (-.f64 (-.f64 d4 (-.f64 d3 d2)) d1))
(+.f64 (*.f64 d1 d4) (+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1))))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 (-.f64 d4 d3) d2)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 (+.f64 d4 d2) d3) d1))
(*.f64 d1 (-.f64 d4 (+.f64 (-.f64 d3 d2) d1)))
(*.f64 d1 (-.f64 (-.f64 d4 (-.f64 d3 d2)) d1))
(*.f64 d1 d4)
(*.f64 d4 d1)
(+.f64 (*.f64 d2 d1) (+.f64 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1))))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 (-.f64 d4 d3) d2)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 (+.f64 d4 d2) d3) d1))
(*.f64 d1 (-.f64 d4 (+.f64 (-.f64 d3 d2) d1)))
(*.f64 d1 (-.f64 (-.f64 d4 (-.f64 d3 d2)) d1))
(+.f64 (*.f64 d2 d1) (+.f64 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1))))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 (-.f64 d4 d3) d2)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 (+.f64 d4 d2) d3) d1))
(*.f64 d1 (-.f64 d4 (+.f64 (-.f64 d3 d2) d1)))
(*.f64 d1 (-.f64 (-.f64 d4 (-.f64 d3 d2)) d1))
(+.f64 (*.f64 d2 d1) (+.f64 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1))))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 (-.f64 d4 d3) d2)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 (+.f64 d4 d2) d3) d1))
(*.f64 d1 (-.f64 d4 (+.f64 (-.f64 d3 d2) d1)))
(*.f64 d1 (-.f64 (-.f64 d4 (-.f64 d3 d2)) d1))
(*.f64 d1 d4)
(*.f64 d4 d1)
(+.f64 (*.f64 d2 d1) (+.f64 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1))))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 (-.f64 d4 d3) d2)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 (+.f64 d4 d2) d3) d1))
(*.f64 d1 (-.f64 d4 (+.f64 (-.f64 d3 d2) d1)))
(*.f64 d1 (-.f64 (-.f64 d4 (-.f64 d3 d2)) d1))
(+.f64 (*.f64 d2 d1) (+.f64 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1))))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 (-.f64 d4 d3) d2)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 (+.f64 d4 d2) d3) d1))
(*.f64 d1 (-.f64 d4 (+.f64 (-.f64 d3 d2) d1)))
(*.f64 d1 (-.f64 (-.f64 d4 (-.f64 d3 d2)) d1))
(+.f64 (*.f64 d2 d1) (+.f64 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1))))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 (-.f64 d4 d3) d2)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 (+.f64 d4 d2) d3) d1))
(*.f64 d1 (-.f64 d4 (+.f64 (-.f64 d3 d2) d1)))
(*.f64 d1 (-.f64 (-.f64 d4 (-.f64 d3 d2)) d1))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1)))
(fma.f64 d2 d1 (*.f64 d1 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 (-.f64 d4 d1) d2))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(+.f64 (*.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 (-.f64 d4 d3) d2)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 (+.f64 d4 d2) d3) d1))
(*.f64 d1 (-.f64 d4 (+.f64 (-.f64 d3 d2) d1)))
(*.f64 d1 (-.f64 (-.f64 d4 (-.f64 d3 d2)) 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 (-.f64 d4 d3) d2)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 (+.f64 d4 d2) d3) d1))
(*.f64 d1 (-.f64 d4 (+.f64 (-.f64 d3 d2) d1)))
(*.f64 d1 (-.f64 (-.f64 d4 (-.f64 d3 d2)) 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 (-.f64 d4 d3) d2)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 (+.f64 d4 d2) d3) d1))
(*.f64 d1 (-.f64 d4 (+.f64 (-.f64 d3 d2) d1)))
(*.f64 d1 (-.f64 (-.f64 d4 (-.f64 d3 d2)) d1))
(*.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 (-.f64 d4 d1))))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 (-.f64 d4 d3) d2)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 (+.f64 d4 d2) d3) d1))
(*.f64 d1 (-.f64 d4 (+.f64 (-.f64 d3 d2) d1)))
(*.f64 d1 (-.f64 (-.f64 d4 (-.f64 d3 d2)) 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 (-.f64 d4 d3) d2)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 (+.f64 d4 d2) d3) d1))
(*.f64 d1 (-.f64 d4 (+.f64 (-.f64 d3 d2) d1)))
(*.f64 d1 (-.f64 (-.f64 d4 (-.f64 d3 d2)) 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 (-.f64 d4 d3) d2)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 (+.f64 d4 d2) d3) d1))
(*.f64 d1 (-.f64 d4 (+.f64 (-.f64 d3 d2) d1)))
(*.f64 d1 (-.f64 (-.f64 d4 (-.f64 d3 d2)) d1))
(*.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 (-.f64 d4 d1))))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 (-.f64 d4 d3) d2)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 (+.f64 d4 d2) d3) d1))
(*.f64 d1 (-.f64 d4 (+.f64 (-.f64 d3 d2) d1)))
(*.f64 d1 (-.f64 (-.f64 d4 (-.f64 d3 d2)) 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 (-.f64 d4 d3) d2)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 (+.f64 d4 d2) d3) d1))
(*.f64 d1 (-.f64 d4 (+.f64 (-.f64 d3 d2) d1)))
(*.f64 d1 (-.f64 (-.f64 d4 (-.f64 d3 d2)) 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 (-.f64 d4 d3) d2)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (-.f64 (+.f64 d4 d2) d3) d1))
(*.f64 d1 (-.f64 d4 (+.f64 (-.f64 d3 d2) d1)))
(*.f64 d1 (-.f64 (-.f64 d4 (-.f64 d3 d2)) d1))
(*.f64 d1 (-.f64 d4 (+.f64 d1 d3)))
(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 d2 d1)
(*.f64 d1 d2)
(*.f64 d2 d1)
(*.f64 d1 d2)

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)

localize8.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 22 to 7 computations (68.2% saved)

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)

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

rewrite131.0ms (1.8%)

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

simplify111.0ms (1.5%)

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

eval82.0ms (1.1%)

Compiler

Compiled 2920 to 717 computations (75.4% saved)

prune48.0ms (0.7%)

Pruning

15 alts after pruning (13 fresh and 2 done)

PrunedKeptTotal
New2059214
Fresh246
Picked101
Done224
Total21015225
Error
0b
Counts
225 → 15
Alt Table
Click to see full alt table
StatusErrorProgram
45.8b
(*.f64 d2 d1)
8.4b
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
40.6b
(*.f64 d3 (neg.f64 d1))
32.4b
(*.f64 d1 (-.f64 (neg.f64 d3) d1))
30.1b
(*.f64 d1 (+.f64 d4 d2))
24.8b
(+.f64 (*.f64 d3 (neg.f64 d1)) (*.f64 d2 d1))
46.1b
(*.f64 d1 d4)
30.1b
(+.f64 (*.f64 d4 d1) (*.f64 d2 d1))
0.0b
(fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 d4 d1)))
24.8b
(*.f64 (-.f64 d4 d3) d1)
53.5b
(*.f64 d1 (neg.f64 d1))
24.8b
(*.f64 (-.f64 d2 d3) d1)
38.2b
(-.f64 (*.f64 d1 d4) (*.f64 d1 d1))
22.3b
(*.f64 d1 (-.f64 (+.f64 d2 d4) d1))
38.3b
(*.f64 d1 (-.f64 d4 d1))
Compiler

Compiled 281 to 185 computations (34.2% saved)

localize14.0ms (0.2%)

Local error

Found 2 expressions with local error:

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

Compiled 29 to 8 computations (72.4% saved)

series10.0ms (0.1%)

Counts
2 → 72
Calls

18 calls:

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

rewrite116.0ms (1.6%)

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
(fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 d4 d1)))
(*.f64 d1 (-.f64 d4 d1))
Outputs
((#(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))))))
((#(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)))))))

simplify101.0ms (1.4%)

Algorithm
egg-herbie
Rules
502×unsub-neg_binary64
427×fma-def_binary64
377×sub-neg_binary64
358×distribute-rgt-out--_binary64
354×unswap-sqr_binary64
Iterations

Useful iterations: 2 (0.0ms)

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

localize4.0ms (0.1%)

Compiler

Compiled 9 to 5 computations (44.4% saved)

localize6.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 14 to 6 computations (57.1% saved)

localize8.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(*.f64 d1 (-.f64 (neg.f64 d3) d1))
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 d3) d1))
1.0ms
d1
@-inf
(*.f64 d1 (-.f64 (neg.f64 d3) d1))
1.0ms
d1
@inf
(*.f64 d1 (-.f64 (neg.f64 d3) d1))
0.0ms
d3
@0
(*.f64 d1 (-.f64 (neg.f64 d3) d1))
0.0ms
d3
@inf
(*.f64 d1 (-.f64 (neg.f64 d3) d1))

rewrite55.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
664×pow1_binary64
618×add-log-exp_binary64
617×log1p-expm1-u_binary64
617×expm1-log1p-u_binary64
605×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify119.0ms (1.6%)

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

localize13.0ms (0.2%)

Compiler

Compiled 19 to 7 computations (63.2% saved)

eval61.0ms (0.8%)

Compiler

Compiled 2153 to 566 computations (73.7% saved)

prune77.0ms (1.1%)

Pruning

17 alts after pruning (10 fresh and 7 done)

PrunedKeptTotal
New1732175
Fresh088
Picked011
Done066
Total17317190
Error
0b
Counts
190 → 17
Alt Table
Click to see full alt table
StatusErrorProgram
45.8b
(*.f64 d2 d1)
8.4b
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
40.6b
(*.f64 d3 (neg.f64 d1))
32.4b
(*.f64 d1 (-.f64 (neg.f64 d3) d1))
30.1b
(*.f64 d1 (+.f64 d4 d2))
24.8b
(+.f64 (*.f64 d3 (neg.f64 d1)) (*.f64 d2 d1))
61.2b
(*.f64 d1 d3)
22.3b
(*.f64 d1 (-.f64 (+.f64 d2 d4) d1))
46.1b
(*.f64 d1 d4)
30.1b
(+.f64 (*.f64 d4 d1) (*.f64 d2 d1))
0.0b
(fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 d4 d1)))
24.8b
(*.f64 (-.f64 d4 d3) d1)
53.5b
(*.f64 d1 (neg.f64 d1))
24.8b
(*.f64 (-.f64 d2 d3) d1)
61.1b
(*.f64 d1 d1)
38.2b
(-.f64 (*.f64 d1 d4) (*.f64 d1 d1))
38.3b
(*.f64 d1 (-.f64 d4 d1))
Compiler

Compiled 258 to 172 computations (33.3% saved)

localize20.0ms (0.3%)

Local error

Found 2 expressions with local error:

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

Compiled 28 to 8 computations (71.4% saved)

series12.0ms (0.2%)

Counts
2 → 63
Calls

21 calls:

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

rewrite97.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
531×log-prod_binary64
486×fma-def_binary64
395×pow-prod-down_binary64
280×pow2_binary64
217×fma-neg_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify95.0ms (1.3%)

Algorithm
egg-herbie
Rules
386×fma-def_binary64
308×fma-neg_binary64
132×distribute-rgt-in_binary64
114×distribute-lft-in_binary64
86×cancel-sign-sub-inv_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
026510
165508
2162505
3501505
41188505
51800505
62056505
72061505
Stop Event
saturated
Counts
167 → 120
Calls
Call 1
Inputs
(*.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 (+.f64 (*.f64 -1 (-.f64 d2 d3)) (*.f64 -1 d4)) d1))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (-.f64 d2 d3)) (*.f64 -1 d4)) d1))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (-.f64 d2 d3)) (*.f64 -1 d4)) d1))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (-.f64 d2 d3)) (*.f64 -1 d4)) d1))
(*.f64 (-.f64 d2 d3) d1)
(*.f64 d1 d4)
(*.f64 d1 d4)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.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 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(+.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 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
Outputs
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (-.f64 d2 d3)) (*.f64 -1 d4)) d1))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (-.f64 d2 d3)) (*.f64 -1 d4)) d1))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (-.f64 d2 d3)) (*.f64 -1 d4)) d1))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 (-.f64 d2 d3)) (*.f64 -1 d4)) d1))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 (-.f64 d2 d3) d1)
(*.f64 d1 (-.f64 d2 d3))
(*.f64 d1 d4)
(*.f64 d1 d4)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(fma.f64 -1 (*.f64 d1 d3) (*.f64 d1 d4))
(fma.f64 d1 d4 (*.f64 d3 (neg.f64 d1)))
(*.f64 d1 (-.f64 d4 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 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 d2 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.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 (*.f64 d2 d1) (*.f64 d1 d4)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.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 (*.f64 d2 d1) (*.f64 d1 d4)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.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 d2 d1))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 d1 (-.f64 d2 d3))
(*.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 d2 d1))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 d1 (-.f64 d2 d3))
(*.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 d2 d1))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 d1 (-.f64 d2 d3))

localize15.0ms (0.2%)

Compiler

Compiled 8 to 5 computations (37.5% saved)

localize12.0ms (0.2%)

Compiler

Compiled 12 to 6 computations (50% saved)

localize13.0ms (0.2%)

Local error

Found 1 expressions with local error:

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

Compiled 15 to 6 computations (60% saved)

localize14.0ms (0.2%)

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)

series17.0ms (0.2%)

Counts
1 → 36
Calls

9 calls:

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

rewrite77.0ms (1.1%)

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

simplify105.0ms (1.4%)

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

eval79.0ms (1.1%)

Compiler

Compiled 2680 to 730 computations (72.8% saved)

prune80.0ms (1.1%)

Pruning

17 alts after pruning (5 fresh and 12 done)

PrunedKeptTotal
New2130213
Fresh055
Picked011
Done01111
Total21317230
Error
0b
Counts
230 → 17
Alt Table
Click to see full alt table
StatusErrorProgram
45.8b
(*.f64 d2 d1)
8.4b
(+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1))
40.6b
(*.f64 d3 (neg.f64 d1))
32.4b
(*.f64 d1 (-.f64 (neg.f64 d3) d1))
30.1b
(*.f64 d1 (+.f64 d4 d2))
24.8b
(+.f64 (*.f64 d3 (neg.f64 d1)) (*.f64 d2 d1))
61.2b
(*.f64 d1 d3)
22.3b
(*.f64 d1 (-.f64 (+.f64 d2 d4) d1))
46.1b
(*.f64 d1 d4)
30.1b
(+.f64 (*.f64 d4 d1) (*.f64 d2 d1))
0.0b
(fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 d4 d1)))
24.8b
(*.f64 (-.f64 d4 d3) d1)
53.5b
(*.f64 d1 (neg.f64 d1))
24.8b
(*.f64 (-.f64 d2 d3) d1)
61.1b
(*.f64 d1 d1)
38.2b
(-.f64 (*.f64 d1 d4) (*.f64 d1 d1))
38.3b
(*.f64 d1 (-.f64 d4 d1))
Compiler

Compiled 162 to 108 computations (33.3% saved)

regimes133.0ms (1.8%)

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

5 calls:

27.0ms
d1
25.0ms
d2
25.0ms
(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1))
23.0ms
d4
22.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 201 to 74 computations (63.2% saved)

regimes93.0ms (1.3%)

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

4 calls:

23.0ms
d3
21.0ms
d1
21.0ms
d4
21.0ms
d2
Results
ErrorSegmentsBranch
0.0b1d1
0.0b1d2
0.0b1d3
0.0b1d4
Compiler

Compiled 135 to 54 computations (60% saved)

regimes113.0ms (1.5%)

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

4 calls:

30.0ms
d3
29.0ms
d1
29.0ms
d4
19.0ms
d2
Results
ErrorSegmentsBranch
3.6b3d1
0.8b2d2
2.9b3d3
7.3b3d4
Compiler

Compiled 126 to 52 computations (58.7% saved)

bsearch23.0ms (0.3%)

Algorithm
binary-search
Steps
TimeLeftRight
23.0ms
-17063487331249038.0
-1391641748370011.3
Compiler

Compiled 26 to 17 computations (34.6% saved)

regimes110.0ms (1.5%)

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

4 calls:

31.0ms
d3
28.0ms
d1
26.0ms
d4
18.0ms
d2
Results
ErrorSegmentsBranch
3.6b3d1
0.9b2d2
2.9b3d3
7.3b3d4
Compiler

Compiled 117 to 51 computations (56.4% saved)

bsearch26.0ms (0.4%)

Algorithm
binary-search
Steps
TimeLeftRight
26.0ms
-17063487331249038.0
-1391641748370011.3
Compiler

Compiled 26 to 17 computations (34.6% saved)

regimes150.0ms (2.1%)

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

4 calls:

69.0ms
d1
33.0ms
d4
29.0ms
d3
16.0ms
d2
Results
ErrorSegmentsBranch
12.7b8d1
4.2b2d2
11.3b3d3
8.0b4d4
Compiler

Compiled 95 to 45 computations (52.6% saved)

bsearch28.0ms (0.4%)

Algorithm
binary-search
Steps
TimeLeftRight
27.0ms
-2.7841882894849787e+47
-6.166848065069968e+44
Compiler

Compiled 26 to 17 computations (34.6% saved)

regimes195.0ms (2.7%)

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

4 calls:

97.0ms
d1
35.0ms
d4
33.0ms
d2
27.0ms
d3
Results
ErrorSegmentsBranch
14.3b12d1
9.3b3d2
13.3b3d3
9.9b4d4
Compiler

Compiled 81 to 41 computations (49.4% saved)

bsearch52.0ms (0.7%)

Algorithm
binary-search
Steps
TimeLeftRight
28.0ms
3.645369049455934e-222
5.7734003335620034e-213
23.0ms
-17063487331249038.0
-1391641748370011.3
Compiler

Compiled 26 to 17 computations (34.6% saved)

regimes125.0ms (1.7%)

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

4 calls:

55.0ms
d1
25.0ms
d2
24.0ms
d3
18.0ms
d4
Results
ErrorSegmentsBranch
15.6b9d1
11.0b4d2
13.3b3d3
11.0b2d4
Compiler

Compiled 68 to 37 computations (45.6% saved)

bsearch68.0ms (0.9%)

Algorithm
binary-search
Steps
TimeLeftRight
22.0ms
3.645369049455934e-222
5.7734003335620034e-213
22.0ms
2.1995349692124963e-259
9.492096410922209e-251
24.0ms
-17063487331249038.0
-1391641748370011.3
Compiler

Compiled 26 to 17 computations (34.6% saved)

regimes102.0ms (1.4%)

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

4 calls:

59.0ms
d1
16.0ms
d3
12.0ms
d4
12.0ms
d2
Results
ErrorSegmentsBranch
15.6b11d1
12.0b2d2
13.3b3d3
11.0b2d4
Compiler

Compiled 63 to 35 computations (44.4% saved)

bsearch22.0ms (0.3%)

Algorithm
binary-search
Steps
TimeLeftRight
22.0ms
93298518128.48013
2.2455892269620081e+21
Compiler

Compiled 26 to 17 computations (34.6% saved)

regimes83.0ms (1.1%)

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

4 calls:

33.0ms
d1
21.0ms
d4
16.0ms
d3
11.0ms
d2
Results
ErrorSegmentsBranch
18.7b6d1
14.8b2d2
13.5b3d3
22.2b4d4
Compiler

Compiled 58 to 33 computations (43.1% saved)

bsearch45.0ms (0.6%)

Algorithm
binary-search
Steps
TimeLeftRight
22.0ms
1219392208.7632267
12463633021.104458
23.0ms
-2.3933948728603703e+96
-1.9066409017602158e+96
Compiler

Compiled 26 to 17 computations (34.6% saved)

regimes130.0ms (1.8%)

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

4 calls:

65.0ms
d1
24.0ms
d4
20.0ms
d3
19.0ms
d2
Results
ErrorSegmentsBranch
20.2b13d1
22.1b3d2
17.2b3d3
24.2b5d4
Compiler

Compiled 53 to 31 computations (41.5% saved)

bsearch44.0ms (0.6%)

Algorithm
binary-search
Steps
TimeLeftRight
22.0ms
3.515466184599469e+127
1.1600932445684786e+130
22.0ms
-3.2170550053549207e+106
-7.560365535582594e+102
Compiler

Compiled 26 to 17 computations (34.6% saved)

regimes122.0ms (1.7%)

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

4 calls:

41.0ms
d1
39.0ms
d3
22.0ms
d4
18.0ms
d2
Results
ErrorSegmentsBranch
31.9b9d1
25.3b3d2
23.9b9d3
26.0b5d4
Compiler

Compiled 48 to 29 computations (39.6% saved)

bsearch177.0ms (2.4%)

Algorithm
binary-search
Steps
TimeLeftRight
22.0ms
1219392208.7632267
12463633021.104458
22.0ms
3.284541180726584e-91
1.184090135651176e-80
22.0ms
6.034649295956705e-123
2.1671721897302527e-115
22.0ms
5.665620208696407e-231
1.1625544920086854e-219
23.0ms
-1.5980715684812918e-299
-8.693728721088859e-302
22.0ms
-1.0669974265202749e-252
-2.169627298730867e-260
22.0ms
-5.776454592598661e-149
-3.0197229978734374e-160
22.0ms
-2.3933948728603703e+96
-1.9066409017602158e+96
Compiler

Compiled 26 to 17 computations (34.6% saved)

regimes61.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:

27.0ms
d3
14.0ms
d1
10.0ms
d4
7.0ms
d2
Results
ErrorSegmentsBranch
42.4b4d1
33.6b2d2
38.6b7d3
32.6b2d4
Compiler

Compiled 36 to 24 computations (33.3% saved)

bsearch22.0ms (0.3%)

Algorithm
binary-search
Steps
TimeLeftRight
22.0ms
93298518128.48013
2.2455892269620081e+21
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
d2
4.0ms
d3
3.0ms
d4
3.0ms
d1
Results
ErrorSegmentsBranch
45.8b1d1
45.8b1d2
45.8b1d3
45.8b1d4
Compiler

Compiled 33 to 23 computations (30.3% saved)

regimes14.0ms (0.2%)

Accuracy

Total -0.7b remaining (-1.1%)

Threshold costs -0.7b (-1.1%)

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

4 calls:

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

Compiled 30 to 22 computations (26.7% saved)

simplify24.0ms (0.3%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
087386
1121386
2140386
3151386
4159386
5161386
6162386
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(+.f64 (*.f64 (-.f64 d2 (+.f64 d1 d3)) d1) (*.f64 d1 d4))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(if (<=.f64 d2 -17063487331249038) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1)) (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))))
(if (<=.f64 d2 -17063487331249038) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))))
(if (<=.f64 d2 -278418828948497874861060895960631117013403566080) (*.f64 (-.f64 d2 d3) d1) (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))))
(if (<=.f64 d2 -17063487331249038) (*.f64 (-.f64 d2 d3) d1) (if (<=.f64 d2 1483604335629009/406983302788077043095694079023514269845261128071039316430435657456301100941017582490321789603976702315852655675868728054558642679084433903830771243428395388555612645234009677640568743036609742720273743660637609984234054445646756670603264) (*.f64 d1 (-.f64 (neg.f64 d3) d1)) (*.f64 (-.f64 d4 d3) d1)))
(if (<=.f64 d2 -17063487331249038) (*.f64 (-.f64 d2 d3) d1) (if (<=.f64 d2 1903824560581207/8655577598126739396236735036072208081204794589775815018544508256693025219489380097628852320463375366466345287569524796274808382414891999842312830623136802028067007430639699299020497185610570810212749031968132110813561295548441587529128294789399125630804600109428539364737024) (*.f64 (-.f64 d4 d3) d1) (if (<=.f64 d2 1483604335629009/406983302788077043095694079023514269845261128071039316430435657456301100941017582490321789603976702315852655675868728054558642679084433903830771243428395388555612645234009677640568743036609742720273743660637609984234054445646756670603264) (*.f64 d1 (-.f64 d4 d1)) (*.f64 (-.f64 d4 d3) d1))))
(if (<=.f64 d4 3057205842034037/32768) (*.f64 (-.f64 d2 d3) d1) (*.f64 (-.f64 d4 d3) d1))
(if (<=.f64 d3 -2393394872860370261477728544142229798746287819269412076320606162803675893420321700341201753866240) (*.f64 (-.f64 d4 d3) d1) (if (<=.f64 d3 5237249657635263488/4294967296) (*.f64 d1 (+.f64 d4 d2)) (*.f64 (-.f64 d4 d3) d1)))
(if (<=.f64 d3 -32170550053549207179611478971692216567087355981941812249140545948842318407761559687936728886397507085533184) (*.f64 d3 (neg.f64 d1)) (if (<=.f64 d3 35154661845994690912293960325966130101252863803518424359359777012696929301492209967784577199381905480218434603299012070978093056) (*.f64 d1 (+.f64 d4 d2)) (*.f64 d3 (neg.f64 d1))))
(if (<=.f64 d3 -2393394872860370261477728544142229798746287819269412076320606162803675893420321700341201753866240) (*.f64 d3 (neg.f64 d1)) (if (<=.f64 d3 -3326434720024898/57586096570152913699974892898380567793532123114264532903689671329431521032595044740083720782129802971518987656109067457577065805510327036019308994315074097345724416) (*.f64 d2 d1) (if (<=.f64 d3 -563688905166490048/528294531135665246352339784916516606518847326036121522127960709026673902556724859474417255887657187894674394993257128678882347559502685537250538978462939576908386683999005084168731517676426441053024232908211188404148028292751561738838396898767036476489538580897737998336) (*.f64 d1 d4) (if (<=.f64 d3 -12338763672140564480/772103322247736428651791941524190166662432288223808740069966728315087660095197093551484618001698015194652854401843307157096133183997320086925557708514169730840749451738610692460887556999562135090788908685580234789131193097780962748024381086918485856402626253175196722230275782071039209488625822100242638638716536487936) (*.f64 d2 d1) (if (<=.f64 d3 4951695336774489/873989987746428259412194333913416701987357762822590714399458303903535888835232670878457161432636363996257309241302481691723537010408733419813385804491106555801784494262060916206872597091033287849274902594962928694944169726768114734355431735427072) (*.f64 d1 d4) (if (<=.f64 d3 4491485998944823/744282853678701455922507579277316643178128753343813693728245963960974631028119473486019635930893891134220822124816566203939432067701407744) (*.f64 d2 d1) (if (<=.f64 d3 6026472521727053/18347988927920572092886567162416695526372519913346248989900710715095383008707878464560148424881005492436992) (*.f64 d1 d4) (if (<=.f64 d3 5237249657635263488/4294967296) (*.f64 d2 d1) (*.f64 d3 (neg.f64 d1))))))))))
(if (<=.f64 d4 3057205842034037/32768) (*.f64 d2 d1) (*.f64 d1 d4))
(*.f64 d2 d1)
(*.f64 d1 d1)
(*.f64 d1 d3)
Outputs
(+.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 d2 -17063487331249038) (+.f64 (*.f64 d1 d4) (*.f64 (-.f64 d2 d3) d1)) (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))))
(if (<=.f64 d2 -17063487331249038) (+.f64 (*.f64 d1 d4) (*.f64 d1 (-.f64 d2 d3))) (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))))
(if (<=.f64 d2 -17063487331249038) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))))
(if (<=.f64 d2 -278418828948497874861060895960631117013403566080) (*.f64 (-.f64 d2 d3) d1) (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))))
(if (<=.f64 d2 -278418828948497874861060895960631117013403566080) (*.f64 d1 (-.f64 d2 d3)) (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))))
(if (<=.f64 d2 -17063487331249038) (*.f64 (-.f64 d2 d3) d1) (if (<=.f64 d2 1483604335629009/406983302788077043095694079023514269845261128071039316430435657456301100941017582490321789603976702315852655675868728054558642679084433903830771243428395388555612645234009677640568743036609742720273743660637609984234054445646756670603264) (*.f64 d1 (-.f64 (neg.f64 d3) d1)) (*.f64 (-.f64 d4 d3) d1)))
(if (<=.f64 d2 -17063487331249038) (*.f64 d1 (-.f64 d2 d3)) (if (<=.f64 d2 1483604335629009/406983302788077043095694079023514269845261128071039316430435657456301100941017582490321789603976702315852655675868728054558642679084433903830771243428395388555612645234009677640568743036609742720273743660637609984234054445646756670603264) (*.f64 d1 (-.f64 (neg.f64 d3) d1)) (*.f64 d1 (-.f64 d4 d3))))
(if (<=.f64 d2 -17063487331249038) (*.f64 (-.f64 d2 d3) d1) (if (<=.f64 d2 1903824560581207/8655577598126739396236735036072208081204794589775815018544508256693025219489380097628852320463375366466345287569524796274808382414891999842312830623136802028067007430639699299020497185610570810212749031968132110813561295548441587529128294789399125630804600109428539364737024) (*.f64 (-.f64 d4 d3) d1) (if (<=.f64 d2 1483604335629009/406983302788077043095694079023514269845261128071039316430435657456301100941017582490321789603976702315852655675868728054558642679084433903830771243428395388555612645234009677640568743036609742720273743660637609984234054445646756670603264) (*.f64 d1 (-.f64 d4 d1)) (*.f64 (-.f64 d4 d3) d1))))
(if (<=.f64 d2 -17063487331249038) (*.f64 d1 (-.f64 d2 d3)) (if (<=.f64 d2 1903824560581207/8655577598126739396236735036072208081204794589775815018544508256693025219489380097628852320463375366466345287569524796274808382414891999842312830623136802028067007430639699299020497185610570810212749031968132110813561295548441587529128294789399125630804600109428539364737024) (*.f64 d1 (-.f64 d4 d3)) (if (<=.f64 d2 1483604335629009/406983302788077043095694079023514269845261128071039316430435657456301100941017582490321789603976702315852655675868728054558642679084433903830771243428395388555612645234009677640568743036609742720273743660637609984234054445646756670603264) (*.f64 d1 (-.f64 d4 d1)) (*.f64 d1 (-.f64 d4 d3)))))
(if (<=.f64 d4 3057205842034037/32768) (*.f64 (-.f64 d2 d3) d1) (*.f64 (-.f64 d4 d3) d1))
(if (<=.f64 d4 3057205842034037/32768) (*.f64 d1 (-.f64 d2 d3)) (*.f64 d1 (-.f64 d4 d3)))
(if (<=.f64 d3 -2393394872860370261477728544142229798746287819269412076320606162803675893420321700341201753866240) (*.f64 (-.f64 d4 d3) d1) (if (<=.f64 d3 5237249657635263488/4294967296) (*.f64 d1 (+.f64 d4 d2)) (*.f64 (-.f64 d4 d3) d1)))
(if (<=.f64 d3 -2393394872860370261477728544142229798746287819269412076320606162803675893420321700341201753866240) (*.f64 d1 (-.f64 d4 d3)) (if (<=.f64 d3 5114501618784437/4194304) (*.f64 d1 (+.f64 d2 d4)) (*.f64 d1 (-.f64 d4 d3))))
(if (<=.f64 d3 -32170550053549207179611478971692216567087355981941812249140545948842318407761559687936728886397507085533184) (*.f64 d3 (neg.f64 d1)) (if (<=.f64 d3 35154661845994690912293960325966130101252863803518424359359777012696929301492209967784577199381905480218434603299012070978093056) (*.f64 d1 (+.f64 d4 d2)) (*.f64 d3 (neg.f64 d1))))
(if (<=.f64 d3 -32170550053549207179611478971692216567087355981941812249140545948842318407761559687936728886397507085533184) (*.f64 d3 (neg.f64 d1)) (if (<=.f64 d3 35154661845994690912293960325966130101252863803518424359359777012696929301492209967784577199381905480218434603299012070978093056) (*.f64 d1 (+.f64 d2 d4)) (*.f64 d3 (neg.f64 d1))))
(if (<=.f64 d3 -2393394872860370261477728544142229798746287819269412076320606162803675893420321700341201753866240) (*.f64 d3 (neg.f64 d1)) (if (<=.f64 d3 -3326434720024898/57586096570152913699974892898380567793532123114264532903689671329431521032595044740083720782129802971518987656109067457577065805510327036019308994315074097345724416) (*.f64 d2 d1) (if (<=.f64 d3 -563688905166490048/528294531135665246352339784916516606518847326036121522127960709026673902556724859474417255887657187894674394993257128678882347559502685537250538978462939576908386683999005084168731517676426441053024232908211188404148028292751561738838396898767036476489538580897737998336) (*.f64 d1 d4) (if (<=.f64 d3 -12338763672140564480/772103322247736428651791941524190166662432288223808740069966728315087660095197093551484618001698015194652854401843307157096133183997320086925557708514169730840749451738610692460887556999562135090788908685580234789131193097780962748024381086918485856402626253175196722230275782071039209488625822100242638638716536487936) (*.f64 d2 d1) (if (<=.f64 d3 4951695336774489/873989987746428259412194333913416701987357762822590714399458303903535888835232670878457161432636363996257309241302481691723537010408733419813385804491106555801784494262060916206872597091033287849274902594962928694944169726768114734355431735427072) (*.f64 d1 d4) (if (<=.f64 d3 4491485998944823/744282853678701455922507579277316643178128753343813693728245963960974631028119473486019635930893891134220822124816566203939432067701407744) (*.f64 d2 d1) (if (<=.f64 d3 6026472521727053/18347988927920572092886567162416695526372519913346248989900710715095383008707878464560148424881005492436992) (*.f64 d1 d4) (if (<=.f64 d3 5237249657635263488/4294967296) (*.f64 d2 d1) (*.f64 d3 (neg.f64 d1))))))))))
(if (<=.f64 d3 -2393394872860370261477728544142229798746287819269412076320606162803675893420321700341201753866240) (*.f64 d3 (neg.f64 d1)) (if (<=.f64 d3 -1663217360012449/28793048285076456849987446449190283896766061557132266451844835664715760516297522370041860391064901485759493828054533728788532902755163518009654497157537048672862208) (*.f64 d2 d1) (if (<=.f64 d3 -8807639143226407/8254602048994769474255309139320571976856989469314398783249386078541779727448825929287769623244643560854287421769642635607536680617229461519539671538483430889193541937484454440136429963694163141453503639190799818814812942074243152169349951543234944945149040326527156224) (*.f64 d1 d4) (if (<=.f64 d3 -6024786949287385/377003575316277553052632783947358479815640765734281611362288441560101396530857955835685848633641608981764089063400052322800846281248691448694119974860434438887084693231743502178167752441192448774799271819130974018130465379775860716808779827596916922071594850183201524526501846714374614008118077197384100897810808832) (*.f64 d2 d1) (if (<=.f64 d3 4951695336774489/873989987746428259412194333913416701987357762822590714399458303903535888835232670878457161432636363996257309241302481691723537010408733419813385804491106555801784494262060916206872597091033287849274902594962928694944169726768114734355431735427072) (*.f64 d1 d4) (if (<=.f64 d3 4491485998944823/744282853678701455922507579277316643178128753343813693728245963960974631028119473486019635930893891134220822124816566203939432067701407744) (*.f64 d2 d1) (if (<=.f64 d3 6026472521727053/18347988927920572092886567162416695526372519913346248989900710715095383008707878464560148424881005492436992) (*.f64 d1 d4) (if (<=.f64 d3 5114501618784437/4194304) (*.f64 d2 d1) (*.f64 d3 (neg.f64 d1))))))))))
(if (<=.f64 d4 3057205842034037/32768) (*.f64 d2 d1) (*.f64 d1 d4))
(*.f64 d2 d1)
(*.f64 d1 d1)
(*.f64 d1 d3)
Compiler

Compiled 328 to 187 computations (43% saved)

soundness307.0ms (4.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
Compiler

Compiled 161 to 97 computations (39.8% saved)

end99.0ms (1.4%)

Remove

(sort d2 d4)

Compiler

Compiled 302 to 116 computations (61.6% saved)

Profiling

Loading profile data...