Details

Time bar (total: 3.2s)

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

sample684.0ms (21.3%)

Results
653.0ms8256×body256valid
18.0ms235×body256infinite
Bogosity

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

prune4.0ms (0.1%)

Pruning

4 alts after pruning (4 fresh and 0 done)

PrunedKeptTotal
New145
Fresh101
Picked000
Done000
Total246
Error
3.7b
Counts
6 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
18.7b
(*.f64 (*.f64 (*.f64 a a) b) (neg.f64 b))
24.4b
(*.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
17.0b
(*.f64 a (*.f64 (*.f64 b b) (neg.f64 a)))
5.8b
(*.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.1b
(*.f64 (*.f64 a (neg.f64 b)) b)
5.6b
(*.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
a
@0
(*.f64 (*.f64 a (neg.f64 b)) b)
1.0ms
b
@inf
(*.f64 a (*.f64 (*.f64 a (neg.f64 b)) b))

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

simplify42.0ms (1.3%)

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

localize8.0ms (0.3%)

Local error

Found 2 expressions with local error:

NewErrorProgram
5.6b
(*.f64 a (*.f64 (*.f64 b b) (neg.f64 a)))
10.5b
(*.f64 (*.f64 b b) (neg.f64 a))
Compiler

Compiled 23 to 6 computations (73.9% saved)

series3.0ms (0.1%)

Counts
2 → 48
Calls

12 calls:

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

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

simplify41.0ms (1.3%)

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)

localize8.0ms (0.3%)

Local error

Found 1 expressions with local error:

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

Compiled 22 to 6 computations (72.7% saved)

series2.0ms (0.1%)

Counts
1 → 24
Calls

6 calls:

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

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

simplify45.0ms (1.4%)

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

Compiled 22 to 6 computations (72.7% saved)

series5.0ms (0.2%)

Counts
2 → 48
Calls

12 calls:

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

rewrite40.0ms (1.2%)

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

Useful iterations: 1 (0.0ms)

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

simplify45.0ms (1.4%)

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
19.5b
(*.f64 (pow.f64 (*.f64 a (sqrt.f64 b)) 2) (neg.f64 b))
18.7b
(*.f64 (*.f64 (*.f64 a a) b) (neg.f64 b))
4.9b
(*.f64 (*.f64 a (*.f64 a b)) (neg.f64 b))
24.4b
(*.f64 (*.f64 a a) (neg.f64 (*.f64 b b)))
17.0b
(*.f64 a (*.f64 (*.f64 b b) (neg.f64 a)))
5.8b
(*.f64 a (*.f64 (*.f64 a (neg.f64 b)) b))
38.4b
(*.f64 a (*.f64 a (*.f64 b b)))
33.6b
(*.f64 a (sqrt.f64 (*.f64 (pow.f64 b 4) (*.f64 a a))))
0.3b
(neg.f64 (pow.f64 (*.f64 b a) 2))
Compiler

Compiled 140 to 90 computations (35.7% saved)

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

series4.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)
1.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))))))))

simplify51.0ms (1.6%)

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)

localize7.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
5.6b
(*.f64 a (*.f64 a (*.f64 b b)))
10.5b
(*.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
@0
(*.f64 a (*.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)))

rewrite41.0ms (1.3%)

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

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

Compiled 22 to 6 computations (72.7% saved)

series4.0ms (0.1%)

Counts
2 → 48
Calls

12 calls:

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

rewrite40.0ms (1.2%)

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

Useful iterations: 1 (0.0ms)

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

simplify43.0ms (1.3%)

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

Useful iterations: 2 (0.0ms)

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

localize10.0ms (0.3%)

Local error

Found 3 expressions with local error:

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

Compiled 28 to 11 computations (60.7% saved)

series12.0ms (0.4%)

Counts
3 → 36
Calls

18 calls:

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

rewrite51.0ms (1.6%)

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

Useful iterations: 1 (0.0ms)

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

simplify61.0ms (1.9%)

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

Useful iterations: 2 (0.0ms)

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

localize12.0ms (0.4%)

Local error

Found 3 expressions with local error:

NewErrorProgram
5.6b
(*.f64 a (sqrt.f64 (*.f64 (pow.f64 b 4) (*.f64 a a))))
17.2b
(sqrt.f64 (*.f64 (pow.f64 b 4) (*.f64 a a)))
20.0b
(*.f64 (pow.f64 b 4) (*.f64 a a))
Compiler

Compiled 36 to 18 computations (50% saved)

series6.0ms (0.2%)

Counts
3 → 72
Calls

18 calls:

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

rewrite50.0ms (1.6%)

Algorithm
batch-egg-rewrite
Rules
782×pow1_binary64
722×add-log-exp_binary64
722×log1p-expm1-u_binary64
722×expm1-log1p-u_binary64
701×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify52.0ms (1.6%)

Algorithm
egg-herbie
Rules
667×log-prod_binary64
555×associate-*l/_binary64
254×fma-def_binary64
245×fma-neg_binary64
235×cube-prod_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01211162
13011045
212841003
342371001
Stop Event
node limit
Counts
123 → 70
Calls
Call 1
Inputs
(*.f64 (pow.f64 a 2) (pow.f64 b 4))
(*.f64 (pow.f64 a 2) (pow.f64 b 4))
(*.f64 (pow.f64 a 2) (pow.f64 b 4))
(*.f64 (pow.f64 a 2) (pow.f64 b 4))
(*.f64 (pow.f64 a 2) (pow.f64 b 4))
(*.f64 (pow.f64 a 2) (pow.f64 b 4))
(*.f64 (pow.f64 a 2) (pow.f64 b 4))
(*.f64 (pow.f64 a 2) (pow.f64 b 4))
(*.f64 (pow.f64 a 2) (pow.f64 b 4))
(*.f64 (pow.f64 a 2) (pow.f64 b 4))
(*.f64 (pow.f64 a 2) (pow.f64 b 4))
(*.f64 (pow.f64 a 2) (pow.f64 b 4))
(*.f64 (pow.f64 a 2) (pow.f64 b 4))
(*.f64 (pow.f64 a 2) (pow.f64 b 4))
(*.f64 (pow.f64 a 2) (pow.f64 b 4))
(*.f64 (pow.f64 a 2) (pow.f64 b 4))
(*.f64 (pow.f64 a 2) (pow.f64 b 4))
(*.f64 (pow.f64 a 2) (pow.f64 b 4))
(*.f64 (pow.f64 a 2) (pow.f64 b 4))
(*.f64 (pow.f64 a 2) (pow.f64 b 4))
(*.f64 (pow.f64 a 2) (pow.f64 b 4))
(*.f64 (pow.f64 a 2) (pow.f64 b 4))
(*.f64 (pow.f64 a 2) (pow.f64 b 4))
(*.f64 (pow.f64 a 2) (pow.f64 b 4))
(*.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 -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 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 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 (pow.f64 b 4) (*.f64 a a))) 1)
(pow.f64 (*.f64 (pow.f64 b 4) (*.f64 a a)) 1)
(pow.f64 (*.f64 a (*.f64 b b)) 2)
(pow.f64 (*.f64 (pow.f64 a 4) (pow.f64 b 8)) 1/2)
(pow.f64 (pow.f64 (*.f64 (pow.f64 b 4) (*.f64 a a)) 3) 1/3)
(pow.f64 (pow.f64 (cbrt.f64 (*.f64 a (*.f64 b b))) 2) 3)
(sqrt.f64 (*.f64 (pow.f64 a 4) (pow.f64 b 8)))
(log.f64 (pow.f64 (pow.f64 (exp.f64 a) a) (pow.f64 b 4)))
(cbrt.f64 (pow.f64 (*.f64 (pow.f64 b 4) (*.f64 a a)) 3))
(cbrt.f64 (*.f64 (pow.f64 (pow.f64 b 4) 3) (pow.f64 (*.f64 a a) 3)))
(cbrt.f64 (*.f64 (pow.f64 (*.f64 a a) 3) (pow.f64 (pow.f64 b 4) 3)))
(expm1.f64 (log1p.f64 (*.f64 (pow.f64 b 4) (*.f64 a a))))
(log1p.f64 (expm1.f64 (*.f64 (pow.f64 b 4) (*.f64 a a))))
(exp.f64 (log.f64 (*.f64 (pow.f64 b 4) (*.f64 a a))))
(-.f64 (+.f64 1 (*.f64 a (*.f64 b b))) 1)
(*.f64 a (*.f64 b b))
(*.f64 (*.f64 a (*.f64 b b)) 1)
(*.f64 1 (*.f64 a (*.f64 b b)))
(*.f64 (*.f64 b b) a)
(*.f64 (cbrt.f64 (*.f64 a (*.f64 b b))) (pow.f64 (cbrt.f64 (*.f64 a (*.f64 b b))) 2))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 a (*.f64 b b))) 2) (cbrt.f64 (*.f64 a (*.f64 b b))))
(*.f64 (*.f64 b (sqrt.f64 a)) (*.f64 b (sqrt.f64 a)))
(*.f64 (sqrt.f64 (*.f64 (pow.f64 b 4) a)) (sqrt.f64 a))
(*.f64 (sqrt.f64 (cbrt.f64 (*.f64 (pow.f64 a 4) (pow.f64 b 8)))) (sqrt.f64 (pow.f64 (cbrt.f64 (*.f64 a (*.f64 b b))) 2)))
(*.f64 (pow.f64 1 1/2) (*.f64 a (*.f64 b b)))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 (pow.f64 a 4) (pow.f64 b 8))) 1/2) (pow.f64 (pow.f64 (cbrt.f64 (*.f64 a (*.f64 b b))) 2) 1/2))
(*.f64 (pow.f64 (*.f64 (pow.f64 b 4) a) 1/2) (sqrt.f64 a))
(pow.f64 (*.f64 (pow.f64 b 4) (*.f64 a a)) 1/2)
(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)
(fabs.f64 (*.f64 a (*.f64 b b)))
(log.f64 (pow.f64 (exp.f64 (*.f64 b b)) a))
(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 (*.f64 a (*.f64 a (*.f64 b b)))) 1)
(pow.f64 (*.f64 a (*.f64 a (*.f64 b b))) 1)
(pow.f64 (pow.f64 (*.f64 a (*.f64 a (*.f64 b b))) 3) 1/3)
(pow.f64 (cbrt.f64 (*.f64 a (*.f64 a (*.f64 b b)))) 3)
(pow.f64 (*.f64 (*.f64 b (sqrt.f64 a)) (sqrt.f64 a)) 2)
(sqrt.f64 (pow.f64 (*.f64 a (*.f64 a (*.f64 b b))) 2))
(log.f64 (pow.f64 (exp.f64 a) (*.f64 a (*.f64 b b))))
(cbrt.f64 (pow.f64 (*.f64 a (*.f64 a (*.f64 b b))) 3))
(cbrt.f64 (*.f64 (pow.f64 a 3) (pow.f64 (*.f64 a (*.f64 b b)) 3)))
(cbrt.f64 (*.f64 (pow.f64 (*.f64 a (*.f64 b b)) 3) (pow.f64 a 3)))
(expm1.f64 (log1p.f64 (*.f64 a (*.f64 a (*.f64 b b)))))
(log1p.f64 (expm1.f64 (*.f64 a (*.f64 a (*.f64 b b)))))
(exp.f64 (log.f64 (*.f64 a (*.f64 a (*.f64 b b)))))
Outputs
(*.f64 (pow.f64 a 2) (pow.f64 b 4))
(*.f64 (pow.f64 b 4) (*.f64 a a))
(*.f64 a (*.f64 a (pow.f64 b 4)))
(pow.f64 (*.f64 b (sqrt.f64 a)) 4)
(*.f64 (pow.f64 a 2) (pow.f64 b 4))
(*.f64 (pow.f64 b 4) (*.f64 a a))
(*.f64 a (*.f64 a (pow.f64 b 4)))
(pow.f64 (*.f64 b (sqrt.f64 a)) 4)
(*.f64 (pow.f64 a 2) (pow.f64 b 4))
(*.f64 (pow.f64 b 4) (*.f64 a a))
(*.f64 a (*.f64 a (pow.f64 b 4)))
(pow.f64 (*.f64 b (sqrt.f64 a)) 4)
(*.f64 (pow.f64 a 2) (pow.f64 b 4))
(*.f64 (pow.f64 b 4) (*.f64 a a))
(*.f64 a (*.f64 a (pow.f64 b 4)))
(pow.f64 (*.f64 b (sqrt.f64 a)) 4)
(*.f64 (pow.f64 a 2) (pow.f64 b 4))
(*.f64 (pow.f64 b 4) (*.f64 a a))
(*.f64 a (*.f64 a (pow.f64 b 4)))
(pow.f64 (*.f64 b (sqrt.f64 a)) 4)
(*.f64 (pow.f64 a 2) (pow.f64 b 4))
(*.f64 (pow.f64 b 4) (*.f64 a a))
(*.f64 a (*.f64 a (pow.f64 b 4)))
(pow.f64 (*.f64 b (sqrt.f64 a)) 4)
(*.f64 (pow.f64 a 2) (pow.f64 b 4))
(*.f64 (pow.f64 b 4) (*.f64 a a))
(*.f64 a (*.f64 a (pow.f64 b 4)))
(pow.f64 (*.f64 b (sqrt.f64 a)) 4)
(*.f64 (pow.f64 a 2) (pow.f64 b 4))
(*.f64 (pow.f64 b 4) (*.f64 a a))
(*.f64 a (*.f64 a (pow.f64 b 4)))
(pow.f64 (*.f64 b (sqrt.f64 a)) 4)
(*.f64 (pow.f64 a 2) (pow.f64 b 4))
(*.f64 (pow.f64 b 4) (*.f64 a a))
(*.f64 a (*.f64 a (pow.f64 b 4)))
(pow.f64 (*.f64 b (sqrt.f64 a)) 4)
(*.f64 (pow.f64 a 2) (pow.f64 b 4))
(*.f64 (pow.f64 b 4) (*.f64 a a))
(*.f64 a (*.f64 a (pow.f64 b 4)))
(pow.f64 (*.f64 b (sqrt.f64 a)) 4)
(*.f64 (pow.f64 a 2) (pow.f64 b 4))
(*.f64 (pow.f64 b 4) (*.f64 a a))
(*.f64 a (*.f64 a (pow.f64 b 4)))
(pow.f64 (*.f64 b (sqrt.f64 a)) 4)
(*.f64 (pow.f64 a 2) (pow.f64 b 4))
(*.f64 (pow.f64 b 4) (*.f64 a a))
(*.f64 a (*.f64 a (pow.f64 b 4)))
(pow.f64 (*.f64 b (sqrt.f64 a)) 4)
(*.f64 (pow.f64 a 2) (pow.f64 b 4))
(*.f64 (pow.f64 b 4) (*.f64 a a))
(*.f64 a (*.f64 a (pow.f64 b 4)))
(pow.f64 (*.f64 b (sqrt.f64 a)) 4)
(*.f64 (pow.f64 a 2) (pow.f64 b 4))
(*.f64 (pow.f64 b 4) (*.f64 a a))
(*.f64 a (*.f64 a (pow.f64 b 4)))
(pow.f64 (*.f64 b (sqrt.f64 a)) 4)
(*.f64 (pow.f64 a 2) (pow.f64 b 4))
(*.f64 (pow.f64 b 4) (*.f64 a a))
(*.f64 a (*.f64 a (pow.f64 b 4)))
(pow.f64 (*.f64 b (sqrt.f64 a)) 4)
(*.f64 (pow.f64 a 2) (pow.f64 b 4))
(*.f64 (pow.f64 b 4) (*.f64 a a))
(*.f64 a (*.f64 a (pow.f64 b 4)))
(pow.f64 (*.f64 b (sqrt.f64 a)) 4)
(*.f64 (pow.f64 a 2) (pow.f64 b 4))
(*.f64 (pow.f64 b 4) (*.f64 a a))
(*.f64 a (*.f64 a (pow.f64 b 4)))
(pow.f64 (*.f64 b (sqrt.f64 a)) 4)
(*.f64 (pow.f64 a 2) (pow.f64 b 4))
(*.f64 (pow.f64 b 4) (*.f64 a a))
(*.f64 a (*.f64 a (pow.f64 b 4)))
(pow.f64 (*.f64 b (sqrt.f64 a)) 4)
(*.f64 (pow.f64 a 2) (pow.f64 b 4))
(*.f64 (pow.f64 b 4) (*.f64 a a))
(*.f64 a (*.f64 a (pow.f64 b 4)))
(pow.f64 (*.f64 b (sqrt.f64 a)) 4)
(*.f64 (pow.f64 a 2) (pow.f64 b 4))
(*.f64 (pow.f64 b 4) (*.f64 a a))
(*.f64 a (*.f64 a (pow.f64 b 4)))
(pow.f64 (*.f64 b (sqrt.f64 a)) 4)
(*.f64 (pow.f64 a 2) (pow.f64 b 4))
(*.f64 (pow.f64 b 4) (*.f64 a a))
(*.f64 a (*.f64 a (pow.f64 b 4)))
(pow.f64 (*.f64 b (sqrt.f64 a)) 4)
(*.f64 (pow.f64 a 2) (pow.f64 b 4))
(*.f64 (pow.f64 b 4) (*.f64 a a))
(*.f64 a (*.f64 a (pow.f64 b 4)))
(pow.f64 (*.f64 b (sqrt.f64 a)) 4)
(*.f64 (pow.f64 a 2) (pow.f64 b 4))
(*.f64 (pow.f64 b 4) (*.f64 a a))
(*.f64 a (*.f64 a (pow.f64 b 4)))
(pow.f64 (*.f64 b (sqrt.f64 a)) 4)
(*.f64 (pow.f64 a 2) (pow.f64 b 4))
(*.f64 (pow.f64 b 4) (*.f64 a a))
(*.f64 a (*.f64 a (pow.f64 b 4)))
(pow.f64 (*.f64 b (sqrt.f64 a)) 4)
(*.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 -1 (*.f64 a (pow.f64 b 2)))
(neg.f64 (*.f64 a (*.f64 b b)))
(*.f64 a (neg.f64 (*.f64 b b)))
(*.f64 a (*.f64 b (neg.f64 b)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(neg.f64 (*.f64 a (*.f64 b b)))
(*.f64 a (neg.f64 (*.f64 b b)))
(*.f64 a (*.f64 b (neg.f64 b)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(neg.f64 (*.f64 a (*.f64 b b)))
(*.f64 a (neg.f64 (*.f64 b b)))
(*.f64 a (*.f64 b (neg.f64 b)))
(*.f64 -1 (*.f64 a (pow.f64 b 2)))
(neg.f64 (*.f64 a (*.f64 b b)))
(*.f64 a (neg.f64 (*.f64 b b)))
(*.f64 a (*.f64 b (neg.f64 b)))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 a (*.f64 a (*.f64 b b)))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 a (*.f64 a (*.f64 b b)))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 a (*.f64 a (*.f64 b b)))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 a (*.f64 a (*.f64 b b)))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 a (*.f64 a (*.f64 b b)))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 a (*.f64 a (*.f64 b b)))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 a (*.f64 a (*.f64 b b)))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 a (*.f64 a (*.f64 b b)))
(pow.f64 (*.f64 a b) 2)
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 a (*.f64 a (*.f64 b b))))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 a (*.f64 a (*.f64 b b))))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 a (*.f64 a (*.f64 b b))))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 -1 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(neg.f64 (*.f64 a (*.f64 a (*.f64 b b))))
(neg.f64 (pow.f64 (*.f64 a b) 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 a (*.f64 a (*.f64 b b)))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 a (*.f64 a (*.f64 b b)))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 a (*.f64 a (*.f64 b b)))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 a (*.f64 a (*.f64 b b)))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 a (*.f64 a (*.f64 b b)))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 a (*.f64 a (*.f64 b b)))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 a (*.f64 a (*.f64 b b)))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 a (*.f64 a (*.f64 b b)))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 a (*.f64 a (*.f64 b b)))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 a (*.f64 a (*.f64 b b)))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 a (*.f64 a (*.f64 b b)))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 a (*.f64 a (*.f64 b b)))
(pow.f64 (*.f64 a b) 2)
(-.f64 (+.f64 1 (*.f64 (pow.f64 b 4) (*.f64 a a))) 1)
(*.f64 (pow.f64 b 4) (*.f64 a a))
(*.f64 a (*.f64 a (pow.f64 b 4)))
(pow.f64 (*.f64 b (sqrt.f64 a)) 4)
(pow.f64 (*.f64 (pow.f64 b 4) (*.f64 a a)) 1)
(*.f64 (pow.f64 b 4) (*.f64 a a))
(*.f64 a (*.f64 a (pow.f64 b 4)))
(pow.f64 (*.f64 b (sqrt.f64 a)) 4)
(pow.f64 (*.f64 a (*.f64 b b)) 2)
(*.f64 (pow.f64 b 4) (*.f64 a a))
(*.f64 a (*.f64 a (pow.f64 b 4)))
(pow.f64 (*.f64 b (sqrt.f64 a)) 4)
(pow.f64 (*.f64 (pow.f64 a 4) (pow.f64 b 8)) 1/2)
(*.f64 (pow.f64 b 4) (*.f64 a a))
(*.f64 a (*.f64 a (pow.f64 b 4)))
(pow.f64 (*.f64 b (sqrt.f64 a)) 4)
(pow.f64 (pow.f64 (*.f64 (pow.f64 b 4) (*.f64 a a)) 3) 1/3)
(*.f64 (pow.f64 b 4) (*.f64 a a))
(*.f64 a (*.f64 a (pow.f64 b 4)))
(pow.f64 (*.f64 b (sqrt.f64 a)) 4)
(pow.f64 (pow.f64 (cbrt.f64 (*.f64 a (*.f64 b b))) 2) 3)
(*.f64 (pow.f64 b 4) (*.f64 a a))
(*.f64 a (*.f64 a (pow.f64 b 4)))
(pow.f64 (*.f64 b (sqrt.f64 a)) 4)
(sqrt.f64 (*.f64 (pow.f64 a 4) (pow.f64 b 8)))
(*.f64 (pow.f64 b 4) (*.f64 a a))
(*.f64 a (*.f64 a (pow.f64 b 4)))
(pow.f64 (*.f64 b (sqrt.f64 a)) 4)
(log.f64 (pow.f64 (pow.f64 (exp.f64 a) a) (pow.f64 b 4)))
(*.f64 (pow.f64 b 4) (*.f64 a a))
(*.f64 a (*.f64 a (pow.f64 b 4)))
(pow.f64 (*.f64 b (sqrt.f64 a)) 4)
(cbrt.f64 (pow.f64 (*.f64 (pow.f64 b 4) (*.f64 a a)) 3))
(*.f64 (pow.f64 b 4) (*.f64 a a))
(*.f64 a (*.f64 a (pow.f64 b 4)))
(pow.f64 (*.f64 b (sqrt.f64 a)) 4)
(cbrt.f64 (*.f64 (pow.f64 (pow.f64 b 4) 3) (pow.f64 (*.f64 a a) 3)))
(*.f64 (pow.f64 b 4) (*.f64 a a))
(*.f64 a (*.f64 a (pow.f64 b 4)))
(pow.f64 (*.f64 b (sqrt.f64 a)) 4)
(cbrt.f64 (*.f64 (pow.f64 (*.f64 a a) 3) (pow.f64 (pow.f64 b 4) 3)))
(*.f64 (pow.f64 b 4) (*.f64 a a))
(*.f64 a (*.f64 a (pow.f64 b 4)))
(pow.f64 (*.f64 b (sqrt.f64 a)) 4)
(expm1.f64 (log1p.f64 (*.f64 (pow.f64 b 4) (*.f64 a a))))
(*.f64 (pow.f64 b 4) (*.f64 a a))
(*.f64 a (*.f64 a (pow.f64 b 4)))
(pow.f64 (*.f64 b (sqrt.f64 a)) 4)
(log1p.f64 (expm1.f64 (*.f64 (pow.f64 b 4) (*.f64 a a))))
(*.f64 (pow.f64 b 4) (*.f64 a a))
(*.f64 a (*.f64 a (pow.f64 b 4)))
(pow.f64 (*.f64 b (sqrt.f64 a)) 4)
(exp.f64 (log.f64 (*.f64 (pow.f64 b 4) (*.f64 a a))))
(*.f64 (pow.f64 b 4) (*.f64 a a))
(*.f64 a (*.f64 a (pow.f64 b 4)))
(pow.f64 (*.f64 b (sqrt.f64 a)) 4)
(-.f64 (+.f64 1 (*.f64 a (*.f64 b b))) 1)
(*.f64 a (*.f64 b b))
(*.f64 a (*.f64 b b))
(*.f64 (*.f64 a (*.f64 b b)) 1)
(*.f64 a (*.f64 b b))
(*.f64 1 (*.f64 a (*.f64 b b)))
(*.f64 a (*.f64 b b))
(*.f64 (*.f64 b b) a)
(*.f64 a (*.f64 b b))
(*.f64 (cbrt.f64 (*.f64 a (*.f64 b b))) (pow.f64 (cbrt.f64 (*.f64 a (*.f64 b b))) 2))
(*.f64 a (*.f64 b b))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 a (*.f64 b b))) 2) (cbrt.f64 (*.f64 a (*.f64 b b))))
(*.f64 a (*.f64 b b))
(*.f64 (*.f64 b (sqrt.f64 a)) (*.f64 b (sqrt.f64 a)))
(*.f64 a (*.f64 b b))
(*.f64 (sqrt.f64 (*.f64 (pow.f64 b 4) a)) (sqrt.f64 a))
(*.f64 (sqrt.f64 a) (sqrt.f64 (*.f64 a (pow.f64 b 4))))
(*.f64 (sqrt.f64 (cbrt.f64 (*.f64 (pow.f64 a 4) (pow.f64 b 8)))) (sqrt.f64 (pow.f64 (cbrt.f64 (*.f64 a (*.f64 b b))) 2)))
(*.f64 (sqrt.f64 (cbrt.f64 (*.f64 (pow.f64 a 4) (pow.f64 b 8)))) (fabs.f64 (cbrt.f64 (*.f64 a (*.f64 b b)))))
(*.f64 (cbrt.f64 (*.f64 a (*.f64 b b))) (sqrt.f64 (cbrt.f64 (pow.f64 (*.f64 a (*.f64 b b)) 4))))
(*.f64 (cbrt.f64 (*.f64 a (*.f64 b b))) (sqrt.f64 (cbrt.f64 (pow.f64 (*.f64 b (sqrt.f64 a)) 8))))
(*.f64 (pow.f64 1 1/2) (*.f64 a (*.f64 b b)))
(*.f64 a (*.f64 b b))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 (pow.f64 a 4) (pow.f64 b 8))) 1/2) (pow.f64 (pow.f64 (cbrt.f64 (*.f64 a (*.f64 b b))) 2) 1/2))
(*.f64 (sqrt.f64 (cbrt.f64 (*.f64 (pow.f64 a 4) (pow.f64 b 8)))) (sqrt.f64 (pow.f64 (cbrt.f64 (*.f64 a (*.f64 b b))) 2)))
(*.f64 (sqrt.f64 (cbrt.f64 (*.f64 (pow.f64 a 4) (pow.f64 b 8)))) (fabs.f64 (cbrt.f64 (*.f64 a (*.f64 b b)))))
(*.f64 (cbrt.f64 (*.f64 a (*.f64 b b))) (sqrt.f64 (cbrt.f64 (pow.f64 (*.f64 a (*.f64 b b)) 4))))
(*.f64 (cbrt.f64 (*.f64 a (*.f64 b b))) (sqrt.f64 (cbrt.f64 (pow.f64 (*.f64 b (sqrt.f64 a)) 8))))
(*.f64 (pow.f64 (*.f64 (pow.f64 b 4) a) 1/2) (sqrt.f64 a))
(*.f64 (sqrt.f64 a) (sqrt.f64 (*.f64 a (pow.f64 b 4))))
(pow.f64 (*.f64 (pow.f64 b 4) (*.f64 a a)) 1/2)
(*.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))
(fabs.f64 (*.f64 a (*.f64 b b)))
(*.f64 a (*.f64 b b))
(log.f64 (pow.f64 (exp.f64 (*.f64 b b)) a))
(*.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 (*.f64 a (*.f64 a (*.f64 b b)))) 1)
(*.f64 a (*.f64 a (*.f64 b b)))
(pow.f64 (*.f64 a b) 2)
(pow.f64 (*.f64 a (*.f64 a (*.f64 b b))) 1)
(*.f64 a (*.f64 a (*.f64 b b)))
(pow.f64 (*.f64 a b) 2)
(pow.f64 (pow.f64 (*.f64 a (*.f64 a (*.f64 b b))) 3) 1/3)
(*.f64 a (*.f64 a (*.f64 b b)))
(pow.f64 (*.f64 a b) 2)
(pow.f64 (cbrt.f64 (*.f64 a (*.f64 a (*.f64 b b)))) 3)
(*.f64 a (*.f64 a (*.f64 b b)))
(pow.f64 (*.f64 a b) 2)
(pow.f64 (*.f64 (*.f64 b (sqrt.f64 a)) (sqrt.f64 a)) 2)
(*.f64 a (*.f64 a (*.f64 b b)))
(pow.f64 (*.f64 a b) 2)
(sqrt.f64 (pow.f64 (*.f64 a (*.f64 a (*.f64 b b))) 2))
(*.f64 a (*.f64 a (*.f64 b b)))
(pow.f64 (*.f64 a b) 2)
(log.f64 (pow.f64 (exp.f64 a) (*.f64 a (*.f64 b b))))
(*.f64 a (*.f64 a (*.f64 b b)))
(pow.f64 (*.f64 a b) 2)
(cbrt.f64 (pow.f64 (*.f64 a (*.f64 a (*.f64 b b))) 3))
(*.f64 a (*.f64 a (*.f64 b b)))
(pow.f64 (*.f64 a b) 2)
(cbrt.f64 (*.f64 (pow.f64 a 3) (pow.f64 (*.f64 a (*.f64 b b)) 3)))
(*.f64 a (*.f64 a (*.f64 b b)))
(pow.f64 (*.f64 a b) 2)
(cbrt.f64 (*.f64 (pow.f64 (*.f64 a (*.f64 b b)) 3) (pow.f64 a 3)))
(*.f64 a (*.f64 a (*.f64 b b)))
(pow.f64 (*.f64 a b) 2)
(expm1.f64 (log1p.f64 (*.f64 a (*.f64 a (*.f64 b b)))))
(*.f64 a (*.f64 a (*.f64 b b)))
(pow.f64 (*.f64 a b) 2)
(log1p.f64 (expm1.f64 (*.f64 a (*.f64 a (*.f64 b b)))))
(*.f64 a (*.f64 a (*.f64 b b)))
(pow.f64 (*.f64 a b) 2)
(exp.f64 (log.f64 (*.f64 a (*.f64 a (*.f64 b b)))))
(*.f64 a (*.f64 a (*.f64 b b)))
(pow.f64 (*.f64 a b) 2)

