Details

Time bar (total: 4.1s)

analyze269.0ms (6.6%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.8%0.2%0
0%99.8%0.2%1
0%99.8%0.2%2
0%99.8%0.2%3
0%99.8%0.2%4
0%99.8%0.2%5
0%99.8%0.2%6
0%99.8%0.2%7
0%99.8%0.2%8
6.2%93.6%0.2%9
12.5%87.3%0.2%10
18.7%81.1%0.2%11
25.3%74.3%0.4%12
Compiler

Compiled 12 to 8 computations (33.3% saved)

sample1.1s (28.2%)

Results
897.0ms8256×body256valid
228.0ms2015×body256invalid

preprocess20.0ms (0.5%)

Algorithm
egg-herbie
Rules
55×associate-/l*_binary64
32×associate-/r/_binary64
31×associate-/r*_binary64
30×associate-*r/_binary64
23×*-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02270
17370
215870
326270
428970
044
144
Stop Event
unsound
saturated
Calls
Call 1
Inputs
0
1
2
3
Outputs
0
1
0
2
3
2
Call 2
Inputs
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
(/.f64 (*.f64 a2 a1) (*.f64 b1 b2))
(/.f64 (*.f64 b1 a2) (*.f64 a1 b2))
(/.f64 (*.f64 b2 a2) (*.f64 b1 a1))
(/.f64 (*.f64 a1 b1) (*.f64 a2 b2))
(/.f64 (*.f64 a1 b2) (*.f64 b1 a2))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
Outputs
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
(/.f64 a1 (/.f64 (*.f64 b1 b2) a2))
(/.f64 a1 (/.f64 b2 (/.f64 a2 b1)))
(/.f64 a1 (*.f64 (/.f64 b1 a2) b2))
(/.f64 a1 (*.f64 b2 (/.f64 b1 a2)))
(/.f64 (*.f64 a2 a1) (*.f64 b1 b2))
(/.f64 a1 (/.f64 (*.f64 b1 b2) a2))
(/.f64 a1 (/.f64 b2 (/.f64 a2 b1)))
(/.f64 a1 (*.f64 (/.f64 b1 a2) b2))
(/.f64 a1 (*.f64 b2 (/.f64 b1 a2)))
(/.f64 (*.f64 b1 a2) (*.f64 a1 b2))
(*.f64 (/.f64 b1 a1) (/.f64 a2 b2))
(*.f64 (/.f64 b1 b2) (/.f64 a2 a1))
(*.f64 a2 (/.f64 b1 (*.f64 a1 b2)))
(/.f64 (*.f64 b2 a2) (*.f64 b1 a1))
(*.f64 (/.f64 b2 b1) (/.f64 a2 a1))
(*.f64 (/.f64 a2 b1) (/.f64 b2 a1))
(*.f64 b2 (/.f64 (/.f64 a2 b1) a1))
(/.f64 (*.f64 a1 b1) (*.f64 a2 b2))
(*.f64 (/.f64 a1 a2) (/.f64 b1 b2))
(*.f64 (/.f64 a1 b2) (/.f64 b1 a2))
(/.f64 (*.f64 a1 (/.f64 b1 a2)) b2)
(*.f64 a1 (/.f64 (/.f64 b1 a2) b2))
(/.f64 (*.f64 a1 b2) (*.f64 b1 a2))
(*.f64 (/.f64 a1 b1) (/.f64 b2 a2))
(*.f64 (/.f64 a1 a2) (/.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 a1 (/.f64 (*.f64 b1 b2) a2))
(/.f64 a1 (/.f64 b2 (/.f64 a2 b1)))
(/.f64 a1 (*.f64 (/.f64 b1 a2) b2))
(/.f64 a1 (*.f64 b2 (/.f64 b1 a2)))
Symmetry

(sort a1 a2)

(sort b1 b2)

Compiler

Compiled 15 to 11 computations (26.7% saved)

simplify7.0ms (0.2%)

Algorithm
egg-herbie
Rules
14×associate-/l*_binary64
associate-*r/_binary64
associate-/r/_binary64
*-commutative_binary64
associate-/r*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0810
11710
23810
36710
47910
57910
Stop Event
saturated
Counts
1 → 2
Calls
Call 1
Inputs
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
Outputs
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
(*.f64 (/.f64 a1 b1) (/.f64 a2 b2))
(*.f64 a2 (/.f64 a1 (*.f64 b1 b2)))
(*.f64 a1 (/.f64 a2 (*.f64 b1 b2)))

eval1.0ms (0%)

Compiler

Compiled 18 to 9 computations (50% saved)

prune1.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
6.1b
Counts
3 → 2
Alt Table
Click to see full alt table
StatusErrorProgram
11.4b
(*.f64 a1 (/.f64 a2 (*.f64 b1 b2)))
11.5b
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
Compiler

Compiled 22 to 14 computations (36.4% saved)

localize8.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
3.5b
(/.f64 a2 (*.f64 b1 b2))
7.9b
(*.f64 a1 (/.f64 a2 (*.f64 b1 b2)))
Compiler

Compiled 23 to 7 computations (69.6% saved)

series16.0ms (0.4%)

Counts
2 → 84
Calls

21 calls:

TimeVariablePointExpression
2.0ms
a2
@0
(/.f64 a2 (*.f64 b1 b2))
2.0ms
b1
@0
(*.f64 a1 (/.f64 a2 (*.f64 b1 b2)))
1.0ms
a1
@0
(*.f64 a1 (/.f64 a2 (*.f64 b1 b2)))
1.0ms
a2
@0
(*.f64 a1 (/.f64 a2 (*.f64 b1 b2)))
1.0ms
a2
@inf
(*.f64 a1 (/.f64 a2 (*.f64 b1 b2)))

rewrite70.0ms (1.7%)

Algorithm
batch-egg-rewrite
Rules
938×pow1_binary64
866×add-log-exp_binary64
866×log1p-expm1-u_binary64
866×expm1-log1p-u_binary64
846×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0817
116617
2228617
Stop Event
node limit
Counts
2 → 64
Calls
Call 1
Inputs
(*.f64 a1 (/.f64 a2 (*.f64 b1 b2)))
(/.f64 a2 (*.f64 b1 b2))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 a1 (/.f64 a2 (*.f64 b1 b2)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 a1 (/.f64 b1 (/.f64 a2 b2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (*.f64 b1 b2) (*.f64 a1 a2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 a1 a2) (*.f64 b1 b2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 a1 a2)) (*.f64 b1 (neg.f64 b2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 a1 a2) b1) b2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 a1 a2) b2) b1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 a1 a2) 1) (*.f64 b1 b2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 a1 a2) (pow.f64 (cbrt.f64 (*.f64 b1 b2)) 2)) (cbrt.f64 (*.f64 b1 b2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 a1 a2) (sqrt.f64 (*.f64 b1 b2))) (sqrt.f64 (*.f64 b1 b2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 a2) a1) (*.f64 b1 (neg.f64 b2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (/.f64 a2 b1) a1) b2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 a1 (neg.f64 a2)) (*.f64 b1 (neg.f64 b2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 a1 (/.f64 a2 b1)) b2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 a1 (/.f64 a2 (*.f64 b1 b2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 a1 (/.f64 a2 (*.f64 b1 b2))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 a1 (/.f64 a2 (*.f64 b1 b2)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 a1 (/.f64 a2 (*.f64 b1 b2)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 a1 (/.f64 a2 (*.f64 b1 b2))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 a1) (/.f64 a2 (*.f64 b1 b2))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 a1 (/.f64 a2 (*.f64 b1 b2))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 a1 3) (pow.f64 (/.f64 a2 (*.f64 b1 b2)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (/.f64 a2 (*.f64 b1 b2)) 3) (pow.f64 a1 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 a1 (/.f64 a2 (*.f64 b1 b2)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 a1 (/.f64 a2 (*.f64 b1 b2)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 a1 (/.f64 a2 (*.f64 b1 b2)))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (/.f64 a2 (*.f64 b1 b2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 a2 (/.f64 (/.f64 1 b2) b1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 a2 (*.f64 b1 b2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 a2 (*.f64 b1 b2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 a2) 2) (*.f64 (cbrt.f64 a2) (/.f64 (/.f64 1 b2) b1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 a2 (*.f64 b1 b2))) (pow.f64 (cbrt.f64 (/.f64 a2 (*.f64 b1 b2))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 a2 (*.f64 b1 b2))) 2) (cbrt.f64 (/.f64 a2 (*.f64 b1 b2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 a2) (*.f64 (sqrt.f64 a2) (/.f64 (/.f64 1 b2) b1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 a2 (*.f64 b1 b2))) (sqrt.f64 (/.f64 a2 (*.f64 b1 b2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 a2) (/.f64 1 (*.f64 b1 (neg.f64 b2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 1 b2) b1) a2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 a2 b1) (/.f64 1 b2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 a2) 2) 1) (/.f64 (cbrt.f64 a2) (*.f64 b1 b2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 a2) 1) (/.f64 (sqrt.f64 a2) (*.f64 b1 b2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 a2) b1) (/.f64 (sqrt.f64 a2) b2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 b1) (/.f64 a2 b2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 a2) 2) b1) (/.f64 (cbrt.f64 a2) b2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 a2) b2) (/.f64 (sqrt.f64 a2) b1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 b2) (/.f64 a2 b1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 a2) 2) b2) (/.f64 (cbrt.f64 a2) b1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (pow.f64 (cbrt.f64 (*.f64 b1 b2)) 2)) (/.f64 a2 (cbrt.f64 (*.f64 b1 b2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 a2) 2) (pow.f64 (cbrt.f64 (*.f64 b1 b2)) 2)) (cbrt.f64 (/.f64 a2 (*.f64 b1 b2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 a2) (pow.f64 (cbrt.f64 (*.f64 b1 b2)) 2)) (/.f64 (sqrt.f64 a2) (cbrt.f64 (*.f64 b1 b2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (sqrt.f64 (*.f64 b1 b2))) (/.f64 a2 (sqrt.f64 (*.f64 b1 b2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 a2) 2) (sqrt.f64 (*.f64 b1 b2))) (/.f64 (cbrt.f64 a2) (sqrt.f64 (*.f64 b1 b2))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 a2 (*.f64 b1 b2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 a2 (*.f64 b1 b2)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 a2 (*.f64 b1 b2))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 a2 (*.f64 b1 b2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 b1 (/.f64 a2 b2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 a2 (*.f64 b1 (neg.f64 b2))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 a2 (*.f64 b1 b2)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 a2 (*.f64 b1 b2))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 a2 (*.f64 b1 b2)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 a2 3) (pow.f64 (*.f64 b1 b2) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 a2 (*.f64 b1 b2))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 a2 (*.f64 b1 b2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 a2 (*.f64 b1 b2))))))))

simplify26.0ms (0.6%)

Algorithm
egg-herbie
Rules
14×associate-/l*_binary64
associate-*r/_binary64
associate-/r/_binary64
*-commutative_binary64
associate-/r*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
09732
120732
241732
369732
479732
579732
Stop Event
saturated
Counts
148 → 67
Calls
Call 1
Inputs
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 a2 (*.f64 b2 b1))
(/.f64 a2 (*.f64 b2 b1))
(/.f64 a2 (*.f64 b2 b1))
(/.f64 a2 (*.f64 b2 b1))
(/.f64 a2 (*.f64 b2 b1))
(/.f64 a2 (*.f64 b2 b1))
(/.f64 a2 (*.f64 b2 b1))
(/.f64 a2 (*.f64 b2 b1))
(/.f64 a2 (*.f64 b2 b1))
(/.f64 a2 (*.f64 b2 b1))
(/.f64 a2 (*.f64 b2 b1))
(/.f64 a2 (*.f64 b2 b1))
(/.f64 a2 (*.f64 b2 b1))
(/.f64 a2 (*.f64 b2 b1))
(/.f64 a2 (*.f64 b2 b1))
(/.f64 a2 (*.f64 b2 b1))
(/.f64 a2 (*.f64 b2 b1))
(/.f64 a2 (*.f64 b2 b1))
(/.f64 a2 (*.f64 b2 b1))
(/.f64 a2 (*.f64 b2 b1))
(/.f64 a2 (*.f64 b2 b1))
(/.f64 a2 (*.f64 b2 b1))
(/.f64 a2 (*.f64 b2 b1))
(/.f64 a2 (*.f64 b2 b1))
(/.f64 a2 (*.f64 b2 b1))
(/.f64 a2 (*.f64 b2 b1))
(/.f64 a2 (*.f64 b2 b1))
(/.f64 a2 (*.f64 b2 b1))
(/.f64 a2 (*.f64 b2 b1))
(/.f64 a2 (*.f64 b2 b1))
(/.f64 a2 (*.f64 b2 b1))
(/.f64 a2 (*.f64 b2 b1))
(/.f64 a2 (*.f64 b2 b1))
(/.f64 a2 (*.f64 b2 b1))
(/.f64 a2 (*.f64 b2 b1))
(/.f64 a2 (*.f64 b2 b1))
Outputs
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 a2 (*.f64 b2 b1))
(/.f64 a2 (*.f64 b2 b1))
(/.f64 a2 (*.f64 b2 b1))
(/.f64 a2 (*.f64 b2 b1))
(/.f64 a2 (*.f64 b2 b1))
(/.f64 a2 (*.f64 b2 b1))
(/.f64 a2 (*.f64 b2 b1))
(/.f64 a2 (*.f64 b2 b1))
(/.f64 a2 (*.f64 b2 b1))
(/.f64 a2 (*.f64 b2 b1))
(/.f64 a2 (*.f64 b2 b1))
(/.f64 a2 (*.f64 b2 b1))
(/.f64 a2 (*.f64 b2 b1))
(/.f64 a2 (*.f64 b2 b1))
(/.f64 a2 (*.f64 b2 b1))
(/.f64 a2 (*.f64 b2 b1))
(/.f64 a2 (*.f64 b2 b1))
(/.f64 a2 (*.f64 b2 b1))
(/.f64 a2 (*.f64 b2 b1))
(/.f64 a2 (*.f64 b2 b1))
(/.f64 a2 (*.f64 b2 b1))
(/.f64 a2 (*.f64 b2 b1))
(/.f64 a2 (*.f64 b2 b1))
(/.f64 a2 (*.f64 b2 b1))
(/.f64 a2 (*.f64 b2 b1))
(/.f64 a2 (*.f64 b2 b1))
(/.f64 a2 (*.f64 b2 b1))
(/.f64 a2 (*.f64 b2 b1))
(/.f64 a2 (*.f64 b2 b1))
(/.f64 a2 (*.f64 b2 b1))
(/.f64 a2 (*.f64 b2 b1))
(/.f64 a2 (*.f64 b2 b1))
(/.f64 a2 (*.f64 b2 b1))
(/.f64 a2 (*.f64 b2 b1))
(/.f64 a2 (*.f64 b2 b1))
(/.f64 a2 (*.f64 b2 b1))

localize8.0ms (0.2%)

Local error

Found 1 expressions with local error:

NewErrorProgram
11.1b
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
Compiler

Compiled 21 to 7 computations (66.7% saved)

series3.0ms (0.1%)

Counts
1 → 48
Calls

12 calls:

TimeVariablePointExpression
0.0ms
a1
@0
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
0.0ms
b2
@inf
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
0.0ms
b1
@inf
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
0.0ms
a1
@-inf
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
0.0ms
a1
@inf
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))

rewrite71.0ms (1.7%)

