Details

Time bar (total: 3.6s)

analyze0.0ms (0%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%0%100%0%0%0%0
100%0%0%100%0%0%0%1
Compiler

Compiled 42 to 30 computations (28.6% saved)

sample1.5s (40.9%)

Results
1.4s8256×body256valid
Bogosity

preprocess19.0ms (0.5%)

Algorithm
egg-herbie
Rules
232×fma-def
98×distribute-lft-in
78×distribute-rgt-in
46×*-commutative
32×associate-+l+
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
026133
187133
2182133
3287133
4341133
044
144
Stop Event
unsound
saturated
Calls
Call 1
Inputs
0
1
2
3
Outputs
0
1
2
1
3
1
Call 2
Inputs
(*.f64 a (+.f64 (+.f64 b c) d))
(*.f64 b (+.f64 (+.f64 a c) d))
(*.f64 c (+.f64 (+.f64 b a) d))
(*.f64 d (+.f64 (+.f64 b c) a))
(*.f64 a (+.f64 (+.f64 c b) d))
(*.f64 a (+.f64 (+.f64 d c) b))
(*.f64 a (+.f64 (+.f64 b d) c))
Outputs
(*.f64 a (+.f64 (+.f64 b c) d))
(*.f64 a (+.f64 b (+.f64 c d)))
(*.f64 b (+.f64 (+.f64 a c) d))
(*.f64 b (+.f64 a (+.f64 c d)))
(*.f64 c (+.f64 (+.f64 b a) d))
(*.f64 c (+.f64 d (+.f64 a b)))
(*.f64 d (+.f64 (+.f64 b c) a))
(*.f64 d (+.f64 a (+.f64 b c)))
(*.f64 a (+.f64 (+.f64 c b) d))
(*.f64 a (+.f64 b (+.f64 c d)))
(*.f64 a (+.f64 (+.f64 d c) b))
(*.f64 a (+.f64 b (+.f64 c d)))
(*.f64 a (+.f64 (+.f64 b d) c))
(*.f64 a (+.f64 b (+.f64 c d)))
Symmetry

(sort b c d)

Compiler

Compiled 15 to 11 computations (26.7% saved)

simplify19.0ms (0.5%)

Algorithm
egg-herbie
Rules
56×fma-def
24×distribute-lft-in
20×distribute-rgt-in
14×*-commutative
12×associate-+r+
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0919
12019
24519
39019
410819
Stop Event
saturated
Counts
1 → 2
Calls
Call 1
Inputs
(*.f64 a (+.f64 (+.f64 b c) d))
Outputs
(*.f64 a (+.f64 (+.f64 b c) d))
(*.f64 a (+.f64 c (+.f64 b d)))

eval1.0ms (0%)

Compiler

Compiled 18 to 10 computations (44.4% saved)

prune1.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New112
Fresh011
Picked000
Done000
Total123
Accurracy
99.9%
Counts
3 → 1
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.9%
(*.f64 a (+.f64 (+.f64 b c) d))
Compiler

Compiled 11 to 7 computations (36.4% saved)

localize7.0ms (0.2%)

Local Accuracy

Found 1 expressions with local accuracy:

NewAccuracyProgram
99.9%
(*.f64 a (+.f64 (+.f64 b c) d))
Compiler

Compiled 23 to 7 computations (69.6% saved)

series4.0ms (0.1%)

Counts
1 → 48
Calls

12 calls:

TimeVariablePointExpression
0.0ms
b
@-inf
(*.f64 a (+.f64 (+.f64 b c) d))
0.0ms
a
@-inf
(*.f64 a (+.f64 (+.f64 b c) d))
0.0ms
a
@0
(*.f64 a (+.f64 (+.f64 b c) d))
0.0ms
a
@inf
(*.f64 a (+.f64 (+.f64 b c) d))
0.0ms
b
@inf
(*.f64 a (+.f64 (+.f64 b c) d))

rewrite67.0ms (1.9%)

Algorithm
batch-egg-rewrite
Rules
1044×log-prod
990×fma-def
952×pow-prod-down
522×pow-exp
496×pow-prod-up
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0919
120519
2313819
Stop Event
node limit
Counts
1 → 62
Calls
Call 1
Inputs
(*.f64 a (+.f64 (+.f64 b c) d))
Outputs
(+.f64 (*.f64 a (+.f64 b c)) (*.f64 a d))
(+.f64 (*.f64 a d) (*.f64 a (+.f64 b c)))
(+.f64 0 (*.f64 a (+.f64 b (+.f64 c d))))
(+.f64 (*.f64 a b) (*.f64 a (+.f64 c d)))
(+.f64 (*.f64 b a) (*.f64 (+.f64 c d) a))
(+.f64 (*.f64 (*.f64 a (+.f64 b c)) 1) (*.f64 (*.f64 a d) 1))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 a) (+.f64 b (+.f64 c d)))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 a) (+.f64 b (+.f64 c d))))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 a) (+.f64 b (+.f64 c d))))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 a) (+.f64 b (+.f64 c d))))))
(-.f64 (exp.f64 (log1p.f64 (*.f64 a (+.f64 b (+.f64 c d))))) 1)
(/.f64 (+.f64 (pow.f64 (*.f64 a (+.f64 b c)) 3) (pow.f64 (*.f64 a d) 3)) (+.f64 (pow.f64 (*.f64 a (+.f64 b c)) 2) (-.f64 (pow.f64 (*.f64 a d) 2) (*.f64 (*.f64 a (+.f64 b c)) (*.f64 a d)))))
(/.f64 (-.f64 (pow.f64 (*.f64 a (+.f64 b c)) 2) (pow.f64 (*.f64 a d) 2)) (-.f64 (*.f64 a (+.f64 b c)) (*.f64 a d)))
(/.f64 (*.f64 a (+.f64 (pow.f64 (+.f64 b c) 3) (pow.f64 d 3))) (fma.f64 d (-.f64 d (+.f64 b c)) (pow.f64 (+.f64 b c) 2)))
(/.f64 (*.f64 a (-.f64 (pow.f64 (+.f64 b c) 2) (*.f64 d d))) (+.f64 b (-.f64 c d)))
(/.f64 (*.f64 (+.f64 (pow.f64 (+.f64 b c) 3) (pow.f64 d 3)) a) (fma.f64 d (-.f64 d (+.f64 b c)) (pow.f64 (+.f64 b c) 2)))
(/.f64 (*.f64 (-.f64 (pow.f64 (+.f64 b c) 2) (*.f64 d d)) a) (+.f64 b (-.f64 c d)))
(pow.f64 (*.f64 a (+.f64 b (+.f64 c d))) 1)
(pow.f64 (cbrt.f64 (*.f64 a (+.f64 b (+.f64 c d)))) 3)
(pow.f64 (pow.f64 (*.f64 a (+.f64 b (+.f64 c d))) 2) 1/2)
(pow.f64 (pow.f64 (*.f64 a (+.f64 b (+.f64 c d))) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 a (+.f64 b (+.f64 c d)))) 2)
(sqrt.f64 (pow.f64 (*.f64 a (+.f64 b (+.f64 c d))) 2))
(log.f64 (pow.f64 (exp.f64 a) (+.f64 b (+.f64 c d))))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 a (+.f64 b (+.f64 c d))))))
(log.f64 (*.f64 (exp.f64 (*.f64 a d)) (exp.f64 (*.f64 a (+.f64 b c)))))
(cbrt.f64 (pow.f64 (*.f64 a (+.f64 b (+.f64 c d))) 3))
(expm1.f64 (log1p.f64 (*.f64 a (+.f64 b (+.f64 c d)))))
(exp.f64 (log.f64 (*.f64 a (+.f64 b (+.f64 c d)))))
(exp.f64 (*.f64 (log.f64 (*.f64 a (+.f64 b (+.f64 c d)))) 1))
(exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 a (+.f64 b (+.f64 c d)))) 1) 1))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 a (+.f64 b (+.f64 c d))))) 3))
(exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 a (+.f64 b (+.f64 c d))))) 1/3))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 a (+.f64 b (+.f64 c d))))) 2))
(log1p.f64 (expm1.f64 (*.f64 a (+.f64 b (+.f64 c d)))))
(fma.f64 a b (*.f64 a (+.f64 c d)))
(fma.f64 a (+.f64 b c) (*.f64 a d))
(fma.f64 a d (*.f64 a (+.f64 b c)))
(fma.f64 b a (*.f64 (+.f64 c d) a))
(fma.f64 (+.f64 b c) a (*.f64 a d))
(fma.f64 d a (*.f64 a (+.f64 b c)))
(fma.f64 1 (*.f64 a (+.f64 b c)) (*.f64 a d))
(fma.f64 1 (*.f64 a d) (*.f64 a (+.f64 b c)))
(fma.f64 (pow.f64 (cbrt.f64 (+.f64 b c)) 2) (*.f64 (cbrt.f64 (+.f64 b c)) a) (*.f64 a d))
(fma.f64 (pow.f64 (cbrt.f64 a) 2) (*.f64 (cbrt.f64 a) (+.f64 b c)) (*.f64 a d))
(fma.f64 (pow.f64 (cbrt.f64 a) 2) (*.f64 (cbrt.f64 a) d) (*.f64 a (+.f64 b c)))
(fma.f64 (pow.f64 (cbrt.f64 d) 2) (*.f64 (cbrt.f64 d) a) (*.f64 a (+.f64 b c)))
(fma.f64 (sqrt.f64 (+.f64 b c)) (*.f64 (sqrt.f64 (+.f64 b c)) a) (*.f64 a d))
(fma.f64 (sqrt.f64 a) (*.f64 (sqrt.f64 a) (+.f64 b c)) (*.f64 a d))
(fma.f64 (sqrt.f64 a) (*.f64 (sqrt.f64 a) d) (*.f64 a (+.f64 b c)))
(fma.f64 (sqrt.f64 d) (*.f64 (sqrt.f64 d) a) (*.f64 a (+.f64 b c)))
(fma.f64 (*.f64 a (+.f64 b c)) 1 (*.f64 (*.f64 a d) 1))
(fma.f64 (pow.f64 (cbrt.f64 (*.f64 a d)) 2) (cbrt.f64 (*.f64 a d)) (*.f64 a (+.f64 b c)))
(fma.f64 (pow.f64 (cbrt.f64 (*.f64 a (+.f64 b c))) 2) (cbrt.f64 (*.f64 a (+.f64 b c))) (*.f64 a d))
(fma.f64 (sqrt.f64 (*.f64 a (+.f64 b c))) (sqrt.f64 (*.f64 a (+.f64 b c))) (*.f64 a d))
(fma.f64 (sqrt.f64 (*.f64 a d)) (sqrt.f64 (*.f64 a d)) (*.f64 a (+.f64 b c)))
(fma.f64 (*.f64 d (pow.f64 (cbrt.f64 a) 2)) (cbrt.f64 a) (*.f64 a (+.f64 b c)))
(fma.f64 (*.f64 d (sqrt.f64 a)) (sqrt.f64 a) (*.f64 a (+.f64 b c)))
(fma.f64 (*.f64 (+.f64 b c) (pow.f64 (cbrt.f64 a) 2)) (cbrt.f64 a) (*.f64 a d))
(fma.f64 (*.f64 (+.f64 b c) (sqrt.f64 a)) (sqrt.f64 a) (*.f64 a d))
(fma.f64 (*.f64 a (pow.f64 (cbrt.f64 (+.f64 b c)) 2)) (cbrt.f64 (+.f64 b c)) (*.f64 a d))
(fma.f64 (*.f64 a (sqrt.f64 (+.f64 b c))) (sqrt.f64 (+.f64 b c)) (*.f64 a d))
(fma.f64 (*.f64 a (pow.f64 (cbrt.f64 d) 2)) (cbrt.f64 d) (*.f64 a (+.f64 b c)))
(fma.f64 (*.f64 a (sqrt.f64 d)) (sqrt.f64 d) (*.f64 a (+.f64 b c)))

simplify136.0ms (3.8%)

