Details

Time bar (total: 8.0s)

analyze408.0ms (5.1%)

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.6s (20.4%)

Results
1.1s8256×body256valid
499.0ms3705×body256invalid

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

simplify142.0ms (1.8%)

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

Useful iterations: 2 (0.0ms)

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

eval1.0ms (0%)

Compiler

Compiled 28 to 15 computations (46.4% saved)

prune1.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

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

Compiled 32 to 19 computations (40.6% saved)

localize9.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 32 to 8 computations (75% saved)

series7.0ms (0.1%)

Counts
1 → 48
Calls

12 calls:

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

rewrite140.0ms (1.8%)

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

Useful iterations: 0 (0.0ms)

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

simplify67.0ms (0.8%)

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

Useful iterations: 2 (0.0ms)

IterNodesCost
029692
173656
2164548
3475548
41631548
54747548
Stop Event
node limit
Counts
110 → 82
Calls
Call 1
Inputs
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(*.f64 -1 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(*.f64 -1 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 d3)))
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
(*.f64 (-.f64 d2 (+.f64 d1 d3)) d1)
(+.f64 (*.f64 (-.f64 d2 (+.f64 d1 d3)) d1) (*.f64 d1 d4))
(+.f64 (*.f64 (-.f64 d2 (+.f64 d1 d3)) d1) (*.f64 d1 d4))
(+.f64 (*.f64 (-.f64 d2 (+.f64 d1 d3)) d1) (*.f64 d1 d4))
(*.f64 d1 d4)
(+.f64 (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))) (*.f64 d1 d4))
(+.f64 (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))) (*.f64 d1 d4))
(+.f64 (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))) (*.f64 d1 d4))
(*.f64 d1 d4)
(+.f64 (*.f64 (-.f64 d2 (+.f64 d1 d3)) d1) (*.f64 d1 d4))
(+.f64 (*.f64 (-.f64 d2 (+.f64 d1 d3)) d1) (*.f64 d1 d4))
(+.f64 (*.f64 (-.f64 d2 (+.f64 d1 d3)) d1) (*.f64 d1 d4))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)))
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)))
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)))
Outputs
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d3)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d4 d3) (-.f64 d2 d1)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d4 d3) (-.f64 d2 d1)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d4 d3) (-.f64 d2 d1)))
(*.f64 -1 (pow.f64 d1 2))
(neg.f64 (*.f64 d1 d1))
(*.f64 d1 (neg.f64 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d4 d3) (-.f64 d2 d1)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d4 d3) (-.f64 d2 d1)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d4 d3) (-.f64 d2 d1)))
(*.f64 -1 (pow.f64 d1 2))
(neg.f64 (*.f64 d1 d1))
(*.f64 d1 (neg.f64 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d4 d3) (-.f64 d2 d1)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d4 d3) (-.f64 d2 d1)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d4 d3) (-.f64 d2 d1)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 d3)))
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d4 d3) (-.f64 d2 d1)))
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d4 d3) (-.f64 d2 d1)))
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d4 d3) (-.f64 d2 d1)))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d4 d3) (-.f64 d2 d1)))
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d4 d3) (-.f64 d2 d1)))
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d4 d3) (-.f64 d2 d1)))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d4 d3) (-.f64 d2 d1)))
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d4 d3) (-.f64 d2 d1)))
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d4 d3) (-.f64 d2 d1)))
(*.f64 (-.f64 d2 (+.f64 d1 d3)) d1)
(*.f64 d1 (-.f64 d2 (+.f64 d1 d3)))
(*.f64 d1 (-.f64 (-.f64 d2 d1) d3))
(+.f64 (*.f64 (-.f64 d2 (+.f64 d1 d3)) d1) (*.f64 d1 d4))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d4 d3) (-.f64 d2 d1)))
(+.f64 (*.f64 (-.f64 d2 (+.f64 d1 d3)) d1) (*.f64 d1 d4))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d4 d3) (-.f64 d2 d1)))
(+.f64 (*.f64 (-.f64 d2 (+.f64 d1 d3)) d1) (*.f64 d1 d4))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d4 d3) (-.f64 d2 d1)))
(*.f64 d1 d4)
(+.f64 (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))) (*.f64 d1 d4))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d4 d3) (-.f64 d2 d1)))
(+.f64 (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))) (*.f64 d1 d4))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d4 d3) (-.f64 d2 d1)))
(+.f64 (*.f64 d1 (-.f64 d2 (+.f64 d1 d3))) (*.f64 d1 d4))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d4 d3) (-.f64 d2 d1)))
(*.f64 d1 d4)
(+.f64 (*.f64 (-.f64 d2 (+.f64 d1 d3)) d1) (*.f64 d1 d4))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d4 d3) (-.f64 d2 d1)))
(+.f64 (*.f64 (-.f64 d2 (+.f64 d1 d3)) d1) (*.f64 d1 d4))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d4 d3) (-.f64 d2 d1)))
(+.f64 (*.f64 (-.f64 d2 (+.f64 d1 d3)) d1) (*.f64 d1 d4))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d4 d3) (-.f64 d2 d1)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d1))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d4 d3) (-.f64 d2 d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d4 d3) (-.f64 d2 d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d4 d3) (-.f64 d2 d1)))
(*.f64 -1 (*.f64 d1 d3))
(neg.f64 (*.f64 d1 d3))
(*.f64 d3 (neg.f64 d1))
(*.f64 d1 (neg.f64 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d4 d3) (-.f64 d2 d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d4 d3) (-.f64 d2 d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d4 d3) (-.f64 d2 d1)))
(*.f64 -1 (*.f64 d1 d3))
(neg.f64 (*.f64 d1 d3))
(*.f64 d3 (neg.f64 d1))
(*.f64 d1 (neg.f64 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d4 d3) (-.f64 d2 d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d4 d3) (-.f64 d2 d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d1)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))))
(-.f64 (*.f64 d1 (+.f64 d2 (-.f64 d4 d3))) (*.f64 d1 d1))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 (-.f64 d3 d2))))
(*.f64 d1 (+.f64 (-.f64 d4 d3) (-.f64 d2 d1)))

localize15.0ms (0.2%)

Local error

Found 3 expressions with local error:

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

Compiled 53 to 11 computations (79.2% saved)

series27.0ms (0.3%)

Counts
3 → 132
Calls

33 calls:

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