eval36.0ms (1.1%)

Compiler

Compiled 2224 to 935 computations (58% saved)

prune30.0ms (0.9%)

Pruning

12 alts after pruning (5 fresh and 7 done)

PrunedKeptTotal
New2125217
Fresh000
Picked011
Done268
Total21412226
Error
0.0b
Counts
226 → 12
Alt Table
Click to see full alt table
StatusErrorProgram
19.5b
(*.f64 (pow.f64 (*.f64 a (sqrt.f64 b)) 2) (neg.f64 b))
22.7b
(*.f64 (*.f64 (*.f64 (*.f64 a (sqrt.f64 b)) a) (sqrt.f64 b)) (neg.f64 b))
18.7b
(*.f64 (*.f64 (*.f64 a a) b) (neg.f64 b))
4.9b
(*.f64 (*.f64 a (*.f64 a b)) (neg.f64 b))
38.6b
(*.f64 (*.f64 a a) (*.f64 b b))
17.0b
(*.f64 a (*.f64 (*.f64 b b) (neg.f64 a)))
5.8b
(*.f64 a (*.f64 (*.f64 a (neg.f64 b)) b))
38.4b
(*.f64 a (*.f64 a (*.f64 b b)))
33.6b
(*.f64 a (sqrt.f64 (*.f64 (pow.f64 b 4) (*.f64 a a))))
28.7b
(neg.f64 (*.f64 (*.f64 (*.f64 b a) (sqrt.f64 (*.f64 b a))) (sqrt.f64 (*.f64 b a))))
0.3b
(neg.f64 (*.f64 (*.f64 b a) (*.f64 b a)))
18.2b
(neg.f64 (sqrt.f64 (pow.f64 (*.f64 b a) 4)))
Compiler

Compiled 188 to 109 computations (42% 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)

series2.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

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

simplify48.0ms (1.5%)

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

Useful iterations: 1 (0.0ms)

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

localize6.0ms (0.2%)

Local error

Found 1 expressions with local error:

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

rewrite38.0ms (1.2%)

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

simplify41.0ms (1.3%)

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)

