Details

Time bar (total: 3.5s)

analyze1.3s (37.5%)

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
0%99.8%0.2%9
1.6%98.2%0.2%10
2.3%97.5%0.2%11
3.9%95.9%0.2%12
17.1%82.4%0.6%13
21.9%77.4%0.6%14
Compiler

Compiled 14 to 9 computations (35.7% saved)

sample1.2s (35.7%)

Results
1.0s8256×body128valid
188.0ms1616×body128invalid

preprocess64.0ms (1.9%)

Algorithm
egg-herbie
Rules
541×associate-/l*_binary64
504×associate-/l/_binary64
483×associate-/r/_binary64
470×cube-div_binary64
440×swap-sqr_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
03291
18470
224049
357949
4410849
5418249
6482049
044
144
Stop Event
unsound
node limit
Calls
Call 1
Inputs
0
1
2
3
Outputs
0
1
0
2
3
Call 2
Inputs
(*.f64 x (/.f64 (*.f64 (/.f64 y z) t) t))
(*.f64 y (/.f64 (*.f64 (/.f64 x z) t) t))
(*.f64 z (/.f64 (*.f64 (/.f64 y x) t) t))
(*.f64 t (/.f64 (*.f64 (/.f64 y z) x) x))
(*.f64 x (/.f64 (*.f64 (/.f64 z y) t) t))
(*.f64 x (/.f64 (*.f64 (/.f64 t z) y) y))
(*.f64 x (/.f64 (*.f64 (/.f64 y t) z) z))
Outputs
(*.f64 x (/.f64 (*.f64 (/.f64 y z) t) t))
(*.f64 x (/.f64 (/.f64 y z) (/.f64 t t)))
(*.f64 x (/.f64 (/.f64 y z) 1))
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 (*.f64 (/.f64 x z) t) t))
(*.f64 x (/.f64 (/.f64 y z) (/.f64 t t)))
(*.f64 x (/.f64 (/.f64 y z) 1))
(*.f64 x (/.f64 y z))
(*.f64 z (/.f64 (*.f64 (/.f64 y x) t) t))
(*.f64 z (/.f64 (/.f64 y x) (/.f64 t t)))
(*.f64 z (/.f64 (/.f64 y x) 1))
(*.f64 z (/.f64 y x))
(/.f64 z (/.f64 x y))
(*.f64 t (/.f64 (*.f64 (/.f64 y z) x) x))
(*.f64 t (/.f64 (/.f64 y z) (/.f64 x x)))
(*.f64 t (/.f64 (/.f64 y z) 1))
(*.f64 y (/.f64 t z))
(/.f64 (*.f64 y t) z)
(*.f64 x (/.f64 (*.f64 (/.f64 z y) t) t))
(/.f64 (*.f64 x (*.f64 t (/.f64 z y))) t)
(/.f64 (*.f64 x (/.f64 z y)) 1)
(*.f64 x (/.f64 z y))
(*.f64 x (/.f64 (*.f64 (/.f64 t z) y) y))
(*.f64 x (/.f64 (/.f64 t z) (/.f64 y y)))
(/.f64 (*.f64 x (/.f64 t z)) 1)
(*.f64 x (/.f64 t z))
(*.f64 x (/.f64 (*.f64 (/.f64 y t) z) z))
(*.f64 x (/.f64 (/.f64 y t) (/.f64 z z)))
(*.f64 x (/.f64 y (*.f64 1 t)))
(*.f64 x (/.f64 y t))
Symmetry

(sort x y)

Compiler

Compiled 13 to 8 computations (38.5% saved)

simplify62.0ms (1.8%)

Algorithm
egg-herbie
Rules
1339×associate-/l/_binary64
968×associate-/r/_binary64
266×times-frac_binary64
246×*-commutative_binary64
209×associate-/l*_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0913
11710
2437
31047
44557
522787
624647
724777
824907
924977
1025047
1125117
1225187
1325257
1425327
1525397
1625467
1725537
1825607
1925677
2025747
Stop Event
node limit
Counts
1 → 2
Calls
Call 1
Inputs
(*.f64 x (/.f64 (*.f64 (/.f64 y z) t) t))
Outputs
(*.f64 x (/.f64 (*.f64 (/.f64 y z) t) t))
(*.f64 x (/.f64 (/.f64 y z) (/.f64 t t)))
(/.f64 (*.f64 (/.f64 y z) x) 1)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 x (/.f64 z y))

