Details

Time bar (total: 3.6s)

analyze296.0ms (8.2%)

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

Results
1.1s8246×body64valid
229.0ms2030×body64invalid
2.0ms10×body128valid

preprocess22.0ms (0.6%)

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 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a1 (/.f64 a2 (*.f64 b1 b2)))
(/.f64 (*.f64 a2 a1) (*.f64 b1 b2))
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a1 (/.f64 a2 (*.f64 b1 b2)))
(/.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 a2 (/.f64 b2 (*.f64 a1 b1)))
(*.f64 b2 (/.f64 (/.f64 a2 b1) a1))
(/.f64 (*.f64 a1 b1) (*.f64 a2 b2))
(/.f64 (/.f64 (*.f64 a1 b1) a2) b2)
(*.f64 (/.f64 a1 a2) (/.f64 b1 b2))
(/.f64 (/.f64 a1 a2) (/.f64 b2 b1))
(/.f64 (*.f64 a1 b2) (*.f64 b1 a2))
(*.f64 (/.f64 a1 b1) (/.f64 b2 a2))
(*.f64 (/.f64 a1 a2) (/.f64 b2 b1))
(*.f64 a1 (/.f64 (/.f64 b2 b1) a2))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a1 (/.f64 a2 (*.f64 b1 b2)))
Symmetry

(sort a1 a2)

(sort b1 b2)

Compiler

Compiled 11 to 7 computations (36.4% 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)))