localize10.0ms (0.3%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.3b
(pow.f64 (*.f64 b a) 4)
17.5b
(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
b
@0
(pow.f64 (*.f64 b a) 4)
0.0ms
a
@-inf
(pow.f64 (*.f64 b a) 4)
0.0ms
a
@inf
(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)

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

simplify60.0ms (1.9%)

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)

localize10.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(*.f64 (*.f64 a (sqrt.f64 b)) a)
0.2b
(*.f64 a (sqrt.f64 b))
3.2b
(*.f64 (*.f64 (*.f64 a (sqrt.f64 b)) a) (sqrt.f64 b))
3.5b
(*.f64 (*.f64 (*.f64 (*.f64 a (sqrt.f64 b)) a) (sqrt.f64 b)) (neg.f64 b))
Compiler

Compiled 39 to 8 computations (79.5% saved)

series6.0ms (0.2%)

Counts
3 → 60
Calls

18 calls:

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

rewrite51.0ms (1.6%)

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

Useful iterations: 1 (0.0ms)

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

simplify49.0ms (1.5%)

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

Useful iterations: 2 (0.0ms)

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

localize9.0ms (0.3%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.1b
(*.f64 (*.f64 (*.f64 b a) (sqrt.f64 (*.f64 b a))) (sqrt.f64 (*.f64 b a)))
0.1b
(*.f64 (*.f64 b a) (sqrt.f64 (*.f64 b a)))
9.2b
(sqrt.f64 (*.f64 b a))
Compiler

Compiled 46 to 7 computations (84.8% saved)

series12.0ms (0.4%)

Counts
3 → 24
Calls

18 calls:

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

rewrite47.0ms (1.5%)

Algorithm
batch-egg-rewrite
Rules
598×pow1_binary64
551×add-log-exp_binary64
551×log1p-expm1-u_binary64
551×expm1-log1p-u_binary64
536×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0728
114220
2161820
Stop Event
node limit
Counts
3 → 46
Calls
Call 1
Inputs
(sqrt.f64 (*.f64 b a))
(*.f64 (*.f64 b a) (sqrt.f64 (*.f64 b a)))
(*.f64 (*.f64 (*.f64 b a) (sqrt.f64 (*.f64 b a))) (sqrt.f64 (*.f64 b a)))
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 b) (cbrt.f64 (*.f64 a (sqrt.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 (sqrt.f64 a) (sqrt.f64 b))))) (#(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 (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) 3/2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 b a) 3/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 b a)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 b a) 3/2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (pow.f64 (*.f64 b a) 3/2) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (pow.f64 (*.f64 b a) 3/2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 b a) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (*.f64 b a) 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (*.f64 b a) 3/2) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (*.f64 b a) 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (*.f64 b a) 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (pow.f64 (*.f64 b a) 3/2)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (*.f64 b a) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 b a) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.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)))))))

simplify42.0ms (1.3%)

Algorithm
egg-herbie
Rules
616×fma-def_binary64
440×distribute-rgt-in_binary64
415×distribute-lft-in_binary64
374×associate-+l+_binary64
368×log-prod_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0100796
1217595
2816501
32487487
Stop Event
node limit
Counts
70 → 61
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 -1 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (pow.f64 a 2) (pow.f64 b 2))))
(*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (pow.f64 a 2) (pow.f64 b 2))))
(*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (pow.f64 a 2) (pow.f64 b 2))))
(*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (pow.f64 a 2) (pow.f64 b 2))))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (pow.f64 a 2) (pow.f64 b 2))))
(*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (pow.f64 a 2) (pow.f64 b 2))))
(*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (pow.f64 a 2) (pow.f64 b 2))))
(*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (pow.f64 a 2) (pow.f64 b 2))))
(-.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 b) (cbrt.f64 (*.f64 a (sqrt.f64 (*.f64 b a)))))
(*.f64 (cbrt.f64 (*.f64 b a)) (cbrt.f64 (sqrt.f64 (*.f64 b a))))
(*.f64 (sqrt.f64 a) (sqrt.f64 b))
(*.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 (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) 3/2)) 1)
(pow.f64 (*.f64 b a) 3/2)
(pow.f64 (sqrt.f64 (*.f64 b a)) 3)
(pow.f64 (pow.f64 (*.f64 b a) 3/2) 1)
(pow.f64 (pow.f64 (pow.f64 (*.f64 b a) 3/2) 3) 1/3)
(pow.f64 (sqrt.f64 (pow.f64 (*.f64 b a) 3/2)) 2)
(sqrt.f64 (pow.f64 (*.f64 b a) 3))
(log.f64 (exp.f64 (pow.f64 (*.f64 b a) 3/2)))
(cbrt.f64 (pow.f64 (pow.f64 (*.f64 b a) 3/2) 3))
(expm1.f64 (log1p.f64 (pow.f64 (*.f64 b a) 3/2)))
(log1p.f64 (expm1.f64 (pow.f64 (*.f64 b a) 3/2)))
(exp.f64 (log.f64 (pow.f64 (*.f64 b a) 3/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 -1 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (pow.f64 a 2) (pow.f64 b 2))))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (pow.f64 a 2) (pow.f64 b 2))))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (pow.f64 a 2) (pow.f64 b 2))))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 -1) 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 -1 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (pow.f64 a 2) (pow.f64 b 2))))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (pow.f64 a 2) (pow.f64 b 2))))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (pow.f64 a 2) (pow.f64 b 2))))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 a b) 2)
(*.f64 -1 (*.f64 (pow.f64 (sqrt.f64 -1) 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 (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 b) (cbrt.f64 (*.f64 a (sqrt.f64 (*.f64 b a)))))
(*.f64 (cbrt.f64 b) (cbrt.f64 (*.f64 a (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 (sqrt.f64 a) (sqrt.f64 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 (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) 3/2)) 1)
(+.f64 (+.f64 1 (pow.f64 (*.f64 a b) 3/2)) -1)
(+.f64 (pow.f64 (*.f64 a b) 3/2) 0)
(pow.f64 (*.f64 a b) 3/2)
(pow.f64 (*.f64 b a) 3/2)
(+.f64 (+.f64 1 (pow.f64 (*.f64 a b) 3/2)) -1)
(+.f64 (pow.f64 (*.f64 a b) 3/2) 0)
(pow.f64 (*.f64 a b) 3/2)
(pow.f64 (sqrt.f64 (*.f64 b a)) 3)
(+.f64 (+.f64 1 (pow.f64 (*.f64 a b) 3/2)) -1)
(+.f64 (pow.f64 (*.f64 a b) 3/2) 0)
(pow.f64 (*.f64 a b) 3/2)
(pow.f64 (pow.f64 (*.f64 b a) 3/2) 1)
(+.f64 (+.f64 1 (pow.f64 (*.f64 a b) 3/2)) -1)
(+.f64 (pow.f64 (*.f64 a b) 3/2) 0)
(pow.f64 (*.f64 a b) 3/2)
(pow.f64 (pow.f64 (pow.f64 (*.f64 b a) 3/2) 3) 1/3)
(+.f64 (+.f64 1 (pow.f64 (*.f64 a b) 3/2)) -1)
(+.f64 (pow.f64 (*.f64 a b) 3/2) 0)
(pow.f64 (*.f64 a b) 3/2)
(pow.f64 (sqrt.f64 (pow.f64 (*.f64 b a) 3/2)) 2)
(+.f64 (+.f64 1 (pow.f64 (*.f64 a b) 3/2)) -1)
(+.f64 (pow.f64 (*.f64 a b) 3/2) 0)
(pow.f64 (*.f64 a b) 3/2)
(sqrt.f64 (pow.f64 (*.f64 b a) 3))
(+.f64 (+.f64 1 (pow.f64 (*.f64 a b) 3/2)) -1)
(+.f64 (pow.f64 (*.f64 a b) 3/2) 0)
(pow.f64 (*.f64 a b) 3/2)
(log.f64 (exp.f64 (pow.f64 (*.f64 b a) 3/2)))
(+.f64 (+.f64 1 (pow.f64 (*.f64 a b) 3/2)) -1)
(+.f64 (pow.f64 (*.f64 a b) 3/2) 0)
(pow.f64 (*.f64 a b) 3/2)
(cbrt.f64 (pow.f64 (pow.f64 (*.f64 b a) 3/2) 3))
(+.f64 (+.f64 1 (pow.f64 (*.f64 a b) 3/2)) -1)
(+.f64 (pow.f64 (*.f64 a b) 3/2) 0)
(pow.f64 (*.f64 a b) 3/2)
(expm1.f64 (log1p.f64 (pow.f64 (*.f64 b a) 3/2)))
(+.f64 (+.f64 1 (pow.f64 (*.f64 a b) 3/2)) -1)
(+.f64 (pow.f64 (*.f64 a b) 3/2) 0)
(pow.f64 (*.f64 a b) 3/2)
(log1p.f64 (expm1.f64 (pow.f64 (*.f64 b a) 3/2)))
(+.f64 (+.f64 1 (pow.f64 (*.f64 a b) 3/2)) -1)
(+.f64 (pow.f64 (*.f64 a b) 3/2) 0)
(pow.f64 (*.f64 a b) 3/2)
(exp.f64 (log.f64 (pow.f64 (*.f64 b a) 3/2)))
(+.f64 (+.f64 1 (pow.f64 (*.f64 a b) 3/2)) -1)
(+.f64 (pow.f64 (*.f64 a b) 3/2) 0)
(pow.f64 (*.f64 a b) 3/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)

eval44.0ms (1.4%)

Compiler

Compiled 3183 to 1290 computations (59.5% saved)

prune37.0ms (1.2%)

Pruning

15 alts after pruning (4 fresh and 11 done)

PrunedKeptTotal
New2484252
Fresh000
Picked101
Done01111
Total24915264
Error
0.0b
Counts
264 → 15
Alt Table
Click to see full alt table
StatusErrorProgram
19.5b
(*.f64 (pow.f64 (*.f64 a (sqrt.f64 b)) 2) (neg.f64 b))
22.7b
(*.f64 (*.f64 (*.f64 (*.f64 a (sqrt.f64 b)) a) (sqrt.f64 b)) (neg.f64 b))
18.7b
(*.f64 (*.f64 (*.f64 a a) b) (neg.f64 b))
4.9b
(*.f64 (*.f64 a (*.f64 a b)) (neg.f64 b))
38.6b
(*.f64 (*.f64 a a) (*.f64 b b))
17.0b
(*.f64 a (*.f64 (*.f64 b b) (neg.f64 a)))
5.8b
(*.f64 a (*.f64 (*.f64 a (neg.f64 b)) b))
38.4b
(*.f64 a (*.f64 a (*.f64 b b)))
33.6b
(*.f64 a (sqrt.f64 (*.f64 (pow.f64 b 4) (*.f64 a a))))
1.2b
(neg.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 3))
28.7b
(neg.f64 (*.f64 (pow.f64 (*.f64 b a) 3/2) (sqrt.f64 (*.f64 b a))))
28.7b
(neg.f64 (*.f64 (*.f64 (*.f64 b a) (sqrt.f64 (*.f64 b a))) (pow.f64 (pow.f64 (*.f64 b a) 1/4) 2)))
0.3b
(neg.f64 (*.f64 (*.f64 b a) (*.f64 b a)))
18.2b
(neg.f64 (sqrt.f64 (pow.f64 (*.f64 b a) 4)))
25.2b
(neg.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 6)))
Compiler

Compiled 166 to 105 computations (36.7% saved)

localize10.0ms (0.3%)

Local error

Found 2 expressions with local error:

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

Compiled 26 to 13 computations (50% saved)

series6.0ms (0.2%)

Counts
2 → 48
Calls

12 calls:

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

rewrite46.0ms (1.4%)

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

Useful iterations: 1 (0.0ms)

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

simplify59.0ms (1.8%)

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

Useful iterations: 1 (0.0ms)

IterNodesCost
0102905
1231791
2695791
32105791
46105791
Stop Event
node limit
Counts
95 → 56
Calls
Call 1
Inputs
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(-.f64 (+.f64 1 (pow.f64 (*.f64 b a) 2)) 1)
(*.f64 b (*.f64 a (*.f64 b a)))
(*.f64 a (*.f64 b (*.f64 b a)))
(*.f64 (*.f64 b a) (*.f64 b a))
(*.f64 (pow.f64 (*.f64 b a) 2) 1)
(*.f64 1 (pow.f64 (*.f64 b a) 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(*.f64 (*.f64 b b) (*.f64 a a))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) (cbrt.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 12))))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) (*.f64 (cbrt.f64 (*.f64 b a)) (*.f64 b a)))
(*.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 12))) (pow.f64 (cbrt.f64 (*.f64 b a)) 2))
(*.f64 (sqrt.f64 (*.f64 b a)) (*.f64 (sqrt.f64 (*.f64 b a)) (*.f64 b a)))
(*.f64 (*.f64 (*.f64 b a) (sqrt.f64 (*.f64 b a))) (sqrt.f64 (*.f64 b a)))
(*.f64 (pow.f64 1 1/3) (pow.f64 (*.f64 b a) 2))
(*.f64 (pow.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 12)) 1/3) (pow.f64 (cbrt.f64 (*.f64 b a)) 2))
(*.f64 (pow.f64 (pow.f64 b 6) 1/3) (pow.f64 (pow.f64 a 6) 1/3))
(*.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) 6) 1/3)
(pow.f64 (pow.f64 (*.f64 b a) 2) 1)
(pow.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 3)
(sqrt.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 12)))
(log.f64 (exp.f64 (pow.f64 (*.f64 b a) 2)))
(expm1.f64 (log1p.f64 (pow.f64 (*.f64 b a) 2)))
(log1p.f64 (expm1.f64 (pow.f64 (*.f64 b a) 2)))
(exp.f64 (log.f64 (pow.f64 (*.f64 b a) 2)))
(-.f64 (+.f64 1 (pow.f64 (*.f64 b a) 6)) 1)
(*.f64 (pow.f64 (*.f64 b a) 6) 1)
(*.f64 (pow.f64 (*.f64 b a) 2) (cbrt.f64 (pow.f64 (*.f64 b a) 12)))
(*.f64 1 (pow.f64 (*.f64 b a) 6))
(*.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 12)) (pow.f64 (*.f64 b a) 2))
(*.f64 (pow.f64 (*.f64 b a) 3) (pow.f64 (*.f64 b a) 3))
(*.f64 (pow.f64 b 6) (pow.f64 a 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 6) (pow.f64 (cbrt.f64 (*.f64 b a)) 6))
(*.f64 (pow.f64 (sqrt.f64 (*.f64 b a)) 6) (pow.f64 (sqrt.f64 (*.f64 b a)) 6))
(*.f64 (*.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 12)) 1) (pow.f64 (*.f64 b a) 2))
(*.f64 (*.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 12)) (cbrt.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 12)))) (pow.f64 (cbrt.f64 (*.f64 b a)) 2))
(*.f64 (*.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 12)) (*.f64 b a)) (*.f64 b a))
(sqrt.f64 (pow.f64 (*.f64 b a) 12))
(log.f64 (exp.f64 (pow.f64 (*.f64 b a) 6)))
(cbrt.f64 (pow.f64 (pow.f64 (*.f64 b a) 6) 3))
(expm1.f64 (log1p.f64 (pow.f64 (*.f64 b a) 6)))
(log1p.f64 (expm1.f64 (pow.f64 (*.f64 b a) 6)))
(exp.f64 (*.f64 6 (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 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(-.f64 (+.f64 1 (pow.f64 (*.f64 b a) 2)) 1)
(pow.f64 (*.f64 a b) 2)
(*.f64 b (*.f64 a (*.f64 b a)))
(pow.f64 (*.f64 a b) 2)
(*.f64 a (*.f64 b (*.f64 b a)))
(pow.f64 (*.f64 a b) 2)
(*.f64 (*.f64 b a) (*.f64 b a))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 (*.f64 b a) 2) 1)
(pow.f64 (*.f64 a b) 2)
(*.f64 1 (pow.f64 (*.f64 b a) 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (*.f64 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 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) (cbrt.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 12))))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) (cbrt.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 12))))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) (*.f64 (cbrt.f64 (*.f64 b a)) (*.f64 b a)))
(pow.f64 (*.f64 a b) 2)
(*.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 12))) (pow.f64 (cbrt.f64 (*.f64 b a)) 2))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) (cbrt.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 12))))
(*.f64 (sqrt.f64 (*.f64 b a)) (*.f64 (sqrt.f64 (*.f64 b a)) (*.f64 b a)))
(pow.f64 (*.f64 a b) 2)
(*.f64 (*.f64 (*.f64 b a) (sqrt.f64 (*.f64 b a))) (sqrt.f64 (*.f64 b a)))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 1 1/3) (pow.f64 (*.f64 b a) 2))
(pow.f64 (*.f64 a b) 2)
(*.f64 (pow.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 12)) 1/3) (pow.f64 (cbrt.f64 (*.f64 b a)) 2))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) (cbrt.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 12))))
(*.f64 (pow.f64 (pow.f64 b 6) 1/3) (pow.f64 (pow.f64 a 6) 1/3))
(*.f64 (cbrt.f64 (pow.f64 b 6)) (cbrt.f64 (pow.f64 a 6)))
(*.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) 6) 1/3)
(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)
(sqrt.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 12)))
(sqrt.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 12)))
(log.f64 (exp.f64 (pow.f64 (*.f64 b a) 2)))
(pow.f64 (*.f64 a b) 2)
(expm1.f64 (log1p.f64 (pow.f64 (*.f64 b a) 2)))
(pow.f64 (*.f64 a b) 2)
(log1p.f64 (expm1.f64 (pow.f64 (*.f64 b a) 2)))
(pow.f64 (*.f64 a b) 2)
(exp.f64 (log.f64 (pow.f64 (*.f64 b a) 2)))
(pow.f64 (*.f64 a b) 2)
(-.f64 (+.f64 1 (pow.f64 (*.f64 b a) 6)) 1)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 (*.f64 b a) 6) 1)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 (*.f64 b a) 2) (cbrt.f64 (pow.f64 (*.f64 b a) 12)))
(*.f64 (pow.f64 (*.f64 a b) 2) (cbrt.f64 (pow.f64 (*.f64 a b) 12)))
(*.f64 1 (pow.f64 (*.f64 b a) 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 12)) (pow.f64 (*.f64 b a) 2))
(*.f64 (pow.f64 (*.f64 a b) 2) (cbrt.f64 (pow.f64 (*.f64 a b) 12)))
(*.f64 (pow.f64 (*.f64 b a) 3) (pow.f64 (*.f64 b a) 3))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 b 6) (pow.f64 a 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 6) (pow.f64 (cbrt.f64 (*.f64 b a)) 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (pow.f64 (sqrt.f64 (*.f64 b a)) 6) (pow.f64 (sqrt.f64 (*.f64 b a)) 6))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(*.f64 (*.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 12)) 1) (pow.f64 (*.f64 b a) 2))
(*.f64 (pow.f64 (*.f64 a b) 2) (cbrt.f64 (pow.f64 (*.f64 a b) 12)))
(*.f64 (*.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 12)) (cbrt.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 12)))) (pow.f64 (cbrt.f64 (*.f64 b a)) 2))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) (*.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 12)) (cbrt.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 12)))))
(*.f64 (cbrt.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 12))) (*.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) (cbrt.f64 (pow.f64 (*.f64 a b) 12))))
(*.f64 (*.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 12)) (*.f64 b a)) (*.f64 b a))
(*.f64 (pow.f64 (*.f64 a b) 2) (cbrt.f64 (pow.f64 (*.f64 a b) 12)))
(sqrt.f64 (pow.f64 (*.f64 b a) 12))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(log.f64 (exp.f64 (pow.f64 (*.f64 b a) 6)))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(cbrt.f64 (pow.f64 (pow.f64 (*.f64 b a) 6) 3))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(expm1.f64 (log1p.f64 (pow.f64 (*.f64 b a) 6)))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(log1p.f64 (expm1.f64 (pow.f64 (*.f64 b a) 6)))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)
(exp.f64 (*.f64 6 (log.f64 (*.f64 b a))))
(*.f64 (pow.f64 a 6) (pow.f64 b 6))
(pow.f64 (*.f64 a b) 6)

