Details

Time bar (total: 3.2s)

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

sample708.0ms (22%)

Results
674.0ms8256×body256valid
24.0ms266×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.9b
Counts
6 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
11.8b
(*.f64 (*.f64 (*.f64 a a) b) (neg.f64 b))
17.4b
(*.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
12.3b
(*.f64 a (*.f64 (*.f64 b b) (neg.f64 a)))
4.7b
(*.f64 a (*.f64 (*.f64 a (neg.f64 b)) b))
Compiler

Compiled 40 to 24 computations (40% saved)

localize7.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (*.f64 a (neg.f64 b)) b)
4.5b
(*.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)

rewrite42.0ms (1.3%)

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

localize7.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
4.5b
(*.f64 a (*.f64 (*.f64 b b) (neg.f64 a)))
7.4b
(*.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
a
@-inf
(*.f64 (*.f64 b b) (neg.f64 a))
0.0ms
b
@-inf
(*.f64 (*.f64 b b) (neg.f64 a))
0.0ms
b
@inf
(*.f64 (*.f64 b b) (neg.f64 a))
0.0ms
a
@-inf
(*.f64 a (*.f64 (*.f64 b b) (neg.f64 a)))

rewrite41.0ms (1.3%)

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

simplify38.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
16.9b
(*.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
Compiler

Compiled 22 to 6 computations (72.7% saved)

series4.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
b
@inf
(*.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
0.0ms
a
@-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
5.1b
(*.f64 (*.f64 (*.f64 a a) b) (neg.f64 b))
6.3b
(*.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
a
@0
(*.f64 (*.f64 a a) b)
0.0ms
b
@0
(*.f64 (*.f64 a a) b)
0.0ms
b
@inf
(*.f64 (*.f64 a a) b)
0.0ms
b
@-inf
(*.f64 (*.f64 a a) b)

rewrite40.0ms (1.3%)

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

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

prune16.0ms (0.5%)

Pruning

9 alts after pruning (5 fresh and 4 done)

PrunedKeptTotal
New1155120
Fresh000
Picked011
Done033
Total1159124
Error
0.0b
Counts
124 → 9
Alt Table
Click to see full alt table
StatusErrorProgram
12.2b
(*.f64 (pow.f64 (cbrt.f64 (*.f64 (*.f64 a a) b)) 3) (neg.f64 b))
11.8b
(*.f64 (*.f64 (*.f64 a a) b) (neg.f64 b))
5.4b
(*.f64 (*.f64 a (*.f64 a b)) (neg.f64 b))
17.4b
(*.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
23.2b
(*.f64 (cbrt.f64 (pow.f64 (*.f64 (*.f64 a a) b) 3)) (neg.f64 b))
12.3b
(*.f64 a (*.f64 (*.f64 b b) (neg.f64 a)))
4.7b
(*.f64 a (*.f64 (*.f64 a (neg.f64 b)) b))
38.3b
(*.f64 a (*.f64 a (*.f64 b b)))
0.3b
(neg.f64 (pow.f64 (*.f64 b a) 2))
Compiler

Compiled 146 to 94 computations (35.6% 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
b
@0
(pow.f64 (*.f64 b a) 2)
1.0ms
a
@-inf
(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.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.5%)

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
4.5b
(*.f64 a (*.f64 a (*.f64 b b)))
7.4b
(*.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 b b))
0.0ms
a
@inf
(*.f64 a (*.f64 a (*.f64 b b)))
0.0ms
a
@-inf
(*.f64 a (*.f64 b b))

rewrite38.0ms (1.2%)

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.3%)

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))
5.1b
(*.f64 (*.f64 a (*.f64 a b)) (neg.f64 b))
Compiler

Compiled 22 to 6 computations (72.7% saved)

series3.0ms (0.1%)

Counts
2 → 48
Calls

12 calls:

TimeVariablePointExpression
0.0ms
a
@0
(*.f64 (*.f64 a (*.f64 a b)) (neg.f64 b))
0.0ms
b
@-inf
(*.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
@-inf
(*.f64 (*.f64 a (*.f64 a b)) (neg.f64 b))
0.0ms
b
@inf
(*.f64 (*.f64 a (*.f64 a b)) (neg.f64 b))

rewrite44.0ms (1.4%)

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

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

localize13.0ms (0.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(pow.f64 (*.f64 (*.f64 a a) b) 3)
5.1b
(*.f64 (cbrt.f64 (pow.f64 (*.f64 (*.f64 a a) b) 3)) (neg.f64 b))
6.3b
(*.f64 (*.f64 a a) b)
21.3b
(cbrt.f64 (pow.f64 (*.f64 (*.f64 a a) b) 3))
Compiler

Compiled 41 to 15 computations (63.4% saved)

series9.0ms (0.3%)

Counts
3 → 72
Calls

18 calls:

TimeVariablePointExpression
2.0ms
b
@-inf
(cbrt.f64 (pow.f64 (*.f64 (*.f64 a a) b) 3))
2.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)

rewrite49.0ms (1.5%)

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

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

localize12.0ms (0.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.5b
(pow.f64 (cbrt.f64 (*.f64 (*.f64 a a) b)) 3)
5.1b
(*.f64 (pow.f64 (cbrt.f64 (*.f64 (*.f64 a a) b)) 3) (neg.f64 b))
6.3b
(*.f64 (*.f64 a a) b)
23.7b
(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
b
@0
(pow.f64 (cbrt.f64 (*.f64 (*.f64 a a) b)) 3)
1.0ms
b
@-inf
(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
a
@0
(pow.f64 (cbrt.f64 (*.f64 (*.f64 a a) b)) 3)
1.0ms
a
@inf
(pow.f64 (cbrt.f64 (*.f64 (*.f64 a a) b)) 3)

rewrite55.0ms (1.7%)

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

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

eval51.0ms (1.6%)

Compiler

Compiled 3406 to 1344 computations (60.5% saved)

prune39.0ms (1.2%)

Pruning

14 alts after pruning (6 fresh and 8 done)

PrunedKeptTotal
New2836289
Fresh000
Picked011
Done178
Total28414298
Error
0.0b
Counts
298 → 14
Alt Table
Click to see full alt table
StatusErrorProgram
12.2b
(*.f64 (pow.f64 (cbrt.f64 (*.f64 (*.f64 a a) b)) 3) (neg.f64 b))
5.9b
(*.f64 (*.f64 (pow.f64 (cbrt.f64 a) 2) (*.f64 (cbrt.f64 a) (*.f64 a b))) (neg.f64 b))
25.8b
(*.f64 (*.f64 (*.f64 b (cbrt.f64 (pow.f64 a 4))) (cbrt.f64 (*.f64 a a))) (neg.f64 b))
11.8b
(*.f64 (*.f64 (*.f64 a a) b) (neg.f64 b))
5.4b
(*.f64 (*.f64 a (*.f64 a b)) (neg.f64 b))
38.4b
(*.f64 (*.f64 a a) (*.f64 b b))
17.4b
(*.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
23.2b
(*.f64 (cbrt.f64 (pow.f64 (*.f64 (*.f64 a a) b) 3)) (neg.f64 b))
12.3b
(*.f64 a (*.f64 (*.f64 b b) (neg.f64 a)))
4.7b
(*.f64 a (*.f64 (*.f64 a (neg.f64 b)) b))
38.3b
(*.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))))
0.3b
(neg.f64 (*.f64 (*.f64 b a) (*.f64 b a)))
16.7b
(neg.f64 (sqrt.f64 (pow.f64 (*.f64 b a) 4)))
Compiler

Compiled 241 to 147 computations (39% saved)

localize6.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
a
@-inf
(*.f64 (*.f64 b a) (*.f64 b a))
0.0ms
b
@-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))))))

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

localize7.0ms (0.2%)

Local error

Found 1 expressions with local error:

NewErrorProgram
16.8b
(*.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)))))))

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

localize9.0ms (0.3%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.4b
(pow.f64 (*.f64 b a) 4)
15.9b
(sqrt.f64 (pow.f64 (*.f64 b a) 4))
Compiler

Compiled 26 to 13 computations (50% saved)

series5.0ms (0.1%)

Counts
2 → 48
Calls

12 calls:

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

rewrite42.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
607×pow1_binary64
564×add-log-exp_binary64
564×log1p-expm1-u_binary64
564×expm1-log1p-u_binary64
548×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0714
114614
2165214
Stop Event
node limit
Counts
2 → 52
Calls
Call 1
Inputs
(sqrt.f64 (pow.f64 (*.f64 b a) 4))
(pow.f64 (*.f64 b a) 4)
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 (sqrt.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 8))) (sqrt.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 b 4)) (sqrt.f64 (pow.f64 a 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/2) (pow.f64 (*.f64 b a) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 8)) 1/2) (pow.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 4)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 b 4) 1/2) (pow.f64 (pow.f64 a 4) 1/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) 4) 1/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 fabs.f64 (pow.f64 (*.f64 b a) 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 (*.f64 b a) 6))))) (#(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))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (*.f64 b a) 4)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 b a) (pow.f64 (*.f64 b a) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 b a) 4) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 b a) 2) (pow.f64 (*.f64 b a) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (*.f64 b a) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 b a) 3) (*.f64 b a))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 4)) (cbrt.f64 (pow.f64 (*.f64 b a) 8)))))) (#(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) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 8)) (cbrt.f64 (pow.f64 (*.f64 b a) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 b 4) (pow.f64 a 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 a 4) (pow.f64 b 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 4) (pow.f64 (cbrt.f64 (*.f64 b a)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (*.f64 b a)) 4) (pow.f64 (sqrt.f64 (*.f64 b a)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (*.f64 b a) 2) (cbrt.f64 (pow.f64 (*.f64 b a) 4))) (pow.f64 (cbrt.f64 (*.f64 b a)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 b a) 8))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (*.f64 b a) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (*.f64 b a) 4) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (*.f64 b a) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (*.f64 b a) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 4 (log.f64 (*.f64 b a))))))))

simplify58.0ms (1.8%)

Algorithm
egg-herbie
Rules
532×fma-neg_binary64
488×exp-prod_binary64
461×cube-prod_binary64
414×fabs-mul_binary64
389×fma-def_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0114886
1254760
2898760
33132760
47839760
Stop Event
node limit
Counts
100 → 59
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 4) (pow.f64 b 4))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(-.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 (sqrt.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 8))) (sqrt.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 4))))
(*.f64 (sqrt.f64 (pow.f64 b 4)) (sqrt.f64 (pow.f64 a 4)))
(*.f64 (pow.f64 1 1/2) (pow.f64 (*.f64 b a) 2))
(*.f64 (pow.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 8)) 1/2) (pow.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 4)) 1/2))
(*.f64 (pow.f64 (pow.f64 b 4) 1/2) (pow.f64 (pow.f64 a 4) 1/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) 4) 1/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)
(fabs.f64 (pow.f64 (*.f64 b a) 2))
(log.f64 (exp.f64 (pow.f64 (*.f64 b a) 2)))
(cbrt.f64 (pow.f64 (*.f64 b a) 6))
(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))
(-.f64 (+.f64 1 (pow.f64 (*.f64 b a) 4)) 1)
(*.f64 (*.f64 b a) (pow.f64 (*.f64 b a) 3))
(*.f64 (pow.f64 (*.f64 b a) 4) 1)
(*.f64 (pow.f64 (*.f64 b a) 2) (pow.f64 (*.f64 b a) 2))
(*.f64 1 (pow.f64 (*.f64 b a) 4))
(*.f64 (pow.f64 (*.f64 b a) 3) (*.f64 b a))
(*.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 4)) (cbrt.f64 (pow.f64 (*.f64 b a) 8)))
(*.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 4)) (*.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) (pow.f64 (*.f64 b a) 2)))
(*.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 8)) (cbrt.f64 (pow.f64 (*.f64 b a) 4)))
(*.f64 (pow.f64 b 4) (pow.f64 a 4))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 4) (pow.f64 (cbrt.f64 (*.f64 b a)) 4))
(*.f64 (pow.f64 (sqrt.f64 (*.f64 b a)) 4) (pow.f64 (sqrt.f64 (*.f64 b a)) 4))
(*.f64 (*.f64 (pow.f64 (*.f64 b a) 2) (cbrt.f64 (pow.f64 (*.f64 b a) 4))) (pow.f64 (cbrt.f64 (*.f64 b a)) 2))
(sqrt.f64 (pow.f64 (*.f64 b a) 8))
(log.f64 (exp.f64 (pow.f64 (*.f64 b a) 4)))
(cbrt.f64 (pow.f64 (pow.f64 (*.f64 b a) 4) 3))
(expm1.f64 (log1p.f64 (pow.f64 (*.f64 b a) 4)))
(log1p.f64 (expm1.f64 (pow.f64 (*.f64 b a) 4)))
(exp.f64 (*.f64 4 (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 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(-.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 (sqrt.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 8))) (sqrt.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 4))))
(*.f64 (sqrt.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 8))) (sqrt.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 4))))
(*.f64 (sqrt.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 8))) (sqrt.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 4)))
(*.f64 (sqrt.f64 (pow.f64 b 4)) (sqrt.f64 (pow.f64 a 4)))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 1 1/2) (pow.f64 (*.f64 b a) 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 8)) 1/2) (pow.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 4)) 1/2))
(*.f64 (sqrt.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 8))) (sqrt.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 4))))
(*.f64 (sqrt.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 8))) (sqrt.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 4)))
(*.f64 (pow.f64 (pow.f64 b 4) 1/2) (pow.f64 (pow.f64 a 4) 1/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) 4) 1/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)
(fabs.f64 (pow.f64 (*.f64 b a) 2))
(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 (*.f64 b a) 6))
(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 (log.f64 (*.f64 b a)) 2))
(pow.f64 (*.f64 a b) 2)
(-.f64 (+.f64 1 (pow.f64 (*.f64 b a) 4)) 1)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (*.f64 b a) (pow.f64 (*.f64 b a) 3))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 (*.f64 b a) 4) 1)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 (*.f64 b a) 2) (pow.f64 (*.f64 b a) 2))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 1 (pow.f64 (*.f64 b a) 4))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 (*.f64 b a) 3) (*.f64 b a))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 4)) (cbrt.f64 (pow.f64 (*.f64 b a) 8)))
(*.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 4)) (cbrt.f64 (pow.f64 (*.f64 a b) 8)))
(*.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 8)) (pow.f64 (cbrt.f64 (*.f64 a b)) 4))
(*.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 4)) (*.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) (pow.f64 (*.f64 b a) 2)))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 8)) (cbrt.f64 (pow.f64 (*.f64 b a) 4)))
(*.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 4)) (cbrt.f64 (pow.f64 (*.f64 a b) 8)))
(*.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 8)) (pow.f64 (cbrt.f64 (*.f64 a b)) 4))
(*.f64 (pow.f64 b 4) (pow.f64 a 4))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 4) (pow.f64 (cbrt.f64 (*.f64 b a)) 4))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 (sqrt.f64 (*.f64 b a)) 4) (pow.f64 (sqrt.f64 (*.f64 b a)) 4))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (*.f64 (pow.f64 (*.f64 b a) 2) (cbrt.f64 (pow.f64 (*.f64 b a) 4))) (pow.f64 (cbrt.f64 (*.f64 b a)) 2))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(sqrt.f64 (pow.f64 (*.f64 b a) 8))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(log.f64 (exp.f64 (pow.f64 (*.f64 b a) 4)))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(cbrt.f64 (pow.f64 (pow.f64 (*.f64 b a) 4) 3))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(expm1.f64 (log1p.f64 (pow.f64 (*.f64 b a) 4)))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(log1p.f64 (expm1.f64 (pow.f64 (*.f64 b a) 4)))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(exp.f64 (*.f64 4 (log.f64 (*.f64 b a))))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)