prune3.0ms (0.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
7.2b
Counts
3 → 2
Alt Table
StatusErrorProgram
7.3b
(/.f64 x (/.f64 z y))
16.1b
(*.f64 x (/.f64 (*.f64 (/.f64 y z) t) t))
Compiler

Compiled 62 to 38 computations (38.7% saved)

localize4.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
7.0b
(/.f64 x (/.f64 z y))

series6.0ms (0.2%)

Counts
1 → 36
Calls

9 calls:

TimeVariablePointExpression
1.0ms
z
@inf
(/.f64 x (/.f64 z y))
1.0ms
x
@0
(/.f64 x (/.f64 z y))
1.0ms
y
@inf
(/.f64 x (/.f64 z y))
1.0ms
z
@0
(/.f64 x (/.f64 z y))
1.0ms
y
@0
(/.f64 x (/.f64 z y))

rewrite39.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
780×pow1_binary64
724×log1p-expm1-u_binary64
724×expm1-log1p-u_binary64
69×*-un-lft-identity_binary64
69×add-sqr-sqrt_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
067
11317
219157
Stop Event
node limit
Counts
1 → 43
Calls
Call 1
Inputs
(/.f64 x (/.f64 z y))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 x (/.f64 y z)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (/.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (/.f64 x z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x (/.f64 y z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 x (/.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 x (/.f64 y z))) (cbrt.f64 (pow.f64 (*.f64 x (/.f64 y z)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (*.f64 x (/.f64 y z)) 2)) (cbrt.f64 (*.f64 x (/.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 x) 2) (*.f64 (cbrt.f64 x) (/.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 x (/.f64 y z))) (sqrt.f64 (*.f64 x (/.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 x) (*.f64 (sqrt.f64 x) (/.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 x) (/.f64 1 (/.f64 (neg.f64 z) y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 y z) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x z) y)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 z) (/.f64 x (/.f64 1 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 x) 2) z) (/.f64 (cbrt.f64 x) (/.f64 1 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 x) z) (/.f64 (sqrt.f64 x) (/.f64 1 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 x) 2) 1) (/.f64 (cbrt.f64 x) (/.f64 z y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 x) 1) (/.f64 (sqrt.f64 x) (/.f64 z y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (pow.f64 (cbrt.f64 (/.f64 z y)) 2)) (/.f64 x (cbrt.f64 (/.f64 z y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 x) 2) (pow.f64 (cbrt.f64 (/.f64 z y)) 2)) (cbrt.f64 (*.f64 x (/.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 x) (pow.f64 (cbrt.f64 (/.f64 z y)) 2)) (/.f64 (sqrt.f64 x) (cbrt.f64 (/.f64 z y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (sqrt.f64 (/.f64 z y))) (/.f64 x (sqrt.f64 (/.f64 z y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 x) 2) (sqrt.f64 (/.f64 z y))) (/.f64 (cbrt.f64 x) (sqrt.f64 (/.f64 z y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x 1) (/.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x (neg.f64 z)) (neg.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 x z) 1) y)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 x z) (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 x z) (sqrt.f64 y)) (sqrt.f64 y))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x (/.f64 y z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 x (/.f64 y z)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 x (/.f64 y z))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 x (/.f64 y z))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 z (*.f64 x y)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 x (/.f64 (neg.f64 z) y)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 x (/.f64 y z)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 x) (/.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 x (/.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 x (/.f64 y z)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 x 3) (pow.f64 (/.f64 z y) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 x (/.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 x (/.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 x (/.f64 y z))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x (/.f64 y z))))))))

simplify14.0ms (0.4%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
06252
19252
213252
316252
417252
Stop Event
saturated
Counts
79 → 44
Calls
Call 1
Inputs
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
Outputs
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))

prune36.0ms (1%)

Pruning

8 alts after pruning (7 fresh and 1 done)