localize19.0ms (0.6%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(*.f64 (*.f64 b a) (sqrt.f64 (*.f64 b a)))
0.3b
(pow.f64 (pow.f64 (*.f64 b a) 1/4) 2)
9.2b
(sqrt.f64 (*.f64 b a))
9.3b
(pow.f64 (*.f64 b a) 1/4)
Compiler

Compiled 66 to 24 computations (63.6% saved)

series91.0ms (2.8%)

Counts
2 → 48
Calls

12 calls:

TimeVariablePointExpression
28.0ms
b
@0
(pow.f64 (*.f64 b a) 1/4)
23.0ms
a
@-inf
(pow.f64 (*.f64 b a) 1/4)
11.0ms
a
@inf
(pow.f64 (*.f64 b a) 1/4)
10.0ms
b
@-inf
(pow.f64 (*.f64 b a) 1/4)
10.0ms
a
@0
(pow.f64 (*.f64 b a) 1/4)

rewrite57.0ms (1.8%)

Algorithm
batch-egg-rewrite
Rules
688×pow1_binary64
639×add-log-exp_binary64
639×log1p-expm1-u_binary64
639×expm1-log1p-u_binary64
622×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify52.0ms (1.6%)

Algorithm
egg-herbie
Rules
509×fma-def_binary64
440×associate-*l*_binary64
387×associate-*r*_binary64
340×fma-neg_binary64
325×distribute-rgt-in_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01381382
1303952
2770900
33227806
Stop Event
node limit
Counts
93 → 89
Calls
Call 1
Inputs
(exp.f64 (*.f64 1/4 (+.f64 (log.f64 b) (log.f64 a))))
(exp.f64 (*.f64 1/4 (+.f64 (log.f64 b) (log.f64 a))))
(exp.f64 (*.f64 1/4 (+.f64 (log.f64 b) (log.f64 a))))
(exp.f64 (*.f64 1/4 (+.f64 (log.f64 b) (log.f64 a))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 b))) (log.f64 a))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 b))) (log.f64 a))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 b))) (log.f64 a))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 b))) (log.f64 a))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 b))) (log.f64 (*.f64 -1 a)))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 b))) (log.f64 (*.f64 -1 a)))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 b))) (log.f64 (*.f64 -1 a)))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 b))) (log.f64 (*.f64 -1 a)))))
(exp.f64 (*.f64 1/4 (+.f64 (log.f64 b) (log.f64 a))))
(exp.f64 (*.f64 1/4 (+.f64 (log.f64 b) (log.f64 a))))
(exp.f64 (*.f64 1/4 (+.f64 (log.f64 b) (log.f64 a))))
(exp.f64 (*.f64 1/4 (+.f64 (log.f64 b) (log.f64 a))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 a))) (log.f64 b))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 a))) (log.f64 b))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 a))) (log.f64 b))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 a))) (log.f64 b))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 a))) (log.f64 (*.f64 -1 b)))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 a))) (log.f64 (*.f64 -1 b)))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 a))) (log.f64 (*.f64 -1 b)))))
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 a))) (log.f64 (*.f64 -1 b)))))
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (log.f64 b) (log.f64 a)))) 2)
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (log.f64 b) (log.f64 a)))) 2)
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (log.f64 b) (log.f64 a)))) 2)
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (log.f64 b) (log.f64 a)))) 2)
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 b))) (log.f64 a)))) 2)
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 b))) (log.f64 a)))) 2)
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 b))) (log.f64 a)))) 2)
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 b))) (log.f64 a)))) 2)
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 b))) (log.f64 (*.f64 -1 a))))) 2)
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 b))) (log.f64 (*.f64 -1 a))))) 2)
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 b))) (log.f64 (*.f64 -1 a))))) 2)
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 b))) (log.f64 (*.f64 -1 a))))) 2)
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (log.f64 b) (log.f64 a)))) 2)
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (log.f64 b) (log.f64 a)))) 2)
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (log.f64 b) (log.f64 a)))) 2)
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (log.f64 b) (log.f64 a)))) 2)
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 a))) (log.f64 b)))) 2)
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 a))) (log.f64 b)))) 2)
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 a))) (log.f64 b)))) 2)
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 a))) (log.f64 b)))) 2)
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 a))) (log.f64 (*.f64 -1 b))))) 2)
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 a))) (log.f64 (*.f64 -1 b))))) 2)
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 a))) (log.f64 (*.f64 -1 b))))) 2)
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 a))) (log.f64 (*.f64 -1 b))))) 2)
(-.f64 (+.f64 1 (pow.f64 (*.f64 b a) 1/4)) 1)
(*.f64 (pow.f64 (*.f64 b a) 1/4) 1)
(*.f64 1 (pow.f64 (*.f64 b a) 1/4))
(*.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 1/4)) (cbrt.f64 (sqrt.f64 (*.f64 b a))))
(*.f64 (cbrt.f64 (sqrt.f64 (*.f64 b a))) (cbrt.f64 (pow.f64 (*.f64 b a) 1/4)))
(*.f64 (pow.f64 b 1/4) (pow.f64 a 1/4))
(*.f64 (pow.f64 a 1/4) (pow.f64 b 1/4))
(*.f64 (pow.f64 (*.f64 b a) 1/8) (pow.f64 (*.f64 b a) 1/8))
(*.f64 (sqrt.f64 (cbrt.f64 (*.f64 b a))) (sqrt.f64 (cbrt.f64 (sqrt.f64 (*.f64 b a)))))
(*.f64 (pow.f64 1 1/4) (pow.f64 (*.f64 b a) 1/4))
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 1/4) (pow.f64 (cbrt.f64 (*.f64 b a)) 1/4))
(*.f64 (pow.f64 (sqrt.f64 (*.f64 b a)) 1/4) (pow.f64 (sqrt.f64 (*.f64 b a)) 1/4))
(sqrt.f64 (sqrt.f64 (*.f64 b a)))
(fabs.f64 (pow.f64 (*.f64 b a) 1/4))
(log.f64 (exp.f64 (pow.f64 (*.f64 b a) 1/4)))
(cbrt.f64 (pow.f64 (*.f64 b a) 3/4))
(expm1.f64 (log1p.f64 (pow.f64 (*.f64 b a) 1/4)))
(log1p.f64 (expm1.f64 (pow.f64 (*.f64 b a) 1/4)))
(exp.f64 (*.f64 1/4 (log.f64 (*.f64 b a))))
(-.f64 (+.f64 1 (sqrt.f64 (*.f64 b a))) 1)
(*.f64 (pow.f64 (*.f64 b a) 1/4) (pow.f64 (*.f64 b a) 1/4))
(*.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 (sqrt.f64 (*.f64 b a))) (*.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 1/4)) (pow.f64 (*.f64 b a) 1/4)))
(*.f64 (cbrt.f64 (*.f64 b a)) (cbrt.f64 (sqrt.f64 (*.f64 b a))))
(*.f64 (sqrt.f64 b) (sqrt.f64 a))
(*.f64 (sqrt.f64 a) (sqrt.f64 b))
(*.f64 (pow.f64 b 1/4) (*.f64 (pow.f64 a 1/4) (pow.f64 (*.f64 b a) 1/4)))
(*.f64 (pow.f64 (*.f64 b a) 1/8) (*.f64 (pow.f64 (*.f64 b a) 1/8) (pow.f64 (*.f64 b a) 1/4)))
(*.f64 (*.f64 (pow.f64 (*.f64 b a) 1/4) (pow.f64 (*.f64 b a) 1/8)) (pow.f64 (*.f64 b a) 1/8))
(*.f64 (*.f64 (pow.f64 b 1/4) (pow.f64 b 1/4)) (*.f64 (pow.f64 a 1/4) (pow.f64 a 1/4)))
(*.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))
(*.f64 (pow.f64 (pow.f64 b 1/4) 2) (pow.f64 (pow.f64 a 1/4) 2))
(*.f64 (*.f64 (pow.f64 (*.f64 b a) 1/4) (cbrt.f64 (sqrt.f64 (*.f64 b a)))) (cbrt.f64 (pow.f64 (*.f64 b a) 1/4)))
(*.f64 (*.f64 (pow.f64 (*.f64 b a) 1/4) (pow.f64 b 1/4)) (pow.f64 a 1/4))
(sqrt.f64 (*.f64 b a))
(fabs.f64 (sqrt.f64 (*.f64 b a)))
(log.f64 (exp.f64 (sqrt.f64 (*.f64 b a))))
(cbrt.f64 (pow.f64 (sqrt.f64 (*.f64 b a)) 3))
(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))))
Outputs
(exp.f64 (*.f64 1/4 (+.f64 (log.f64 b) (log.f64 a))))
(pow.f64 (exp.f64 1/4) (log.f64 (*.f64 b a)))
(pow.f64 (*.f64 b a) 1/4)
(pow.f64 (*.f64 a b) 1/4)
(exp.f64 (*.f64 1/4 (+.f64 (log.f64 b) (log.f64 a))))
(pow.f64 (exp.f64 1/4) (log.f64 (*.f64 b a)))
(pow.f64 (*.f64 b a) 1/4)
(pow.f64 (*.f64 a b) 1/4)
(exp.f64 (*.f64 1/4 (+.f64 (log.f64 b) (log.f64 a))))
(pow.f64 (exp.f64 1/4) (log.f64 (*.f64 b a)))
(pow.f64 (*.f64 b a) 1/4)
(pow.f64 (*.f64 a b) 1/4)
(exp.f64 (*.f64 1/4 (+.f64 (log.f64 b) (log.f64 a))))
(pow.f64 (exp.f64 1/4) (log.f64 (*.f64 b a)))
(pow.f64 (*.f64 b a) 1/4)
(pow.f64 (*.f64 a b) 1/4)
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 b))) (log.f64 a))))
(pow.f64 (exp.f64 1/4) (log.f64 (*.f64 b a)))
(pow.f64 (*.f64 b a) 1/4)
(pow.f64 (*.f64 a b) 1/4)
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 b))) (log.f64 a))))
(pow.f64 (exp.f64 1/4) (log.f64 (*.f64 b a)))
(pow.f64 (*.f64 b a) 1/4)
(pow.f64 (*.f64 a b) 1/4)
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 b))) (log.f64 a))))
(pow.f64 (exp.f64 1/4) (log.f64 (*.f64 b a)))
(pow.f64 (*.f64 b a) 1/4)
(pow.f64 (*.f64 a b) 1/4)
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 b))) (log.f64 a))))
(pow.f64 (exp.f64 1/4) (log.f64 (*.f64 b a)))
(pow.f64 (*.f64 b a) 1/4)
(pow.f64 (*.f64 a b) 1/4)
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 b))) (log.f64 (*.f64 -1 a)))))
(pow.f64 (exp.f64 1/4) (fma.f64 -1 (log.f64 (/.f64 -1 b)) (log.f64 (neg.f64 a))))
(pow.f64 (exp.f64 1/4) (-.f64 (log.f64 (neg.f64 a)) (log.f64 (/.f64 -1 b))))
(*.f64 (pow.f64 (/.f64 -1 b) -1/4) (pow.f64 (neg.f64 a) 1/4))
(pow.f64 (/.f64 (neg.f64 a) (/.f64 -1 b)) 1/4)
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 b))) (log.f64 (*.f64 -1 a)))))
(pow.f64 (exp.f64 1/4) (fma.f64 -1 (log.f64 (/.f64 -1 b)) (log.f64 (neg.f64 a))))
(pow.f64 (exp.f64 1/4) (-.f64 (log.f64 (neg.f64 a)) (log.f64 (/.f64 -1 b))))
(*.f64 (pow.f64 (/.f64 -1 b) -1/4) (pow.f64 (neg.f64 a) 1/4))
(pow.f64 (/.f64 (neg.f64 a) (/.f64 -1 b)) 1/4)
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 b))) (log.f64 (*.f64 -1 a)))))
(pow.f64 (exp.f64 1/4) (fma.f64 -1 (log.f64 (/.f64 -1 b)) (log.f64 (neg.f64 a))))
(pow.f64 (exp.f64 1/4) (-.f64 (log.f64 (neg.f64 a)) (log.f64 (/.f64 -1 b))))
(*.f64 (pow.f64 (/.f64 -1 b) -1/4) (pow.f64 (neg.f64 a) 1/4))
(pow.f64 (/.f64 (neg.f64 a) (/.f64 -1 b)) 1/4)
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 b))) (log.f64 (*.f64 -1 a)))))
(pow.f64 (exp.f64 1/4) (fma.f64 -1 (log.f64 (/.f64 -1 b)) (log.f64 (neg.f64 a))))
(pow.f64 (exp.f64 1/4) (-.f64 (log.f64 (neg.f64 a)) (log.f64 (/.f64 -1 b))))
(*.f64 (pow.f64 (/.f64 -1 b) -1/4) (pow.f64 (neg.f64 a) 1/4))
(pow.f64 (/.f64 (neg.f64 a) (/.f64 -1 b)) 1/4)
(exp.f64 (*.f64 1/4 (+.f64 (log.f64 b) (log.f64 a))))
(pow.f64 (exp.f64 1/4) (log.f64 (*.f64 b a)))
(pow.f64 (*.f64 b a) 1/4)
(pow.f64 (*.f64 a b) 1/4)
(exp.f64 (*.f64 1/4 (+.f64 (log.f64 b) (log.f64 a))))
(pow.f64 (exp.f64 1/4) (log.f64 (*.f64 b a)))
(pow.f64 (*.f64 b a) 1/4)
(pow.f64 (*.f64 a b) 1/4)
(exp.f64 (*.f64 1/4 (+.f64 (log.f64 b) (log.f64 a))))
(pow.f64 (exp.f64 1/4) (log.f64 (*.f64 b a)))
(pow.f64 (*.f64 b a) 1/4)
(pow.f64 (*.f64 a b) 1/4)
(exp.f64 (*.f64 1/4 (+.f64 (log.f64 b) (log.f64 a))))
(pow.f64 (exp.f64 1/4) (log.f64 (*.f64 b a)))
(pow.f64 (*.f64 b a) 1/4)
(pow.f64 (*.f64 a b) 1/4)
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 a))) (log.f64 b))))
(pow.f64 (exp.f64 1/4) (log.f64 (*.f64 b a)))
(pow.f64 (*.f64 b a) 1/4)
(pow.f64 (*.f64 a b) 1/4)
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 a))) (log.f64 b))))
(pow.f64 (exp.f64 1/4) (log.f64 (*.f64 b a)))
(pow.f64 (*.f64 b a) 1/4)
(pow.f64 (*.f64 a b) 1/4)
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 a))) (log.f64 b))))
(pow.f64 (exp.f64 1/4) (log.f64 (*.f64 b a)))
(pow.f64 (*.f64 b a) 1/4)
(pow.f64 (*.f64 a b) 1/4)
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 a))) (log.f64 b))))
(pow.f64 (exp.f64 1/4) (log.f64 (*.f64 b a)))
(pow.f64 (*.f64 b a) 1/4)
(pow.f64 (*.f64 a b) 1/4)
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 a))) (log.f64 (*.f64 -1 b)))))
(pow.f64 (exp.f64 1/4) (fma.f64 -1 (log.f64 (/.f64 -1 a)) (log.f64 (neg.f64 b))))
(pow.f64 (exp.f64 1/4) (-.f64 (log.f64 (neg.f64 b)) (log.f64 (/.f64 -1 a))))
(*.f64 (pow.f64 (/.f64 -1 a) -1/4) (pow.f64 (neg.f64 b) 1/4))
(pow.f64 (/.f64 (neg.f64 b) (/.f64 -1 a)) 1/4)
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 a))) (log.f64 (*.f64 -1 b)))))
(pow.f64 (exp.f64 1/4) (fma.f64 -1 (log.f64 (/.f64 -1 a)) (log.f64 (neg.f64 b))))
(pow.f64 (exp.f64 1/4) (-.f64 (log.f64 (neg.f64 b)) (log.f64 (/.f64 -1 a))))
(*.f64 (pow.f64 (/.f64 -1 a) -1/4) (pow.f64 (neg.f64 b) 1/4))
(pow.f64 (/.f64 (neg.f64 b) (/.f64 -1 a)) 1/4)
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 a))) (log.f64 (*.f64 -1 b)))))
(pow.f64 (exp.f64 1/4) (fma.f64 -1 (log.f64 (/.f64 -1 a)) (log.f64 (neg.f64 b))))
(pow.f64 (exp.f64 1/4) (-.f64 (log.f64 (neg.f64 b)) (log.f64 (/.f64 -1 a))))
(*.f64 (pow.f64 (/.f64 -1 a) -1/4) (pow.f64 (neg.f64 b) 1/4))
(pow.f64 (/.f64 (neg.f64 b) (/.f64 -1 a)) 1/4)
(exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 a))) (log.f64 (*.f64 -1 b)))))
(pow.f64 (exp.f64 1/4) (fma.f64 -1 (log.f64 (/.f64 -1 a)) (log.f64 (neg.f64 b))))
(pow.f64 (exp.f64 1/4) (-.f64 (log.f64 (neg.f64 b)) (log.f64 (/.f64 -1 a))))
(*.f64 (pow.f64 (/.f64 -1 a) -1/4) (pow.f64 (neg.f64 b) 1/4))
(pow.f64 (/.f64 (neg.f64 b) (/.f64 -1 a)) 1/4)
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (log.f64 b) (log.f64 a)))) 2)
(pow.f64 (pow.f64 (exp.f64 1/4) (log.f64 (*.f64 b a))) 2)
(sqrt.f64 (*.f64 b a))
(sqrt.f64 (*.f64 a b))
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (log.f64 b) (log.f64 a)))) 2)
(pow.f64 (pow.f64 (exp.f64 1/4) (log.f64 (*.f64 b a))) 2)
(sqrt.f64 (*.f64 b a))
(sqrt.f64 (*.f64 a b))
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (log.f64 b) (log.f64 a)))) 2)
(pow.f64 (pow.f64 (exp.f64 1/4) (log.f64 (*.f64 b a))) 2)
(sqrt.f64 (*.f64 b a))
(sqrt.f64 (*.f64 a b))
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (log.f64 b) (log.f64 a)))) 2)
(pow.f64 (pow.f64 (exp.f64 1/4) (log.f64 (*.f64 b a))) 2)
(sqrt.f64 (*.f64 b a))
(sqrt.f64 (*.f64 a b))
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 b))) (log.f64 a)))) 2)
(pow.f64 (pow.f64 (exp.f64 1/4) (log.f64 (*.f64 b a))) 2)
(sqrt.f64 (*.f64 b a))
(sqrt.f64 (*.f64 a b))
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 b))) (log.f64 a)))) 2)
(pow.f64 (pow.f64 (exp.f64 1/4) (log.f64 (*.f64 b a))) 2)
(sqrt.f64 (*.f64 b a))
(sqrt.f64 (*.f64 a b))
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 b))) (log.f64 a)))) 2)
(pow.f64 (pow.f64 (exp.f64 1/4) (log.f64 (*.f64 b a))) 2)
(sqrt.f64 (*.f64 b a))
(sqrt.f64 (*.f64 a b))
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 b))) (log.f64 a)))) 2)
(pow.f64 (pow.f64 (exp.f64 1/4) (log.f64 (*.f64 b a))) 2)
(sqrt.f64 (*.f64 b a))
(sqrt.f64 (*.f64 a b))
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 b))) (log.f64 (*.f64 -1 a))))) 2)
(pow.f64 (pow.f64 (exp.f64 1/4) (fma.f64 -1 (log.f64 (/.f64 -1 b)) (log.f64 (neg.f64 a)))) 2)
(pow.f64 (pow.f64 (exp.f64 1/4) (-.f64 (log.f64 (neg.f64 a)) (log.f64 (/.f64 -1 b)))) 2)
(exp.f64 (*.f64 (-.f64 (log.f64 (neg.f64 a)) (log.f64 (/.f64 -1 b))) 1/2))
(sqrt.f64 (/.f64 (neg.f64 a) (/.f64 -1 b)))
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 b))) (log.f64 (*.f64 -1 a))))) 2)
(pow.f64 (pow.f64 (exp.f64 1/4) (fma.f64 -1 (log.f64 (/.f64 -1 b)) (log.f64 (neg.f64 a)))) 2)
(pow.f64 (pow.f64 (exp.f64 1/4) (-.f64 (log.f64 (neg.f64 a)) (log.f64 (/.f64 -1 b)))) 2)
(exp.f64 (*.f64 (-.f64 (log.f64 (neg.f64 a)) (log.f64 (/.f64 -1 b))) 1/2))
(sqrt.f64 (/.f64 (neg.f64 a) (/.f64 -1 b)))
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 b))) (log.f64 (*.f64 -1 a))))) 2)
(pow.f64 (pow.f64 (exp.f64 1/4) (fma.f64 -1 (log.f64 (/.f64 -1 b)) (log.f64 (neg.f64 a)))) 2)
(pow.f64 (pow.f64 (exp.f64 1/4) (-.f64 (log.f64 (neg.f64 a)) (log.f64 (/.f64 -1 b)))) 2)
(exp.f64 (*.f64 (-.f64 (log.f64 (neg.f64 a)) (log.f64 (/.f64 -1 b))) 1/2))
(sqrt.f64 (/.f64 (neg.f64 a) (/.f64 -1 b)))
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 b))) (log.f64 (*.f64 -1 a))))) 2)
(pow.f64 (pow.f64 (exp.f64 1/4) (fma.f64 -1 (log.f64 (/.f64 -1 b)) (log.f64 (neg.f64 a)))) 2)
(pow.f64 (pow.f64 (exp.f64 1/4) (-.f64 (log.f64 (neg.f64 a)) (log.f64 (/.f64 -1 b)))) 2)
(exp.f64 (*.f64 (-.f64 (log.f64 (neg.f64 a)) (log.f64 (/.f64 -1 b))) 1/2))
(sqrt.f64 (/.f64 (neg.f64 a) (/.f64 -1 b)))
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (log.f64 b) (log.f64 a)))) 2)
(pow.f64 (pow.f64 (exp.f64 1/4) (log.f64 (*.f64 b a))) 2)
(sqrt.f64 (*.f64 b a))
(sqrt.f64 (*.f64 a b))
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (log.f64 b) (log.f64 a)))) 2)
(pow.f64 (pow.f64 (exp.f64 1/4) (log.f64 (*.f64 b a))) 2)
(sqrt.f64 (*.f64 b a))
(sqrt.f64 (*.f64 a b))
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (log.f64 b) (log.f64 a)))) 2)
(pow.f64 (pow.f64 (exp.f64 1/4) (log.f64 (*.f64 b a))) 2)
(sqrt.f64 (*.f64 b a))
(sqrt.f64 (*.f64 a b))
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (log.f64 b) (log.f64 a)))) 2)
(pow.f64 (pow.f64 (exp.f64 1/4) (log.f64 (*.f64 b a))) 2)
(sqrt.f64 (*.f64 b a))
(sqrt.f64 (*.f64 a b))
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 a))) (log.f64 b)))) 2)
(pow.f64 (pow.f64 (exp.f64 1/4) (log.f64 (*.f64 b a))) 2)
(sqrt.f64 (*.f64 b a))
(sqrt.f64 (*.f64 a b))
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 a))) (log.f64 b)))) 2)
(pow.f64 (pow.f64 (exp.f64 1/4) (log.f64 (*.f64 b a))) 2)
(sqrt.f64 (*.f64 b a))
(sqrt.f64 (*.f64 a b))
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 a))) (log.f64 b)))) 2)
(pow.f64 (pow.f64 (exp.f64 1/4) (log.f64 (*.f64 b a))) 2)
(sqrt.f64 (*.f64 b a))
(sqrt.f64 (*.f64 a b))
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 a))) (log.f64 b)))) 2)
(pow.f64 (pow.f64 (exp.f64 1/4) (log.f64 (*.f64 b a))) 2)
(sqrt.f64 (*.f64 b a))
(sqrt.f64 (*.f64 a b))
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 a))) (log.f64 (*.f64 -1 b))))) 2)
(pow.f64 (pow.f64 (exp.f64 1/4) (fma.f64 -1 (log.f64 (/.f64 -1 a)) (log.f64 (neg.f64 b)))) 2)
(pow.f64 (pow.f64 (exp.f64 1/4) (-.f64 (log.f64 (neg.f64 b)) (log.f64 (/.f64 -1 a)))) 2)
(pow.f64 (exp.f64 (-.f64 (log.f64 (neg.f64 b)) (log.f64 (/.f64 -1 a)))) 1/2)
(sqrt.f64 (/.f64 (neg.f64 b) (/.f64 -1 a)))
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 a))) (log.f64 (*.f64 -1 b))))) 2)
(pow.f64 (pow.f64 (exp.f64 1/4) (fma.f64 -1 (log.f64 (/.f64 -1 a)) (log.f64 (neg.f64 b)))) 2)
(pow.f64 (pow.f64 (exp.f64 1/4) (-.f64 (log.f64 (neg.f64 b)) (log.f64 (/.f64 -1 a)))) 2)
(pow.f64 (exp.f64 (-.f64 (log.f64 (neg.f64 b)) (log.f64 (/.f64 -1 a)))) 1/2)
(sqrt.f64 (/.f64 (neg.f64 b) (/.f64 -1 a)))
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 a))) (log.f64 (*.f64 -1 b))))) 2)
(pow.f64 (pow.f64 (exp.f64 1/4) (fma.f64 -1 (log.f64 (/.f64 -1 a)) (log.f64 (neg.f64 b)))) 2)
(pow.f64 (pow.f64 (exp.f64 1/4) (-.f64 (log.f64 (neg.f64 b)) (log.f64 (/.f64 -1 a)))) 2)
(pow.f64 (exp.f64 (-.f64 (log.f64 (neg.f64 b)) (log.f64 (/.f64 -1 a)))) 1/2)
(sqrt.f64 (/.f64 (neg.f64 b) (/.f64 -1 a)))
(pow.f64 (exp.f64 (*.f64 1/4 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 a))) (log.f64 (*.f64 -1 b))))) 2)
(pow.f64 (pow.f64 (exp.f64 1/4) (fma.f64 -1 (log.f64 (/.f64 -1 a)) (log.f64 (neg.f64 b)))) 2)
(pow.f64 (pow.f64 (exp.f64 1/4) (-.f64 (log.f64 (neg.f64 b)) (log.f64 (/.f64 -1 a)))) 2)
(pow.f64 (exp.f64 (-.f64 (log.f64 (neg.f64 b)) (log.f64 (/.f64 -1 a)))) 1/2)
(sqrt.f64 (/.f64 (neg.f64 b) (/.f64 -1 a)))
(-.f64 (+.f64 1 (pow.f64 (*.f64 b a) 1/4)) 1)
(pow.f64 (exp.f64 1/4) (log.f64 (*.f64 b a)))
(pow.f64 (*.f64 b a) 1/4)
(pow.f64 (*.f64 a b) 1/4)
(*.f64 (pow.f64 (*.f64 b a) 1/4) 1)
(pow.f64 (exp.f64 1/4) (log.f64 (*.f64 b a)))
(pow.f64 (*.f64 b a) 1/4)
(pow.f64 (*.f64 a b) 1/4)
(*.f64 1 (pow.f64 (*.f64 b a) 1/4))
(pow.f64 (exp.f64 1/4) (log.f64 (*.f64 b a)))
(pow.f64 (*.f64 b a) 1/4)
(pow.f64 (*.f64 a b) 1/4)
(*.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 1/4)) (cbrt.f64 (sqrt.f64 (*.f64 b a))))
(*.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 1/4)) (cbrt.f64 (sqrt.f64 (*.f64 a b))))
(*.f64 (cbrt.f64 (sqrt.f64 (*.f64 b a))) (cbrt.f64 (pow.f64 (*.f64 b a) 1/4)))
(*.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 1/4)) (cbrt.f64 (sqrt.f64 (*.f64 b a))))
(*.f64 (cbrt.f64 (pow.f64 (*.f64 a b) 1/4)) (cbrt.f64 (sqrt.f64 (*.f64 a b))))
(*.f64 (pow.f64 b 1/4) (pow.f64 a 1/4))
(pow.f64 (exp.f64 1/4) (log.f64 (*.f64 b a)))
(pow.f64 (*.f64 b a) 1/4)
(pow.f64 (*.f64 a b) 1/4)
(*.f64 (pow.f64 a 1/4) (pow.f64 b 1/4))
(pow.f64 (exp.f64 1/4) (log.f64 (*.f64 b a)))
(pow.f64 (*.f64 b a) 1/4)
(pow.f64 (*.f64 a b) 1/4)
(*.f64 (pow.f64 (*.f64 b a) 1/8) (pow.f64 (*.f64 b a) 1/8))
(pow.f64 (exp.f64 1/4) (log.f64 (*.f64 b a)))
(pow.f64 (*.f64 b a) 1/4)
(pow.f64 (*.f64 a b) 1/4)
(*.f64 (sqrt.f64 (cbrt.f64 (*.f64 b a))) (sqrt.f64 (cbrt.f64 (sqrt.f64 (*.f64 b a)))))
(*.f64 (sqrt.f64 (cbrt.f64 (*.f64 a b))) (sqrt.f64 (cbrt.f64 (sqrt.f64 (*.f64 a b)))))
(*.f64 (pow.f64 1 1/4) (pow.f64 (*.f64 b a) 1/4))
(pow.f64 (exp.f64 1/4) (log.f64 (*.f64 b a)))
(pow.f64 (*.f64 b a) 1/4)
(pow.f64 (*.f64 a b) 1/4)
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 1/4) (pow.f64 (cbrt.f64 (*.f64 b a)) 1/4))
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 a b)) 2) 1/4) (pow.f64 (cbrt.f64 (*.f64 a b)) 1/4))
(*.f64 (pow.f64 (sqrt.f64 (*.f64 b a)) 1/4) (pow.f64 (sqrt.f64 (*.f64 b a)) 1/4))
(pow.f64 (exp.f64 1/4) (log.f64 (*.f64 b a)))
(pow.f64 (*.f64 b a) 1/4)
(pow.f64 (*.f64 a b) 1/4)
(sqrt.f64 (sqrt.f64 (*.f64 b a)))
(pow.f64 (exp.f64 1/4) (log.f64 (*.f64 b a)))
(pow.f64 (*.f64 b a) 1/4)
(pow.f64 (*.f64 a b) 1/4)
(fabs.f64 (pow.f64 (*.f64 b a) 1/4))
(pow.f64 (exp.f64 1/4) (log.f64 (*.f64 b a)))
(pow.f64 (*.f64 b a) 1/4)
(pow.f64 (*.f64 a b) 1/4)
(log.f64 (exp.f64 (pow.f64 (*.f64 b a) 1/4)))
(pow.f64 (exp.f64 1/4) (log.f64 (*.f64 b a)))
(pow.f64 (*.f64 b a) 1/4)
(pow.f64 (*.f64 a b) 1/4)
(cbrt.f64 (pow.f64 (*.f64 b a) 3/4))
(cbrt.f64 (pow.f64 (*.f64 a b) 3/4))
(expm1.f64 (log1p.f64 (pow.f64 (*.f64 b a) 1/4)))
(pow.f64 (exp.f64 1/4) (log.f64 (*.f64 b a)))
(pow.f64 (*.f64 b a) 1/4)
(pow.f64 (*.f64 a b) 1/4)
(log1p.f64 (expm1.f64 (pow.f64 (*.f64 b a) 1/4)))
(pow.f64 (exp.f64 1/4) (log.f64 (*.f64 b a)))
(pow.f64 (*.f64 b a) 1/4)
(pow.f64 (*.f64 a b) 1/4)
(exp.f64 (*.f64 1/4 (log.f64 (*.f64 b a))))
(pow.f64 (exp.f64 1/4) (log.f64 (*.f64 b a)))
(pow.f64 (*.f64 b a) 1/4)
(pow.f64 (*.f64 a b) 1/4)
(-.f64 (+.f64 1 (sqrt.f64 (*.f64 b a))) 1)
(pow.f64 (pow.f64 (exp.f64 1/4) (log.f64 (*.f64 b a))) 2)
(sqrt.f64 (*.f64 b a))
(sqrt.f64 (*.f64 a b))
(*.f64 (pow.f64 (*.f64 b a) 1/4) (pow.f64 (*.f64 b a) 1/4))
(pow.f64 (pow.f64 (exp.f64 1/4) (log.f64 (*.f64 b a))) 2)
(sqrt.f64 (*.f64 b a))
(sqrt.f64 (*.f64 a b))
(*.f64 (sqrt.f64 (*.f64 b a)) 1)
(pow.f64 (pow.f64 (exp.f64 1/4) (log.f64 (*.f64 b a))) 2)
(sqrt.f64 (*.f64 b a))
(sqrt.f64 (*.f64 a b))
(*.f64 1 (sqrt.f64 (*.f64 b a)))
(pow.f64 (pow.f64 (exp.f64 1/4) (log.f64 (*.f64 b a))) 2)
(sqrt.f64 (*.f64 b a))
(sqrt.f64 (*.f64 a b))
(*.f64 (cbrt.f64 (sqrt.f64 (*.f64 b a))) (cbrt.f64 (*.f64 b a)))
(*.f64 (cbrt.f64 (sqrt.f64 (*.f64 a b))) (cbrt.f64 (*.f64 a b)))
(*.f64 (cbrt.f64 (sqrt.f64 (*.f64 b a))) (*.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 1/4)) (pow.f64 (*.f64 b a) 1/4)))
(*.f64 (cbrt.f64 (sqrt.f64 (*.f64 b a))) (*.f64 (pow.f64 (*.f64 b a) 1/4) (cbrt.f64 (pow.f64 (*.f64 b a) 1/4))))
(*.f64 (pow.f64 (*.f64 b a) 1/4) (*.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 1/4)) (cbrt.f64 (sqrt.f64 (*.f64 b a)))))
(*.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 1/4)) (*.f64 (pow.f64 (*.f64 b a) 1/4) (cbrt.f64 (sqrt.f64 (*.f64 b a)))))
(*.f64 (cbrt.f64 (sqrt.f64 (*.f64 a b))) (*.f64 (pow.f64 (*.f64 a b) 1/4) (cbrt.f64 (pow.f64 (*.f64 a b) 1/4))))
(*.f64 (cbrt.f64 (*.f64 b a)) (cbrt.f64 (sqrt.f64 (*.f64 b a))))
(*.f64 (cbrt.f64 (sqrt.f64 (*.f64 b a))) (cbrt.f64 (*.f64 b a)))
(*.f64 (cbrt.f64 (sqrt.f64 (*.f64 a b))) (cbrt.f64 (*.f64 a b)))
(*.f64 (sqrt.f64 b) (sqrt.f64 a))
(pow.f64 (pow.f64 (exp.f64 1/4) (log.f64 (*.f64 b a))) 2)
(sqrt.f64 (*.f64 b a))
(sqrt.f64 (*.f64 a b))
(*.f64 (sqrt.f64 a) (sqrt.f64 b))
(pow.f64 (pow.f64 (exp.f64 1/4) (log.f64 (*.f64 b a))) 2)
(sqrt.f64 (*.f64 b a))
(sqrt.f64 (*.f64 a b))
(*.f64 (pow.f64 b 1/4) (*.f64 (pow.f64 a 1/4) (pow.f64 (*.f64 b a) 1/4)))
(pow.f64 (pow.f64 (exp.f64 1/4) (log.f64 (*.f64 b a))) 2)
(sqrt.f64 (*.f64 b a))
(sqrt.f64 (*.f64 a b))
(*.f64 (pow.f64 (*.f64 b a) 1/8) (*.f64 (pow.f64 (*.f64 b a) 1/8) (pow.f64 (*.f64 b a) 1/4)))
(pow.f64 (pow.f64 (exp.f64 1/4) (log.f64 (*.f64 b a))) 2)
(sqrt.f64 (*.f64 b a))
(sqrt.f64 (*.f64 a b))
(*.f64 (*.f64 (pow.f64 (*.f64 b a) 1/4) (pow.f64 (*.f64 b a) 1/8)) (pow.f64 (*.f64 b a) 1/8))
(pow.f64 (pow.f64 (exp.f64 1/4) (log.f64 (*.f64 b a))) 2)
(sqrt.f64 (*.f64 b a))
(sqrt.f64 (*.f64 a b))
(*.f64 (*.f64 (pow.f64 b 1/4) (pow.f64 b 1/4)) (*.f64 (pow.f64 a 1/4) (pow.f64 a 1/4)))
(pow.f64 (pow.f64 (exp.f64 1/4) (log.f64 (*.f64 b a))) 2)
(sqrt.f64 (*.f64 b a))
(sqrt.f64 (*.f64 a b))
(*.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2)) (sqrt.f64 (cbrt.f64 (*.f64 b a))))
(*.f64 (sqrt.f64 (cbrt.f64 (*.f64 b a))) (sqrt.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2)))
(*.f64 (sqrt.f64 (cbrt.f64 (*.f64 b a))) (fabs.f64 (cbrt.f64 (*.f64 b a))))
(*.f64 (cbrt.f64 (*.f64 b a)) (sqrt.f64 (cbrt.f64 (*.f64 b a))))
(pow.f64 (cbrt.f64 (*.f64 a b)) 3/2)
(*.f64 (pow.f64 1 1/2) (sqrt.f64 (*.f64 b a)))
(pow.f64 (pow.f64 (exp.f64 1/4) (log.f64 (*.f64 b a))) 2)
(sqrt.f64 (*.f64 b a))
(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 (cbrt.f64 (*.f64 b a))) (sqrt.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2)))
(*.f64 (sqrt.f64 (cbrt.f64 (*.f64 b a))) (fabs.f64 (cbrt.f64 (*.f64 b a))))
(*.f64 (cbrt.f64 (*.f64 b a)) (sqrt.f64 (cbrt.f64 (*.f64 b a))))
(pow.f64 (cbrt.f64 (*.f64 a b)) 3/2)
(*.f64 (pow.f64 (pow.f64 b 1/4) 2) (pow.f64 (pow.f64 a 1/4) 2))
(pow.f64 (pow.f64 (exp.f64 1/4) (log.f64 (*.f64 b a))) 2)
(sqrt.f64 (*.f64 b a))
(sqrt.f64 (*.f64 a b))
(*.f64 (*.f64 (pow.f64 (*.f64 b a) 1/4) (cbrt.f64 (sqrt.f64 (*.f64 b a)))) (cbrt.f64 (pow.f64 (*.f64 b a) 1/4)))
(*.f64 (cbrt.f64 (sqrt.f64 (*.f64 b a))) (*.f64 (pow.f64 (*.f64 b a) 1/4) (cbrt.f64 (pow.f64 (*.f64 b a) 1/4))))
(*.f64 (pow.f64 (*.f64 b a) 1/4) (*.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 1/4)) (cbrt.f64 (sqrt.f64 (*.f64 b a)))))
(*.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 1/4)) (*.f64 (pow.f64 (*.f64 b a) 1/4) (cbrt.f64 (sqrt.f64 (*.f64 b a)))))
(*.f64 (cbrt.f64 (sqrt.f64 (*.f64 a b))) (*.f64 (pow.f64 (*.f64 a b) 1/4) (cbrt.f64 (pow.f64 (*.f64 a b) 1/4))))
(*.f64 (*.f64 (pow.f64 (*.f64 b a) 1/4) (pow.f64 b 1/4)) (pow.f64 a 1/4))
(pow.f64 (pow.f64 (exp.f64 1/4) (log.f64 (*.f64 b a))) 2)
(sqrt.f64 (*.f64 b a))
(sqrt.f64 (*.f64 a b))
(sqrt.f64 (*.f64 b a))
(pow.f64 (pow.f64 (exp.f64 1/4) (log.f64 (*.f64 b a))) 2)
(sqrt.f64 (*.f64 a b))
(fabs.f64 (sqrt.f64 (*.f64 b a)))
(pow.f64 (pow.f64 (exp.f64 1/4) (log.f64 (*.f64 b a))) 2)
(sqrt.f64 (*.f64 b a))
(sqrt.f64 (*.f64 a b))
(log.f64 (exp.f64 (sqrt.f64 (*.f64 b a))))
(pow.f64 (pow.f64 (exp.f64 1/4) (log.f64 (*.f64 b a))) 2)
(sqrt.f64 (*.f64 b a))
(sqrt.f64 (*.f64 a b))
(cbrt.f64 (pow.f64 (sqrt.f64 (*.f64 b a)) 3))
(pow.f64 (pow.f64 (exp.f64 1/4) (log.f64 (*.f64 b a))) 2)
(sqrt.f64 (*.f64 b a))
(sqrt.f64 (*.f64 a b))
(expm1.f64 (log1p.f64 (sqrt.f64 (*.f64 b a))))
(pow.f64 (pow.f64 (exp.f64 1/4) (log.f64 (*.f64 b a))) 2)
(sqrt.f64 (*.f64 b a))
(sqrt.f64 (*.f64 a b))
(log1p.f64 (expm1.f64 (sqrt.f64 (*.f64 b a))))
(pow.f64 (pow.f64 (exp.f64 1/4) (log.f64 (*.f64 b a))) 2)
(sqrt.f64 (*.f64 b a))
(sqrt.f64 (*.f64 a b))
(exp.f64 (log.f64 (sqrt.f64 (*.f64 b a))))
(pow.f64 (pow.f64 (exp.f64 1/4) (log.f64 (*.f64 b a))) 2)
(sqrt.f64 (*.f64 b a))
(sqrt.f64 (*.f64 a b))

