Details

Time bar (total: 5.2s)

analyze483.0ms (9.3%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.8%0.2%0%0%0%0
0%0%99.8%0.2%0%0%0%1
0%0%99.8%0.2%0%0%0%2
0%0%99.8%0.2%0%0%0%3
0%0%99.8%0.2%0%0%0%4
0%0%99.8%0.2%0%0%0%5
0%0%99.8%0.2%0%0%0%6
0%0%99.8%0.2%0%0%0%7
0%0%99.8%0.2%0%0%0%8
0%0%99.8%0.2%0%0%0%9
1.6%1.6%98.2%0.2%0%0%0%10
2.3%2.3%97.5%0.2%0%0%0%11
3.9%3.9%95.9%0.2%0%0%0%12
Compiler

Compiled 14 to 9 computations (35.7% saved)

sample1.5s (28.6%)

Results
1.2s8256×body256valid
274.0ms1694×body256infinite
Bogosity

preprocess83.0ms (1.6%)

Algorithm
egg-herbie
Rules
869×swap-sqr_binary64
546×associate-/l*_binary64
503×associate-/l/_binary64
501×associate-/r/_binary64
470×cube-div_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
03291
18470
224349
358549
4425849
5433249
6497049
7670449
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 y (*.f64 1 z)))
(*.f64 x (/.f64 y z))
(/.f64 x (/.f64 z y))
(*.f64 y (/.f64 (*.f64 (/.f64 x z) t) t))
(*.f64 x (/.f64 (/.f64 y z) (/.f64 t t)))
(*.f64 x (/.f64 y (*.f64 1 z)))
(*.f64 x (/.f64 y z))
(/.f64 x (/.f64 z y))
(*.f64 z (/.f64 (*.f64 (/.f64 y x) t) t))
(*.f64 z (/.f64 (/.f64 y x) (/.f64 t t)))
(*.f64 z (/.f64 y (*.f64 1 x)))
(/.f64 (*.f64 y z) x)
(*.f64 z (/.f64 y x))
(*.f64 t (/.f64 (*.f64 (/.f64 y z) x) x))
(*.f64 t (/.f64 (/.f64 y z) (/.f64 x x)))
(*.f64 t (/.f64 y (*.f64 1 z)))
(*.f64 y (/.f64 t z))
(/.f64 (*.f64 y t) z)
(/.f64 t (/.f64 z y))
(*.f64 x (/.f64 (*.f64 (/.f64 z y) t) t))
(*.f64 x (/.f64 (/.f64 z y) (/.f64 t t)))
(*.f64 x (/.f64 z (*.f64 1 y)))
(*.f64 (/.f64 x y) z)
(*.f64 z (/.f64 x y))
(*.f64 x (/.f64 z y))
(*.f64 x (/.f64 (*.f64 (/.f64 t z) y) y))
(*.f64 x (/.f64 (/.f64 t z) (/.f64 y y)))
(*.f64 x (/.f64 t (*.f64 1 z)))
(*.f64 x (/.f64 t z))
(/.f64 x (/.f64 z t))
(*.f64 x (/.f64 (*.f64 (/.f64 y t) z) z))
(*.f64 x (/.f64 (/.f64 y t) (/.f64 z z)))
(/.f64 (*.f64 x (/.f64 y t)) 1)
(*.f64 x (/.f64 y t))
(/.f64 y (/.f64 t x))
Symmetry

(sort x y)

Compiler

Compiled 17 to 12 computations (29.4% saved)

simplify94.0ms (1.8%)

Algorithm
egg-herbie
Rules
1441×associate-/l/_binary64
1020×associate-/r/_binary64
1016×associate-/l*_binary64
703×associate-*l/_binary64
631×associate-/r*_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0913
11710
2437
31047
44547
523297
625237
725367
825497
925567
1025637
1125707
1225777
1325847
1425917
1525987
1626057
1726127
1826197
1926267
2026337
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))

eval1.0ms (0%)

Compiler

Compiled 18 to 10 computations (44.4% saved)

prune1.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
4.9b
Counts
3 → 2
Alt Table
Click to see full alt table
StatusErrorProgram
5.0b
(/.f64 x (/.f64 z y))
13.2b
(*.f64 x (/.f64 (*.f64 (/.f64 y z) t) t))
Compiler

Compiled 22 to 14 computations (36.4% saved)

localize45.0ms (0.9%)

Local error

Found 3 expressions with local error:

NewErrorProgram
3.6b
(*.f64 (/.f64 y z) t)
5.2b
(*.f64 x (/.f64 (*.f64 (/.f64 y z) t) t))
9.0b
(/.f64 (*.f64 (/.f64 y z) t) t)
Compiler

Compiled 32 to 8 computations (75% saved)

series23.0ms (0.4%)

Counts
3 → 120
Calls

30 calls:

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

rewrite136.0ms (2.6%)