Algorithm
batch-egg-rewrite
Rules
556×log-prod_binary64
434×exp-prod_binary64
316×pow-prod-down_binary64
251×div-exp_binary64
237×pow2_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0810
116910
2250310
Stop Event
node limit
Counts
1 → 73
Calls
Call 1
Inputs
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (/.f64 a1 b1) (/.f64 a2 b2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (/.f64 a2 b2)) (/.f64 a1 b1))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (/.f64 a2 b2)) (/.f64 a1 b1)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (/.f64 a2 b2)) (/.f64 a1 b1)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (/.f64 a2 b2)) (/.f64 a1 b1)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (/.f64 a1 b1) (/.f64 a2 b2)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 a1 (/.f64 1 (/.f64 b1 (/.f64 a2 b2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 a1 (*.f64 a2 (/.f64 1 (*.f64 b1 b2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 a2 (*.f64 a1 (/.f64 1 (*.f64 b1 b2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 a1 a2) (/.f64 1 (*.f64 b1 b2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 a1 b1) (/.f64 a2 b2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (/.f64 a1 b1) (/.f64 a2 b2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (/.f64 a1 b1) (/.f64 a2 b2))) (cbrt.f64 (pow.f64 (/.f64 b1 (/.f64 (*.f64 a1 a2) b2)) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (/.f64 b1 (/.f64 (*.f64 a1 a2) b2)) -2)) (cbrt.f64 (*.f64 (/.f64 a1 b1) (/.f64 a2 b2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 a1 a2)) 2) (*.f64 (cbrt.f64 (*.f64 a1 a2)) (/.f64 1 (*.f64 b1 b2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (/.f64 a1 b1) (/.f64 a2 b2))) (sqrt.f64 (*.f64 (/.f64 a1 b1) (/.f64 a2 b2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 a1 a2)) (*.f64 (sqrt.f64 (*.f64 a1 a2)) (/.f64 1 (*.f64 b1 b2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 a1 (neg.f64 a2)) (/.f64 1 (*.f64 b1 (neg.f64 b2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 a1 b1) (/.f64 a2 b2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 a2 b2) (/.f64 a1 b1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (*.f64 b1 b2)) (*.f64 a1 a2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 a1 a2) b1) (/.f64 1 b2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 a1 1) (/.f64 a2 (*.f64 b1 b2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 a2 b1) (/.f64 a1 b2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 a2 1) (/.f64 a1 (*.f64 b1 b2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (*.f64 a1 a2)) 2) 1) (/.f64 (cbrt.f64 (*.f64 a1 a2)) (*.f64 b1 b2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (*.f64 a1 a2)) 1) (/.f64 (sqrt.f64 (*.f64 a1 a2)) (*.f64 b1 b2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (*.f64 a1 a2)) b1) (/.f64 (sqrt.f64 (*.f64 a1 a2)) b2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 a1 b2) (/.f64 a2 b1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 b1) (/.f64 (*.f64 a1 a2) b2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (*.f64 a1 a2)) 2) b1) (/.f64 (cbrt.f64 (*.f64 a1 a2)) b2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (*.f64 a1 a2)) b2) (/.f64 (sqrt.f64 (*.f64 a1 a2)) b1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 b2) (/.f64 (*.f64 a1 a2) b1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (*.f64 a1 a2)) 2) b2) (/.f64 (cbrt.f64 (*.f64 a1 a2)) b1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 a1 (*.f64 b1 b2)) a2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 a1 (pow.f64 (cbrt.f64 (*.f64 b1 b2)) 2)) (/.f64 a2 (cbrt.f64 (*.f64 b1 b2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 a2 (pow.f64 (cbrt.f64 (*.f64 b1 b2)) 2)) (/.f64 a1 (cbrt.f64 (*.f64 b1 b2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 b1 b2)) -2) (/.f64 (*.f64 a1 a2) (cbrt.f64 (*.f64 b1 b2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (*.f64 a1 a2)) 2) (pow.f64 (cbrt.f64 (*.f64 b1 b2)) 2)) (cbrt.f64 (*.f64 (/.f64 a1 b1) (/.f64 a2 b2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (*.f64 a1 a2)) (pow.f64 (cbrt.f64 (*.f64 b1 b2)) 2)) (/.f64 (sqrt.f64 (*.f64 a1 a2)) (cbrt.f64 (*.f64 b1 b2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 a1 (sqrt.f64 (*.f64 b1 b2))) (/.f64 a2 (sqrt.f64 (*.f64 b1 b2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 a2 (sqrt.f64 (*.f64 b1 b2))) (/.f64 a1 (sqrt.f64 (*.f64 b1 b2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 b1 b2) -1/2) (/.f64 (*.f64 a1 a2) (sqrt.f64 (*.f64 b1 b2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (*.f64 a1 a2)) 2) (sqrt.f64 (*.f64 b1 b2))) (/.f64 (cbrt.f64 (*.f64 a1 a2)) (sqrt.f64 (*.f64 b1 b2))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 a1 b1) (/.f64 a2 b2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 b1 (/.f64 (*.f64 a1 a2) b2)) -2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 b1 (/.f64 (*.f64 a1 a2) b2)) -3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (/.f64 a1 b1) (/.f64 a2 b2))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (/.f64 a1 b1) (/.f64 a2 b2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 b1 (/.f64 (*.f64 a1 a2) b2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (*.f64 (/.f64 a1 b1) (/.f64 a2 b2))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 (*.f64 a1 a2) 3) (pow.f64 (*.f64 b1 b2) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (/.f64 b1 (/.f64 (*.f64 a1 a2) b2)) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 (/.f64 a1 b1) (/.f64 a2 b2)))) 2)) (cbrt.f64 (log.f64 (*.f64 (/.f64 a1 b1) (/.f64 a2 b2)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 (/.f64 a1 b1) (/.f64 a2 b2))))) (sqrt.f64 (log.f64 (*.f64 (/.f64 a1 b1) (/.f64 a2 b2)))))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (*.f64 a1 a2) (*.f64 b1 (neg.f64 b2))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 b1 (/.f64 (*.f64 a1 a2) b2)) -2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (/.f64 a2 b2)) (/.f64 a1 b1)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (/.f64 a1 b1) (/.f64 a2 b2)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 b1 (/.f64 (*.f64 a1 a2) b2)) -3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (*.f64 a1 a2) 3) (pow.f64 (*.f64 b1 b2) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (/.f64 a1 b1) (/.f64 a2 b2))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (/.f64 a1 b1) (/.f64 a2 b2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (/.f64 a1 b1) (/.f64 a2 b2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (/.f64 a1 b1) (/.f64 a2 b2))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (/.f64 b1 (/.f64 (*.f64 a1 a2) b2)) -3)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (/.f64 a1 b1) (/.f64 a2 b2)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (/.f64 a1 b1) (/.f64 a2 b2)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 b1 (/.f64 (*.f64 a1 a2) b2))) -1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (/.f64 a1 b1) (/.f64 a2 b2))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (*.f64 (log.f64 a1) 1) (log.f64 (/.f64 b1 (/.f64 a2 b2)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (*.f64 (log.f64 (*.f64 a1 a2)) 1) (log.f64 (*.f64 b1 b2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (log.f64 (*.f64 a1 a2)) (*.f64 (log.f64 (*.f64 b1 b2)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (*.f64 (log.f64 (*.f64 a1 a2)) 1) (*.f64 (log.f64 (*.f64 b1 b2)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (log.f64 (/.f64 (*.f64 a1 a2) b1)) (*.f64 (log.f64 b2) 1)))))))

simplify20.0ms (0.5%)

Algorithm
egg-herbie
Rules
14×associate-/l*_binary64
associate-*r/_binary64
associate-/r/_binary64
*-commutative_binary64
associate-/r*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
08480
117480
238480
367480
479480
579480
Stop Event
saturated
Counts
121 → 75
Calls
Call 1
Inputs
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
Outputs
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))

eval24.0ms (0.6%)

Compiler

Compiled 1640 to 528 computations (67.8% saved)

prune33.0ms (0.8%)

Pruning

7 alts after pruning (6 fresh and 1 done)

PrunedKeptTotal
New1366142
Fresh000
Picked101
Done011
Total1377144
Error
0b
Counts
144 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
31.7b
(pow.f64 (sqrt.f64 (*.f64 (/.f64 a1 b1) (/.f64 a2 b2))) 2)
11.4b
(*.f64 a1 (/.f64 a2 (*.f64 b1 b2)))
10.6b
(/.f64 (/.f64 (*.f64 a1 a2) b2) b1)
11.5b
(/.f64 (/.f64 (*.f64 a1 a2) b1) b2)
11.8b
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
11.3b
(/.f64 a1 (/.f64 b1 (/.f64 a2 b2)))
11.7b
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
Compiler

Compiled 149 to 97 computations (34.9% saved)

localize7.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
4.4b
(/.f64 (*.f64 a1 a2) b2)
6.5b
(/.f64 (/.f64 (*.f64 a1 a2) b2) b1)
Compiler

Compiled 23 to 7 computations (69.6% saved)

series10.0ms (0.2%)

Counts
2 → 48
Calls

21 calls:

TimeVariablePointExpression
2.0ms
a1
@inf
(/.f64 (*.f64 a1 a2) b2)
1.0ms
a1
@inf
(/.f64 (/.f64 (*.f64 a1 a2) b2) b1)
0.0ms
a2
@inf
(/.f64 (*.f64 a1 a2) b2)
0.0ms
a2
@0
(/.f64 (*.f64 a1 a2) b2)
0.0ms
b2
@-inf
(/.f64 (*.f64 a1 a2) b2)

rewrite69.0ms (1.7%)

Algorithm
batch-egg-rewrite
Rules
531×log-prod_binary64
407×exp-prod_binary64
332×pow-prod-down_binary64
242×pow2_binary64
198×div-exp_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0817
117217
2254317
Stop Event
node limit
Counts
2 → 122
Calls
Call 1
Inputs
(/.f64 (/.f64 (*.f64 a1 a2) b2) b1)
(/.f64 (*.f64 a1 a2) b2)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 a1 (*.f64 (/.f64 b2 a2) b1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (/.f64 a1 (*.f64 (/.f64 b2 a2) b1)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (/.f64 a1 (*.f64 (/.f64 b2 a2) b1))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (/.f64 a1 (*.f64 (/.f64 b2 a2) b1))))) (log.f64 (sqrt.f64 (exp.f64 (/.f64 a1 (*.f64 (/.f64 b2 a2) b1))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 a1 (*.f64 (/.f64 b2 a2) b1)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 a1 a2) (/.f64 1 (*.f64 b2 b1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 a1 b2) a2) (/.f64 1 b1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 a1 (*.f64 (/.f64 b2 a2) b1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 a1 (*.f64 (/.f64 b2 a2) b1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 a1 (*.f64 (/.f64 b2 a2) b1))) (cbrt.f64 (pow.f64 (*.f64 b1 (/.f64 b2 (*.f64 a1 a2))) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (*.f64 b1 (/.f64 b2 (*.f64 a1 a2))) -2)) (cbrt.f64 (/.f64 a1 (*.f64 (/.f64 b2 a2) b1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 (/.f64 a1 b2) a2)) 2) (*.f64 (cbrt.f64 (*.f64 (/.f64 a1 b2) a2)) (/.f64 1 b1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 a1 (*.f64 (/.f64 b2 a2) b1))) (sqrt.f64 (/.f64 a1 (*.f64 (/.f64 b2 a2) b1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (/.f64 a1 b2) a2)) (*.f64 (sqrt.f64 (*.f64 (/.f64 a1 b2) a2)) (/.f64 1 b1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 a1 (neg.f64 a2)) b2) (/.f64 1 (neg.f64 b1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 b1) (*.f64 (/.f64 a1 b2) a2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 a1 b1) (/.f64 a2 b2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 a2 b1) (/.f64 a1 b2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (*.f64 a1 a2)) 2) b1) (/.f64 (cbrt.f64 (*.f64 a1 a2)) b2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (*.f64 a1 a2)) b1) (/.f64 (sqrt.f64 (*.f64 a1 a2)) b2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 a1 a2) 1) (/.f64 (/.f64 1 b2) b1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (*.f64 (/.f64 a1 b2) a2)) 2) 1) (/.f64 (cbrt.f64 (*.f64 (/.f64 a1 b2) a2)) b1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (*.f64 (/.f64 a1 b2) a2)) 1) (/.f64 (sqrt.f64 (*.f64 (/.f64 a1 b2) a2)) b1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 a1 a2) (pow.f64 (cbrt.f64 b1) 2)) (/.f64 (/.f64 1 b2) (cbrt.f64 b1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 b1) -2) (/.f64 (*.f64 (/.f64 a1 b2) a2) (cbrt.f64 b1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (*.f64 (/.f64 a1 b2) a2)) 2) (pow.f64 (cbrt.f64 b1) 2)) (cbrt.f64 (/.f64 a1 (*.f64 (/.f64 b2 a2) b1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (*.f64 (/.f64 a1 b2) a2)) (pow.f64 (cbrt.f64 b1) 2)) (/.f64 (sqrt.f64 (*.f64 (/.f64 a1 b2) a2)) (cbrt.f64 b1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 a1 a2) (sqrt.f64 b1)) (/.f64 (/.f64 1 b2) (sqrt.f64 b1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 b1 -1/2) (/.f64 (*.f64 (/.f64 a1 b2) a2) (sqrt.f64 b1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (*.f64 (/.f64 a1 b2) a2)) 2) (sqrt.f64 b1)) (/.f64 (cbrt.f64 (*.f64 (/.f64 a1 b2) a2)) (sqrt.f64 b1)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 a1 (*.f64 (/.f64 b2 a2) b1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 b1 (/.f64 b2 (*.f64 a1 a2))) -2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 a1 (*.f64 (/.f64 b2 a2) b1)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 a1 (*.f64 (/.f64 b2 a2) b1))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 a1 (*.f64 (/.f64 b2 a2) b1))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 b1 (/.f64 b2 (*.f64 a1 a2))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (/.f64 a1 (*.f64 (/.f64 b2 a2) b1))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 (/.f64 b2 (*.f64 a1 a2)) -3) (pow.f64 b1 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 b2 (*.f64 a1 a2)) b1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (*.f64 b2 b1) (*.f64 a1 a2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (*.f64 b1 (/.f64 b2 (*.f64 a1 a2))) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (/.f64 a1 (*.f64 (/.f64 b2 a2) b1)))) 2)) (cbrt.f64 (log.f64 (/.f64 a1 (*.f64 (/.f64 b2 a2) b1)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (/.f64 a1 (*.f64 (/.f64 b2 a2) b1))))) (sqrt.f64 (log.f64 (/.f64 a1 (*.f64 (/.f64 b2 a2) b1)))))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (*.f64 (/.f64 a1 b2) a2) (neg.f64 b1)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 b1 (/.f64 b2 (*.f64 a1 a2))) -2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 a1 (*.f64 (/.f64 b2 a2) b1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 a1 (*.f64 (/.f64 b2 a2) b1)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 a1 (*.f64 (/.f64 b2 a2) b1)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (/.f64 b2 (*.f64 a1 a2)) -3) (pow.f64 b1 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 a1 (*.f64 (/.f64 b2 a2) b1))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 a1 (*.f64 (/.f64 b2 a2) b1))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 a1 (*.f64 (/.f64 b2 a2) b1))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 a1 (*.f64 (/.f64 b2 a2) b1))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (/.f64 a1 (*.f64 (/.f64 b2 a2) b1)))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (/.f64 a1 (*.f64 (/.f64 b2 a2) b1)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (/.f64 a1 (*.f64 (/.f64 b2 a2) b1)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 b1 (/.f64 b2 (*.f64 a1 a2)))) -1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (/.f64 a1 (*.f64 (/.f64 b2 a2) b1))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (*.f64 (log.f64 (*.f64 a1 a2)) 1) (log.f64 (*.f64 b2 b1))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (*.f64 (log.f64 (*.f64 (/.f64 a1 b2) a2)) 1) (log.f64 b1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (log.f64 (*.f64 (/.f64 a1 b2) a2)) (*.f64 (log.f64 b1) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (*.f64 (log.f64 (*.f64 (/.f64 a1 b2) a2)) 1) (*.f64 (log.f64 b1) 1)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (/.f64 a1 b2) a2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (/.f64 a1 b2)) a2)) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (/.f64 a1 b2)) a2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (/.f64 a1 b2)) a2))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (/.f64 a1 b2)) a2))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (/.f64 a1 b2) a2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 a1 (/.f64 1 (/.f64 b2 a2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 a1 (*.f64 a2 (/.f64 1 b2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 a2 (*.f64 a1 (/.f64 1 b2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 a1 a2) (/.f64 1 b2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 a1 b2) a2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (/.f64 a1 b2) a2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (/.f64 a1 b2) a2)) (pow.f64 (cbrt.f64 (*.f64 (/.f64 a1 b2) a2)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 (/.f64 a1 b2) a2)) 2) (cbrt.f64 (*.f64 (/.f64 a1 b2) a2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 a1 a2)) 2) (*.f64 (cbrt.f64 (*.f64 a1 a2)) (/.f64 1 b2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (/.f64 a1 b2) a2)) (sqrt.f64 (*.f64 (/.f64 a1 b2) a2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 a1 a2)) (*.f64 (sqrt.f64 (*.f64 a1 a2)) (/.f64 1 b2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 a1 (neg.f64 a2)) (/.f64 1 (neg.f64 b2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 b2) (*.f64 a1 a2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 a1 1) (/.f64 a2 b2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 a2 1) (/.f64 a1 b2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 a1 b2) a2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (*.f64 a1 a2)) 2) 1) (/.f64 (cbrt.f64 (*.f64 a1 a2)) b2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (*.f64 a1 a2)) 1) (/.f64 (sqrt.f64 (*.f64 a1 a2)) b2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 a1 (pow.f64 (cbrt.f64 b2) 2)) (/.f64 a2 (cbrt.f64 b2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 a2 (pow.f64 (cbrt.f64 b2) 2)) (/.f64 a1 (cbrt.f64 b2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 b2) -2) (/.f64 (*.f64 a1 a2) (cbrt.f64 b2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (*.f64 a1 a2)) 2) (pow.f64 (cbrt.f64 b2) 2)) (cbrt.f64 (*.f64 (/.f64 a1 b2) a2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (*.f64 a1 a2)) (pow.f64 (cbrt.f64 b2) 2)) (/.f64 (sqrt.f64 (*.f64 a1 a2)) (cbrt.f64 b2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 a1 (sqrt.f64 b2)) (/.f64 a2 (sqrt.f64 b2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 a2 (sqrt.f64 b2)) (/.f64 a1 (sqrt.f64 b2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 b2 -1/2) (/.f64 (*.f64 a1 a2) (sqrt.f64 b2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (*.f64 a1 a2)) 2) (sqrt.f64 b2)) (/.f64 (cbrt.f64 (*.f64 a1 a2)) (sqrt.f64 b2)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 a1 b2) a2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 a1 b2) a2) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 b2 (*.f64 a1 a2)) -3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (/.f64 a1 b2) a2)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (/.f64 a1 b2) a2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 b2 (*.f64 a1 a2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (*.f64 (/.f64 a1 b2) a2)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 (*.f64 a1 a2) 3) (pow.f64 b2 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (/.f64 b2 (*.f64 a1 a2)) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 (/.f64 a1 b2) a2))) 2)) (cbrt.f64 (log.f64 (*.f64 (/.f64 a1 b2) a2))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 (/.f64 a1 b2) a2)))) (sqrt.f64 (log.f64 (*.f64 (/.f64 a1 b2) a2))))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (*.f64 a1 a2) (neg.f64 b2)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (/.f64 a1 b2) a2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (/.f64 a1 b2)) a2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (/.f64 a1 b2) a2))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 b2 (*.f64 a1 a2)) -3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (*.f64 a1 a2) 3) (pow.f64 b2 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (/.f64 a1 b2) a2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (/.f64 a1 b2) a2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (/.f64 a1 b2) a2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (/.f64 a1 b2) a2)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (/.f64 b2 (*.f64 a1 a2)) -3)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (/.f64 a1 b2) a2))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (/.f64 a1 b2) a2))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 b2 (*.f64 a1 a2))) -1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (/.f64 a1 b2) a2)) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (*.f64 (log.f64 a1) 1) (log.f64 (/.f64 b2 a2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (*.f64 (log.f64 (*.f64 a1 a2)) 1) (log.f64 b2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (log.f64 (*.f64 a1 a2)) (*.f64 (log.f64 b2) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (*.f64 (log.f64 (*.f64 a1 a2)) 1) (*.f64 (log.f64 b2) 1)))))))

