Details

Time bar (total: 3.6s)

analyze5.0ms (0.1%)

Algorithm
search
Search
TrueOtherFalseIter
0%100%0%0
0%100%0%1
0%100%0%2
0%50%50%3
25%25%50%4
37.5%12.5%50%5
43.7%6.2%50%6
46.9%3.1%50%7
48.4%1.6%50%8
49.2%0.8%50%9
49.6%0.4%50%10
49.8%0.2%50%11
49.9%0.1%50%12
Compiler

Compiled 21 to 16 computations (23.8% saved)

sample1.6s (43.9%)

Results
1.6s8256×body256valid
2.0ms14×body256invalid

preprocess79.0ms (2.2%)

Algorithm
egg-herbie
Rules
748×fma-neg_binary64
738×div-sub_binary64
598×fma-def_binary64
488×associate-/l*_binary64
410×distribute-rgt-in_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01529
13729
28927
323827
471127
5168925
6291725
7520025
8754125
011
Stop Event
saturated
node limit
Calls
Call 1
Inputs
0
Outputs
0
Call 2
Inputs
(*.f64 (*.f64 (/.f64 (sqrt.f64 2) 4) (sqrt.f64 (-.f64 1 (*.f64 3 (*.f64 v v))))) (-.f64 1 (*.f64 v v)))
Outputs
(*.f64 (*.f64 (/.f64 (sqrt.f64 2) 4) (sqrt.f64 (-.f64 1 (*.f64 3 (*.f64 v v))))) (-.f64 1 (*.f64 v v)))
(*.f64 (/.f64 (sqrt.f64 2) 4) (*.f64 (sqrt.f64 (+.f64 1 (*.f64 -3 (*.f64 v v)))) (-.f64 1 (*.f64 v v))))
(*.f64 (/.f64 (sqrt.f64 2) 4) (*.f64 (sqrt.f64 (+.f64 1 (*.f64 (*.f64 v v) -3))) (-.f64 1 (*.f64 v v))))
(*.f64 (/.f64 (sqrt.f64 2) 4) (*.f64 (sqrt.f64 (fma.f64 (*.f64 v v) -3 1)) (-.f64 1 (*.f64 v v))))
(*.f64 (sqrt.f64 (fma.f64 (*.f64 v v) -3 1)) (*.f64 (/.f64 (sqrt.f64 2) 4) (-.f64 1 (*.f64 v v))))
(*.f64 (sqrt.f64 (fma.f64 (*.f64 v v) -3 1)) (*.f64 (fma.f64 v v -1) (/.f64 (sqrt.f64 2) -4)))
(*.f64 (sqrt.f64 (fma.f64 v (*.f64 v -3) 1)) (*.f64 (sqrt.f64 2) (*.f64 -1/4 (fma.f64 v v -1))))
(*.f64 (sqrt.f64 (fma.f64 v (*.f64 v -3) 1)) (*.f64 (sqrt.f64 2) (*.f64 (fma.f64 v v -1) -1/4)))
Compiler

Compiled 21 to 16 computations (23.8% saved)

simplify75.0ms (2.1%)

Algorithm
egg-herbie
Rules
748×fma-neg_binary64
738×div-sub_binary64
598×fma-def_binary64
488×associate-/l*_binary64
410×distribute-rgt-in_binary64
Iterations

Useful iterations: 5 (0.0ms)

IterNodesCost
01529
13729
28927
323827
471127
5168925
6291725
7520025
8754125
Stop Event
node limit
Counts
1 → 2
Calls
Call 1
Inputs
(*.f64 (*.f64 (/.f64 (sqrt.f64 2) 4) (sqrt.f64 (-.f64 1 (*.f64 3 (*.f64 v v))))) (-.f64 1 (*.f64 v v)))
Outputs
(*.f64 (*.f64 (/.f64 (sqrt.f64 2) 4) (sqrt.f64 (-.f64 1 (*.f64 3 (*.f64 v v))))) (-.f64 1 (*.f64 v v)))
(*.f64 (/.f64 (sqrt.f64 2) 4) (*.f64 (sqrt.f64 (+.f64 1 (*.f64 -3 (*.f64 v v)))) (-.f64 1 (*.f64 v v))))
(*.f64 (/.f64 (sqrt.f64 2) 4) (*.f64 (sqrt.f64 (+.f64 1 (*.f64 (*.f64 v v) -3))) (-.f64 1 (*.f64 v v))))
(*.f64 (/.f64 (sqrt.f64 2) 4) (*.f64 (sqrt.f64 (fma.f64 (*.f64 v v) -3 1)) (-.f64 1 (*.f64 v v))))
(*.f64 (sqrt.f64 (fma.f64 (*.f64 v v) -3 1)) (*.f64 (/.f64 (sqrt.f64 2) 4) (-.f64 1 (*.f64 v v))))
(*.f64 (sqrt.f64 (fma.f64 (*.f64 v v) -3 1)) (*.f64 (fma.f64 v v -1) (/.f64 (sqrt.f64 2) -4)))
(*.f64 (sqrt.f64 (fma.f64 v (*.f64 v -3) 1)) (*.f64 (sqrt.f64 2) (*.f64 -1/4 (fma.f64 v v -1))))
(*.f64 (sqrt.f64 (fma.f64 v (*.f64 v -3) 1)) (*.f64 (sqrt.f64 2) (*.f64 (fma.f64 v v -1) -1/4)))

eval1.0ms (0%)

Compiler

Compiled 37 to 28 computations (24.3% saved)

prune1.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New112
Fresh011
Picked000
Done000
Total123
Error
0.0b
Counts
3 → 1
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(*.f64 (*.f64 (/.f64 (sqrt.f64 2) 4) (sqrt.f64 (-.f64 1 (*.f64 3 (*.f64 v v))))) (-.f64 1 (*.f64 v v)))
Compiler

Compiled 20 to 15 computations (25% saved)

localize29.0ms (0.8%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(sqrt.f64 (-.f64 1 (*.f64 3 (*.f64 v v))))
0.0b
(*.f64 (/.f64 (sqrt.f64 2) 4) (sqrt.f64 (-.f64 1 (*.f64 3 (*.f64 v v)))))
0.2b
(*.f64 3 (*.f64 v v))
Compiler

Compiled 72 to 48 computations (33.3% saved)

series6.0ms (0.2%)

Counts
3 → 36
Calls

9 calls:

TimeVariablePointExpression
1.0ms
v
@inf
(*.f64 (/.f64 (sqrt.f64 2) 4) (sqrt.f64 (-.f64 1 (*.f64 3 (*.f64 v v)))))
1.0ms
v
@0
(*.f64 (/.f64 (sqrt.f64 2) 4) (sqrt.f64 (-.f64 1 (*.f64 3 (*.f64 v v)))))
1.0ms
v
@0
(*.f64 3 (*.f64 v v))
1.0ms
v
@-inf
(*.f64 (/.f64 (sqrt.f64 2) 4) (sqrt.f64 (-.f64 1 (*.f64 3 (*.f64 v v)))))
1.0ms
v
@inf
(*.f64 3 (*.f64 v v))

rewrite85.0ms (2.3%)

Algorithm
batch-egg-rewrite
Rules
545×prod-diff_binary64
533×log-prod_binary64
321×pow-prod-down_binary64
298×pow2_binary64
204×pow1/3_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01339
127734
2319330
Stop Event
node limit
Counts
3 → 75
Calls
Call 1
Inputs
(*.f64 3 (*.f64 v v))
(*.f64 (/.f64 (sqrt.f64 2) 4) (sqrt.f64 (-.f64 1 (*.f64 3 (*.f64 v v)))))
(sqrt.f64 (-.f64 1 (*.f64 3 (*.f64 v v))))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 3 (*.f64 v v)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (pow.f64 (exp.f64 v) v) 2)) (*.f64 v v))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 3) (*.f64 v v)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 3) (*.f64 v v)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (fma.f64 3 (*.f64 v v) 1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 3 (*.f64 v v)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 9 (pow.f64 v 4)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 3 (*.f64 v v))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 v (sqrt.f64 3)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 27 (pow.f64 v 6)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 9 (pow.f64 v 4)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 3) (*.f64 v v)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 3 (*.f64 v v)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 27 (pow.f64 v 6)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 3 (*.f64 v v))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 3 (*.f64 v v))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 3 (*.f64 v v))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 3 (*.f64 v v))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 3 (*.f64 v v) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 3 (*.f64 v v) 1)) 2) (cbrt.f64 (fma.f64 3 (*.f64 v v) 1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (hypot.f64 1 (*.f64 v (sqrt.f64 3))) (hypot.f64 1 (*.f64 v (sqrt.f64 3))) -1)))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (*.f64 (fma.f64 (*.f64 v v) -3 1) 1/8)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 v v) -3 1) 1/8)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 v v) -3 1) 1/8))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 v v) -3 1) 1/8))))) (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 v v) -3 1) 1/8))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 v v) -3 1) 1/8)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 2) (/.f64 4 (sqrt.f64 (fma.f64 (*.f64 v v) -3 1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 4 (sqrt.f64 (*.f64 2 (fma.f64 (*.f64 v v) -3 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (fma.f64 (*.f64 v v) -3 1)) (/.f64 4 (sqrt.f64 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (*.f64 2 (fma.f64 (*.f64 v v) -3 1))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (sqrt.f64 (*.f64 2 (fma.f64 (*.f64 v v) -3 1)))) -4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 (sqrt.f64 2)) (sqrt.f64 (fma.f64 (*.f64 v v) -3 1))) -4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (fma.f64 (*.f64 v v) -3 1)) (neg.f64 (sqrt.f64 2))) -4)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 v v) -3 1) 1/8)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (fma.f64 (*.f64 v v) -3 1) 1/8) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 v v) -3 1) 1/8)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 v v) -3 1) 1/8))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 v v) -3 1) 1/8))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 4 (sqrt.f64 (*.f64 2 (fma.f64 (*.f64 v v) -3 1)))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (fma.f64 (*.f64 v v) -3 1) 1/8))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 v v) -3 1) 1/8))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 v v) -3 1) 1/8)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 v v) -3 1) 1/8)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 v v) -3 1) 1/8))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 v v) -3 1) 1/8))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 v v) -3 1) 1/8))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 v v) -3 1) 1/8))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (fma.f64 (*.f64 v v) -3 1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (fma.f64 (*.f64 v v) -3 1)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (sqrt.f64 (fma.f64 (*.f64 v v) -3 1))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (fma.f64 (*.f64 v v) -3 1))))) (log.f64 (sqrt.f64 (exp.f64 (sqrt.f64 (fma.f64 (*.f64 v v) -3 1))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (sqrt.f64 (fma.f64 (*.f64 v v) -3 1)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (fma.f64 (*.f64 v v) -3 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 (*.f64 v v) -3 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 (*.f64 v v) -3 1)) (pow.f64 (fma.f64 (*.f64 v v) -3 1) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (fma.f64 (*.f64 v v) -3 1) 1/6) (cbrt.f64 (fma.f64 (*.f64 v v) -3 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (fma.f64 (*.f64 v v) -3 1) 1/4) (pow.f64 (fma.f64 (*.f64 v v) -3 1) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/2) (sqrt.f64 (fma.f64 (*.f64 v v) -3 1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (-.f64 1 (*.f64 9 (pow.f64 v 4)))) (hypot.f64 1 (*.f64 v (sqrt.f64 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (-.f64 1 (*.f64 27 (pow.f64 v 6)))) (hypot.f64 1 (hypot.f64 (*.f64 3 (*.f64 v v)) (*.f64 v (sqrt.f64 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 (*.f64 v v) -3 1) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 (*.f64 v v) -3 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 (*.f64 v v) -3 1) 2) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 (*.f64 v v) -3 1) 3) 1/6)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 (*.f64 v v) -3 1) 3/2) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 (*.f64 v v) -3 1)) 3/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 (*.f64 v v) -3 1) 1/6) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 (*.f64 v v) -3 1) 1/4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (sqrt.f64 (fma.f64 (*.f64 v v) -3 1)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (sqrt.f64 (fma.f64 (*.f64 v v) -3 1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (sqrt.f64 (fma.f64 (*.f64 v v) -3 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 (*.f64 v v) -3 1) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x hypot.f64 1 (sqrt.f64 (*.f64 (*.f64 v v) -3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (sqrt.f64 (fma.f64 (*.f64 v v) -3 1))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (sqrt.f64 (fma.f64 (*.f64 v v) -3 1))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 1/2 (log1p.f64 (*.f64 (*.f64 v v) -3))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log1p.f64 (*.f64 (*.f64 v v) -3)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 1/2 (log1p.f64 (*.f64 (*.f64 v v) -3))) 1))))))

simplify74.0ms (2%)