Algorithm
egg-herbie
Rules
1412×fma-def
748×cancel-sign-sub-inv
644×fma-neg
454×distribute-rgt-neg-in
440×log-prod
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01812304
14672262
214182252
345902204
Stop Event
node limit
Counts
110 → 87
Calls
Call 1
Inputs
(*.f64 (+.f64 c (+.f64 d b)) a)
(*.f64 (+.f64 c (+.f64 d b)) a)
(*.f64 (+.f64 c (+.f64 d b)) a)
(*.f64 (+.f64 c (+.f64 d b)) a)
(*.f64 (+.f64 c (+.f64 d b)) a)
(*.f64 (+.f64 c (+.f64 d b)) a)
(*.f64 (+.f64 c (+.f64 d b)) a)
(*.f64 (+.f64 c (+.f64 d b)) a)
(*.f64 (+.f64 c (+.f64 d b)) a)
(*.f64 (+.f64 c (+.f64 d b)) a)
(*.f64 (+.f64 c (+.f64 d b)) a)
(*.f64 (+.f64 c (+.f64 d b)) a)
(*.f64 a (+.f64 c d))
(+.f64 (*.f64 a b) (*.f64 a (+.f64 c d)))
(+.f64 (*.f64 a b) (*.f64 a (+.f64 c d)))
(+.f64 (*.f64 a b) (*.f64 a (+.f64 c d)))
(*.f64 a b)
(+.f64 (*.f64 a b) (*.f64 a (+.f64 c d)))
(+.f64 (*.f64 a b) (*.f64 a (+.f64 c d)))
(+.f64 (*.f64 a b) (*.f64 a (+.f64 c d)))
(*.f64 a b)
(+.f64 (*.f64 a b) (*.f64 (+.f64 c d) a))
(+.f64 (*.f64 a b) (*.f64 (+.f64 c d) a))
(+.f64 (*.f64 a b) (*.f64 (+.f64 c d) a))
(*.f64 (+.f64 d b) a)
(+.f64 (*.f64 (+.f64 d b) a) (*.f64 c a))
(+.f64 (*.f64 (+.f64 d b) a) (*.f64 c a))
(+.f64 (*.f64 (+.f64 d b) a) (*.f64 c a))
(*.f64 c a)
(+.f64 (*.f64 (+.f64 d b) a) (*.f64 c a))
(+.f64 (*.f64 (+.f64 d b) a) (*.f64 c a))
(+.f64 (*.f64 (+.f64 d b) a) (*.f64 c a))
(*.f64 c a)
(+.f64 (*.f64 (+.f64 d b) a) (*.f64 c a))
(+.f64 (*.f64 (+.f64 d b) a) (*.f64 c a))
(+.f64 (*.f64 (+.f64 d b) a) (*.f64 c a))
(*.f64 a (+.f64 c b))
(+.f64 (*.f64 a (+.f64 c b)) (*.f64 a d))
(+.f64 (*.f64 a (+.f64 c b)) (*.f64 a d))
(+.f64 (*.f64 a (+.f64 c b)) (*.f64 a d))
(*.f64 a d)
(+.f64 (*.f64 a (+.f64 c b)) (*.f64 a d))
(+.f64 (*.f64 a (+.f64 c b)) (*.f64 a d))
(+.f64 (*.f64 a (+.f64 c b)) (*.f64 a d))
(*.f64 a d)
(+.f64 (*.f64 a (+.f64 c b)) (*.f64 a d))
(+.f64 (*.f64 a (+.f64 c b)) (*.f64 a d))
(+.f64 (*.f64 a (+.f64 c b)) (*.f64 a d))
(+.f64 (*.f64 a (+.f64 b c)) (*.f64 a d))
(+.f64 (*.f64 a d) (*.f64 a (+.f64 b c)))
(+.f64 0 (*.f64 a (+.f64 b (+.f64 c d))))
(+.f64 (*.f64 a b) (*.f64 a (+.f64 c d)))
(+.f64 (*.f64 b a) (*.f64 (+.f64 c d) a))
(+.f64 (*.f64 (*.f64 a (+.f64 b c)) 1) (*.f64 (*.f64 a d) 1))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 a) (+.f64 b (+.f64 c d)))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 a) (+.f64 b (+.f64 c d))))))
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 a) (+.f64 b (+.f64 c d))))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 a) (+.f64 b (+.f64 c d))))))
(-.f64 (exp.f64 (log1p.f64 (*.f64 a (+.f64 b (+.f64 c d))))) 1)
(/.f64 (+.f64 (pow.f64 (*.f64 a (+.f64 b c)) 3) (pow.f64 (*.f64 a d) 3)) (+.f64 (pow.f64 (*.f64 a (+.f64 b c)) 2) (-.f64 (pow.f64 (*.f64 a d) 2) (*.f64 (*.f64 a (+.f64 b c)) (*.f64 a d)))))
(/.f64 (-.f64 (pow.f64 (*.f64 a (+.f64 b c)) 2) (pow.f64 (*.f64 a d) 2)) (-.f64 (*.f64 a (+.f64 b c)) (*.f64 a d)))
(/.f64 (*.f64 a (+.f64 (pow.f64 (+.f64 b c) 3) (pow.f64 d 3))) (fma.f64 d (-.f64 d (+.f64 b c)) (pow.f64 (+.f64 b c) 2)))
(/.f64 (*.f64 a (-.f64 (pow.f64 (+.f64 b c) 2) (*.f64 d d))) (+.f64 b (-.f64 c d)))
(/.f64 (*.f64 (+.f64 (pow.f64 (+.f64 b c) 3) (pow.f64 d 3)) a) (fma.f64 d (-.f64 d (+.f64 b c)) (pow.f64 (+.f64 b c) 2)))
(/.f64 (*.f64 (-.f64 (pow.f64 (+.f64 b c) 2) (*.f64 d d)) a) (+.f64 b (-.f64 c d)))
(pow.f64 (*.f64 a (+.f64 b (+.f64 c d))) 1)
(pow.f64 (cbrt.f64 (*.f64 a (+.f64 b (+.f64 c d)))) 3)
(pow.f64 (pow.f64 (*.f64 a (+.f64 b (+.f64 c d))) 2) 1/2)
(pow.f64 (pow.f64 (*.f64 a (+.f64 b (+.f64 c d))) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 a (+.f64 b (+.f64 c d)))) 2)
(sqrt.f64 (pow.f64 (*.f64 a (+.f64 b (+.f64 c d))) 2))
(log.f64 (pow.f64 (exp.f64 a) (+.f64 b (+.f64 c d))))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 a (+.f64 b (+.f64 c d))))))
(log.f64 (*.f64 (exp.f64 (*.f64 a d)) (exp.f64 (*.f64 a (+.f64 b c)))))
(cbrt.f64 (pow.f64 (*.f64 a (+.f64 b (+.f64 c d))) 3))
(expm1.f64 (log1p.f64 (*.f64 a (+.f64 b (+.f64 c d)))))
(exp.f64 (log.f64 (*.f64 a (+.f64 b (+.f64 c d)))))
(exp.f64 (*.f64 (log.f64 (*.f64 a (+.f64 b (+.f64 c d)))) 1))
(exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 a (+.f64 b (+.f64 c d)))) 1) 1))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 a (+.f64 b (+.f64 c d))))) 3))
(exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 a (+.f64 b (+.f64 c d))))) 1/3))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 a (+.f64 b (+.f64 c d))))) 2))
(log1p.f64 (expm1.f64 (*.f64 a (+.f64 b (+.f64 c d)))))
(fma.f64 a b (*.f64 a (+.f64 c d)))
(fma.f64 a (+.f64 b c) (*.f64 a d))
(fma.f64 a d (*.f64 a (+.f64 b c)))
(fma.f64 b a (*.f64 (+.f64 c d) a))
(fma.f64 (+.f64 b c) a (*.f64 a d))
(fma.f64 d a (*.f64 a (+.f64 b c)))
(fma.f64 1 (*.f64 a (+.f64 b c)) (*.f64 a d))
(fma.f64 1 (*.f64 a d) (*.f64 a (+.f64 b c)))
(fma.f64 (pow.f64 (cbrt.f64 (+.f64 b c)) 2) (*.f64 (cbrt.f64 (+.f64 b c)) a) (*.f64 a d))
(fma.f64 (pow.f64 (cbrt.f64 a) 2) (*.f64 (cbrt.f64 a) (+.f64 b c)) (*.f64 a d))
(fma.f64 (pow.f64 (cbrt.f64 a) 2) (*.f64 (cbrt.f64 a) d) (*.f64 a (+.f64 b c)))
(fma.f64 (pow.f64 (cbrt.f64 d) 2) (*.f64 (cbrt.f64 d) a) (*.f64 a (+.f64 b c)))
(fma.f64 (sqrt.f64 (+.f64 b c)) (*.f64 (sqrt.f64 (+.f64 b c)) a) (*.f64 a d))
(fma.f64 (sqrt.f64 a) (*.f64 (sqrt.f64 a) (+.f64 b c)) (*.f64 a d))
(fma.f64 (sqrt.f64 a) (*.f64 (sqrt.f64 a) d) (*.f64 a (+.f64 b c)))
(fma.f64 (sqrt.f64 d) (*.f64 (sqrt.f64 d) a) (*.f64 a (+.f64 b c)))
(fma.f64 (*.f64 a (+.f64 b c)) 1 (*.f64 (*.f64 a d) 1))
(fma.f64 (pow.f64 (cbrt.f64 (*.f64 a d)) 2) (cbrt.f64 (*.f64 a d)) (*.f64 a (+.f64 b c)))
(fma.f64 (pow.f64 (cbrt.f64 (*.f64 a (+.f64 b c))) 2) (cbrt.f64 (*.f64 a (+.f64 b c))) (*.f64 a d))
(fma.f64 (sqrt.f64 (*.f64 a (+.f64 b c))) (sqrt.f64 (*.f64 a (+.f64 b c))) (*.f64 a d))
(fma.f64 (sqrt.f64 (*.f64 a d)) (sqrt.f64 (*.f64 a d)) (*.f64 a (+.f64 b c)))
(fma.f64 (*.f64 d (pow.f64 (cbrt.f64 a) 2)) (cbrt.f64 a) (*.f64 a (+.f64 b c)))
(fma.f64 (*.f64 d (sqrt.f64 a)) (sqrt.f64 a) (*.f64 a (+.f64 b c)))
(fma.f64 (*.f64 (+.f64 b c) (pow.f64 (cbrt.f64 a) 2)) (cbrt.f64 a) (*.f64 a d))
(fma.f64 (*.f64 (+.f64 b c) (sqrt.f64 a)) (sqrt.f64 a) (*.f64 a d))
(fma.f64 (*.f64 a (pow.f64 (cbrt.f64 (+.f64 b c)) 2)) (cbrt.f64 (+.f64 b c)) (*.f64 a d))
(fma.f64 (*.f64 a (sqrt.f64 (+.f64 b c))) (sqrt.f64 (+.f64 b c)) (*.f64 a d))
(fma.f64 (*.f64 a (pow.f64 (cbrt.f64 d) 2)) (cbrt.f64 d) (*.f64 a (+.f64 b c)))
(fma.f64 (*.f64 a (sqrt.f64 d)) (sqrt.f64 d) (*.f64 a (+.f64 b c)))
Outputs
(*.f64 (+.f64 c (+.f64 d b)) a)
(*.f64 a (+.f64 c (+.f64 d b)))
(*.f64 (+.f64 c (+.f64 d b)) a)
(*.f64 a (+.f64 c (+.f64 d b)))
(*.f64 (+.f64 c (+.f64 d b)) a)
(*.f64 a (+.f64 c (+.f64 d b)))
(*.f64 (+.f64 c (+.f64 d b)) a)
(*.f64 a (+.f64 c (+.f64 d b)))
(*.f64 (+.f64 c (+.f64 d b)) a)
(*.f64 a (+.f64 c (+.f64 d b)))
(*.f64 (+.f64 c (+.f64 d b)) a)
(*.f64 a (+.f64 c (+.f64 d b)))
(*.f64 (+.f64 c (+.f64 d b)) a)
(*.f64 a (+.f64 c (+.f64 d b)))
(*.f64 (+.f64 c (+.f64 d b)) a)
(*.f64 a (+.f64 c (+.f64 d b)))
(*.f64 (+.f64 c (+.f64 d b)) a)
(*.f64 a (+.f64 c (+.f64 d b)))
(*.f64 (+.f64 c (+.f64 d b)) a)
(*.f64 a (+.f64 c (+.f64 d b)))
(*.f64 (+.f64 c (+.f64 d b)) a)
(*.f64 a (+.f64 c (+.f64 d b)))
(*.f64 (+.f64 c (+.f64 d b)) a)
(*.f64 a (+.f64 c (+.f64 d b)))
(*.f64 a (+.f64 c d))
(+.f64 (*.f64 a b) (*.f64 a (+.f64 c d)))
(*.f64 a (+.f64 c (+.f64 d b)))
(+.f64 (*.f64 a b) (*.f64 a (+.f64 c d)))
(*.f64 a (+.f64 c (+.f64 d b)))
(+.f64 (*.f64 a b) (*.f64 a (+.f64 c d)))
(*.f64 a (+.f64 c (+.f64 d b)))
(*.f64 a b)
(*.f64 b a)
(+.f64 (*.f64 a b) (*.f64 a (+.f64 c d)))
(*.f64 a (+.f64 c (+.f64 d b)))
(+.f64 (*.f64 a b) (*.f64 a (+.f64 c d)))
(*.f64 a (+.f64 c (+.f64 d b)))
(+.f64 (*.f64 a b) (*.f64 a (+.f64 c d)))
(*.f64 a (+.f64 c (+.f64 d b)))
(*.f64 a b)
(*.f64 b a)
(+.f64 (*.f64 a b) (*.f64 (+.f64 c d) a))
(*.f64 a (+.f64 c (+.f64 d b)))
(+.f64 (*.f64 a b) (*.f64 (+.f64 c d) a))
(*.f64 a (+.f64 c (+.f64 d b)))
(+.f64 (*.f64 a b) (*.f64 (+.f64 c d) a))
(*.f64 a (+.f64 c (+.f64 d b)))
(*.f64 (+.f64 d b) a)
(+.f64 (*.f64 (+.f64 d b) a) (*.f64 c a))
(*.f64 a (+.f64 c (+.f64 d b)))
(+.f64 (*.f64 (+.f64 d b) a) (*.f64 c a))
(*.f64 a (+.f64 c (+.f64 d b)))
(+.f64 (*.f64 (+.f64 d b) a) (*.f64 c a))
(*.f64 a (+.f64 c (+.f64 d b)))
(*.f64 c a)
(+.f64 (*.f64 (+.f64 d b) a) (*.f64 c a))
(*.f64 a (+.f64 c (+.f64 d b)))
(+.f64 (*.f64 (+.f64 d b) a) (*.f64 c a))
(*.f64 a (+.f64 c (+.f64 d b)))
(+.f64 (*.f64 (+.f64 d b) a) (*.f64 c a))
(*.f64 a (+.f64 c (+.f64 d b)))
(*.f64 c a)
(+.f64 (*.f64 (+.f64 d b) a) (*.f64 c a))
(*.f64 a (+.f64 c (+.f64 d b)))
(+.f64 (*.f64 (+.f64 d b) a) (*.f64 c a))
(*.f64 a (+.f64 c (+.f64 d b)))
(+.f64 (*.f64 (+.f64 d b) a) (*.f64 c a))
(*.f64 a (+.f64 c (+.f64 d b)))
(*.f64 a (+.f64 c b))
(+.f64 (*.f64 a (+.f64 c b)) (*.f64 a d))
(*.f64 a (+.f64 c (+.f64 d b)))
(+.f64 (*.f64 a (+.f64 c b)) (*.f64 a d))
(*.f64 a (+.f64 c (+.f64 d b)))
(+.f64 (*.f64 a (+.f64 c b)) (*.f64 a d))
(*.f64 a (+.f64 c (+.f64 d b)))
(*.f64 a d)
(*.f64 d a)
(+.f64 (*.f64 a (+.f64 c b)) (*.f64 a d))
(*.f64 a (+.f64 c (+.f64 d b)))
(+.f64 (*.f64 a (+.f64 c b)) (*.f64 a d))
(*.f64 a (+.f64 c (+.f64 d b)))
(+.f64 (*.f64 a (+.f64 c b)) (*.f64 a d))
(*.f64 a (+.f64 c (+.f64 d b)))
(*.f64 a d)
(*.f64 d a)
(+.f64 (*.f64 a (+.f64 c b)) (*.f64 a d))
(*.f64 a (+.f64 c (+.f64 d b)))
(+.f64 (*.f64 a (+.f64 c b)) (*.f64 a d))
(*.f64 a (+.f64 c (+.f64 d b)))
(+.f64 (*.f64 a (+.f64 c b)) (*.f64 a d))
(*.f64 a (+.f64 c (+.f64 d b)))
(+.f64 (*.f64 a (+.f64 b c)) (*.f64 a d))
(*.f64 a (+.f64 c (+.f64 d b)))
(+.f64 (*.f64 a d) (*.f64 a (+.f64 b c)))
(*.f64 a (+.f64 c (+.f64 d b)))
(+.f64 0 (*.f64 a (+.f64 b (+.f64 c d))))
(*.f64 a (+.f64 c (+.f64 d b)))
(+.f64 (*.f64 a b) (*.f64 a (+.f64 c d)))
(*.f64 a (+.f64 c (+.f64 d b)))
(+.f64 (*.f64 b a) (*.f64 (+.f64 c d) a))
(*.f64 a (+.f64 c (+.f64 d b)))
(+.f64 (*.f64 (*.f64 a (+.f64 b c)) 1) (*.f64 (*.f64 a d) 1))
(*.f64 a (+.f64 c (+.f64 d b)))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 a) (+.f64 b (+.f64 c d)))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 a) (+.f64 b (+.f64 c d))))))
(+.f64 (*.f64 2 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 a) (+.f64 c (+.f64 d b)))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 a) (+.f64 c (+.f64 d b))))))
(*.f64 3 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 a) (+.f64 c (+.f64 d b))))))
(*.f64 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 a) (+.f64 c (+.f64 d b))))) 3)
(+.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 a) (+.f64 b (+.f64 c d))))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 a) (+.f64 b (+.f64 c d))))))
(*.f64 a (+.f64 c (+.f64 d b)))
(-.f64 (exp.f64 (log1p.f64 (*.f64 a (+.f64 b (+.f64 c d))))) 1)
(*.f64 a (+.f64 c (+.f64 d b)))
(/.f64 (+.f64 (pow.f64 (*.f64 a (+.f64 b c)) 3) (pow.f64 (*.f64 a d) 3)) (+.f64 (pow.f64 (*.f64 a (+.f64 b c)) 2) (-.f64 (pow.f64 (*.f64 a d) 2) (*.f64 (*.f64 a (+.f64 b c)) (*.f64 a d)))))
(/.f64 (+.f64 (pow.f64 (*.f64 a (+.f64 c b)) 3) (pow.f64 (*.f64 d a) 3)) (+.f64 (pow.f64 (*.f64 a (+.f64 c b)) 2) (-.f64 (pow.f64 (*.f64 d a) 2) (*.f64 a (*.f64 (+.f64 c b) (*.f64 d a))))))
(/.f64 (*.f64 (pow.f64 a 3) (+.f64 (pow.f64 (+.f64 c b) 3) (pow.f64 d 3))) (+.f64 (pow.f64 (*.f64 a (+.f64 c b)) 2) (*.f64 (*.f64 d a) (-.f64 (*.f64 d a) (*.f64 a (+.f64 c b))))))
(/.f64 (+.f64 (pow.f64 (*.f64 a (+.f64 c b)) 3) (pow.f64 (*.f64 d a) 3)) (fma.f64 (*.f64 d a) (*.f64 a (-.f64 d (+.f64 c b))) (pow.f64 (*.f64 a (+.f64 c b)) 2)))
(/.f64 (-.f64 (pow.f64 (*.f64 a (+.f64 b c)) 2) (pow.f64 (*.f64 a d) 2)) (-.f64 (*.f64 a (+.f64 b c)) (*.f64 a d)))
(*.f64 a (+.f64 c (+.f64 d b)))
(/.f64 (*.f64 a (+.f64 (pow.f64 (+.f64 b c) 3) (pow.f64 d 3))) (fma.f64 d (-.f64 d (+.f64 b c)) (pow.f64 (+.f64 b c) 2)))
(/.f64 a (/.f64 (fma.f64 d (-.f64 d (+.f64 c b)) (pow.f64 (+.f64 c b) 2)) (+.f64 (pow.f64 (+.f64 c b) 3) (pow.f64 d 3))))
(*.f64 a (/.f64 (+.f64 (pow.f64 (+.f64 c b) 3) (pow.f64 d 3)) (fma.f64 d (-.f64 d (+.f64 c b)) (pow.f64 (+.f64 c b) 2))))
(/.f64 (*.f64 a (-.f64 (pow.f64 (+.f64 b c) 2) (*.f64 d d))) (+.f64 b (-.f64 c d)))
(/.f64 (-.f64 (pow.f64 (+.f64 c b) 2) (*.f64 d d)) (/.f64 (+.f64 b (-.f64 c d)) a))
(*.f64 (/.f64 a (+.f64 c (-.f64 b d))) (-.f64 (pow.f64 (+.f64 c b) 2) (*.f64 d d)))
(*.f64 (-.f64 (pow.f64 (+.f64 c b) 2) (*.f64 d d)) (/.f64 a (+.f64 c (-.f64 b d))))
(*.f64 a (/.f64 (+.f64 c (+.f64 d b)) 1))
(/.f64 (*.f64 (+.f64 (pow.f64 (+.f64 b c) 3) (pow.f64 d 3)) a) (fma.f64 d (-.f64 d (+.f64 b c)) (pow.f64 (+.f64 b c) 2)))
(/.f64 a (/.f64 (fma.f64 d (-.f64 d (+.f64 c b)) (pow.f64 (+.f64 c b) 2)) (+.f64 (pow.f64 (+.f64 c b) 3) (pow.f64 d 3))))
(*.f64 a (/.f64 (+.f64 (pow.f64 (+.f64 c b) 3) (pow.f64 d 3)) (fma.f64 d (-.f64 d (+.f64 c b)) (pow.f64 (+.f64 c b) 2))))
(/.f64 (*.f64 (-.f64 (pow.f64 (+.f64 b c) 2) (*.f64 d d)) a) (+.f64 b (-.f64 c d)))
(/.f64 (-.f64 (pow.f64 (+.f64 c b) 2) (*.f64 d d)) (/.f64 (+.f64 b (-.f64 c d)) a))
(*.f64 (/.f64 a (+.f64 c (-.f64 b d))) (-.f64 (pow.f64 (+.f64 c b) 2) (*.f64 d d)))
(*.f64 (-.f64 (pow.f64 (+.f64 c b) 2) (*.f64 d d)) (/.f64 a (+.f64 c (-.f64 b d))))
(*.f64 a (/.f64 (+.f64 c (+.f64 d b)) 1))
(pow.f64 (*.f64 a (+.f64 b (+.f64 c d))) 1)
(*.f64 a (+.f64 c (+.f64 d b)))
(pow.f64 (cbrt.f64 (*.f64 a (+.f64 b (+.f64 c d)))) 3)
(*.f64 a (+.f64 c (+.f64 d b)))
(pow.f64 (pow.f64 (*.f64 a (+.f64 b (+.f64 c d))) 2) 1/2)
(*.f64 a (+.f64 c (+.f64 d b)))
(pow.f64 (pow.f64 (*.f64 a (+.f64 b (+.f64 c d))) 3) 1/3)
(*.f64 a (+.f64 c (+.f64 d b)))
(pow.f64 (sqrt.f64 (*.f64 a (+.f64 b (+.f64 c d)))) 2)
(*.f64 a (+.f64 c (+.f64 d b)))
(sqrt.f64 (pow.f64 (*.f64 a (+.f64 b (+.f64 c d))) 2))
(*.f64 a (+.f64 c (+.f64 d b)))
(log.f64 (pow.f64 (exp.f64 a) (+.f64 b (+.f64 c d))))
(*.f64 a (+.f64 c (+.f64 d b)))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 a (+.f64 b (+.f64 c d))))))
(*.f64 a (+.f64 c (+.f64 d b)))
(log.f64 (*.f64 (exp.f64 (*.f64 a d)) (exp.f64 (*.f64 a (+.f64 b c)))))
(*.f64 a (+.f64 c (+.f64 d b)))
(cbrt.f64 (pow.f64 (*.f64 a (+.f64 b (+.f64 c d))) 3))
(*.f64 a (+.f64 c (+.f64 d b)))
(expm1.f64 (log1p.f64 (*.f64 a (+.f64 b (+.f64 c d)))))
(*.f64 a (+.f64 c (+.f64 d b)))
(exp.f64 (log.f64 (*.f64 a (+.f64 b (+.f64 c d)))))
(*.f64 a (+.f64 c (+.f64 d b)))
(exp.f64 (*.f64 (log.f64 (*.f64 a (+.f64 b (+.f64 c d)))) 1))
(*.f64 a (+.f64 c (+.f64 d b)))
(exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 a (+.f64 b (+.f64 c d)))) 1) 1))
(*.f64 a (+.f64 c (+.f64 d b)))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 a (+.f64 b (+.f64 c d))))) 3))
(*.f64 a (+.f64 c (+.f64 d b)))
(exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 a (+.f64 b (+.f64 c d))))) 1/3))
(*.f64 a (+.f64 c (+.f64 d b)))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 a (+.f64 b (+.f64 c d))))) 2))
(*.f64 a (+.f64 c (+.f64 d b)))
(log1p.f64 (expm1.f64 (*.f64 a (+.f64 b (+.f64 c d)))))
(*.f64 a (+.f64 c (+.f64 d b)))
(fma.f64 a b (*.f64 a (+.f64 c d)))
(*.f64 a (+.f64 c (+.f64 d b)))
(fma.f64 a (+.f64 b c) (*.f64 a d))
(*.f64 a (+.f64 c (+.f64 d b)))
(fma.f64 a d (*.f64 a (+.f64 b c)))
(*.f64 a (+.f64 c (+.f64 d b)))
(fma.f64 b a (*.f64 (+.f64 c d) a))
(*.f64 a (+.f64 c (+.f64 d b)))
(fma.f64 (+.f64 b c) a (*.f64 a d))
(*.f64 a (+.f64 c (+.f64 d b)))
(fma.f64 d a (*.f64 a (+.f64 b c)))
(*.f64 a (+.f64 c (+.f64 d b)))
(fma.f64 1 (*.f64 a (+.f64 b c)) (*.f64 a d))
(*.f64 a (+.f64 c (+.f64 d b)))
(fma.f64 1 (*.f64 a d) (*.f64 a (+.f64 b c)))
(*.f64 a (+.f64 c (+.f64 d b)))
(fma.f64 (pow.f64 (cbrt.f64 (+.f64 b c)) 2) (*.f64 (cbrt.f64 (+.f64 b c)) a) (*.f64 a d))
(*.f64 a (+.f64 c (+.f64 d b)))
(fma.f64 (pow.f64 (cbrt.f64 a) 2) (*.f64 (cbrt.f64 a) (+.f64 b c)) (*.f64 a d))
(*.f64 a (+.f64 c (+.f64 d b)))
(fma.f64 (pow.f64 (cbrt.f64 a) 2) (*.f64 (cbrt.f64 a) d) (*.f64 a (+.f64 b c)))
(*.f64 a (+.f64 c (+.f64 d b)))
(fma.f64 (pow.f64 (cbrt.f64 d) 2) (*.f64 (cbrt.f64 d) a) (*.f64 a (+.f64 b c)))
(*.f64 a (+.f64 c (+.f64 d b)))
(fma.f64 (sqrt.f64 (+.f64 b c)) (*.f64 (sqrt.f64 (+.f64 b c)) a) (*.f64 a d))
(*.f64 a (+.f64 c (+.f64 d b)))
(fma.f64 (sqrt.f64 a) (*.f64 (sqrt.f64 a) (+.f64 b c)) (*.f64 a d))
(*.f64 a (+.f64 c (+.f64 d b)))
(fma.f64 (sqrt.f64 a) (*.f64 (sqrt.f64 a) d) (*.f64 a (+.f64 b c)))
(*.f64 a (+.f64 c (+.f64 d b)))
(fma.f64 (sqrt.f64 d) (*.f64 (sqrt.f64 d) a) (*.f64 a (+.f64 b c)))
(*.f64 a (+.f64 c (+.f64 d b)))
(fma.f64 (*.f64 a (+.f64 b c)) 1 (*.f64 (*.f64 a d) 1))
(*.f64 a (+.f64 c (+.f64 d b)))
(fma.f64 (pow.f64 (cbrt.f64 (*.f64 a d)) 2) (cbrt.f64 (*.f64 a d)) (*.f64 a (+.f64 b c)))
(*.f64 a (+.f64 c (+.f64 d b)))
(fma.f64 (pow.f64 (cbrt.f64 (*.f64 a (+.f64 b c))) 2) (cbrt.f64 (*.f64 a (+.f64 b c))) (*.f64 a d))
(*.f64 a (+.f64 c (+.f64 d b)))
(fma.f64 (sqrt.f64 (*.f64 a (+.f64 b c))) (sqrt.f64 (*.f64 a (+.f64 b c))) (*.f64 a d))
(*.f64 a (+.f64 c (+.f64 d b)))
(fma.f64 (sqrt.f64 (*.f64 a d)) (sqrt.f64 (*.f64 a d)) (*.f64 a (+.f64 b c)))
(*.f64 a (+.f64 c (+.f64 d b)))
(fma.f64 (*.f64 d (pow.f64 (cbrt.f64 a) 2)) (cbrt.f64 a) (*.f64 a (+.f64 b c)))
(*.f64 a (+.f64 c (+.f64 d b)))
(fma.f64 (*.f64 d (sqrt.f64 a)) (sqrt.f64 a) (*.f64 a (+.f64 b c)))
(*.f64 a (+.f64 c (+.f64 d b)))
(fma.f64 (*.f64 (+.f64 b c) (pow.f64 (cbrt.f64 a) 2)) (cbrt.f64 a) (*.f64 a d))
(*.f64 a (+.f64 c (+.f64 d b)))
(fma.f64 (*.f64 (+.f64 b c) (sqrt.f64 a)) (sqrt.f64 a) (*.f64 a d))
(*.f64 a (+.f64 c (+.f64 d b)))
(fma.f64 (*.f64 a (pow.f64 (cbrt.f64 (+.f64 b c)) 2)) (cbrt.f64 (+.f64 b c)) (*.f64 a d))
(*.f64 a (+.f64 c (+.f64 d b)))
(fma.f64 (*.f64 a (sqrt.f64 (+.f64 b c))) (sqrt.f64 (+.f64 b c)) (*.f64 a d))
(*.f64 a (+.f64 c (+.f64 d b)))
(fma.f64 (*.f64 a (pow.f64 (cbrt.f64 d) 2)) (cbrt.f64 d) (*.f64 a (+.f64 b c)))
(*.f64 a (+.f64 c (+.f64 d b)))
(fma.f64 (*.f64 a (sqrt.f64 d)) (sqrt.f64 d) (*.f64 a (+.f64 b c)))
(*.f64 a (+.f64 c (+.f64 d b)))

eval14.0ms (0.4%)

Compiler

Compiled 1140 to 330 computations (71.1% saved)