Algorithm
batch-egg-rewrite
Rules
542×log-prod_binary64
399×exp-prod_binary64
354×pow-prod-down_binary64
249×pow-unpow_binary64
242×pow2_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0930
119418
2289318
Stop Event
node limit
Counts
3 → 139
Calls
Call 1
Inputs
(/.f64 (*.f64 (/.f64 y z) t) t)
(*.f64 x (/.f64 (*.f64 (/.f64 y z) t) t))
(*.f64 (/.f64 y z) t)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (/.f64 y z))) 2)) (log.f64 (cbrt.f64 (exp.f64 (/.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (/.f64 y z)))) (log.f64 (sqrt.f64 (exp.f64 (/.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 y z))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (pow.f64 z -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 y z) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 t (*.f64 (/.f64 y z) (/.f64 1 t)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 y z) t) (/.f64 1 t))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 t) (/.f64 (/.f64 y z) (cbrt.f64 t)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 y) 2) (*.f64 (cbrt.f64 y) (pow.f64 z -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 (/.f64 y z) t)) 2) (*.f64 (cbrt.f64 (*.f64 (/.f64 y z) t)) (/.f64 1 t)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 y z)) (cbrt.f64 (pow.f64 (/.f64 y z) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (/.f64 y z) 2)) (cbrt.f64 (/.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 t) (/.f64 (/.f64 y z) (sqrt.f64 t)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 y) (pow.f64 z -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (/.f64 y z) t)) (*.f64 (sqrt.f64 (*.f64 (/.f64 y z) t)) (/.f64 1 t)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 y z)) (sqrt.f64 (/.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 y z) (neg.f64 t)) (/.f64 1 (neg.f64 t)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 y) (pow.f64 (neg.f64 z) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 t) (*.f64 (/.f64 y z) t))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 z -1) y)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 t 1) (/.f64 (/.f64 y z) t))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 y z) t) t)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (*.f64 (/.f64 y z) t)) 2) 1) (/.f64 (cbrt.f64 (*.f64 (/.f64 y z) t)) t))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (*.f64 (/.f64 y z) t)) 1) (/.f64 (sqrt.f64 (*.f64 (/.f64 y z) t)) t))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 y z) (/.f64 t (cbrt.f64 t))) (/.f64 t (cbrt.f64 t)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 t) t) (/.f64 (*.f64 (/.f64 y z) t) (cbrt.f64 t)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (*.f64 (/.f64 y z) t)) 2) (/.f64 t (cbrt.f64 t))) (cbrt.f64 (/.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (*.f64 (/.f64 y z) t)) (/.f64 t (cbrt.f64 t))) (/.f64 (sqrt.f64 (*.f64 (/.f64 y z) t)) (cbrt.f64 t)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 y z) (sqrt.f64 t)) (sqrt.f64 t))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 t -1/2) (/.f64 (*.f64 (/.f64 y z) t) (sqrt.f64 t)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (*.f64 (/.f64 y z) t)) 2) (sqrt.f64 t)) (/.f64 (cbrt.f64 (*.f64 (/.f64 y z) t)) (sqrt.f64 t)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 y) 2) 1) (/.f64 (cbrt.f64 y) z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 y) 1) (/.f64 (sqrt.f64 y) z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 z) -2) (/.f64 y (cbrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 y) 2) (pow.f64 (cbrt.f64 z) 2)) (cbrt.f64 (/.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 y) (pow.f64 (cbrt.f64 z) 2)) (/.f64 (sqrt.f64 y) (cbrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 z -1/2) (/.f64 y (sqrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 y) 2) (sqrt.f64 z)) (/.f64 (cbrt.f64 y) (sqrt.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 y z) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 y z) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 y z) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 y z)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 y z)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 z y) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (/.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 (*.f64 (/.f64 y z) t) 3) (pow.f64 t 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 y 3) (pow.f64 z 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (/.f64 z y) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (/.f64 y z))) 2)) (cbrt.f64 (log.f64 (/.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (/.f64 y z)))) (sqrt.f64 (log.f64 (/.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (*.f64 (/.f64 y z) t) (neg.f64 t)))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 y (neg.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 y z) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 y z))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 y z) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (*.f64 (/.f64 y z) t) 3) (pow.f64 t 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 y 3) (pow.f64 z 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 y z)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (/.f64 y z))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (/.f64 y z))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (/.f64 y z))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 z y)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (/.f64 y z)) 1) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (/.f64 y z) x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (/.f64 y z))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (/.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (/.f64 y z)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (/.f64 y z)))))))) (#(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 x (/.f64 z y))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (/.f64 y z) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 t (*.f64 (*.f64 (/.f64 y z) t) x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (/.f64 y z) t) x) t)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 (*.f64 (/.f64 y z) t) x)) (neg.f64 t))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 (*.f64 (/.f64 y z) t) x) 1) t)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 (*.f64 (/.f64 y z) t) x) (/.f64 t (cbrt.f64 t))) (cbrt.f64 t))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 (*.f64 (/.f64 y z) t) x) (sqrt.f64 t)) (sqrt.f64 t))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (/.f64 y z) (neg.f64 t)) x) (neg.f64 t))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (*.f64 (/.f64 y z) (neg.f64 t))) (neg.f64 t))))) (#(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) 2) 1/2)))) (#(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 (exp.f64 1) (log.f64 (*.f64 (/.f64 y z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 t (*.f64 (*.f64 (/.f64 y z) t) x)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 (/.f64 y z) x))) 2)) (cbrt.f64 (log.f64 (*.f64 (/.f64 y z) x))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 (/.f64 y z) x)))) (sqrt.f64 (log.f64 (*.f64 (/.f64 y z) x))))))) (#(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 (pow.f64 (exp.f64 x) (/.f64 y z)))))) (#(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 expm1.f64 (log1p.f64 (*.f64 (/.f64 y z) x)))))) (#(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 exp.f64 (*.f64 (log.f64 (*.f64 (/.f64 y z) x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 (/.f64 y z) x))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (/.f64 y z) x))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (/.f64 y z) x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (/.f64 y z) x)) 1) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (/.f64 y z) t))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 t) (/.f64 y z))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 t) (/.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 t) (/.f64 y z)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 t) (/.f64 y z)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (/.f64 y z) t))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 y (/.f64 z t))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 t (/.f64 z y))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 z (*.f64 y t)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y t) z)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 y t)) (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 y t) 1) z)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 y t) (pow.f64 (cbrt.f64 z) 2)) (cbrt.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 y t) (sqrt.f64 z)) (sqrt.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 y) t) (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 t (neg.f64 y)) (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 y z) t) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 y z) t) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 y z) t) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (/.f64 y z) t)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (/.f64 y z) t)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (*.f64 (/.f64 y z) t)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 z (*.f64 y t)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 (/.f64 y z) t))) 2)) (cbrt.f64 (log.f64 (*.f64 (/.f64 y z) t))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 (/.f64 y z) t)))) (sqrt.f64 (log.f64 (*.f64 (/.f64 y z) t))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (/.f64 y z) t) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 t) (/.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (/.f64 y z) t))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (/.f64 y z) t) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (/.f64 y z) t)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (/.f64 y z) t)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (/.f64 y z) t)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (/.f64 y z) t)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 (/.f64 y z) t))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (/.f64 y z) t))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (/.f64 y z) t))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (/.f64 y z) t)) 1) 1))))))

simplify64.0ms (1.2%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
010732
116732
221732
327732
429732
Stop Event
saturated
Counts
259 → 143
Calls
Call 1
Inputs
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y 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)
(/.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 t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
Outputs
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y t) z)
(*.f64 (/.f64 y z) t)
(*.f64 y (/.f64 t z))
(/.f64 (*.f64 y t) z)
(*.f64 (/.f64 y z) t)
(*.f64 y (/.f64 t z))
(/.f64 (*.f64 y t) z)
(*.f64 (/.f64 y z) t)
(*.f64 y (/.f64 t z))
(/.f64 (*.f64 y t) z)
(*.f64 (/.f64 y z) t)
(*.f64 y (/.f64 t z))
(/.f64 (*.f64 y t) z)
(*.f64 (/.f64 y z) t)
(*.f64 y (/.f64 t z))
(/.f64 (*.f64 y t) z)
(*.f64 (/.f64 y z) t)
(*.f64 y (/.f64 t z))
(/.f64 (*.f64 y t) z)
(*.f64 (/.f64 y z) t)
(*.f64 y (/.f64 t z))
(/.f64 (*.f64 y t) z)
(*.f64 (/.f64 y z) t)
(*.f64 y (/.f64 t z))
(/.f64 (*.f64 y t) z)
(*.f64 (/.f64 y z) t)
(*.f64 y (/.f64 t z))
(/.f64 (*.f64 y t) z)
(*.f64 (/.f64 y z) t)
(*.f64 y (/.f64 t z))
(/.f64 (*.f64 y t) z)
(*.f64 (/.f64 y z) t)
(*.f64 y (/.f64 t z))
(/.f64 (*.f64 y t) z)
(*.f64 (/.f64 y z) t)
(*.f64 y (/.f64 t z))
(/.f64 (*.f64 y t) z)
(*.f64 (/.f64 y z) t)
(*.f64 y (/.f64 t z))
(/.f64 (*.f64 y t) z)
(*.f64 (/.f64 y z) t)
(*.f64 y (/.f64 t z))
(/.f64 (*.f64 y t) z)
(*.f64 (/.f64 y z) t)
(*.f64 y (/.f64 t z))
(/.f64 (*.f64 y t) z)
(*.f64 (/.f64 y z) t)
(*.f64 y (/.f64 t z))
(/.f64 (*.f64 y t) z)
(*.f64 (/.f64 y z) t)
(*.f64 y (/.f64 t z))
(/.f64 (*.f64 y t) z)
(*.f64 (/.f64 y z) t)
(*.f64 y (/.f64 t z))
(/.f64 (*.f64 y t) z)
(*.f64 (/.f64 y z) t)
(*.f64 y (/.f64 t z))
(/.f64 (*.f64 y t) z)
(*.f64 (/.f64 y z) t)
(*.f64 y (/.f64 t z))
(/.f64 (*.f64 y t) z)
(*.f64 (/.f64 y z) t)
(*.f64 y (/.f64 t z))
(/.f64 (*.f64 y t) z)
(*.f64 (/.f64 y z) t)
(*.f64 y (/.f64 t z))
(/.f64 (*.f64 y t) z)
(*.f64 (/.f64 y z) t)
(*.f64 y (/.f64 t z))
(/.f64 (*.f64 y t) z)
(*.f64 (/.f64 y z) t)
(*.f64 y (/.f64 t z))
(/.f64 (*.f64 y t) z)
(*.f64 (/.f64 y z) t)
(*.f64 y (/.f64 t z))
(/.f64 (*.f64 y t) z)
(*.f64 (/.f64 y z) t)
(*.f64 y (/.f64 t z))
(/.f64 (*.f64 y t) z)
(*.f64 (/.f64 y z) t)
(*.f64 y (/.f64 t z))
(/.f64 (*.f64 y t) z)
(*.f64 (/.f64 y z) t)
(*.f64 y (/.f64 t z))
(/.f64 (*.f64 y t) z)
(*.f64 (/.f64 y z) t)
(*.f64 y (/.f64 t z))
(/.f64 (*.f64 y t) z)
(*.f64 (/.f64 y z) t)
(*.f64 y (/.f64 t z))
(/.f64 (*.f64 y t) z)
(*.f64 (/.f64 y z) t)
(*.f64 y (/.f64 t z))
(/.f64 (*.f64 y t) z)
(*.f64 (/.f64 y z) t)
(*.f64 y (/.f64 t z))
(/.f64 (*.f64 y t) z)
(*.f64 (/.f64 y z) t)
(*.f64 y (/.f64 t z))
(/.f64 (*.f64 y t) z)
(*.f64 (/.f64 y z) t)
(*.f64 y (/.f64 t z))
(/.f64 (*.f64 y t) z)
(*.f64 (/.f64 y z) t)
(*.f64 y (/.f64 t z))
(/.f64 (*.f64 y t) z)
(*.f64 (/.f64 y z) t)
(*.f64 y (/.f64 t z))

localize6.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
4.8b
(/.f64 x (/.f64 z y))
Compiler

Compiled 15 to 6 computations (60% saved)

series4.0ms (0.1%)

Counts
1 → 36
Calls

9 calls:

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

rewrite60.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
780×pow1_binary64
724×add-log-exp_binary64
724×log1p-expm1-u_binary64
724×expm1-log1p-u_binary64
707×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
067
11317
219157
Stop Event
node limit
Counts
1 → 41
Calls
Call 1
Inputs
(/.f64 x (/.f64 z y))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.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))) (pow.f64 (cbrt.f64 (*.f64 x (/.f64 y z))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.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 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 expm1.f64 (log1p.f64 (*.f64 x (/.f64 y z))))))) (#(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))))))))

simplify18.0ms (0.3%)

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
77 → 42
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 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))

eval45.0ms (0.9%)

Compiler

Compiled 2041 to 761 computations (62.7% saved)

prune57.0ms (1.1%)

Pruning

8 alts after pruning (7 fresh and 1 done)

PrunedKeptTotal
New1787185
Fresh000
Picked011
Done101
Total1798187
Error
0b
Counts
187 → 8
Alt Table
Click to see full alt table
StatusErrorProgram
20.2b
(*.f64 x (/.f64 (/.f64 y (/.f64 z t)) t))
5.2b
(/.f64 (*.f64 y x) z)
34.7b
(*.f64 (/.f64 1 (sqrt.f64 (/.f64 z y))) (/.f64 x (sqrt.f64 (/.f64 z y))))
5.2b
(/.f64 y (/.f64 z x))
5.3b
(*.f64 (/.f64 1 z) (/.f64 x (/.f64 1 y)))
5.6b
(*.f64 (/.f64 x z) y)
5.4b
(*.f64 (/.f64 y z) x)
5.0b
(/.f64 x (/.f64 z y))
Compiler

Compiled 167 to 110 computations (34.1% saved)

localize12.0ms (0.2%)

Local error

Found 1 expressions with local error:

NewErrorProgram
5.0b
(/.f64 (*.f64 y x) z)
Compiler

Compiled 15 to 6 computations (60% saved)

series5.0ms (0.1%)

Counts
1 → 0
Calls

9 calls:

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

rewrite78.0ms (1.5%)

Algorithm
batch-egg-rewrite
Rules
712×pow1_binary64
659×add-log-exp_binary64
659×log1p-expm1-u_binary64
659×expm1-log1p-u_binary64
644×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
067
11257
217317
Stop Event
node limit
Counts
1 → 41
Calls
Call 1
Inputs
(/.f64 (*.f64 y x) z)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.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)) (pow.f64 (cbrt.f64 (*.f64 (/.f64 y z) x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.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 x (neg.f64 y)) (/.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 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 expm1.f64 (log1p.f64 (*.f64 (/.f64 y z) x)))))) (#(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)))))))

simplify13.0ms (0.2%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

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

localize11.0ms (0.2%)

Local error

Found 1 expressions with local error:

NewErrorProgram
5.4b
(*.f64 (/.f64 x z) y)
Compiler

Compiled 15 to 6 computations (60% saved)

series5.0ms (0.1%)

Counts
1 → 36
Calls

9 calls:

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

rewrite62.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
682×pow1_binary64
629×add-log-exp_binary64
629×log1p-expm1-u_binary64
629×expm1-log1p-u_binary64
614×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify15.0ms (0.3%)

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 → 25
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 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))

localize6.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
5.2b
(*.f64 (/.f64 y z) x)
Compiler

Compiled 15 to 6 computations (60% saved)

series2.0ms (0%)

Counts
1 → 36
Calls

9 calls:

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

rewrite53.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
682×pow1_binary64
629×add-log-exp_binary64
629×log1p-expm1-u_binary64
629×expm1-log1p-u_binary64
614×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify47.0ms (0.9%)

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 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))

localize6.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
5.1b
(/.f64 y (/.f64 z x))
Compiler

Compiled 15 to 6 computations (60% saved)

series3.0ms (0.1%)

Counts
1 → 36
Calls

9 calls:

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

rewrite59.0ms (1.1%)

