Details

Time bar (total: 3.3s)

analyze50.0ms (1.5%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
0%0%99.9%0.1%0%0%0%1
0%0%99.9%0.1%0%0%0%2
0%0%99.9%0.1%0%0%0%3
0%0%99.9%0.1%0%0%0%4
25%25%74.9%0.1%0%0%0%5
28.6%25%62.4%0.1%12.5%0%0%6
46.2%37.5%43.7%0.1%18.7%0%0%7
57.7%46.8%34.3%0.1%18.7%0%0%8
69.4%53.1%23.4%0.1%23.4%0%0%9
76.5%58.5%18%0.1%23.4%0%0%10
83.7%62%12.1%0.1%25.8%0%0%11
87.6%65%9.2%0.1%25.8%0%0%12
Compiler

Compiled 11 to 7 computations (36.4% saved)

sample701.0ms (21.1%)

Results
670.0ms8256×body256valid
21.0ms246×body256infinite
Bogosity

preprocess23.0ms (0.7%)

Algorithm
egg-herbie
Rules
327×fma-def_binary64
30×distribute-rgt-in_binary64
25×sub-neg_binary64
24×distribute-lft-in_binary64
24×unsub-neg_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01124
13524
210024
314724
421224
530624
635124
741024
866524
022
122
Stop Event
unsound
saturated
Calls
Call 1
Inputs
0
1
Outputs
0
1
0
Call 2
Inputs
(neg.f64 (*.f64 (*.f64 (*.f64 a a) b) b))
(neg.f64 (*.f64 (*.f64 (*.f64 b b) a) a))
Outputs
(neg.f64 (*.f64 (*.f64 (*.f64 a a) b) b))
(*.f64 (*.f64 a (*.f64 a b)) (neg.f64 b))
(*.f64 a (*.f64 a (neg.f64 (*.f64 b b))))
(*.f64 a (*.f64 a (*.f64 b (neg.f64 b))))
(neg.f64 (*.f64 (*.f64 (*.f64 b b) a) a))
(*.f64 (*.f64 a (*.f64 a b)) (neg.f64 b))
(*.f64 a (*.f64 a (neg.f64 (*.f64 b b))))
(*.f64 a (*.f64 a (*.f64 b (neg.f64 b))))
Symmetry

(sort a b)

Compiler

Compiled 12 to 8 computations (33.3% saved)

simplify14.0ms (0.4%)

Algorithm
egg-herbie
Rules
284×fma-def_binary64
30×associate-*l*_binary64
24×distribute-rgt-in_binary64
24×sub-neg_binary64
19×fma-neg_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0712
12112
25912
312512
419212
526012
632312
737212
851712
960112
Stop Event
saturated
Counts
1 → 5
Calls
Call 1
Inputs
(neg.f64 (*.f64 (*.f64 (*.f64 a a) b) b))
Outputs
(neg.f64 (*.f64 (*.f64 (*.f64 a a) b) b))
(*.f64 (*.f64 (*.f64 a a) b) (neg.f64 b))
(*.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
(*.f64 a (*.f64 (*.f64 a (neg.f64 b)) b))
(*.f64 a (*.f64 (*.f64 b b) (neg.f64 a)))

eval1.0ms (0%)

Compiler

Compiled 42 to 17 computations (59.5% saved)

prune2.0ms (0.1%)

Pruning

4 alts after pruning (4 fresh and 0 done)

PrunedKeptTotal
New145
Fresh101
Picked000
Done000
Total246
Error
1.2b
Counts
6 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
15.3b
(*.f64 (*.f64 (*.f64 a a) b) (neg.f64 b))
20.6b
(*.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
16.8b
(*.f64 a (*.f64 (*.f64 b b) (neg.f64 a)))
4.0b
(*.f64 a (*.f64 (*.f64 a (neg.f64 b)) b))
Compiler

Compiled 40 to 24 computations (40% saved)

localize9.0ms (0.3%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (*.f64 a (neg.f64 b)) b)
3.8b
(*.f64 a (*.f64 (*.f64 a (neg.f64 b)) b))
Compiler

Compiled 24 to 6 computations (75% saved)

series7.0ms (0.2%)

Counts
2 → 48
Calls

12 calls:

TimeVariablePointExpression
1.0ms
a
@0
(*.f64 a (*.f64 (*.f64 a (neg.f64 b)) b))
1.0ms
b
@0
(*.f64 a (*.f64 (*.f64 a (neg.f64 b)) b))
1.0ms
a
@inf
(*.f64 a (*.f64 (*.f64 a (neg.f64 b)) b))
1.0ms
b
@inf
(*.f64 a (*.f64 (*.f64 a (neg.f64 b)) b))
1.0ms
a
@0
(*.f64 (*.f64 a (neg.f64 b)) b)

rewrite46.0ms (1.4%)

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

Useful iterations: 1 (0.0ms)

IterNodesCost
0721
114714
2199414
Stop Event
node limit
Counts
2 → 24
Calls
Call 1
Inputs
(*.f64 a (*.f64 (*.f64 a (neg.f64 b)) b))
(*.f64 (*.f64 a (neg.f64 b)) b)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (*.f64 a b) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 a b) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 a b) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) 3)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (pow.f64 (*.f64 a b) 2))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (*.f64 a b) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (*.f64 a b) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (*.f64 a b) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (pow.f64 (*.f64 a b) 2)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 a (*.f64 b b))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 a (*.f64 b b)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 a (*.f64 b b)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 a (*.f64 b b))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 a) b) 2)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 a (*.f64 b b)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 a (*.f64 b b)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 b) (*.f64 a b)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 a (*.f64 b b)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 a (*.f64 b b))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 a (*.f64 b b))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 a (*.f64 b b))))))))

simplify40.0ms (1.2%)

Algorithm
egg-herbie
Rules
616×associate-*l*_binary64
534×associate-*r*_binary64
507×fma-def_binary64
335×unswap-sqr_binary64
308×associate-+l+_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
061811
1160670
2611604
33745604
Stop Event
node limit
Counts
72 → 34
Calls
Call 1
Inputs
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(-.f64 (+.f64 1 (pow.f64 (*.f64 a b) 2)) 1)
(pow.f64 (*.f64 a b) 2)
(pow.f64 (pow.f64 (*.f64 a b) 2) 1)
(pow.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 3) 1/3)
(pow.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) 3)
(neg.f64 (pow.f64 (*.f64 a b) 2))
(sqrt.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 2))
(log.f64 (exp.f64 (pow.f64 (*.f64 a b) 2)))
(cbrt.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 3))
(expm1.f64 (log1p.f64 (pow.f64 (*.f64 a b) 2)))
(log1p.f64 (expm1.f64 (pow.f64 (*.f64 a b) 2)))
(exp.f64 (log.f64 (pow.f64 (*.f64 a b) 2)))
(-.f64 (+.f64 1 (*.f64 a (*.f64 b b))) 1)
(pow.f64 (*.f64 a (*.f64 b b)) 1)
(pow.f64 (pow.f64 (*.f64 a (*.f64 b b)) 3) 1/3)
(pow.f64 (cbrt.f64 (*.f64 a (*.f64 b b))) 3)
(pow.f64 (*.f64 (sqrt.f64 a) b) 2)
(neg.f64 (*.f64 a (*.f64 b b)))
(sqrt.f64 (pow.f64 (*.f64 a (*.f64 b b)) 2))
(log.f64 (pow.f64 (exp.f64 b) (*.f64 a b)))
(cbrt.f64 (pow.f64 (*.f64 a (*.f64 b b)) 3))
(expm1.f64 (log1p.f64 (*.f64 a (*.f64 b b))))
(log1p.f64 (expm1.f64 (*.f64 a (*.f64 b b))))
(exp.f64 (log.f64 (*.f64 a (*.f64 b b))))
Outputs
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 a (neg.f64 (*.f64 b b)))
(neg.f64 (*.f64 a (*.f64 b b)))
(*.f64 a (*.f64 b (neg.f64 b)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 a (neg.f64 (*.f64 b b)))
(neg.f64 (*.f64 a (*.f64 b b)))
(*.f64 a (*.f64 b (neg.f64 b)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 a (neg.f64 (*.f64 b b)))
(neg.f64 (*.f64 a (*.f64 b b)))
(*.f64 a (*.f64 b (neg.f64 b)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 a (neg.f64 (*.f64 b b)))
(neg.f64 (*.f64 a (*.f64 b b)))
(*.f64 a (*.f64 b (neg.f64 b)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 a (neg.f64 (*.f64 b b)))
(neg.f64 (*.f64 a (*.f64 b b)))
(*.f64 a (*.f64 b (neg.f64 b)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 a (neg.f64 (*.f64 b b)))
(neg.f64 (*.f64 a (*.f64 b b)))
(*.f64 a (*.f64 b (neg.f64 b)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 a (neg.f64 (*.f64 b b)))
(neg.f64 (*.f64 a (*.f64 b b)))
(*.f64 a (*.f64 b (neg.f64 b)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 a (neg.f64 (*.f64 b b)))
(neg.f64 (*.f64 a (*.f64 b b)))
(*.f64 a (*.f64 b (neg.f64 b)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 a (neg.f64 (*.f64 b b)))
(neg.f64 (*.f64 a (*.f64 b b)))
(*.f64 a (*.f64 b (neg.f64 b)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 a (neg.f64 (*.f64 b b)))
(neg.f64 (*.f64 a (*.f64 b b)))
(*.f64 a (*.f64 b (neg.f64 b)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 a (neg.f64 (*.f64 b b)))
(neg.f64 (*.f64 a (*.f64 b b)))
(*.f64 a (*.f64 b (neg.f64 b)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 a (neg.f64 (*.f64 b b)))
(neg.f64 (*.f64 a (*.f64 b b)))
(*.f64 a (*.f64 b (neg.f64 b)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 a (neg.f64 (*.f64 b b)))
(neg.f64 (*.f64 a (*.f64 b b)))
(*.f64 a (*.f64 b (neg.f64 b)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 a (neg.f64 (*.f64 b b)))
(neg.f64 (*.f64 a (*.f64 b b)))
(*.f64 a (*.f64 b (neg.f64 b)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 a (neg.f64 (*.f64 b b)))
(neg.f64 (*.f64 a (*.f64 b b)))
(*.f64 a (*.f64 b (neg.f64 b)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 a (neg.f64 (*.f64 b b)))
(neg.f64 (*.f64 a (*.f64 b b)))
(*.f64 a (*.f64 b (neg.f64 b)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 a (neg.f64 (*.f64 b b)))
(neg.f64 (*.f64 a (*.f64 b b)))
(*.f64 a (*.f64 b (neg.f64 b)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 a (neg.f64 (*.f64 b b)))
(neg.f64 (*.f64 a (*.f64 b b)))
(*.f64 a (*.f64 b (neg.f64 b)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 a (neg.f64 (*.f64 b b)))
(neg.f64 (*.f64 a (*.f64 b b)))
(*.f64 a (*.f64 b (neg.f64 b)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 a (neg.f64 (*.f64 b b)))
(neg.f64 (*.f64 a (*.f64 b b)))
(*.f64 a (*.f64 b (neg.f64 b)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 a (neg.f64 (*.f64 b b)))
(neg.f64 (*.f64 a (*.f64 b b)))
(*.f64 a (*.f64 b (neg.f64 b)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 a (neg.f64 (*.f64 b b)))
(neg.f64 (*.f64 a (*.f64 b b)))
(*.f64 a (*.f64 b (neg.f64 b)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 a (neg.f64 (*.f64 b b)))
(neg.f64 (*.f64 a (*.f64 b b)))
(*.f64 a (*.f64 b (neg.f64 b)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 a (neg.f64 (*.f64 b b)))
(neg.f64 (*.f64 a (*.f64 b b)))
(*.f64 a (*.f64 b (neg.f64 b)))
(-.f64 (+.f64 1 (pow.f64 (*.f64 a b) 2)) 1)
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(pow.f64 (*.f64 a b) 2)
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (pow.f64 (*.f64 a b) 2) 1)
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(pow.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 3) 1/3)
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(pow.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) 3)
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(neg.f64 (pow.f64 (*.f64 a b) 2))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(sqrt.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 2))
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(log.f64 (exp.f64 (pow.f64 (*.f64 a b) 2)))
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(cbrt.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 3))
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(expm1.f64 (log1p.f64 (pow.f64 (*.f64 a b) 2)))
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(log1p.f64 (expm1.f64 (pow.f64 (*.f64 a b) 2)))
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(exp.f64 (log.f64 (pow.f64 (*.f64 a b) 2)))
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(-.f64 (+.f64 1 (*.f64 a (*.f64 b b))) 1)
(+.f64 (+.f64 1 (*.f64 a (*.f64 b b))) -1)
(+.f64 (*.f64 a (*.f64 b b)) 0)
(*.f64 a (*.f64 b b))
(pow.f64 (*.f64 a (*.f64 b b)) 1)
(+.f64 (+.f64 1 (*.f64 a (*.f64 b b))) -1)
(+.f64 (*.f64 a (*.f64 b b)) 0)
(*.f64 a (*.f64 b b))
(pow.f64 (pow.f64 (*.f64 a (*.f64 b b)) 3) 1/3)
(+.f64 (+.f64 1 (*.f64 a (*.f64 b b))) -1)
(+.f64 (*.f64 a (*.f64 b b)) 0)
(*.f64 a (*.f64 b b))
(pow.f64 (cbrt.f64 (*.f64 a (*.f64 b b))) 3)
(+.f64 (+.f64 1 (*.f64 a (*.f64 b b))) -1)
(+.f64 (*.f64 a (*.f64 b b)) 0)
(*.f64 a (*.f64 b b))
(pow.f64 (*.f64 (sqrt.f64 a) b) 2)
(+.f64 (+.f64 1 (*.f64 a (*.f64 b b))) -1)
(+.f64 (*.f64 a (*.f64 b b)) 0)
(*.f64 a (*.f64 b b))
(neg.f64 (*.f64 a (*.f64 b b)))
(*.f64 a (neg.f64 (*.f64 b b)))
(*.f64 a (*.f64 b (neg.f64 b)))
(sqrt.f64 (pow.f64 (*.f64 a (*.f64 b b)) 2))
(+.f64 (+.f64 1 (*.f64 a (*.f64 b b))) -1)
(+.f64 (*.f64 a (*.f64 b b)) 0)
(*.f64 a (*.f64 b b))
(log.f64 (pow.f64 (exp.f64 b) (*.f64 a b)))
(+.f64 (+.f64 1 (*.f64 a (*.f64 b b))) -1)
(+.f64 (*.f64 a (*.f64 b b)) 0)
(*.f64 a (*.f64 b b))
(cbrt.f64 (pow.f64 (*.f64 a (*.f64 b b)) 3))
(+.f64 (+.f64 1 (*.f64 a (*.f64 b b))) -1)
(+.f64 (*.f64 a (*.f64 b b)) 0)
(*.f64 a (*.f64 b b))
(expm1.f64 (log1p.f64 (*.f64 a (*.f64 b b))))
(+.f64 (+.f64 1 (*.f64 a (*.f64 b b))) -1)
(+.f64 (*.f64 a (*.f64 b b)) 0)
(*.f64 a (*.f64 b b))
(log1p.f64 (expm1.f64 (*.f64 a (*.f64 b b))))
(+.f64 (+.f64 1 (*.f64 a (*.f64 b b))) -1)
(+.f64 (*.f64 a (*.f64 b b)) 0)
(*.f64 a (*.f64 b b))
(exp.f64 (log.f64 (*.f64 a (*.f64 b b))))
(+.f64 (+.f64 1 (*.f64 a (*.f64 b b))) -1)
(+.f64 (*.f64 a (*.f64 b b)) 0)
(*.f64 a (*.f64 b b))

localize9.0ms (0.3%)

Local error

Found 2 expressions with local error:

NewErrorProgram
3.8b
(*.f64 a (*.f64 (*.f64 b b) (neg.f64 a)))
12.3b
(*.f64 (*.f64 b b) (neg.f64 a))
Compiler

Compiled 23 to 6 computations (73.9% saved)

series3.0ms (0.1%)

Counts
2 → 48
Calls

12 calls:

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

rewrite40.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
586×pow1_binary64
540×add-log-exp_binary64
539×log1p-expm1-u_binary64
539×expm1-log1p-u_binary64
526×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0721
114714
2196114
Stop Event
node limit
Counts
2 → 25
Calls
Call 1
Inputs
(*.f64 (*.f64 b b) (neg.f64 a))
(*.f64 a (*.f64 (*.f64 b b) (neg.f64 a)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (*.f64 b (*.f64 b a)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 b (*.f64 b a))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 b (*.f64 b a)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 b (*.f64 b a)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 b (*.f64 b a))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 b (sqrt.f64 a)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 b (*.f64 b a)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 b 4) (*.f64 a a)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (pow.f64 (exp.f64 b) b) a))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 b (*.f64 b a)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 b (*.f64 b a))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 b (*.f64 b a))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 b (*.f64 b a))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (*.f64 b a) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 b a) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (pow.f64 (*.f64 b a) 2) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 2)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 b a) 2)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (pow.f64 (*.f64 b a) 2))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (pow.f64 (*.f64 b a) 2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (*.f64 b a) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (*.f64 b a) 2) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (*.f64 b a) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (*.f64 b a) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (pow.f64 (*.f64 b a) 2)))))))

simplify40.0ms (1.2%)

Algorithm
egg-herbie
Rules
579×log-prod_binary64
538×unswap-sqr_binary64
525×fma-def_binary64
491×distribute-rgt-in_binary64
461×distribute-lft-in_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
065820
1166679
2706613
32695613
Stop Event
node limit
Counts
73 → 38
Calls
Call 1
Inputs
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(-.f64 0 (*.f64 b (*.f64 b a)))
(-.f64 (+.f64 1 (*.f64 b (*.f64 b a))) 1)
(pow.f64 (*.f64 b (*.f64 b a)) 1)
(pow.f64 (pow.f64 (*.f64 b (*.f64 b a)) 3) 1/3)
(pow.f64 (cbrt.f64 (*.f64 b (*.f64 b a))) 3)
(pow.f64 (*.f64 b (sqrt.f64 a)) 2)
(neg.f64 (*.f64 b (*.f64 b a)))
(sqrt.f64 (*.f64 (pow.f64 b 4) (*.f64 a a)))
(log.f64 (pow.f64 (pow.f64 (exp.f64 b) b) a))
(cbrt.f64 (pow.f64 (*.f64 b (*.f64 b a)) 3))
(expm1.f64 (log1p.f64 (*.f64 b (*.f64 b a))))
(log1p.f64 (expm1.f64 (*.f64 b (*.f64 b a))))
(exp.f64 (log.f64 (*.f64 b (*.f64 b a))))
(-.f64 (+.f64 1 (pow.f64 (*.f64 b a) 2)) 1)
(pow.f64 (pow.f64 (*.f64 b a) 2) 1)
(pow.f64 (pow.f64 (pow.f64 (*.f64 b a) 2) 3) 1/3)
(pow.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 2)) 3)
(pow.f64 (*.f64 b a) 2)
(neg.f64 (pow.f64 (*.f64 b a) 2))
(sqrt.f64 (pow.f64 (pow.f64 (*.f64 b a) 2) 2))
(log.f64 (exp.f64 (pow.f64 (*.f64 b a) 2)))
(cbrt.f64 (pow.f64 (pow.f64 (*.f64 b a) 2) 3))
(expm1.f64 (log1p.f64 (pow.f64 (*.f64 b a) 2)))
(log1p.f64 (expm1.f64 (pow.f64 (*.f64 b a) 2)))
(exp.f64 (log.f64 (pow.f64 (*.f64 b a) 2)))
Outputs
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 (neg.f64 b) (*.f64 a b))
(*.f64 b (*.f64 b (neg.f64 a)))
(*.f64 a (*.f64 b (neg.f64 b)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 (neg.f64 b) (*.f64 a b))
(*.f64 b (*.f64 b (neg.f64 a)))
(*.f64 a (*.f64 b (neg.f64 b)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 (neg.f64 b) (*.f64 a b))
(*.f64 b (*.f64 b (neg.f64 a)))
(*.f64 a (*.f64 b (neg.f64 b)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 (neg.f64 b) (*.f64 a b))
(*.f64 b (*.f64 b (neg.f64 a)))
(*.f64 a (*.f64 b (neg.f64 b)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 (neg.f64 b) (*.f64 a b))
(*.f64 b (*.f64 b (neg.f64 a)))
(*.f64 a (*.f64 b (neg.f64 b)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 (neg.f64 b) (*.f64 a b))
(*.f64 b (*.f64 b (neg.f64 a)))
(*.f64 a (*.f64 b (neg.f64 b)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 (neg.f64 b) (*.f64 a b))
(*.f64 b (*.f64 b (neg.f64 a)))
(*.f64 a (*.f64 b (neg.f64 b)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 (neg.f64 b) (*.f64 a b))
(*.f64 b (*.f64 b (neg.f64 a)))
(*.f64 a (*.f64 b (neg.f64 b)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 (neg.f64 b) (*.f64 a b))
(*.f64 b (*.f64 b (neg.f64 a)))
(*.f64 a (*.f64 b (neg.f64 b)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 (neg.f64 b) (*.f64 a b))
(*.f64 b (*.f64 b (neg.f64 a)))
(*.f64 a (*.f64 b (neg.f64 b)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 (neg.f64 b) (*.f64 a b))
(*.f64 b (*.f64 b (neg.f64 a)))
(*.f64 a (*.f64 b (neg.f64 b)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 (neg.f64 b) (*.f64 a b))
(*.f64 b (*.f64 b (neg.f64 a)))
(*.f64 a (*.f64 b (neg.f64 b)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 (neg.f64 b) (*.f64 a b))
(*.f64 b (*.f64 b (neg.f64 a)))
(*.f64 a (*.f64 b (neg.f64 b)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 (neg.f64 b) (*.f64 a b))
(*.f64 b (*.f64 b (neg.f64 a)))
(*.f64 a (*.f64 b (neg.f64 b)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 (neg.f64 b) (*.f64 a b))
(*.f64 b (*.f64 b (neg.f64 a)))
(*.f64 a (*.f64 b (neg.f64 b)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 (neg.f64 b) (*.f64 a b))
(*.f64 b (*.f64 b (neg.f64 a)))
(*.f64 a (*.f64 b (neg.f64 b)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 (neg.f64 b) (*.f64 a b))
(*.f64 b (*.f64 b (neg.f64 a)))
(*.f64 a (*.f64 b (neg.f64 b)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 (neg.f64 b) (*.f64 a b))
(*.f64 b (*.f64 b (neg.f64 a)))
(*.f64 a (*.f64 b (neg.f64 b)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 (neg.f64 b) (*.f64 a b))
(*.f64 b (*.f64 b (neg.f64 a)))
(*.f64 a (*.f64 b (neg.f64 b)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 (neg.f64 b) (*.f64 a b))
(*.f64 b (*.f64 b (neg.f64 a)))
(*.f64 a (*.f64 b (neg.f64 b)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 (neg.f64 b) (*.f64 a b))
(*.f64 b (*.f64 b (neg.f64 a)))
(*.f64 a (*.f64 b (neg.f64 b)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 (neg.f64 b) (*.f64 a b))
(*.f64 b (*.f64 b (neg.f64 a)))
(*.f64 a (*.f64 b (neg.f64 b)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 (neg.f64 b) (*.f64 a b))
(*.f64 b (*.f64 b (neg.f64 a)))
(*.f64 a (*.f64 b (neg.f64 b)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(*.f64 (neg.f64 b) (*.f64 a b))
(*.f64 b (*.f64 b (neg.f64 a)))
(*.f64 a (*.f64 b (neg.f64 b)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(-.f64 0 (*.f64 b (*.f64 b a)))
(*.f64 (neg.f64 b) (*.f64 a b))
(*.f64 b (*.f64 b (neg.f64 a)))
(*.f64 a (*.f64 b (neg.f64 b)))
(-.f64 (+.f64 1 (*.f64 b (*.f64 b a))) 1)
(+.f64 1 (-.f64 (*.f64 a (*.f64 b b)) 1))
(+.f64 (*.f64 a (*.f64 b b)) 0)
(*.f64 a (*.f64 b b))
(pow.f64 (*.f64 b (*.f64 b a)) 1)
(+.f64 1 (-.f64 (*.f64 a (*.f64 b b)) 1))
(+.f64 (*.f64 a (*.f64 b b)) 0)
(*.f64 a (*.f64 b b))
(pow.f64 (pow.f64 (*.f64 b (*.f64 b a)) 3) 1/3)
(+.f64 1 (-.f64 (*.f64 a (*.f64 b b)) 1))
(+.f64 (*.f64 a (*.f64 b b)) 0)
(*.f64 a (*.f64 b b))
(pow.f64 (cbrt.f64 (*.f64 b (*.f64 b a))) 3)
(+.f64 1 (-.f64 (*.f64 a (*.f64 b b)) 1))
(+.f64 (*.f64 a (*.f64 b b)) 0)
(*.f64 a (*.f64 b b))
(pow.f64 (*.f64 b (sqrt.f64 a)) 2)
(+.f64 1 (-.f64 (*.f64 a (*.f64 b b)) 1))
(+.f64 (*.f64 a (*.f64 b b)) 0)
(*.f64 a (*.f64 b b))
(neg.f64 (*.f64 b (*.f64 b a)))
(*.f64 (neg.f64 b) (*.f64 a b))
(*.f64 b (*.f64 b (neg.f64 a)))
(*.f64 a (*.f64 b (neg.f64 b)))
(sqrt.f64 (*.f64 (pow.f64 b 4) (*.f64 a a)))
(+.f64 1 (-.f64 (*.f64 a (*.f64 b b)) 1))
(+.f64 (*.f64 a (*.f64 b b)) 0)
(*.f64 a (*.f64 b b))
(log.f64 (pow.f64 (pow.f64 (exp.f64 b) b) a))
(+.f64 1 (-.f64 (*.f64 a (*.f64 b b)) 1))
(+.f64 (*.f64 a (*.f64 b b)) 0)
(*.f64 a (*.f64 b b))
(cbrt.f64 (pow.f64 (*.f64 b (*.f64 b a)) 3))
(+.f64 1 (-.f64 (*.f64 a (*.f64 b b)) 1))
(+.f64 (*.f64 a (*.f64 b b)) 0)
(*.f64 a (*.f64 b b))
(expm1.f64 (log1p.f64 (*.f64 b (*.f64 b a))))
(+.f64 1 (-.f64 (*.f64 a (*.f64 b b)) 1))
(+.f64 (*.f64 a (*.f64 b b)) 0)
(*.f64 a (*.f64 b b))
(log1p.f64 (expm1.f64 (*.f64 b (*.f64 b a))))
(+.f64 1 (-.f64 (*.f64 a (*.f64 b b)) 1))
(+.f64 (*.f64 a (*.f64 b b)) 0)
(*.f64 a (*.f64 b b))
(exp.f64 (log.f64 (*.f64 b (*.f64 b a))))
(+.f64 1 (-.f64 (*.f64 a (*.f64 b b)) 1))
(+.f64 (*.f64 a (*.f64 b b)) 0)
(*.f64 a (*.f64 b b))
(-.f64 (+.f64 1 (pow.f64 (*.f64 b a) 2)) 1)
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(pow.f64 (pow.f64 (*.f64 b a) 2) 1)
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(pow.f64 (pow.f64 (pow.f64 (*.f64 b a) 2) 3) 1/3)
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(pow.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 2)) 3)
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(pow.f64 (*.f64 b a) 2)
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(neg.f64 (pow.f64 (*.f64 b a) 2))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(sqrt.f64 (pow.f64 (pow.f64 (*.f64 b a) 2) 2))
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(log.f64 (exp.f64 (pow.f64 (*.f64 b a) 2)))
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(cbrt.f64 (pow.f64 (pow.f64 (*.f64 b a) 2) 3))
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(expm1.f64 (log1p.f64 (pow.f64 (*.f64 b a) 2)))
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(log1p.f64 (expm1.f64 (pow.f64 (*.f64 b a) 2)))
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(exp.f64 (log.f64 (pow.f64 (*.f64 b a) 2)))
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)

localize7.0ms (0.2%)

Local error

Found 1 expressions with local error:

NewErrorProgram
20.3b
(*.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
Compiler

Compiled 22 to 6 computations (72.7% saved)

series3.0ms (0.1%)

Counts
1 → 24
Calls

6 calls:

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

rewrite36.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
577×pow1_binary64
532×add-log-exp_binary64
531×log1p-expm1-u_binary64
531×expm1-log1p-u_binary64
517×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0712
11477
219007
Stop Event
node limit
Counts
1 → 13
Calls
Call 1
Inputs
(*.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (pow.f64 (*.f64 a b) 2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (*.f64 a b) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 a b) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 2)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 a b) 2)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (pow.f64 (*.f64 a b) 2))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 b 4) (pow.f64 a 4)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (*.f64 a b) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (*.f64 a b) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (*.f64 a b) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (pow.f64 (*.f64 a b) 2)))))))

simplify43.0ms (1.3%)

Algorithm
egg-herbie
Rules
1243×log-prod_binary64
465×associate-*l*_binary64
422×associate-*r*_binary64
318×unswap-sqr_binary64
317×fma-neg_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
038455
188344
2376311
32904311
47527311
Stop Event
node limit
Counts
37 → 17
Calls
Call 1
Inputs
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(-.f64 0 (pow.f64 (*.f64 a b) 2))
(-.f64 (+.f64 1 (pow.f64 (*.f64 a b) 2)) 1)
(pow.f64 (pow.f64 (*.f64 a b) 2) 1)
(pow.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 3) 1/3)
(pow.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 2)) 3)
(pow.f64 (*.f64 a b) 2)
(neg.f64 (pow.f64 (*.f64 a b) 2))
(sqrt.f64 (*.f64 (pow.f64 b 4) (pow.f64 a 4)))
(log.f64 (exp.f64 (pow.f64 (*.f64 a b) 2)))
(cbrt.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 3))
(expm1.f64 (log1p.f64 (pow.f64 (*.f64 a b) 2)))
(log1p.f64 (expm1.f64 (pow.f64 (*.f64 a b) 2)))
(exp.f64 (log.f64 (pow.f64 (*.f64 a b) 2)))
Outputs
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(-.f64 0 (pow.f64 (*.f64 a b) 2))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(-.f64 (+.f64 1 (pow.f64 (*.f64 a b) 2)) 1)
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(pow.f64 (pow.f64 (*.f64 a b) 2) 1)
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(pow.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 3) 1/3)
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(pow.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 2)) 3)
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(pow.f64 (*.f64 a b) 2)
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(neg.f64 (pow.f64 (*.f64 a b) 2))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(sqrt.f64 (*.f64 (pow.f64 b 4) (pow.f64 a 4)))
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(log.f64 (exp.f64 (pow.f64 (*.f64 a b) 2)))
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(cbrt.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 3))
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(expm1.f64 (log1p.f64 (pow.f64 (*.f64 a b) 2)))
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(log1p.f64 (expm1.f64 (pow.f64 (*.f64 a b) 2)))
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(exp.f64 (log.f64 (pow.f64 (*.f64 a b) 2)))
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)

localize7.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
3.6b
(*.f64 (*.f64 (*.f64 a a) b) (neg.f64 b))
11.0b
(*.f64 (*.f64 a a) b)
Compiler

Compiled 22 to 6 computations (72.7% saved)

series4.0ms (0.1%)

Counts
2 → 48
Calls

12 calls:

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

rewrite41.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
588×pow1_binary64
542×add-log-exp_binary64
541×log1p-expm1-u_binary64
541×expm1-log1p-u_binary64
528×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0719
114714
2194614
Stop Event
node limit
Counts
2 → 24
Calls
Call 1
Inputs
(*.f64 (*.f64 a a) b)
(*.f64 (*.f64 (*.f64 a a) b) (neg.f64 b))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (*.f64 a a) b)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (*.f64 a a) b) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (*.f64 a a) b) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (*.f64 a a) b)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 a (sqrt.f64 b)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (*.f64 a a) b) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 b) (*.f64 a a)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (*.f64 a a) b) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (*.f64 a a) b)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (*.f64 a a) b)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (*.f64 a a) b)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (pow.f64 (*.f64 a b) 2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (*.f64 a b) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 a b) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 2)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 a b) 2)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (pow.f64 (*.f64 a b) 2))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (*.f64 a b) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (*.f64 a b) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (*.f64 a b) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (pow.f64 (*.f64 a b) 2)))))))

simplify42.0ms (1.3%)

Algorithm
egg-herbie
Rules
779×associate-*l*_binary64
690×associate-*r*_binary64
572×fma-def_binary64
515×unswap-sqr_binary64
385×associate-+l+_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
060700
1144589
2608556
34680556
Stop Event
node limit
Counts
72 → 31
Calls
Call 1
Inputs
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(-.f64 (+.f64 1 (*.f64 (*.f64 a a) b)) 1)
(pow.f64 (*.f64 (*.f64 a a) b) 1)
(pow.f64 (pow.f64 (*.f64 (*.f64 a a) b) 3) 1/3)
(pow.f64 (cbrt.f64 (*.f64 (*.f64 a a) b)) 3)
(pow.f64 (*.f64 a (sqrt.f64 b)) 2)
(sqrt.f64 (pow.f64 (*.f64 (*.f64 a a) b) 2))
(log.f64 (pow.f64 (exp.f64 b) (*.f64 a a)))
(cbrt.f64 (pow.f64 (*.f64 (*.f64 a a) b) 3))
(expm1.f64 (log1p.f64 (*.f64 (*.f64 a a) b)))
(log1p.f64 (expm1.f64 (*.f64 (*.f64 a a) b)))
(exp.f64 (log.f64 (*.f64 (*.f64 a a) b)))
(-.f64 0 (pow.f64 (*.f64 a b) 2))
(-.f64 (+.f64 1 (pow.f64 (*.f64 a b) 2)) 1)
(pow.f64 (pow.f64 (*.f64 a b) 2) 1)
(pow.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 3) 1/3)
(pow.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 2)) 3)
(pow.f64 (*.f64 a b) 2)
(neg.f64 (pow.f64 (*.f64 a b) 2))
(sqrt.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 2))
(log.f64 (exp.f64 (pow.f64 (*.f64 a b) 2)))
(cbrt.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 3))
(expm1.f64 (log1p.f64 (pow.f64 (*.f64 a b) 2)))
(log1p.f64 (expm1.f64 (pow.f64 (*.f64 a b) 2)))
(exp.f64 (log.f64 (pow.f64 (*.f64 a b) 2)))
Outputs
(*.f64 (pow.f64 a 2) b)
(*.f64 b (*.f64 a a))
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 b (*.f64 a a))
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 b (*.f64 a a))
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 b (*.f64 a a))
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 b (*.f64 a a))
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 b (*.f64 a a))
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 b (*.f64 a a))
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 b (*.f64 a a))
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 b (*.f64 a a))
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 b (*.f64 a a))
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 b (*.f64 a a))
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 b (*.f64 a a))
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 b (*.f64 a a))
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 b (*.f64 a a))
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 b (*.f64 a a))
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 b (*.f64 a a))
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 b (*.f64 a a))
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 b (*.f64 a a))
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 b (*.f64 a a))
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 b (*.f64 a a))
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 b (*.f64 a a))
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 b (*.f64 a a))
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 b (*.f64 a a))
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 b (*.f64 a a))
(*.f64 a (*.f64 a b))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(-.f64 (+.f64 1 (*.f64 (*.f64 a a) b)) 1)
(*.f64 b (*.f64 a a))
(*.f64 a (*.f64 a b))
(pow.f64 (*.f64 (*.f64 a a) b) 1)
(*.f64 b (*.f64 a a))
(*.f64 a (*.f64 a b))
(pow.f64 (pow.f64 (*.f64 (*.f64 a a) b) 3) 1/3)
(*.f64 b (*.f64 a a))
(*.f64 a (*.f64 a b))
(pow.f64 (cbrt.f64 (*.f64 (*.f64 a a) b)) 3)
(*.f64 b (*.f64 a a))
(*.f64 a (*.f64 a b))
(pow.f64 (*.f64 a (sqrt.f64 b)) 2)
(*.f64 b (*.f64 a a))
(*.f64 a (*.f64 a b))
(sqrt.f64 (pow.f64 (*.f64 (*.f64 a a) b) 2))
(*.f64 b (*.f64 a a))
(*.f64 a (*.f64 a b))
(log.f64 (pow.f64 (exp.f64 b) (*.f64 a a)))
(*.f64 b (*.f64 a a))
(*.f64 a (*.f64 a b))
(cbrt.f64 (pow.f64 (*.f64 (*.f64 a a) b) 3))
(*.f64 b (*.f64 a a))
(*.f64 a (*.f64 a b))
(expm1.f64 (log1p.f64 (*.f64 (*.f64 a a) b)))
(*.f64 b (*.f64 a a))
(*.f64 a (*.f64 a b))
(log1p.f64 (expm1.f64 (*.f64 (*.f64 a a) b)))
(*.f64 b (*.f64 a a))
(*.f64 a (*.f64 a b))
(exp.f64 (log.f64 (*.f64 (*.f64 a a) b)))
(*.f64 b (*.f64 a a))
(*.f64 a (*.f64 a b))
(-.f64 0 (pow.f64 (*.f64 a b) 2))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(-.f64 (+.f64 1 (pow.f64 (*.f64 a b) 2)) 1)
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(pow.f64 (pow.f64 (*.f64 a b) 2) 1)
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(pow.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 3) 1/3)
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(pow.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 2)) 3)
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(pow.f64 (*.f64 a b) 2)
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(neg.f64 (pow.f64 (*.f64 a b) 2))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(sqrt.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 2))
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(log.f64 (exp.f64 (pow.f64 (*.f64 a b) 2)))
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(cbrt.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 3))
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(expm1.f64 (log1p.f64 (pow.f64 (*.f64 a b) 2)))
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(log1p.f64 (expm1.f64 (pow.f64 (*.f64 a b) 2)))
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(exp.f64 (log.f64 (pow.f64 (*.f64 a b) 2)))
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)