localize21.0ms (0.6%)

Local error

Found 4 expressions with local error:

NewErrorProgram
5.1b
(*.f64 (*.f64 (*.f64 b (cbrt.f64 (pow.f64 a 4))) (cbrt.f64 (*.f64 a a))) (neg.f64 b))
6.2b
(*.f64 b (cbrt.f64 (pow.f64 a 4)))
24.0b
(cbrt.f64 (*.f64 a a))
28.9b
(cbrt.f64 (pow.f64 a 4))
Compiler

Compiled 52 to 26 computations (50% saved)

series12.0ms (0.4%)

Counts
4 → 36
Calls

18 calls:

TimeVariablePointExpression
3.0ms
b
@0
(*.f64 (*.f64 (*.f64 b (cbrt.f64 (pow.f64 a 4))) (cbrt.f64 (*.f64 a a))) (neg.f64 b))
2.0ms
b
@0
(*.f64 b (cbrt.f64 (pow.f64 a 4)))
1.0ms
a
@0
(*.f64 (*.f64 (*.f64 b (cbrt.f64 (pow.f64 a 4))) (cbrt.f64 (*.f64 a a))) (neg.f64 b))
1.0ms
b
@inf
(*.f64 b (cbrt.f64 (pow.f64 a 4)))
0.0ms
a
@inf
(*.f64 (*.f64 (*.f64 b (cbrt.f64 (pow.f64 a 4))) (cbrt.f64 (*.f64 a a))) (neg.f64 b))

rewrite56.0ms (1.7%)

Algorithm
batch-egg-rewrite
Rules
935×pow1_binary64
867×add-log-exp_binary64
866×log1p-expm1-u_binary64
866×expm1-log1p-u_binary64
117×associate-*r*_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify51.0ms (1.6%)