Algorithm
batch-egg-rewrite
Rules
780×pow1_binary64
724×add-log-exp_binary64
724×log1p-expm1-u_binary64
724×expm1-log1p-u_binary64
707×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
067
11317
219157
Stop Event
node limit
Counts
1 → 41
Calls
Call 1
Inputs
(/.f64 y (/.f64 z x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.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))) (pow.f64 (cbrt.f64 (*.f64 y (/.f64 x z))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.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 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 expm1.f64 (log1p.f64 (*.f64 y (/.f64 x z))))))) (#(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))))))))

simplify14.0ms (0.3%)

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
77 → 42
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 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))

localize21.0ms (0.4%)

Local error

Found 3 expressions with local error:

NewErrorProgram
5.2b
(*.f64 x (/.f64 (/.f64 y (/.f64 z t)) t))
7.2b
(/.f64 y (/.f64 z t))
9.0b
(/.f64 (/.f64 y (/.f64 z t)) t)
Compiler

Compiled 32 to 8 computations (75% saved)

series11.0ms (0.2%)

Counts
3 → 120
Calls

30 calls:

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

rewrite99.0ms (1.9%)

Algorithm
batch-egg-rewrite
Rules
636×log-prod_binary64
406×pow-prod-down_binary64
276×pow2_binary64
246×pow-unpow_binary64
206×log-div_binary64
Iterations

Useful iterations: 2 (0.0ms)

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

simplify27.0ms (0.5%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
010732
116732
221732
327732
429732
Stop Event
saturated
Counts
262 → 147
Calls
Call 1
Inputs
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) 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)
(/.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 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 (*.f64 y t) z)
(/.f64 y (/.f64 z t))
(/.f64 (*.f64 y t) z)
(/.f64 y (/.f64 z t))
(/.f64 (*.f64 y t) z)
(/.f64 y (/.f64 z t))
(/.f64 (*.f64 y t) z)
(/.f64 y (/.f64 z t))
(/.f64 (*.f64 y t) z)
(/.f64 y (/.f64 z t))
(/.f64 (*.f64 y t) z)
(/.f64 y (/.f64 z t))
(/.f64 (*.f64 y t) z)
(/.f64 y (/.f64 z t))
(/.f64 (*.f64 y t) z)
(/.f64 y (/.f64 z t))
(/.f64 (*.f64 y t) z)
(/.f64 y (/.f64 z t))
(/.f64 (*.f64 y t) z)
(/.f64 y (/.f64 z t))
(/.f64 (*.f64 y t) z)
(/.f64 y (/.f64 z t))
(/.f64 (*.f64 y t) z)
(/.f64 y (/.f64 z t))
(/.f64 (*.f64 y t) z)
(/.f64 y (/.f64 z t))
(/.f64 (*.f64 y t) z)
(/.f64 y (/.f64 z t))
(/.f64 (*.f64 y t) z)
(/.f64 y (/.f64 z t))
(/.f64 (*.f64 y t) z)
(/.f64 y (/.f64 z t))
(/.f64 (*.f64 y t) z)
(/.f64 y (/.f64 z t))
(/.f64 (*.f64 y t) z)
(/.f64 y (/.f64 z t))
(/.f64 (*.f64 y t) z)
(/.f64 y (/.f64 z t))
(/.f64 (*.f64 y t) z)
(/.f64 y (/.f64 z t))
(/.f64 (*.f64 y t) z)
(/.f64 y (/.f64 z t))
(/.f64 (*.f64 y t) z)
(/.f64 y (/.f64 z t))
(/.f64 (*.f64 y t) z)
(/.f64 y (/.f64 z t))
(/.f64 (*.f64 y t) z)
(/.f64 y (/.f64 z t))
(/.f64 (*.f64 y t) z)
(/.f64 y (/.f64 z t))
(/.f64 (*.f64 y t) z)
(/.f64 y (/.f64 z t))
(/.f64 (*.f64 y t) z)
(/.f64 y (/.f64 z t))
(/.f64 (*.f64 y t) z)
(/.f64 y (/.f64 z t))
(/.f64 (*.f64 y t) z)
(/.f64 y (/.f64 z t))
(/.f64 (*.f64 y t) z)
(/.f64 y (/.f64 z t))
(/.f64 (*.f64 y t) z)
(/.f64 y (/.f64 z t))
(/.f64 (*.f64 y t) z)
(/.f64 y (/.f64 z t))
(/.f64 (*.f64 y t) z)
(/.f64 y (/.f64 z t))
(/.f64 (*.f64 y t) z)
(/.f64 y (/.f64 z t))
(/.f64 (*.f64 y t) z)
(/.f64 y (/.f64 z t))
(/.f64 (*.f64 y t) z)
(/.f64 y (/.f64 z t))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(*.f64 y (/.f64 x z))

eval80.0ms (1.5%)

Compiler

Compiled 3048 to 1207 computations (60.4% saved)

prune80.0ms (1.5%)

Pruning

9 alts after pruning (3 fresh and 6 done)

PrunedKeptTotal
New2763279
Fresh202
Picked011
Done055
Total2789287
Error
0b
Counts
287 → 9
Alt Table
Click to see full alt table
StatusErrorProgram
20.2b
(*.f64 x (/.f64 (/.f64 y (/.f64 z t)) t))
5.2b
(/.f64 (*.f64 y x) z)
16.2b
(*.f64 x (/.f64 (*.f64 (/.f64 1 z) (/.f64 y (/.f64 1 t))) t))
5.3b
(*.f64 (/.f64 1 z) (*.f64 y x))
5.2b
(/.f64 y (/.f64 z x))
5.6b
(*.f64 (/.f64 x z) y)
5.4b
(*.f64 (/.f64 y z) x)
5.3b
(*.f64 (/.f64 1 z) (/.f64 y (/.f64 1 x)))
5.0b
(/.f64 x (/.f64 z y))
Compiler

Compiled 99 to 68 computations (31.3% saved)