simplify22.0ms (0.5%)

Algorithm
egg-herbie
Rules
14×associate-/l*_binary64
associate-*r/_binary64
associate-/r/_binary64
*-commutative_binary64
associate-/r*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
08480
117480
238480
367480
479480
579480
Stop Event
saturated
Counts
170 → 124
Calls
Call 1
Inputs
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
Outputs
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))

localize8.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
3.9b
(/.f64 a1 (*.f64 b1 b2))
8.3b
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
Compiler

Compiled 23 to 7 computations (69.6% saved)

series8.0ms (0.2%)

Counts
2 → 84
Calls

21 calls:

TimeVariablePointExpression
1.0ms
b1
@inf
(/.f64 a1 (*.f64 b1 b2))
1.0ms
a1
@inf
(/.f64 a1 (*.f64 b1 b2))
1.0ms
b2
@inf
(/.f64 a1 (*.f64 b1 b2))
0.0ms
b2
@0
(/.f64 a1 (*.f64 b1 b2))
0.0ms
b1
@0
(/.f64 a1 (*.f64 b1 b2))

rewrite80.0ms (2%)

Algorithm
batch-egg-rewrite
Rules
939×pow1_binary64
867×add-log-exp_binary64
867×log1p-expm1-u_binary64
867×expm1-log1p-u_binary64
847×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0817
116617
2228917
Stop Event
node limit
Counts
2 → 65
Calls
Call 1
Inputs
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
(/.f64 a1 (*.f64 b1 b2))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (/.f64 (*.f64 a2 (/.f64 a1 b1)) b2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 a1 (/.f64 (*.f64 b1 b2) a2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 a2 (/.f64 b1 (/.f64 a1 b2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (*.f64 b1 b2) (*.f64 a1 a2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 a1 a2) (*.f64 b1 b2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 a1 a2)) (*.f64 b1 (neg.f64 b2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 a1 a2) b1) b2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 a1 a2) b2) b1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 a1 a2) 1) (*.f64 b1 b2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 a1 a2) (pow.f64 (cbrt.f64 (*.f64 b1 b2)) 2)) (cbrt.f64 (*.f64 b1 b2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 a1 a2) (sqrt.f64 (*.f64 b1 b2))) (sqrt.f64 (*.f64 b1 b2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 a1) a2) (*.f64 b1 (neg.f64 b2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (/.f64 a1 b1) a2) b2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 a2 (neg.f64 a1)) (*.f64 b1 (neg.f64 b2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 a2 (/.f64 a1 b1)) b2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (*.f64 a2 (/.f64 a1 b1)) b2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (*.f64 a2 (/.f64 a1 b1)) b2) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 (*.f64 a2 (/.f64 a1 b1)) b2)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 (*.f64 a2 (/.f64 a1 b1)) b2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 (*.f64 a2 (/.f64 a1 b1)) b2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (/.f64 a1 (*.f64 b1 b2))) a2))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 (*.f64 a2 (/.f64 a1 b1)) b2) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (/.f64 a1 (*.f64 b1 b2)) 3) (pow.f64 a2 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 a2 3) (pow.f64 (/.f64 a1 (*.f64 b1 b2)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 (*.f64 a2 (/.f64 a1 b1)) b2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 (*.f64 a2 (/.f64 a1 b1)) b2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 (*.f64 a2 (/.f64 a1 b1)) b2)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (/.f64 a1 (*.f64 b1 b2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 a1 (/.f64 (/.f64 1 b1) b2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 a1 (*.f64 b1 b2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 a1 (*.f64 b1 b2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 a1) 2) (*.f64 (cbrt.f64 a1) (/.f64 (/.f64 1 b1) b2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 a1 (*.f64 b1 b2))) (pow.f64 (cbrt.f64 (/.f64 a1 (*.f64 b1 b2))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 a1 (*.f64 b1 b2))) 2) (cbrt.f64 (/.f64 a1 (*.f64 b1 b2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 a1) (*.f64 (sqrt.f64 a1) (/.f64 (/.f64 1 b1) b2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 a1 (*.f64 b1 b2))) (sqrt.f64 (/.f64 a1 (*.f64 b1 b2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 a1) (/.f64 1 (*.f64 b1 (neg.f64 b2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 1 b1) b2) a1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 a1 b1) (/.f64 1 b2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 a1) 2) 1) (/.f64 (cbrt.f64 a1) (*.f64 b1 b2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 a1) 1) (/.f64 (sqrt.f64 a1) (*.f64 b1 b2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 a1) b1) (/.f64 (sqrt.f64 a1) b2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 b1) (/.f64 a1 b2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 a1) 2) b1) (/.f64 (cbrt.f64 a1) b2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 a1) b2) (/.f64 (sqrt.f64 a1) b1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 b2) (/.f64 a1 b1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 a1) 2) b2) (/.f64 (cbrt.f64 a1) b1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (pow.f64 (cbrt.f64 (*.f64 b1 b2)) 2)) (/.f64 a1 (cbrt.f64 (*.f64 b1 b2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 a1) 2) (pow.f64 (cbrt.f64 (*.f64 b1 b2)) 2)) (cbrt.f64 (/.f64 a1 (*.f64 b1 b2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 a1) (pow.f64 (cbrt.f64 (*.f64 b1 b2)) 2)) (/.f64 (sqrt.f64 a1) (cbrt.f64 (*.f64 b1 b2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (sqrt.f64 (*.f64 b1 b2))) (/.f64 a1 (sqrt.f64 (*.f64 b1 b2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 a1) 2) (sqrt.f64 (*.f64 b1 b2))) (/.f64 (cbrt.f64 a1) (sqrt.f64 (*.f64 b1 b2))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 a1 (*.f64 b1 b2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 a1 (*.f64 b1 b2)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 a1 (*.f64 b1 b2))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 a1 (*.f64 b1 b2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 b1 (/.f64 a1 b2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 a1 (*.f64 b1 (neg.f64 b2))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 a1 (*.f64 b1 b2)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 a1 (*.f64 b1 b2))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 a1 (*.f64 b1 b2)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 a1 3) (pow.f64 (*.f64 b1 b2) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 a1 (*.f64 b1 b2))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 a1 (*.f64 b1 b2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 a1 (*.f64 b1 b2))))))))

simplify27.0ms (0.7%)

Algorithm
egg-herbie
Rules
14×associate-/l*_binary64
associate-/r/_binary64
associate-*r/_binary64
*-commutative_binary64
associate-/r*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
09732
119732
240732
367732
479732
579732
Stop Event
saturated
Counts
149 → 68
Calls
Call 1
Inputs
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 a1 (*.f64 b2 b1))
(/.f64 a1 (*.f64 b2 b1))
(/.f64 a1 (*.f64 b2 b1))
(/.f64 a1 (*.f64 b2 b1))
(/.f64 a1 (*.f64 b2 b1))
(/.f64 a1 (*.f64 b2 b1))
(/.f64 a1 (*.f64 b2 b1))
(/.f64 a1 (*.f64 b2 b1))
(/.f64 a1 (*.f64 b2 b1))
(/.f64 a1 (*.f64 b2 b1))
(/.f64 a1 (*.f64 b2 b1))
(/.f64 a1 (*.f64 b2 b1))
(/.f64 a1 (*.f64 b2 b1))
(/.f64 a1 (*.f64 b2 b1))
(/.f64 a1 (*.f64 b2 b1))
(/.f64 a1 (*.f64 b2 b1))
(/.f64 a1 (*.f64 b2 b1))
(/.f64 a1 (*.f64 b2 b1))
(/.f64 a1 (*.f64 b2 b1))
(/.f64 a1 (*.f64 b2 b1))
(/.f64 a1 (*.f64 b2 b1))
(/.f64 a1 (*.f64 b2 b1))
(/.f64 a1 (*.f64 b2 b1))
(/.f64 a1 (*.f64 b2 b1))
(/.f64 a1 (*.f64 b2 b1))
(/.f64 a1 (*.f64 b2 b1))
(/.f64 a1 (*.f64 b2 b1))
(/.f64 a1 (*.f64 b2 b1))
(/.f64 a1 (*.f64 b2 b1))
(/.f64 a1 (*.f64 b2 b1))
(/.f64 a1 (*.f64 b2 b1))
(/.f64 a1 (*.f64 b2 b1))
(/.f64 a1 (*.f64 b2 b1))
(/.f64 a1 (*.f64 b2 b1))
(/.f64 a1 (*.f64 b2 b1))
(/.f64 a1 (*.f64 b2 b1))
Outputs
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a1 (*.f64 b2 b1)) a2)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a1 (*.f64 b2 b1)) a2)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a1 (*.f64 b2 b1)) a2)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a1 (*.f64 b2 b1)) a2)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a1 (*.f64 b2 b1)) a2)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a1 (*.f64 b2 b1)) a2)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a1 (*.f64 b2 b1)) a2)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a1 (*.f64 b2 b1)) a2)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a1 (*.f64 b2 b1)) a2)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a1 (*.f64 b2 b1)) a2)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a1 (*.f64 b2 b1)) a2)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a1 (*.f64 b2 b1)) a2)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a1 (*.f64 b2 b1)) a2)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a1 (*.f64 b2 b1)) a2)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a1 (*.f64 b2 b1)) a2)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a1 (*.f64 b2 b1)) a2)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a1 (*.f64 b2 b1)) a2)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a1 (*.f64 b2 b1)) a2)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a1 (*.f64 b2 b1)) a2)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a1 (*.f64 b2 b1)) a2)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a1 (*.f64 b2 b1)) a2)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a1 (*.f64 b2 b1)) a2)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a1 (*.f64 b2 b1)) a2)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a1 (*.f64 b2 b1)) a2)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a1 (*.f64 b2 b1)) a2)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a1 (*.f64 b2 b1)) a2)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a1 (*.f64 b2 b1)) a2)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a1 (*.f64 b2 b1)) a2)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a1 (*.f64 b2 b1)) a2)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a1 (*.f64 b2 b1)) a2)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a1 (*.f64 b2 b1)) a2)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a1 (*.f64 b2 b1)) a2)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a1 (*.f64 b2 b1)) a2)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a1 (*.f64 b2 b1)) a2)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a1 (*.f64 b2 b1)) a2)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a1 (*.f64 b2 b1)) a2)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a1 (*.f64 b2 b1)) a2)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a1 (*.f64 b2 b1)) a2)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a1 (*.f64 b2 b1)) a2)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a1 (*.f64 b2 b1)) a2)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a1 (*.f64 b2 b1)) a2)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a1 (*.f64 b2 b1)) a2)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a1 (*.f64 b2 b1)) a2)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a1 (*.f64 b2 b1)) a2)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a1 (*.f64 b2 b1)) a2)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a1 (*.f64 b2 b1)) a2)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a1 (*.f64 b2 b1)) a2)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a1 (*.f64 b2 b1)) a2)
(/.f64 a1 (*.f64 b2 b1))
(/.f64 a1 (*.f64 b2 b1))
(/.f64 a1 (*.f64 b2 b1))
(/.f64 a1 (*.f64 b2 b1))
(/.f64 a1 (*.f64 b2 b1))
(/.f64 a1 (*.f64 b2 b1))
(/.f64 a1 (*.f64 b2 b1))
(/.f64 a1 (*.f64 b2 b1))
(/.f64 a1 (*.f64 b2 b1))
(/.f64 a1 (*.f64 b2 b1))
(/.f64 a1 (*.f64 b2 b1))
(/.f64 a1 (*.f64 b2 b1))
(/.f64 a1 (*.f64 b2 b1))
(/.f64 a1 (*.f64 b2 b1))
(/.f64 a1 (*.f64 b2 b1))
(/.f64 a1 (*.f64 b2 b1))
(/.f64 a1 (*.f64 b2 b1))
(/.f64 a1 (*.f64 b2 b1))
(/.f64 a1 (*.f64 b2 b1))
(/.f64 a1 (*.f64 b2 b1))
(/.f64 a1 (*.f64 b2 b1))
(/.f64 a1 (*.f64 b2 b1))
(/.f64 a1 (*.f64 b2 b1))
(/.f64 a1 (*.f64 b2 b1))
(/.f64 a1 (*.f64 b2 b1))
(/.f64 a1 (*.f64 b2 b1))
(/.f64 a1 (*.f64 b2 b1))
(/.f64 a1 (*.f64 b2 b1))
(/.f64 a1 (*.f64 b2 b1))
(/.f64 a1 (*.f64 b2 b1))
(/.f64 a1 (*.f64 b2 b1))
(/.f64 a1 (*.f64 b2 b1))
(/.f64 a1 (*.f64 b2 b1))
(/.f64 a1 (*.f64 b2 b1))
(/.f64 a1 (*.f64 b2 b1))
(/.f64 a1 (*.f64 b2 b1))

localize7.0ms (0.2%)

Local error

Found 1 expressions with local error:

NewErrorProgram
11.4b
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
Compiler

Compiled 21 to 7 computations (66.7% saved)

series5.0ms (0.1%)

Counts
1 → 48
Calls

12 calls:

TimeVariablePointExpression
1.0ms
a1
@inf
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
0.0ms
a2
@0
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
0.0ms
a2
@inf
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
0.0ms
a1
@-inf
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
0.0ms
a2
@-inf
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))

rewrite69.0ms (1.7%)