PrunedKeptTotal
New38644
Fresh011
Picked011
Done000
Total38846
Error
0.0b
Counts
46 → 8
Alt Table
StatusErrorProgram
6.1b
(*.f64 y (/.f64 x z))
7.3b
(/.f64 x (/.f64 z y))
8.8b
(pow.f64 (/.f64 z (*.f64 x y)) -1)
19.5b
(*.f64 (*.f64 (/.f64 x z) (sqrt.f64 y)) (sqrt.f64 y))
35.2b
(*.f64 (/.f64 1 (sqrt.f64 (/.f64 z y))) (/.f64 x (sqrt.f64 (/.f64 z y))))
8.5b
(*.f64 (/.f64 1 z) (/.f64 x (/.f64 1 y)))
8.4b
(/.f64 (*.f64 y x) z)
16.1b
(*.f64 x (/.f64 (*.f64 (/.f64 y z) t) t))
Compiler

Compiled 599 to 279 computations (53.4% saved)

localize3.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
5.9b
(*.f64 y (/.f64 x z))

series4.0ms (0.1%)

Counts
1 → 36
Calls

9 calls:

TimeVariablePointExpression
2.0ms
z
@-inf
(*.f64 y (/.f64 x z))
0.0ms
y
@0
(*.f64 y (/.f64 x z))
0.0ms
x
@inf
(*.f64 y (/.f64 x z))
0.0ms
x
@-inf
(*.f64 y (/.f64 x z))
0.0ms
y
@inf
(*.f64 y (/.f64 x z))

rewrite36.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
681×pow1_binary64
628×add-log-exp_binary64
628×log1p-expm1-u_binary64
628×expm1-log1p-u_binary64
65×*-un-lft-identity_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
067
11257
216727
Stop Event
node limit
Counts
1 → 23
Calls
Call 1
Inputs
(*.f64 y (/.f64 x z))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 y (/.f64 z x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 y (/.f64 z x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 z (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y x) z)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 y x)) (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 y x) 1) z)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 y x) (pow.f64 (cbrt.f64 z) 2)) (cbrt.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 y x) (sqrt.f64 z)) (sqrt.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 x) y) (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y (neg.f64 x)) (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 y (/.f64 z x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 y (/.f64 z x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 y (/.f64 z x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 y (/.f64 z x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 y (/.f64 z x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 y) (/.f64 x z)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 y (/.f64 z x)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 y (/.f64 z x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 y 3) (pow.f64 (/.f64 x z) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (/.f64 x z) 3) (pow.f64 y 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 y (/.f64 z x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 y (/.f64 z x))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 y (/.f64 z x))))))))

simplify18.0ms (0.5%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
06252
19252
213252
316252
417252
Stop Event
saturated
Counts
59 → 24
Calls
Call 1
Inputs
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
Outputs
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))

prune19.0ms (0.6%)

Pruning

7 alts after pruning (5 fresh and 2 done)

PrunedKeptTotal
New23124
Fresh246
Picked011
Done011
Total25732
Error
0b
Counts
32 → 7
Alt Table
StatusErrorProgram
6.1b
(*.f64 y (/.f64 x z))
7.3b
(/.f64 x (/.f64 z y))
19.5b
(*.f64 (*.f64 (/.f64 x z) (sqrt.f64 y)) (sqrt.f64 y))
5.9b
(/.f64 y (/.f64 z x))
8.5b
(*.f64 (/.f64 1 z) (/.f64 x (/.f64 1 y)))
8.4b
(/.f64 (*.f64 y x) z)
16.1b
(*.f64 x (/.f64 (*.f64 (/.f64 y z) t) t))
Compiler

Compiled 320 to 165 computations (48.4% saved)

localize4.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
5.7b
(/.f64 y (/.f64 z x))

series2.0ms (0.1%)

Counts
1 → 36
Calls

9 calls:

TimeVariablePointExpression
0.0ms
y
@0
(/.f64 y (/.f64 z x))
0.0ms
z
@-inf
(/.f64 y (/.f64 z x))
0.0ms
z
@inf
(/.f64 y (/.f64 z x))
0.0ms
y
@-inf
(/.f64 y (/.f64 z x))
0.0ms
x
@inf
(/.f64 y (/.f64 z x))