localize20.0ms (0.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(/.f64 y (/.f64 1 t))
3.0b
(*.f64 (/.f64 1 z) (/.f64 y (/.f64 1 t)))
5.2b
(*.f64 x (/.f64 (*.f64 (/.f64 1 z) (/.f64 y (/.f64 1 t))) t))
9.0b
(/.f64 (*.f64 (/.f64 1 z) (/.f64 y (/.f64 1 t))) t)
Compiler

Compiled 53 to 33 computations (37.7% saved)

series43.0ms (0.8%)

Counts
4 → 144
Calls

36 calls:

TimeVariablePointExpression
33.0ms
t
@inf
(/.f64 (*.f64 (/.f64 1 z) (/.f64 y (/.f64 1 t))) t)
0.0ms
y
@inf
(/.f64 y (/.f64 1 t))
0.0ms
t
@-inf
(/.f64 y (/.f64 1 t))
0.0ms
y
@-inf
(/.f64 y (/.f64 1 t))
0.0ms
t
@inf
(/.f64 y (/.f64 1 t))

rewrite128.0ms (2.5%)

Algorithm
batch-egg-rewrite
Rules
743×log-prod_binary64
334×pow2_binary64
289×pow-unpow_binary64
272×log-div_binary64
240×pow1/3_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01246
126034
2380434
Stop Event
node limit
Counts
4 → 189
Calls
Call 1
Inputs
(/.f64 (*.f64 (/.f64 1 z) (/.f64 y (/.f64 1 t))) t)
(*.f64 x (/.f64 (*.f64 (/.f64 1 z) (/.f64 y (/.f64 1 t))) t))
(*.f64 (/.f64 1 z) (/.f64 y (/.f64 1 t)))
(/.f64 y (/.f64 1 t))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 y (*.f64 (/.f64 z t) t)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (/.f64 y (*.f64 (/.f64 z t) t)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (/.f64 y (*.f64 (/.f64 z t) t))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (/.f64 y (*.f64 (/.f64 z t) t))))) (log.f64 (sqrt.f64 (exp.f64 (/.f64 y (*.f64 (/.f64 z t) t))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 y (*.f64 (/.f64 z t) t)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 y (*.f64 (/.f64 z t) t)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 z) (/.f64 1 (/.f64 t (*.f64 y t))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 z) (*.f64 (*.f64 y t) (/.f64 1 t)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 t) (*.f64 y (/.f64 t z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y t) (/.f64 (/.f64 1 z) t))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y t) (*.f64 (/.f64 1 z) (/.f64 1 t)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (/.f64 t z)) (/.f64 1 t))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 y (*.f64 (/.f64 z t) t)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 y (/.f64 t z))) 2) (*.f64 (cbrt.f64 (*.f64 y (/.f64 t z))) (/.f64 1 t)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 y (*.f64 (/.f64 z t) t))) (pow.f64 (cbrt.f64 (/.f64 y (*.f64 (/.f64 z t) t))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 y (*.f64 (/.f64 z t) t))) 2) (cbrt.f64 (/.f64 y (*.f64 (/.f64 z t) t))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 y (/.f64 t z))) (*.f64 (sqrt.f64 (*.f64 y (/.f64 t z))) (/.f64 1 t)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 y (*.f64 (/.f64 z t) t))) (sqrt.f64 (/.f64 y (*.f64 (/.f64 z t) t))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 t -1/2) (/.f64 (*.f64 y (/.f64 t z)) (sqrt.f64 t)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (*.f64 y (/.f64 t z))) (/.f64 -1 t))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 1 z) 1) (/.f64 (*.f64 y t) t))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 1 z) t) (*.f64 y t))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (*.f64 y (/.f64 t z))) 2) 1) (/.f64 (cbrt.f64 (*.f64 y (/.f64 t z))) t))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (*.f64 y (/.f64 t z))) 1) (/.f64 (sqrt.f64 (*.f64 y (/.f64 t z))) t))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (pow.f64 (cbrt.f64 t) 2)) (/.f64 (*.f64 y (/.f64 t z)) (cbrt.f64 t)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 1 z) (pow.f64 (cbrt.f64 t) 2)) (/.f64 (*.f64 y t) (cbrt.f64 t)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 y t) (pow.f64 (cbrt.f64 t) 2)) (/.f64 (/.f64 1 z) (cbrt.f64 t)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (*.f64 y (/.f64 t z))) 2) (pow.f64 (cbrt.f64 t) 2)) (cbrt.f64 (/.f64 y (*.f64 (/.f64 z t) t))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (*.f64 y (/.f64 t z))) (pow.f64 (cbrt.f64 t) 2)) (/.f64 (sqrt.f64 (*.f64 y (/.f64 t z))) (cbrt.f64 t)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 1 z) (sqrt.f64 t)) (/.f64 (*.f64 y t) (sqrt.f64 t)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 y t) (sqrt.f64 t)) (/.f64 (/.f64 1 z) (sqrt.f64 t)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (*.f64 y (/.f64 t z))) 2) (sqrt.f64 t)) (/.f64 (cbrt.f64 (*.f64 y (/.f64 t z))) (sqrt.f64 t)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 y (/.f64 t z)) (cbrt.f64 (pow.f64 t -2))) (/.f64 1 (cbrt.f64 t)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 y (/.f64 t z)) (pow.f64 t -1/2)) (pow.f64 t -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 y (*.f64 (/.f64 z t) t)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 y (*.f64 (/.f64 z t) t)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 y (*.f64 (/.f64 z t) t)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 y (*.f64 (/.f64 z t) t))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 y (*.f64 (/.f64 z t) t))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 t y) (/.f64 z t)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 (*.f64 y (/.f64 t z)) 3) (pow.f64 t 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (*.f64 y (/.f64 t z)) 3) (/.f64 (pow.f64 t -2) t)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (*.f64 (/.f64 t y) (/.f64 z t)) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (*.f64 y (/.f64 t z)) (neg.f64 t)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 y (*.f64 (/.f64 z t) t)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 y (*.f64 (/.f64 z t) t))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 y (*.f64 (/.f64 z t) t)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 y (*.f64 (/.f64 z t) t)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (*.f64 y (/.f64 t z)) 3) (pow.f64 t 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 y (/.f64 t z)) 3) (/.f64 (pow.f64 t -2) t)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 y (*.f64 (/.f64 z t) t))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 y (*.f64 (/.f64 z t) t))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 y (*.f64 (/.f64 z t) t))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 y (*.f64 (/.f64 z t) t))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (/.f64 y (*.f64 (/.f64 z t) t)) x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (/.f64 y (*.f64 (/.f64 z t) t)))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 x) (/.f64 y (*.f64 (/.f64 z t) t))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (/.f64 y (*.f64 (/.f64 z t) t))))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 x) (/.f64 y (*.f64 (/.f64 z t) t))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (/.f64 y (*.f64 (/.f64 z t) t)) x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 t (/.f64 (*.f64 x y) (/.f64 z t))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 x (*.f64 (/.f64 t y) (/.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 x y) (/.f64 z t)) t)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (/.f64 (*.f64 x y) (/.f64 z t))) (neg.f64 t))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (/.f64 (*.f64 x y) (/.f64 z t)) 1) t)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (/.f64 (*.f64 x y) (/.f64 z t)) (pow.f64 (cbrt.f64 t) 2)) (cbrt.f64 t))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (/.f64 (*.f64 x y) (/.f64 z t)) (sqrt.f64 t)) (sqrt.f64 t))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (/.f64 1 z) x) (/.f64 t (*.f64 y t)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 (*.f64 y (/.f64 t z))) x) (neg.f64 t))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (/.f64 1 z)) (/.f64 t (*.f64 y t)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x (neg.f64 (*.f64 y (/.f64 t z)))) (neg.f64 t))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 y (*.f64 (/.f64 z t) t)) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 y (*.f64 (/.f64 z t) t)) x) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (/.f64 y (*.f64 (/.f64 z t) t)) x) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (/.f64 y (*.f64 (/.f64 z t) t)) x)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (/.f64 y (*.f64 (/.f64 z t) t)) x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (/.f64 y (*.f64 (/.f64 z t) t)) 3) (pow.f64 x 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 x 3) (pow.f64 (/.f64 y (*.f64 (/.f64 z t) t)) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 t (/.f64 (*.f64 x y) (/.f64 z t))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (/.f64 y (*.f64 (/.f64 z t) t)) x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 x) (/.f64 y (*.f64 (/.f64 z t) t))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (/.f64 y (*.f64 (/.f64 z t) t)) x))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (/.f64 y (*.f64 (/.f64 z t) t)) x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (/.f64 y (*.f64 (/.f64 z t) t)) 3) (pow.f64 x 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 x 3) (pow.f64 (/.f64 y (*.f64 (/.f64 z t) t)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (/.f64 y (*.f64 (/.f64 z t) t)) x)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (/.f64 y (*.f64 (/.f64 z t) t)) x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (/.f64 y (*.f64 (/.f64 z t) t)) x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (/.f64 y (*.f64 (/.f64 z t) t)) x)) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 y (/.f64 t z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (*.f64 y (/.f64 t z)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (*.f64 y (/.f64 t z))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (*.f64 y (/.f64 t z))))) (log.f64 (sqrt.f64 (exp.f64 (*.f64 y (/.f64 t z))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 y (/.f64 t z)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (*.f64 z (/.f64 (/.f64 1 t) y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (*.f64 (/.f64 (/.f64 1 t) y) z))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (/.f64 z t) y))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 z (*.f64 y t)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (/.f64 1 t) (/.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 1 z) (/.f64 (/.f64 1 t) y))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 y (/.f64 z t))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y t) z)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (cbrt.f64 (pow.f64 (*.f64 y t) 2)) (/.f64 z (cbrt.f64 (*.f64 y t))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (cbrt.f64 (*.f64 y y)) (/.f64 (/.f64 z t) (cbrt.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (*.f64 y t)) (/.f64 z (sqrt.f64 (*.f64 y t))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 y) (/.f64 (/.f64 z t) (sqrt.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -1 (*.f64 (neg.f64 z) (/.f64 (/.f64 1 t) y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -1 (*.f64 (/.f64 (/.f64 1 t) y) (neg.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 y) (neg.f64 (/.f64 z t)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 y) (*.f64 (neg.f64 z) (/.f64 1 t)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 y) (*.f64 z (/.f64 -1 t)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 y z) (/.f64 1 t))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 y t)) (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (/.f64 y z)) (/.f64 -1 t))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -1 (neg.f64 y)) (*.f64 (neg.f64 z) (/.f64 -1 t)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 y) 1) (*.f64 (/.f64 -1 t) z))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y -1) (*.f64 (/.f64 1 t) (neg.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 y) -1) (*.f64 (/.f64 -1 t) (neg.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 y t) -1) (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 y t) (sqrt.f64 z)) (sqrt.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (/.f64 y z) 1) (/.f64 1 t))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 y t) (pow.f64 (cbrt.f64 z) 2)) (cbrt.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (/.f64 y z) (cbrt.f64 (pow.f64 t -2))) (/.f64 1 (cbrt.f64 t)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (/.f64 y z) (pow.f64 t -1/2)) (pow.f64 t -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -1 (*.f64 y t)) (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 y) (/.f64 1 z)) (/.f64 -1 t))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (/.f64 1 z) (neg.f64 y)) (/.f64 -1 t))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y (/.f64 t z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 y (/.f64 t z)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 y (/.f64 t z)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 y (/.f64 t z))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 y (/.f64 t z))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 (*.f64 y t) 3) (pow.f64 z 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 (pow.f64 z -2) z) (pow.f64 (*.f64 y t) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (*.f64 y t) 3) (/.f64 (pow.f64 z -2) z)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 z (/.f64 (/.f64 1 t) y)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 (/.f64 1 t) y) z) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (/.f64 z t) y) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 z (*.f64 y t)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (/.f64 1 t) (/.f64 y z)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 y (/.f64 t z)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (*.f64 y (/.f64 t z))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 y (/.f64 t z)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 y (/.f64 t z)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (*.f64 y t) 3) (pow.f64 z 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (/.f64 (pow.f64 z -2) z) (pow.f64 (*.f64 y t) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 y t) 3) (/.f64 (pow.f64 z -2) z)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 y (/.f64 t z))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 y (/.f64 t z))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 y (/.f64 t z))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 y (/.f64 t z))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 y t))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 t) y)) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 t) y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 t) y))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 t) y))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 y t))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 y t))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y t)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 t y)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y t) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 y t)) (cbrt.f64 (pow.f64 (*.f64 y t) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (*.f64 y t) 2)) (cbrt.f64 (*.f64 y t)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 y y)) (*.f64 (cbrt.f64 y) t))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 y t)) (sqrt.f64 (*.f64 y t)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 y) t))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 y) (/.f64 1 (/.f64 -1 t)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (*.f64 y y)) 1) (/.f64 (cbrt.f64 y) (/.f64 1 t)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 y) 1) (/.f64 (sqrt.f64 y) (/.f64 1 t)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (cbrt.f64 (pow.f64 t -2))) (/.f64 y (/.f64 1 (cbrt.f64 t))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (*.f64 y y)) (cbrt.f64 (pow.f64 t -2))) (cbrt.f64 (*.f64 y t)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 y) (cbrt.f64 (pow.f64 t -2))) (/.f64 (sqrt.f64 y) (/.f64 1 (cbrt.f64 t))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (pow.f64 t -1/2)) (/.f64 y (pow.f64 t -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (*.f64 y y)) (pow.f64 t -1/2)) (/.f64 (cbrt.f64 y) (pow.f64 t -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 y -1) (neg.f64 t))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (pow.f64 (cbrt.f64 t) 2)) (cbrt.f64 t))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (sqrt.f64 t)) (sqrt.f64 t))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y t) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 y t) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 y t) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 y t)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 y t)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (/.f64 1 t) y) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 y 3) (/.f64 (pow.f64 t -2) t)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (/.f64 (/.f64 1 t) y) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 y (/.f64 -1 t)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 y t) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 t) y))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 y t))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 y t) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 y 3) (/.f64 (pow.f64 t -2) t)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 y t)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 y t)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 y t)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 y t)) 1))))))