Algorithm
batch-egg-rewrite
Rules
521×log-prod_binary64
455×prod-exp_binary64
388×exp-prod_binary64
376×pow-prod-down_binary64
250×pow2_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0810
117510
2258110
Stop Event
node limit
Counts
1 → 78
Calls
Call 1
Inputs
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (/.f64 a2 b1) (/.f64 a1 b2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (/.f64 a1 b2)) (/.f64 a2 b1))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (/.f64 a1 b2)) (/.f64 a2 b1)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (/.f64 a1 b2)) (/.f64 a2 b1)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (/.f64 a1 b2)) (/.f64 a2 b1)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (/.f64 a2 b1) (/.f64 a1 b2)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 a2 (*.f64 b1 (/.f64 b2 a1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 a2 (*.f64 (/.f64 b2 a1) b1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 a2 (/.f64 (*.f64 b1 b2) a1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 a2 (/.f64 b1 (/.f64 a1 b2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 a2 b1) (/.f64 b2 a1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 a1 (*.f64 (/.f64 b1 a2) b2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 a1 (*.f64 b2 (/.f64 b1 a2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 a1 b2) (/.f64 b1 a2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (*.f64 (/.f64 b1 a2) (/.f64 b2 a1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (*.f64 (/.f64 b2 a1) (/.f64 b1 a2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (*.f64 b1 b2) (*.f64 a2 a1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 b1 (*.f64 a2 (/.f64 a1 b2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 b2 (*.f64 (/.f64 a2 b1) a1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 a1) (*.f64 (/.f64 b1 a2) (neg.f64 b2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 a2) (*.f64 (/.f64 b2 a1) (neg.f64 b1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 a2 a1) (*.f64 b1 b2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 a2 (/.f64 a1 b2)) b1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (/.f64 a2 b1) a1) b2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 a2 a1)) (neg.f64 (*.f64 b1 b2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 a2 (/.f64 a1 b2))) (neg.f64 b1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 (/.f64 a2 b1) a1)) (neg.f64 b2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 a2) a1) (*.f64 (neg.f64 b1) b2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 a2) 1) (*.f64 (neg.f64 b1) (/.f64 b2 a1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 a2 (neg.f64 a1)) (*.f64 b1 (neg.f64 b2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 a2) (neg.f64 a1)) (*.f64 (neg.f64 b1) (neg.f64 b2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 a1) a2) (*.f64 (neg.f64 b2) b1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 a1) 1) (*.f64 (neg.f64 b2) (/.f64 b1 a2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 a1 (neg.f64 a2)) (*.f64 b2 (neg.f64 b1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 a1) (neg.f64 a2)) (*.f64 (neg.f64 b2) (neg.f64 b1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 a2 (/.f64 a1 b2)) 1) b1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 a2 (/.f64 a1 b2)) (pow.f64 (cbrt.f64 b1) 2)) (cbrt.f64 b1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 a2 (/.f64 a1 b2)) (sqrt.f64 b1)) (sqrt.f64 b1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 (/.f64 a2 b1) a1) 1) b2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 (/.f64 a2 b1) a1) (pow.f64 (cbrt.f64 b2) 2)) (cbrt.f64 b2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 (/.f64 a2 b1) a1) (sqrt.f64 b2)) (sqrt.f64 b2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 a2) (/.f64 a1 b2)) (neg.f64 b1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 a1) (/.f64 a2 b1)) (neg.f64 b2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (/.f64 a2 b1) (neg.f64 a1)) (neg.f64 b2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (/.f64 a1 b2) (neg.f64 a2)) (neg.f64 b1))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 a2 b1) (/.f64 a1 b2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 a2 b1) (/.f64 a1 b2)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 a2 b1) (/.f64 a1 b2)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (/.f64 a2 b1) (/.f64 a1 b2))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (/.f64 a2 b1) (/.f64 a1 b2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (*.f64 (/.f64 a2 b1) (/.f64 a1 b2))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 b1 a2) (/.f64 b2 a1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 b2 a1) (/.f64 b1 a2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (*.f64 b1 b2) (*.f64 a2 a1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 b1 (*.f64 a2 (/.f64 a1 b2))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 b2 (*.f64 (/.f64 a2 b1) a1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 (/.f64 a2 b1) (/.f64 a1 b2)))) 2)) (cbrt.f64 (log.f64 (*.f64 (/.f64 a2 b1) (/.f64 a1 b2)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 (/.f64 a2 b1) (/.f64 a1 b2))))) (sqrt.f64 (log.f64 (*.f64 (/.f64 a2 b1) (/.f64 a1 b2)))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (/.f64 a2 b1) (/.f64 a1 b2)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (/.f64 a1 b2)) (/.f64 a2 b1)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (/.f64 a2 b1) (/.f64 a1 b2)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (/.f64 a2 b1) (/.f64 a1 b2)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (/.f64 a2 b1) (/.f64 a1 b2))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (/.f64 a2 b1) (/.f64 a1 b2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (/.f64 a2 b1) (/.f64 a1 b2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (/.f64 a2 b1) (/.f64 a1 b2))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 (/.f64 a2 b1) (/.f64 a1 b2)) 3)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (/.f64 a2 b1) (/.f64 a1 b2)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (/.f64 a2 b1) (/.f64 a1 b2)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (/.f64 a2 b1) (/.f64 a1 b2))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (*.f64 (log.f64 (/.f64 a2 b1)) 1) (log.f64 (/.f64 b2 a1))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (*.f64 (log.f64 (/.f64 a1 b2)) 1) (log.f64 (/.f64 b1 a2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (log.f64 (*.f64 a2 (/.f64 a1 b2))) (*.f64 (log.f64 b1) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (log.f64 (*.f64 (/.f64 a2 b1) a1)) (*.f64 (log.f64 b2) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (/.f64 a2 b1)) 1) (log.f64 (/.f64 a1 b2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log.f64 (/.f64 a2 b1)) (*.f64 (log.f64 (/.f64 a1 b2)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (/.f64 a2 b1)) 1) (*.f64 (log.f64 (/.f64 a1 b2)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (/.f64 a1 b2)) 1) (log.f64 (/.f64 a2 b1))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log.f64 (/.f64 a1 b2)) (*.f64 (log.f64 (/.f64 a2 b1)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (/.f64 a1 b2)) 1) (*.f64 (log.f64 (/.f64 a2 b1)) 1)))))))

simplify32.0ms (0.8%)

Algorithm
egg-herbie
Rules
14×associate-/l*_binary64
associate-*r/_binary64
associate-/r/_binary64
*-commutative_binary64
associate-/r*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
08480
117480
238480
367480
479480
579480
Stop Event
saturated
Counts
126 → 80
Calls
Call 1
Inputs
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
Outputs
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))

localize13.0ms (0.3%)

Local error

Found 2 expressions with local error:

NewErrorProgram
4.0b
(/.f64 b1 (/.f64 a2 b2))
8.2b
(/.f64 a1 (/.f64 b1 (/.f64 a2 b2)))
Compiler

Compiled 23 to 7 computations (69.6% saved)

series13.0ms (0.3%)

Counts
2 → 84
Calls

21 calls:

TimeVariablePointExpression
1.0ms
a1
@0
(/.f64 a1 (/.f64 b1 (/.f64 a2 b2)))
1.0ms
b1
@0
(/.f64 b1 (/.f64 a2 b2))
1.0ms
b2
@0
(/.f64 b1 (/.f64 a2 b2))
1.0ms
b2
@-inf
(/.f64 b1 (/.f64 a2 b2))
1.0ms
a2
@0
(/.f64 b1 (/.f64 a2 b2))

rewrite87.0ms (2.1%)

Algorithm
batch-egg-rewrite
Rules
572×log-prod_binary64
449×exp-prod_binary64
299×pow-prod-down_binary64
249×pow2_binary64
222×pow-unpow_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0817
117817
2275417
Stop Event
node limit
Counts
2 → 118
Calls
Call 1
Inputs
(/.f64 a1 (/.f64 b1 (/.f64 a2 b2)))
(/.f64 b1 (/.f64 a2 b2))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 a1 (/.f64 a2 (*.f64 b1 b2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 a1) (/.f64 a2 (*.f64 b1 b2)))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 a1) (/.f64 a2 (*.f64 b1 b2))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 a1) (/.f64 a2 (*.f64 b1 b2))))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 a1) (/.f64 a2 (*.f64 b1 b2))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 a1 (/.f64 a2 (*.f64 b1 b2))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 a1 (/.f64 a2 (*.f64 b1 b2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 a2 b2) (/.f64 a1 b1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 a1 (/.f64 a2 (*.f64 b1 b2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 a1 (/.f64 a2 (*.f64 b1 b2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 a1 (/.f64 a2 (*.f64 b1 b2)))) (pow.f64 (cbrt.f64 (*.f64 a1 (/.f64 a2 (*.f64 b1 b2)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 a1 (/.f64 a2 (*.f64 b1 b2)))) 2) (cbrt.f64 (*.f64 a1 (/.f64 a2 (*.f64 b1 b2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 a1) 2) (*.f64 (cbrt.f64 a1) (/.f64 a2 (*.f64 b1 b2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 a1 (/.f64 a2 (*.f64 b1 b2)))) (sqrt.f64 (*.f64 a1 (/.f64 a2 (*.f64 b1 b2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 a1) (*.f64 (sqrt.f64 a1) (/.f64 a2 (*.f64 b1 b2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 a1) (/.f64 1 (*.f64 (neg.f64 b1) (/.f64 b2 a2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 a2 (*.f64 b1 b2)) a1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 a1 b1) (/.f64 a2 b2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 a1) 2) 1) (/.f64 (cbrt.f64 a1) (*.f64 b1 (/.f64 b2 a2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 a1) 1) (/.f64 (sqrt.f64 a1) (*.f64 b1 (/.f64 b2 a2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 a1) b1) (/.f64 (sqrt.f64 a1) (/.f64 b2 a2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 b1) (/.f64 a1 (/.f64 b2 a2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 a1) 2) b1) (/.f64 (cbrt.f64 a1) (/.f64 b2 a2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 b1 (/.f64 b2 a2))) -2) (/.f64 a1 (cbrt.f64 (*.f64 b1 (/.f64 b2 a2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 a1) 2) (cbrt.f64 (pow.f64 (/.f64 a2 (*.f64 b1 b2)) -2))) (cbrt.f64 (*.f64 a1 (/.f64 a2 (*.f64 b1 b2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 a1) (cbrt.f64 (pow.f64 (/.f64 a2 (*.f64 b1 b2)) -2))) (/.f64 (sqrt.f64 a1) (cbrt.f64 (*.f64 b1 (/.f64 b2 a2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 b1 (/.f64 b2 a2)) -1/2) (/.f64 a1 (sqrt.f64 (*.f64 b1 (/.f64 b2 a2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 a1) 2) (sqrt.f64 (*.f64 b1 (/.f64 b2 a2)))) (/.f64 (cbrt.f64 a1) (sqrt.f64 (*.f64 b1 (/.f64 b2 a2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (/.f64 b1 a2)) (/.f64 a1 b2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 a1) 2) (/.f64 b1 a2)) (/.f64 (cbrt.f64 a1) b2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 a1) (/.f64 b1 a2)) (/.f64 (sqrt.f64 a1) b2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 a1 1) (/.f64 a2 (*.f64 b1 b2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 a1 (neg.f64 b1)) (/.f64 (neg.f64 a2) b2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 a1 b1) a2) (/.f64 1 b2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 a1 b1) 1) (/.f64 a2 b2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 a1 b1) (pow.f64 (cbrt.f64 (/.f64 a2 b2)) 2)) (cbrt.f64 (/.f64 a2 b2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 a1 b1) (sqrt.f64 (/.f64 a2 b2))) (sqrt.f64 (/.f64 a2 b2)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 a1 (/.f64 a2 (*.f64 b1 b2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 a1 (/.f64 a2 (*.f64 b1 b2))) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 a1 (/.f64 a2 (*.f64 b1 b2))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 a1 (/.f64 a2 (*.f64 b1 b2)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 a1 (/.f64 a2 (*.f64 b1 b2)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 b1 (/.f64 a1 (/.f64 b2 a2))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (*.f64 a1 (/.f64 a2 (*.f64 b1 b2)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 a1 3) (pow.f64 (*.f64 b1 (/.f64 b2 a2)) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (/.f64 b1 (/.f64 a1 (/.f64 b2 a2))) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 a1 (/.f64 a2 (*.f64 b1 b2))))) 2)) (cbrt.f64 (log.f64 (*.f64 a1 (/.f64 a2 (*.f64 b1 b2))))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 a1 (/.f64 a2 (*.f64 b1 b2)))))) (sqrt.f64 (log.f64 (*.f64 a1 (/.f64 a2 (*.f64 b1 b2))))))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 a1 (*.f64 (neg.f64 b1) (/.f64 b2 a2))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 a1 (/.f64 a2 (*.f64 b1 b2))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 a1) (/.f64 a2 (*.f64 b1 b2))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 a1 (/.f64 a2 (*.f64 b1 b2))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 a1 (/.f64 a2 (*.f64 b1 b2))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 a1 3) (pow.f64 (*.f64 b1 (/.f64 b2 a2)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 a1 (/.f64 a2 (*.f64 b1 b2)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 a1 (/.f64 a2 (*.f64 b1 b2)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 a1 (/.f64 a2 (*.f64 b1 b2)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 a1 (/.f64 a2 (*.f64 b1 b2)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 a1 (/.f64 a2 (*.f64 b1 b2))))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 a1 (/.f64 a2 (*.f64 b1 b2))))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 a1 (/.f64 a2 (*.f64 b1 b2))))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 b1 (/.f64 a1 (/.f64 b2 a2)))) -1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 a1 (/.f64 a2 (*.f64 b1 b2)))) 1) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 b1 (/.f64 b2 a2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 b2) (/.f64 b1 a2))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 b2) (/.f64 b1 a2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 b2) (/.f64 b1 a2)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 b2) (/.f64 b1 a2)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 b1 (/.f64 b2 a2)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 b1 (/.f64 b2 a2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 b2 (/.f64 b1 a2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 b1 (/.f64 b2 a2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 b1 (/.f64 b2 a2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 b1) 2) (*.f64 (cbrt.f64 b1) (/.f64 b2 a2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 b1 (/.f64 b2 a2))) (cbrt.f64 (pow.f64 (/.f64 a2 (*.f64 b1 b2)) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (/.f64 a2 (*.f64 b1 b2)) -2)) (cbrt.f64 (*.f64 b1 (/.f64 b2 a2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 b1) (*.f64 (sqrt.f64 b1) (/.f64 b2 a2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 b1 (/.f64 b2 a2))) (sqrt.f64 (*.f64 b1 (/.f64 b2 a2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 b1) (/.f64 1 (/.f64 (neg.f64 a2) b2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 b2 a2) b1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 b1 a2) b2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 b1) 2) 1) (/.f64 (cbrt.f64 b1) (/.f64 a2 b2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 b1) 1) (/.f64 (sqrt.f64 b1) (/.f64 a2 b2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 b1) a2) (/.f64 (sqrt.f64 b1) (/.f64 1 b2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 b1 1) (/.f64 b2 a2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 a2) (/.f64 b1 (/.f64 1 b2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 b1) 2) a2) (/.f64 (cbrt.f64 b1) (/.f64 1 b2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 a2 b2)) -2) (/.f64 b1 (cbrt.f64 (/.f64 a2 b2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 b1) 2) (pow.f64 (cbrt.f64 (/.f64 a2 b2)) 2)) (cbrt.f64 (*.f64 b1 (/.f64 b2 a2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 b1) (pow.f64 (cbrt.f64 (/.f64 a2 b2)) 2)) (/.f64 (sqrt.f64 b1) (cbrt.f64 (/.f64 a2 b2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 a2 b2) -1/2) (/.f64 b1 (sqrt.f64 (/.f64 a2 b2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 b1) 2) (sqrt.f64 (/.f64 a2 b2))) (/.f64 (cbrt.f64 b1) (sqrt.f64 (/.f64 a2 b2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 b1 (neg.f64 a2)) (neg.f64 b2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 b1 a2) 1) b2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 b1 a2) (pow.f64 (cbrt.f64 b2) 2)) (cbrt.f64 b2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 b1 a2) (sqrt.f64 b2)) (sqrt.f64 b2))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 b1 (/.f64 b2 a2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 a2 (*.f64 b1 b2)) -2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 b1 (/.f64 b2 a2)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 b1 (/.f64 b2 a2))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 b1 (/.f64 b2 a2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 a2 (*.f64 b1 b2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (*.f64 b1 (/.f64 b2 a2))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 b1 3) (pow.f64 (/.f64 b2 a2) -3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (/.f64 a2 (*.f64 b1 b2)) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 b1 (/.f64 b2 a2)))) 2)) (cbrt.f64 (log.f64 (*.f64 b1 (/.f64 b2 a2)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 b1 (/.f64 b2 a2))))) (sqrt.f64 (log.f64 (*.f64 b1 (/.f64 b2 a2)))))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 b1 (/.f64 (neg.f64 a2) b2)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 a2 (*.f64 b1 b2)) -2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 b2) (/.f64 b1 a2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 b1 (/.f64 b2 a2)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 b1 (/.f64 b2 a2)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 b1 3) (pow.f64 (/.f64 b2 a2) -3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 b1 (/.f64 b2 a2))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 b1 (/.f64 b2 a2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 b1 (/.f64 b2 a2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 b1 (/.f64 b2 a2))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 b1 (/.f64 b2 a2)))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 b1 (/.f64 b2 a2)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 b1 (/.f64 b2 a2)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 a2 (*.f64 b1 b2))) -1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 b1 (/.f64 b2 a2))) 1) 1))))))

simplify47.0ms (1.2%)