prune3.0ms (0.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
5.0b
Counts
3 → 2
Alt Table
StatusErrorProgram
9.4b
(*.f64 a1 (/.f64 a2 (*.f64 b1 b2)))
9.0b
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
Compiler

Compiled 62 to 37 computations (40.3% saved)

localize7.0ms (0.2%)

Local error

Found 1 expressions with local error:

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

series10.0ms (0.3%)

Counts
1 → 48
Calls

12 calls:

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

rewrite59.0ms (1.6%)

Algorithm
batch-egg-rewrite
Rules
557×log-prod_binary64
434×exp-prod_binary64
316×pow-prod-down_binary64
256×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 (/.f64 b1 a1) (/.f64 b2 a2)) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (*.f64 (/.f64 b1 a1) (/.f64 b2 a2)) -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 a2 (/.f64 b1 a1)) (/.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 a2 (/.f64 b1 a1)))))) (#(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 (/.f64 b1 a1) (/.f64 b2 a2)) -2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 b1 a1) (/.f64 b2 a2)) -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 (/.f64 b1 a1) (/.f64 b2 a2)) -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 (/.f64 b1 a1) (/.f64 b2 a2)) 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 (/.f64 b1 a1) (/.f64 b2 a2)) -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 (/.f64 b1 a1) (/.f64 b2 a2)) -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 (/.f64 b1 a1) (/.f64 b2 a2)) -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 (/.f64 b1 a1) (/.f64 b2 a2))) -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 a2 (/.f64 b1 a1))) (*.f64 (log.f64 b2) 1)))))))

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

prune158.0ms (4.4%)

Pruning

7 alts after pruning (6 fresh and 1 done)

PrunedKeptTotal
New69675
Fresh101
Picked011
Done000
Total70777
Error
0.0b
Counts
77 → 7
Alt Table
StatusErrorProgram
12.7b
(*.f64 (/.f64 a2 (/.f64 b1 a1)) (/.f64 1 b2))
9.2b
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
11.4b
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
9.1b
(*.f64 (*.f64 a1 a2) (/.f64 1 (*.f64 b1 b2)))
10.2b
(*.f64 (/.f64 1 b1) (/.f64 (*.f64 a1 a2) b2))
11.7b
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
9.0b
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
Compiler

Compiled 1074 to 392 computations (63.5% saved)

localize6.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.5b
(/.f64 1 (*.f64 b1 b2))
8.6b
(*.f64 (*.f64 a1 a2) (/.f64 1 (*.f64 b1 b2)))

series6.0ms (0.2%)

Counts
2 → 72
Calls

18 calls:

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

rewrite92.0ms (2.6%)

Algorithm
batch-egg-rewrite
Rules
541×log-prod_binary64
437×prod-exp_binary64
405×exp-prod_binary64
354×pow-prod-down_binary64
253×pow2_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01017
120217
2256217
Stop Event
node limit
Counts
2 → 103
Calls
Call 1
Inputs
(*.f64 (*.f64 a1 a2) (/.f64 1 (*.f64 b1 b2)))
(/.f64 1 (*.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 (*.f64 b1 b2) a2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 a2 (/.f64 (*.f64 b1 b2) a1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 a1 a2) (*.f64 b1 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 (cbrt.f64 (pow.f64 (*.f64 a1 a2) 2)) (/.f64 (*.f64 b1 b2) (cbrt.f64 (*.f64 a1 a2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (*.f64 a1 a2)) (/.f64 (*.f64 b1 b2) (sqrt.f64 (*.f64 a1 a2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 a1 a2)) (*.f64 b2 (neg.f64 b1)))))) (#(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) 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 (*.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 -1 (*.f64 a1 a2)) (*.f64 b2 (neg.f64 b1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (/.f64 1 b1) (*.f64 a1 a2)) b2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 a1 a2) -1) (*.f64 b2 (neg.f64 b1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 a1 a2) (/.f64 1 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 (E.f64) (log.f64 (*.f64 (/.f64 a1 b1) (/.f64 a2 b2))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 a1 b1) (/.f64 a2 b2)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 a1 b1) (/.f64 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 (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 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 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 sqrt.f64 (pow.f64 (*.f64 (/.f64 a1 b1) (/.f64 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 (/.f64 a1 b1) (/.f64 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 (*.f64 3 (log.f64 (*.f64 (/.f64 a1 b1) (/.f64 a2 b2)))) 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 (*.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 (*.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 (*.f64 (log.f64 a1) 1) (log.f64 (/.f64 a2 (*.f64 b1 b2)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (*.f64 a1 a2)) 1) (neg.f64 (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 a1 a2)) (*.f64 (neg.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 (neg.f64 (log.f64 (*.f64 b1 b2))) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (*.f64 b1 b2)) -1) (log.f64 (*.f64 a1 a2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (neg.f64 (log.f64 (*.f64 b1 b2))) 1) (log.f64 (*.f64 a1 a2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (neg.f64 (log.f64 (*.f64 b1 b2))) (*.f64 (log.f64 (*.f64 a1 a2)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (*.f64 b1 b2)) -1) (*.f64 (log.f64 (*.f64 a1 a2)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (neg.f64 (log.f64 (*.f64 b1 b2))) 1) (*.f64 (log.f64 (*.f64 a1 a2)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log.f64 (/.f64 a2 (*.f64 b1 b2))) (*.f64 (log.f64 a1) 1)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 (/.f64 1 b1) b2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (/.f64 (/.f64 1 b1) b2))) 2)) (log.f64 (cbrt.f64 (exp.f64 (/.f64 (/.f64 1 b1) b2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (/.f64 (/.f64 1 b1) b2)))) (log.f64 (sqrt.f64 (exp.f64 (/.f64 (/.f64 1 b1) b2)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 (/.f64 1 b1) b2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 (/.f64 1 b1) b2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 1 b1) b2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 (/.f64 1 b1) b2)) (cbrt.f64 (pow.f64 (*.f64 b1 b2) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (*.f64 b1 b2) -2)) (cbrt.f64 (/.f64 (/.f64 1 b1) b2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 b1 b2) -1/2) (pow.f64 (*.f64 b1 b2) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (/.f64 1 (*.f64 b2 (neg.f64 b1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 b1) (/.f64 1 b2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 b2) (/.f64 1 b1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 b1 b2)) -2) (cbrt.f64 (/.f64 (/.f64 1 b1) b2)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 b1 b2) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (/.f64 1 b1) b2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (E.f64) (neg.f64 (log.f64 (*.f64 b1 b2))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 b1 b2) 2) -1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 b1 b2) 3) -1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 b1 b2) -2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 b1 b2) -3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 b1 b2)) -3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 (/.f64 1 b1) b2)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 b1 b2)) -2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 b1 b2) -1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 -1) (log.f64 (*.f64 b1 b2)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (neg.f64 (*.f64 b2 (neg.f64 b1))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (neg.f64 (log.f64 (*.f64 b1 b2)))) 2)) (cbrt.f64 (neg.f64 (log.f64 (*.f64 b1 b2)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (neg.f64 (log.f64 (*.f64 b1 b2))))) (sqrt.f64 (neg.f64 (log.f64 (*.f64 b1 b2)))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 b1 b2) -2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 (/.f64 1 b1) b2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 (/.f64 1 b1) b2))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 b1 b2) -3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 (/.f64 1 b1) b2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 (/.f64 1 b1) b2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (neg.f64 (log.f64 (*.f64 b1 b2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 b1 b2)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (neg.f64 (log.f64 (*.f64 b1 b2))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (neg.f64 (*.f64 (log.f64 (*.f64 b1 b2)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 b1 b2) -3)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (neg.f64 (log.f64 (cbrt.f64 (*.f64 b1 b2)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 -1/2 (log.f64 (*.f64 b1 b2))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 b1 b2)) 1) -1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 b1 b2)) -1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (neg.f64 (log.f64 (*.f64 b1 b2))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (neg.f64 (log.f64 b1)) (*.f64 (log.f64 b2) 1)))))))

simplify29.0ms (0.8%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
010648
123648
246648
375648
487648
587648
Stop Event
saturated
Counts
175 → 106
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 1 (*.f64 b2 b1))
(/.f64 1 (*.f64 b2 b1))
(/.f64 1 (*.f64 b2 b1))
(/.f64 1 (*.f64 b2 b1))
(/.f64 1 (*.f64 b2 b1))
(/.f64 1 (*.f64 b2 b1))
(/.f64 1 (*.f64 b2 b1))
(/.f64 1 (*.f64 b2 b1))
(/.f64 1 (*.f64 b2 b1))
(/.f64 1 (*.f64 b2 b1))
(/.f64 1 (*.f64 b2 b1))
(/.f64 1 (*.f64 b2 b1))
(/.f64 1 (*.f64 b2 b1))
(/.f64 1 (*.f64 b2 b1))
(/.f64 1 (*.f64 b2 b1))
(/.f64 1 (*.f64 b2 b1))
(/.f64 1 (*.f64 b2 b1))
(/.f64 1 (*.f64 b2 b1))
(/.f64 1 (*.f64 b2 b1))
(/.f64 1 (*.f64 b2 b1))
(/.f64 1 (*.f64 b2 b1))
(/.f64 1 (*.f64 b2 b1))
(/.f64 1 (*.f64 b2 b1))
(/.f64 1 (*.f64 b2 b1))
Outputs
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(/.f64 (*.f64 a1 (/.f64 a2 b1)) b2)
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(/.f64 (*.f64 a1 (/.f64 a2 b1)) b2)
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(/.f64 (*.f64 a1 (/.f64 a2 b1)) b2)
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(/.f64 (*.f64 a1 (/.f64 a2 b1)) b2)
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(/.f64 (*.f64 a1 (/.f64 a2 b1)) b2)
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(/.f64 (*.f64 a1 (/.f64 a2 b1)) b2)
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(/.f64 (*.f64 a1 (/.f64 a2 b1)) b2)
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(/.f64 (*.f64 a1 (/.f64 a2 b1)) b2)
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(/.f64 (*.f64 a1 (/.f64 a2 b1)) b2)
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(/.f64 (*.f64 a1 (/.f64 a2 b1)) b2)
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(/.f64 (*.f64 a1 (/.f64 a2 b1)) b2)
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(/.f64 (*.f64 a1 (/.f64 a2 b1)) b2)
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(/.f64 (*.f64 a1 (/.f64 a2 b1)) b2)
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(/.f64 (*.f64 a1 (/.f64 a2 b1)) b2)
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(/.f64 (*.f64 a1 (/.f64 a2 b1)) b2)
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(/.f64 (*.f64 a1 (/.f64 a2 b1)) b2)
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(/.f64 (*.f64 a1 (/.f64 a2 b1)) b2)
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(/.f64 (*.f64 a1 (/.f64 a2 b1)) b2)
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(/.f64 (*.f64 a1 (/.f64 a2 b1)) b2)
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(/.f64 (*.f64 a1 (/.f64 a2 b1)) b2)
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(/.f64 (*.f64 a1 (/.f64 a2 b1)) b2)
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(/.f64 (*.f64 a1 (/.f64 a2 b1)) b2)
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(/.f64 (*.f64 a1 (/.f64 a2 b1)) b2)
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(/.f64 (*.f64 a1 (/.f64 a2 b1)) b2)
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(/.f64 (*.f64 a1 (/.f64 a2 b1)) b2)
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(/.f64 (*.f64 a1 (/.f64 a2 b1)) b2)
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(/.f64 (*.f64 a1 (/.f64 a2 b1)) b2)
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(/.f64 (*.f64 a1 (/.f64 a2 b1)) b2)
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(/.f64 (*.f64 a1 (/.f64 a2 b1)) b2)
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(/.f64 (*.f64 a1 (/.f64 a2 b1)) b2)
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(/.f64 (*.f64 a1 (/.f64 a2 b1)) b2)
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(/.f64 (*.f64 a1 (/.f64 a2 b1)) b2)
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(/.f64 (*.f64 a1 (/.f64 a2 b1)) b2)
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(/.f64 (*.f64 a1 (/.f64 a2 b1)) b2)
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(/.f64 (*.f64 a1 (/.f64 a2 b1)) b2)
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(/.f64 (*.f64 a1 (/.f64 a2 b1)) b2)
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(/.f64 (*.f64 a1 (/.f64 a2 b1)) b2)
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(/.f64 (*.f64 a1 (/.f64 a2 b1)) b2)
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(/.f64 (*.f64 a1 (/.f64 a2 b1)) b2)
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(/.f64 (*.f64 a1 (/.f64 a2 b1)) b2)
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(/.f64 (*.f64 a1 (/.f64 a2 b1)) b2)
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(/.f64 (*.f64 a1 (/.f64 a2 b1)) b2)
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(/.f64 (*.f64 a1 (/.f64 a2 b1)) b2)
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(/.f64 (*.f64 a1 (/.f64 a2 b1)) b2)
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(/.f64 (*.f64 a1 (/.f64 a2 b1)) b2)
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(/.f64 (*.f64 a1 (/.f64 a2 b1)) b2)
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(/.f64 (*.f64 a1 (/.f64 a2 b1)) b2)
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(/.f64 (*.f64 a1 (/.f64 a2 b1)) b2)
(*.f64 a2 (/.f64 a1 (*.f64 b2 b1)))
(/.f64 1 (*.f64 b2 b1))
(/.f64 1 (*.f64 b2 b1))
(/.f64 1 (*.f64 b2 b1))
(/.f64 1 (*.f64 b2 b1))
(/.f64 1 (*.f64 b2 b1))
(/.f64 1 (*.f64 b2 b1))
(/.f64 1 (*.f64 b2 b1))
(/.f64 1 (*.f64 b2 b1))
(/.f64 1 (*.f64 b2 b1))
(/.f64 1 (*.f64 b2 b1))
(/.f64 1 (*.f64 b2 b1))
(/.f64 1 (*.f64 b2 b1))
(/.f64 1 (*.f64 b2 b1))
(/.f64 1 (*.f64 b2 b1))
(/.f64 1 (*.f64 b2 b1))
(/.f64 1 (*.f64 b2 b1))
(/.f64 1 (*.f64 b2 b1))
(/.f64 1 (*.f64 b2 b1))
(/.f64 1 (*.f64 b2 b1))
(/.f64 1 (*.f64 b2 b1))
(/.f64 1 (*.f64 b2 b1))
(/.f64 1 (*.f64 b2 b1))
(/.f64 1 (*.f64 b2 b1))
(/.f64 1 (*.f64 b2 b1))

prune178.0ms (4.9%)

Pruning

7 alts after pruning (6 fresh and 1 done)

PrunedKeptTotal
New1033106
Fresh235
Picked011
Done101
Total1067113
Error
0.0b
Counts
113 → 7
Alt Table
StatusErrorProgram
11.4b
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
9.2b
(/.f64 1 (/.f64 (*.f64 b1 b2) (*.f64 a1 a2)))
9.7b
(/.f64 a1 (/.f64 (*.f64 b1 b2) a2))
9.1b
(*.f64 (*.f64 a1 a2) (/.f64 1 (*.f64 b1 b2)))
10.2b
(*.f64 (/.f64 1 b1) (/.f64 (*.f64 a1 a2) b2))
11.7b
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
10.1b
(/.f64 (/.f64 (*.f64 a1 a2) b2) b1)
Compiler

Compiled 1432 to 603 computations (57.9% saved)

localize6.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.5b
(/.f64 1 (/.f64 (*.f64 b1 b2) (*.f64 a1 a2)))
8.6b
(/.f64 (*.f64 b1 b2) (*.f64 a1 a2))

series14.0ms (0.4%)

Counts
2 → 96
Calls

24 calls:

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

rewrite72.0ms (2%)

Algorithm
batch-egg-rewrite
Rules
640×log-prod_binary64
370×pow-prod-down_binary64
275×pow2_binary64
247×pow-unpow_binary64
196×pow1/3_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01023
121020
2300820
Stop Event
node limit
Counts
2 → 144
Calls
Call 1
Inputs
(/.f64 (*.f64 b1 b2) (*.f64 a1 a2))
(/.f64 1 (/.f64 (*.f64 b1 b2) (*.f64 a1 a2)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (/.f64 b2 a1) (/.f64 b1 a2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (/.f64 b2 a2)) (/.f64 b1 a1))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (/.f64 b2 a2)) (/.f64 b1 a1)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (/.f64 b2 a2)) (/.f64 b1 a1)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (/.f64 b2 a2)) (/.f64 b1 a1)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (/.f64 b2 a1) (/.f64 b1 a2)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 b1 (/.f64 1 (/.f64 a2 (/.f64 b2 a1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 b1 (*.f64 b2 (/.f64 1 (*.f64 a1 a2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 b2 (*.f64 b1 (/.f64 1 (*.f64 a1 a2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 b1 b2) (/.f64 1 (*.f64 a1 a2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 b2 a1) (/.f64 b1 a2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (/.f64 b2 a1) (/.f64 b1 a2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (/.f64 b2 a1) (/.f64 b1 a2))) (pow.f64 (cbrt.f64 (*.f64 (/.f64 b2 a1) (/.f64 b1 a2))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 (/.f64 b2 a1) (/.f64 b1 a2))) 2) (cbrt.f64 (*.f64 (/.f64 b2 a1) (/.f64 b1 a2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (*.f64 b1 b2) 2)) (*.f64 (cbrt.f64 (*.f64 b1 b2)) (/.f64 1 (*.f64 a1 a2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (/.f64 b2 a1) (/.f64 b1 a2))) (sqrt.f64 (*.f64 (/.f64 b2 a1) (/.f64 b1 a2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 b1 b2)) (*.f64 (sqrt.f64 (*.f64 b1 b2)) (/.f64 1 (*.f64 a1 a2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 b1 (neg.f64 b2)) (/.f64 1 (*.f64 a1 (neg.f64 a2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 b1 a1) (/.f64 b2 a2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 b2 a2) (/.f64 b1 a1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (*.f64 a1 a2)) (*.f64 b1 b2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 b2 (/.f64 a1 b1)) (/.f64 1 a2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 b2 a1) (/.f64 b1 a2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 b1 a2) (/.f64 b2 a1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 a1) (/.f64 (*.f64 b1 b2) a2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (pow.f64 (*.f64 b1 b2) 2)) a1) (/.f64 (cbrt.f64 (*.f64 b1 b2)) a2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (*.f64 b1 b2)) a1) (/.f64 (sqrt.f64 (*.f64 b1 b2)) a2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (*.f64 b1 b2)) a2) (/.f64 (sqrt.f64 (*.f64 b1 b2)) a1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 a2) (/.f64 b2 (/.f64 a1 b1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (pow.f64 (*.f64 b1 b2) 2)) a2) (/.f64 (cbrt.f64 (*.f64 b1 b2)) a1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 b1 1) (/.f64 b2 (*.f64 a1 a2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 b2 1) (/.f64 b1 (*.f64 a1 a2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 b1 (*.f64 a1 a2)) b2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (pow.f64 (*.f64 b1 b2) 2)) 1) (/.f64 (cbrt.f64 (*.f64 b1 b2)) (*.f64 a1 a2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (*.f64 b1 b2)) 1) (/.f64 (sqrt.f64 (*.f64 b1 b2)) (*.f64 a1 a2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 b1 (cbrt.f64 (pow.f64 (*.f64 a1 a2) 2))) (/.f64 b2 (cbrt.f64 (*.f64 a1 a2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 b2 (cbrt.f64 (pow.f64 (*.f64 a1 a2) 2))) (/.f64 b1 (cbrt.f64 (*.f64 a1 a2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 a1 a2)) -2) (/.f64 (*.f64 b1 b2) (cbrt.f64 (*.f64 a1 a2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (pow.f64 (*.f64 b1 b2) 2)) (cbrt.f64 (pow.f64 (*.f64 a1 a2) 2))) (cbrt.f64 (*.f64 (/.f64 b2 a1) (/.f64 b1 a2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (*.f64 b1 b2)) (cbrt.f64 (pow.f64 (*.f64 a1 a2) 2))) (/.f64 (sqrt.f64 (*.f64 b1 b2)) (cbrt.f64 (*.f64 a1 a2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 b1 (sqrt.f64 (*.f64 a1 a2))) (/.f64 b2 (sqrt.f64 (*.f64 a1 a2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 b2 (sqrt.f64 (*.f64 a1 a2))) (/.f64 b1 (sqrt.f64 (*.f64 a1 a2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (*.f64 a1 a2) -1/2) (/.f64 (*.f64 b1 b2) (sqrt.f64 (*.f64 a1 a2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (pow.f64 (*.f64 b1 b2) 2)) (sqrt.f64 (*.f64 a1 a2))) (/.f64 (cbrt.f64 (*.f64 b1 b2)) (sqrt.f64 (*.f64 a1 a2))))))) (#(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 (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 a2 b2) (/.f64 a1 b1)) -3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 b2 a1) (/.f64 b1 a2)) -3) -1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (/.f64 b2 a1) (/.f64 b1 a2))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (/.f64 a2 b2) (/.f64 a1 b1))) -3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (/.f64 b2 a1) (/.f64 b1 a2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (/.f64 a2 b2) (/.f64 a1 b1))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 a2 b2) (/.f64 a1 b1)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 (*.f64 b1 b2) 3) (pow.f64 (*.f64 a1 a2) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (*.f64 (/.f64 a2 b2) (/.f64 a1 b1)) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (*.f64 b1 b2) (*.f64 a1 (neg.f64 a2))))))) (#(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 b2 a2)) (/.f64 b1 a1)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (/.f64 b2 a1) (/.f64 b1 a2)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (/.f64 a2 b2) (/.f64 a1 b1)) -3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (*.f64 b1 b2) 3) (pow.f64 (*.f64 a1 a2) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (/.f64 b2 a1) (/.f64 b1 a2))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (/.f64 b2 a1) (/.f64 b1 a2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (/.f64 b2 a1) (/.f64 b1 a2))))))) (#(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 (log.f64 (pow.f64 (*.f64 (/.f64 a2 b2) (/.f64 a1 b1)) -3)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (/.f64 b2 a1) (/.f64 b1 a2)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (/.f64 b2 a1) (/.f64 b1 a2)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (/.f64 a2 b2) (/.f64 a1 b1))) -1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (/.f64 b2 a1) (/.f64 b1 a2))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (/.f64 b2 a1) (/.f64 b1 a2))) -1) -1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (/.f64 a2 b2) (/.f64 a1 b1))) 1) -1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (/.f64 a2 b2) (/.f64 a1 b1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (*.f64 (/.f64 a2 b2) (/.f64 a1 b1)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (*.f64 (/.f64 a2 b2) (/.f64 a1 b1))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (*.f64 (/.f64 a2 b2) (/.f64 a1 b1))))) (log.f64 (sqrt.f64 (exp.f64 (*.f64 (/.f64 a2 b2) (/.f64 a1 b1))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (/.f64 a2 b2) (/.f64 a1 b1)))) 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 1 (*.f64 (/.f64 a2 b2) (/.f64 a1 b1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (/.f64 a2 b2) (/.f64 a1 b1))) (cbrt.f64 (pow.f64 (*.f64 (/.f64 a2 b2) (/.f64 a1 b1)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (*.f64 (/.f64 a2 b2) (/.f64 a1 b1)) 2)) (cbrt.f64 (*.f64 (/.f64 a2 b2) (/.f64 a1 b1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (/.f64 a2 b2) (/.f64 a1 b1))) (sqrt.f64 (*.f64 (/.f64 a2 b2) (/.f64 a1 b1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (/.f64 1 (/.f64 (neg.f64 b1) (/.f64 a2 (/.f64 b2 a1)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 a2 b2) (/.f64 a1 b1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (*.f64 b1 b2)) (*.f64 a1 a2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 (/.f64 b2 a1) (/.f64 b1 a2))) -2) (cbrt.f64 (*.f64 (/.f64 a2 b2) (/.f64 a1 b1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (/.f64 b1 a1)) (/.f64 1 (/.f64 b2 a2)))))) (#(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 b2) (/.f64 a1 b1))))) (#(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 a1 b2) (/.f64 a2 b1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (pow.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)) b2) (/.f64 (sqrt.f64 (*.f64 a1 a2)) b1))))) (#(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 1 b1) (/.f64 a2 (/.f64 b2 a1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (pow.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 1 b2) (/.f64 (*.f64 a1 a2) b1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (pow.f64 (*.f64 a1 a2) 2)) b2) (/.f64 (cbrt.f64 (*.f64 a1 a2)) b1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 a1 (cbrt.f64 (pow.f64 (*.f64 b1 b2) 2))) (/.f64 a2 (cbrt.f64 (*.f64 b1 b2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 a2 (cbrt.f64 (pow.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 (cbrt.f64 (pow.f64 (*.f64 a1 a2) 2)) (cbrt.f64 (pow.f64 (*.f64 b1 b2) 2))) (/.f64 (cbrt.f64 (*.f64 a1 a2)) (cbrt.f64 (*.f64 b1 b2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (*.f64 a1 a2)) (cbrt.f64 (pow.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 (cbrt.f64 (pow.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 *.f64 (/.f64 (sqrt.f64 (*.f64 a1 a2)) (sqrt.f64 (*.f64 b1 b2))) (/.f64 (sqrt.f64 (*.f64 a1 a2)) (sqrt.f64 (*.f64 b1 b2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (*.f64 b1 (neg.f64 b2))) (*.f64 a1 (neg.f64 a2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (/.f64 b2 (/.f64 a1 b1))) a2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 1 (*.f64 b1 b2)) a1) a2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 1 (*.f64 b1 b2)) a2) a1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 1 (*.f64 b1 b2)) 1) (*.f64 a1 a2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 1 (*.f64 b1 b2)) (cbrt.f64 (pow.f64 (*.f64 a1 a2) 2))) (cbrt.f64 (*.f64 a1 a2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 1 (*.f64 b1 b2)) (sqrt.f64 (*.f64 a1 a2))) (sqrt.f64 (*.f64 a1 a2)))))) (#(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 (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 a2 b2) (/.f64 a1 b1)) -3) -1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 a2 b2) (/.f64 a1 b1)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 b2 a1) (/.f64 b1 a2)) -3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (/.f64 b2 a1) (/.f64 b1 a2))) -3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (/.f64 a2 b2) (/.f64 a1 b1))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (/.f64 b2 a1) (/.f64 b1 a2))) -2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (/.f64 a2 b2) (/.f64 a1 b1))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 a2 b2) (/.f64 a1 b1)) 1)))) (#(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 (neg.f64 (/.f64 (neg.f64 b1) (/.f64 a2 (/.f64 b2 a1)))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (sqrt.f64 (*.f64 a1 a2)) (sqrt.f64 (*.f64 b1 b2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (/.f64 a2 b2) (/.f64 a1 b1)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (*.f64 (/.f64 a2 b2) (/.f64 a1 b1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (/.f64 a2 b2) (/.f64 a1 b1)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (/.f64 b2 a1) (/.f64 b1 a2)) -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 a2 b2) (/.f64 a1 b1))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (/.f64 a2 b2) (/.f64 a1 b1))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (/.f64 a2 b2) (/.f64 a1 b1))))))) (#(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 (log.f64 (*.f64 (/.f64 a2 b2) (/.f64 a1 b1))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 (/.f64 a2 b2) (/.f64 a1 b1)))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (/.f64 a2 b2) (/.f64 a1 b1)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (/.f64 a2 b2) (/.f64 a1 b1)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (/.f64 b2 a1) (/.f64 b1 a2))) 1) -1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (/.f64 b2 a1) (/.f64 b1 a2))) -1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (/.f64 a2 b2) (/.f64 a1 b1))) 1) 1))))))

simplify33.0ms (0.9%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
09960
125960
259960
397960
4109960
Stop Event
saturated
Counts
240 → 148
Calls
Call 1
Inputs
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(/.f64 (*.f64 a1 a2) (*.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 b2 b1) (*.f64 a1 a2))
(*.f64 (/.f64 b2 a1) (/.f64 b1 a2))
(*.f64 b1 (/.f64 b2 (*.f64 a1 a2)))
(*.f64 b2 (/.f64 b1 (*.f64 a1 a2)))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(*.f64 (/.f64 b2 a1) (/.f64 b1 a2))
(*.f64 b1 (/.f64 b2 (*.f64 a1 a2)))
(*.f64 b2 (/.f64 b1 (*.f64 a1 a2)))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(*.f64 (/.f64 b2 a1) (/.f64 b1 a2))
(*.f64 b1 (/.f64 b2 (*.f64 a1 a2)))
(*.f64 b2 (/.f64 b1 (*.f64 a1 a2)))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(*.f64 (/.f64 b2 a1) (/.f64 b1 a2))
(*.f64 b1 (/.f64 b2 (*.f64 a1 a2)))
(*.f64 b2 (/.f64 b1 (*.f64 a1 a2)))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(*.f64 (/.f64 b2 a1) (/.f64 b1 a2))
(*.f64 b1 (/.f64 b2 (*.f64 a1 a2)))
(*.f64 b2 (/.f64 b1 (*.f64 a1 a2)))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(*.f64 (/.f64 b2 a1) (/.f64 b1 a2))
(*.f64 b1 (/.f64 b2 (*.f64 a1 a2)))
(*.f64 b2 (/.f64 b1 (*.f64 a1 a2)))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(*.f64 (/.f64 b2 a1) (/.f64 b1 a2))
(*.f64 b1 (/.f64 b2 (*.f64 a1 a2)))
(*.f64 b2 (/.f64 b1 (*.f64 a1 a2)))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(*.f64 (/.f64 b2 a1) (/.f64 b1 a2))
(*.f64 b1 (/.f64 b2 (*.f64 a1 a2)))
(*.f64 b2 (/.f64 b1 (*.f64 a1 a2)))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(*.f64 (/.f64 b2 a1) (/.f64 b1 a2))
(*.f64 b1 (/.f64 b2 (*.f64 a1 a2)))
(*.f64 b2 (/.f64 b1 (*.f64 a1 a2)))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(*.f64 (/.f64 b2 a1) (/.f64 b1 a2))
(*.f64 b1 (/.f64 b2 (*.f64 a1 a2)))
(*.f64 b2 (/.f64 b1 (*.f64 a1 a2)))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(*.f64 (/.f64 b2 a1) (/.f64 b1 a2))
(*.f64 b1 (/.f64 b2 (*.f64 a1 a2)))
(*.f64 b2 (/.f64 b1 (*.f64 a1 a2)))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(*.f64 (/.f64 b2 a1) (/.f64 b1 a2))
(*.f64 b1 (/.f64 b2 (*.f64 a1 a2)))
(*.f64 b2 (/.f64 b1 (*.f64 a1 a2)))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(*.f64 (/.f64 b2 a1) (/.f64 b1 a2))
(*.f64 b1 (/.f64 b2 (*.f64 a1 a2)))
(*.f64 b2 (/.f64 b1 (*.f64 a1 a2)))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(*.f64 (/.f64 b2 a1) (/.f64 b1 a2))
(*.f64 b1 (/.f64 b2 (*.f64 a1 a2)))
(*.f64 b2 (/.f64 b1 (*.f64 a1 a2)))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(*.f64 (/.f64 b2 a1) (/.f64 b1 a2))
(*.f64 b1 (/.f64 b2 (*.f64 a1 a2)))
(*.f64 b2 (/.f64 b1 (*.f64 a1 a2)))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(*.f64 (/.f64 b2 a1) (/.f64 b1 a2))
(*.f64 b1 (/.f64 b2 (*.f64 a1 a2)))
(*.f64 b2 (/.f64 b1 (*.f64 a1 a2)))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(*.f64 (/.f64 b2 a1) (/.f64 b1 a2))
(*.f64 b1 (/.f64 b2 (*.f64 a1 a2)))
(*.f64 b2 (/.f64 b1 (*.f64 a1 a2)))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(*.f64 (/.f64 b2 a1) (/.f64 b1 a2))
(*.f64 b1 (/.f64 b2 (*.f64 a1 a2)))
(*.f64 b2 (/.f64 b1 (*.f64 a1 a2)))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(*.f64 (/.f64 b2 a1) (/.f64 b1 a2))
(*.f64 b1 (/.f64 b2 (*.f64 a1 a2)))
(*.f64 b2 (/.f64 b1 (*.f64 a1 a2)))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(*.f64 (/.f64 b2 a1) (/.f64 b1 a2))
(*.f64 b1 (/.f64 b2 (*.f64 a1 a2)))
(*.f64 b2 (/.f64 b1 (*.f64 a1 a2)))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(*.f64 (/.f64 b2 a1) (/.f64 b1 a2))
(*.f64 b1 (/.f64 b2 (*.f64 a1 a2)))
(*.f64 b2 (/.f64 b1 (*.f64 a1 a2)))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(*.f64 (/.f64 b2 a1) (/.f64 b1 a2))
(*.f64 b1 (/.f64 b2 (*.f64 a1 a2)))
(*.f64 b2 (/.f64 b1 (*.f64 a1 a2)))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(*.f64 (/.f64 b2 a1) (/.f64 b1 a2))
(*.f64 b1 (/.f64 b2 (*.f64 a1 a2)))
(*.f64 b2 (/.f64 b1 (*.f64 a1 a2)))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(*.f64 (/.f64 b2 a1) (/.f64 b1 a2))
(*.f64 b1 (/.f64 b2 (*.f64 a1 a2)))
(*.f64 b2 (/.f64 b1 (*.f64 a1 a2)))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(*.f64 (/.f64 b2 a1) (/.f64 b1 a2))
(*.f64 b1 (/.f64 b2 (*.f64 a1 a2)))
(*.f64 b2 (/.f64 b1 (*.f64 a1 a2)))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(*.f64 (/.f64 b2 a1) (/.f64 b1 a2))
(*.f64 b1 (/.f64 b2 (*.f64 a1 a2)))
(*.f64 b2 (/.f64 b1 (*.f64 a1 a2)))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(*.f64 (/.f64 b2 a1) (/.f64 b1 a2))
(*.f64 b1 (/.f64 b2 (*.f64 a1 a2)))
(*.f64 b2 (/.f64 b1 (*.f64 a1 a2)))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(*.f64 (/.f64 b2 a1) (/.f64 b1 a2))
(*.f64 b1 (/.f64 b2 (*.f64 a1 a2)))
(*.f64 b2 (/.f64 b1 (*.f64 a1 a2)))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(*.f64 (/.f64 b2 a1) (/.f64 b1 a2))
(*.f64 b1 (/.f64 b2 (*.f64 a1 a2)))
(*.f64 b2 (/.f64 b1 (*.f64 a1 a2)))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(*.f64 (/.f64 b2 a1) (/.f64 b1 a2))
(*.f64 b1 (/.f64 b2 (*.f64 a1 a2)))
(*.f64 b2 (/.f64 b1 (*.f64 a1 a2)))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(*.f64 (/.f64 b2 a1) (/.f64 b1 a2))
(*.f64 b1 (/.f64 b2 (*.f64 a1 a2)))
(*.f64 b2 (/.f64 b1 (*.f64 a1 a2)))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(*.f64 (/.f64 b2 a1) (/.f64 b1 a2))
(*.f64 b1 (/.f64 b2 (*.f64 a1 a2)))
(*.f64 b2 (/.f64 b1 (*.f64 a1 a2)))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(*.f64 (/.f64 b2 a1) (/.f64 b1 a2))
(*.f64 b1 (/.f64 b2 (*.f64 a1 a2)))
(*.f64 b2 (/.f64 b1 (*.f64 a1 a2)))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(*.f64 (/.f64 b2 a1) (/.f64 b1 a2))
(*.f64 b1 (/.f64 b2 (*.f64 a1 a2)))
(*.f64 b2 (/.f64 b1 (*.f64 a1 a2)))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(*.f64 (/.f64 b2 a1) (/.f64 b1 a2))
(*.f64 b1 (/.f64 b2 (*.f64 a1 a2)))
(*.f64 b2 (/.f64 b1 (*.f64 a1 a2)))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(*.f64 (/.f64 b2 a1) (/.f64 b1 a2))
(*.f64 b1 (/.f64 b2 (*.f64 a1 a2)))
(*.f64 b2 (/.f64 b1 (*.f64 a1 a2)))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(*.f64 (/.f64 b2 a1) (/.f64 b1 a2))
(*.f64 b1 (/.f64 b2 (*.f64 a1 a2)))
(*.f64 b2 (/.f64 b1 (*.f64 a1 a2)))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(*.f64 (/.f64 b2 a1) (/.f64 b1 a2))
(*.f64 b1 (/.f64 b2 (*.f64 a1 a2)))
(*.f64 b2 (/.f64 b1 (*.f64 a1 a2)))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(*.f64 (/.f64 b2 a1) (/.f64 b1 a2))
(*.f64 b1 (/.f64 b2 (*.f64 a1 a2)))
(*.f64 b2 (/.f64 b1 (*.f64 a1 a2)))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(*.f64 (/.f64 b2 a1) (/.f64 b1 a2))
(*.f64 b1 (/.f64 b2 (*.f64 a1 a2)))
(*.f64 b2 (/.f64 b1 (*.f64 a1 a2)))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(*.f64 (/.f64 b2 a1) (/.f64 b1 a2))
(*.f64 b1 (/.f64 b2 (*.f64 a1 a2)))
(*.f64 b2 (/.f64 b1 (*.f64 a1 a2)))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(*.f64 (/.f64 b2 a1) (/.f64 b1 a2))
(*.f64 b1 (/.f64 b2 (*.f64 a1 a2)))
(*.f64 b2 (/.f64 b1 (*.f64 a1 a2)))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(*.f64 (/.f64 b2 a1) (/.f64 b1 a2))
(*.f64 b1 (/.f64 b2 (*.f64 a1 a2)))
(*.f64 b2 (/.f64 b1 (*.f64 a1 a2)))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(*.f64 (/.f64 b2 a1) (/.f64 b1 a2))
(*.f64 b1 (/.f64 b2 (*.f64 a1 a2)))
(*.f64 b2 (/.f64 b1 (*.f64 a1 a2)))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(*.f64 (/.f64 b2 a1) (/.f64 b1 a2))
(*.f64 b1 (/.f64 b2 (*.f64 a1 a2)))
(*.f64 b2 (/.f64 b1 (*.f64 a1 a2)))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(*.f64 (/.f64 b2 a1) (/.f64 b1 a2))
(*.f64 b1 (/.f64 b2 (*.f64 a1 a2)))
(*.f64 b2 (/.f64 b1 (*.f64 a1 a2)))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(*.f64 (/.f64 b2 a1) (/.f64 b1 a2))
(*.f64 b1 (/.f64 b2 (*.f64 a1 a2)))
(*.f64 b2 (/.f64 b1 (*.f64 a1 a2)))
(/.f64 (*.f64 b2 b1) (*.f64 a1 a2))
(*.f64 (/.f64 b2 a1) (/.f64 b1 a2))
(*.f64 b1 (/.f64 b2 (*.f64 a1 a2)))
(*.f64 b2 (/.f64 b1 (*.f64 a1 a2)))
(/.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 (/.f64 b1 a1)))
(/.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 (/.f64 b1 a1)))
(/.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 (/.f64 b1 a1)))
(/.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 (/.f64 b1 a1)))
(/.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 (/.f64 b1 a1)))
(/.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 (/.f64 b1 a1)))
(/.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 (/.f64 b1 a1)))
(/.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 (/.f64 b1 a1)))
(/.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 (/.f64 b1 a1)))
(/.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 (/.f64 b1 a1)))
(/.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 (/.f64 b1 a1)))
(/.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 (/.f64 b1 a1)))
(/.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 (/.f64 b1 a1)))
(/.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 (/.f64 b1 a1)))
(/.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 (/.f64 b1 a1)))
(/.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 (/.f64 b1 a1)))
(/.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 (/.f64 b1 a1)))
(/.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 (/.f64 b1 a1)))
(/.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 (/.f64 b1 a1)))
(/.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 (/.f64 b1 a1)))
(/.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 (/.f64 b1 a1)))
(/.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 (/.f64 b1 a1)))
(/.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 (/.f64 b1 a1)))
(/.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 (/.f64 b1 a1)))
(/.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 (/.f64 b1 a1)))
(/.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 (/.f64 b1 a1)))
(/.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 (/.f64 b1 a1)))
(/.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 (/.f64 b1 a1)))
(/.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 (/.f64 b1 a1)))
(/.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 (/.f64 b1 a1)))
(/.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 (/.f64 b1 a1)))
(/.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 (/.f64 b1 a1)))
(/.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 (/.f64 b1 a1)))
(/.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 (/.f64 b1 a1)))
(/.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 (/.f64 b1 a1)))
(/.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 (/.f64 b1 a1)))
(/.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 (/.f64 b1 a1)))
(/.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 (/.f64 b1 a1)))
(/.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 (/.f64 b1 a1)))
(/.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 (/.f64 b1 a1)))
(/.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 (/.f64 b1 a1)))
(/.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 (/.f64 b1 a1)))
(/.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 (/.f64 b1 a1)))
(/.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 (/.f64 b1 a1)))
(/.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 (/.f64 b1 a1)))
(/.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 (/.f64 b1 a1)))
(/.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 (/.f64 b1 a1)))
(/.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 (/.f64 b1 a1)))