simplify34.0ms (0.7%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
010828
116828
221828
327828
429828
Stop Event
saturated
Counts
333 → 193
Calls
Call 1
Inputs
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y 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)
(/.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 t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(/.f64 (*.f64 y t) z)
(*.f64 y t)
(*.f64 y t)
(*.f64 y t)
(*.f64 y t)
(*.f64 y t)
(*.f64 y t)
(*.f64 y t)
(*.f64 y t)
(*.f64 y t)
(*.f64 y t)
(*.f64 y t)
(*.f64 y t)
(*.f64 y t)
(*.f64 y t)
(*.f64 y t)
(*.f64 y t)
(*.f64 y t)
(*.f64 y t)
(*.f64 y t)
(*.f64 y t)
(*.f64 y t)
(*.f64 y t)
(*.f64 y t)
(*.f64 y t)
Outputs
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 y z)
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y t) z)
(*.f64 (/.f64 y z) t)
(*.f64 y (/.f64 t z))
(/.f64 (*.f64 y t) z)
(*.f64 (/.f64 y z) t)
(*.f64 y (/.f64 t z))
(/.f64 (*.f64 y t) z)
(*.f64 (/.f64 y z) t)
(*.f64 y (/.f64 t z))
(/.f64 (*.f64 y t) z)
(*.f64 (/.f64 y z) t)
(*.f64 y (/.f64 t z))
(/.f64 (*.f64 y t) z)
(*.f64 (/.f64 y z) t)
(*.f64 y (/.f64 t z))
(/.f64 (*.f64 y t) z)
(*.f64 (/.f64 y z) t)
(*.f64 y (/.f64 t z))
(/.f64 (*.f64 y t) z)
(*.f64 (/.f64 y z) t)
(*.f64 y (/.f64 t z))
(/.f64 (*.f64 y t) z)
(*.f64 (/.f64 y z) t)
(*.f64 y (/.f64 t z))
(/.f64 (*.f64 y t) z)
(*.f64 (/.f64 y z) t)
(*.f64 y (/.f64 t z))
(/.f64 (*.f64 y t) z)
(*.f64 (/.f64 y z) t)
(*.f64 y (/.f64 t z))
(/.f64 (*.f64 y t) z)
(*.f64 (/.f64 y z) t)
(*.f64 y (/.f64 t z))
(/.f64 (*.f64 y t) z)
(*.f64 (/.f64 y z) t)
(*.f64 y (/.f64 t z))
(/.f64 (*.f64 y t) z)
(*.f64 (/.f64 y z) t)
(*.f64 y (/.f64 t z))
(/.f64 (*.f64 y t) z)
(*.f64 (/.f64 y z) t)
(*.f64 y (/.f64 t z))
(/.f64 (*.f64 y t) z)
(*.f64 (/.f64 y z) t)
(*.f64 y (/.f64 t z))
(/.f64 (*.f64 y t) z)
(*.f64 (/.f64 y z) t)
(*.f64 y (/.f64 t z))
(/.f64 (*.f64 y t) z)
(*.f64 (/.f64 y z) t)
(*.f64 y (/.f64 t z))
(/.f64 (*.f64 y t) z)
(*.f64 (/.f64 y z) t)
(*.f64 y (/.f64 t z))
(/.f64 (*.f64 y t) z)
(*.f64 (/.f64 y z) t)
(*.f64 y (/.f64 t z))
(/.f64 (*.f64 y t) z)
(*.f64 (/.f64 y z) t)
(*.f64 y (/.f64 t z))
(/.f64 (*.f64 y t) z)
(*.f64 (/.f64 y z) t)
(*.f64 y (/.f64 t z))
(/.f64 (*.f64 y t) z)
(*.f64 (/.f64 y z) t)
(*.f64 y (/.f64 t z))
(/.f64 (*.f64 y t) z)
(*.f64 (/.f64 y z) t)
(*.f64 y (/.f64 t z))
(/.f64 (*.f64 y t) z)
(*.f64 (/.f64 y z) t)
(*.f64 y (/.f64 t z))
(/.f64 (*.f64 y t) z)
(*.f64 (/.f64 y z) t)
(*.f64 y (/.f64 t z))
(/.f64 (*.f64 y t) z)
(*.f64 (/.f64 y z) t)
(*.f64 y (/.f64 t z))
(/.f64 (*.f64 y t) z)
(*.f64 (/.f64 y z) t)
(*.f64 y (/.f64 t z))
(/.f64 (*.f64 y t) z)
(*.f64 (/.f64 y z) t)
(*.f64 y (/.f64 t z))
(/.f64 (*.f64 y t) z)
(*.f64 (/.f64 y z) t)
(*.f64 y (/.f64 t z))
(/.f64 (*.f64 y t) z)
(*.f64 (/.f64 y z) t)
(*.f64 y (/.f64 t z))
(/.f64 (*.f64 y t) z)
(*.f64 (/.f64 y z) t)
(*.f64 y (/.f64 t z))
(/.f64 (*.f64 y t) z)
(*.f64 (/.f64 y z) t)
(*.f64 y (/.f64 t z))
(/.f64 (*.f64 y t) z)
(*.f64 (/.f64 y z) t)
(*.f64 y (/.f64 t z))
(/.f64 (*.f64 y t) z)
(*.f64 (/.f64 y z) t)
(*.f64 y (/.f64 t z))
(/.f64 (*.f64 y t) z)
(*.f64 (/.f64 y z) t)
(*.f64 y (/.f64 t z))
(/.f64 (*.f64 y t) z)
(*.f64 (/.f64 y z) t)
(*.f64 y (/.f64 t z))
(*.f64 y t)
(*.f64 y t)
(*.f64 y t)
(*.f64 y t)
(*.f64 y t)
(*.f64 y t)
(*.f64 y t)
(*.f64 y t)
(*.f64 y t)
(*.f64 y t)
(*.f64 y t)
(*.f64 y t)
(*.f64 y t)
(*.f64 y t)
(*.f64 y t)
(*.f64 y t)
(*.f64 y t)
(*.f64 y t)
(*.f64 y t)
(*.f64 y t)
(*.f64 y t)
(*.f64 y t)
(*.f64 y t)
(*.f64 y t)

localize8.0ms (0.2%)

Local error

Found 1 expressions with local error:

NewErrorProgram
5.1b
(*.f64 (/.f64 1 z) (*.f64 y x))
Compiler

Compiled 21 to 11 computations (47.6% saved)

series3.0ms (0.1%)

Counts
1 → 36
Calls

9 calls:

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

rewrite76.0ms (1.5%)

Algorithm
batch-egg-rewrite
Rules
761×pow1_binary64
700×add-log-exp_binary64
700×log1p-expm1-u_binary64
700×expm1-log1p-u_binary64
684×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
087
11597
219407
Stop Event
node limit
Counts
1 → 26
Calls
Call 1
Inputs
(*.f64 (/.f64 1 z) (*.f64 y x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 x (/.f64 y z))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 z (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 y (/.f64 z x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 x (/.f64 z y))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y x) z)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (cbrt.f64 (*.f64 y x)) 2) (/.f64 z (cbrt.f64 (*.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (*.f64 y x)) (/.f64 z (sqrt.f64 (*.f64 y x))))))) (#(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) (sqrt.f64 z)) (sqrt.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 -1 (*.f64 y x)) (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 y x) -1) (neg.f64 z))))) (#(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 sqrt.f64 (pow.f64 (*.f64 x (/.f64 y z)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.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 (*.f64 y x) 3) (pow.f64 z 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (/.f64 (pow.f64 z -2) z) (pow.f64 (*.f64 y x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 y x) 3) (/.f64 (pow.f64 z -2) z)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 x (/.f64 y z))))))) (#(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))))))))

simplify14.0ms (0.3%)

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
62 → 27
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 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))

localize13.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.2b
(/.f64 y (/.f64 1 x))
5.1b
(*.f64 (/.f64 1 z) (/.f64 y (/.f64 1 x)))
Compiler

Compiled 28 to 18 computations (35.7% saved)

series5.0ms (0.1%)

Counts
2 → 60
Calls

15 calls:

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

rewrite80.0ms (1.5%)