Algorithm
egg-herbie
Rules
14×associate-/l*_binary64
associate-/r/_binary64
*-commutative_binary64
associate-*r/_binary64
associate-/r*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
09732
118732
239732
367732
479732
579732
Stop Event
saturated
Counts
202 → 121
Calls
Call 1
Inputs
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 (*.f64 b2 b1) a2)
(/.f64 (*.f64 b2 b1) a2)
(/.f64 (*.f64 b2 b1) a2)
(/.f64 (*.f64 b2 b1) a2)
(/.f64 (*.f64 b2 b1) a2)
(/.f64 (*.f64 b2 b1) a2)
(/.f64 (*.f64 b2 b1) a2)
(/.f64 (*.f64 b2 b1) a2)
(/.f64 (*.f64 b2 b1) a2)
(/.f64 (*.f64 b2 b1) a2)
(/.f64 (*.f64 b2 b1) a2)
(/.f64 (*.f64 b2 b1) a2)
(/.f64 (*.f64 b2 b1) a2)
(/.f64 (*.f64 b2 b1) a2)
(/.f64 (*.f64 b2 b1) a2)
(/.f64 (*.f64 b2 b1) a2)
(/.f64 (*.f64 b2 b1) a2)
(/.f64 (*.f64 b2 b1) a2)
(/.f64 (*.f64 b2 b1) a2)
(/.f64 (*.f64 b2 b1) a2)
(/.f64 (*.f64 b2 b1) a2)
(/.f64 (*.f64 b2 b1) a2)
(/.f64 (*.f64 b2 b1) a2)
(/.f64 (*.f64 b2 b1) a2)
(/.f64 (*.f64 b2 b1) a2)
(/.f64 (*.f64 b2 b1) a2)
(/.f64 (*.f64 b2 b1) a2)
(/.f64 (*.f64 b2 b1) a2)
(/.f64 (*.f64 b2 b1) a2)
(/.f64 (*.f64 b2 b1) a2)
(/.f64 (*.f64 b2 b1) a2)
(/.f64 (*.f64 b2 b1) a2)
(/.f64 (*.f64 b2 b1) a2)
(/.f64 (*.f64 b2 b1) a2)
(/.f64 (*.f64 b2 b1) a2)
Outputs
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 b2 (/.f64 a2 b1))
(*.f64 (/.f64 b2 a2) b1)
(*.f64 b1 (/.f64 b2 a2))
(*.f64 b2 (/.f64 b1 a2))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 b2 (/.f64 a2 b1))
(*.f64 (/.f64 b2 a2) b1)
(*.f64 b1 (/.f64 b2 a2))
(*.f64 b2 (/.f64 b1 a2))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 b2 (/.f64 a2 b1))
(*.f64 (/.f64 b2 a2) b1)
(*.f64 b1 (/.f64 b2 a2))
(*.f64 b2 (/.f64 b1 a2))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 b2 (/.f64 a2 b1))
(*.f64 (/.f64 b2 a2) b1)
(*.f64 b1 (/.f64 b2 a2))
(*.f64 b2 (/.f64 b1 a2))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 b2 (/.f64 a2 b1))
(*.f64 (/.f64 b2 a2) b1)
(*.f64 b1 (/.f64 b2 a2))
(*.f64 b2 (/.f64 b1 a2))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 b2 (/.f64 a2 b1))
(*.f64 (/.f64 b2 a2) b1)
(*.f64 b1 (/.f64 b2 a2))
(*.f64 b2 (/.f64 b1 a2))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 b2 (/.f64 a2 b1))
(*.f64 (/.f64 b2 a2) b1)
(*.f64 b1 (/.f64 b2 a2))
(*.f64 b2 (/.f64 b1 a2))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 b2 (/.f64 a2 b1))
(*.f64 (/.f64 b2 a2) b1)
(*.f64 b1 (/.f64 b2 a2))
(*.f64 b2 (/.f64 b1 a2))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 b2 (/.f64 a2 b1))
(*.f64 (/.f64 b2 a2) b1)
(*.f64 b1 (/.f64 b2 a2))
(*.f64 b2 (/.f64 b1 a2))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 b2 (/.f64 a2 b1))
(*.f64 (/.f64 b2 a2) b1)
(*.f64 b1 (/.f64 b2 a2))
(*.f64 b2 (/.f64 b1 a2))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 b2 (/.f64 a2 b1))
(*.f64 (/.f64 b2 a2) b1)
(*.f64 b1 (/.f64 b2 a2))
(*.f64 b2 (/.f64 b1 a2))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 b2 (/.f64 a2 b1))
(*.f64 (/.f64 b2 a2) b1)
(*.f64 b1 (/.f64 b2 a2))
(*.f64 b2 (/.f64 b1 a2))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 b2 (/.f64 a2 b1))
(*.f64 (/.f64 b2 a2) b1)
(*.f64 b1 (/.f64 b2 a2))
(*.f64 b2 (/.f64 b1 a2))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 b2 (/.f64 a2 b1))
(*.f64 (/.f64 b2 a2) b1)
(*.f64 b1 (/.f64 b2 a2))
(*.f64 b2 (/.f64 b1 a2))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 b2 (/.f64 a2 b1))
(*.f64 (/.f64 b2 a2) b1)
(*.f64 b1 (/.f64 b2 a2))
(*.f64 b2 (/.f64 b1 a2))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 b2 (/.f64 a2 b1))
(*.f64 (/.f64 b2 a2) b1)
(*.f64 b1 (/.f64 b2 a2))
(*.f64 b2 (/.f64 b1 a2))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 b2 (/.f64 a2 b1))
(*.f64 (/.f64 b2 a2) b1)
(*.f64 b1 (/.f64 b2 a2))
(*.f64 b2 (/.f64 b1 a2))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 b2 (/.f64 a2 b1))
(*.f64 (/.f64 b2 a2) b1)
(*.f64 b1 (/.f64 b2 a2))
(*.f64 b2 (/.f64 b1 a2))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 b2 (/.f64 a2 b1))
(*.f64 (/.f64 b2 a2) b1)
(*.f64 b1 (/.f64 b2 a2))
(*.f64 b2 (/.f64 b1 a2))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 b2 (/.f64 a2 b1))
(*.f64 (/.f64 b2 a2) b1)
(*.f64 b1 (/.f64 b2 a2))
(*.f64 b2 (/.f64 b1 a2))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 b2 (/.f64 a2 b1))
(*.f64 (/.f64 b2 a2) b1)
(*.f64 b1 (/.f64 b2 a2))
(*.f64 b2 (/.f64 b1 a2))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 b2 (/.f64 a2 b1))
(*.f64 (/.f64 b2 a2) b1)
(*.f64 b1 (/.f64 b2 a2))
(*.f64 b2 (/.f64 b1 a2))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 b2 (/.f64 a2 b1))
(*.f64 (/.f64 b2 a2) b1)
(*.f64 b1 (/.f64 b2 a2))
(*.f64 b2 (/.f64 b1 a2))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 b2 (/.f64 a2 b1))
(*.f64 (/.f64 b2 a2) b1)
(*.f64 b1 (/.f64 b2 a2))
(*.f64 b2 (/.f64 b1 a2))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 b2 (/.f64 a2 b1))
(*.f64 (/.f64 b2 a2) b1)
(*.f64 b1 (/.f64 b2 a2))
(*.f64 b2 (/.f64 b1 a2))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 b2 (/.f64 a2 b1))
(*.f64 (/.f64 b2 a2) b1)
(*.f64 b1 (/.f64 b2 a2))
(*.f64 b2 (/.f64 b1 a2))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 b2 (/.f64 a2 b1))
(*.f64 (/.f64 b2 a2) b1)
(*.f64 b1 (/.f64 b2 a2))
(*.f64 b2 (/.f64 b1 a2))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 b2 (/.f64 a2 b1))
(*.f64 (/.f64 b2 a2) b1)
(*.f64 b1 (/.f64 b2 a2))
(*.f64 b2 (/.f64 b1 a2))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 b2 (/.f64 a2 b1))
(*.f64 (/.f64 b2 a2) b1)
(*.f64 b1 (/.f64 b2 a2))
(*.f64 b2 (/.f64 b1 a2))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 b2 (/.f64 a2 b1))
(*.f64 (/.f64 b2 a2) b1)
(*.f64 b1 (/.f64 b2 a2))
(*.f64 b2 (/.f64 b1 a2))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 b2 (/.f64 a2 b1))
(*.f64 (/.f64 b2 a2) b1)
(*.f64 b1 (/.f64 b2 a2))
(*.f64 b2 (/.f64 b1 a2))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 b2 (/.f64 a2 b1))
(*.f64 (/.f64 b2 a2) b1)
(*.f64 b1 (/.f64 b2 a2))
(*.f64 b2 (/.f64 b1 a2))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 b2 (/.f64 a2 b1))
(*.f64 (/.f64 b2 a2) b1)
(*.f64 b1 (/.f64 b2 a2))
(*.f64 b2 (/.f64 b1 a2))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 b2 (/.f64 a2 b1))
(*.f64 (/.f64 b2 a2) b1)
(*.f64 b1 (/.f64 b2 a2))
(*.f64 b2 (/.f64 b1 a2))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 b2 (/.f64 a2 b1))
(*.f64 (/.f64 b2 a2) b1)
(*.f64 b1 (/.f64 b2 a2))
(*.f64 b2 (/.f64 b1 a2))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 b2 (/.f64 a2 b1))
(*.f64 (/.f64 b2 a2) b1)
(*.f64 b1 (/.f64 b2 a2))
(*.f64 b2 (/.f64 b1 a2))

localize13.0ms (0.3%)

Local error

Found 2 expressions with local error:

NewErrorProgram
4.8b
(/.f64 (*.f64 a1 a2) b1)
7.2b
(/.f64 (/.f64 (*.f64 a1 a2) b1) b2)
Compiler

Compiled 23 to 7 computations (69.6% saved)

series12.0ms (0.3%)

Counts
2 → 48
Calls

21 calls:

TimeVariablePointExpression
1.0ms
a1
@inf
(/.f64 (/.f64 (*.f64 a1 a2) b1) b2)
1.0ms
a1
@inf
(/.f64 (*.f64 a1 a2) b1)
1.0ms
a2
@inf
(/.f64 (*.f64 a1 a2) b1)
1.0ms
b1
@0
(/.f64 (*.f64 a1 a2) b1)
1.0ms
a2
@0
(/.f64 (*.f64 a1 a2) b1)

rewrite85.0ms (2.1%)

Algorithm
batch-egg-rewrite
Rules
531×log-prod_binary64
407×exp-prod_binary64
332×pow-prod-down_binary64
242×pow2_binary64
198×div-exp_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0817
117217
2254317
Stop Event
node limit
Counts
2 → 122
Calls
Call 1
Inputs
(/.f64 (/.f64 (*.f64 a1 a2) b1) b2)
(/.f64 (*.f64 a1 a2) b1)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 a1 (*.f64 (/.f64 b1 a2) b2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (/.f64 a1 (*.f64 (/.f64 b1 a2) b2)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (/.f64 a1 (*.f64 (/.f64 b1 a2) b2))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (/.f64 a1 (*.f64 (/.f64 b1 a2) b2))))) (log.f64 (sqrt.f64 (exp.f64 (/.f64 a1 (*.f64 (/.f64 b1 a2) b2))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 a1 (*.f64 (/.f64 b1 a2) b2)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 a1 a2) (/.f64 1 (*.f64 b1 b2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 a1 b1) a2) (/.f64 1 b2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 a1 (*.f64 (/.f64 b1 a2) b2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 a1 (*.f64 (/.f64 b1 a2) b2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 a1 (*.f64 (/.f64 b1 a2) b2))) (cbrt.f64 (pow.f64 (*.f64 b2 (/.f64 b1 (*.f64 a1 a2))) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (*.f64 b2 (/.f64 b1 (*.f64 a1 a2))) -2)) (cbrt.f64 (/.f64 a1 (*.f64 (/.f64 b1 a2) b2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 (/.f64 a1 b1) a2)) 2) (*.f64 (cbrt.f64 (*.f64 (/.f64 a1 b1) a2)) (/.f64 1 b2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 a1 (*.f64 (/.f64 b1 a2) b2))) (sqrt.f64 (/.f64 a1 (*.f64 (/.f64 b1 a2) b2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (/.f64 a1 b1) a2)) (*.f64 (sqrt.f64 (*.f64 (/.f64 a1 b1) a2)) (/.f64 1 b2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 a1 (neg.f64 a2)) b1) (/.f64 1 (neg.f64 b2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 b2) (*.f64 (/.f64 a1 b1) a2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 a1 b2) (/.f64 a2 b1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 a2 b2) (/.f64 a1 b1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (*.f64 a1 a2)) 2) b2) (/.f64 (cbrt.f64 (*.f64 a1 a2)) b1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (*.f64 a1 a2)) b2) (/.f64 (sqrt.f64 (*.f64 a1 a2)) b1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 a1 a2) 1) (/.f64 (/.f64 1 b1) b2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (*.f64 (/.f64 a1 b1) a2)) 2) 1) (/.f64 (cbrt.f64 (*.f64 (/.f64 a1 b1) a2)) b2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (*.f64 (/.f64 a1 b1) a2)) 1) (/.f64 (sqrt.f64 (*.f64 (/.f64 a1 b1) a2)) b2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 a1 a2) (pow.f64 (cbrt.f64 b2) 2)) (/.f64 (/.f64 1 b1) (cbrt.f64 b2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 b2) -2) (/.f64 (*.f64 (/.f64 a1 b1) a2) (cbrt.f64 b2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (*.f64 (/.f64 a1 b1) a2)) 2) (pow.f64 (cbrt.f64 b2) 2)) (cbrt.f64 (/.f64 a1 (*.f64 (/.f64 b1 a2) b2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (*.f64 (/.f64 a1 b1) a2)) (pow.f64 (cbrt.f64 b2) 2)) (/.f64 (sqrt.f64 (*.f64 (/.f64 a1 b1) a2)) (cbrt.f64 b2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 a1 a2) (sqrt.f64 b2)) (/.f64 (/.f64 1 b1) (sqrt.f64 b2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 b2 -1/2) (/.f64 (*.f64 (/.f64 a1 b1) a2) (sqrt.f64 b2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (*.f64 (/.f64 a1 b1) a2)) 2) (sqrt.f64 b2)) (/.f64 (cbrt.f64 (*.f64 (/.f64 a1 b1) a2)) (sqrt.f64 b2)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 a1 (*.f64 (/.f64 b1 a2) b2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 b2 (/.f64 b1 (*.f64 a1 a2))) -2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 a1 (*.f64 (/.f64 b1 a2) b2)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 a1 (*.f64 (/.f64 b1 a2) b2))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 a1 (*.f64 (/.f64 b1 a2) b2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 b2 (/.f64 b1 (*.f64 a1 a2))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (/.f64 a1 (*.f64 (/.f64 b1 a2) b2))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 (/.f64 b1 (*.f64 a1 a2)) -3) (pow.f64 b2 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 b1 (*.f64 a1 a2)) b2) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (*.f64 b1 b2) (*.f64 a1 a2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (*.f64 b2 (/.f64 b1 (*.f64 a1 a2))) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (/.f64 a1 (*.f64 (/.f64 b1 a2) b2)))) 2)) (cbrt.f64 (log.f64 (/.f64 a1 (*.f64 (/.f64 b1 a2) b2)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (/.f64 a1 (*.f64 (/.f64 b1 a2) b2))))) (sqrt.f64 (log.f64 (/.f64 a1 (*.f64 (/.f64 b1 a2) b2)))))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (*.f64 (/.f64 a1 b1) a2) (neg.f64 b2)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 b2 (/.f64 b1 (*.f64 a1 a2))) -2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 a1 (*.f64 (/.f64 b1 a2) b2))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 a1 (*.f64 (/.f64 b1 a2) b2)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 a1 (*.f64 (/.f64 b1 a2) b2)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (/.f64 b1 (*.f64 a1 a2)) -3) (pow.f64 b2 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 a1 (*.f64 (/.f64 b1 a2) b2))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 a1 (*.f64 (/.f64 b1 a2) b2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 a1 (*.f64 (/.f64 b1 a2) b2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 a1 (*.f64 (/.f64 b1 a2) b2))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (/.f64 a1 (*.f64 (/.f64 b1 a2) b2)))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (/.f64 a1 (*.f64 (/.f64 b1 a2) b2)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (/.f64 a1 (*.f64 (/.f64 b1 a2) b2)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 b2 (/.f64 b1 (*.f64 a1 a2)))) -1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (/.f64 a1 (*.f64 (/.f64 b1 a2) b2))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (*.f64 (log.f64 (*.f64 a1 a2)) 1) (log.f64 (*.f64 b1 b2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (*.f64 (log.f64 (*.f64 (/.f64 a1 b1) a2)) 1) (log.f64 b2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (log.f64 (*.f64 (/.f64 a1 b1) a2)) (*.f64 (log.f64 b2) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (*.f64 (log.f64 (*.f64 (/.f64 a1 b1) a2)) 1) (*.f64 (log.f64 b2) 1)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (/.f64 a1 b1) a2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (/.f64 a1 b1)) a2)) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (/.f64 a1 b1)) a2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (/.f64 a1 b1)) a2))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (/.f64 a1 b1)) a2))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (/.f64 a1 b1) a2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 a1 (/.f64 1 (/.f64 b1 a2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 a1 (*.f64 a2 (/.f64 1 b1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 a2 (*.f64 a1 (/.f64 1 b1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 a1 a2) (/.f64 1 b1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 a1 b1) a2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (/.f64 a1 b1) a2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (/.f64 a1 b1) a2)) (pow.f64 (cbrt.f64 (*.f64 (/.f64 a1 b1) a2)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 (/.f64 a1 b1) a2)) 2) (cbrt.f64 (*.f64 (/.f64 a1 b1) a2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 a1 a2)) 2) (*.f64 (cbrt.f64 (*.f64 a1 a2)) (/.f64 1 b1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (/.f64 a1 b1) a2)) (sqrt.f64 (*.f64 (/.f64 a1 b1) a2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 a1 a2)) (*.f64 (sqrt.f64 (*.f64 a1 a2)) (/.f64 1 b1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 a1 (neg.f64 a2)) (/.f64 1 (neg.f64 b1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 b1) (*.f64 a1 a2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 a1 1) (/.f64 a2 b1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 a2 1) (/.f64 a1 b1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 a1 b1) a2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (*.f64 a1 a2)) 2) 1) (/.f64 (cbrt.f64 (*.f64 a1 a2)) b1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (*.f64 a1 a2)) 1) (/.f64 (sqrt.f64 (*.f64 a1 a2)) b1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 a1 (pow.f64 (cbrt.f64 b1) 2)) (/.f64 a2 (cbrt.f64 b1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 a2 (pow.f64 (cbrt.f64 b1) 2)) (/.f64 a1 (cbrt.f64 b1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 b1) -2) (/.f64 (*.f64 a1 a2) (cbrt.f64 b1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (*.f64 a1 a2)) 2) (pow.f64 (cbrt.f64 b1) 2)) (cbrt.f64 (*.f64 (/.f64 a1 b1) a2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (*.f64 a1 a2)) (pow.f64 (cbrt.f64 b1) 2)) (/.f64 (sqrt.f64 (*.f64 a1 a2)) (cbrt.f64 b1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 a1 (sqrt.f64 b1)) (/.f64 a2 (sqrt.f64 b1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 a2 (sqrt.f64 b1)) (/.f64 a1 (sqrt.f64 b1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 b1 -1/2) (/.f64 (*.f64 a1 a2) (sqrt.f64 b1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (*.f64 a1 a2)) 2) (sqrt.f64 b1)) (/.f64 (cbrt.f64 (*.f64 a1 a2)) (sqrt.f64 b1)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 a1 b1) a2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 a1 b1) a2) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 b1 (*.f64 a1 a2)) -3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (/.f64 a1 b1) a2)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (/.f64 a1 b1) a2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 b1 (*.f64 a1 a2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (*.f64 (/.f64 a1 b1) a2)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 (*.f64 a1 a2) 3) (pow.f64 b1 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (/.f64 b1 (*.f64 a1 a2)) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 (/.f64 a1 b1) a2))) 2)) (cbrt.f64 (log.f64 (*.f64 (/.f64 a1 b1) a2))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 (/.f64 a1 b1) a2)))) (sqrt.f64 (log.f64 (*.f64 (/.f64 a1 b1) a2))))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (*.f64 a1 a2) (neg.f64 b1)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (/.f64 a1 b1) a2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (/.f64 a1 b1)) a2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (/.f64 a1 b1) a2))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 b1 (*.f64 a1 a2)) -3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (*.f64 a1 a2) 3) (pow.f64 b1 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (/.f64 a1 b1) a2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (/.f64 a1 b1) a2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (/.f64 a1 b1) a2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (/.f64 a1 b1) a2)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (/.f64 b1 (*.f64 a1 a2)) -3)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (/.f64 a1 b1) a2))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (/.f64 a1 b1) a2))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 b1 (*.f64 a1 a2))) -1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (/.f64 a1 b1) a2)) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (*.f64 (log.f64 a1) 1) (log.f64 (/.f64 b1 a2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (*.f64 (log.f64 (*.f64 a1 a2)) 1) (log.f64 b1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (log.f64 (*.f64 a1 a2)) (*.f64 (log.f64 b1) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (*.f64 (log.f64 (*.f64 a1 a2)) 1) (*.f64 (log.f64 b1) 1)))))))