Algorithm
egg-herbie
Rules
1006×fma-def_binary64
872×log-prod_binary64
524×unswap-sqr_binary64
271×*-commutative_binary64
235×distribute-rgt-in_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01571098
1332968
21314967
35198963
Stop Event
node limit
Counts
112 → 93
Calls
Call 1
Inputs
(*.f64 (pow.f64 (*.f64 1 (pow.f64 a 4)) 1/3) b)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 a 4)) 1/3) b)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 a 4)) 1/3) b)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 a 4)) 1/3) b)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 a 4)) 1/3) b)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 a 4)) 1/3) b)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 a 4)) 1/3) b)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 a 4)) 1/3) b)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 a 4)) 1/3) b)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 a 4)) 1/3) b)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 a 4)) 1/3) b)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 a 4)) 1/3) 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 (exp.f64 (log1p.f64 (*.f64 a (cbrt.f64 a)))) 1)
(*.f64 a (cbrt.f64 a))
(*.f64 (*.f64 a (cbrt.f64 a)) 1)
(*.f64 (pow.f64 (cbrt.f64 a) 2) (pow.f64 (cbrt.f64 a) 2))
(*.f64 1 (*.f64 a (cbrt.f64 a)))
(*.f64 (cbrt.f64 (*.f64 a (cbrt.f64 a))) (cbrt.f64 (cbrt.f64 (pow.f64 a 8))))
(*.f64 (cbrt.f64 (*.f64 a (cbrt.f64 a))) (*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 a) 2)) (pow.f64 (cbrt.f64 a) 2)))
(*.f64 (cbrt.f64 (cbrt.f64 (pow.f64 a 8))) (cbrt.f64 (*.f64 a (cbrt.f64 a))))
(*.f64 (cbrt.f64 a) a)
(*.f64 (pow.f64 1 1/3) (*.f64 a (cbrt.f64 a)))
(*.f64 (pow.f64 (cbrt.f64 (pow.f64 a 8)) 1/3) (cbrt.f64 (*.f64 a (cbrt.f64 a))))
(*.f64 (*.f64 (pow.f64 (cbrt.f64 a) 2) (cbrt.f64 (*.f64 a (cbrt.f64 a)))) (cbrt.f64 (pow.f64 (cbrt.f64 a) 2)))
(pow.f64 a 4/3)
(pow.f64 (pow.f64 a 4) 1/3)
(pow.f64 (*.f64 a (cbrt.f64 a)) 1)
(pow.f64 (*.f64 a a) 2/3)
(pow.f64 (pow.f64 (cbrt.f64 a) 2) 2)
(pow.f64 (cbrt.f64 (*.f64 a (cbrt.f64 a))) 3)
(sqrt.f64 (cbrt.f64 (pow.f64 a 8)))
(log.f64 (exp.f64 (*.f64 a (cbrt.f64 a))))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 a (cbrt.f64 a)))))
(expm1.f64 (log1p.f64 (*.f64 a (cbrt.f64 a))))
(log1p.f64 (expm1.f64 (*.f64 a (cbrt.f64 a))))
(exp.f64 (log.f64 (*.f64 a (cbrt.f64 a))))
(-.f64 (exp.f64 (log1p.f64 (pow.f64 (cbrt.f64 a) 2))) 1)
(*.f64 (pow.f64 (cbrt.f64 a) 2) 1)
(*.f64 1 (pow.f64 (cbrt.f64 a) 2))
(*.f64 (cbrt.f64 (*.f64 a (cbrt.f64 a))) (cbrt.f64 (pow.f64 (cbrt.f64 a) 2)))
(*.f64 (cbrt.f64 a) (cbrt.f64 a))
(*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 a) 2)) (cbrt.f64 (*.f64 a (cbrt.f64 a))))
(*.f64 (sqrt.f64 (cbrt.f64 (cbrt.f64 (pow.f64 a 8)))) (sqrt.f64 (cbrt.f64 (*.f64 a (cbrt.f64 a)))))
(*.f64 (pow.f64 1 1/3) (pow.f64 (cbrt.f64 a) 2))
(pow.f64 a 2/3)
(pow.f64 (pow.f64 a 4) 1/6)
(pow.f64 (*.f64 a (cbrt.f64 a)) 1/2)
(pow.f64 (*.f64 a a) 1/3)
(pow.f64 (pow.f64 (cbrt.f64 a) 2) 1)
(pow.f64 (cbrt.f64 a) 2)
(pow.f64 (cbrt.f64 (pow.f64 (cbrt.f64 a) 2)) 3)
(sqrt.f64 (*.f64 a (cbrt.f64 a)))
(fabs.f64 (pow.f64 (cbrt.f64 a) 2))
(log.f64 (exp.f64 (pow.f64 (cbrt.f64 a) 2)))
(log.f64 (+.f64 1 (expm1.f64 (pow.f64 (cbrt.f64 a) 2))))
(expm1.f64 (log1p.f64 (pow.f64 (cbrt.f64 a) 2)))
(log1p.f64 (expm1.f64 (pow.f64 (cbrt.f64 a) 2)))
(exp.f64 (log.f64 (pow.f64 (cbrt.f64 a) 2)))
(-.f64 (exp.f64 (log1p.f64 (*.f64 (*.f64 a (cbrt.f64 a)) b))) 1)
(pow.f64 (*.f64 (*.f64 a (cbrt.f64 a)) b) 1)
(pow.f64 (pow.f64 (*.f64 (*.f64 a (cbrt.f64 a)) b) 3) 1/3)
(pow.f64 (cbrt.f64 (*.f64 (*.f64 a (cbrt.f64 a)) b)) 3)
(pow.f64 (*.f64 (pow.f64 (cbrt.f64 a) 2) (sqrt.f64 b)) 2)
(sqrt.f64 (*.f64 (*.f64 b b) (cbrt.f64 (pow.f64 a 8))))
(log.f64 (pow.f64 (exp.f64 b) (*.f64 a (cbrt.f64 a))))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 (*.f64 a (cbrt.f64 a)) b))))
(cbrt.f64 (pow.f64 (*.f64 (*.f64 a (cbrt.f64 a)) b) 3))
(cbrt.f64 (*.f64 (pow.f64 a 4) (pow.f64 b 3)))
(cbrt.f64 (*.f64 (pow.f64 b 3) (pow.f64 a 4)))
(expm1.f64 (log1p.f64 (*.f64 (*.f64 a (cbrt.f64 a)) b)))
(log1p.f64 (expm1.f64 (*.f64 (*.f64 a (cbrt.f64 a)) b)))
(exp.f64 (log.f64 (*.f64 (*.f64 a (cbrt.f64 a)) b)))
(-.f64 0 (*.f64 b (*.f64 (*.f64 a a) b)))
(-.f64 (exp.f64 (log1p.f64 (*.f64 b (*.f64 (*.f64 a a) b)))) 1)
(pow.f64 (*.f64 b (*.f64 (*.f64 a a) b)) 1)
(pow.f64 (pow.f64 (*.f64 b (*.f64 (*.f64 a a) b)) 3) 1/3)
(pow.f64 (cbrt.f64 (*.f64 b (*.f64 (*.f64 a a) b))) 3)
(pow.f64 (*.f64 (sqrt.f64 b) (*.f64 (sqrt.f64 b) a)) 2)
(neg.f64 (*.f64 b (*.f64 (*.f64 a a) b)))
(sqrt.f64 (pow.f64 (*.f64 b (*.f64 (*.f64 a a) b)) 2))
(log.f64 (pow.f64 (exp.f64 b) (*.f64 (*.f64 a a) b)))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 b (*.f64 (*.f64 a a) b)))))
(cbrt.f64 (pow.f64 (*.f64 b (*.f64 (*.f64 a a) b)) 3))
(cbrt.f64 (*.f64 (pow.f64 b 3) (pow.f64 (*.f64 (*.f64 a a) b) 3)))
(cbrt.f64 (*.f64 (pow.f64 (*.f64 (*.f64 a a) b) 3) (pow.f64 b 3)))
(expm1.f64 (log1p.f64 (*.f64 b (*.f64 (*.f64 a a) b))))
(log1p.f64 (expm1.f64 (*.f64 b (*.f64 (*.f64 a a) b))))
(exp.f64 (log.f64 (*.f64 b (*.f64 (*.f64 a a) b))))
Outputs
(*.f64 (pow.f64 (*.f64 1 (pow.f64 a 4)) 1/3) b)
(*.f64 (cbrt.f64 (pow.f64 a 4)) b)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 a 4)) 1/3) b)
(*.f64 (cbrt.f64 (pow.f64 a 4)) b)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 a 4)) 1/3) b)
(*.f64 (cbrt.f64 (pow.f64 a 4)) b)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 a 4)) 1/3) b)
(*.f64 (cbrt.f64 (pow.f64 a 4)) b)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 a 4)) 1/3) b)
(*.f64 (cbrt.f64 (pow.f64 a 4)) b)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 a 4)) 1/3) b)
(*.f64 (cbrt.f64 (pow.f64 a 4)) b)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 a 4)) 1/3) b)
(*.f64 (cbrt.f64 (pow.f64 a 4)) b)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 a 4)) 1/3) b)
(*.f64 (cbrt.f64 (pow.f64 a 4)) b)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 a 4)) 1/3) b)
(*.f64 (cbrt.f64 (pow.f64 a 4)) b)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 a 4)) 1/3) b)
(*.f64 (cbrt.f64 (pow.f64 a 4)) b)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 a 4)) 1/3) b)
(*.f64 (cbrt.f64 (pow.f64 a 4)) b)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 a 4)) 1/3) b)
(*.f64 (cbrt.f64 (pow.f64 a 4)) b)
(*.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 (exp.f64 (log1p.f64 (*.f64 a (cbrt.f64 a)))) 1)
(*.f64 a (cbrt.f64 a))
(*.f64 a (cbrt.f64 a))
(*.f64 (*.f64 a (cbrt.f64 a)) 1)
(*.f64 a (cbrt.f64 a))
(*.f64 (pow.f64 (cbrt.f64 a) 2) (pow.f64 (cbrt.f64 a) 2))
(*.f64 a (cbrt.f64 a))
(*.f64 1 (*.f64 a (cbrt.f64 a)))
(*.f64 a (cbrt.f64 a))
(*.f64 (cbrt.f64 (*.f64 a (cbrt.f64 a))) (cbrt.f64 (cbrt.f64 (pow.f64 a 8))))
(*.f64 (cbrt.f64 (*.f64 a (cbrt.f64 a))) (*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 a) 2)) (pow.f64 (cbrt.f64 a) 2)))
(*.f64 (cbrt.f64 (*.f64 a (cbrt.f64 a))) (*.f64 (pow.f64 (cbrt.f64 a) 2) (cbrt.f64 (pow.f64 (cbrt.f64 a) 2))))
(*.f64 (cbrt.f64 (*.f64 a (cbrt.f64 a))) (pow.f64 (cbrt.f64 (pow.f64 (cbrt.f64 a) 2)) 4))
(*.f64 (cbrt.f64 (cbrt.f64 (pow.f64 a 8))) (cbrt.f64 (*.f64 a (cbrt.f64 a))))
(*.f64 (cbrt.f64 (*.f64 a (cbrt.f64 a))) (cbrt.f64 (cbrt.f64 (pow.f64 a 8))))
(*.f64 (cbrt.f64 a) a)
(*.f64 a (cbrt.f64 a))
(*.f64 (pow.f64 1 1/3) (*.f64 a (cbrt.f64 a)))
(*.f64 a (cbrt.f64 a))
(*.f64 (pow.f64 (cbrt.f64 (pow.f64 a 8)) 1/3) (cbrt.f64 (*.f64 a (cbrt.f64 a))))
(*.f64 (cbrt.f64 (*.f64 a (cbrt.f64 a))) (cbrt.f64 (cbrt.f64 (pow.f64 a 8))))
(*.f64 (*.f64 (pow.f64 (cbrt.f64 a) 2) (cbrt.f64 (*.f64 a (cbrt.f64 a)))) (cbrt.f64 (pow.f64 (cbrt.f64 a) 2)))
(*.f64 (cbrt.f64 (*.f64 a (cbrt.f64 a))) (*.f64 (pow.f64 (cbrt.f64 a) 2) (cbrt.f64 (pow.f64 (cbrt.f64 a) 2))))
(*.f64 (cbrt.f64 (*.f64 a (cbrt.f64 a))) (pow.f64 (cbrt.f64 (pow.f64 (cbrt.f64 a) 2)) 4))
(pow.f64 a 4/3)
(*.f64 a (cbrt.f64 a))
(pow.f64 (pow.f64 a 4) 1/3)
(cbrt.f64 (pow.f64 a 4))
(pow.f64 (*.f64 a (cbrt.f64 a)) 1)
(*.f64 a (cbrt.f64 a))
(pow.f64 (*.f64 a a) 2/3)
(*.f64 (cbrt.f64 (*.f64 a a)) (cbrt.f64 (*.f64 a a)))
(pow.f64 (pow.f64 (*.f64 a a) 1/6) 4)
(pow.f64 (pow.f64 (cbrt.f64 a) 2) 2)
(*.f64 a (cbrt.f64 a))
(pow.f64 (cbrt.f64 (*.f64 a (cbrt.f64 a))) 3)
(*.f64 a (cbrt.f64 a))
(sqrt.f64 (cbrt.f64 (pow.f64 a 8)))
(log.f64 (exp.f64 (*.f64 a (cbrt.f64 a))))
(*.f64 a (cbrt.f64 a))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 a (cbrt.f64 a)))))
(*.f64 a (cbrt.f64 a))
(expm1.f64 (log1p.f64 (*.f64 a (cbrt.f64 a))))
(*.f64 a (cbrt.f64 a))
(log1p.f64 (expm1.f64 (*.f64 a (cbrt.f64 a))))
(*.f64 a (cbrt.f64 a))
(exp.f64 (log.f64 (*.f64 a (cbrt.f64 a))))
(*.f64 a (cbrt.f64 a))
(-.f64 (exp.f64 (log1p.f64 (pow.f64 (cbrt.f64 a) 2))) 1)
(pow.f64 (cbrt.f64 a) 2)
(*.f64 (pow.f64 (cbrt.f64 a) 2) 1)
(pow.f64 (cbrt.f64 a) 2)
(*.f64 1 (pow.f64 (cbrt.f64 a) 2))
(pow.f64 (cbrt.f64 a) 2)
(*.f64 (cbrt.f64 (*.f64 a (cbrt.f64 a))) (cbrt.f64 (pow.f64 (cbrt.f64 a) 2)))
(*.f64 (cbrt.f64 a) (cbrt.f64 a))
(pow.f64 (cbrt.f64 a) 2)
(*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 a) 2)) (cbrt.f64 (*.f64 a (cbrt.f64 a))))
(*.f64 (cbrt.f64 (*.f64 a (cbrt.f64 a))) (cbrt.f64 (pow.f64 (cbrt.f64 a) 2)))
(*.f64 (sqrt.f64 (cbrt.f64 (cbrt.f64 (pow.f64 a 8)))) (sqrt.f64 (cbrt.f64 (*.f64 a (cbrt.f64 a)))))
(*.f64 (sqrt.f64 (cbrt.f64 (*.f64 a (cbrt.f64 a)))) (pow.f64 (cbrt.f64 (pow.f64 a 8)) 1/6))
(*.f64 (pow.f64 1 1/3) (pow.f64 (cbrt.f64 a) 2))
(pow.f64 (cbrt.f64 a) 2)
(pow.f64 a 2/3)
(pow.f64 (cbrt.f64 a) 2)
(pow.f64 (pow.f64 a 4) 1/6)
(pow.f64 (*.f64 a (cbrt.f64 a)) 1/2)
(sqrt.f64 (*.f64 a (cbrt.f64 a)))
(pow.f64 (*.f64 a a) 1/3)
(cbrt.f64 (*.f64 a a))
(pow.f64 (pow.f64 (cbrt.f64 a) 2) 1)
(pow.f64 (cbrt.f64 a) 2)
(pow.f64 (cbrt.f64 a) 2)
(pow.f64 (cbrt.f64 (pow.f64 (cbrt.f64 a) 2)) 3)
(pow.f64 (cbrt.f64 a) 2)
(sqrt.f64 (*.f64 a (cbrt.f64 a)))
(fabs.f64 (pow.f64 (cbrt.f64 a) 2))
(pow.f64 (cbrt.f64 a) 2)
(log.f64 (exp.f64 (pow.f64 (cbrt.f64 a) 2)))
(pow.f64 (cbrt.f64 a) 2)
(log.f64 (+.f64 1 (expm1.f64 (pow.f64 (cbrt.f64 a) 2))))
(pow.f64 (cbrt.f64 a) 2)
(expm1.f64 (log1p.f64 (pow.f64 (cbrt.f64 a) 2)))
(pow.f64 (cbrt.f64 a) 2)
(log1p.f64 (expm1.f64 (pow.f64 (cbrt.f64 a) 2)))
(pow.f64 (cbrt.f64 a) 2)
(exp.f64 (log.f64 (pow.f64 (cbrt.f64 a) 2)))
(pow.f64 (cbrt.f64 a) 2)
(-.f64 (exp.f64 (log1p.f64 (*.f64 (*.f64 a (cbrt.f64 a)) b))) 1)
(*.f64 b (*.f64 a (cbrt.f64 a)))
(*.f64 a (*.f64 b (cbrt.f64 a)))
(pow.f64 (*.f64 (*.f64 a (cbrt.f64 a)) b) 1)
(*.f64 b (*.f64 a (cbrt.f64 a)))
(*.f64 a (*.f64 b (cbrt.f64 a)))
(pow.f64 (pow.f64 (*.f64 (*.f64 a (cbrt.f64 a)) b) 3) 1/3)
(*.f64 b (*.f64 a (cbrt.f64 a)))
(*.f64 a (*.f64 b (cbrt.f64 a)))
(pow.f64 (cbrt.f64 (*.f64 (*.f64 a (cbrt.f64 a)) b)) 3)
(*.f64 b (*.f64 a (cbrt.f64 a)))
(*.f64 a (*.f64 b (cbrt.f64 a)))
(pow.f64 (*.f64 (pow.f64 (cbrt.f64 a) 2) (sqrt.f64 b)) 2)
(*.f64 b (*.f64 a (cbrt.f64 a)))
(*.f64 a (*.f64 b (cbrt.f64 a)))
(sqrt.f64 (*.f64 (*.f64 b b) (cbrt.f64 (pow.f64 a 8))))
(sqrt.f64 (*.f64 b (*.f64 b (cbrt.f64 (pow.f64 a 8)))))
(log.f64 (pow.f64 (exp.f64 b) (*.f64 a (cbrt.f64 a))))
(*.f64 b (*.f64 a (cbrt.f64 a)))
(*.f64 a (*.f64 b (cbrt.f64 a)))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 (*.f64 a (cbrt.f64 a)) b))))
(*.f64 b (*.f64 a (cbrt.f64 a)))
(*.f64 a (*.f64 b (cbrt.f64 a)))
(cbrt.f64 (pow.f64 (*.f64 (*.f64 a (cbrt.f64 a)) b) 3))
(*.f64 b (*.f64 a (cbrt.f64 a)))
(*.f64 a (*.f64 b (cbrt.f64 a)))
(cbrt.f64 (*.f64 (pow.f64 a 4) (pow.f64 b 3)))
(*.f64 b (*.f64 a (cbrt.f64 a)))
(*.f64 a (*.f64 b (cbrt.f64 a)))
(cbrt.f64 (*.f64 (pow.f64 b 3) (pow.f64 a 4)))
(*.f64 b (*.f64 a (cbrt.f64 a)))
(*.f64 a (*.f64 b (cbrt.f64 a)))
(expm1.f64 (log1p.f64 (*.f64 (*.f64 a (cbrt.f64 a)) b)))
(*.f64 b (*.f64 a (cbrt.f64 a)))
(*.f64 a (*.f64 b (cbrt.f64 a)))
(log1p.f64 (expm1.f64 (*.f64 (*.f64 a (cbrt.f64 a)) b)))
(*.f64 b (*.f64 a (cbrt.f64 a)))
(*.f64 a (*.f64 b (cbrt.f64 a)))
(exp.f64 (log.f64 (*.f64 (*.f64 a (cbrt.f64 a)) b)))
(*.f64 b (*.f64 a (cbrt.f64 a)))
(*.f64 a (*.f64 b (cbrt.f64 a)))
(-.f64 0 (*.f64 b (*.f64 (*.f64 a a) b)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(-.f64 (exp.f64 (log1p.f64 (*.f64 b (*.f64 (*.f64 a a) b)))) 1)
(*.f64 b (*.f64 a (*.f64 a b)))
(pow.f64 (*.f64 a b) 2)
(pow.f64 (*.f64 b (*.f64 (*.f64 a a) b)) 1)
(*.f64 b (*.f64 a (*.f64 a b)))
(pow.f64 (*.f64 a b) 2)
(pow.f64 (pow.f64 (*.f64 b (*.f64 (*.f64 a a) b)) 3) 1/3)
(*.f64 b (*.f64 a (*.f64 a b)))
(pow.f64 (*.f64 a b) 2)
(pow.f64 (cbrt.f64 (*.f64 b (*.f64 (*.f64 a a) b))) 3)
(*.f64 b (*.f64 a (*.f64 a b)))
(pow.f64 (*.f64 a b) 2)
(pow.f64 (*.f64 (sqrt.f64 b) (*.f64 (sqrt.f64 b) a)) 2)
(*.f64 b (*.f64 a (*.f64 a b)))
(pow.f64 (*.f64 a b) 2)
(neg.f64 (*.f64 b (*.f64 (*.f64 a a) b)))
(neg.f64 (*.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(sqrt.f64 (pow.f64 (*.f64 b (*.f64 (*.f64 a a) b)) 2))
(*.f64 b (*.f64 a (*.f64 a b)))
(pow.f64 (*.f64 a b) 2)
(log.f64 (pow.f64 (exp.f64 b) (*.f64 (*.f64 a a) b)))
(*.f64 b (*.f64 a (*.f64 a b)))
(pow.f64 (*.f64 a b) 2)
(log.f64 (+.f64 1 (expm1.f64 (*.f64 b (*.f64 (*.f64 a a) b)))))
(*.f64 b (*.f64 a (*.f64 a b)))
(pow.f64 (*.f64 a b) 2)
(cbrt.f64 (pow.f64 (*.f64 b (*.f64 (*.f64 a a) b)) 3))
(*.f64 b (*.f64 a (*.f64 a b)))
(pow.f64 (*.f64 a b) 2)
(cbrt.f64 (*.f64 (pow.f64 b 3) (pow.f64 (*.f64 (*.f64 a a) b) 3)))
(*.f64 b (*.f64 a (*.f64 a b)))
(pow.f64 (*.f64 a b) 2)
(cbrt.f64 (*.f64 (pow.f64 (*.f64 (*.f64 a a) b) 3) (pow.f64 b 3)))
(*.f64 b (*.f64 a (*.f64 a b)))
(pow.f64 (*.f64 a b) 2)
(expm1.f64 (log1p.f64 (*.f64 b (*.f64 (*.f64 a a) b))))
(*.f64 b (*.f64 a (*.f64 a b)))
(pow.f64 (*.f64 a b) 2)
(log1p.f64 (expm1.f64 (*.f64 b (*.f64 (*.f64 a a) b))))
(*.f64 b (*.f64 a (*.f64 a b)))
(pow.f64 (*.f64 a b) 2)
(exp.f64 (log.f64 (*.f64 b (*.f64 (*.f64 a a) b))))
(*.f64 b (*.f64 a (*.f64 a b)))
(pow.f64 (*.f64 a b) 2)

localize15.0ms (0.5%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(*.f64 (cbrt.f64 a) (*.f64 a b))
0.4b
(pow.f64 (cbrt.f64 a) 2)
0.6b
(cbrt.f64 a)
5.1b
(*.f64 (*.f64 (pow.f64 (cbrt.f64 a) 2) (*.f64 (cbrt.f64 a) (*.f64 a b))) (neg.f64 b))
Compiler

Compiled 47 to 16 computations (66% saved)

series10.0ms (0.3%)

Counts
4 → 36
Calls

18 calls:

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

rewrite51.0ms (1.6%)

Algorithm
batch-egg-rewrite
Rules
919×pow1_binary64
851×add-log-exp_binary64
850×log1p-expm1-u_binary64
850×expm1-log1p-u_binary64
135×associate-*r*_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01130
123125
2289525
Stop Event
node limit
Counts
4 → 68
Calls
Call 1
Inputs
(*.f64 (*.f64 (pow.f64 (cbrt.f64 a) 2) (*.f64 (cbrt.f64 a) (*.f64 a b))) (neg.f64 b))
(cbrt.f64 a)
(pow.f64 (cbrt.f64 a) 2)
(*.f64 (cbrt.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 (exp.f64 (log1p.f64 (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 (*.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 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 log.f64 (+.f64 1 (expm1.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 (exp.f64 (log1p.f64 (cbrt.f64 a))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 a) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (cbrt.f64 a))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 a)) 2) (cbrt.f64 (cbrt.f64 a)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 a)) (pow.f64 (cbrt.f64 (cbrt.f64 a)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 a 1/6) (pow.f64 a 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (cbrt.f64 (*.f64 a (cbrt.f64 a)))) (sqrt.f64 (pow.f64 (cbrt.f64 (cbrt.f64 a)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/3) (cbrt.f64 a))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 a) 1/3) (pow.f64 (sqrt.f64 a) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 a 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 a) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (cbrt.f64 a) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (cbrt.f64 a)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 a 1/6) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (cbrt.f64 a) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (cbrt.f64 a))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (cbrt.f64 a)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (cbrt.f64 a))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (cbrt.f64 a)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (cbrt.f64 a)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (cbrt.f64 a)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (pow.f64 (cbrt.f64 a) 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 a) (cbrt.f64 a))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 a) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (cbrt.f64 a) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 a)) 2) (cbrt.f64 (*.f64 a (cbrt.f64 a))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 a)) 2) (*.f64 (cbrt.f64 (cbrt.f64 a)) (cbrt.f64 a)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 a (cbrt.f64 a))) (pow.f64 (cbrt.f64 (cbrt.f64 a)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 a) (pow.f64 a 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 a 1/6) (*.f64 (pow.f64 a 1/6) (cbrt.f64 a)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cbrt.f64 a) (pow.f64 (cbrt.f64 (cbrt.f64 a)) 2)) (cbrt.f64 (cbrt.f64 a)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 a (cbrt.f64 a)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (cbrt.f64 a) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (pow.f64 (cbrt.f64 a) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 a a))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (cbrt.f64 a) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (cbrt.f64 a) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 2 (log.f64 (cbrt.f64 a))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (cbrt.f64 a) (*.f64 a b)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (cbrt.f64 a) (*.f64 a b)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (cbrt.f64 a) (*.f64 a b)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (cbrt.f64 a) (*.f64 a b))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (cbrt.f64 a) 2) (sqrt.f64 b)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (cbrt.f64 a) (*.f64 a b)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (cbrt.f64 a)) (*.f64 a b)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (cbrt.f64 a) (*.f64 a b)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (cbrt.f64 a) (*.f64 a b)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 a (pow.f64 (*.f64 a b) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 a b) 3) a))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (cbrt.f64 a) (*.f64 a b))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (cbrt.f64 a) (*.f64 a b))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (cbrt.f64 a) (*.f64 a b))))))))