prune16.0ms (0.5%)

Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New83487
Fresh000
Picked011
Done000
Total83588
Accurracy
100.0%
Counts
88 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(fma.f64 d a (*.f64 a (+.f64 b c)))
99.9%
(+.f64 (*.f64 (+.f64 d b) a) (*.f64 c a))
93.3%
(*.f64 d a)
99.9%
(*.f64 a (+.f64 (+.f64 b c) d))
99.8%
(*.f64 a (+.f64 c d))
Compiler

Compiled 52 to 33 computations (36.5% saved)

localize6.0ms (0.2%)

Local Accuracy

Found 1 expressions with local accuracy:

NewAccuracyProgram
99.9%
(*.f64 a (+.f64 c d))
Compiler

Compiled 15 to 6 computations (60% saved)

series2.0ms (0.1%)

Counts
1 → 36
Calls

9 calls:

TimeVariablePointExpression
1.0ms
a
@inf
(*.f64 a (+.f64 c d))
0.0ms
a
@0
(*.f64 a (+.f64 c d))
0.0ms
a
@-inf
(*.f64 a (+.f64 c d))
0.0ms
c
@inf
(*.f64 a (+.f64 c d))
0.0ms
d
@inf
(*.f64 a (+.f64 c d))

rewrite54.0ms (1.5%)

Algorithm
batch-egg-rewrite
Rules
1754×pow1
1626×add-exp-log
1626×log1p-expm1-u
1626×expm1-log1p-u
1596×add-log-exp
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
115413
2222113
Stop Event
node limit
Counts
1 → 24
Calls
Call 1
Inputs
(*.f64 a (+.f64 c d))
Outputs
(+.f64 (*.f64 a c) (*.f64 a d))
(+.f64 (*.f64 a d) (*.f64 a c))
(+.f64 (*.f64 (*.f64 a c) 1) (*.f64 (*.f64 a d) 1))
(-.f64 (+.f64 1 (*.f64 a (+.f64 c d))) 1)
(/.f64 (+.f64 (pow.f64 (*.f64 a c) 3) (pow.f64 (*.f64 a d) 3)) (+.f64 (*.f64 (*.f64 a c) (*.f64 a c)) (-.f64 (*.f64 (*.f64 a d) (*.f64 a d)) (*.f64 (*.f64 a c) (*.f64 a d)))))
(/.f64 (-.f64 (*.f64 (*.f64 a c) (*.f64 a c)) (*.f64 (*.f64 a d) (*.f64 a d))) (-.f64 (*.f64 a c) (*.f64 a d)))
(/.f64 (*.f64 a (+.f64 (pow.f64 d 3) (pow.f64 c 3))) (fma.f64 c c (*.f64 d (-.f64 d c))))
(/.f64 (*.f64 a (fma.f64 c c (neg.f64 (*.f64 d d)))) (-.f64 c d))
(/.f64 (*.f64 (+.f64 (pow.f64 d 3) (pow.f64 c 3)) a) (fma.f64 c c (*.f64 d (-.f64 d c))))
(/.f64 (*.f64 (fma.f64 c c (neg.f64 (*.f64 d d))) a) (-.f64 c d))
(pow.f64 (*.f64 a (+.f64 c d)) 1)
(pow.f64 (cbrt.f64 (*.f64 a (+.f64 c d))) 3)
(pow.f64 (pow.f64 (*.f64 a (+.f64 c d)) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 a (+.f64 c d))) 2)
(sqrt.f64 (pow.f64 (*.f64 a (+.f64 c d)) 2))
(log.f64 (pow.f64 (exp.f64 (+.f64 c d)) a))
(cbrt.f64 (pow.f64 (*.f64 a (+.f64 c d)) 3))
(cbrt.f64 (*.f64 (pow.f64 a 3) (pow.f64 (+.f64 c d) 3)))
(cbrt.f64 (*.f64 (pow.f64 (+.f64 c d) 3) (pow.f64 a 3)))
(expm1.f64 (log1p.f64 (*.f64 a (+.f64 c d))))
(exp.f64 (log.f64 (*.f64 a (+.f64 c d))))
(log1p.f64 (expm1.f64 (*.f64 a (+.f64 c d))))
(fma.f64 a c (*.f64 a d))
(fma.f64 c a (*.f64 a d))

simplify57.0ms (1.6%)

Algorithm
egg-herbie
Rules
1062×associate-/r*
718×fma-def
648×associate-*r/
508×associate-+r+
442×div-sub
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
083894
1240888
2943886
33875876
Stop Event
node limit
Counts
60 → 36
Calls
Call 1
Inputs
(*.f64 (+.f64 c d) a)
(*.f64 (+.f64 c d) a)
(*.f64 (+.f64 c d) a)
(*.f64 (+.f64 c d) a)
(*.f64 (+.f64 c d) a)
(*.f64 (+.f64 c d) a)
(*.f64 (+.f64 c d) a)
(*.f64 (+.f64 c d) a)
(*.f64 (+.f64 c d) a)
(*.f64 (+.f64 c d) a)
(*.f64 (+.f64 c d) a)
(*.f64 (+.f64 c d) a)
(*.f64 a d)
(+.f64 (*.f64 c a) (*.f64 a d))
(+.f64 (*.f64 c a) (*.f64 a d))
(+.f64 (*.f64 c a) (*.f64 a d))
(*.f64 c a)
(+.f64 (*.f64 a d) (*.f64 c a))
(+.f64 (*.f64 a d) (*.f64 c a))
(+.f64 (*.f64 a d) (*.f64 c a))
(*.f64 c a)
(+.f64 (*.f64 a d) (*.f64 c a))
(+.f64 (*.f64 a d) (*.f64 c a))
(+.f64 (*.f64 a d) (*.f64 c a))
(*.f64 c a)
(+.f64 (*.f64 a d) (*.f64 c a))
(+.f64 (*.f64 a d) (*.f64 c a))
(+.f64 (*.f64 a d) (*.f64 c a))
(*.f64 a d)
(+.f64 (*.f64 c a) (*.f64 a d))
(+.f64 (*.f64 c a) (*.f64 a d))
(+.f64 (*.f64 c a) (*.f64 a d))
(*.f64 a d)
(+.f64 (*.f64 c a) (*.f64 a d))
(+.f64 (*.f64 c a) (*.f64 a d))
(+.f64 (*.f64 c a) (*.f64 a d))
(+.f64 (*.f64 a c) (*.f64 a d))
(+.f64 (*.f64 a d) (*.f64 a c))
(+.f64 (*.f64 (*.f64 a c) 1) (*.f64 (*.f64 a d) 1))
(-.f64 (+.f64 1 (*.f64 a (+.f64 c d))) 1)
(/.f64 (+.f64 (pow.f64 (*.f64 a c) 3) (pow.f64 (*.f64 a d) 3)) (+.f64 (*.f64 (*.f64 a c) (*.f64 a c)) (-.f64 (*.f64 (*.f64 a d) (*.f64 a d)) (*.f64 (*.f64 a c) (*.f64 a d)))))
(/.f64 (-.f64 (*.f64 (*.f64 a c) (*.f64 a c)) (*.f64 (*.f64 a d) (*.f64 a d))) (-.f64 (*.f64 a c) (*.f64 a d)))
(/.f64 (*.f64 a (+.f64 (pow.f64 d 3) (pow.f64 c 3))) (fma.f64 c c (*.f64 d (-.f64 d c))))
(/.f64 (*.f64 a (fma.f64 c c (neg.f64 (*.f64 d d)))) (-.f64 c d))
(/.f64 (*.f64 (+.f64 (pow.f64 d 3) (pow.f64 c 3)) a) (fma.f64 c c (*.f64 d (-.f64 d c))))
(/.f64 (*.f64 (fma.f64 c c (neg.f64 (*.f64 d d))) a) (-.f64 c d))
(pow.f64 (*.f64 a (+.f64 c d)) 1)
(pow.f64 (cbrt.f64 (*.f64 a (+.f64 c d))) 3)
(pow.f64 (pow.f64 (*.f64 a (+.f64 c d)) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 a (+.f64 c d))) 2)
(sqrt.f64 (pow.f64 (*.f64 a (+.f64 c d)) 2))
(log.f64 (pow.f64 (exp.f64 (+.f64 c d)) a))
(cbrt.f64 (pow.f64 (*.f64 a (+.f64 c d)) 3))
(cbrt.f64 (*.f64 (pow.f64 a 3) (pow.f64 (+.f64 c d) 3)))
(cbrt.f64 (*.f64 (pow.f64 (+.f64 c d) 3) (pow.f64 a 3)))
(expm1.f64 (log1p.f64 (*.f64 a (+.f64 c d))))
(exp.f64 (log.f64 (*.f64 a (+.f64 c d))))
(log1p.f64 (expm1.f64 (*.f64 a (+.f64 c d))))
(fma.f64 a c (*.f64 a d))
(fma.f64 c a (*.f64 a d))
Outputs
(*.f64 (+.f64 c d) a)
(*.f64 (+.f64 c d) a)
(*.f64 (+.f64 c d) a)
(*.f64 (+.f64 c d) a)
(*.f64 (+.f64 c d) a)
(*.f64 (+.f64 c d) a)
(*.f64 (+.f64 c d) a)
(*.f64 (+.f64 c d) a)
(*.f64 (+.f64 c d) a)
(*.f64 (+.f64 c d) a)
(*.f64 (+.f64 c d) a)
(*.f64 (+.f64 c d) a)
(*.f64 a d)
(*.f64 d a)
(+.f64 (*.f64 c a) (*.f64 a d))
(*.f64 (+.f64 c d) a)
(+.f64 (*.f64 c a) (*.f64 a d))
(*.f64 (+.f64 c d) a)
(+.f64 (*.f64 c a) (*.f64 a d))
(*.f64 (+.f64 c d) a)
(*.f64 c a)
(+.f64 (*.f64 a d) (*.f64 c a))
(*.f64 (+.f64 c d) a)
(+.f64 (*.f64 a d) (*.f64 c a))
(*.f64 (+.f64 c d) a)
(+.f64 (*.f64 a d) (*.f64 c a))
(*.f64 (+.f64 c d) a)
(*.f64 c a)
(+.f64 (*.f64 a d) (*.f64 c a))
(*.f64 (+.f64 c d) a)
(+.f64 (*.f64 a d) (*.f64 c a))
(*.f64 (+.f64 c d) a)
(+.f64 (*.f64 a d) (*.f64 c a))
(*.f64 (+.f64 c d) a)
(*.f64 c a)
(+.f64 (*.f64 a d) (*.f64 c a))
(*.f64 (+.f64 c d) a)
(+.f64 (*.f64 a d) (*.f64 c a))
(*.f64 (+.f64 c d) a)
(+.f64 (*.f64 a d) (*.f64 c a))
(*.f64 (+.f64 c d) a)
(*.f64 a d)
(*.f64 d a)
(+.f64 (*.f64 c a) (*.f64 a d))
(*.f64 (+.f64 c d) a)
(+.f64 (*.f64 c a) (*.f64 a d))
(*.f64 (+.f64 c d) a)
(+.f64 (*.f64 c a) (*.f64 a d))
(*.f64 (+.f64 c d) a)
(*.f64 a d)
(*.f64 d a)
(+.f64 (*.f64 c a) (*.f64 a d))
(*.f64 (+.f64 c d) a)
(+.f64 (*.f64 c a) (*.f64 a d))
(*.f64 (+.f64 c d) a)
(+.f64 (*.f64 c a) (*.f64 a d))
(*.f64 (+.f64 c d) a)
(+.f64 (*.f64 a c) (*.f64 a d))
(*.f64 (+.f64 c d) a)
(+.f64 (*.f64 a d) (*.f64 a c))
(*.f64 (+.f64 c d) a)
(+.f64 (*.f64 (*.f64 a c) 1) (*.f64 (*.f64 a d) 1))
(*.f64 (+.f64 c d) a)
(-.f64 (+.f64 1 (*.f64 a (+.f64 c d))) 1)
(*.f64 (+.f64 c d) a)
(/.f64 (+.f64 (pow.f64 (*.f64 a c) 3) (pow.f64 (*.f64 a d) 3)) (+.f64 (*.f64 (*.f64 a c) (*.f64 a c)) (-.f64 (*.f64 (*.f64 a d) (*.f64 a d)) (*.f64 (*.f64 a c) (*.f64 a d)))))
(/.f64 (+.f64 (pow.f64 (*.f64 c a) 3) (pow.f64 (*.f64 d a) 3)) (fma.f64 (*.f64 c a) (*.f64 c a) (*.f64 (*.f64 d a) (-.f64 (*.f64 d a) (*.f64 c a)))))
(/.f64 (+.f64 (pow.f64 (*.f64 c a) 3) (pow.f64 (*.f64 d a) 3)) (fma.f64 a (*.f64 c (*.f64 c a)) (*.f64 (*.f64 d a) (*.f64 a (-.f64 d c)))))
(/.f64 (*.f64 (+.f64 (pow.f64 d 3) (pow.f64 c 3)) (pow.f64 a 3)) (*.f64 a (+.f64 (*.f64 c (*.f64 c a)) (*.f64 (*.f64 d a) (-.f64 d c)))))
(*.f64 (/.f64 (pow.f64 a 3) (*.f64 a (*.f64 a (fma.f64 d (-.f64 d c) (*.f64 c c))))) (+.f64 (pow.f64 d 3) (pow.f64 c 3)))
(/.f64 (-.f64 (*.f64 (*.f64 a c) (*.f64 a c)) (*.f64 (*.f64 a d) (*.f64 a d))) (-.f64 (*.f64 a c) (*.f64 a d)))
(*.f64 (+.f64 c d) a)
(/.f64 (*.f64 a (+.f64 (pow.f64 d 3) (pow.f64 c 3))) (fma.f64 c c (*.f64 d (-.f64 d c))))
(/.f64 (+.f64 (pow.f64 d 3) (pow.f64 c 3)) (/.f64 (fma.f64 c c (*.f64 d (-.f64 d c))) a))
(*.f64 a (/.f64 (+.f64 (pow.f64 d 3) (pow.f64 c 3)) (fma.f64 d (-.f64 d c) (*.f64 c c))))
(/.f64 (*.f64 a (fma.f64 c c (neg.f64 (*.f64 d d)))) (-.f64 c d))
(*.f64 (+.f64 c d) a)
(/.f64 (*.f64 (+.f64 (pow.f64 d 3) (pow.f64 c 3)) a) (fma.f64 c c (*.f64 d (-.f64 d c))))
(/.f64 (+.f64 (pow.f64 d 3) (pow.f64 c 3)) (/.f64 (fma.f64 c c (*.f64 d (-.f64 d c))) a))
(*.f64 a (/.f64 (+.f64 (pow.f64 d 3) (pow.f64 c 3)) (fma.f64 d (-.f64 d c) (*.f64 c c))))
(/.f64 (*.f64 (fma.f64 c c (neg.f64 (*.f64 d d))) a) (-.f64 c d))
(*.f64 (+.f64 c d) a)
(pow.f64 (*.f64 a (+.f64 c d)) 1)
(*.f64 (+.f64 c d) a)
(pow.f64 (cbrt.f64 (*.f64 a (+.f64 c d))) 3)
(*.f64 (+.f64 c d) a)
(pow.f64 (pow.f64 (*.f64 a (+.f64 c d)) 3) 1/3)
(*.f64 (+.f64 c d) a)
(pow.f64 (sqrt.f64 (*.f64 a (+.f64 c d))) 2)
(*.f64 (+.f64 c d) a)
(sqrt.f64 (pow.f64 (*.f64 a (+.f64 c d)) 2))
(*.f64 (+.f64 c d) a)
(log.f64 (pow.f64 (exp.f64 (+.f64 c d)) a))
(*.f64 (+.f64 c d) a)
(cbrt.f64 (pow.f64 (*.f64 a (+.f64 c d)) 3))
(*.f64 (+.f64 c d) a)
(cbrt.f64 (*.f64 (pow.f64 a 3) (pow.f64 (+.f64 c d) 3)))
(*.f64 (+.f64 c d) a)
(cbrt.f64 (*.f64 (pow.f64 (+.f64 c d) 3) (pow.f64 a 3)))
(*.f64 (+.f64 c d) a)
(expm1.f64 (log1p.f64 (*.f64 a (+.f64 c d))))
(*.f64 (+.f64 c d) a)
(exp.f64 (log.f64 (*.f64 a (+.f64 c d))))
(*.f64 (+.f64 c d) a)
(log1p.f64 (expm1.f64 (*.f64 a (+.f64 c d))))
(*.f64 (+.f64 c d) a)
(fma.f64 a c (*.f64 a d))
(*.f64 (+.f64 c d) a)
(fma.f64 c a (*.f64 a d))
(*.f64 (+.f64 c d) a)

localize4.0ms (0.1%)

Compiler

Compiled 9 to 5 computations (44.4% saved)

localize9.0ms (0.2%)

Local Accuracy

Found 1 expressions with local accuracy:

NewAccuracyProgram
99.9%
(+.f64 (*.f64 (+.f64 d b) a) (*.f64 c a))
Compiler

Compiled 28 to 8 computations (71.4% saved)

series5.0ms (0.1%)

Counts
1 → 39
Calls

12 calls:

TimeVariablePointExpression
2.0ms
a
@-inf
(+.f64 (*.f64 (+.f64 d b) a) (*.f64 c a))
1.0ms
a
@inf
(+.f64 (*.f64 (+.f64 d b) a) (*.f64 c a))
0.0ms
a
@0
(+.f64 (*.f64 (+.f64 d b) a) (*.f64 c a))
0.0ms
d
@0
(+.f64 (*.f64 (+.f64 d b) a) (*.f64 c a))
0.0ms
d
@-inf
(+.f64 (*.f64 (+.f64 d b) a) (*.f64 c a))

rewrite181.0ms (5.1%)

