Details

Time bar (total: 2.9s)

analyze272.0ms (9.4%)

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.2s (42.3%)

Results
990.0ms8247×body64valid
213.0ms2082×body64invalid
1.0msbody128valid

preprocess20.0ms (0.7%)

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

prune4.0ms (0.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
6.5b
Counts
3 → 2
Alt Table
StatusErrorProgram
10.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)

localize5.0ms (0.2%)

Local error

Found 1 expressions with local error:

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

series11.0ms (0.4%)

Counts
1 → 48
Calls

12 calls:

TimeVariablePointExpression
2.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
b2
@0
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
1.0ms
a2
@inf
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))

rewrite54.0ms (1.9%)

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

simplify19.0ms (0.7%)

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

Useful iterations: 0 (0.0ms)

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

prune93.0ms (3.2%)

Pruning

8 alts after pruning (7 fresh and 1 done)

PrunedKeptTotal
New68775
Fresh101
Picked011
Done000
Total69877
Error
0.0b
Counts
77 → 8
Alt Table
StatusErrorProgram
9.0b
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
11.4b
(*.f64 a2 (*.f64 a1 (/.f64 1 (*.f64 b1 b2))))
11.4b
(pow.f64 (*.f64 (/.f64 b1 a1) (/.f64 b2 a2)) -1)
11.0b
(*.f64 a1 (/.f64 1 (/.f64 b1 (/.f64 a2 b2))))
8.8b
(*.f64 (/.f64 1 b1) (/.f64 (*.f64 a1 a2) b2))
9.8b
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
10.3b
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
34.0b
(*.f64 (/.f64 (sqrt.f64 (*.f64 a1 a2)) b2) (/.f64 (sqrt.f64 (*.f64 a1 a2)) b1))
Compiler

Compiled 1112 to 414 computations (62.8% saved)

localize7.0ms (0.3%)

Local error

Found 2 expressions with local error:

NewErrorProgram
4.9b
(*.f64 (/.f64 1 b1) (/.f64 (*.f64 a1 a2) b2))
5.6b
(/.f64 (*.f64 a1 a2) b2)

series10.0ms (0.4%)

Counts
2 → 48
Calls

21 calls:

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

rewrite62.0ms (2.2%)

Algorithm
batch-egg-rewrite
Rules
579×log-prod_binary64
444×exp-prod_binary64
405×pow-prod-down_binary64
271×pow2_binary64
215×pow-unpow_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify21.0ms (0.7%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
08480
117480
238480
367480
479480
579480
Stop Event
saturated
Counts
179 → 132
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)))

prune272.0ms (9.4%)

Pruning

6 alts after pruning (5 fresh and 1 done)

PrunedKeptTotal
New1293132
Fresh426
Picked011
Done101
Total1346140
Error
0b
Counts
140 → 6
Alt Table
StatusErrorProgram
11.1b
(/.f64 a1 (*.f64 (/.f64 b2 a2) b1))
7.9b
(/.f64 (*.f64 (/.f64 1 b1) (*.f64 a1 (neg.f64 a2))) (neg.f64 b2))
8.8b
(*.f64 (/.f64 1 b1) (/.f64 (*.f64 a1 a2) b2))
9.8b
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
11.5b
(/.f64 a2 (/.f64 (*.f64 b2 b1) a1))
10.3b
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
Compiler

Compiled 1744 to 714 computations (59.1% saved)

localize8.0ms (0.3%)

Local error

Found 2 expressions with local error:

NewErrorProgram
3.6b
(*.f64 (/.f64 1 b1) (*.f64 a1 (neg.f64 a2)))
4.5b
(/.f64 (*.f64 (/.f64 1 b1) (*.f64 a1 (neg.f64 a2))) (neg.f64 b2))

series11.0ms (0.4%)

Counts
2 → 84
Calls

21 calls:

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

rewrite57.0ms (2%)

Algorithm
batch-egg-rewrite
Rules
624×log-prod_binary64
360×pow-prod-down_binary64
288×pow-unpow_binary64
267×pow2_binary64
191×pow1/3_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify54.0ms (1.9%)