rewrite40.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
780×pow1_binary64
724×log1p-expm1-u_binary64
724×expm1-log1p-u_binary64
69×*-un-lft-identity_binary64
69×add-sqr-sqrt_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
067
11317
219157
Stop Event
node limit
Counts
1 → 43
Calls
Call 1
Inputs
(/.f64 y (/.f64 z x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 y (/.f64 x z)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (/.f64 x z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (/.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (/.f64 x z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 y (/.f64 x z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 y (/.f64 x z))) (cbrt.f64 (pow.f64 (*.f64 y (/.f64 x z)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (*.f64 y (/.f64 x z)) 2)) (cbrt.f64 (*.f64 y (/.f64 x z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 y) 2) (*.f64 (cbrt.f64 y) (/.f64 x z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 y (/.f64 x z))) (sqrt.f64 (*.f64 y (/.f64 x z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 y) (/.f64 x z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 y) (/.f64 1 (/.f64 (neg.f64 z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x z) y)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 y z) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 z) (/.f64 y (/.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 y) 2) z) (/.f64 (cbrt.f64 y) (/.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 y) z) (/.f64 (sqrt.f64 y) (/.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 y) 2) 1) (/.f64 (cbrt.f64 y) (/.f64 z x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 y) 1) (/.f64 (sqrt.f64 y) (/.f64 z x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (pow.f64 (cbrt.f64 (/.f64 z x)) 2)) (/.f64 y (cbrt.f64 (/.f64 z x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 y) 2) (pow.f64 (cbrt.f64 (/.f64 z x)) 2)) (cbrt.f64 (*.f64 y (/.f64 x z))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 y) (pow.f64 (cbrt.f64 (/.f64 z x)) 2)) (/.f64 (sqrt.f64 y) (cbrt.f64 (/.f64 z x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (sqrt.f64 (/.f64 z x))) (/.f64 y (sqrt.f64 (/.f64 z x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 y) 2) (sqrt.f64 (/.f64 z x))) (/.f64 (cbrt.f64 y) (sqrt.f64 (/.f64 z x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 y 1) (/.f64 x z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 y (neg.f64 z)) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 y z) 1) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 y z) (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 y z) (sqrt.f64 x)) (sqrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y (/.f64 x z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 y (/.f64 x z)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 y (/.f64 x z))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 y (/.f64 x z))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 z (*.f64 y x)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 y (/.f64 (neg.f64 z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 y (/.f64 x z)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 y) (/.f64 x z)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 y (/.f64 x z)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 y (/.f64 x z)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 y 3) (pow.f64 (/.f64 z x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 y (/.f64 x z))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 y (/.f64 x z))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 y (/.f64 x z))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 y (/.f64 x z))))))))

simplify15.0ms (0.4%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
06252
19252
213252
316252
417252
Stop Event
saturated
Counts
79 → 44
Calls
Call 1
Inputs
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
(/.f64 (*.f64 y x) z)
Outputs
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 x z))

prune26.0ms (0.8%)

Pruning

7 alts after pruning (4 fresh and 3 done)

PrunedKeptTotal
New44044
Fresh044
Picked011
Done022
Total44751
Error
0b
Counts
51 → 7
Alt Table
StatusErrorProgram
6.1b
(*.f64 y (/.f64 x z))
7.3b
(/.f64 x (/.f64 z y))
19.5b
(*.f64 (*.f64 (/.f64 x z) (sqrt.f64 y)) (sqrt.f64 y))
5.9b
(/.f64 y (/.f64 z x))
8.5b
(*.f64 (/.f64 1 z) (/.f64 x (/.f64 1 y)))
8.4b
(/.f64 (*.f64 y x) z)
16.1b
(*.f64 x (/.f64 (*.f64 (/.f64 y z) t) t))
Compiler

Compiled 543 to 242 computations (55.4% saved)

localize3.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
8.2b
(/.f64 (*.f64 y x) z)

series2.0ms (0.1%)

Counts
1 → 0
Calls

9 calls:

TimeVariablePointExpression
0.0ms
x
@inf
(/.f64 (*.f64 y x) z)
0.0ms
y
@0
(/.f64 (*.f64 y x) z)
0.0ms
x
@-inf
(/.f64 (*.f64 y x) z)
0.0ms
y
@inf
(/.f64 (*.f64 y x) z)
0.0ms
z
@inf
(/.f64 (*.f64 y x) z)