prune321.0ms (8.9%)

Pruning

7 alts after pruning (6 fresh and 1 done)

PrunedKeptTotal
New1444148
Fresh325
Picked101
Done011
Total1487155
Error
0b
Counts
155 → 7
Alt Table
StatusErrorProgram
10.1b
(/.f64 (/.f64 (*.f64 a1 a2) b2) b1)
12.0b
(*.f64 (/.f64 1 b2) (/.f64 (*.f64 a1 a2) b1))
9.7b
(/.f64 a1 (/.f64 (*.f64 b1 b2) a2))
11.6b
(/.f64 a2 (*.f64 b2 (/.f64 b1 a1)))
9.1b
(*.f64 (*.f64 a1 a2) (/.f64 1 (*.f64 b1 b2)))
10.6b
(pow.f64 (neg.f64 (/.f64 (neg.f64 b1) (/.f64 a2 (/.f64 b2 a1)))) -1)
11.4b
(*.f64 (/.f64 a1 b1) (/.f64 a2 b2))
Compiler

Compiled 2089 to 796 computations (61.9% saved)

localize5.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

series11.0ms (0.3%)

Counts
2 → 84
Calls

21 calls:

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

rewrite65.0ms (1.8%)

Algorithm
batch-egg-rewrite
Rules
544×log-prod_binary64
422×exp-prod_binary64
302×pow-prod-down_binary64
239×pow2_binary64
214×div-exp_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify66.0ms (1.8%)

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
206 → 126
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 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)))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 b2 (/.f64 a2 b1))
(*.f64 b1 (/.f64 b2 a2))
(*.f64 b2 (/.f64 b1 a2))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 b2 (/.f64 a2 b1))
(*.f64 b1 (/.f64 b2 a2))
(*.f64 b2 (/.f64 b1 a2))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 b2 (/.f64 a2 b1))
(*.f64 b1 (/.f64 b2 a2))
(*.f64 b2 (/.f64 b1 a2))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 b2 (/.f64 a2 b1))
(*.f64 b1 (/.f64 b2 a2))
(*.f64 b2 (/.f64 b1 a2))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 b2 (/.f64 a2 b1))
(*.f64 b1 (/.f64 b2 a2))
(*.f64 b2 (/.f64 b1 a2))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 b2 (/.f64 a2 b1))
(*.f64 b1 (/.f64 b2 a2))
(*.f64 b2 (/.f64 b1 a2))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 b2 (/.f64 a2 b1))
(*.f64 b1 (/.f64 b2 a2))
(*.f64 b2 (/.f64 b1 a2))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 b2 (/.f64 a2 b1))
(*.f64 b1 (/.f64 b2 a2))
(*.f64 b2 (/.f64 b1 a2))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 b2 (/.f64 a2 b1))
(*.f64 b1 (/.f64 b2 a2))
(*.f64 b2 (/.f64 b1 a2))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 b2 (/.f64 a2 b1))
(*.f64 b1 (/.f64 b2 a2))
(*.f64 b2 (/.f64 b1 a2))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 b2 (/.f64 a2 b1))
(*.f64 b1 (/.f64 b2 a2))
(*.f64 b2 (/.f64 b1 a2))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 b2 (/.f64 a2 b1))
(*.f64 b1 (/.f64 b2 a2))
(*.f64 b2 (/.f64 b1 a2))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 b2 (/.f64 a2 b1))
(*.f64 b1 (/.f64 b2 a2))
(*.f64 b2 (/.f64 b1 a2))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 b2 (/.f64 a2 b1))
(*.f64 b1 (/.f64 b2 a2))
(*.f64 b2 (/.f64 b1 a2))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 b2 (/.f64 a2 b1))
(*.f64 b1 (/.f64 b2 a2))
(*.f64 b2 (/.f64 b1 a2))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 b2 (/.f64 a2 b1))
(*.f64 b1 (/.f64 b2 a2))
(*.f64 b2 (/.f64 b1 a2))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 b2 (/.f64 a2 b1))
(*.f64 b1 (/.f64 b2 a2))
(*.f64 b2 (/.f64 b1 a2))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 b2 (/.f64 a2 b1))
(*.f64 b1 (/.f64 b2 a2))
(*.f64 b2 (/.f64 b1 a2))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 b2 (/.f64 a2 b1))
(*.f64 b1 (/.f64 b2 a2))
(*.f64 b2 (/.f64 b1 a2))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 b2 (/.f64 a2 b1))
(*.f64 b1 (/.f64 b2 a2))
(*.f64 b2 (/.f64 b1 a2))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 b2 (/.f64 a2 b1))
(*.f64 b1 (/.f64 b2 a2))
(*.f64 b2 (/.f64 b1 a2))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 b2 (/.f64 a2 b1))
(*.f64 b1 (/.f64 b2 a2))
(*.f64 b2 (/.f64 b1 a2))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 b2 (/.f64 a2 b1))
(*.f64 b1 (/.f64 b2 a2))
(*.f64 b2 (/.f64 b1 a2))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 b2 (/.f64 a2 b1))
(*.f64 b1 (/.f64 b2 a2))
(*.f64 b2 (/.f64 b1 a2))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 b2 (/.f64 a2 b1))
(*.f64 b1 (/.f64 b2 a2))
(*.f64 b2 (/.f64 b1 a2))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 b2 (/.f64 a2 b1))
(*.f64 b1 (/.f64 b2 a2))
(*.f64 b2 (/.f64 b1 a2))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 b2 (/.f64 a2 b1))
(*.f64 b1 (/.f64 b2 a2))
(*.f64 b2 (/.f64 b1 a2))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 b2 (/.f64 a2 b1))
(*.f64 b1 (/.f64 b2 a2))
(*.f64 b2 (/.f64 b1 a2))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 b2 (/.f64 a2 b1))
(*.f64 b1 (/.f64 b2 a2))
(*.f64 b2 (/.f64 b1 a2))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 b2 (/.f64 a2 b1))
(*.f64 b1 (/.f64 b2 a2))
(*.f64 b2 (/.f64 b1 a2))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 b2 (/.f64 a2 b1))
(*.f64 b1 (/.f64 b2 a2))
(*.f64 b2 (/.f64 b1 a2))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 b2 (/.f64 a2 b1))
(*.f64 b1 (/.f64 b2 a2))
(*.f64 b2 (/.f64 b1 a2))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 b2 (/.f64 a2 b1))
(*.f64 b1 (/.f64 b2 a2))
(*.f64 b2 (/.f64 b1 a2))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 b2 (/.f64 a2 b1))
(*.f64 b1 (/.f64 b2 a2))
(*.f64 b2 (/.f64 b1 a2))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 b2 (/.f64 a2 b1))
(*.f64 b1 (/.f64 b2 a2))
(*.f64 b2 (/.f64 b1 a2))
(/.f64 (*.f64 b2 b1) a2)
(/.f64 b2 (/.f64 a2 b1))
(*.f64 b1 (/.f64 b2 a2))
(*.f64 b2 (/.f64 b1 a2))