simplify35.0ms (0.9%)

Algorithm
egg-herbie
Rules
14×associate-/l*_binary64
associate-*r/_binary64
associate-/r/_binary64
*-commutative_binary64
associate-/r*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
08480
117480
238480
367480
479480
579480
Stop Event
saturated
Counts
170 → 124
Calls
Call 1
Inputs
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
Outputs
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(*.f64 a1 (/.f64 a2 (*.f64 b2 b1)))

eval165.0ms (4.1%)

Compiler

Compiled 6105 to 1983 computations (67.5% saved)

prune163.0ms (4%)

Pruning

7 alts after pruning (1 fresh and 6 done)

PrunedKeptTotal
New5161517
Fresh101
Picked011
Done055
Total5177524
Error
0b
Counts
524 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
11.2b
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
11.4b
(*.f64 a1 (/.f64 a2 (*.f64 b1 b2)))
10.6b
(/.f64 (/.f64 (*.f64 a1 a2) b2) b1)
11.5b
(/.f64 (/.f64 (*.f64 a1 a2) b1) b2)
11.8b
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
11.3b
(/.f64 a1 (/.f64 b1 (/.f64 a2 b2)))
11.7b
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
Compiler

Compiled 77 to 49 computations (36.4% saved)

localize15.0ms (0.4%)

Local error

Found 2 expressions with local error:

NewErrorProgram
4.9b
(*.f64 (/.f64 a1 b2) a2)
6.5b
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
Compiler

Compiled 23 to 7 computations (69.6% saved)

series10.0ms (0.3%)

Counts
2 → 84
Calls

21 calls:

TimeVariablePointExpression
1.0ms
a1
@0
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
1.0ms
a1
@-inf
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
1.0ms
b2
@-inf
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
0.0ms
a2
@-inf
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
0.0ms
b2
@0
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)

rewrite103.0ms (2.5%)

Algorithm
batch-egg-rewrite
Rules
519×log-prod_binary64
396×exp-prod_binary64
375×prod-exp_binary64
323×pow-prod-down_binary64
242×pow2_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0817
117217
2249917
Stop Event
node limit
Counts
2 → 107
Calls
Call 1
Inputs
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
(*.f64 (/.f64 a1 b2) a2)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (/.f64 (/.f64 a1 b2) b1) a2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (/.f64 (/.f64 a1 b2) b1)) a2)) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (/.f64 (/.f64 a1 b2) b1)) a2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (/.f64 (/.f64 a1 b2) b1)) a2))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (/.f64 (/.f64 a1 b2) b1)) a2))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (/.f64 (/.f64 a1 b2) b1) a2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 a1 b2) (/.f64 1 (/.f64 b1 a2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 a1 b2) (*.f64 a2 (/.f64 1 b1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 a2 (*.f64 (/.f64 a1 b2) (/.f64 1 b1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 a1 b2) a2) (/.f64 1 b1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 (/.f64 a1 b2) b1) a2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (/.f64 (/.f64 a1 b2) b1) a2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (/.f64 (/.f64 a1 b2) b1) a2)) (cbrt.f64 (pow.f64 (*.f64 (/.f64 b2 a1) (/.f64 b1 a2)) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (*.f64 (/.f64 b2 a1) (/.f64 b1 a2)) -2)) (cbrt.f64 (*.f64 (/.f64 (/.f64 a1 b2) b1) a2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 (/.f64 a1 b2) a2)) 2) (*.f64 (cbrt.f64 (*.f64 (/.f64 a1 b2) a2)) (/.f64 1 b1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (/.f64 (/.f64 a1 b2) b1) a2)) (sqrt.f64 (*.f64 (/.f64 (/.f64 a1 b2) b1) a2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (/.f64 a1 b2) a2)) (*.f64 (sqrt.f64 (*.f64 (/.f64 a1 b2) a2)) (/.f64 1 b1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 a2 (neg.f64 (/.f64 a1 b2))) (/.f64 1 (neg.f64 b1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 b1) (*.f64 (/.f64 a1 b2) a2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 a1 b2) 1) (/.f64 a2 b1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 a2 1) (/.f64 (/.f64 a1 b2) b1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 a1 b2) b1) a2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (*.f64 (/.f64 a1 b2) a2)) 2) 1) (/.f64 (cbrt.f64 (*.f64 (/.f64 a1 b2) a2)) b1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (*.f64 (/.f64 a1 b2) a2)) 1) (/.f64 (sqrt.f64 (*.f64 (/.f64 a1 b2) a2)) b1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 a1 b2) (pow.f64 (cbrt.f64 b1) 2)) (/.f64 a2 (cbrt.f64 b1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 a2 (pow.f64 (cbrt.f64 b1) 2)) (/.f64 (/.f64 a1 b2) (cbrt.f64 b1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 b1) -2) (/.f64 (*.f64 (/.f64 a1 b2) a2) (cbrt.f64 b1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (*.f64 (/.f64 a1 b2) a2)) 2) (pow.f64 (cbrt.f64 b1) 2)) (cbrt.f64 (*.f64 (/.f64 (/.f64 a1 b2) b1) a2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (*.f64 (/.f64 a1 b2) a2)) (pow.f64 (cbrt.f64 b1) 2)) (/.f64 (sqrt.f64 (*.f64 (/.f64 a1 b2) a2)) (cbrt.f64 b1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 a1 b2) (sqrt.f64 b1)) (/.f64 a2 (sqrt.f64 b1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 a2 (sqrt.f64 b1)) (/.f64 (/.f64 a1 b2) (sqrt.f64 b1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 b1 -1/2) (/.f64 (*.f64 (/.f64 a1 b2) a2) (sqrt.f64 b1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (*.f64 (/.f64 a1 b2) a2)) 2) (sqrt.f64 b1)) (/.f64 (cbrt.f64 (*.f64 (/.f64 a1 b2) a2)) (sqrt.f64 b1)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 (/.f64 a1 b2) b1) a2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 b2 a1) (/.f64 b1 a2)) -2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 (/.f64 a1 b2) b1) a2) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (/.f64 (/.f64 a1 b2) b1) a2)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (/.f64 (/.f64 a1 b2) b1) a2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 b2 a1) (/.f64 b1 a2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (*.f64 (/.f64 (/.f64 a1 b2) b1) a2)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 (*.f64 (/.f64 a1 b2) a2) 3) (pow.f64 b1 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (*.f64 (/.f64 b2 a1) (/.f64 b1 a2)) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 b1 a2) (/.f64 b2 a1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 (/.f64 (/.f64 a1 b2) b1) a2))) 2)) (cbrt.f64 (log.f64 (*.f64 (/.f64 (/.f64 a1 b2) b1) a2))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 (/.f64 (/.f64 a1 b2) b1) a2)))) (sqrt.f64 (log.f64 (*.f64 (/.f64 (/.f64 a1 b2) b1) a2))))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (*.f64 (/.f64 a1 b2) a2) (neg.f64 b1)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (/.f64 b2 a1) (/.f64 b1 a2)) -2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (/.f64 (/.f64 a1 b2) b1)) a2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (/.f64 (/.f64 a1 b2) b1) a2))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (/.f64 (/.f64 a1 b2) b1) a2) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (*.f64 (/.f64 a1 b2) a2) 3) (pow.f64 b1 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (/.f64 (/.f64 a1 b2) b1) a2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (/.f64 (/.f64 a1 b2) b1) a2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (/.f64 (/.f64 a1 b2) b1) a2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (/.f64 (/.f64 a1 b2) b1) a2)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 (/.f64 (/.f64 a1 b2) b1) a2))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (/.f64 (/.f64 a1 b2) b1) a2))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (/.f64 (/.f64 a1 b2) b1) a2))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (/.f64 b2 a1) (/.f64 b1 a2))) -1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (/.f64 (/.f64 a1 b2) b1) a2)) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (*.f64 (log.f64 (/.f64 a1 b2)) 1) (log.f64 (/.f64 b1 a2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (*.f64 (log.f64 (*.f64 (/.f64 a1 b2) a2)) 1) (log.f64 b1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (log.f64 (*.f64 (/.f64 a1 b2) a2)) (*.f64 (log.f64 b1) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (*.f64 (log.f64 (*.f64 (/.f64 a1 b2) a2)) 1) (*.f64 (log.f64 b1) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (*.f64 (/.f64 a1 b2) a2)) 1) (neg.f64 (log.f64 b1))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (neg.f64 (log.f64 b1)) (*.f64 (log.f64 (*.f64 (/.f64 a1 b2) a2)) 1)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (/.f64 a1 b2) a2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 a2) (/.f64 a1 b2))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 a2) (/.f64 a1 b2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 a2) (/.f64 a1 b2)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 a2) (/.f64 a1 b2)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (/.f64 a1 b2) a2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 a1 (/.f64 b2 a2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 a2 (/.f64 b2 a1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 b2 (*.f64 a1 a2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 a1 a2) b2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 a1 a2)) (neg.f64 b2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 a1 a2) 1) b2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 a1 a2) (pow.f64 (cbrt.f64 b2) 2)) (cbrt.f64 b2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 a1 a2) (sqrt.f64 b2)) (sqrt.f64 b2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 a1) a2) (neg.f64 b2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 a2 (neg.f64 a1)) (neg.f64 b2))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 a1 b2) a2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 a1 b2) a2) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 a1 b2) a2) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (/.f64 a1 b2) a2)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (/.f64 a1 b2) a2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (*.f64 (/.f64 a1 b2) a2)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 b2 (*.f64 a1 a2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 (/.f64 a1 b2) a2))) 2)) (cbrt.f64 (log.f64 (*.f64 (/.f64 a1 b2) a2))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 (/.f64 a1 b2) a2)))) (sqrt.f64 (log.f64 (*.f64 (/.f64 a1 b2) a2))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (/.f64 a1 b2) a2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 a2) (/.f64 a1 b2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (/.f64 a1 b2) a2))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (/.f64 a1 b2) a2) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (/.f64 a1 b2) a2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (/.f64 a1 b2) a2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (/.f64 a1 b2) a2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (/.f64 a1 b2) a2)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 (/.f64 a1 b2) a2))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (/.f64 a1 b2) a2))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (/.f64 a1 b2) a2))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (/.f64 a1 b2) a2)) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (*.f64 (log.f64 a2) 1) (log.f64 (/.f64 b2 a1))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (log.f64 (*.f64 a1 a2)) (*.f64 (log.f64 b2) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (/.f64 a1 b2)) 1) (log.f64 a2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log.f64 (/.f64 a1 b2)) (*.f64 (log.f64 a2) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (/.f64 a1 b2)) 1) (*.f64 (log.f64 a2) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 a2) 1) (log.f64 (/.f64 a1 b2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log.f64 a2) (*.f64 (log.f64 (/.f64 a1 b2)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 a2) 1) (*.f64 (log.f64 (/.f64 a1 b2)) 1)))))))

simplify53.0ms (1.3%)