Algorithm
egg-herbie
Rules
622×associate-/l*_binary64
514×associate-*l/_binary64
482×fma-def_binary64
461×associate-/l/_binary64
453×fma-neg_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
098770
1290758
2899718
33470682
47809682
Stop Event
node limit
Counts
111 → 122
Calls
Call 1
Inputs
(*.f64 3 (pow.f64 v 2))
(*.f64 3 (pow.f64 v 2))
(*.f64 3 (pow.f64 v 2))
(*.f64 3 (pow.f64 v 2))
(*.f64 3 (pow.f64 v 2))
(*.f64 3 (pow.f64 v 2))
(*.f64 3 (pow.f64 v 2))
(*.f64 3 (pow.f64 v 2))
(*.f64 3 (pow.f64 v 2))
(*.f64 3 (pow.f64 v 2))
(*.f64 3 (pow.f64 v 2))
(*.f64 3 (pow.f64 v 2))
(*.f64 1/4 (sqrt.f64 2))
(+.f64 (*.f64 1/4 (sqrt.f64 2)) (*.f64 -3/8 (*.f64 (sqrt.f64 2) (pow.f64 v 2))))
(+.f64 (*.f64 -9/32 (*.f64 (sqrt.f64 2) (pow.f64 v 4))) (+.f64 (*.f64 1/4 (sqrt.f64 2)) (*.f64 -3/8 (*.f64 (sqrt.f64 2) (pow.f64 v 2)))))
(+.f64 (*.f64 -9/32 (*.f64 (sqrt.f64 2) (pow.f64 v 4))) (+.f64 (*.f64 1/4 (sqrt.f64 2)) (+.f64 (*.f64 -27/64 (*.f64 (sqrt.f64 2) (pow.f64 v 6))) (*.f64 -3/8 (*.f64 (sqrt.f64 2) (pow.f64 v 2))))))
(*.f64 1/4 (*.f64 (sqrt.f64 2) (*.f64 v (sqrt.f64 -3))))
(+.f64 (*.f64 1/4 (*.f64 (sqrt.f64 2) (*.f64 v (sqrt.f64 -3)))) (*.f64 1/8 (/.f64 (sqrt.f64 2) (*.f64 v (sqrt.f64 -3)))))
(+.f64 (*.f64 1/4 (*.f64 (sqrt.f64 2) (*.f64 v (sqrt.f64 -3)))) (+.f64 (*.f64 -1/32 (/.f64 (sqrt.f64 2) (*.f64 (pow.f64 v 3) (pow.f64 (sqrt.f64 -3) 3)))) (*.f64 1/8 (/.f64 (sqrt.f64 2) (*.f64 v (sqrt.f64 -3))))))
(+.f64 (*.f64 1/64 (/.f64 (sqrt.f64 2) (*.f64 (pow.f64 v 5) (pow.f64 (sqrt.f64 -3) 5)))) (+.f64 (*.f64 1/4 (*.f64 (sqrt.f64 2) (*.f64 v (sqrt.f64 -3)))) (+.f64 (*.f64 -1/32 (/.f64 (sqrt.f64 2) (*.f64 (pow.f64 v 3) (pow.f64 (sqrt.f64 -3) 3)))) (*.f64 1/8 (/.f64 (sqrt.f64 2) (*.f64 v (sqrt.f64 -3)))))))
(*.f64 -1/4 (*.f64 (sqrt.f64 2) (*.f64 v (sqrt.f64 -3))))
(+.f64 (*.f64 -1/8 (/.f64 (sqrt.f64 2) (*.f64 v (sqrt.f64 -3)))) (*.f64 -1/4 (*.f64 (sqrt.f64 2) (*.f64 v (sqrt.f64 -3)))))
(+.f64 (*.f64 -1/8 (/.f64 (sqrt.f64 2) (*.f64 v (sqrt.f64 -3)))) (+.f64 (*.f64 -1/4 (*.f64 (sqrt.f64 2) (*.f64 v (sqrt.f64 -3)))) (*.f64 1/32 (/.f64 (sqrt.f64 2) (*.f64 (pow.f64 v 3) (pow.f64 (sqrt.f64 -3) 3))))))
(+.f64 (*.f64 -1/8 (/.f64 (sqrt.f64 2) (*.f64 v (sqrt.f64 -3)))) (+.f64 (*.f64 -1/64 (/.f64 (sqrt.f64 2) (*.f64 (pow.f64 v 5) (pow.f64 (sqrt.f64 -3) 5)))) (+.f64 (*.f64 -1/4 (*.f64 (sqrt.f64 2) (*.f64 v (sqrt.f64 -3)))) (*.f64 1/32 (/.f64 (sqrt.f64 2) (*.f64 (pow.f64 v 3) (pow.f64 (sqrt.f64 -3) 3)))))))
1
(+.f64 1 (*.f64 -3/2 (pow.f64 v 2)))
(+.f64 1 (+.f64 (*.f64 -3/2 (pow.f64 v 2)) (*.f64 -9/8 (pow.f64 v 4))))
(+.f64 1 (+.f64 (*.f64 -3/2 (pow.f64 v 2)) (+.f64 (*.f64 -27/16 (pow.f64 v 6)) (*.f64 -9/8 (pow.f64 v 4)))))
(*.f64 v (sqrt.f64 -3))
(+.f64 (*.f64 1/2 (/.f64 1 (*.f64 v (sqrt.f64 -3)))) (*.f64 v (sqrt.f64 -3)))
(-.f64 (+.f64 (*.f64 1/2 (/.f64 1 (*.f64 v (sqrt.f64 -3)))) (*.f64 v (sqrt.f64 -3))) (*.f64 1/8 (/.f64 1 (*.f64 (pow.f64 v 3) (pow.f64 (sqrt.f64 -3) 3)))))
(-.f64 (+.f64 (*.f64 1/2 (/.f64 1 (*.f64 v (sqrt.f64 -3)))) (+.f64 (*.f64 1/16 (/.f64 1 (*.f64 (pow.f64 v 5) (pow.f64 (sqrt.f64 -3) 5)))) (*.f64 v (sqrt.f64 -3)))) (*.f64 1/8 (/.f64 1 (*.f64 (pow.f64 v 3) (pow.f64 (sqrt.f64 -3) 3)))))
(*.f64 -1 (*.f64 v (sqrt.f64 -3)))
(-.f64 (*.f64 -1 (*.f64 v (sqrt.f64 -3))) (*.f64 1/2 (/.f64 1 (*.f64 v (sqrt.f64 -3)))))
(-.f64 (+.f64 (*.f64 -1 (*.f64 v (sqrt.f64 -3))) (*.f64 1/8 (/.f64 1 (*.f64 (pow.f64 v 3) (pow.f64 (sqrt.f64 -3) 3))))) (*.f64 1/2 (/.f64 1 (*.f64 v (sqrt.f64 -3)))))
(-.f64 (+.f64 (*.f64 -1 (*.f64 v (sqrt.f64 -3))) (*.f64 1/8 (/.f64 1 (*.f64 (pow.f64 v 3) (pow.f64 (sqrt.f64 -3) 3))))) (+.f64 (*.f64 1/2 (/.f64 1 (*.f64 v (sqrt.f64 -3)))) (*.f64 1/16 (/.f64 1 (*.f64 (pow.f64 v 5) (pow.f64 (sqrt.f64 -3) 5))))))
Outputs
(*.f64 3 (pow.f64 v 2))
(*.f64 3 (*.f64 v v))
(*.f64 3 (pow.f64 v 2))
(*.f64 3 (*.f64 v v))
(*.f64 3 (pow.f64 v 2))
(*.f64 3 (*.f64 v v))
(*.f64 3 (pow.f64 v 2))
(*.f64 3 (*.f64 v v))
(*.f64 3 (pow.f64 v 2))
(*.f64 3 (*.f64 v v))
(*.f64 3 (pow.f64 v 2))
(*.f64 3 (*.f64 v v))
(*.f64 3 (pow.f64 v 2))
(*.f64 3 (*.f64 v v))
(*.f64 3 (pow.f64 v 2))
(*.f64 3 (*.f64 v v))
(*.f64 3 (pow.f64 v 2))
(*.f64 3 (*.f64 v v))
(*.f64 3 (pow.f64 v 2))
(*.f64 3 (*.f64 v v))
(*.f64 3 (pow.f64 v 2))
(*.f64 3 (*.f64 v v))
(*.f64 3 (pow.f64 v 2))
(*.f64 3 (*.f64 v v))
(*.f64 1/4 (sqrt.f64 2))
(+.f64 (*.f64 1/4 (sqrt.f64 2)) (*.f64 -3/8 (*.f64 (sqrt.f64 2) (pow.f64 v 2))))
(fma.f64 1/4 (sqrt.f64 2) (*.f64 -3/8 (*.f64 (*.f64 v v) (sqrt.f64 2))))
(fma.f64 1/4 (sqrt.f64 2) (*.f64 (*.f64 v v) (*.f64 (sqrt.f64 2) -3/8)))
(*.f64 (sqrt.f64 2) (+.f64 1/4 (*.f64 v (*.f64 v -3/8))))
(*.f64 (sqrt.f64 2) (+.f64 1/4 (*.f64 (*.f64 v v) -3/8)))
(+.f64 (*.f64 -9/32 (*.f64 (sqrt.f64 2) (pow.f64 v 4))) (+.f64 (*.f64 1/4 (sqrt.f64 2)) (*.f64 -3/8 (*.f64 (sqrt.f64 2) (pow.f64 v 2)))))
(fma.f64 -9/32 (*.f64 (sqrt.f64 2) (pow.f64 v 4)) (fma.f64 1/4 (sqrt.f64 2) (*.f64 -3/8 (*.f64 (*.f64 v v) (sqrt.f64 2)))))
(fma.f64 -9/32 (*.f64 (sqrt.f64 2) (pow.f64 v 4)) (fma.f64 1/4 (sqrt.f64 2) (*.f64 (*.f64 v v) (*.f64 (sqrt.f64 2) -3/8))))
(fma.f64 (*.f64 v v) (*.f64 (sqrt.f64 2) -3/8) (*.f64 (sqrt.f64 2) (+.f64 (*.f64 -9/32 (pow.f64 v 4)) 1/4)))
(*.f64 (sqrt.f64 2) (+.f64 1/4 (+.f64 (*.f64 -9/32 (pow.f64 v 4)) (*.f64 (*.f64 v v) -3/8))))
(+.f64 (*.f64 -9/32 (*.f64 (sqrt.f64 2) (pow.f64 v 4))) (+.f64 (*.f64 1/4 (sqrt.f64 2)) (+.f64 (*.f64 -27/64 (*.f64 (sqrt.f64 2) (pow.f64 v 6))) (*.f64 -3/8 (*.f64 (sqrt.f64 2) (pow.f64 v 2))))))
(fma.f64 -9/32 (*.f64 (sqrt.f64 2) (pow.f64 v 4)) (fma.f64 1/4 (sqrt.f64 2) (fma.f64 -27/64 (*.f64 (sqrt.f64 2) (pow.f64 v 6)) (*.f64 -3/8 (*.f64 (*.f64 v v) (sqrt.f64 2))))))
(fma.f64 -9/32 (*.f64 (sqrt.f64 2) (pow.f64 v 4)) (fma.f64 1/4 (sqrt.f64 2) (fma.f64 -3/8 (*.f64 v (*.f64 v (sqrt.f64 2))) (*.f64 (sqrt.f64 2) (*.f64 (pow.f64 v 6) -27/64)))))
(+.f64 (*.f64 (sqrt.f64 2) (+.f64 1/4 (*.f64 -27/64 (pow.f64 v 6)))) (*.f64 (sqrt.f64 2) (+.f64 (*.f64 -9/32 (pow.f64 v 4)) (*.f64 v (*.f64 v -3/8)))))
(*.f64 (sqrt.f64 2) (+.f64 (+.f64 (*.f64 -27/64 (pow.f64 v 6)) (*.f64 (*.f64 v v) -3/8)) (+.f64 1/4 (*.f64 -9/32 (pow.f64 v 4)))))
(*.f64 1/4 (*.f64 (sqrt.f64 2) (*.f64 v (sqrt.f64 -3))))
(*.f64 (*.f64 1/4 (sqrt.f64 2)) (*.f64 v (sqrt.f64 -3)))
(*.f64 v (*.f64 (sqrt.f64 2) (*.f64 1/4 (sqrt.f64 -3))))
(*.f64 v (*.f64 1/4 (*.f64 (sqrt.f64 2) (sqrt.f64 -3))))
(+.f64 (*.f64 1/4 (*.f64 (sqrt.f64 2) (*.f64 v (sqrt.f64 -3)))) (*.f64 1/8 (/.f64 (sqrt.f64 2) (*.f64 v (sqrt.f64 -3)))))
(fma.f64 1/4 (*.f64 (sqrt.f64 2) (*.f64 v (sqrt.f64 -3))) (*.f64 1/8 (/.f64 (sqrt.f64 2) (*.f64 v (sqrt.f64 -3)))))
(fma.f64 1/4 (*.f64 v (*.f64 (sqrt.f64 2) (sqrt.f64 -3))) (*.f64 1/8 (/.f64 (sqrt.f64 2) (*.f64 v (sqrt.f64 -3)))))
(*.f64 (sqrt.f64 2) (+.f64 (*.f64 v (*.f64 1/4 (sqrt.f64 -3))) (/.f64 1/8 (*.f64 v (sqrt.f64 -3)))))
(+.f64 (*.f64 1/4 (*.f64 (sqrt.f64 2) (*.f64 v (sqrt.f64 -3)))) (+.f64 (*.f64 -1/32 (/.f64 (sqrt.f64 2) (*.f64 (pow.f64 v 3) (pow.f64 (sqrt.f64 -3) 3)))) (*.f64 1/8 (/.f64 (sqrt.f64 2) (*.f64 v (sqrt.f64 -3))))))
(fma.f64 1/4 (*.f64 (sqrt.f64 2) (*.f64 v (sqrt.f64 -3))) (fma.f64 -1/32 (/.f64 (/.f64 (sqrt.f64 2) (pow.f64 v 3)) (pow.f64 (sqrt.f64 -3) 3)) (*.f64 1/8 (/.f64 (sqrt.f64 2) (*.f64 v (sqrt.f64 -3))))))
(fma.f64 1/4 (*.f64 (sqrt.f64 2) (*.f64 v (sqrt.f64 -3))) (fma.f64 1/8 (/.f64 (sqrt.f64 2) (*.f64 v (sqrt.f64 -3))) (*.f64 -1/32 (/.f64 (sqrt.f64 2) (*.f64 (pow.f64 v 3) (*.f64 (sqrt.f64 -3) -3))))))
(fma.f64 1/4 (*.f64 v (*.f64 (sqrt.f64 2) (sqrt.f64 -3))) (fma.f64 1/8 (/.f64 (sqrt.f64 2) (*.f64 v (sqrt.f64 -3))) (*.f64 (/.f64 (sqrt.f64 2) (pow.f64 v 3)) (/.f64 1/96 (sqrt.f64 -3)))))
(fma.f64 1/4 (*.f64 v (*.f64 (sqrt.f64 2) (sqrt.f64 -3))) (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 -3)) (+.f64 (/.f64 1/8 v) (/.f64 -1/32 (*.f64 (pow.f64 v 3) -3)))))
(+.f64 (*.f64 1/64 (/.f64 (sqrt.f64 2) (*.f64 (pow.f64 v 5) (pow.f64 (sqrt.f64 -3) 5)))) (+.f64 (*.f64 1/4 (*.f64 (sqrt.f64 2) (*.f64 v (sqrt.f64 -3)))) (+.f64 (*.f64 -1/32 (/.f64 (sqrt.f64 2) (*.f64 (pow.f64 v 3) (pow.f64 (sqrt.f64 -3) 3)))) (*.f64 1/8 (/.f64 (sqrt.f64 2) (*.f64 v (sqrt.f64 -3)))))))
(fma.f64 1/64 (/.f64 (/.f64 (sqrt.f64 2) (pow.f64 v 5)) (pow.f64 (sqrt.f64 -3) 5)) (fma.f64 1/4 (*.f64 (sqrt.f64 2) (*.f64 v (sqrt.f64 -3))) (fma.f64 -1/32 (/.f64 (/.f64 (sqrt.f64 2) (pow.f64 v 3)) (pow.f64 (sqrt.f64 -3) 3)) (*.f64 1/8 (/.f64 (sqrt.f64 2) (*.f64 v (sqrt.f64 -3)))))))
(fma.f64 1/64 (/.f64 (sqrt.f64 2) (*.f64 (pow.f64 v 5) (pow.f64 (sqrt.f64 -3) 5))) (fma.f64 1/4 (*.f64 (sqrt.f64 2) (*.f64 v (sqrt.f64 -3))) (fma.f64 1/8 (/.f64 (sqrt.f64 2) (*.f64 v (sqrt.f64 -3))) (*.f64 -1/32 (/.f64 (sqrt.f64 2) (*.f64 (pow.f64 v 3) (*.f64 (sqrt.f64 -3) -3)))))))
(fma.f64 1/4 (*.f64 v (*.f64 (sqrt.f64 2) (sqrt.f64 -3))) (fma.f64 1/64 (/.f64 (sqrt.f64 2) (*.f64 (pow.f64 v 5) (pow.f64 (sqrt.f64 -3) 5))) (fma.f64 1/8 (/.f64 (sqrt.f64 2) (*.f64 v (sqrt.f64 -3))) (*.f64 (/.f64 (sqrt.f64 2) (pow.f64 v 3)) (/.f64 1/96 (sqrt.f64 -3))))))
(+.f64 (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 -3)) (+.f64 (/.f64 1/8 v) (/.f64 -1/32 (*.f64 (pow.f64 v 3) -3)))) (*.f64 (sqrt.f64 2) (+.f64 (*.f64 v (*.f64 1/4 (sqrt.f64 -3))) (/.f64 1/64 (*.f64 (pow.f64 v 5) (pow.f64 (sqrt.f64 -3) 5))))))
(*.f64 -1/4 (*.f64 (sqrt.f64 2) (*.f64 v (sqrt.f64 -3))))
(*.f64 (*.f64 (sqrt.f64 2) (*.f64 v (sqrt.f64 -3))) -1/4)
(*.f64 (*.f64 v (sqrt.f64 2)) (*.f64 (sqrt.f64 -3) -1/4))
(*.f64 v (*.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 -3) -1/4)))
(+.f64 (*.f64 -1/8 (/.f64 (sqrt.f64 2) (*.f64 v (sqrt.f64 -3)))) (*.f64 -1/4 (*.f64 (sqrt.f64 2) (*.f64 v (sqrt.f64 -3)))))
(fma.f64 -1/8 (/.f64 (sqrt.f64 2) (*.f64 v (sqrt.f64 -3))) (*.f64 (*.f64 (sqrt.f64 2) (*.f64 v (sqrt.f64 -3))) -1/4))
(fma.f64 (*.f64 (sqrt.f64 2) (*.f64 v (sqrt.f64 -3))) -1/4 (*.f64 (/.f64 (sqrt.f64 2) (*.f64 v (sqrt.f64 -3))) -1/8))
(fma.f64 (sqrt.f64 2) (*.f64 v (*.f64 (sqrt.f64 -3) -1/4)) (*.f64 (/.f64 (sqrt.f64 2) (*.f64 v (sqrt.f64 -3))) -1/8))
(*.f64 (sqrt.f64 2) (+.f64 (*.f64 v (*.f64 (sqrt.f64 -3) -1/4)) (/.f64 -1/8 (*.f64 v (sqrt.f64 -3)))))
(+.f64 (*.f64 -1/8 (/.f64 (sqrt.f64 2) (*.f64 v (sqrt.f64 -3)))) (+.f64 (*.f64 -1/4 (*.f64 (sqrt.f64 2) (*.f64 v (sqrt.f64 -3)))) (*.f64 1/32 (/.f64 (sqrt.f64 2) (*.f64 (pow.f64 v 3) (pow.f64 (sqrt.f64 -3) 3))))))
(fma.f64 -1/8 (/.f64 (sqrt.f64 2) (*.f64 v (sqrt.f64 -3))) (fma.f64 -1/4 (*.f64 (sqrt.f64 2) (*.f64 v (sqrt.f64 -3))) (*.f64 (/.f64 (/.f64 (sqrt.f64 2) (pow.f64 v 3)) (pow.f64 (sqrt.f64 -3) 3)) 1/32)))
(fma.f64 (/.f64 (sqrt.f64 2) (*.f64 v (sqrt.f64 -3))) -1/8 (fma.f64 (*.f64 (sqrt.f64 2) (*.f64 v (sqrt.f64 -3))) -1/4 (*.f64 (/.f64 (sqrt.f64 2) (*.f64 (pow.f64 v 3) (*.f64 (sqrt.f64 -3) -3))) 1/32)))
(fma.f64 (sqrt.f64 2) (*.f64 v (*.f64 (sqrt.f64 -3) -1/4)) (fma.f64 (/.f64 (sqrt.f64 2) (*.f64 v (sqrt.f64 -3))) -1/8 (/.f64 (*.f64 (/.f64 -1/96 (sqrt.f64 -3)) (sqrt.f64 2)) (pow.f64 v 3))))
(fma.f64 (sqrt.f64 2) (*.f64 v (*.f64 (sqrt.f64 -3) -1/4)) (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 -3)) (+.f64 (/.f64 -1/8 v) (/.f64 1/32 (*.f64 (pow.f64 v 3) -3)))))
(+.f64 (*.f64 -1/8 (/.f64 (sqrt.f64 2) (*.f64 v (sqrt.f64 -3)))) (+.f64 (*.f64 -1/64 (/.f64 (sqrt.f64 2) (*.f64 (pow.f64 v 5) (pow.f64 (sqrt.f64 -3) 5)))) (+.f64 (*.f64 -1/4 (*.f64 (sqrt.f64 2) (*.f64 v (sqrt.f64 -3)))) (*.f64 1/32 (/.f64 (sqrt.f64 2) (*.f64 (pow.f64 v 3) (pow.f64 (sqrt.f64 -3) 3)))))))
(fma.f64 -1/8 (/.f64 (sqrt.f64 2) (*.f64 v (sqrt.f64 -3))) (fma.f64 -1/64 (/.f64 (/.f64 (sqrt.f64 2) (pow.f64 v 5)) (pow.f64 (sqrt.f64 -3) 5)) (fma.f64 -1/4 (*.f64 (sqrt.f64 2) (*.f64 v (sqrt.f64 -3))) (*.f64 (/.f64 (/.f64 (sqrt.f64 2) (pow.f64 v 3)) (pow.f64 (sqrt.f64 -3) 3)) 1/32))))
(fma.f64 (/.f64 (sqrt.f64 2) (*.f64 v (sqrt.f64 -3))) -1/8 (fma.f64 (/.f64 (sqrt.f64 2) (*.f64 (pow.f64 v 5) (pow.f64 (sqrt.f64 -3) 5))) -1/64 (fma.f64 (*.f64 (sqrt.f64 2) (*.f64 v (sqrt.f64 -3))) -1/4 (*.f64 (/.f64 (sqrt.f64 2) (*.f64 (pow.f64 v 3) (*.f64 (sqrt.f64 -3) -3))) 1/32))))
(fma.f64 (/.f64 (sqrt.f64 2) (*.f64 v (sqrt.f64 -3))) -1/8 (fma.f64 (sqrt.f64 2) (*.f64 v (*.f64 (sqrt.f64 -3) -1/4)) (fma.f64 (/.f64 (sqrt.f64 2) (*.f64 (pow.f64 v 5) (pow.f64 (sqrt.f64 -3) 5))) -1/64 (/.f64 (*.f64 (/.f64 -1/96 (sqrt.f64 -3)) (sqrt.f64 2)) (pow.f64 v 3)))))
(+.f64 (*.f64 (sqrt.f64 2) (+.f64 (*.f64 v (*.f64 (sqrt.f64 -3) -1/4)) (/.f64 -1/64 (*.f64 (pow.f64 v 5) (pow.f64 (sqrt.f64 -3) 5))))) (*.f64 (/.f64 (sqrt.f64 2) (sqrt.f64 -3)) (+.f64 (/.f64 -1/8 v) (/.f64 1/32 (*.f64 (pow.f64 v 3) -3)))))
1
(+.f64 1 (*.f64 -3/2 (pow.f64 v 2)))
(+.f64 1 (*.f64 (*.f64 v v) -3/2))
(fma.f64 (*.f64 v v) -3/2 1)
(fma.f64 v (*.f64 v -3/2) 1)
(+.f64 1 (+.f64 (*.f64 -3/2 (pow.f64 v 2)) (*.f64 -9/8 (pow.f64 v 4))))
(+.f64 1 (fma.f64 -3/2 (*.f64 v v) (*.f64 (pow.f64 v 4) -9/8)))
(+.f64 1 (fma.f64 (*.f64 v v) -3/2 (*.f64 (pow.f64 v 4) -9/8)))
(fma.f64 v (*.f64 v -3/2) (fma.f64 (pow.f64 v 4) -9/8 1))
(+.f64 1 (+.f64 (*.f64 -3/2 (pow.f64 v 2)) (+.f64 (*.f64 -27/16 (pow.f64 v 6)) (*.f64 -9/8 (pow.f64 v 4)))))
(+.f64 1 (fma.f64 -3/2 (*.f64 v v) (fma.f64 -27/16 (pow.f64 v 6) (*.f64 (pow.f64 v 4) -9/8))))
(+.f64 1 (fma.f64 (*.f64 v v) -3/2 (fma.f64 (pow.f64 v 4) -9/8 (*.f64 (pow.f64 v 6) -27/16))))
(+.f64 1 (fma.f64 v (*.f64 v -3/2) (fma.f64 (pow.f64 v 4) -9/8 (*.f64 (pow.f64 v 6) -27/16))))
(+.f64 (fma.f64 v (*.f64 v -3/2) (fma.f64 (pow.f64 v 4) -9/8 1)) (*.f64 (pow.f64 v 6) -27/16))
(*.f64 v (sqrt.f64 -3))
(+.f64 (*.f64 1/2 (/.f64 1 (*.f64 v (sqrt.f64 -3)))) (*.f64 v (sqrt.f64 -3)))
(+.f64 (*.f64 v (sqrt.f64 -3)) (/.f64 1/2 (*.f64 v (sqrt.f64 -3))))
(fma.f64 v (sqrt.f64 -3) (/.f64 (/.f64 1/2 v) (sqrt.f64 -3)))
(fma.f64 v (sqrt.f64 -3) (/.f64 (/.f64 1/2 (sqrt.f64 -3)) v))
(fma.f64 v (sqrt.f64 -3) (/.f64 1/2 (*.f64 v (sqrt.f64 -3))))
(-.f64 (+.f64 (*.f64 1/2 (/.f64 1 (*.f64 v (sqrt.f64 -3)))) (*.f64 v (sqrt.f64 -3))) (*.f64 1/8 (/.f64 1 (*.f64 (pow.f64 v 3) (pow.f64 (sqrt.f64 -3) 3)))))
(-.f64 (+.f64 (*.f64 v (sqrt.f64 -3)) (/.f64 1/2 (*.f64 v (sqrt.f64 -3)))) (/.f64 1/8 (*.f64 (pow.f64 v 3) (pow.f64 (sqrt.f64 -3) 3))))
(+.f64 (fma.f64 v (sqrt.f64 -3) (/.f64 (/.f64 1/2 v) (sqrt.f64 -3))) (/.f64 -1/8 (*.f64 (pow.f64 v 3) (*.f64 (sqrt.f64 -3) -3))))
(-.f64 (fma.f64 v (sqrt.f64 -3) (/.f64 (/.f64 1/2 (sqrt.f64 -3)) v)) (/.f64 (/.f64 -1/24 (sqrt.f64 -3)) (pow.f64 v 3)))
(+.f64 (/.f64 1/2 (*.f64 v (sqrt.f64 -3))) (fma.f64 v (sqrt.f64 -3) (/.f64 (/.f64 1/24 (sqrt.f64 -3)) (pow.f64 v 3))))
(-.f64 (+.f64 (*.f64 1/2 (/.f64 1 (*.f64 v (sqrt.f64 -3)))) (+.f64 (*.f64 1/16 (/.f64 1 (*.f64 (pow.f64 v 5) (pow.f64 (sqrt.f64 -3) 5)))) (*.f64 v (sqrt.f64 -3)))) (*.f64 1/8 (/.f64 1 (*.f64 (pow.f64 v 3) (pow.f64 (sqrt.f64 -3) 3)))))
(+.f64 (/.f64 1/2 (*.f64 v (sqrt.f64 -3))) (-.f64 (+.f64 (*.f64 v (sqrt.f64 -3)) (/.f64 1/16 (*.f64 (pow.f64 v 5) (pow.f64 (sqrt.f64 -3) 5)))) (/.f64 1/8 (*.f64 (pow.f64 v 3) (pow.f64 (sqrt.f64 -3) 3)))))
(+.f64 (fma.f64 v (sqrt.f64 -3) (/.f64 1/16 (*.f64 (pow.f64 v 5) (pow.f64 (sqrt.f64 -3) 5)))) (-.f64 (/.f64 (/.f64 1/2 v) (sqrt.f64 -3)) (/.f64 1/8 (*.f64 (pow.f64 v 3) (*.f64 (sqrt.f64 -3) -3)))))
(+.f64 (fma.f64 v (sqrt.f64 -3) (/.f64 (/.f64 1/2 (sqrt.f64 -3)) v)) (+.f64 (/.f64 1/16 (*.f64 (pow.f64 v 5) (pow.f64 (sqrt.f64 -3) 5))) (/.f64 1/24 (*.f64 (sqrt.f64 -3) (pow.f64 v 3)))))
(+.f64 (/.f64 1/2 (*.f64 v (sqrt.f64 -3))) (+.f64 (/.f64 (/.f64 1/16 (pow.f64 (sqrt.f64 -3) 5)) (pow.f64 v 5)) (fma.f64 v (sqrt.f64 -3) (/.f64 (/.f64 1/24 (sqrt.f64 -3)) (pow.f64 v 3)))))
(*.f64 -1 (*.f64 v (sqrt.f64 -3)))
(neg.f64 (*.f64 v (sqrt.f64 -3)))
(*.f64 (sqrt.f64 -3) (neg.f64 v))
(*.f64 v (neg.f64 (sqrt.f64 -3)))
(-.f64 (*.f64 -1 (*.f64 v (sqrt.f64 -3))) (*.f64 1/2 (/.f64 1 (*.f64 v (sqrt.f64 -3)))))
(-.f64 (neg.f64 (*.f64 v (sqrt.f64 -3))) (/.f64 1/2 (*.f64 v (sqrt.f64 -3))))
(neg.f64 (fma.f64 v (sqrt.f64 -3) (/.f64 (/.f64 1/2 v) (sqrt.f64 -3))))
(-.f64 (/.f64 -1/2 (*.f64 v (sqrt.f64 -3))) (*.f64 v (sqrt.f64 -3)))
(-.f64 (+.f64 (*.f64 -1 (*.f64 v (sqrt.f64 -3))) (*.f64 1/8 (/.f64 1 (*.f64 (pow.f64 v 3) (pow.f64 (sqrt.f64 -3) 3))))) (*.f64 1/2 (/.f64 1 (*.f64 v (sqrt.f64 -3)))))
(-.f64 (fma.f64 -1 (*.f64 v (sqrt.f64 -3)) (/.f64 1/8 (*.f64 (pow.f64 v 3) (pow.f64 (sqrt.f64 -3) 3)))) (/.f64 1/2 (*.f64 v (sqrt.f64 -3))))
(+.f64 (/.f64 1/8 (*.f64 (pow.f64 v 3) (*.f64 (sqrt.f64 -3) -3))) (neg.f64 (fma.f64 v (sqrt.f64 -3) (/.f64 (/.f64 1/2 v) (sqrt.f64 -3)))))
(-.f64 (/.f64 (/.f64 -1/24 (sqrt.f64 -3)) (pow.f64 v 3)) (fma.f64 v (sqrt.f64 -3) (/.f64 (/.f64 1/2 (sqrt.f64 -3)) v)))
(-.f64 (/.f64 (/.f64 -1/24 (sqrt.f64 -3)) (pow.f64 v 3)) (fma.f64 v (sqrt.f64 -3) (/.f64 1/2 (*.f64 v (sqrt.f64 -3)))))
(-.f64 (+.f64 (*.f64 -1 (*.f64 v (sqrt.f64 -3))) (*.f64 1/8 (/.f64 1 (*.f64 (pow.f64 v 3) (pow.f64 (sqrt.f64 -3) 3))))) (+.f64 (*.f64 1/2 (/.f64 1 (*.f64 v (sqrt.f64 -3)))) (*.f64 1/16 (/.f64 1 (*.f64 (pow.f64 v 5) (pow.f64 (sqrt.f64 -3) 5))))))
(-.f64 (fma.f64 -1 (*.f64 v (sqrt.f64 -3)) (/.f64 1/8 (*.f64 (pow.f64 v 3) (pow.f64 (sqrt.f64 -3) 3)))) (+.f64 (/.f64 1/2 (*.f64 v (sqrt.f64 -3))) (/.f64 1/16 (*.f64 (pow.f64 v 5) (pow.f64 (sqrt.f64 -3) 5)))))
(+.f64 (-.f64 (/.f64 1/8 (*.f64 (pow.f64 v 3) (*.f64 (sqrt.f64 -3) -3))) (*.f64 v (sqrt.f64 -3))) (-.f64 (/.f64 -1/2 (*.f64 v (sqrt.f64 -3))) (/.f64 1/16 (*.f64 (pow.f64 v 5) (pow.f64 (sqrt.f64 -3) 5)))))
(+.f64 (-.f64 (/.f64 (/.f64 -1/24 (sqrt.f64 -3)) (pow.f64 v 3)) (fma.f64 v (sqrt.f64 -3) (/.f64 (/.f64 1/2 (sqrt.f64 -3)) v))) (/.f64 -1/16 (*.f64 (pow.f64 v 5) (pow.f64 (sqrt.f64 -3) 5))))
(+.f64 (/.f64 (/.f64 -1/24 (sqrt.f64 -3)) (pow.f64 v 3)) (-.f64 (/.f64 -1/2 (*.f64 v (sqrt.f64 -3))) (fma.f64 v (sqrt.f64 -3) (/.f64 (/.f64 1/16 (pow.f64 (sqrt.f64 -3) 5)) (pow.f64 v 5)))))