localize14.0ms (0.4%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.1b
(*.f64 (pow.f64 (*.f64 b a) 3/2) (sqrt.f64 (*.f64 b a)))
5.1b
(pow.f64 (*.f64 b a) 3/2)
9.2b
(sqrt.f64 (*.f64 b a))
Compiler

Compiled 38 to 14 computations (63.2% saved)

series8.0ms (0.2%)

Counts
2 → 48
Calls

12 calls:

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

rewrite49.0ms (1.5%)

Algorithm
batch-egg-rewrite
Rules
705×pow1_binary64
658×add-log-exp_binary64
658×log1p-expm1-u_binary64
658×expm1-log1p-u_binary64
641×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0822
116914
2202714
Stop Event
node limit
Counts
2 → 35
Calls
Call 1
Inputs
(pow.f64 (*.f64 b a) 3/2)
(*.f64 (pow.f64 (*.f64 b a) 3/2) (sqrt.f64 (*.f64 b a)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (*.f64 b a) 3/2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 b (*.f64 a (sqrt.f64 (*.f64 b a))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 a (*.f64 b (sqrt.f64 (*.f64 b a))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 b a) (sqrt.f64 (*.f64 b a)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 b a) 3/2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 b a)) (*.f64 b a))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (*.f64 b a) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) (*.f64 (cbrt.f64 (*.f64 b a)) (sqrt.f64 (*.f64 b a))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 b 3/2) (pow.f64 a 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 a 3/2) (pow.f64 b 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 b a) 3/4) (pow.f64 (*.f64 b a) 3/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 3/2) (pow.f64 (*.f64 b a) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (*.f64 b a)) 3/2) (pow.f64 (sqrt.f64 (*.f64 b a)) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 3/2) (pow.f64 (cbrt.f64 (*.f64 b a)) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 b a) (cbrt.f64 (*.f64 b a))) (cbrt.f64 (sqrt.f64 (*.f64 b a))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 b a) (sqrt.f64 b)) (sqrt.f64 a))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 b a) (pow.f64 (*.f64 b a) 1/4)) (pow.f64 (*.f64 b a) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 b a) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (*.f64 b a) 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (*.f64 b a) 3/2) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (*.f64 b a) 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (*.f64 b a) 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 3/2 (log.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 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 cbrt.f64 (*.f64 (pow.f64 (*.f64 b a) 3/2) (pow.f64 (pow.f64 (*.f64 b a) 3/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)))))))