eval20.0ms (0.6%)

Compiler

Compiled 998 to 488 computations (51.1% saved)

prune17.0ms (0.5%)

Pruning

10 alts after pruning (6 fresh and 4 done)

PrunedKeptTotal
New1146120
Fresh000
Picked011
Done033
Total11410124
Error
0.1b
Counts
124 → 10
Alt Table
Click to see full alt table
StatusErrorProgram
15.6b
(*.f64 (pow.f64 (*.f64 a (sqrt.f64 b)) 2) (neg.f64 b))
15.6b
(*.f64 (pow.f64 (cbrt.f64 (*.f64 (*.f64 a a) b)) 3) (neg.f64 b))
15.3b
(*.f64 (*.f64 (*.f64 a a) b) (neg.f64 b))
3.7b
(*.f64 (*.f64 a (*.f64 a b)) (neg.f64 b))
20.6b
(*.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
25.6b
(*.f64 (cbrt.f64 (pow.f64 (*.f64 (*.f64 a a) b) 3)) (neg.f64 b))
16.8b
(*.f64 a (*.f64 (*.f64 b b) (neg.f64 a)))
4.0b
(*.f64 a (*.f64 (*.f64 a (neg.f64 b)) b))
37.5b
(*.f64 a (*.f64 a (*.f64 b b)))
0.3b
(neg.f64 (pow.f64 (*.f64 b a) 2))
Compiler

Compiled 168 to 110 computations (34.5% saved)

localize7.0ms (0.2%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.3b
(pow.f64 (*.f64 b a) 2)
Compiler

Compiled 19 to 9 computations (52.6% saved)

series3.0ms (0.1%)

Counts
1 → 24
Calls

6 calls:

TimeVariablePointExpression
1.0ms
a
@-inf
(pow.f64 (*.f64 b a) 2)
1.0ms
b
@0
(pow.f64 (*.f64 b a) 2)
1.0ms
b
@-inf
(pow.f64 (*.f64 b a) 2)
1.0ms
b
@inf
(pow.f64 (*.f64 b a) 2)
0.0ms
a
@inf
(pow.f64 (*.f64 b a) 2)

rewrite35.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
512×pow1_binary64
489×add-sqr-sqrt_binary64
471×add-log-exp_binary64
471×log1p-expm1-u_binary64
471×expm1-log1p-u_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
067
11257
213807
Stop Event
node limit
Counts
1 → 22
Calls
Call 1
Inputs
(pow.f64 (*.f64 b a) 2)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (*.f64 b a) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 b (*.f64 a (*.f64 b a)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 a (*.f64 b (*.f64 b a)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 b a) (*.f64 b a))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 b a) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (*.f64 b a) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 a a) (*.f64 b b))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 b b) (*.f64 a a))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 4)) (pow.f64 (cbrt.f64 (*.f64 b a)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) (cbrt.f64 (pow.f64 (*.f64 b a) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) (*.f64 (cbrt.f64 (*.f64 b a)) (*.f64 b a)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 b a)) (*.f64 (sqrt.f64 (*.f64 b a)) (*.f64 b a)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 b a) (sqrt.f64 (*.f64 b a))) (sqrt.f64 (*.f64 b a)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 b a) b) a)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 b a) a) b)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 b a) (pow.f64 (cbrt.f64 (*.f64 b a)) 2)) (cbrt.f64 (*.f64 b a)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 b a) 4))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (*.f64 b a) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (*.f64 b a) 2) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (*.f64 b a) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (*.f64 b a) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 2 (log.f64 (*.f64 b a))))))))

simplify47.0ms (1.4%)

Algorithm
egg-herbie
Rules
625×associate-/l*_binary64
492×associate-*l*_binary64
475×exp-prod_binary64
445×cube-prod_binary64
394×fabs-mul_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
056322
1126322
2378322
32115322
44896322
Stop Event
node limit
Counts
46 → 24
Calls
Call 1
Inputs
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(-.f64 (+.f64 1 (pow.f64 (*.f64 b a) 2)) 1)
(*.f64 b (*.f64 a (*.f64 b a)))
(*.f64 a (*.f64 b (*.f64 b a)))
(*.f64 (*.f64 b a) (*.f64 b a))
(*.f64 (pow.f64 (*.f64 b a) 2) 1)
(*.f64 1 (pow.f64 (*.f64 b a) 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(*.f64 (*.f64 b b) (*.f64 a a))
(*.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 4)) (pow.f64 (cbrt.f64 (*.f64 b a)) 2))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) (cbrt.f64 (pow.f64 (*.f64 b a) 4)))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) (*.f64 (cbrt.f64 (*.f64 b a)) (*.f64 b a)))
(*.f64 (sqrt.f64 (*.f64 b a)) (*.f64 (sqrt.f64 (*.f64 b a)) (*.f64 b a)))
(*.f64 (*.f64 (*.f64 b a) (sqrt.f64 (*.f64 b a))) (sqrt.f64 (*.f64 b a)))
(*.f64 (*.f64 (*.f64 b a) b) a)
(*.f64 (*.f64 (*.f64 b a) a) b)
(*.f64 (*.f64 (*.f64 b a) (pow.f64 (cbrt.f64 (*.f64 b a)) 2)) (cbrt.f64 (*.f64 b a)))
(sqrt.f64 (pow.f64 (*.f64 b a) 4))
(log.f64 (exp.f64 (pow.f64 (*.f64 b a) 2)))
(cbrt.f64 (pow.f64 (pow.f64 (*.f64 b a) 2) 3))
(expm1.f64 (log1p.f64 (pow.f64 (*.f64 b a) 2)))
(log1p.f64 (expm1.f64 (pow.f64 (*.f64 b a) 2)))
(exp.f64 (*.f64 2 (log.f64 (*.f64 b a))))
Outputs
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(-.f64 (+.f64 1 (pow.f64 (*.f64 b a) 2)) 1)
(pow.f64 (*.f64 a b) 2)
(*.f64 b (*.f64 a (*.f64 b a)))
(pow.f64 (*.f64 a b) 2)
(*.f64 a (*.f64 b (*.f64 b a)))
(pow.f64 (*.f64 a b) 2)
(*.f64 (*.f64 b a) (*.f64 b a))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 (*.f64 b a) 2) 1)
(pow.f64 (*.f64 a b) 2)
(*.f64 1 (pow.f64 (*.f64 b a) 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (*.f64 b b) (*.f64 a a))
(pow.f64 (*.f64 a b) 2)
(*.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 4)) (pow.f64 (cbrt.f64 (*.f64 b a)) 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) (cbrt.f64 (pow.f64 (*.f64 b a) 4)))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) (*.f64 (cbrt.f64 (*.f64 b a)) (*.f64 b a)))
(pow.f64 (*.f64 a b) 2)
(*.f64 (sqrt.f64 (*.f64 b a)) (*.f64 (sqrt.f64 (*.f64 b a)) (*.f64 b a)))
(pow.f64 (*.f64 a b) 2)
(*.f64 (*.f64 (*.f64 b a) (sqrt.f64 (*.f64 b a))) (sqrt.f64 (*.f64 b a)))
(pow.f64 (*.f64 a b) 2)
(*.f64 (*.f64 (*.f64 b a) b) a)
(pow.f64 (*.f64 a b) 2)
(*.f64 (*.f64 (*.f64 b a) a) b)
(pow.f64 (*.f64 a b) 2)
(*.f64 (*.f64 (*.f64 b a) (pow.f64 (cbrt.f64 (*.f64 b a)) 2)) (cbrt.f64 (*.f64 b a)))
(pow.f64 (*.f64 a b) 2)
(sqrt.f64 (pow.f64 (*.f64 b a) 4))
(pow.f64 (*.f64 a b) 2)
(log.f64 (exp.f64 (pow.f64 (*.f64 b a) 2)))
(pow.f64 (*.f64 a b) 2)
(cbrt.f64 (pow.f64 (pow.f64 (*.f64 b a) 2) 3))
(pow.f64 (*.f64 a b) 2)
(expm1.f64 (log1p.f64 (pow.f64 (*.f64 b a) 2)))
(pow.f64 (*.f64 a b) 2)
(log1p.f64 (expm1.f64 (pow.f64 (*.f64 b a) 2)))
(pow.f64 (*.f64 a b) 2)
(exp.f64 (*.f64 2 (log.f64 (*.f64 b a))))
(pow.f64 (*.f64 a b) 2)

localize8.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
3.8b
(*.f64 a (*.f64 a (*.f64 b b)))
12.3b
(*.f64 a (*.f64 b b))
Compiler

Compiled 19 to 5 computations (73.7% saved)

series3.0ms (0.1%)

Counts
2 → 48
Calls

12 calls:

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

rewrite38.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
555×pow1_binary64
510×add-log-exp_binary64
510×log1p-expm1-u_binary64
510×expm1-log1p-u_binary64
496×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0617
112114
2149214
Stop Event
node limit
Counts
2 → 22
Calls
Call 1
Inputs
(*.f64 a (*.f64 b b))
(*.f64 a (*.f64 a (*.f64 b b)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 a (*.f64 b b))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 a (*.f64 b b)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 a (*.f64 b b)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 a (*.f64 b b))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 b (sqrt.f64 a)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (*.f64 a a) (pow.f64 b 4)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 a) (*.f64 b b)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 a (*.f64 b b)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 a (*.f64 b b))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 a (*.f64 b b))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 a (*.f64 b b))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (*.f64 a b) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 a b) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 2)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 a b) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (*.f64 a b) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (*.f64 a b) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (*.f64 a b) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (pow.f64 (*.f64 a b) 2)))))))

simplify41.0ms (1.2%)

Algorithm
egg-herbie
Rules
777×associate-*l*_binary64
674×associate-*r*_binary64
520×unswap-sqr_binary64
511×fma-def_binary64
395×associate-+l+_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
058595
1141490
2552490
34531490
Stop Event
node limit
Counts
70 → 26
Calls
Call 1
Inputs
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(-.f64 (+.f64 1 (*.f64 a (*.f64 b b))) 1)
(pow.f64 (*.f64 a (*.f64 b b)) 1)
(pow.f64 (pow.f64 (*.f64 a (*.f64 b b)) 3) 1/3)
(pow.f64 (cbrt.f64 (*.f64 a (*.f64 b b))) 3)
(pow.f64 (*.f64 b (sqrt.f64 a)) 2)
(sqrt.f64 (*.f64 (*.f64 a a) (pow.f64 b 4)))
(log.f64 (pow.f64 (exp.f64 a) (*.f64 b b)))
(cbrt.f64 (pow.f64 (*.f64 a (*.f64 b b)) 3))
(expm1.f64 (log1p.f64 (*.f64 a (*.f64 b b))))
(log1p.f64 (expm1.f64 (*.f64 a (*.f64 b b))))
(exp.f64 (log.f64 (*.f64 a (*.f64 b b))))
(-.f64 (+.f64 1 (pow.f64 (*.f64 a b) 2)) 1)
(pow.f64 (pow.f64 (*.f64 a b) 2) 1)
(pow.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 3) 1/3)
(pow.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 2)) 3)
(pow.f64 (*.f64 a b) 2)
(sqrt.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 2))
(log.f64 (exp.f64 (pow.f64 (*.f64 a b) 2)))
(cbrt.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 3))
(expm1.f64 (log1p.f64 (pow.f64 (*.f64 a b) 2)))
(log1p.f64 (expm1.f64 (pow.f64 (*.f64 a b) 2)))
(exp.f64 (log.f64 (pow.f64 (*.f64 a b) 2)))
Outputs
(*.f64 a (pow.f64 b 2))
(*.f64 a (*.f64 b b))
(*.f64 a (pow.f64 b 2))
(*.f64 a (*.f64 b b))
(*.f64 a (pow.f64 b 2))
(*.f64 a (*.f64 b b))
(*.f64 a (pow.f64 b 2))
(*.f64 a (*.f64 b b))
(*.f64 a (pow.f64 b 2))
(*.f64 a (*.f64 b b))
(*.f64 a (pow.f64 b 2))
(*.f64 a (*.f64 b b))
(*.f64 a (pow.f64 b 2))
(*.f64 a (*.f64 b b))
(*.f64 a (pow.f64 b 2))
(*.f64 a (*.f64 b b))
(*.f64 a (pow.f64 b 2))
(*.f64 a (*.f64 b b))
(*.f64 a (pow.f64 b 2))
(*.f64 a (*.f64 b b))
(*.f64 a (pow.f64 b 2))
(*.f64 a (*.f64 b b))
(*.f64 a (pow.f64 b 2))
(*.f64 a (*.f64 b b))
(*.f64 a (pow.f64 b 2))
(*.f64 a (*.f64 b b))
(*.f64 a (pow.f64 b 2))
(*.f64 a (*.f64 b b))
(*.f64 a (pow.f64 b 2))
(*.f64 a (*.f64 b b))
(*.f64 a (pow.f64 b 2))
(*.f64 a (*.f64 b b))
(*.f64 a (pow.f64 b 2))
(*.f64 a (*.f64 b b))
(*.f64 a (pow.f64 b 2))
(*.f64 a (*.f64 b b))
(*.f64 a (pow.f64 b 2))
(*.f64 a (*.f64 b b))
(*.f64 a (pow.f64 b 2))
(*.f64 a (*.f64 b b))
(*.f64 a (pow.f64 b 2))
(*.f64 a (*.f64 b b))
(*.f64 a (pow.f64 b 2))
(*.f64 a (*.f64 b b))
(*.f64 a (pow.f64 b 2))
(*.f64 a (*.f64 b b))
(*.f64 a (pow.f64 b 2))
(*.f64 a (*.f64 b b))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(-.f64 (+.f64 1 (*.f64 a (*.f64 b b))) 1)
(*.f64 a (*.f64 b b))
(pow.f64 (*.f64 a (*.f64 b b)) 1)
(*.f64 a (*.f64 b b))
(pow.f64 (pow.f64 (*.f64 a (*.f64 b b)) 3) 1/3)
(*.f64 a (*.f64 b b))
(pow.f64 (cbrt.f64 (*.f64 a (*.f64 b b))) 3)
(*.f64 a (*.f64 b b))
(pow.f64 (*.f64 b (sqrt.f64 a)) 2)
(*.f64 a (*.f64 b b))
(sqrt.f64 (*.f64 (*.f64 a a) (pow.f64 b 4)))
(*.f64 a (*.f64 b b))
(log.f64 (pow.f64 (exp.f64 a) (*.f64 b b)))
(*.f64 a (*.f64 b b))
(cbrt.f64 (pow.f64 (*.f64 a (*.f64 b b)) 3))
(*.f64 a (*.f64 b b))
(expm1.f64 (log1p.f64 (*.f64 a (*.f64 b b))))
(*.f64 a (*.f64 b b))
(log1p.f64 (expm1.f64 (*.f64 a (*.f64 b b))))
(*.f64 a (*.f64 b b))
(exp.f64 (log.f64 (*.f64 a (*.f64 b b))))
(*.f64 a (*.f64 b b))
(-.f64 (+.f64 1 (pow.f64 (*.f64 a b) 2)) 1)
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(pow.f64 (pow.f64 (*.f64 a b) 2) 1)
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(pow.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 3) 1/3)
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(pow.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 2)) 3)
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(pow.f64 (*.f64 a b) 2)
(*.f64 (*.f64 a a) (*.f64 b b))
(sqrt.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(log.f64 (exp.f64 (pow.f64 (*.f64 a b) 2)))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(cbrt.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 3))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(expm1.f64 (log1p.f64 (pow.f64 (*.f64 a b) 2)))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(log1p.f64 (expm1.f64 (pow.f64 (*.f64 a b) 2)))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(exp.f64 (log.f64 (pow.f64 (*.f64 a b) 2)))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)

localize7.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.2b
(*.f64 a (*.f64 a b))
3.6b
(*.f64 (*.f64 a (*.f64 a b)) (neg.f64 b))
Compiler

Compiled 22 to 6 computations (72.7% saved)

series4.0ms (0.1%)

Counts
2 → 48
Calls

12 calls:

TimeVariablePointExpression
1.0ms
b
@-inf
(*.f64 a (*.f64 a b))
0.0ms
a
@0
(*.f64 (*.f64 a (*.f64 a b)) (neg.f64 b))
0.0ms
a
@inf
(*.f64 (*.f64 a (*.f64 a b)) (neg.f64 b))
0.0ms
a
@0
(*.f64 a (*.f64 a b))
0.0ms
b
@inf
(*.f64 (*.f64 a (*.f64 a b)) (neg.f64 b))

rewrite39.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
601×pow1_binary64
553×add-log-exp_binary64
552×log1p-expm1-u_binary64
552×expm1-log1p-u_binary64
541×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0719
114614
2196414
Stop Event
node limit
Counts
2 → 24
Calls
Call 1
Inputs
(*.f64 (*.f64 a (*.f64 a b)) (neg.f64 b))
(*.f64 a (*.f64 a b))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (pow.f64 (*.f64 a b) 2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (*.f64 a b) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 a b) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 a b) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (pow.f64 (*.f64 a b) 2))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (*.f64 a b) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (*.f64 a b) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (*.f64 a b) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (pow.f64 (*.f64 a b) 2)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 a (*.f64 a b))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 a (*.f64 a b)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 a (*.f64 a b)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 a (sqrt.f64 b)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 a (*.f64 a b)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 a) (*.f64 a b)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 a (*.f64 a b)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 a (*.f64 a b))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 a (*.f64 a b))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 a (*.f64 a b))))))))

simplify39.0ms (1.2%)

Algorithm
egg-herbie
Rules
653×associate-*l*_binary64
566×associate-*r*_binary64
498×fma-def_binary64
353×unswap-sqr_binary64
315×associate-+l+_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
060700
1145589
2545556
33832556
Stop Event
node limit
Counts
72 → 31
Calls
Call 1
Inputs
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(-.f64 0 (pow.f64 (*.f64 a b) 2))
(-.f64 (+.f64 1 (pow.f64 (*.f64 a b) 2)) 1)
(pow.f64 (*.f64 a b) 2)
(pow.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 3) 1/3)
(pow.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) 3)
(pow.f64 (pow.f64 (*.f64 a b) 2) 1)
(neg.f64 (pow.f64 (*.f64 a b) 2))
(sqrt.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 2))
(log.f64 (exp.f64 (pow.f64 (*.f64 a b) 2)))
(cbrt.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 3))
(expm1.f64 (log1p.f64 (pow.f64 (*.f64 a b) 2)))
(log1p.f64 (expm1.f64 (pow.f64 (*.f64 a b) 2)))
(exp.f64 (log.f64 (pow.f64 (*.f64 a b) 2)))
(-.f64 (+.f64 1 (*.f64 a (*.f64 a b))) 1)
(pow.f64 (*.f64 a (*.f64 a b)) 1)
(pow.f64 (pow.f64 (*.f64 a (*.f64 a b)) 3) 1/3)
(pow.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 3)
(pow.f64 (*.f64 a (sqrt.f64 b)) 2)
(sqrt.f64 (pow.f64 (*.f64 a (*.f64 a b)) 2))
(log.f64 (pow.f64 (exp.f64 a) (*.f64 a b)))
(cbrt.f64 (pow.f64 (*.f64 a (*.f64 a b)) 3))
(expm1.f64 (log1p.f64 (*.f64 a (*.f64 a b))))
(log1p.f64 (expm1.f64 (*.f64 a (*.f64 a b))))
(exp.f64 (log.f64 (*.f64 a (*.f64 a b))))
Outputs
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(-.f64 0 (pow.f64 (*.f64 a b) 2))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(-.f64 (+.f64 1 (pow.f64 (*.f64 a b) 2)) 1)
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(pow.f64 (*.f64 a b) 2)
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 3) 1/3)
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(pow.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) 3)
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(pow.f64 (pow.f64 (*.f64 a b) 2) 1)
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(neg.f64 (pow.f64 (*.f64 a b) 2))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(sqrt.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 2))
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(log.f64 (exp.f64 (pow.f64 (*.f64 a b) 2)))
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(cbrt.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 3))
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(expm1.f64 (log1p.f64 (pow.f64 (*.f64 a b) 2)))
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(log1p.f64 (expm1.f64 (pow.f64 (*.f64 a b) 2)))
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(exp.f64 (log.f64 (pow.f64 (*.f64 a b) 2)))
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(-.f64 (+.f64 1 (*.f64 a (*.f64 a b))) 1)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(pow.f64 (*.f64 a (*.f64 a b)) 1)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(pow.f64 (pow.f64 (*.f64 a (*.f64 a b)) 3) 1/3)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(pow.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 3)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(pow.f64 (*.f64 a (sqrt.f64 b)) 2)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(sqrt.f64 (pow.f64 (*.f64 a (*.f64 a b)) 2))
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(log.f64 (pow.f64 (exp.f64 a) (*.f64 a b)))
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(cbrt.f64 (pow.f64 (*.f64 a (*.f64 a b)) 3))
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(expm1.f64 (log1p.f64 (*.f64 a (*.f64 a b))))
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(log1p.f64 (expm1.f64 (*.f64 a (*.f64 a b))))
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(exp.f64 (log.f64 (*.f64 a (*.f64 a b))))
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))

localize10.0ms (0.3%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.2b
(*.f64 a (sqrt.f64 b))
0.2b
(pow.f64 (*.f64 a (sqrt.f64 b)) 2)
2.6b
(*.f64 (pow.f64 (*.f64 a (sqrt.f64 b)) 2) (neg.f64 b))
Compiler

Compiled 28 to 11 computations (60.7% saved)

series11.0ms (0.3%)

Counts
3 → 36
Calls

18 calls:

TimeVariablePointExpression
2.0ms
a
@0
(pow.f64 (*.f64 a (sqrt.f64 b)) 2)
1.0ms
b
@0
(pow.f64 (*.f64 a (sqrt.f64 b)) 2)
1.0ms
b
@-inf
(*.f64 (pow.f64 (*.f64 a (sqrt.f64 b)) 2) (neg.f64 b))
1.0ms
b
@-inf
(pow.f64 (*.f64 a (sqrt.f64 b)) 2)
1.0ms
b
@inf
(pow.f64 (*.f64 a (sqrt.f64 b)) 2)

rewrite47.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
715×pow1_binary64
660×add-log-exp_binary64
659×log1p-expm1-u_binary64
659×expm1-log1p-u_binary64
642×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0929
119023
2226223
Stop Event
node limit
Counts
3 → 52
Calls
Call 1
Inputs
(*.f64 (pow.f64 (*.f64 a (sqrt.f64 b)) 2) (neg.f64 b))
(pow.f64 (*.f64 a (sqrt.f64 b)) 2)
(*.f64 a (sqrt.f64 b))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (*.f64 (*.f64 a a) (*.f64 b b)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (*.f64 a a) (*.f64 b b))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (*.f64 a a) (*.f64 b b)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (*.f64 a a) (*.f64 b b)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (*.f64 a a) (*.f64 b b))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 b) (*.f64 a (sqrt.f64 b))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (*.f64 a a) (*.f64 b b)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (pow.f64 (exp.f64 (*.f64 a a)) b) b))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (*.f64 a a) (*.f64 b b)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 b (*.f64 a a)) 3) (pow.f64 b 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 b 3) (pow.f64 (*.f64 b (*.f64 a a)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (*.f64 a a) (*.f64 b b))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (*.f64 a a) (*.f64 b b))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (*.f64 a a) (*.f64 b b))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 b (*.f64 a a))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 a (*.f64 (sqrt.f64 b) (*.f64 a (sqrt.f64 b))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 b (*.f64 a a))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 b) (*.f64 a (*.f64 a (sqrt.f64 b))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 a (sqrt.f64 b)) (*.f64 a (sqrt.f64 b)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 b (*.f64 a a)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 b (*.f64 a a)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 a a) b)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 b (*.f64 a a))) (cbrt.f64 (pow.f64 (*.f64 a (sqrt.f64 b)) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 b (*.f64 a a))) (*.f64 (cbrt.f64 (*.f64 a (sqrt.f64 b))) (*.f64 a (sqrt.f64 b))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (*.f64 a (sqrt.f64 b)) 4)) (cbrt.f64 (*.f64 b (*.f64 a a))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 a (sqrt.f64 b))) (*.f64 (sqrt.f64 (*.f64 a (sqrt.f64 b))) (*.f64 a (sqrt.f64 b))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 b) (*.f64 a (sqrt.f64 b))) a)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 a (sqrt.f64 b)) (sqrt.f64 (*.f64 a (sqrt.f64 b)))) (sqrt.f64 (*.f64 a (sqrt.f64 b))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 a (sqrt.f64 b)) a) (sqrt.f64 b))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 a (sqrt.f64 b)) (cbrt.f64 (*.f64 b (*.f64 a a)))) (cbrt.f64 (*.f64 a (sqrt.f64 b))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 a (sqrt.f64 b)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (*.f64 a a)) b))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 b (*.f64 a a)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 b (*.f64 a a))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 b (*.f64 a a))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 b (*.f64 a a))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 a (sqrt.f64 b))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 a (sqrt.f64 b)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 b (*.f64 a a)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 a (sqrt.f64 b)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 a (sqrt.f64 b))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 a (sqrt.f64 b))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 b (*.f64 a a)))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 a (sqrt.f64 b)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 a) (sqrt.f64 b)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 a (sqrt.f64 b)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 a 3) (pow.f64 b 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 b 3/2) (pow.f64 a 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 a (sqrt.f64 b))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 a (sqrt.f64 b))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 a (sqrt.f64 b))))))))

simplify58.0ms (1.7%)