eval141.0ms (3.9%)

Compiler

Compiled 2908 to 2183 computations (24.9% saved)

prune15.0ms (0.4%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New1193122
Fresh000
Picked101
Done000
Total1203123
Error
0b
Counts
123 → 3
Alt Table
Click to see full alt table
StatusErrorProgram
0b
(*.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 v v) -3 1) 1/8)) (-.f64 1 (*.f64 v v)))
0.2b
(*.f64 (*.f64 (sqrt.f64 2) (+.f64 1/4 (*.f64 (*.f64 v v) -3/8))) (-.f64 1 (*.f64 v v)))
0.3b
(*.f64 (*.f64 1/4 (sqrt.f64 2)) (-.f64 1 (*.f64 v v)))
Compiler

Compiled 44 to 32 computations (27.3% saved)

localize19.0ms (0.5%)

Compiler

Compiled 51 to 30 computations (41.2% saved)

localize12.0ms (0.3%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(*.f64 (*.f64 1/4 (sqrt.f64 2)) (-.f64 1 (*.f64 v v)))
Compiler

Compiled 29 to 20 computations (31% saved)

series2.0ms (0.1%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
1.0ms
v
@inf
(*.f64 (*.f64 1/4 (sqrt.f64 2)) (-.f64 1 (*.f64 v v)))
1.0ms
v
@0
(*.f64 (*.f64 1/4 (sqrt.f64 2)) (-.f64 1 (*.f64 v v)))
0.0ms
v
@-inf
(*.f64 (*.f64 1/4 (sqrt.f64 2)) (-.f64 1 (*.f64 v v)))

rewrite63.0ms (1.7%)

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

Useful iterations: 1 (0.0ms)

IterNodesCost
01015
120912
2242412
Stop Event
node limit
Counts
1 → 19
Calls
Call 1
Inputs
(*.f64 (*.f64 1/4 (sqrt.f64 2)) (-.f64 1 (*.f64 v v)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (sqrt.f64 1/8) (*.f64 (*.f64 v (neg.f64 v)) (sqrt.f64 1/8)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (sqrt.f64 1/8) (*.f64 (sqrt.f64 1/8) (*.f64 v (neg.f64 v))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (pow.f64 v 6)) (sqrt.f64 1/8)) (+.f64 1 (+.f64 (*.f64 v v) (pow.f64 v 4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (pow.f64 v 4)) (sqrt.f64 1/8)) (+.f64 1 (*.f64 v v)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 1/8) (-.f64 1 (pow.f64 v 6))) (+.f64 1 (+.f64 (*.f64 v v) (pow.f64 v 4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 1/8) (-.f64 1 (pow.f64 v 4))) (+.f64 1 (*.f64 v v)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 1/8 (pow.f64 (-.f64 1 (*.f64 v v)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (sqrt.f64 1/8)) (-.f64 1 (*.f64 v v))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (*.f64 (sqrt.f64 1/8) 1/8) (pow.f64 (-.f64 1 (*.f64 v v)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (-.f64 1 (*.f64 v v)) 3) (*.f64 (sqrt.f64 1/8) 1/8)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))))))))

simplify169.0ms (4.6%)