simplify51.0ms (1.6%)

Algorithm
egg-herbie
Rules
974×log-prod_binary64
804×associate-*l*_binary64
685×associate-*r*_binary64
620×fma-def_binary64
368×exp-prod_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01231028
1309721
2890689
35058689
Stop Event
node limit
Counts
83 → 56
Calls
Call 1
Inputs
(exp.f64 (*.f64 3/2 (+.f64 (log.f64 b) (log.f64 a))))
(exp.f64 (*.f64 3/2 (+.f64 (log.f64 b) (log.f64 a))))
(exp.f64 (*.f64 3/2 (+.f64 (log.f64 b) (log.f64 a))))
(exp.f64 (*.f64 3/2 (+.f64 (log.f64 b) (log.f64 a))))
(exp.f64 (*.f64 3/2 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 b))) (log.f64 a))))
(exp.f64 (*.f64 3/2 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 b))) (log.f64 a))))
(exp.f64 (*.f64 3/2 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 b))) (log.f64 a))))
(exp.f64 (*.f64 3/2 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 b))) (log.f64 a))))
(exp.f64 (*.f64 3/2 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 b))) (log.f64 (*.f64 -1 a)))))
(exp.f64 (*.f64 3/2 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 b))) (log.f64 (*.f64 -1 a)))))
(exp.f64 (*.f64 3/2 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 b))) (log.f64 (*.f64 -1 a)))))
(exp.f64 (*.f64 3/2 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 b))) (log.f64 (*.f64 -1 a)))))
(exp.f64 (*.f64 3/2 (+.f64 (log.f64 b) (log.f64 a))))
(exp.f64 (*.f64 3/2 (+.f64 (log.f64 b) (log.f64 a))))
(exp.f64 (*.f64 3/2 (+.f64 (log.f64 b) (log.f64 a))))
(exp.f64 (*.f64 3/2 (+.f64 (log.f64 b) (log.f64 a))))
(exp.f64 (*.f64 3/2 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 a))) (log.f64 b))))
(exp.f64 (*.f64 3/2 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 a))) (log.f64 b))))
(exp.f64 (*.f64 3/2 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 a))) (log.f64 b))))
(exp.f64 (*.f64 3/2 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 a))) (log.f64 b))))
(exp.f64 (*.f64 3/2 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 a))) (log.f64 (*.f64 -1 b)))))
(exp.f64 (*.f64 3/2 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 a))) (log.f64 (*.f64 -1 b)))))
(exp.f64 (*.f64 3/2 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 a))) (log.f64 (*.f64 -1 b)))))
(exp.f64 (*.f64 3/2 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 a))) (log.f64 (*.f64 -1 b)))))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.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) 2) (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (pow.f64 a 2) (pow.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) 2) (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(-.f64 (+.f64 1 (pow.f64 (*.f64 b a) 3/2)) 1)
(*.f64 b (*.f64 a (sqrt.f64 (*.f64 b a))))
(*.f64 a (*.f64 b (sqrt.f64 (*.f64 b a))))
(*.f64 (*.f64 b a) (sqrt.f64 (*.f64 b a)))
(*.f64 (pow.f64 (*.f64 b a) 3/2) 1)
(*.f64 (sqrt.f64 (*.f64 b a)) (*.f64 b a))
(*.f64 1 (pow.f64 (*.f64 b a) 3/2))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) (*.f64 (cbrt.f64 (*.f64 b a)) (sqrt.f64 (*.f64 b a))))
(*.f64 (pow.f64 b 3/2) (pow.f64 a 3/2))
(*.f64 (pow.f64 a 3/2) (pow.f64 b 3/2))
(*.f64 (pow.f64 (*.f64 b a) 3/4) (pow.f64 (*.f64 b a) 3/4))
(*.f64 (pow.f64 1 3/2) (pow.f64 (*.f64 b a) 3/2))
(*.f64 (pow.f64 (sqrt.f64 (*.f64 b a)) 3/2) (pow.f64 (sqrt.f64 (*.f64 b a)) 3/2))
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 3/2) (pow.f64 (cbrt.f64 (*.f64 b a)) 3/2))
(*.f64 (*.f64 (*.f64 b a) (cbrt.f64 (*.f64 b a))) (cbrt.f64 (sqrt.f64 (*.f64 b a))))
(*.f64 (*.f64 (*.f64 b a) (sqrt.f64 b)) (sqrt.f64 a))
(*.f64 (*.f64 (*.f64 b a) (pow.f64 (*.f64 b a) 1/4)) (pow.f64 (*.f64 b a) 1/4))
(sqrt.f64 (pow.f64 (*.f64 b a) 3))
(log.f64 (exp.f64 (pow.f64 (*.f64 b a) 3/2)))
(cbrt.f64 (pow.f64 (pow.f64 (*.f64 b a) 3/2) 3))
(expm1.f64 (log1p.f64 (pow.f64 (*.f64 b a) 3/2)))
(log1p.f64 (expm1.f64 (pow.f64 (*.f64 b a) 3/2)))
(exp.f64 (*.f64 3/2 (log.f64 (*.f64 b a))))
(-.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))
(cbrt.f64 (*.f64 (pow.f64 (*.f64 b a) 3/2) (pow.f64 (pow.f64 (*.f64 b a) 3/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
(exp.f64 (*.f64 3/2 (+.f64 (log.f64 b) (log.f64 a))))
(pow.f64 (exp.f64 3/2) (log.f64 (*.f64 b a)))
(pow.f64 (*.f64 b a) 3/2)
(exp.f64 (*.f64 3/2 (+.f64 (log.f64 b) (log.f64 a))))
(pow.f64 (exp.f64 3/2) (log.f64 (*.f64 b a)))
(pow.f64 (*.f64 b a) 3/2)
(exp.f64 (*.f64 3/2 (+.f64 (log.f64 b) (log.f64 a))))
(pow.f64 (exp.f64 3/2) (log.f64 (*.f64 b a)))
(pow.f64 (*.f64 b a) 3/2)
(exp.f64 (*.f64 3/2 (+.f64 (log.f64 b) (log.f64 a))))
(pow.f64 (exp.f64 3/2) (log.f64 (*.f64 b a)))
(pow.f64 (*.f64 b a) 3/2)
(exp.f64 (*.f64 3/2 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 b))) (log.f64 a))))
(pow.f64 (exp.f64 3/2) (log.f64 (*.f64 b a)))
(pow.f64 (*.f64 b a) 3/2)
(exp.f64 (*.f64 3/2 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 b))) (log.f64 a))))
(pow.f64 (exp.f64 3/2) (log.f64 (*.f64 b a)))
(pow.f64 (*.f64 b a) 3/2)
(exp.f64 (*.f64 3/2 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 b))) (log.f64 a))))
(pow.f64 (exp.f64 3/2) (log.f64 (*.f64 b a)))
(pow.f64 (*.f64 b a) 3/2)
(exp.f64 (*.f64 3/2 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 b))) (log.f64 a))))
(pow.f64 (exp.f64 3/2) (log.f64 (*.f64 b a)))
(pow.f64 (*.f64 b a) 3/2)
(exp.f64 (*.f64 3/2 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 b))) (log.f64 (*.f64 -1 a)))))
(pow.f64 (exp.f64 3/2) (fma.f64 -1 (log.f64 (/.f64 -1 b)) (log.f64 (neg.f64 a))))
(pow.f64 (exp.f64 3/2) (-.f64 (log.f64 (neg.f64 a)) (log.f64 (/.f64 -1 b))))
(*.f64 (pow.f64 (/.f64 -1 b) -3/2) (pow.f64 (neg.f64 a) 3/2))
(exp.f64 (*.f64 3/2 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 b))) (log.f64 (*.f64 -1 a)))))
(pow.f64 (exp.f64 3/2) (fma.f64 -1 (log.f64 (/.f64 -1 b)) (log.f64 (neg.f64 a))))
(pow.f64 (exp.f64 3/2) (-.f64 (log.f64 (neg.f64 a)) (log.f64 (/.f64 -1 b))))
(*.f64 (pow.f64 (/.f64 -1 b) -3/2) (pow.f64 (neg.f64 a) 3/2))
(exp.f64 (*.f64 3/2 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 b))) (log.f64 (*.f64 -1 a)))))
(pow.f64 (exp.f64 3/2) (fma.f64 -1 (log.f64 (/.f64 -1 b)) (log.f64 (neg.f64 a))))
(pow.f64 (exp.f64 3/2) (-.f64 (log.f64 (neg.f64 a)) (log.f64 (/.f64 -1 b))))
(*.f64 (pow.f64 (/.f64 -1 b) -3/2) (pow.f64 (neg.f64 a) 3/2))
(exp.f64 (*.f64 3/2 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 b))) (log.f64 (*.f64 -1 a)))))
(pow.f64 (exp.f64 3/2) (fma.f64 -1 (log.f64 (/.f64 -1 b)) (log.f64 (neg.f64 a))))
(pow.f64 (exp.f64 3/2) (-.f64 (log.f64 (neg.f64 a)) (log.f64 (/.f64 -1 b))))
(*.f64 (pow.f64 (/.f64 -1 b) -3/2) (pow.f64 (neg.f64 a) 3/2))
(exp.f64 (*.f64 3/2 (+.f64 (log.f64 b) (log.f64 a))))
(pow.f64 (exp.f64 3/2) (log.f64 (*.f64 b a)))
(pow.f64 (*.f64 b a) 3/2)
(exp.f64 (*.f64 3/2 (+.f64 (log.f64 b) (log.f64 a))))
(pow.f64 (exp.f64 3/2) (log.f64 (*.f64 b a)))
(pow.f64 (*.f64 b a) 3/2)
(exp.f64 (*.f64 3/2 (+.f64 (log.f64 b) (log.f64 a))))
(pow.f64 (exp.f64 3/2) (log.f64 (*.f64 b a)))
(pow.f64 (*.f64 b a) 3/2)
(exp.f64 (*.f64 3/2 (+.f64 (log.f64 b) (log.f64 a))))
(pow.f64 (exp.f64 3/2) (log.f64 (*.f64 b a)))
(pow.f64 (*.f64 b a) 3/2)
(exp.f64 (*.f64 3/2 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 a))) (log.f64 b))))
(pow.f64 (exp.f64 3/2) (log.f64 (*.f64 b a)))
(pow.f64 (*.f64 b a) 3/2)
(exp.f64 (*.f64 3/2 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 a))) (log.f64 b))))
(pow.f64 (exp.f64 3/2) (log.f64 (*.f64 b a)))
(pow.f64 (*.f64 b a) 3/2)
(exp.f64 (*.f64 3/2 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 a))) (log.f64 b))))
(pow.f64 (exp.f64 3/2) (log.f64 (*.f64 b a)))
(pow.f64 (*.f64 b a) 3/2)
(exp.f64 (*.f64 3/2 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 a))) (log.f64 b))))
(pow.f64 (exp.f64 3/2) (log.f64 (*.f64 b a)))
(pow.f64 (*.f64 b a) 3/2)
(exp.f64 (*.f64 3/2 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 a))) (log.f64 (*.f64 -1 b)))))
(pow.f64 (exp.f64 3/2) (fma.f64 -1 (log.f64 (/.f64 -1 a)) (log.f64 (neg.f64 b))))
(pow.f64 (exp.f64 3/2) (-.f64 (log.f64 (neg.f64 b)) (log.f64 (/.f64 -1 a))))
(*.f64 (pow.f64 (neg.f64 b) 3/2) (pow.f64 (/.f64 -1 a) -3/2))
(exp.f64 (*.f64 3/2 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 a))) (log.f64 (*.f64 -1 b)))))
(pow.f64 (exp.f64 3/2) (fma.f64 -1 (log.f64 (/.f64 -1 a)) (log.f64 (neg.f64 b))))
(pow.f64 (exp.f64 3/2) (-.f64 (log.f64 (neg.f64 b)) (log.f64 (/.f64 -1 a))))
(*.f64 (pow.f64 (neg.f64 b) 3/2) (pow.f64 (/.f64 -1 a) -3/2))
(exp.f64 (*.f64 3/2 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 a))) (log.f64 (*.f64 -1 b)))))
(pow.f64 (exp.f64 3/2) (fma.f64 -1 (log.f64 (/.f64 -1 a)) (log.f64 (neg.f64 b))))
(pow.f64 (exp.f64 3/2) (-.f64 (log.f64 (neg.f64 b)) (log.f64 (/.f64 -1 a))))
(*.f64 (pow.f64 (neg.f64 b) 3/2) (pow.f64 (/.f64 -1 a) -3/2))
(exp.f64 (*.f64 3/2 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 a))) (log.f64 (*.f64 -1 b)))))
(pow.f64 (exp.f64 3/2) (fma.f64 -1 (log.f64 (/.f64 -1 a)) (log.f64 (neg.f64 b))))
(pow.f64 (exp.f64 3/2) (-.f64 (log.f64 (neg.f64 b)) (log.f64 (/.f64 -1 a))))
(*.f64 (pow.f64 (neg.f64 b) 3/2) (pow.f64 (/.f64 -1 a) -3/2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 b a) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 b a) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 b a) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 b a) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 b a) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 b a) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 b a) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 b a) 2)
(*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (*.f64 (*.f64 a a) (*.f64 b b)) (pow.f64 (sqrt.f64 -1) 2))
(*.f64 -1 (pow.f64 (*.f64 b a) 2))
(neg.f64 (pow.f64 (*.f64 b a) 2))
(*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (*.f64 (*.f64 a a) (*.f64 b b)) (pow.f64 (sqrt.f64 -1) 2))
(*.f64 -1 (pow.f64 (*.f64 b a) 2))
(neg.f64 (pow.f64 (*.f64 b a) 2))
(*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (*.f64 (*.f64 a a) (*.f64 b b)) (pow.f64 (sqrt.f64 -1) 2))
(*.f64 -1 (pow.f64 (*.f64 b a) 2))
(neg.f64 (pow.f64 (*.f64 b a) 2))
(*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (*.f64 (*.f64 a a) (*.f64 b b)) (pow.f64 (sqrt.f64 -1) 2))
(*.f64 -1 (pow.f64 (*.f64 b a) 2))
(neg.f64 (pow.f64 (*.f64 b a) 2))
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 b a) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 b a) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 b a) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 b a) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 b a) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 b a) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 b a) 2)
(*.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 b a) 2)
(*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (*.f64 (*.f64 a a) (*.f64 b b)) (pow.f64 (sqrt.f64 -1) 2))
(*.f64 -1 (pow.f64 (*.f64 b a) 2))
(neg.f64 (pow.f64 (*.f64 b a) 2))
(*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (*.f64 (*.f64 a a) (*.f64 b b)) (pow.f64 (sqrt.f64 -1) 2))
(*.f64 -1 (pow.f64 (*.f64 b a) 2))
(neg.f64 (pow.f64 (*.f64 b a) 2))
(*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (*.f64 (*.f64 a a) (*.f64 b b)) (pow.f64 (sqrt.f64 -1) 2))
(*.f64 -1 (pow.f64 (*.f64 b a) 2))
(neg.f64 (pow.f64 (*.f64 b a) 2))
(*.f64 (pow.f64 (sqrt.f64 -1) 2) (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (*.f64 (*.f64 a a) (*.f64 b b)) (pow.f64 (sqrt.f64 -1) 2))
(*.f64 -1 (pow.f64 (*.f64 b a) 2))
(neg.f64 (pow.f64 (*.f64 b a) 2))
(-.f64 (+.f64 1 (pow.f64 (*.f64 b a) 3/2)) 1)
(pow.f64 (exp.f64 3/2) (log.f64 (*.f64 b a)))
(pow.f64 (*.f64 b a) 3/2)
(*.f64 b (*.f64 a (sqrt.f64 (*.f64 b a))))
(pow.f64 (exp.f64 3/2) (log.f64 (*.f64 b a)))
(pow.f64 (*.f64 b a) 3/2)
(*.f64 a (*.f64 b (sqrt.f64 (*.f64 b a))))
(pow.f64 (exp.f64 3/2) (log.f64 (*.f64 b a)))
(pow.f64 (*.f64 b a) 3/2)
(*.f64 (*.f64 b a) (sqrt.f64 (*.f64 b a)))
(pow.f64 (exp.f64 3/2) (log.f64 (*.f64 b a)))
(pow.f64 (*.f64 b a) 3/2)
(*.f64 (pow.f64 (*.f64 b a) 3/2) 1)
(pow.f64 (exp.f64 3/2) (log.f64 (*.f64 b a)))
(pow.f64 (*.f64 b a) 3/2)
(*.f64 (sqrt.f64 (*.f64 b a)) (*.f64 b a))
(pow.f64 (exp.f64 3/2) (log.f64 (*.f64 b a)))
(pow.f64 (*.f64 b a) 3/2)
(*.f64 1 (pow.f64 (*.f64 b a) 3/2))
(pow.f64 (exp.f64 3/2) (log.f64 (*.f64 b a)))
(pow.f64 (*.f64 b a) 3/2)
(*.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) (*.f64 (cbrt.f64 (*.f64 b a)) (sqrt.f64 (*.f64 b a))))
(pow.f64 (exp.f64 3/2) (log.f64 (*.f64 b a)))
(pow.f64 (*.f64 b a) 3/2)
(*.f64 (pow.f64 b 3/2) (pow.f64 a 3/2))
(pow.f64 (exp.f64 3/2) (log.f64 (*.f64 b a)))
(pow.f64 (*.f64 b a) 3/2)
(*.f64 (pow.f64 a 3/2) (pow.f64 b 3/2))
(pow.f64 (exp.f64 3/2) (log.f64 (*.f64 b a)))
(pow.f64 (*.f64 b a) 3/2)
(*.f64 (pow.f64 (*.f64 b a) 3/4) (pow.f64 (*.f64 b a) 3/4))
(pow.f64 (exp.f64 3/2) (log.f64 (*.f64 b a)))
(pow.f64 (*.f64 b a) 3/2)
(*.f64 (pow.f64 1 3/2) (pow.f64 (*.f64 b a) 3/2))
(pow.f64 (exp.f64 3/2) (log.f64 (*.f64 b a)))
(pow.f64 (*.f64 b a) 3/2)
(*.f64 (pow.f64 (sqrt.f64 (*.f64 b a)) 3/2) (pow.f64 (sqrt.f64 (*.f64 b a)) 3/2))
(pow.f64 (exp.f64 3/2) (log.f64 (*.f64 b a)))
(pow.f64 (*.f64 b a) 3/2)
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 3/2) (pow.f64 (cbrt.f64 (*.f64 b a)) 3/2))
(*.f64 (*.f64 (*.f64 b a) (cbrt.f64 (*.f64 b a))) (cbrt.f64 (sqrt.f64 (*.f64 b a))))
(*.f64 (*.f64 b a) (*.f64 (cbrt.f64 (*.f64 b a)) (cbrt.f64 (sqrt.f64 (*.f64 b a)))))
(*.f64 (cbrt.f64 (sqrt.f64 (*.f64 b a))) (pow.f64 (cbrt.f64 (*.f64 b a)) 4))
(*.f64 (*.f64 (*.f64 b a) (sqrt.f64 b)) (sqrt.f64 a))
(pow.f64 (exp.f64 3/2) (log.f64 (*.f64 b a)))
(pow.f64 (*.f64 b a) 3/2)
(*.f64 (*.f64 (*.f64 b a) (pow.f64 (*.f64 b a) 1/4)) (pow.f64 (*.f64 b a) 1/4))
(pow.f64 (exp.f64 3/2) (log.f64 (*.f64 b a)))
(pow.f64 (*.f64 b a) 3/2)
(sqrt.f64 (pow.f64 (*.f64 b a) 3))
(pow.f64 (exp.f64 3/2) (log.f64 (*.f64 b a)))
(pow.f64 (*.f64 b a) 3/2)
(log.f64 (exp.f64 (pow.f64 (*.f64 b a) 3/2)))
(pow.f64 (exp.f64 3/2) (log.f64 (*.f64 b a)))
(pow.f64 (*.f64 b a) 3/2)
(cbrt.f64 (pow.f64 (pow.f64 (*.f64 b a) 3/2) 3))
(pow.f64 (exp.f64 3/2) (log.f64 (*.f64 b a)))
(pow.f64 (*.f64 b a) 3/2)
(expm1.f64 (log1p.f64 (pow.f64 (*.f64 b a) 3/2)))
(pow.f64 (exp.f64 3/2) (log.f64 (*.f64 b a)))
(pow.f64 (*.f64 b a) 3/2)
(log1p.f64 (expm1.f64 (pow.f64 (*.f64 b a) 3/2)))
(pow.f64 (exp.f64 3/2) (log.f64 (*.f64 b a)))
(pow.f64 (*.f64 b a) 3/2)
(exp.f64 (*.f64 3/2 (log.f64 (*.f64 b a))))
(pow.f64 (exp.f64 3/2) (log.f64 (*.f64 b a)))
(pow.f64 (*.f64 b a) 3/2)
(-.f64 (+.f64 1 (pow.f64 (*.f64 b a) 2)) 1)
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 b a) 2)
(pow.f64 (*.f64 b a) 2)
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (pow.f64 (*.f64 b a) 2) 1)
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 b a) 2)
(pow.f64 (pow.f64 (pow.f64 (*.f64 b a) 2) 3) 1/3)
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 b a) 2)
(pow.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 3)
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 b a) 2)
(sqrt.f64 (pow.f64 (pow.f64 (*.f64 b a) 2) 2))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 b a) 2)
(log.f64 (exp.f64 (pow.f64 (*.f64 b a) 2)))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 b a) 2)
(cbrt.f64 (pow.f64 (pow.f64 (*.f64 b a) 2) 3))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 b a) 2)
(cbrt.f64 (*.f64 (pow.f64 (*.f64 b a) 3/2) (pow.f64 (pow.f64 (*.f64 b a) 3/2) 3)))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 b a) 2)
(expm1.f64 (log1p.f64 (pow.f64 (*.f64 b a) 2)))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 b a) 2)
(log1p.f64 (expm1.f64 (pow.f64 (*.f64 b a) 2)))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 b a) 2)
(exp.f64 (log.f64 (pow.f64 (*.f64 b a) 2)))
(*.f64 (*.f64 a a) (*.f64 b b))
(pow.f64 (*.f64 b a) 2)