Algorithm
batch-egg-rewrite
Rules
493×log-prod_binary64
444×prod-exp_binary64
381×exp-prod_binary64
333×pow-prod-down_binary64
241×pow2_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0917
119311
2264611
Stop Event
node limit
Counts
2 → 148
Calls
Call 1
Inputs
(*.f64 (/.f64 1 z) (/.f64 y (/.f64 1 x)))
(/.f64 y (/.f64 1 x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 y (/.f64 x z)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 y) (/.f64 x z))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 y) (/.f64 x z)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 y) (/.f64 x z)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 y) (/.f64 x z)))))))) (#(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 1 (*.f64 z (/.f64 (/.f64 1 x) y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (*.f64 (/.f64 (/.f64 1 x) y) z))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (/.f64 z x) y))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 z (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (/.f64 1 x) (/.f64 y z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 1 z) (/.f64 (/.f64 1 x) y))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 y (/.f64 z x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y x) z)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (cbrt.f64 (*.f64 y x)) 2) (/.f64 z (cbrt.f64 (*.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (cbrt.f64 y) 2) (/.f64 (/.f64 z x) (cbrt.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (*.f64 y x)) (/.f64 z (sqrt.f64 (*.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 y) (/.f64 (/.f64 z x) (sqrt.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -1 (*.f64 (neg.f64 z) (/.f64 (/.f64 1 x) y)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -1 (*.f64 (/.f64 (/.f64 1 x) y) (neg.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 y) (neg.f64 (/.f64 z x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 y) (*.f64 (neg.f64 z) (/.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 y) (*.f64 z (/.f64 -1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 y z) (/.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 y x)) (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (/.f64 y z)) (/.f64 -1 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -1 (neg.f64 y)) (*.f64 (neg.f64 z) (/.f64 -1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 y) 1) (*.f64 (/.f64 -1 x) z))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y -1) (*.f64 (/.f64 1 x) (neg.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 y) -1) (*.f64 (/.f64 -1 x) (neg.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 (/.f64 y z) 1) (/.f64 1 x))))) (#(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 z) (cbrt.f64 (pow.f64 x -2))) (/.f64 1 (cbrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (/.f64 y z) (pow.f64 x -1/2)) (pow.f64 x -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 -1 (*.f64 y x)) (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 y) (/.f64 1 z)) (/.f64 -1 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (/.f64 1 z) (neg.f64 y)) (/.f64 -1 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 y x) -1) (neg.f64 z))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y (/.f64 x z)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (E.f64) (log.f64 (*.f64 y (/.f64 x z))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 y (/.f64 x z)) 2) 1/2)))) (#(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 (pow.f64 (*.f64 y x) 3) (pow.f64 z 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 z (/.f64 (/.f64 1 x) y)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 (/.f64 1 x) y) z) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (/.f64 z x) y) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 z (*.f64 y x)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (/.f64 1 x) (/.f64 y z)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 y (/.f64 x z)))) 2)) (cbrt.f64 (log.f64 (*.f64 y (/.f64 x z)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 y (/.f64 x z))))) (sqrt.f64 (log.f64 (*.f64 y (/.f64 x z)))))))) (#(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 (*.f64 y x) 3) (pow.f64 z 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 y (/.f64 x z))))))) (#(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 exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 y (/.f64 x z)))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 y (/.f64 x z)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 y (/.f64 x z)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 y (/.f64 x z))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (*.f64 (log.f64 z) -1) (neg.f64 (log.f64 (*.f64 y x)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (*.f64 (neg.f64 (log.f64 z)) 1) (neg.f64 (log.f64 (*.f64 y x)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (*.f64 (log.f64 y) 1) (log.f64 (/.f64 z x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (*.f64 (log.f64 (*.f64 y x)) 1) (log.f64 z)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (log.f64 (*.f64 y x)) (*.f64 (log.f64 z) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (*.f64 (log.f64 (*.f64 y x)) 1) (*.f64 (log.f64 z) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (log.f64 (/.f64 y z)) (*.f64 (log.f64 x) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (log.f64 (/.f64 y z)) (*.f64 (neg.f64 (log.f64 x)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 z) -1) (log.f64 (*.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (neg.f64 (log.f64 z)) 1) (log.f64 (*.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (neg.f64 (log.f64 z)) (*.f64 (log.f64 (*.f64 y x)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 z) -1) (*.f64 (log.f64 (*.f64 y x)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (neg.f64 (log.f64 z)) 1) (*.f64 (log.f64 (*.f64 y x)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (*.f64 y x)) 1) (neg.f64 (log.f64 z))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log.f64 (*.f64 y x)) (*.f64 (log.f64 z) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (*.f64 y x)) 1) (*.f64 (log.f64 z) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log.f64 (*.f64 y x)) (*.f64 (neg.f64 (log.f64 z)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 (*.f64 y x)) 1) (*.f64 (neg.f64 (log.f64 z)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log.f64 (/.f64 y z)) (*.f64 (log.f64 x) 1)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 y x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 x) y)) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 x) y))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 x) y))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 x) y))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 y x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 y x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x y)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 y x)) (pow.f64 (cbrt.f64 (*.f64 y x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 y x)) 2) (cbrt.f64 (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 y) 2) (*.f64 (cbrt.f64 y) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 y x)) (sqrt.f64 (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 y) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 x) (/.f64 y (pow.f64 x -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 y) (/.f64 1 (/.f64 -1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 y) 2) 1) (/.f64 (cbrt.f64 y) (/.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 y) 1) (/.f64 (sqrt.f64 y) (/.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (cbrt.f64 (pow.f64 x -2))) (/.f64 y (/.f64 1 (cbrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 y) 2) (cbrt.f64 (pow.f64 x -2))) (cbrt.f64 (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 y) (cbrt.f64 (pow.f64 x -2))) (/.f64 (sqrt.f64 y) (/.f64 1 (cbrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 y) 2) (pow.f64 x -1/2)) (/.f64 (cbrt.f64 y) (pow.f64 x -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 y -1) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 y (sqrt.f64 x)) (sqrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 y x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (E.f64) (log.f64 (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 y x) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 y x) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 y x)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 y x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (/.f64 1 x) y) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 y 3) (pow.f64 x -3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (/.f64 (/.f64 1 x) y) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 y 3) (pow.f64 x 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 x 3) (pow.f64 y 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (cbrt.f64 x) (cbrt.f64 y)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 x) (sqrt.f64 y)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 y x))) 2)) (cbrt.f64 (log.f64 (*.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 y x)))) (sqrt.f64 (log.f64 (*.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 y (/.f64 -1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 y x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 x) y))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 y x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 y 3) (pow.f64 x -3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 y x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 y x))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 y x))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 y x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (neg.f64 (log.f64 (*.f64 y x))) -1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 y x)) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (*.f64 (log.f64 y) 1) (neg.f64 (log.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (log.f64 y) (*.f64 (log.f64 x) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (*.f64 (log.f64 y) 1) (*.f64 (log.f64 x) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (log.f64 y) (*.f64 (neg.f64 (log.f64 x)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (-.f64 (*.f64 (log.f64 y) 1) (*.f64 (neg.f64 (log.f64 x)) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 y) 1) (log.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log.f64 y) (*.f64 (log.f64 x) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 y) 1) (*.f64 (log.f64 x) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 x) 1) (log.f64 y)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (log.f64 x) (*.f64 (log.f64 y) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 (log.f64 x) 1) (*.f64 (log.f64 y) 1)))))))

simplify21.0ms (0.4%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
06348
19348
213348
316348
417348
Stop Event
saturated
Counts
208 → 149
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)
(*.f64 y x)
(*.f64 y x)
(*.f64 y x)
(*.f64 y x)
(*.f64 y x)
(*.f64 y x)
(*.f64 y x)
(*.f64 y x)
(*.f64 y x)
(*.f64 y x)
(*.f64 y x)
(*.f64 y x)
(*.f64 y x)
(*.f64 y x)
(*.f64 y x)
(*.f64 y x)
(*.f64 y x)
(*.f64 y x)
(*.f64 y x)
(*.f64 y x)
(*.f64 y x)
(*.f64 y x)
(*.f64 y x)
(*.f64 y x)
Outputs
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(*.f64 y x)
(*.f64 y x)
(*.f64 y x)
(*.f64 y x)
(*.f64 y x)
(*.f64 y x)
(*.f64 y x)
(*.f64 y x)
(*.f64 y x)
(*.f64 y x)
(*.f64 y x)
(*.f64 y x)
(*.f64 y x)
(*.f64 y x)
(*.f64 y x)
(*.f64 y x)
(*.f64 y x)
(*.f64 y x)
(*.f64 y x)
(*.f64 y x)
(*.f64 y x)
(*.f64 y x)
(*.f64 y x)
(*.f64 y x)

eval83.0ms (1.6%)

Compiler

Compiled 4576 to 2040 computations (55.4% saved)

prune64.0ms (1.2%)

Pruning

8 alts after pruning (2 fresh and 6 done)

PrunedKeptTotal
New3672369
Fresh000
Picked101
Done268
Total3708378
Error
0b
Counts
378 → 8
Alt Table
Click to see full alt table
StatusErrorProgram
20.2b
(*.f64 x (/.f64 (/.f64 y (/.f64 z t)) t))
5.2b
(/.f64 (*.f64 y x) z)
5.3b
(/.f64 (neg.f64 y) (*.f64 z (/.f64 -1 x)))
5.2b
(/.f64 y (/.f64 z x))
5.6b
(*.f64 (/.f64 x z) y)
5.4b
(*.f64 (/.f64 y z) x)
5.0b
(/.f64 x (/.f64 z y))
5.4b
(/.f64 (/.f64 y z) (/.f64 1 x))
Compiler

Compiled 81 to 55 computations (32.1% saved)

localize12.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.2b
(*.f64 z (/.f64 -1 x))
5.1b
(/.f64 (neg.f64 y) (*.f64 z (/.f64 -1 x)))
Compiler

Compiled 26 to 15 computations (42.3% saved)

series6.0ms (0.1%)

Counts
2 → 60
Calls

15 calls:

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

rewrite65.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
935×pow1_binary64
865×add-log-exp_binary64
863×log1p-expm1-u_binary64
863×expm1-log1p-u_binary64
97×add-sqr-sqrt_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0919
119215
2277415
Stop Event
node limit
Counts
2 → 72
Calls
Call 1
Inputs
(/.f64 (neg.f64 y) (*.f64 z (/.f64 -1 x)))
(*.f64 z (/.f64 -1 x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (/.f64 y (/.f64 z (neg.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 y (/.f64 z (neg.f64 x))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 0 (/.f64 z (neg.f64 x))) (/.f64 y (/.f64 z (neg.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (/.f64 (*.f64 x -1) z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (/.f64 1 (neg.f64 (/.f64 z (neg.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (/.f64 y (/.f64 z (neg.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 y (/.f64 z (neg.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 y (/.f64 z (neg.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 y (/.f64 z (neg.f64 x)))) (pow.f64 (cbrt.f64 (/.f64 y (/.f64 z (neg.f64 x)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 y (/.f64 z (neg.f64 x)))) 2) (cbrt.f64 (/.f64 y (/.f64 z (neg.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 y y)) (*.f64 (cbrt.f64 y) (/.f64 (*.f64 x -1) z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 y (/.f64 z (neg.f64 x)))) (sqrt.f64 (/.f64 y (/.f64 z (neg.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 y) (*.f64 (sqrt.f64 y) (/.f64 (*.f64 x -1) z)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 x -1) (/.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 x -1) z) y)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 y z) (*.f64 x -1))))) (#(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 1 (pow.f64 (cbrt.f64 (/.f64 z (neg.f64 x))) 2)) (/.f64 y (cbrt.f64 (/.f64 z (neg.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (sqrt.f64 (/.f64 z (neg.f64 x)))) (/.f64 y (sqrt.f64 (/.f64 z (neg.f64 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 (cbrt.f64 (*.f64 y y)) 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 (sqrt.f64 y) (/.f64 -1 x)) (/.f64 (sqrt.f64 y) z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 -1 (/.f64 -1 x)) (/.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (*.f64 y y)) (/.f64 -1 x)) (/.f64 (cbrt.f64 y) z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (*.f64 y y)) 1) (/.f64 (cbrt.f64 y) (/.f64 z (neg.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 y) 1) (/.f64 (sqrt.f64 y) (/.f64 z (neg.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 -1 (pow.f64 (cbrt.f64 (/.f64 z (neg.f64 x))) 2)) (/.f64 y (cbrt.f64 (/.f64 z (neg.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (*.f64 y y)) (pow.f64 (cbrt.f64 (/.f64 z (neg.f64 x))) 2)) (cbrt.f64 (/.f64 y (/.f64 z (neg.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 y) (pow.f64 (cbrt.f64 (/.f64 z (neg.f64 x))) 2)) (/.f64 (sqrt.f64 y) (cbrt.f64 (/.f64 z (neg.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 -1 (sqrt.f64 (/.f64 z (neg.f64 x)))) (/.f64 y (sqrt.f64 (/.f64 z (neg.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (*.f64 y y)) (sqrt.f64 (/.f64 z (neg.f64 x)))) (/.f64 (cbrt.f64 y) (sqrt.f64 (/.f64 z (neg.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 y (*.f64 z -1)) 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) 1) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 y z) 1) (*.f64 x -1))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 y (/.f64 z (neg.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 y (/.f64 z (neg.f64 x))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 y (/.f64 z (neg.f64 x)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 y (/.f64 z (neg.f64 x)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (/.f64 z (neg.f64 x)) y) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 y (/.f64 z (neg.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 y (/.f64 z (neg.f64 x))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 y (/.f64 z (neg.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 y (/.f64 z (neg.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 y (/.f64 z (neg.f64 x))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 y 3) (pow.f64 (/.f64 z (neg.f64 x)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 y (/.f64 z (neg.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 y (/.f64 z (neg.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 y (/.f64 z (neg.f64 x)))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 z (neg.f64 x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 z (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 z (*.f64 x -1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 x (*.f64 z -1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 z -1) x)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 z -1)) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 z -1) 1) x)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 z -1) (pow.f64 (cbrt.f64 x) 2)) (cbrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 z -1) (sqrt.f64 x)) (sqrt.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 z (neg.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 z (neg.f64 x)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 z (neg.f64 x))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 z (neg.f64 x))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 z (neg.f64 x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 z (neg.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 z (neg.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 z (neg.f64 x)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 z 3) (pow.f64 (/.f64 -1 x) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (/.f64 -1 x) 3) (pow.f64 z 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 z (neg.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 z (neg.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 z (neg.f64 x))))))))

simplify31.0ms (0.6%)

Algorithm
egg-herbie
Rules
14×fma-def_binary64
sub-neg_binary64
*-commutative_binary64
+-commutative_binary64
associate-/l*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
09396
115396
226396
334396
441396
549396
657396
767396
877396
996396
1097396
Stop Event
saturated
Counts
132 → 76
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)
(*.f64 -1 (/.f64 z x))
(*.f64 -1 (/.f64 z x))
(*.f64 -1 (/.f64 z x))
(*.f64 -1 (/.f64 z x))
(*.f64 -1 (/.f64 z x))
(*.f64 -1 (/.f64 z x))
(*.f64 -1 (/.f64 z x))
(*.f64 -1 (/.f64 z x))
(*.f64 -1 (/.f64 z x))
(*.f64 -1 (/.f64 z x))
(*.f64 -1 (/.f64 z x))
(*.f64 -1 (/.f64 z x))
(*.f64 -1 (/.f64 z x))
(*.f64 -1 (/.f64 z x))
(*.f64 -1 (/.f64 z x))
(*.f64 -1 (/.f64 z x))
(*.f64 -1 (/.f64 z x))
(*.f64 -1 (/.f64 z x))
(*.f64 -1 (/.f64 z x))
(*.f64 -1 (/.f64 z x))
(*.f64 -1 (/.f64 z x))
(*.f64 -1 (/.f64 z x))
(*.f64 -1 (/.f64 z x))
(*.f64 -1 (/.f64 z x))
Outputs
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 (/.f64 x z) y)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 (/.f64 x z) y)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 (/.f64 x z) y)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 (/.f64 x z) y)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 (/.f64 x z) y)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 (/.f64 x z) y)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 (/.f64 x z) y)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 (/.f64 x z) y)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 (/.f64 x z) y)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 (/.f64 x z) y)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 (/.f64 x z) y)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 (/.f64 x z) y)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 (/.f64 x z) y)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 (/.f64 x z) y)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 (/.f64 x z) y)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 (/.f64 x z) y)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 (/.f64 x z) y)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 (/.f64 x z) y)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 (/.f64 x z) y)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 (/.f64 x z) y)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 (/.f64 x z) y)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 (/.f64 x z) y)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 (/.f64 x z) y)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 (/.f64 x z) y)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 (/.f64 x z) y)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 (/.f64 x z) y)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 (/.f64 x z) y)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 (/.f64 x z) y)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 (/.f64 x z) y)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 (/.f64 x z) y)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 (/.f64 x z) y)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 (/.f64 x z) y)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 (/.f64 x z) y)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 (/.f64 x z) y)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 (/.f64 x z) y)
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(/.f64 x (/.f64 z y))
(*.f64 (/.f64 x z) y)
(*.f64 y (/.f64 x z))
(*.f64 -1 (/.f64 z x))
(neg.f64 (/.f64 z x))
(/.f64 (neg.f64 z) x)
(*.f64 -1 (/.f64 z x))
(neg.f64 (/.f64 z x))
(/.f64 (neg.f64 z) x)
(*.f64 -1 (/.f64 z x))
(neg.f64 (/.f64 z x))
(/.f64 (neg.f64 z) x)
(*.f64 -1 (/.f64 z x))
(neg.f64 (/.f64 z x))
(/.f64 (neg.f64 z) x)
(*.f64 -1 (/.f64 z x))
(neg.f64 (/.f64 z x))
(/.f64 (neg.f64 z) x)
(*.f64 -1 (/.f64 z x))
(neg.f64 (/.f64 z x))
(/.f64 (neg.f64 z) x)
(*.f64 -1 (/.f64 z x))
(neg.f64 (/.f64 z x))
(/.f64 (neg.f64 z) x)
(*.f64 -1 (/.f64 z x))
(neg.f64 (/.f64 z x))
(/.f64 (neg.f64 z) x)
(*.f64 -1 (/.f64 z x))
(neg.f64 (/.f64 z x))
(/.f64 (neg.f64 z) x)
(*.f64 -1 (/.f64 z x))
(neg.f64 (/.f64 z x))
(/.f64 (neg.f64 z) x)
(*.f64 -1 (/.f64 z x))
(neg.f64 (/.f64 z x))
(/.f64 (neg.f64 z) x)
(*.f64 -1 (/.f64 z x))
(neg.f64 (/.f64 z x))
(/.f64 (neg.f64 z) x)
(*.f64 -1 (/.f64 z x))
(neg.f64 (/.f64 z x))
(/.f64 (neg.f64 z) x)
(*.f64 -1 (/.f64 z x))
(neg.f64 (/.f64 z x))
(/.f64 (neg.f64 z) x)
(*.f64 -1 (/.f64 z x))
(neg.f64 (/.f64 z x))
(/.f64 (neg.f64 z) x)
(*.f64 -1 (/.f64 z x))
(neg.f64 (/.f64 z x))
(/.f64 (neg.f64 z) x)
(*.f64 -1 (/.f64 z x))
(neg.f64 (/.f64 z x))
(/.f64 (neg.f64 z) x)
(*.f64 -1 (/.f64 z x))
(neg.f64 (/.f64 z x))
(/.f64 (neg.f64 z) x)
(*.f64 -1 (/.f64 z x))
(neg.f64 (/.f64 z x))
(/.f64 (neg.f64 z) x)
(*.f64 -1 (/.f64 z x))
(neg.f64 (/.f64 z x))
(/.f64 (neg.f64 z) x)
(*.f64 -1 (/.f64 z x))
(neg.f64 (/.f64 z x))
(/.f64 (neg.f64 z) x)
(*.f64 -1 (/.f64 z x))
(neg.f64 (/.f64 z x))
(/.f64 (neg.f64 z) x)
(*.f64 -1 (/.f64 z x))
(neg.f64 (/.f64 z x))
(/.f64 (neg.f64 z) x)
(*.f64 -1 (/.f64 z x))
(neg.f64 (/.f64 z x))
(/.f64 (neg.f64 z) x)