Algorithm
egg-herbie
Rules
194×fma-def_binary64
90×fma-neg_binary64
35×sub-neg_binary64
34×div-sub_binary64
26×associate-/l*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
011804
126804
265804
3123804
4179804
5224804
6262804
7300804
8376804
9574804
10672804
11674804
Stop Event
saturated
Counts
184 → 104
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 (*.f64 a1 a2) b1))
(*.f64 -1 (/.f64 (*.f64 a1 a2) b1))
(*.f64 -1 (/.f64 (*.f64 a1 a2) b1))
(*.f64 -1 (/.f64 (*.f64 a1 a2) b1))
(*.f64 -1 (/.f64 (*.f64 a1 a2) b1))
(*.f64 -1 (/.f64 (*.f64 a1 a2) b1))
(*.f64 -1 (/.f64 (*.f64 a1 a2) b1))
(*.f64 -1 (/.f64 (*.f64 a1 a2) b1))
(*.f64 -1 (/.f64 (*.f64 a1 a2) b1))
(*.f64 -1 (/.f64 (*.f64 a1 a2) b1))
(*.f64 -1 (/.f64 (*.f64 a1 a2) b1))
(*.f64 -1 (/.f64 (*.f64 a1 a2) b1))
(*.f64 -1 (/.f64 (*.f64 a1 a2) b1))
(*.f64 -1 (/.f64 (*.f64 a1 a2) b1))
(*.f64 -1 (/.f64 (*.f64 a1 a2) b1))
(*.f64 -1 (/.f64 (*.f64 a1 a2) b1))
(*.f64 -1 (/.f64 (*.f64 a1 a2) b1))
(*.f64 -1 (/.f64 (*.f64 a1 a2) b1))
(*.f64 -1 (/.f64 (*.f64 a1 a2) b1))
(*.f64 -1 (/.f64 (*.f64 a1 a2) b1))
(*.f64 -1 (/.f64 (*.f64 a1 a2) b1))
(*.f64 -1 (/.f64 (*.f64 a1 a2) b1))
(*.f64 -1 (/.f64 (*.f64 a1 a2) b1))
(*.f64 -1 (/.f64 (*.f64 a1 a2) b1))
(*.f64 -1 (/.f64 (*.f64 a1 a2) b1))
(*.f64 -1 (/.f64 (*.f64 a1 a2) b1))
(*.f64 -1 (/.f64 (*.f64 a1 a2) b1))
(*.f64 -1 (/.f64 (*.f64 a1 a2) b1))
(*.f64 -1 (/.f64 (*.f64 a1 a2) b1))
(*.f64 -1 (/.f64 (*.f64 a1 a2) b1))
(*.f64 -1 (/.f64 (*.f64 a1 a2) b1))
(*.f64 -1 (/.f64 (*.f64 a1 a2) b1))
(*.f64 -1 (/.f64 (*.f64 a1 a2) b1))
(*.f64 -1 (/.f64 (*.f64 a1 a2) b1))
(*.f64 -1 (/.f64 (*.f64 a1 a2) b1))
(*.f64 -1 (/.f64 (*.f64 a1 a2) b1))
Outputs
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 (/.f64 a1 b2) b1))
(/.f64 (*.f64 a2 (/.f64 a1 b2)) b1)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 (/.f64 a1 b2) b1))
(/.f64 (*.f64 a2 (/.f64 a1 b2)) b1)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 (/.f64 a1 b2) b1))
(/.f64 (*.f64 a2 (/.f64 a1 b2)) b1)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 (/.f64 a1 b2) b1))
(/.f64 (*.f64 a2 (/.f64 a1 b2)) b1)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 (/.f64 a1 b2) b1))
(/.f64 (*.f64 a2 (/.f64 a1 b2)) b1)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 (/.f64 a1 b2) b1))
(/.f64 (*.f64 a2 (/.f64 a1 b2)) b1)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 (/.f64 a1 b2) b1))
(/.f64 (*.f64 a2 (/.f64 a1 b2)) b1)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 (/.f64 a1 b2) b1))
(/.f64 (*.f64 a2 (/.f64 a1 b2)) b1)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 (/.f64 a1 b2) b1))
(/.f64 (*.f64 a2 (/.f64 a1 b2)) b1)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 (/.f64 a1 b2) b1))
(/.f64 (*.f64 a2 (/.f64 a1 b2)) b1)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 (/.f64 a1 b2) b1))
(/.f64 (*.f64 a2 (/.f64 a1 b2)) b1)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 (/.f64 a1 b2) b1))
(/.f64 (*.f64 a2 (/.f64 a1 b2)) b1)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 (/.f64 a1 b2) b1))
(/.f64 (*.f64 a2 (/.f64 a1 b2)) b1)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 (/.f64 a1 b2) b1))
(/.f64 (*.f64 a2 (/.f64 a1 b2)) b1)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 (/.f64 a1 b2) b1))
(/.f64 (*.f64 a2 (/.f64 a1 b2)) b1)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 (/.f64 a1 b2) b1))
(/.f64 (*.f64 a2 (/.f64 a1 b2)) b1)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 (/.f64 a1 b2) b1))
(/.f64 (*.f64 a2 (/.f64 a1 b2)) b1)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 (/.f64 a1 b2) b1))
(/.f64 (*.f64 a2 (/.f64 a1 b2)) b1)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 (/.f64 a1 b2) b1))
(/.f64 (*.f64 a2 (/.f64 a1 b2)) b1)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 (/.f64 a1 b2) b1))
(/.f64 (*.f64 a2 (/.f64 a1 b2)) b1)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 (/.f64 a1 b2) b1))
(/.f64 (*.f64 a2 (/.f64 a1 b2)) b1)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 (/.f64 a1 b2) b1))
(/.f64 (*.f64 a2 (/.f64 a1 b2)) b1)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 (/.f64 a1 b2) b1))
(/.f64 (*.f64 a2 (/.f64 a1 b2)) b1)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 (/.f64 a1 b2) b1))
(/.f64 (*.f64 a2 (/.f64 a1 b2)) b1)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 (/.f64 a1 b2) b1))
(/.f64 (*.f64 a2 (/.f64 a1 b2)) b1)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 (/.f64 a1 b2) b1))
(/.f64 (*.f64 a2 (/.f64 a1 b2)) b1)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 (/.f64 a1 b2) b1))
(/.f64 (*.f64 a2 (/.f64 a1 b2)) b1)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 (/.f64 a1 b2) b1))
(/.f64 (*.f64 a2 (/.f64 a1 b2)) b1)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 (/.f64 a1 b2) b1))
(/.f64 (*.f64 a2 (/.f64 a1 b2)) b1)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 (/.f64 a1 b2) b1))
(/.f64 (*.f64 a2 (/.f64 a1 b2)) b1)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 (/.f64 a1 b2) b1))
(/.f64 (*.f64 a2 (/.f64 a1 b2)) b1)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 (/.f64 a1 b2) b1))
(/.f64 (*.f64 a2 (/.f64 a1 b2)) b1)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 (/.f64 a1 b2) b1))
(/.f64 (*.f64 a2 (/.f64 a1 b2)) b1)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 (/.f64 a1 b2) b1))
(/.f64 (*.f64 a2 (/.f64 a1 b2)) b1)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 (/.f64 a1 b2) b1))
(/.f64 (*.f64 a2 (/.f64 a1 b2)) b1)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 (/.f64 a1 b2) b1))
(/.f64 (*.f64 a2 (/.f64 a1 b2)) b1)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 (/.f64 a1 b2) b1))
(/.f64 (*.f64 a2 (/.f64 a1 b2)) b1)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 (/.f64 a1 b2) b1))
(/.f64 (*.f64 a2 (/.f64 a1 b2)) b1)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 (/.f64 a1 b2) b1))
(/.f64 (*.f64 a2 (/.f64 a1 b2)) b1)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 (/.f64 a1 b2) b1))
(/.f64 (*.f64 a2 (/.f64 a1 b2)) b1)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 (/.f64 a1 b2) b1))
(/.f64 (*.f64 a2 (/.f64 a1 b2)) b1)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 (/.f64 a1 b2) b1))
(/.f64 (*.f64 a2 (/.f64 a1 b2)) b1)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 (/.f64 a1 b2) b1))
(/.f64 (*.f64 a2 (/.f64 a1 b2)) b1)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 (/.f64 a1 b2) b1))
(/.f64 (*.f64 a2 (/.f64 a1 b2)) b1)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 (/.f64 a1 b2) b1))
(/.f64 (*.f64 a2 (/.f64 a1 b2)) b1)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 (/.f64 a1 b2) b1))
(/.f64 (*.f64 a2 (/.f64 a1 b2)) b1)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 (/.f64 a1 b2) b1))
(/.f64 (*.f64 a2 (/.f64 a1 b2)) b1)
(/.f64 (*.f64 a1 a2) (*.f64 b2 b1))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 a2 (/.f64 (/.f64 a1 b2) b1))
(/.f64 (*.f64 a2 (/.f64 a1 b2)) b1)
(*.f64 -1 (/.f64 (*.f64 a1 a2) b1))
(neg.f64 (/.f64 a1 (/.f64 b1 a2)))
(/.f64 (neg.f64 a1) (/.f64 b1 a2))
(*.f64 (/.f64 a1 b1) (neg.f64 a2))
(*.f64 a1 (neg.f64 (/.f64 a2 b1)))
(*.f64 a1 (/.f64 (neg.f64 a2) b1))
(*.f64 -1 (/.f64 (*.f64 a1 a2) b1))
(neg.f64 (/.f64 a1 (/.f64 b1 a2)))
(/.f64 (neg.f64 a1) (/.f64 b1 a2))
(*.f64 (/.f64 a1 b1) (neg.f64 a2))
(*.f64 a1 (neg.f64 (/.f64 a2 b1)))
(*.f64 a1 (/.f64 (neg.f64 a2) b1))
(*.f64 -1 (/.f64 (*.f64 a1 a2) b1))
(neg.f64 (/.f64 a1 (/.f64 b1 a2)))
(/.f64 (neg.f64 a1) (/.f64 b1 a2))
(*.f64 (/.f64 a1 b1) (neg.f64 a2))
(*.f64 a1 (neg.f64 (/.f64 a2 b1)))
(*.f64 a1 (/.f64 (neg.f64 a2) b1))
(*.f64 -1 (/.f64 (*.f64 a1 a2) b1))
(neg.f64 (/.f64 a1 (/.f64 b1 a2)))
(/.f64 (neg.f64 a1) (/.f64 b1 a2))
(*.f64 (/.f64 a1 b1) (neg.f64 a2))
(*.f64 a1 (neg.f64 (/.f64 a2 b1)))
(*.f64 a1 (/.f64 (neg.f64 a2) b1))
(*.f64 -1 (/.f64 (*.f64 a1 a2) b1))
(neg.f64 (/.f64 a1 (/.f64 b1 a2)))
(/.f64 (neg.f64 a1) (/.f64 b1 a2))
(*.f64 (/.f64 a1 b1) (neg.f64 a2))
(*.f64 a1 (neg.f64 (/.f64 a2 b1)))
(*.f64 a1 (/.f64 (neg.f64 a2) b1))
(*.f64 -1 (/.f64 (*.f64 a1 a2) b1))
(neg.f64 (/.f64 a1 (/.f64 b1 a2)))
(/.f64 (neg.f64 a1) (/.f64 b1 a2))
(*.f64 (/.f64 a1 b1) (neg.f64 a2))
(*.f64 a1 (neg.f64 (/.f64 a2 b1)))
(*.f64 a1 (/.f64 (neg.f64 a2) b1))
(*.f64 -1 (/.f64 (*.f64 a1 a2) b1))
(neg.f64 (/.f64 a1 (/.f64 b1 a2)))
(/.f64 (neg.f64 a1) (/.f64 b1 a2))
(*.f64 (/.f64 a1 b1) (neg.f64 a2))
(*.f64 a1 (neg.f64 (/.f64 a2 b1)))
(*.f64 a1 (/.f64 (neg.f64 a2) b1))
(*.f64 -1 (/.f64 (*.f64 a1 a2) b1))
(neg.f64 (/.f64 a1 (/.f64 b1 a2)))
(/.f64 (neg.f64 a1) (/.f64 b1 a2))
(*.f64 (/.f64 a1 b1) (neg.f64 a2))
(*.f64 a1 (neg.f64 (/.f64 a2 b1)))
(*.f64 a1 (/.f64 (neg.f64 a2) b1))
(*.f64 -1 (/.f64 (*.f64 a1 a2) b1))
(neg.f64 (/.f64 a1 (/.f64 b1 a2)))
(/.f64 (neg.f64 a1) (/.f64 b1 a2))
(*.f64 (/.f64 a1 b1) (neg.f64 a2))
(*.f64 a1 (neg.f64 (/.f64 a2 b1)))
(*.f64 a1 (/.f64 (neg.f64 a2) b1))
(*.f64 -1 (/.f64 (*.f64 a1 a2) b1))
(neg.f64 (/.f64 a1 (/.f64 b1 a2)))
(/.f64 (neg.f64 a1) (/.f64 b1 a2))
(*.f64 (/.f64 a1 b1) (neg.f64 a2))
(*.f64 a1 (neg.f64 (/.f64 a2 b1)))
(*.f64 a1 (/.f64 (neg.f64 a2) b1))
(*.f64 -1 (/.f64 (*.f64 a1 a2) b1))
(neg.f64 (/.f64 a1 (/.f64 b1 a2)))
(/.f64 (neg.f64 a1) (/.f64 b1 a2))
(*.f64 (/.f64 a1 b1) (neg.f64 a2))
(*.f64 a1 (neg.f64 (/.f64 a2 b1)))
(*.f64 a1 (/.f64 (neg.f64 a2) b1))
(*.f64 -1 (/.f64 (*.f64 a1 a2) b1))
(neg.f64 (/.f64 a1 (/.f64 b1 a2)))
(/.f64 (neg.f64 a1) (/.f64 b1 a2))
(*.f64 (/.f64 a1 b1) (neg.f64 a2))
(*.f64 a1 (neg.f64 (/.f64 a2 b1)))
(*.f64 a1 (/.f64 (neg.f64 a2) b1))
(*.f64 -1 (/.f64 (*.f64 a1 a2) b1))
(neg.f64 (/.f64 a1 (/.f64 b1 a2)))
(/.f64 (neg.f64 a1) (/.f64 b1 a2))
(*.f64 (/.f64 a1 b1) (neg.f64 a2))
(*.f64 a1 (neg.f64 (/.f64 a2 b1)))
(*.f64 a1 (/.f64 (neg.f64 a2) b1))
(*.f64 -1 (/.f64 (*.f64 a1 a2) b1))
(neg.f64 (/.f64 a1 (/.f64 b1 a2)))
(/.f64 (neg.f64 a1) (/.f64 b1 a2))
(*.f64 (/.f64 a1 b1) (neg.f64 a2))
(*.f64 a1 (neg.f64 (/.f64 a2 b1)))
(*.f64 a1 (/.f64 (neg.f64 a2) b1))
(*.f64 -1 (/.f64 (*.f64 a1 a2) b1))
(neg.f64 (/.f64 a1 (/.f64 b1 a2)))
(/.f64 (neg.f64 a1) (/.f64 b1 a2))
(*.f64 (/.f64 a1 b1) (neg.f64 a2))
(*.f64 a1 (neg.f64 (/.f64 a2 b1)))
(*.f64 a1 (/.f64 (neg.f64 a2) b1))
(*.f64 -1 (/.f64 (*.f64 a1 a2) b1))
(neg.f64 (/.f64 a1 (/.f64 b1 a2)))
(/.f64 (neg.f64 a1) (/.f64 b1 a2))
(*.f64 (/.f64 a1 b1) (neg.f64 a2))
(*.f64 a1 (neg.f64 (/.f64 a2 b1)))
(*.f64 a1 (/.f64 (neg.f64 a2) b1))
(*.f64 -1 (/.f64 (*.f64 a1 a2) b1))
(neg.f64 (/.f64 a1 (/.f64 b1 a2)))
(/.f64 (neg.f64 a1) (/.f64 b1 a2))
(*.f64 (/.f64 a1 b1) (neg.f64 a2))
(*.f64 a1 (neg.f64 (/.f64 a2 b1)))
(*.f64 a1 (/.f64 (neg.f64 a2) b1))
(*.f64 -1 (/.f64 (*.f64 a1 a2) b1))
(neg.f64 (/.f64 a1 (/.f64 b1 a2)))
(/.f64 (neg.f64 a1) (/.f64 b1 a2))
(*.f64 (/.f64 a1 b1) (neg.f64 a2))
(*.f64 a1 (neg.f64 (/.f64 a2 b1)))
(*.f64 a1 (/.f64 (neg.f64 a2) b1))
(*.f64 -1 (/.f64 (*.f64 a1 a2) b1))
(neg.f64 (/.f64 a1 (/.f64 b1 a2)))
(/.f64 (neg.f64 a1) (/.f64 b1 a2))
(*.f64 (/.f64 a1 b1) (neg.f64 a2))
(*.f64 a1 (neg.f64 (/.f64 a2 b1)))
(*.f64 a1 (/.f64 (neg.f64 a2) b1))
(*.f64 -1 (/.f64 (*.f64 a1 a2) b1))
(neg.f64 (/.f64 a1 (/.f64 b1 a2)))
(/.f64 (neg.f64 a1) (/.f64 b1 a2))
(*.f64 (/.f64 a1 b1) (neg.f64 a2))
(*.f64 a1 (neg.f64 (/.f64 a2 b1)))
(*.f64 a1 (/.f64 (neg.f64 a2) b1))
(*.f64 -1 (/.f64 (*.f64 a1 a2) b1))
(neg.f64 (/.f64 a1 (/.f64 b1 a2)))
(/.f64 (neg.f64 a1) (/.f64 b1 a2))
(*.f64 (/.f64 a1 b1) (neg.f64 a2))
(*.f64 a1 (neg.f64 (/.f64 a2 b1)))
(*.f64 a1 (/.f64 (neg.f64 a2) b1))
(*.f64 -1 (/.f64 (*.f64 a1 a2) b1))
(neg.f64 (/.f64 a1 (/.f64 b1 a2)))
(/.f64 (neg.f64 a1) (/.f64 b1 a2))
(*.f64 (/.f64 a1 b1) (neg.f64 a2))
(*.f64 a1 (neg.f64 (/.f64 a2 b1)))
(*.f64 a1 (/.f64 (neg.f64 a2) b1))
(*.f64 -1 (/.f64 (*.f64 a1 a2) b1))
(neg.f64 (/.f64 a1 (/.f64 b1 a2)))
(/.f64 (neg.f64 a1) (/.f64 b1 a2))
(*.f64 (/.f64 a1 b1) (neg.f64 a2))
(*.f64 a1 (neg.f64 (/.f64 a2 b1)))
(*.f64 a1 (/.f64 (neg.f64 a2) b1))
(*.f64 -1 (/.f64 (*.f64 a1 a2) b1))
(neg.f64 (/.f64 a1 (/.f64 b1 a2)))
(/.f64 (neg.f64 a1) (/.f64 b1 a2))
(*.f64 (/.f64 a1 b1) (neg.f64 a2))
(*.f64 a1 (neg.f64 (/.f64 a2 b1)))
(*.f64 a1 (/.f64 (neg.f64 a2) b1))
(*.f64 -1 (/.f64 (*.f64 a1 a2) b1))
(neg.f64 (/.f64 a1 (/.f64 b1 a2)))
(/.f64 (neg.f64 a1) (/.f64 b1 a2))
(*.f64 (/.f64 a1 b1) (neg.f64 a2))
(*.f64 a1 (neg.f64 (/.f64 a2 b1)))
(*.f64 a1 (/.f64 (neg.f64 a2) b1))
(*.f64 -1 (/.f64 (*.f64 a1 a2) b1))
(neg.f64 (/.f64 a1 (/.f64 b1 a2)))
(/.f64 (neg.f64 a1) (/.f64 b1 a2))
(*.f64 (/.f64 a1 b1) (neg.f64 a2))
(*.f64 a1 (neg.f64 (/.f64 a2 b1)))
(*.f64 a1 (/.f64 (neg.f64 a2) b1))
(*.f64 -1 (/.f64 (*.f64 a1 a2) b1))
(neg.f64 (/.f64 a1 (/.f64 b1 a2)))
(/.f64 (neg.f64 a1) (/.f64 b1 a2))
(*.f64 (/.f64 a1 b1) (neg.f64 a2))
(*.f64 a1 (neg.f64 (/.f64 a2 b1)))
(*.f64 a1 (/.f64 (neg.f64 a2) b1))
(*.f64 -1 (/.f64 (*.f64 a1 a2) b1))
(neg.f64 (/.f64 a1 (/.f64 b1 a2)))
(/.f64 (neg.f64 a1) (/.f64 b1 a2))
(*.f64 (/.f64 a1 b1) (neg.f64 a2))
(*.f64 a1 (neg.f64 (/.f64 a2 b1)))
(*.f64 a1 (/.f64 (neg.f64 a2) b1))
(*.f64 -1 (/.f64 (*.f64 a1 a2) b1))
(neg.f64 (/.f64 a1 (/.f64 b1 a2)))
(/.f64 (neg.f64 a1) (/.f64 b1 a2))
(*.f64 (/.f64 a1 b1) (neg.f64 a2))
(*.f64 a1 (neg.f64 (/.f64 a2 b1)))
(*.f64 a1 (/.f64 (neg.f64 a2) b1))
(*.f64 -1 (/.f64 (*.f64 a1 a2) b1))
(neg.f64 (/.f64 a1 (/.f64 b1 a2)))
(/.f64 (neg.f64 a1) (/.f64 b1 a2))
(*.f64 (/.f64 a1 b1) (neg.f64 a2))
(*.f64 a1 (neg.f64 (/.f64 a2 b1)))
(*.f64 a1 (/.f64 (neg.f64 a2) b1))
(*.f64 -1 (/.f64 (*.f64 a1 a2) b1))
(neg.f64 (/.f64 a1 (/.f64 b1 a2)))
(/.f64 (neg.f64 a1) (/.f64 b1 a2))
(*.f64 (/.f64 a1 b1) (neg.f64 a2))
(*.f64 a1 (neg.f64 (/.f64 a2 b1)))
(*.f64 a1 (/.f64 (neg.f64 a2) b1))
(*.f64 -1 (/.f64 (*.f64 a1 a2) b1))
(neg.f64 (/.f64 a1 (/.f64 b1 a2)))
(/.f64 (neg.f64 a1) (/.f64 b1 a2))
(*.f64 (/.f64 a1 b1) (neg.f64 a2))
(*.f64 a1 (neg.f64 (/.f64 a2 b1)))
(*.f64 a1 (/.f64 (neg.f64 a2) b1))
(*.f64 -1 (/.f64 (*.f64 a1 a2) b1))
(neg.f64 (/.f64 a1 (/.f64 b1 a2)))
(/.f64 (neg.f64 a1) (/.f64 b1 a2))
(*.f64 (/.f64 a1 b1) (neg.f64 a2))
(*.f64 a1 (neg.f64 (/.f64 a2 b1)))
(*.f64 a1 (/.f64 (neg.f64 a2) b1))
(*.f64 -1 (/.f64 (*.f64 a1 a2) b1))
(neg.f64 (/.f64 a1 (/.f64 b1 a2)))
(/.f64 (neg.f64 a1) (/.f64 b1 a2))
(*.f64 (/.f64 a1 b1) (neg.f64 a2))
(*.f64 a1 (neg.f64 (/.f64 a2 b1)))
(*.f64 a1 (/.f64 (neg.f64 a2) b1))
(*.f64 -1 (/.f64 (*.f64 a1 a2) b1))
(neg.f64 (/.f64 a1 (/.f64 b1 a2)))
(/.f64 (neg.f64 a1) (/.f64 b1 a2))
(*.f64 (/.f64 a1 b1) (neg.f64 a2))
(*.f64 a1 (neg.f64 (/.f64 a2 b1)))
(*.f64 a1 (/.f64 (neg.f64 a2) b1))
(*.f64 -1 (/.f64 (*.f64 a1 a2) b1))
(neg.f64 (/.f64 a1 (/.f64 b1 a2)))
(/.f64 (neg.f64 a1) (/.f64 b1 a2))
(*.f64 (/.f64 a1 b1) (neg.f64 a2))
(*.f64 a1 (neg.f64 (/.f64 a2 b1)))
(*.f64 a1 (/.f64 (neg.f64 a2) b1))