Algorithm
batch-egg-rewrite
Rules
1168×log-prod
1142×fma-def
936×pow-prod-down
550×pow-prod-up
550×pow-exp
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01019
122119
2321419
Stop Event
node limit
Counts
1 → 76
Calls
Call 1
Inputs
(+.f64 (*.f64 (+.f64 d b) a) (*.f64 c a))
Outputs
(-.f64 (exp.f64 (log1p.f64 (*.f64 a (+.f64 d (+.f64 b c))))) 1)
(-.f64 (/.f64 (pow.f64 (*.f64 (+.f64 d b) a) 2) (*.f64 a (-.f64 (+.f64 d b) c))) (/.f64 (pow.f64 (*.f64 a c) 2) (*.f64 a (-.f64 (+.f64 d b) c))))
(*.f64 a (+.f64 d (+.f64 b c)))
(*.f64 (*.f64 a (+.f64 d (+.f64 b c))) 1)
(*.f64 1 (*.f64 a (+.f64 d (+.f64 b c))))
(*.f64 (pow.f64 (cbrt.f64 a) 2) (*.f64 (cbrt.f64 a) (+.f64 d (+.f64 b c))))
(*.f64 (cbrt.f64 (*.f64 a (+.f64 d (+.f64 b c)))) (pow.f64 (cbrt.f64 (*.f64 a (+.f64 d (+.f64 b c)))) 2))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 a (+.f64 d (+.f64 b c)))) 2) (cbrt.f64 (*.f64 a (+.f64 d (+.f64 b c)))))
(*.f64 (sqrt.f64 a) (*.f64 (sqrt.f64 a) (+.f64 d (+.f64 b c))))
(*.f64 (sqrt.f64 (*.f64 a (+.f64 d (+.f64 b c)))) (sqrt.f64 (*.f64 a (+.f64 d (+.f64 b c)))))
(*.f64 (+.f64 (pow.f64 (*.f64 a c) 3) (pow.f64 (*.f64 (+.f64 d b) a) 3)) (/.f64 1 (fma.f64 (*.f64 a c) (-.f64 (*.f64 a c) (*.f64 (+.f64 d b) a)) (pow.f64 (*.f64 (+.f64 d b) a) 2))))
(*.f64 (-.f64 (pow.f64 (*.f64 (+.f64 d b) a) 2) (pow.f64 (*.f64 a c) 2)) (/.f64 1 (*.f64 a (-.f64 (+.f64 d b) c))))
(*.f64 (+.f64 d (+.f64 b c)) a)
(/.f64 1 (/.f64 (fma.f64 (*.f64 a c) (-.f64 (*.f64 a c) (*.f64 (+.f64 d b) a)) (pow.f64 (*.f64 (+.f64 d b) a) 2)) (+.f64 (pow.f64 (*.f64 a c) 3) (pow.f64 (*.f64 (+.f64 d b) a) 3))))
(/.f64 1 (/.f64 (*.f64 a (-.f64 (+.f64 d b) c)) (-.f64 (pow.f64 (*.f64 (+.f64 d b) a) 2) (pow.f64 (*.f64 a c) 2))))
(/.f64 (+.f64 (pow.f64 (*.f64 a c) 3) (pow.f64 (*.f64 (+.f64 d b) a) 3)) (fma.f64 (*.f64 a c) (-.f64 (*.f64 a c) (*.f64 (+.f64 d b) a)) (pow.f64 (*.f64 (+.f64 d b) a) 2)))
(/.f64 (+.f64 (pow.f64 (*.f64 a c) 3) (pow.f64 (*.f64 (+.f64 d b) a) 3)) (+.f64 (pow.f64 (*.f64 a c) 2) (-.f64 (pow.f64 (*.f64 (+.f64 d b) a) 2) (*.f64 (+.f64 d b) (*.f64 a (*.f64 a c))))))
(/.f64 (-.f64 (pow.f64 (*.f64 (+.f64 d b) a) 2) (pow.f64 (*.f64 a c) 2)) (*.f64 a (-.f64 (+.f64 d b) c)))
(/.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 a c) 3) (pow.f64 (*.f64 (+.f64 d b) a) 3))) (neg.f64 (fma.f64 (*.f64 a c) (-.f64 (*.f64 a c) (*.f64 (+.f64 d b) a)) (pow.f64 (*.f64 (+.f64 d b) a) 2))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 (+.f64 d b) a) 2) (pow.f64 (*.f64 a c) 2))) (neg.f64 (*.f64 a (-.f64 (+.f64 d b) c))))
(/.f64 (-.f64 (pow.f64 (*.f64 a c) 2) (pow.f64 (*.f64 (+.f64 d b) a) 2)) (-.f64 (*.f64 a c) (*.f64 (+.f64 d b) a)))
(pow.f64 (*.f64 a (+.f64 d (+.f64 b c))) 1)
(pow.f64 (cbrt.f64 (*.f64 a (+.f64 d (+.f64 b c)))) 3)
(pow.f64 (pow.f64 (*.f64 a (+.f64 d (+.f64 b c))) 2) 1/2)
(pow.f64 (pow.f64 (*.f64 a (+.f64 d (+.f64 b c))) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 a (+.f64 d (+.f64 b c)))) 2)
(pow.f64 (/.f64 (fma.f64 (*.f64 a c) (-.f64 (*.f64 a c) (*.f64 (+.f64 d b) a)) (pow.f64 (*.f64 (+.f64 d b) a) 2)) (+.f64 (pow.f64 (*.f64 a c) 3) (pow.f64 (*.f64 (+.f64 d b) a) 3))) -1)
(pow.f64 (/.f64 (*.f64 a (-.f64 (+.f64 d b) c)) (-.f64 (pow.f64 (*.f64 (+.f64 d b) a) 2) (pow.f64 (*.f64 a c) 2))) -1)
(sqrt.f64 (pow.f64 (*.f64 a (+.f64 d (+.f64 b c))) 2))
(log.f64 (pow.f64 (exp.f64 a) (+.f64 d (+.f64 b c))))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 a (+.f64 d (+.f64 b c))))))
(log.f64 (*.f64 (pow.f64 (exp.f64 a) (+.f64 d b)) (+.f64 1 (expm1.f64 (*.f64 a c)))))
(log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 (+.f64 d b) a))) (pow.f64 (exp.f64 a) c)))
(log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 (+.f64 d b) a))) (+.f64 1 (expm1.f64 (*.f64 a c)))))
(log.f64 (*.f64 (pow.f64 (exp.f64 a) c) (+.f64 1 (expm1.f64 (*.f64 (+.f64 d b) a)))))
(log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 a c))) (pow.f64 (exp.f64 a) (+.f64 d b))))
(log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 a c))) (+.f64 1 (expm1.f64 (*.f64 (+.f64 d b) a)))))
(cbrt.f64 (pow.f64 (*.f64 a (+.f64 d (+.f64 b c))) 3))
(expm1.f64 (log1p.f64 (*.f64 a (+.f64 d (+.f64 b c)))))
(exp.f64 (log.f64 (*.f64 a (+.f64 d (+.f64 b c)))))
(exp.f64 (*.f64 (log.f64 (*.f64 a (+.f64 d (+.f64 b c)))) 1))
(exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 a (+.f64 d (+.f64 b c)))) 1) 1))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 a (+.f64 d (+.f64 b c))))) 3))
(exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 a (+.f64 d (+.f64 b c))))) 1/3))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 a (+.f64 d (+.f64 b c))))) 2))
(log1p.f64 (expm1.f64 (*.f64 a (+.f64 d (+.f64 b c)))))
(fma.f64 (+.f64 d b) a (*.f64 a c))
(fma.f64 a (+.f64 d b) (*.f64 a c))
(fma.f64 a c (*.f64 (+.f64 d b) a))
(fma.f64 (*.f64 (+.f64 d b) a) 1 (*.f64 a c))
(fma.f64 c a (*.f64 (+.f64 d b) a))
(fma.f64 (*.f64 a c) 1 (*.f64 (+.f64 d b) a))
(fma.f64 1 (*.f64 (+.f64 d b) a) (*.f64 a c))
(fma.f64 1 (*.f64 a c) (*.f64 (+.f64 d b) a))
(fma.f64 (pow.f64 (cbrt.f64 c) 2) (*.f64 (cbrt.f64 c) a) (*.f64 (+.f64 d b) a))
(fma.f64 (pow.f64 (cbrt.f64 (+.f64 d b)) 2) (*.f64 (cbrt.f64 (+.f64 d b)) a) (*.f64 a c))
(fma.f64 (cbrt.f64 (*.f64 a c)) (pow.f64 (cbrt.f64 (*.f64 a c)) 2) (*.f64 (+.f64 d b) a))
(fma.f64 (pow.f64 (cbrt.f64 (*.f64 a c)) 2) (cbrt.f64 (*.f64 a c)) (*.f64 (+.f64 d b) a))
(fma.f64 (pow.f64 (cbrt.f64 a) 2) (*.f64 (cbrt.f64 a) c) (*.f64 (+.f64 d b) a))
(fma.f64 (pow.f64 (cbrt.f64 a) 2) (*.f64 (cbrt.f64 a) (+.f64 d b)) (*.f64 a c))
(fma.f64 (cbrt.f64 (*.f64 (+.f64 d b) a)) (pow.f64 (cbrt.f64 (*.f64 (+.f64 d b) a)) 2) (*.f64 a c))
(fma.f64 (pow.f64 (cbrt.f64 (*.f64 (+.f64 d b) a)) 2) (cbrt.f64 (*.f64 (+.f64 d b) a)) (*.f64 a c))
(fma.f64 (sqrt.f64 c) (*.f64 (sqrt.f64 c) a) (*.f64 (+.f64 d b) a))
(fma.f64 (sqrt.f64 (+.f64 d b)) (*.f64 (sqrt.f64 (+.f64 d b)) a) (*.f64 a c))
(fma.f64 (sqrt.f64 (*.f64 a c)) (sqrt.f64 (*.f64 a c)) (*.f64 (+.f64 d b) a))
(fma.f64 (sqrt.f64 a) (*.f64 (sqrt.f64 a) c) (*.f64 (+.f64 d b) a))
(fma.f64 (sqrt.f64 a) (*.f64 (sqrt.f64 a) (+.f64 d b)) (*.f64 a c))
(fma.f64 (sqrt.f64 (*.f64 (+.f64 d b) a)) (sqrt.f64 (*.f64 (+.f64 d b) a)) (*.f64 a c))
(fma.f64 (*.f64 a (pow.f64 (cbrt.f64 c) 2)) (cbrt.f64 c) (*.f64 (+.f64 d b) a))
(fma.f64 (*.f64 a (sqrt.f64 c)) (sqrt.f64 c) (*.f64 (+.f64 d b) a))
(fma.f64 (*.f64 c (pow.f64 (cbrt.f64 a) 2)) (cbrt.f64 a) (*.f64 (+.f64 d b) a))
(fma.f64 (*.f64 c (sqrt.f64 a)) (sqrt.f64 a) (*.f64 (+.f64 d b) a))
(fma.f64 (*.f64 (+.f64 d b) (pow.f64 (cbrt.f64 a) 2)) (cbrt.f64 a) (*.f64 a c))
(fma.f64 (*.f64 (+.f64 d b) (sqrt.f64 a)) (sqrt.f64 a) (*.f64 a c))
(fma.f64 (*.f64 a (pow.f64 (cbrt.f64 (+.f64 d b)) 2)) (cbrt.f64 (+.f64 d b)) (*.f64 a c))
(fma.f64 (*.f64 a (sqrt.f64 (+.f64 d b))) (sqrt.f64 (+.f64 d b)) (*.f64 a c))

simplify332.0ms (9.3%)