Algorithm
egg-herbie
Rules
1125×log-prod_binary64
838×fma-def_binary64
555×fma-neg_binary64
271×*-commutative_binary64
209×cube-prod_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0118968
1290767
21196683
33311683
46813683
Stop Event
node limit
Counts
88 → 66
Calls
Call 1
Inputs
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(-.f64 0 (*.f64 (*.f64 a a) (*.f64 b b)))
(-.f64 (+.f64 1 (*.f64 (*.f64 a a) (*.f64 b b))) 1)
(pow.f64 (*.f64 (*.f64 a a) (*.f64 b b)) 1)
(pow.f64 (pow.f64 (*.f64 (*.f64 a a) (*.f64 b b)) 3) 1/3)
(pow.f64 (cbrt.f64 (*.f64 (*.f64 a a) (*.f64 b b))) 3)
(pow.f64 (*.f64 (sqrt.f64 b) (*.f64 a (sqrt.f64 b))) 2)
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(sqrt.f64 (pow.f64 (*.f64 (*.f64 a a) (*.f64 b b)) 2))
(log.f64 (pow.f64 (pow.f64 (exp.f64 (*.f64 a a)) b) b))
(cbrt.f64 (pow.f64 (*.f64 (*.f64 a a) (*.f64 b b)) 3))
(cbrt.f64 (*.f64 (pow.f64 (*.f64 b (*.f64 a a)) 3) (pow.f64 b 3)))
(cbrt.f64 (*.f64 (pow.f64 b 3) (pow.f64 (*.f64 b (*.f64 a a)) 3)))
(expm1.f64 (log1p.f64 (*.f64 (*.f64 a a) (*.f64 b b))))
(log1p.f64 (expm1.f64 (*.f64 (*.f64 a a) (*.f64 b b))))
(exp.f64 (log.f64 (*.f64 (*.f64 a a) (*.f64 b b))))
(-.f64 (+.f64 1 (*.f64 b (*.f64 a a))) 1)
(*.f64 a (*.f64 (sqrt.f64 b) (*.f64 a (sqrt.f64 b))))
(*.f64 b (*.f64 a a))
(*.f64 (sqrt.f64 b) (*.f64 a (*.f64 a (sqrt.f64 b))))
(*.f64 (*.f64 a (sqrt.f64 b)) (*.f64 a (sqrt.f64 b)))
(*.f64 (*.f64 b (*.f64 a a)) 1)
(*.f64 1 (*.f64 b (*.f64 a a)))
(*.f64 (*.f64 a a) b)
(*.f64 (cbrt.f64 (*.f64 b (*.f64 a a))) (cbrt.f64 (pow.f64 (*.f64 a (sqrt.f64 b)) 4)))
(*.f64 (cbrt.f64 (*.f64 b (*.f64 a a))) (*.f64 (cbrt.f64 (*.f64 a (sqrt.f64 b))) (*.f64 a (sqrt.f64 b))))
(*.f64 (cbrt.f64 (pow.f64 (*.f64 a (sqrt.f64 b)) 4)) (cbrt.f64 (*.f64 b (*.f64 a a))))
(*.f64 (sqrt.f64 (*.f64 a (sqrt.f64 b))) (*.f64 (sqrt.f64 (*.f64 a (sqrt.f64 b))) (*.f64 a (sqrt.f64 b))))
(*.f64 (*.f64 (sqrt.f64 b) (*.f64 a (sqrt.f64 b))) a)
(*.f64 (*.f64 (*.f64 a (sqrt.f64 b)) (sqrt.f64 (*.f64 a (sqrt.f64 b)))) (sqrt.f64 (*.f64 a (sqrt.f64 b))))
(*.f64 (*.f64 (*.f64 a (sqrt.f64 b)) a) (sqrt.f64 b))
(*.f64 (*.f64 (*.f64 a (sqrt.f64 b)) (cbrt.f64 (*.f64 b (*.f64 a a)))) (cbrt.f64 (*.f64 a (sqrt.f64 b))))
(sqrt.f64 (pow.f64 (*.f64 a (sqrt.f64 b)) 4))
(log.f64 (pow.f64 (exp.f64 (*.f64 a a)) b))
(cbrt.f64 (pow.f64 (*.f64 b (*.f64 a a)) 3))
(expm1.f64 (log1p.f64 (*.f64 b (*.f64 a a))))
(log1p.f64 (expm1.f64 (*.f64 b (*.f64 a a))))
(exp.f64 (log.f64 (*.f64 b (*.f64 a a))))
(-.f64 (+.f64 1 (*.f64 a (sqrt.f64 b))) 1)
(pow.f64 (*.f64 a (sqrt.f64 b)) 1)
(pow.f64 (*.f64 b (*.f64 a a)) 1/2)
(pow.f64 (pow.f64 (*.f64 a (sqrt.f64 b)) 3) 1/3)
(pow.f64 (cbrt.f64 (*.f64 a (sqrt.f64 b))) 3)
(pow.f64 (sqrt.f64 (*.f64 a (sqrt.f64 b))) 2)
(sqrt.f64 (*.f64 b (*.f64 a a)))
(fabs.f64 (*.f64 a (sqrt.f64 b)))
(log.f64 (pow.f64 (exp.f64 a) (sqrt.f64 b)))
(cbrt.f64 (pow.f64 (*.f64 a (sqrt.f64 b)) 3))
(cbrt.f64 (*.f64 (pow.f64 a 3) (pow.f64 b 3/2)))
(cbrt.f64 (*.f64 (pow.f64 b 3/2) (pow.f64 a 3)))
(expm1.f64 (log1p.f64 (*.f64 a (sqrt.f64 b))))
(log1p.f64 (expm1.f64 (*.f64 a (sqrt.f64 b))))
(exp.f64 (log.f64 (*.f64 a (sqrt.f64 b))))
Outputs
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b (*.f64 a a)) b))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b (*.f64 a a)) b))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b (*.f64 a a)) b))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b (*.f64 a a)) b))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b (*.f64 a a)) b))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b (*.f64 a a)) b))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b (*.f64 a a)) b))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b (*.f64 a a)) b))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b (*.f64 a a)) b))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b (*.f64 a a)) b))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b (*.f64 a a)) b))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b (*.f64 a a)) b))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b (*.f64 a a)) b))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b (*.f64 a a)) b))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b (*.f64 a a)) b))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b (*.f64 a a)) b))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b (*.f64 a a)) b))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b (*.f64 a a)) b))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b (*.f64 a a)) b))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b (*.f64 a a)) b))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b (*.f64 a a)) b))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b (*.f64 a a)) b))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b (*.f64 a a)) b))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b (*.f64 a a)) b))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 (pow.f64 a 2) b)
(*.f64 b (*.f64 a a))
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 b (*.f64 a a))
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 b (*.f64 a a))
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 b (*.f64 a a))
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 b (*.f64 a a))
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 b (*.f64 a a))
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 b (*.f64 a a))
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 b (*.f64 a a))
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 b (*.f64 a a))
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 b (*.f64 a a))
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 b (*.f64 a a))
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 b (*.f64 a a))
(*.f64 a (*.f64 a b))
(-.f64 0 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (*.f64 (*.f64 b (*.f64 a a)) b))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(-.f64 (+.f64 1 (*.f64 (*.f64 a a) (*.f64 b b))) 1)
(+.f64 1 (-.f64 (*.f64 (*.f64 b (*.f64 a a)) b) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(pow.f64 (*.f64 (*.f64 a a) (*.f64 b b)) 1)
(+.f64 1 (-.f64 (*.f64 (*.f64 b (*.f64 a a)) b) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(pow.f64 (pow.f64 (*.f64 (*.f64 a a) (*.f64 b b)) 3) 1/3)
(+.f64 1 (-.f64 (*.f64 (*.f64 b (*.f64 a a)) b) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(pow.f64 (cbrt.f64 (*.f64 (*.f64 a a) (*.f64 b b))) 3)
(+.f64 1 (-.f64 (*.f64 (*.f64 b (*.f64 a a)) b) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(pow.f64 (*.f64 (sqrt.f64 b) (*.f64 a (sqrt.f64 b))) 2)
(+.f64 1 (-.f64 (*.f64 (*.f64 b (*.f64 a a)) b) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (*.f64 (*.f64 b (*.f64 a a)) b))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(sqrt.f64 (pow.f64 (*.f64 (*.f64 a a) (*.f64 b b)) 2))
(+.f64 1 (-.f64 (*.f64 (*.f64 b (*.f64 a a)) b) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(log.f64 (pow.f64 (pow.f64 (exp.f64 (*.f64 a a)) b) b))
(+.f64 1 (-.f64 (*.f64 (*.f64 b (*.f64 a a)) b) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(cbrt.f64 (pow.f64 (*.f64 (*.f64 a a) (*.f64 b b)) 3))
(+.f64 1 (-.f64 (*.f64 (*.f64 b (*.f64 a a)) b) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(cbrt.f64 (*.f64 (pow.f64 (*.f64 b (*.f64 a a)) 3) (pow.f64 b 3)))
(+.f64 1 (-.f64 (*.f64 (*.f64 b (*.f64 a a)) b) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(cbrt.f64 (*.f64 (pow.f64 b 3) (pow.f64 (*.f64 b (*.f64 a a)) 3)))
(+.f64 1 (-.f64 (*.f64 (*.f64 b (*.f64 a a)) b) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(expm1.f64 (log1p.f64 (*.f64 (*.f64 a a) (*.f64 b b))))
(+.f64 1 (-.f64 (*.f64 (*.f64 b (*.f64 a a)) b) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(log1p.f64 (expm1.f64 (*.f64 (*.f64 a a) (*.f64 b b))))
(+.f64 1 (-.f64 (*.f64 (*.f64 b (*.f64 a a)) b) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(exp.f64 (log.f64 (*.f64 (*.f64 a a) (*.f64 b b))))
(+.f64 1 (-.f64 (*.f64 (*.f64 b (*.f64 a a)) b) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(-.f64 (+.f64 1 (*.f64 b (*.f64 a a))) 1)
(*.f64 b (*.f64 a a))
(*.f64 a (*.f64 a b))
(*.f64 a (*.f64 (sqrt.f64 b) (*.f64 a (sqrt.f64 b))))
(*.f64 b (*.f64 a a))
(*.f64 a (*.f64 a b))
(*.f64 b (*.f64 a a))
(*.f64 a (*.f64 a b))
(*.f64 (sqrt.f64 b) (*.f64 a (*.f64 a (sqrt.f64 b))))
(*.f64 b (*.f64 a a))
(*.f64 a (*.f64 a b))
(*.f64 (*.f64 a (sqrt.f64 b)) (*.f64 a (sqrt.f64 b)))
(*.f64 b (*.f64 a a))
(*.f64 a (*.f64 a b))
(*.f64 (*.f64 b (*.f64 a a)) 1)
(*.f64 b (*.f64 a a))
(*.f64 a (*.f64 a b))
(*.f64 1 (*.f64 b (*.f64 a a)))
(*.f64 b (*.f64 a a))
(*.f64 a (*.f64 a b))
(*.f64 (*.f64 a a) b)
(*.f64 b (*.f64 a a))
(*.f64 a (*.f64 a b))
(*.f64 (cbrt.f64 (*.f64 b (*.f64 a a))) (cbrt.f64 (pow.f64 (*.f64 a (sqrt.f64 b)) 4)))
(*.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) (cbrt.f64 (pow.f64 (*.f64 a (sqrt.f64 b)) 4)))
(*.f64 (cbrt.f64 (pow.f64 (*.f64 a (sqrt.f64 b)) 4)) (cbrt.f64 (*.f64 a (*.f64 a b))))
(*.f64 (cbrt.f64 (*.f64 b (*.f64 a a))) (*.f64 (cbrt.f64 (*.f64 a (sqrt.f64 b))) (*.f64 a (sqrt.f64 b))))
(*.f64 b (*.f64 a a))
(*.f64 a (*.f64 a b))
(*.f64 (cbrt.f64 (pow.f64 (*.f64 a (sqrt.f64 b)) 4)) (cbrt.f64 (*.f64 b (*.f64 a a))))
(*.f64 (cbrt.f64 (*.f64 b (*.f64 a a))) (cbrt.f64 (pow.f64 (*.f64 a (sqrt.f64 b)) 4)))
(*.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) (cbrt.f64 (pow.f64 (*.f64 a (sqrt.f64 b)) 4)))
(*.f64 (cbrt.f64 (pow.f64 (*.f64 a (sqrt.f64 b)) 4)) (cbrt.f64 (*.f64 a (*.f64 a b))))
(*.f64 (sqrt.f64 (*.f64 a (sqrt.f64 b))) (*.f64 (sqrt.f64 (*.f64 a (sqrt.f64 b))) (*.f64 a (sqrt.f64 b))))
(*.f64 b (*.f64 a a))
(*.f64 a (*.f64 a b))
(*.f64 (*.f64 (sqrt.f64 b) (*.f64 a (sqrt.f64 b))) a)
(*.f64 b (*.f64 a a))
(*.f64 a (*.f64 a b))
(*.f64 (*.f64 (*.f64 a (sqrt.f64 b)) (sqrt.f64 (*.f64 a (sqrt.f64 b)))) (sqrt.f64 (*.f64 a (sqrt.f64 b))))
(*.f64 b (*.f64 a a))
(*.f64 a (*.f64 a b))
(*.f64 (*.f64 (*.f64 a (sqrt.f64 b)) a) (sqrt.f64 b))
(*.f64 b (*.f64 a a))
(*.f64 a (*.f64 a b))
(*.f64 (*.f64 (*.f64 a (sqrt.f64 b)) (cbrt.f64 (*.f64 b (*.f64 a a)))) (cbrt.f64 (*.f64 a (sqrt.f64 b))))
(*.f64 b (*.f64 a a))
(*.f64 a (*.f64 a b))
(sqrt.f64 (pow.f64 (*.f64 a (sqrt.f64 b)) 4))
(*.f64 b (*.f64 a a))
(*.f64 a (*.f64 a b))
(log.f64 (pow.f64 (exp.f64 (*.f64 a a)) b))
(*.f64 b (*.f64 a a))
(*.f64 a (*.f64 a b))
(cbrt.f64 (pow.f64 (*.f64 b (*.f64 a a)) 3))
(*.f64 b (*.f64 a a))
(*.f64 a (*.f64 a b))
(expm1.f64 (log1p.f64 (*.f64 b (*.f64 a a))))
(*.f64 b (*.f64 a a))
(*.f64 a (*.f64 a b))
(log1p.f64 (expm1.f64 (*.f64 b (*.f64 a a))))
(*.f64 b (*.f64 a a))
(*.f64 a (*.f64 a b))
(exp.f64 (log.f64 (*.f64 b (*.f64 a a))))
(*.f64 b (*.f64 a a))
(*.f64 a (*.f64 a b))
(-.f64 (+.f64 1 (*.f64 a (sqrt.f64 b))) 1)
(+.f64 1 (-.f64 (*.f64 a (sqrt.f64 b)) 1))
(+.f64 (*.f64 a (sqrt.f64 b)) 0)
(*.f64 a (sqrt.f64 b))
(pow.f64 (*.f64 a (sqrt.f64 b)) 1)
(+.f64 1 (-.f64 (*.f64 a (sqrt.f64 b)) 1))
(+.f64 (*.f64 a (sqrt.f64 b)) 0)
(*.f64 a (sqrt.f64 b))
(pow.f64 (*.f64 b (*.f64 a a)) 1/2)
(+.f64 1 (-.f64 (*.f64 a (sqrt.f64 b)) 1))
(+.f64 (*.f64 a (sqrt.f64 b)) 0)
(*.f64 a (sqrt.f64 b))
(pow.f64 (pow.f64 (*.f64 a (sqrt.f64 b)) 3) 1/3)
(+.f64 1 (-.f64 (*.f64 a (sqrt.f64 b)) 1))
(+.f64 (*.f64 a (sqrt.f64 b)) 0)
(*.f64 a (sqrt.f64 b))
(pow.f64 (cbrt.f64 (*.f64 a (sqrt.f64 b))) 3)
(+.f64 1 (-.f64 (*.f64 a (sqrt.f64 b)) 1))
(+.f64 (*.f64 a (sqrt.f64 b)) 0)
(*.f64 a (sqrt.f64 b))
(pow.f64 (sqrt.f64 (*.f64 a (sqrt.f64 b))) 2)
(+.f64 1 (-.f64 (*.f64 a (sqrt.f64 b)) 1))
(+.f64 (*.f64 a (sqrt.f64 b)) 0)
(*.f64 a (sqrt.f64 b))
(sqrt.f64 (*.f64 b (*.f64 a a)))
(+.f64 1 (-.f64 (*.f64 a (sqrt.f64 b)) 1))
(+.f64 (*.f64 a (sqrt.f64 b)) 0)
(*.f64 a (sqrt.f64 b))
(fabs.f64 (*.f64 a (sqrt.f64 b)))
(+.f64 1 (-.f64 (*.f64 a (sqrt.f64 b)) 1))
(+.f64 (*.f64 a (sqrt.f64 b)) 0)
(*.f64 a (sqrt.f64 b))
(log.f64 (pow.f64 (exp.f64 a) (sqrt.f64 b)))
(+.f64 1 (-.f64 (*.f64 a (sqrt.f64 b)) 1))
(+.f64 (*.f64 a (sqrt.f64 b)) 0)
(*.f64 a (sqrt.f64 b))
(cbrt.f64 (pow.f64 (*.f64 a (sqrt.f64 b)) 3))
(+.f64 1 (-.f64 (*.f64 a (sqrt.f64 b)) 1))
(+.f64 (*.f64 a (sqrt.f64 b)) 0)
(*.f64 a (sqrt.f64 b))
(cbrt.f64 (*.f64 (pow.f64 a 3) (pow.f64 b 3/2)))
(+.f64 1 (-.f64 (*.f64 a (sqrt.f64 b)) 1))
(+.f64 (*.f64 a (sqrt.f64 b)) 0)
(*.f64 a (sqrt.f64 b))
(cbrt.f64 (*.f64 (pow.f64 b 3/2) (pow.f64 a 3)))
(+.f64 1 (-.f64 (*.f64 a (sqrt.f64 b)) 1))
(+.f64 (*.f64 a (sqrt.f64 b)) 0)
(*.f64 a (sqrt.f64 b))
(expm1.f64 (log1p.f64 (*.f64 a (sqrt.f64 b))))
(+.f64 1 (-.f64 (*.f64 a (sqrt.f64 b)) 1))
(+.f64 (*.f64 a (sqrt.f64 b)) 0)
(*.f64 a (sqrt.f64 b))
(log1p.f64 (expm1.f64 (*.f64 a (sqrt.f64 b))))
(+.f64 1 (-.f64 (*.f64 a (sqrt.f64 b)) 1))
(+.f64 (*.f64 a (sqrt.f64 b)) 0)
(*.f64 a (sqrt.f64 b))
(exp.f64 (log.f64 (*.f64 a (sqrt.f64 b))))
(+.f64 1 (-.f64 (*.f64 a (sqrt.f64 b)) 1))
(+.f64 (*.f64 a (sqrt.f64 b)) 0)
(*.f64 a (sqrt.f64 b))

localize14.0ms (0.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(pow.f64 (*.f64 (*.f64 a a) b) 3)
3.6b
(*.f64 (cbrt.f64 (pow.f64 (*.f64 (*.f64 a a) b) 3)) (neg.f64 b))
11.0b
(*.f64 (*.f64 a a) b)
24.1b
(cbrt.f64 (pow.f64 (*.f64 (*.f64 a a) b) 3))
Compiler

Compiled 41 to 15 computations (63.4% saved)

series8.0ms (0.2%)

Counts
3 → 72
Calls

18 calls:

TimeVariablePointExpression
2.0ms
b
@-inf
(cbrt.f64 (pow.f64 (*.f64 (*.f64 a a) b) 3))
1.0ms
b
@0
(pow.f64 (*.f64 (*.f64 a a) b) 3)
1.0ms
b
@-inf
(pow.f64 (*.f64 (*.f64 a a) b) 3)
1.0ms
a
@0
(pow.f64 (*.f64 (*.f64 a a) b) 3)
0.0ms
b
@inf
(pow.f64 (*.f64 (*.f64 a a) b) 3)

rewrite48.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
761×pow1_binary64
712×add-log-exp_binary64
711×log1p-expm1-u_binary64
711×expm1-log1p-u_binary64
691×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01029
121624
2245724
Stop Event
node limit
Counts
3 → 74
Calls
Call 1
Inputs
(cbrt.f64 (pow.f64 (*.f64 (*.f64 a a) b) 3))
(*.f64 (cbrt.f64 (pow.f64 (*.f64 (*.f64 a a) b) 3)) (neg.f64 b))
(pow.f64 (*.f64 (*.f64 a a) b) 3)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 a (*.f64 a b))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 a (*.f64 a b))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 a a) b)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 b (*.f64 a a))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 a (*.f64 a b)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 a (*.f64 a b)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) (pow.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) (pow.f64 (pow.f64 (*.f64 a (*.f64 a b)) 2) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 2) (cbrt.f64 (*.f64 a (*.f64 a b))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 a) 2) (*.f64 (cbrt.f64 a) (*.f64 a b)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 a 4)) (*.f64 (pow.f64 (cbrt.f64 a) 2) b))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 b) 2) (*.f64 (cbrt.f64 b) (*.f64 a a)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 a (sqrt.f64 b)) (*.f64 a (sqrt.f64 b)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 a) (*.f64 (sqrt.f64 a) (*.f64 a b)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 b) (*.f64 (sqrt.f64 b) (*.f64 a a)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 a b) a)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (*.f64 a (*.f64 a b)) 2) 1/3) (cbrt.f64 (*.f64 a (*.f64 a b))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/3) (*.f64 a (*.f64 a b)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (*.f64 a (*.f64 a b)) 3/2) 1/3) (pow.f64 (pow.f64 (*.f64 a (*.f64 a b)) 3/2) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 a a) (pow.f64 (cbrt.f64 b) 2)) (cbrt.f64 b))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 a a) (sqrt.f64 b)) (sqrt.f64 b))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 b (cbrt.f64 (pow.f64 a 4))) (pow.f64 (cbrt.f64 a) 2))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 a (*.f64 a b)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 a (*.f64 a b)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 a (sqrt.f64 b)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 a (*.f64 a b)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 a) (*.f64 a b)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 a (*.f64 a b))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 a (*.f64 a b))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 a (*.f64 a b))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (pow.f64 (*.f64 a b) 2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (*.f64 a b) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 a b) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 2)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 a b) 2)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (pow.f64 (*.f64 a b) 2))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (*.f64 a b) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 a (*.f64 a b)) 3) (pow.f64 b 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 b 3) (pow.f64 (*.f64 a (*.f64 a b)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (*.f64 a b) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (*.f64 a b) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (pow.f64 (*.f64 a b) 2)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (*.f64 a (*.f64 a b)) 3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 a (*.f64 (*.f64 a b) (pow.f64 (*.f64 a (*.f64 a b)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 a a) (*.f64 b (pow.f64 (*.f64 a (*.f64 a b)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 b (*.f64 (*.f64 a a) (pow.f64 (*.f64 a (*.f64 a b)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 a (*.f64 a b)) (pow.f64 (*.f64 a (*.f64 a b)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 a (*.f64 a b)) 3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (*.f64 a (*.f64 a b)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 a (*.f64 a b)) 2) (*.f64 a (*.f64 a b)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 a 3) (pow.f64 (*.f64 a b) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 2) (*.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) (pow.f64 (*.f64 a (*.f64 a b)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 a (sqrt.f64 b)) (*.f64 (*.f64 a (sqrt.f64 b)) (pow.f64 (*.f64 a (*.f64 a b)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 a 6) (pow.f64 b 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 b 3) (pow.f64 a 6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 a (*.f64 a b)) 3/2) (pow.f64 (*.f64 a (*.f64 a b)) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 2) 3) (*.f64 a (*.f64 a b)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 a (sqrt.f64 b)) 3) (pow.f64 (*.f64 a (sqrt.f64 b)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (*.f64 a (*.f64 a b)) 2) a) (*.f64 a b))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (*.f64 a (*.f64 a b)) 2) (*.f64 a a)) b)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (*.f64 a (*.f64 a b)) 2) b) (*.f64 a a))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (*.f64 a (*.f64 a b)) 2) 1) (*.f64 a (*.f64 a b)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (*.f64 a (*.f64 a b)) 2) (pow.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 2)) (cbrt.f64 (*.f64 a (*.f64 a b))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (*.f64 a (*.f64 a b)) 2) (*.f64 a (sqrt.f64 b))) (*.f64 a (sqrt.f64 b)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 a (*.f64 a b)) 6))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (pow.f64 a 6)) (pow.f64 b 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (*.f64 a (*.f64 a b)) 3) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (*.f64 a (*.f64 a b)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (*.f64 a (*.f64 a b)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 3 (log.f64 (*.f64 a (*.f64 a b)))))))))

simplify61.0ms (1.8%)

Algorithm
egg-herbie
Rules
790×log-prod_binary64
693×cube-prod_binary64
635×fabs-mul_binary64
579×fma-neg_binary64
373×fma-def_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01651446
14091277
216551238
344331238
Stop Event
node limit
Counts
146 → 89
Calls
Call 1
Inputs
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 -1 (*.f64 (pow.f64 a 2) (*.f64 (cbrt.f64 -1) b)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (*.f64 (cbrt.f64 -1) b)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (*.f64 (cbrt.f64 -1) b)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (*.f64 (cbrt.f64 -1) b)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (pow.f64 a 2) (*.f64 (cbrt.f64 -1) (pow.f64 b 2)))
(*.f64 (pow.f64 a 2) (*.f64 (cbrt.f64 -1) (pow.f64 b 2)))
(*.f64 (pow.f64 a 2) (*.f64 (cbrt.f64 -1) (pow.f64 b 2)))
(*.f64 (pow.f64 a 2) (*.f64 (cbrt.f64 -1) (pow.f64 b 2)))
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(-.f64 (+.f64 1 (*.f64 a (*.f64 a b))) 1)
(*.f64 a (*.f64 a b))
(*.f64 (*.f64 a a) b)
(*.f64 b (*.f64 a a))
(*.f64 (*.f64 a (*.f64 a b)) 1)
(*.f64 1 (*.f64 a (*.f64 a b)))
(*.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) (pow.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 2))
(*.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) (pow.f64 (pow.f64 (*.f64 a (*.f64 a b)) 2) 1/3))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 2) (cbrt.f64 (*.f64 a (*.f64 a b))))
(*.f64 (pow.f64 (cbrt.f64 a) 2) (*.f64 (cbrt.f64 a) (*.f64 a b)))
(*.f64 (cbrt.f64 (pow.f64 a 4)) (*.f64 (pow.f64 (cbrt.f64 a) 2) b))
(*.f64 (pow.f64 (cbrt.f64 b) 2) (*.f64 (cbrt.f64 b) (*.f64 a a)))
(*.f64 (*.f64 a (sqrt.f64 b)) (*.f64 a (sqrt.f64 b)))
(*.f64 (sqrt.f64 a) (*.f64 (sqrt.f64 a) (*.f64 a b)))
(*.f64 (sqrt.f64 b) (*.f64 (sqrt.f64 b) (*.f64 a a)))
(*.f64 (*.f64 a b) a)
(*.f64 (pow.f64 (pow.f64 (*.f64 a (*.f64 a b)) 2) 1/3) (cbrt.f64 (*.f64 a (*.f64 a b))))
(*.f64 (pow.f64 1 1/3) (*.f64 a (*.f64 a b)))
(*.f64 (pow.f64 (pow.f64 (*.f64 a (*.f64 a b)) 3/2) 1/3) (pow.f64 (pow.f64 (*.f64 a (*.f64 a b)) 3/2) 1/3))
(*.f64 (*.f64 (*.f64 a a) (pow.f64 (cbrt.f64 b) 2)) (cbrt.f64 b))
(*.f64 (*.f64 (*.f64 a a) (sqrt.f64 b)) (sqrt.f64 b))
(*.f64 (*.f64 b (cbrt.f64 (pow.f64 a 4))) (pow.f64 (cbrt.f64 a) 2))
(pow.f64 (*.f64 a (*.f64 a b)) 1)
(pow.f64 (pow.f64 (*.f64 a (*.f64 a b)) 3) 1/3)
(pow.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 3)
(pow.f64 (*.f64 a (sqrt.f64 b)) 2)
(sqrt.f64 (pow.f64 (*.f64 a (*.f64 a b)) 2))
(log.f64 (pow.f64 (exp.f64 a) (*.f64 a b)))
(expm1.f64 (log1p.f64 (*.f64 a (*.f64 a b))))
(log1p.f64 (expm1.f64 (*.f64 a (*.f64 a b))))
(exp.f64 (log.f64 (*.f64 a (*.f64 a b))))
(-.f64 0 (pow.f64 (*.f64 a b) 2))
(-.f64 (+.f64 1 (pow.f64 (*.f64 a b) 2)) 1)
(pow.f64 (pow.f64 (*.f64 a b) 2) 1)
(pow.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 3) 1/3)
(pow.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 2)) 3)
(pow.f64 (*.f64 a b) 2)
(neg.f64 (pow.f64 (*.f64 a b) 2))
(sqrt.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 2))
(log.f64 (exp.f64 (pow.f64 (*.f64 a b) 2)))
(cbrt.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 3))
(cbrt.f64 (*.f64 (pow.f64 (*.f64 a (*.f64 a b)) 3) (pow.f64 b 3)))
(cbrt.f64 (*.f64 (pow.f64 b 3) (pow.f64 (*.f64 a (*.f64 a b)) 3)))
(expm1.f64 (log1p.f64 (pow.f64 (*.f64 a b) 2)))
(log1p.f64 (expm1.f64 (pow.f64 (*.f64 a b) 2)))
(exp.f64 (log.f64 (pow.f64 (*.f64 a b) 2)))
(-.f64 (+.f64 1 (pow.f64 (*.f64 a (*.f64 a b)) 3)) 1)
(*.f64 a (*.f64 (*.f64 a b) (pow.f64 (*.f64 a (*.f64 a b)) 2)))
(*.f64 (*.f64 a a) (*.f64 b (pow.f64 (*.f64 a (*.f64 a b)) 2)))
(*.f64 b (*.f64 (*.f64 a a) (pow.f64 (*.f64 a (*.f64 a b)) 2)))
(*.f64 (*.f64 a (*.f64 a b)) (pow.f64 (*.f64 a (*.f64 a b)) 2))
(*.f64 (pow.f64 (*.f64 a (*.f64 a b)) 3) 1)
(*.f64 1 (pow.f64 (*.f64 a (*.f64 a b)) 3))
(*.f64 (pow.f64 (*.f64 a (*.f64 a b)) 2) (*.f64 a (*.f64 a b)))
(*.f64 (pow.f64 a 3) (pow.f64 (*.f64 a b) 3))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 2) (*.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) (pow.f64 (*.f64 a (*.f64 a b)) 2)))
(*.f64 (*.f64 a (sqrt.f64 b)) (*.f64 (*.f64 a (sqrt.f64 b)) (pow.f64 (*.f64 a (*.f64 a b)) 2)))
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(*.f64 (pow.f64 b 3) (pow.f64 a 6))
(*.f64 (pow.f64 (*.f64 a (*.f64 a b)) 3/2) (pow.f64 (*.f64 a (*.f64 a b)) 3/2))
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 2) 3) (*.f64 a (*.f64 a b)))
(*.f64 (pow.f64 (*.f64 a (sqrt.f64 b)) 3) (pow.f64 (*.f64 a (sqrt.f64 b)) 3))
(*.f64 (*.f64 (pow.f64 (*.f64 a (*.f64 a b)) 2) a) (*.f64 a b))
(*.f64 (*.f64 (pow.f64 (*.f64 a (*.f64 a b)) 2) (*.f64 a a)) b)
(*.f64 (*.f64 (pow.f64 (*.f64 a (*.f64 a b)) 2) b) (*.f64 a a))
(*.f64 (*.f64 (pow.f64 (*.f64 a (*.f64 a b)) 2) 1) (*.f64 a (*.f64 a b)))
(*.f64 (*.f64 (pow.f64 (*.f64 a (*.f64 a b)) 2) (pow.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 2)) (cbrt.f64 (*.f64 a (*.f64 a b))))
(*.f64 (*.f64 (pow.f64 (*.f64 a (*.f64 a b)) 2) (*.f64 a (sqrt.f64 b))) (*.f64 a (sqrt.f64 b)))
(sqrt.f64 (pow.f64 (*.f64 a (*.f64 a b)) 6))
(log.f64 (pow.f64 (exp.f64 (pow.f64 a 6)) (pow.f64 b 3)))
(cbrt.f64 (pow.f64 (pow.f64 (*.f64 a (*.f64 a b)) 3) 3))
(expm1.f64 (log1p.f64 (pow.f64 (*.f64 a (*.f64 a b)) 3)))
(log1p.f64 (expm1.f64 (pow.f64 (*.f64 a (*.f64 a b)) 3)))
(exp.f64 (*.f64 3 (log.f64 (*.f64 a (*.f64 a b)))))
Outputs
(*.f64 (pow.f64 a 2) b)
(*.f64 a (*.f64 a b))
(*.f64 b (*.f64 a a))
(*.f64 (pow.f64 a 2) b)
(*.f64 a (*.f64 a b))
(*.f64 b (*.f64 a a))
(*.f64 (pow.f64 a 2) b)
(*.f64 a (*.f64 a b))
(*.f64 b (*.f64 a a))
(*.f64 (pow.f64 a 2) b)
(*.f64 a (*.f64 a b))
(*.f64 b (*.f64 a a))
(*.f64 (pow.f64 a 2) b)
(*.f64 a (*.f64 a b))
(*.f64 b (*.f64 a a))
(*.f64 (pow.f64 a 2) b)
(*.f64 a (*.f64 a b))
(*.f64 b (*.f64 a a))
(*.f64 (pow.f64 a 2) b)
(*.f64 a (*.f64 a b))
(*.f64 b (*.f64 a a))
(*.f64 (pow.f64 a 2) b)
(*.f64 a (*.f64 a b))
(*.f64 b (*.f64 a a))
(*.f64 (pow.f64 a 2) b)
(*.f64 a (*.f64 a b))
(*.f64 b (*.f64 a a))
(*.f64 (pow.f64 a 2) b)
(*.f64 a (*.f64 a b))
(*.f64 b (*.f64 a a))
(*.f64 (pow.f64 a 2) b)
(*.f64 a (*.f64 a b))
(*.f64 b (*.f64 a a))
(*.f64 (pow.f64 a 2) b)
(*.f64 a (*.f64 a b))
(*.f64 b (*.f64 a a))
(*.f64 (pow.f64 a 2) b)
(*.f64 a (*.f64 a b))
(*.f64 b (*.f64 a a))
(*.f64 (pow.f64 a 2) b)
(*.f64 a (*.f64 a b))
(*.f64 b (*.f64 a a))
(*.f64 (pow.f64 a 2) b)
(*.f64 a (*.f64 a b))
(*.f64 b (*.f64 a a))
(*.f64 (pow.f64 a 2) b)
(*.f64 a (*.f64 a b))
(*.f64 b (*.f64 a a))
(*.f64 (pow.f64 a 2) b)
(*.f64 a (*.f64 a b))
(*.f64 b (*.f64 a a))
(*.f64 (pow.f64 a 2) b)
(*.f64 a (*.f64 a b))
(*.f64 b (*.f64 a a))
(*.f64 (pow.f64 a 2) b)
(*.f64 a (*.f64 a b))
(*.f64 b (*.f64 a a))
(*.f64 (pow.f64 a 2) b)
(*.f64 a (*.f64 a b))
(*.f64 b (*.f64 a a))
(*.f64 -1 (*.f64 (pow.f64 a 2) (*.f64 (cbrt.f64 -1) b)))
(neg.f64 (*.f64 (*.f64 b (cbrt.f64 -1)) (*.f64 a a)))
(*.f64 (*.f64 b (cbrt.f64 -1)) (neg.f64 (*.f64 a a)))
(*.f64 b (*.f64 a (neg.f64 (*.f64 a (cbrt.f64 -1)))))
(*.f64 -1 (*.f64 (pow.f64 a 2) (*.f64 (cbrt.f64 -1) b)))
(neg.f64 (*.f64 (*.f64 b (cbrt.f64 -1)) (*.f64 a a)))
(*.f64 (*.f64 b (cbrt.f64 -1)) (neg.f64 (*.f64 a a)))
(*.f64 b (*.f64 a (neg.f64 (*.f64 a (cbrt.f64 -1)))))
(*.f64 -1 (*.f64 (pow.f64 a 2) (*.f64 (cbrt.f64 -1) b)))
(neg.f64 (*.f64 (*.f64 b (cbrt.f64 -1)) (*.f64 a a)))
(*.f64 (*.f64 b (cbrt.f64 -1)) (neg.f64 (*.f64 a a)))
(*.f64 b (*.f64 a (neg.f64 (*.f64 a (cbrt.f64 -1)))))
(*.f64 -1 (*.f64 (pow.f64 a 2) (*.f64 (cbrt.f64 -1) b)))
(neg.f64 (*.f64 (*.f64 b (cbrt.f64 -1)) (*.f64 a a)))
(*.f64 (*.f64 b (cbrt.f64 -1)) (neg.f64 (*.f64 a a)))
(*.f64 b (*.f64 a (neg.f64 (*.f64 a (cbrt.f64 -1)))))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 (pow.f64 a 2) (*.f64 (cbrt.f64 -1) (pow.f64 b 2)))
(*.f64 (*.f64 (cbrt.f64 -1) (*.f64 b b)) (*.f64 a a))
(*.f64 (cbrt.f64 -1) (pow.f64 (*.f64 a b) 2))
(*.f64 (pow.f64 a 2) (*.f64 (cbrt.f64 -1) (pow.f64 b 2)))
(*.f64 (*.f64 (cbrt.f64 -1) (*.f64 b b)) (*.f64 a a))
(*.f64 (cbrt.f64 -1) (pow.f64 (*.f64 a b) 2))
(*.f64 (pow.f64 a 2) (*.f64 (cbrt.f64 -1) (pow.f64 b 2)))
(*.f64 (*.f64 (cbrt.f64 -1) (*.f64 b b)) (*.f64 a a))
(*.f64 (cbrt.f64 -1) (pow.f64 (*.f64 a b) 2))
(*.f64 (pow.f64 a 2) (*.f64 (cbrt.f64 -1) (pow.f64 b 2)))
(*.f64 (*.f64 (cbrt.f64 -1) (*.f64 b b)) (*.f64 a a))
(*.f64 (cbrt.f64 -1) (pow.f64 (*.f64 a b) 2))
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(pow.f64 (*.f64 a (sqrt.f64 b)) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(pow.f64 (*.f64 a (sqrt.f64 b)) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(pow.f64 (*.f64 a (sqrt.f64 b)) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(pow.f64 (*.f64 a (sqrt.f64 b)) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(pow.f64 (*.f64 a (sqrt.f64 b)) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(pow.f64 (*.f64 a (sqrt.f64 b)) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(pow.f64 (*.f64 a (sqrt.f64 b)) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(pow.f64 (*.f64 a (sqrt.f64 b)) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(pow.f64 (*.f64 a (sqrt.f64 b)) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(pow.f64 (*.f64 a (sqrt.f64 b)) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(pow.f64 (*.f64 a (sqrt.f64 b)) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(pow.f64 (*.f64 a (sqrt.f64 b)) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(pow.f64 (*.f64 a (sqrt.f64 b)) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(pow.f64 (*.f64 a (sqrt.f64 b)) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(pow.f64 (*.f64 a (sqrt.f64 b)) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(pow.f64 (*.f64 a (sqrt.f64 b)) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(pow.f64 (*.f64 a (sqrt.f64 b)) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(pow.f64 (*.f64 a (sqrt.f64 b)) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(pow.f64 (*.f64 a (sqrt.f64 b)) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(pow.f64 (*.f64 a (sqrt.f64 b)) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(pow.f64 (*.f64 a (sqrt.f64 b)) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(pow.f64 (*.f64 a (sqrt.f64 b)) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(pow.f64 (*.f64 a (sqrt.f64 b)) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(pow.f64 (*.f64 a (sqrt.f64 b)) 6)
(-.f64 (+.f64 1 (*.f64 a (*.f64 a b))) 1)
(*.f64 a (*.f64 a b))
(*.f64 b (*.f64 a a))
(*.f64 a (*.f64 a b))
(*.f64 b (*.f64 a a))
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 b (*.f64 a a))
(*.f64 b (*.f64 a a))
(*.f64 a (*.f64 a b))
(*.f64 (*.f64 a (*.f64 a b)) 1)
(*.f64 a (*.f64 a b))
(*.f64 b (*.f64 a a))
(*.f64 1 (*.f64 a (*.f64 a b)))
(*.f64 a (*.f64 a b))
(*.f64 b (*.f64 a a))
(*.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) (pow.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 2))
(*.f64 a (*.f64 a b))
(*.f64 b (*.f64 a a))
(*.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) (pow.f64 (pow.f64 (*.f64 a (*.f64 a b)) 2) 1/3))
(*.f64 a (*.f64 a b))
(*.f64 b (*.f64 a a))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 2) (cbrt.f64 (*.f64 a (*.f64 a b))))
(*.f64 a (*.f64 a b))
(*.f64 b (*.f64 a a))
(*.f64 (pow.f64 (cbrt.f64 a) 2) (*.f64 (cbrt.f64 a) (*.f64 a b)))
(*.f64 a (*.f64 a b))
(*.f64 b (*.f64 a a))
(*.f64 (cbrt.f64 (pow.f64 a 4)) (*.f64 (pow.f64 (cbrt.f64 a) 2) b))
(*.f64 (cbrt.f64 (pow.f64 a 4)) (*.f64 b (pow.f64 (cbrt.f64 a) 2)))
(*.f64 b (*.f64 (pow.f64 (cbrt.f64 a) 2) (cbrt.f64 (pow.f64 a 4))))
(*.f64 (pow.f64 (cbrt.f64 b) 2) (*.f64 (cbrt.f64 b) (*.f64 a a)))
(*.f64 a (*.f64 a b))
(*.f64 b (*.f64 a a))
(*.f64 (*.f64 a (sqrt.f64 b)) (*.f64 a (sqrt.f64 b)))
(*.f64 a (*.f64 a b))
(*.f64 b (*.f64 a a))
(*.f64 (sqrt.f64 a) (*.f64 (sqrt.f64 a) (*.f64 a b)))
(*.f64 a (*.f64 a b))
(*.f64 b (*.f64 a a))
(*.f64 (sqrt.f64 b) (*.f64 (sqrt.f64 b) (*.f64 a a)))
(*.f64 a (*.f64 a b))
(*.f64 b (*.f64 a a))
(*.f64 (*.f64 a b) a)
(*.f64 a (*.f64 a b))
(*.f64 b (*.f64 a a))
(*.f64 (pow.f64 (pow.f64 (*.f64 a (*.f64 a b)) 2) 1/3) (cbrt.f64 (*.f64 a (*.f64 a b))))
(*.f64 a (*.f64 a b))
(*.f64 b (*.f64 a a))
(*.f64 (pow.f64 1 1/3) (*.f64 a (*.f64 a b)))
(*.f64 a (*.f64 a b))
(*.f64 b (*.f64 a a))
(*.f64 (pow.f64 (pow.f64 (*.f64 a (*.f64 a b)) 3/2) 1/3) (pow.f64 (pow.f64 (*.f64 a (*.f64 a b)) 3/2) 1/3))
(*.f64 a (*.f64 a b))
(*.f64 b (*.f64 a a))
(*.f64 (*.f64 (*.f64 a a) (pow.f64 (cbrt.f64 b) 2)) (cbrt.f64 b))
(*.f64 a (*.f64 a b))
(*.f64 b (*.f64 a a))
(*.f64 (*.f64 (*.f64 a a) (sqrt.f64 b)) (sqrt.f64 b))
(*.f64 a (*.f64 a b))
(*.f64 b (*.f64 a a))
(*.f64 (*.f64 b (cbrt.f64 (pow.f64 a 4))) (pow.f64 (cbrt.f64 a) 2))
(*.f64 (cbrt.f64 (pow.f64 a 4)) (*.f64 b (pow.f64 (cbrt.f64 a) 2)))
(*.f64 b (*.f64 (pow.f64 (cbrt.f64 a) 2) (cbrt.f64 (pow.f64 a 4))))
(pow.f64 (*.f64 a (*.f64 a b)) 1)
(*.f64 a (*.f64 a b))
(*.f64 b (*.f64 a a))
(pow.f64 (pow.f64 (*.f64 a (*.f64 a b)) 3) 1/3)
(*.f64 a (*.f64 a b))
(*.f64 b (*.f64 a a))
(pow.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 3)
(*.f64 a (*.f64 a b))
(*.f64 b (*.f64 a a))
(pow.f64 (*.f64 a (sqrt.f64 b)) 2)
(*.f64 a (*.f64 a b))
(*.f64 b (*.f64 a a))
(sqrt.f64 (pow.f64 (*.f64 a (*.f64 a b)) 2))
(*.f64 a (*.f64 a b))
(*.f64 b (*.f64 a a))
(log.f64 (pow.f64 (exp.f64 a) (*.f64 a b)))
(*.f64 a (*.f64 a b))
(*.f64 b (*.f64 a a))
(expm1.f64 (log1p.f64 (*.f64 a (*.f64 a b))))
(*.f64 a (*.f64 a b))
(*.f64 b (*.f64 a a))
(log1p.f64 (expm1.f64 (*.f64 a (*.f64 a b))))
(*.f64 a (*.f64 a b))
(*.f64 b (*.f64 a a))
(exp.f64 (log.f64 (*.f64 a (*.f64 a b))))
(*.f64 a (*.f64 a b))
(*.f64 b (*.f64 a a))
(-.f64 0 (pow.f64 (*.f64 a b) 2))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(-.f64 (+.f64 1 (pow.f64 (*.f64 a b) 2)) 1)
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(pow.f64 (pow.f64 (*.f64 a b) 2) 1)
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(pow.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 3) 1/3)
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(pow.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 2)) 3)
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(pow.f64 (*.f64 a b) 2)
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(neg.f64 (pow.f64 (*.f64 a b) 2))
(neg.f64 (*.f64 (*.f64 b b) (*.f64 a a)))
(sqrt.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 2))
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(log.f64 (exp.f64 (pow.f64 (*.f64 a b) 2)))
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(cbrt.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 3))
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(cbrt.f64 (*.f64 (pow.f64 (*.f64 a (*.f64 a b)) 3) (pow.f64 b 3)))
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(cbrt.f64 (*.f64 (pow.f64 b 3) (pow.f64 (*.f64 a (*.f64 a b)) 3)))
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(expm1.f64 (log1p.f64 (pow.f64 (*.f64 a b) 2)))
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(log1p.f64 (expm1.f64 (pow.f64 (*.f64 a b) 2)))
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(exp.f64 (log.f64 (pow.f64 (*.f64 a b) 2)))
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(-.f64 (+.f64 1 (pow.f64 (*.f64 a (*.f64 a b)) 3)) 1)
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(pow.f64 (*.f64 a (sqrt.f64 b)) 6)
(*.f64 a (*.f64 (*.f64 a b) (pow.f64 (*.f64 a (*.f64 a b)) 2)))
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(pow.f64 (*.f64 a (sqrt.f64 b)) 6)
(*.f64 (*.f64 a a) (*.f64 b (pow.f64 (*.f64 a (*.f64 a b)) 2)))
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(pow.f64 (*.f64 a (sqrt.f64 b)) 6)
(*.f64 b (*.f64 (*.f64 a a) (pow.f64 (*.f64 a (*.f64 a b)) 2)))
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(pow.f64 (*.f64 a (sqrt.f64 b)) 6)
(*.f64 (*.f64 a (*.f64 a b)) (pow.f64 (*.f64 a (*.f64 a b)) 2))
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(pow.f64 (*.f64 a (sqrt.f64 b)) 6)
(*.f64 (pow.f64 (*.f64 a (*.f64 a b)) 3) 1)
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(pow.f64 (*.f64 a (sqrt.f64 b)) 6)
(*.f64 1 (pow.f64 (*.f64 a (*.f64 a b)) 3))
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(pow.f64 (*.f64 a (sqrt.f64 b)) 6)
(*.f64 (pow.f64 (*.f64 a (*.f64 a b)) 2) (*.f64 a (*.f64 a b)))
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(pow.f64 (*.f64 a (sqrt.f64 b)) 6)
(*.f64 (pow.f64 a 3) (pow.f64 (*.f64 a b) 3))
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(pow.f64 (*.f64 a (sqrt.f64 b)) 6)
(*.f64 (pow.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 2) (*.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) (pow.f64 (*.f64 a (*.f64 a b)) 2)))
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(pow.f64 (*.f64 a (sqrt.f64 b)) 6)
(*.f64 (*.f64 a (sqrt.f64 b)) (*.f64 (*.f64 a (sqrt.f64 b)) (pow.f64 (*.f64 a (*.f64 a b)) 2)))
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(pow.f64 (*.f64 a (sqrt.f64 b)) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(pow.f64 (*.f64 a (sqrt.f64 b)) 6)
(*.f64 (pow.f64 b 3) (pow.f64 a 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(pow.f64 (*.f64 a (sqrt.f64 b)) 6)
(*.f64 (pow.f64 (*.f64 a (*.f64 a b)) 3/2) (pow.f64 (*.f64 a (*.f64 a b)) 3/2))
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(pow.f64 (*.f64 a (sqrt.f64 b)) 6)
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 2) 3) (*.f64 a (*.f64 a b)))
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(pow.f64 (*.f64 a (sqrt.f64 b)) 6)
(*.f64 (pow.f64 (*.f64 a (sqrt.f64 b)) 3) (pow.f64 (*.f64 a (sqrt.f64 b)) 3))
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(pow.f64 (*.f64 a (sqrt.f64 b)) 6)
(*.f64 (*.f64 (pow.f64 (*.f64 a (*.f64 a b)) 2) a) (*.f64 a b))
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(pow.f64 (*.f64 a (sqrt.f64 b)) 6)
(*.f64 (*.f64 (pow.f64 (*.f64 a (*.f64 a b)) 2) (*.f64 a a)) b)
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(pow.f64 (*.f64 a (sqrt.f64 b)) 6)
(*.f64 (*.f64 (pow.f64 (*.f64 a (*.f64 a b)) 2) b) (*.f64 a a))
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(pow.f64 (*.f64 a (sqrt.f64 b)) 6)
(*.f64 (*.f64 (pow.f64 (*.f64 a (*.f64 a b)) 2) 1) (*.f64 a (*.f64 a b)))
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(pow.f64 (*.f64 a (sqrt.f64 b)) 6)
(*.f64 (*.f64 (pow.f64 (*.f64 a (*.f64 a b)) 2) (pow.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 2)) (cbrt.f64 (*.f64 a (*.f64 a b))))
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(pow.f64 (*.f64 a (sqrt.f64 b)) 6)
(*.f64 (*.f64 (pow.f64 (*.f64 a (*.f64 a b)) 2) (*.f64 a (sqrt.f64 b))) (*.f64 a (sqrt.f64 b)))
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(pow.f64 (*.f64 a (sqrt.f64 b)) 6)
(sqrt.f64 (pow.f64 (*.f64 a (*.f64 a b)) 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(pow.f64 (*.f64 a (sqrt.f64 b)) 6)
(log.f64 (pow.f64 (exp.f64 (pow.f64 a 6)) (pow.f64 b 3)))
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(pow.f64 (*.f64 a (sqrt.f64 b)) 6)
(cbrt.f64 (pow.f64 (pow.f64 (*.f64 a (*.f64 a b)) 3) 3))
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(pow.f64 (*.f64 a (sqrt.f64 b)) 6)
(expm1.f64 (log1p.f64 (pow.f64 (*.f64 a (*.f64 a b)) 3)))
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(pow.f64 (*.f64 a (sqrt.f64 b)) 6)
(log1p.f64 (expm1.f64 (pow.f64 (*.f64 a (*.f64 a b)) 3)))
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(pow.f64 (*.f64 a (sqrt.f64 b)) 6)
(exp.f64 (*.f64 3 (log.f64 (*.f64 a (*.f64 a b)))))
(*.f64 (pow.f64 a 6) (pow.f64 b 3))
(pow.f64 (*.f64 a (sqrt.f64 b)) 6)

eval46.0ms (1.4%)

Compiler

Compiled 2763 to 1134 computations (59% saved)

prune38.0ms (1.1%)

Pruning

18 alts after pruning (11 fresh and 7 done)

PrunedKeptTotal
New24010250
Fresh011
Picked101
Done178
Total24218260
Error
0.0b
Counts
260 → 18
Alt Table
Click to see full alt table
StatusErrorProgram
15.6b
(*.f64 (pow.f64 (*.f64 a (sqrt.f64 b)) 2) (neg.f64 b))
15.6b
(*.f64 (pow.f64 (cbrt.f64 (*.f64 (*.f64 a a) b)) 3) (neg.f64 b))
4.3b
(*.f64 (*.f64 (pow.f64 (cbrt.f64 a) 2) (*.f64 (cbrt.f64 a) (*.f64 a b))) (neg.f64 b))
44.9b
(*.f64 (*.f64 (*.f64 (*.f64 a (sqrt.f64 b)) (sqrt.f64 (*.f64 a (sqrt.f64 b)))) (sqrt.f64 (*.f64 a (sqrt.f64 b)))) (neg.f64 b))
21.7b
(*.f64 (*.f64 (*.f64 (*.f64 a (sqrt.f64 b)) a) (sqrt.f64 b)) (neg.f64 b))
15.3b
(*.f64 (*.f64 (*.f64 a a) b) (neg.f64 b))
47.9b
(*.f64 (*.f64 (sqrt.f64 a) (*.f64 (sqrt.f64 a) (*.f64 a b))) (neg.f64 b))
3.7b
(*.f64 (*.f64 a (*.f64 a b)) (neg.f64 b))
37.6b
(*.f64 (*.f64 a a) (*.f64 b b))
20.6b
(*.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
25.1b
(*.f64 (cbrt.f64 (pow.f64 (*.f64 a (*.f64 a b)) 3)) (neg.f64 b))
16.8b
(*.f64 a (*.f64 (*.f64 b b) (neg.f64 a)))
4.0b
(*.f64 a (*.f64 (*.f64 a (neg.f64 b)) b))
37.5b
(*.f64 a (*.f64 a (*.f64 b b)))
0.8b
(neg.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) (*.f64 (cbrt.f64 (*.f64 b a)) (*.f64 b a))))
27.4b
(neg.f64 (*.f64 (*.f64 (*.f64 b a) (sqrt.f64 (*.f64 b a))) (sqrt.f64 (*.f64 b a))))
0.3b
(neg.f64 (*.f64 (*.f64 b a) (*.f64 b a)))
24.3b
(neg.f64 (cbrt.f64 (pow.f64 (pow.f64 (*.f64 b a) 2) 3)))
Compiler

Compiled 380 to 219 computations (42.4% saved)

localize7.0ms (0.2%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.3b
(*.f64 (*.f64 b a) (*.f64 b a))
Compiler

Compiled 22 to 5 computations (77.3% saved)

series1.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

rewrite34.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
485×pow1_binary64
460×add-sqr-sqrt_binary64
454×*-un-lft-identity_binary64
447×add-log-exp_binary64
447×log1p-expm1-u_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
057
11037
212757
Stop Event
node limit
Counts
1 → 11
Calls
Call 1
Inputs
(*.f64 (*.f64 b a) (*.f64 b a))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (*.f64 b a) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 b a) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 b a) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (pow.f64 (*.f64 b a) 2) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 b a) 4))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (*.f64 b a) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (*.f64 b a) 2) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (*.f64 b a) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (*.f64 b a) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 b a)) 2))))))