rewrite40.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
712×pow1_binary64
659×add-log-exp_binary64
659×log1p-expm1-u_binary64
659×expm1-log1p-u_binary64
65×*-un-lft-identity_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
067
11257
217317
Stop Event
node limit
Counts
1 → 42
Calls
Call 1
Inputs
(/.f64 (*.f64 y x) z)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (/.f64 y z) x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (/.f64 1 (/.f64 z x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (*.f64 x (/.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (*.f64 y (/.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y x) (/.f64 1 z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 y z) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (/.f64 y z) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (/.f64 y z) x)) (cbrt.f64 (pow.f64 (*.f64 (/.f64 y z) x) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (*.f64 (/.f64 y z) x) 2)) (cbrt.f64 (*.f64 (/.f64 y z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 y x)) 2) (*.f64 (cbrt.f64 (*.f64 y x)) (/.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (/.f64 y z) x)) (sqrt.f64 (*.f64 (/.f64 y z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 y x)) (*.f64 (sqrt.f64 (*.f64 y x)) (/.f64 1 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (neg.f64 x)) (/.f64 1 (neg.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 z) (*.f64 y x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 y 1) (/.f64 x z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x 1) (/.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 y z) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (*.f64 y x)) 2) 1) (/.f64 (cbrt.f64 (*.f64 y x)) z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (*.f64 y x)) 1) (/.f64 (sqrt.f64 (*.f64 y x)) z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 y (pow.f64 (cbrt.f64 z) 2)) (/.f64 x (cbrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x (pow.f64 (cbrt.f64 z) 2)) (/.f64 y (cbrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (pow.f64 (cbrt.f64 z) 2)) (/.f64 (*.f64 y x) (cbrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (*.f64 y x)) 2) (pow.f64 (cbrt.f64 z) 2)) (cbrt.f64 (*.f64 (/.f64 y z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (*.f64 y x)) (pow.f64 (cbrt.f64 z) 2)) (/.f64 (sqrt.f64 (*.f64 y x)) (cbrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 y (sqrt.f64 z)) (/.f64 x (sqrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 x (sqrt.f64 z)) (/.f64 y (sqrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (sqrt.f64 z)) (/.f64 (*.f64 y x) (sqrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (*.f64 y x)) 2) (sqrt.f64 z)) (/.f64 (cbrt.f64 (*.f64 y x)) (sqrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 y z) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 y z) x) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (/.f64 y z) x)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (/.f64 y z) x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 z (*.f64 y x)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (*.f64 y x) (neg.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (/.f64 y z) x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (*.f64 (/.f64 y z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (/.f64 y z) x))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (/.f64 y z) x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (*.f64 y x) 3) (pow.f64 z 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (/.f64 y z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (/.f64 y z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (/.f64 y z) x)))))))