localize8.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
5.2b
(/.f64 (/.f64 y z) (/.f64 1 x))
Compiler

Compiled 21 to 11 computations (47.6% saved)

series2.0ms (0%)

Counts
1 → 36
Calls

9 calls:

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

rewrite63.0ms (1.2%)

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

Useful iterations: 1 (0.0ms)

IterNodesCost
0810
11727
223887
Stop Event
node limit
Counts
1 → 41
Calls
Call 1
Inputs
(/.f64 (/.f64 y z) (/.f64 1 x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.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 (/.f64 1 z) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 y z) x)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (/.f64 y z) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 x (/.f64 y z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 y z) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (/.f64 y z) x)) (pow.f64 (cbrt.f64 (*.f64 (/.f64 y z) x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.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 z)) 2) (*.f64 (cbrt.f64 (/.f64 y z)) x))))) (#(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 z)) (*.f64 (sqrt.f64 (/.f64 y z)) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (/.f64 y z)) (/.f64 1 (/.f64 -1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 y) 2) (/.f64 1 x)) (/.f64 (cbrt.f64 y) z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 y) (/.f64 1 x)) (/.f64 (sqrt.f64 y) z))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 y 1) (/.f64 (/.f64 1 z) (/.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (/.f64 y z)) 2) 1) (/.f64 (cbrt.f64 (/.f64 y z)) (/.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (/.f64 y z)) 1) (/.f64 (sqrt.f64 (/.f64 y z)) (/.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 y (cbrt.f64 (pow.f64 x -2))) (/.f64 (/.f64 1 z) (/.f64 1 (cbrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (cbrt.f64 (pow.f64 x -2))) (/.f64 (/.f64 y z) (/.f64 1 (cbrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (/.f64 y z)) 2) (cbrt.f64 (pow.f64 x -2))) (cbrt.f64 (*.f64 (/.f64 y z) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (/.f64 y z)) (cbrt.f64 (pow.f64 x -2))) (/.f64 (sqrt.f64 (/.f64 y z)) (/.f64 1 (cbrt.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 y (pow.f64 x -1/2)) (/.f64 (/.f64 1 z) (pow.f64 x -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (pow.f64 x -1/2)) (/.f64 (/.f64 y z) (pow.f64 x -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (/.f64 y z)) 2) (pow.f64 x -1/2)) (/.f64 (cbrt.f64 (/.f64 y z)) (pow.f64 x -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 y z) -1) (neg.f64 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 (/.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 (/.f64 1 x) (/.f64 z y)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (/.f64 y z) (/.f64 -1 x)))))) (#(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 (pow.f64 (exp.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 z) 3) (/.f64 (pow.f64 x -2) x)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (/.f64 y z) x)))))) (#(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)))))))

simplify23.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
77 → 43
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 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 y z) x)
(*.f64 x (/.f64 y z))
(*.f64 y (/.f64 x z))

eval23.0ms (0.4%)

Compiler

Compiled 1239 to 486 computations (60.8% saved)

prune23.0ms (0.4%)

Pruning

8 alts after pruning (0 fresh and 8 done)

PrunedKeptTotal
New1190119
Fresh000
Picked011
Done077
Total1198127
Error
0b
Counts
127 → 8
Alt Table
Click to see full alt table
StatusErrorProgram
20.2b
(*.f64 x (/.f64 (/.f64 y (/.f64 z t)) t))
5.2b
(/.f64 (*.f64 y x) z)
5.3b
(/.f64 (neg.f64 y) (*.f64 z (/.f64 -1 x)))
5.2b
(/.f64 y (/.f64 z x))
5.6b
(*.f64 (/.f64 x z) y)
5.4b
(*.f64 (/.f64 y z) x)
5.0b
(/.f64 x (/.f64 z y))
5.4b
(/.f64 (/.f64 y z) (/.f64 1 x))
Compiler

Compiled 81 to 55 computations (32.1% saved)

regimes232.0ms (4.4%)

Counts
14 → 5
Calls
Call 1
Inputs
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 x z) y)
(*.f64 (/.f64 y z) x)
(/.f64 x (/.f64 z y))
(/.f64 (/.f64 y z) (/.f64 1 x))
(*.f64 (/.f64 1 z) (*.f64 y x))
(/.f64 (neg.f64 y) (*.f64 z (/.f64 -1 x)))
(*.f64 (/.f64 1 z) (/.f64 y (/.f64 1 x)))
(*.f64 x (/.f64 (/.f64 y (/.f64 z t)) t))
(*.f64 (/.f64 1 z) (/.f64 x (/.f64 1 y)))
(*.f64 x (/.f64 (*.f64 (/.f64 y z) t) t))
(*.f64 x (/.f64 (*.f64 (/.f64 1 z) (/.f64 y (/.f64 1 t))) t))
(*.f64 (/.f64 1 (sqrt.f64 (/.f64 z y))) (/.f64 x (sqrt.f64 (/.f64 z y))))
Outputs
(/.f64 (*.f64 y x) z)
(/.f64 x (/.f64 z y))
(/.f64 (*.f64 y x) z)
(/.f64 x (/.f64 z y))
(*.f64 (/.f64 x z) y)
Calls