simplify47.0ms (1.5%)

Algorithm
egg-herbie
Rules
626×log-prod_binary64
295×exp-prod_binary64
272×distribute-rgt-in_binary64
269×sqr-pow_binary64
262×distribute-lft-in_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0147863
1297782
21184780
34564777
Stop Event
node limit
Counts
104 → 79
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 (*.f64 1 (pow.f64 a 4)) 1/3) b)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 a 4)) 1/3) b)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 a 4)) 1/3) b)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 a 4)) 1/3) b)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 a 4)) 1/3) b)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 a 4)) 1/3) b)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 a 4)) 1/3) b)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 a 4)) 1/3) b)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 a 4)) 1/3) b)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 a 4)) 1/3) b)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 a 4)) 1/3) b)
(*.f64 (pow.f64 (*.f64 1 (pow.f64 a 4)) 1/3) b)
(-.f64 0 (pow.f64 (*.f64 a b) 2))
(-.f64 (exp.f64 (log1p.f64 (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 (*.f64 a b) 2) 1)
(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)))
(log.f64 (+.f64 1 (expm1.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 (exp.f64 (log1p.f64 (cbrt.f64 a))) 1)
(*.f64 (cbrt.f64 a) 1)
(*.f64 1 (cbrt.f64 a))
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 a)) 2) (cbrt.f64 (cbrt.f64 a)))
(*.f64 (cbrt.f64 (cbrt.f64 a)) (pow.f64 (cbrt.f64 (cbrt.f64 a)) 2))
(*.f64 (pow.f64 a 1/6) (pow.f64 a 1/6))
(*.f64 (sqrt.f64 (cbrt.f64 (*.f64 a (cbrt.f64 a)))) (sqrt.f64 (pow.f64 (cbrt.f64 (cbrt.f64 a)) 2)))
(*.f64 (pow.f64 1 1/3) (cbrt.f64 a))
(*.f64 (pow.f64 (sqrt.f64 a) 1/3) (pow.f64 (sqrt.f64 a) 1/3))
(pow.f64 a 1/3)
(pow.f64 (cbrt.f64 a) 1)
(pow.f64 (pow.f64 (cbrt.f64 a) 2) 1/2)
(pow.f64 (cbrt.f64 (cbrt.f64 a)) 3)
(pow.f64 (pow.f64 a 1/6) 2)
(sqrt.f64 (pow.f64 (cbrt.f64 a) 2))
(fabs.f64 (cbrt.f64 a))
(log.f64 (exp.f64 (cbrt.f64 a)))
(log.f64 (+.f64 1 (expm1.f64 (cbrt.f64 a))))
(expm1.f64 (log1p.f64 (cbrt.f64 a)))
(log1p.f64 (expm1.f64 (cbrt.f64 a)))
(exp.f64 (log.f64 (cbrt.f64 a)))
(-.f64 (exp.f64 (log1p.f64 (pow.f64 (cbrt.f64 a) 2))) 1)
(*.f64 (cbrt.f64 a) (cbrt.f64 a))
(*.f64 (pow.f64 (cbrt.f64 a) 2) 1)
(*.f64 1 (pow.f64 (cbrt.f64 a) 2))
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 a)) 2) (cbrt.f64 (*.f64 a (cbrt.f64 a))))
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 a)) 2) (*.f64 (cbrt.f64 (cbrt.f64 a)) (cbrt.f64 a)))
(*.f64 (cbrt.f64 (*.f64 a (cbrt.f64 a))) (pow.f64 (cbrt.f64 (cbrt.f64 a)) 2))
(*.f64 (sqrt.f64 a) (pow.f64 a 1/6))
(*.f64 (pow.f64 a 1/6) (*.f64 (pow.f64 a 1/6) (cbrt.f64 a)))
(*.f64 (*.f64 (cbrt.f64 a) (pow.f64 (cbrt.f64 (cbrt.f64 a)) 2)) (cbrt.f64 (cbrt.f64 a)))
(sqrt.f64 (*.f64 a (cbrt.f64 a)))
(log.f64 (exp.f64 (pow.f64 (cbrt.f64 a) 2)))
(log.f64 (+.f64 1 (expm1.f64 (pow.f64 (cbrt.f64 a) 2))))
(cbrt.f64 (*.f64 a a))
(expm1.f64 (log1p.f64 (pow.f64 (cbrt.f64 a) 2)))
(log1p.f64 (expm1.f64 (pow.f64 (cbrt.f64 a) 2)))
(exp.f64 (*.f64 2 (log.f64 (cbrt.f64 a))))
(-.f64 (exp.f64 (log1p.f64 (*.f64 (cbrt.f64 a) (*.f64 a b)))) 1)
(pow.f64 (*.f64 (cbrt.f64 a) (*.f64 a b)) 1)
(pow.f64 (pow.f64 (*.f64 (cbrt.f64 a) (*.f64 a b)) 3) 1/3)
(pow.f64 (cbrt.f64 (*.f64 (cbrt.f64 a) (*.f64 a b))) 3)
(pow.f64 (*.f64 (pow.f64 (cbrt.f64 a) 2) (sqrt.f64 b)) 2)
(sqrt.f64 (pow.f64 (*.f64 (cbrt.f64 a) (*.f64 a b)) 2))
(log.f64 (pow.f64 (exp.f64 (cbrt.f64 a)) (*.f64 a b)))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 (cbrt.f64 a) (*.f64 a b)))))
(cbrt.f64 (pow.f64 (*.f64 (cbrt.f64 a) (*.f64 a b)) 3))
(cbrt.f64 (*.f64 a (pow.f64 (*.f64 a b) 3)))
(cbrt.f64 (*.f64 (pow.f64 (*.f64 a b) 3) a))
(expm1.f64 (log1p.f64 (*.f64 (cbrt.f64 a) (*.f64 a b))))
(log1p.f64 (expm1.f64 (*.f64 (cbrt.f64 a) (*.f64 a b))))
(exp.f64 (log.f64 (*.f64 (cbrt.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 (*.f64 1 (pow.f64 a 4)) 1/3) b)
(*.f64 b (cbrt.f64 (pow.f64 a 4)))
(*.f64 a (*.f64 b (cbrt.f64 a)))
(*.f64 (pow.f64 (*.f64 1 (pow.f64 a 4)) 1/3) b)
(*.f64 b (cbrt.f64 (pow.f64 a 4)))
(*.f64 a (*.f64 b (cbrt.f64 a)))
(*.f64 (pow.f64 (*.f64 1 (pow.f64 a 4)) 1/3) b)
(*.f64 b (cbrt.f64 (pow.f64 a 4)))
(*.f64 a (*.f64 b (cbrt.f64 a)))
(*.f64 (pow.f64 (*.f64 1 (pow.f64 a 4)) 1/3) b)
(*.f64 b (cbrt.f64 (pow.f64 a 4)))
(*.f64 a (*.f64 b (cbrt.f64 a)))
(*.f64 (pow.f64 (*.f64 1 (pow.f64 a 4)) 1/3) b)
(*.f64 b (cbrt.f64 (pow.f64 a 4)))
(*.f64 a (*.f64 b (cbrt.f64 a)))
(*.f64 (pow.f64 (*.f64 1 (pow.f64 a 4)) 1/3) b)
(*.f64 b (cbrt.f64 (pow.f64 a 4)))
(*.f64 a (*.f64 b (cbrt.f64 a)))
(*.f64 (pow.f64 (*.f64 1 (pow.f64 a 4)) 1/3) b)
(*.f64 b (cbrt.f64 (pow.f64 a 4)))
(*.f64 a (*.f64 b (cbrt.f64 a)))
(*.f64 (pow.f64 (*.f64 1 (pow.f64 a 4)) 1/3) b)
(*.f64 b (cbrt.f64 (pow.f64 a 4)))
(*.f64 a (*.f64 b (cbrt.f64 a)))
(*.f64 (pow.f64 (*.f64 1 (pow.f64 a 4)) 1/3) b)
(*.f64 b (cbrt.f64 (pow.f64 a 4)))
(*.f64 a (*.f64 b (cbrt.f64 a)))
(*.f64 (pow.f64 (*.f64 1 (pow.f64 a 4)) 1/3) b)
(*.f64 b (cbrt.f64 (pow.f64 a 4)))
(*.f64 a (*.f64 b (cbrt.f64 a)))
(*.f64 (pow.f64 (*.f64 1 (pow.f64 a 4)) 1/3) b)
(*.f64 b (cbrt.f64 (pow.f64 a 4)))
(*.f64 a (*.f64 b (cbrt.f64 a)))
(*.f64 (pow.f64 (*.f64 1 (pow.f64 a 4)) 1/3) b)
(*.f64 b (cbrt.f64 (pow.f64 a 4)))
(*.f64 a (*.f64 b (cbrt.f64 a)))
(-.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 (exp.f64 (log1p.f64 (pow.f64 (*.f64 a b) 2))) 1)
(pow.f64 (*.f64 a b) 2)
(pow.f64 (*.f64 a b) 2)
(pow.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 3) 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)
(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))
(pow.f64 (*.f64 a b) 2)
(log.f64 (exp.f64 (pow.f64 (*.f64 a b) 2)))
(pow.f64 (*.f64 a b) 2)
(log.f64 (+.f64 1 (expm1.f64 (pow.f64 (*.f64 a b) 2))))
(pow.f64 (*.f64 a b) 2)
(cbrt.f64 (pow.f64 (pow.f64 (*.f64 a b) 2) 3))
(pow.f64 (*.f64 a b) 2)
(cbrt.f64 (*.f64 (pow.f64 (*.f64 a (*.f64 a b)) 3) (pow.f64 b 3)))
(pow.f64 (*.f64 a b) 2)
(cbrt.f64 (*.f64 (pow.f64 b 3) (pow.f64 (*.f64 a (*.f64 a b)) 3)))
(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 (exp.f64 (log1p.f64 (cbrt.f64 a))) 1)
(cbrt.f64 a)
(*.f64 (cbrt.f64 a) 1)
(cbrt.f64 a)
(*.f64 1 (cbrt.f64 a))
(cbrt.f64 a)
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 a)) 2) (cbrt.f64 (cbrt.f64 a)))
(cbrt.f64 a)
(*.f64 (cbrt.f64 (cbrt.f64 a)) (pow.f64 (cbrt.f64 (cbrt.f64 a)) 2))
(cbrt.f64 a)
(*.f64 (pow.f64 a 1/6) (pow.f64 a 1/6))
(cbrt.f64 a)
(*.f64 (sqrt.f64 (cbrt.f64 (*.f64 a (cbrt.f64 a)))) (sqrt.f64 (pow.f64 (cbrt.f64 (cbrt.f64 a)) 2)))
(*.f64 (sqrt.f64 (cbrt.f64 (*.f64 a (cbrt.f64 a)))) (fabs.f64 (cbrt.f64 (cbrt.f64 a))))
(*.f64 (cbrt.f64 (cbrt.f64 a)) (sqrt.f64 (cbrt.f64 (*.f64 a (cbrt.f64 a)))))
(*.f64 (pow.f64 1 1/3) (cbrt.f64 a))
(cbrt.f64 a)
(*.f64 (pow.f64 (sqrt.f64 a) 1/3) (pow.f64 (sqrt.f64 a) 1/3))
(*.f64 (cbrt.f64 (sqrt.f64 a)) (cbrt.f64 (sqrt.f64 a)))
(pow.f64 (pow.f64 (sqrt.f64 a) 1/6) 4)
(pow.f64 a 1/3)
(cbrt.f64 a)
(pow.f64 (cbrt.f64 a) 1)
(cbrt.f64 a)
(pow.f64 (pow.f64 (cbrt.f64 a) 2) 1/2)
(cbrt.f64 a)
(pow.f64 (cbrt.f64 (cbrt.f64 a)) 3)
(cbrt.f64 a)
(pow.f64 (pow.f64 a 1/6) 2)
(cbrt.f64 a)
(sqrt.f64 (pow.f64 (cbrt.f64 a) 2))
(cbrt.f64 a)
(fabs.f64 (cbrt.f64 a))
(cbrt.f64 a)
(log.f64 (exp.f64 (cbrt.f64 a)))
(cbrt.f64 a)
(log.f64 (+.f64 1 (expm1.f64 (cbrt.f64 a))))
(cbrt.f64 a)
(expm1.f64 (log1p.f64 (cbrt.f64 a)))
(cbrt.f64 a)
(log1p.f64 (expm1.f64 (cbrt.f64 a)))
(cbrt.f64 a)
(exp.f64 (log.f64 (cbrt.f64 a)))
(cbrt.f64 a)
(-.f64 (exp.f64 (log1p.f64 (pow.f64 (cbrt.f64 a) 2))) 1)
(pow.f64 (cbrt.f64 a) 2)
(*.f64 (cbrt.f64 a) (cbrt.f64 a))
(pow.f64 (cbrt.f64 a) 2)
(*.f64 (pow.f64 (cbrt.f64 a) 2) 1)
(pow.f64 (cbrt.f64 a) 2)
(*.f64 1 (pow.f64 (cbrt.f64 a) 2))
(pow.f64 (cbrt.f64 a) 2)
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 a)) 2) (cbrt.f64 (*.f64 a (cbrt.f64 a))))
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 a)) 2) (*.f64 (cbrt.f64 (cbrt.f64 a)) (cbrt.f64 a)))
(pow.f64 (cbrt.f64 a) 2)
(*.f64 (cbrt.f64 (*.f64 a (cbrt.f64 a))) (pow.f64 (cbrt.f64 (cbrt.f64 a)) 2))
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 a)) 2) (cbrt.f64 (*.f64 a (cbrt.f64 a))))
(*.f64 (sqrt.f64 a) (pow.f64 a 1/6))
(pow.f64 (cbrt.f64 a) 2)
(*.f64 (pow.f64 a 1/6) (*.f64 (pow.f64 a 1/6) (cbrt.f64 a)))
(pow.f64 (cbrt.f64 a) 2)
(*.f64 (*.f64 (cbrt.f64 a) (pow.f64 (cbrt.f64 (cbrt.f64 a)) 2)) (cbrt.f64 (cbrt.f64 a)))
(pow.f64 (cbrt.f64 a) 2)
(sqrt.f64 (*.f64 a (cbrt.f64 a)))
(log.f64 (exp.f64 (pow.f64 (cbrt.f64 a) 2)))
(pow.f64 (cbrt.f64 a) 2)
(log.f64 (+.f64 1 (expm1.f64 (pow.f64 (cbrt.f64 a) 2))))
(pow.f64 (cbrt.f64 a) 2)
(cbrt.f64 (*.f64 a a))
(expm1.f64 (log1p.f64 (pow.f64 (cbrt.f64 a) 2)))
(pow.f64 (cbrt.f64 a) 2)
(log1p.f64 (expm1.f64 (pow.f64 (cbrt.f64 a) 2)))
(pow.f64 (cbrt.f64 a) 2)
(exp.f64 (*.f64 2 (log.f64 (cbrt.f64 a))))
(pow.f64 (cbrt.f64 a) 2)
(-.f64 (exp.f64 (log1p.f64 (*.f64 (cbrt.f64 a) (*.f64 a b)))) 1)
(*.f64 b (cbrt.f64 (pow.f64 a 4)))
(*.f64 a (*.f64 b (cbrt.f64 a)))
(pow.f64 (*.f64 (cbrt.f64 a) (*.f64 a b)) 1)
(*.f64 b (cbrt.f64 (pow.f64 a 4)))
(*.f64 a (*.f64 b (cbrt.f64 a)))
(pow.f64 (pow.f64 (*.f64 (cbrt.f64 a) (*.f64 a b)) 3) 1/3)
(*.f64 b (cbrt.f64 (pow.f64 a 4)))
(*.f64 a (*.f64 b (cbrt.f64 a)))
(pow.f64 (cbrt.f64 (*.f64 (cbrt.f64 a) (*.f64 a b))) 3)
(*.f64 b (cbrt.f64 (pow.f64 a 4)))
(*.f64 a (*.f64 b (cbrt.f64 a)))
(pow.f64 (*.f64 (pow.f64 (cbrt.f64 a) 2) (sqrt.f64 b)) 2)
(*.f64 b (cbrt.f64 (pow.f64 a 4)))
(*.f64 a (*.f64 b (cbrt.f64 a)))
(sqrt.f64 (pow.f64 (*.f64 (cbrt.f64 a) (*.f64 a b)) 2))
(*.f64 b (cbrt.f64 (pow.f64 a 4)))
(*.f64 a (*.f64 b (cbrt.f64 a)))
(log.f64 (pow.f64 (exp.f64 (cbrt.f64 a)) (*.f64 a b)))
(*.f64 b (cbrt.f64 (pow.f64 a 4)))
(*.f64 a (*.f64 b (cbrt.f64 a)))
(log.f64 (+.f64 1 (expm1.f64 (*.f64 (cbrt.f64 a) (*.f64 a b)))))
(*.f64 b (cbrt.f64 (pow.f64 a 4)))
(*.f64 a (*.f64 b (cbrt.f64 a)))
(cbrt.f64 (pow.f64 (*.f64 (cbrt.f64 a) (*.f64 a b)) 3))
(*.f64 b (cbrt.f64 (pow.f64 a 4)))
(*.f64 a (*.f64 b (cbrt.f64 a)))
(cbrt.f64 (*.f64 a (pow.f64 (*.f64 a b) 3)))
(*.f64 b (cbrt.f64 (pow.f64 a 4)))
(*.f64 a (*.f64 b (cbrt.f64 a)))
(cbrt.f64 (*.f64 (pow.f64 (*.f64 a b) 3) a))
(*.f64 b (cbrt.f64 (pow.f64 a 4)))
(*.f64 a (*.f64 b (cbrt.f64 a)))
(expm1.f64 (log1p.f64 (*.f64 (cbrt.f64 a) (*.f64 a b))))
(*.f64 b (cbrt.f64 (pow.f64 a 4)))
(*.f64 a (*.f64 b (cbrt.f64 a)))
(log1p.f64 (expm1.f64 (*.f64 (cbrt.f64 a) (*.f64 a b))))
(*.f64 b (cbrt.f64 (pow.f64 a 4)))
(*.f64 a (*.f64 b (cbrt.f64 a)))
(exp.f64 (log.f64 (*.f64 (cbrt.f64 a) (*.f64 a b))))
(*.f64 b (cbrt.f64 (pow.f64 a 4)))
(*.f64 a (*.f64 b (cbrt.f64 a)))