simplify46.0ms (1.4%)

Algorithm
egg-herbie
Rules
470×exp-prod_binary64
460×fma-neg_binary64
312×log-prod_binary64
295×*-commutative_binary64
292×cube-prod_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
033350
185245
2247245
31315245
43465245
56120245
Stop Event
node limit
Counts
35 → 14
Calls
Call 1
Inputs
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(-.f64 (+.f64 1 (pow.f64 (*.f64 b a) 2)) 1)
(pow.f64 (*.f64 b a) 2)
(pow.f64 (pow.f64 (*.f64 b a) 2) 1)
(pow.f64 (pow.f64 (pow.f64 (*.f64 b a) 2) 3) 1/3)
(pow.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 3)
(sqrt.f64 (pow.f64 (*.f64 b a) 4))
(log.f64 (exp.f64 (pow.f64 (*.f64 b a) 2)))
(cbrt.f64 (pow.f64 (pow.f64 (*.f64 b a) 2) 3))
(expm1.f64 (log1p.f64 (pow.f64 (*.f64 b a) 2)))
(log1p.f64 (expm1.f64 (pow.f64 (*.f64 b a) 2)))
(exp.f64 (*.f64 (log.f64 (*.f64 b a)) 2))
Outputs
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(-.f64 (+.f64 1 (pow.f64 (*.f64 b a) 2)) 1)
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(pow.f64 (*.f64 b a) 2)
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(pow.f64 (pow.f64 (*.f64 b a) 2) 1)
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(pow.f64 (pow.f64 (pow.f64 (*.f64 b a) 2) 3) 1/3)
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(pow.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 3)
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(sqrt.f64 (pow.f64 (*.f64 b a) 4))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(log.f64 (exp.f64 (pow.f64 (*.f64 b a) 2)))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(cbrt.f64 (pow.f64 (pow.f64 (*.f64 b a) 2) 3))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(expm1.f64 (log1p.f64 (pow.f64 (*.f64 b a) 2)))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(log1p.f64 (expm1.f64 (pow.f64 (*.f64 b a) 2)))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(exp.f64 (*.f64 (log.f64 (*.f64 b a)) 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)

localize6.0ms (0.2%)

Local error

Found 1 expressions with local error:

NewErrorProgram
20.0b
(*.f64 (*.f64 a a) (*.f64 b b))
Compiler

Compiled 17 to 5 computations (70.6% saved)

series1.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

rewrite36.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
549×pow1_binary64
517×add-sqr-sqrt_binary64
505×add-log-exp_binary64
505×log1p-expm1-u_binary64
505×expm1-log1p-u_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0610
11237
215067
Stop Event
node limit
Counts
1 → 11
Calls
Call 1
Inputs
(*.f64 (*.f64 a a) (*.f64 b b))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (*.f64 a b) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 a b) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 2)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 a b) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 a 4) (pow.f64 b 4)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (*.f64 a b) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (*.f64 a b) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (*.f64 a b) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (pow.f64 (*.f64 a b) 2)))))))

simplify40.0ms (1.2%)

Algorithm
egg-herbie
Rules
1243×log-prod_binary64
438×associate-*l*_binary64
390×associate-*r*_binary64
318×unswap-sqr_binary64
300×fma-neg_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
033350
179245
2312245
32682245
47055245
Stop Event
node limit
Counts
35 → 13
Calls
Call 1
Inputs
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(-.f64 (+.f64 1 (pow.f64 (*.f64 a b) 2)) 1)
(pow.f64 (pow.f64 (*.f64 a b) 2) 1)
(pow.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 3) 1/3)
(pow.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 2)) 3)
(pow.f64 (*.f64 a b) 2)
(sqrt.f64 (*.f64 (pow.f64 a 4) (pow.f64 b 4)))
(log.f64 (exp.f64 (pow.f64 (*.f64 a b) 2)))
(cbrt.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 3))
(expm1.f64 (log1p.f64 (pow.f64 (*.f64 a b) 2)))
(log1p.f64 (expm1.f64 (pow.f64 (*.f64 a b) 2)))
(exp.f64 (log.f64 (pow.f64 (*.f64 a b) 2)))
Outputs
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(-.f64 (+.f64 1 (pow.f64 (*.f64 a b) 2)) 1)
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(pow.f64 (pow.f64 (*.f64 a b) 2) 1)
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(pow.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 3) 1/3)
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(pow.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 2)) 3)
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(pow.f64 (*.f64 a b) 2)
(*.f64 (*.f64 a a) (*.f64 b b))
(sqrt.f64 (*.f64 (pow.f64 a 4) (pow.f64 b 4)))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(log.f64 (exp.f64 (pow.f64 (*.f64 a b) 2)))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(cbrt.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 3))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(expm1.f64 (log1p.f64 (pow.f64 (*.f64 a b) 2)))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(log1p.f64 (expm1.f64 (pow.f64 (*.f64 a b) 2)))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(exp.f64 (log.f64 (pow.f64 (*.f64 a b) 2)))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)

localize13.0ms (0.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.4b
(pow.f64 (cbrt.f64 (*.f64 (*.f64 a a) b)) 3)
3.6b
(*.f64 (pow.f64 (cbrt.f64 (*.f64 (*.f64 a a) b)) 3) (neg.f64 b))
11.0b
(*.f64 (*.f64 a a) b)
23.6b
(cbrt.f64 (*.f64 (*.f64 a a) b))
Compiler

Compiled 40 to 12 computations (70% saved)

series14.0ms (0.4%)

Counts
3 → 24
Calls

18 calls:

TimeVariablePointExpression
3.0ms
a
@0
(pow.f64 (cbrt.f64 (*.f64 (*.f64 a a) b)) 3)
1.0ms
b
@-inf
(*.f64 (pow.f64 (cbrt.f64 (*.f64 (*.f64 a a) b)) 3) (neg.f64 b))
1.0ms
b
@-inf
(pow.f64 (cbrt.f64 (*.f64 (*.f64 a a) b)) 3)
1.0ms
a
@0
(cbrt.f64 (*.f64 (*.f64 a a) b))
1.0ms
a
@inf
(pow.f64 (cbrt.f64 (*.f64 (*.f64 a a) b)) 3)

rewrite54.0ms (1.6%)

Algorithm
batch-egg-rewrite
Rules
754×pow1_binary64
705×add-log-exp_binary64
704×log1p-expm1-u_binary64
704×expm1-log1p-u_binary64
686×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01028
121423
2239823
Stop Event
node limit
Counts
3 → 73
Calls
Call 1
Inputs
(cbrt.f64 (*.f64 (*.f64 a a) b))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 (*.f64 a a) b)) 3) (neg.f64 b))
(pow.f64 (cbrt.f64 (*.f64 (*.f64 a a) b)) 3)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (cbrt.f64 (*.f64 a (*.f64 a b)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (cbrt.f64 (*.f64 a (*.f64 a b))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 a) (cbrt.f64 (*.f64 a b)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 a) (pow.f64 (*.f64 a b) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 (*.f64 a (*.f64 a b)))) (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 a (*.f64 a b)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 (*.f64 a (*.f64 a b)))) (pow.f64 (pow.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 2) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 a (*.f64 a b)))) 2) (cbrt.f64 (cbrt.f64 (*.f64 a (*.f64 a b)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 a a)) (cbrt.f64 b))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 b) (cbrt.f64 (*.f64 a a)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 a (sqrt.f64 b))) (cbrt.f64 (*.f64 a (sqrt.f64 b))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 2) 1/3) (cbrt.f64 (cbrt.f64 (*.f64 a (*.f64 a b)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/3) (cbrt.f64 (*.f64 a (*.f64 a b))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 a (sqrt.f64 b)) 1/3) (pow.f64 (*.f64 a (sqrt.f64 b)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 a (*.f64 a b)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 a (*.f64 a b)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 a (sqrt.f64 b))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (cbrt.f64 (*.f64 a (*.f64 a b)))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (cbrt.f64 (*.f64 a (*.f64 a b)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (cbrt.f64 (*.f64 a (*.f64 a b)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (cbrt.f64 (*.f64 a (*.f64 a b)))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (pow.f64 (*.f64 a b) 2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (*.f64 a b) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 a b) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 2)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 a b) 2)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (pow.f64 (*.f64 a b) 2))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (*.f64 a b) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 a (*.f64 a b)) 3) (pow.f64 b 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 b 3) (pow.f64 (*.f64 a (*.f64 a b)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (*.f64 a b) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (*.f64 a b) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (pow.f64 (*.f64 a b) 2)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 a (*.f64 a b))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 a (*.f64 a b))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 a a) b)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 b (*.f64 a a))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 a (*.f64 a b)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) (pow.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 a (*.f64 a b)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 2) (cbrt.f64 (*.f64 a (*.f64 a b))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 a (*.f64 a b)))) 2) (*.f64 (cbrt.f64 (cbrt.f64 (*.f64 a (*.f64 a b)))) (pow.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 a a)) (*.f64 (cbrt.f64 a) (*.f64 a b)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 a a)) (*.f64 (cbrt.f64 b) (pow.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 a 4)) (*.f64 (cbrt.f64 (*.f64 a a)) b))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 b b)) (*.f64 (cbrt.f64 b) (*.f64 a a)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 a (sqrt.f64 b)) (*.f64 a (sqrt.f64 b)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 a) (*.f64 (sqrt.f64 a) (*.f64 a b)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 a (sqrt.f64 b))) (*.f64 (cbrt.f64 (*.f64 a (sqrt.f64 b))) (pow.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 b) (*.f64 (sqrt.f64 b) (*.f64 a a)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 a b) a)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 a (*.f64 a b)))) 2) 3) (cbrt.f64 (*.f64 a (*.f64 a b))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 a (sqrt.f64 b))) 3) (pow.f64 (cbrt.f64 (*.f64 a (sqrt.f64 b))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 a a) (cbrt.f64 (*.f64 b b))) (cbrt.f64 b))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 a a) (sqrt.f64 b)) (sqrt.f64 b))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 b (cbrt.f64 (pow.f64 a 4))) (cbrt.f64 (*.f64 a a)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 2) 1) (cbrt.f64 (*.f64 a (*.f64 a b))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 2) (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 a (*.f64 a b)))) 2)) (cbrt.f64 (cbrt.f64 (*.f64 a (*.f64 a b)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 2) (cbrt.f64 (*.f64 a a))) (cbrt.f64 b))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 2) (cbrt.f64 (*.f64 a (sqrt.f64 b)))) (cbrt.f64 (*.f64 a (sqrt.f64 b))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (*.f64 b b) (pow.f64 a 4)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 a) (*.f64 a b)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 a (*.f64 a b)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 a a) 3) (pow.f64 b 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 b 3) (pow.f64 (*.f64 a a) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 a (*.f64 a b))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 a (*.f64 a b))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 a (*.f64 a b))))))))

simplify64.0ms (1.9%)

Algorithm
egg-herbie
Rules
730×fma-def_binary64
701×fma-neg_binary64
590×log-prod_binary64
329×log-pow_binary64
264×cube-prod_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01531309
13421051
21170871
33028869
47347869
Stop Event
node limit
Counts
97 → 91
Calls
Call 1
Inputs
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(-.f64 (+.f64 1 (cbrt.f64 (*.f64 a (*.f64 a b)))) 1)
(*.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 1)
(*.f64 1 (cbrt.f64 (*.f64 a (*.f64 a b))))
(*.f64 (cbrt.f64 a) (cbrt.f64 (*.f64 a b)))
(*.f64 (cbrt.f64 a) (pow.f64 (*.f64 a b) 1/3))
(*.f64 (cbrt.f64 (cbrt.f64 (*.f64 a (*.f64 a b)))) (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 a (*.f64 a b)))) 2))
(*.f64 (cbrt.f64 (cbrt.f64 (*.f64 a (*.f64 a b)))) (pow.f64 (pow.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 2) 1/3))
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 a (*.f64 a b)))) 2) (cbrt.f64 (cbrt.f64 (*.f64 a (*.f64 a b)))))
(*.f64 (cbrt.f64 (*.f64 a a)) (cbrt.f64 b))
(*.f64 (cbrt.f64 b) (cbrt.f64 (*.f64 a a)))
(*.f64 (cbrt.f64 (*.f64 a (sqrt.f64 b))) (cbrt.f64 (*.f64 a (sqrt.f64 b))))
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 2) 1/3) (cbrt.f64 (cbrt.f64 (*.f64 a (*.f64 a b)))))
(*.f64 (pow.f64 1 1/3) (cbrt.f64 (*.f64 a (*.f64 a b))))
(*.f64 (pow.f64 (*.f64 a (sqrt.f64 b)) 1/3) (pow.f64 (*.f64 a (sqrt.f64 b)) 1/3))
(pow.f64 (*.f64 a (*.f64 a b)) 1/3)
(pow.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 1)
(pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 a (*.f64 a b)))) 3)
(pow.f64 (cbrt.f64 (*.f64 a (sqrt.f64 b))) 2)
(sqrt.f64 (pow.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 2))
(log.f64 (exp.f64 (cbrt.f64 (*.f64 a (*.f64 a b)))))
(expm1.f64 (log1p.f64 (cbrt.f64 (*.f64 a (*.f64 a b)))))
(log1p.f64 (expm1.f64 (cbrt.f64 (*.f64 a (*.f64 a b)))))
(exp.f64 (log.f64 (cbrt.f64 (*.f64 a (*.f64 a b)))))
(-.f64 0 (pow.f64 (*.f64 a b) 2))
(-.f64 (+.f64 1 (pow.f64 (*.f64 a b) 2)) 1)
(pow.f64 (pow.f64 (*.f64 a b) 2) 1)
(pow.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 3) 1/3)
(pow.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 2)) 3)
(pow.f64 (*.f64 a b) 2)
(neg.f64 (pow.f64 (*.f64 a b) 2))
(sqrt.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 2))
(log.f64 (exp.f64 (pow.f64 (*.f64 a b) 2)))
(cbrt.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 3))
(cbrt.f64 (*.f64 (pow.f64 (*.f64 a (*.f64 a b)) 3) (pow.f64 b 3)))
(cbrt.f64 (*.f64 (pow.f64 b 3) (pow.f64 (*.f64 a (*.f64 a b)) 3)))
(expm1.f64 (log1p.f64 (pow.f64 (*.f64 a b) 2)))
(log1p.f64 (expm1.f64 (pow.f64 (*.f64 a b) 2)))
(exp.f64 (log.f64 (pow.f64 (*.f64 a b) 2)))
(-.f64 (+.f64 1 (*.f64 a (*.f64 a b))) 1)
(*.f64 a (*.f64 a b))
(*.f64 (*.f64 a a) b)
(*.f64 b (*.f64 a a))
(*.f64 (*.f64 a (*.f64 a b)) 1)
(*.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) (pow.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 2))
(*.f64 1 (*.f64 a (*.f64 a b)))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 2) (cbrt.f64 (*.f64 a (*.f64 a b))))
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 a (*.f64 a b)))) 2) (*.f64 (cbrt.f64 (cbrt.f64 (*.f64 a (*.f64 a b)))) (pow.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 2)))
(*.f64 (cbrt.f64 (*.f64 a a)) (*.f64 (cbrt.f64 a) (*.f64 a b)))
(*.f64 (cbrt.f64 (*.f64 a a)) (*.f64 (cbrt.f64 b) (pow.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 2)))
(*.f64 (cbrt.f64 (pow.f64 a 4)) (*.f64 (cbrt.f64 (*.f64 a a)) b))
(*.f64 (cbrt.f64 (*.f64 b b)) (*.f64 (cbrt.f64 b) (*.f64 a a)))
(*.f64 (*.f64 a (sqrt.f64 b)) (*.f64 a (sqrt.f64 b)))
(*.f64 (sqrt.f64 a) (*.f64 (sqrt.f64 a) (*.f64 a b)))
(*.f64 (cbrt.f64 (*.f64 a (sqrt.f64 b))) (*.f64 (cbrt.f64 (*.f64 a (sqrt.f64 b))) (pow.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 2)))
(*.f64 (sqrt.f64 b) (*.f64 (sqrt.f64 b) (*.f64 a a)))
(*.f64 (*.f64 a b) a)
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 a (*.f64 a b)))) 2) 3) (cbrt.f64 (*.f64 a (*.f64 a b))))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 a (sqrt.f64 b))) 3) (pow.f64 (cbrt.f64 (*.f64 a (sqrt.f64 b))) 3))
(*.f64 (*.f64 (*.f64 a a) (cbrt.f64 (*.f64 b b))) (cbrt.f64 b))
(*.f64 (*.f64 (*.f64 a a) (sqrt.f64 b)) (sqrt.f64 b))
(*.f64 (*.f64 b (cbrt.f64 (pow.f64 a 4))) (cbrt.f64 (*.f64 a a)))
(*.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 2) 1) (cbrt.f64 (*.f64 a (*.f64 a b))))
(*.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 2) (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 a (*.f64 a b)))) 2)) (cbrt.f64 (cbrt.f64 (*.f64 a (*.f64 a b)))))
(*.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 2) (cbrt.f64 (*.f64 a a))) (cbrt.f64 b))
(*.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 2) (cbrt.f64 (*.f64 a (sqrt.f64 b)))) (cbrt.f64 (*.f64 a (sqrt.f64 b))))
(sqrt.f64 (*.f64 (*.f64 b b) (pow.f64 a 4)))
(log.f64 (pow.f64 (exp.f64 a) (*.f64 a b)))
(cbrt.f64 (pow.f64 (*.f64 a (*.f64 a b)) 3))
(cbrt.f64 (*.f64 (pow.f64 (*.f64 a a) 3) (pow.f64 b 3)))
(cbrt.f64 (*.f64 (pow.f64 b 3) (pow.f64 (*.f64 a a) 3)))
(expm1.f64 (log1p.f64 (*.f64 a (*.f64 a b))))
(log1p.f64 (expm1.f64 (*.f64 a (*.f64 a b))))
(exp.f64 (log.f64 (*.f64 a (*.f64 a b))))
Outputs
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(-.f64 (+.f64 1 (cbrt.f64 (*.f64 a (*.f64 a b)))) 1)
(+.f64 1 (-.f64 (cbrt.f64 (*.f64 b (*.f64 a a))) 1))
(+.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 0)
(cbrt.f64 (*.f64 a (*.f64 a b)))
(*.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 1)
(+.f64 1 (-.f64 (cbrt.f64 (*.f64 b (*.f64 a a))) 1))
(+.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 0)
(cbrt.f64 (*.f64 a (*.f64 a b)))
(*.f64 1 (cbrt.f64 (*.f64 a (*.f64 a b))))
(+.f64 1 (-.f64 (cbrt.f64 (*.f64 b (*.f64 a a))) 1))
(+.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 0)
(cbrt.f64 (*.f64 a (*.f64 a b)))
(*.f64 (cbrt.f64 a) (cbrt.f64 (*.f64 a b)))
(*.f64 (cbrt.f64 a) (pow.f64 (*.f64 a b) 1/3))
(*.f64 (cbrt.f64 a) (cbrt.f64 (*.f64 a b)))
(*.f64 (cbrt.f64 (cbrt.f64 (*.f64 a (*.f64 a b)))) (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 a (*.f64 a b)))) 2))
(+.f64 1 (-.f64 (cbrt.f64 (*.f64 b (*.f64 a a))) 1))
(+.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 0)
(cbrt.f64 (*.f64 a (*.f64 a b)))
(*.f64 (cbrt.f64 (cbrt.f64 (*.f64 a (*.f64 a b)))) (pow.f64 (pow.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 2) 1/3))
(+.f64 1 (-.f64 (cbrt.f64 (*.f64 b (*.f64 a a))) 1))
(+.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 0)
(cbrt.f64 (*.f64 a (*.f64 a b)))
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 a (*.f64 a b)))) 2) (cbrt.f64 (cbrt.f64 (*.f64 a (*.f64 a b)))))
(+.f64 1 (-.f64 (cbrt.f64 (*.f64 b (*.f64 a a))) 1))
(+.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 0)
(cbrt.f64 (*.f64 a (*.f64 a b)))
(*.f64 (cbrt.f64 (*.f64 a a)) (cbrt.f64 b))
(*.f64 (cbrt.f64 b) (cbrt.f64 (*.f64 a a)))
(*.f64 (cbrt.f64 (*.f64 a a)) (cbrt.f64 b))
(*.f64 (cbrt.f64 (*.f64 a (sqrt.f64 b))) (cbrt.f64 (*.f64 a (sqrt.f64 b))))
(+.f64 1 (-.f64 (cbrt.f64 (*.f64 b (*.f64 a a))) 1))
(+.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 0)
(cbrt.f64 (*.f64 a (*.f64 a b)))
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 2) 1/3) (cbrt.f64 (cbrt.f64 (*.f64 a (*.f64 a b)))))
(+.f64 1 (-.f64 (cbrt.f64 (*.f64 b (*.f64 a a))) 1))
(+.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 0)
(cbrt.f64 (*.f64 a (*.f64 a b)))
(*.f64 (pow.f64 1 1/3) (cbrt.f64 (*.f64 a (*.f64 a b))))
(+.f64 1 (-.f64 (cbrt.f64 (*.f64 b (*.f64 a a))) 1))
(+.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 0)
(cbrt.f64 (*.f64 a (*.f64 a b)))
(*.f64 (pow.f64 (*.f64 a (sqrt.f64 b)) 1/3) (pow.f64 (*.f64 a (sqrt.f64 b)) 1/3))
(+.f64 1 (-.f64 (cbrt.f64 (*.f64 b (*.f64 a a))) 1))
(+.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 0)
(cbrt.f64 (*.f64 a (*.f64 a b)))
(pow.f64 (*.f64 a (*.f64 a b)) 1/3)
(+.f64 1 (-.f64 (cbrt.f64 (*.f64 b (*.f64 a a))) 1))
(+.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 0)
(cbrt.f64 (*.f64 a (*.f64 a b)))
(pow.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 1)
(+.f64 1 (-.f64 (cbrt.f64 (*.f64 b (*.f64 a a))) 1))
(+.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 0)
(cbrt.f64 (*.f64 a (*.f64 a b)))
(pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 a (*.f64 a b)))) 3)
(+.f64 1 (-.f64 (cbrt.f64 (*.f64 b (*.f64 a a))) 1))
(+.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 0)
(cbrt.f64 (*.f64 a (*.f64 a b)))
(pow.f64 (cbrt.f64 (*.f64 a (sqrt.f64 b))) 2)
(+.f64 1 (-.f64 (cbrt.f64 (*.f64 b (*.f64 a a))) 1))
(+.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 0)
(cbrt.f64 (*.f64 a (*.f64 a b)))
(sqrt.f64 (pow.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 2))
(+.f64 1 (-.f64 (cbrt.f64 (*.f64 b (*.f64 a a))) 1))
(+.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 0)
(cbrt.f64 (*.f64 a (*.f64 a b)))
(log.f64 (exp.f64 (cbrt.f64 (*.f64 a (*.f64 a b)))))
(+.f64 1 (-.f64 (cbrt.f64 (*.f64 b (*.f64 a a))) 1))
(+.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 0)
(cbrt.f64 (*.f64 a (*.f64 a b)))
(expm1.f64 (log1p.f64 (cbrt.f64 (*.f64 a (*.f64 a b)))))
(+.f64 1 (-.f64 (cbrt.f64 (*.f64 b (*.f64 a a))) 1))
(+.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 0)
(cbrt.f64 (*.f64 a (*.f64 a b)))
(log1p.f64 (expm1.f64 (cbrt.f64 (*.f64 a (*.f64 a b)))))
(+.f64 1 (-.f64 (cbrt.f64 (*.f64 b (*.f64 a a))) 1))
(+.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 0)
(cbrt.f64 (*.f64 a (*.f64 a b)))
(exp.f64 (log.f64 (cbrt.f64 (*.f64 a (*.f64 a b)))))
(+.f64 1 (-.f64 (cbrt.f64 (*.f64 b (*.f64 a a))) 1))
(+.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 0)
(cbrt.f64 (*.f64 a (*.f64 a b)))
(-.f64 0 (pow.f64 (*.f64 a b) 2))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(-.f64 (+.f64 1 (pow.f64 (*.f64 a b) 2)) 1)
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(pow.f64 (pow.f64 (*.f64 a b) 2) 1)
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(pow.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 3) 1/3)
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(pow.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 2)) 3)
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(pow.f64 (*.f64 a b) 2)
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(neg.f64 (pow.f64 (*.f64 a b) 2))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(sqrt.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 2))
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(log.f64 (exp.f64 (pow.f64 (*.f64 a b) 2)))
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(cbrt.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 3))
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(cbrt.f64 (*.f64 (pow.f64 (*.f64 a (*.f64 a b)) 3) (pow.f64 b 3)))
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(cbrt.f64 (*.f64 (pow.f64 b 3) (pow.f64 (*.f64 a (*.f64 a b)) 3)))
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(expm1.f64 (log1p.f64 (pow.f64 (*.f64 a b) 2)))
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(log1p.f64 (expm1.f64 (pow.f64 (*.f64 a b) 2)))
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(exp.f64 (log.f64 (pow.f64 (*.f64 a b) 2)))
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(-.f64 (+.f64 1 (*.f64 a (*.f64 a b))) 1)
(+.f64 1 (-.f64 (*.f64 b (*.f64 a a)) 1))
(+.f64 (*.f64 a (*.f64 a b)) 0)
(*.f64 a (*.f64 a b))
(*.f64 a (*.f64 a b))
(+.f64 1 (-.f64 (*.f64 b (*.f64 a a)) 1))
(+.f64 (*.f64 a (*.f64 a b)) 0)
(*.f64 (*.f64 a a) b)
(+.f64 1 (-.f64 (*.f64 b (*.f64 a a)) 1))
(+.f64 (*.f64 a (*.f64 a b)) 0)
(*.f64 a (*.f64 a b))
(*.f64 b (*.f64 a a))
(+.f64 1 (-.f64 (*.f64 b (*.f64 a a)) 1))
(+.f64 (*.f64 a (*.f64 a b)) 0)
(*.f64 a (*.f64 a b))
(*.f64 (*.f64 a (*.f64 a b)) 1)
(+.f64 1 (-.f64 (*.f64 b (*.f64 a a)) 1))
(+.f64 (*.f64 a (*.f64 a b)) 0)
(*.f64 a (*.f64 a b))
(*.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) (pow.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 2))
(+.f64 1 (-.f64 (*.f64 b (*.f64 a a)) 1))
(+.f64 (*.f64 a (*.f64 a b)) 0)
(*.f64 a (*.f64 a b))
(*.f64 1 (*.f64 a (*.f64 a b)))
(+.f64 1 (-.f64 (*.f64 b (*.f64 a a)) 1))
(+.f64 (*.f64 a (*.f64 a b)) 0)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 2) (cbrt.f64 (*.f64 a (*.f64 a b))))
(+.f64 1 (-.f64 (*.f64 b (*.f64 a a)) 1))
(+.f64 (*.f64 a (*.f64 a b)) 0)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 a (*.f64 a b)))) 2) (*.f64 (cbrt.f64 (cbrt.f64 (*.f64 a (*.f64 a b)))) (pow.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 2)))
(+.f64 1 (-.f64 (*.f64 b (*.f64 a a)) 1))
(+.f64 (*.f64 a (*.f64 a b)) 0)
(*.f64 a (*.f64 a b))
(*.f64 (cbrt.f64 (*.f64 a a)) (*.f64 (cbrt.f64 a) (*.f64 a b)))
(*.f64 (cbrt.f64 (*.f64 a a)) (*.f64 (*.f64 a b) (cbrt.f64 a)))
(*.f64 (cbrt.f64 a) (*.f64 (*.f64 a b) (cbrt.f64 (*.f64 a a))))
(*.f64 (cbrt.f64 (*.f64 a a)) (*.f64 (cbrt.f64 b) (pow.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 2)))
(*.f64 (*.f64 (cbrt.f64 (*.f64 a a)) (cbrt.f64 b)) (pow.f64 (cbrt.f64 (*.f64 b (*.f64 a a))) 2))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 2) (*.f64 (cbrt.f64 (*.f64 a a)) (cbrt.f64 b)))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 a (sqrt.f64 b))) 4) (*.f64 (cbrt.f64 (*.f64 a a)) (cbrt.f64 b)))
(*.f64 (cbrt.f64 (pow.f64 a 4)) (*.f64 (cbrt.f64 (*.f64 a a)) b))
(*.f64 (cbrt.f64 (pow.f64 a 4)) (*.f64 b (cbrt.f64 (*.f64 a a))))
(*.f64 b (*.f64 (cbrt.f64 (*.f64 a a)) (cbrt.f64 (pow.f64 a 4))))
(*.f64 (cbrt.f64 (*.f64 b b)) (*.f64 (cbrt.f64 b) (*.f64 a a)))
(*.f64 (*.f64 (cbrt.f64 (*.f64 b b)) (cbrt.f64 b)) (*.f64 a a))
(*.f64 a (*.f64 a (*.f64 (cbrt.f64 b) (cbrt.f64 (*.f64 b b)))))
(*.f64 (*.f64 a (sqrt.f64 b)) (*.f64 a (sqrt.f64 b)))
(+.f64 1 (-.f64 (*.f64 b (*.f64 a a)) 1))
(+.f64 (*.f64 a (*.f64 a b)) 0)
(*.f64 a (*.f64 a b))
(*.f64 (sqrt.f64 a) (*.f64 (sqrt.f64 a) (*.f64 a b)))
(+.f64 1 (-.f64 (*.f64 b (*.f64 a a)) 1))
(+.f64 (*.f64 a (*.f64 a b)) 0)
(*.f64 a (*.f64 a b))
(*.f64 (cbrt.f64 (*.f64 a (sqrt.f64 b))) (*.f64 (cbrt.f64 (*.f64 a (sqrt.f64 b))) (pow.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 2)))
(+.f64 1 (-.f64 (*.f64 b (*.f64 a a)) 1))
(+.f64 (*.f64 a (*.f64 a b)) 0)
(*.f64 a (*.f64 a b))
(*.f64 (sqrt.f64 b) (*.f64 (sqrt.f64 b) (*.f64 a a)))
(+.f64 1 (-.f64 (*.f64 b (*.f64 a a)) 1))
(+.f64 (*.f64 a (*.f64 a b)) 0)
(*.f64 a (*.f64 a b))
(*.f64 (*.f64 a b) a)
(+.f64 1 (-.f64 (*.f64 b (*.f64 a a)) 1))
(+.f64 (*.f64 a (*.f64 a b)) 0)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 a (*.f64 a b)))) 2) 3) (cbrt.f64 (*.f64 a (*.f64 a b))))
(+.f64 1 (-.f64 (*.f64 b (*.f64 a a)) 1))
(+.f64 (*.f64 a (*.f64 a b)) 0)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 a (sqrt.f64 b))) 3) (pow.f64 (cbrt.f64 (*.f64 a (sqrt.f64 b))) 3))
(+.f64 1 (-.f64 (*.f64 b (*.f64 a a)) 1))
(+.f64 (*.f64 a (*.f64 a b)) 0)
(*.f64 a (*.f64 a b))
(*.f64 (*.f64 (*.f64 a a) (cbrt.f64 (*.f64 b b))) (cbrt.f64 b))
(*.f64 (*.f64 (cbrt.f64 (*.f64 b b)) (cbrt.f64 b)) (*.f64 a a))
(*.f64 a (*.f64 a (*.f64 (cbrt.f64 b) (cbrt.f64 (*.f64 b b)))))
(*.f64 (*.f64 (*.f64 a a) (sqrt.f64 b)) (sqrt.f64 b))
(+.f64 1 (-.f64 (*.f64 b (*.f64 a a)) 1))
(+.f64 (*.f64 a (*.f64 a b)) 0)
(*.f64 a (*.f64 a b))
(*.f64 (*.f64 b (cbrt.f64 (pow.f64 a 4))) (cbrt.f64 (*.f64 a a)))
(*.f64 (cbrt.f64 (pow.f64 a 4)) (*.f64 b (cbrt.f64 (*.f64 a a))))
(*.f64 b (*.f64 (cbrt.f64 (*.f64 a a)) (cbrt.f64 (pow.f64 a 4))))
(*.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 2) 1) (cbrt.f64 (*.f64 a (*.f64 a b))))
(+.f64 1 (-.f64 (*.f64 b (*.f64 a a)) 1))
(+.f64 (*.f64 a (*.f64 a b)) 0)
(*.f64 a (*.f64 a b))
(*.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 2) (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 a (*.f64 a b)))) 2)) (cbrt.f64 (cbrt.f64 (*.f64 a (*.f64 a b)))))
(+.f64 1 (-.f64 (*.f64 b (*.f64 a a)) 1))
(+.f64 (*.f64 a (*.f64 a b)) 0)
(*.f64 a (*.f64 a b))
(*.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 2) (cbrt.f64 (*.f64 a a))) (cbrt.f64 b))
(*.f64 (*.f64 (cbrt.f64 (*.f64 a a)) (cbrt.f64 b)) (pow.f64 (cbrt.f64 (*.f64 b (*.f64 a a))) 2))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 2) (*.f64 (cbrt.f64 (*.f64 a a)) (cbrt.f64 b)))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 a (sqrt.f64 b))) 4) (*.f64 (cbrt.f64 (*.f64 a a)) (cbrt.f64 b)))
(*.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 2) (cbrt.f64 (*.f64 a (sqrt.f64 b)))) (cbrt.f64 (*.f64 a (sqrt.f64 b))))
(+.f64 1 (-.f64 (*.f64 b (*.f64 a a)) 1))
(+.f64 (*.f64 a (*.f64 a b)) 0)
(*.f64 a (*.f64 a b))
(sqrt.f64 (*.f64 (*.f64 b b) (pow.f64 a 4)))
(+.f64 1 (-.f64 (*.f64 b (*.f64 a a)) 1))
(+.f64 (*.f64 a (*.f64 a b)) 0)
(*.f64 a (*.f64 a b))
(log.f64 (pow.f64 (exp.f64 a) (*.f64 a b)))
(+.f64 1 (-.f64 (*.f64 b (*.f64 a a)) 1))
(+.f64 (*.f64 a (*.f64 a b)) 0)
(*.f64 a (*.f64 a b))
(cbrt.f64 (pow.f64 (*.f64 a (*.f64 a b)) 3))
(+.f64 1 (-.f64 (*.f64 b (*.f64 a a)) 1))
(+.f64 (*.f64 a (*.f64 a b)) 0)
(*.f64 a (*.f64 a b))
(cbrt.f64 (*.f64 (pow.f64 (*.f64 a a) 3) (pow.f64 b 3)))
(+.f64 1 (-.f64 (*.f64 b (*.f64 a a)) 1))
(+.f64 (*.f64 a (*.f64 a b)) 0)
(*.f64 a (*.f64 a b))
(cbrt.f64 (*.f64 (pow.f64 b 3) (pow.f64 (*.f64 a a) 3)))
(+.f64 1 (-.f64 (*.f64 b (*.f64 a a)) 1))
(+.f64 (*.f64 a (*.f64 a b)) 0)
(*.f64 a (*.f64 a b))
(expm1.f64 (log1p.f64 (*.f64 a (*.f64 a b))))
(+.f64 1 (-.f64 (*.f64 b (*.f64 a a)) 1))
(+.f64 (*.f64 a (*.f64 a b)) 0)
(*.f64 a (*.f64 a b))
(log1p.f64 (expm1.f64 (*.f64 a (*.f64 a b))))
(+.f64 1 (-.f64 (*.f64 b (*.f64 a a)) 1))
(+.f64 (*.f64 a (*.f64 a b)) 0)
(*.f64 a (*.f64 a b))
(exp.f64 (log.f64 (*.f64 a (*.f64 a b))))
(+.f64 1 (-.f64 (*.f64 b (*.f64 a a)) 1))
(+.f64 (*.f64 a (*.f64 a b)) 0)
(*.f64 a (*.f64 a b))