prune160.0ms (5.5%)

Pruning

6 alts after pruning (4 fresh and 2 done)

PrunedKeptTotal
New1040104
Fresh044
Picked011
Done011
Total1046110
Error
0b
Counts
110 → 6
Alt Table
StatusErrorProgram
11.1b
(/.f64 a1 (*.f64 (/.f64 b2 a2) b1))
7.9b
(/.f64 (*.f64 (/.f64 1 b1) (*.f64 a1 (neg.f64 a2))) (neg.f64 b2))
8.8b
(*.f64 (/.f64 1 b1) (/.f64 (*.f64 a1 a2) b2))
9.8b
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
11.5b
(/.f64 a2 (/.f64 (*.f64 b2 b1) a1))
10.3b
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
Compiler

Compiled 1384 to 506 computations (63.4% saved)

localize5.0ms (0.2%)

Local error

Found 1 expressions with local error:

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

series3.0ms (0.1%)

Counts
1 → 48
Calls

12 calls:

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

rewrite53.0ms (1.8%)

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

Useful iterations: 0 (0.0ms)

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

simplify19.0ms (0.7%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
08480
117480
238480
367480
479480
579480
Stop Event
saturated
Counts
126 → 79
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)))

prune112.0ms (3.9%)

Pruning

6 alts after pruning (3 fresh and 3 done)