Algorithm
egg-herbie
Rules
2020×unswap-sqr_binary64
1080×sqr-pow_binary64
638×fabs-mul_binary64
612×pow-sqr_binary64
610×cube-prod_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
011192
123192
247165
3101147
4249147
5763147
61066147
71482147
81582147
91717147
101889147
112130147
122445147
132815147
143271147
153862147
164572147
175432147
185856147
196168147
206476147
216556147
226590147
Stop Event
node limit
Counts
31 → 24
Calls
Call 1
Inputs
(*.f64 1/4 (sqrt.f64 2))
(+.f64 (*.f64 1/4 (sqrt.f64 2)) (*.f64 -1/4 (*.f64 (sqrt.f64 2) (pow.f64 v 2))))
(+.f64 (*.f64 1/4 (sqrt.f64 2)) (*.f64 -1/4 (*.f64 (sqrt.f64 2) (pow.f64 v 2))))
(+.f64 (*.f64 1/4 (sqrt.f64 2)) (*.f64 -1/4 (*.f64 (sqrt.f64 2) (pow.f64 v 2))))
(*.f64 -1/4 (*.f64 (sqrt.f64 2) (pow.f64 v 2)))
(+.f64 (*.f64 1/4 (sqrt.f64 2)) (*.f64 -1/4 (*.f64 (sqrt.f64 2) (pow.f64 v 2))))
(+.f64 (*.f64 1/4 (sqrt.f64 2)) (*.f64 -1/4 (*.f64 (sqrt.f64 2) (pow.f64 v 2))))
(+.f64 (*.f64 1/4 (sqrt.f64 2)) (*.f64 -1/4 (*.f64 (sqrt.f64 2) (pow.f64 v 2))))
(*.f64 -1/4 (*.f64 (sqrt.f64 2) (pow.f64 v 2)))
(+.f64 (*.f64 1/4 (sqrt.f64 2)) (*.f64 -1/4 (*.f64 (sqrt.f64 2) (pow.f64 v 2))))
(+.f64 (*.f64 1/4 (sqrt.f64 2)) (*.f64 -1/4 (*.f64 (sqrt.f64 2) (pow.f64 v 2))))
(+.f64 (*.f64 1/4 (sqrt.f64 2)) (*.f64 -1/4 (*.f64 (sqrt.f64 2) (pow.f64 v 2))))
Outputs
(*.f64 1/4 (sqrt.f64 2))
(+.f64 (*.f64 1/4 (sqrt.f64 2)) (*.f64 -1/4 (*.f64 (sqrt.f64 2) (pow.f64 v 2))))
(fma.f64 1/4 (sqrt.f64 2) (*.f64 (*.f64 -1/4 (sqrt.f64 2)) (*.f64 v v)))
(fma.f64 1/4 (sqrt.f64 2) (*.f64 (sqrt.f64 2) (*.f64 (*.f64 v v) -1/4)))
(*.f64 (sqrt.f64 2) (+.f64 1/4 (*.f64 -1/4 (*.f64 v v))))
(*.f64 (sqrt.f64 2) (fma.f64 -1/4 (*.f64 v v) 1/4))
(*.f64 (sqrt.f64 2) (fma.f64 v (*.f64 -1/4 v) 1/4))
(+.f64 (*.f64 1/4 (sqrt.f64 2)) (*.f64 -1/4 (*.f64 (sqrt.f64 2) (pow.f64 v 2))))
(fma.f64 1/4 (sqrt.f64 2) (*.f64 (*.f64 -1/4 (sqrt.f64 2)) (*.f64 v v)))
(fma.f64 1/4 (sqrt.f64 2) (*.f64 (sqrt.f64 2) (*.f64 (*.f64 v v) -1/4)))
(*.f64 (sqrt.f64 2) (+.f64 1/4 (*.f64 -1/4 (*.f64 v v))))
(*.f64 (sqrt.f64 2) (fma.f64 -1/4 (*.f64 v v) 1/4))
(*.f64 (sqrt.f64 2) (fma.f64 v (*.f64 -1/4 v) 1/4))
(+.f64 (*.f64 1/4 (sqrt.f64 2)) (*.f64 -1/4 (*.f64 (sqrt.f64 2) (pow.f64 v 2))))
(fma.f64 1/4 (sqrt.f64 2) (*.f64 (*.f64 -1/4 (sqrt.f64 2)) (*.f64 v v)))
(fma.f64 1/4 (sqrt.f64 2) (*.f64 (sqrt.f64 2) (*.f64 (*.f64 v v) -1/4)))
(*.f64 (sqrt.f64 2) (+.f64 1/4 (*.f64 -1/4 (*.f64 v v))))
(*.f64 (sqrt.f64 2) (fma.f64 -1/4 (*.f64 v v) 1/4))
(*.f64 (sqrt.f64 2) (fma.f64 v (*.f64 -1/4 v) 1/4))
(*.f64 -1/4 (*.f64 (sqrt.f64 2) (pow.f64 v 2)))
(*.f64 (*.f64 -1/4 (sqrt.f64 2)) (*.f64 v v))
(*.f64 (sqrt.f64 2) (*.f64 (*.f64 v v) -1/4))
(*.f64 (sqrt.f64 2) (*.f64 -1/4 (*.f64 v v)))
(*.f64 -1/4 (*.f64 (sqrt.f64 2) (*.f64 v v)))
(*.f64 -1/4 (*.f64 v (*.f64 (sqrt.f64 2) v)))
(*.f64 (*.f64 v v) (*.f64 (sqrt.f64 2) -1/4))
(+.f64 (*.f64 1/4 (sqrt.f64 2)) (*.f64 -1/4 (*.f64 (sqrt.f64 2) (pow.f64 v 2))))
(fma.f64 1/4 (sqrt.f64 2) (*.f64 (*.f64 -1/4 (sqrt.f64 2)) (*.f64 v v)))
(fma.f64 1/4 (sqrt.f64 2) (*.f64 (sqrt.f64 2) (*.f64 (*.f64 v v) -1/4)))
(*.f64 (sqrt.f64 2) (+.f64 1/4 (*.f64 -1/4 (*.f64 v v))))
(*.f64 (sqrt.f64 2) (fma.f64 -1/4 (*.f64 v v) 1/4))
(*.f64 (sqrt.f64 2) (fma.f64 v (*.f64 -1/4 v) 1/4))
(+.f64 (*.f64 1/4 (sqrt.f64 2)) (*.f64 -1/4 (*.f64 (sqrt.f64 2) (pow.f64 v 2))))
(fma.f64 1/4 (sqrt.f64 2) (*.f64 (*.f64 -1/4 (sqrt.f64 2)) (*.f64 v v)))
(fma.f64 1/4 (sqrt.f64 2) (*.f64 (sqrt.f64 2) (*.f64 (*.f64 v v) -1/4)))
(*.f64 (sqrt.f64 2) (+.f64 1/4 (*.f64 -1/4 (*.f64 v v))))
(*.f64 (sqrt.f64 2) (fma.f64 -1/4 (*.f64 v v) 1/4))
(*.f64 (sqrt.f64 2) (fma.f64 v (*.f64 -1/4 v) 1/4))
(+.f64 (*.f64 1/4 (sqrt.f64 2)) (*.f64 -1/4 (*.f64 (sqrt.f64 2) (pow.f64 v 2))))
(fma.f64 1/4 (sqrt.f64 2) (*.f64 (*.f64 -1/4 (sqrt.f64 2)) (*.f64 v v)))
(fma.f64 1/4 (sqrt.f64 2) (*.f64 (sqrt.f64 2) (*.f64 (*.f64 v v) -1/4)))
(*.f64 (sqrt.f64 2) (+.f64 1/4 (*.f64 -1/4 (*.f64 v v))))
(*.f64 (sqrt.f64 2) (fma.f64 -1/4 (*.f64 v v) 1/4))
(*.f64 (sqrt.f64 2) (fma.f64 v (*.f64 -1/4 v) 1/4))
(*.f64 -1/4 (*.f64 (sqrt.f64 2) (pow.f64 v 2)))
(*.f64 (*.f64 -1/4 (sqrt.f64 2)) (*.f64 v v))
(*.f64 (sqrt.f64 2) (*.f64 (*.f64 v v) -1/4))
(*.f64 (sqrt.f64 2) (*.f64 -1/4 (*.f64 v v)))
(*.f64 -1/4 (*.f64 (sqrt.f64 2) (*.f64 v v)))
(*.f64 -1/4 (*.f64 v (*.f64 (sqrt.f64 2) v)))
(*.f64 (*.f64 v v) (*.f64 (sqrt.f64 2) -1/4))
(+.f64 (*.f64 1/4 (sqrt.f64 2)) (*.f64 -1/4 (*.f64 (sqrt.f64 2) (pow.f64 v 2))))
(fma.f64 1/4 (sqrt.f64 2) (*.f64 (*.f64 -1/4 (sqrt.f64 2)) (*.f64 v v)))
(fma.f64 1/4 (sqrt.f64 2) (*.f64 (sqrt.f64 2) (*.f64 (*.f64 v v) -1/4)))
(*.f64 (sqrt.f64 2) (+.f64 1/4 (*.f64 -1/4 (*.f64 v v))))
(*.f64 (sqrt.f64 2) (fma.f64 -1/4 (*.f64 v v) 1/4))
(*.f64 (sqrt.f64 2) (fma.f64 v (*.f64 -1/4 v) 1/4))
(+.f64 (*.f64 1/4 (sqrt.f64 2)) (*.f64 -1/4 (*.f64 (sqrt.f64 2) (pow.f64 v 2))))
(fma.f64 1/4 (sqrt.f64 2) (*.f64 (*.f64 -1/4 (sqrt.f64 2)) (*.f64 v v)))
(fma.f64 1/4 (sqrt.f64 2) (*.f64 (sqrt.f64 2) (*.f64 (*.f64 v v) -1/4)))
(*.f64 (sqrt.f64 2) (+.f64 1/4 (*.f64 -1/4 (*.f64 v v))))
(*.f64 (sqrt.f64 2) (fma.f64 -1/4 (*.f64 v v) 1/4))
(*.f64 (sqrt.f64 2) (fma.f64 v (*.f64 -1/4 v) 1/4))
(+.f64 (*.f64 1/4 (sqrt.f64 2)) (*.f64 -1/4 (*.f64 (sqrt.f64 2) (pow.f64 v 2))))
(fma.f64 1/4 (sqrt.f64 2) (*.f64 (*.f64 -1/4 (sqrt.f64 2)) (*.f64 v v)))
(fma.f64 1/4 (sqrt.f64 2) (*.f64 (sqrt.f64 2) (*.f64 (*.f64 v v) -1/4)))
(*.f64 (sqrt.f64 2) (+.f64 1/4 (*.f64 -1/4 (*.f64 v v))))
(*.f64 (sqrt.f64 2) (fma.f64 -1/4 (*.f64 v v) 1/4))
(*.f64 (sqrt.f64 2) (fma.f64 v (*.f64 -1/4 v) 1/4))