rewrite124.0ms (1.5%)

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 d1 d2) (*.f64 d1 d3))
(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1))
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 d1 (neg.f64 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 d2) (*.f64 (*.f64 d1 (neg.f64 d3)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 d2) (+.f64 (*.f64 d1 (neg.f64 d3)) (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 (-.f64 d2 d3)) (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 (-.f64 d2 d3)) (fma.f64 (*.f64 d1 (neg.f64 d3)) 1 (*.f64 d1 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 (-.f64 d2 d3)) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 d1 d3))) (pow.f64 (cbrt.f64 (*.f64 d1 d3)) 2) (*.f64 d1 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 (-.f64 d2 d3)) (*.f64 (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 (-.f64 d2 d3)) (+.f64 (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3)) (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 d2 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 d1 (-.f64 d2 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 d1) (-.f64 d2 d3))) (cbrt.f64 (pow.f64 (exp.f64 d1) (-.f64 d2 d3))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 d1) (-.f64 d2 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 d1) (-.f64 d2 d3)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 d1) (-.f64 d2 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 d1 (-.f64 d2 d3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 d1 (-.f64 d2 d3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 d1 (-.f64 d2 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 d1) 2) (*.f64 (cbrt.f64 d1) (-.f64 d2 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 d1 (-.f64 d2 d3))) (pow.f64 (cbrt.f64 (*.f64 d1 (-.f64 d2 d3))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 d1 (-.f64 d2 d3))) 2) (cbrt.f64 (*.f64 d1 (-.f64 d2 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 d1) (*.f64 (sqrt.f64 d1) (-.f64 d2 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 d1 (-.f64 d2 d3))) (sqrt.f64 (*.f64 d1 (-.f64 d2 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (*.f64 d1 d2) 3) (pow.f64 (*.f64 d1 d3) 3)) (/.f64 1 (+.f64 (pow.f64 (*.f64 d1 d2) 2) (*.f64 (*.f64 d1 d3) (*.f64 d1 (+.f64 d2 d3))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (*.f64 d1 d2) 2) (pow.f64 (*.f64 d1 d3) 2)) (/.f64 1 (*.f64 d1 (+.f64 d2 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 d2 d3) d1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sqrt.f64 (*.f64 d1 d2)) (sqrt.f64 (*.f64 d1 d3))) (-.f64 (sqrt.f64 (*.f64 d1 d2)) (sqrt.f64 (*.f64 d1 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 (*.f64 d1 d2) 2) (*.f64 (*.f64 d1 d3) (*.f64 d1 (+.f64 d2 d3)))) (-.f64 (pow.f64 (*.f64 d1 d2) 3) (pow.f64 (*.f64 d1 d3) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (*.f64 d1 (+.f64 d2 d3)) (-.f64 (pow.f64 (*.f64 d1 d2) 2) (pow.f64 (*.f64 d1 d3) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 d1 d2) 3) (pow.f64 (*.f64 d1 d3) 3)) (+.f64 (pow.f64 (*.f64 d1 d2) 2) (*.f64 (*.f64 d1 d3) (*.f64 d1 (+.f64 d2 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 d1 d2) 2) (pow.f64 (*.f64 d1 d3) 2)) (*.f64 d1 (+.f64 d2 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 d1 d2) 3) (pow.f64 (*.f64 d1 d3) 3))) (neg.f64 (+.f64 (pow.f64 (*.f64 d1 d2) 2) (*.f64 (*.f64 d1 d3) (*.f64 d1 (+.f64 d2 d3))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 d1 d2) 2) (pow.f64 (*.f64 d1 d3) 2))) (neg.f64 (*.f64 d1 (+.f64 d2 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 d1 d2) 3) (pow.f64 (*.f64 d1 (neg.f64 d3)) 3)) (+.f64 (pow.f64 (*.f64 d1 d2) 2) (-.f64 (*.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (neg.f64 d3))) (*.f64 (*.f64 d1 d2) (*.f64 d1 (neg.f64 d3))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 d1 (-.f64 d2 d3)) 3) (pow.f64 (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3)) 3)) (+.f64 (pow.f64 (*.f64 d1 (-.f64 d2 d3)) 2) (-.f64 (*.f64 (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3)) (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3))) (*.f64 (*.f64 d1 (-.f64 d2 d3)) (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 d1 d2) 2) (*.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (neg.f64 d3)))) (-.f64 (*.f64 d1 d2) (*.f64 d1 (neg.f64 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 d1 (-.f64 d2 d3)) 2) (*.f64 (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3)) (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3)))) (-.f64 (*.f64 d1 (-.f64 d2 d3)) (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 d1 (-.f64 d2 d3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 d1 (-.f64 d2 d3))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 d1 (-.f64 d2 d3))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 d1 (-.f64 d2 d3)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 d1 (-.f64 d2 d3)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 d1) (-.f64 d2 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 d1 (-.f64 d2 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (expm1.f64 (*.f64 d1 d2))) (pow.f64 (exp.f64 d3) d1)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (pow.f64 (exp.f64 d1) d2) (+.f64 1 (expm1.f64 (*.f64 d1 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (expm1.f64 (*.f64 d1 d2))) (+.f64 1 (expm1.f64 (*.f64 d1 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 d1 d2))) (exp.f64 (*.f64 d1 (neg.f64 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 d1) d2) (/.f64 1 (pow.f64 (exp.f64 d3) d1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 d1 d2))) (/.f64 1 (pow.f64 (exp.f64 d3) d1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 d1 (-.f64 d2 d3)))) (exp.f64 (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3))) (pow.f64 (exp.f64 d1) (-.f64 d2 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3))) (+.f64 1 (expm1.f64 (*.f64 d1 (-.f64 d2 d3))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 d1 (neg.f64 d3))) (pow.f64 (exp.f64 d1) d2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (/.f64 1 (pow.f64 (exp.f64 d3) d1)) (pow.f64 (exp.f64 d1) d2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 d1 (neg.f64 d3))) (+.f64 1 (expm1.f64 (*.f64 d1 d2)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (/.f64 1 (pow.f64 (exp.f64 d3) d1)) (+.f64 1 (expm1.f64 (*.f64 d1 d2)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 d1 (-.f64 d2 d3)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 d1 (-.f64 d2 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 d1 (-.f64 d2 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 d1 (-.f64 d2 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 d1 (-.f64 d2 d3))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d1 d2 (*.f64 d1 (neg.f64 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d1 d2 (neg.f64 (-.f64 (*.f64 d1 d3) (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d1 (-.f64 d2 d3) (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d2 d1 (*.f64 d1 (neg.f64 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d2 d1 (neg.f64 (-.f64 (*.f64 d1 d3) (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d1 d2) 1 (*.f64 d1 (neg.f64 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d1 d2) 1 (neg.f64 (-.f64 (*.f64 d1 d3) (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 d1 d2) (*.f64 d1 (neg.f64 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 d1 d2) (neg.f64 (-.f64 (*.f64 d1 d3) (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 d1 (-.f64 d2 d3)) (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 d1) 2) (*.f64 (cbrt.f64 d1) d2) (*.f64 d1 (neg.f64 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 d1) 2) (*.f64 (cbrt.f64 d1) d2) (neg.f64 (-.f64 (*.f64 d1 d3) (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 d2) 2) (*.f64 (cbrt.f64 d2) d1) (*.f64 d1 (neg.f64 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 d2) 2) (*.f64 (cbrt.f64 d2) d1) (neg.f64 (-.f64 (*.f64 d1 d3) (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 d1 (-.f64 d2 d3))) 2) (cbrt.f64 (*.f64 d1 (-.f64 d2 d3))) (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 d1 d2)) (pow.f64 (cbrt.f64 (*.f64 d1 d2)) 2) (*.f64 d1 (neg.f64 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 d1 d2)) (pow.f64 (cbrt.f64 (*.f64 d1 d2)) 2) (neg.f64 (-.f64 (*.f64 d1 d3) (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 d1 d2)) 2) (cbrt.f64 (*.f64 d1 d2)) (*.f64 d1 (neg.f64 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 d1 d2)) 2) (cbrt.f64 (*.f64 d1 d2)) (neg.f64 (-.f64 (*.f64 d1 d3) (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 d1) (*.f64 (sqrt.f64 d1) d2) (*.f64 d1 (neg.f64 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 d1) (*.f64 (sqrt.f64 d1) d2) (neg.f64 (-.f64 (*.f64 d1 d3) (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 d2) (*.f64 (sqrt.f64 d2) d1) (*.f64 d1 (neg.f64 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 d2) (*.f64 (sqrt.f64 d2) d1) (neg.f64 (-.f64 (*.f64 d1 d3) (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 d1 (-.f64 d2 d3))) (sqrt.f64 (*.f64 d1 (-.f64 d2 d3))) (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 d1 d2)) (sqrt.f64 (*.f64 d1 d2)) (*.f64 d1 (neg.f64 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 d1 d2)) (sqrt.f64 (*.f64 d1 d2)) (neg.f64 (-.f64 (*.f64 d1 d3) (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d1 (pow.f64 (cbrt.f64 d2) 2)) (cbrt.f64 d2) (*.f64 d1 (neg.f64 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d1 (pow.f64 (cbrt.f64 d2) 2)) (cbrt.f64 d2) (neg.f64 (-.f64 (*.f64 d1 d3) (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d1 (sqrt.f64 d2)) (sqrt.f64 d2) (*.f64 d1 (neg.f64 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d1 (sqrt.f64 d2)) (sqrt.f64 d2) (neg.f64 (-.f64 (*.f64 d1 d3) (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d2 (pow.f64 (cbrt.f64 d1) 2)) (cbrt.f64 d1) (*.f64 d1 (neg.f64 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d2 (pow.f64 (cbrt.f64 d1) 2)) (cbrt.f64 d1) (neg.f64 (-.f64 (*.f64 d1 d3) (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d2 (sqrt.f64 d1)) (sqrt.f64 d1) (*.f64 d1 (neg.f64 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d2 (sqrt.f64 d1)) (sqrt.f64 d1) (neg.f64 (-.f64 (*.f64 d1 d3) (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3)))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 d2) (+.f64 (*.f64 d1 (neg.f64 d3)) (*.f64 d1 (-.f64 d4 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 (-.f64 d2 d3)) (*.f64 d1 (-.f64 d4 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 (-.f64 d2 d3)) (*.f64 (*.f64 d1 (-.f64 d4 d1)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 (-.f64 d2 d3)) (+.f64 (fma.f64 (neg.f64 d3) d1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 d4 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 d4) (fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (neg.f64 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 d4) (+.f64 (*.f64 d1 (-.f64 d2 d3)) (*.f64 d1 (neg.f64 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) (*.f64 d1 (neg.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) (*.f64 (*.f64 d1 (neg.f64 d1)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 d4 d1))) (fma.f64 (neg.f64 d1) d1 (*.f64 d1 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 d4 d1))) (fma.f64 (*.f64 d1 (neg.f64 d1)) 1 (*.f64 d1 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 d4 d1))) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 d1) 2)) (cbrt.f64 (pow.f64 d1 4)) (*.f64 d1 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 (neg.f64 d1)) (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 d1 (-.f64 d4 d1)) (*.f64 d1 (-.f64 d2 d3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 d4 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 d4 d1))))) (cbrt.f64 (exp.f64 (fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 d4 d1))))))) (log.f64 (cbrt.f64 (exp.f64 (fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 d4 d1)))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 d4 d1)))))) (log.f64 (sqrt.f64 (exp.f64 (fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 d4 d1)))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 d4 d1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 d4 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 d4 d1)))) (cbrt.f64 (pow.f64 (fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 d4 d1))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 d4 d1))) 2)) (cbrt.f64 (fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 d4 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 d4 d1)))) (sqrt.f64 (fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 d4 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 3) (pow.f64 d1 6)) (/.f64 1 (+.f64 (+.f64 (pow.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 2) (pow.f64 d1 4)) (*.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) (*.f64 d1 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 2) (pow.f64 d1 4)) (/.f64 1 (+.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sqrt.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))) d1) (-.f64 (sqrt.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))) d1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (+.f64 (pow.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 2) (pow.f64 d1 4)) (*.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) (*.f64 d1 d1))) (-.f64 (pow.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 3) (pow.f64 d1 6))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) (*.f64 d1 d1)) (-.f64 (pow.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 2) (pow.f64 d1 4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 3) (pow.f64 d1 6)) (+.f64 (+.f64 (pow.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 2) (pow.f64 d1 4)) (*.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 2) (pow.f64 d1 4)) (+.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) (*.f64 d1 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 3) (pow.f64 d1 6))) (neg.f64 (+.f64 (+.f64 (pow.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 2) (pow.f64 d1 4)) (*.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) (*.f64 d1 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 2) (pow.f64 d1 4))) (neg.f64 (+.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 d1 (-.f64 d2 d3)) 3) (pow.f64 (*.f64 d1 (-.f64 d4 d1)) 3)) (+.f64 (pow.f64 (*.f64 d1 (-.f64 d2 d3)) 2) (-.f64 (*.f64 (*.f64 d1 (-.f64 d4 d1)) (*.f64 d1 (-.f64 d4 d1))) (*.f64 (*.f64 d1 (-.f64 d2 d3)) (*.f64 d1 (-.f64 d4 d1))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 3) (pow.f64 (*.f64 d1 (neg.f64 d1)) 3)) (+.f64 (pow.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 2) (-.f64 (*.f64 (*.f64 d1 (neg.f64 d1)) (*.f64 d1 (neg.f64 d1))) (*.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) (*.f64 d1 (neg.f64 d1))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 d1 (-.f64 d2 d3)) 2) (*.f64 (*.f64 d1 (-.f64 d4 d1)) (*.f64 d1 (-.f64 d4 d1)))) (-.f64 (*.f64 d1 (-.f64 d2 d3)) (*.f64 d1 (-.f64 d4 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 2) (*.f64 (*.f64 d1 (neg.f64 d1)) (*.f64 d1 (neg.f64 d1)))) (-.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) (*.f64 d1 (neg.f64 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 d4 d1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 d4 d1))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 d4 d1)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 d4 d1)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 d4 d1))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 d4 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 d4 d1))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (expm1.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))))) (pow.f64 (exp.f64 d1) d1)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (exp.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))) (+.f64 1 (expm1.f64 (*.f64 d1 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (expm1.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))))) (+.f64 1 (expm1.f64 (*.f64 d1 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 d1 (-.f64 d2 d3)))) (exp.f64 (*.f64 d1 (-.f64 d4 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 d1) (-.f64 d2 d3)) (/.f64 (pow.f64 (exp.f64 d4) d1) (pow.f64 (exp.f64 d1) d1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 d1 (-.f64 d2 d3)))) (/.f64 (pow.f64 (exp.f64 d4) d1) (pow.f64 (exp.f64 d1) d1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))))) (exp.f64 (*.f64 d1 (neg.f64 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))) (/.f64 1 (pow.f64 (exp.f64 d1) d1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))))) (/.f64 1 (pow.f64 (exp.f64 d1) d1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 d1 (neg.f64 d1))) (exp.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (/.f64 1 (pow.f64 (exp.f64 d1) d1)) (exp.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 d1 (neg.f64 d1))) (+.f64 1 (expm1.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (/.f64 1 (pow.f64 (exp.f64 d1) d1)) (+.f64 1 (expm1.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 d1 (-.f64 d4 d1))) (pow.f64 (exp.f64 d1) (-.f64 d2 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (/.f64 (pow.f64 (exp.f64 d4) d1) (pow.f64 (exp.f64 d1) d1)) (pow.f64 (exp.f64 d1) (-.f64 d2 d3))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 d1 (-.f64 d4 d1))) (+.f64 1 (expm1.f64 (*.f64 d1 (-.f64 d2 d3))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (/.f64 (pow.f64 (exp.f64 d4) d1) (pow.f64 (exp.f64 d1) d1)) (+.f64 1 (expm1.f64 (*.f64 d1 (-.f64 d2 d3))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 d4 d1))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 d4 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 d4 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 d4 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 d4 d1)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d1 d2 (neg.f64 (+.f64 (*.f64 d1 (-.f64 d3 d4)) (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d1 d2 (neg.f64 (-.f64 (*.f64 d1 d3) (*.f64 d1 (-.f64 d4 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d1 d2 (neg.f64 (-.f64 (*.f64 d1 (-.f64 d3 d4)) (*.f64 d1 (neg.f64 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d1 (-.f64 d2 d3) (*.f64 d1 (-.f64 d4 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d1 (+.f64 (-.f64 d2 d3) d4) (*.f64 d1 (neg.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d1 (+.f64 d4 (-.f64 d2 d3)) (*.f64 d1 (neg.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d2 d1 (neg.f64 (+.f64 (*.f64 d1 (-.f64 d3 d4)) (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d2 d1 (neg.f64 (-.f64 (*.f64 d1 d3) (*.f64 d1 (-.f64 d4 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d2 d1 (neg.f64 (-.f64 (*.f64 d1 (-.f64 d3 d4)) (*.f64 d1 (neg.f64 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d1 d2) 1 (neg.f64 (+.f64 (*.f64 d1 (-.f64 d3 d4)) (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d1 d2) 1 (neg.f64 (-.f64 (*.f64 d1 d3) (*.f64 d1 (-.f64 d4 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d1 d2) 1 (neg.f64 (-.f64 (*.f64 d1 (-.f64 d3 d4)) (*.f64 d1 (neg.f64 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) 1 (*.f64 d1 (neg.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 d1 d2) (neg.f64 (+.f64 (*.f64 d1 (-.f64 d3 d4)) (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 d1 d2) (neg.f64 (-.f64 (*.f64 d1 d3) (*.f64 d1 (-.f64 d4 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 d1 d2) (neg.f64 (-.f64 (*.f64 d1 (-.f64 d3 d4)) (*.f64 d1 (neg.f64 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 d1 (-.f64 d2 d3)) (*.f64 d1 (-.f64 d4 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3))) (*.f64 d1 (neg.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 d1) 2) (*.f64 (cbrt.f64 d1) d2) (neg.f64 (+.f64 (*.f64 d1 (-.f64 d3 d4)) (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 d1) 2) (*.f64 (cbrt.f64 d1) d2) (neg.f64 (-.f64 (*.f64 d1 d3) (*.f64 d1 (-.f64 d4 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 d1) 2) (*.f64 (cbrt.f64 d1) d2) (neg.f64 (-.f64 (*.f64 d1 (-.f64 d3 d4)) (*.f64 d1 (neg.f64 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 d2) 2) (*.f64 (cbrt.f64 d2) d1) (neg.f64 (+.f64 (*.f64 d1 (-.f64 d3 d4)) (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 d2) 2) (*.f64 (cbrt.f64 d2) d1) (neg.f64 (-.f64 (*.f64 d1 d3) (*.f64 d1 (-.f64 d4 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 d2) 2) (*.f64 (cbrt.f64 d2) d1) (neg.f64 (-.f64 (*.f64 d1 (-.f64 d3 d4)) (*.f64 d1 (neg.f64 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))) (pow.f64 (cbrt.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))) 2) (*.f64 d1 (neg.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))) 2) (cbrt.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))) (*.f64 d1 (neg.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 d1 (-.f64 d2 d3))) 2) (cbrt.f64 (*.f64 d1 (-.f64 d2 d3))) (*.f64 d1 (-.f64 d4 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 d1 d2)) (pow.f64 (cbrt.f64 (*.f64 d1 d2)) 2) (neg.f64 (+.f64 (*.f64 d1 (-.f64 d3 d4)) (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 d1 d2)) (pow.f64 (cbrt.f64 (*.f64 d1 d2)) 2) (neg.f64 (-.f64 (*.f64 d1 d3) (*.f64 d1 (-.f64 d4 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 d1 d2)) (pow.f64 (cbrt.f64 (*.f64 d1 d2)) 2) (neg.f64 (-.f64 (*.f64 d1 (-.f64 d3 d4)) (*.f64 d1 (neg.f64 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 d1 d2)) 2) (cbrt.f64 (*.f64 d1 d2)) (neg.f64 (+.f64 (*.f64 d1 (-.f64 d3 d4)) (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 d1 d2)) 2) (cbrt.f64 (*.f64 d1 d2)) (neg.f64 (-.f64 (*.f64 d1 d3) (*.f64 d1 (-.f64 d4 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 d1 d2)) 2) (cbrt.f64 (*.f64 d1 d2)) (neg.f64 (-.f64 (*.f64 d1 (-.f64 d3 d4)) (*.f64 d1 (neg.f64 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 d1) (*.f64 (sqrt.f64 d1) d2) (neg.f64 (+.f64 (*.f64 d1 (-.f64 d3 d4)) (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 d1) (*.f64 (sqrt.f64 d1) d2) (neg.f64 (-.f64 (*.f64 d1 d3) (*.f64 d1 (-.f64 d4 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 d1) (*.f64 (sqrt.f64 d1) d2) (neg.f64 (-.f64 (*.f64 d1 (-.f64 d3 d4)) (*.f64 d1 (neg.f64 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 d2) (*.f64 (sqrt.f64 d2) d1) (neg.f64 (+.f64 (*.f64 d1 (-.f64 d3 d4)) (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 d2) (*.f64 (sqrt.f64 d2) d1) (neg.f64 (-.f64 (*.f64 d1 d3) (*.f64 d1 (-.f64 d4 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 d2) (*.f64 (sqrt.f64 d2) d1) (neg.f64 (-.f64 (*.f64 d1 (-.f64 d3 d4)) (*.f64 d1 (neg.f64 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))) (sqrt.f64 (*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))) (*.f64 d1 (neg.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 d1 (-.f64 d2 d3))) (sqrt.f64 (*.f64 d1 (-.f64 d2 d3))) (*.f64 d1 (-.f64 d4 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 d1 d2)) (sqrt.f64 (*.f64 d1 d2)) (neg.f64 (+.f64 (*.f64 d1 (-.f64 d3 d4)) (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 d1 d2)) (sqrt.f64 (*.f64 d1 d2)) (neg.f64 (-.f64 (*.f64 d1 d3) (*.f64 d1 (-.f64 d4 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 d1 d2)) (sqrt.f64 (*.f64 d1 d2)) (neg.f64 (-.f64 (*.f64 d1 (-.f64 d3 d4)) (*.f64 d1 (neg.f64 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (pow.f64 (*.f64 d1 (-.f64 d2 d3)) 3) (pow.f64 (*.f64 d1 d4) 3)) (/.f64 1 (+.f64 (pow.f64 (*.f64 d1 (-.f64 d2 d3)) 2) (*.f64 (*.f64 d1 d4) (-.f64 (*.f64 d1 d4) (*.f64 d1 (-.f64 d2 d3)))))) (*.f64 d1 (neg.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (*.f64 d1 (-.f64 d2 d3)) 2) (pow.f64 (*.f64 d1 d4) 2)) (/.f64 1 (*.f64 d1 (-.f64 (-.f64 d2 d3) d4))) (*.f64 d1 (neg.f64 d1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d1 (pow.f64 (cbrt.f64 d2) 2)) (cbrt.f64 d2) (neg.f64 (+.f64 (*.f64 d1 (-.f64 d3 d4)) (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d1 (pow.f64 (cbrt.f64 d2) 2)) (cbrt.f64 d2) (neg.f64 (-.f64 (*.f64 d1 d3) (*.f64 d1 (-.f64 d4 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d1 (pow.f64 (cbrt.f64 d2) 2)) (cbrt.f64 d2) (neg.f64 (-.f64 (*.f64 d1 (-.f64 d3 d4)) (*.f64 d1 (neg.f64 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d1 (sqrt.f64 d2)) (sqrt.f64 d2) (neg.f64 (+.f64 (*.f64 d1 (-.f64 d3 d4)) (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d1 (sqrt.f64 d2)) (sqrt.f64 d2) (neg.f64 (-.f64 (*.f64 d1 d3) (*.f64 d1 (-.f64 d4 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d1 (sqrt.f64 d2)) (sqrt.f64 d2) (neg.f64 (-.f64 (*.f64 d1 (-.f64 d3 d4)) (*.f64 d1 (neg.f64 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d2 (pow.f64 (cbrt.f64 d1) 2)) (cbrt.f64 d1) (neg.f64 (+.f64 (*.f64 d1 (-.f64 d3 d4)) (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d2 (pow.f64 (cbrt.f64 d1) 2)) (cbrt.f64 d1) (neg.f64 (-.f64 (*.f64 d1 d3) (*.f64 d1 (-.f64 d4 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d2 (pow.f64 (cbrt.f64 d1) 2)) (cbrt.f64 d1) (neg.f64 (-.f64 (*.f64 d1 (-.f64 d3 d4)) (*.f64 d1 (neg.f64 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d2 (sqrt.f64 d1)) (sqrt.f64 d1) (neg.f64 (+.f64 (*.f64 d1 (-.f64 d3 d4)) (*.f64 d1 d1))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d2 (sqrt.f64 d1)) (sqrt.f64 d1) (neg.f64 (-.f64 (*.f64 d1 d3) (*.f64 d1 (-.f64 d4 d1)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 d2 (sqrt.f64 d1)) (sqrt.f64 d1) (neg.f64 (-.f64 (*.f64 d1 (-.f64 d3 d4)) (*.f64 d1 (neg.f64 d1)))))))))

simplify130.0ms (1.6%)

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

Useful iterations: 2 (0.0ms)

IterNodesCost
0451481
11491342
23801227
311771227
442021227
559051227
665541227
777701227
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 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 (-.f64 d2 d3) d1)
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) (*.f64 -1 d3))))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) (*.f64 -1 d3))))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) (*.f64 -1 d3))))
(*.f64 -1 (*.f64 d1 (-.f64 (*.f64 -1 d2) (*.f64 -1 d3))))
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(*.f64 -1 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(*.f64 -1 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 (-.f64 (+.f64 (*.f64 -1 d4) (*.f64 -1 d2)) (*.f64 -1 d3)))))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 (-.f64 (+.f64 (*.f64 -1 d4) (*.f64 -1 d2)) (*.f64 -1 d3)))))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 (-.f64 (+.f64 (*.f64 -1 d4) (*.f64 -1 d2)) (*.f64 -1 d3)))))
(-.f64 (*.f64 d1 d4) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(*.f64 d2 d1)
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(*.f64 d2 d1)
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4))) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4))) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4))) (pow.f64 d1 2))
(*.f64 -1 (*.f64 d1 d3))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4))) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4))) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4))) (pow.f64 d1 2))
(*.f64 -1 (*.f64 d1 d3))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4))) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4))) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4))) (pow.f64 d1 2))
(-.f64 (*.f64 d2 d1) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(*.f64 d1 d4)
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(*.f64 d1 d4)
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (+.f64 (pow.f64 d1 2) (*.f64 d1 d3)))
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 (-.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))
(*.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 d2 (+.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 (+.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 d2 (+.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 (+.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 d2 (+.f64 d1 d3))))
(*.f64 -1 (pow.f64 d1 2))
(neg.f64 (*.f64 d1 d1))
(*.f64 d1 (neg.f64 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(fma.f64 -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 d2 (+.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 (+.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 d2 (+.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 (+.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 d2 (+.f64 d1 d3))))
(*.f64 -1 (pow.f64 d1 2))
(neg.f64 (*.f64 d1 d1))
(*.f64 d1 (neg.f64 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -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 d2 (+.f64 d1 d3))))
(+.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 d2 (+.f64 d1 d3))))
(+.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 d2 (+.f64 d1 d3))))
(-.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 d3 d1)))
(*.f64 d1 (-.f64 (-.f64 d4 d3) d1))
(*.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 d2 (+.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 d2 (+.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 d2 (+.f64 d1 d3))))
(*.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 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 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 d2 (+.f64 d1 d3))))
(*.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 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 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 d2 (+.f64 d1 d3))))
(-.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 d4 (-.f64 d2 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 d2 (+.f64 d1 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 d2 (+.f64 d1 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 d2 (+.f64 d1 d3))))
(*.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 d2 (+.f64 d1 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 d2 (+.f64 d1 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 d2 (+.f64 d1 d3))))
(*.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 d2 (+.f64 d1 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 d2 (+.f64 d1 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 d2 (+.f64 d1 d3))))
(-.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 d3 d1)))
(*.f64 d1 (-.f64 (-.f64 d2 d3) d1))
(*.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 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 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 d2 (+.f64 d1 d3))))
(*.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 d2 (+.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 d2 (+.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 d2 (+.f64 d1 d3))))
(*.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 d2 (+.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 d2 (+.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 d2 (+.f64 d1 d3))))

eval129.0ms (1.6%)

Compiler

Compiled 7392 to 1668 computations (77.4% saved)

prune99.0ms (1.2%)

Pruning

10 alts after pruning (10 fresh and 0 done)

PrunedKeptTotal
New38910399
Fresh000
Picked101
Done101
Total39110401
Error
0b
Counts
401 → 10
Alt Table
Click to see full alt table
StatusErrorProgram
16.1b
(*.f64 d1 (-.f64 d4 (+.f64 d1 d3)))
0.0b
(fma.f64 d1 (+.f64 (-.f64 d2 d3) d4) (*.f64 d1 (neg.f64 d1)))
0.0b
(fma.f64 d2 d1 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))))
42.2b
(*.f64 d1 d4)
18.6b
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (*.f64 d1 d1))
53.2b
(*.f64 d1 (neg.f64 d1))
45.1b
(*.f64 d2 d1)
0.0b
(fma.f64 (-.f64 d4 (+.f64 d1 d3)) d1 (*.f64 d1 d2))
42.8b
(*.f64 d1 (neg.f64 d3))
7.6b
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
Compiler

Compiled 220 to 140 computations (36.4% saved)

localize10.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 29 to 8 computations (72.4% saved)

series5.0ms (0.1%)

Counts
1 → 48
Calls

12 calls:

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

rewrite63.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
512×log-prod_binary64
446×fma-def_binary64
393×pow-prod-down_binary64
287×pow2_binary64
218×fma-neg_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify98.0ms (1.2%)

Algorithm
egg-herbie
Rules
564×unsub-neg_binary64
485×fma-def_binary64
364×sub-neg_binary64
278×unswap-sqr_binary64
272×neg-sub0_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
038696
1115550
2337548
31017548
44055548
56053548
66814548
77897548
Stop Event
node limit
Counts
83 → 55
Calls
Call 1
Inputs
(+.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 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 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 (*.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))
Outputs
(+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(fma.f64 d2 d1 (neg.f64 (*.f64 d1 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 d2 (neg.f64 (+.f64 d1 d3))))
(*.f64 d1 (-.f64 d2 (+.f64 d1 d3)))
(+.f64 (*.f64 d1 d4) (+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1))))
(fma.f64 d1 d4 (fma.f64 d2 d1 (neg.f64 (*.f64 d1 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (-.f64 d4 d1) (-.f64 d2 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) (+.f64 d1 d3)))
(+.f64 (*.f64 d1 d4) (+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1))))
(fma.f64 d1 d4 (fma.f64 d2 d1 (neg.f64 (*.f64 d1 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (-.f64 d4 d1) (-.f64 d2 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) (+.f64 d1 d3)))
(+.f64 (*.f64 d1 d4) (+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1))))
(fma.f64 d1 d4 (fma.f64 d2 d1 (neg.f64 (*.f64 d1 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (-.f64 d4 d1) (-.f64 d2 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) (+.f64 d1 d3)))
(*.f64 d1 d4)
(+.f64 (*.f64 d2 d1) (+.f64 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1))))
(fma.f64 d1 d4 (fma.f64 d2 d1 (neg.f64 (*.f64 d1 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (-.f64 d4 d1) (-.f64 d2 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) (+.f64 d1 d3)))
(+.f64 (*.f64 d2 d1) (+.f64 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1))))
(fma.f64 d1 d4 (fma.f64 d2 d1 (neg.f64 (*.f64 d1 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (-.f64 d4 d1) (-.f64 d2 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) (+.f64 d1 d3)))
(+.f64 (*.f64 d2 d1) (+.f64 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1))))
(fma.f64 d1 d4 (fma.f64 d2 d1 (neg.f64 (*.f64 d1 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (-.f64 d4 d1) (-.f64 d2 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) (+.f64 d1 d3)))
(*.f64 d1 d4)
(+.f64 (*.f64 d2 d1) (+.f64 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1))))
(fma.f64 d1 d4 (fma.f64 d2 d1 (neg.f64 (*.f64 d1 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (-.f64 d4 d1) (-.f64 d2 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) (+.f64 d1 d3)))
(+.f64 (*.f64 d2 d1) (+.f64 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1))))
(fma.f64 d1 d4 (fma.f64 d2 d1 (neg.f64 (*.f64 d1 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (-.f64 d4 d1) (-.f64 d2 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) (+.f64 d1 d3)))
(+.f64 (*.f64 d2 d1) (+.f64 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1))))
(fma.f64 d1 d4 (fma.f64 d2 d1 (neg.f64 (*.f64 d1 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (-.f64 d4 d1) (-.f64 d2 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) (+.f64 d1 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 d1 d4 (fma.f64 d2 d1 (neg.f64 (*.f64 d1 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (-.f64 d4 d1) (-.f64 d2 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) (+.f64 d1 d3)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(fma.f64 d1 d4 (fma.f64 d2 d1 (neg.f64 (*.f64 d1 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (-.f64 d4 d1) (-.f64 d2 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) (+.f64 d1 d3)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(fma.f64 d1 d4 (fma.f64 d2 d1 (neg.f64 (*.f64 d1 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (-.f64 d4 d1) (-.f64 d2 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 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 d1 d4 (fma.f64 d2 d1 (neg.f64 (*.f64 d1 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (-.f64 d4 d1) (-.f64 d2 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) (+.f64 d1 d3)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(fma.f64 d1 d4 (fma.f64 d2 d1 (neg.f64 (*.f64 d1 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (-.f64 d4 d1) (-.f64 d2 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) (+.f64 d1 d3)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(fma.f64 d1 d4 (fma.f64 d2 d1 (neg.f64 (*.f64 d1 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (-.f64 d4 d1) (-.f64 d2 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 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 -1 (*.f64 d1 (+.f64 (*.f64 -1 (-.f64 d4 d3)) (*.f64 -1 d2)))))
(fma.f64 d1 d4 (fma.f64 d2 d1 (neg.f64 (*.f64 d1 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (-.f64 d4 d1) (-.f64 d2 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) (+.f64 d1 d3)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 (+.f64 (*.f64 -1 (-.f64 d4 d3)) (*.f64 -1 d2)))))
(fma.f64 d1 d4 (fma.f64 d2 d1 (neg.f64 (*.f64 d1 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (-.f64 d4 d1) (-.f64 d2 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) (+.f64 d1 d3)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 (+.f64 (*.f64 -1 (-.f64 d4 d3)) (*.f64 -1 d2)))))
(fma.f64 d1 d4 (fma.f64 d2 d1 (neg.f64 (*.f64 d1 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (-.f64 d4 d1) (-.f64 d2 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 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 d2 (-.f64 d4 d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(fma.f64 d1 d4 (fma.f64 d2 d1 (neg.f64 (*.f64 d1 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (-.f64 d4 d1) (-.f64 d2 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) (+.f64 d1 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(fma.f64 d1 d4 (fma.f64 d2 d1 (neg.f64 (*.f64 d1 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (-.f64 d4 d1) (-.f64 d2 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) (+.f64 d1 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(fma.f64 d1 d4 (fma.f64 d2 d1 (neg.f64 (*.f64 d1 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (-.f64 d4 d1) (-.f64 d2 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) (+.f64 d1 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 (-.f64 d4 d1))))
(fma.f64 d1 d4 (fma.f64 d2 d1 (neg.f64 (*.f64 d1 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (-.f64 d4 d1) (-.f64 d2 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) (+.f64 d1 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(fma.f64 d1 d4 (fma.f64 d2 d1 (neg.f64 (*.f64 d1 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (-.f64 d4 d1) (-.f64 d2 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) (+.f64 d1 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(fma.f64 d1 d4 (fma.f64 d2 d1 (neg.f64 (*.f64 d1 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (-.f64 d4 d1) (-.f64 d2 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) (+.f64 d1 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 (-.f64 d4 d1))))
(fma.f64 d1 d4 (fma.f64 d2 d1 (neg.f64 (*.f64 d1 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (-.f64 d4 d1) (-.f64 d2 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) (+.f64 d1 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(fma.f64 d1 d4 (fma.f64 d2 d1 (neg.f64 (*.f64 d1 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (-.f64 d4 d1) (-.f64 d2 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) (+.f64 d1 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(fma.f64 d1 d4 (fma.f64 d2 d1 (neg.f64 (*.f64 d1 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (-.f64 d4 d1) (-.f64 d2 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) (+.f64 d1 d3)))
(*.f64 d1 (-.f64 d4 (+.f64 d1 d3)))
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
(fma.f64 d1 d4 (fma.f64 d2 d1 (neg.f64 (*.f64 d1 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (-.f64 d4 d1) (-.f64 d2 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) (+.f64 d1 d3)))
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
(fma.f64 d1 d4 (fma.f64 d2 d1 (neg.f64 (*.f64 d1 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (-.f64 d4 d1) (-.f64 d2 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) (+.f64 d1 d3)))
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
(fma.f64 d1 d4 (fma.f64 d2 d1 (neg.f64 (*.f64 d1 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (-.f64 d4 d1) (-.f64 d2 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) (+.f64 d1 d3)))
(*.f64 d2 d1)
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
(fma.f64 d1 d4 (fma.f64 d2 d1 (neg.f64 (*.f64 d1 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (-.f64 d4 d1) (-.f64 d2 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) (+.f64 d1 d3)))
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
(fma.f64 d1 d4 (fma.f64 d2 d1 (neg.f64 (*.f64 d1 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (-.f64 d4 d1) (-.f64 d2 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) (+.f64 d1 d3)))
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
(fma.f64 d1 d4 (fma.f64 d2 d1 (neg.f64 (*.f64 d1 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (-.f64 d4 d1) (-.f64 d2 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) (+.f64 d1 d3)))
(*.f64 d2 d1)
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
(fma.f64 d1 d4 (fma.f64 d2 d1 (neg.f64 (*.f64 d1 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (-.f64 d4 d1) (-.f64 d2 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) (+.f64 d1 d3)))
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
(fma.f64 d1 d4 (fma.f64 d2 d1 (neg.f64 (*.f64 d1 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (-.f64 d4 d1) (-.f64 d2 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) (+.f64 d1 d3)))
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
(fma.f64 d1 d4 (fma.f64 d2 d1 (neg.f64 (*.f64 d1 (+.f64 d1 d3)))))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (-.f64 d4 d1) (-.f64 d2 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) (+.f64 d1 d3)))

localize4.0ms (0%)

Compiler

Compiled 9 to 5 computations (44.4% saved)

localize5.0ms (0.1%)

Compiler

Compiled 11 to 6 computations (45.5% saved)

localize38.0ms (0.5%)

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)

series4.0ms (0%)

Counts
1 → 36
Calls

9 calls:

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

rewrite58.0ms (0.7%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0710
116110
2249410
Stop Event
node limit
Counts
1 → 32
Calls
Call 1
Inputs
(*.f64 d1 (-.f64 d4 (+.f64 d1 d3)))
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 (-.f64 (-.f64 d4 d1) d3)) d1)) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (-.f64 (-.f64 d4 d1) d3)) d1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (-.f64 (-.f64 d4 d1) d3)) d1))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (-.f64 (-.f64 d4 d1) d3)) d1))))))) (#(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 d4 d4 (*.f64 (+.f64 d1 d3) (+.f64 (+.f64 d4 d1) d3))))))) (#(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 d4 d4 (*.f64 (+.f64 d1 d3) (+.f64 (+.f64 d4 d1) d3))))))) (#(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 (pow.f64 (*.f64 d1 (-.f64 (-.f64 d4 d1) d3)) 3) 1/3)))) (#(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 (exp.f64 1) (log.f64 (*.f64 d1 (-.f64 (-.f64 d4 d1) d3))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 d1 (-.f64 (-.f64 d4 d1) d3)))) 2)) (cbrt.f64 (log.f64 (*.f64 d1 (-.f64 (-.f64 d4 d1) d3)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 d1 (-.f64 (-.f64 d4 d1) d3))))) (sqrt.f64 (log.f64 (*.f64 d1 (-.f64 (-.f64 d4 d1) d3)))))))) (#(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 (-.f64 (-.f64 d4 d1) d3)) d1))))) (#(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 exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 d1 (-.f64 (-.f64 d4 d1) d3)))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 d1 (-.f64 (-.f64 d4 d1) d3)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 d1 (-.f64 (-.f64 d4 d1) d3)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 d1 (-.f64 (-.f64 d4 d1) d3))) 1) 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))))))

simplify67.0ms (0.8%)

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

Useful iterations: 2 (0.0ms)

IterNodesCost
021433
152406
2113325
3278325
4886325
52919325
66553325
Stop Event
node limit
Counts
68 → 46
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)))
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))
(fma.f64 (-.f64 d4 d3) d1 (*.f64 d1 (neg.f64 d1)))
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
(*.f64 d1 (-.f64 (-.f64 d4 d3) d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d4 d3) d1))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 (-.f64 d4 d3) d1))
(fma.f64 (-.f64 d4 d3) d1 (*.f64 d1 (neg.f64 d1)))
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
(*.f64 d1 (-.f64 (-.f64 d4 d3) d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d4 d3) d1))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 (-.f64 d4 d3) d1))
(fma.f64 (-.f64 d4 d3) d1 (*.f64 d1 (neg.f64 d1)))
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
(*.f64 d1 (-.f64 (-.f64 d4 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))
(fma.f64 (-.f64 d4 d3) d1 (*.f64 d1 (neg.f64 d1)))
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
(*.f64 d1 (-.f64 (-.f64 d4 d3) d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d4 d3) d1))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 (-.f64 d4 d3) d1))
(fma.f64 (-.f64 d4 d3) d1 (*.f64 d1 (neg.f64 d1)))
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
(*.f64 d1 (-.f64 (-.f64 d4 d3) d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d4 d3) d1))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 (-.f64 d4 d3) d1))
(fma.f64 (-.f64 d4 d3) d1 (*.f64 d1 (neg.f64 d1)))
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
(*.f64 d1 (-.f64 (-.f64 d4 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))
(fma.f64 (-.f64 d4 d3) d1 (*.f64 d1 (neg.f64 d1)))
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
(*.f64 d1 (-.f64 (-.f64 d4 d3) d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d4 d3) d1))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 (-.f64 d4 d3) d1))
(fma.f64 (-.f64 d4 d3) d1 (*.f64 d1 (neg.f64 d1)))
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
(*.f64 d1 (-.f64 (-.f64 d4 d3) d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 (-.f64 d4 d3) d1))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 (-.f64 d4 d3) d1))
(fma.f64 (-.f64 d4 d3) d1 (*.f64 d1 (neg.f64 d1)))
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
(*.f64 d1 (-.f64 (-.f64 d4 d3) d1))
(*.f64 -1 (*.f64 (+.f64 d1 d3) d1))
(neg.f64 (*.f64 d1 (+.f64 d3 d1)))
(*.f64 d1 (neg.f64 (+.f64 d3 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))
(fma.f64 (-.f64 d4 d3) d1 (*.f64 d1 (neg.f64 d1)))
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
(*.f64 d1 (-.f64 (-.f64 d4 d3) d1))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 (-.f64 d4 d3) d1))
(fma.f64 (-.f64 d4 d3) d1 (*.f64 d1 (neg.f64 d1)))
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
(*.f64 d1 (-.f64 (-.f64 d4 d3) d1))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 (-.f64 d4 d3) d1))
(fma.f64 (-.f64 d4 d3) d1 (*.f64 d1 (neg.f64 d1)))
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
(*.f64 d1 (-.f64 (-.f64 d4 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))
(fma.f64 (-.f64 d4 d3) d1 (*.f64 d1 (neg.f64 d1)))
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
(*.f64 d1 (-.f64 (-.f64 d4 d3) d1))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 (-.f64 d4 d3) d1))
(fma.f64 (-.f64 d4 d3) d1 (*.f64 d1 (neg.f64 d1)))
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
(*.f64 d1 (-.f64 (-.f64 d4 d3) d1))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 (-.f64 d4 d3) d1))
(fma.f64 (-.f64 d4 d3) d1 (*.f64 d1 (neg.f64 d1)))
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
(*.f64 d1 (-.f64 (-.f64 d4 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))
(fma.f64 (-.f64 d4 d3) d1 (*.f64 d1 (neg.f64 d1)))
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
(*.f64 d1 (-.f64 (-.f64 d4 d3) d1))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 (-.f64 d4 d3) d1))
(fma.f64 (-.f64 d4 d3) d1 (*.f64 d1 (neg.f64 d1)))
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
(*.f64 d1 (-.f64 (-.f64 d4 d3) d1))
(+.f64 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 (-.f64 d4 d3) d1))
(fma.f64 (-.f64 d4 d3) d1 (*.f64 d1 (neg.f64 d1)))
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
(*.f64 d1 (-.f64 (-.f64 d4 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))
(fma.f64 (-.f64 d4 d3) d1 (*.f64 d1 (neg.f64 d1)))
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
(*.f64 d1 (-.f64 (-.f64 d4 d3) d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 d4 d1)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 (-.f64 d4 d3) d1))
(fma.f64 (-.f64 d4 d3) d1 (*.f64 d1 (neg.f64 d1)))
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
(*.f64 d1 (-.f64 (-.f64 d4 d3) d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 d4 d1)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 (-.f64 d4 d3) d1))
(fma.f64 (-.f64 d4 d3) d1 (*.f64 d1 (neg.f64 d1)))
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
(*.f64 d1 (-.f64 (-.f64 d4 d3) d1))
(*.f64 -1 (*.f64 d1 d3))
(neg.f64 (*.f64 d3 d1))
(*.f64 d3 (neg.f64 d1))
(*.f64 d1 (neg.f64 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 d4 d1)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 (-.f64 d4 d3) d1))
(fma.f64 (-.f64 d4 d3) d1 (*.f64 d1 (neg.f64 d1)))
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
(*.f64 d1 (-.f64 (-.f64 d4 d3) d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 d4 d1)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 (-.f64 d4 d3) d1))
(fma.f64 (-.f64 d4 d3) d1 (*.f64 d1 (neg.f64 d1)))
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
(*.f64 d1 (-.f64 (-.f64 d4 d3) d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 d4 d1)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 (-.f64 d4 d3) d1))
(fma.f64 (-.f64 d4 d3) d1 (*.f64 d1 (neg.f64 d1)))
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
(*.f64 d1 (-.f64 (-.f64 d4 d3) d1))
(*.f64 -1 (*.f64 d1 d3))
(neg.f64 (*.f64 d3 d1))
(*.f64 d3 (neg.f64 d1))
(*.f64 d1 (neg.f64 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 d4 d1)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 (-.f64 d4 d3) d1))
(fma.f64 (-.f64 d4 d3) d1 (*.f64 d1 (neg.f64 d1)))
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
(*.f64 d1 (-.f64 (-.f64 d4 d3) d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 d4 d1)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 (-.f64 d4 d3) d1))
(fma.f64 (-.f64 d4 d3) d1 (*.f64 d1 (neg.f64 d1)))
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
(*.f64 d1 (-.f64 (-.f64 d4 d3) d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 (-.f64 d4 d1)))
(fma.f64 -1 (*.f64 d1 d1) (*.f64 (-.f64 d4 d3) d1))
(fma.f64 (-.f64 d4 d3) d1 (*.f64 d1 (neg.f64 d1)))
(*.f64 d1 (-.f64 d4 (+.f64 d3 d1)))
(*.f64 d1 (-.f64 (-.f64 d4 d3) d1))

localize10.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 34 to 9 computations (73.5% saved)

series5.0ms (0.1%)

Counts
2 → 63
Calls

18 calls:

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

rewrite124.0ms (1.6%)

Algorithm
batch-egg-rewrite
Rules
703×fma-def_binary64
538×log-prod_binary64
425×pow-prod-down_binary64
324×fma-neg_binary64
280×pow2_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify146.0ms (1.8%)

Algorithm
egg-herbie
Rules
1684×fma-neg_binary64
513×fma-def_binary64
370×distribute-rgt-neg-in_binary64
268×unswap-sqr_binary64
262×sub-neg_binary64
Iterations

Useful iterations: 9 (0.0ms)

IterNodesCost
025577
177490
2194490
3453490
41658490
53732490
64657490
75515490
86088490
96636486
107603486
Stop Event
node limit
Counts
295 → 248
Calls
Call 1
Inputs
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 -1 (*.f64 d1 (+.f64 (*.f64 -1 d4) (*.f64 -1 d2))))
(*.f64 -1 (*.f64 d1 (+.f64 (*.f64 -1 d4) (*.f64 -1 d2))))
(*.f64 -1 (*.f64 d1 (+.f64 (*.f64 -1 d4) (*.f64 -1 d2))))
(*.f64 -1 (*.f64 d1 (+.f64 (*.f64 -1 d4) (*.f64 -1 d2))))
(*.f64 d2 d1)
(*.f64 d1 d4)
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(*.f64 d1 d4)
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(*.f64 d1 d4)
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(*.f64 d2 d1)
(*.f64 d2 d1)
(*.f64 d1 (+.f64 d2 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 d4)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 d4)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 d4)))
(*.f64 -1 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 d4)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 d4)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 d4)))
(*.f64 -1 (pow.f64 d1 2))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 (+.f64 (*.f64 -1 d4) (*.f64 -1 d2)))))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 (+.f64 (*.f64 -1 d4) (*.f64 -1 d2)))))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 (+.f64 (*.f64 -1 d4) (*.f64 -1 d2)))))
(-.f64 (*.f64 d2 d1) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (pow.f64 d1 2))
(*.f64 d1 d4)
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (pow.f64 d1 2))
(*.f64 d1 d4)
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (pow.f64 d1 2))
(-.f64 (*.f64 d1 d4) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (pow.f64 d1 2))
(*.f64 d2 d1)
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (pow.f64 d1 2))
(*.f64 d2 d1)
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (pow.f64 d1 2))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (pow.f64 d1 2))
Outputs
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 -1 (*.f64 d1 (+.f64 (*.f64 -1 d4) (*.f64 -1 d2))))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 -1 (*.f64 d1 (+.f64 (*.f64 -1 d4) (*.f64 -1 d2))))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 -1 (*.f64 d1 (+.f64 (*.f64 -1 d4) (*.f64 -1 d2))))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 -1 (*.f64 d1 (+.f64 (*.f64 -1 d4) (*.f64 -1 d2))))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d2 d1)
(*.f64 d1 d2)
(*.f64 d1 d4)
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(*.f64 d1 (+.f64 d2 d4))
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(*.f64 d1 (+.f64 d2 d4))
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 d4)
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(*.f64 d1 (+.f64 d2 d4))
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(*.f64 d1 (+.f64 d2 d4))
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d1 d4)
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(*.f64 d1 (+.f64 d2 d4))
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(*.f64 d1 (+.f64 d2 d4))
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(*.f64 d1 (+.f64 d2 d4))
(*.f64 d2 d1)
(*.f64 d1 d2)
(*.f64 d2 d1)
(*.f64 d1 d2)
(*.f64 d1 (+.f64 d2 d4))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 d4)))
(-.f64 (*.f64 d1 (+.f64 d2 d4)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d1))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 d1 (+.f64 d2 d4)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 d4)))
(-.f64 (*.f64 d1 (+.f64 d2 d4)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d1))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 d1 (+.f64 d2 d4)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 d4)))
(-.f64 (*.f64 d1 (+.f64 d2 d4)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d1))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 d1 (+.f64 d2 d4)))
(*.f64 -1 (pow.f64 d1 2))
(neg.f64 (*.f64 d1 d1))
(*.f64 d1 (neg.f64 d1))
(*.f64 d1 d1)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 d4)))
(-.f64 (*.f64 d1 (+.f64 d2 d4)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d1))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 d1 (+.f64 d2 d4)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 d4)))
(-.f64 (*.f64 d1 (+.f64 d2 d4)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d1))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 d1 (+.f64 d2 d4)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (+.f64 d2 d4)))
(-.f64 (*.f64 d1 (+.f64 d2 d4)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d1))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 d1 (+.f64 d2 d4)))
(*.f64 -1 (pow.f64 d1 2))
(neg.f64 (*.f64 d1 d1))
(*.f64 d1 (neg.f64 d1))
(*.f64 d1 d1)
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 (+.f64 (*.f64 -1 d4) (*.f64 -1 d2)))))
(-.f64 (*.f64 d1 (+.f64 d2 d4)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d1))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 d1 (+.f64 d2 d4)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 (+.f64 (*.f64 -1 d4) (*.f64 -1 d2)))))
(-.f64 (*.f64 d1 (+.f64 d2 d4)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d1))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 d1 (+.f64 d2 d4)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 (+.f64 (*.f64 -1 d4) (*.f64 -1 d2)))))
(-.f64 (*.f64 d1 (+.f64 d2 d4)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d1))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 d1 (+.f64 d2 d4)))
(-.f64 (*.f64 d2 d1) (pow.f64 d1 2))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d1))
(*.f64 d1 (-.f64 d2 d1))
(*.f64 d1 (+.f64 d1 d2))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (pow.f64 d1 2))
(-.f64 (*.f64 d1 (+.f64 d2 d4)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d1))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 d1 (+.f64 d2 d4)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (pow.f64 d1 2))
(-.f64 (*.f64 d1 (+.f64 d2 d4)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d1))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 d1 (+.f64 d2 d4)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (pow.f64 d1 2))
(-.f64 (*.f64 d1 (+.f64 d2 d4)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d1))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 d1 (+.f64 d2 d4)))
(*.f64 d1 d4)
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (pow.f64 d1 2))
(-.f64 (*.f64 d1 (+.f64 d2 d4)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d1))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 d1 (+.f64 d2 d4)))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (pow.f64 d1 2))
(-.f64 (*.f64 d1 (+.f64 d2 d4)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d1))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 d1 (+.f64 d2 d4)))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (pow.f64 d1 2))
(-.f64 (*.f64 d1 (+.f64 d2 d4)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d1))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 d1 (+.f64 d2 d4)))
(*.f64 d1 d4)
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (pow.f64 d1 2))
(-.f64 (*.f64 d1 (+.f64 d2 d4)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d1))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 d1 (+.f64 d2 d4)))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (pow.f64 d1 2))
(-.f64 (*.f64 d1 (+.f64 d2 d4)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d1))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 d1 (+.f64 d2 d4)))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (pow.f64 d1 2))
(-.f64 (*.f64 d1 (+.f64 d2 d4)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d1))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 d1 (+.f64 d2 d4)))
(-.f64 (*.f64 d1 d4) (pow.f64 d1 2))
(-.f64 (*.f64 d1 d4) (*.f64 d1 d1))
(*.f64 d1 (-.f64 d4 d1))
(*.f64 d1 (+.f64 d1 d4))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (pow.f64 d1 2))
(-.f64 (*.f64 d1 (+.f64 d2 d4)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d1))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 d1 (+.f64 d2 d4)))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (pow.f64 d1 2))
(-.f64 (*.f64 d1 (+.f64 d2 d4)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d1))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 d1 (+.f64 d2 d4)))
(-.f64 (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)) (pow.f64 d1 2))
(-.f64 (*.f64 d1 (+.f64 d2 d4)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d1))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 d1 (+.f64 d2 d4)))
(*.f64 d2 d1)
(*.f64 d1 d2)
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (pow.f64 d1 2))
(-.f64 (*.f64 d1 (+.f64 d2 d4)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d1))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 d1 (+.f64 d2 d4)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (pow.f64 d1 2))
(-.f64 (*.f64 d1 (+.f64 d2 d4)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d1))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 d1 (+.f64 d2 d4)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (pow.f64 d1 2))
(-.f64 (*.f64 d1 (+.f64 d2 d4)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d1))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 d1 (+.f64 d2 d4)))
(*.f64 d2 d1)
(*.f64 d1 d2)
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (pow.f64 d1 2))
(-.f64 (*.f64 d1 (+.f64 d2 d4)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d1))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 d1 (+.f64 d2 d4)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (pow.f64 d1 2))
(-.f64 (*.f64 d1 (+.f64 d2 d4)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d1))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 d1 (+.f64 d2 d4)))
(-.f64 (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)) (pow.f64 d1 2))
(-.f64 (*.f64 d1 (+.f64 d2 d4)) (*.f64 d1 d1))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d1))
(*.f64 d1 (+.f64 d2 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 d1 (+.f64 d2 d4)))