localize12.0ms (0.4%)

Local error

Found 3 expressions with local error:

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

Compiled 36 to 17 computations (52.8% saved)

series14.0ms (0.5%)

Counts
3 → 0
Calls

18 calls:

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

rewrite52.0ms (1.6%)

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

Useful iterations: 1 (0.0ms)

IterNodesCost
0924
119222
2198622
Stop Event
node limit
Counts
3 → 71
Calls
Call 1
Inputs
(cbrt.f64 (*.f64 b a))
(pow.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 3)
(pow.f64 (cbrt.f64 (*.f64 b a)) 2)
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 (*.f64 b a) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 b (*.f64 a (*.f64 b a)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 a (*.f64 b (*.f64 b a)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 b a) (*.f64 b a))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 b a)) (*.f64 (cbrt.f64 (*.f64 b a)) (pow.f64 (cbrt.f64 (*.f64 b a)) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) (pow.f64 (cbrt.f64 (*.f64 b a)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 b a) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (*.f64 b a) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 b b) (*.f64 a a))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 a a) (*.f64 b b))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4) (pow.f64 (cbrt.f64 (*.f64 b a)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4)) (*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 b a))) 2) (pow.f64 (cbrt.f64 (*.f64 b a)) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 b a)) (*.f64 (sqrt.f64 (*.f64 b a)) (*.f64 b a)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 b a) (sqrt.f64 (*.f64 b a))) (sqrt.f64 (*.f64 b a)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 b a))) 2) 6) (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 b a))) 6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 b) 6) (pow.f64 (cbrt.f64 a) 6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (*.f64 b a) 1/6) 6) (pow.f64 (pow.f64 (*.f64 b a) 1/6) 6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4)) 3) (pow.f64 (cbrt.f64 (*.f64 b a)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4) (cbrt.f64 (*.f64 b a))) (cbrt.f64 (*.f64 b a)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4) 1) (pow.f64 (cbrt.f64 (*.f64 b a)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4) (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4))) (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 b a))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 b a) b) a)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 b a) a) b)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 b a) (pow.f64 (cbrt.f64 (*.f64 b a)) 2)) (cbrt.f64 (*.f64 b a)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 12))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (*.f64 b a) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (*.f64 b a) 2) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (*.f64 b a) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (*.f64 b a) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (pow.f64 (*.f64 b a) 2)))))))
((#(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 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 (cbrt.f64 (cbrt.f64 (*.f64 b a))) 2) (*.f64 (cbrt.f64 (cbrt.f64 (*.f64 b a))) (cbrt.f64 (*.f64 b a))))))) (#(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 (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 (*.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 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)))))))))

simplify46.0ms (1.4%)

Algorithm
egg-herbie
Rules
696×fma-def_binary64
609×distribute-rgt-in_binary64
508×exp-prod_binary64
503×log-prod_binary64
427×cube-prod_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0143954
1289759
21224565
33828559
Stop Event
node limit
Counts
71 → 87
Calls
Call 1
Inputs
(-.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 (*.f64 b a) 2)) 1)
(*.f64 b (*.f64 a (*.f64 b a)))
(*.f64 a (*.f64 b (*.f64 b a)))
(*.f64 (*.f64 b a) (*.f64 b a))
(*.f64 (cbrt.f64 (*.f64 b a)) (*.f64 (cbrt.f64 (*.f64 b a)) (pow.f64 (cbrt.f64 (*.f64 b a)) 4)))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) (pow.f64 (cbrt.f64 (*.f64 b a)) 4))
(*.f64 (pow.f64 (*.f64 b a) 2) 1)
(*.f64 1 (pow.f64 (*.f64 b a) 2))
(*.f64 (*.f64 b b) (*.f64 a a))
(*.f64 (*.f64 a a) (*.f64 b b))
(*.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4) (pow.f64 (cbrt.f64 (*.f64 b a)) 2))
(*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4)) (*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 b a))) 2) (pow.f64 (cbrt.f64 (*.f64 b a)) 4)))
(*.f64 (sqrt.f64 (*.f64 b a)) (*.f64 (sqrt.f64 (*.f64 b a)) (*.f64 b a)))
(*.f64 (*.f64 (*.f64 b a) (sqrt.f64 (*.f64 b a))) (sqrt.f64 (*.f64 b a)))
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 b a))) 2) 6) (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 b a))) 6))
(*.f64 (pow.f64 (cbrt.f64 b) 6) (pow.f64 (cbrt.f64 a) 6))
(*.f64 (pow.f64 (pow.f64 (*.f64 b a) 1/6) 6) (pow.f64 (pow.f64 (*.f64 b a) 1/6) 6))
(*.f64 (pow.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4)) 3) (pow.f64 (cbrt.f64 (*.f64 b a)) 2))
(*.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4) (cbrt.f64 (*.f64 b a))) (cbrt.f64 (*.f64 b a)))
(*.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4) 1) (pow.f64 (cbrt.f64 (*.f64 b a)) 2))
(*.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4) (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4))) (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 b a))) 2))
(*.f64 (*.f64 (*.f64 b a) b) a)
(*.f64 (*.f64 (*.f64 b a) a) b)
(*.f64 (*.f64 (*.f64 b a) (pow.f64 (cbrt.f64 (*.f64 b a)) 2)) (cbrt.f64 (*.f64 b a)))
(sqrt.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 12))
(log.f64 (exp.f64 (pow.f64 (*.f64 b a) 2)))
(cbrt.f64 (pow.f64 (pow.f64 (*.f64 b a) 2) 3))
(expm1.f64 (log1p.f64 (pow.f64 (*.f64 b a) 2)))
(log1p.f64 (expm1.f64 (pow.f64 (*.f64 b a) 2)))
(exp.f64 (log.f64 (pow.f64 (*.f64 b a) 2)))
(-.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 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 (cbrt.f64 (cbrt.f64 (*.f64 b a))) 2) (*.f64 (cbrt.f64 (cbrt.f64 (*.f64 b a))) (cbrt.f64 (*.f64 b a))))
(*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4)) (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 b a))) 2))
(*.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 (*.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))
(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)))))
Outputs
(-.f64 (+.f64 1 (cbrt.f64 (*.f64 b a))) 1)
(+.f64 1 (-.f64 (cbrt.f64 (*.f64 b a)) 1))
(+.f64 (cbrt.f64 (*.f64 b a)) 0)
(cbrt.f64 (*.f64 b a))
(*.f64 (cbrt.f64 (*.f64 b a)) 1)
(+.f64 1 (-.f64 (cbrt.f64 (*.f64 b a)) 1))
(+.f64 (cbrt.f64 (*.f64 b a)) 0)
(cbrt.f64 (*.f64 b a))
(*.f64 1 (cbrt.f64 (*.f64 b a)))
(+.f64 1 (-.f64 (cbrt.f64 (*.f64 b a)) 1))
(+.f64 (cbrt.f64 (*.f64 b a)) 0)
(cbrt.f64 (*.f64 b a))
(*.f64 (cbrt.f64 (cbrt.f64 (*.f64 b a))) (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 b a))) 2))
(+.f64 1 (-.f64 (cbrt.f64 (*.f64 b a)) 1))
(+.f64 (cbrt.f64 (*.f64 b a)) 0)
(cbrt.f64 (*.f64 b a))
(*.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 b a)) 1))
(+.f64 (cbrt.f64 (*.f64 b a)) 0)
(cbrt.f64 (*.f64 b a))
(*.f64 (pow.f64 (*.f64 b a) 1/6) (pow.f64 (*.f64 b a) 1/6))
(+.f64 1 (-.f64 (cbrt.f64 (*.f64 b a)) 1))
(+.f64 (cbrt.f64 (*.f64 b a)) 0)
(cbrt.f64 (*.f64 b a))
(*.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 b a)) 4))) (fabs.f64 (cbrt.f64 (cbrt.f64 (*.f64 b a)))))
(*.f64 (cbrt.f64 (cbrt.f64 (*.f64 b a))) (sqrt.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4))))
(*.f64 (cbrt.f64 (cbrt.f64 (*.f64 b a))) (sqrt.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 b a))) 4)))
(*.f64 (pow.f64 1 1/3) (cbrt.f64 (*.f64 b a)))
(+.f64 1 (-.f64 (cbrt.f64 (*.f64 b a)) 1))
(+.f64 (cbrt.f64 (*.f64 b a)) 0)
(cbrt.f64 (*.f64 b a))
(*.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 b a))) (cbrt.f64 (sqrt.f64 (*.f64 b a))))
(pow.f64 (pow.f64 (sqrt.f64 (*.f64 b a)) 1/6) 4)
(pow.f64 (*.f64 b a) 1/3)
(+.f64 1 (-.f64 (cbrt.f64 (*.f64 b a)) 1))
(+.f64 (cbrt.f64 (*.f64 b a)) 0)
(cbrt.f64 (*.f64 b a))
(pow.f64 (cbrt.f64 (*.f64 b a)) 1)
(+.f64 1 (-.f64 (cbrt.f64 (*.f64 b a)) 1))
(+.f64 (cbrt.f64 (*.f64 b a)) 0)
(cbrt.f64 (*.f64 b a))
(pow.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 1/2)
(+.f64 1 (-.f64 (cbrt.f64 (*.f64 b a)) 1))
(+.f64 (cbrt.f64 (*.f64 b a)) 0)
(cbrt.f64 (*.f64 b a))
(pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 b a))) 3)
(+.f64 1 (-.f64 (cbrt.f64 (*.f64 b a)) 1))
(+.f64 (cbrt.f64 (*.f64 b a)) 0)
(cbrt.f64 (*.f64 b a))
(pow.f64 (pow.f64 (*.f64 b a) 1/6) 2)
(+.f64 1 (-.f64 (cbrt.f64 (*.f64 b a)) 1))
(+.f64 (cbrt.f64 (*.f64 b a)) 0)
(cbrt.f64 (*.f64 b a))
(sqrt.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2))
(+.f64 1 (-.f64 (cbrt.f64 (*.f64 b a)) 1))
(+.f64 (cbrt.f64 (*.f64 b a)) 0)
(cbrt.f64 (*.f64 b a))
(fabs.f64 (cbrt.f64 (*.f64 b a)))
(+.f64 1 (-.f64 (cbrt.f64 (*.f64 b a)) 1))
(+.f64 (cbrt.f64 (*.f64 b a)) 0)
(cbrt.f64 (*.f64 b a))
(log.f64 (exp.f64 (cbrt.f64 (*.f64 b a))))
(+.f64 1 (-.f64 (cbrt.f64 (*.f64 b a)) 1))
(+.f64 (cbrt.f64 (*.f64 b a)) 0)
(cbrt.f64 (*.f64 b a))
(expm1.f64 (log1p.f64 (cbrt.f64 (*.f64 b a))))
(+.f64 1 (-.f64 (cbrt.f64 (*.f64 b a)) 1))
(+.f64 (cbrt.f64 (*.f64 b a)) 0)
(cbrt.f64 (*.f64 b a))
(log1p.f64 (expm1.f64 (cbrt.f64 (*.f64 b a))))
(+.f64 1 (-.f64 (cbrt.f64 (*.f64 b a)) 1))
(+.f64 (cbrt.f64 (*.f64 b a)) 0)
(cbrt.f64 (*.f64 b a))
(exp.f64 (log.f64 (cbrt.f64 (*.f64 b a))))
(+.f64 1 (-.f64 (cbrt.f64 (*.f64 b a)) 1))
(+.f64 (cbrt.f64 (*.f64 b a)) 0)
(cbrt.f64 (*.f64 b a))
(-.f64 (+.f64 1 (pow.f64 (*.f64 b a) 2)) 1)
(+.f64 1 (-.f64 (pow.f64 (*.f64 b a) 2) 1))
(+.f64 (pow.f64 (*.f64 b a) 2) 0)
(pow.f64 (*.f64 b a) 2)
(*.f64 b (*.f64 a (*.f64 b a)))
(+.f64 1 (-.f64 (pow.f64 (*.f64 b a) 2) 1))
(+.f64 (pow.f64 (*.f64 b a) 2) 0)
(pow.f64 (*.f64 b a) 2)
(*.f64 a (*.f64 b (*.f64 b a)))
(+.f64 1 (-.f64 (pow.f64 (*.f64 b a) 2) 1))
(+.f64 (pow.f64 (*.f64 b a) 2) 0)
(pow.f64 (*.f64 b a) 2)
(*.f64 (*.f64 b a) (*.f64 b a))
(+.f64 1 (-.f64 (pow.f64 (*.f64 b a) 2) 1))
(+.f64 (pow.f64 (*.f64 b a) 2) 0)
(pow.f64 (*.f64 b a) 2)
(*.f64 (cbrt.f64 (*.f64 b a)) (*.f64 (cbrt.f64 (*.f64 b a)) (pow.f64 (cbrt.f64 (*.f64 b a)) 4)))
(+.f64 1 (-.f64 (pow.f64 (*.f64 b a) 2) 1))
(+.f64 (pow.f64 (*.f64 b a) 2) 0)
(pow.f64 (*.f64 b a) 2)
(*.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) (pow.f64 (cbrt.f64 (*.f64 b a)) 4))
(+.f64 1 (-.f64 (pow.f64 (*.f64 b a) 2) 1))
(+.f64 (pow.f64 (*.f64 b a) 2) 0)
(pow.f64 (*.f64 b a) 2)
(*.f64 (pow.f64 (*.f64 b a) 2) 1)
(+.f64 1 (-.f64 (pow.f64 (*.f64 b a) 2) 1))
(+.f64 (pow.f64 (*.f64 b a) 2) 0)
(pow.f64 (*.f64 b a) 2)
(*.f64 1 (pow.f64 (*.f64 b a) 2))
(+.f64 1 (-.f64 (pow.f64 (*.f64 b a) 2) 1))
(+.f64 (pow.f64 (*.f64 b a) 2) 0)
(pow.f64 (*.f64 b a) 2)
(*.f64 (*.f64 b b) (*.f64 a a))
(+.f64 1 (-.f64 (pow.f64 (*.f64 b a) 2) 1))
(+.f64 (pow.f64 (*.f64 b a) 2) 0)
(pow.f64 (*.f64 b a) 2)
(*.f64 (*.f64 a a) (*.f64 b b))
(+.f64 1 (-.f64 (pow.f64 (*.f64 b a) 2) 1))
(+.f64 (pow.f64 (*.f64 b a) 2) 0)
(pow.f64 (*.f64 b a) 2)
(*.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4) (pow.f64 (cbrt.f64 (*.f64 b a)) 2))
(+.f64 1 (-.f64 (pow.f64 (*.f64 b a) 2) 1))
(+.f64 (pow.f64 (*.f64 b a) 2) 0)
(pow.f64 (*.f64 b a) 2)
(*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4)) (*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 b a))) 2) (pow.f64 (cbrt.f64 (*.f64 b a)) 4)))
(+.f64 1 (-.f64 (pow.f64 (*.f64 b a) 2) 1))
(+.f64 (pow.f64 (*.f64 b a) 2) 0)
(pow.f64 (*.f64 b a) 2)
(*.f64 (sqrt.f64 (*.f64 b a)) (*.f64 (sqrt.f64 (*.f64 b a)) (*.f64 b a)))
(+.f64 1 (-.f64 (pow.f64 (*.f64 b a) 2) 1))
(+.f64 (pow.f64 (*.f64 b a) 2) 0)
(pow.f64 (*.f64 b a) 2)
(*.f64 (*.f64 (*.f64 b a) (sqrt.f64 (*.f64 b a))) (sqrt.f64 (*.f64 b a)))
(+.f64 1 (-.f64 (pow.f64 (*.f64 b a) 2) 1))
(+.f64 (pow.f64 (*.f64 b a) 2) 0)
(pow.f64 (*.f64 b a) 2)
(*.f64 (pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 b a))) 2) 6) (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 b a))) 6))
(+.f64 1 (-.f64 (pow.f64 (*.f64 b a) 2) 1))
(+.f64 (pow.f64 (*.f64 b a) 2) 0)
(pow.f64 (*.f64 b a) 2)
(*.f64 (pow.f64 (cbrt.f64 b) 6) (pow.f64 (cbrt.f64 a) 6))
(+.f64 1 (-.f64 (pow.f64 (*.f64 b a) 2) 1))
(+.f64 (pow.f64 (*.f64 b a) 2) 0)
(pow.f64 (*.f64 b a) 2)
(*.f64 (pow.f64 (pow.f64 (*.f64 b a) 1/6) 6) (pow.f64 (pow.f64 (*.f64 b a) 1/6) 6))
(+.f64 1 (-.f64 (pow.f64 (*.f64 b a) 2) 1))
(+.f64 (pow.f64 (*.f64 b a) 2) 0)
(pow.f64 (*.f64 b a) 2)
(*.f64 (pow.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4)) 3) (pow.f64 (cbrt.f64 (*.f64 b a)) 2))
(+.f64 1 (-.f64 (pow.f64 (*.f64 b a) 2) 1))
(+.f64 (pow.f64 (*.f64 b a) 2) 0)
(pow.f64 (*.f64 b a) 2)
(*.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4) (cbrt.f64 (*.f64 b a))) (cbrt.f64 (*.f64 b a)))
(+.f64 1 (-.f64 (pow.f64 (*.f64 b a) 2) 1))
(+.f64 (pow.f64 (*.f64 b a) 2) 0)
(pow.f64 (*.f64 b a) 2)
(*.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4) 1) (pow.f64 (cbrt.f64 (*.f64 b a)) 2))
(+.f64 1 (-.f64 (pow.f64 (*.f64 b a) 2) 1))
(+.f64 (pow.f64 (*.f64 b a) 2) 0)
(pow.f64 (*.f64 b a) 2)
(*.f64 (*.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4) (cbrt.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 4))) (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 b a))) 2))
(+.f64 1 (-.f64 (pow.f64 (*.f64 b a) 2) 1))
(+.f64 (pow.f64 (*.f64 b a) 2) 0)
(pow.f64 (*.f64 b a) 2)
(*.f64 (*.f64 (*.f64 b a) b) a)
(+.f64 1 (-.f64 (pow.f64 (*.f64 b a) 2) 1))
(+.f64 (pow.f64 (*.f64 b a) 2) 0)
(pow.f64 (*.f64 b a) 2)
(*.f64 (*.f64 (*.f64 b a) a) b)
(+.f64 1 (-.f64 (pow.f64 (*.f64 b a) 2) 1))
(+.f64 (pow.f64 (*.f64 b a) 2) 0)
(pow.f64 (*.f64 b a) 2)
(*.f64 (*.f64 (*.f64 b a) (pow.f64 (cbrt.f64 (*.f64 b a)) 2)) (cbrt.f64 (*.f64 b a)))
(+.f64 1 (-.f64 (pow.f64 (*.f64 b a) 2) 1))
(+.f64 (pow.f64 (*.f64 b a) 2) 0)
(pow.f64 (*.f64 b a) 2)
(sqrt.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 12))
(+.f64 1 (-.f64 (pow.f64 (*.f64 b a) 2) 1))
(+.f64 (pow.f64 (*.f64 b a) 2) 0)
(pow.f64 (*.f64 b a) 2)
(log.f64 (exp.f64 (pow.f64 (*.f64 b a) 2)))
(+.f64 1 (-.f64 (pow.f64 (*.f64 b a) 2) 1))
(+.f64 (pow.f64 (*.f64 b a) 2) 0)
(pow.f64 (*.f64 b a) 2)
(cbrt.f64 (pow.f64 (pow.f64 (*.f64 b a) 2) 3))
(+.f64 1 (-.f64 (pow.f64 (*.f64 b a) 2) 1))
(+.f64 (pow.f64 (*.f64 b a) 2) 0)
(pow.f64 (*.f64 b a) 2)
(expm1.f64 (log1p.f64 (pow.f64 (*.f64 b a) 2)))
(+.f64 1 (-.f64 (pow.f64 (*.f64 b a) 2) 1))
(+.f64 (pow.f64 (*.f64 b a) 2) 0)
(pow.f64 (*.f64 b a) 2)
(log1p.f64 (expm1.f64 (pow.f64 (*.f64 b a) 2)))
(+.f64 1 (-.f64 (pow.f64 (*.f64 b a) 2) 1))
(+.f64 (pow.f64 (*.f64 b a) 2) 0)
(pow.f64 (*.f64 b a) 2)
(exp.f64 (log.f64 (pow.f64 (*.f64 b a) 2)))
(+.f64 1 (-.f64 (pow.f64 (*.f64 b a) 2) 1))
(+.f64 (pow.f64 (*.f64 b a) 2) 0)
(pow.f64 (*.f64 b a) 2)
(-.f64 (+.f64 1 (pow.f64 (cbrt.f64 (*.f64 b a)) 2)) 1)
(+.f64 1 (-.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 1))
(+.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 0)
(pow.f64 (cbrt.f64 (*.f64 b a)) 2)
(*.f64 (cbrt.f64 (*.f64 b a)) (cbrt.f64 (*.f64 b a)))
(+.f64 1 (-.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 1))
(+.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 0)
(pow.f64 (cbrt.f64 (*.f64 b a)) 2)
(*.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 1)
(+.f64 1 (-.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 1))
(+.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 0)
(pow.f64 (cbrt.f64 (*.f64 b a)) 2)
(*.f64 1 (pow.f64 (cbrt.f64 (*.f64 b a)) 2))
(+.f64 1 (-.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 1))
(+.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 0)
(pow.f64 (cbrt.f64 (*.f64 b a)) 2)
(*.f64 (cbrt.f64 b) (*.f64 (cbrt.f64 a) (cbrt.f64 (*.f64 b a))))
(*.f64 (cbrt.f64 b) (*.f64 (cbrt.f64 (*.f64 b a)) (cbrt.f64 a)))
(*.f64 (cbrt.f64 (*.f64 b a)) (*.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 1 (-.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 1))
(+.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 0)
(pow.f64 (cbrt.f64 (*.f64 b a)) 2)
(*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 b a))) 2) (*.f64 (cbrt.f64 (cbrt.f64 (*.f64 b a))) (cbrt.f64 (*.f64 b a))))
(+.f64 1 (-.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 1))
(+.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 0)
(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 1 (-.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 1))
(+.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 0)
(pow.f64 (cbrt.f64 (*.f64 b a)) 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 b a)) 2) 1))
(+.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 0)
(pow.f64 (cbrt.f64 (*.f64 b a)) 2)
(*.f64 (sqrt.f64 (*.f64 b a)) (pow.f64 (*.f64 b a) 1/6))
(+.f64 1 (-.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 1))
(+.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 0)
(pow.f64 (cbrt.f64 (*.f64 b a)) 2)
(*.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 b a)) 2) 1))
(+.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 0)
(pow.f64 (cbrt.f64 (*.f64 b a)) 2)
(*.f64 (*.f64 (cbrt.f64 (*.f64 b a)) (cbrt.f64 b)) (cbrt.f64 a))
(*.f64 (cbrt.f64 b) (*.f64 (cbrt.f64 (*.f64 b a)) (cbrt.f64 a)))
(*.f64 (cbrt.f64 (*.f64 b a)) (*.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 b a)) 2) 1))
(+.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 0)
(pow.f64 (cbrt.f64 (*.f64 b a)) 2)
(log.f64 (exp.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2)))
(+.f64 1 (-.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 1))
(+.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 0)
(pow.f64 (cbrt.f64 (*.f64 b a)) 2)
(cbrt.f64 (pow.f64 (*.f64 b a) 2))
(+.f64 1 (-.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 1))
(+.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 0)
(pow.f64 (cbrt.f64 (*.f64 b a)) 2)
(expm1.f64 (log1p.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2)))
(+.f64 1 (-.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 1))
(+.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 0)
(pow.f64 (cbrt.f64 (*.f64 b a)) 2)
(log1p.f64 (expm1.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2)))
(+.f64 1 (-.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 1))
(+.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 0)
(pow.f64 (cbrt.f64 (*.f64 b a)) 2)
(exp.f64 (*.f64 2 (log.f64 (cbrt.f64 (*.f64 b a)))))
(+.f64 1 (-.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 1))
(+.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 0)
(pow.f64 (cbrt.f64 (*.f64 b a)) 2)