Algorithm
egg-herbie
Rules
1554×times-frac
1172×distribute-lft-in
1136×distribute-rgt-in
1066×fma-def
524×associate-/l*
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
02003281
15692833
216212833
Stop Event
node limit
Counts
115 → 99
Calls
Call 1
Inputs
(+.f64 (*.f64 a b) (*.f64 c a))
(+.f64 (*.f64 a b) (+.f64 (*.f64 a d) (*.f64 c a)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 a d) (*.f64 c a)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 a d) (*.f64 c a)))
(*.f64 a d)
(+.f64 (*.f64 a b) (+.f64 (*.f64 c a) (*.f64 a d)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 c a) (*.f64 a d)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 c a) (*.f64 a d)))
(*.f64 a d)
(+.f64 (*.f64 a b) (+.f64 (*.f64 c a) (*.f64 a d)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 c a) (*.f64 a d)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 c a) (*.f64 a d)))
(+.f64 (*.f64 a d) (*.f64 c a))
(+.f64 (*.f64 a b) (+.f64 (*.f64 c a) (*.f64 a d)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 c a) (*.f64 a d)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 c a) (*.f64 a d)))
(*.f64 a b)
(+.f64 (*.f64 a b) (+.f64 (*.f64 c a) (*.f64 a d)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 c a) (*.f64 a d)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 c a) (*.f64 a d)))
(*.f64 a b)
(+.f64 (*.f64 a b) (+.f64 (*.f64 c a) (*.f64 a d)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 c a) (*.f64 a d)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 c a) (*.f64 a d)))
(*.f64 (+.f64 c (+.f64 d b)) a)
(*.f64 (+.f64 c (+.f64 d b)) a)
(*.f64 (+.f64 c (+.f64 d b)) a)
(*.f64 (+.f64 c (+.f64 d b)) a)
(*.f64 (+.f64 c (+.f64 d b)) a)
(*.f64 (+.f64 c (+.f64 d b)) a)
(*.f64 (+.f64 c (+.f64 d b)) a)
(*.f64 (+.f64 c (+.f64 d b)) a)
(*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 c) (*.f64 -1 (+.f64 d b)))))
(*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 c) (*.f64 -1 (+.f64 d b)))))
(*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 c) (*.f64 -1 (+.f64 d b)))))
(*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 c) (*.f64 -1 (+.f64 d b)))))
(*.f64 (+.f64 d b) a)
(*.f64 c a)
(*.f64 c a)
(-.f64 (exp.f64 (log1p.f64 (*.f64 a (+.f64 d (+.f64 b c))))) 1)
(-.f64 (/.f64 (pow.f64 (*.f64 (+.f64 d b) a) 2) (*.f64 a (-.f64 (+.f64 d b) c))) (/.f64 (pow.f64 (*.f64 a c) 2) (*.f64 a (-.f64 (+.f64 d b) c))))
(*.f64 a (+.f64 d (+.f64 b c)))
(*.f64 (*.f64 a (+.f64 d (+.f64 b c))) 1)
(*.f64 1 (*.f64 a (+.f64 d (+.f64 b c))))
(*.f64 (pow.f64 (cbrt.f64 a) 2) (*.f64 (cbrt.f64 a) (+.f64 d (+.f64 b c))))
(*.f64 (cbrt.f64 (*.f64 a (+.f64 d (+.f64 b c)))) (pow.f64 (cbrt.f64 (*.f64 a (+.f64 d (+.f64 b c)))) 2))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 a (+.f64 d (+.f64 b c)))) 2) (cbrt.f64 (*.f64 a (+.f64 d (+.f64 b c)))))
(*.f64 (sqrt.f64 a) (*.f64 (sqrt.f64 a) (+.f64 d (+.f64 b c))))
(*.f64 (sqrt.f64 (*.f64 a (+.f64 d (+.f64 b c)))) (sqrt.f64 (*.f64 a (+.f64 d (+.f64 b c)))))
(*.f64 (+.f64 (pow.f64 (*.f64 a c) 3) (pow.f64 (*.f64 (+.f64 d b) a) 3)) (/.f64 1 (fma.f64 (*.f64 a c) (-.f64 (*.f64 a c) (*.f64 (+.f64 d b) a)) (pow.f64 (*.f64 (+.f64 d b) a) 2))))
(*.f64 (-.f64 (pow.f64 (*.f64 (+.f64 d b) a) 2) (pow.f64 (*.f64 a c) 2)) (/.f64 1 (*.f64 a (-.f64 (+.f64 d b) c))))
(*.f64 (+.f64 d (+.f64 b c)) a)
(/.f64 1 (/.f64 (fma.f64 (*.f64 a c) (-.f64 (*.f64 a c) (*.f64 (+.f64 d b) a)) (pow.f64 (*.f64 (+.f64 d b) a) 2)) (+.f64 (pow.f64 (*.f64 a c) 3) (pow.f64 (*.f64 (+.f64 d b) a) 3))))
(/.f64 1 (/.f64 (*.f64 a (-.f64 (+.f64 d b) c)) (-.f64 (pow.f64 (*.f64 (+.f64 d b) a) 2) (pow.f64 (*.f64 a c) 2))))
(/.f64 (+.f64 (pow.f64 (*.f64 a c) 3) (pow.f64 (*.f64 (+.f64 d b) a) 3)) (fma.f64 (*.f64 a c) (-.f64 (*.f64 a c) (*.f64 (+.f64 d b) a)) (pow.f64 (*.f64 (+.f64 d b) a) 2)))
(/.f64 (+.f64 (pow.f64 (*.f64 a c) 3) (pow.f64 (*.f64 (+.f64 d b) a) 3)) (+.f64 (pow.f64 (*.f64 a c) 2) (-.f64 (pow.f64 (*.f64 (+.f64 d b) a) 2) (*.f64 (+.f64 d b) (*.f64 a (*.f64 a c))))))
(/.f64 (-.f64 (pow.f64 (*.f64 (+.f64 d b) a) 2) (pow.f64 (*.f64 a c) 2)) (*.f64 a (-.f64 (+.f64 d b) c)))
(/.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 a c) 3) (pow.f64 (*.f64 (+.f64 d b) a) 3))) (neg.f64 (fma.f64 (*.f64 a c) (-.f64 (*.f64 a c) (*.f64 (+.f64 d b) a)) (pow.f64 (*.f64 (+.f64 d b) a) 2))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 (+.f64 d b) a) 2) (pow.f64 (*.f64 a c) 2))) (neg.f64 (*.f64 a (-.f64 (+.f64 d b) c))))
(/.f64 (-.f64 (pow.f64 (*.f64 a c) 2) (pow.f64 (*.f64 (+.f64 d b) a) 2)) (-.f64 (*.f64 a c) (*.f64 (+.f64 d b) a)))
(pow.f64 (*.f64 a (+.f64 d (+.f64 b c))) 1)
(pow.f64 (cbrt.f64 (*.f64 a (+.f64 d (+.f64 b c)))) 3)
(pow.f64 (pow.f64 (*.f64 a (+.f64 d (+.f64 b c))) 2) 1/2)
(pow.f64 (pow.f64 (*.f64 a (+.f64 d (+.f64 b c))) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 a (+.f64 d (+.f64 b c)))) 2)
(pow.f64 (/.f64 (fma.f64 (*.f64 a c) (-.f64 (*.f64 a c) (*.f64 (+.f64 d b) a)) (pow.f64 (*.f64 (+.f64 d b) a) 2)) (+.f64 (pow.f64 (*.f64 a c) 3) (pow.f64 (*.f64 (+.f64 d b) a) 3))) -1)
(pow.f64 (/.f64 (*.f64 a (-.f64 (+.f64 d b) c)) (-.f64 (pow.f64 (*.f64 (+.f64 d b) a) 2) (pow.f64 (*.f64 a c) 2))) -1)
(sqrt.f64 (pow.f64 (*.f64 a (+.f64 d (+.f64 b c))) 2))
(log.f64 (pow.f64 (exp.f64 a) (+.f64 d (+.f64 b c))))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 a (+.f64 d (+.f64 b c))))))
(log.f64 (*.f64 (pow.f64 (exp.f64 a) (+.f64 d b)) (+.f64 1 (expm1.f64 (*.f64 a c)))))
(log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 (+.f64 d b) a))) (pow.f64 (exp.f64 a) c)))
(log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 (+.f64 d b) a))) (+.f64 1 (expm1.f64 (*.f64 a c)))))
(log.f64 (*.f64 (pow.f64 (exp.f64 a) c) (+.f64 1 (expm1.f64 (*.f64 (+.f64 d b) a)))))
(log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 a c))) (pow.f64 (exp.f64 a) (+.f64 d b))))
(log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 a c))) (+.f64 1 (expm1.f64 (*.f64 (+.f64 d b) a)))))
(cbrt.f64 (pow.f64 (*.f64 a (+.f64 d (+.f64 b c))) 3))
(expm1.f64 (log1p.f64 (*.f64 a (+.f64 d (+.f64 b c)))))
(exp.f64 (log.f64 (*.f64 a (+.f64 d (+.f64 b c)))))
(exp.f64 (*.f64 (log.f64 (*.f64 a (+.f64 d (+.f64 b c)))) 1))
(exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 a (+.f64 d (+.f64 b c)))) 1) 1))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 a (+.f64 d (+.f64 b c))))) 3))
(exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 a (+.f64 d (+.f64 b c))))) 1/3))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 a (+.f64 d (+.f64 b c))))) 2))
(log1p.f64 (expm1.f64 (*.f64 a (+.f64 d (+.f64 b c)))))
(fma.f64 (+.f64 d b) a (*.f64 a c))
(fma.f64 a (+.f64 d b) (*.f64 a c))
(fma.f64 a c (*.f64 (+.f64 d b) a))
(fma.f64 (*.f64 (+.f64 d b) a) 1 (*.f64 a c))
(fma.f64 c a (*.f64 (+.f64 d b) a))
(fma.f64 (*.f64 a c) 1 (*.f64 (+.f64 d b) a))
(fma.f64 1 (*.f64 (+.f64 d b) a) (*.f64 a c))
(fma.f64 1 (*.f64 a c) (*.f64 (+.f64 d b) a))
(fma.f64 (pow.f64 (cbrt.f64 c) 2) (*.f64 (cbrt.f64 c) a) (*.f64 (+.f64 d b) a))
(fma.f64 (pow.f64 (cbrt.f64 (+.f64 d b)) 2) (*.f64 (cbrt.f64 (+.f64 d b)) a) (*.f64 a c))
(fma.f64 (cbrt.f64 (*.f64 a c)) (pow.f64 (cbrt.f64 (*.f64 a c)) 2) (*.f64 (+.f64 d b) a))
(fma.f64 (pow.f64 (cbrt.f64 (*.f64 a c)) 2) (cbrt.f64 (*.f64 a c)) (*.f64 (+.f64 d b) a))
(fma.f64 (pow.f64 (cbrt.f64 a) 2) (*.f64 (cbrt.f64 a) c) (*.f64 (+.f64 d b) a))
(fma.f64 (pow.f64 (cbrt.f64 a) 2) (*.f64 (cbrt.f64 a) (+.f64 d b)) (*.f64 a c))
(fma.f64 (cbrt.f64 (*.f64 (+.f64 d b) a)) (pow.f64 (cbrt.f64 (*.f64 (+.f64 d b) a)) 2) (*.f64 a c))
(fma.f64 (pow.f64 (cbrt.f64 (*.f64 (+.f64 d b) a)) 2) (cbrt.f64 (*.f64 (+.f64 d b) a)) (*.f64 a c))
(fma.f64 (sqrt.f64 c) (*.f64 (sqrt.f64 c) a) (*.f64 (+.f64 d b) a))
(fma.f64 (sqrt.f64 (+.f64 d b)) (*.f64 (sqrt.f64 (+.f64 d b)) a) (*.f64 a c))
(fma.f64 (sqrt.f64 (*.f64 a c)) (sqrt.f64 (*.f64 a c)) (*.f64 (+.f64 d b) a))
(fma.f64 (sqrt.f64 a) (*.f64 (sqrt.f64 a) c) (*.f64 (+.f64 d b) a))
(fma.f64 (sqrt.f64 a) (*.f64 (sqrt.f64 a) (+.f64 d b)) (*.f64 a c))
(fma.f64 (sqrt.f64 (*.f64 (+.f64 d b) a)) (sqrt.f64 (*.f64 (+.f64 d b) a)) (*.f64 a c))
(fma.f64 (*.f64 a (pow.f64 (cbrt.f64 c) 2)) (cbrt.f64 c) (*.f64 (+.f64 d b) a))
(fma.f64 (*.f64 a (sqrt.f64 c)) (sqrt.f64 c) (*.f64 (+.f64 d b) a))
(fma.f64 (*.f64 c (pow.f64 (cbrt.f64 a) 2)) (cbrt.f64 a) (*.f64 (+.f64 d b) a))
(fma.f64 (*.f64 c (sqrt.f64 a)) (sqrt.f64 a) (*.f64 (+.f64 d b) a))
(fma.f64 (*.f64 (+.f64 d b) (pow.f64 (cbrt.f64 a) 2)) (cbrt.f64 a) (*.f64 a c))
(fma.f64 (*.f64 (+.f64 d b) (sqrt.f64 a)) (sqrt.f64 a) (*.f64 a c))
(fma.f64 (*.f64 a (pow.f64 (cbrt.f64 (+.f64 d b)) 2)) (cbrt.f64 (+.f64 d b)) (*.f64 a c))
(fma.f64 (*.f64 a (sqrt.f64 (+.f64 d b))) (sqrt.f64 (+.f64 d b)) (*.f64 a c))
Outputs
(+.f64 (*.f64 a b) (*.f64 c a))
(fma.f64 a b (*.f64 a c))
(*.f64 a (+.f64 b c))
(+.f64 (*.f64 a b) (+.f64 (*.f64 a d) (*.f64 c a)))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 a d) (*.f64 c a)))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 a d) (*.f64 c a)))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(*.f64 a d)
(+.f64 (*.f64 a b) (+.f64 (*.f64 c a) (*.f64 a d)))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 c a) (*.f64 a d)))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 c a) (*.f64 a d)))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(*.f64 a d)
(+.f64 (*.f64 a b) (+.f64 (*.f64 c a) (*.f64 a d)))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 c a) (*.f64 a d)))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 c a) (*.f64 a d)))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(+.f64 (*.f64 a d) (*.f64 c a))
(fma.f64 a d (*.f64 a c))
(*.f64 a (+.f64 c d))
(+.f64 (*.f64 a b) (+.f64 (*.f64 c a) (*.f64 a d)))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 c a) (*.f64 a d)))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 c a) (*.f64 a d)))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(*.f64 a b)
(+.f64 (*.f64 a b) (+.f64 (*.f64 c a) (*.f64 a d)))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 c a) (*.f64 a d)))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 c a) (*.f64 a d)))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(*.f64 a b)
(+.f64 (*.f64 a b) (+.f64 (*.f64 c a) (*.f64 a d)))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 c a) (*.f64 a d)))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(+.f64 (*.f64 a b) (+.f64 (*.f64 c a) (*.f64 a d)))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(*.f64 (+.f64 c (+.f64 d b)) a)
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(*.f64 (+.f64 c (+.f64 d b)) a)
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(*.f64 (+.f64 c (+.f64 d b)) a)
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(*.f64 (+.f64 c (+.f64 d b)) a)
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(*.f64 (+.f64 c (+.f64 d b)) a)
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(*.f64 (+.f64 c (+.f64 d b)) a)
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(*.f64 (+.f64 c (+.f64 d b)) a)
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(*.f64 (+.f64 c (+.f64 d b)) a)
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 c) (*.f64 -1 (+.f64 d b)))))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 c) (*.f64 -1 (+.f64 d b)))))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 c) (*.f64 -1 (+.f64 d b)))))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(*.f64 -1 (*.f64 a (+.f64 (*.f64 -1 c) (*.f64 -1 (+.f64 d b)))))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(*.f64 (+.f64 d b) a)
(*.f64 a (+.f64 b d))
(*.f64 c a)
(*.f64 a c)
(*.f64 c a)
(*.f64 a c)
(-.f64 (exp.f64 (log1p.f64 (*.f64 a (+.f64 d (+.f64 b c))))) 1)
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(-.f64 (/.f64 (pow.f64 (*.f64 (+.f64 d b) a) 2) (*.f64 a (-.f64 (+.f64 d b) c))) (/.f64 (pow.f64 (*.f64 a c) 2) (*.f64 a (-.f64 (+.f64 d b) c))))
(/.f64 (-.f64 (pow.f64 (*.f64 a (+.f64 b d)) 2) (pow.f64 (*.f64 a c) 2)) (*.f64 a (+.f64 d (-.f64 b c))))
(/.f64 (-.f64 (pow.f64 (*.f64 a (+.f64 b d)) 2) (pow.f64 (*.f64 a c) 2)) (*.f64 a (+.f64 b (-.f64 d c))))
(*.f64 a (+.f64 d (+.f64 b c)))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(*.f64 (*.f64 a (+.f64 d (+.f64 b c))) 1)
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(*.f64 1 (*.f64 a (+.f64 d (+.f64 b c))))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(*.f64 (pow.f64 (cbrt.f64 a) 2) (*.f64 (cbrt.f64 a) (+.f64 d (+.f64 b c))))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(*.f64 (cbrt.f64 (*.f64 a (+.f64 d (+.f64 b c)))) (pow.f64 (cbrt.f64 (*.f64 a (+.f64 d (+.f64 b c)))) 2))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 a (+.f64 d (+.f64 b c)))) 2) (cbrt.f64 (*.f64 a (+.f64 d (+.f64 b c)))))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(*.f64 (sqrt.f64 a) (*.f64 (sqrt.f64 a) (+.f64 d (+.f64 b c))))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(*.f64 (sqrt.f64 (*.f64 a (+.f64 d (+.f64 b c)))) (sqrt.f64 (*.f64 a (+.f64 d (+.f64 b c)))))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(*.f64 (+.f64 (pow.f64 (*.f64 a c) 3) (pow.f64 (*.f64 (+.f64 d b) a) 3)) (/.f64 1 (fma.f64 (*.f64 a c) (-.f64 (*.f64 a c) (*.f64 (+.f64 d b) a)) (pow.f64 (*.f64 (+.f64 d b) a) 2))))
(*.f64 (+.f64 (pow.f64 (*.f64 a c) 3) (pow.f64 (*.f64 a (+.f64 b d)) 3)) (/.f64 1 (fma.f64 (*.f64 a c) (-.f64 (*.f64 a c) (*.f64 a (+.f64 b d))) (pow.f64 (*.f64 a (+.f64 b d)) 2))))
(/.f64 (+.f64 (pow.f64 (*.f64 a c) 3) (pow.f64 (*.f64 a (+.f64 b d)) 3)) (fma.f64 (*.f64 a c) (*.f64 a (-.f64 c (+.f64 b d))) (pow.f64 (*.f64 a (+.f64 b d)) 2)))
(/.f64 (+.f64 (pow.f64 (*.f64 a c) 3) (pow.f64 (*.f64 a (+.f64 b d)) 3)) (fma.f64 (*.f64 a (+.f64 b d)) (*.f64 a (+.f64 b (-.f64 d c))) (pow.f64 (*.f64 a c) 2)))
(*.f64 (-.f64 (pow.f64 (*.f64 (+.f64 d b) a) 2) (pow.f64 (*.f64 a c) 2)) (/.f64 1 (*.f64 a (-.f64 (+.f64 d b) c))))
(/.f64 (-.f64 (pow.f64 (*.f64 a (+.f64 b d)) 2) (pow.f64 (*.f64 a c) 2)) (*.f64 a (+.f64 d (-.f64 b c))))
(/.f64 (-.f64 (pow.f64 (*.f64 a (+.f64 b d)) 2) (pow.f64 (*.f64 a c) 2)) (*.f64 a (+.f64 b (-.f64 d c))))
(*.f64 (+.f64 d (+.f64 b c)) a)
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(/.f64 1 (/.f64 (fma.f64 (*.f64 a c) (-.f64 (*.f64 a c) (*.f64 (+.f64 d b) a)) (pow.f64 (*.f64 (+.f64 d b) a) 2)) (+.f64 (pow.f64 (*.f64 a c) 3) (pow.f64 (*.f64 (+.f64 d b) a) 3))))
(*.f64 (+.f64 (pow.f64 (*.f64 a c) 3) (pow.f64 (*.f64 a (+.f64 b d)) 3)) (/.f64 1 (fma.f64 (*.f64 a c) (-.f64 (*.f64 a c) (*.f64 a (+.f64 b d))) (pow.f64 (*.f64 a (+.f64 b d)) 2))))
(/.f64 (+.f64 (pow.f64 (*.f64 a c) 3) (pow.f64 (*.f64 a (+.f64 b d)) 3)) (fma.f64 (*.f64 a c) (*.f64 a (-.f64 c (+.f64 b d))) (pow.f64 (*.f64 a (+.f64 b d)) 2)))
(/.f64 (+.f64 (pow.f64 (*.f64 a c) 3) (pow.f64 (*.f64 a (+.f64 b d)) 3)) (fma.f64 (*.f64 a (+.f64 b d)) (*.f64 a (+.f64 b (-.f64 d c))) (pow.f64 (*.f64 a c) 2)))
(/.f64 1 (/.f64 (*.f64 a (-.f64 (+.f64 d b) c)) (-.f64 (pow.f64 (*.f64 (+.f64 d b) a) 2) (pow.f64 (*.f64 a c) 2))))
(/.f64 (-.f64 (pow.f64 (*.f64 a (+.f64 b d)) 2) (pow.f64 (*.f64 a c) 2)) (*.f64 a (+.f64 d (-.f64 b c))))
(/.f64 (-.f64 (pow.f64 (*.f64 a (+.f64 b d)) 2) (pow.f64 (*.f64 a c) 2)) (*.f64 a (+.f64 b (-.f64 d c))))
(/.f64 (+.f64 (pow.f64 (*.f64 a c) 3) (pow.f64 (*.f64 (+.f64 d b) a) 3)) (fma.f64 (*.f64 a c) (-.f64 (*.f64 a c) (*.f64 (+.f64 d b) a)) (pow.f64 (*.f64 (+.f64 d b) a) 2)))
(*.f64 (+.f64 (pow.f64 (*.f64 a c) 3) (pow.f64 (*.f64 a (+.f64 b d)) 3)) (/.f64 1 (fma.f64 (*.f64 a c) (-.f64 (*.f64 a c) (*.f64 a (+.f64 b d))) (pow.f64 (*.f64 a (+.f64 b d)) 2))))
(/.f64 (+.f64 (pow.f64 (*.f64 a c) 3) (pow.f64 (*.f64 a (+.f64 b d)) 3)) (fma.f64 (*.f64 a c) (*.f64 a (-.f64 c (+.f64 b d))) (pow.f64 (*.f64 a (+.f64 b d)) 2)))
(/.f64 (+.f64 (pow.f64 (*.f64 a c) 3) (pow.f64 (*.f64 a (+.f64 b d)) 3)) (fma.f64 (*.f64 a (+.f64 b d)) (*.f64 a (+.f64 b (-.f64 d c))) (pow.f64 (*.f64 a c) 2)))
(/.f64 (+.f64 (pow.f64 (*.f64 a c) 3) (pow.f64 (*.f64 (+.f64 d b) a) 3)) (+.f64 (pow.f64 (*.f64 a c) 2) (-.f64 (pow.f64 (*.f64 (+.f64 d b) a) 2) (*.f64 (+.f64 d b) (*.f64 a (*.f64 a c))))))
(*.f64 (+.f64 (pow.f64 (*.f64 a c) 3) (pow.f64 (*.f64 a (+.f64 b d)) 3)) (/.f64 1 (fma.f64 (*.f64 a c) (-.f64 (*.f64 a c) (*.f64 a (+.f64 b d))) (pow.f64 (*.f64 a (+.f64 b d)) 2))))
(/.f64 (+.f64 (pow.f64 (*.f64 a c) 3) (pow.f64 (*.f64 a (+.f64 b d)) 3)) (fma.f64 (*.f64 a c) (*.f64 a (-.f64 c (+.f64 b d))) (pow.f64 (*.f64 a (+.f64 b d)) 2)))
(/.f64 (+.f64 (pow.f64 (*.f64 a c) 3) (pow.f64 (*.f64 a (+.f64 b d)) 3)) (fma.f64 (*.f64 a (+.f64 b d)) (*.f64 a (+.f64 b (-.f64 d c))) (pow.f64 (*.f64 a c) 2)))
(/.f64 (-.f64 (pow.f64 (*.f64 (+.f64 d b) a) 2) (pow.f64 (*.f64 a c) 2)) (*.f64 a (-.f64 (+.f64 d b) c)))
(/.f64 (-.f64 (pow.f64 (*.f64 a (+.f64 b d)) 2) (pow.f64 (*.f64 a c) 2)) (*.f64 a (+.f64 d (-.f64 b c))))
(/.f64 (-.f64 (pow.f64 (*.f64 a (+.f64 b d)) 2) (pow.f64 (*.f64 a c) 2)) (*.f64 a (+.f64 b (-.f64 d c))))
(/.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 a c) 3) (pow.f64 (*.f64 (+.f64 d b) a) 3))) (neg.f64 (fma.f64 (*.f64 a c) (-.f64 (*.f64 a c) (*.f64 (+.f64 d b) a)) (pow.f64 (*.f64 (+.f64 d b) a) 2))))
(*.f64 (+.f64 (pow.f64 (*.f64 a c) 3) (pow.f64 (*.f64 a (+.f64 b d)) 3)) (/.f64 1 (fma.f64 (*.f64 a c) (-.f64 (*.f64 a c) (*.f64 a (+.f64 b d))) (pow.f64 (*.f64 a (+.f64 b d)) 2))))
(/.f64 (+.f64 (pow.f64 (*.f64 a c) 3) (pow.f64 (*.f64 a (+.f64 b d)) 3)) (fma.f64 (*.f64 a c) (*.f64 a (-.f64 c (+.f64 b d))) (pow.f64 (*.f64 a (+.f64 b d)) 2)))
(/.f64 (+.f64 (pow.f64 (*.f64 a c) 3) (pow.f64 (*.f64 a (+.f64 b d)) 3)) (fma.f64 (*.f64 a (+.f64 b d)) (*.f64 a (+.f64 b (-.f64 d c))) (pow.f64 (*.f64 a c) 2)))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 (+.f64 d b) a) 2) (pow.f64 (*.f64 a c) 2))) (neg.f64 (*.f64 a (-.f64 (+.f64 d b) c))))
(/.f64 (-.f64 (pow.f64 (*.f64 a (+.f64 b d)) 2) (pow.f64 (*.f64 a c) 2)) (*.f64 a (+.f64 d (-.f64 b c))))
(/.f64 (-.f64 (pow.f64 (*.f64 a (+.f64 b d)) 2) (pow.f64 (*.f64 a c) 2)) (*.f64 a (+.f64 b (-.f64 d c))))
(/.f64 (-.f64 (pow.f64 (*.f64 a c) 2) (pow.f64 (*.f64 (+.f64 d b) a) 2)) (-.f64 (*.f64 a c) (*.f64 (+.f64 d b) a)))
(/.f64 (-.f64 (pow.f64 (*.f64 a (+.f64 b d)) 2) (pow.f64 (*.f64 a c) 2)) (*.f64 a (+.f64 d (-.f64 b c))))
(/.f64 (-.f64 (pow.f64 (*.f64 a (+.f64 b d)) 2) (pow.f64 (*.f64 a c) 2)) (*.f64 a (+.f64 b (-.f64 d c))))
(pow.f64 (*.f64 a (+.f64 d (+.f64 b c))) 1)
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(pow.f64 (cbrt.f64 (*.f64 a (+.f64 d (+.f64 b c)))) 3)
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(pow.f64 (pow.f64 (*.f64 a (+.f64 d (+.f64 b c))) 2) 1/2)
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(pow.f64 (pow.f64 (*.f64 a (+.f64 d (+.f64 b c))) 3) 1/3)
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(pow.f64 (sqrt.f64 (*.f64 a (+.f64 d (+.f64 b c)))) 2)
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(pow.f64 (/.f64 (fma.f64 (*.f64 a c) (-.f64 (*.f64 a c) (*.f64 (+.f64 d b) a)) (pow.f64 (*.f64 (+.f64 d b) a) 2)) (+.f64 (pow.f64 (*.f64 a c) 3) (pow.f64 (*.f64 (+.f64 d b) a) 3))) -1)
(*.f64 (+.f64 (pow.f64 (*.f64 a c) 3) (pow.f64 (*.f64 a (+.f64 b d)) 3)) (/.f64 1 (fma.f64 (*.f64 a c) (-.f64 (*.f64 a c) (*.f64 a (+.f64 b d))) (pow.f64 (*.f64 a (+.f64 b d)) 2))))
(/.f64 (+.f64 (pow.f64 (*.f64 a c) 3) (pow.f64 (*.f64 a (+.f64 b d)) 3)) (fma.f64 (*.f64 a c) (*.f64 a (-.f64 c (+.f64 b d))) (pow.f64 (*.f64 a (+.f64 b d)) 2)))
(/.f64 (+.f64 (pow.f64 (*.f64 a c) 3) (pow.f64 (*.f64 a (+.f64 b d)) 3)) (fma.f64 (*.f64 a (+.f64 b d)) (*.f64 a (+.f64 b (-.f64 d c))) (pow.f64 (*.f64 a c) 2)))
(pow.f64 (/.f64 (*.f64 a (-.f64 (+.f64 d b) c)) (-.f64 (pow.f64 (*.f64 (+.f64 d b) a) 2) (pow.f64 (*.f64 a c) 2))) -1)
(/.f64 (-.f64 (pow.f64 (*.f64 a (+.f64 b d)) 2) (pow.f64 (*.f64 a c) 2)) (*.f64 a (+.f64 d (-.f64 b c))))
(/.f64 (-.f64 (pow.f64 (*.f64 a (+.f64 b d)) 2) (pow.f64 (*.f64 a c) 2)) (*.f64 a (+.f64 b (-.f64 d c))))
(sqrt.f64 (pow.f64 (*.f64 a (+.f64 d (+.f64 b c))) 2))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(log.f64 (pow.f64 (exp.f64 a) (+.f64 d (+.f64 b c))))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 a (+.f64 d (+.f64 b c))))))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(log.f64 (*.f64 (pow.f64 (exp.f64 a) (+.f64 d b)) (+.f64 1 (expm1.f64 (*.f64 a c)))))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 (+.f64 d b) a))) (pow.f64 (exp.f64 a) c)))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 (+.f64 d b) a))) (+.f64 1 (expm1.f64 (*.f64 a c)))))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(log.f64 (*.f64 (pow.f64 (exp.f64 a) c) (+.f64 1 (expm1.f64 (*.f64 (+.f64 d b) a)))))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 a c))) (pow.f64 (exp.f64 a) (+.f64 d b))))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 a c))) (+.f64 1 (expm1.f64 (*.f64 (+.f64 d b) a)))))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(cbrt.f64 (pow.f64 (*.f64 a (+.f64 d (+.f64 b c))) 3))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(expm1.f64 (log1p.f64 (*.f64 a (+.f64 d (+.f64 b c)))))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(exp.f64 (log.f64 (*.f64 a (+.f64 d (+.f64 b c)))))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(exp.f64 (*.f64 (log.f64 (*.f64 a (+.f64 d (+.f64 b c)))) 1))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 a (+.f64 d (+.f64 b c)))) 1) 1))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 a (+.f64 d (+.f64 b c))))) 3))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 a (+.f64 d (+.f64 b c))))) 1/3))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 a (+.f64 d (+.f64 b c))))) 2))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(log1p.f64 (expm1.f64 (*.f64 a (+.f64 d (+.f64 b c)))))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(fma.f64 (+.f64 d b) a (*.f64 a c))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(fma.f64 a (+.f64 d b) (*.f64 a c))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(fma.f64 a c (*.f64 (+.f64 d b) a))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(fma.f64 (*.f64 (+.f64 d b) a) 1 (*.f64 a c))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(fma.f64 c a (*.f64 (+.f64 d b) a))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(fma.f64 (*.f64 a c) 1 (*.f64 (+.f64 d b) a))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(fma.f64 1 (*.f64 (+.f64 d b) a) (*.f64 a c))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(fma.f64 1 (*.f64 a c) (*.f64 (+.f64 d b) a))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(fma.f64 (pow.f64 (cbrt.f64 c) 2) (*.f64 (cbrt.f64 c) a) (*.f64 (+.f64 d b) a))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(fma.f64 (pow.f64 (cbrt.f64 (+.f64 d b)) 2) (*.f64 (cbrt.f64 (+.f64 d b)) a) (*.f64 a c))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(fma.f64 (cbrt.f64 (*.f64 a c)) (pow.f64 (cbrt.f64 (*.f64 a c)) 2) (*.f64 (+.f64 d b) a))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(fma.f64 (pow.f64 (cbrt.f64 (*.f64 a c)) 2) (cbrt.f64 (*.f64 a c)) (*.f64 (+.f64 d b) a))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(fma.f64 (pow.f64 (cbrt.f64 a) 2) (*.f64 (cbrt.f64 a) c) (*.f64 (+.f64 d b) a))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(fma.f64 (pow.f64 (cbrt.f64 a) 2) (*.f64 (cbrt.f64 a) (+.f64 d b)) (*.f64 a c))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(fma.f64 (cbrt.f64 (*.f64 (+.f64 d b) a)) (pow.f64 (cbrt.f64 (*.f64 (+.f64 d b) a)) 2) (*.f64 a c))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(fma.f64 (pow.f64 (cbrt.f64 (*.f64 (+.f64 d b) a)) 2) (cbrt.f64 (*.f64 (+.f64 d b) a)) (*.f64 a c))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(fma.f64 (sqrt.f64 c) (*.f64 (sqrt.f64 c) a) (*.f64 (+.f64 d b) a))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(fma.f64 (sqrt.f64 (+.f64 d b)) (*.f64 (sqrt.f64 (+.f64 d b)) a) (*.f64 a c))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(fma.f64 (sqrt.f64 (*.f64 a c)) (sqrt.f64 (*.f64 a c)) (*.f64 (+.f64 d b) a))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(fma.f64 (sqrt.f64 a) (*.f64 (sqrt.f64 a) c) (*.f64 (+.f64 d b) a))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(fma.f64 (sqrt.f64 a) (*.f64 (sqrt.f64 a) (+.f64 d b)) (*.f64 a c))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(fma.f64 (sqrt.f64 (*.f64 (+.f64 d b) a)) (sqrt.f64 (*.f64 (+.f64 d b) a)) (*.f64 a c))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(fma.f64 (*.f64 a (pow.f64 (cbrt.f64 c) 2)) (cbrt.f64 c) (*.f64 (+.f64 d b) a))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(fma.f64 (*.f64 a (sqrt.f64 c)) (sqrt.f64 c) (*.f64 (+.f64 d b) a))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(fma.f64 (*.f64 c (pow.f64 (cbrt.f64 a) 2)) (cbrt.f64 a) (*.f64 (+.f64 d b) a))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(fma.f64 (*.f64 c (sqrt.f64 a)) (sqrt.f64 a) (*.f64 (+.f64 d b) a))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(fma.f64 (*.f64 (+.f64 d b) (pow.f64 (cbrt.f64 a) 2)) (cbrt.f64 a) (*.f64 a c))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(fma.f64 (*.f64 (+.f64 d b) (sqrt.f64 a)) (sqrt.f64 a) (*.f64 a c))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(fma.f64 (*.f64 a (pow.f64 (cbrt.f64 (+.f64 d b)) 2)) (cbrt.f64 (+.f64 d b)) (*.f64 a c))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))
(fma.f64 (*.f64 a (sqrt.f64 (+.f64 d b))) (sqrt.f64 (+.f64 d b)) (*.f64 a c))
(fma.f64 a b (fma.f64 a d (*.f64 a c)))
(*.f64 a (+.f64 b (+.f64 c d)))