eval60.0ms (1.9%)

Compiler

Compiled 3952 to 1733 computations (56.1% saved)

prune41.0ms (1.3%)

Pruning

17 alts after pruning (4 fresh and 13 done)

PrunedKeptTotal
New2813284
Fresh011
Picked011
Done01212
Total28117298
Error
0.0b
Counts
298 → 17
Alt Table
Click to see full alt table
StatusErrorProgram
12.2b
(*.f64 (pow.f64 (cbrt.f64 (*.f64 (*.f64 a a) b)) 3) (neg.f64 b))
5.9b
(*.f64 (*.f64 (pow.f64 (cbrt.f64 a) 2) (*.f64 (cbrt.f64 a) (*.f64 a b))) (neg.f64 b))
25.8b
(*.f64 (*.f64 (*.f64 b (cbrt.f64 (pow.f64 a 4))) (cbrt.f64 (*.f64 a a))) (neg.f64 b))
11.8b
(*.f64 (*.f64 (*.f64 a a) b) (neg.f64 b))
5.4b
(*.f64 (*.f64 a (*.f64 a b)) (neg.f64 b))
38.4b
(*.f64 (*.f64 a a) (*.f64 b b))
17.4b
(*.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
23.2b
(*.f64 (cbrt.f64 (pow.f64 (*.f64 (*.f64 a a) b) 3)) (neg.f64 b))
38.3b
(*.f64 b (*.f64 a (*.f64 a b)))
12.3b
(*.f64 a (*.f64 (*.f64 b b) (neg.f64 a)))
4.7b
(*.f64 a (*.f64 (*.f64 a (neg.f64 b)) b))
38.3b
(*.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))))
0.3b
(neg.f64 (*.f64 (*.f64 b a) (*.f64 b a)))
16.7b
(neg.f64 (sqrt.f64 (pow.f64 (*.f64 b a) 4)))
32.4b
(neg.f64 (sqrt.f64 (*.f64 (pow.f64 (sqrt.f64 (*.f64 b a)) 4) (pow.f64 (sqrt.f64 (*.f64 b a)) 4))))
31.1b
(neg.f64 (sqrt.f64 (cbrt.f64 (pow.f64 (pow.f64 (*.f64 b a) 4) 3))))
Compiler

Compiled 201 to 126 computations (37.3% saved)