localize18.0ms (0.5%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(*.f64 (sqrt.f64 2) (+.f64 1/4 (*.f64 (*.f64 v v) -3/8)))
0.2b
(*.f64 (*.f64 v v) -3/8)
Compiler

Compiled 54 to 33 computations (38.9% saved)

series2.0ms (0.1%)

Counts
2 → 24
Calls

6 calls:

TimeVariablePointExpression
0.0ms
v
@inf
(*.f64 (sqrt.f64 2) (+.f64 1/4 (*.f64 (*.f64 v v) -3/8)))
0.0ms
v
@0
(*.f64 (*.f64 v v) -3/8)
0.0ms
v
@inf
(*.f64 (*.f64 v v) -3/8)
0.0ms
v
@0
(*.f64 (sqrt.f64 2) (+.f64 1/4 (*.f64 (*.f64 v v) -3/8)))
0.0ms
v
@-inf
(*.f64 (sqrt.f64 2) (+.f64 1/4 (*.f64 (*.f64 v v) -3/8)))

rewrite100.0ms (2.8%)

Algorithm
batch-egg-rewrite
Rules
458×log-prod_binary64
396×prod-exp_binary64
354×prod-diff_binary64
344×exp-prod_binary64
301×pow-prod-down_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01022
122020
2268820
Stop Event
node limit
Counts
2 → 99
Calls
Call 1
Inputs
(*.f64 (*.f64 v v) -3/8)
(*.f64 (sqrt.f64 2) (+.f64 1/4 (*.f64 (*.f64 v v) -3/8)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 v (*.f64 v -3/8)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 v) (*.f64 v -3/8))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 v) (*.f64 v -3/8)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 v) (*.f64 v -3/8)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 v) (*.f64 v -3/8)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 v (*.f64 v -3/8)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 v (*.f64 v -3/8)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 v 4) 9/64) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 v (*.f64 v -3/8))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 v (sqrt.f64 -3/8)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 v 6) -27/512) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (*.f64 v (*.f64 v -3/8))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 v (*.f64 v -3/8)))) 2)) (cbrt.f64 (log.f64 (*.f64 v (*.f64 v -3/8)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 v (*.f64 v -3/8))))) (sqrt.f64 (log.f64 (*.f64 v (*.f64 v -3/8)))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 v 4) 9/64))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 v) (*.f64 v -3/8)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 v (*.f64 v -3/8)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 v 6) -27/512))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 v (*.f64 v -3/8))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 v (*.f64 v -3/8))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 v (*.f64 v -3/8))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 v (*.f64 v -3/8))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 v (*.f64 v -3/8)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 v (sqrt.f64 -3/8))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (pow.f64 v 6) -27/512)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 v (*.f64 v -3/8))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 v (*.f64 v -3/8))) 3) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 v) 1) (log.f64 (*.f64 v -3/8))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log.f64 (*.f64 v -3/8)) (*.f64 (log.f64 v) 1)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 v v) (*.f64 -3/8 (sqrt.f64 2))) (*.f64 (sqrt.f64 2) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sqrt.f64 2) 1/4) (*.f64 (*.f64 v v) (*.f64 -3/8 (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (sqrt.f64 2) (fma.f64 v (*.f64 v -3/8) 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 (sqrt.f64 2) 1/4) 1) (*.f64 (*.f64 (*.f64 v v) (*.f64 -3/8 (sqrt.f64 2))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (fma.f64 v (*.f64 v -3/8) 1/4)) (sqrt.f64 2))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (fma.f64 v (*.f64 v -3/8) 1/4)) (sqrt.f64 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (fma.f64 v (*.f64 v -3/8) 1/4)) (sqrt.f64 2)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (fma.f64 v (*.f64 v -3/8) 1/4)) (sqrt.f64 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (sqrt.f64 2) (fma.f64 v (*.f64 v -3/8) 1/4)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 (sqrt.f64 2) 1/4) 3) (*.f64 (pow.f64 2 3/2) (*.f64 (pow.f64 v 6) -27/512))) (+.f64 (pow.f64 (*.f64 (sqrt.f64 2) 1/4) 2) (-.f64 (pow.f64 (*.f64 (*.f64 v v) (*.f64 -3/8 (sqrt.f64 2))) 2) (*.f64 (*.f64 (sqrt.f64 2) 1/4) (*.f64 (*.f64 v v) (*.f64 -3/8 (sqrt.f64 2)))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (*.f64 (sqrt.f64 2) 1/4) 2) (pow.f64 (*.f64 (*.f64 v v) (*.f64 -3/8 (sqrt.f64 2))) 2)) (-.f64 (*.f64 (sqrt.f64 2) 1/4) (*.f64 (*.f64 v v) (*.f64 -3/8 (sqrt.f64 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (fma.f64 (pow.f64 v 6) -27/512 1/64) (sqrt.f64 2)) (fma.f64 (*.f64 v (*.f64 v -3/8)) (fma.f64 v (*.f64 v -3/8) -1/4) 1/16))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1/16 (*.f64 (pow.f64 v 4) 9/64)) (sqrt.f64 2)) (-.f64 1/4 (*.f64 v (*.f64 v -3/8))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 2) (fma.f64 (pow.f64 v 6) -27/512 1/64)) (fma.f64 (*.f64 v (*.f64 v -3/8)) (fma.f64 v (*.f64 v -3/8) -1/4) 1/16))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 2) (-.f64 1/16 (*.f64 (pow.f64 v 4) 9/64))) (-.f64 1/4 (*.f64 v (*.f64 v -3/8))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 2) (fma.f64 v (*.f64 v -3/8) 1/4)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 2 (pow.f64 (fma.f64 v (*.f64 v -3/8) 1/4) 2)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (sqrt.f64 2) (fma.f64 v (*.f64 v -3/8) 1/4)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 2) (fma.f64 v (*.f64 v -3/8) 1/4))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (sqrt.f64 2) (fma.f64 v (*.f64 v -3/8) 1/4))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (*.f64 (sqrt.f64 2) (fma.f64 v (*.f64 v -3/8) 1/4))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 (sqrt.f64 2) (fma.f64 v (*.f64 v -3/8) 1/4)))) 2)) (cbrt.f64 (log.f64 (*.f64 (sqrt.f64 2) (fma.f64 v (*.f64 v -3/8) 1/4)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 (sqrt.f64 2) (fma.f64 v (*.f64 v -3/8) 1/4))))) (sqrt.f64 (log.f64 (*.f64 (sqrt.f64 2) (fma.f64 v (*.f64 v -3/8) 1/4)))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 2 (pow.f64 (fma.f64 v (*.f64 v -3/8) 1/4) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (fma.f64 v (*.f64 v -3/8) 1/4)) (sqrt.f64 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (sqrt.f64 2) (fma.f64 v (*.f64 v -3/8) 1/4)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (sqrt.f64 2) (fma.f64 v (*.f64 v -3/8) 1/4)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (sqrt.f64 2) (fma.f64 v (*.f64 v -3/8) 1/4))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (sqrt.f64 2) (fma.f64 v (*.f64 v -3/8) 1/4))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (sqrt.f64 2) (fma.f64 v (*.f64 v -3/8) 1/4))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (sqrt.f64 2) (fma.f64 v (*.f64 v -3/8) 1/4))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 (sqrt.f64 2) (fma.f64 v (*.f64 v -3/8) 1/4)) 3)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (sqrt.f64 2) (fma.f64 v (*.f64 v -3/8) 1/4)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (sqrt.f64 2) (fma.f64 v (*.f64 v -3/8) 1/4)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (sqrt.f64 2) (fma.f64 v (*.f64 v -3/8) 1/4))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log1p.f64 1) 1/2) (log.f64 (fma.f64 v (*.f64 v -3/8) 1/4))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (sqrt.f64 2)) 1) (log.f64 (fma.f64 v (*.f64 v -3/8) 1/4))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log.f64 (sqrt.f64 2)) (*.f64 (log.f64 (fma.f64 v (*.f64 v -3/8) 1/4)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log1p.f64 1) 1/2) (*.f64 (log.f64 (fma.f64 v (*.f64 v -3/8) 1/4)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (sqrt.f64 2)) 1) (*.f64 (log.f64 (fma.f64 v (*.f64 v -3/8) 1/4)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (fma.f64 v (*.f64 v -3/8) 1/4)) 1) (log.f64 (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log.f64 (fma.f64 v (*.f64 v -3/8) 1/4)) (*.f64 (log1p.f64 1) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (fma.f64 v (*.f64 v -3/8) 1/4)) 1) (*.f64 (log1p.f64 1) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log.f64 (fma.f64 v (*.f64 v -3/8) 1/4)) (*.f64 (log.f64 (sqrt.f64 2)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (fma.f64 v (*.f64 v -3/8) 1/4)) 1) (*.f64 (log.f64 (sqrt.f64 2)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 v (*.f64 (*.f64 v -3/8) (sqrt.f64 2)) (*.f64 (sqrt.f64 2) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 v v) (*.f64 -3/8 (sqrt.f64 2)) (*.f64 (sqrt.f64 2) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -3/8 (*.f64 (*.f64 v v) (sqrt.f64 2)) (*.f64 (sqrt.f64 2) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 v (*.f64 v -3/8)) (sqrt.f64 2) (*.f64 (sqrt.f64 2) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 2) (*.f64 v (*.f64 v -3/8)) (*.f64 (sqrt.f64 2) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 2) 1/4 (*.f64 (*.f64 v v) (*.f64 -3/8 (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1/4 (sqrt.f64 2) (*.f64 (*.f64 v v) (*.f64 -3/8 (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 (*.f64 v v) (*.f64 -3/8 (sqrt.f64 2))) (*.f64 (sqrt.f64 2) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 (sqrt.f64 2) 1/4) (*.f64 (*.f64 v v) (*.f64 -3/8 (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 (pow.f64 v 4) 9/64)) (*.f64 (cbrt.f64 (*.f64 v (*.f64 v -3/8))) (sqrt.f64 2)) (*.f64 (sqrt.f64 2) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 2) (*.f64 (pow.f64 2 1/6) 1/4) (*.f64 (*.f64 v v) (*.f64 -3/8 (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 2) (*.f64 (pow.f64 2 1/6) (*.f64 v (*.f64 v -3/8))) (*.f64 (sqrt.f64 2) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 v (sqrt.f64 -3/8)) (*.f64 (*.f64 v (sqrt.f64 -3/8)) (sqrt.f64 2)) (*.f64 (sqrt.f64 2) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 2 1/4) (*.f64 (pow.f64 2 1/4) 1/4) (*.f64 (*.f64 v v) (*.f64 -3/8 (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 2 1/4) (*.f64 (pow.f64 2 1/4) (*.f64 v (*.f64 v -3/8))) (*.f64 (sqrt.f64 2) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 2) 1/4) 1 (*.f64 (*.f64 (*.f64 v v) (*.f64 -3/8 (sqrt.f64 2))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 2) 1/4)) 2) (cbrt.f64 (*.f64 (sqrt.f64 2) 1/4)) (*.f64 (*.f64 v v) (*.f64 -3/8 (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 (*.f64 v v) (*.f64 -3/8 (sqrt.f64 2)))) 2) (cbrt.f64 (*.f64 (*.f64 v v) (*.f64 -3/8 (sqrt.f64 2)))) (*.f64 (sqrt.f64 2) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 (sqrt.f64 2) 1/4)) (sqrt.f64 (*.f64 (sqrt.f64 2) 1/4)) (*.f64 (*.f64 v v) (*.f64 -3/8 (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 v (sqrt.f64 -3/8)) (pow.f64 2 1/4)) (*.f64 (*.f64 v (sqrt.f64 -3/8)) (pow.f64 2 1/4)) (*.f64 (sqrt.f64 2) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 v (*.f64 v -3/8)) (cbrt.f64 2)) (pow.f64 2 1/6) (*.f64 (sqrt.f64 2) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 v (*.f64 v -3/8)) (pow.f64 2 1/4)) (pow.f64 2 1/4) (*.f64 (sqrt.f64 2) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 1/4 (cbrt.f64 2)) (pow.f64 2 1/6) (*.f64 (*.f64 v v) (*.f64 -3/8 (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 1/4 (pow.f64 2 1/4)) (pow.f64 2 1/4) (*.f64 (*.f64 v v) (*.f64 -3/8 (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 2) v) (*.f64 v -3/8) (*.f64 (sqrt.f64 2) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 2) (*.f64 v v)) -3/8 (*.f64 (sqrt.f64 2) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 2) -3/8) (*.f64 v v) (*.f64 (sqrt.f64 2) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 2) (cbrt.f64 (*.f64 (pow.f64 v 4) 9/64))) (cbrt.f64 (*.f64 v (*.f64 v -3/8))) (*.f64 (sqrt.f64 2) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 2) (*.f64 v (sqrt.f64 -3/8))) (*.f64 v (sqrt.f64 -3/8)) (*.f64 (sqrt.f64 2) 1/4))))))

simplify187.0ms (5.1%)

Algorithm
egg-herbie
Rules
2020×unswap-sqr_binary64
1080×sqr-pow_binary64
636×fabs-mul_binary64
612×pow-sqr_binary64
610×cube-prod_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
012276
125276
251249
3108231
4294231
5900231
61179231
71595231
81695231
91830231
101999231
112242231
122557231
132929231
143383231
153968231
164676231
175536231
185962231
196278231
206584231
216664231
226700231
Stop Event
node limit
Counts
123 → 106
Calls
Call 1
Inputs
(*.f64 -3/8 (pow.f64 v 2))
(*.f64 -3/8 (pow.f64 v 2))
(*.f64 -3/8 (pow.f64 v 2))
(*.f64 -3/8 (pow.f64 v 2))
(*.f64 -3/8 (pow.f64 v 2))
(*.f64 -3/8 (pow.f64 v 2))
(*.f64 -3/8 (pow.f64 v 2))
(*.f64 -3/8 (pow.f64 v 2))
(*.f64 -3/8 (pow.f64 v 2))
(*.f64 -3/8 (pow.f64 v 2))
(*.f64 -3/8 (pow.f64 v 2))
(*.f64 -3/8 (pow.f64 v 2))
(*.f64 1/4 (sqrt.f64 2))
(+.f64 (*.f64 1/4 (sqrt.f64 2)) (*.f64 -3/8 (*.f64 (sqrt.f64 2) (pow.f64 v 2))))
(+.f64 (*.f64 1/4 (sqrt.f64 2)) (*.f64 -3/8 (*.f64 (sqrt.f64 2) (pow.f64 v 2))))
(+.f64 (*.f64 1/4 (sqrt.f64 2)) (*.f64 -3/8 (*.f64 (sqrt.f64 2) (pow.f64 v 2))))
(*.f64 -3/8 (*.f64 (sqrt.f64 2) (pow.f64 v 2)))
(+.f64 (*.f64 1/4 (sqrt.f64 2)) (*.f64 -3/8 (*.f64 (sqrt.f64 2) (pow.f64 v 2))))
(+.f64 (*.f64 1/4 (sqrt.f64 2)) (*.f64 -3/8 (*.f64 (sqrt.f64 2) (pow.f64 v 2))))
(+.f64 (*.f64 1/4 (sqrt.f64 2)) (*.f64 -3/8 (*.f64 (sqrt.f64 2) (pow.f64 v 2))))
(*.f64 -3/8 (*.f64 (sqrt.f64 2) (pow.f64 v 2)))
(+.f64 (*.f64 1/4 (sqrt.f64 2)) (*.f64 -3/8 (*.f64 (sqrt.f64 2) (pow.f64 v 2))))
(+.f64 (*.f64 1/4 (sqrt.f64 2)) (*.f64 -3/8 (*.f64 (sqrt.f64 2) (pow.f64 v 2))))
(+.f64 (*.f64 1/4 (sqrt.f64 2)) (*.f64 -3/8 (*.f64 (sqrt.f64 2) (pow.f64 v 2))))
Outputs
(*.f64 -3/8 (pow.f64 v 2))
(*.f64 -3/8 (*.f64 v v))
(*.f64 -3/8 (pow.f64 v 2))
(*.f64 -3/8 (*.f64 v v))
(*.f64 -3/8 (pow.f64 v 2))
(*.f64 -3/8 (*.f64 v v))
(*.f64 -3/8 (pow.f64 v 2))
(*.f64 -3/8 (*.f64 v v))
(*.f64 -3/8 (pow.f64 v 2))
(*.f64 -3/8 (*.f64 v v))
(*.f64 -3/8 (pow.f64 v 2))
(*.f64 -3/8 (*.f64 v v))
(*.f64 -3/8 (pow.f64 v 2))
(*.f64 -3/8 (*.f64 v v))
(*.f64 -3/8 (pow.f64 v 2))
(*.f64 -3/8 (*.f64 v v))
(*.f64 -3/8 (pow.f64 v 2))
(*.f64 -3/8 (*.f64 v v))
(*.f64 -3/8 (pow.f64 v 2))
(*.f64 -3/8 (*.f64 v v))
(*.f64 -3/8 (pow.f64 v 2))
(*.f64 -3/8 (*.f64 v v))
(*.f64 -3/8 (pow.f64 v 2))
(*.f64 -3/8 (*.f64 v v))
(*.f64 1/4 (sqrt.f64 2))
(+.f64 (*.f64 1/4 (sqrt.f64 2)) (*.f64 -3/8 (*.f64 (sqrt.f64 2) (pow.f64 v 2))))
(fma.f64 1/4 (sqrt.f64 2) (*.f64 -3/8 (*.f64 (*.f64 v v) (sqrt.f64 2))))
(fma.f64 -3/8 (*.f64 (*.f64 v v) (sqrt.f64 2)) (*.f64 1/4 (sqrt.f64 2)))
(*.f64 (sqrt.f64 2) (+.f64 1/4 (*.f64 -3/8 (*.f64 v v))))
(*.f64 (sqrt.f64 2) (fma.f64 -3/8 (*.f64 v v) 1/4))
(+.f64 (*.f64 1/4 (sqrt.f64 2)) (*.f64 -3/8 (*.f64 (sqrt.f64 2) (pow.f64 v 2))))
(fma.f64 1/4 (sqrt.f64 2) (*.f64 -3/8 (*.f64 (*.f64 v v) (sqrt.f64 2))))
(fma.f64 -3/8 (*.f64 (*.f64 v v) (sqrt.f64 2)) (*.f64 1/4 (sqrt.f64 2)))
(*.f64 (sqrt.f64 2) (+.f64 1/4 (*.f64 -3/8 (*.f64 v v))))
(*.f64 (sqrt.f64 2) (fma.f64 -3/8 (*.f64 v v) 1/4))
(+.f64 (*.f64 1/4 (sqrt.f64 2)) (*.f64 -3/8 (*.f64 (sqrt.f64 2) (pow.f64 v 2))))
(fma.f64 1/4 (sqrt.f64 2) (*.f64 -3/8 (*.f64 (*.f64 v v) (sqrt.f64 2))))
(fma.f64 -3/8 (*.f64 (*.f64 v v) (sqrt.f64 2)) (*.f64 1/4 (sqrt.f64 2)))
(*.f64 (sqrt.f64 2) (+.f64 1/4 (*.f64 -3/8 (*.f64 v v))))
(*.f64 (sqrt.f64 2) (fma.f64 -3/8 (*.f64 v v) 1/4))
(*.f64 -3/8 (*.f64 (sqrt.f64 2) (pow.f64 v 2)))
(*.f64 -3/8 (*.f64 (*.f64 v v) (sqrt.f64 2)))
(*.f64 -3/8 (*.f64 v (*.f64 v (sqrt.f64 2))))
(+.f64 (*.f64 1/4 (sqrt.f64 2)) (*.f64 -3/8 (*.f64 (sqrt.f64 2) (pow.f64 v 2))))
(fma.f64 1/4 (sqrt.f64 2) (*.f64 -3/8 (*.f64 (*.f64 v v) (sqrt.f64 2))))
(fma.f64 -3/8 (*.f64 (*.f64 v v) (sqrt.f64 2)) (*.f64 1/4 (sqrt.f64 2)))
(*.f64 (sqrt.f64 2) (+.f64 1/4 (*.f64 -3/8 (*.f64 v v))))
(*.f64 (sqrt.f64 2) (fma.f64 -3/8 (*.f64 v v) 1/4))
(+.f64 (*.f64 1/4 (sqrt.f64 2)) (*.f64 -3/8 (*.f64 (sqrt.f64 2) (pow.f64 v 2))))
(fma.f64 1/4 (sqrt.f64 2) (*.f64 -3/8 (*.f64 (*.f64 v v) (sqrt.f64 2))))
(fma.f64 -3/8 (*.f64 (*.f64 v v) (sqrt.f64 2)) (*.f64 1/4 (sqrt.f64 2)))
(*.f64 (sqrt.f64 2) (+.f64 1/4 (*.f64 -3/8 (*.f64 v v))))
(*.f64 (sqrt.f64 2) (fma.f64 -3/8 (*.f64 v v) 1/4))
(+.f64 (*.f64 1/4 (sqrt.f64 2)) (*.f64 -3/8 (*.f64 (sqrt.f64 2) (pow.f64 v 2))))
(fma.f64 1/4 (sqrt.f64 2) (*.f64 -3/8 (*.f64 (*.f64 v v) (sqrt.f64 2))))
(fma.f64 -3/8 (*.f64 (*.f64 v v) (sqrt.f64 2)) (*.f64 1/4 (sqrt.f64 2)))
(*.f64 (sqrt.f64 2) (+.f64 1/4 (*.f64 -3/8 (*.f64 v v))))
(*.f64 (sqrt.f64 2) (fma.f64 -3/8 (*.f64 v v) 1/4))
(*.f64 -3/8 (*.f64 (sqrt.f64 2) (pow.f64 v 2)))
(*.f64 -3/8 (*.f64 (*.f64 v v) (sqrt.f64 2)))
(*.f64 -3/8 (*.f64 v (*.f64 v (sqrt.f64 2))))
(+.f64 (*.f64 1/4 (sqrt.f64 2)) (*.f64 -3/8 (*.f64 (sqrt.f64 2) (pow.f64 v 2))))
(fma.f64 1/4 (sqrt.f64 2) (*.f64 -3/8 (*.f64 (*.f64 v v) (sqrt.f64 2))))
(fma.f64 -3/8 (*.f64 (*.f64 v v) (sqrt.f64 2)) (*.f64 1/4 (sqrt.f64 2)))
(*.f64 (sqrt.f64 2) (+.f64 1/4 (*.f64 -3/8 (*.f64 v v))))
(*.f64 (sqrt.f64 2) (fma.f64 -3/8 (*.f64 v v) 1/4))
(+.f64 (*.f64 1/4 (sqrt.f64 2)) (*.f64 -3/8 (*.f64 (sqrt.f64 2) (pow.f64 v 2))))
(fma.f64 1/4 (sqrt.f64 2) (*.f64 -3/8 (*.f64 (*.f64 v v) (sqrt.f64 2))))
(fma.f64 -3/8 (*.f64 (*.f64 v v) (sqrt.f64 2)) (*.f64 1/4 (sqrt.f64 2)))
(*.f64 (sqrt.f64 2) (+.f64 1/4 (*.f64 -3/8 (*.f64 v v))))
(*.f64 (sqrt.f64 2) (fma.f64 -3/8 (*.f64 v v) 1/4))
(+.f64 (*.f64 1/4 (sqrt.f64 2)) (*.f64 -3/8 (*.f64 (sqrt.f64 2) (pow.f64 v 2))))
(fma.f64 1/4 (sqrt.f64 2) (*.f64 -3/8 (*.f64 (*.f64 v v) (sqrt.f64 2))))
(fma.f64 -3/8 (*.f64 (*.f64 v v) (sqrt.f64 2)) (*.f64 1/4 (sqrt.f64 2)))
(*.f64 (sqrt.f64 2) (+.f64 1/4 (*.f64 -3/8 (*.f64 v v))))
(*.f64 (sqrt.f64 2) (fma.f64 -3/8 (*.f64 v v) 1/4))

eval54.0ms (1.5%)

Compiler

Compiled 2512 to 1861 computations (25.9% saved)

prune28.0ms (0.8%)

Pruning

5 alts after pruning (2 fresh and 3 done)

PrunedKeptTotal
New1282130
Fresh000
Picked011
Done022
Total1285133
Error
0b
Counts
133 → 5
Alt Table
Click to see full alt table
StatusErrorProgram
1.3b
(-.f64 (+.f64 1 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))) 1)
0b
(*.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 v v) -3 1) 1/8)) (-.f64 1 (*.f64 v v)))
0.2b
(*.f64 (*.f64 (sqrt.f64 2) (+.f64 1/4 (*.f64 (*.f64 v v) -3/8))) (-.f64 1 (*.f64 v v)))
0.3b
(*.f64 (*.f64 1/4 (sqrt.f64 2)) (-.f64 1 (*.f64 v v)))
0.3b
(*.f64 1/4 (sqrt.f64 2))
Compiler

Compiled 62 to 48 computations (22.6% saved)

localize5.0ms (0.1%)

Compiler

Compiled 9 to 9 computations (0% saved)

localize107.0ms (2.9%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(+.f64 1 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v))))
0.0b
(*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))
1.0b
(-.f64 (+.f64 1 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))) 1)
Compiler

Compiled 44 to 29 computations (34.1% saved)

series3.0ms (0.1%)

Counts
3 → 36
Calls

9 calls:

TimeVariablePointExpression
1.0ms
v
@0
(-.f64 (+.f64 1 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))) 1)
0.0ms
v
@inf
(-.f64 (+.f64 1 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))) 1)
0.0ms
v
@0
(+.f64 1 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v))))
0.0ms
v
@-inf
(-.f64 (+.f64 1 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))) 1)
0.0ms
v
@inf
(+.f64 1 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v))))

rewrite107.0ms (2.9%)