localize8.0ms (0.2%)

Local Accuracy

Found 1 expressions with local accuracy:

NewAccuracyProgram
99.9%
(*.f64 a (+.f64 b c))
Compiler

Compiled 24 to 7 computations (70.8% saved)

series2.0ms (0.1%)

Counts
1 → 36
Calls

9 calls:

TimeVariablePointExpression
0.0ms
a
@0
(*.f64 a (+.f64 b c))
0.0ms
a
@inf
(*.f64 a (+.f64 b c))
0.0ms
a
@-inf
(*.f64 a (+.f64 b c))
0.0ms
c
@inf
(*.f64 a (+.f64 b c))
0.0ms
c
@0
(*.f64 a (+.f64 b c))

rewrite62.0ms (1.7%)

Algorithm
batch-egg-rewrite
Rules
1754×pow1
1626×add-exp-log
1626×log1p-expm1-u
1626×expm1-log1p-u
1596×add-log-exp
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
115413
2222113
Stop Event
node limit
Counts
1 → 24
Calls
Call 1
Inputs
(*.f64 a (+.f64 b c))
Outputs
(+.f64 (*.f64 a b) (*.f64 a c))
(+.f64 (*.f64 a c) (*.f64 a b))
(+.f64 (*.f64 (*.f64 a b) 1) (*.f64 (*.f64 a c) 1))
(-.f64 (+.f64 1 (*.f64 a (+.f64 b c))) 1)
(/.f64 (+.f64 (pow.f64 (*.f64 a b) 3) (pow.f64 (*.f64 a c) 3)) (+.f64 (*.f64 (*.f64 a b) (*.f64 a b)) (-.f64 (*.f64 (*.f64 a c) (*.f64 a c)) (*.f64 (*.f64 a b) (*.f64 a c)))))
(/.f64 (-.f64 (*.f64 (*.f64 a b) (*.f64 a b)) (*.f64 (*.f64 a c) (*.f64 a c))) (-.f64 (*.f64 a b) (*.f64 a c)))
(/.f64 (*.f64 a (+.f64 (pow.f64 c 3) (pow.f64 b 3))) (fma.f64 b b (*.f64 c (-.f64 c b))))
(/.f64 (*.f64 a (fma.f64 b b (neg.f64 (*.f64 c c)))) (-.f64 b c))
(/.f64 (*.f64 (+.f64 (pow.f64 c 3) (pow.f64 b 3)) a) (fma.f64 b b (*.f64 c (-.f64 c b))))
(/.f64 (*.f64 (fma.f64 b b (neg.f64 (*.f64 c c))) a) (-.f64 b c))
(pow.f64 (*.f64 a (+.f64 b c)) 1)
(pow.f64 (cbrt.f64 (*.f64 a (+.f64 b c))) 3)
(pow.f64 (pow.f64 (*.f64 a (+.f64 b c)) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 a (+.f64 b c))) 2)
(sqrt.f64 (pow.f64 (*.f64 a (+.f64 b c)) 2))
(log.f64 (pow.f64 (exp.f64 (+.f64 b c)) a))
(cbrt.f64 (pow.f64 (*.f64 a (+.f64 b c)) 3))
(cbrt.f64 (*.f64 (pow.f64 a 3) (pow.f64 (+.f64 b c) 3)))
(cbrt.f64 (*.f64 (pow.f64 (+.f64 b c) 3) (pow.f64 a 3)))
(expm1.f64 (log1p.f64 (*.f64 a (+.f64 b c))))
(exp.f64 (log.f64 (*.f64 a (+.f64 b c))))
(log1p.f64 (expm1.f64 (*.f64 a (+.f64 b c))))
(fma.f64 a b (*.f64 a c))
(fma.f64 b a (*.f64 a c))

simplify66.0ms (1.8%)

Algorithm
egg-herbie
Rules
1072×associate-/r*
716×fma-def
642×associate-*r/
506×associate-+r+
442×div-sub
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
083894
1242888
2945886
33878876
Stop Event
node limit
Counts
60 → 36
Calls
Call 1
Inputs
(*.f64 a (+.f64 c b))
(*.f64 a (+.f64 c b))
(*.f64 a (+.f64 c b))
(*.f64 a (+.f64 c b))
(*.f64 a (+.f64 c b))
(*.f64 a (+.f64 c b))
(*.f64 a (+.f64 c b))
(*.f64 a (+.f64 c b))
(*.f64 a (+.f64 c b))
(*.f64 a (+.f64 c b))
(*.f64 a (+.f64 c b))
(*.f64 a (+.f64 c b))
(*.f64 c a)
(+.f64 (*.f64 a b) (*.f64 c a))
(+.f64 (*.f64 a b) (*.f64 c a))
(+.f64 (*.f64 a b) (*.f64 c a))
(*.f64 a b)
(+.f64 (*.f64 a b) (*.f64 c a))
(+.f64 (*.f64 a b) (*.f64 c a))
(+.f64 (*.f64 a b) (*.f64 c a))
(*.f64 a b)
(+.f64 (*.f64 a b) (*.f64 c a))
(+.f64 (*.f64 a b) (*.f64 c a))
(+.f64 (*.f64 a b) (*.f64 c a))
(*.f64 a b)
(+.f64 (*.f64 a b) (*.f64 c a))
(+.f64 (*.f64 a b) (*.f64 c a))
(+.f64 (*.f64 a b) (*.f64 c a))
(*.f64 c a)
(+.f64 (*.f64 a b) (*.f64 c a))
(+.f64 (*.f64 a b) (*.f64 c a))
(+.f64 (*.f64 a b) (*.f64 c a))
(*.f64 c a)
(+.f64 (*.f64 a b) (*.f64 c a))
(+.f64 (*.f64 a b) (*.f64 c a))
(+.f64 (*.f64 a b) (*.f64 c a))
(+.f64 (*.f64 a b) (*.f64 a c))
(+.f64 (*.f64 a c) (*.f64 a b))
(+.f64 (*.f64 (*.f64 a b) 1) (*.f64 (*.f64 a c) 1))
(-.f64 (+.f64 1 (*.f64 a (+.f64 b c))) 1)
(/.f64 (+.f64 (pow.f64 (*.f64 a b) 3) (pow.f64 (*.f64 a c) 3)) (+.f64 (*.f64 (*.f64 a b) (*.f64 a b)) (-.f64 (*.f64 (*.f64 a c) (*.f64 a c)) (*.f64 (*.f64 a b) (*.f64 a c)))))
(/.f64 (-.f64 (*.f64 (*.f64 a b) (*.f64 a b)) (*.f64 (*.f64 a c) (*.f64 a c))) (-.f64 (*.f64 a b) (*.f64 a c)))
(/.f64 (*.f64 a (+.f64 (pow.f64 c 3) (pow.f64 b 3))) (fma.f64 b b (*.f64 c (-.f64 c b))))
(/.f64 (*.f64 a (fma.f64 b b (neg.f64 (*.f64 c c)))) (-.f64 b c))
(/.f64 (*.f64 (+.f64 (pow.f64 c 3) (pow.f64 b 3)) a) (fma.f64 b b (*.f64 c (-.f64 c b))))
(/.f64 (*.f64 (fma.f64 b b (neg.f64 (*.f64 c c))) a) (-.f64 b c))
(pow.f64 (*.f64 a (+.f64 b c)) 1)
(pow.f64 (cbrt.f64 (*.f64 a (+.f64 b c))) 3)
(pow.f64 (pow.f64 (*.f64 a (+.f64 b c)) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 a (+.f64 b c))) 2)
(sqrt.f64 (pow.f64 (*.f64 a (+.f64 b c)) 2))
(log.f64 (pow.f64 (exp.f64 (+.f64 b c)) a))
(cbrt.f64 (pow.f64 (*.f64 a (+.f64 b c)) 3))
(cbrt.f64 (*.f64 (pow.f64 a 3) (pow.f64 (+.f64 b c) 3)))
(cbrt.f64 (*.f64 (pow.f64 (+.f64 b c) 3) (pow.f64 a 3)))
(expm1.f64 (log1p.f64 (*.f64 a (+.f64 b c))))
(exp.f64 (log.f64 (*.f64 a (+.f64 b c))))
(log1p.f64 (expm1.f64 (*.f64 a (+.f64 b c))))
(fma.f64 a b (*.f64 a c))
(fma.f64 b a (*.f64 a c))
Outputs
(*.f64 a (+.f64 c b))
(*.f64 a (+.f64 c b))
(*.f64 a (+.f64 c b))
(*.f64 a (+.f64 c b))
(*.f64 a (+.f64 c b))
(*.f64 a (+.f64 c b))
(*.f64 a (+.f64 c b))
(*.f64 a (+.f64 c b))
(*.f64 a (+.f64 c b))
(*.f64 a (+.f64 c b))
(*.f64 a (+.f64 c b))
(*.f64 a (+.f64 c b))
(*.f64 c a)
(*.f64 a c)
(+.f64 (*.f64 a b) (*.f64 c a))
(*.f64 a (+.f64 c b))
(+.f64 (*.f64 a b) (*.f64 c a))
(*.f64 a (+.f64 c b))
(+.f64 (*.f64 a b) (*.f64 c a))
(*.f64 a (+.f64 c b))
(*.f64 a b)
(+.f64 (*.f64 a b) (*.f64 c a))
(*.f64 a (+.f64 c b))
(+.f64 (*.f64 a b) (*.f64 c a))
(*.f64 a (+.f64 c b))
(+.f64 (*.f64 a b) (*.f64 c a))
(*.f64 a (+.f64 c b))
(*.f64 a b)
(+.f64 (*.f64 a b) (*.f64 c a))
(*.f64 a (+.f64 c b))
(+.f64 (*.f64 a b) (*.f64 c a))
(*.f64 a (+.f64 c b))
(+.f64 (*.f64 a b) (*.f64 c a))
(*.f64 a (+.f64 c b))
(*.f64 a b)
(+.f64 (*.f64 a b) (*.f64 c a))
(*.f64 a (+.f64 c b))
(+.f64 (*.f64 a b) (*.f64 c a))
(*.f64 a (+.f64 c b))
(+.f64 (*.f64 a b) (*.f64 c a))
(*.f64 a (+.f64 c b))
(*.f64 c a)
(*.f64 a c)
(+.f64 (*.f64 a b) (*.f64 c a))
(*.f64 a (+.f64 c b))
(+.f64 (*.f64 a b) (*.f64 c a))
(*.f64 a (+.f64 c b))
(+.f64 (*.f64 a b) (*.f64 c a))
(*.f64 a (+.f64 c b))
(*.f64 c a)
(*.f64 a c)
(+.f64 (*.f64 a b) (*.f64 c a))
(*.f64 a (+.f64 c b))
(+.f64 (*.f64 a b) (*.f64 c a))
(*.f64 a (+.f64 c b))
(+.f64 (*.f64 a b) (*.f64 c a))
(*.f64 a (+.f64 c b))
(+.f64 (*.f64 a b) (*.f64 a c))
(*.f64 a (+.f64 c b))
(+.f64 (*.f64 a c) (*.f64 a b))
(*.f64 a (+.f64 c b))
(+.f64 (*.f64 (*.f64 a b) 1) (*.f64 (*.f64 a c) 1))
(*.f64 a (+.f64 c b))
(-.f64 (+.f64 1 (*.f64 a (+.f64 b c))) 1)
(*.f64 a (+.f64 c b))
(/.f64 (+.f64 (pow.f64 (*.f64 a b) 3) (pow.f64 (*.f64 a c) 3)) (+.f64 (*.f64 (*.f64 a b) (*.f64 a b)) (-.f64 (*.f64 (*.f64 a c) (*.f64 a c)) (*.f64 (*.f64 a b) (*.f64 a c)))))
(/.f64 (+.f64 (pow.f64 (*.f64 a b) 3) (pow.f64 (*.f64 a c) 3)) (fma.f64 (*.f64 a b) (*.f64 a b) (*.f64 (*.f64 a c) (-.f64 (*.f64 a c) (*.f64 a b)))))
(/.f64 (+.f64 (pow.f64 (*.f64 a b) 3) (pow.f64 (*.f64 a c) 3)) (fma.f64 a (*.f64 b (*.f64 a b)) (*.f64 a (*.f64 c (*.f64 a (-.f64 c b))))))
(/.f64 (*.f64 (+.f64 (pow.f64 c 3) (pow.f64 b 3)) (pow.f64 a 3)) (*.f64 a (+.f64 (*.f64 (*.f64 a c) (-.f64 c b)) (*.f64 a (*.f64 b b)))))
(/.f64 (*.f64 (+.f64 (pow.f64 c 3) (pow.f64 b 3)) (pow.f64 a 3)) (*.f64 a (*.f64 a (fma.f64 c (-.f64 c b) (*.f64 b b)))))
(/.f64 (-.f64 (*.f64 (*.f64 a b) (*.f64 a b)) (*.f64 (*.f64 a c) (*.f64 a c))) (-.f64 (*.f64 a b) (*.f64 a c)))
(*.f64 a (+.f64 c b))
(/.f64 (*.f64 a (+.f64 (pow.f64 c 3) (pow.f64 b 3))) (fma.f64 b b (*.f64 c (-.f64 c b))))
(/.f64 (+.f64 (pow.f64 c 3) (pow.f64 b 3)) (/.f64 (fma.f64 b b (*.f64 c (-.f64 c b))) a))
(/.f64 (+.f64 (pow.f64 c 3) (pow.f64 b 3)) (/.f64 (fma.f64 c (-.f64 c b) (*.f64 b b)) a))
(*.f64 a (/.f64 (+.f64 (pow.f64 c 3) (pow.f64 b 3)) (fma.f64 c (-.f64 c b) (*.f64 b b))))
(/.f64 (*.f64 a (fma.f64 b b (neg.f64 (*.f64 c c)))) (-.f64 b c))
(*.f64 a (+.f64 c b))
(/.f64 (*.f64 (+.f64 (pow.f64 c 3) (pow.f64 b 3)) a) (fma.f64 b b (*.f64 c (-.f64 c b))))
(/.f64 (+.f64 (pow.f64 c 3) (pow.f64 b 3)) (/.f64 (fma.f64 b b (*.f64 c (-.f64 c b))) a))
(/.f64 (+.f64 (pow.f64 c 3) (pow.f64 b 3)) (/.f64 (fma.f64 c (-.f64 c b) (*.f64 b b)) a))
(*.f64 a (/.f64 (+.f64 (pow.f64 c 3) (pow.f64 b 3)) (fma.f64 c (-.f64 c b) (*.f64 b b))))
(/.f64 (*.f64 (fma.f64 b b (neg.f64 (*.f64 c c))) a) (-.f64 b c))
(*.f64 a (+.f64 c b))
(pow.f64 (*.f64 a (+.f64 b c)) 1)
(*.f64 a (+.f64 c b))
(pow.f64 (cbrt.f64 (*.f64 a (+.f64 b c))) 3)
(*.f64 a (+.f64 c b))
(pow.f64 (pow.f64 (*.f64 a (+.f64 b c)) 3) 1/3)
(*.f64 a (+.f64 c b))
(pow.f64 (sqrt.f64 (*.f64 a (+.f64 b c))) 2)
(*.f64 a (+.f64 c b))
(sqrt.f64 (pow.f64 (*.f64 a (+.f64 b c)) 2))
(*.f64 a (+.f64 c b))
(log.f64 (pow.f64 (exp.f64 (+.f64 b c)) a))
(*.f64 a (+.f64 c b))
(cbrt.f64 (pow.f64 (*.f64 a (+.f64 b c)) 3))
(*.f64 a (+.f64 c b))
(cbrt.f64 (*.f64 (pow.f64 a 3) (pow.f64 (+.f64 b c) 3)))
(*.f64 a (+.f64 c b))
(cbrt.f64 (*.f64 (pow.f64 (+.f64 b c) 3) (pow.f64 a 3)))
(*.f64 a (+.f64 c b))
(expm1.f64 (log1p.f64 (*.f64 a (+.f64 b c))))
(*.f64 a (+.f64 c b))
(exp.f64 (log.f64 (*.f64 a (+.f64 b c))))
(*.f64 a (+.f64 c b))
(log1p.f64 (expm1.f64 (*.f64 a (+.f64 b c))))
(*.f64 a (+.f64 c b))
(fma.f64 a b (*.f64 a c))
(*.f64 a (+.f64 c b))
(fma.f64 b a (*.f64 a c))
(*.f64 a (+.f64 c b))

eval75.0ms (2.1%)

Compiler

Compiled 2406 to 743 computations (69.1% saved)

prune56.0ms (1.6%)

Pruning

5 alts after pruning (2 fresh and 3 done)

PrunedKeptTotal
New1692171
Fresh000
Picked101
Done134
Total1715176
Accurracy
100.0%
Counts
176 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.9%
(fma.f64 d a (*.f64 c a))
99.8%
(+.f64 (*.f64 c a) (*.f64 a d))
93.3%
(*.f64 d a)
99.9%
(*.f64 a (+.f64 (+.f64 b c) d))
99.8%
(*.f64 a (+.f64 c d))
Compiler

Compiled 48 to 31 computations (35.4% saved)

localize7.0ms (0.2%)

Local Accuracy

Found 1 expressions with local accuracy:

NewAccuracyProgram
99.9%
(+.f64 (*.f64 c a) (*.f64 a d))
Compiler

Compiled 20 to 7 computations (65% saved)

series2.0ms (0%)

Counts
1 → 27
Calls

9 calls:

TimeVariablePointExpression
0.0ms
a
@-inf
(+.f64 (*.f64 c a) (*.f64 a d))
0.0ms
a
@0
(+.f64 (*.f64 c a) (*.f64 a d))
0.0ms
c
@0
(+.f64 (*.f64 c a) (*.f64 a d))
0.0ms
d
@0
(+.f64 (*.f64 c a) (*.f64 a d))
0.0ms
d
@inf
(+.f64 (*.f64 c a) (*.f64 a d))

rewrite124.0ms (3.5%)

Algorithm
batch-egg-rewrite
Rules
1848×pow1
1704×add-exp-log
1704×log1p-expm1-u
1704×expm1-log1p-u
1670×add-log-exp
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0815
117013
2233213
Stop Event
node limit
Counts
1 → 39
Calls
Call 1
Inputs
(+.f64 (*.f64 c a) (*.f64 a d))
Outputs
(-.f64 (+.f64 1 (*.f64 a (+.f64 c d))) 1)
(-.f64 (/.f64 (pow.f64 (*.f64 c a) 2) (*.f64 a (-.f64 c d))) (/.f64 (pow.f64 (*.f64 a d) 2) (*.f64 a (-.f64 c d))))
(*.f64 a (+.f64 c d))
(*.f64 a (+.f64 d c))
(*.f64 (*.f64 a (+.f64 c d)) 1)
(*.f64 1 (*.f64 a (+.f64 c d)))
(*.f64 (cbrt.f64 (*.f64 a (+.f64 c d))) (pow.f64 (cbrt.f64 (*.f64 a (+.f64 c d))) 2))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 a (+.f64 c d))) 2) (cbrt.f64 (*.f64 a (+.f64 c d))))
(*.f64 (sqrt.f64 (*.f64 a (+.f64 c d))) (sqrt.f64 (*.f64 a (+.f64 c d))))
(*.f64 (+.f64 (pow.f64 (*.f64 c a) 3) (pow.f64 (*.f64 a d) 3)) (/.f64 1 (+.f64 (pow.f64 (*.f64 c a) 2) (*.f64 (*.f64 a d) (-.f64 (*.f64 a d) (*.f64 c a))))))
(*.f64 (-.f64 (pow.f64 (*.f64 c a) 2) (pow.f64 (*.f64 a d) 2)) (/.f64 1 (*.f64 a (-.f64 c d))))
(/.f64 1 (/.f64 (+.f64 (pow.f64 (*.f64 c a) 2) (*.f64 (*.f64 a d) (-.f64 (*.f64 a d) (*.f64 c a)))) (+.f64 (pow.f64 (*.f64 c a) 3) (pow.f64 (*.f64 a d) 3))))
(/.f64 1 (/.f64 (*.f64 a (-.f64 c d)) (-.f64 (pow.f64 (*.f64 c a) 2) (pow.f64 (*.f64 a d) 2))))
(/.f64 (+.f64 (pow.f64 (*.f64 c a) 3) (pow.f64 (*.f64 a d) 3)) (+.f64 (pow.f64 (*.f64 c a) 2) (*.f64 (*.f64 a d) (-.f64 (*.f64 a d) (*.f64 c a)))))
(/.f64 (+.f64 (pow.f64 (*.f64 c a) 3) (pow.f64 (*.f64 a d) 3)) (+.f64 (pow.f64 (*.f64 a d) 2) (-.f64 (pow.f64 (*.f64 c a) 2) (*.f64 c (*.f64 a (*.f64 a d))))))
(/.f64 (-.f64 (pow.f64 (*.f64 c a) 2) (pow.f64 (*.f64 a d) 2)) (*.f64 a (-.f64 c d)))
(/.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 c a) 3) (pow.f64 (*.f64 a d) 3))) (neg.f64 (+.f64 (pow.f64 (*.f64 c a) 2) (*.f64 (*.f64 a d) (-.f64 (*.f64 a d) (*.f64 c a))))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 c a) 2) (pow.f64 (*.f64 a d) 2))) (neg.f64 (*.f64 a (-.f64 c d))))
(/.f64 (-.f64 (pow.f64 (*.f64 a d) 2) (pow.f64 (*.f64 c a) 2)) (-.f64 (*.f64 a d) (*.f64 c a)))
(pow.f64 (*.f64 a (+.f64 c d)) 1)
(pow.f64 (cbrt.f64 (*.f64 a (+.f64 c d))) 3)
(pow.f64 (pow.f64 (*.f64 a (+.f64 c d)) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 a (+.f64 c d))) 2)
(sqrt.f64 (pow.f64 (*.f64 a (+.f64 c d)) 2))
(log.f64 (exp.f64 (*.f64 a (+.f64 c d))))
(cbrt.f64 (pow.f64 (*.f64 a (+.f64 c d)) 3))
(expm1.f64 (log1p.f64 (*.f64 a (+.f64 c d))))
(exp.f64 (log.f64 (*.f64 a (+.f64 c d))))
(log1p.f64 (expm1.f64 (*.f64 a (+.f64 c d))))
(fma.f64 c a (*.f64 a d))
(fma.f64 a c (*.f64 a d))
(fma.f64 a d (*.f64 c a))
(fma.f64 d a (*.f64 c a))
(fma.f64 1 (*.f64 c a) (*.f64 a d))
(fma.f64 1 (*.f64 a d) (*.f64 c a))
(fma.f64 (pow.f64 (cbrt.f64 (*.f64 c a)) 2) (cbrt.f64 (*.f64 c a)) (*.f64 a d))
(fma.f64 (pow.f64 (cbrt.f64 (*.f64 a d)) 2) (cbrt.f64 (*.f64 a d)) (*.f64 c a))
(fma.f64 (sqrt.f64 (*.f64 c a)) (sqrt.f64 (*.f64 c a)) (*.f64 a d))
(fma.f64 (sqrt.f64 (*.f64 a d)) (sqrt.f64 (*.f64 a d)) (*.f64 c a))