PrunedKeptTotal
New78179
Fresh123
Picked011
Done022
Total79685
Error
0b
Counts
85 → 6
Alt Table
StatusErrorProgram
10.1b
(/.f64 a1 (*.f64 b2 (/.f64 b1 a2)))
10.3b
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
8.8b
(*.f64 (/.f64 1 b1) (/.f64 (*.f64 a1 a2) b2))
9.8b
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
7.9b
(/.f64 (*.f64 (/.f64 1 b1) (*.f64 a1 (neg.f64 a2))) (neg.f64 b2))
11.5b
(/.f64 a2 (/.f64 (*.f64 b2 b1) a1))
Compiler

Compiled 897 to 308 computations (65.7% saved)

regimes266.0ms (9.2%)

Accuracy

Total -42.1b remaining (-4275.7%)

Threshold costs -42.1b (-4275.7%)

Counts
13 → 5
Calls
Call 1
Inputs
(/.f64 a1 (*.f64 b2 (/.f64 b1 a2)))
(/.f64 a1 (*.f64 (/.f64 b2 a2) b1))
(/.f64 (*.f64 (/.f64 1 b1) (*.f64 a1 (neg.f64 a2))) (neg.f64 b2))
(/.f64 a2 (/.f64 (*.f64 b2 b1) a1))
(*.f64 a2 (*.f64 a1 (/.f64 1 (*.f64 b1 b2))))
(pow.f64 (*.f64 (/.f64 b1 a1) (/.f64 b2 a2)) -1)
(*.f64 a1 (/.f64 1 (/.f64 b1 (/.f64 a2 b2))))
(*.f64 (/.f64 1 b1) (/.f64 (*.f64 a1 a2) b2))
(*.f64 (/.f64 a1 b2) (/.f64 a2 b1))
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
(*.f64 (/.f64 (sqrt.f64 (*.f64 a1 a2)) b2) (/.f64 (sqrt.f64 (*.f64 a1 a2)) b1))
(*.f64 a1 (/.f64 a2 (*.f64 b1 b2)))
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
Outputs
(/.f64 a1 (*.f64 (/.f64 b2 a2) b1))
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
(*.f64 (/.f64 a2 b2) (/.f64 a1 b1))
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
(pow.f64 (*.f64 (/.f64 b1 a1) (/.f64 b2 a2)) -1)
Results
24.0ms6.3ba1
40.0ms3.5ba2
27.0ms5.7bb1
41.0ms4.4bb2
25.0ms1.0b(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
24.0ms2.8b(*.f64 a1 a2)
23.0ms2.8b(*.f64 a1 a2)
27.0ms1.7b(*.f64 b1 b2)
30.0ms1.7b(*.f64 b1 b2)
Compiler

Compiled 172 to 94 computations (45.3% saved)

bsearch1.0ms (0%)

Algorithm
left-value
Calls

4 calls:

0.0ms
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
0.0ms
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
0.0ms
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
0.0ms
(/.f64 (*.f64 a1 a2) (*.f64 b1 b2))
Steps
ItersPointRange
2e+299
∈ [
1.1153819447693085e+299
,
#hash((type . real) (value . +inf))
]
0.0
∈ [
0.0
,
3.79907e-319
]
-2e-290
∈ [
-3.365993864196966e-290
,
-8.013466337842067e-294
]
-4e+273
∈ [
-4.527227945420656e+273
,
-2.8940042188938786e+259
]
Compiler

Compiled 18 to 13 computations (27.8% saved)

simplify5.0ms (0.2%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
031113
136113
Stop Event
saturated
Calls
Call 1
Inputs
(if (<=.f64 (/.f64 (*.f64 a1 a2) (*.f64 b1 b2)) -3999999999999999781609366786370699538315906167821770636530441439302874776971656477259368651282701118596156829198285235335387636764554739890031957129346783130430668160903673100202736261044670067912709419161062420261864265477507401405172243694156185754678721627618859815010304) (/.f64 a1 (*.f64 (/.f64 b2 a2) b1)) (if (<=.f64 (/.f64 (*.f64 a1 a2) (*.f64 b1 b2)) -3595386269724632064/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216) (/.f64 (*.f64 a1 a2) (*.f64 b1 b2)) (if (<=.f64 (/.f64 (*.f64 a1 a2) (*.f64 b1 b2)) 0) (*.f64 (/.f64 a2 b2) (/.f64 a1 b1)) (if (<=.f64 (/.f64 (*.f64 a1 a2) (*.f64 b1 b2)) 200000000000000010500952051040884049740893716221631830983170823102360491597781639157274275016089572808740888766576775635388504647072086115128958436957341396569677440185315160747566046758957618011873790646994159989016223807793528176014930548556028498915851757764011368567623133894439277373091880108032) (/.f64 (*.f64 a1 a2) (*.f64 b1 b2)) (pow.f64 (*.f64 (/.f64 b1 a1) (/.f64 b2 a2)) -1)))))
Outputs
(if (<=.f64 (/.f64 (*.f64 a1 a2) (*.f64 b1 b2)) -3999999999999999781609366786370699538315906167821770636530441439302874776971656477259368651282701118596156829198285235335387636764554739890031957129346783130430668160903673100202736261044670067912709419161062420261864265477507401405172243694156185754678721627618859815010304) (/.f64 a1 (*.f64 (/.f64 b2 a2) b1)) (if (<=.f64 (/.f64 (*.f64 a1 a2) (*.f64 b1 b2)) -3595386269724632064/179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216) (/.f64 (*.f64 a1 a2) (*.f64 b1 b2)) (if (<=.f64 (/.f64 (*.f64 a1 a2) (*.f64 b1 b2)) 0) (*.f64 (/.f64 a2 b2) (/.f64 a1 b1)) (if (<=.f64 (/.f64 (*.f64 a1 a2) (*.f64 b1 b2)) 200000000000000010500952051040884049740893716221631830983170823102360491597781639157274275016089572808740888766576775635388504647072086115128958436957341396569677440185315160747566046758957618011873790646994159989016223807793528176014930548556028498915851757764011368567623133894439277373091880108032) (/.f64 (*.f64 a1 a2) (*.f64 b1 b2)) (pow.f64 (*.f64 (/.f64 b1 a1) (/.f64 b2 a2)) -1)))))
(if (<=.f64 (/.f64 (*.f64 a1 a2) (*.f64 b1 b2)) -3999999999999999781609366786370699538315906167821770636530441439302874776971656477259368651282701118596156829198285235335387636764554739890031957129346783130430668160903673100202736261044670067912709419161062420261864265477507401405172243694156185754678721627618859815010304) (/.f64 a1 (*.f64 b1 (/.f64 b2 a2))) (if (<=.f64 (/.f64 (*.f64 a1 a2) (*.f64 b1 b2)) -3511119404027961/175555970201398037864189960037990696642380564349834626243584063630598316216309534309285622385163609395625111210811907575838661883607828732903171318983861449587663958422720200465138886329341888788528401320395513446131006525725061407689368272012526598792334483090416306874948482361796597953940777665648656384) (/.f64 (*.f64 a1 a2) (*.f64 b1 b2)) (if (<=.f64 (/.f64 (*.f64 a1 a2) (*.f64 b1 b2)) 0) (*.f64 (/.f64 a2 b2) (/.f64 a1 b1)) (if (<=.f64 (/.f64 (*.f64 a1 a2) (*.f64 b1 b2)) 200000000000000010500952051040884049740893716221631830983170823102360491597781639157274275016089572808740888766576775635388504647072086115128958436957341396569677440185315160747566046758957618011873790646994159989016223807793528176014930548556028498915851757764011368567623133894439277373091880108032) (/.f64 (*.f64 a1 a2) (*.f64 b1 b2)) (pow.f64 (*.f64 (/.f64 b2 a2) (/.f64 b1 a1)) -1)))))

end57.0ms (2%)

Stop Event
fuel
Compiler

Compiled 486 to 174 computations (64.2% saved)

Profiling

Loading profile data...