prune272.0ms (7.5%)

Pruning

7 alts after pruning (5 fresh and 2 done)

PrunedKeptTotal
New1242126
Fresh235
Picked011
Done011
Total1267133
Error
0b
Counts
133 → 7
Alt Table
StatusErrorProgram
11.4b
(*.f64 (/.f64 a1 b1) (/.f64 a2 b2))
11.6b
(/.f64 a2 (*.f64 b2 (/.f64 b1 a1)))
10.6b
(/.f64 a1 (*.f64 (/.f64 b1 1) (/.f64 b2 a2)))
10.1b
(/.f64 (/.f64 (*.f64 a1 a2) b2) b1)
9.7b
(/.f64 a1 (/.f64 (*.f64 b1 b2) a2))
9.1b
(*.f64 (*.f64 a1 a2) (/.f64 1 (*.f64 b1 b2)))
10.6b
(pow.f64 (neg.f64 (/.f64 (neg.f64 b1) (/.f64 a2 (/.f64 b2 a1)))) -1)
Compiler

Compiled 1620 to 587 computations (63.8% saved)

regimes412.0ms (11.4%)

Accuracy

Total -30.9b remaining (-1848.5%)

Threshold costs -30.9b (-1848.5%)

Counts
17 → 5
Calls
Call 1
Inputs
(*.f64 (/.f64 a1 b1) (/.f64 a2 b2))
(/.f64 a1 (*.f64 (/.f64 b1 1) (/.f64 b2 a2)))
(*.f64 (/.f64 1 b2) (/.f64 (*.f64 a1 a2) b1))
(/.f64 a2 (*.f64 b2 (/.f64 b1 a1)))
(pow.f64 (neg.f64 (/.f64 (neg.f64 b1) (/.f64 a2 (/.f64 b2 a1)))) -1)
(*.f64 (/.f64 a1 b1) (/.f64 a2 b2))
(/.f64 1 (/.f64 (*.f64 b1 b2) (*.f64 a1 a2)))
(/.f64 a1 (/.f64 (*.f64 b1 b2) a2))
(/.f64 (/.f64 (*.f64 a1 a2) b2) b1)
(*.f64 (/.f64 a2 (/.f64 b1 a1)) (/.f64 1 b2))
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
(*.f64 (*.f64 a1 a2) (/.f64 1 (*.f64 b1 b2)))
(*.f64 (/.f64 1 b1) (/.f64 (*.f64 a1 a2) b2))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a1 (/.f64 a2 (*.f64 b1 b2)))
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
Outputs
(/.f64 a2 (*.f64 b2 (/.f64 b1 a1)))
(*.f64 (*.f64 a1 a2) (/.f64 1 (*.f64 b1 b2)))
(pow.f64 (neg.f64 (/.f64 (neg.f64 b1) (/.f64 a2 (/.f64 b2 a1)))) -1)
(*.f64 (/.f64 a1 (*.f64 b1 b2)) a2)
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
Results
34.0ms5.6ba1
52.0ms4.3ba2
27.0ms7.5bb1
51.0ms5.4bb2
39.0ms1.7b(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
40.0ms2.0b(*.f64 a1 a2)
45.0ms2.0b(*.f64 a1 a2)
74.0ms1.7b(*.f64 b1 b2)
45.0ms1.7b(*.f64 b1 b2)
Compiler

Compiled 198 to 97 computations (51% saved)

bsearch1.0ms (0%)

Algorithm
left-value
Calls

4 calls:

0.0ms
(*.f64 b1 b2)
0.0ms
(*.f64 b1 b2)
0.0ms
(*.f64 b1 b2)
0.0ms
(*.f64 b1 b2)
Steps
ItersPointRange
2e+112
∈ [
1.6353971024667379e+112
,
8.08289692115055e+118
]
5e-195
∈ [
2.5360310156596207e-195
,
2.47685874300911e-180
]
-5e-266
∈ [
-9.128433858996308e-266
,
0.0
]
-5e+221
∈ [
-8.3017772725165e+221
,
-2.212943693229063e+206
]
Compiler

Compiled 18 to 13 computations (27.8% saved)

simplify15.0ms (0.4%)

Algorithm
egg-herbie
Rules
27×distribute-rgt-neg-in_binary64
22×cancel-sign-sub-inv_binary64
20×distribute-lft-neg-out_binary64
18×distribute-lft-neg-in_binary64
16×neg-sub0_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
03896
15492
26692
39392
411692
514292
617492
720292
821392
921892
1022792
1123192
Stop Event
saturated
Calls
Call 1
Inputs
(if (<=.f64 (*.f64 b1 b2) -500000000000000023300903587410348784202542904974688430710490229009341390661543149786383856107097856160516988297992744932658630833003449045680311048746321720293715063683658110949743602947527619163229867885780121392177479680) (/.f64 a2 (*.f64 b2 (/.f64 b1 a1))) (if (<=.f64 (*.f64 b1 b2) -7260824748426675/145216494968533502226373290834951226575318379068300240142165220636322329800820739604020343212515268612285031620136032524458455590385244698026448298935780725174118246137447253314715469710380638366234296463120257539655053584656042977359091693393423640919145029829506241486695834845184) (*.f64 (*.f64 a1 a2) (/.f64 1 (*.f64 b1 b2))) (if (<=.f64 (*.f64 b1 b2) 420810872123869888/84162174424773976115855838126082058648805436845170781751972494449099714468753293153818664580441415219631727501698851483408310916002940861810045036330430093599283578738055113571066620126149163476340692027772502016) (pow.f64 (neg.f64 (/.f64 (neg.f64 b1) (/.f64 a2 (/.f64 b2 a1)))) -1) (if (<=.f64 (*.f64 b1 b2) 19999999999999998602398693852608794569346663002779536985231793723294459665661827807523927173788508935154456068096) (*.f64 (/.f64 a1 (*.f64 b1 b2)) a2) (*.f64 (/.f64 a1 b2) (/.f64 a2 b1))))))
Outputs
(if (<=.f64 (*.f64 b1 b2) -500000000000000023300903587410348784202542904974688430710490229009341390661543149786383856107097856160516988297992744932658630833003449045680311048746321720293715063683658110949743602947527619163229867885780121392177479680) (/.f64 a2 (*.f64 b2 (/.f64 b1 a1))) (if (<=.f64 (*.f64 b1 b2) -7260824748426675/145216494968533502226373290834951226575318379068300240142165220636322329800820739604020343212515268612285031620136032524458455590385244698026448298935780725174118246137447253314715469710380638366234296463120257539655053584656042977359091693393423640919145029829506241486695834845184) (*.f64 (*.f64 a1 a2) (/.f64 1 (*.f64 b1 b2))) (if (<=.f64 (*.f64 b1 b2) 420810872123869888/84162174424773976115855838126082058648805436845170781751972494449099714468753293153818664580441415219631727501698851483408310916002940861810045036330430093599283578738055113571066620126149163476340692027772502016) (pow.f64 (neg.f64 (/.f64 (neg.f64 b1) (/.f64 a2 (/.f64 b2 a1)))) -1) (if (<=.f64 (*.f64 b1 b2) 19999999999999998602398693852608794569346663002779536985231793723294459665661827807523927173788508935154456068096) (*.f64 (/.f64 a1 (*.f64 b1 b2)) a2) (*.f64 (/.f64 a1 b2) (/.f64 a2 b1))))))
(if (<=.f64 (*.f64 b1 b2) -500000000000000023300903587410348784202542904974688430710490229009341390661543149786383856107097856160516988297992744932658630833003449045680311048746321720293715063683658110949743602947527619163229867885780121392177479680) (/.f64 a2 (*.f64 b2 (/.f64 b1 a1))) (if (<=.f64 (*.f64 b1 b2) -7260824748426675/145216494968533502226373290834951226575318379068300240142165220636322329800820739604020343212515268612285031620136032524458455590385244698026448298935780725174118246137447253314715469710380638366234296463120257539655053584656042977359091693393423640919145029829506241486695834845184) (*.f64 (*.f64 a2 a1) (/.f64 1 (*.f64 b1 b2))) (if (<=.f64 (*.f64 b1 b2) 6575169876935467/1315033975387093376810247470720032166387584950705793464874570225767183038574270205528416634069397112806745742214044554428254858062545950965781953692662970212488805917782111149547915939471080679317823312933945344) (pow.f64 (/.f64 (neg.f64 (neg.f64 b1)) (/.f64 a2 (/.f64 b2 a1))) -1) (if (<=.f64 (*.f64 b1 b2) 19999999999999998602398693852608794569346663002779536985231793723294459665661827807523927173788508935154456068096) (*.f64 a2 (/.f64 a1 (*.f64 b1 b2))) (*.f64 (/.f64 a1 b2) (/.f64 a2 b1))))))
(if (<=.f64 (*.f64 b1 b2) -500000000000000023300903587410348784202542904974688430710490229009341390661543149786383856107097856160516988297992744932658630833003449045680311048746321720293715063683658110949743602947527619163229867885780121392177479680) (/.f64 a2 (*.f64 b2 (/.f64 b1 a1))) (if (<=.f64 (*.f64 b1 b2) -7260824748426675/145216494968533502226373290834951226575318379068300240142165220636322329800820739604020343212515268612285031620136032524458455590385244698026448298935780725174118246137447253314715469710380638366234296463120257539655053584656042977359091693393423640919145029829506241486695834845184) (*.f64 (*.f64 a2 a1) (/.f64 1 (*.f64 b1 b2))) (if (<=.f64 (*.f64 b1 b2) 6575169876935467/1315033975387093376810247470720032166387584950705793464874570225767183038574270205528416634069397112806745742214044554428254858062545950965781953692662970212488805917782111149547915939471080679317823312933945344) (pow.f64 (/.f64 b1 (/.f64 a2 (/.f64 b2 a1))) -1) (if (<=.f64 (*.f64 b1 b2) 19999999999999998602398693852608794569346663002779536985231793723294459665661827807523927173788508935154456068096) (*.f64 a2 (/.f64 a1 (*.f64 b1 b2))) (*.f64 (/.f64 a1 b2) (/.f64 a2 b1))))))

end115.0ms (3.2%)

Stop Event
fuel
Compiler

Compiled 402 to 204 computations (49.3% saved)

Profiling

Loading profile data...