eval80.0ms (2.5%)

Compiler

Compiled 5739 to 2615 computations (54.4% saved)

prune58.0ms (1.8%)

Pruning

17 alts after pruning (3 fresh and 14 done)

PrunedKeptTotal
New3623365
Fresh000
Picked011
Done11314
Total36317380
Error
0b
Counts
380 → 17
Alt Table
Click to see full alt table
StatusErrorProgram
19.5b
(*.f64 (pow.f64 (*.f64 a (sqrt.f64 b)) 2) (neg.f64 b))
22.7b
(*.f64 (*.f64 (*.f64 (*.f64 a (sqrt.f64 b)) a) (sqrt.f64 b)) (neg.f64 b))
18.7b
(*.f64 (*.f64 (*.f64 a a) b) (neg.f64 b))
4.9b
(*.f64 (*.f64 a (*.f64 a b)) (neg.f64 b))
38.6b
(*.f64 (*.f64 a a) (*.f64 b b))
17.0b
(*.f64 a (*.f64 (*.f64 b b) (neg.f64 a)))
5.8b
(*.f64 a (*.f64 (*.f64 a (neg.f64 b)) b))
38.4b
(*.f64 a (*.f64 a (*.f64 b b)))
33.6b
(*.f64 a (sqrt.f64 (*.f64 (pow.f64 b 4) (*.f64 a a))))
1.5b
(neg.f64 (pow.f64 (pow.f64 (*.f64 (cbrt.f64 b) (cbrt.f64 a)) 2) 3))
1.2b
(neg.f64 (pow.f64 (pow.f64 (cbrt.f64 (*.f64 b a)) 2) 3))
0.8b
(neg.f64 (pow.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 2)) 3))
28.7b
(neg.f64 (*.f64 (pow.f64 (*.f64 b a) 3/2) (sqrt.f64 (*.f64 b a))))
28.7b
(neg.f64 (*.f64 (pow.f64 (*.f64 b a) 3/2) (cbrt.f64 (pow.f64 (*.f64 b a) 3/2))))
0.3b
(neg.f64 (*.f64 (*.f64 b a) (*.f64 b a)))
18.2b
(neg.f64 (sqrt.f64 (pow.f64 (*.f64 b a) 4)))
25.2b
(neg.f64 (cbrt.f64 (pow.f64 (*.f64 b a) 6)))
Compiler

Compiled 185 to 123 computations (33.5% saved)

regimes43.0ms (1.3%)

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

5 calls:

11.0ms
b
10.0ms
a
7.0ms
(*.f64 a a)
6.0ms
(neg.f64 (*.f64 (*.f64 (*.f64 a a) b) b))
4.0ms
(*.f64 (*.f64 (*.f64 a a) b) b)
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)
Compiler

Compiled 236 to 109 computations (53.8% saved)

regimes10.0ms (0.3%)

Accuracy

Total -0.2b remaining (-0.6%)

Threshold costs -0.2b (-0.6%)

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

3 calls:

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

Compiled 27 to 14 computations (48.1% saved)

simplify3.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0922
11922
22922
33622
44122
54322
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(neg.f64 (*.f64 (*.f64 b a) (*.f64 b a)))
(*.f64 a (*.f64 a (*.f64 b b)))
Outputs
(neg.f64 (*.f64 (*.f64 b a) (*.f64 b a)))
(*.f64 (*.f64 b a) (neg.f64 (*.f64 b a)))
(*.f64 (*.f64 b a) (*.f64 b (neg.f64 a)))
(*.f64 a (*.f64 a (*.f64 b b)))
Compiler

Compiled 19 to 11 computations (42.1% saved)

soundness24.0ms (0.8%)

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

Useful iterations: 0 (0.0ms)

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

Compiled 70 to 42 computations (40% saved)

end17.0ms (0.5%)

Remove

(sort a b)

Compiler

Compiled 37 to 21 computations (43.2% saved)

Profiling

Loading profile data...