eval76.0ms (0.9%)

Compiler

Compiled 5366 to 1400 computations (73.9% saved)

prune121.0ms (1.5%)

Pruning

13 alts after pruning (10 fresh and 3 done)

PrunedKeptTotal
New3418349
Fresh325
Picked101
Done134
Total34613359
Error
0b
Counts
359 → 13
Alt Table
Click to see full alt table
StatusErrorProgram
53.2b
(*.f64 d1 (neg.f64 d1))
35.2b
(*.f64 d1 (-.f64 (neg.f64 d3) d1))
18.6b
(fma.f64 d4 d1 (*.f64 d1 (-.f64 d2 d1)))
7.6b
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
34.7b
(*.f64 d1 (-.f64 d4 d1))
42.8b
(*.f64 d1 (neg.f64 d3))
42.2b
(*.f64 d1 d4)
60.6b
(*.f64 d1 d1)
18.6b
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1)))
0.0b
(fma.f64 (-.f64 d4 (+.f64 d1 d3)) d1 (*.f64 d1 d2))
0.0b
(fma.f64 d2 d1 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))))
23.8b
(*.f64 (-.f64 d4 d3) d1)
45.1b
(*.f64 d2 d1)
Compiler

Compiled 229 to 149 computations (34.9% saved)

localize26.0ms (0.3%)