8 calls:

63.0ms
z
32.0ms
(/.f64 y z)
32.0ms
(/.f64 y z)
23.0ms
x
22.0ms
y
Results
ErrorSegmentsBranch
3.5b3x
2.5b3y
3.2b3z
3.9b2t
1.3b4(*.f64 x (/.f64 (*.f64 (/.f64 y z) t) t))
2.2b3(/.f64 (*.f64 (/.f64 y z) t) t)
0.2b5(/.f64 y z)
0.2b5(/.f64 y z)
Compiler

Compiled 171 to 98 computations (42.7% saved)

bsearch1.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
9.73136826541973e+93
2.3870171111062737e+108
0.0ms
0.0
1.52623822487454e-309
0.0ms
-3.8635359202584025e-134
-4.811916837060689e-150
0.0ms
-1.5939550719645613e+158
-7.038418778338546e+157
Compiler

Compiled 20 to 14 computations (30% saved)

regimes89.0ms (1.7%)

Counts
4 → 5
Calls
Call 1
Inputs
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 x z) y)
(*.f64 (/.f64 y z) x)
Outputs
(*.f64 (/.f64 x z) y)
(*.f64 (/.f64 y z) x)
(/.f64 (*.f64 y x) z)
(*.f64 (/.f64 y z) x)
(*.f64 (/.f64 x z) y)
Calls

5 calls:

30.0ms
t
17.0ms
(/.f64 y z)
15.0ms
x
15.0ms
z
11.0ms
y
Results
ErrorSegmentsBranch
3.0b4x
2.5b3y
2.8b4z
4.0b2t
0.2b5(/.f64 y z)
Compiler

Compiled 51 to 33 computations (35.3% saved)

bsearch1.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
9.73136826541973e+93
2.3870171111062737e+108
0.0ms
0.0
1.52623822487454e-309
0.0ms
-3.8635359202584025e-134
-4.811916837060689e-150
0.0ms
-1.3495415060739826e+261
-1.4279404550844084e+253
Compiler

Compiled 20 to 14 computations (30% saved)

regimes34.0ms (0.6%)

Accuracy

Total -7.9b remaining (-263.7%)

Threshold costs -7.9b (-263.7%)

Counts
3 → 3
Calls
Call 1
Inputs
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
(*.f64 (/.f64 x z) y)
Outputs
(/.f64 y (/.f64 z x))
(/.f64 (*.f64 y x) z)
(/.f64 y (/.f64 z x))
Calls

4 calls:

13.0ms
x
11.0ms
y
4.0ms
t
4.0ms
z
Results
ErrorSegmentsBranch
3.0b4x
3.0b3y
5.2b1z
5.2b1t
Compiler

Compiled 39 to 26 computations (33.3% saved)

bsearch50.0ms (1%)

Algorithm
binary-search
Steps
TimeLeftRight
3.0ms
4.367900873078937e+247
6.131986167703791e+248
47.0ms
4.012880369396187e-129
1.855295940778372e-128
Compiler

Compiled 40 to 28 computations (30% saved)

simplify8.0ms (0.2%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
039182
142182
Stop Event
done
saturated
Calls
Call 1
Inputs
(if (<=.f64 (/.f64 y z) -99999999999999995287335453651211007997446182781858083179085387749785952239205787068995699003416510776387310061494932420984963311567802202010637287727642443776) (/.f64 (*.f64 y x) z) (if (<=.f64 (/.f64 y z) -8183476519740355/409173825987017733751648712103449894027080255755383098685411421012016724550584319360408761540738019643860835515945008876152157068235674131666065948672) (/.f64 x (/.f64 z y)) (if (<=.f64 (/.f64 y z) 0) (/.f64 (*.f64 y x) z) (if (<=.f64 (/.f64 y z) 10000000000000000202188791271559469885760963232143577411377768562080040049981643093586978275328) (/.f64 x (/.f64 z y)) (*.f64 (/.f64 x z) y)))))
(if (<=.f64 (/.f64 y z) -999999999999999928773840520366757536876739320811576612231781480701470095354527494007746341441138276442474389769547563525432293116501122567178714359381222777104854460745804679379644497043208267383631647167377861948545889974808961869943571076775428108923489484800) (*.f64 (/.f64 x z) y) (if (<=.f64 (/.f64 y z) -8183476519740355/409173825987017733751648712103449894027080255755383098685411421012016724550584319360408761540738019643860835515945008876152157068235674131666065948672) (*.f64 (/.f64 y z) x) (if (<=.f64 (/.f64 y z) 0) (/.f64 (*.f64 y x) z) (if (<=.f64 (/.f64 y z) 10000000000000000202188791271559469885760963232143577411377768562080040049981643093586978275328) (*.f64 (/.f64 y z) x) (*.f64 (/.f64 x z) y)))))
(if (<=.f64 y 6263601737877025/1560874275157996115690798614896583152874299071332485575429578479812685869409882810060153051531745985579913465560703311447723987839644142653145088) (/.f64 y (/.f64 z x)) (if (<=.f64 y 100000000000000004529828046727141746947240184637542665783753313900757015278809664236212362908068632088130911440353246844005893434193998802215452930446088047790723234500178792233381012913302936013527818404707654908851814405278709728676750356293615616) (/.f64 (*.f64 y x) z) (/.f64 y (/.f64 z x))))
(/.f64 (*.f64 y x) z)
Outputs
(if (<=.f64 (/.f64 y z) -99999999999999995287335453651211007997446182781858083179085387749785952239205787068995699003416510776387310061494932420984963311567802202010637287727642443776) (/.f64 (*.f64 y x) z) (if (<=.f64 (/.f64 y z) -8183476519740355/409173825987017733751648712103449894027080255755383098685411421012016724550584319360408761540738019643860835515945008876152157068235674131666065948672) (/.f64 x (/.f64 z y)) (if (<=.f64 (/.f64 y z) 0) (/.f64 (*.f64 y x) z) (if (<=.f64 (/.f64 y z) 10000000000000000202188791271559469885760963232143577411377768562080040049981643093586978275328) (/.f64 x (/.f64 z y)) (*.f64 (/.f64 x z) y)))))
(if (<=.f64 (/.f64 y z) -99999999999999995287335453651211007997446182781858083179085387749785952239205787068995699003416510776387310061494932420984963311567802202010637287727642443776) (/.f64 (*.f64 y x) z) (if (<=.f64 (/.f64 y z) -8183476519740355/409173825987017733751648712103449894027080255755383098685411421012016724550584319360408761540738019643860835515945008876152157068235674131666065948672) (/.f64 x (/.f64 z y)) (if (<=.f64 (/.f64 y z) 0) (/.f64 (*.f64 y x) z) (if (<=.f64 (/.f64 y z) 10000000000000000202188791271559469885760963232143577411377768562080040049981643093586978275328) (/.f64 x (/.f64 z y)) (*.f64 y (/.f64 x z))))))
(if (<=.f64 (/.f64 y z) -999999999999999928773840520366757536876739320811576612231781480701470095354527494007746341441138276442474389769547563525432293116501122567178714359381222777104854460745804679379644497043208267383631647167377861948545889974808961869943571076775428108923489484800) (*.f64 (/.f64 x z) y) (if (<=.f64 (/.f64 y z) -8183476519740355/409173825987017733751648712103449894027080255755383098685411421012016724550584319360408761540738019643860835515945008876152157068235674131666065948672) (*.f64 (/.f64 y z) x) (if (<=.f64 (/.f64 y z) 0) (/.f64 (*.f64 y x) z) (if (<=.f64 (/.f64 y z) 10000000000000000202188791271559469885760963232143577411377768562080040049981643093586978275328) (*.f64 (/.f64 y z) x) (*.f64 (/.f64 x z) y)))))
(if (<=.f64 (/.f64 y z) -999999999999999928773840520366757536876739320811576612231781480701470095354527494007746341441138276442474389769547563525432293116501122567178714359381222777104854460745804679379644497043208267383631647167377861948545889974808961869943571076775428108923489484800) (*.f64 y (/.f64 x z)) (if (<=.f64 (/.f64 y z) -8183476519740355/409173825987017733751648712103449894027080255755383098685411421012016724550584319360408761540738019643860835515945008876152157068235674131666065948672) (*.f64 (/.f64 y z) x) (if (<=.f64 (/.f64 y z) 0) (/.f64 (*.f64 y x) z) (if (<=.f64 (/.f64 y z) 10000000000000000202188791271559469885760963232143577411377768562080040049981643093586978275328) (*.f64 (/.f64 y z) x) (*.f64 y (/.f64 x z))))))
(if (<=.f64 y 6263601737877025/1560874275157996115690798614896583152874299071332485575429578479812685869409882810060153051531745985579913465560703311447723987839644142653145088) (/.f64 y (/.f64 z x)) (if (<=.f64 y 100000000000000004529828046727141746947240184637542665783753313900757015278809664236212362908068632088130911440353246844005893434193998802215452930446088047790723234500178792233381012913302936013527818404707654908851814405278709728676750356293615616) (/.f64 (*.f64 y x) z) (/.f64 y (/.f64 z x))))
(/.f64 (*.f64 y x) z)
Compiler

Compiled 142 to 65 computations (54.2% saved)

soundness471.0ms (9%)

Algorithm
egg-herbie
Rules
1441×associate-/l/_binary64
1441×associate-/l/_binary64
1020×associate-/r/_binary64
1020×associate-/r/_binary64
1016×associate-/l*_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0913
11710
2437
31047
44547
523297
625237
725367
825497
925567
1025637
1125707
1225777
1325847
1425917
1525987
1626057
1726127
1826197
1926267
2026337
0913
11710
2437
31047
44547
523297
625237
725367
825497
925567
1025637
1125707
1225777
1325847
1425917
1525987
1626057
1726127
1826197
1926267
2026337
Stop Event
node limit
node limit
Compiler

Compiled 128 to 84 computations (34.4% saved)

end164.0ms (3.1%)

Compiler

Compiled 236 to 90 computations (61.9% saved)

Profiling

Loading profile data...