Algorithm
batch-egg-rewrite
Rules
628×prod-diff_binary64
489×fma-def_binary64
416×log-prod_binary64
264×pow-prod-down_binary64
248×pow2_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01051
122837
2310837
Stop Event
node limit
Counts
3 → 243
Calls
Call 1
Inputs
(-.f64 (+.f64 1 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))) 1)
(*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))
(+.f64 1 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v))))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (*.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) -1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (sqrt.f64 1/8) (*.f64 (*.f64 v (neg.f64 v)) (sqrt.f64 1/8)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (sqrt.f64 1/8) (*.f64 (sqrt.f64 1/8) (*.f64 v (neg.f64 v))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) -1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (sqrt.f64 1/8)) (-.f64 1 (*.f64 v v)))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (sqrt.f64 1/8)) (-.f64 1 (*.f64 v v))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (sqrt.f64 1/8)) (-.f64 1 (*.f64 v v))))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (sqrt.f64 1/8)) (-.f64 1 (*.f64 v v))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 1 (*.f64 v v)) (sqrt.f64 1/8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))) (cbrt.f64 (*.f64 1/8 (pow.f64 (-.f64 1 (*.f64 v v)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 1/8 (pow.f64 (-.f64 1 (*.f64 v v)) 2))) (cbrt.f64 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (-.f64 1 (*.f64 v v))) 2) (*.f64 (cbrt.f64 (-.f64 1 (*.f64 v v))) (sqrt.f64 1/8)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))) (sqrt.f64 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (-.f64 1 (*.f64 v v))) (pow.f64 (*.f64 (-.f64 1 (*.f64 v v)) 1/8) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1/8 1/4) (*.f64 (pow.f64 1/8 1/4) (-.f64 1 (*.f64 v v))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (pow.f64 1/8 1/6) (-.f64 1 (*.f64 v v))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1) 3) -1) (/.f64 1 (+.f64 (pow.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1) 2) (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1) 2) -1) (/.f64 1 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sqrt.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1)) 1) (-.f64 (sqrt.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 1/8) (pow.f64 (cbrt.f64 (-.f64 1 (*.f64 v v))) 2)) (cbrt.f64 (-.f64 1 (*.f64 v v))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 1/8 (-.f64 1 (*.f64 v v))) 1/2) (sqrt.f64 (-.f64 1 (*.f64 v v))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 1 (*.f64 v v)) 1/2) (pow.f64 1/8 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 1 (*.f64 v v)) (pow.f64 1/8 1/4)) (pow.f64 1/8 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1) 2) (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 2)) (+.f64 (pow.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1) 3) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 2) (+.f64 (pow.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1) 2) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1) 3) -1) (+.f64 (pow.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1) 2) (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1) 3) -1) (+.f64 (pow.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1) 2) (-.f64 1 (*.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1) -1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1) 2) -1) (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1) 3) -1)) (neg.f64 (+.f64 (pow.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1) 2) (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1) 2) -1)) (neg.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 1 (pow.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) -1) 3)) (+.f64 1 (-.f64 (pow.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) -1) 2) (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) -1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 1 (pow.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) -1) 2)) (-.f64 1 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (pow.f64 v 6)) (sqrt.f64 1/8)) (+.f64 1 (fma.f64 v v (pow.f64 v 4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (pow.f64 v 4)) (sqrt.f64 1/8)) (fma.f64 v v 1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 1/8) (-.f64 1 (pow.f64 v 6))) (+.f64 1 (fma.f64 v v (pow.f64 v 4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 1/8) (-.f64 1 (pow.f64 v 4))) (fma.f64 v v 1))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 1/8 (pow.f64 (-.f64 1 (*.f64 v v)) 2)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (+.f64 (pow.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1) 2) (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 2)) (+.f64 (pow.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1) 3) -1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 2) (+.f64 (pow.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1) 2) -1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 1/8 (pow.f64 (-.f64 1 (*.f64 v v)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (sqrt.f64 1/8)) (-.f64 1 (*.f64 v v))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x hypot.f64 (sqrt.f64 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))) (sqrt.f64 (-.f64 (*.f64 1/8 (pow.f64 (-.f64 1 (*.f64 v v)) 2)) (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v))))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (*.f64 (log1p.f64 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (fma.f64 1/2 (log.f64 1/8) (log1p.f64 (*.f64 v (neg.f64 v)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (fma.f64 1/2 (log.f64 1/8) (log1p.f64 (*.f64 v (neg.f64 v)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (sqrt.f64 1/8) (*.f64 (*.f64 v (neg.f64 v)) (sqrt.f64 1/8)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (sqrt.f64 1/8) (*.f64 (sqrt.f64 1/8) (*.f64 v (neg.f64 v))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) -1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 1/8) 1 (*.f64 (*.f64 v (neg.f64 v)) (sqrt.f64 1/8)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 1/8) 1 (*.f64 (sqrt.f64 1/8) (*.f64 v (neg.f64 v))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 1 (*.f64 v v)) (sqrt.f64 1/8) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v))) 1 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1) 1 -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))) (cbrt.f64 (*.f64 1/8 (pow.f64 (-.f64 1 (*.f64 v v)) 2))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 1/8 (pow.f64 (-.f64 1 (*.f64 v v)) 2))) (cbrt.f64 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1)) (pow.f64 (cbrt.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1)) 2) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1)) 2) (cbrt.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1)) 2) (*.f64 (cbrt.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1)) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 1 (*.f64 v v))) 2) (*.f64 (cbrt.f64 (-.f64 1 (*.f64 v v))) (sqrt.f64 1/8)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 1/8 1/6) 1/2 (*.f64 (*.f64 v (neg.f64 v)) (sqrt.f64 1/8)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 1/8 1/6) 1/2 (*.f64 (sqrt.f64 1/8) (*.f64 v (neg.f64 v))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))) (sqrt.f64 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1)) (sqrt.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1)) (*.f64 (sqrt.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1)) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 1 (*.f64 v v))) (pow.f64 (*.f64 (-.f64 1 (*.f64 v v)) 1/8) 1/2) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 1/8 1/4) (pow.f64 1/8 1/4) (*.f64 (*.f64 v (neg.f64 v)) (sqrt.f64 1/8)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 1/8 1/4) (pow.f64 1/8 1/4) (*.f64 (sqrt.f64 1/8) (*.f64 v (neg.f64 v))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 1/8 1/4) (*.f64 (pow.f64 1/8 1/4) (-.f64 1 (*.f64 v v))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1/2 (pow.f64 1/8 1/6) (*.f64 (*.f64 v (neg.f64 v)) (sqrt.f64 1/8)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1/2 (pow.f64 1/8 1/6) (*.f64 (sqrt.f64 1/8) (*.f64 v (neg.f64 v))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1/2 (*.f64 (pow.f64 1/8 1/6) (-.f64 1 (*.f64 v v))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (pow.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1) 3) -1) (/.f64 1 (+.f64 (pow.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1) 2) (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 2))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 (pow.f64 (-.f64 1 (*.f64 v v)) 3) (pow.f64 1/8 3/2) 1) (/.f64 1 (fma.f64 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v))) (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) -1) 1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (pow.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1) 2) -1) (/.f64 1 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 1 (*.f64 1/8 (pow.f64 (-.f64 1 (*.f64 v v)) 2))) (/.f64 1 (-.f64 1 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v))))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) -1)) 2) (cbrt.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) -1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) -1)) (sqrt.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) -1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1)) 1) (-.f64 (sqrt.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1)) 1) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 (sqrt.f64 (-.f64 1 (*.f64 v v))) (pow.f64 1/8 1/4) 1) (fma.f64 (sqrt.f64 (-.f64 1 (*.f64 v v))) (pow.f64 1/8 1/4) -1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 1/8) (pow.f64 (cbrt.f64 (-.f64 1 (*.f64 v v))) 2)) (cbrt.f64 (-.f64 1 (*.f64 v v))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (*.f64 1/8 (-.f64 1 (*.f64 v v))) 1/2) (sqrt.f64 (-.f64 1 (*.f64 v v))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 1 (*.f64 v v)) 1/2) (pow.f64 1/8 1/6) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 1 (*.f64 v v)) (pow.f64 1/8 1/4)) (pow.f64 1/8 1/4) 0)))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (*.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) -1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (sqrt.f64 1/8) (*.f64 (*.f64 v (neg.f64 v)) (sqrt.f64 1/8)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (sqrt.f64 1/8) (*.f64 (sqrt.f64 1/8) (*.f64 v (neg.f64 v))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) -1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (sqrt.f64 1/8)) (-.f64 1 (*.f64 v v)))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (sqrt.f64 1/8)) (-.f64 1 (*.f64 v v))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (sqrt.f64 1/8)) (-.f64 1 (*.f64 v v))))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (sqrt.f64 1/8)) (-.f64 1 (*.f64 v v))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1) 3) (+.f64 (pow.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1) 2) (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 2))) (/.f64 1 (+.f64 (pow.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1) 2) (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1) 2) (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 2)) (/.f64 1 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1) 2) (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 2)) (+.f64 (pow.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1) 3) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 2) (+.f64 (pow.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1) 2) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1) 3) -1) (+.f64 (pow.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1) 2) (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1) 3) -1) (+.f64 (pow.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1) 2) (-.f64 1 (*.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1) -1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1) 2) -1) (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1) 3) -1)) (neg.f64 (+.f64 (pow.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1) 2) (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1) 2) -1)) (neg.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 1 (pow.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) -1) 3)) (+.f64 1 (-.f64 (pow.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) -1) 2) (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) -1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 1 (pow.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) -1) 2)) (-.f64 1 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (pow.f64 v 6)) (sqrt.f64 1/8)) (+.f64 1 (fma.f64 v v (pow.f64 v 4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (pow.f64 v 4)) (sqrt.f64 1/8)) (fma.f64 v v 1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 1/8) (-.f64 1 (pow.f64 v 6))) (+.f64 1 (fma.f64 v v (pow.f64 v 4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 1/8) (-.f64 1 (pow.f64 v 4))) (fma.f64 v v 1))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 1/8 (pow.f64 (-.f64 1 (*.f64 v v)) 2)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (+.f64 (pow.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1) 2) (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 2)) (+.f64 (pow.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1) 3) -1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 2) (+.f64 (pow.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1) 2) -1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 1/8 (pow.f64 (-.f64 1 (*.f64 v v)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (sqrt.f64 1/8)) (-.f64 1 (*.f64 v v))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x hypot.f64 (sqrt.f64 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))) (sqrt.f64 (-.f64 (*.f64 1/8 (pow.f64 (-.f64 1 (*.f64 v v)) 2)) (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v))))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (*.f64 (log1p.f64 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (fma.f64 1/2 (log.f64 1/8) (log1p.f64 (*.f64 v (neg.f64 v)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (fma.f64 1/2 (log.f64 1/8) (log1p.f64 (*.f64 v (neg.f64 v)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (sqrt.f64 1/8) (*.f64 (*.f64 v (neg.f64 v)) (sqrt.f64 1/8)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (sqrt.f64 1/8) (*.f64 (sqrt.f64 1/8) (*.f64 v (neg.f64 v))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) -1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 1/8) 1 (*.f64 (*.f64 v (neg.f64 v)) (sqrt.f64 1/8)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 1/8) 1 (*.f64 (sqrt.f64 1/8) (*.f64 v (neg.f64 v))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 1 (*.f64 v v)) (sqrt.f64 1/8) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v))) 1 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1) 1 -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))) (cbrt.f64 (*.f64 1/8 (pow.f64 (-.f64 1 (*.f64 v v)) 2))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 1/8 (pow.f64 (-.f64 1 (*.f64 v v)) 2))) (cbrt.f64 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1)) (pow.f64 (cbrt.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1)) 2) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1)) 2) (cbrt.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1)) 2) (*.f64 (cbrt.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1)) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 1 (*.f64 v v))) 2) (*.f64 (cbrt.f64 (-.f64 1 (*.f64 v v))) (sqrt.f64 1/8)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 1/8 1/6) 1/2 (*.f64 (*.f64 v (neg.f64 v)) (sqrt.f64 1/8)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 1/8 1/6) 1/2 (*.f64 (sqrt.f64 1/8) (*.f64 v (neg.f64 v))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))) (sqrt.f64 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1)) (sqrt.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1)) (*.f64 (sqrt.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1)) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 1 (*.f64 v v))) (pow.f64 (*.f64 (-.f64 1 (*.f64 v v)) 1/8) 1/2) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 1/8 1/4) (pow.f64 1/8 1/4) (*.f64 (*.f64 v (neg.f64 v)) (sqrt.f64 1/8)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 1/8 1/4) (pow.f64 1/8 1/4) (*.f64 (sqrt.f64 1/8) (*.f64 v (neg.f64 v))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 1/8 1/4) (*.f64 (pow.f64 1/8 1/4) (-.f64 1 (*.f64 v v))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1/2 (pow.f64 1/8 1/6) (*.f64 (*.f64 v (neg.f64 v)) (sqrt.f64 1/8)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1/2 (pow.f64 1/8 1/6) (*.f64 (sqrt.f64 1/8) (*.f64 v (neg.f64 v))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1/2 (*.f64 (pow.f64 1/8 1/6) (-.f64 1 (*.f64 v v))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (pow.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1) 3) -1) (/.f64 1 (+.f64 (pow.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1) 2) (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 2))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 (pow.f64 (-.f64 1 (*.f64 v v)) 3) (pow.f64 1/8 3/2) 1) (/.f64 1 (fma.f64 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v))) (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) -1) 1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (pow.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1) 2) -1) (/.f64 1 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 2)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 1 (*.f64 1/8 (pow.f64 (-.f64 1 (*.f64 v v)) 2))) (/.f64 1 (-.f64 1 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v))))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) -1)) 2) (cbrt.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) -1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) -1)) (sqrt.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) -1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1)) 1) (-.f64 (sqrt.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1)) 1) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 (sqrt.f64 (-.f64 1 (*.f64 v v))) (pow.f64 1/8 1/4) 1) (fma.f64 (sqrt.f64 (-.f64 1 (*.f64 v v))) (pow.f64 1/8 1/4) -1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 1/8) (pow.f64 (cbrt.f64 (-.f64 1 (*.f64 v v))) 2)) (cbrt.f64 (-.f64 1 (*.f64 v v))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (*.f64 1/8 (-.f64 1 (*.f64 v v))) 1/2) (sqrt.f64 (-.f64 1 (*.f64 v v))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 1 (*.f64 v v)) 1/2) (pow.f64 1/8 1/6) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 1 (*.f64 v v)) (pow.f64 1/8 1/4)) (pow.f64 1/8 1/4) 0)))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 1 (-.f64 1 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v))))) (/.f64 (*.f64 1/8 (pow.f64 (-.f64 1 (*.f64 v v)) 2)) (-.f64 1 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1)) (pow.f64 (cbrt.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1)) 2) (cbrt.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1)) 2) (*.f64 (cbrt.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1)) (sqrt.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1)) (*.f64 (sqrt.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 (pow.f64 (-.f64 1 (*.f64 v v)) 3) (pow.f64 1/8 3/2) 1) (/.f64 1 (fma.f64 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v))) (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) -1) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 1 (*.f64 1/8 (pow.f64 (-.f64 1 (*.f64 v v)) 2))) (/.f64 1 (-.f64 1 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v))) (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) -1) 1) (fma.f64 (pow.f64 (-.f64 1 (*.f64 v v)) 3) (pow.f64 1/8 3/2) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 1 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))) (-.f64 1 (*.f64 1/8 (pow.f64 (-.f64 1 (*.f64 v v)) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 (pow.f64 (-.f64 1 (*.f64 v v)) 3) (pow.f64 1/8 3/2) 1) (fma.f64 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v))) (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) -1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 (pow.f64 (-.f64 1 (*.f64 v v)) 3) (pow.f64 1/8 3/2) 1) (fma.f64 1/8 (pow.f64 (-.f64 1 (*.f64 v v)) 2) (-.f64 1 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 1 (*.f64 1/8 (pow.f64 (-.f64 1 (*.f64 v v)) 2))) (-.f64 1 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (fma.f64 (pow.f64 (-.f64 1 (*.f64 v v)) 3) (pow.f64 1/8 3/2) 1)) (neg.f64 (fma.f64 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v))) (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) -1) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 1 (*.f64 1/8 (pow.f64 (-.f64 1 (*.f64 v v)) 2)))) (neg.f64 (-.f64 1 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 1/8 (pow.f64 (-.f64 1 (*.f64 v v)) 2) -1) (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (fma.f64 (pow.f64 (-.f64 1 (*.f64 v v)) 3) (pow.f64 1/8 3/2) 1) 1) (fma.f64 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v))) (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) -1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (*.f64 1/8 (pow.f64 (-.f64 1 (*.f64 v v)) 2))) 1) (-.f64 1 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (fma.f64 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v))) (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) -1) 1) (fma.f64 (pow.f64 (-.f64 1 (*.f64 v v)) 3) (pow.f64 1/8 3/2) 1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (-.f64 1 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))) (-.f64 1 (*.f64 1/8 (pow.f64 (-.f64 1 (*.f64 v v)) 2)))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log1p.f64 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log1p.f64 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 2) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 1 (*.f64 v v)) (sqrt.f64 1/8) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v))) 1 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))) (cbrt.f64 (*.f64 1/8 (pow.f64 (-.f64 1 (*.f64 v v)) 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 1/8 (pow.f64 (-.f64 1 (*.f64 v v)) 2))) (cbrt.f64 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 1 (*.f64 v v))) 2) (*.f64 (cbrt.f64 (-.f64 1 (*.f64 v v))) (sqrt.f64 1/8)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))) (sqrt.f64 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 1 (*.f64 v v))) (pow.f64 (*.f64 (-.f64 1 (*.f64 v v)) 1/8) 1/2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 1/8 1/4) (*.f64 (pow.f64 1/8 1/4) (-.f64 1 (*.f64 v v))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1/2 (*.f64 (pow.f64 1/8 1/6) (-.f64 1 (*.f64 v v))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (pow.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1) 3) -1) (/.f64 1 (+.f64 (pow.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1) 2) (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (pow.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1) 2) -1) (/.f64 1 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 2) 1 -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 2)) 2) (cbrt.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 2)) (sqrt.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1)) 1) (-.f64 (sqrt.f64 (fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1)) 1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 1/8) (pow.f64 (cbrt.f64 (-.f64 1 (*.f64 v v))) 2)) (cbrt.f64 (-.f64 1 (*.f64 v v))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (*.f64 1/8 (-.f64 1 (*.f64 v v))) 1/2) (sqrt.f64 (-.f64 1 (*.f64 v v))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 1 (*.f64 v v)) 1/2) (pow.f64 1/8 1/6) 1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 1 (*.f64 v v)) (pow.f64 1/8 1/4)) (pow.f64 1/8 1/4) 1)))))

simplify102.0ms (2.8%)