localize12.0ms (0.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(*.f64 (*.f64 a (sqrt.f64 b)) a)
0.2b
(*.f64 a (sqrt.f64 b))
2.6b
(*.f64 (*.f64 (*.f64 (*.f64 a (sqrt.f64 b)) a) (sqrt.f64 b)) (neg.f64 b))
6.0b
(*.f64 (*.f64 (*.f64 a (sqrt.f64 b)) a) (sqrt.f64 b))
Compiler

Compiled 39 to 8 computations (79.5% saved)

series6.0ms (0.2%)

Counts
3 → 60
Calls

18 calls:

TimeVariablePointExpression
1.0ms
b
@-inf
(*.f64 (*.f64 a (sqrt.f64 b)) a)
1.0ms
b
@0
(*.f64 (*.f64 a (sqrt.f64 b)) a)
0.0ms
a
@inf
(*.f64 (*.f64 a (sqrt.f64 b)) a)
0.0ms
b
@inf
(*.f64 (*.f64 a (sqrt.f64 b)) a)
0.0ms
b
@-inf
(*.f64 (*.f64 (*.f64 a (sqrt.f64 b)) a) (sqrt.f64 b))

rewrite50.0ms (1.5%)

Algorithm
batch-egg-rewrite
Rules
766×pow1_binary64
706×add-log-exp_binary64
705×log1p-expm1-u_binary64
705×expm1-log1p-u_binary64
688×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0942
118726
2239726
Stop Event
node limit
Counts
3 → 41
Calls
Call 1
Inputs
(*.f64 (*.f64 (*.f64 a (sqrt.f64 b)) a) (sqrt.f64 b))
(*.f64 (*.f64 (*.f64 (*.f64 a (sqrt.f64 b)) a) (sqrt.f64 b)) (neg.f64 b))
(*.f64 (*.f64 a (sqrt.f64 b)) a)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 b (*.f64 a a))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 a (sqrt.f64 b)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 b (*.f64 a a)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 b (*.f64 a a)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 b (*.f64 a a))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 b (*.f64 a a)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (*.f64 b (*.f64 a a))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 b (*.f64 a a)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 b 3/2) (pow.f64 (*.f64 a (*.f64 a (sqrt.f64 b))) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 a (*.f64 a (sqrt.f64 b))) 3) (pow.f64 b 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 b (*.f64 a a))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 b (*.f64 a a))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 b (*.f64 a a))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (*.f64 b (*.f64 b (*.f64 a a))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 b (*.f64 b (*.f64 a a)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 b (*.f64 b (*.f64 a a))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 b (*.f64 b (*.f64 a a))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 b (*.f64 b (*.f64 a a)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 b) (*.f64 a (sqrt.f64 b))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 b (*.f64 b (*.f64 a a))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 b (*.f64 b (*.f64 a a))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 b) (*.f64 b (*.f64 a a))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 b (*.f64 b (*.f64 a a))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 b 3) (pow.f64 (*.f64 b (*.f64 a a)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 b (*.f64 a a)) 3) (pow.f64 b 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 b (*.f64 b (*.f64 a a)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 b (*.f64 b (*.f64 a a)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 b (*.f64 b (*.f64 a a)))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 a (*.f64 a (sqrt.f64 b)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 a (*.f64 a (sqrt.f64 b))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 a (*.f64 a (sqrt.f64 b))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 a (*.f64 a (sqrt.f64 b)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 a (*.f64 a (sqrt.f64 b)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 a (*.f64 a (sqrt.f64 b))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 a) (*.f64 a (sqrt.f64 b))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 a (*.f64 a (sqrt.f64 b))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 a 3) (pow.f64 (*.f64 a (sqrt.f64 b)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 a (sqrt.f64 b)) 3) (pow.f64 a 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 a (*.f64 a (sqrt.f64 b)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 a (*.f64 a (sqrt.f64 b)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 a (*.f64 a (sqrt.f64 b)))))))))

simplify46.0ms (1.4%)

Algorithm
egg-herbie
Rules
651×log-prod_binary64
291×*-commutative_binary64
291×fma-neg_binary64
213×associate-/l*_binary64
189×cube-prod_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01061004
1269965
21258809
33328809
Stop Event
node limit
Counts
101 → 56
Calls
Call 1
Inputs
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (pow.f64 a 2) b)))
(*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (pow.f64 a 2) b)))
(*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (pow.f64 a 2) b)))
(*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (pow.f64 a 2) b)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (pow.f64 a 2) (sqrt.f64 b))
(*.f64 (pow.f64 a 2) (sqrt.f64 b))
(*.f64 (pow.f64 a 2) (sqrt.f64 b))
(*.f64 (pow.f64 a 2) (sqrt.f64 b))
(*.f64 (pow.f64 a 2) (sqrt.f64 b))
(*.f64 (pow.f64 a 2) (sqrt.f64 b))
(*.f64 (pow.f64 a 2) (sqrt.f64 b))
(*.f64 (pow.f64 a 2) (sqrt.f64 b))
(*.f64 (pow.f64 a 2) (sqrt.f64 b))
(*.f64 (pow.f64 a 2) (sqrt.f64 b))
(*.f64 (pow.f64 a 2) (sqrt.f64 b))
(*.f64 (pow.f64 a 2) (sqrt.f64 b))
(-.f64 (+.f64 1 (*.f64 b (*.f64 a a))) 1)
(pow.f64 (*.f64 a (sqrt.f64 b)) 2)
(pow.f64 (*.f64 b (*.f64 a a)) 1)
(pow.f64 (pow.f64 (*.f64 b (*.f64 a a)) 3) 1/3)
(pow.f64 (cbrt.f64 (*.f64 b (*.f64 a a))) 3)
(sqrt.f64 (pow.f64 (*.f64 b (*.f64 a a)) 2))
(log.f64 (exp.f64 (*.f64 b (*.f64 a a))))
(cbrt.f64 (pow.f64 (*.f64 b (*.f64 a a)) 3))
(cbrt.f64 (*.f64 (pow.f64 b 3/2) (pow.f64 (*.f64 a (*.f64 a (sqrt.f64 b))) 3)))
(cbrt.f64 (*.f64 (pow.f64 (*.f64 a (*.f64 a (sqrt.f64 b))) 3) (pow.f64 b 3/2)))
(expm1.f64 (log1p.f64 (*.f64 b (*.f64 a a))))
(log1p.f64 (expm1.f64 (*.f64 b (*.f64 a a))))
(exp.f64 (log.f64 (*.f64 b (*.f64 a a))))
(-.f64 0 (*.f64 b (*.f64 b (*.f64 a a))))
(-.f64 (+.f64 1 (*.f64 b (*.f64 b (*.f64 a a)))) 1)
(pow.f64 (*.f64 b (*.f64 b (*.f64 a a))) 1)
(pow.f64 (pow.f64 (*.f64 b (*.f64 b (*.f64 a a))) 3) 1/3)
(pow.f64 (cbrt.f64 (*.f64 b (*.f64 b (*.f64 a a)))) 3)
(pow.f64 (*.f64 (sqrt.f64 b) (*.f64 a (sqrt.f64 b))) 2)
(neg.f64 (*.f64 b (*.f64 b (*.f64 a a))))
(sqrt.f64 (pow.f64 (*.f64 b (*.f64 b (*.f64 a a))) 2))
(log.f64 (pow.f64 (exp.f64 b) (*.f64 b (*.f64 a a))))
(cbrt.f64 (pow.f64 (*.f64 b (*.f64 b (*.f64 a a))) 3))
(cbrt.f64 (*.f64 (pow.f64 b 3) (pow.f64 (*.f64 b (*.f64 a a)) 3)))
(cbrt.f64 (*.f64 (pow.f64 (*.f64 b (*.f64 a a)) 3) (pow.f64 b 3)))
(expm1.f64 (log1p.f64 (*.f64 b (*.f64 b (*.f64 a a)))))
(log1p.f64 (expm1.f64 (*.f64 b (*.f64 b (*.f64 a a)))))
(exp.f64 (log.f64 (*.f64 b (*.f64 b (*.f64 a a)))))
(-.f64 (+.f64 1 (*.f64 a (*.f64 a (sqrt.f64 b)))) 1)
(pow.f64 (*.f64 a (*.f64 a (sqrt.f64 b))) 1)
(pow.f64 (pow.f64 (*.f64 a (*.f64 a (sqrt.f64 b))) 3) 1/3)
(pow.f64 (cbrt.f64 (*.f64 a (*.f64 a (sqrt.f64 b)))) 3)
(pow.f64 (sqrt.f64 (*.f64 a (*.f64 a (sqrt.f64 b)))) 2)
(sqrt.f64 (pow.f64 (*.f64 a (*.f64 a (sqrt.f64 b))) 2))
(log.f64 (pow.f64 (exp.f64 a) (*.f64 a (sqrt.f64 b))))
(cbrt.f64 (pow.f64 (*.f64 a (*.f64 a (sqrt.f64 b))) 3))
(cbrt.f64 (*.f64 (pow.f64 a 3) (pow.f64 (*.f64 a (sqrt.f64 b)) 3)))
(cbrt.f64 (*.f64 (pow.f64 (*.f64 a (sqrt.f64 b)) 3) (pow.f64 a 3)))
(expm1.f64 (log1p.f64 (*.f64 a (*.f64 a (sqrt.f64 b)))))
(log1p.f64 (expm1.f64 (*.f64 a (*.f64 a (sqrt.f64 b)))))
(exp.f64 (log.f64 (*.f64 a (*.f64 a (sqrt.f64 b)))))
Outputs
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (pow.f64 a 2) b)))
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (pow.f64 a 2) b)))
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (pow.f64 a 2) b)))
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (pow.f64 a 2) b)))
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 b (neg.f64 (*.f64 (*.f64 a a) b)))
(*.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 b (neg.f64 (*.f64 (*.f64 a a) b)))
(*.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 b (neg.f64 (*.f64 (*.f64 a a) b)))
(*.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 b (neg.f64 (*.f64 (*.f64 a a) b)))
(*.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 b (neg.f64 (*.f64 (*.f64 a a) b)))
(*.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 b (neg.f64 (*.f64 (*.f64 a a) b)))
(*.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 b (neg.f64 (*.f64 (*.f64 a a) b)))
(*.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 b (neg.f64 (*.f64 (*.f64 a a) b)))
(*.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 b (neg.f64 (*.f64 (*.f64 a a) b)))
(*.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 b (neg.f64 (*.f64 (*.f64 a a) b)))
(*.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 b (neg.f64 (*.f64 (*.f64 a a) b)))
(*.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 b (neg.f64 (*.f64 (*.f64 a a) b)))
(*.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 b (neg.f64 (*.f64 (*.f64 a a) b)))
(*.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 b (neg.f64 (*.f64 (*.f64 a a) b)))
(*.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 b (neg.f64 (*.f64 (*.f64 a a) b)))
(*.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 b (neg.f64 (*.f64 (*.f64 a a) b)))
(*.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 b (neg.f64 (*.f64 (*.f64 a a) b)))
(*.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 b (neg.f64 (*.f64 (*.f64 a a) b)))
(*.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 b (neg.f64 (*.f64 (*.f64 a a) b)))
(*.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 b (neg.f64 (*.f64 (*.f64 a a) b)))
(*.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 b (neg.f64 (*.f64 (*.f64 a a) b)))
(*.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 b (neg.f64 (*.f64 (*.f64 a a) b)))
(*.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 b (neg.f64 (*.f64 (*.f64 a a) b)))
(*.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 b (neg.f64 (*.f64 (*.f64 a a) b)))
(*.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 (pow.f64 a 2) (sqrt.f64 b))
(*.f64 a (*.f64 a (sqrt.f64 b)))
(*.f64 (*.f64 a a) (sqrt.f64 b))
(*.f64 (pow.f64 a 2) (sqrt.f64 b))
(*.f64 a (*.f64 a (sqrt.f64 b)))
(*.f64 (*.f64 a a) (sqrt.f64 b))
(*.f64 (pow.f64 a 2) (sqrt.f64 b))
(*.f64 a (*.f64 a (sqrt.f64 b)))
(*.f64 (*.f64 a a) (sqrt.f64 b))
(*.f64 (pow.f64 a 2) (sqrt.f64 b))
(*.f64 a (*.f64 a (sqrt.f64 b)))
(*.f64 (*.f64 a a) (sqrt.f64 b))
(*.f64 (pow.f64 a 2) (sqrt.f64 b))
(*.f64 a (*.f64 a (sqrt.f64 b)))
(*.f64 (*.f64 a a) (sqrt.f64 b))
(*.f64 (pow.f64 a 2) (sqrt.f64 b))
(*.f64 a (*.f64 a (sqrt.f64 b)))
(*.f64 (*.f64 a a) (sqrt.f64 b))
(*.f64 (pow.f64 a 2) (sqrt.f64 b))
(*.f64 a (*.f64 a (sqrt.f64 b)))
(*.f64 (*.f64 a a) (sqrt.f64 b))
(*.f64 (pow.f64 a 2) (sqrt.f64 b))
(*.f64 a (*.f64 a (sqrt.f64 b)))
(*.f64 (*.f64 a a) (sqrt.f64 b))
(*.f64 (pow.f64 a 2) (sqrt.f64 b))
(*.f64 a (*.f64 a (sqrt.f64 b)))
(*.f64 (*.f64 a a) (sqrt.f64 b))
(*.f64 (pow.f64 a 2) (sqrt.f64 b))
(*.f64 a (*.f64 a (sqrt.f64 b)))
(*.f64 (*.f64 a a) (sqrt.f64 b))
(*.f64 (pow.f64 a 2) (sqrt.f64 b))
(*.f64 a (*.f64 a (sqrt.f64 b)))
(*.f64 (*.f64 a a) (sqrt.f64 b))
(*.f64 (pow.f64 a 2) (sqrt.f64 b))
(*.f64 a (*.f64 a (sqrt.f64 b)))
(*.f64 (*.f64 a a) (sqrt.f64 b))
(-.f64 (+.f64 1 (*.f64 b (*.f64 a a))) 1)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(pow.f64 (*.f64 a (sqrt.f64 b)) 2)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(pow.f64 (*.f64 b (*.f64 a a)) 1)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(pow.f64 (pow.f64 (*.f64 b (*.f64 a a)) 3) 1/3)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(pow.f64 (cbrt.f64 (*.f64 b (*.f64 a a))) 3)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(sqrt.f64 (pow.f64 (*.f64 b (*.f64 a a)) 2))
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(log.f64 (exp.f64 (*.f64 b (*.f64 a a))))
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(cbrt.f64 (pow.f64 (*.f64 b (*.f64 a a)) 3))
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(cbrt.f64 (*.f64 (pow.f64 b 3/2) (pow.f64 (*.f64 a (*.f64 a (sqrt.f64 b))) 3)))
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(cbrt.f64 (*.f64 (pow.f64 (*.f64 a (*.f64 a (sqrt.f64 b))) 3) (pow.f64 b 3/2)))
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(expm1.f64 (log1p.f64 (*.f64 b (*.f64 a a))))
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(log1p.f64 (expm1.f64 (*.f64 b (*.f64 a a))))
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(exp.f64 (log.f64 (*.f64 b (*.f64 a a))))
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(-.f64 0 (*.f64 b (*.f64 b (*.f64 a a))))
(*.f64 b (neg.f64 (*.f64 (*.f64 a a) b)))
(*.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(-.f64 (+.f64 1 (*.f64 b (*.f64 b (*.f64 a a)))) 1)
(+.f64 (+.f64 1 (*.f64 (*.f64 a a) (*.f64 b b))) -1)
(+.f64 (*.f64 a (*.f64 a (*.f64 b b))) 0)
(pow.f64 (*.f64 a b) 2)
(pow.f64 (*.f64 b (*.f64 b (*.f64 a a))) 1)
(+.f64 (+.f64 1 (*.f64 (*.f64 a a) (*.f64 b b))) -1)
(+.f64 (*.f64 a (*.f64 a (*.f64 b b))) 0)
(pow.f64 (*.f64 a b) 2)
(pow.f64 (pow.f64 (*.f64 b (*.f64 b (*.f64 a a))) 3) 1/3)
(+.f64 (+.f64 1 (*.f64 (*.f64 a a) (*.f64 b b))) -1)
(+.f64 (*.f64 a (*.f64 a (*.f64 b b))) 0)
(pow.f64 (*.f64 a b) 2)
(pow.f64 (cbrt.f64 (*.f64 b (*.f64 b (*.f64 a a)))) 3)
(+.f64 (+.f64 1 (*.f64 (*.f64 a a) (*.f64 b b))) -1)
(+.f64 (*.f64 a (*.f64 a (*.f64 b b))) 0)
(pow.f64 (*.f64 a b) 2)
(pow.f64 (*.f64 (sqrt.f64 b) (*.f64 a (sqrt.f64 b))) 2)
(+.f64 (+.f64 1 (*.f64 (*.f64 a a) (*.f64 b b))) -1)
(+.f64 (*.f64 a (*.f64 a (*.f64 b b))) 0)
(pow.f64 (*.f64 a b) 2)
(neg.f64 (*.f64 b (*.f64 b (*.f64 a a))))
(*.f64 b (neg.f64 (*.f64 (*.f64 a a) b)))
(*.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(sqrt.f64 (pow.f64 (*.f64 b (*.f64 b (*.f64 a a))) 2))
(+.f64 (+.f64 1 (*.f64 (*.f64 a a) (*.f64 b b))) -1)
(+.f64 (*.f64 a (*.f64 a (*.f64 b b))) 0)
(pow.f64 (*.f64 a b) 2)
(log.f64 (pow.f64 (exp.f64 b) (*.f64 b (*.f64 a a))))
(+.f64 (+.f64 1 (*.f64 (*.f64 a a) (*.f64 b b))) -1)
(+.f64 (*.f64 a (*.f64 a (*.f64 b b))) 0)
(pow.f64 (*.f64 a b) 2)
(cbrt.f64 (pow.f64 (*.f64 b (*.f64 b (*.f64 a a))) 3))
(+.f64 (+.f64 1 (*.f64 (*.f64 a a) (*.f64 b b))) -1)
(+.f64 (*.f64 a (*.f64 a (*.f64 b b))) 0)
(pow.f64 (*.f64 a b) 2)
(cbrt.f64 (*.f64 (pow.f64 b 3) (pow.f64 (*.f64 b (*.f64 a a)) 3)))
(+.f64 (+.f64 1 (*.f64 (*.f64 a a) (*.f64 b b))) -1)
(+.f64 (*.f64 a (*.f64 a (*.f64 b b))) 0)
(pow.f64 (*.f64 a b) 2)
(cbrt.f64 (*.f64 (pow.f64 (*.f64 b (*.f64 a a)) 3) (pow.f64 b 3)))
(+.f64 (+.f64 1 (*.f64 (*.f64 a a) (*.f64 b b))) -1)
(+.f64 (*.f64 a (*.f64 a (*.f64 b b))) 0)
(pow.f64 (*.f64 a b) 2)
(expm1.f64 (log1p.f64 (*.f64 b (*.f64 b (*.f64 a a)))))
(+.f64 (+.f64 1 (*.f64 (*.f64 a a) (*.f64 b b))) -1)
(+.f64 (*.f64 a (*.f64 a (*.f64 b b))) 0)
(pow.f64 (*.f64 a b) 2)
(log1p.f64 (expm1.f64 (*.f64 b (*.f64 b (*.f64 a a)))))
(+.f64 (+.f64 1 (*.f64 (*.f64 a a) (*.f64 b b))) -1)
(+.f64 (*.f64 a (*.f64 a (*.f64 b b))) 0)
(pow.f64 (*.f64 a b) 2)
(exp.f64 (log.f64 (*.f64 b (*.f64 b (*.f64 a a)))))
(+.f64 (+.f64 1 (*.f64 (*.f64 a a) (*.f64 b b))) -1)
(+.f64 (*.f64 a (*.f64 a (*.f64 b b))) 0)
(pow.f64 (*.f64 a b) 2)
(-.f64 (+.f64 1 (*.f64 a (*.f64 a (sqrt.f64 b)))) 1)
(*.f64 a (*.f64 a (sqrt.f64 b)))
(*.f64 (*.f64 a a) (sqrt.f64 b))
(pow.f64 (*.f64 a (*.f64 a (sqrt.f64 b))) 1)
(*.f64 a (*.f64 a (sqrt.f64 b)))
(*.f64 (*.f64 a a) (sqrt.f64 b))
(pow.f64 (pow.f64 (*.f64 a (*.f64 a (sqrt.f64 b))) 3) 1/3)
(*.f64 a (*.f64 a (sqrt.f64 b)))
(*.f64 (*.f64 a a) (sqrt.f64 b))
(pow.f64 (cbrt.f64 (*.f64 a (*.f64 a (sqrt.f64 b)))) 3)
(*.f64 a (*.f64 a (sqrt.f64 b)))
(*.f64 (*.f64 a a) (sqrt.f64 b))
(pow.f64 (sqrt.f64 (*.f64 a (*.f64 a (sqrt.f64 b)))) 2)
(*.f64 a (*.f64 a (sqrt.f64 b)))
(*.f64 (*.f64 a a) (sqrt.f64 b))
(sqrt.f64 (pow.f64 (*.f64 a (*.f64 a (sqrt.f64 b))) 2))
(*.f64 a (*.f64 a (sqrt.f64 b)))
(*.f64 (*.f64 a a) (sqrt.f64 b))
(log.f64 (pow.f64 (exp.f64 a) (*.f64 a (sqrt.f64 b))))
(*.f64 a (*.f64 a (sqrt.f64 b)))
(*.f64 (*.f64 a a) (sqrt.f64 b))
(cbrt.f64 (pow.f64 (*.f64 a (*.f64 a (sqrt.f64 b))) 3))
(*.f64 a (*.f64 a (sqrt.f64 b)))
(*.f64 (*.f64 a a) (sqrt.f64 b))
(cbrt.f64 (*.f64 (pow.f64 a 3) (pow.f64 (*.f64 a (sqrt.f64 b)) 3)))
(*.f64 a (*.f64 a (sqrt.f64 b)))
(*.f64 (*.f64 a a) (sqrt.f64 b))
(cbrt.f64 (*.f64 (pow.f64 (*.f64 a (sqrt.f64 b)) 3) (pow.f64 a 3)))
(*.f64 a (*.f64 a (sqrt.f64 b)))
(*.f64 (*.f64 a a) (sqrt.f64 b))
(expm1.f64 (log1p.f64 (*.f64 a (*.f64 a (sqrt.f64 b)))))
(*.f64 a (*.f64 a (sqrt.f64 b)))
(*.f64 (*.f64 a a) (sqrt.f64 b))
(log1p.f64 (expm1.f64 (*.f64 a (*.f64 a (sqrt.f64 b)))))
(*.f64 a (*.f64 a (sqrt.f64 b)))
(*.f64 (*.f64 a a) (sqrt.f64 b))
(exp.f64 (log.f64 (*.f64 a (*.f64 a (sqrt.f64 b)))))
(*.f64 a (*.f64 a (sqrt.f64 b)))
(*.f64 (*.f64 a a) (sqrt.f64 b))

localize14.0ms (0.4%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.1b
(pow.f64 (pow.f64 (*.f64 b a) 2) 3)
0.3b
(pow.f64 (*.f64 b a) 2)
23.6b
(cbrt.f64 (pow.f64 (pow.f64 (*.f64 b a) 2) 3))
Compiler

Compiled 38 to 22 computations (42.1% saved)

series5.0ms (0.1%)

Counts
2 → 48
Calls

12 calls:

TimeVariablePointExpression
1.0ms
a
@0
(pow.f64 (pow.f64 (*.f64 b a) 2) 3)
1.0ms
b
@0
(pow.f64 (pow.f64 (*.f64 b a) 2) 3)
1.0ms
b
@-inf
(pow.f64 (pow.f64 (*.f64 b a) 2) 3)
0.0ms
a
@-inf
(pow.f64 (pow.f64 (*.f64 b a) 2) 3)
0.0ms
b
@inf
(pow.f64 (pow.f64 (*.f64 b a) 2) 3)

rewrite42.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
676×pow1_binary64
637×add-log-exp_binary64
636×log1p-expm1-u_binary64
636×expm1-log1p-u_binary64
618×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0914
119514
2192514
Stop Event
node limit
Counts
2 → 53
Calls
Call 1
Inputs
(cbrt.f64 (pow.f64 (pow.f64 (*.f64 b a) 2) 3))
(pow.f64 (pow.f64 (*.f64 b a) 2) 3)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (*.f64 b a) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 b (*.f64 a (*.f64 b a)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 a (*.f64 b (*.f64 b a)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 b a) (*.f64 b a))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 b a) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (*.f64 b a) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 b b) (*.f64 a a))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 a a) (*.f64 b b))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) (cbrt.f64 (pow.f64 (*.f64 b a) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) (pow.f64 (pow.f64 (*.f64 b a) 4) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) (*.f64 (cbrt.f64 (*.f64 b a)) (*.f64 b a)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 4)) (pow.f64 (cbrt.f64 (*.f64 b a)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 b a)) (*.f64 (sqrt.f64 (*.f64 b a)) (*.f64 b a)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 b a) (sqrt.f64 (*.f64 b a))) (sqrt.f64 (*.f64 b a)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (*.f64 b a) 4) 1/3) (pow.f64 (cbrt.f64 (*.f64 b a)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/3) (pow.f64 (*.f64 b a) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 b a) b) a)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 b a) a) b)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 b a) (pow.f64 (cbrt.f64 (*.f64 b a)) 2)) (cbrt.f64 (*.f64 b a)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 b a) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 b a) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 b a) 6) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 b a) 4))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (*.f64 b a) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (*.f64 b a) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (*.f64 b a) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 2 (log.f64 (*.f64 b a))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (*.f64 b a) 6)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 b a) (*.f64 (*.f64 b a) (pow.f64 (*.f64 b a) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 b a) 2) (pow.f64 (*.f64 b a) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 b a) 6) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (*.f64 b a) 6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 b b) (*.f64 (*.f64 a a) (pow.f64 (*.f64 b a) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 b a) 4) (pow.f64 (*.f64 b a) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 4)) (*.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) (pow.f64 (*.f64 b a) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 b a) 3) (pow.f64 (*.f64 b a) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 b 6) (pow.f64 a 6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 a 6) (pow.f64 b 6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 6) (pow.f64 (cbrt.f64 (*.f64 b a)) 6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (*.f64 b a)) 6) (pow.f64 (sqrt.f64 (*.f64 b a)) 6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 4)) 3) (pow.f64 (*.f64 b a) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 b b) 3) (pow.f64 (*.f64 a a) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (*.f64 b a) 4) (*.f64 b a)) (*.f64 b a))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (*.f64 b a) 4) 1) (pow.f64 (*.f64 b a) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (*.f64 b a) 4) (cbrt.f64 (pow.f64 (*.f64 b a) 4))) (pow.f64 (cbrt.f64 (*.f64 b a)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (*.f64 b a) 4) (*.f64 b b)) (*.f64 a a))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 b a) 12))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (*.f64 b a) 6)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (*.f64 b a) 6) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (*.f64 b a) 6)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (*.f64 b a) 6)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 b a)) 6))))))

simplify44.0ms (1.3%)