localize18.0ms (0.6%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(pow.f64 (pow.f64 (*.f64 b a) 4) 3)
0.4b
(pow.f64 (*.f64 b a) 4)
13.8b
(cbrt.f64 (pow.f64 (pow.f64 (*.f64 b a) 4) 3))
15.9b
(sqrt.f64 (cbrt.f64 (pow.f64 (pow.f64 (*.f64 b a) 4) 3)))
Compiler

Compiled 48 to 29 computations (39.6% saved)

series8.0ms (0.2%)

Counts
3 → 72
Calls

18 calls:

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

rewrite51.0ms (1.6%)

Algorithm
batch-egg-rewrite
Rules
774×pow1_binary64
731×add-log-exp_binary64
731×log1p-expm1-u_binary64
731×expm1-log1p-u_binary64
709×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01023
121921
2222621
Stop Event
node limit
Counts
3 → 86
Calls
Call 1
Inputs
(sqrt.f64 (cbrt.f64 (pow.f64 (pow.f64 (*.f64 b a) 4) 3)))
(cbrt.f64 (pow.f64 (pow.f64 (*.f64 b a) 4) 3))
(pow.f64 (pow.f64 (*.f64 b a) 4) 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 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 (*.f64 b a) 2) 1)))) (#(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 (sqrt.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 8))) (sqrt.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 b 4)) (sqrt.f64 (pow.f64 a 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/2) (pow.f64 (*.f64 b a) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 8)) 1/2) (pow.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 4)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 b 4) 1/2) (pow.f64 (pow.f64 a 4) 1/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) 12) 1/6)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 b a) 4) 1/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 (cbrt.f64 (*.f64 b a)) 2) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 b a) 6) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (pow.f64 (*.f64 b a) 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 (*.f64 b a) 6))))) (#(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 (pow.f64 (*.f64 b a) 4)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 b a) (pow.f64 (*.f64 b a) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 b a) 4) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (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) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 b a) 3) (*.f64 b a))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 4)) (cbrt.f64 (pow.f64 (*.f64 b a) 8)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 4)) (pow.f64 (pow.f64 (*.f64 b a) 8) 1/3))))) (#(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) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 8)) (cbrt.f64 (pow.f64 (*.f64 b a) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 b 4) (pow.f64 a 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 a 4) (pow.f64 b 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 4) (pow.f64 (cbrt.f64 (*.f64 b a)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (*.f64 b a)) 4) (pow.f64 (sqrt.f64 (*.f64 b a)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (*.f64 b a) 8) 1/3) (cbrt.f64 (pow.f64 (*.f64 b a) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/3) (pow.f64 (*.f64 b a) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (*.f64 b a) 2) (cbrt.f64 (pow.f64 (*.f64 b a) 4))) (pow.f64 (cbrt.f64 (*.f64 b a)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 b a) 4)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 b a) 12) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 b a) 4) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 b a) 8) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 b a) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 4)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 b a) 8))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (*.f64 b a) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (*.f64 b a) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (*.f64 b a) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 4 (log.f64 (*.f64 b a))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (*.f64 b a) 12)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 b a) 12) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 b a) 4) (pow.f64 (*.f64 b a) 8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (*.f64 b a) 12))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 b a) 8) (pow.f64 (*.f64 b a) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 b a) 2) (*.f64 (pow.f64 (*.f64 b a) 2) (pow.f64 (*.f64 b a) 8)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 8)) (*.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 4)) (pow.f64 (*.f64 b a) 8)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 b 4) (*.f64 (pow.f64 a 4) (pow.f64 (*.f64 b a) 8)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 b a) 6) (pow.f64 (*.f64 b a) 6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 b 12) (pow.f64 a 12))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 a 12) (pow.f64 b 12))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 12) (pow.f64 (cbrt.f64 (*.f64 b a)) 12))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (*.f64 b a)) 12) (pow.f64 (sqrt.f64 (*.f64 b a)) 12))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 8)) 3) (pow.f64 (*.f64 b a) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 b 4) 3) (pow.f64 (pow.f64 a 4) 3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (*.f64 b a) 8) (pow.f64 (*.f64 b a) 2)) (pow.f64 (*.f64 b a) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (*.f64 b a) 8) 1) (pow.f64 (*.f64 b a) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (*.f64 b a) 8) (cbrt.f64 (pow.f64 (*.f64 b a) 8))) (cbrt.f64 (pow.f64 (*.f64 b a) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (*.f64 b a) 8) (pow.f64 b 4)) (pow.f64 a 4))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 b a) 24))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (*.f64 b a) 12)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (*.f64 b a) 12) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (*.f64 b a) 12)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (*.f64 b a) 12)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 b a)) 12))))))

simplify54.0ms (1.7%)

Algorithm
egg-herbie
Rules
798×exp-prod_binary64
723×fabs-mul_binary64
659×fma-neg_binary64
658×cube-prod_binary64
405×fma-def_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01741446
13811143
215371141
346281141
Stop Event
node limit
Counts
158 → 94
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 4) (pow.f64 b 4))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(-.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 1 (pow.f64 (*.f64 b a) 2))
(*.f64 (*.f64 b b) (*.f64 a a))
(*.f64 (*.f64 a a) (*.f64 b b))
(*.f64 (pow.f64 (*.f64 b a) 2) 1)
(*.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 (sqrt.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 8))) (sqrt.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 4))))
(*.f64 (sqrt.f64 (pow.f64 b 4)) (sqrt.f64 (pow.f64 a 4)))
(*.f64 (pow.f64 1 1/2) (pow.f64 (*.f64 b a) 2))
(*.f64 (pow.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 8)) 1/2) (pow.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 4)) 1/2))
(*.f64 (pow.f64 (pow.f64 b 4) 1/2) (pow.f64 (pow.f64 a 4) 1/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) 12) 1/6)
(pow.f64 (pow.f64 (*.f64 b a) 4) 1/2)
(pow.f64 (pow.f64 (*.f64 b a) 2) 1)
(pow.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 3)
(pow.f64 (pow.f64 (*.f64 b a) 6) 1/3)
(fabs.f64 (pow.f64 (*.f64 b a) 2))
(log.f64 (exp.f64 (pow.f64 (*.f64 b a) 2)))
(cbrt.f64 (pow.f64 (*.f64 b a) 6))
(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 (pow.f64 (*.f64 b a) 4)) 1)
(*.f64 (*.f64 b a) (pow.f64 (*.f64 b a) 3))
(*.f64 (pow.f64 (*.f64 b a) 4) 1)
(*.f64 1 (pow.f64 (*.f64 b a) 4))
(*.f64 (pow.f64 (*.f64 b a) 2) (pow.f64 (*.f64 b a) 2))
(*.f64 (pow.f64 (*.f64 b a) 3) (*.f64 b a))
(*.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 4)) (cbrt.f64 (pow.f64 (*.f64 b a) 8)))
(*.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 4)) (pow.f64 (pow.f64 (*.f64 b a) 8) 1/3))
(*.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 4)) (*.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) (pow.f64 (*.f64 b a) 2)))
(*.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 8)) (cbrt.f64 (pow.f64 (*.f64 b a) 4)))
(*.f64 (pow.f64 b 4) (pow.f64 a 4))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 4) (pow.f64 (cbrt.f64 (*.f64 b a)) 4))
(*.f64 (pow.f64 (sqrt.f64 (*.f64 b a)) 4) (pow.f64 (sqrt.f64 (*.f64 b a)) 4))
(*.f64 (pow.f64 (pow.f64 (*.f64 b a) 8) 1/3) (cbrt.f64 (pow.f64 (*.f64 b a) 4)))
(*.f64 (pow.f64 1 1/3) (pow.f64 (*.f64 b a) 4))
(*.f64 (*.f64 (pow.f64 (*.f64 b a) 2) (cbrt.f64 (pow.f64 (*.f64 b a) 4))) (pow.f64 (cbrt.f64 (*.f64 b a)) 2))
(pow.f64 (*.f64 b a) 4)
(pow.f64 (pow.f64 (*.f64 b a) 12) 1/3)
(pow.f64 (pow.f64 (*.f64 b a) 4) 1)
(pow.f64 (pow.f64 (*.f64 b a) 8) 1/2)
(pow.f64 (pow.f64 (*.f64 b a) 2) 2)
(pow.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 4)) 3)
(sqrt.f64 (pow.f64 (*.f64 b a) 8))
(log.f64 (exp.f64 (pow.f64 (*.f64 b a) 4)))
(expm1.f64 (log1p.f64 (pow.f64 (*.f64 b a) 4)))
(log1p.f64 (expm1.f64 (pow.f64 (*.f64 b a) 4)))
(exp.f64 (*.f64 4 (log.f64 (*.f64 b a))))
(-.f64 (+.f64 1 (pow.f64 (*.f64 b a) 12)) 1)
(*.f64 (pow.f64 (*.f64 b a) 12) 1)
(*.f64 (pow.f64 (*.f64 b a) 4) (pow.f64 (*.f64 b a) 8))
(*.f64 1 (pow.f64 (*.f64 b a) 12))
(*.f64 (pow.f64 (*.f64 b a) 8) (pow.f64 (*.f64 b a) 4))
(*.f64 (pow.f64 (*.f64 b a) 2) (*.f64 (pow.f64 (*.f64 b a) 2) (pow.f64 (*.f64 b a) 8)))
(*.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 8)) (*.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 4)) (pow.f64 (*.f64 b a) 8)))
(*.f64 (pow.f64 b 4) (*.f64 (pow.f64 a 4) (pow.f64 (*.f64 b a) 8)))
(*.f64 (pow.f64 (*.f64 b a) 6) (pow.f64 (*.f64 b a) 6))
(*.f64 (pow.f64 b 12) (pow.f64 a 12))
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 12) (pow.f64 (cbrt.f64 (*.f64 b a)) 12))
(*.f64 (pow.f64 (sqrt.f64 (*.f64 b a)) 12) (pow.f64 (sqrt.f64 (*.f64 b a)) 12))
(*.f64 (pow.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 8)) 3) (pow.f64 (*.f64 b a) 4))
(*.f64 (pow.f64 (pow.f64 b 4) 3) (pow.f64 (pow.f64 a 4) 3))
(*.f64 (*.f64 (pow.f64 (*.f64 b a) 8) (pow.f64 (*.f64 b a) 2)) (pow.f64 (*.f64 b a) 2))
(*.f64 (*.f64 (pow.f64 (*.f64 b a) 8) 1) (pow.f64 (*.f64 b a) 4))
(*.f64 (*.f64 (pow.f64 (*.f64 b a) 8) (cbrt.f64 (pow.f64 (*.f64 b a) 8))) (cbrt.f64 (pow.f64 (*.f64 b a) 4)))
(*.f64 (*.f64 (pow.f64 (*.f64 b a) 8) (pow.f64 b 4)) (pow.f64 a 4))
(sqrt.f64 (pow.f64 (*.f64 b a) 24))
(log.f64 (exp.f64 (pow.f64 (*.f64 b a) 12)))
(cbrt.f64 (pow.f64 (pow.f64 (*.f64 b a) 12) 3))
(expm1.f64 (log1p.f64 (pow.f64 (*.f64 b a) 12)))
(log1p.f64 (expm1.f64 (pow.f64 (*.f64 b a) 12)))
(exp.f64 (*.f64 (log.f64 (*.f64 b a)) 12))
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 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(pow.f64 (*.f64 a b) 12)
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(pow.f64 (*.f64 a b) 12)
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(pow.f64 (*.f64 a b) 12)
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(pow.f64 (*.f64 a b) 12)
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(pow.f64 (*.f64 a b) 12)
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(pow.f64 (*.f64 a b) 12)
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(pow.f64 (*.f64 a b) 12)
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(pow.f64 (*.f64 a b) 12)
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(pow.f64 (*.f64 a b) 12)
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(pow.f64 (*.f64 a b) 12)
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(pow.f64 (*.f64 a b) 12)
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(pow.f64 (*.f64 a b) 12)
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(pow.f64 (*.f64 a b) 12)
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(pow.f64 (*.f64 a b) 12)
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(pow.f64 (*.f64 a b) 12)
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(pow.f64 (*.f64 a b) 12)
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(pow.f64 (*.f64 a b) 12)
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(pow.f64 (*.f64 a b) 12)
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(pow.f64 (*.f64 a b) 12)
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(pow.f64 (*.f64 a b) 12)
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(pow.f64 (*.f64 a b) 12)
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(pow.f64 (*.f64 a b) 12)
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(pow.f64 (*.f64 a b) 12)
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(pow.f64 (*.f64 a b) 12)
(-.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 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 (*.f64 b a) 2) 1)
(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 (sqrt.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 8))) (sqrt.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 4))))
(*.f64 (sqrt.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 8))) (sqrt.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 4))))
(*.f64 (sqrt.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 4))) (pow.f64 (pow.f64 (*.f64 a b) 8) 1/6))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 4)) (pow.f64 (pow.f64 (*.f64 a b) 8) 1/6))
(*.f64 (sqrt.f64 (pow.f64 b 4)) (sqrt.f64 (pow.f64 a 4)))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 1 1/2) (pow.f64 (*.f64 b a) 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 8)) 1/2) (pow.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 4)) 1/2))
(*.f64 (sqrt.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 8))) (sqrt.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 4))))
(*.f64 (sqrt.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 4))) (pow.f64 (pow.f64 (*.f64 a b) 8) 1/6))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 4)) (pow.f64 (pow.f64 (*.f64 a b) 8) 1/6))
(*.f64 (pow.f64 (pow.f64 b 4) 1/2) (pow.f64 (pow.f64 a 4) 1/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) 12) 1/6)
(pow.f64 (pow.f64 (*.f64 a b) 12) 1/6)
(pow.f64 (pow.f64 (*.f64 b a) 4) 1/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 (cbrt.f64 (*.f64 b a)) 2) 3)
(pow.f64 (*.f64 a b) 2)
(pow.f64 (pow.f64 (*.f64 b a) 6) 1/3)
(pow.f64 (*.f64 a b) 2)
(fabs.f64 (pow.f64 (*.f64 b a) 2))
(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 (*.f64 b a) 6))
(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 (log.f64 (pow.f64 (*.f64 b a) 2)))
(pow.f64 (*.f64 a b) 2)
(-.f64 (+.f64 1 (pow.f64 (*.f64 b a) 4)) 1)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (*.f64 b a) (pow.f64 (*.f64 b a) 3))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 (*.f64 b a) 4) 1)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 1 (pow.f64 (*.f64 b a) 4))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 (*.f64 b a) 2) (pow.f64 (*.f64 b a) 2))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 (*.f64 b a) 3) (*.f64 b a))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 4)) (cbrt.f64 (pow.f64 (*.f64 b a) 8)))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 4)) (pow.f64 (pow.f64 (*.f64 b a) 8) 1/3))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 4)) (*.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) (pow.f64 (*.f64 b a) 2)))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 8)) (cbrt.f64 (pow.f64 (*.f64 b a) 4)))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 b 4) (pow.f64 a 4))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 4) (pow.f64 (cbrt.f64 (*.f64 b a)) 4))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 (sqrt.f64 (*.f64 b a)) 4) (pow.f64 (sqrt.f64 (*.f64 b a)) 4))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 (pow.f64 (*.f64 b a) 8) 1/3) (cbrt.f64 (pow.f64 (*.f64 b a) 4)))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 1 1/3) (pow.f64 (*.f64 b a) 4))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (*.f64 (pow.f64 (*.f64 b a) 2) (cbrt.f64 (pow.f64 (*.f64 b a) 4))) (pow.f64 (cbrt.f64 (*.f64 b a)) 2))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(pow.f64 (*.f64 b a) 4)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(pow.f64 (pow.f64 (*.f64 b a) 12) 1/3)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(pow.f64 (pow.f64 (*.f64 b a) 4) 1)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(pow.f64 (pow.f64 (*.f64 b a) 8) 1/2)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(pow.f64 (pow.f64 (*.f64 b a) 2) 2)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(pow.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 4)) 3)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(sqrt.f64 (pow.f64 (*.f64 b a) 8))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(log.f64 (exp.f64 (pow.f64 (*.f64 b a) 4)))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(expm1.f64 (log1p.f64 (pow.f64 (*.f64 b a) 4)))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(log1p.f64 (expm1.f64 (pow.f64 (*.f64 b a) 4)))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(exp.f64 (*.f64 4 (log.f64 (*.f64 b a))))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(-.f64 (+.f64 1 (pow.f64 (*.f64 b a) 12)) 1)
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(pow.f64 (*.f64 a b) 12)
(*.f64 (pow.f64 (*.f64 b a) 12) 1)
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(pow.f64 (*.f64 a b) 12)
(*.f64 (pow.f64 (*.f64 b a) 4) (pow.f64 (*.f64 b a) 8))
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(pow.f64 (*.f64 a b) 12)
(*.f64 1 (pow.f64 (*.f64 b a) 12))
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(pow.f64 (*.f64 a b) 12)
(*.f64 (pow.f64 (*.f64 b a) 8) (pow.f64 (*.f64 b a) 4))
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(pow.f64 (*.f64 a b) 12)
(*.f64 (pow.f64 (*.f64 b a) 2) (*.f64 (pow.f64 (*.f64 b a) 2) (pow.f64 (*.f64 b a) 8)))
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(pow.f64 (*.f64 a b) 12)
(*.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 8)) (*.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 4)) (pow.f64 (*.f64 b a) 8)))
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(pow.f64 (*.f64 a b) 12)
(*.f64 (pow.f64 b 4) (*.f64 (pow.f64 a 4) (pow.f64 (*.f64 b a) 8)))
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(pow.f64 (*.f64 a b) 12)
(*.f64 (pow.f64 (*.f64 b a) 6) (pow.f64 (*.f64 b a) 6))
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(pow.f64 (*.f64 a b) 12)
(*.f64 (pow.f64 b 12) (pow.f64 a 12))
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(pow.f64 (*.f64 a b) 12)
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(pow.f64 (*.f64 a b) 12)
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 12) (pow.f64 (cbrt.f64 (*.f64 b a)) 12))
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(pow.f64 (*.f64 a b) 12)
(*.f64 (pow.f64 (sqrt.f64 (*.f64 b a)) 12) (pow.f64 (sqrt.f64 (*.f64 b a)) 12))
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(pow.f64 (*.f64 a b) 12)
(*.f64 (pow.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 8)) 3) (pow.f64 (*.f64 b a) 4))
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(pow.f64 (*.f64 a b) 12)
(*.f64 (pow.f64 (pow.f64 b 4) 3) (pow.f64 (pow.f64 a 4) 3))
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(pow.f64 (*.f64 a b) 12)
(*.f64 (*.f64 (pow.f64 (*.f64 b a) 8) (pow.f64 (*.f64 b a) 2)) (pow.f64 (*.f64 b a) 2))
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(pow.f64 (*.f64 a b) 12)
(*.f64 (*.f64 (pow.f64 (*.f64 b a) 8) 1) (pow.f64 (*.f64 b a) 4))
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(pow.f64 (*.f64 a b) 12)
(*.f64 (*.f64 (pow.f64 (*.f64 b a) 8) (cbrt.f64 (pow.f64 (*.f64 b a) 8))) (cbrt.f64 (pow.f64 (*.f64 b a) 4)))
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(pow.f64 (*.f64 a b) 12)
(*.f64 (*.f64 (pow.f64 (*.f64 b a) 8) (pow.f64 b 4)) (pow.f64 a 4))
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(pow.f64 (*.f64 a b) 12)
(sqrt.f64 (pow.f64 (*.f64 b a) 24))
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(pow.f64 (*.f64 a b) 12)
(log.f64 (exp.f64 (pow.f64 (*.f64 b a) 12)))
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(pow.f64 (*.f64 a b) 12)
(cbrt.f64 (pow.f64 (pow.f64 (*.f64 b a) 12) 3))
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(pow.f64 (*.f64 a b) 12)
(expm1.f64 (log1p.f64 (pow.f64 (*.f64 b a) 12)))
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(pow.f64 (*.f64 a b) 12)
(log1p.f64 (expm1.f64 (pow.f64 (*.f64 b a) 12)))
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(pow.f64 (*.f64 a b) 12)
(exp.f64 (*.f64 (log.f64 (*.f64 b a)) 12))
(*.f64 (pow.f64 a 12) (pow.f64 b 12))
(pow.f64 (*.f64 a b) 12)