Algorithm
egg-herbie
Rules
695×fma-def_binary64
641×fma-neg_binary64
468×distribute-rgt-neg-in_binary64
379×distribute-lft-neg-in_binary64
335×cancel-sign-sub-inv_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
013510
130483
264411
3167411
4415411
51271411
62928411
74194411
86380411
97797411
Stop Event
node limit
Counts
279 → 169
Calls
Call 1
Inputs
(sqrt.f64 1/8)
(+.f64 (*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8))) (sqrt.f64 1/8))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8))) (sqrt.f64 1/8))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8))) (sqrt.f64 1/8))
(*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8)))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8))) (sqrt.f64 1/8))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8))) (sqrt.f64 1/8))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8))) (sqrt.f64 1/8))
(*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8)))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8))) (sqrt.f64 1/8))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8))) (sqrt.f64 1/8))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8))) (sqrt.f64 1/8))
(sqrt.f64 1/8)
(+.f64 (*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8))) (sqrt.f64 1/8))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8))) (sqrt.f64 1/8))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8))) (sqrt.f64 1/8))
(*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8)))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8))) (sqrt.f64 1/8))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8))) (sqrt.f64 1/8))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8))) (sqrt.f64 1/8))
(*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8)))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8))) (sqrt.f64 1/8))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8))) (sqrt.f64 1/8))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8))) (sqrt.f64 1/8))
(+.f64 1 (sqrt.f64 1/8))
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8))) (sqrt.f64 1/8)))
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8))) (sqrt.f64 1/8)))
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8))) (sqrt.f64 1/8)))
(*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8)))
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8))) (sqrt.f64 1/8)))
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8))) (sqrt.f64 1/8)))
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8))) (sqrt.f64 1/8)))
(*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8)))
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8))) (sqrt.f64 1/8)))
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8))) (sqrt.f64 1/8)))
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8))) (sqrt.f64 1/8)))
Outputs
(sqrt.f64 1/8)
(+.f64 (*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8))) (sqrt.f64 1/8))
(fma.f64 -1 (*.f64 (sqrt.f64 1/8) (*.f64 v v)) (sqrt.f64 1/8))
(-.f64 (sqrt.f64 1/8) (*.f64 (sqrt.f64 1/8) (*.f64 v v)))
(*.f64 (sqrt.f64 1/8) (fma.f64 (neg.f64 v) v 1))
(*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8))) (sqrt.f64 1/8))
(fma.f64 -1 (*.f64 (sqrt.f64 1/8) (*.f64 v v)) (sqrt.f64 1/8))
(-.f64 (sqrt.f64 1/8) (*.f64 (sqrt.f64 1/8) (*.f64 v v)))
(*.f64 (sqrt.f64 1/8) (fma.f64 (neg.f64 v) v 1))
(*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8))) (sqrt.f64 1/8))
(fma.f64 -1 (*.f64 (sqrt.f64 1/8) (*.f64 v v)) (sqrt.f64 1/8))
(-.f64 (sqrt.f64 1/8) (*.f64 (sqrt.f64 1/8) (*.f64 v v)))
(*.f64 (sqrt.f64 1/8) (fma.f64 (neg.f64 v) v 1))
(*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))
(*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8)))
(neg.f64 (*.f64 (sqrt.f64 1/8) (*.f64 v v)))
(*.f64 (*.f64 v v) (neg.f64 (sqrt.f64 1/8)))
(*.f64 (sqrt.f64 1/8) (*.f64 v (neg.f64 v)))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8))) (sqrt.f64 1/8))
(fma.f64 -1 (*.f64 (sqrt.f64 1/8) (*.f64 v v)) (sqrt.f64 1/8))
(-.f64 (sqrt.f64 1/8) (*.f64 (sqrt.f64 1/8) (*.f64 v v)))
(*.f64 (sqrt.f64 1/8) (fma.f64 (neg.f64 v) v 1))
(*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8))) (sqrt.f64 1/8))
(fma.f64 -1 (*.f64 (sqrt.f64 1/8) (*.f64 v v)) (sqrt.f64 1/8))
(-.f64 (sqrt.f64 1/8) (*.f64 (sqrt.f64 1/8) (*.f64 v v)))
(*.f64 (sqrt.f64 1/8) (fma.f64 (neg.f64 v) v 1))
(*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8))) (sqrt.f64 1/8))
(fma.f64 -1 (*.f64 (sqrt.f64 1/8) (*.f64 v v)) (sqrt.f64 1/8))
(-.f64 (sqrt.f64 1/8) (*.f64 (sqrt.f64 1/8) (*.f64 v v)))
(*.f64 (sqrt.f64 1/8) (fma.f64 (neg.f64 v) v 1))
(*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))
(*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8)))
(neg.f64 (*.f64 (sqrt.f64 1/8) (*.f64 v v)))
(*.f64 (*.f64 v v) (neg.f64 (sqrt.f64 1/8)))
(*.f64 (sqrt.f64 1/8) (*.f64 v (neg.f64 v)))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8))) (sqrt.f64 1/8))
(fma.f64 -1 (*.f64 (sqrt.f64 1/8) (*.f64 v v)) (sqrt.f64 1/8))
(-.f64 (sqrt.f64 1/8) (*.f64 (sqrt.f64 1/8) (*.f64 v v)))
(*.f64 (sqrt.f64 1/8) (fma.f64 (neg.f64 v) v 1))
(*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8))) (sqrt.f64 1/8))
(fma.f64 -1 (*.f64 (sqrt.f64 1/8) (*.f64 v v)) (sqrt.f64 1/8))
(-.f64 (sqrt.f64 1/8) (*.f64 (sqrt.f64 1/8) (*.f64 v v)))
(*.f64 (sqrt.f64 1/8) (fma.f64 (neg.f64 v) v 1))
(*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8))) (sqrt.f64 1/8))
(fma.f64 -1 (*.f64 (sqrt.f64 1/8) (*.f64 v v)) (sqrt.f64 1/8))
(-.f64 (sqrt.f64 1/8) (*.f64 (sqrt.f64 1/8) (*.f64 v v)))
(*.f64 (sqrt.f64 1/8) (fma.f64 (neg.f64 v) v 1))
(*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))
(sqrt.f64 1/8)
(+.f64 (*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8))) (sqrt.f64 1/8))
(fma.f64 -1 (*.f64 (sqrt.f64 1/8) (*.f64 v v)) (sqrt.f64 1/8))
(-.f64 (sqrt.f64 1/8) (*.f64 (sqrt.f64 1/8) (*.f64 v v)))
(*.f64 (sqrt.f64 1/8) (fma.f64 (neg.f64 v) v 1))
(*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8))) (sqrt.f64 1/8))
(fma.f64 -1 (*.f64 (sqrt.f64 1/8) (*.f64 v v)) (sqrt.f64 1/8))
(-.f64 (sqrt.f64 1/8) (*.f64 (sqrt.f64 1/8) (*.f64 v v)))
(*.f64 (sqrt.f64 1/8) (fma.f64 (neg.f64 v) v 1))
(*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8))) (sqrt.f64 1/8))
(fma.f64 -1 (*.f64 (sqrt.f64 1/8) (*.f64 v v)) (sqrt.f64 1/8))
(-.f64 (sqrt.f64 1/8) (*.f64 (sqrt.f64 1/8) (*.f64 v v)))
(*.f64 (sqrt.f64 1/8) (fma.f64 (neg.f64 v) v 1))
(*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))
(*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8)))
(neg.f64 (*.f64 (sqrt.f64 1/8) (*.f64 v v)))
(*.f64 (*.f64 v v) (neg.f64 (sqrt.f64 1/8)))
(*.f64 (sqrt.f64 1/8) (*.f64 v (neg.f64 v)))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8))) (sqrt.f64 1/8))
(fma.f64 -1 (*.f64 (sqrt.f64 1/8) (*.f64 v v)) (sqrt.f64 1/8))
(-.f64 (sqrt.f64 1/8) (*.f64 (sqrt.f64 1/8) (*.f64 v v)))
(*.f64 (sqrt.f64 1/8) (fma.f64 (neg.f64 v) v 1))
(*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8))) (sqrt.f64 1/8))
(fma.f64 -1 (*.f64 (sqrt.f64 1/8) (*.f64 v v)) (sqrt.f64 1/8))
(-.f64 (sqrt.f64 1/8) (*.f64 (sqrt.f64 1/8) (*.f64 v v)))
(*.f64 (sqrt.f64 1/8) (fma.f64 (neg.f64 v) v 1))
(*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8))) (sqrt.f64 1/8))
(fma.f64 -1 (*.f64 (sqrt.f64 1/8) (*.f64 v v)) (sqrt.f64 1/8))
(-.f64 (sqrt.f64 1/8) (*.f64 (sqrt.f64 1/8) (*.f64 v v)))
(*.f64 (sqrt.f64 1/8) (fma.f64 (neg.f64 v) v 1))
(*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))
(*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8)))
(neg.f64 (*.f64 (sqrt.f64 1/8) (*.f64 v v)))
(*.f64 (*.f64 v v) (neg.f64 (sqrt.f64 1/8)))
(*.f64 (sqrt.f64 1/8) (*.f64 v (neg.f64 v)))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8))) (sqrt.f64 1/8))
(fma.f64 -1 (*.f64 (sqrt.f64 1/8) (*.f64 v v)) (sqrt.f64 1/8))
(-.f64 (sqrt.f64 1/8) (*.f64 (sqrt.f64 1/8) (*.f64 v v)))
(*.f64 (sqrt.f64 1/8) (fma.f64 (neg.f64 v) v 1))
(*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8))) (sqrt.f64 1/8))
(fma.f64 -1 (*.f64 (sqrt.f64 1/8) (*.f64 v v)) (sqrt.f64 1/8))
(-.f64 (sqrt.f64 1/8) (*.f64 (sqrt.f64 1/8) (*.f64 v v)))
(*.f64 (sqrt.f64 1/8) (fma.f64 (neg.f64 v) v 1))
(*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8))) (sqrt.f64 1/8))
(fma.f64 -1 (*.f64 (sqrt.f64 1/8) (*.f64 v v)) (sqrt.f64 1/8))
(-.f64 (sqrt.f64 1/8) (*.f64 (sqrt.f64 1/8) (*.f64 v v)))
(*.f64 (sqrt.f64 1/8) (fma.f64 (neg.f64 v) v 1))
(*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))
(+.f64 1 (sqrt.f64 1/8))
(+.f64 (sqrt.f64 1/8) 1)
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8))) (sqrt.f64 1/8)))
(+.f64 (fma.f64 -1 (*.f64 (sqrt.f64 1/8) (*.f64 v v)) (sqrt.f64 1/8)) 1)
(+.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 (sqrt.f64 1/8) (*.f64 v v))))
(fma.f64 (fma.f64 (neg.f64 v) v 1) (sqrt.f64 1/8) 1)
(fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1)
(-.f64 1 (*.f64 (sqrt.f64 1/8) (fma.f64 v v -1)))
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8))) (sqrt.f64 1/8)))
(+.f64 (fma.f64 -1 (*.f64 (sqrt.f64 1/8) (*.f64 v v)) (sqrt.f64 1/8)) 1)
(+.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 (sqrt.f64 1/8) (*.f64 v v))))
(fma.f64 (fma.f64 (neg.f64 v) v 1) (sqrt.f64 1/8) 1)
(fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1)
(-.f64 1 (*.f64 (sqrt.f64 1/8) (fma.f64 v v -1)))
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8))) (sqrt.f64 1/8)))
(+.f64 (fma.f64 -1 (*.f64 (sqrt.f64 1/8) (*.f64 v v)) (sqrt.f64 1/8)) 1)
(+.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 (sqrt.f64 1/8) (*.f64 v v))))
(fma.f64 (fma.f64 (neg.f64 v) v 1) (sqrt.f64 1/8) 1)
(fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1)
(-.f64 1 (*.f64 (sqrt.f64 1/8) (fma.f64 v v -1)))
(*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8)))
(neg.f64 (*.f64 (sqrt.f64 1/8) (*.f64 v v)))
(*.f64 (*.f64 v v) (neg.f64 (sqrt.f64 1/8)))
(*.f64 (sqrt.f64 1/8) (*.f64 v (neg.f64 v)))
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8))) (sqrt.f64 1/8)))
(+.f64 (fma.f64 -1 (*.f64 (sqrt.f64 1/8) (*.f64 v v)) (sqrt.f64 1/8)) 1)
(+.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 (sqrt.f64 1/8) (*.f64 v v))))
(fma.f64 (fma.f64 (neg.f64 v) v 1) (sqrt.f64 1/8) 1)
(fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1)
(-.f64 1 (*.f64 (sqrt.f64 1/8) (fma.f64 v v -1)))
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8))) (sqrt.f64 1/8)))
(+.f64 (fma.f64 -1 (*.f64 (sqrt.f64 1/8) (*.f64 v v)) (sqrt.f64 1/8)) 1)
(+.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 (sqrt.f64 1/8) (*.f64 v v))))
(fma.f64 (fma.f64 (neg.f64 v) v 1) (sqrt.f64 1/8) 1)
(fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1)
(-.f64 1 (*.f64 (sqrt.f64 1/8) (fma.f64 v v -1)))
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8))) (sqrt.f64 1/8)))
(+.f64 (fma.f64 -1 (*.f64 (sqrt.f64 1/8) (*.f64 v v)) (sqrt.f64 1/8)) 1)
(+.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 (sqrt.f64 1/8) (*.f64 v v))))
(fma.f64 (fma.f64 (neg.f64 v) v 1) (sqrt.f64 1/8) 1)
(fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1)
(-.f64 1 (*.f64 (sqrt.f64 1/8) (fma.f64 v v -1)))
(*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8)))
(neg.f64 (*.f64 (sqrt.f64 1/8) (*.f64 v v)))
(*.f64 (*.f64 v v) (neg.f64 (sqrt.f64 1/8)))
(*.f64 (sqrt.f64 1/8) (*.f64 v (neg.f64 v)))
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8))) (sqrt.f64 1/8)))
(+.f64 (fma.f64 -1 (*.f64 (sqrt.f64 1/8) (*.f64 v v)) (sqrt.f64 1/8)) 1)
(+.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 (sqrt.f64 1/8) (*.f64 v v))))
(fma.f64 (fma.f64 (neg.f64 v) v 1) (sqrt.f64 1/8) 1)
(fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1)
(-.f64 1 (*.f64 (sqrt.f64 1/8) (fma.f64 v v -1)))
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8))) (sqrt.f64 1/8)))
(+.f64 (fma.f64 -1 (*.f64 (sqrt.f64 1/8) (*.f64 v v)) (sqrt.f64 1/8)) 1)
(+.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 (sqrt.f64 1/8) (*.f64 v v))))
(fma.f64 (fma.f64 (neg.f64 v) v 1) (sqrt.f64 1/8) 1)
(fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1)
(-.f64 1 (*.f64 (sqrt.f64 1/8) (fma.f64 v v -1)))
(+.f64 1 (+.f64 (*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8))) (sqrt.f64 1/8)))
(+.f64 (fma.f64 -1 (*.f64 (sqrt.f64 1/8) (*.f64 v v)) (sqrt.f64 1/8)) 1)
(+.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 (sqrt.f64 1/8) (*.f64 v v))))
(fma.f64 (fma.f64 (neg.f64 v) v 1) (sqrt.f64 1/8) 1)
(fma.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)) 1)
(-.f64 1 (*.f64 (sqrt.f64 1/8) (fma.f64 v v -1)))

eval75.0ms (2.1%)

Compiler

Compiled 3163 to 2354 computations (25.6% saved)

prune60.0ms (1.6%)

Pruning

6 alts after pruning (3 fresh and 3 done)

PrunedKeptTotal
New1663169
Fresh000
Picked011
Done224
Total1686174
Error
0b
Counts
174 → 6
Alt Table
Click to see full alt table
StatusErrorProgram
1.3b
(-.f64 (+.f64 1 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))) 1)
0b
(*.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 v v) -3 1) 1/8)) (-.f64 1 (*.f64 v v)))
0.2b
(*.f64 (*.f64 (sqrt.f64 2) (+.f64 1/4 (*.f64 (*.f64 v v) -3/8))) (-.f64 1 (*.f64 v v)))
1.3b
(-.f64 (+.f64 (sqrt.f64 1/8) 1) 1)
0.3b
(*.f64 (-.f64 1 (*.f64 v v)) (sqrt.f64 1/8))
0.3b
(sqrt.f64 1/8)
Compiler

Compiled 65 to 51 computations (21.5% saved)

localize2.0ms (0.1%)

Compiler

Compiled 4 to 4 computations (0% saved)

localize10.0ms (0.3%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(*.f64 (-.f64 1 (*.f64 v v)) (sqrt.f64 1/8))
Compiler

Compiled 22 to 13 computations (40.9% saved)

series1.0ms (0%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
0.0ms
v
@inf
(*.f64 (-.f64 1 (*.f64 v v)) (sqrt.f64 1/8))
0.0ms
v
@0
(*.f64 (-.f64 1 (*.f64 v v)) (sqrt.f64 1/8))
0.0ms
v
@-inf
(*.f64 (-.f64 1 (*.f64 v v)) (sqrt.f64 1/8))

rewrite53.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
741×pow1_binary64
694×add-log-exp_binary64
693×log1p-expm1-u_binary64
693×expm1-log1p-u_binary64
680×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0812
116712
2196612
Stop Event
node limit
Counts
1 → 19
Calls
Call 1
Inputs
(*.f64 (-.f64 1 (*.f64 v v)) (sqrt.f64 1/8))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (sqrt.f64 1/8) (*.f64 (*.f64 v (neg.f64 v)) (sqrt.f64 1/8)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (sqrt.f64 1/8) (*.f64 (sqrt.f64 1/8) (*.f64 v (neg.f64 v))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (-.f64 1 (*.f64 v v)) (sqrt.f64 1/8))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (pow.f64 v 6)) (sqrt.f64 1/8)) (+.f64 1 (+.f64 (*.f64 v v) (pow.f64 v 4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (pow.f64 v 4)) (sqrt.f64 1/8)) (+.f64 1 (*.f64 v v)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 1/8) (-.f64 1 (pow.f64 v 6))) (+.f64 1 (+.f64 (*.f64 v v) (pow.f64 v 4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 1/8) (-.f64 1 (pow.f64 v 4))) (+.f64 1 (*.f64 v v)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (-.f64 1 (*.f64 v v)) (sqrt.f64 1/8)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (-.f64 1 (*.f64 v v)) (sqrt.f64 1/8)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (-.f64 1 (*.f64 v v)) (sqrt.f64 1/8))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (-.f64 1 (*.f64 v v)) (sqrt.f64 1/8))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 1/8 (pow.f64 (-.f64 1 (*.f64 v v)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (-.f64 1 (*.f64 v v))) (sqrt.f64 1/8)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (-.f64 1 (*.f64 v v)) (sqrt.f64 1/8)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (-.f64 1 (*.f64 v v)) 3) (*.f64 1/8 (sqrt.f64 1/8))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (*.f64 1/8 (sqrt.f64 1/8)) (pow.f64 (-.f64 1 (*.f64 v v)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (-.f64 1 (*.f64 v v)) (sqrt.f64 1/8))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (-.f64 1 (*.f64 v v)) (sqrt.f64 1/8))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (-.f64 1 (*.f64 v v)) (sqrt.f64 1/8))))))))