Algorithm
egg-herbie
Rules
771×exp-prod_binary64
768×unswap-sqr_binary64
727×cube-prod_binary64
716×fabs-mul_binary64
491×fma-def_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0114854
1274707
2994707
34156707
Stop Event
node limit
Counts
101 → 56
Calls
Call 1
Inputs
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(-.f64 (+.f64 1 (pow.f64 (*.f64 b a) 2)) 1)
(*.f64 b (*.f64 a (*.f64 b a)))
(*.f64 a (*.f64 b (*.f64 b a)))
(*.f64 (*.f64 b a) (*.f64 b a))
(*.f64 (pow.f64 (*.f64 b a) 2) 1)
(*.f64 1 (pow.f64 (*.f64 b a) 2))
(*.f64 (*.f64 b b) (*.f64 a a))
(*.f64 (*.f64 a a) (*.f64 b b))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) (cbrt.f64 (pow.f64 (*.f64 b a) 4)))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) (pow.f64 (pow.f64 (*.f64 b a) 4) 1/3))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) (*.f64 (cbrt.f64 (*.f64 b a)) (*.f64 b a)))
(*.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 4)) (pow.f64 (cbrt.f64 (*.f64 b a)) 2))
(*.f64 (sqrt.f64 (*.f64 b a)) (*.f64 (sqrt.f64 (*.f64 b a)) (*.f64 b a)))
(*.f64 (*.f64 (*.f64 b a) (sqrt.f64 (*.f64 b a))) (sqrt.f64 (*.f64 b a)))
(*.f64 (pow.f64 (pow.f64 (*.f64 b a) 4) 1/3) (pow.f64 (cbrt.f64 (*.f64 b a)) 2))
(*.f64 (pow.f64 1 1/3) (pow.f64 (*.f64 b a) 2))
(*.f64 (*.f64 (*.f64 b a) b) a)
(*.f64 (*.f64 (*.f64 b a) a) b)
(*.f64 (*.f64 (*.f64 b a) (pow.f64 (cbrt.f64 (*.f64 b a)) 2)) (cbrt.f64 (*.f64 b a)))
(pow.f64 (*.f64 b a) 2)
(pow.f64 (pow.f64 (*.f64 b a) 2) 1)
(pow.f64 (pow.f64 (*.f64 b a) 6) 1/3)
(pow.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 3)
(sqrt.f64 (pow.f64 (*.f64 b a) 4))
(log.f64 (exp.f64 (pow.f64 (*.f64 b a) 2)))
(expm1.f64 (log1p.f64 (pow.f64 (*.f64 b a) 2)))
(log1p.f64 (expm1.f64 (pow.f64 (*.f64 b a) 2)))
(exp.f64 (*.f64 2 (log.f64 (*.f64 b a))))
(-.f64 (+.f64 1 (pow.f64 (*.f64 b a) 6)) 1)
(*.f64 (*.f64 b a) (*.f64 (*.f64 b a) (pow.f64 (*.f64 b a) 4)))
(*.f64 (pow.f64 (*.f64 b a) 2) (pow.f64 (*.f64 b a) 4))
(*.f64 (pow.f64 (*.f64 b a) 6) 1)
(*.f64 1 (pow.f64 (*.f64 b a) 6))
(*.f64 (*.f64 b b) (*.f64 (*.f64 a a) (pow.f64 (*.f64 b a) 4)))
(*.f64 (pow.f64 (*.f64 b a) 4) (pow.f64 (*.f64 b a) 2))
(*.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 4)) (*.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) (pow.f64 (*.f64 b a) 4)))
(*.f64 (pow.f64 (*.f64 b a) 3) (pow.f64 (*.f64 b a) 3))
(*.f64 (pow.f64 b 6) (pow.f64 a 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 6) (pow.f64 (cbrt.f64 (*.f64 b a)) 6))
(*.f64 (pow.f64 (sqrt.f64 (*.f64 b a)) 6) (pow.f64 (sqrt.f64 (*.f64 b a)) 6))
(*.f64 (pow.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 4)) 3) (pow.f64 (*.f64 b a) 2))
(*.f64 (pow.f64 (*.f64 b b) 3) (pow.f64 (*.f64 a a) 3))
(*.f64 (*.f64 (pow.f64 (*.f64 b a) 4) (*.f64 b a)) (*.f64 b a))
(*.f64 (*.f64 (pow.f64 (*.f64 b a) 4) 1) (pow.f64 (*.f64 b a) 2))
(*.f64 (*.f64 (pow.f64 (*.f64 b a) 4) (cbrt.f64 (pow.f64 (*.f64 b a) 4))) (pow.f64 (cbrt.f64 (*.f64 b a)) 2))
(*.f64 (*.f64 (pow.f64 (*.f64 b a) 4) (*.f64 b b)) (*.f64 a a))
(sqrt.f64 (pow.f64 (*.f64 b a) 12))
(log.f64 (exp.f64 (pow.f64 (*.f64 b a) 6)))
(cbrt.f64 (pow.f64 (pow.f64 (*.f64 b a) 6) 3))
(expm1.f64 (log1p.f64 (pow.f64 (*.f64 b a) 6)))
(log1p.f64 (expm1.f64 (pow.f64 (*.f64 b a) 6)))
(exp.f64 (*.f64 (log.f64 (*.f64 b a)) 6))
Outputs
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(-.f64 (+.f64 1 (pow.f64 (*.f64 b a) 2)) 1)
(pow.f64 (*.f64 a b) 2)
(*.f64 b (*.f64 a (*.f64 b a)))
(pow.f64 (*.f64 a b) 2)
(*.f64 a (*.f64 b (*.f64 b a)))
(pow.f64 (*.f64 a b) 2)
(*.f64 (*.f64 b a) (*.f64 b a))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 (*.f64 b a) 2) 1)
(pow.f64 (*.f64 a b) 2)
(*.f64 1 (pow.f64 (*.f64 b a) 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (*.f64 b b) (*.f64 a a))
(pow.f64 (*.f64 a b) 2)
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) (cbrt.f64 (pow.f64 (*.f64 b a) 4)))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) (pow.f64 (pow.f64 (*.f64 b a) 4) 1/3))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) (*.f64 (cbrt.f64 (*.f64 b a)) (*.f64 b a)))
(pow.f64 (*.f64 a b) 2)
(*.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 4)) (pow.f64 (cbrt.f64 (*.f64 b a)) 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (sqrt.f64 (*.f64 b a)) (*.f64 (sqrt.f64 (*.f64 b a)) (*.f64 b a)))
(pow.f64 (*.f64 a b) 2)
(*.f64 (*.f64 (*.f64 b a) (sqrt.f64 (*.f64 b a))) (sqrt.f64 (*.f64 b a)))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 (pow.f64 (*.f64 b a) 4) 1/3) (pow.f64 (cbrt.f64 (*.f64 b a)) 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 1 1/3) (pow.f64 (*.f64 b a) 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (*.f64 (*.f64 b a) b) a)
(pow.f64 (*.f64 a b) 2)
(*.f64 (*.f64 (*.f64 b a) a) b)
(pow.f64 (*.f64 a b) 2)
(*.f64 (*.f64 (*.f64 b a) (pow.f64 (cbrt.f64 (*.f64 b a)) 2)) (cbrt.f64 (*.f64 b a)))
(pow.f64 (*.f64 a b) 2)
(pow.f64 (*.f64 b a) 2)
(pow.f64 (*.f64 a b) 2)
(pow.f64 (pow.f64 (*.f64 b a) 2) 1)
(pow.f64 (*.f64 a b) 2)
(pow.f64 (pow.f64 (*.f64 b a) 6) 1/3)
(pow.f64 (*.f64 a b) 2)
(pow.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 3)
(pow.f64 (*.f64 a b) 2)
(sqrt.f64 (pow.f64 (*.f64 b a) 4))
(pow.f64 (*.f64 a b) 2)
(log.f64 (exp.f64 (pow.f64 (*.f64 b a) 2)))
(pow.f64 (*.f64 a b) 2)
(expm1.f64 (log1p.f64 (pow.f64 (*.f64 b a) 2)))
(pow.f64 (*.f64 a b) 2)
(log1p.f64 (expm1.f64 (pow.f64 (*.f64 b a) 2)))
(pow.f64 (*.f64 a b) 2)
(exp.f64 (*.f64 2 (log.f64 (*.f64 b a))))
(pow.f64 (*.f64 a b) 2)
(-.f64 (+.f64 1 (pow.f64 (*.f64 b a) 6)) 1)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (*.f64 b a) (*.f64 (*.f64 b a) (pow.f64 (*.f64 b a) 4)))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 (*.f64 b a) 2) (pow.f64 (*.f64 b a) 4))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 (*.f64 b a) 6) 1)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 1 (pow.f64 (*.f64 b a) 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (*.f64 b b) (*.f64 (*.f64 a a) (pow.f64 (*.f64 b a) 4)))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 (*.f64 b a) 4) (pow.f64 (*.f64 b a) 2))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 4)) (*.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) (pow.f64 (*.f64 b a) 4)))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 (*.f64 b a) 3) (pow.f64 (*.f64 b a) 3))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 b 6) (pow.f64 a 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 6) (pow.f64 (cbrt.f64 (*.f64 b a)) 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 (sqrt.f64 (*.f64 b a)) 6) (pow.f64 (sqrt.f64 (*.f64 b a)) 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 4)) 3) (pow.f64 (*.f64 b a) 2))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 (*.f64 b b) 3) (pow.f64 (*.f64 a a) 3))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (*.f64 (pow.f64 (*.f64 b a) 4) (*.f64 b a)) (*.f64 b a))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (*.f64 (pow.f64 (*.f64 b a) 4) 1) (pow.f64 (*.f64 b a) 2))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (*.f64 (pow.f64 (*.f64 b a) 4) (cbrt.f64 (pow.f64 (*.f64 b a) 4))) (pow.f64 (cbrt.f64 (*.f64 b a)) 2))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (*.f64 (pow.f64 (*.f64 b a) 4) (*.f64 b b)) (*.f64 a a))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(sqrt.f64 (pow.f64 (*.f64 b a) 12))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(log.f64 (exp.f64 (pow.f64 (*.f64 b a) 6)))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(cbrt.f64 (pow.f64 (pow.f64 (*.f64 b a) 6) 3))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(expm1.f64 (log1p.f64 (pow.f64 (*.f64 b a) 6)))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(log1p.f64 (expm1.f64 (pow.f64 (*.f64 b a) 6)))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(exp.f64 (*.f64 (log.f64 (*.f64 b a)) 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)

eval52.0ms (1.6%)

Compiler

Compiled 3419 to 1454 computations (57.5% saved)

prune49.0ms (1.5%)

Pruning

20 alts after pruning (9 fresh and 11 done)

PrunedKeptTotal
New2824286
Fresh156
Picked101
Done01111
Total28420304
Error
0.0b
Counts
304 → 20
Alt Table
Click to see full alt table
StatusErrorProgram
15.6b
(*.f64 (pow.f64 (*.f64 a (sqrt.f64 b)) 2) (neg.f64 b))
15.6b
(*.f64 (pow.f64 (cbrt.f64 (*.f64 (*.f64 a a) b)) 3) (neg.f64 b))
4.3b
(*.f64 (*.f64 (pow.f64 (cbrt.f64 a) 2) (*.f64 (cbrt.f64 a) (*.f64 a b))) (neg.f64 b))
21.7b
(*.f64 (*.f64 (*.f64 (*.f64 a (sqrt.f64 b)) a) (sqrt.f64 b)) (neg.f64 b))
15.3b
(*.f64 (*.f64 (*.f64 a a) b) (neg.f64 b))
47.9b
(*.f64 (*.f64 (sqrt.f64 a) (*.f64 (sqrt.f64 a) (*.f64 a b))) (neg.f64 b))
15.5b
(*.f64 (*.f64 (cbrt.f64 (*.f64 a a)) (*.f64 (*.f64 a b) (cbrt.f64 a))) (neg.f64 b))
17.7b
(*.f64 (*.f64 a (*.f64 a (*.f64 (cbrt.f64 b) (cbrt.f64 (*.f64 b b))))) (neg.f64 b))
3.7b
(*.f64 (*.f64 a (*.f64 a b)) (neg.f64 b))
37.6b
(*.f64 (*.f64 a a) (*.f64 b b))
20.6b
(*.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
25.1b
(*.f64 (cbrt.f64 (pow.f64 (*.f64 a (*.f64 a b)) 3)) (neg.f64 b))
16.8b
(*.f64 a (*.f64 (*.f64 b b) (neg.f64 a)))
4.0b
(*.f64 a (*.f64 (*.f64 a (neg.f64 b)) b))
37.5b
(*.f64 a (*.f64 a (*.f64 b b)))
1.2b
(neg.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 3))
0.8b
(neg.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) (*.f64 (cbrt.f64 (*.f64 b a)) (*.f64 b a))))
27.4b
(neg.f64 (*.f64 (*.f64 (*.f64 b a) (sqrt.f64 (*.f64 b a))) (sqrt.f64 (*.f64 b a))))
0.3b
(neg.f64 (*.f64 (*.f64 b a) (*.f64 b a)))
24.3b
(neg.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 6)))
Compiler

Compiled 374 to 228 computations (39% saved)

localize14.0ms (0.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) (*.f64 (cbrt.f64 (*.f64 b a)) (*.f64 b a)))
0.3b
(*.f64 (cbrt.f64 (*.f64 b a)) (*.f64 b a))
0.5b
(pow.f64 (cbrt.f64 (*.f64 b a)) 2)
11.4b
(cbrt.f64 (*.f64 b a))
Compiler

Compiled 57 to 15 computations (73.7% saved)

series13.0ms (0.4%)

Counts
4 → 24
Calls

24 calls:

TimeVariablePointExpression
2.0ms
a
@-inf
(*.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) (*.f64 (cbrt.f64 (*.f64 b a)) (*.f64 b a)))
1.0ms
a
@-inf
(cbrt.f64 (*.f64 b a))
1.0ms
a
@0
(pow.f64 (cbrt.f64 (*.f64 b a)) 2)
1.0ms
a
@-inf
(pow.f64 (cbrt.f64 (*.f64 b a)) 2)
1.0ms
b
@-inf
(pow.f64 (cbrt.f64 (*.f64 b a)) 2)

rewrite53.0ms (1.6%)

Algorithm
batch-egg-rewrite
Rules
720×pow1_binary64
667×add-log-exp_binary64
667×log1p-expm1-u_binary64
667×expm1-log1p-u_binary64
650×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0937
118531
2209031
Stop Event
node limit
Counts
4 → 68
Calls
Call 1
Inputs
(cbrt.f64 (*.f64 b a))
(pow.f64 (cbrt.f64 (*.f64 b a)) 2)
(*.f64 (cbrt.f64 (*.f64 b a)) (*.f64 b a))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) (*.f64 (cbrt.f64 (*.f64 b a)) (*.f64 b a)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (cbrt.f64 (*.f64 b a))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 b a)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (cbrt.f64 (*.f64 b a)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 (*.f64 b a))) (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 b a))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 b) (cbrt.f64 a))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 a) (cbrt.f64 b))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 b a))) 2) (cbrt.f64 (cbrt.f64 (*.f64 b a))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 b a) 1/6) (pow.f64 (*.f64 b a) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4))) (sqrt.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 b a))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/3) (cbrt.f64 (*.f64 b a)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (*.f64 b a)) 1/3) (pow.f64 (sqrt.f64 (*.f64 b a)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 b a) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 b a)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 b a))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 b a) 1/6) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (cbrt.f64 (*.f64 b a)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (cbrt.f64 (*.f64 b a))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (cbrt.f64 (*.f64 b a))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (cbrt.f64 (*.f64 b a))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (cbrt.f64 (*.f64 b a))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (cbrt.f64 (*.f64 b a)) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 b a)) (cbrt.f64 (*.f64 b a)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (cbrt.f64 (*.f64 b a)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4)) (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 b a))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 b) (*.f64 (cbrt.f64 a) (cbrt.f64 (*.f64 b a))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 b) 2) (pow.f64 (cbrt.f64 a) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 b a))) 2) (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 b a) 1/6) (sqrt.f64 (*.f64 b a)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 b a) 1/6) (*.f64 (pow.f64 (*.f64 b a) 1/6) (cbrt.f64 (*.f64 b a))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 b a)) (pow.f64 (*.f64 b a) 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4)) 2)) (sqrt.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 b (cbrt.f64 (*.f64 b a)))) (sqrt.f64 a))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cbrt.f64 (*.f64 b a)) (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 b a))) 2)) (cbrt.f64 (cbrt.f64 (*.f64 b a))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cbrt.f64 (*.f64 b a)) (cbrt.f64 b)) (cbrt.f64 a))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 b a) 2))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 2 (log.f64 (cbrt.f64 (*.f64 b a)))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (cbrt.f64 (*.f64 b a)) 4)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 b a) 4/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 b a)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (pow.f64 (*.f64 b a) 2) 2) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (*.f64 b a) 2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (*.f64 b a) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 b a) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 b a) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (pow.f64 (*.f64 b a) 2) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (pow.f64 (*.f64 b a) 2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (*.f64 b a) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (*.f64 b a) 2) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (*.f64 b a) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (*.f64 b a) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (pow.f64 (*.f64 b a) 2)))))))

simplify46.0ms (1.4%)

Algorithm
egg-herbie
Rules
713×fma-def_binary64
625×distribute-rgt-in_binary64
567×distribute-lft-in_binary64
395×log-prod_binary64
355×exp-prod_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01301167
1258918
2960781
33184775
Stop Event
node limit
Counts
92 → 91
Calls
Call 1
Inputs
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(-.f64 (+.f64 1 (cbrt.f64 (*.f64 b a))) 1)
(*.f64 (cbrt.f64 (*.f64 b a)) 1)
(*.f64 1 (cbrt.f64 (*.f64 b a)))
(*.f64 (cbrt.f64 (cbrt.f64 (*.f64 b a))) (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 b a))) 2))
(*.f64 (cbrt.f64 b) (cbrt.f64 a))
(*.f64 (cbrt.f64 a) (cbrt.f64 b))
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 b a))) 2) (cbrt.f64 (cbrt.f64 (*.f64 b a))))
(*.f64 (pow.f64 (*.f64 b a) 1/6) (pow.f64 (*.f64 b a) 1/6))
(*.f64 (sqrt.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4))) (sqrt.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 b a))) 2)))
(*.f64 (pow.f64 1 1/3) (cbrt.f64 (*.f64 b a)))
(*.f64 (pow.f64 (sqrt.f64 (*.f64 b a)) 1/3) (pow.f64 (sqrt.f64 (*.f64 b a)) 1/3))
(pow.f64 (*.f64 b a) 1/3)
(pow.f64 (cbrt.f64 (*.f64 b a)) 1)
(pow.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 1/2)
(pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 b a))) 3)
(pow.f64 (pow.f64 (*.f64 b a) 1/6) 2)
(sqrt.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2))
(fabs.f64 (cbrt.f64 (*.f64 b a)))
(log.f64 (exp.f64 (cbrt.f64 (*.f64 b a))))
(expm1.f64 (log1p.f64 (cbrt.f64 (*.f64 b a))))
(log1p.f64 (expm1.f64 (cbrt.f64 (*.f64 b a))))
(exp.f64 (log.f64 (cbrt.f64 (*.f64 b a))))
(-.f64 (+.f64 1 (pow.f64 (cbrt.f64 (*.f64 b a)) 2)) 1)
(*.f64 (cbrt.f64 (*.f64 b a)) (cbrt.f64 (*.f64 b a)))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 1)
(*.f64 1 (pow.f64 (cbrt.f64 (*.f64 b a)) 2))
(*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4)) (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 b a))) 2))
(*.f64 (cbrt.f64 b) (*.f64 (cbrt.f64 a) (cbrt.f64 (*.f64 b a))))
(*.f64 (pow.f64 (cbrt.f64 b) 2) (pow.f64 (cbrt.f64 a) 2))
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 b a))) 2) (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4)))
(*.f64 (pow.f64 (*.f64 b a) 1/6) (sqrt.f64 (*.f64 b a)))
(*.f64 (pow.f64 (*.f64 b a) 1/6) (*.f64 (pow.f64 (*.f64 b a) 1/6) (cbrt.f64 (*.f64 b a))))
(*.f64 (sqrt.f64 (*.f64 b a)) (pow.f64 (*.f64 b a) 1/6))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4)) 2)) (sqrt.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4))))
(*.f64 (sqrt.f64 (*.f64 b (cbrt.f64 (*.f64 b a)))) (sqrt.f64 a))
(*.f64 (*.f64 (cbrt.f64 (*.f64 b a)) (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 b a))) 2)) (cbrt.f64 (cbrt.f64 (*.f64 b a))))
(*.f64 (*.f64 (cbrt.f64 (*.f64 b a)) (cbrt.f64 b)) (cbrt.f64 a))
(sqrt.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4))
(fabs.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2))
(log.f64 (exp.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2)))
(cbrt.f64 (pow.f64 (*.f64 b a) 2))
(expm1.f64 (log1p.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2)))
(log1p.f64 (expm1.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2)))
(exp.f64 (*.f64 2 (log.f64 (cbrt.f64 (*.f64 b a)))))
(-.f64 (+.f64 1 (pow.f64 (cbrt.f64 (*.f64 b a)) 4)) 1)
(pow.f64 (*.f64 b a) 4/3)
(pow.f64 (cbrt.f64 (*.f64 b a)) 4)
(pow.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 2)
(pow.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4) 1)
(pow.f64 (pow.f64 (pow.f64 (*.f64 b a) 2) 2) 1/3)
(pow.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4)) 3)
(sqrt.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4) 2))
(log.f64 (exp.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4)))
(cbrt.f64 (pow.f64 (pow.f64 (*.f64 b a) 2) 2))
(expm1.f64 (log1p.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4)))
(log1p.f64 (expm1.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4)))
(exp.f64 (log.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4)))
(-.f64 (+.f64 1 (pow.f64 (*.f64 b a) 2)) 1)
(pow.f64 (*.f64 b a) 2)
(pow.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 3)
(pow.f64 (pow.f64 (*.f64 b a) 2) 1)
(pow.f64 (pow.f64 (pow.f64 (*.f64 b a) 2) 3) 1/3)
(sqrt.f64 (pow.f64 (pow.f64 (*.f64 b a) 2) 2))
(log.f64 (exp.f64 (pow.f64 (*.f64 b a) 2)))
(cbrt.f64 (pow.f64 (pow.f64 (*.f64 b a) 2) 3))
(expm1.f64 (log1p.f64 (pow.f64 (*.f64 b a) 2)))
(log1p.f64 (expm1.f64 (pow.f64 (*.f64 b a) 2)))
(exp.f64 (log.f64 (pow.f64 (*.f64 b a) 2)))
Outputs
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(-.f64 (+.f64 1 (cbrt.f64 (*.f64 b a))) 1)
(+.f64 1 (-.f64 (cbrt.f64 (*.f64 a b)) 1))
(+.f64 (cbrt.f64 (*.f64 a b)) 0)
(cbrt.f64 (*.f64 a b))
(*.f64 (cbrt.f64 (*.f64 b a)) 1)
(+.f64 1 (-.f64 (cbrt.f64 (*.f64 a b)) 1))
(+.f64 (cbrt.f64 (*.f64 a b)) 0)
(cbrt.f64 (*.f64 a b))
(*.f64 1 (cbrt.f64 (*.f64 b a)))
(+.f64 1 (-.f64 (cbrt.f64 (*.f64 a b)) 1))
(+.f64 (cbrt.f64 (*.f64 a b)) 0)
(cbrt.f64 (*.f64 a b))
(*.f64 (cbrt.f64 (cbrt.f64 (*.f64 b a))) (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 b a))) 2))
(+.f64 1 (-.f64 (cbrt.f64 (*.f64 a b)) 1))
(+.f64 (cbrt.f64 (*.f64 a b)) 0)
(cbrt.f64 (*.f64 a b))
(*.f64 (cbrt.f64 b) (cbrt.f64 a))
(*.f64 (cbrt.f64 a) (cbrt.f64 b))
(*.f64 (cbrt.f64 b) (cbrt.f64 a))
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 b a))) 2) (cbrt.f64 (cbrt.f64 (*.f64 b a))))
(+.f64 1 (-.f64 (cbrt.f64 (*.f64 a b)) 1))
(+.f64 (cbrt.f64 (*.f64 a b)) 0)
(cbrt.f64 (*.f64 a b))
(*.f64 (pow.f64 (*.f64 b a) 1/6) (pow.f64 (*.f64 b a) 1/6))
(+.f64 1 (-.f64 (cbrt.f64 (*.f64 a b)) 1))
(+.f64 (cbrt.f64 (*.f64 a b)) 0)
(cbrt.f64 (*.f64 a b))
(*.f64 (sqrt.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4))) (sqrt.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 b a))) 2)))
(*.f64 (sqrt.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 4))) (sqrt.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 a b))) 2)))
(*.f64 (sqrt.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 4))) (fabs.f64 (cbrt.f64 (cbrt.f64 (*.f64 a b)))))
(*.f64 (cbrt.f64 (cbrt.f64 (*.f64 a b))) (sqrt.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 4))))
(*.f64 (pow.f64 1 1/3) (cbrt.f64 (*.f64 b a)))
(+.f64 1 (-.f64 (cbrt.f64 (*.f64 a b)) 1))
(+.f64 (cbrt.f64 (*.f64 a b)) 0)
(cbrt.f64 (*.f64 a b))
(*.f64 (pow.f64 (sqrt.f64 (*.f64 b a)) 1/3) (pow.f64 (sqrt.f64 (*.f64 b a)) 1/3))
(*.f64 (cbrt.f64 (sqrt.f64 (*.f64 a b))) (cbrt.f64 (sqrt.f64 (*.f64 a b))))
(pow.f64 (pow.f64 (sqrt.f64 (*.f64 a b)) 1/6) 4)
(pow.f64 (*.f64 b a) 1/3)
(+.f64 1 (-.f64 (cbrt.f64 (*.f64 a b)) 1))
(+.f64 (cbrt.f64 (*.f64 a b)) 0)
(cbrt.f64 (*.f64 a b))
(pow.f64 (cbrt.f64 (*.f64 b a)) 1)
(+.f64 1 (-.f64 (cbrt.f64 (*.f64 a b)) 1))
(+.f64 (cbrt.f64 (*.f64 a b)) 0)
(cbrt.f64 (*.f64 a b))
(pow.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 1/2)
(+.f64 1 (-.f64 (cbrt.f64 (*.f64 a b)) 1))
(+.f64 (cbrt.f64 (*.f64 a b)) 0)
(cbrt.f64 (*.f64 a b))
(pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 b a))) 3)
(+.f64 1 (-.f64 (cbrt.f64 (*.f64 a b)) 1))
(+.f64 (cbrt.f64 (*.f64 a b)) 0)
(cbrt.f64 (*.f64 a b))
(pow.f64 (pow.f64 (*.f64 b a) 1/6) 2)
(+.f64 1 (-.f64 (cbrt.f64 (*.f64 a b)) 1))
(+.f64 (cbrt.f64 (*.f64 a b)) 0)
(cbrt.f64 (*.f64 a b))
(sqrt.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2))
(+.f64 1 (-.f64 (cbrt.f64 (*.f64 a b)) 1))
(+.f64 (cbrt.f64 (*.f64 a b)) 0)
(cbrt.f64 (*.f64 a b))
(fabs.f64 (cbrt.f64 (*.f64 b a)))
(+.f64 1 (-.f64 (cbrt.f64 (*.f64 a b)) 1))
(+.f64 (cbrt.f64 (*.f64 a b)) 0)
(cbrt.f64 (*.f64 a b))
(log.f64 (exp.f64 (cbrt.f64 (*.f64 b a))))
(+.f64 1 (-.f64 (cbrt.f64 (*.f64 a b)) 1))
(+.f64 (cbrt.f64 (*.f64 a b)) 0)
(cbrt.f64 (*.f64 a b))
(expm1.f64 (log1p.f64 (cbrt.f64 (*.f64 b a))))
(+.f64 1 (-.f64 (cbrt.f64 (*.f64 a b)) 1))
(+.f64 (cbrt.f64 (*.f64 a b)) 0)
(cbrt.f64 (*.f64 a b))
(log1p.f64 (expm1.f64 (cbrt.f64 (*.f64 b a))))
(+.f64 1 (-.f64 (cbrt.f64 (*.f64 a b)) 1))
(+.f64 (cbrt.f64 (*.f64 a b)) 0)
(cbrt.f64 (*.f64 a b))
(exp.f64 (log.f64 (cbrt.f64 (*.f64 b a))))
(+.f64 1 (-.f64 (cbrt.f64 (*.f64 a b)) 1))
(+.f64 (cbrt.f64 (*.f64 a b)) 0)
(cbrt.f64 (*.f64 a b))
(-.f64 (+.f64 1 (pow.f64 (cbrt.f64 (*.f64 b a)) 2)) 1)
(+.f64 1 (-.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) 1))
(+.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) 0)
(pow.f64 (cbrt.f64 (*.f64 a b)) 2)
(*.f64 (cbrt.f64 (*.f64 b a)) (cbrt.f64 (*.f64 b a)))
(+.f64 1 (-.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) 1))
(+.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) 0)
(pow.f64 (cbrt.f64 (*.f64 a b)) 2)
(*.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 1)
(+.f64 1 (-.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) 1))
(+.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) 0)
(pow.f64 (cbrt.f64 (*.f64 a b)) 2)
(*.f64 1 (pow.f64 (cbrt.f64 (*.f64 b a)) 2))
(+.f64 1 (-.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) 1))
(+.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) 0)
(pow.f64 (cbrt.f64 (*.f64 a b)) 2)
(*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4)) (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 b a))) 2))
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 a b))) 2) (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 4)))
(*.f64 (cbrt.f64 b) (*.f64 (cbrt.f64 a) (cbrt.f64 (*.f64 b a))))
(*.f64 (cbrt.f64 b) (*.f64 (cbrt.f64 (*.f64 a b)) (cbrt.f64 a)))
(*.f64 (cbrt.f64 (*.f64 a b)) (*.f64 (cbrt.f64 b) (cbrt.f64 a)))
(*.f64 (pow.f64 (cbrt.f64 b) 2) (pow.f64 (cbrt.f64 a) 2))
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 b a))) 2) (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4)))
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 a b))) 2) (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 4)))
(*.f64 (pow.f64 (*.f64 b a) 1/6) (sqrt.f64 (*.f64 b a)))
(+.f64 1 (-.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) 1))
(+.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) 0)
(pow.f64 (cbrt.f64 (*.f64 a b)) 2)
(*.f64 (pow.f64 (*.f64 b a) 1/6) (*.f64 (pow.f64 (*.f64 b a) 1/6) (cbrt.f64 (*.f64 b a))))
(+.f64 1 (-.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) 1))
(+.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) 0)
(pow.f64 (cbrt.f64 (*.f64 a b)) 2)
(*.f64 (sqrt.f64 (*.f64 b a)) (pow.f64 (*.f64 b a) 1/6))
(+.f64 1 (-.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) 1))
(+.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) 0)
(pow.f64 (cbrt.f64 (*.f64 a b)) 2)
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4)) 2)) (sqrt.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4))))
(+.f64 1 (-.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) 1))
(+.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) 0)
(pow.f64 (cbrt.f64 (*.f64 a b)) 2)
(*.f64 (sqrt.f64 (*.f64 b (cbrt.f64 (*.f64 b a)))) (sqrt.f64 a))
(*.f64 (sqrt.f64 (*.f64 b (cbrt.f64 (*.f64 a b)))) (sqrt.f64 a))
(*.f64 (*.f64 (cbrt.f64 (*.f64 b a)) (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 b a))) 2)) (cbrt.f64 (cbrt.f64 (*.f64 b a))))
(+.f64 1 (-.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) 1))
(+.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) 0)
(pow.f64 (cbrt.f64 (*.f64 a b)) 2)
(*.f64 (*.f64 (cbrt.f64 (*.f64 b a)) (cbrt.f64 b)) (cbrt.f64 a))
(*.f64 (cbrt.f64 b) (*.f64 (cbrt.f64 (*.f64 a b)) (cbrt.f64 a)))
(*.f64 (cbrt.f64 (*.f64 a b)) (*.f64 (cbrt.f64 b) (cbrt.f64 a)))
(sqrt.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4))
(+.f64 1 (-.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) 1))
(+.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) 0)
(pow.f64 (cbrt.f64 (*.f64 a b)) 2)
(fabs.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2))
(+.f64 1 (-.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) 1))
(+.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) 0)
(pow.f64 (cbrt.f64 (*.f64 a b)) 2)
(log.f64 (exp.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2)))
(+.f64 1 (-.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) 1))
(+.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) 0)
(pow.f64 (cbrt.f64 (*.f64 a b)) 2)
(cbrt.f64 (pow.f64 (*.f64 b a) 2))
(+.f64 1 (-.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) 1))
(+.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) 0)
(pow.f64 (cbrt.f64 (*.f64 a b)) 2)
(expm1.f64 (log1p.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2)))
(+.f64 1 (-.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) 1))
(+.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) 0)
(pow.f64 (cbrt.f64 (*.f64 a b)) 2)
(log1p.f64 (expm1.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2)))
(+.f64 1 (-.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) 1))
(+.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) 0)
(pow.f64 (cbrt.f64 (*.f64 a b)) 2)
(exp.f64 (*.f64 2 (log.f64 (cbrt.f64 (*.f64 b a)))))
(+.f64 1 (-.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) 1))
(+.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) 0)
(pow.f64 (cbrt.f64 (*.f64 a b)) 2)
(-.f64 (+.f64 1 (pow.f64 (cbrt.f64 (*.f64 b a)) 4)) 1)
(+.f64 1 (-.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 4) 1))
(+.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 4) 0)
(pow.f64 (cbrt.f64 (*.f64 a b)) 4)
(pow.f64 (*.f64 b a) 4/3)
(+.f64 1 (-.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 4) 1))
(+.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 4) 0)
(pow.f64 (cbrt.f64 (*.f64 a b)) 4)
(pow.f64 (cbrt.f64 (*.f64 b a)) 4)
(+.f64 1 (-.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 4) 1))
(+.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 4) 0)
(pow.f64 (cbrt.f64 (*.f64 a b)) 4)
(pow.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 2)
(+.f64 1 (-.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 4) 1))
(+.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 4) 0)
(pow.f64 (cbrt.f64 (*.f64 a b)) 4)
(pow.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4) 1)
(+.f64 1 (-.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 4) 1))
(+.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 4) 0)
(pow.f64 (cbrt.f64 (*.f64 a b)) 4)
(pow.f64 (pow.f64 (pow.f64 (*.f64 b a) 2) 2) 1/3)
(cbrt.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 2))
(cbrt.f64 (pow.f64 (*.f64 a b) 4))
(pow.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4)) 3)
(+.f64 1 (-.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 4) 1))
(+.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 4) 0)
(pow.f64 (cbrt.f64 (*.f64 a b)) 4)
(sqrt.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4) 2))
(+.f64 1 (-.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 4) 1))
(+.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 4) 0)
(pow.f64 (cbrt.f64 (*.f64 a b)) 4)
(log.f64 (exp.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4)))
(+.f64 1 (-.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 4) 1))
(+.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 4) 0)
(pow.f64 (cbrt.f64 (*.f64 a b)) 4)
(cbrt.f64 (pow.f64 (pow.f64 (*.f64 b a) 2) 2))
(cbrt.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 2))
(cbrt.f64 (pow.f64 (*.f64 a b) 4))
(expm1.f64 (log1p.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4)))
(+.f64 1 (-.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 4) 1))
(+.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 4) 0)
(pow.f64 (cbrt.f64 (*.f64 a b)) 4)
(log1p.f64 (expm1.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4)))
(+.f64 1 (-.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 4) 1))
(+.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 4) 0)
(pow.f64 (cbrt.f64 (*.f64 a b)) 4)
(exp.f64 (log.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4)))
(+.f64 1 (-.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 4) 1))
(+.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 4) 0)
(pow.f64 (cbrt.f64 (*.f64 a b)) 4)
(-.f64 (+.f64 1 (pow.f64 (*.f64 b a) 2)) 1)
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(pow.f64 (*.f64 b a) 2)
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(pow.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 3)
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(pow.f64 (pow.f64 (*.f64 b a) 2) 1)
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(pow.f64 (pow.f64 (pow.f64 (*.f64 b a) 2) 3) 1/3)
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(sqrt.f64 (pow.f64 (pow.f64 (*.f64 b a) 2) 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(log.f64 (exp.f64 (pow.f64 (*.f64 b a) 2)))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(cbrt.f64 (pow.f64 (pow.f64 (*.f64 b a) 2) 3))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(expm1.f64 (log1p.f64 (pow.f64 (*.f64 b a) 2)))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(log1p.f64 (expm1.f64 (pow.f64 (*.f64 b a) 2)))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(exp.f64 (log.f64 (pow.f64 (*.f64 b a) 2)))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)

localize10.0ms (0.3%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.2b
(pow.f64 (*.f64 a b) 6)
23.6b
(cbrt.f64 (pow.f64 (*.f64 a b) 6))
Compiler

Compiled 26 to 13 computations (50% saved)

series6.0ms (0.2%)

Counts
2 → 48
Calls

12 calls:

TimeVariablePointExpression
1.0ms
b
@0
(pow.f64 (*.f64 a b) 6)
1.0ms
b
@-inf
(pow.f64 (*.f64 a b) 6)
1.0ms
a
@-inf
(pow.f64 (*.f64 a b) 6)
1.0ms
a
@0
(pow.f64 (*.f64 a b) 6)
1.0ms
a
@inf
(pow.f64 (*.f64 a b) 6)

rewrite42.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
609×pow1_binary64
570×add-log-exp_binary64
570×log1p-expm1-u_binary64
570×expm1-log1p-u_binary64
554×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0716
114614
2170014
Stop Event
node limit
Counts
2 → 47
Calls
Call 1
Inputs
(cbrt.f64 (pow.f64 (*.f64 a b) 6))
(pow.f64 (*.f64 a b) 6)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (*.f64 a b) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 a (*.f64 b (*.f64 a b)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 b (*.f64 a (*.f64 a b)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 a b) (*.f64 a b))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 a b) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (*.f64 a b) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 b b) (*.f64 a a))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 a a) (*.f64 b b))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) (cbrt.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 12))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) (*.f64 (cbrt.f64 (*.f64 a b)) (*.f64 a b)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 12))) (pow.f64 (cbrt.f64 (*.f64 a b)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 a b)) (*.f64 (sqrt.f64 (*.f64 a b)) (*.f64 a b)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 a b) (sqrt.f64 (*.f64 a b))) (sqrt.f64 (*.f64 a b)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/3) (pow.f64 (*.f64 a b) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 12)) 1/3) (pow.f64 (cbrt.f64 (*.f64 a b)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 a 6) 1/3) (pow.f64 (pow.f64 b 6) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 a b) a) b)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 a b) b) a)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 a b) (pow.f64 (cbrt.f64 (*.f64 a b)) 2)) (cbrt.f64 (*.f64 a b)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 a b) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 a b) 6) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 a b) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) 3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 12)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (*.f64 a b) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (*.f64 a b) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (*.f64 a b) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (pow.f64 (*.f64 a b) 2)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (*.f64 a b) 6)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 a b) 6) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 a b) 2) (cbrt.f64 (pow.f64 (*.f64 a b) 12)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (*.f64 a b) 6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 12)) (pow.f64 (*.f64 a b) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 a b) 3) (pow.f64 (*.f64 a b) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 a 6) (pow.f64 b 6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 b 6) (pow.f64 a 6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) 6) (pow.f64 (cbrt.f64 (*.f64 a b)) 6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (*.f64 a b)) 6) (pow.f64 (sqrt.f64 (*.f64 a b)) 6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 12)) 1) (pow.f64 (*.f64 a b) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 12)) (cbrt.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 12)))) (pow.f64 (cbrt.f64 (*.f64 a b)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 12)) (*.f64 a b)) (*.f64 a b))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 a b) 12))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (*.f64 a b) 6)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (*.f64 a b) 6) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (*.f64 a b) 6)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (*.f64 a b) 6)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 6 (log.f64 (*.f64 a b))))))))

simplify55.0ms (1.7%)