localize16.0ms (0.5%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(*.f64 (pow.f64 (sqrt.f64 (*.f64 b a)) 4) (pow.f64 (sqrt.f64 (*.f64 b a)) 4))
0.3b
(pow.f64 (sqrt.f64 (*.f64 b a)) 4)
9.7b
(sqrt.f64 (*.f64 (pow.f64 (sqrt.f64 (*.f64 b a)) 4) (pow.f64 (sqrt.f64 (*.f64 b a)) 4)))
11.7b
(sqrt.f64 (*.f64 b a))
Compiler

Compiled 60 to 25 computations (58.3% saved)

series20.0ms (0.6%)

Counts
4 → 48
Calls

24 calls:

TimeVariablePointExpression
3.0ms
a
@0
(pow.f64 (sqrt.f64 (*.f64 b a)) 4)
2.0ms
b
@-inf
(pow.f64 (sqrt.f64 (*.f64 b a)) 4)
2.0ms
b
@-inf
(sqrt.f64 (*.f64 (pow.f64 (sqrt.f64 (*.f64 b a)) 4) (pow.f64 (sqrt.f64 (*.f64 b a)) 4)))
2.0ms
a
@-inf
(pow.f64 (sqrt.f64 (*.f64 b a)) 4)
2.0ms
b
@0
(pow.f64 (sqrt.f64 (*.f64 b a)) 4)

rewrite50.0ms (1.6%)

Algorithm
batch-egg-rewrite
Rules
669×pow1_binary64
623×add-log-exp_binary64
623×log1p-expm1-u_binary64
623×expm1-log1p-u_binary64
602×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0927
119027
2191427
Stop Event
node limit
Counts
4 → 104
Calls
Call 1
Inputs
(sqrt.f64 (*.f64 b a))
(sqrt.f64 (*.f64 (pow.f64 (sqrt.f64 (*.f64 b a)) 4) (pow.f64 (sqrt.f64 (*.f64 b a)) 4)))
(pow.f64 (sqrt.f64 (*.f64 b a)) 4)
(*.f64 (pow.f64 (sqrt.f64 (*.f64 b a)) 4) (pow.f64 (sqrt.f64 (*.f64 b a)) 4))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (sqrt.f64 (*.f64 b a))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 b a)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (*.f64 b a)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (sqrt.f64 (*.f64 b a))) (cbrt.f64 (*.f64 b a)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 b a)) (cbrt.f64 (sqrt.f64 (*.f64 b a))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 b a) 1/4) (pow.f64 (*.f64 b a) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 b) (sqrt.f64 a))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 a) (sqrt.f64 b))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2)) (sqrt.f64 (cbrt.f64 (*.f64 b a))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/2) (sqrt.f64 (*.f64 b a)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 1/2) (pow.f64 (cbrt.f64 (*.f64 b a)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 b a) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 b a)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 b a) 3/2) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (sqrt.f64 (*.f64 b a))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 b a) 1/4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (sqrt.f64 (*.f64 b a)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (sqrt.f64 (*.f64 b a))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 b a) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (sqrt.f64 (*.f64 b a))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (sqrt.f64 (*.f64 b a))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (sqrt.f64 (*.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 *.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 (sqrt.f64 (*.f64 b a)) (pow.f64 (*.f64 b a) 3/2))))) (#(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 (pow.f64 (*.f64 b a) 3/2) (sqrt.f64 (*.f64 b a)))))) (#(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 (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 (cbrt.f64 (pow.f64 (*.f64 b a) 8))) (sqrt.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/2) (pow.f64 (*.f64 b a) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4) (pow.f64 (cbrt.f64 (sqrt.f64 (*.f64 b a))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (*.f64 b a) 1/4) 4) (pow.f64 (pow.f64 (*.f64 b a) 1/4) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 b) 4) (pow.f64 (sqrt.f64 a) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 8)) 1/2) (pow.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 4)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fabs.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 4))) (fabs.f64 (pow.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 pow.f64 (*.f64 b a) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 b a)) 4)))) (#(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) 4) 1/2)))) (#(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 fabs.f64 (pow.f64 (*.f64 b a) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (neg.f64 (pow.f64 (*.f64 b a) 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 (*.f64 b a) 6))))) (#(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))))))
((#(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 (sqrt.f64 (*.f64 b a)) (pow.f64 (*.f64 b a) 3/2))))) (#(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 (pow.f64 (*.f64 b a) 3/2) (sqrt.f64 (*.f64 b a)))))) (#(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 (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 (cbrt.f64 (pow.f64 (*.f64 b a) 8))) (sqrt.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/2) (pow.f64 (*.f64 b a) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4) (pow.f64 (cbrt.f64 (sqrt.f64 (*.f64 b a))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (*.f64 b a) 1/4) 4) (pow.f64 (pow.f64 (*.f64 b a) 1/4) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 b) 4) (pow.f64 (sqrt.f64 a) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 8)) 1/2) (pow.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 4)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fabs.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 4))) (fabs.f64 (pow.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 (*.f64 b a) 4))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (pow.f64 (*.f64 b a) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (neg.f64 (pow.f64 (*.f64 b a) 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 (*.f64 b a) 6))))) (#(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))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (*.f64 b a) 4)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 b a) 4)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 b a)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 b a) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 b a) 4) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 b a) 8) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (pow.f64 (*.f64 b a) 4) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 4)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 b a) 8))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (pow.f64 (*.f64 b a) 4))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (*.f64 b a) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (*.f64 b a) 4) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (*.f64 b a) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (*.f64 b a) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 4 (log.f64 (*.f64 b a))))))))

simplify50.0ms (1.6%)

Algorithm
egg-herbie
Rules
586×fma-def_binary64
425×fma-neg_binary64
410×fabs-mul_binary64
390×exp-prod_binary64
324×distribute-rgt-in_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01541455
13201274
211591216
336001202
Stop Event
node limit
Counts
152 → 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 (sqrt.f64 -1) 4) (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (pow.f64 (sqrt.f64 -1) 4) (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (pow.f64 (sqrt.f64 -1) 4) (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (pow.f64 (sqrt.f64 -1) 4) (*.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 (sqrt.f64 -1) 4) (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (pow.f64 (sqrt.f64 -1) 4) (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (pow.f64 (sqrt.f64 -1) 4) (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (pow.f64 (sqrt.f64 -1) 4) (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(*.f64 (pow.f64 (sqrt.f64 -1) 8) (*.f64 (pow.f64 a 4) (pow.f64 b 4)))
(*.f64 (pow.f64 (sqrt.f64 -1) 8) (*.f64 (pow.f64 a 4) (pow.f64 b 4)))
(*.f64 (pow.f64 (sqrt.f64 -1) 8) (*.f64 (pow.f64 a 4) (pow.f64 b 4)))
(*.f64 (pow.f64 (sqrt.f64 -1) 8) (*.f64 (pow.f64 a 4) (pow.f64 b 4)))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(*.f64 (pow.f64 (sqrt.f64 -1) 8) (*.f64 (pow.f64 a 4) (pow.f64 b 4)))
(*.f64 (pow.f64 (sqrt.f64 -1) 8) (*.f64 (pow.f64 a 4) (pow.f64 b 4)))
(*.f64 (pow.f64 (sqrt.f64 -1) 8) (*.f64 (pow.f64 a 4) (pow.f64 b 4)))
(*.f64 (pow.f64 (sqrt.f64 -1) 8) (*.f64 (pow.f64 a 4) (pow.f64 b 4)))
(-.f64 (+.f64 1 (sqrt.f64 (*.f64 b a))) 1)
(*.f64 (sqrt.f64 (*.f64 b a)) 1)
(*.f64 1 (sqrt.f64 (*.f64 b a)))
(*.f64 (cbrt.f64 (sqrt.f64 (*.f64 b a))) (cbrt.f64 (*.f64 b a)))
(*.f64 (cbrt.f64 (*.f64 b a)) (cbrt.f64 (sqrt.f64 (*.f64 b a))))
(*.f64 (pow.f64 (*.f64 b a) 1/4) (pow.f64 (*.f64 b a) 1/4))
(*.f64 (sqrt.f64 b) (sqrt.f64 a))
(*.f64 (sqrt.f64 a) (sqrt.f64 b))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2)) (sqrt.f64 (cbrt.f64 (*.f64 b a))))
(*.f64 (pow.f64 1 1/2) (sqrt.f64 (*.f64 b a)))
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 1/2) (pow.f64 (cbrt.f64 (*.f64 b a)) 1/2))
(pow.f64 (*.f64 b a) 1/2)
(pow.f64 (sqrt.f64 (*.f64 b a)) 1)
(pow.f64 (pow.f64 (*.f64 b a) 3/2) 1/3)
(pow.f64 (cbrt.f64 (sqrt.f64 (*.f64 b a))) 3)
(pow.f64 (pow.f64 (*.f64 b a) 1/4) 2)
(fabs.f64 (sqrt.f64 (*.f64 b a)))
(log.f64 (exp.f64 (sqrt.f64 (*.f64 b a))))
(cbrt.f64 (pow.f64 (*.f64 b a) 3/2))
(expm1.f64 (log1p.f64 (sqrt.f64 (*.f64 b a))))
(log1p.f64 (expm1.f64 (sqrt.f64 (*.f64 b a))))
(exp.f64 (log.f64 (sqrt.f64 (*.f64 b a))))
(-.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 (sqrt.f64 (*.f64 b a)) (pow.f64 (*.f64 b a) 3/2))
(*.f64 (pow.f64 (*.f64 b a) 2) 1)
(*.f64 1 (pow.f64 (*.f64 b a) 2))
(*.f64 (pow.f64 (*.f64 b a) 3/2) (sqrt.f64 (*.f64 b a)))
(*.f64 (*.f64 b b) (*.f64 a a))
(*.f64 (*.f64 a a) (*.f64 b b))
(*.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 (cbrt.f64 (pow.f64 (*.f64 b a) 8))) (sqrt.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 4))))
(*.f64 (pow.f64 1 1/2) (pow.f64 (*.f64 b a) 2))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4) (pow.f64 (cbrt.f64 (sqrt.f64 (*.f64 b a))) 4))
(*.f64 (pow.f64 (pow.f64 (*.f64 b a) 1/4) 4) (pow.f64 (pow.f64 (*.f64 b a) 1/4) 4))
(*.f64 (pow.f64 (sqrt.f64 b) 4) (pow.f64 (sqrt.f64 a) 4))
(*.f64 (pow.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 8)) 1/2) (pow.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 4)) 1/2))
(*.f64 (fabs.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 4))) (fabs.f64 (pow.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)))
(pow.f64 (*.f64 b a) 2)
(pow.f64 (sqrt.f64 (*.f64 b a)) 4)
(pow.f64 (pow.f64 (*.f64 b a) 2) 1)
(pow.f64 (pow.f64 (*.f64 b a) 4) 1/2)
(pow.f64 (pow.f64 (*.f64 b a) 6) 1/3)
(pow.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 3)
(fabs.f64 (pow.f64 (*.f64 b a) 2))
(fabs.f64 (neg.f64 (pow.f64 (*.f64 b a) 2)))
(log.f64 (exp.f64 (pow.f64 (*.f64 b a) 2)))
(cbrt.f64 (pow.f64 (*.f64 b a) 6))
(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))
(-.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 (sqrt.f64 (*.f64 b a)) (pow.f64 (*.f64 b a) 3/2))
(*.f64 (pow.f64 (*.f64 b a) 2) 1)
(*.f64 1 (pow.f64 (*.f64 b a) 2))
(*.f64 (pow.f64 (*.f64 b a) 3/2) (sqrt.f64 (*.f64 b a)))
(*.f64 (*.f64 b b) (*.f64 a a))
(*.f64 (*.f64 a a) (*.f64 b b))
(*.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 (cbrt.f64 (pow.f64 (*.f64 b a) 8))) (sqrt.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 4))))
(*.f64 (pow.f64 1 1/2) (pow.f64 (*.f64 b a) 2))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4) (pow.f64 (cbrt.f64 (sqrt.f64 (*.f64 b a))) 4))
(*.f64 (pow.f64 (pow.f64 (*.f64 b a) 1/4) 4) (pow.f64 (pow.f64 (*.f64 b a) 1/4) 4))
(*.f64 (pow.f64 (sqrt.f64 b) 4) (pow.f64 (sqrt.f64 a) 4))
(*.f64 (pow.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 8)) 1/2) (pow.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 4)) 1/2))
(*.f64 (fabs.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 4))) (fabs.f64 (pow.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 (*.f64 b a) 4))
(fabs.f64 (pow.f64 (*.f64 b a) 2))
(fabs.f64 (neg.f64 (pow.f64 (*.f64 b a) 2)))
(log.f64 (exp.f64 (pow.f64 (*.f64 b a) 2)))
(cbrt.f64 (pow.f64 (*.f64 b a) 6))
(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))
(-.f64 (+.f64 1 (pow.f64 (*.f64 b a) 4)) 1)
(pow.f64 (*.f64 b a) 4)
(pow.f64 (sqrt.f64 (*.f64 b a)) 8)
(pow.f64 (pow.f64 (*.f64 b a) 2) 2)
(pow.f64 (pow.f64 (*.f64 b a) 4) 1)
(pow.f64 (pow.f64 (*.f64 b a) 8) 1/2)
(pow.f64 (pow.f64 (pow.f64 (*.f64 b a) 4) 3) 1/3)
(pow.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 4)) 3)
(sqrt.f64 (pow.f64 (*.f64 b a) 8))
(fabs.f64 (pow.f64 (*.f64 b a) 4))
(log.f64 (exp.f64 (pow.f64 (*.f64 b a) 4)))
(cbrt.f64 (pow.f64 (pow.f64 (*.f64 b a) 4) 3))
(expm1.f64 (log1p.f64 (pow.f64 (*.f64 b a) 4)))
(log1p.f64 (expm1.f64 (pow.f64 (*.f64 b a) 4)))
(exp.f64 (*.f64 4 (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 (sqrt.f64 -1) 4) (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 (sqrt.f64 -1) 4) (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 (sqrt.f64 -1) 4) (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 (sqrt.f64 -1) 4) (*.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 (sqrt.f64 -1) 4) (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 (sqrt.f64 -1) 4) (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 (sqrt.f64 -1) 4) (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 (sqrt.f64 -1) 4) (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 (sqrt.f64 -1) 8) (*.f64 (pow.f64 a 4) (pow.f64 b 4)))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 (sqrt.f64 -1) 8) (*.f64 (pow.f64 a 4) (pow.f64 b 4)))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 (sqrt.f64 -1) 8) (*.f64 (pow.f64 a 4) (pow.f64 b 4)))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 (sqrt.f64 -1) 8) (*.f64 (pow.f64 a 4) (pow.f64 b 4)))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 (sqrt.f64 -1) 8) (*.f64 (pow.f64 a 4) (pow.f64 b 4)))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 (sqrt.f64 -1) 8) (*.f64 (pow.f64 a 4) (pow.f64 b 4)))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 (sqrt.f64 -1) 8) (*.f64 (pow.f64 a 4) (pow.f64 b 4)))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(*.f64 (pow.f64 (sqrt.f64 -1) 8) (*.f64 (pow.f64 a 4) (pow.f64 b 4)))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(-.f64 (+.f64 1 (sqrt.f64 (*.f64 b a))) 1)
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 a b)) 1))
(+.f64 (sqrt.f64 (*.f64 a b)) 0)
(sqrt.f64 (*.f64 a b))
(*.f64 (sqrt.f64 (*.f64 b a)) 1)
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 a b)) 1))
(+.f64 (sqrt.f64 (*.f64 a b)) 0)
(sqrt.f64 (*.f64 a b))
(*.f64 1 (sqrt.f64 (*.f64 b a)))
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 a b)) 1))
(+.f64 (sqrt.f64 (*.f64 a b)) 0)
(sqrt.f64 (*.f64 a b))
(*.f64 (cbrt.f64 (sqrt.f64 (*.f64 b a))) (cbrt.f64 (*.f64 b a)))
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 a b)) 1))
(+.f64 (sqrt.f64 (*.f64 a b)) 0)
(sqrt.f64 (*.f64 a b))
(*.f64 (cbrt.f64 (*.f64 b a)) (cbrt.f64 (sqrt.f64 (*.f64 b a))))
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 a b)) 1))
(+.f64 (sqrt.f64 (*.f64 a b)) 0)
(sqrt.f64 (*.f64 a b))
(*.f64 (pow.f64 (*.f64 b a) 1/4) (pow.f64 (*.f64 b a) 1/4))
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 a b)) 1))
(+.f64 (sqrt.f64 (*.f64 a b)) 0)
(sqrt.f64 (*.f64 a b))
(*.f64 (sqrt.f64 b) (sqrt.f64 a))
(*.f64 (sqrt.f64 a) (sqrt.f64 b))
(*.f64 (sqrt.f64 b) (sqrt.f64 a))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2)) (sqrt.f64 (cbrt.f64 (*.f64 b a))))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2)) (sqrt.f64 (cbrt.f64 (*.f64 a b))))
(*.f64 (fabs.f64 (cbrt.f64 (*.f64 a b))) (sqrt.f64 (cbrt.f64 (*.f64 a b))))
(*.f64 (cbrt.f64 (*.f64 a b)) (sqrt.f64 (cbrt.f64 (*.f64 a b))))
(pow.f64 (cbrt.f64 (*.f64 a b)) 3/2)
(*.f64 (pow.f64 1 1/2) (sqrt.f64 (*.f64 b a)))
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 a b)) 1))
(+.f64 (sqrt.f64 (*.f64 a b)) 0)
(sqrt.f64 (*.f64 a b))
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 1/2) (pow.f64 (cbrt.f64 (*.f64 b a)) 1/2))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2)) (sqrt.f64 (cbrt.f64 (*.f64 a b))))
(*.f64 (fabs.f64 (cbrt.f64 (*.f64 a b))) (sqrt.f64 (cbrt.f64 (*.f64 a b))))
(*.f64 (cbrt.f64 (*.f64 a b)) (sqrt.f64 (cbrt.f64 (*.f64 a b))))
(pow.f64 (cbrt.f64 (*.f64 a b)) 3/2)
(pow.f64 (*.f64 b a) 1/2)
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 a b)) 1))
(+.f64 (sqrt.f64 (*.f64 a b)) 0)
(sqrt.f64 (*.f64 a b))
(pow.f64 (sqrt.f64 (*.f64 b a)) 1)
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 a b)) 1))
(+.f64 (sqrt.f64 (*.f64 a b)) 0)
(sqrt.f64 (*.f64 a b))
(pow.f64 (pow.f64 (*.f64 b a) 3/2) 1/3)
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 a b)) 1))
(+.f64 (sqrt.f64 (*.f64 a b)) 0)
(sqrt.f64 (*.f64 a b))
(pow.f64 (cbrt.f64 (sqrt.f64 (*.f64 b a))) 3)
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 a b)) 1))
(+.f64 (sqrt.f64 (*.f64 a b)) 0)
(sqrt.f64 (*.f64 a b))
(pow.f64 (pow.f64 (*.f64 b a) 1/4) 2)
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 a b)) 1))
(+.f64 (sqrt.f64 (*.f64 a b)) 0)
(sqrt.f64 (*.f64 a b))
(fabs.f64 (sqrt.f64 (*.f64 b a)))
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 a b)) 1))
(+.f64 (sqrt.f64 (*.f64 a b)) 0)
(sqrt.f64 (*.f64 a b))
(log.f64 (exp.f64 (sqrt.f64 (*.f64 b a))))
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 a b)) 1))
(+.f64 (sqrt.f64 (*.f64 a b)) 0)
(sqrt.f64 (*.f64 a b))
(cbrt.f64 (pow.f64 (*.f64 b a) 3/2))
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 a b)) 1))
(+.f64 (sqrt.f64 (*.f64 a b)) 0)
(sqrt.f64 (*.f64 a b))
(expm1.f64 (log1p.f64 (sqrt.f64 (*.f64 b a))))
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 a b)) 1))
(+.f64 (sqrt.f64 (*.f64 a b)) 0)
(sqrt.f64 (*.f64 a b))
(log1p.f64 (expm1.f64 (sqrt.f64 (*.f64 b a))))
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 a b)) 1))
(+.f64 (sqrt.f64 (*.f64 a b)) 0)
(sqrt.f64 (*.f64 a b))
(exp.f64 (log.f64 (sqrt.f64 (*.f64 b a))))
(+.f64 1 (-.f64 (sqrt.f64 (*.f64 a b)) 1))
(+.f64 (sqrt.f64 (*.f64 a b)) 0)
(sqrt.f64 (*.f64 a b))
(-.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 (sqrt.f64 (*.f64 b a)) (pow.f64 (*.f64 b a) 3/2))
(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 (pow.f64 (*.f64 b a) 3/2) (sqrt.f64 (*.f64 b a)))
(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 (cbrt.f64 (pow.f64 (*.f64 b a) 4)) (pow.f64 (cbrt.f64 (*.f64 b a)) 2))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) (cbrt.f64 (pow.f64 (*.f64 a b) 4)))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) (cbrt.f64 (pow.f64 (*.f64 b a) 4)))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) (cbrt.f64 (pow.f64 (*.f64 a b) 4)))
(*.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 (cbrt.f64 (pow.f64 (*.f64 b a) 8))) (sqrt.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 4))))
(*.f64 (sqrt.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 8))) (sqrt.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 4))))
(*.f64 (pow.f64 1 1/2) (pow.f64 (*.f64 b a) 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4) (pow.f64 (cbrt.f64 (sqrt.f64 (*.f64 b a))) 4))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 (pow.f64 (*.f64 b a) 1/4) 4) (pow.f64 (pow.f64 (*.f64 b a) 1/4) 4))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 (sqrt.f64 b) 4) (pow.f64 (sqrt.f64 a) 4))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 8)) 1/2) (pow.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 4)) 1/2))
(*.f64 (sqrt.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 8))) (sqrt.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 4))))
(*.f64 (fabs.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 4))) (fabs.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2)))
(*.f64 (fabs.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 4))) (fabs.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2)))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) (fabs.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 4))))
(*.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 (sqrt.f64 (*.f64 b a)) 4)
(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) 4) 1/2)
(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)
(fabs.f64 (pow.f64 (*.f64 b a) 2))
(pow.f64 (*.f64 a b) 2)
(fabs.f64 (neg.f64 (pow.f64 (*.f64 b a) 2)))
(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 (*.f64 b a) 6))
(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 (log.f64 (*.f64 b a)) 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 (sqrt.f64 (*.f64 b a)) (pow.f64 (*.f64 b a) 3/2))
(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 (pow.f64 (*.f64 b a) 3/2) (sqrt.f64 (*.f64 b a)))
(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 (cbrt.f64 (pow.f64 (*.f64 b a) 4)) (pow.f64 (cbrt.f64 (*.f64 b a)) 2))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) (cbrt.f64 (pow.f64 (*.f64 a b) 4)))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) (cbrt.f64 (pow.f64 (*.f64 b a) 4)))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) (cbrt.f64 (pow.f64 (*.f64 a b) 4)))
(*.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 (cbrt.f64 (pow.f64 (*.f64 b a) 8))) (sqrt.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 4))))
(*.f64 (sqrt.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 8))) (sqrt.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 4))))
(*.f64 (pow.f64 1 1/2) (pow.f64 (*.f64 b a) 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4) (pow.f64 (cbrt.f64 (sqrt.f64 (*.f64 b a))) 4))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 (pow.f64 (*.f64 b a) 1/4) 4) (pow.f64 (pow.f64 (*.f64 b a) 1/4) 4))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 (sqrt.f64 b) 4) (pow.f64 (sqrt.f64 a) 4))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 8)) 1/2) (pow.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 4)) 1/2))
(*.f64 (sqrt.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 8))) (sqrt.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 4))))
(*.f64 (fabs.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 4))) (fabs.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2)))
(*.f64 (fabs.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 4))) (fabs.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2)))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) (fabs.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 4))))
(*.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)
(fabs.f64 (pow.f64 (*.f64 b a) 2))
(pow.f64 (*.f64 a b) 2)
(fabs.f64 (neg.f64 (pow.f64 (*.f64 b a) 2)))
(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 (*.f64 b a) 6))
(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 (log.f64 (*.f64 b a)) 2))
(pow.f64 (*.f64 a b) 2)
(-.f64 (+.f64 1 (pow.f64 (*.f64 b a) 4)) 1)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(pow.f64 (*.f64 b a) 4)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(pow.f64 (sqrt.f64 (*.f64 b a)) 8)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(pow.f64 (pow.f64 (*.f64 b a) 2) 2)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(pow.f64 (pow.f64 (*.f64 b a) 4) 1)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(pow.f64 (pow.f64 (*.f64 b a) 8) 1/2)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(pow.f64 (pow.f64 (pow.f64 (*.f64 b a) 4) 3) 1/3)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(pow.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 4)) 3)
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(sqrt.f64 (pow.f64 (*.f64 b a) 8))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(fabs.f64 (pow.f64 (*.f64 b a) 4))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(log.f64 (exp.f64 (pow.f64 (*.f64 b a) 4)))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(cbrt.f64 (pow.f64 (pow.f64 (*.f64 b a) 4) 3))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(expm1.f64 (log1p.f64 (pow.f64 (*.f64 b a) 4)))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(log1p.f64 (expm1.f64 (pow.f64 (*.f64 b a) 4)))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)
(exp.f64 (*.f64 4 (log.f64 (*.f64 b a))))
(*.f64 (pow.f64 a 4) (pow.f64 b 4))
(pow.f64 (*.f64 a b) 4)