Algorithm
egg-herbie
Rules
13×associate-/l*_binary64
associate-/r/_binary64
associate-*r/_binary64
*-commutative_binary64
associate-/r*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
09732
119732
239732
367732
478732
578732
Stop Event
saturated
Counts
191 → 110
Calls
Call 1
Inputs
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) b2)
(/.f64 (*.f64 a1 a2) b2)
(/.f64 (*.f64 a1 a2) b2)
(/.f64 (*.f64 a1 a2) b2)
(/.f64 (*.f64 a1 a2) b2)
(/.f64 (*.f64 a1 a2) b2)
(/.f64 (*.f64 a1 a2) b2)
(/.f64 (*.f64 a1 a2) b2)
(/.f64 (*.f64 a1 a2) b2)
(/.f64 (*.f64 a1 a2) b2)
(/.f64 (*.f64 a1 a2) b2)
(/.f64 (*.f64 a1 a2) b2)
(/.f64 (*.f64 a1 a2) b2)
(/.f64 (*.f64 a1 a2) b2)
(/.f64 (*.f64 a1 a2) b2)
(/.f64 (*.f64 a1 a2) b2)
(/.f64 (*.f64 a1 a2) b2)
(/.f64 (*.f64 a1 a2) b2)
(/.f64 (*.f64 a1 a2) b2)
(/.f64 (*.f64 a1 a2) b2)
(/.f64 (*.f64 a1 a2) b2)
(/.f64 (*.f64 a1 a2) b2)
(/.f64 (*.f64 a1 a2) b2)
(/.f64 (*.f64 a1 a2) b2)
(/.f64 (*.f64 a1 a2) b2)
(/.f64 (*.f64 a1 a2) b2)
(/.f64 (*.f64 a1 a2) b2)
(/.f64 (*.f64 a1 a2) b2)
(/.f64 (*.f64 a1 a2) b2)
(/.f64 (*.f64 a1 a2) b2)
(/.f64 (*.f64 a1 a2) b2)
(/.f64 (*.f64 a1 a2) b2)
(/.f64 (*.f64 a1 a2) b2)
(/.f64 (*.f64 a1 a2) b2)
(/.f64 (*.f64 a1 a2) b2)
(/.f64 (*.f64 a1 a2) b2)
Outputs
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) b2)
(/.f64 a1 (/.f64 b2 a2))
(*.f64 (/.f64 a1 b2) a2)
(*.f64 a2 (/.f64 a1 b2))
(*.f64 a1 (/.f64 a2 b2))
(/.f64 (*.f64 a1 a2) b2)
(/.f64 a1 (/.f64 b2 a2))
(*.f64 (/.f64 a1 b2) a2)
(*.f64 a2 (/.f64 a1 b2))
(*.f64 a1 (/.f64 a2 b2))
(/.f64 (*.f64 a1 a2) b2)
(/.f64 a1 (/.f64 b2 a2))
(*.f64 (/.f64 a1 b2) a2)
(*.f64 a2 (/.f64 a1 b2))
(*.f64 a1 (/.f64 a2 b2))
(/.f64 (*.f64 a1 a2) b2)
(/.f64 a1 (/.f64 b2 a2))
(*.f64 (/.f64 a1 b2) a2)
(*.f64 a2 (/.f64 a1 b2))
(*.f64 a1 (/.f64 a2 b2))
(/.f64 (*.f64 a1 a2) b2)
(/.f64 a1 (/.f64 b2 a2))
(*.f64 (/.f64 a1 b2) a2)
(*.f64 a2 (/.f64 a1 b2))
(*.f64 a1 (/.f64 a2 b2))
(/.f64 (*.f64 a1 a2) b2)
(/.f64 a1 (/.f64 b2 a2))
(*.f64 (/.f64 a1 b2) a2)
(*.f64 a2 (/.f64 a1 b2))
(*.f64 a1 (/.f64 a2 b2))
(/.f64 (*.f64 a1 a2) b2)
(/.f64 a1 (/.f64 b2 a2))
(*.f64 (/.f64 a1 b2) a2)
(*.f64 a2 (/.f64 a1 b2))
(*.f64 a1 (/.f64 a2 b2))
(/.f64 (*.f64 a1 a2) b2)
(/.f64 a1 (/.f64 b2 a2))
(*.f64 (/.f64 a1 b2) a2)
(*.f64 a2 (/.f64 a1 b2))
(*.f64 a1 (/.f64 a2 b2))
(/.f64 (*.f64 a1 a2) b2)
(/.f64 a1 (/.f64 b2 a2))
(*.f64 (/.f64 a1 b2) a2)
(*.f64 a2 (/.f64 a1 b2))
(*.f64 a1 (/.f64 a2 b2))
(/.f64 (*.f64 a1 a2) b2)
(/.f64 a1 (/.f64 b2 a2))
(*.f64 (/.f64 a1 b2) a2)
(*.f64 a2 (/.f64 a1 b2))
(*.f64 a1 (/.f64 a2 b2))
(/.f64 (*.f64 a1 a2) b2)
(/.f64 a1 (/.f64 b2 a2))
(*.f64 (/.f64 a1 b2) a2)
(*.f64 a2 (/.f64 a1 b2))
(*.f64 a1 (/.f64 a2 b2))
(/.f64 (*.f64 a1 a2) b2)
(/.f64 a1 (/.f64 b2 a2))
(*.f64 (/.f64 a1 b2) a2)
(*.f64 a2 (/.f64 a1 b2))
(*.f64 a1 (/.f64 a2 b2))
(/.f64 (*.f64 a1 a2) b2)
(/.f64 a1 (/.f64 b2 a2))
(*.f64 (/.f64 a1 b2) a2)
(*.f64 a2 (/.f64 a1 b2))
(*.f64 a1 (/.f64 a2 b2))
(/.f64 (*.f64 a1 a2) b2)
(/.f64 a1 (/.f64 b2 a2))
(*.f64 (/.f64 a1 b2) a2)
(*.f64 a2 (/.f64 a1 b2))
(*.f64 a1 (/.f64 a2 b2))
(/.f64 (*.f64 a1 a2) b2)
(/.f64 a1 (/.f64 b2 a2))
(*.f64 (/.f64 a1 b2) a2)
(*.f64 a2 (/.f64 a1 b2))
(*.f64 a1 (/.f64 a2 b2))
(/.f64 (*.f64 a1 a2) b2)
(/.f64 a1 (/.f64 b2 a2))
(*.f64 (/.f64 a1 b2) a2)
(*.f64 a2 (/.f64 a1 b2))
(*.f64 a1 (/.f64 a2 b2))
(/.f64 (*.f64 a1 a2) b2)
(/.f64 a1 (/.f64 b2 a2))
(*.f64 (/.f64 a1 b2) a2)
(*.f64 a2 (/.f64 a1 b2))
(*.f64 a1 (/.f64 a2 b2))
(/.f64 (*.f64 a1 a2) b2)
(/.f64 a1 (/.f64 b2 a2))
(*.f64 (/.f64 a1 b2) a2)
(*.f64 a2 (/.f64 a1 b2))
(*.f64 a1 (/.f64 a2 b2))
(/.f64 (*.f64 a1 a2) b2)
(/.f64 a1 (/.f64 b2 a2))
(*.f64 (/.f64 a1 b2) a2)
(*.f64 a2 (/.f64 a1 b2))
(*.f64 a1 (/.f64 a2 b2))
(/.f64 (*.f64 a1 a2) b2)
(/.f64 a1 (/.f64 b2 a2))
(*.f64 (/.f64 a1 b2) a2)
(*.f64 a2 (/.f64 a1 b2))
(*.f64 a1 (/.f64 a2 b2))
(/.f64 (*.f64 a1 a2) b2)
(/.f64 a1 (/.f64 b2 a2))
(*.f64 (/.f64 a1 b2) a2)
(*.f64 a2 (/.f64 a1 b2))
(*.f64 a1 (/.f64 a2 b2))
(/.f64 (*.f64 a1 a2) b2)
(/.f64 a1 (/.f64 b2 a2))
(*.f64 (/.f64 a1 b2) a2)
(*.f64 a2 (/.f64 a1 b2))
(*.f64 a1 (/.f64 a2 b2))
(/.f64 (*.f64 a1 a2) b2)
(/.f64 a1 (/.f64 b2 a2))
(*.f64 (/.f64 a1 b2) a2)
(*.f64 a2 (/.f64 a1 b2))
(*.f64 a1 (/.f64 a2 b2))
(/.f64 (*.f64 a1 a2) b2)
(/.f64 a1 (/.f64 b2 a2))
(*.f64 (/.f64 a1 b2) a2)
(*.f64 a2 (/.f64 a1 b2))
(*.f64 a1 (/.f64 a2 b2))
(/.f64 (*.f64 a1 a2) b2)
(/.f64 a1 (/.f64 b2 a2))
(*.f64 (/.f64 a1 b2) a2)
(*.f64 a2 (/.f64 a1 b2))
(*.f64 a1 (/.f64 a2 b2))
(/.f64 (*.f64 a1 a2) b2)
(/.f64 a1 (/.f64 b2 a2))
(*.f64 (/.f64 a1 b2) a2)
(*.f64 a2 (/.f64 a1 b2))
(*.f64 a1 (/.f64 a2 b2))
(/.f64 (*.f64 a1 a2) b2)
(/.f64 a1 (/.f64 b2 a2))
(*.f64 (/.f64 a1 b2) a2)
(*.f64 a2 (/.f64 a1 b2))
(*.f64 a1 (/.f64 a2 b2))
(/.f64 (*.f64 a1 a2) b2)
(/.f64 a1 (/.f64 b2 a2))
(*.f64 (/.f64 a1 b2) a2)
(*.f64 a2 (/.f64 a1 b2))
(*.f64 a1 (/.f64 a2 b2))
(/.f64 (*.f64 a1 a2) b2)
(/.f64 a1 (/.f64 b2 a2))
(*.f64 (/.f64 a1 b2) a2)
(*.f64 a2 (/.f64 a1 b2))
(*.f64 a1 (/.f64 a2 b2))
(/.f64 (*.f64 a1 a2) b2)
(/.f64 a1 (/.f64 b2 a2))
(*.f64 (/.f64 a1 b2) a2)
(*.f64 a2 (/.f64 a1 b2))
(*.f64 a1 (/.f64 a2 b2))
(/.f64 (*.f64 a1 a2) b2)
(/.f64 a1 (/.f64 b2 a2))
(*.f64 (/.f64 a1 b2) a2)
(*.f64 a2 (/.f64 a1 b2))
(*.f64 a1 (/.f64 a2 b2))
(/.f64 (*.f64 a1 a2) b2)
(/.f64 a1 (/.f64 b2 a2))
(*.f64 (/.f64 a1 b2) a2)
(*.f64 a2 (/.f64 a1 b2))
(*.f64 a1 (/.f64 a2 b2))
(/.f64 (*.f64 a1 a2) b2)
(/.f64 a1 (/.f64 b2 a2))
(*.f64 (/.f64 a1 b2) a2)
(*.f64 a2 (/.f64 a1 b2))
(*.f64 a1 (/.f64 a2 b2))
(/.f64 (*.f64 a1 a2) b2)
(/.f64 a1 (/.f64 b2 a2))
(*.f64 (/.f64 a1 b2) a2)
(*.f64 a2 (/.f64 a1 b2))
(*.f64 a1 (/.f64 a2 b2))
(/.f64 (*.f64 a1 a2) b2)
(/.f64 a1 (/.f64 b2 a2))
(*.f64 (/.f64 a1 b2) a2)
(*.f64 a2 (/.f64 a1 b2))
(*.f64 a1 (/.f64 a2 b2))
(/.f64 (*.f64 a1 a2) b2)
(/.f64 a1 (/.f64 b2 a2))
(*.f64 (/.f64 a1 b2) a2)
(*.f64 a2 (/.f64 a1 b2))
(*.f64 a1 (/.f64 a2 b2))

eval36.0ms (0.9%)

Compiler

Compiled 1321 to 451 computations (65.9% saved)

prune39.0ms (1%)

Pruning

7 alts after pruning (0 fresh and 7 done)

PrunedKeptTotal
New1100110
Fresh000
Picked011
Done066
Total1107117
Error
0b
Counts
117 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
11.2b
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
11.4b
(*.f64 a1 (/.f64 a2 (*.f64 b1 b2)))
10.6b
(/.f64 (/.f64 (*.f64 a1 a2) b2) b1)
11.5b
(/.f64 (/.f64 (*.f64 a1 a2) b1) b2)
11.8b
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
11.3b
(/.f64 a1 (/.f64 b1 (/.f64 a2 b2)))
11.7b
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
Compiler

Compiled 77 to 49 computations (36.4% saved)

regimes355.0ms (8.8%)

Counts
9 → 5
Calls
Call 1
Inputs
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
(/.f64 (/.f64 (*.f64 a1 a2) b2) b1)
(/.f64 (/.f64 (*.f64 a1 a2) b1) b2)
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
(/.f64 a1 (/.f64 b1 (/.f64 a2 b2)))
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
(*.f64 a1 (/.f64 a2 (*.f64 b1 b2)))
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
(pow.f64 (sqrt.f64 (*.f64 (/.f64 a1 b1) (/.f64 a2 b2))) 2)
Outputs
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
Calls

9 calls:

51.0ms
(*.f64 b1 b2)
50.0ms
(*.f64 a1 a2)
48.0ms
(*.f64 b1 b2)
48.0ms
(*.f64 a1 a2)
41.0ms
b2
Results
ErrorSegmentsBranch
4.9b7a1
4.4b5a2
6.2b5b1
4.4b6b2
1.9b5(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
2.7b5(*.f64 a1 a2)
2.7b5(*.f64 a1 a2)
3.9b5(*.f64 b1 b2)
3.9b5(*.f64 b1 b2)
Compiler

Compiled 129 to 71 computations (45% saved)

bsearch1.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
1.4600964775924824e+278
+inf
1.0ms
1.3657341821234414e-304
2.761031626552575e-303
0.0ms
-8.426297037718588e-301
-2.017979603660088e-301
0.0ms
-inf
-2.1249577692160065e+307
Compiler

Compiled 18 to 13 computations (27.8% saved)

regimes201.0ms (5%)

Counts
7 → 5
Calls
Call 1
Inputs
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
(/.f64 (/.f64 (*.f64 a1 a2) b2) b1)
(/.f64 (/.f64 (*.f64 a1 a2) b1) b2)
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
(/.f64 a1 (/.f64 b1 (/.f64 a2 b2)))
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
(*.f64 a1 (/.f64 a2 (*.f64 b1 b2)))
Outputs
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
(/.f64 (/.f64 (*.f64 a1 a2) b2) b1)
(/.f64 a1 (/.f64 b1 (/.f64 a2 b2)))
(/.f64 (/.f64 (*.f64 a1 a2) b2) b1)
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
Calls

8 calls:

38.0ms
b2
34.0ms
a1
22.0ms
b1
22.0ms
a2
21.0ms
(*.f64 a1 a2)
Results
ErrorSegmentsBranch
4.9b7a1
4.5b5a2
6.2b5b1
4.4b6b2
2.7b5(*.f64 a1 a2)
2.7b5(*.f64 a1 a2)
3.9b5(*.f64 b1 b2)
3.9b5(*.f64 b1 b2)
Compiler

Compiled 101 to 58 computations (42.6% saved)

bsearch1.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
8.711197036166516e+168
3.018906176094822e+182
0.0ms
4.690490192303266e-210
2.1798806501841134e-205
0.0ms
-6.129411486411967e-278
-8.365896564676145e-287
0.0ms
-5.893678175265998e+239
-6.928898543502454e+229
Compiler

Compiled 18 to 13 computations (27.8% saved)

regimes142.0ms (3.5%)

Counts
5 → 5
Calls
Call 1
Inputs
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
(/.f64 (/.f64 (*.f64 a1 a2) b2) b1)
(/.f64 (/.f64 (*.f64 a1 a2) b1) b2)
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
(/.f64 a1 (/.f64 b1 (/.f64 a2 b2)))
Outputs
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
(/.f64 (/.f64 (*.f64 a1 a2) b2) b1)
(/.f64 a1 (/.f64 b1 (/.f64 a2 b2)))
(/.f64 (/.f64 (*.f64 a1 a2) b2) b1)
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
Calls

6 calls:

39.0ms
a1
24.0ms
b2
20.0ms
b1
20.0ms
(*.f64 a1 a2)
19.0ms
a2
Results
ErrorSegmentsBranch
5.0b7a1
5.9b4a2
6.6b5b1
6.4b5b2
2.7b5(*.f64 a1 a2)
2.7b5(*.f64 a1 a2)
Compiler

Compiled 73 to 43 computations (41.1% saved)

bsearch1.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
8.711197036166516e+168
3.018906176094822e+182
0.0ms
4.690490192303266e-210
2.1798806501841134e-205
0.0ms
-6.129411486411967e-278
-8.365896564676145e-287
0.0ms
-5.893678175265998e+239
-6.928898543502454e+229
Compiler

Compiled 18 to 13 computations (27.8% saved)

regimes148.0ms (3.7%)

Counts
4 → 5
Calls
Call 1
Inputs
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
(/.f64 (/.f64 (*.f64 a1 a2) b2) b1)
(/.f64 (/.f64 (*.f64 a1 a2) b1) b2)
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
Outputs
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
(/.f64 (/.f64 (*.f64 a1 a2) b2) b1)
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
(/.f64 (/.f64 (*.f64 a1 a2) b2) b1)
(*.f64 (/.f64 a2 b1) (/.f64 a1 b2))
Calls

6 calls:

39.0ms
a1
33.0ms
a2
26.0ms
b1
17.0ms
(*.f64 a1 a2)
16.0ms
(*.f64 a1 a2)
Results
ErrorSegmentsBranch
6.4b5a1
5.9b4a2
8.2b3b1
8.1b4b2
3.5b5(*.f64 a1 a2)
3.5b5(*.f64 a1 a2)
Compiler

Compiled 66 to 40 computations (39.4% saved)

bsearch1.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
8.711197036166516e+168
3.018906176094822e+182
0.0ms
1.4569126234811257e-185
6.509964453146874e-183
0.0ms
-2.6903294253714435e-248
-6.129411486411967e-278
0.0ms
-5.893678175265998e+239
-6.928898543502454e+229
Compiler

Compiled 18 to 13 computations (27.8% saved)

regimes102.0ms (2.5%)

Counts
3 → 4
Calls
Call 1
Inputs
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
(/.f64 (/.f64 (*.f64 a1 a2) b2) b1)
(/.f64 (/.f64 (*.f64 a1 a2) b1) b2)
Outputs
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
(/.f64 (/.f64 (*.f64 a1 a2) b1) b2)
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
(/.f64 (/.f64 (*.f64 a1 a2) b1) b2)
Calls

6 calls:

28.0ms
(*.f64 a1 a2)
19.0ms
b1
15.0ms
(*.f64 a1 a2)
14.0ms
b2
13.0ms
a1
Results
ErrorSegmentsBranch
7.9b4a1
7.2b3a2
8.5b3b1
9.2b3b2
6.7b4(*.f64 a1 a2)
6.7b4(*.f64 a1 a2)
Compiler

Compiled 59 to 38 computations (35.6% saved)

bsearch1.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
1.977185350691e-311
3.966568442734367e-309
0.0ms
-4.447987355137002e-126
-6.681812114175977e-138
0.0ms
-1.400273934791158e+68
-1.4168733578524428e+62
Compiler

Compiled 18 to 13 computations (27.8% saved)

regimes44.0ms (1.1%)

Accuracy

Total -7.6b remaining (-101.9%)

Threshold costs -7.6b (-101.9%)

Counts
2 → 4
Calls
Call 1
Inputs
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
(/.f64 (/.f64 (*.f64 a1 a2) b2) b1)
Outputs
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
(/.f64 (/.f64 (*.f64 a1 a2) b2) b1)
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
(/.f64 (/.f64 (*.f64 a1 a2) b2) b1)
Calls

5 calls:

12.0ms
a1
12.0ms
a2
11.0ms
(*.f64 a1 a2)
4.0ms
b2
3.0ms
b1
Results
ErrorSegmentsBranch
8.5b4a1
8.7b3a2
10.6b1b1
10.6b1b2
7.5b4(*.f64 a1 a2)
Compiler

Compiled 45 to 31 computations (31.1% saved)

bsearch1.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
1.977185350691e-311
3.966568442734367e-309
0.0ms
-4.447987355137002e-126
-6.681812114175977e-138
0.0ms
-2.1884787869169663e-34
-5.638509142500679e-36
Compiler

Compiled 18 to 13 computations (27.8% saved)

simplify14.0ms (0.3%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
069512
174512
Stop Event
done
saturated
Calls
Call 1
Inputs
(if (<=.f64 (/.f64 (*.f64 a1 a2) (*.f64 b1 b2)) -inf.0) (*.f64 (/.f64 a2 b1) (/.f64 a1 b2)) (if (<=.f64 (/.f64 (*.f64 a1 a2) (*.f64 b1 b2)) -6032057205060441/12064114410120881697684249086315471354100504503497011563593230129923244688987454586741947156276531487416450850028801674329627080999958126358211839195533902044386710183415792069701368078118158360793576698212191168580174892152827542937880954483101341506291035205862448784848059094859987648259778470316291228729945882624) (/.f64 (*.f64 a1 a2) (*.f64 b1 b2)) (if (<=.f64 (/.f64 (*.f64 a1 a2) (*.f64 b1 b2)) 4941461262385513/24707306311927565716857342128774085333197833223161879682238935306082805123046306993647507776054336486228891340858985829027076261887914242781617846672453431386903982455635542158748401823985988322905245077938567513252198179128990807936780194781391547404884040101606295111368825026273254703636026307207764436438929167613952) (*.f64 (/.f64 a2 b1) (/.f64 a1 b2)) (if (<=.f64 (/.f64 (*.f64 a1 a2) (*.f64 b1 b2)) 199999999999999992701373735918357116631804549565985153064628970972443492602480411625348685741640985599675569876002408075550379507087920437583886295587576290642133049161236473317937266725516180055400670622987509956668735259751478274996752027315378862823736417652149903488970653696) (/.f64 (*.f64 a1 a2) (*.f64 b1 b2)) (*.f64 (/.f64 a2 b1) (/.f64 a1 b2))))))
(if (<=.f64 (*.f64 a1 a2) -500000000000000006973056902059962218987082928493319165556047085454840244713065271819204256539302862104897576699748505732232744236818610455170287378791473453516173873413357412617039474932160920305416077787124106846790742307490978048163971072) (*.f64 (/.f64 a1 (*.f64 b1 b2)) a2) (if (<=.f64 (*.f64 a1 a2) -7983361238138879/159667224762777584932509817042947085285396100834836603320203779394976951349517125262796637239410856087147395747535399619517795039071487492859133743862786513625600453836086854121403017715549038974612268539563513919466464836409669631111108421475843532600569672550060483331388679618427520794230784) (/.f64 (/.f64 (*.f64 a1 a2) b2) b1) (if (<=.f64 (*.f64 a1 a2) 3701491575958035/740298315191606967520227188330889966610377319868419938630605715764070011466206019559325413145373572325939050053182159998975553533608824916574615132828322000124194610605645134711392062011527273571616649243219599128195212771328) (/.f64 a1 (/.f64 b1 (/.f64 a2 b2))) (if (<=.f64 (*.f64 a1 a2) 9999999999999999338604948347429745623719502164303315186116928223077006466996036476256924325958459471709145545996985214755393808134448127932794585054037286174943850004480) (/.f64 (/.f64 (*.f64 a1 a2) b2) b1) (*.f64 (/.f64 a2 b1) (/.f64 a1 b2))))))
(if (<=.f64 (*.f64 a1 a2) -500000000000000006973056902059962218987082928493319165556047085454840244713065271819204256539302862104897576699748505732232744236818610455170287378791473453516173873413357412617039474932160920305416077787124106846790742307490978048163971072) (*.f64 (/.f64 a2 b1) (/.f64 a1 b2)) (if (<=.f64 (*.f64 a1 a2) -7983361238138879/159667224762777584932509817042947085285396100834836603320203779394976951349517125262796637239410856087147395747535399619517795039071487492859133743862786513625600453836086854121403017715549038974612268539563513919466464836409669631111108421475843532600569672550060483331388679618427520794230784) (/.f64 (/.f64 (*.f64 a1 a2) b2) b1) (if (<=.f64 (*.f64 a1 a2) 3701491575958035/740298315191606967520227188330889966610377319868419938630605715764070011466206019559325413145373572325939050053182159998975553533608824916574615132828322000124194610605645134711392062011527273571616649243219599128195212771328) (/.f64 a1 (/.f64 b1 (/.f64 a2 b2))) (if (<=.f64 (*.f64 a1 a2) 9999999999999999338604948347429745623719502164303315186116928223077006466996036476256924325958459471709145545996985214755393808134448127932794585054037286174943850004480) (/.f64 (/.f64 (*.f64 a1 a2) b2) b1) (*.f64 (/.f64 a2 b1) (/.f64 a1 b2))))))
(if (<=.f64 (*.f64 a1 a2) -500000000000000006973056902059962218987082928493319165556047085454840244713065271819204256539302862104897576699748505732232744236818610455170287378791473453516173873413357412617039474932160920305416077787124106846790742307490978048163971072) (*.f64 (/.f64 a2 b1) (/.f64 a1 b2)) (if (<=.f64 (*.f64 a1 a2) -5038209258419659/251910462920982955146951572855242064723418868082104455055218081010186148908960752236565235084370225856148908135059894885483907489539473312974233140212507046179002134322645704349866637075627537275802723363977045251916898867011814946574400376685636747593659677933568) (/.f64 (/.f64 (*.f64 a1 a2) b2) b1) (if (<=.f64 (*.f64 a1 a2) 3061802069160839/153090103458041951154620325043801237641319743206933311288544235956760011447392195175450369025277569052617268428910122535686807015741471080782585043071649294869136754165183653769539196448293593632735232) (*.f64 (/.f64 a2 b1) (/.f64 a1 b2)) (if (<=.f64 (*.f64 a1 a2) 9999999999999999338604948347429745623719502164303315186116928223077006466996036476256924325958459471709145545996985214755393808134448127932794585054037286174943850004480) (/.f64 (/.f64 (*.f64 a1 a2) b2) b1) (*.f64 (/.f64 a2 b1) (/.f64 a1 b2))))))
(if (<=.f64 (*.f64 a1 a2) -99999999999999995280522225138166806691251291352861698530421623488512) (/.f64 (*.f64 (/.f64 a1 b2) a2) b1) (if (<=.f64 (*.f64 a1 a2) -3048582568667961/762145642166990290864647761179972242614403843424065222377723867096038022172794340849684107193235344521442121855812163792833978437326241529856) (/.f64 (/.f64 (*.f64 a1 a2) b1) b2) (if (<=.f64 (*.f64 a1 a2) 2024022533073/101201126653655309176247673359458653524778324882071059178450679013715169783997673445980191850718562247593538932158405955694904368692896738433506699970369254960758712138283180682233453871046608170619883839236372534281003741712346349309051677824579778170405028256179384776166707307615251266093163754323003131653853870546747392) (/.f64 (*.f64 (/.f64 a1 b2) a2) b1) (/.f64 (/.f64 (*.f64 a1 a2) b1) b2))))
(if (<=.f64 (*.f64 a1 a2) -4676805239458889/23384026197294446691258957323460528314494920687616) (/.f64 (*.f64 (/.f64 a1 b2) a2) b1) (if (<=.f64 (*.f64 a1 a2) -3048582568667961/762145642166990290864647761179972242614403843424065222377723867096038022172794340849684107193235344521442121855812163792833978437326241529856) (/.f64 (/.f64 (*.f64 a1 a2) b2) b1) (if (<=.f64 (*.f64 a1 a2) 2024022533073/101201126653655309176247673359458653524778324882071059178450679013715169783997673445980191850718562247593538932158405955694904368692896738433506699970369254960758712138283180682233453871046608170619883839236372534281003741712346349309051677824579778170405028256179384776166707307615251266093163754323003131653853870546747392) (/.f64 (*.f64 (/.f64 a1 b2) a2) b1) (/.f64 (/.f64 (*.f64 a1 a2) b2) b1))))
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
Outputs
(if (<=.f64 (/.f64 (*.f64 a1 a2) (*.f64 b1 b2)) -inf.0) (*.f64 (/.f64 a2 b1) (/.f64 a1 b2)) (if (<=.f64 (/.f64 (*.f64 a1 a2) (*.f64 b1 b2)) -6032057205060441/12064114410120881697684249086315471354100504503497011563593230129923244688987454586741947156276531487416450850028801674329627080999958126358211839195533902044386710183415792069701368078118158360793576698212191168580174892152827542937880954483101341506291035205862448784848059094859987648259778470316291228729945882624) (/.f64 (*.f64 a1 a2) (*.f64 b1 b2)) (if (<=.f64 (/.f64 (*.f64 a1 a2) (*.f64 b1 b2)) 4941461262385513/24707306311927565716857342128774085333197833223161879682238935306082805123046306993647507776054336486228891340858985829027076261887914242781617846672453431386903982455635542158748401823985988322905245077938567513252198179128990807936780194781391547404884040101606295111368825026273254703636026307207764436438929167613952) (*.f64 (/.f64 a2 b1) (/.f64 a1 b2)) (if (<=.f64 (/.f64 (*.f64 a1 a2) (*.f64 b1 b2)) 199999999999999992701373735918357116631804549565985153064628970972443492602480411625348685741640985599675569876002408075550379507087920437583886295587576290642133049161236473317937266725516180055400670622987509956668735259751478274996752027315378862823736417652149903488970653696) (/.f64 (*.f64 a1 a2) (*.f64 b1 b2)) (*.f64 (/.f64 a2 b1) (/.f64 a1 b2))))))
(if (<=.f64 (*.f64 a1 a2) -500000000000000006973056902059962218987082928493319165556047085454840244713065271819204256539302862104897576699748505732232744236818610455170287378791473453516173873413357412617039474932160920305416077787124106846790742307490978048163971072) (*.f64 (/.f64 a1 (*.f64 b1 b2)) a2) (if (<=.f64 (*.f64 a1 a2) -7983361238138879/159667224762777584932509817042947085285396100834836603320203779394976951349517125262796637239410856087147395747535399619517795039071487492859133743862786513625600453836086854121403017715549038974612268539563513919466464836409669631111108421475843532600569672550060483331388679618427520794230784) (/.f64 (/.f64 (*.f64 a1 a2) b2) b1) (if (<=.f64 (*.f64 a1 a2) 3701491575958035/740298315191606967520227188330889966610377319868419938630605715764070011466206019559325413145373572325939050053182159998975553533608824916574615132828322000124194610605645134711392062011527273571616649243219599128195212771328) (/.f64 a1 (/.f64 b1 (/.f64 a2 b2))) (if (<=.f64 (*.f64 a1 a2) 9999999999999999338604948347429745623719502164303315186116928223077006466996036476256924325958459471709145545996985214755393808134448127932794585054037286174943850004480) (/.f64 (/.f64 (*.f64 a1 a2) b2) b1) (*.f64 (/.f64 a2 b1) (/.f64 a1 b2))))))
(if (<=.f64 (*.f64 a1 a2) -500000000000000006973056902059962218987082928493319165556047085454840244713065271819204256539302862104897576699748505732232744236818610455170287378791473453516173873413357412617039474932160920305416077787124106846790742307490978048163971072) (*.f64 a2 (/.f64 a1 (*.f64 b1 b2))) (if (<=.f64 (*.f64 a1 a2) -7983361238138879/159667224762777584932509817042947085285396100834836603320203779394976951349517125262796637239410856087147395747535399619517795039071487492859133743862786513625600453836086854121403017715549038974612268539563513919466464836409669631111108421475843532600569672550060483331388679618427520794230784) (/.f64 (/.f64 (*.f64 a1 a2) b2) b1) (if (<=.f64 (*.f64 a1 a2) 3701491575958035/740298315191606967520227188330889966610377319868419938630605715764070011466206019559325413145373572325939050053182159998975553533608824916574615132828322000124194610605645134711392062011527273571616649243219599128195212771328) (/.f64 a1 (/.f64 b1 (/.f64 a2 b2))) (if (<=.f64 (*.f64 a1 a2) 9999999999999999338604948347429745623719502164303315186116928223077006466996036476256924325958459471709145545996985214755393808134448127932794585054037286174943850004480) (/.f64 (/.f64 (*.f64 a1 a2) b2) b1) (*.f64 (/.f64 a2 b1) (/.f64 a1 b2))))))
(if (<=.f64 (*.f64 a1 a2) -500000000000000006973056902059962218987082928493319165556047085454840244713065271819204256539302862104897576699748505732232744236818610455170287378791473453516173873413357412617039474932160920305416077787124106846790742307490978048163971072) (*.f64 (/.f64 a2 b1) (/.f64 a1 b2)) (if (<=.f64 (*.f64 a1 a2) -7983361238138879/159667224762777584932509817042947085285396100834836603320203779394976951349517125262796637239410856087147395747535399619517795039071487492859133743862786513625600453836086854121403017715549038974612268539563513919466464836409669631111108421475843532600569672550060483331388679618427520794230784) (/.f64 (/.f64 (*.f64 a1 a2) b2) b1) (if (<=.f64 (*.f64 a1 a2) 3701491575958035/740298315191606967520227188330889966610377319868419938630605715764070011466206019559325413145373572325939050053182159998975553533608824916574615132828322000124194610605645134711392062011527273571616649243219599128195212771328) (/.f64 a1 (/.f64 b1 (/.f64 a2 b2))) (if (<=.f64 (*.f64 a1 a2) 9999999999999999338604948347429745623719502164303315186116928223077006466996036476256924325958459471709145545996985214755393808134448127932794585054037286174943850004480) (/.f64 (/.f64 (*.f64 a1 a2) b2) b1) (*.f64 (/.f64 a2 b1) (/.f64 a1 b2))))))
(if (<=.f64 (*.f64 a1 a2) -500000000000000006973056902059962218987082928493319165556047085454840244713065271819204256539302862104897576699748505732232744236818610455170287378791473453516173873413357412617039474932160920305416077787124106846790742307490978048163971072) (*.f64 (/.f64 a2 b1) (/.f64 a1 b2)) (if (<=.f64 (*.f64 a1 a2) -5038209258419659/251910462920982955146951572855242064723418868082104455055218081010186148908960752236565235084370225856148908135059894885483907489539473312974233140212507046179002134322645704349866637075627537275802723363977045251916898867011814946574400376685636747593659677933568) (/.f64 (/.f64 (*.f64 a1 a2) b2) b1) (if (<=.f64 (*.f64 a1 a2) 3061802069160839/153090103458041951154620325043801237641319743206933311288544235956760011447392195175450369025277569052617268428910122535686807015741471080782585043071649294869136754165183653769539196448293593632735232) (*.f64 (/.f64 a2 b1) (/.f64 a1 b2)) (if (<=.f64 (*.f64 a1 a2) 9999999999999999338604948347429745623719502164303315186116928223077006466996036476256924325958459471709145545996985214755393808134448127932794585054037286174943850004480) (/.f64 (/.f64 (*.f64 a1 a2) b2) b1) (*.f64 (/.f64 a2 b1) (/.f64 a1 b2))))))
(if (<=.f64 (*.f64 a1 a2) -99999999999999995280522225138166806691251291352861698530421623488512) (/.f64 (*.f64 (/.f64 a1 b2) a2) b1) (if (<=.f64 (*.f64 a1 a2) -3048582568667961/762145642166990290864647761179972242614403843424065222377723867096038022172794340849684107193235344521442121855812163792833978437326241529856) (/.f64 (/.f64 (*.f64 a1 a2) b1) b2) (if (<=.f64 (*.f64 a1 a2) 2024022533073/101201126653655309176247673359458653524778324882071059178450679013715169783997673445980191850718562247593538932158405955694904368692896738433506699970369254960758712138283180682233453871046608170619883839236372534281003741712346349309051677824579778170405028256179384776166707307615251266093163754323003131653853870546747392) (/.f64 (*.f64 (/.f64 a1 b2) a2) b1) (/.f64 (/.f64 (*.f64 a1 a2) b1) b2))))
(if (<=.f64 (*.f64 a1 a2) -99999999999999995280522225138166806691251291352861698530421623488512) (/.f64 (*.f64 a2 (/.f64 a1 b2)) b1) (if (<=.f64 (*.f64 a1 a2) -3048582568667961/762145642166990290864647761179972242614403843424065222377723867096038022172794340849684107193235344521442121855812163792833978437326241529856) (/.f64 (/.f64 (*.f64 a1 a2) b1) b2) (if (<=.f64 (*.f64 a1 a2) 2024022533073/101201126653655309176247673359458653524778324882071059178450679013715169783997673445980191850718562247593538932158405955694904368692896738433506699970369254960758712138283180682233453871046608170619883839236372534281003741712346349309051677824579778170405028256179384776166707307615251266093163754323003131653853870546747392) (/.f64 (*.f64 a2 (/.f64 a1 b2)) b1) (/.f64 (/.f64 (*.f64 a1 a2) b1) b2))))
(if (<=.f64 (*.f64 a1 a2) -4676805239458889/23384026197294446691258957323460528314494920687616) (/.f64 (*.f64 (/.f64 a1 b2) a2) b1) (if (<=.f64 (*.f64 a1 a2) -3048582568667961/762145642166990290864647761179972242614403843424065222377723867096038022172794340849684107193235344521442121855812163792833978437326241529856) (/.f64 (/.f64 (*.f64 a1 a2) b2) b1) (if (<=.f64 (*.f64 a1 a2) 2024022533073/101201126653655309176247673359458653524778324882071059178450679013715169783997673445980191850718562247593538932158405955694904368692896738433506699970369254960758712138283180682233453871046608170619883839236372534281003741712346349309051677824579778170405028256179384776166707307615251266093163754323003131653853870546747392) (/.f64 (*.f64 (/.f64 a1 b2) a2) b1) (/.f64 (/.f64 (*.f64 a1 a2) b2) b1))))
(if (<=.f64 (*.f64 a1 a2) -4676805239458889/23384026197294446691258957323460528314494920687616) (/.f64 (*.f64 a2 (/.f64 a1 b2)) b1) (if (<=.f64 (*.f64 a1 a2) -3048582568667961/762145642166990290864647761179972242614403843424065222377723867096038022172794340849684107193235344521442121855812163792833978437326241529856) (/.f64 (/.f64 (*.f64 a1 a2) b2) b1) (if (<=.f64 (*.f64 a1 a2) 2024022533073/101201126653655309176247673359458653524778324882071059178450679013715169783997673445980191850718562247593538932158405955694904368692896738433506699970369254960758712138283180682233453871046608170619883839236372534281003741712346349309051677824579778170405028256179384776166707307615251266093163754323003131653853870546747392) (/.f64 (*.f64 a2 (/.f64 a1 b2)) b1) (/.f64 (/.f64 (*.f64 a1 a2) b2) b1))))
(/.f64 (*.f64 (/.f64 a1 b2) a2) b1)
(/.f64 (*.f64 a2 (/.f64 a1 b2)) b1)
Compiler

Compiled 379 to 142 computations (62.5% saved)

soundness0.0ms (0%)

end89.0ms (2.2%)

Remove

(sort b1 b2)

Compiler

Compiled 829 to 219 computations (73.6% saved)

Profiling

Loading profile data...