Algorithm
egg-herbie
Rules
716×exp-prod_binary64
618×fma-neg_binary64
451×exp-sum_binary64
384×log-prod_binary64
346×fma-def_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0102905
1231791
2695791
32103791
46108791
Stop Event
node limit
Counts
95 → 52
Calls
Call 1
Inputs
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(-.f64 (+.f64 1 (pow.f64 (*.f64 a b) 2)) 1)
(*.f64 a (*.f64 b (*.f64 a b)))
(*.f64 b (*.f64 a (*.f64 a b)))
(*.f64 (*.f64 a b) (*.f64 a b))
(*.f64 (pow.f64 (*.f64 a b) 2) 1)
(*.f64 1 (pow.f64 (*.f64 a b) 2))
(*.f64 (*.f64 b b) (*.f64 a a))
(*.f64 (*.f64 a a) (*.f64 b b))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) (cbrt.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 12))))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) (*.f64 (cbrt.f64 (*.f64 a b)) (*.f64 a b)))
(*.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 12))) (pow.f64 (cbrt.f64 (*.f64 a b)) 2))
(*.f64 (sqrt.f64 (*.f64 a b)) (*.f64 (sqrt.f64 (*.f64 a b)) (*.f64 a b)))
(*.f64 (*.f64 (*.f64 a b) (sqrt.f64 (*.f64 a b))) (sqrt.f64 (*.f64 a b)))
(*.f64 (pow.f64 1 1/3) (pow.f64 (*.f64 a b) 2))
(*.f64 (pow.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 12)) 1/3) (pow.f64 (cbrt.f64 (*.f64 a b)) 2))
(*.f64 (pow.f64 (pow.f64 a 6) 1/3) (pow.f64 (pow.f64 b 6) 1/3))
(*.f64 (*.f64 (*.f64 a b) a) b)
(*.f64 (*.f64 (*.f64 a b) b) a)
(*.f64 (*.f64 (*.f64 a b) (pow.f64 (cbrt.f64 (*.f64 a b)) 2)) (cbrt.f64 (*.f64 a b)))
(pow.f64 (*.f64 a b) 2)
(pow.f64 (pow.f64 (*.f64 a b) 6) 1/3)
(pow.f64 (pow.f64 (*.f64 a b) 2) 1)
(pow.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) 3)
(sqrt.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 12)))
(log.f64 (exp.f64 (pow.f64 (*.f64 a b) 2)))
(expm1.f64 (log1p.f64 (pow.f64 (*.f64 a b) 2)))
(log1p.f64 (expm1.f64 (pow.f64 (*.f64 a b) 2)))
(exp.f64 (log.f64 (pow.f64 (*.f64 a b) 2)))
(-.f64 (+.f64 1 (pow.f64 (*.f64 a b) 6)) 1)
(*.f64 (pow.f64 (*.f64 a b) 6) 1)
(*.f64 (pow.f64 (*.f64 a b) 2) (cbrt.f64 (pow.f64 (*.f64 a b) 12)))
(*.f64 1 (pow.f64 (*.f64 a b) 6))
(*.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 12)) (pow.f64 (*.f64 a b) 2))
(*.f64 (pow.f64 (*.f64 a b) 3) (pow.f64 (*.f64 a b) 3))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(*.f64 (pow.f64 b 6) (pow.f64 a 6))
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) 6) (pow.f64 (cbrt.f64 (*.f64 a b)) 6))
(*.f64 (pow.f64 (sqrt.f64 (*.f64 a b)) 6) (pow.f64 (sqrt.f64 (*.f64 a b)) 6))
(*.f64 (*.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 12)) 1) (pow.f64 (*.f64 a b) 2))
(*.f64 (*.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 12)) (cbrt.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 12)))) (pow.f64 (cbrt.f64 (*.f64 a b)) 2))
(*.f64 (*.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 12)) (*.f64 a b)) (*.f64 a b))
(sqrt.f64 (pow.f64 (*.f64 a b) 12))
(log.f64 (exp.f64 (pow.f64 (*.f64 a b) 6)))
(cbrt.f64 (pow.f64 (pow.f64 (*.f64 a b) 6) 3))
(expm1.f64 (log1p.f64 (pow.f64 (*.f64 a b) 6)))
(log1p.f64 (expm1.f64 (pow.f64 (*.f64 a b) 6)))
(exp.f64 (*.f64 6 (log.f64 (*.f64 a b))))
Outputs
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(-.f64 (+.f64 1 (pow.f64 (*.f64 a b) 2)) 1)
(pow.f64 (*.f64 a b) 2)
(*.f64 a (*.f64 b (*.f64 a b)))
(pow.f64 (*.f64 a b) 2)
(*.f64 b (*.f64 a (*.f64 a b)))
(pow.f64 (*.f64 a b) 2)
(*.f64 (*.f64 a b) (*.f64 a b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 (*.f64 a b) 2) 1)
(pow.f64 (*.f64 a b) 2)
(*.f64 1 (pow.f64 (*.f64 a b) 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (*.f64 b b) (*.f64 a a))
(pow.f64 (*.f64 a b) 2)
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) (cbrt.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 12))))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) (*.f64 (cbrt.f64 (*.f64 a b)) (*.f64 a b)))
(pow.f64 (*.f64 a b) 2)
(*.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 12))) (pow.f64 (cbrt.f64 (*.f64 a b)) 2))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) (cbrt.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 12))))
(*.f64 (sqrt.f64 (*.f64 a b)) (*.f64 (sqrt.f64 (*.f64 a b)) (*.f64 a b)))
(pow.f64 (*.f64 a b) 2)
(*.f64 (*.f64 (*.f64 a b) (sqrt.f64 (*.f64 a b))) (sqrt.f64 (*.f64 a b)))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 1 1/3) (pow.f64 (*.f64 a b) 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 12)) 1/3) (pow.f64 (cbrt.f64 (*.f64 a b)) 2))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) (cbrt.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 12))))
(*.f64 (pow.f64 (pow.f64 a 6) 1/3) (pow.f64 (pow.f64 b 6) 1/3))
(*.f64 (cbrt.f64 (pow.f64 a 6)) (cbrt.f64 (pow.f64 b 6)))
(*.f64 (*.f64 (*.f64 a b) a) b)
(pow.f64 (*.f64 a b) 2)
(*.f64 (*.f64 (*.f64 a b) b) a)
(pow.f64 (*.f64 a b) 2)
(*.f64 (*.f64 (*.f64 a b) (pow.f64 (cbrt.f64 (*.f64 a b)) 2)) (cbrt.f64 (*.f64 a b)))
(pow.f64 (*.f64 a b) 2)
(pow.f64 (*.f64 a b) 2)
(pow.f64 (pow.f64 (*.f64 a b) 6) 1/3)
(pow.f64 (*.f64 a b) 2)
(pow.f64 (pow.f64 (*.f64 a b) 2) 1)
(pow.f64 (*.f64 a b) 2)
(pow.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) 3)
(pow.f64 (*.f64 a b) 2)
(sqrt.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 12)))
(log.f64 (exp.f64 (pow.f64 (*.f64 a b) 2)))
(pow.f64 (*.f64 a b) 2)
(expm1.f64 (log1p.f64 (pow.f64 (*.f64 a b) 2)))
(pow.f64 (*.f64 a b) 2)
(log1p.f64 (expm1.f64 (pow.f64 (*.f64 a b) 2)))
(pow.f64 (*.f64 a b) 2)
(exp.f64 (log.f64 (pow.f64 (*.f64 a b) 2)))
(pow.f64 (*.f64 a b) 2)
(-.f64 (+.f64 1 (pow.f64 (*.f64 a b) 6)) 1)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 (*.f64 a b) 6) 1)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 (*.f64 a b) 2) (cbrt.f64 (pow.f64 (*.f64 a b) 12)))
(*.f64 1 (pow.f64 (*.f64 a b) 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 12)) (pow.f64 (*.f64 a b) 2))
(*.f64 (pow.f64 (*.f64 a b) 2) (cbrt.f64 (pow.f64 (*.f64 a b) 12)))
(*.f64 (pow.f64 (*.f64 a b) 3) (pow.f64 (*.f64 a b) 3))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 b 6) (pow.f64 a 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) 6) (pow.f64 (cbrt.f64 (*.f64 a b)) 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 (sqrt.f64 (*.f64 a b)) 6) (pow.f64 (sqrt.f64 (*.f64 a b)) 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (*.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 12)) 1) (pow.f64 (*.f64 a b) 2))
(*.f64 (pow.f64 (*.f64 a b) 2) (cbrt.f64 (pow.f64 (*.f64 a b) 12)))
(*.f64 (*.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 12)) (cbrt.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 12)))) (pow.f64 (cbrt.f64 (*.f64 a b)) 2))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) (*.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 12)) (cbrt.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 12)))))
(*.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 12))) (*.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) (cbrt.f64 (pow.f64 (*.f64 a b) 12))))
(*.f64 (*.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 12)) (*.f64 a b)) (*.f64 a b))
(*.f64 (pow.f64 (*.f64 a b) 2) (cbrt.f64 (pow.f64 (*.f64 a b) 12)))
(sqrt.f64 (pow.f64 (*.f64 a b) 12))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(log.f64 (exp.f64 (pow.f64 (*.f64 a b) 6)))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(cbrt.f64 (pow.f64 (pow.f64 (*.f64 a b) 6) 3))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(expm1.f64 (log1p.f64 (pow.f64 (*.f64 a b) 6)))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(log1p.f64 (expm1.f64 (pow.f64 (*.f64 a b) 6)))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(exp.f64 (*.f64 6 (log.f64 (*.f64 a b))))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)

localize10.0ms (0.3%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(*.f64 (sqrt.f64 a) (*.f64 (sqrt.f64 a) (*.f64 a b)))
0.1b
(*.f64 (sqrt.f64 a) (*.f64 a b))
0.9b
(*.f64 (*.f64 (sqrt.f64 a) (*.f64 (sqrt.f64 a) (*.f64 a b))) (neg.f64 b))
Compiler

Compiled 38 to 8 computations (78.9% saved)

series8.0ms (0.2%)

Counts
3 → 60
Calls

18 calls:

TimeVariablePointExpression
1.0ms
a
@-inf
(*.f64 (*.f64 (sqrt.f64 a) (*.f64 (sqrt.f64 a) (*.f64 a b))) (neg.f64 b))
1.0ms
a
@-inf
(*.f64 (sqrt.f64 a) (*.f64 (sqrt.f64 a) (*.f64 a b)))
1.0ms
b
@0
(*.f64 (sqrt.f64 a) (*.f64 a b))
1.0ms
a
@-inf
(*.f64 (sqrt.f64 a) (*.f64 a b))
1.0ms
a
@0
(*.f64 (sqrt.f64 a) (*.f64 a b))

rewrite47.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
790×pow1_binary64
729×add-log-exp_binary64
728×log1p-expm1-u_binary64
728×expm1-log1p-u_binary64
711×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0928
118821
2252521
Stop Event
node limit
Counts
3 → 42
Calls
Call 1
Inputs
(*.f64 (*.f64 (sqrt.f64 a) (*.f64 (sqrt.f64 a) (*.f64 a b))) (neg.f64 b))
(*.f64 (sqrt.f64 a) (*.f64 a b))
(*.f64 (sqrt.f64 a) (*.f64 (sqrt.f64 a) (*.f64 a b)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (pow.f64 (*.f64 a b) 2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (*.f64 a b) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 a b) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 a b) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) 3)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (pow.f64 (*.f64 a b) 2))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (*.f64 a b) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 b 3) (pow.f64 (*.f64 a (*.f64 a b)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 a (*.f64 a b)) 3) (pow.f64 b 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (*.f64 a b) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (*.f64 a b) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (pow.f64 (*.f64 a b) 2)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 b (pow.f64 a 3/2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 b (pow.f64 a 3/2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 b (pow.f64 a 3/2)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 a) (cbrt.f64 b)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 b (pow.f64 a 3/2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 a 3) (*.f64 b b)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (pow.f64 a 3/2)) b))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 b (pow.f64 a 3/2)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 a 3/2) (pow.f64 (*.f64 a b) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 a b) 3) (pow.f64 a 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 b (pow.f64 a 3/2))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 b (pow.f64 a 3/2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 b (pow.f64 a 3/2))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 a (*.f64 a b))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 a (*.f64 a b)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 a (*.f64 a b)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 a (*.f64 a b))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 a (*.f64 a b)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 a) (*.f64 a b)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 a (*.f64 a b)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 a 3) (pow.f64 (*.f64 a b) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 a 3/2) (pow.f64 (*.f64 b (pow.f64 a 3/2)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 b (pow.f64 a 3/2)) 3) (pow.f64 a 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 a (*.f64 a b))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 a (*.f64 a b))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 a (*.f64 a b))))))))

simplify45.0ms (1.4%)

Algorithm
egg-herbie
Rules
826×log-prod_binary64
673×unswap-sqr_binary64
651×fma-def_binary64
266×fma-neg_binary64
223×*-commutative_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0110972
1265855
21058766
33916766
Stop Event
node limit
Counts
102 → 54
Calls
Call 1
Inputs
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (sqrt.f64 (pow.f64 a 3)) b)
(*.f64 (sqrt.f64 (pow.f64 a 3)) b)
(*.f64 (sqrt.f64 (pow.f64 a 3)) b)
(*.f64 (sqrt.f64 (pow.f64 a 3)) b)
(*.f64 (sqrt.f64 (pow.f64 a 3)) b)
(*.f64 (sqrt.f64 (pow.f64 a 3)) b)
(*.f64 (sqrt.f64 (pow.f64 a 3)) b)
(*.f64 (sqrt.f64 (pow.f64 a 3)) b)
(*.f64 (sqrt.f64 (pow.f64 a 3)) b)
(*.f64 (sqrt.f64 (pow.f64 a 3)) b)
(*.f64 (sqrt.f64 (pow.f64 a 3)) b)
(*.f64 (sqrt.f64 (pow.f64 a 3)) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (pow.f64 a 2) b)))
(*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (pow.f64 a 2) b)))
(*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (pow.f64 a 2) b)))
(*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (pow.f64 a 2) b)))
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(-.f64 0 (pow.f64 (*.f64 a b) 2))
(-.f64 (+.f64 1 (pow.f64 (*.f64 a b) 2)) 1)
(pow.f64 (*.f64 a b) 2)
(pow.f64 (pow.f64 (*.f64 a b) 2) 1)
(pow.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 3) 1/3)
(pow.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) 3)
(neg.f64 (pow.f64 (*.f64 a b) 2))
(sqrt.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 2))
(log.f64 (exp.f64 (pow.f64 (*.f64 a b) 2)))
(cbrt.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 3))
(cbrt.f64 (*.f64 (pow.f64 b 3) (pow.f64 (*.f64 a (*.f64 a b)) 3)))
(cbrt.f64 (*.f64 (pow.f64 (*.f64 a (*.f64 a b)) 3) (pow.f64 b 3)))
(expm1.f64 (log1p.f64 (pow.f64 (*.f64 a b) 2)))
(log1p.f64 (expm1.f64 (pow.f64 (*.f64 a b) 2)))
(exp.f64 (log.f64 (pow.f64 (*.f64 a b) 2)))
(-.f64 (+.f64 1 (*.f64 b (pow.f64 a 3/2))) 1)
(pow.f64 (*.f64 b (pow.f64 a 3/2)) 1)
(pow.f64 (pow.f64 (*.f64 b (pow.f64 a 3/2)) 3) 1/3)
(pow.f64 (*.f64 (sqrt.f64 a) (cbrt.f64 b)) 3)
(pow.f64 (sqrt.f64 (*.f64 b (pow.f64 a 3/2))) 2)
(sqrt.f64 (*.f64 (pow.f64 a 3) (*.f64 b b)))
(log.f64 (pow.f64 (exp.f64 (pow.f64 a 3/2)) b))
(cbrt.f64 (pow.f64 (*.f64 b (pow.f64 a 3/2)) 3))
(cbrt.f64 (*.f64 (pow.f64 a 3/2) (pow.f64 (*.f64 a b) 3)))
(cbrt.f64 (*.f64 (pow.f64 (*.f64 a b) 3) (pow.f64 a 3/2)))
(expm1.f64 (log1p.f64 (*.f64 b (pow.f64 a 3/2))))
(log1p.f64 (expm1.f64 (*.f64 b (pow.f64 a 3/2))))
(exp.f64 (log.f64 (*.f64 b (pow.f64 a 3/2))))
(-.f64 (+.f64 1 (*.f64 a (*.f64 a b))) 1)
(pow.f64 (*.f64 a (*.f64 a b)) 1)
(pow.f64 (pow.f64 (*.f64 a (*.f64 a b)) 3) 1/3)
(pow.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 3)
(pow.f64 (sqrt.f64 (*.f64 a (*.f64 a b))) 2)
(sqrt.f64 (pow.f64 (*.f64 a (*.f64 a b)) 2))
(log.f64 (pow.f64 (exp.f64 a) (*.f64 a b)))
(cbrt.f64 (pow.f64 (*.f64 a (*.f64 a b)) 3))
(cbrt.f64 (*.f64 (pow.f64 a 3) (pow.f64 (*.f64 a b) 3)))
(cbrt.f64 (*.f64 (pow.f64 a 3/2) (pow.f64 (*.f64 b (pow.f64 a 3/2)) 3)))
(cbrt.f64 (*.f64 (pow.f64 (*.f64 b (pow.f64 a 3/2)) 3) (pow.f64 a 3/2)))
(expm1.f64 (log1p.f64 (*.f64 a (*.f64 a b))))
(log1p.f64 (expm1.f64 (*.f64 a (*.f64 a b))))
(exp.f64 (log.f64 (*.f64 a (*.f64 a b))))
Outputs
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 (sqrt.f64 (pow.f64 a 3)) b)
(*.f64 b (sqrt.f64 (pow.f64 a 3)))
(*.f64 b (pow.f64 a 3/2))
(*.f64 (sqrt.f64 (pow.f64 a 3)) b)
(*.f64 b (sqrt.f64 (pow.f64 a 3)))
(*.f64 b (pow.f64 a 3/2))
(*.f64 (sqrt.f64 (pow.f64 a 3)) b)
(*.f64 b (sqrt.f64 (pow.f64 a 3)))
(*.f64 b (pow.f64 a 3/2))
(*.f64 (sqrt.f64 (pow.f64 a 3)) b)
(*.f64 b (sqrt.f64 (pow.f64 a 3)))
(*.f64 b (pow.f64 a 3/2))
(*.f64 (sqrt.f64 (pow.f64 a 3)) b)
(*.f64 b (sqrt.f64 (pow.f64 a 3)))
(*.f64 b (pow.f64 a 3/2))
(*.f64 (sqrt.f64 (pow.f64 a 3)) b)
(*.f64 b (sqrt.f64 (pow.f64 a 3)))
(*.f64 b (pow.f64 a 3/2))
(*.f64 (sqrt.f64 (pow.f64 a 3)) b)
(*.f64 b (sqrt.f64 (pow.f64 a 3)))
(*.f64 b (pow.f64 a 3/2))
(*.f64 (sqrt.f64 (pow.f64 a 3)) b)
(*.f64 b (sqrt.f64 (pow.f64 a 3)))
(*.f64 b (pow.f64 a 3/2))
(*.f64 (sqrt.f64 (pow.f64 a 3)) b)
(*.f64 b (sqrt.f64 (pow.f64 a 3)))
(*.f64 b (pow.f64 a 3/2))
(*.f64 (sqrt.f64 (pow.f64 a 3)) b)
(*.f64 b (sqrt.f64 (pow.f64 a 3)))
(*.f64 b (pow.f64 a 3/2))
(*.f64 (sqrt.f64 (pow.f64 a 3)) b)
(*.f64 b (sqrt.f64 (pow.f64 a 3)))
(*.f64 b (pow.f64 a 3/2))
(*.f64 (sqrt.f64 (pow.f64 a 3)) b)
(*.f64 b (sqrt.f64 (pow.f64 a 3)))
(*.f64 b (pow.f64 a 3/2))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (pow.f64 a 2) b)))
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (pow.f64 a 2) b)))
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (pow.f64 a 2) b)))
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (pow.f64 a 2) b)))
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(-.f64 0 (pow.f64 (*.f64 a b) 2))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(-.f64 (+.f64 1 (pow.f64 (*.f64 a b) 2)) 1)
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(pow.f64 (*.f64 a b) 2)
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (pow.f64 (*.f64 a b) 2) 1)
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(pow.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 3) 1/3)
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(pow.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) 3)
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(neg.f64 (pow.f64 (*.f64 a b) 2))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(sqrt.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 2))
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(log.f64 (exp.f64 (pow.f64 (*.f64 a b) 2)))
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(cbrt.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 3))
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(cbrt.f64 (*.f64 (pow.f64 b 3) (pow.f64 (*.f64 a (*.f64 a b)) 3)))
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(cbrt.f64 (*.f64 (pow.f64 (*.f64 a (*.f64 a b)) 3) (pow.f64 b 3)))
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(expm1.f64 (log1p.f64 (pow.f64 (*.f64 a b) 2)))
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(log1p.f64 (expm1.f64 (pow.f64 (*.f64 a b) 2)))
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(exp.f64 (log.f64 (pow.f64 (*.f64 a b) 2)))
(+.f64 1 (-.f64 (pow.f64 (*.f64 a b) 2) 1))
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(-.f64 (+.f64 1 (*.f64 b (pow.f64 a 3/2))) 1)
(*.f64 b (sqrt.f64 (pow.f64 a 3)))
(*.f64 b (pow.f64 a 3/2))
(pow.f64 (*.f64 b (pow.f64 a 3/2)) 1)
(*.f64 b (sqrt.f64 (pow.f64 a 3)))
(*.f64 b (pow.f64 a 3/2))
(pow.f64 (pow.f64 (*.f64 b (pow.f64 a 3/2)) 3) 1/3)
(*.f64 b (sqrt.f64 (pow.f64 a 3)))
(*.f64 b (pow.f64 a 3/2))
(pow.f64 (*.f64 (sqrt.f64 a) (cbrt.f64 b)) 3)
(*.f64 b (sqrt.f64 (pow.f64 a 3)))
(*.f64 b (pow.f64 a 3/2))
(pow.f64 (sqrt.f64 (*.f64 b (pow.f64 a 3/2))) 2)
(*.f64 b (sqrt.f64 (pow.f64 a 3)))
(*.f64 b (pow.f64 a 3/2))
(sqrt.f64 (*.f64 (pow.f64 a 3) (*.f64 b b)))
(*.f64 b (sqrt.f64 (pow.f64 a 3)))
(*.f64 b (pow.f64 a 3/2))
(log.f64 (pow.f64 (exp.f64 (pow.f64 a 3/2)) b))
(*.f64 b (sqrt.f64 (pow.f64 a 3)))
(*.f64 b (pow.f64 a 3/2))
(cbrt.f64 (pow.f64 (*.f64 b (pow.f64 a 3/2)) 3))
(*.f64 b (sqrt.f64 (pow.f64 a 3)))
(*.f64 b (pow.f64 a 3/2))
(cbrt.f64 (*.f64 (pow.f64 a 3/2) (pow.f64 (*.f64 a b) 3)))
(*.f64 b (sqrt.f64 (pow.f64 a 3)))
(*.f64 b (pow.f64 a 3/2))
(cbrt.f64 (*.f64 (pow.f64 (*.f64 a b) 3) (pow.f64 a 3/2)))
(*.f64 b (sqrt.f64 (pow.f64 a 3)))
(*.f64 b (pow.f64 a 3/2))
(expm1.f64 (log1p.f64 (*.f64 b (pow.f64 a 3/2))))
(*.f64 b (sqrt.f64 (pow.f64 a 3)))
(*.f64 b (pow.f64 a 3/2))
(log1p.f64 (expm1.f64 (*.f64 b (pow.f64 a 3/2))))
(*.f64 b (sqrt.f64 (pow.f64 a 3)))
(*.f64 b (pow.f64 a 3/2))
(exp.f64 (log.f64 (*.f64 b (pow.f64 a 3/2))))
(*.f64 b (sqrt.f64 (pow.f64 a 3)))
(*.f64 b (pow.f64 a 3/2))
(-.f64 (+.f64 1 (*.f64 a (*.f64 a b))) 1)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(pow.f64 (*.f64 a (*.f64 a b)) 1)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(pow.f64 (pow.f64 (*.f64 a (*.f64 a b)) 3) 1/3)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(pow.f64 (cbrt.f64 (*.f64 a (*.f64 a b))) 3)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(pow.f64 (sqrt.f64 (*.f64 a (*.f64 a b))) 2)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(sqrt.f64 (pow.f64 (*.f64 a (*.f64 a b)) 2))
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(log.f64 (pow.f64 (exp.f64 a) (*.f64 a b)))
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(cbrt.f64 (pow.f64 (*.f64 a (*.f64 a b)) 3))
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(cbrt.f64 (*.f64 (pow.f64 a 3) (pow.f64 (*.f64 a b) 3)))
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(cbrt.f64 (*.f64 (pow.f64 a 3/2) (pow.f64 (*.f64 b (pow.f64 a 3/2)) 3)))
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(cbrt.f64 (*.f64 (pow.f64 (*.f64 b (pow.f64 a 3/2)) 3) (pow.f64 a 3/2)))
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(expm1.f64 (log1p.f64 (*.f64 a (*.f64 a b))))
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(log1p.f64 (expm1.f64 (*.f64 a (*.f64 a b))))
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(exp.f64 (log.f64 (*.f64 a (*.f64 a b))))
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))