simplify7.0ms (0.2%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
000
Stop Event
saturated
Counts
42 → 42
Calls
Call 1
Inputs
Outputs

prune27.0ms (0.8%)

Pruning

6 alts after pruning (3 fresh and 3 done)

PrunedKeptTotal
New41142
Fresh123
Picked011
Done123
Total43649
Error
0b
Counts
49 → 6
Alt Table
StatusErrorProgram
6.2b
(*.f64 y (*.f64 x (/.f64 1 z)))
8.4b
(/.f64 (*.f64 y x) z)
5.9b
(/.f64 y (/.f64 z x))
8.5b
(*.f64 (/.f64 1 z) (/.f64 x (/.f64 1 y)))
7.3b
(/.f64 x (/.f64 z y))
16.1b
(*.f64 x (/.f64 (*.f64 (/.f64 y z) t) t))
Compiler

Compiled 478 to 202 computations (57.7% saved)

regimes364.0ms (10.6%)

Accuracy

Total -25.2b remaining (-5973.1%)

Threshold costs -25.2b (-5973.1%)

Counts
19 → 5
Compiler

Compiled 210 to 107 computations (49% saved)

bsearch1.0ms (0%)

Algorithm
left-value
Calls

4 calls:

0.0ms
(/.f64 y z)
0.0ms
(/.f64 y z)
0.0ms
(/.f64 y z)
0.0ms
(/.f64 y z)
Steps
ItersPointRange
2e+261
∈ [
1.0865468515513847e+261
,
1.0216225664219721e+263
]
2e-258
∈ [
1.8045800193130608e-258
,
3.620263549946779e-257
]
-1e-153
∈ [
-1.4155204740863057e-153
,
-2.427620116008641e-157
]
#hash((type . real) (value . -inf))
∈ [
#hash((type . real) (value . -inf))
,
-1.9070084319829682e+291
]
Compiler

Compiled 20 to 14 computations (30% saved)

simplify3.0ms (0.1%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02974
13274
Stop Event
saturated
Calls
Call 1
Inputs
(if (<=.f64 (/.f64 y z) -inf.0) (pow.f64 (/.f64 z (*.f64 x y)) -1) (if (<=.f64 (/.f64 y z) -7547924849643083/7547924849643082704483109161976537781833842440832880856752412600491248324784297704172253450355317535082936750061527689799541169259849585265122868502865392087298790653952) (*.f64 (/.f64 y z) x) (if (<=.f64 (/.f64 y z) 8655577598126739/4327788799063369698118367518036104040602397294887907509272254128346512609744690048814426160231687683233172643784762398137404191207445999921156415311568401014033503715319849649510248592805285405106374515984066055406780647774220793764564147394699562815402300054714269682368512) (/.f64 y (/.f64 z x)) (if (<=.f64 (/.f64 y z) 1999999999999999857547681040733515073753478641623153224463562961402940190709054988015492682882276552884948779539095127050864586233002245134357428718762445554209708921491609358759288994086416534767263294334755723897091779949617923739887142153550856217846978969600) (/.f64 x (/.f64 z y)) (*.f64 y (/.f64 x z))))))
Outputs
(if (<=.f64 (/.f64 y z) -inf.0) (pow.f64 (/.f64 z (*.f64 x y)) -1) (if (<=.f64 (/.f64 y z) -7547924849643083/7547924849643082704483109161976537781833842440832880856752412600491248324784297704172253450355317535082936750061527689799541169259849585265122868502865392087298790653952) (*.f64 (/.f64 y z) x) (if (<=.f64 (/.f64 y z) 8655577598126739/4327788799063369698118367518036104040602397294887907509272254128346512609744690048814426160231687683233172643784762398137404191207445999921156415311568401014033503715319849649510248592805285405106374515984066055406780647774220793764564147394699562815402300054714269682368512) (/.f64 y (/.f64 z x)) (if (<=.f64 (/.f64 y z) 1999999999999999857547681040733515073753478641623153224463562961402940190709054988015492682882276552884948779539095127050864586233002245134357428718762445554209708921491609358759288994086416534767263294334755723897091779949617923739887142153550856217846978969600) (/.f64 x (/.f64 z y)) (*.f64 y (/.f64 x z))))))
(if (<=.f64 (/.f64 y z) -inf.0) (pow.f64 (/.f64 z (*.f64 y x)) -1) (if (<=.f64 (/.f64 y z) -7547924849643083/7547924849643082704483109161976537781833842440832880856752412600491248324784297704172253450355317535082936750061527689799541169259849585265122868502865392087298790653952) (*.f64 (/.f64 y z) x) (if (<=.f64 (/.f64 y z) 8655577598126739/4327788799063369698118367518036104040602397294887907509272254128346512609744690048814426160231687683233172643784762398137404191207445999921156415311568401014033503715319849649510248592805285405106374515984066055406780647774220793764564147394699562815402300054714269682368512) (/.f64 y (/.f64 z x)) (if (<=.f64 (/.f64 y z) 1999999999999999857547681040733515073753478641623153224463562961402940190709054988015492682882276552884948779539095127050864586233002245134357428718762445554209708921491609358759288994086416534767263294334755723897091779949617923739887142153550856217846978969600) (/.f64 x (/.f64 z y)) (*.f64 y (/.f64 x z))))))

end80.0ms (2.3%)

Stop Event
fuel
Compiler

Compiled 260 to 126 computations (51.5% saved)

Profiling

Loading profile data...