localize16.0ms (0.5%)

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.2b
(*.f64 (cbrt.f64 (*.f64 b a)) (*.f64 b a))
0.5b
(pow.f64 (cbrt.f64 (*.f64 b a)) 2)
12.2b
(cbrt.f64 (*.f64 b a))
Compiler

Compiled 57 to 15 computations (73.7% saved)

series9.0ms (0.3%)

Counts
4 → 24
Calls

24 calls:

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

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

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

localize6.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.2b
(*.f64 a (*.f64 a b))
5.1b
(*.f64 b (*.f64 a (*.f64 a b)))
Compiler

Compiled 19 to 5 computations (73.7% saved)

series1.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

rewrite37.0ms (1.1%)

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

Useful iterations: 1 (0.0ms)

IterNodesCost
0610
11217
214457
Stop Event
node limit
Counts
1 → 11
Calls
Call 1
Inputs
(*.f64 b (*.f64 a (*.f64 a b)))
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 (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)))))))

simplify36.0ms (1.1%)

Algorithm
egg-herbie
Rules
742×log-prod_binary64
322×*-commutative_binary64
298×exp-prod_binary64
267×exp-sum_binary64
260×fma-neg_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
031350
177245
2239245
31385245
44656245
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 (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 (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 (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)

eval90.0ms (2.8%)

Compiler

Compiled 5620 to 2717 computations (51.7% saved)

prune61.0ms (1.9%)

Pruning

21 alts after pruning (6 fresh and 15 done)

PrunedKeptTotal
New3816387
Fresh000
Picked011
Done21416
Total38321404
Error
0b
Counts
404 → 21
Alt Table
Click to see full alt table
StatusErrorProgram
12.2b
(*.f64 (pow.f64 (cbrt.f64 (*.f64 (*.f64 a a) b)) 3) (neg.f64 b))
5.9b
(*.f64 (*.f64 (pow.f64 (cbrt.f64 a) 2) (*.f64 (cbrt.f64 a) (*.f64 a b))) (neg.f64 b))
25.8b
(*.f64 (*.f64 (*.f64 b (cbrt.f64 (pow.f64 a 4))) (cbrt.f64 (*.f64 a a))) (neg.f64 b))
11.8b
(*.f64 (*.f64 (*.f64 a a) b) (neg.f64 b))
5.4b
(*.f64 (*.f64 a (*.f64 a b)) (neg.f64 b))
38.4b
(*.f64 (*.f64 a a) (*.f64 b b))
17.4b
(*.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
23.2b
(*.f64 (cbrt.f64 (pow.f64 (*.f64 (*.f64 a a) b) 3)) (neg.f64 b))
38.3b
(*.f64 b (*.f64 (*.f64 a a) b))
38.3b
(*.f64 b (*.f64 a (*.f64 a b)))
12.3b
(*.f64 a (*.f64 (*.f64 b b) (neg.f64 a)))
4.7b
(*.f64 a (*.f64 (*.f64 a (neg.f64 b)) b))
38.3b
(*.f64 a (*.f64 a (*.f64 b b)))
22.3b
(neg.f64 (pow.f64 (sqrt.f64 (*.f64 b a)) 4))
0.9b
(neg.f64 (*.f64 (pow.f64 (*.f64 (cbrt.f64 b) (cbrt.f64 a)) 2) (*.f64 (cbrt.f64 (*.f64 b a)) (*.f64 b a))))
1.2b
(neg.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) (pow.f64 (cbrt.f64 (*.f64 b a)) 4)))
0.3b
(neg.f64 (*.f64 (*.f64 b a) (*.f64 b a)))
0.6b
(neg.f64 (*.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 2)) (*.f64 (cbrt.f64 (*.f64 b a)) (*.f64 b a))))
16.7b
(neg.f64 (sqrt.f64 (pow.f64 (*.f64 b a) 4)))
31.1b
(neg.f64 (sqrt.f64 (cbrt.f64 (pow.f64 (pow.f64 (*.f64 b a) 4) 3))))
31.1b
(neg.f64 (sqrt.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 12))))
Compiler

Compiled 247 to 158 computations (36% saved)

regimes55.0ms (1.7%)

Counts
25 → 1
Calls
Call 1
Inputs
(*.f64 a (*.f64 a (*.f64 b b)))
(*.f64 b (*.f64 a (*.f64 a b)))
(*.f64 b (*.f64 (*.f64 a a) 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 (sqrt.f64 (pow.f64 (*.f64 b a) 4)))
(neg.f64 (pow.f64 (sqrt.f64 (*.f64 b a)) 4))
(*.f64 (cbrt.f64 (pow.f64 (*.f64 (*.f64 a a) b) 3)) (neg.f64 b))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 (*.f64 a a) b)) 3) (neg.f64 b))
(neg.f64 (sqrt.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 12))))
(*.f64 (*.f64 (*.f64 b (cbrt.f64 (pow.f64 a 4))) (cbrt.f64 (*.f64 a a))) (neg.f64 b))
(*.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 (sqrt.f64 (cbrt.f64 (pow.f64 (pow.f64 (*.f64 b a) 4) 3))))
(neg.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) (pow.f64 (cbrt.f64 (*.f64 b a)) 4)))
(neg.f64 (*.f64 (pow.f64 (*.f64 (cbrt.f64 b) (cbrt.f64 a)) 2) (*.f64 (cbrt.f64 (*.f64 b a)) (*.f64 b a))))
(neg.f64 (sqrt.f64 (*.f64 (pow.f64 (sqrt.f64 (*.f64 b a)) 4) (pow.f64 (sqrt.f64 (*.f64 b a)) 4))))
Outputs
(neg.f64 (*.f64 (*.f64 b a) (*.f64 b a)))
Calls

6 calls:

11.0ms
a
10.0ms
b
8.0ms
(neg.f64 (*.f64 (*.f64 (*.f64 a a) b) b))
8.0ms
(*.f64 a a)
7.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 287 to 123 computations (57.1% saved)

regimes14.0ms (0.4%)

Accuracy

Total -0.2b remaining (-0.5%)

Threshold costs -0.2b (-0.5%)

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

4 calls:

4.0ms
b
4.0ms
a
3.0ms
(*.f64 a a)
3.0ms
(*.f64 a a)
Results
ErrorSegmentsBranch
38.3b1a
38.3b1b
38.3b1(*.f64 a a)
38.3b1(*.f64 a a)
Compiler

Compiled 46 to 22 computations (52.2% 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
01232
12532
23532
34232
44732
54932
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(neg.f64 (*.f64 (*.f64 b a) (*.f64 b a)))
(*.f64 b (*.f64 a (*.f64 a b)))
(*.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 b (*.f64 a (*.f64 a b)))
(*.f64 b (*.f64 a (*.f64 b a)))
(*.f64 a (*.f64 a (*.f64 b b)))
Compiler

Compiled 28 to 16 computations (42.9% 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)

end20.0ms (0.6%)

Remove

(sort a b)

Compiler

Compiled 44 to 23 computations (47.7% saved)

Profiling

Loading profile data...