simplify67.0ms (1.9%)

Algorithm
egg-herbie
Rules
1408×div-sub
1254×fma-neg
824×times-frac
812×fma-def
442×log-prod
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01041428
12731348
29741348
350911348
Stop Event
node limit
Counts
66 → 51
Calls
Call 1
Inputs
(*.f64 a d)
(*.f64 c a)
(+.f64 (*.f64 a d) (*.f64 c a))
(+.f64 (*.f64 a d) (*.f64 c a))
(+.f64 (*.f64 a d) (*.f64 c a))
(*.f64 c a)
(+.f64 (*.f64 a d) (*.f64 c a))
(+.f64 (*.f64 a d) (*.f64 c a))
(+.f64 (*.f64 a d) (*.f64 c a))
(*.f64 (+.f64 c d) a)
(*.f64 (+.f64 c d) a)
(*.f64 (+.f64 c d) a)
(*.f64 (+.f64 c d) a)
(*.f64 (+.f64 c d) a)
(*.f64 (+.f64 c d) a)
(*.f64 (+.f64 c d) a)
(*.f64 (+.f64 c d) a)
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 c) (*.f64 -1 d)) a))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 c) (*.f64 -1 d)) a))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 c) (*.f64 -1 d)) a))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 c) (*.f64 -1 d)) a))
(*.f64 c a)
(+.f64 (*.f64 a d) (*.f64 c a))
(+.f64 (*.f64 a d) (*.f64 c a))
(+.f64 (*.f64 a d) (*.f64 c a))
(*.f64 a d)
(*.f64 a d)
(-.f64 (+.f64 1 (*.f64 a (+.f64 c d))) 1)
(-.f64 (/.f64 (pow.f64 (*.f64 c a) 2) (*.f64 a (-.f64 c d))) (/.f64 (pow.f64 (*.f64 a d) 2) (*.f64 a (-.f64 c d))))
(*.f64 a (+.f64 c d))
(*.f64 a (+.f64 d c))
(*.f64 (*.f64 a (+.f64 c d)) 1)
(*.f64 1 (*.f64 a (+.f64 c d)))
(*.f64 (cbrt.f64 (*.f64 a (+.f64 c d))) (pow.f64 (cbrt.f64 (*.f64 a (+.f64 c d))) 2))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 a (+.f64 c d))) 2) (cbrt.f64 (*.f64 a (+.f64 c d))))
(*.f64 (sqrt.f64 (*.f64 a (+.f64 c d))) (sqrt.f64 (*.f64 a (+.f64 c d))))
(*.f64 (+.f64 (pow.f64 (*.f64 c a) 3) (pow.f64 (*.f64 a d) 3)) (/.f64 1 (+.f64 (pow.f64 (*.f64 c a) 2) (*.f64 (*.f64 a d) (-.f64 (*.f64 a d) (*.f64 c a))))))
(*.f64 (-.f64 (pow.f64 (*.f64 c a) 2) (pow.f64 (*.f64 a d) 2)) (/.f64 1 (*.f64 a (-.f64 c d))))
(/.f64 1 (/.f64 (+.f64 (pow.f64 (*.f64 c a) 2) (*.f64 (*.f64 a d) (-.f64 (*.f64 a d) (*.f64 c a)))) (+.f64 (pow.f64 (*.f64 c a) 3) (pow.f64 (*.f64 a d) 3))))
(/.f64 1 (/.f64 (*.f64 a (-.f64 c d)) (-.f64 (pow.f64 (*.f64 c a) 2) (pow.f64 (*.f64 a d) 2))))
(/.f64 (+.f64 (pow.f64 (*.f64 c a) 3) (pow.f64 (*.f64 a d) 3)) (+.f64 (pow.f64 (*.f64 c a) 2) (*.f64 (*.f64 a d) (-.f64 (*.f64 a d) (*.f64 c a)))))
(/.f64 (+.f64 (pow.f64 (*.f64 c a) 3) (pow.f64 (*.f64 a d) 3)) (+.f64 (pow.f64 (*.f64 a d) 2) (-.f64 (pow.f64 (*.f64 c a) 2) (*.f64 c (*.f64 a (*.f64 a d))))))
(/.f64 (-.f64 (pow.f64 (*.f64 c a) 2) (pow.f64 (*.f64 a d) 2)) (*.f64 a (-.f64 c d)))
(/.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 c a) 3) (pow.f64 (*.f64 a d) 3))) (neg.f64 (+.f64 (pow.f64 (*.f64 c a) 2) (*.f64 (*.f64 a d) (-.f64 (*.f64 a d) (*.f64 c a))))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 c a) 2) (pow.f64 (*.f64 a d) 2))) (neg.f64 (*.f64 a (-.f64 c d))))
(/.f64 (-.f64 (pow.f64 (*.f64 a d) 2) (pow.f64 (*.f64 c a) 2)) (-.f64 (*.f64 a d) (*.f64 c a)))
(pow.f64 (*.f64 a (+.f64 c d)) 1)
(pow.f64 (cbrt.f64 (*.f64 a (+.f64 c d))) 3)
(pow.f64 (pow.f64 (*.f64 a (+.f64 c d)) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 a (+.f64 c d))) 2)
(sqrt.f64 (pow.f64 (*.f64 a (+.f64 c d)) 2))
(log.f64 (exp.f64 (*.f64 a (+.f64 c d))))
(cbrt.f64 (pow.f64 (*.f64 a (+.f64 c d)) 3))
(expm1.f64 (log1p.f64 (*.f64 a (+.f64 c d))))
(exp.f64 (log.f64 (*.f64 a (+.f64 c d))))
(log1p.f64 (expm1.f64 (*.f64 a (+.f64 c d))))
(fma.f64 c a (*.f64 a d))
(fma.f64 a c (*.f64 a d))
(fma.f64 a d (*.f64 c a))
(fma.f64 d a (*.f64 c a))
(fma.f64 1 (*.f64 c a) (*.f64 a d))
(fma.f64 1 (*.f64 a d) (*.f64 c a))
(fma.f64 (pow.f64 (cbrt.f64 (*.f64 c a)) 2) (cbrt.f64 (*.f64 c a)) (*.f64 a d))
(fma.f64 (pow.f64 (cbrt.f64 (*.f64 a d)) 2) (cbrt.f64 (*.f64 a d)) (*.f64 c a))
(fma.f64 (sqrt.f64 (*.f64 c a)) (sqrt.f64 (*.f64 c a)) (*.f64 a d))
(fma.f64 (sqrt.f64 (*.f64 a d)) (sqrt.f64 (*.f64 a d)) (*.f64 c a))
Outputs
(*.f64 a d)
(*.f64 c a)
(*.f64 a c)
(+.f64 (*.f64 a d) (*.f64 c a))
(*.f64 a (+.f64 d c))
(+.f64 (*.f64 a d) (*.f64 c a))
(*.f64 a (+.f64 d c))
(+.f64 (*.f64 a d) (*.f64 c a))
(*.f64 a (+.f64 d c))
(*.f64 c a)
(*.f64 a c)
(+.f64 (*.f64 a d) (*.f64 c a))
(*.f64 a (+.f64 d c))
(+.f64 (*.f64 a d) (*.f64 c a))
(*.f64 a (+.f64 d c))
(+.f64 (*.f64 a d) (*.f64 c a))
(*.f64 a (+.f64 d c))
(*.f64 (+.f64 c d) a)
(*.f64 a (+.f64 d c))
(*.f64 (+.f64 c d) a)
(*.f64 a (+.f64 d c))
(*.f64 (+.f64 c d) a)
(*.f64 a (+.f64 d c))
(*.f64 (+.f64 c d) a)
(*.f64 a (+.f64 d c))
(*.f64 (+.f64 c d) a)
(*.f64 a (+.f64 d c))
(*.f64 (+.f64 c d) a)
(*.f64 a (+.f64 d c))
(*.f64 (+.f64 c d) a)
(*.f64 a (+.f64 d c))
(*.f64 (+.f64 c d) a)
(*.f64 a (+.f64 d c))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 c) (*.f64 -1 d)) a))
(*.f64 a (+.f64 d c))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 c) (*.f64 -1 d)) a))
(*.f64 a (+.f64 d c))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 c) (*.f64 -1 d)) a))
(*.f64 a (+.f64 d c))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 c) (*.f64 -1 d)) a))
(*.f64 a (+.f64 d c))
(*.f64 c a)
(*.f64 a c)
(+.f64 (*.f64 a d) (*.f64 c a))
(*.f64 a (+.f64 d c))
(+.f64 (*.f64 a d) (*.f64 c a))
(*.f64 a (+.f64 d c))
(+.f64 (*.f64 a d) (*.f64 c a))
(*.f64 a (+.f64 d c))
(*.f64 a d)
(*.f64 a d)
(-.f64 (+.f64 1 (*.f64 a (+.f64 c d))) 1)
(*.f64 a (+.f64 d c))
(-.f64 (/.f64 (pow.f64 (*.f64 c a) 2) (*.f64 a (-.f64 c d))) (/.f64 (pow.f64 (*.f64 a d) 2) (*.f64 a (-.f64 c d))))
(/.f64 (-.f64 (pow.f64 (*.f64 a c) 2) (pow.f64 (*.f64 a d) 2)) (*.f64 a (-.f64 c d)))
(/.f64 (*.f64 a (+.f64 d c)) (/.f64 (*.f64 a (-.f64 c d)) (*.f64 a (-.f64 c d))))
(*.f64 (/.f64 (*.f64 a (+.f64 d c)) a) (/.f64 (*.f64 a (-.f64 c d)) (-.f64 c d)))
(*.f64 a (+.f64 c d))
(*.f64 a (+.f64 d c))
(*.f64 a (+.f64 d c))
(*.f64 (*.f64 a (+.f64 c d)) 1)
(*.f64 a (+.f64 d c))
(*.f64 1 (*.f64 a (+.f64 c d)))
(*.f64 a (+.f64 d c))
(*.f64 (cbrt.f64 (*.f64 a (+.f64 c d))) (pow.f64 (cbrt.f64 (*.f64 a (+.f64 c d))) 2))
(*.f64 a (+.f64 d c))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 a (+.f64 c d))) 2) (cbrt.f64 (*.f64 a (+.f64 c d))))
(*.f64 a (+.f64 d c))
(*.f64 (sqrt.f64 (*.f64 a (+.f64 c d))) (sqrt.f64 (*.f64 a (+.f64 c d))))
(*.f64 a (+.f64 d c))
(*.f64 (+.f64 (pow.f64 (*.f64 c a) 3) (pow.f64 (*.f64 a d) 3)) (/.f64 1 (+.f64 (pow.f64 (*.f64 c a) 2) (*.f64 (*.f64 a d) (-.f64 (*.f64 a d) (*.f64 c a))))))
(/.f64 (*.f64 (+.f64 (pow.f64 (*.f64 a c) 3) (pow.f64 (*.f64 a d) 3)) 1) (+.f64 (pow.f64 (*.f64 a c) 2) (*.f64 a (*.f64 d (-.f64 (*.f64 a d) (*.f64 a c))))))
(/.f64 (+.f64 (pow.f64 (*.f64 a c) 3) (pow.f64 (*.f64 a d) 3)) (fma.f64 a (*.f64 d (*.f64 a (-.f64 d c))) (pow.f64 (*.f64 a c) 2)))
(/.f64 (*.f64 (pow.f64 a 3) (+.f64 (pow.f64 c 3) (pow.f64 d 3))) (fma.f64 a (*.f64 d (*.f64 a (-.f64 d c))) (pow.f64 (*.f64 a c) 2)))
(*.f64 (-.f64 (pow.f64 (*.f64 c a) 2) (pow.f64 (*.f64 a d) 2)) (/.f64 1 (*.f64 a (-.f64 c d))))
(/.f64 (-.f64 (pow.f64 (*.f64 a c) 2) (pow.f64 (*.f64 a d) 2)) (*.f64 a (-.f64 c d)))
(/.f64 (*.f64 a (+.f64 d c)) (/.f64 (*.f64 a (-.f64 c d)) (*.f64 a (-.f64 c d))))
(*.f64 (/.f64 (*.f64 a (+.f64 d c)) a) (/.f64 (*.f64 a (-.f64 c d)) (-.f64 c d)))
(/.f64 1 (/.f64 (+.f64 (pow.f64 (*.f64 c a) 2) (*.f64 (*.f64 a d) (-.f64 (*.f64 a d) (*.f64 c a)))) (+.f64 (pow.f64 (*.f64 c a) 3) (pow.f64 (*.f64 a d) 3))))
(/.f64 (*.f64 (+.f64 (pow.f64 (*.f64 a c) 3) (pow.f64 (*.f64 a d) 3)) 1) (+.f64 (pow.f64 (*.f64 a c) 2) (*.f64 a (*.f64 d (-.f64 (*.f64 a d) (*.f64 a c))))))
(/.f64 (+.f64 (pow.f64 (*.f64 a c) 3) (pow.f64 (*.f64 a d) 3)) (fma.f64 a (*.f64 d (*.f64 a (-.f64 d c))) (pow.f64 (*.f64 a c) 2)))
(/.f64 (*.f64 (pow.f64 a 3) (+.f64 (pow.f64 c 3) (pow.f64 d 3))) (fma.f64 a (*.f64 d (*.f64 a (-.f64 d c))) (pow.f64 (*.f64 a c) 2)))
(/.f64 1 (/.f64 (*.f64 a (-.f64 c d)) (-.f64 (pow.f64 (*.f64 c a) 2) (pow.f64 (*.f64 a d) 2))))
(/.f64 (-.f64 (pow.f64 (*.f64 a c) 2) (pow.f64 (*.f64 a d) 2)) (*.f64 a (-.f64 c d)))
(/.f64 (*.f64 a (+.f64 d c)) (/.f64 (*.f64 a (-.f64 c d)) (*.f64 a (-.f64 c d))))
(*.f64 (/.f64 (*.f64 a (+.f64 d c)) a) (/.f64 (*.f64 a (-.f64 c d)) (-.f64 c d)))
(/.f64 (+.f64 (pow.f64 (*.f64 c a) 3) (pow.f64 (*.f64 a d) 3)) (+.f64 (pow.f64 (*.f64 c a) 2) (*.f64 (*.f64 a d) (-.f64 (*.f64 a d) (*.f64 c a)))))
(/.f64 (*.f64 (+.f64 (pow.f64 (*.f64 a c) 3) (pow.f64 (*.f64 a d) 3)) 1) (+.f64 (pow.f64 (*.f64 a c) 2) (*.f64 a (*.f64 d (-.f64 (*.f64 a d) (*.f64 a c))))))
(/.f64 (+.f64 (pow.f64 (*.f64 a c) 3) (pow.f64 (*.f64 a d) 3)) (fma.f64 a (*.f64 d (*.f64 a (-.f64 d c))) (pow.f64 (*.f64 a c) 2)))
(/.f64 (*.f64 (pow.f64 a 3) (+.f64 (pow.f64 c 3) (pow.f64 d 3))) (fma.f64 a (*.f64 d (*.f64 a (-.f64 d c))) (pow.f64 (*.f64 a c) 2)))
(/.f64 (+.f64 (pow.f64 (*.f64 c a) 3) (pow.f64 (*.f64 a d) 3)) (+.f64 (pow.f64 (*.f64 a d) 2) (-.f64 (pow.f64 (*.f64 c a) 2) (*.f64 c (*.f64 a (*.f64 a d))))))
(/.f64 (*.f64 (+.f64 (pow.f64 (*.f64 a c) 3) (pow.f64 (*.f64 a d) 3)) 1) (+.f64 (pow.f64 (*.f64 a c) 2) (*.f64 a (*.f64 d (-.f64 (*.f64 a d) (*.f64 a c))))))
(/.f64 (+.f64 (pow.f64 (*.f64 a c) 3) (pow.f64 (*.f64 a d) 3)) (fma.f64 a (*.f64 d (*.f64 a (-.f64 d c))) (pow.f64 (*.f64 a c) 2)))
(/.f64 (*.f64 (pow.f64 a 3) (+.f64 (pow.f64 c 3) (pow.f64 d 3))) (fma.f64 a (*.f64 d (*.f64 a (-.f64 d c))) (pow.f64 (*.f64 a c) 2)))
(/.f64 (-.f64 (pow.f64 (*.f64 c a) 2) (pow.f64 (*.f64 a d) 2)) (*.f64 a (-.f64 c d)))
(/.f64 (-.f64 (pow.f64 (*.f64 a c) 2) (pow.f64 (*.f64 a d) 2)) (*.f64 a (-.f64 c d)))
(/.f64 (*.f64 a (+.f64 d c)) (/.f64 (*.f64 a (-.f64 c d)) (*.f64 a (-.f64 c d))))
(*.f64 (/.f64 (*.f64 a (+.f64 d c)) a) (/.f64 (*.f64 a (-.f64 c d)) (-.f64 c d)))
(/.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 c a) 3) (pow.f64 (*.f64 a d) 3))) (neg.f64 (+.f64 (pow.f64 (*.f64 c a) 2) (*.f64 (*.f64 a d) (-.f64 (*.f64 a d) (*.f64 c a))))))
(/.f64 (*.f64 (+.f64 (pow.f64 (*.f64 a c) 3) (pow.f64 (*.f64 a d) 3)) 1) (+.f64 (pow.f64 (*.f64 a c) 2) (*.f64 a (*.f64 d (-.f64 (*.f64 a d) (*.f64 a c))))))
(/.f64 (+.f64 (pow.f64 (*.f64 a c) 3) (pow.f64 (*.f64 a d) 3)) (fma.f64 a (*.f64 d (*.f64 a (-.f64 d c))) (pow.f64 (*.f64 a c) 2)))
(/.f64 (*.f64 (pow.f64 a 3) (+.f64 (pow.f64 c 3) (pow.f64 d 3))) (fma.f64 a (*.f64 d (*.f64 a (-.f64 d c))) (pow.f64 (*.f64 a c) 2)))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 c a) 2) (pow.f64 (*.f64 a d) 2))) (neg.f64 (*.f64 a (-.f64 c d))))
(/.f64 (-.f64 (pow.f64 (*.f64 a c) 2) (pow.f64 (*.f64 a d) 2)) (*.f64 a (-.f64 c d)))
(/.f64 (*.f64 a (+.f64 d c)) (/.f64 (*.f64 a (-.f64 c d)) (*.f64 a (-.f64 c d))))
(*.f64 (/.f64 (*.f64 a (+.f64 d c)) a) (/.f64 (*.f64 a (-.f64 c d)) (-.f64 c d)))
(/.f64 (-.f64 (pow.f64 (*.f64 a d) 2) (pow.f64 (*.f64 c a) 2)) (-.f64 (*.f64 a d) (*.f64 c a)))
(/.f64 (-.f64 (pow.f64 (*.f64 a c) 2) (pow.f64 (*.f64 a d) 2)) (*.f64 a (-.f64 c d)))
(/.f64 (*.f64 a (+.f64 d c)) (/.f64 (*.f64 a (-.f64 c d)) (*.f64 a (-.f64 c d))))
(*.f64 (/.f64 (*.f64 a (+.f64 d c)) a) (/.f64 (*.f64 a (-.f64 c d)) (-.f64 c d)))
(pow.f64 (*.f64 a (+.f64 c d)) 1)
(*.f64 a (+.f64 d c))
(pow.f64 (cbrt.f64 (*.f64 a (+.f64 c d))) 3)
(*.f64 a (+.f64 d c))
(pow.f64 (pow.f64 (*.f64 a (+.f64 c d)) 3) 1/3)
(*.f64 a (+.f64 d c))
(pow.f64 (sqrt.f64 (*.f64 a (+.f64 c d))) 2)
(*.f64 a (+.f64 d c))
(sqrt.f64 (pow.f64 (*.f64 a (+.f64 c d)) 2))
(*.f64 a (+.f64 d c))
(log.f64 (exp.f64 (*.f64 a (+.f64 c d))))
(*.f64 a (+.f64 d c))
(cbrt.f64 (pow.f64 (*.f64 a (+.f64 c d)) 3))
(*.f64 a (+.f64 d c))
(expm1.f64 (log1p.f64 (*.f64 a (+.f64 c d))))
(*.f64 a (+.f64 d c))
(exp.f64 (log.f64 (*.f64 a (+.f64 c d))))
(*.f64 a (+.f64 d c))
(log1p.f64 (expm1.f64 (*.f64 a (+.f64 c d))))
(*.f64 a (+.f64 d c))
(fma.f64 c a (*.f64 a d))
(*.f64 a (+.f64 d c))
(fma.f64 a c (*.f64 a d))
(*.f64 a (+.f64 d c))
(fma.f64 a d (*.f64 c a))
(*.f64 a (+.f64 d c))
(fma.f64 d a (*.f64 c a))
(*.f64 a (+.f64 d c))
(fma.f64 1 (*.f64 c a) (*.f64 a d))
(*.f64 a (+.f64 d c))
(fma.f64 1 (*.f64 a d) (*.f64 c a))
(*.f64 a (+.f64 d c))
(fma.f64 (pow.f64 (cbrt.f64 (*.f64 c a)) 2) (cbrt.f64 (*.f64 c a)) (*.f64 a d))
(*.f64 a (+.f64 d c))
(fma.f64 (pow.f64 (cbrt.f64 (*.f64 a d)) 2) (cbrt.f64 (*.f64 a d)) (*.f64 c a))
(*.f64 a (+.f64 d c))
(fma.f64 (sqrt.f64 (*.f64 c a)) (sqrt.f64 (*.f64 c a)) (*.f64 a d))
(*.f64 a (+.f64 d c))
(fma.f64 (sqrt.f64 (*.f64 a d)) (sqrt.f64 (*.f64 a d)) (*.f64 c a))
(*.f64 a (+.f64 d c))