localize15.0ms (0.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(*.f64 (cbrt.f64 b) (cbrt.f64 (*.f64 b b)))
0.6b
(cbrt.f64 b)
3.6b
(*.f64 (*.f64 a (*.f64 a (*.f64 (cbrt.f64 b) (cbrt.f64 (*.f64 b b))))) (neg.f64 b))
28.3b
(cbrt.f64 (*.f64 b b))
Compiler

Compiled 56 to 10 computations (82.1% saved)

series9.0ms (0.3%)

Counts
4 → 36
Calls

15 calls:

TimeVariablePointExpression
2.0ms
b
@0
(*.f64 (cbrt.f64 b) (cbrt.f64 (*.f64 b b)))
2.0ms
a
@0
(*.f64 (*.f64 a (*.f64 a (*.f64 (cbrt.f64 b) (cbrt.f64 (*.f64 b b))))) (neg.f64 b))
1.0ms
b
@0
(*.f64 (*.f64 a (*.f64 a (*.f64 (cbrt.f64 b) (cbrt.f64 (*.f64 b b))))) (neg.f64 b))
1.0ms
b
@-inf
(*.f64 (cbrt.f64 b) (cbrt.f64 (*.f64 b b)))
1.0ms
b
@-inf
(*.f64 (*.f64 a (*.f64 a (*.f64 (cbrt.f64 b) (cbrt.f64 (*.f64 b b))))) (neg.f64 b))

rewrite52.0ms (1.6%)

Algorithm
batch-egg-rewrite
Rules
823×pow1_binary64
762×add-log-exp_binary64
761×log1p-expm1-u_binary64
761×expm1-log1p-u_binary64
740×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01122
123017
2266117
Stop Event
node limit
Counts
4 → 77
Calls
Call 1
Inputs
(cbrt.f64 (*.f64 b b))
(*.f64 (*.f64 a (*.f64 a (*.f64 (cbrt.f64 b) (cbrt.f64 (*.f64 b b))))) (neg.f64 b))
(cbrt.f64 b)
(*.f64 (cbrt.f64 b) (cbrt.f64 (*.f64 b b)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (cbrt.f64 b) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 b) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 b) (cbrt.f64 b))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (cbrt.f64 b) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 b)) 2) (cbrt.f64 (*.f64 b (cbrt.f64 b))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 b)) 2) (*.f64 (cbrt.f64 (cbrt.f64 b)) (cbrt.f64 b)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 b (cbrt.f64 b))) (pow.f64 (cbrt.f64 (cbrt.f64 b)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 b) (pow.f64 b 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 b 1/6) (sqrt.f64 b))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/3) (pow.f64 (cbrt.f64 b) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 b (cbrt.f64 b)) 1/3) (pow.f64 (cbrt.f64 (cbrt.f64 b)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cbrt.f64 b) (pow.f64 (cbrt.f64 (cbrt.f64 b)) 2)) (cbrt.f64 (cbrt.f64 b)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 b 2/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 b b) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (cbrt.f64 b) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 b) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 b)) 2) 3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 b (cbrt.f64 b)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (cbrt.f64 b) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (cbrt.f64 b) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (cbrt.f64 b) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (pow.f64 (cbrt.f64 b) 2)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (pow.f64 (*.f64 b a) 2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (*.f64 b a) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 b a) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (pow.f64 (*.f64 b a) 2) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 b a) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (pow.f64 (*.f64 b a) 2))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (pow.f64 (*.f64 b a) 2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (*.f64 b a) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (*.f64 b a) 2) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 b (*.f64 a a)) 3) (pow.f64 b 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 b 3) (pow.f64 (*.f64 b (*.f64 a a)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (*.f64 b a) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (*.f64 b a) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (pow.f64 (*.f64 b a) 2)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (cbrt.f64 b)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 b) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (cbrt.f64 b))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 b)) (pow.f64 (cbrt.f64 (cbrt.f64 b)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 b)) 2) (cbrt.f64 (cbrt.f64 b)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 b 1/6) (pow.f64 b 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (cbrt.f64 b))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (cbrt.f64 (*.f64 b (cbrt.f64 b)))) (sqrt.f64 (pow.f64 (cbrt.f64 (cbrt.f64 b)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/3) (cbrt.f64 b))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 b) 1/3) (pow.f64 (sqrt.f64 b) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 b 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 b b) 1/6)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (cbrt.f64 b) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 b) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (cbrt.f64 b)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 b 1/6) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (cbrt.f64 b) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (cbrt.f64 b))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (cbrt.f64 b)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (cbrt.f64 b)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (cbrt.f64 b)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (cbrt.f64 b)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 b)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 b)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 b) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 0 (pow.f64 b 3)) (+.f64 0 (+.f64 (*.f64 b b) (*.f64 0 b))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 0 (*.f64 b b)) b)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 b 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 b b) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 b) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 b 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 b) 2)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 b)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 b b))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 b)))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 b))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 b 3))))) (#(struct:change #<rule egg-rr> (2) ((x . b)))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 b))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 b))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 b))))))

simplify52.0ms (1.6%)

Algorithm
egg-herbie
Rules
688×fma-def_binary64
524×fma-neg_binary64
465×associate-/r*_binary64
309×distribute-rgt-in_binary64
296×associate-/l*_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01491043
1327815
21476665
37965665
Stop Event
node limit
Counts
113 → 101
Calls
Call 1
Inputs
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (pow.f64 a 2) (*.f64 (cbrt.f64 -1) (pow.f64 b 2)))
(*.f64 (pow.f64 a 2) (*.f64 (cbrt.f64 -1) (pow.f64 b 2)))
(*.f64 (pow.f64 a 2) (*.f64 (cbrt.f64 -1) (pow.f64 b 2)))
(*.f64 (pow.f64 a 2) (*.f64 (cbrt.f64 -1) (pow.f64 b 2)))
b
b
b
b
b
b
b
b
(*.f64 -1 (*.f64 (cbrt.f64 -1) b))
(*.f64 -1 (*.f64 (cbrt.f64 -1) b))
(*.f64 -1 (*.f64 (cbrt.f64 -1) b))
(*.f64 -1 (*.f64 (cbrt.f64 -1) b))
(-.f64 (+.f64 1 (pow.f64 (cbrt.f64 b) 2)) 1)
(*.f64 (pow.f64 (cbrt.f64 b) 2) 1)
(*.f64 (cbrt.f64 b) (cbrt.f64 b))
(*.f64 1 (pow.f64 (cbrt.f64 b) 2))
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 b)) 2) (cbrt.f64 (*.f64 b (cbrt.f64 b))))
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 b)) 2) (*.f64 (cbrt.f64 (cbrt.f64 b)) (cbrt.f64 b)))
(*.f64 (cbrt.f64 (*.f64 b (cbrt.f64 b))) (pow.f64 (cbrt.f64 (cbrt.f64 b)) 2))
(*.f64 (sqrt.f64 b) (pow.f64 b 1/6))
(*.f64 (pow.f64 b 1/6) (sqrt.f64 b))
(*.f64 (pow.f64 1 1/3) (pow.f64 (cbrt.f64 b) 2))
(*.f64 (pow.f64 (*.f64 b (cbrt.f64 b)) 1/3) (pow.f64 (cbrt.f64 (cbrt.f64 b)) 2))
(*.f64 (*.f64 (cbrt.f64 b) (pow.f64 (cbrt.f64 (cbrt.f64 b)) 2)) (cbrt.f64 (cbrt.f64 b)))
(pow.f64 b 2/3)
(pow.f64 (*.f64 b b) 1/3)
(pow.f64 (pow.f64 (cbrt.f64 b) 2) 1)
(pow.f64 (cbrt.f64 b) 2)
(pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 b)) 2) 3)
(sqrt.f64 (*.f64 b (cbrt.f64 b)))
(log.f64 (exp.f64 (pow.f64 (cbrt.f64 b) 2)))
(expm1.f64 (log1p.f64 (pow.f64 (cbrt.f64 b) 2)))
(log1p.f64 (expm1.f64 (pow.f64 (cbrt.f64 b) 2)))
(exp.f64 (log.f64 (pow.f64 (cbrt.f64 b) 2)))
(-.f64 0 (pow.f64 (*.f64 b a) 2))
(-.f64 (+.f64 1 (pow.f64 (*.f64 b a) 2)) 1)
(pow.f64 (*.f64 b a) 2)
(pow.f64 (pow.f64 (pow.f64 (*.f64 b a) 2) 3) 1/3)
(pow.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 3)
(pow.f64 (pow.f64 (*.f64 b a) 2) 1)
(neg.f64 (pow.f64 (*.f64 b a) 2))
(sqrt.f64 (pow.f64 (pow.f64 (*.f64 b a) 2) 2))
(log.f64 (exp.f64 (pow.f64 (*.f64 b a) 2)))
(cbrt.f64 (pow.f64 (pow.f64 (*.f64 b a) 2) 3))
(cbrt.f64 (*.f64 (pow.f64 (*.f64 b (*.f64 a a)) 3) (pow.f64 b 3)))
(cbrt.f64 (*.f64 (pow.f64 b 3) (pow.f64 (*.f64 b (*.f64 a a)) 3)))
(expm1.f64 (log1p.f64 (pow.f64 (*.f64 b a) 2)))
(log1p.f64 (expm1.f64 (pow.f64 (*.f64 b a) 2)))
(exp.f64 (log.f64 (pow.f64 (*.f64 b a) 2)))
(-.f64 (+.f64 1 (cbrt.f64 b)) 1)
(*.f64 (cbrt.f64 b) 1)
(*.f64 1 (cbrt.f64 b))
(*.f64 (cbrt.f64 (cbrt.f64 b)) (pow.f64 (cbrt.f64 (cbrt.f64 b)) 2))
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 b)) 2) (cbrt.f64 (cbrt.f64 b)))
(*.f64 (pow.f64 b 1/6) (pow.f64 b 1/6))
(*.f64 -1 (cbrt.f64 b))
(*.f64 (sqrt.f64 (cbrt.f64 (*.f64 b (cbrt.f64 b)))) (sqrt.f64 (pow.f64 (cbrt.f64 (cbrt.f64 b)) 2)))
(*.f64 (pow.f64 1 1/3) (cbrt.f64 b))
(*.f64 (pow.f64 (sqrt.f64 b) 1/3) (pow.f64 (sqrt.f64 b) 1/3))
(pow.f64 b 1/3)
(pow.f64 (*.f64 b b) 1/6)
(pow.f64 (pow.f64 (cbrt.f64 b) 2) 1/2)
(pow.f64 (cbrt.f64 b) 1)
(pow.f64 (cbrt.f64 (cbrt.f64 b)) 3)
(pow.f64 (pow.f64 b 1/6) 2)
(sqrt.f64 (pow.f64 (cbrt.f64 b) 2))
(fabs.f64 (cbrt.f64 b))
(log.f64 (exp.f64 (cbrt.f64 b)))
(expm1.f64 (log1p.f64 (cbrt.f64 b)))
(log1p.f64 (expm1.f64 (cbrt.f64 b)))
(exp.f64 (log.f64 (cbrt.f64 b)))
(+.f64 0 b)
(-.f64 0 b)
(-.f64 (+.f64 1 b) 1)
(/.f64 (-.f64 0 (pow.f64 b 3)) (+.f64 0 (+.f64 (*.f64 b b) (*.f64 0 b))))
(/.f64 (-.f64 0 (*.f64 b b)) b)
(pow.f64 b 1)
(pow.f64 (*.f64 b b) 1/2)
(pow.f64 (cbrt.f64 b) 3)
(pow.f64 (pow.f64 b 3) 1/3)
(pow.f64 (sqrt.f64 b) 2)
(neg.f64 b)
(sqrt.f64 (*.f64 b b))
(fabs.f64 b)
(log.f64 (exp.f64 b))
(cbrt.f64 (pow.f64 b 3))
(expm1.f64 (log1p.f64 b))
(log1p.f64 (expm1.f64 b))
(exp.f64 (log.f64 b))
Outputs
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 (pow.f64 a 2) (*.f64 (cbrt.f64 -1) (pow.f64 b 2)))
(*.f64 (*.f64 a a) (*.f64 (cbrt.f64 -1) (*.f64 b b)))
(*.f64 (cbrt.f64 -1) (pow.f64 (*.f64 a b) 2))
(*.f64 (pow.f64 a 2) (*.f64 (cbrt.f64 -1) (pow.f64 b 2)))
(*.f64 (*.f64 a a) (*.f64 (cbrt.f64 -1) (*.f64 b b)))
(*.f64 (cbrt.f64 -1) (pow.f64 (*.f64 a b) 2))
(*.f64 (pow.f64 a 2) (*.f64 (cbrt.f64 -1) (pow.f64 b 2)))
(*.f64 (*.f64 a a) (*.f64 (cbrt.f64 -1) (*.f64 b b)))
(*.f64 (cbrt.f64 -1) (pow.f64 (*.f64 a b) 2))
(*.f64 (pow.f64 a 2) (*.f64 (cbrt.f64 -1) (pow.f64 b 2)))
(*.f64 (*.f64 a a) (*.f64 (cbrt.f64 -1) (*.f64 b b)))
(*.f64 (cbrt.f64 -1) (pow.f64 (*.f64 a b) 2))
b
b
b
b
b
b
b
b
(*.f64 -1 (*.f64 (cbrt.f64 -1) b))
(neg.f64 (*.f64 b (cbrt.f64 -1)))
(*.f64 (cbrt.f64 -1) (neg.f64 b))
(*.f64 b (neg.f64 (cbrt.f64 -1)))
(*.f64 -1 (*.f64 (cbrt.f64 -1) b))
(neg.f64 (*.f64 b (cbrt.f64 -1)))
(*.f64 (cbrt.f64 -1) (neg.f64 b))
(*.f64 b (neg.f64 (cbrt.f64 -1)))
(*.f64 -1 (*.f64 (cbrt.f64 -1) b))
(neg.f64 (*.f64 b (cbrt.f64 -1)))
(*.f64 (cbrt.f64 -1) (neg.f64 b))
(*.f64 b (neg.f64 (cbrt.f64 -1)))
(*.f64 -1 (*.f64 (cbrt.f64 -1) b))
(neg.f64 (*.f64 b (cbrt.f64 -1)))
(*.f64 (cbrt.f64 -1) (neg.f64 b))
(*.f64 b (neg.f64 (cbrt.f64 -1)))
(-.f64 (+.f64 1 (pow.f64 (cbrt.f64 b) 2)) 1)
(+.f64 1 (-.f64 (pow.f64 (cbrt.f64 b) 2) 1))
(+.f64 (pow.f64 (cbrt.f64 b) 2) 0)
(pow.f64 (cbrt.f64 b) 2)
(*.f64 (pow.f64 (cbrt.f64 b) 2) 1)
(+.f64 1 (-.f64 (pow.f64 (cbrt.f64 b) 2) 1))
(+.f64 (pow.f64 (cbrt.f64 b) 2) 0)
(pow.f64 (cbrt.f64 b) 2)
(*.f64 (cbrt.f64 b) (cbrt.f64 b))
(+.f64 1 (-.f64 (pow.f64 (cbrt.f64 b) 2) 1))
(+.f64 (pow.f64 (cbrt.f64 b) 2) 0)
(pow.f64 (cbrt.f64 b) 2)
(*.f64 1 (pow.f64 (cbrt.f64 b) 2))
(+.f64 1 (-.f64 (pow.f64 (cbrt.f64 b) 2) 1))
(+.f64 (pow.f64 (cbrt.f64 b) 2) 0)
(pow.f64 (cbrt.f64 b) 2)
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 b)) 2) (cbrt.f64 (*.f64 b (cbrt.f64 b))))
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 b)) 2) (*.f64 (cbrt.f64 (cbrt.f64 b)) (cbrt.f64 b)))
(+.f64 1 (-.f64 (pow.f64 (cbrt.f64 b) 2) 1))
(+.f64 (pow.f64 (cbrt.f64 b) 2) 0)
(pow.f64 (cbrt.f64 b) 2)
(*.f64 (cbrt.f64 (*.f64 b (cbrt.f64 b))) (pow.f64 (cbrt.f64 (cbrt.f64 b)) 2))
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 b)) 2) (cbrt.f64 (*.f64 b (cbrt.f64 b))))
(*.f64 (sqrt.f64 b) (pow.f64 b 1/6))
(+.f64 1 (-.f64 (pow.f64 (cbrt.f64 b) 2) 1))
(+.f64 (pow.f64 (cbrt.f64 b) 2) 0)
(pow.f64 (cbrt.f64 b) 2)
(*.f64 (pow.f64 b 1/6) (sqrt.f64 b))
(+.f64 1 (-.f64 (pow.f64 (cbrt.f64 b) 2) 1))
(+.f64 (pow.f64 (cbrt.f64 b) 2) 0)
(pow.f64 (cbrt.f64 b) 2)
(*.f64 (pow.f64 1 1/3) (pow.f64 (cbrt.f64 b) 2))
(+.f64 1 (-.f64 (pow.f64 (cbrt.f64 b) 2) 1))
(+.f64 (pow.f64 (cbrt.f64 b) 2) 0)
(pow.f64 (cbrt.f64 b) 2)
(*.f64 (pow.f64 (*.f64 b (cbrt.f64 b)) 1/3) (pow.f64 (cbrt.f64 (cbrt.f64 b)) 2))
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 b)) 2) (cbrt.f64 (*.f64 b (cbrt.f64 b))))
(*.f64 (*.f64 (cbrt.f64 b) (pow.f64 (cbrt.f64 (cbrt.f64 b)) 2)) (cbrt.f64 (cbrt.f64 b)))
(+.f64 1 (-.f64 (pow.f64 (cbrt.f64 b) 2) 1))
(+.f64 (pow.f64 (cbrt.f64 b) 2) 0)
(pow.f64 (cbrt.f64 b) 2)
(pow.f64 b 2/3)
(+.f64 1 (-.f64 (pow.f64 (cbrt.f64 b) 2) 1))
(+.f64 (pow.f64 (cbrt.f64 b) 2) 0)
(pow.f64 (cbrt.f64 b) 2)
(pow.f64 (*.f64 b b) 1/3)
(cbrt.f64 (*.f64 b b))
(pow.f64 (pow.f64 (cbrt.f64 b) 2) 1)
(+.f64 1 (-.f64 (pow.f64 (cbrt.f64 b) 2) 1))
(+.f64 (pow.f64 (cbrt.f64 b) 2) 0)
(pow.f64 (cbrt.f64 b) 2)
(pow.f64 (cbrt.f64 b) 2)
(+.f64 1 (-.f64 (pow.f64 (cbrt.f64 b) 2) 1))
(+.f64 (pow.f64 (cbrt.f64 b) 2) 0)
(pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 b)) 2) 3)
(+.f64 1 (-.f64 (pow.f64 (cbrt.f64 b) 2) 1))
(+.f64 (pow.f64 (cbrt.f64 b) 2) 0)
(pow.f64 (cbrt.f64 b) 2)
(sqrt.f64 (*.f64 b (cbrt.f64 b)))
(+.f64 1 (-.f64 (pow.f64 (cbrt.f64 b) 2) 1))
(+.f64 (pow.f64 (cbrt.f64 b) 2) 0)
(pow.f64 (cbrt.f64 b) 2)
(log.f64 (exp.f64 (pow.f64 (cbrt.f64 b) 2)))
(+.f64 1 (-.f64 (pow.f64 (cbrt.f64 b) 2) 1))
(+.f64 (pow.f64 (cbrt.f64 b) 2) 0)
(pow.f64 (cbrt.f64 b) 2)
(expm1.f64 (log1p.f64 (pow.f64 (cbrt.f64 b) 2)))
(+.f64 1 (-.f64 (pow.f64 (cbrt.f64 b) 2) 1))
(+.f64 (pow.f64 (cbrt.f64 b) 2) 0)
(pow.f64 (cbrt.f64 b) 2)
(log1p.f64 (expm1.f64 (pow.f64 (cbrt.f64 b) 2)))
(+.f64 1 (-.f64 (pow.f64 (cbrt.f64 b) 2) 1))
(+.f64 (pow.f64 (cbrt.f64 b) 2) 0)
(pow.f64 (cbrt.f64 b) 2)
(exp.f64 (log.f64 (pow.f64 (cbrt.f64 b) 2)))
(+.f64 1 (-.f64 (pow.f64 (cbrt.f64 b) 2) 1))
(+.f64 (pow.f64 (cbrt.f64 b) 2) 0)
(pow.f64 (cbrt.f64 b) 2)
(-.f64 0 (pow.f64 (*.f64 b a) 2))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(-.f64 (+.f64 1 (pow.f64 (*.f64 b a) 2)) 1)
(+.f64 (+.f64 1 (pow.f64 (*.f64 a b) 2)) -1)
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(pow.f64 (*.f64 b a) 2)
(+.f64 (+.f64 1 (pow.f64 (*.f64 a b) 2)) -1)
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(pow.f64 (pow.f64 (pow.f64 (*.f64 b a) 2) 3) 1/3)
(+.f64 (+.f64 1 (pow.f64 (*.f64 a b) 2)) -1)
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(pow.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 3)
(+.f64 (+.f64 1 (pow.f64 (*.f64 a b) 2)) -1)
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(pow.f64 (pow.f64 (*.f64 b a) 2) 1)
(+.f64 (+.f64 1 (pow.f64 (*.f64 a b) 2)) -1)
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(neg.f64 (pow.f64 (*.f64 b a) 2))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(sqrt.f64 (pow.f64 (pow.f64 (*.f64 b a) 2) 2))
(+.f64 (+.f64 1 (pow.f64 (*.f64 a b) 2)) -1)
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(log.f64 (exp.f64 (pow.f64 (*.f64 b a) 2)))
(+.f64 (+.f64 1 (pow.f64 (*.f64 a b) 2)) -1)
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(cbrt.f64 (pow.f64 (pow.f64 (*.f64 b a) 2) 3))
(+.f64 (+.f64 1 (pow.f64 (*.f64 a b) 2)) -1)
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(cbrt.f64 (*.f64 (pow.f64 (*.f64 b (*.f64 a a)) 3) (pow.f64 b 3)))
(+.f64 (+.f64 1 (pow.f64 (*.f64 a b) 2)) -1)
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(cbrt.f64 (*.f64 (pow.f64 b 3) (pow.f64 (*.f64 b (*.f64 a a)) 3)))
(+.f64 (+.f64 1 (pow.f64 (*.f64 a b) 2)) -1)
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(expm1.f64 (log1p.f64 (pow.f64 (*.f64 b a) 2)))
(+.f64 (+.f64 1 (pow.f64 (*.f64 a b) 2)) -1)
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(log1p.f64 (expm1.f64 (pow.f64 (*.f64 b a) 2)))
(+.f64 (+.f64 1 (pow.f64 (*.f64 a b) 2)) -1)
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(exp.f64 (log.f64 (pow.f64 (*.f64 b a) 2)))
(+.f64 (+.f64 1 (pow.f64 (*.f64 a b) 2)) -1)
(+.f64 (pow.f64 (*.f64 a b) 2) 0)
(pow.f64 (*.f64 a b) 2)
(-.f64 (+.f64 1 (cbrt.f64 b)) 1)
(+.f64 1 (-.f64 (cbrt.f64 b) 1))
(+.f64 (cbrt.f64 b) 0)
(cbrt.f64 b)
(*.f64 (cbrt.f64 b) 1)
(+.f64 1 (-.f64 (cbrt.f64 b) 1))
(+.f64 (cbrt.f64 b) 0)
(cbrt.f64 b)
(*.f64 1 (cbrt.f64 b))
(+.f64 1 (-.f64 (cbrt.f64 b) 1))
(+.f64 (cbrt.f64 b) 0)
(cbrt.f64 b)
(*.f64 (cbrt.f64 (cbrt.f64 b)) (pow.f64 (cbrt.f64 (cbrt.f64 b)) 2))
(+.f64 1 (-.f64 (cbrt.f64 b) 1))
(+.f64 (cbrt.f64 b) 0)
(cbrt.f64 b)
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 b)) 2) (cbrt.f64 (cbrt.f64 b)))
(+.f64 1 (-.f64 (cbrt.f64 b) 1))
(+.f64 (cbrt.f64 b) 0)
(cbrt.f64 b)
(*.f64 (pow.f64 b 1/6) (pow.f64 b 1/6))
(+.f64 1 (-.f64 (cbrt.f64 b) 1))
(+.f64 (cbrt.f64 b) 0)
(cbrt.f64 b)
(*.f64 -1 (cbrt.f64 b))
(neg.f64 (cbrt.f64 b))
(*.f64 (sqrt.f64 (cbrt.f64 (*.f64 b (cbrt.f64 b)))) (sqrt.f64 (pow.f64 (cbrt.f64 (cbrt.f64 b)) 2)))
(*.f64 (sqrt.f64 (cbrt.f64 (*.f64 b (cbrt.f64 b)))) (fabs.f64 (cbrt.f64 (cbrt.f64 b))))
(*.f64 (cbrt.f64 (cbrt.f64 b)) (pow.f64 (*.f64 b (cbrt.f64 b)) 1/6))
(*.f64 (pow.f64 1 1/3) (cbrt.f64 b))
(+.f64 1 (-.f64 (cbrt.f64 b) 1))
(+.f64 (cbrt.f64 b) 0)
(cbrt.f64 b)
(*.f64 (pow.f64 (sqrt.f64 b) 1/3) (pow.f64 (sqrt.f64 b) 1/3))
(*.f64 (cbrt.f64 (sqrt.f64 b)) (cbrt.f64 (sqrt.f64 b)))
(pow.f64 b 1/3)
(+.f64 1 (-.f64 (cbrt.f64 b) 1))
(+.f64 (cbrt.f64 b) 0)
(cbrt.f64 b)
(pow.f64 (*.f64 b b) 1/6)
(pow.f64 (pow.f64 (cbrt.f64 b) 2) 1/2)
(+.f64 1 (-.f64 (cbrt.f64 b) 1))
(+.f64 (cbrt.f64 b) 0)
(cbrt.f64 b)
(pow.f64 (cbrt.f64 b) 1)
(+.f64 1 (-.f64 (cbrt.f64 b) 1))
(+.f64 (cbrt.f64 b) 0)
(cbrt.f64 b)
(pow.f64 (cbrt.f64 (cbrt.f64 b)) 3)
(+.f64 1 (-.f64 (cbrt.f64 b) 1))
(+.f64 (cbrt.f64 b) 0)
(cbrt.f64 b)
(pow.f64 (pow.f64 b 1/6) 2)
(+.f64 1 (-.f64 (cbrt.f64 b) 1))
(+.f64 (cbrt.f64 b) 0)
(cbrt.f64 b)
(sqrt.f64 (pow.f64 (cbrt.f64 b) 2))
(+.f64 1 (-.f64 (cbrt.f64 b) 1))
(+.f64 (cbrt.f64 b) 0)
(cbrt.f64 b)
(fabs.f64 (cbrt.f64 b))
(+.f64 1 (-.f64 (cbrt.f64 b) 1))
(+.f64 (cbrt.f64 b) 0)
(cbrt.f64 b)
(log.f64 (exp.f64 (cbrt.f64 b)))
(+.f64 1 (-.f64 (cbrt.f64 b) 1))
(+.f64 (cbrt.f64 b) 0)
(cbrt.f64 b)
(expm1.f64 (log1p.f64 (cbrt.f64 b)))
(+.f64 1 (-.f64 (cbrt.f64 b) 1))
(+.f64 (cbrt.f64 b) 0)
(cbrt.f64 b)
(log1p.f64 (expm1.f64 (cbrt.f64 b)))
(+.f64 1 (-.f64 (cbrt.f64 b) 1))
(+.f64 (cbrt.f64 b) 0)
(cbrt.f64 b)
(exp.f64 (log.f64 (cbrt.f64 b)))
(+.f64 1 (-.f64 (cbrt.f64 b) 1))
(+.f64 (cbrt.f64 b) 0)
(cbrt.f64 b)
(+.f64 0 b)
b
(-.f64 0 b)
(neg.f64 b)
(-.f64 (+.f64 1 b) 1)
b
(/.f64 (-.f64 0 (pow.f64 b 3)) (+.f64 0 (+.f64 (*.f64 b b) (*.f64 0 b))))
(neg.f64 b)
(/.f64 (-.f64 0 (*.f64 b b)) b)
(neg.f64 b)
(pow.f64 b 1)
b
(pow.f64 (*.f64 b b) 1/2)
b
(pow.f64 (cbrt.f64 b) 3)
b
(pow.f64 (pow.f64 b 3) 1/3)
b
(pow.f64 (sqrt.f64 b) 2)
b
(neg.f64 b)
(sqrt.f64 (*.f64 b b))
b
(fabs.f64 b)
b
(log.f64 (exp.f64 b))
b
(cbrt.f64 (pow.f64 b 3))
b
(expm1.f64 (log1p.f64 b))
b
(log1p.f64 (expm1.f64 b))
b
(exp.f64 (log.f64 b))
b

localize14.0ms (0.4%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.5b
(pow.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 3)
0.5b
(pow.f64 (cbrt.f64 (*.f64 b a)) 2)
11.4b
(cbrt.f64 (*.f64 b a))
Compiler

Compiled 36 to 17 computations (52.8% saved)

series8.0ms (0.3%)

Counts
1 → 0
Calls

6 calls:

TimeVariablePointExpression
2.0ms
b
@-inf
(pow.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 3)
2.0ms
b
@0
(pow.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 3)
1.0ms
a
@-inf
(pow.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 3)
1.0ms
b
@inf
(pow.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 3)
1.0ms
a
@inf
(pow.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 3)

rewrite42.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
711×pow1_binary64
667×add-log-exp_binary64
666×log1p-expm1-u_binary64
666×expm1-log1p-u_binary64
650×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
099
11927
219867
Stop Event
node limit
Counts
1 → 30
Calls
Call 1
Inputs
(pow.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 3)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (*.f64 b a) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 b (*.f64 a (*.f64 b a)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 a (*.f64 b (*.f64 b a)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 b a) (*.f64 b a))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 b a)) (*.f64 (cbrt.f64 (*.f64 b a)) (pow.f64 (cbrt.f64 (*.f64 b a)) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) (pow.f64 (cbrt.f64 (*.f64 b a)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 b a) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (*.f64 b a) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 b b) (*.f64 a a))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 a a) (*.f64 b b))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4) (pow.f64 (cbrt.f64 (*.f64 b a)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4)) (*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 b a))) 2) (pow.f64 (cbrt.f64 (*.f64 b a)) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 b a)) (*.f64 (sqrt.f64 (*.f64 b a)) (*.f64 b a)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 b a) (sqrt.f64 (*.f64 b a))) (sqrt.f64 (*.f64 b a)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 b a))) 2) 6) (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 b a))) 6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 b) 6) (pow.f64 (cbrt.f64 a) 6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (*.f64 b a) 1/6) 6) (pow.f64 (pow.f64 (*.f64 b a) 1/6) 6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4)) 3) (pow.f64 (cbrt.f64 (*.f64 b a)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4) (cbrt.f64 (*.f64 b a))) (cbrt.f64 (*.f64 b a)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4) 1) (pow.f64 (cbrt.f64 (*.f64 b a)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4) (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4))) (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 b a))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 b a) b) a)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 b a) a) b)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 b a) (pow.f64 (cbrt.f64 (*.f64 b a)) 2)) (cbrt.f64 (*.f64 b a)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 12))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (*.f64 b a) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (*.f64 b a) 2) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (*.f64 b a) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (*.f64 b a) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (pow.f64 (*.f64 b a) 2)))))))

simplify46.0ms (1.4%)

Algorithm
egg-herbie
Rules
782×exp-sum_binary64
577×log-prod_binary64
562×exp-prod_binary64
390×fma-neg_binary64
366×associate-+l+_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
079434
1180334
2626250
31805244
46214244
Stop Event
node limit
Counts
30 → 37
Calls
Call 1
Inputs
(-.f64 (+.f64 1 (pow.f64 (*.f64 b a) 2)) 1)
(*.f64 b (*.f64 a (*.f64 b a)))
(*.f64 a (*.f64 b (*.f64 b a)))
(*.f64 (*.f64 b a) (*.f64 b a))
(*.f64 (cbrt.f64 (*.f64 b a)) (*.f64 (cbrt.f64 (*.f64 b a)) (pow.f64 (cbrt.f64 (*.f64 b a)) 4)))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) (pow.f64 (cbrt.f64 (*.f64 b a)) 4))
(*.f64 (pow.f64 (*.f64 b a) 2) 1)
(*.f64 1 (pow.f64 (*.f64 b a) 2))
(*.f64 (*.f64 b b) (*.f64 a a))
(*.f64 (*.f64 a a) (*.f64 b b))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4) (pow.f64 (cbrt.f64 (*.f64 b a)) 2))
(*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4)) (*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 b a))) 2) (pow.f64 (cbrt.f64 (*.f64 b a)) 4)))
(*.f64 (sqrt.f64 (*.f64 b a)) (*.f64 (sqrt.f64 (*.f64 b a)) (*.f64 b a)))
(*.f64 (*.f64 (*.f64 b a) (sqrt.f64 (*.f64 b a))) (sqrt.f64 (*.f64 b a)))
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 b a))) 2) 6) (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 b a))) 6))
(*.f64 (pow.f64 (cbrt.f64 b) 6) (pow.f64 (cbrt.f64 a) 6))
(*.f64 (pow.f64 (pow.f64 (*.f64 b a) 1/6) 6) (pow.f64 (pow.f64 (*.f64 b a) 1/6) 6))
(*.f64 (pow.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4)) 3) (pow.f64 (cbrt.f64 (*.f64 b a)) 2))
(*.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4) (cbrt.f64 (*.f64 b a))) (cbrt.f64 (*.f64 b a)))
(*.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4) 1) (pow.f64 (cbrt.f64 (*.f64 b a)) 2))
(*.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4) (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4))) (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 b a))) 2))
(*.f64 (*.f64 (*.f64 b a) b) a)
(*.f64 (*.f64 (*.f64 b a) a) b)
(*.f64 (*.f64 (*.f64 b a) (pow.f64 (cbrt.f64 (*.f64 b a)) 2)) (cbrt.f64 (*.f64 b a)))
(sqrt.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 12))
(log.f64 (exp.f64 (pow.f64 (*.f64 b a) 2)))
(cbrt.f64 (pow.f64 (pow.f64 (*.f64 b a) 2) 3))
(expm1.f64 (log1p.f64 (pow.f64 (*.f64 b a) 2)))
(log1p.f64 (expm1.f64 (pow.f64 (*.f64 b a) 2)))
(exp.f64 (log.f64 (pow.f64 (*.f64 b a) 2)))
Outputs
(-.f64 (+.f64 1 (pow.f64 (*.f64 b a) 2)) 1)
(+.f64 1 (-.f64 (pow.f64 (*.f64 b a) 2) 1))
(+.f64 (pow.f64 (*.f64 b a) 2) 0)
(pow.f64 (*.f64 b a) 2)
(*.f64 b (*.f64 a (*.f64 b a)))
(+.f64 1 (-.f64 (pow.f64 (*.f64 b a) 2) 1))
(+.f64 (pow.f64 (*.f64 b a) 2) 0)
(pow.f64 (*.f64 b a) 2)
(*.f64 a (*.f64 b (*.f64 b a)))
(+.f64 1 (-.f64 (pow.f64 (*.f64 b a) 2) 1))
(+.f64 (pow.f64 (*.f64 b a) 2) 0)
(pow.f64 (*.f64 b a) 2)
(*.f64 (*.f64 b a) (*.f64 b a))
(+.f64 1 (-.f64 (pow.f64 (*.f64 b a) 2) 1))
(+.f64 (pow.f64 (*.f64 b a) 2) 0)
(pow.f64 (*.f64 b a) 2)
(*.f64 (cbrt.f64 (*.f64 b a)) (*.f64 (cbrt.f64 (*.f64 b a)) (pow.f64 (cbrt.f64 (*.f64 b a)) 4)))
(+.f64 1 (-.f64 (pow.f64 (*.f64 b a) 2) 1))
(+.f64 (pow.f64 (*.f64 b a) 2) 0)
(pow.f64 (*.f64 b a) 2)
(*.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) (pow.f64 (cbrt.f64 (*.f64 b a)) 4))
(+.f64 1 (-.f64 (pow.f64 (*.f64 b a) 2) 1))
(+.f64 (pow.f64 (*.f64 b a) 2) 0)
(pow.f64 (*.f64 b a) 2)
(*.f64 (pow.f64 (*.f64 b a) 2) 1)
(+.f64 1 (-.f64 (pow.f64 (*.f64 b a) 2) 1))
(+.f64 (pow.f64 (*.f64 b a) 2) 0)
(pow.f64 (*.f64 b a) 2)
(*.f64 1 (pow.f64 (*.f64 b a) 2))
(+.f64 1 (-.f64 (pow.f64 (*.f64 b a) 2) 1))
(+.f64 (pow.f64 (*.f64 b a) 2) 0)
(pow.f64 (*.f64 b a) 2)
(*.f64 (*.f64 b b) (*.f64 a a))
(+.f64 1 (-.f64 (pow.f64 (*.f64 b a) 2) 1))
(+.f64 (pow.f64 (*.f64 b a) 2) 0)
(pow.f64 (*.f64 b a) 2)
(*.f64 (*.f64 a a) (*.f64 b b))
(+.f64 1 (-.f64 (pow.f64 (*.f64 b a) 2) 1))
(+.f64 (pow.f64 (*.f64 b a) 2) 0)
(pow.f64 (*.f64 b a) 2)
(*.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4) (pow.f64 (cbrt.f64 (*.f64 b a)) 2))
(+.f64 1 (-.f64 (pow.f64 (*.f64 b a) 2) 1))
(+.f64 (pow.f64 (*.f64 b a) 2) 0)
(pow.f64 (*.f64 b a) 2)
(*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4)) (*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 b a))) 2) (pow.f64 (cbrt.f64 (*.f64 b a)) 4)))
(*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4)) (*.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4) (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 b a))) 2)))
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 b a))) 2) (pow.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4)) 4))
(*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4)) (pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 b a))) 2) 7))
(*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4)) (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 b a))) 14))
(*.f64 (sqrt.f64 (*.f64 b a)) (*.f64 (sqrt.f64 (*.f64 b a)) (*.f64 b a)))
(+.f64 1 (-.f64 (pow.f64 (*.f64 b a) 2) 1))
(+.f64 (pow.f64 (*.f64 b a) 2) 0)
(pow.f64 (*.f64 b a) 2)
(*.f64 (*.f64 (*.f64 b a) (sqrt.f64 (*.f64 b a))) (sqrt.f64 (*.f64 b a)))
(+.f64 1 (-.f64 (pow.f64 (*.f64 b a) 2) 1))
(+.f64 (pow.f64 (*.f64 b a) 2) 0)
(pow.f64 (*.f64 b a) 2)
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 b a))) 2) 6) (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 b a))) 6))
(+.f64 1 (-.f64 (pow.f64 (*.f64 b a) 2) 1))
(+.f64 (pow.f64 (*.f64 b a) 2) 0)
(pow.f64 (*.f64 b a) 2)
(*.f64 (pow.f64 (cbrt.f64 b) 6) (pow.f64 (cbrt.f64 a) 6))
(+.f64 1 (-.f64 (pow.f64 (*.f64 b a) 2) 1))
(+.f64 (pow.f64 (*.f64 b a) 2) 0)
(pow.f64 (*.f64 b a) 2)
(*.f64 (pow.f64 (pow.f64 (*.f64 b a) 1/6) 6) (pow.f64 (pow.f64 (*.f64 b a) 1/6) 6))
(+.f64 1 (-.f64 (pow.f64 (*.f64 b a) 2) 1))
(+.f64 (pow.f64 (*.f64 b a) 2) 0)
(pow.f64 (*.f64 b a) 2)
(*.f64 (pow.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4)) 3) (pow.f64 (cbrt.f64 (*.f64 b a)) 2))
(+.f64 1 (-.f64 (pow.f64 (*.f64 b a) 2) 1))
(+.f64 (pow.f64 (*.f64 b a) 2) 0)
(pow.f64 (*.f64 b a) 2)
(*.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4) (cbrt.f64 (*.f64 b a))) (cbrt.f64 (*.f64 b a)))
(+.f64 1 (-.f64 (pow.f64 (*.f64 b a) 2) 1))
(+.f64 (pow.f64 (*.f64 b a) 2) 0)
(pow.f64 (*.f64 b a) 2)
(*.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4) 1) (pow.f64 (cbrt.f64 (*.f64 b a)) 2))
(+.f64 1 (-.f64 (pow.f64 (*.f64 b a) 2) 1))
(+.f64 (pow.f64 (*.f64 b a) 2) 0)
(pow.f64 (*.f64 b a) 2)
(*.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4) (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4))) (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 b a))) 2))
(*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4)) (*.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4) (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 b a))) 2)))
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 b a))) 2) (pow.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4)) 4))
(*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4)) (pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 b a))) 2) 7))
(*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4)) (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 b a))) 14))
(*.f64 (*.f64 (*.f64 b a) b) a)
(+.f64 1 (-.f64 (pow.f64 (*.f64 b a) 2) 1))
(+.f64 (pow.f64 (*.f64 b a) 2) 0)
(pow.f64 (*.f64 b a) 2)
(*.f64 (*.f64 (*.f64 b a) a) b)
(+.f64 1 (-.f64 (pow.f64 (*.f64 b a) 2) 1))
(+.f64 (pow.f64 (*.f64 b a) 2) 0)
(pow.f64 (*.f64 b a) 2)
(*.f64 (*.f64 (*.f64 b a) (pow.f64 (cbrt.f64 (*.f64 b a)) 2)) (cbrt.f64 (*.f64 b a)))
(+.f64 1 (-.f64 (pow.f64 (*.f64 b a) 2) 1))
(+.f64 (pow.f64 (*.f64 b a) 2) 0)
(pow.f64 (*.f64 b a) 2)
(sqrt.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 12))
(+.f64 1 (-.f64 (pow.f64 (*.f64 b a) 2) 1))
(+.f64 (pow.f64 (*.f64 b a) 2) 0)
(pow.f64 (*.f64 b a) 2)
(log.f64 (exp.f64 (pow.f64 (*.f64 b a) 2)))
(+.f64 1 (-.f64 (pow.f64 (*.f64 b a) 2) 1))
(+.f64 (pow.f64 (*.f64 b a) 2) 0)
(pow.f64 (*.f64 b a) 2)
(cbrt.f64 (pow.f64 (pow.f64 (*.f64 b a) 2) 3))
(+.f64 1 (-.f64 (pow.f64 (*.f64 b a) 2) 1))
(+.f64 (pow.f64 (*.f64 b a) 2) 0)
(pow.f64 (*.f64 b a) 2)
(expm1.f64 (log1p.f64 (pow.f64 (*.f64 b a) 2)))
(+.f64 1 (-.f64 (pow.f64 (*.f64 b a) 2) 1))
(+.f64 (pow.f64 (*.f64 b a) 2) 0)
(pow.f64 (*.f64 b a) 2)
(log1p.f64 (expm1.f64 (pow.f64 (*.f64 b a) 2)))
(+.f64 1 (-.f64 (pow.f64 (*.f64 b a) 2) 1))
(+.f64 (pow.f64 (*.f64 b a) 2) 0)
(pow.f64 (*.f64 b a) 2)
(exp.f64 (log.f64 (pow.f64 (*.f64 b a) 2)))
(+.f64 1 (-.f64 (pow.f64 (*.f64 b a) 2) 1))
(+.f64 (pow.f64 (*.f64 b a) 2) 0)
(pow.f64 (*.f64 b a) 2)

eval99.0ms (3%)

Compiler

Compiled 6029 to 2702 computations (55.2% saved)

prune69.0ms (2.1%)

Pruning

22 alts after pruning (7 fresh and 15 done)

PrunedKeptTotal
New4204424
Fresh134
Picked011
Done11415
Total42222444
Error
0b
Counts
444 → 22
Alt Table
Click to see full alt table
StatusErrorProgram
15.6b
(*.f64 (pow.f64 (*.f64 a (sqrt.f64 b)) 2) (neg.f64 b))
15.6b
(*.f64 (pow.f64 (cbrt.f64 (*.f64 (*.f64 a a) b)) 3) (neg.f64 b))
4.3b
(*.f64 (*.f64 (pow.f64 (cbrt.f64 a) 2) (*.f64 (cbrt.f64 a) (*.f64 a b))) (neg.f64 b))
21.7b
(*.f64 (*.f64 (*.f64 (*.f64 a (sqrt.f64 b)) a) (sqrt.f64 b)) (neg.f64 b))
15.3b
(*.f64 (*.f64 (*.f64 a a) b) (neg.f64 b))
47.9b
(*.f64 (*.f64 (sqrt.f64 a) (*.f64 (sqrt.f64 a) (*.f64 a b))) (neg.f64 b))
17.7b
(*.f64 (*.f64 a (*.f64 a (*.f64 (cbrt.f64 b) (cbrt.f64 (*.f64 b b))))) (neg.f64 b))
22.6b
(*.f64 (*.f64 a (*.f64 a (cbrt.f64 (pow.f64 b 3)))) (neg.f64 b))
3.7b
(*.f64 (*.f64 a (*.f64 a b)) (neg.f64 b))
37.6b
(*.f64 (*.f64 a a) (*.f64 b b))
20.6b
(*.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
25.1b
(*.f64 (cbrt.f64 (pow.f64 (*.f64 a (*.f64 a b)) 3)) (neg.f64 b))
16.8b
(*.f64 a (*.f64 (*.f64 b b) (neg.f64 a)))
4.0b
(*.f64 a (*.f64 (*.f64 a (neg.f64 b)) b))
37.5b
(*.f64 a (*.f64 a (*.f64 b b)))
1.2b
(neg.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 3))
1.2b
(neg.f64 (pow.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4)) 3))
27.4b
(neg.f64 (*.f64 (*.f64 (*.f64 b a) (sqrt.f64 (*.f64 b a))) (sqrt.f64 (*.f64 b a))))
0.3b
(neg.f64 (*.f64 (*.f64 b a) (*.f64 b a)))
0.5b
(neg.f64 (*.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 2)) (*.f64 (cbrt.f64 (*.f64 b a)) (*.f64 b a))))
17.1b
(neg.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 12)))
24.3b
(neg.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 6)))
Compiler

Compiled 264 to 167 computations (36.7% saved)

regimes60.0ms (1.8%)

Counts
29 → 1
Calls
Call 1
Inputs
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 (*.f64 a a) (*.f64 b b))
(neg.f64 (*.f64 (*.f64 b a) (*.f64 b a)))
(neg.f64 (*.f64 (*.f64 (*.f64 a a) b) b))
(*.f64 a (*.f64 (*.f64 a (neg.f64 b)) b))
(*.f64 a (*.f64 (*.f64 b b) (neg.f64 a)))
(*.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
(*.f64 (*.f64 a (*.f64 a b)) (neg.f64 b))
(*.f64 (*.f64 (*.f64 a a) b) (neg.f64 b))
(neg.f64 (pow.f64 (*.f64 b a) 2))
(neg.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 6)))
(*.f64 (pow.f64 (*.f64 a (sqrt.f64 b)) 2) (neg.f64 b))
(*.f64 (cbrt.f64 (pow.f64 (*.f64 a (*.f64 a b)) 3)) (neg.f64 b))
(*.f64 (cbrt.f64 (pow.f64 (*.f64 (*.f64 a a) b) 3)) (neg.f64 b))
(*.f64 (*.f64 a (*.f64 a (cbrt.f64 (pow.f64 b 3)))) (neg.f64 b))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 (*.f64 a a) b)) 3) (neg.f64 b))
(*.f64 (*.f64 (sqrt.f64 a) (*.f64 (sqrt.f64 a) (*.f64 a b))) (neg.f64 b))
(*.f64 (*.f64 (*.f64 (*.f64 a (sqrt.f64 b)) a) (sqrt.f64 b)) (neg.f64 b))
(neg.f64 (*.f64 (*.f64 (*.f64 b a) (sqrt.f64 (*.f64 b a))) (sqrt.f64 (*.f64 b a))))
(*.f64 (*.f64 a (*.f64 a (*.f64 (cbrt.f64 b) (cbrt.f64 (*.f64 b b))))) (neg.f64 b))
(*.f64 (*.f64 (cbrt.f64 (*.f64 a a)) (*.f64 (*.f64 a b) (cbrt.f64 a))) (neg.f64 b))
(neg.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 12)))
(neg.f64 (cbrt.f64 (pow.f64 (pow.f64 (*.f64 b a) 2) 3)))
(neg.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 3))
(*.f64 (*.f64 (pow.f64 (cbrt.f64 a) 2) (*.f64 (cbrt.f64 a) (*.f64 a b))) (neg.f64 b))
(neg.f64 (*.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 2)) (*.f64 (cbrt.f64 (*.f64 b a)) (*.f64 b a))))
(neg.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) (*.f64 (cbrt.f64 (*.f64 b a)) (*.f64 b a))))
(neg.f64 (pow.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4)) 3))
(*.f64 (*.f64 (*.f64 (*.f64 a (sqrt.f64 b)) (sqrt.f64 (*.f64 a (sqrt.f64 b)))) (sqrt.f64 (*.f64 a (sqrt.f64 b)))) (neg.f64 b))
Outputs
(neg.f64 (*.f64 (*.f64 b a) (*.f64 b a)))
Calls

6 calls:

13.0ms
a
12.0ms
b
9.0ms
(neg.f64 (*.f64 (*.f64 (*.f64 a a) b) b))
8.0ms
(*.f64 a a)
6.0ms
(*.f64 a a)
Results
ErrorSegmentsBranch
0.3b1a
0.3b1b
0.3b1(neg.f64 (*.f64 (*.f64 (*.f64 a a) b) b))
0.3b1(*.f64 (*.f64 (*.f64 a a) b) b)
0.3b1(*.f64 a a)
0.3b1(*.f64 a a)
Compiler

Compiled 340 to 140 computations (58.8% saved)

regimes9.0ms (0.3%)

Accuracy

Total -0.1b remaining (-0.4%)

Threshold costs -0.1b (-0.4%)

Counts
2 → 1
Calls
Call 1
Inputs
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 (*.f64 a a) (*.f64 b b))
Outputs
(*.f64 a (*.f64 a (*.f64 b b)))
Calls

3 calls:

3.0ms
a
3.0ms
b
2.0ms
(*.f64 a a)
Results
ErrorSegmentsBranch
37.5b1a
37.5b1b
37.5b1(*.f64 a a)
Compiler

Compiled 27 to 14 computations (48.1% saved)

simplify4.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
0922
11922
22922
33622
44122
54322
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(neg.f64 (*.f64 (*.f64 b a) (*.f64 b a)))
(*.f64 a (*.f64 a (*.f64 b b)))
Outputs
(neg.f64 (*.f64 (*.f64 b a) (*.f64 b a)))
(*.f64 (*.f64 b a) (neg.f64 (*.f64 b a)))
(*.f64 (*.f64 b a) (*.f64 b (neg.f64 a)))
(*.f64 a (*.f64 a (*.f64 b b)))
Compiler

Compiled 19 to 11 computations (42.1% saved)

soundness24.0ms (0.7%)

Algorithm
egg-herbie
Rules
284×fma-def_binary64
30×associate-*l*_binary64
24×distribute-rgt-in_binary64
24×sub-neg_binary64
19×fma-neg_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0712
12112
25912
312512
419212
526012
632312
737212
851712
960112
Stop Event
saturated
Compiler

Compiled 70 to 42 computations (40% saved)

end17.0ms (0.5%)

Remove

(sort a b)

Compiler

Compiled 37 to 21 computations (43.2% saved)

Profiling

Loading profile data...