Local error

Found 2 expressions with local error:

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

Compiled 33 to 8 computations (75.8% saved)

series7.0ms (0.1%)

Counts
1 → 48
Calls

12 calls:

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

rewrite82.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
512×log-prod_binary64
445×fma-def_binary64
397×pow-prod-down_binary64
287×pow2_binary64
218×fma-neg_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify102.0ms (1.3%)

Algorithm
egg-herbie
Rules
563×unsub-neg_binary64
521×fma-def_binary64
366×sub-neg_binary64
278×unswap-sqr_binary64
260×fma-neg_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
038588
1115550
2337548
31021548
44105548
56070548
66834548
77917548
Stop Event
node limit
Counts
82 → 55
Calls
Call 1
Inputs
(*.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 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))))
Outputs
(*.f64 d1 (-.f64 d4 (+.f64 d1 d3)))
(*.f64 d1 (-.f64 (-.f64 d4 d1) d3))
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
(fma.f64 d1 (-.f64 d4 (+.f64 d1 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 (-.f64 d4 (+.f64 d1 d3)) d2))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
(fma.f64 d1 (-.f64 d4 (+.f64 d1 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 (-.f64 d4 (+.f64 d1 d3)) d2))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
(fma.f64 d1 (-.f64 d4 (+.f64 d1 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 (-.f64 d4 (+.f64 d1 d3)) d2))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
(fma.f64 d1 (-.f64 d4 (+.f64 d1 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 (-.f64 d4 (+.f64 d1 d3)) d2))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
(fma.f64 d1 (-.f64 d4 (+.f64 d1 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 (-.f64 d4 (+.f64 d1 d3)) d2))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
(fma.f64 d1 (-.f64 d4 (+.f64 d1 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 (-.f64 d4 (+.f64 d1 d3)) d2))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
(fma.f64 d1 (-.f64 d4 (+.f64 d1 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 (-.f64 d4 (+.f64 d1 d3)) d2))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
(fma.f64 d1 (-.f64 d4 (+.f64 d1 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 (-.f64 d4 (+.f64 d1 d3)) d2))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(+.f64 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (*.f64 d2 d1))
(fma.f64 d1 (-.f64 d4 (+.f64 d1 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 (-.f64 d4 (+.f64 d1 d3)) d2))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(*.f64 d1 (-.f64 (+.f64 d4 d2) d3))
(*.f64 d1 (+.f64 d4 (-.f64 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 d1 (-.f64 d4 (+.f64 d1 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 (-.f64 d4 (+.f64 d1 d3)) d2))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(fma.f64 d1 (-.f64 d4 (+.f64 d1 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 (-.f64 d4 (+.f64 d1 d3)) d2))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(fma.f64 d1 (-.f64 d4 (+.f64 d1 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 (-.f64 d4 (+.f64 d1 d3)) d2))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 -1 (pow.f64 d1 2))
(neg.f64 (*.f64 d1 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(fma.f64 d1 (-.f64 d4 (+.f64 d1 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 (-.f64 d4 (+.f64 d1 d3)) d2))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(fma.f64 d1 (-.f64 d4 (+.f64 d1 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 (-.f64 d4 (+.f64 d1 d3)) d2))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)))
(fma.f64 d1 (-.f64 d4 (+.f64 d1 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 (-.f64 d4 (+.f64 d1 d3)) d2))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 -1 (pow.f64 d1 2))
(neg.f64 (*.f64 d1 d1))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 (+.f64 (*.f64 -1 (-.f64 d4 d3)) (*.f64 -1 d2)))))
(fma.f64 d1 (-.f64 d4 (+.f64 d1 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 (-.f64 d4 (+.f64 d1 d3)) d2))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 (+.f64 (*.f64 -1 (-.f64 d4 d3)) (*.f64 -1 d2)))))
(fma.f64 d1 (-.f64 d4 (+.f64 d1 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 (-.f64 d4 (+.f64 d1 d3)) d2))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(+.f64 (*.f64 -1 (pow.f64 d1 2)) (*.f64 -1 (*.f64 d1 (+.f64 (*.f64 -1 (-.f64 d4 d3)) (*.f64 -1 d2)))))
(fma.f64 d1 (-.f64 d4 (+.f64 d1 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 (-.f64 d4 (+.f64 d1 d3)) d2))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1)))
(fma.f64 d2 d1 (neg.f64 (*.f64 d1 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 d2 (neg.f64 (+.f64 d1 d3))))
(*.f64 d1 (-.f64 d2 (+.f64 d1 d3)))
(*.f64 d1 (-.f64 (-.f64 d2 d1) d3))
(+.f64 (*.f64 d1 d4) (+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1))))
(fma.f64 d1 (-.f64 d4 (+.f64 d1 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 (-.f64 d4 (+.f64 d1 d3)) d2))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(+.f64 (*.f64 d1 d4) (+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1))))
(fma.f64 d1 (-.f64 d4 (+.f64 d1 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 (-.f64 d4 (+.f64 d1 d3)) d2))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(+.f64 (*.f64 d1 d4) (+.f64 (*.f64 d2 d1) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1))))
(fma.f64 d1 (-.f64 d4 (+.f64 d1 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 (-.f64 d4 (+.f64 d1 d3)) d2))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 d4)
(+.f64 (*.f64 d2 d1) (+.f64 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1))))
(fma.f64 d1 (-.f64 d4 (+.f64 d1 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 (-.f64 d4 (+.f64 d1 d3)) d2))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(+.f64 (*.f64 d2 d1) (+.f64 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1))))
(fma.f64 d1 (-.f64 d4 (+.f64 d1 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 (-.f64 d4 (+.f64 d1 d3)) d2))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(+.f64 (*.f64 d2 d1) (+.f64 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1))))
(fma.f64 d1 (-.f64 d4 (+.f64 d1 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 (-.f64 d4 (+.f64 d1 d3)) d2))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(*.f64 d1 d4)
(+.f64 (*.f64 d2 d1) (+.f64 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1))))
(fma.f64 d1 (-.f64 d4 (+.f64 d1 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 (-.f64 d4 (+.f64 d1 d3)) d2))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(+.f64 (*.f64 d2 d1) (+.f64 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1))))
(fma.f64 d1 (-.f64 d4 (+.f64 d1 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 (-.f64 d4 (+.f64 d1 d3)) d2))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(+.f64 (*.f64 d2 d1) (+.f64 (*.f64 d1 d4) (*.f64 -1 (*.f64 (+.f64 d1 d3) d1))))
(fma.f64 d1 (-.f64 d4 (+.f64 d1 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 (-.f64 d4 (+.f64 d1 d3)) d2))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 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 d2 (-.f64 d4 d1)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d1)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(fma.f64 d1 (-.f64 d4 (+.f64 d1 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 (-.f64 d4 (+.f64 d1 d3)) d2))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(fma.f64 d1 (-.f64 d4 (+.f64 d1 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 (-.f64 d4 (+.f64 d1 d3)) d2))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(fma.f64 d1 (-.f64 d4 (+.f64 d1 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 (-.f64 d4 (+.f64 d1 d3)) d2))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) 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 (-.f64 d4 d1))))
(fma.f64 d1 (-.f64 d4 (+.f64 d1 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 (-.f64 d4 (+.f64 d1 d3)) d2))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(fma.f64 d1 (-.f64 d4 (+.f64 d1 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 (-.f64 d4 (+.f64 d1 d3)) d2))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(fma.f64 d1 (-.f64 d4 (+.f64 d1 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 (-.f64 d4 (+.f64 d1 d3)) d2))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) 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 (-.f64 d4 d1))))
(fma.f64 d1 (-.f64 d4 (+.f64 d1 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 (-.f64 d4 (+.f64 d1 d3)) d2))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(fma.f64 d1 (-.f64 d4 (+.f64 d1 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 (-.f64 d4 (+.f64 d1 d3)) d2))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))))
(fma.f64 d1 (-.f64 d4 (+.f64 d1 d3)) (*.f64 d1 d2))
(*.f64 d1 (+.f64 (-.f64 d4 (+.f64 d1 d3)) d2))
(*.f64 d1 (+.f64 d4 (-.f64 (-.f64 d2 d1) d3)))