localize7.0ms (0.2%)

Local Accuracy

Found 1 expressions with local accuracy:

NewAccuracyProgram
100.0%
(fma.f64 d a (*.f64 c a))
Compiler

Compiled 16 to 6 computations (62.5% saved)

series2.0ms (0.1%)

Counts
1 → 36
Calls

9 calls:

TimeVariablePointExpression
0.0ms
a
@-inf
(fma.f64 d a (*.f64 c a))
0.0ms
a
@inf
(fma.f64 d a (*.f64 c a))
0.0ms
d
@-inf
(fma.f64 d a (*.f64 c a))
0.0ms
a
@0
(fma.f64 d a (*.f64 c a))
0.0ms
d
@0
(fma.f64 d a (*.f64 c a))

rewrite98.0ms (2.7%)

Algorithm
batch-egg-rewrite
Rules
1518×pow1
1380×add-exp-log
1380×log1p-expm1-u
1380×expm1-log1p-u
1348×add-log-exp
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0815
115713
2186913
Stop Event
node limit
Counts
1 → 22
Calls
Call 1
Inputs
(fma.f64 d a (*.f64 c a))
Outputs
(+.f64 (*.f64 a c) (*.f64 d a))
(+.f64 (*.f64 d a) (*.f64 a c))
(+.f64 (*.f64 (*.f64 d a) 1) (*.f64 a c))
(-.f64 (+.f64 1 (*.f64 a (+.f64 d c))) 1)
(*.f64 a (+.f64 d c))
(*.f64 (*.f64 a (+.f64 d c)) 1)
(*.f64 1 (*.f64 a (+.f64 d c)))
(*.f64 (cbrt.f64 (*.f64 a (+.f64 d c))) (pow.f64 (cbrt.f64 (*.f64 a (+.f64 d c))) 2))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 a (+.f64 d c))) 2) (cbrt.f64 (*.f64 a (+.f64 d c))))
(*.f64 (sqrt.f64 (*.f64 a (+.f64 d c))) (sqrt.f64 (*.f64 a (+.f64 d c))))
(/.f64 (+.f64 (pow.f64 (*.f64 d a) 3) (pow.f64 (*.f64 a c) 3)) (+.f64 (*.f64 (*.f64 d a) (*.f64 d a)) (-.f64 (pow.f64 (*.f64 a c) 2) (*.f64 (*.f64 d a) (*.f64 a c)))))
(/.f64 (-.f64 (*.f64 (*.f64 d a) (*.f64 d a)) (pow.f64 (*.f64 a c) 2)) (-.f64 (*.f64 d a) (*.f64 a c)))
(pow.f64 (*.f64 a (+.f64 d c)) 1)
(pow.f64 (cbrt.f64 (*.f64 a (+.f64 d c))) 3)
(pow.f64 (pow.f64 (*.f64 a (+.f64 d c)) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 a (+.f64 d c))) 2)
(sqrt.f64 (pow.f64 (*.f64 a (+.f64 d c)) 2))
(log.f64 (exp.f64 (*.f64 a (+.f64 d c))))
(cbrt.f64 (pow.f64 (*.f64 a (+.f64 d c)) 3))
(expm1.f64 (log1p.f64 (*.f64 a (+.f64 d c))))
(exp.f64 (log.f64 (*.f64 a (+.f64 d c))))
(log1p.f64 (expm1.f64 (*.f64 a (+.f64 d c))))

simplify51.0ms (1.4%)

Algorithm
egg-herbie
Rules
1656×times-frac
802×associate-/l*
586×fma-def
458×associate-+r+
450×fma-neg
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
068846
1187828
2719820
32989790
Stop Event
node limit
Counts
58 → 37
Calls
Call 1
Inputs
(*.f64 c a)
(+.f64 (*.f64 a d) (*.f64 c a))
(+.f64 (*.f64 a d) (*.f64 c a))
(+.f64 (*.f64 a d) (*.f64 c a))
(*.f64 a d)
(+.f64 (*.f64 c a) (*.f64 a d))
(+.f64 (*.f64 c a) (*.f64 a d))
(+.f64 (*.f64 c a) (*.f64 a d))
(*.f64 a d)
(+.f64 (*.f64 c a) (*.f64 a d))
(+.f64 (*.f64 c a) (*.f64 a d))
(+.f64 (*.f64 c a) (*.f64 a d))
(*.f64 (+.f64 c d) a)
(*.f64 (+.f64 c d) a)
(*.f64 (+.f64 c d) a)
(*.f64 (+.f64 c d) a)
(*.f64 (+.f64 c d) a)
(*.f64 (+.f64 c d) a)
(*.f64 (+.f64 c d) a)
(*.f64 (+.f64 c d) a)
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 c) (*.f64 -1 d)) a))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 c) (*.f64 -1 d)) a))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 c) (*.f64 -1 d)) a))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 c) (*.f64 -1 d)) a))
(*.f64 a d)
(+.f64 (*.f64 c a) (*.f64 a d))
(+.f64 (*.f64 c a) (*.f64 a d))
(+.f64 (*.f64 c a) (*.f64 a d))
(*.f64 c a)
(+.f64 (*.f64 a d) (*.f64 c a))
(+.f64 (*.f64 a d) (*.f64 c a))
(+.f64 (*.f64 a d) (*.f64 c a))
(*.f64 c a)
(+.f64 (*.f64 a d) (*.f64 c a))
(+.f64 (*.f64 a d) (*.f64 c a))
(+.f64 (*.f64 a d) (*.f64 c a))
(+.f64 (*.f64 a c) (*.f64 d a))
(+.f64 (*.f64 d a) (*.f64 a c))
(+.f64 (*.f64 (*.f64 d a) 1) (*.f64 a c))
(-.f64 (+.f64 1 (*.f64 a (+.f64 d c))) 1)
(*.f64 a (+.f64 d c))
(*.f64 (*.f64 a (+.f64 d c)) 1)
(*.f64 1 (*.f64 a (+.f64 d c)))
(*.f64 (cbrt.f64 (*.f64 a (+.f64 d c))) (pow.f64 (cbrt.f64 (*.f64 a (+.f64 d c))) 2))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 a (+.f64 d c))) 2) (cbrt.f64 (*.f64 a (+.f64 d c))))
(*.f64 (sqrt.f64 (*.f64 a (+.f64 d c))) (sqrt.f64 (*.f64 a (+.f64 d c))))
(/.f64 (+.f64 (pow.f64 (*.f64 d a) 3) (pow.f64 (*.f64 a c) 3)) (+.f64 (*.f64 (*.f64 d a) (*.f64 d a)) (-.f64 (pow.f64 (*.f64 a c) 2) (*.f64 (*.f64 d a) (*.f64 a c)))))
(/.f64 (-.f64 (*.f64 (*.f64 d a) (*.f64 d a)) (pow.f64 (*.f64 a c) 2)) (-.f64 (*.f64 d a) (*.f64 a c)))
(pow.f64 (*.f64 a (+.f64 d c)) 1)
(pow.f64 (cbrt.f64 (*.f64 a (+.f64 d c))) 3)
(pow.f64 (pow.f64 (*.f64 a (+.f64 d c)) 3) 1/3)
(pow.f64 (sqrt.f64 (*.f64 a (+.f64 d c))) 2)
(sqrt.f64 (pow.f64 (*.f64 a (+.f64 d c)) 2))
(log.f64 (exp.f64 (*.f64 a (+.f64 d c))))
(cbrt.f64 (pow.f64 (*.f64 a (+.f64 d c)) 3))
(expm1.f64 (log1p.f64 (*.f64 a (+.f64 d c))))
(exp.f64 (log.f64 (*.f64 a (+.f64 d c))))
(log1p.f64 (expm1.f64 (*.f64 a (+.f64 d c))))
Outputs
(*.f64 c a)
(+.f64 (*.f64 a d) (*.f64 c a))
(*.f64 a (+.f64 c d))
(+.f64 (*.f64 a d) (*.f64 c a))
(*.f64 a (+.f64 c d))
(+.f64 (*.f64 a d) (*.f64 c a))
(*.f64 a (+.f64 c d))
(*.f64 a d)
(+.f64 (*.f64 c a) (*.f64 a d))
(*.f64 a (+.f64 c d))
(+.f64 (*.f64 c a) (*.f64 a d))
(*.f64 a (+.f64 c d))
(+.f64 (*.f64 c a) (*.f64 a d))
(*.f64 a (+.f64 c d))
(*.f64 a d)
(+.f64 (*.f64 c a) (*.f64 a d))
(*.f64 a (+.f64 c d))
(+.f64 (*.f64 c a) (*.f64 a d))
(*.f64 a (+.f64 c d))
(+.f64 (*.f64 c a) (*.f64 a d))
(*.f64 a (+.f64 c d))
(*.f64 (+.f64 c d) a)
(*.f64 a (+.f64 c d))
(*.f64 (+.f64 c d) a)
(*.f64 a (+.f64 c d))
(*.f64 (+.f64 c d) a)
(*.f64 a (+.f64 c d))
(*.f64 (+.f64 c d) a)
(*.f64 a (+.f64 c d))
(*.f64 (+.f64 c d) a)
(*.f64 a (+.f64 c d))
(*.f64 (+.f64 c d) a)
(*.f64 a (+.f64 c d))
(*.f64 (+.f64 c d) a)
(*.f64 a (+.f64 c d))
(*.f64 (+.f64 c d) a)
(*.f64 a (+.f64 c d))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 c) (*.f64 -1 d)) a))
(*.f64 a (+.f64 c d))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 c) (*.f64 -1 d)) a))
(*.f64 a (+.f64 c d))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 c) (*.f64 -1 d)) a))
(*.f64 a (+.f64 c d))
(*.f64 -1 (*.f64 (+.f64 (*.f64 -1 c) (*.f64 -1 d)) a))
(*.f64 a (+.f64 c d))
(*.f64 a d)
(+.f64 (*.f64 c a) (*.f64 a d))
(*.f64 a (+.f64 c d))
(+.f64 (*.f64 c a) (*.f64 a d))
(*.f64 a (+.f64 c d))
(+.f64 (*.f64 c a) (*.f64 a d))
(*.f64 a (+.f64 c d))
(*.f64 c a)
(+.f64 (*.f64 a d) (*.f64 c a))
(*.f64 a (+.f64 c d))
(+.f64 (*.f64 a d) (*.f64 c a))
(*.f64 a (+.f64 c d))
(+.f64 (*.f64 a d) (*.f64 c a))
(*.f64 a (+.f64 c d))
(*.f64 c a)
(+.f64 (*.f64 a d) (*.f64 c a))
(*.f64 a (+.f64 c d))
(+.f64 (*.f64 a d) (*.f64 c a))
(*.f64 a (+.f64 c d))
(+.f64 (*.f64 a d) (*.f64 c a))
(*.f64 a (+.f64 c d))
(+.f64 (*.f64 a c) (*.f64 d a))
(*.f64 a (+.f64 c d))
(+.f64 (*.f64 d a) (*.f64 a c))
(*.f64 a (+.f64 c d))
(+.f64 (*.f64 (*.f64 d a) 1) (*.f64 a c))
(*.f64 a (+.f64 c d))
(-.f64 (+.f64 1 (*.f64 a (+.f64 d c))) 1)
(*.f64 a (+.f64 c d))
(*.f64 a (+.f64 d c))
(*.f64 a (+.f64 c d))
(*.f64 (*.f64 a (+.f64 d c)) 1)
(*.f64 a (+.f64 c d))
(*.f64 1 (*.f64 a (+.f64 d c)))
(*.f64 a (+.f64 c d))
(*.f64 (cbrt.f64 (*.f64 a (+.f64 d c))) (pow.f64 (cbrt.f64 (*.f64 a (+.f64 d c))) 2))
(*.f64 a (+.f64 c d))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 a (+.f64 d c))) 2) (cbrt.f64 (*.f64 a (+.f64 d c))))
(*.f64 a (+.f64 c d))
(*.f64 (sqrt.f64 (*.f64 a (+.f64 d c))) (sqrt.f64 (*.f64 a (+.f64 d c))))
(*.f64 a (+.f64 c d))
(/.f64 (+.f64 (pow.f64 (*.f64 d a) 3) (pow.f64 (*.f64 a c) 3)) (+.f64 (*.f64 (*.f64 d a) (*.f64 d a)) (-.f64 (pow.f64 (*.f64 a c) 2) (*.f64 (*.f64 d a) (*.f64 a c)))))
(/.f64 (+.f64 (pow.f64 (*.f64 a d) 3) (pow.f64 (*.f64 c a) 3)) (fma.f64 (*.f64 a d) (*.f64 a d) (-.f64 (pow.f64 (*.f64 c a) 2) (*.f64 d (*.f64 a (*.f64 c a))))))
(/.f64 (+.f64 (pow.f64 (*.f64 a d) 3) (pow.f64 (*.f64 c a) 3)) (fma.f64 d (*.f64 a (*.f64 a d)) (*.f64 (*.f64 c a) (-.f64 (*.f64 c a) (*.f64 a d)))))
(/.f64 (*.f64 (pow.f64 a 3) (+.f64 (pow.f64 d 3) (pow.f64 c 3))) (+.f64 (pow.f64 (*.f64 c a) 2) (*.f64 (*.f64 a d) (*.f64 a (-.f64 d c)))))
(/.f64 (*.f64 (pow.f64 a 3) (+.f64 (pow.f64 d 3) (pow.f64 c 3))) (+.f64 (pow.f64 (*.f64 c a) 2) (*.f64 d (*.f64 a (*.f64 a (-.f64 d c))))))
(/.f64 (-.f64 (*.f64 (*.f64 d a) (*.f64 d a)) (pow.f64 (*.f64 a c) 2)) (-.f64 (*.f64 d a) (*.f64 a c)))
(/.f64 (fma.f64 (*.f64 a d) (*.f64 a d) (neg.f64 (pow.f64 (*.f64 c a) 2))) (-.f64 (*.f64 a d) (*.f64 c a)))
(/.f64 (*.f64 (*.f64 a (+.f64 c d)) (*.f64 a (-.f64 d c))) (*.f64 a (-.f64 d c)))
(*.f64 (/.f64 (*.f64 a (+.f64 c d)) a) (/.f64 (*.f64 a (-.f64 d c)) (-.f64 d c)))
(*.f64 a (/.f64 (+.f64 c d) 1))
(pow.f64 (*.f64 a (+.f64 d c)) 1)
(*.f64 a (+.f64 c d))
(pow.f64 (cbrt.f64 (*.f64 a (+.f64 d c))) 3)
(*.f64 a (+.f64 c d))
(pow.f64 (pow.f64 (*.f64 a (+.f64 d c)) 3) 1/3)
(*.f64 a (+.f64 c d))
(pow.f64 (sqrt.f64 (*.f64 a (+.f64 d c))) 2)
(*.f64 a (+.f64 c d))
(sqrt.f64 (pow.f64 (*.f64 a (+.f64 d c)) 2))
(*.f64 a (+.f64 c d))
(log.f64 (exp.f64 (*.f64 a (+.f64 d c))))
(*.f64 a (+.f64 c d))
(cbrt.f64 (pow.f64 (*.f64 a (+.f64 d c)) 3))
(*.f64 a (+.f64 c d))
(expm1.f64 (log1p.f64 (*.f64 a (+.f64 d c))))
(*.f64 a (+.f64 c d))
(exp.f64 (log.f64 (*.f64 a (+.f64 d c))))
(*.f64 a (+.f64 c d))
(log1p.f64 (expm1.f64 (*.f64 a (+.f64 d c))))
(*.f64 a (+.f64 c d))

eval82.0ms (2.3%)

Compiler

Compiled 1126 to 368 computations (67.3% saved)

prune13.0ms (0.4%)

Pruning

5 alts after pruning (0 fresh and 5 done)

PrunedKeptTotal
New88088
Fresh000
Picked011
Done044
Total88593
Accurracy
100.0%
Counts
93 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.9%
(fma.f64 d a (*.f64 c a))
99.8%
(+.f64 (*.f64 c a) (*.f64 a d))
93.3%
(*.f64 d a)
99.9%
(*.f64 a (+.f64 (+.f64 b c) d))
99.8%
(*.f64 a (+.f64 c d))
Compiler

Compiled 48 to 31 computations (35.4% saved)

regimes91.0ms (2.6%)

Counts
7 → 1
Calls
Call 1
Inputs
(*.f64 d a)
(*.f64 a (+.f64 c d))
(*.f64 a (+.f64 (+.f64 b c) d))
(+.f64 (*.f64 c a) (*.f64 a d))
(+.f64 (*.f64 (+.f64 d b) a) (*.f64 c a))
(fma.f64 d a (*.f64 c a))
(fma.f64 d a (*.f64 a (+.f64 b c)))
Outputs
(fma.f64 d a (*.f64 a (+.f64 b c)))
Calls

7 calls:

60.0ms
b
6.0ms
(*.f64 a (+.f64 (+.f64 b c) d))
5.0ms
(+.f64 b c)
5.0ms
(+.f64 (+.f64 b c) d)
5.0ms
a
Results
AccuracySegmentsBranch
100.0%1a
100.0%1b
100.0%1c
100.0%1d
100.0%1(*.f64 a (+.f64 (+.f64 b c) d))
100.0%1(+.f64 (+.f64 b c) d)
100.0%1(+.f64 b c)
Compiler

Compiled 96 to 53 computations (44.8% saved)

regimes75.0ms (2.1%)

Counts
6 → 1
Calls
Call 1
Inputs
(*.f64 d a)
(*.f64 a (+.f64 c d))
(*.f64 a (+.f64 (+.f64 b c) d))
(+.f64 (*.f64 c a) (*.f64 a d))
(+.f64 (*.f64 (+.f64 d b) a) (*.f64 c a))
(fma.f64 d a (*.f64 c a))
Outputs
(*.f64 a (+.f64 (+.f64 b c) d))
Calls

7 calls:

45.0ms
(+.f64 b c)
5.0ms
(*.f64 a (+.f64 (+.f64 b c) d))
5.0ms
c
5.0ms
d
5.0ms
(+.f64 (+.f64 b c) d)
Results
AccuracySegmentsBranch
99.9%1a
99.9%1b
99.9%1c
99.9%1d
99.9%1(*.f64 a (+.f64 (+.f64 b c) d))
99.9%1(+.f64 (+.f64 b c) d)
99.9%1(+.f64 b c)
Compiler

Compiled 88 to 51 computations (42% saved)

regimes15.0ms (0.4%)

Accuracy

Total -4.2b remaining (-3356.1%)

Threshold costs -4.2b (-3356.1%)

Counts
2 → 1
Calls
Call 1
Inputs
(*.f64 d a)
(*.f64 a (+.f64 c d))
Outputs
(*.f64 a (+.f64 c d))
Calls

4 calls:

4.0ms
a
3.0ms
c
3.0ms
d
3.0ms
b
Results
AccuracySegmentsBranch
99.8%1a
99.8%1b
99.8%1c
99.8%1d
Compiler

Compiled 32 to 23 computations (28.1% saved)

simplify5.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01560
12260
Stop Event
done
saturated
Calls
Call 1
Inputs
(fma.f64 d a (*.f64 a (+.f64 b c)))
(*.f64 a (+.f64 (+.f64 b c) d))
(*.f64 a (+.f64 c d))
(*.f64 d a)
Outputs
(fma.f64 d a (*.f64 a (+.f64 b c)))
(*.f64 a (+.f64 (+.f64 b c) d))
(*.f64 a (+.f64 d (+.f64 b c)))
(*.f64 a (+.f64 c d))
(*.f64 a (+.f64 d c))
(*.f64 d a)
Compiler

Compiled 39 to 25 computations (35.9% saved)

soundness181.0ms (5.1%)

Rules
1412×fma-def
1044×log-prod
990×fma-def
952×pow-prod-down
748×cancel-sign-sub-inv
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0919
120519
2313819
01812304
14672262
214182252
345902204
Stop Event
node limit
node limit
Compiler

Compiled 53 to 21 computations (60.4% saved)

end87.0ms (2.4%)

Compiler

Compiled 51 to 26 computations (49% saved)

Profiling

Loading profile data...