simplify114.0ms (3.1%)

Algorithm
egg-herbie
Rules
559×fma-def_binary64
467×distribute-rgt-neg-in_binary64
425×fma-neg_binary64
377×distribute-lft-neg-in_binary64
349×unsub-neg_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
010160
122151
252133
3126133
4324133
51115133
62518133
73696133
85804133
97274133
Stop Event
node limit
Counts
31 → 24
Calls
Call 1
Inputs
(sqrt.f64 1/8)
(+.f64 (*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8))) (sqrt.f64 1/8))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8))) (sqrt.f64 1/8))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8))) (sqrt.f64 1/8))
(*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8)))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8))) (sqrt.f64 1/8))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8))) (sqrt.f64 1/8))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8))) (sqrt.f64 1/8))
(*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8)))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8))) (sqrt.f64 1/8))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8))) (sqrt.f64 1/8))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8))) (sqrt.f64 1/8))
Outputs
(sqrt.f64 1/8)
(+.f64 (*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8))) (sqrt.f64 1/8))
(fma.f64 -1 (*.f64 (sqrt.f64 1/8) (*.f64 v v)) (sqrt.f64 1/8))
(-.f64 (sqrt.f64 1/8) (*.f64 (sqrt.f64 1/8) (*.f64 v v)))
(*.f64 (sqrt.f64 1/8) (fma.f64 (neg.f64 v) v 1))
(*.f64 (sqrt.f64 1/8) (fma.f64 v (neg.f64 v) 1))
(*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8))) (sqrt.f64 1/8))
(fma.f64 -1 (*.f64 (sqrt.f64 1/8) (*.f64 v v)) (sqrt.f64 1/8))
(-.f64 (sqrt.f64 1/8) (*.f64 (sqrt.f64 1/8) (*.f64 v v)))
(*.f64 (sqrt.f64 1/8) (fma.f64 (neg.f64 v) v 1))
(*.f64 (sqrt.f64 1/8) (fma.f64 v (neg.f64 v) 1))
(*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8))) (sqrt.f64 1/8))
(fma.f64 -1 (*.f64 (sqrt.f64 1/8) (*.f64 v v)) (sqrt.f64 1/8))
(-.f64 (sqrt.f64 1/8) (*.f64 (sqrt.f64 1/8) (*.f64 v v)))
(*.f64 (sqrt.f64 1/8) (fma.f64 (neg.f64 v) v 1))
(*.f64 (sqrt.f64 1/8) (fma.f64 v (neg.f64 v) 1))
(*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))
(*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8)))
(neg.f64 (*.f64 (sqrt.f64 1/8) (*.f64 v v)))
(*.f64 (sqrt.f64 1/8) (neg.f64 (*.f64 v v)))
(*.f64 (sqrt.f64 1/8) (*.f64 v (neg.f64 v)))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8))) (sqrt.f64 1/8))
(fma.f64 -1 (*.f64 (sqrt.f64 1/8) (*.f64 v v)) (sqrt.f64 1/8))
(-.f64 (sqrt.f64 1/8) (*.f64 (sqrt.f64 1/8) (*.f64 v v)))
(*.f64 (sqrt.f64 1/8) (fma.f64 (neg.f64 v) v 1))
(*.f64 (sqrt.f64 1/8) (fma.f64 v (neg.f64 v) 1))
(*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8))) (sqrt.f64 1/8))
(fma.f64 -1 (*.f64 (sqrt.f64 1/8) (*.f64 v v)) (sqrt.f64 1/8))
(-.f64 (sqrt.f64 1/8) (*.f64 (sqrt.f64 1/8) (*.f64 v v)))
(*.f64 (sqrt.f64 1/8) (fma.f64 (neg.f64 v) v 1))
(*.f64 (sqrt.f64 1/8) (fma.f64 v (neg.f64 v) 1))
(*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8))) (sqrt.f64 1/8))
(fma.f64 -1 (*.f64 (sqrt.f64 1/8) (*.f64 v v)) (sqrt.f64 1/8))
(-.f64 (sqrt.f64 1/8) (*.f64 (sqrt.f64 1/8) (*.f64 v v)))
(*.f64 (sqrt.f64 1/8) (fma.f64 (neg.f64 v) v 1))
(*.f64 (sqrt.f64 1/8) (fma.f64 v (neg.f64 v) 1))
(*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))
(*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8)))
(neg.f64 (*.f64 (sqrt.f64 1/8) (*.f64 v v)))
(*.f64 (sqrt.f64 1/8) (neg.f64 (*.f64 v v)))
(*.f64 (sqrt.f64 1/8) (*.f64 v (neg.f64 v)))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8))) (sqrt.f64 1/8))
(fma.f64 -1 (*.f64 (sqrt.f64 1/8) (*.f64 v v)) (sqrt.f64 1/8))
(-.f64 (sqrt.f64 1/8) (*.f64 (sqrt.f64 1/8) (*.f64 v v)))
(*.f64 (sqrt.f64 1/8) (fma.f64 (neg.f64 v) v 1))
(*.f64 (sqrt.f64 1/8) (fma.f64 v (neg.f64 v) 1))
(*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8))) (sqrt.f64 1/8))
(fma.f64 -1 (*.f64 (sqrt.f64 1/8) (*.f64 v v)) (sqrt.f64 1/8))
(-.f64 (sqrt.f64 1/8) (*.f64 (sqrt.f64 1/8) (*.f64 v v)))
(*.f64 (sqrt.f64 1/8) (fma.f64 (neg.f64 v) v 1))
(*.f64 (sqrt.f64 1/8) (fma.f64 v (neg.f64 v) 1))
(*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))
(+.f64 (*.f64 -1 (*.f64 (pow.f64 v 2) (sqrt.f64 1/8))) (sqrt.f64 1/8))
(fma.f64 -1 (*.f64 (sqrt.f64 1/8) (*.f64 v v)) (sqrt.f64 1/8))
(-.f64 (sqrt.f64 1/8) (*.f64 (sqrt.f64 1/8) (*.f64 v v)))
(*.f64 (sqrt.f64 1/8) (fma.f64 (neg.f64 v) v 1))
(*.f64 (sqrt.f64 1/8) (fma.f64 v (neg.f64 v) 1))
(*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))

localize7.0ms (0.2%)

Local error

Found 1 expressions with local error:

NewErrorProgram
1.0b
(-.f64 (+.f64 (sqrt.f64 1/8) 1) 1)
Compiler

Compiled 15 to 15 computations (0% saved)

series0.0ms (0%)

Counts
1 → 0

rewrite48.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
556×pow1_binary64
532×add-log-exp_binary64
532×log1p-expm1-u_binary64
532×expm1-log1p-u_binary64
523×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
066
11393
217883
Stop Event
node limit
Counts
1 → 42
Calls
Call 1
Inputs
(-.f64 (+.f64 (sqrt.f64 1/8) 1) 1)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (sqrt.f64 1/8) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 1 (+.f64 (sqrt.f64 1/8) -1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (sqrt.f64 1/8) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 1/8))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (+.f64 (sqrt.f64 1/8) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 1/8) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 1/8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (sqrt.f64 1/8)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1/8 1/4) (pow.f64 1/8 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1/8 1/4) (*.f64 (pow.f64 1/8 1/4) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (cbrt.f64 (sqrt.f64 1/8)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (cbrt.f64 (sqrt.f64 1/8)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (+.f64 (sqrt.f64 1/8) 1) 3) -1) (/.f64 1 (+.f64 (pow.f64 (+.f64 (sqrt.f64 1/8) 1) 2) (+.f64 (sqrt.f64 1/8) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 (sqrt.f64 1/8) 2) (sqrt.f64 1/8)) (/.f64 1 (+.f64 (sqrt.f64 1/8) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (hypot.f64 1 (pow.f64 1/8 1/4)) 1) (-.f64 (hypot.f64 1 (pow.f64 1/8 1/4)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1/8 (-.f64 (sqrt.f64 1/8) 0))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 (+.f64 (sqrt.f64 1/8) 1) 2) (+.f64 (sqrt.f64 1/8) 2)) (+.f64 (pow.f64 (+.f64 (sqrt.f64 1/8) 1) 3) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (sqrt.f64 1/8) 2) (*.f64 (+.f64 (sqrt.f64 1/8) 2) (sqrt.f64 1/8))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (+.f64 (sqrt.f64 1/8) 1) 3) -1) (+.f64 (pow.f64 (+.f64 (sqrt.f64 1/8) 1) 2) (+.f64 (sqrt.f64 1/8) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (+.f64 (sqrt.f64 1/8) 1) 3) -1) (+.f64 (pow.f64 (+.f64 (sqrt.f64 1/8) 1) 2) (-.f64 1 (*.f64 (+.f64 (sqrt.f64 1/8) 1) -1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 1/8 3/2) (+.f64 1/8 (-.f64 0 (*.f64 (sqrt.f64 1/8) 0))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (sqrt.f64 1/8) 2) (sqrt.f64 1/8)) (+.f64 (sqrt.f64 1/8) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (sqrt.f64 1/8) 2) (sqrt.f64 1/8)) (-.f64 (+.f64 (sqrt.f64 1/8) 1) -1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (+.f64 (sqrt.f64 1/8) 1) 3) -1)) (neg.f64 (+.f64 (pow.f64 (+.f64 (sqrt.f64 1/8) 1) 2) (+.f64 (sqrt.f64 1/8) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 (+.f64 (sqrt.f64 1/8) 2) (sqrt.f64 1/8))) (neg.f64 (+.f64 (sqrt.f64 1/8) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 1/8 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 1/8) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (sqrt.f64 1/8)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 1/8 1/4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 1/8 3/2) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (sqrt.f64 1/8)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 1/8 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (sqrt.f64 1/8)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (sqrt.f64 1/8)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (sqrt.f64 1/8)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (sqrt.f64 1/8) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (+.f64 (sqrt.f64 1/8) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (+.f64 (sqrt.f64 1/8) 1)) 2) (cbrt.f64 (+.f64 (sqrt.f64 1/8) 1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 1/8 1/4) (pow.f64 1/8 1/4) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (hypot.f64 1 (pow.f64 1/8 1/4)) (hypot.f64 1 (pow.f64 1/8 1/4)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1/2 (cbrt.f64 (sqrt.f64 1/8)) 0)))))

simplify7.0ms (0.2%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
000
Stop Event
saturated
Counts
42 → 42
Calls
Call 1
Inputs
Outputs

eval18.0ms (0.5%)

Compiler

Compiled 638 to 567 computations (11.1% saved)

prune9.0ms (0.3%)

Pruning

6 alts after pruning (0 fresh and 6 done)

PrunedKeptTotal
New66066
Fresh000
Picked011
Done055
Total66672
Error
0b
Counts
72 → 6
Alt Table
Click to see full alt table
StatusErrorProgram
1.3b
(-.f64 (+.f64 1 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))) 1)
0b
(*.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 v v) -3 1) 1/8)) (-.f64 1 (*.f64 v v)))
0.2b
(*.f64 (*.f64 (sqrt.f64 2) (+.f64 1/4 (*.f64 (*.f64 v v) -3/8))) (-.f64 1 (*.f64 v v)))
1.3b
(-.f64 (+.f64 (sqrt.f64 1/8) 1) 1)
0.3b
(*.f64 (-.f64 1 (*.f64 v v)) (sqrt.f64 1/8))
0.3b
(sqrt.f64 1/8)
Compiler

Compiled 65 to 51 computations (21.5% saved)

regimes33.0ms (0.9%)

Counts
9 → 1
Calls
Call 1
Inputs
(sqrt.f64 1/8)
(*.f64 1/4 (sqrt.f64 2))
(-.f64 (+.f64 (sqrt.f64 1/8) 1) 1)
(*.f64 (-.f64 1 (*.f64 v v)) (sqrt.f64 1/8))
(*.f64 (*.f64 1/4 (sqrt.f64 2)) (-.f64 1 (*.f64 v v)))
(-.f64 (+.f64 1 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))) 1)
(*.f64 (*.f64 (sqrt.f64 2) (+.f64 1/4 (*.f64 (*.f64 v v) -3/8))) (-.f64 1 (*.f64 v v)))
(*.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 v v) -3 1) 1/8)) (-.f64 1 (*.f64 v v)))
(*.f64 (*.f64 (/.f64 (sqrt.f64 2) 4) (sqrt.f64 (-.f64 1 (*.f64 3 (*.f64 v v))))) (-.f64 1 (*.f64 v v)))
Outputs
(*.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 v v) -3 1) 1/8)) (-.f64 1 (*.f64 v v)))
Calls

4 calls:

5.0ms
v
3.0ms
(*.f64 v v)
2.0ms
(*.f64 (*.f64 (/.f64 (sqrt.f64 2) 4) (sqrt.f64 (-.f64 1 (*.f64 3 (*.f64 v v))))) (-.f64 1 (*.f64 v v)))
2.0ms
(*.f64 (*.f64 (/.f64 (sqrt.f64 2) 4) (sqrt.f64 (-.f64 1 (*.f64 3 (*.f64 v v))))) (-.f64 1 (*.f64 v v)))
Results
ErrorSegmentsBranch
0b1v
0b1(*.f64 (*.f64 (/.f64 (sqrt.f64 2) 4) (sqrt.f64 (-.f64 1 (*.f64 3 (*.f64 v v))))) (-.f64 1 (*.f64 v v)))
0b1(*.f64 (*.f64 (/.f64 (sqrt.f64 2) 4) (sqrt.f64 (-.f64 1 (*.f64 3 (*.f64 v v))))) (-.f64 1 (*.f64 v v)))
0b1(*.f64 v v)
Compiler

Compiled 139 to 100 computations (28.1% saved)

regimes10.0ms (0.3%)

Counts
7 → 1
Calls
Call 1
Inputs
(sqrt.f64 1/8)
(*.f64 1/4 (sqrt.f64 2))
(-.f64 (+.f64 (sqrt.f64 1/8) 1) 1)
(*.f64 (-.f64 1 (*.f64 v v)) (sqrt.f64 1/8))
(*.f64 (*.f64 1/4 (sqrt.f64 2)) (-.f64 1 (*.f64 v v)))
(-.f64 (+.f64 1 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))) 1)
(*.f64 (*.f64 (sqrt.f64 2) (+.f64 1/4 (*.f64 (*.f64 v v) -3/8))) (-.f64 1 (*.f64 v v)))
Outputs
(*.f64 (*.f64 (sqrt.f64 2) (+.f64 1/4 (*.f64 (*.f64 v v) -3/8))) (-.f64 1 (*.f64 v v)))
Calls

2 calls:

5.0ms
v
3.0ms
(*.f64 v v)
Results
ErrorSegmentsBranch
0.2b1v
0.2b1(*.f64 v v)
Compiler

Compiled 65 to 48 computations (26.2% saved)

regimes10.0ms (0.3%)

Counts
6 → 1
Calls
Call 1
Inputs
(sqrt.f64 1/8)
(*.f64 1/4 (sqrt.f64 2))
(-.f64 (+.f64 (sqrt.f64 1/8) 1) 1)
(*.f64 (-.f64 1 (*.f64 v v)) (sqrt.f64 1/8))
(*.f64 (*.f64 1/4 (sqrt.f64 2)) (-.f64 1 (*.f64 v v)))
(-.f64 (+.f64 1 (*.f64 (sqrt.f64 1/8) (-.f64 1 (*.f64 v v)))) 1)
Outputs
(*.f64 (-.f64 1 (*.f64 v v)) (sqrt.f64 1/8))
Calls

2 calls:

5.0ms
v
3.0ms
(*.f64 v v)
Results
ErrorSegmentsBranch
0.3b1v
0.3b1(*.f64 v v)
Compiler

Compiled 49 to 38 computations (22.4% saved)

regimes4.0ms (0.1%)

Accuracy

Total -1.0b remaining (-292.8%)

Threshold costs -1.0b (-292.8%)

Counts
3 → 1
Calls
Call 1
Inputs
(sqrt.f64 1/8)
(*.f64 1/4 (sqrt.f64 2))
(-.f64 (+.f64 (sqrt.f64 1/8) 1) 1)
Outputs
(sqrt.f64 1/8)
Calls

1 calls:

3.0ms
v
Results
ErrorSegmentsBranch
0.3b1v
Compiler

Compiled 15 to 14 computations (6.7% saved)

simplify5.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
02161
13561
24261
34661
44861
Stop Event
done
saturated
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 v v) -3 1) 1/8)) (-.f64 1 (*.f64 v v)))
(*.f64 (*.f64 (sqrt.f64 2) (+.f64 1/4 (*.f64 (*.f64 v v) -3/8))) (-.f64 1 (*.f64 v v)))
(*.f64 (-.f64 1 (*.f64 v v)) (sqrt.f64 1/8))
(sqrt.f64 1/8)
Outputs
(*.f64 (sqrt.f64 (*.f64 (fma.f64 (*.f64 v v) -3 1) 1/8)) (-.f64 1 (*.f64 v v)))
(*.f64 (*.f64 (sqrt.f64 2) (+.f64 1/4 (*.f64 (*.f64 v v) -3/8))) (-.f64 1 (*.f64 v v)))
(*.f64 (-.f64 1 (*.f64 v v)) (*.f64 (sqrt.f64 2) (+.f64 1/4 (*.f64 (*.f64 v v) -3/8))))
(*.f64 (-.f64 1 (*.f64 v v)) (sqrt.f64 1/8))
(sqrt.f64 1/8)
Compiler

Compiled 45 to 33 computations (26.7% saved)

soundness0.0ms (0%)

end86.0ms (2.4%)

Compiler

Compiled 42 to 28 computations (33.3% saved)

Profiling

Loading profile data...