localize4.0ms (0%)

Compiler

Compiled 8 to 5 computations (37.5% saved)

localize6.0ms (0.1%)

Compiler

Compiled 12 to 6 computations (50% saved)

localize6.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 15 to 6 computations (60% saved)

series9.0ms (0.1%)

Counts
1 → 24
Calls

9 calls:

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

rewrite50.0ms (0.6%)

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

Useful iterations: 0 (0.0ms)

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

simplify28.0ms (0.3%)

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

Useful iterations: 2 (0.0ms)

IterNodesCost
09228
117210
235156
358156
486156
5138156
6254156
7410156
8576156
9730156
10744156
Stop Event
saturated
Counts
43 → 24
Calls
Call 1
Inputs
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(*.f64 d1 d4)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(*.f64 d1 d4)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(*.f64 d1 d4)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
Outputs
(*.f64 -1 (*.f64 d1 d3))
(neg.f64 (*.f64 d1 d3))
(*.f64 d1 (neg.f64 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(fma.f64 -1 (*.f64 d1 d3) (*.f64 d1 d4))
(-.f64 (*.f64 d1 d4) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d4 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(fma.f64 -1 (*.f64 d1 d3) (*.f64 d1 d4))
(-.f64 (*.f64 d1 d4) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d4 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(fma.f64 -1 (*.f64 d1 d3) (*.f64 d1 d4))
(-.f64 (*.f64 d1 d4) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d4 d3))
(*.f64 d1 d4)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(fma.f64 -1 (*.f64 d1 d3) (*.f64 d1 d4))
(-.f64 (*.f64 d1 d4) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d4 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(fma.f64 -1 (*.f64 d1 d3) (*.f64 d1 d4))
(-.f64 (*.f64 d1 d4) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d4 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(fma.f64 -1 (*.f64 d1 d3) (*.f64 d1 d4))
(-.f64 (*.f64 d1 d4) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d4 d3))
(*.f64 d1 d4)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(fma.f64 -1 (*.f64 d1 d3) (*.f64 d1 d4))
(-.f64 (*.f64 d1 d4) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d4 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(fma.f64 -1 (*.f64 d1 d3) (*.f64 d1 d4))
(-.f64 (*.f64 d1 d4) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d4 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(fma.f64 -1 (*.f64 d1 d3) (*.f64 d1 d4))
(-.f64 (*.f64 d1 d4) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d4 d3))
(*.f64 d1 d4)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(fma.f64 -1 (*.f64 d1 d3) (*.f64 d1 d4))
(-.f64 (*.f64 d1 d4) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d4 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(fma.f64 -1 (*.f64 d1 d3) (*.f64 d1 d4))
(-.f64 (*.f64 d1 d4) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d4 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(fma.f64 -1 (*.f64 d1 d3) (*.f64 d1 d4))
(-.f64 (*.f64 d1 d4) (*.f64 d1 d3))
(*.f64 d1 (-.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 d1 d4))
(fma.f64 -1 (*.f64 d1 d3) (*.f64 d1 d4))
(-.f64 (*.f64 d1 d4) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d4 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(fma.f64 -1 (*.f64 d1 d3) (*.f64 d1 d4))
(-.f64 (*.f64 d1 d4) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d4 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(fma.f64 -1 (*.f64 d1 d3) (*.f64 d1 d4))
(-.f64 (*.f64 d1 d4) (*.f64 d1 d3))
(*.f64 d1 (-.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 d1 d4))
(fma.f64 -1 (*.f64 d1 d3) (*.f64 d1 d4))
(-.f64 (*.f64 d1 d4) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d4 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(fma.f64 -1 (*.f64 d1 d3) (*.f64 d1 d4))
(-.f64 (*.f64 d1 d4) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d4 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d1 d4))
(fma.f64 -1 (*.f64 d1 d3) (*.f64 d1 d4))
(-.f64 (*.f64 d1 d4) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d4 d3))

localize10.0ms (0.1%)

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)

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

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

simplify61.0ms (0.8%)

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

eval32.0ms (0.4%)

Compiler

Compiled 2084 to 589 computations (71.7% saved)

prune37.0ms (0.5%)

Pruning

15 alts after pruning (9 fresh and 6 done)

PrunedKeptTotal
New1715176
Fresh145
Picked011
Done257
Total17415189
Error
0b
Counts
189 → 15
Alt Table
Click to see full alt table
StatusErrorProgram
42.2b
(*.f64 d1 d4)
26.0b
(*.f64 d1 (+.f64 d4 d2))
53.2b
(*.f64 d1 (neg.f64 d1))
35.2b
(*.f64 d1 (-.f64 (neg.f64 d3) d1))
7.6b
(+.f64 (*.f64 d2 d1) (*.f64 (-.f64 d4 d3) d1))
46.6b
(/.f64 (*.f64 (-.f64 (*.f64 d4 d4) (*.f64 d3 d3)) d1) (+.f64 d4 d3))
18.6b
(fma.f64 d4 d1 (*.f64 d1 (-.f64 d2 d1)))
7.6b
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
34.7b
(*.f64 d1 (-.f64 d4 d1))
42.8b
(*.f64 d1 (neg.f64 d3))
60.6b
(*.f64 d1 d1)
27.3b
(fma.f64 d2 d1 (*.f64 d1 (neg.f64 d3)))
27.3b
(*.f64 (-.f64 d2 d3) d1)
23.8b
(*.f64 (-.f64 d4 d3) d1)
45.1b
(*.f64 d2 d1)
Compiler

Compiled 244 to 159 computations (34.8% saved)

localize9.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 28 to 8 computations (71.4% saved)

series4.0ms (0%)

Counts
1 → 48
Calls

12 calls:

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

rewrite68.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
542×log-prod_binary64
509×fma-def_binary64
411×pow-prod-down_binary64
283×pow2_binary64
231×fma-neg_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify60.0ms (0.8%)

Algorithm
egg-herbie
Rules
421×fma-neg_binary64
370×fma-def_binary64
130×distribute-rgt-in_binary64
114×distribute-lft-in_binary64
89×unsub-neg_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
026483
170442
2188439
3508439
41381439
51963439
62198439
72210439
Stop Event
saturated
Counts
123 → 91
Calls
Call 1
Inputs
(*.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 d1) (*.f64 d1 (-.f64 d4 d3)))
(*.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 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 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 -1 (-.f64 d4 d3)) (*.f64 -1 d2))))
(*.f64 -1 (*.f64 d1 (+.f64 (*.f64 -1 (-.f64 d4 d3)) (*.f64 -1 d2))))
(*.f64 -1 (*.f64 d1 (+.f64 (*.f64 -1 (-.f64 d4 d3)) (*.f64 -1 d2))))
(*.f64 -1 (*.f64 d1 (+.f64 (*.f64 -1 (-.f64 d4 d3)) (*.f64 -1 d2))))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.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 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 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 (*.f64 d2 d1) (*.f64 d1 d4))
(+.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 -1 (*.f64 d1 d3))
(+.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 -1 (*.f64 d1 d3))
(+.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)))
Outputs
(*.f64 d1 (-.f64 d4 d3))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d3)))
(fma.f64 d2 d1 (*.f64 d1 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d3)))
(fma.f64 d2 d1 (*.f64 d1 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d3)))
(fma.f64 d2 d1 (*.f64 d1 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d3)))
(fma.f64 d2 d1 (*.f64 d1 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d3)))
(fma.f64 d2 d1 (*.f64 d1 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d3)))
(fma.f64 d2 d1 (*.f64 d1 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d3)))
(fma.f64 d2 d1 (*.f64 d1 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d3)))
(fma.f64 d2 d1 (*.f64 d1 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d3)))
(fma.f64 d2 d1 (*.f64 d1 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(fma.f64 d2 d1 (*.f64 d1 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(fma.f64 d2 d1 (*.f64 d1 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(fma.f64 d2 d1 (*.f64 d1 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(fma.f64 d2 d1 (*.f64 d1 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(fma.f64 d2 d1 (*.f64 d1 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(fma.f64 d2 d1 (*.f64 d1 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(fma.f64 d2 d1 (*.f64 d1 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
(fma.f64 d2 d1 (*.f64 d1 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 -1 (*.f64 d1 (+.f64 (*.f64 -1 (-.f64 d4 d3)) (*.f64 -1 d2))))
(fma.f64 d2 d1 (*.f64 d1 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 -1 (*.f64 d1 (+.f64 (*.f64 -1 (-.f64 d4 d3)) (*.f64 -1 d2))))
(fma.f64 d2 d1 (*.f64 d1 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 -1 (*.f64 d1 (+.f64 (*.f64 -1 (-.f64 d4 d3)) (*.f64 -1 d2))))
(fma.f64 d2 d1 (*.f64 d1 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 -1 (*.f64 d1 (+.f64 (*.f64 -1 (-.f64 d4 d3)) (*.f64 -1 d2))))
(fma.f64 d2 d1 (*.f64 d1 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d3) (*.f64 d1 d2))
(-.f64 (*.f64 d1 d2) (*.f64 d1 d3))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(fma.f64 d2 d1 (*.f64 d1 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(fma.f64 d2 d1 (*.f64 d1 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(fma.f64 d2 d1 (*.f64 d1 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 d4)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(fma.f64 d2 d1 (*.f64 d1 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(fma.f64 d2 d1 (*.f64 d1 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(fma.f64 d2 d1 (*.f64 d1 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(*.f64 d1 d4)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(fma.f64 d2 d1 (*.f64 d1 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(fma.f64 d2 d1 (*.f64 d1 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d2 d1) (*.f64 d1 d4)))
(fma.f64 d2 d1 (*.f64 d1 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
(fma.f64 d2 d1 (*.f64 d1 d4))
(*.f64 d1 (+.f64 d4 d2))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(fma.f64 d2 d1 (*.f64 d1 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(fma.f64 d2 d1 (*.f64 d1 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(fma.f64 d2 d1 (*.f64 d1 (-.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 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(fma.f64 d2 d1 (*.f64 d1 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(fma.f64 d2 d1 (*.f64 d1 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(fma.f64 d2 d1 (*.f64 d1 (-.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 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(fma.f64 d2 d1 (*.f64 d1 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(fma.f64 d2 d1 (*.f64 d1 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (+.f64 (*.f64 d1 d4) (*.f64 d2 d1)))
(fma.f64 d2 d1 (*.f64 d1 (-.f64 d4 d3)))
(*.f64 d1 (+.f64 d4 (-.f64 d2 d3)))

localize4.0ms (0%)

Compiler

Compiled 9 to 5 computations (44.4% saved)

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

series3.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

rewrite63.0ms (0.8%)

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

Useful iterations: 0 (0.0ms)

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

simplify109.0ms (1.4%)

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

Useful iterations: 9 (0.0ms)

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

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

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

simplify109.0ms (1.4%)

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

localize8.0ms (0.1%)

Local error

Found 1 expressions with local error:

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

Compiled 20 to 7 computations (65% saved)

series4.0ms (0%)

Counts
1 → 36
Calls

9 calls:

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

rewrite51.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
607×pow1_binary64
556×add-log-exp_binary64
555×log1p-expm1-u_binary64
555×expm1-log1p-u_binary64
543×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify25.0ms (0.3%)

Algorithm
egg-herbie
Rules
160×fma-def_binary64
110×fma-neg_binary64
31×unsub-neg_binary64
30×cancel-sign-sub-inv_binary64
26×associate-*r*_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
016360
140240
296240
3186240
4324240
5508240
6622240
7663240
Stop Event
saturated
Counts
59 → 31
Calls
Call 1
Inputs
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 (+.f64 d2 (*.f64 -1 d3)) d1)
(*.f64 (+.f64 d2 (*.f64 -1 d3)) d1)
(*.f64 (+.f64 d2 (*.f64 -1 d3)) d1)
(*.f64 (+.f64 d2 (*.f64 -1 d3)) d1)
(*.f64 (+.f64 d2 (*.f64 -1 d3)) d1)
(*.f64 (+.f64 d2 (*.f64 -1 d3)) d1)
(*.f64 (+.f64 d2 (*.f64 -1 d3)) d1)
(*.f64 (+.f64 d2 (*.f64 -1 d3)) d1)
(*.f64 -1 (*.f64 d1 (+.f64 d3 (*.f64 -1 d2))))
(*.f64 -1 (*.f64 d1 (+.f64 d3 (*.f64 -1 d2))))
(*.f64 -1 (*.f64 d1 (+.f64 d3 (*.f64 -1 d2))))
(*.f64 -1 (*.f64 d1 (+.f64 d3 (*.f64 -1 d2))))
(*.f64 d2 d1)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(*.f64 -1 (*.f64 d1 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
Outputs
(*.f64 -1 (*.f64 d1 d3))
(neg.f64 (*.f64 d1 d3))
(*.f64 d3 (neg.f64 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d3) (*.f64 d1 d2))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d3) (*.f64 d1 d2))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d3) (*.f64 d1 d2))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d3) (*.f64 d1 d2))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d3) (*.f64 d1 d2))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d3) (*.f64 d1 d2))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d3) (*.f64 d1 d2))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d3) (*.f64 d1 d2))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d3) (*.f64 d1 d2))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (+.f64 d2 (*.f64 -1 d3)) d1)
(fma.f64 -1 (*.f64 d1 d3) (*.f64 d1 d2))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (+.f64 d2 (*.f64 -1 d3)) d1)
(fma.f64 -1 (*.f64 d1 d3) (*.f64 d1 d2))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (+.f64 d2 (*.f64 -1 d3)) d1)
(fma.f64 -1 (*.f64 d1 d3) (*.f64 d1 d2))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (+.f64 d2 (*.f64 -1 d3)) d1)
(fma.f64 -1 (*.f64 d1 d3) (*.f64 d1 d2))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (+.f64 d2 (*.f64 -1 d3)) d1)
(fma.f64 -1 (*.f64 d1 d3) (*.f64 d1 d2))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (+.f64 d2 (*.f64 -1 d3)) d1)
(fma.f64 -1 (*.f64 d1 d3) (*.f64 d1 d2))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (+.f64 d2 (*.f64 -1 d3)) d1)
(fma.f64 -1 (*.f64 d1 d3) (*.f64 d1 d2))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 (+.f64 d2 (*.f64 -1 d3)) d1)
(fma.f64 -1 (*.f64 d1 d3) (*.f64 d1 d2))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 -1 (*.f64 d1 (+.f64 d3 (*.f64 -1 d2))))
(fma.f64 -1 (*.f64 d1 d3) (*.f64 d1 d2))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 -1 (*.f64 d1 (+.f64 d3 (*.f64 -1 d2))))
(fma.f64 -1 (*.f64 d1 d3) (*.f64 d1 d2))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 -1 (*.f64 d1 (+.f64 d3 (*.f64 -1 d2))))
(fma.f64 -1 (*.f64 d1 d3) (*.f64 d1 d2))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 -1 (*.f64 d1 (+.f64 d3 (*.f64 -1 d2))))
(fma.f64 -1 (*.f64 d1 d3) (*.f64 d1 d2))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 d2 d1)
(*.f64 d1 d2)
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d3) (*.f64 d1 d2))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d3) (*.f64 d1 d2))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d3) (*.f64 d1 d2))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 -1 (*.f64 d1 d3))
(neg.f64 (*.f64 d1 d3))
(*.f64 d3 (neg.f64 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d3) (*.f64 d1 d2))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d3) (*.f64 d1 d2))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d3) (*.f64 d1 d2))
(*.f64 d1 (-.f64 d2 d3))
(*.f64 -1 (*.f64 d1 d3))
(neg.f64 (*.f64 d1 d3))
(*.f64 d3 (neg.f64 d1))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d3) (*.f64 d1 d2))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d3) (*.f64 d1 d2))
(*.f64 d1 (-.f64 d2 d3))
(+.f64 (*.f64 -1 (*.f64 d1 d3)) (*.f64 d2 d1))
(fma.f64 -1 (*.f64 d1 d3) (*.f64 d1 d2))
(*.f64 d1 (-.f64 d2 d3))

eval33.0ms (0.4%)

Compiler

Compiled 2250 to 693 computations (69.2% saved)

prune39.0ms (0.5%)

Pruning

16 alts after pruning (6 fresh and 10 done)

PrunedKeptTotal
New1913194
Fresh134
Picked011
Done1910
Total19316209
Error
0b
Counts
209 → 16
Alt Table
Click to see full alt table
StatusErrorProgram
42.8b
(*.f64 d1 (neg.f64 d3))
26.0b
(*.f64 d1 (+.f64 d4 d2))
42.2b
(*.f64 d1 d4)
26.0b
(+.f64 (*.f64 d2 d1) (*.f64 d1 d4))
60.6b
(*.f64 d1 d3)
53.2b
(*.f64 d1 (neg.f64 d1))
35.2b
(*.f64 d1 (-.f64 (neg.f64 d3) d1))
18.6b
(fma.f64 d4 d1 (*.f64 d1 (-.f64 d2 d1)))
7.6b
(*.f64 d1 (-.f64 (+.f64 d2 d4) d3))
34.7b
(*.f64 d1 (-.f64 d4 d1))
60.6b
(*.f64 d1 d1)
27.3b
(fma.f64 d2 d1 (*.f64 d1 (neg.f64 d3)))
27.3b
(*.f64 (-.f64 d2 d3) d1)
23.8b
(*.f64 (-.f64 d4 d3) d1)
46.6b
(/.f64 (*.f64 (-.f64 (*.f64 d4 d4) (*.f64 d3 d3)) d1) (+.f64 d4 d3))
45.1b
(*.f64 d2 d1)
Compiler

Compiled 152 to 101 computations (33.6% saved)

regimes81.0ms (1%)

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

5 calls:

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

Compiled 234 to 81 computations (65.4% saved)

regimes76.0ms (1%)

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

5 calls:

15.0ms
d3
14.0ms
(-.f64 (+.f64 (-.f64 (*.f64 d1 d2) (*.f64 d1 d3)) (*.f64 d4 d1)) (*.f64 d1 d1))
14.0ms
d2
14.0ms
d1
13.0ms
d4
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 213 to 78 computations (63.4% saved)

regimes72.0ms (0.9%)

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

5 calls:

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

Compiled 203 to 77 computations (62.1% saved)

regimes136.0ms (1.7%)

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

4 calls:

51.0ms
d4
35.0ms
d3
27.0ms
d1
19.0ms
d2
Results
ErrorSegmentsBranch
2.3b3d1
2.8b2d2
1.3b3d3
3.4b6d4
Compiler

Compiled 121 to 47 computations (61.2% saved)

bsearch44.0ms (0.6%)

Algorithm
binary-search
Steps
TimeLeftRight
22.0ms
1.4738866627401537e-15
4.004691882606032e-14
22.0ms
-8.259760307991501e+25
-4009120750393109500.0
Compiler

Compiled 26 to 17 computations (34.6% saved)

regimes119.0ms (1.5%)

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

4 calls:

44.0ms
d4
28.0ms
d1
26.0ms
d3
19.0ms
d2
Results
ErrorSegmentsBranch
2.3b3d1
2.8b2d2
6.2b3d3
4.6b5d4
Compiler

Compiled 112 to 46 computations (58.9% saved)

bsearch178.0ms (2.2%)

Algorithm
binary-search
Steps
TimeLeftRight
86.0ms
7.568428627875275e+44
4.314375756499615e+47
93.0ms
-2.4841123504904695e+67
-2.4213506629931715e+55
Compiler

Compiled 458 to 305 computations (33.4% saved)

regimes138.0ms (1.7%)

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

4 calls:

53.0ms
d1
47.0ms
d3
18.0ms
d2
16.0ms
d4
Results
ErrorSegmentsBranch
10.7b6d1
5.8b2d2
9.2b5d3
7.9b2d4
Compiler

Compiled 96 to 42 computations (56.3% saved)

bsearch22.0ms (0.3%)

Algorithm
binary-search
Steps
TimeLeftRight
22.0ms
-1.3811696742251942e-13
-1.2390221482237512e-13
Compiler

Compiled 26 to 17 computations (34.6% saved)

regimes176.0ms (2.2%)

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

4 calls:

71.0ms
d1
43.0ms
d3
36.0ms
d4
22.0ms
d2
Results
ErrorSegmentsBranch
12.9b8d1
11.9b2d2
10.0b5d3
8.7b5d4
Compiler

Compiled 89 to 39 computations (56.2% saved)

bsearch87.0ms (1.1%)

Algorithm
binary-search
Steps
TimeLeftRight
22.0ms
1.3091822884332637e+46
5.260760989031663e+51
22.0ms
1.1752325803380501e+33
1.4424186661111198e+37
22.0ms
5.364013812040155e-64
4.805995434018537e-63
22.0ms
5.27169158964106e-267
9.678650422998166e-261
Compiler

Compiled 26 to 17 computations (34.6% saved)

regimes146.0ms (1.8%)

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

4 calls:

64.0ms
d1
38.0ms
d3
21.0ms
d2
20.0ms
d4
Results
ErrorSegmentsBranch
13.4b8d1
11.9b2d2
10.0b5d3
11.2b2d4
Compiler

Compiled 76 to 36 computations (52.6% saved)

bsearch87.0ms (1.1%)

Algorithm
binary-search
Steps
TimeLeftRight
21.0ms
3.2780238765130027e+53
6.131745746592835e+58
22.0ms
-2.423365457591742e-165
-2.8094393857723515e-169
22.0ms
-1.4024021465429835e-91
-1.1156623269721598e-94
22.0ms
-8.259760307991501e+25
-4009120750393109500.0
Compiler

Compiled 26 to 17 computations (34.6% saved)

regimes149.0ms (1.9%)

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

4 calls:

63.0ms
d1
37.0ms
d3
26.0ms
d4
20.0ms
d2
Results
ErrorSegmentsBranch
15.7b8d1
15.7b2d2
11.1b5d3
12.4b3d4
Compiler

Compiled 71 to 34 computations (52.1% saved)

bsearch87.0ms (1.1%)

Algorithm
binary-search
Steps
TimeLeftRight
21.0ms
1.0064193975864887e-32
2.2478604821292724e-31
22.0ms
-2.423365457591742e-165
-2.8094393857723515e-169
22.0ms
-1.4024021465429835e-91
-1.1156623269721598e-94
22.0ms
-8.259760307991501e+25
-4009120750393109500.0
Compiler

Compiled 26 to 17 computations (34.6% saved)

regimes121.0ms (1.5%)

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

4 calls:

58.0ms
d1
25.0ms
d2
23.0ms
d3
12.0ms
d4
Results
ErrorSegmentsBranch
17.0b8d1
19.1b4d2
12.5b3d3
13.5b2d4
Compiler

Compiled 66 to 32 computations (51.5% saved)

bsearch44.0ms (0.5%)

Algorithm
binary-search
Steps
TimeLeftRight
21.0ms
1.0064193975864887e-32
2.2478604821292724e-31
22.0ms
-8.259760307991501e+25
-4009120750393109500.0
Compiler

Compiled 26 to 17 computations (34.6% saved)

regimes145.0ms (1.8%)

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

4 calls:

63.0ms
d1
34.0ms
d4
27.0ms
d2
18.0ms
d3
Results
ErrorSegmentsBranch
19.6b7d1
23.7b5d2
15.2b3d3
22.3b5d4
Compiler

Compiled 61 to 30 computations (50.8% saved)

bsearch79.0ms (1%)

Algorithm
binary-search
Steps
TimeLeftRight
37.0ms
7.056208296853119e+90
5.213887614531032e+94
41.0ms
-3.564677856775167e+119
-7.119874490351418e+118
Compiler

Compiled 26 to 17 computations (34.6% saved)

regimes295.0ms (3.7%)

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

4 calls:

128.0ms
d1
79.0ms
d3
51.0ms
d2
33.0ms
d4
Results
ErrorSegmentsBranch
29.0b13d1
27.3b5d2
26.3b7d3
26.1b3d4
Compiler

Compiled 51 to 28 computations (45.1% saved)

bsearch79.0ms (1%)

Algorithm
binary-search
Steps
TimeLeftRight
39.0ms
1.4424186661111198e+37
5.354294612794467e+40
39.0ms
2.9556339785480407e-271
1.1369369326882418e-268
Compiler

Compiled 26 to 17 computations (34.6% saved)

regimes64.0ms (0.8%)

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

4 calls:

18.0ms
d4
17.0ms
d3
15.0ms
d1
11.0ms
d2
Results
ErrorSegmentsBranch
38.6b4d1
30.1b2d2
41.0b3d3
29.5b2d4
Compiler

Compiled 39 to 24 computations (38.5% saved)

bsearch22.0ms (0.3%)

Algorithm
binary-search
Steps
TimeLeftRight
22.0ms
1.4424186661111198e+37
5.354294612794467e+40
Compiler

Compiled 26 to 17 computations (34.6% saved)

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

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

Compiled 33 to 23 computations (30.3% saved)

regimes15.0ms (0.2%)

Accuracy

Total -0.6b remaining (-0.9%)

Threshold costs -0.6b (-0.9%)

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

4 calls:

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

Compiled 30 to 22 computations (26.7% saved)

simplify22.0ms (0.3%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
091448
1121448
2138448
3150448
4159448
5161448
6162448
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(fma.f64 (-.f64 d4 (+.f64 d1 d3)) d1 (*.f64 d1 d2))
(fma.f64 d2 d1 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(if (<=.f64 d3 -82597603079915008977534976) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)) (if (<=.f64 d3 7473493250763751/5070602400912917605986812821504) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3))))
(if (<=.f64 d1 -24500000000000000727154455689323352014670201336021123072) (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (if (<=.f64 d1 760000000000000035351081674623077031916601344) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 d1 (-.f64 d4 (+.f64 d1 d3)))))
(if (<=.f64 d2 -10942753540928722/79228162514264337593543950336) (*.f64 (-.f64 d2 d3) d1) (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))))
(if (<=.f64 d4 6124292601622171/1161731959748268017810986326679609812602547032546401921137321765090578638406565916832162745700122148898280252961088260195667644723081957584211586391486245801392945969099578026517723757683045106929874371704962060317240428677248343818872733547147389127353160238636049931893566678761472) (*.f64 (-.f64 d2 d3) d1) (if (<=.f64 d4 7950212684722563/14821387422376473014217086081112052205218558037201992197050570753012880593911808) (*.f64 d1 (-.f64 (neg.f64 d3) d1)) (if (<=.f64 d4 1175232580338050119453050379698176) (*.f64 (-.f64 d2 d3) d1) (if (<=.f64 d4 13091822884332637308478432145068990246579863552) (*.f64 d1 (-.f64 (neg.f64 d3) d1)) (*.f64 (-.f64 d4 d3) d1)))))
(if (<=.f64 d3 -82597603079915008977534976) (*.f64 (-.f64 d2 d3) d1) (if (<=.f64 d3 -5146251811452541/36695977855841144185773134324833391052745039826692497979801421430190766017415756929120296849762010984873984) (*.f64 d1 (+.f64 d4 d2)) (if (<=.f64 d3 -2574282930013528576/1062275985633534197379176413104937254659186235454063846398888276400807119721704485478325004530458571337778658972493002030693158675305414478819039957533174703887662541670786438063456256) (*.f64 d1 (-.f64 d4 d1)) (if (<=.f64 d3 327802387651300273414338880454168112070867094152937472) (*.f64 d1 (+.f64 d4 d2)) (*.f64 (-.f64 d4 d3) d1)))))
(if (<=.f64 d3 -82597603079915008977534976) (*.f64 (-.f64 d2 d3) d1) (if (<=.f64 d3 -5146251811452541/36695977855841144185773134324833391052745039826692497979801421430190766017415756929120296849762010984873984) (*.f64 d1 (+.f64 d4 d2)) (if (<=.f64 d3 -2574282930013528576/1062275985633534197379176413104937254659186235454063846398888276400807119721704485478325004530458571337778658972493002030693158675305414478819039957533174703887662541670786438063456256) (*.f64 d1 (-.f64 d4 d1)) (if (<=.f64 d3 14708835974142342/1461501637330902918203684832716283019655932542976) (*.f64 d1 (+.f64 d4 d2)) (*.f64 (-.f64 d2 d3) d1)))))
(if (<=.f64 d3 -82597603079915008977534976) (*.f64 (-.f64 d2 d3) d1) (if (<=.f64 d3 14708835974142342/1461501637330902918203684832716283019655932542976) (*.f64 d1 (+.f64 d4 d2)) (*.f64 (-.f64 d2 d3) d1)))
(if (<=.f64 d3 -356467785677516688176115877546321005162667919316694433164141584293169648443075515975182201967790901035134999343969337344) (*.f64 d1 (neg.f64 d3)) (if (<=.f64 d3 7056208296853118649935340372618458380568840686112631527388682946585262186368811632640917504) (*.f64 d1 (+.f64 d4 d2)) (*.f64 d1 (neg.f64 d3))))
(if (<=.f64 d4 2880358122371414528/9745314011399999080353382387875188310876226857595007526867906457212948690766426102465615065882010259225304916231408668183459169865203094046577987296312653419531277699956473029870789655490053648352799593479218378873685597925394874945746363615468965612827738803104277547081828589991914110976) (*.f64 d2 d1) (if (<=.f64 d4 14424186661111198123553802798566998016) (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d4)))
(if (<=.f64 d4 14424186661111198123553802798566998016) (*.f64 d2 d1) (*.f64 d1 d4))
(*.f64 d2 d1)
(*.f64 d1 d1)
(*.f64 d1 d3)
Outputs
(fma.f64 (-.f64 d4 (+.f64 d1 d3)) d1 (*.f64 d1 d2))
(fma.f64 d2 d1 (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 d2 (-.f64 d4 (+.f64 d1 d3))))
(*.f64 d1 (+.f64 (-.f64 d4 (+.f64 d1 d3)) d2))
(if (<=.f64 d3 -82597603079915008977534976) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)) (if (<=.f64 d3 7473493250763751/5070602400912917605986812821504) (+.f64 (*.f64 d2 d1) (*.f64 d1 (-.f64 d4 d1))) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3))))
(if (<=.f64 d3 -82597603079915008977534976) (*.f64 d1 (-.f64 (+.f64 d4 d2) d3)) (if (<=.f64 d3 7473493250763751/5070602400912917605986812821504) (+.f64 (*.f64 d1 d2) (*.f64 d1 (-.f64 d4 d1))) (*.f64 d1 (-.f64 (+.f64 d4 d2) d3))))
(if (<=.f64 d1 -24500000000000000727154455689323352014670201336021123072) (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (if (<=.f64 d1 760000000000000035351081674623077031916601344) (*.f64 d1 (-.f64 (+.f64 d2 d4) d3)) (*.f64 d1 (-.f64 d4 (+.f64 d1 d3)))))
(if (<=.f64 d1 -24500000000000000727154455689323352014670201336021123072) (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))) (if (<=.f64 d1 760000000000000035351081674623077031916601344) (*.f64 d1 (-.f64 (+.f64 d4 d2) d3)) (*.f64 d1 (-.f64 d4 (+.f64 d1 d3)))))
(if (<=.f64 d2 -10942753540928722/79228162514264337593543950336) (*.f64 (-.f64 d2 d3) d1) (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))))
(if (<=.f64 d2 -5471376770464361/39614081257132168796771975168) (*.f64 d1 (-.f64 d2 d3)) (*.f64 d1 (-.f64 d4 (+.f64 d1 d3))))
(if (<=.f64 d4 6124292601622171/1161731959748268017810986326679609812602547032546401921137321765090578638406565916832162745700122148898280252961088260195667644723081957584211586391486245801392945969099578026517723757683045106929874371704962060317240428677248343818872733547147389127353160238636049931893566678761472) (*.f64 (-.f64 d2 d3) d1) (if (<=.f64 d4 7950212684722563/14821387422376473014217086081112052205218558037201992197050570753012880593911808) (*.f64 d1 (-.f64 (neg.f64 d3) d1)) (if (<=.f64 d4 1175232580338050119453050379698176) (*.f64 (-.f64 d2 d3) d1) (if (<=.f64 d4 13091822884332637308478432145068990246579863552) (*.f64 d1 (-.f64 (neg.f64 d3) d1)) (*.f64 (-.f64 d4 d3) d1)))))
(if (<=.f64 d4 6124292601622171/1161731959748268017810986326679609812602547032546401921137321765090578638406565916832162745700122148898280252961088260195667644723081957584211586391486245801392945969099578026517723757683045106929874371704962060317240428677248343818872733547147389127353160238636049931893566678761472) (*.f64 d1 (-.f64 d2 d3)) (if (<=.f64 d4 7950212684722563/14821387422376473014217086081112052205218558037201992197050570753012880593911808) (*.f64 d1 (-.f64 (neg.f64 d3) d1)) (if (<=.f64 d4 1175232580338050119453050379698176) (*.f64 d1 (-.f64 d2 d3)) (if (<=.f64 d4 13091822884332637308478432145068990246579863552) (*.f64 d1 (-.f64 (neg.f64 d3) d1)) (*.f64 d1 (-.f64 d4 d3))))))
(if (<=.f64 d3 -82597603079915008977534976) (*.f64 (-.f64 d2 d3) d1) (if (<=.f64 d3 -5146251811452541/36695977855841144185773134324833391052745039826692497979801421430190766017415756929120296849762010984873984) (*.f64 d1 (+.f64 d4 d2)) (if (<=.f64 d3 -2574282930013528576/1062275985633534197379176413104937254659186235454063846398888276400807119721704485478325004530458571337778658972493002030693158675305414478819039957533174703887662541670786438063456256) (*.f64 d1 (-.f64 d4 d1)) (if (<=.f64 d3 327802387651300273414338880454168112070867094152937472) (*.f64 d1 (+.f64 d4 d2)) (*.f64 (-.f64 d4 d3) d1)))))
(if (<=.f64 d3 -82597603079915008977534976) (*.f64 d1 (-.f64 d2 d3)) (if (<=.f64 d3 -5146251811452541/36695977855841144185773134324833391052745039826692497979801421430190766017415756929120296849762010984873984) (*.f64 d1 (+.f64 d4 d2)) (if (<=.f64 d3 -5027896347682673/2074757784440496479256203931845580575506223116121218449997828664845326405706454073199853524473551897144098943305650394591197575537705887653943437417056981843530590901700754761842688) (*.f64 d1 (-.f64 d4 d1)) (if (<=.f64 d3 327802387651300273414338880454168112070867094152937472) (*.f64 d1 (+.f64 d4 d2)) (*.f64 d1 (-.f64 d4 d3))))))
(if (<=.f64 d3 -82597603079915008977534976) (*.f64 (-.f64 d2 d3) d1) (if (<=.f64 d3 -5146251811452541/36695977855841144185773134324833391052745039826692497979801421430190766017415756929120296849762010984873984) (*.f64 d1 (+.f64 d4 d2)) (if (<=.f64 d3 -2574282930013528576/1062275985633534197379176413104937254659186235454063846398888276400807119721704485478325004530458571337778658972493002030693158675305414478819039957533174703887662541670786438063456256) (*.f64 d1 (-.f64 d4 d1)) (if (<=.f64 d3 14708835974142342/1461501637330902918203684832716283019655932542976) (*.f64 d1 (+.f64 d4 d2)) (*.f64 (-.f64 d2 d3) d1)))))
(if (<=.f64 d3 -82597603079915008977534976) (*.f64 d1 (-.f64 d2 d3)) (if (<=.f64 d3 -5146251811452541/36695977855841144185773134324833391052745039826692497979801421430190766017415756929120296849762010984873984) (*.f64 d1 (+.f64 d4 d2)) (if (<=.f64 d3 -5027896347682673/2074757784440496479256203931845580575506223116121218449997828664845326405706454073199853524473551897144098943305650394591197575537705887653943437417056981843530590901700754761842688) (*.f64 d1 (-.f64 d4 d1)) (if (<=.f64 d3 7354417987071171/730750818665451459101842416358141509827966271488) (*.f64 d1 (+.f64 d4 d2)) (*.f64 d1 (-.f64 d2 d3))))))
(if (<=.f64 d3 -82597603079915008977534976) (*.f64 (-.f64 d2 d3) d1) (if (<=.f64 d3 14708835974142342/1461501637330902918203684832716283019655932542976) (*.f64 d1 (+.f64 d4 d2)) (*.f64 (-.f64 d2 d3) d1)))
(if (<=.f64 d3 -82597603079915008977534976) (*.f64 d1 (-.f64 d2 d3)) (if (<=.f64 d3 7354417987071171/730750818665451459101842416358141509827966271488) (*.f64 d1 (+.f64 d4 d2)) (*.f64 d1 (-.f64 d2 d3))))
(if (<=.f64 d3 -356467785677516688176115877546321005162667919316694433164141584293169648443075515975182201967790901035134999343969337344) (*.f64 d1 (neg.f64 d3)) (if (<=.f64 d3 7056208296853118649935340372618458380568840686112631527388682946585262186368811632640917504) (*.f64 d1 (+.f64 d4 d2)) (*.f64 d1 (neg.f64 d3))))
(if (<=.f64 d4 2880358122371414528/9745314011399999080353382387875188310876226857595007526867906457212948690766426102465615065882010259225304916231408668183459169865203094046577987296312653419531277699956473029870789655490053648352799593479218378873685597925394874945746363615468965612827738803104277547081828589991914110976) (*.f64 d2 d1) (if (<=.f64 d4 14424186661111198123553802798566998016) (*.f64 d1 (neg.f64 d3)) (*.f64 d1 d4)))
(if (<=.f64 d4 5625699457756669/19033816428515623203815199976318727169680130581240249075913879799244040411653175981378154425550801287549423664514470055045818691142974793059722631438110651210022026757727486386466386045879011031939061706014098396237667183448036865128410866436462823462554177349813042084144196464827957248) (*.f64 d1 d2) (if (<=.f64 d4 14424186661111198123553802798566998016) (*.f64 d1 (neg.f64 d3)) (*.f64 d4 d1)))
(if (<=.f64 d4 14424186661111198123553802798566998016) (*.f64 d2 d1) (*.f64 d1 d4))
(if (<=.f64 d4 14424186661111198123553802798566998016) (*.f64 d1 d2) (*.f64 d4 d1))
(*.f64 d2 d1)
(*.f64 d1 d2)
(*.f64 d1 d1)
(*.f64 d1 d3)
Compiler

Compiled 375 to 204 computations (45.6% saved)

soundness324.0ms (4.1%)

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)

end121.0ms (1.5%)

Compiler

Compiled 343 to 118 computations (65.6% saved)

Profiling

Loading profile data...