Details

Time bar (total: 4.8s)

analyze299.0ms (6.2%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.9%0.1%0
0%99.9%0.1%1
0%99.9%0.1%2
0%99.9%0.1%3
0%99.9%0.1%4
0%99.9%0.1%5
0%99.9%0.1%6
12.5%87.4%0.1%7
18.7%81.1%0.1%8
29.6%70.2%0.1%9
42.1%57.7%0.1%10
47.6%52.1%0.3%11
53.8%44.6%1.6%12
Compiler

Compiled 11 to 7 computations (36.4% saved)

sample1.4s (29.2%)

Results
1.2s8256×body256valid
212.0ms2017×body256invalid

preprocess216.0ms (4.5%)

Algorithm
egg-herbie
Rules
1612×fma-neg_binary64
563×fma-def_binary64
490×div-sub_binary64
453×associate-/l*_binary64
453×times-frac_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01640
13740
27340
314040
430740
563240
6157540
7364140
8429540
9457640
10473840
11479440
12572640
13577840
14599440
15685840
16768440
033
Stop Event
saturated
node limit
Calls
Call 1
Inputs
0
1
2
Outputs
0
1
2
Call 2
Inputs
(+.f64 x (/.f64 (-.f64 y x) z))
(+.f64 y (/.f64 (-.f64 x y) z))
(+.f64 z (/.f64 (-.f64 y z) x))
(+.f64 x (/.f64 (-.f64 z x) y))
Outputs
(+.f64 x (/.f64 (-.f64 y x) z))
(+.f64 y (/.f64 (-.f64 x y) z))
(-.f64 y (/.f64 (-.f64 y x) z))
(+.f64 z (/.f64 (-.f64 y z) x))
(-.f64 z (/.f64 (-.f64 z y) x))
(+.f64 x (/.f64 (-.f64 z x) y))
(-.f64 x (/.f64 (-.f64 x z) y))
Compiler

Compiled 13 to 9 computations (30.8% saved)

simplify148.0ms (3.1%)

Algorithm
egg-herbie
Rules
377×fma-neg_binary64
307×fma-def_binary64
119×cancel-sign-sub-inv_binary64
77×distribute-rgt-in_binary64
56×unsub-neg_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0710
11310
22410
34210
48810
516610
638510
772410
8121510
9150010
10159310
11167110
12167510
Stop Event
saturated
Counts
1 → 1
Calls
Call 1
Inputs
(+.f64 x (/.f64 (-.f64 y x) z))
Outputs
(+.f64 x (/.f64 (-.f64 y x) z))

eval0.0ms (0%)

Compiler

Compiled 10 to 6 computations (40% saved)

prune1.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New011
Fresh011
Picked000
Done000
Total022
Error
0.0b
Counts
2 → 1
Alt Table
Click to see full alt table
StatusErrorProgram
0.0b
(+.f64 x (/.f64 (-.f64 y x) z))
Compiler

Compiled 10 to 6 computations (40% saved)

localize8.0ms (0.2%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(+.f64 x (/.f64 (-.f64 y x) z))
Compiler

Compiled 21 to 6 computations (71.4% saved)

series6.0ms (0.1%)

Counts
1 → 36
Calls

9 calls:

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

rewrite59.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
462×log-prod_binary64
362×fma-def_binary64
354×exp-prod_binary64
315×pow-prod-down_binary64
248×pow2_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify51.0ms (1.1%)

Algorithm
egg-herbie
Rules
325×fma-def_binary64
311×fma-neg_binary64
73×distribute-rgt-in_binary64
71×cancel-sign-sub-inv_binary64
46×sub-neg_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
026429
157429
2105312
3200312
4369312
5667312
61032312
71238312
81334312
91415312
101505312
Stop Event
saturated
Counts
117 → 94
Calls
Call 1
Inputs
(/.f64 y z)
(+.f64 (*.f64 (-.f64 1 (/.f64 1 z)) x) (/.f64 y z))
(+.f64 (*.f64 (-.f64 1 (/.f64 1 z)) x) (/.f64 y z))
(+.f64 (*.f64 (-.f64 1 (/.f64 1 z)) x) (/.f64 y z))
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(+.f64 (/.f64 y z) (*.f64 (-.f64 1 (/.f64 1 z)) x))
(+.f64 (/.f64 y z) (*.f64 (-.f64 1 (/.f64 1 z)) x))
(+.f64 (/.f64 y z) (*.f64 (-.f64 1 (/.f64 1 z)) x))
(*.f64 -1 (*.f64 (-.f64 (/.f64 1 z) 1) x))
(+.f64 (*.f64 -1 (*.f64 (-.f64 (/.f64 1 z) 1) x)) (/.f64 y z))
(+.f64 (*.f64 -1 (*.f64 (-.f64 (/.f64 1 z) 1) x)) (/.f64 y z))
(+.f64 (*.f64 -1 (*.f64 (-.f64 (/.f64 1 z) 1) x)) (/.f64 y z))
(-.f64 x (/.f64 x z))
(-.f64 (+.f64 (/.f64 y z) x) (/.f64 x z))
(-.f64 (+.f64 (/.f64 y z) x) (/.f64 x z))
(-.f64 (+.f64 (/.f64 y z) x) (/.f64 x z))
(/.f64 y z)
(-.f64 (+.f64 x (/.f64 y z)) (/.f64 x z))
(-.f64 (+.f64 x (/.f64 y z)) (/.f64 x z))
(-.f64 (+.f64 x (/.f64 y z)) (/.f64 x z))
(/.f64 y z)
(+.f64 (*.f64 -1 (/.f64 x z)) (+.f64 x (/.f64 y z)))
(+.f64 (*.f64 -1 (/.f64 x z)) (+.f64 x (/.f64 y z)))
(+.f64 (*.f64 -1 (/.f64 x z)) (+.f64 x (/.f64 y z)))
(/.f64 (-.f64 y x) z)
(-.f64 (+.f64 x (/.f64 y z)) (/.f64 x z))
(-.f64 (+.f64 x (/.f64 y z)) (/.f64 x z))
(-.f64 (+.f64 x (/.f64 y z)) (/.f64 x z))
x
(-.f64 (+.f64 (/.f64 y z) x) (/.f64 x z))
(-.f64 (+.f64 (/.f64 y z) x) (/.f64 x z))
(-.f64 (+.f64 (/.f64 y z) x) (/.f64 x z))
x
(-.f64 (+.f64 (/.f64 y z) x) (/.f64 x z))
(-.f64 (+.f64 (/.f64 y z) x) (/.f64 x z))
(-.f64 (+.f64 (/.f64 y z) x) (/.f64 x z))
Outputs
(/.f64 y z)
(+.f64 (*.f64 (-.f64 1 (/.f64 1 z)) x) (/.f64 y z))
(fma.f64 (-.f64 1 (/.f64 1 z)) x (/.f64 y z))
(fma.f64 (+.f64 1 (/.f64 -1 z)) x (/.f64 y z))
(+.f64 x (/.f64 (-.f64 y x) z))
(+.f64 (*.f64 (-.f64 1 (/.f64 1 z)) x) (/.f64 y z))
(fma.f64 (-.f64 1 (/.f64 1 z)) x (/.f64 y z))
(fma.f64 (+.f64 1 (/.f64 -1 z)) x (/.f64 y z))
(+.f64 x (/.f64 (-.f64 y x) z))
(+.f64 (*.f64 (-.f64 1 (/.f64 1 z)) x) (/.f64 y z))
(fma.f64 (-.f64 1 (/.f64 1 z)) x (/.f64 y z))
(fma.f64 (+.f64 1 (/.f64 -1 z)) x (/.f64 y z))
(+.f64 x (/.f64 (-.f64 y x) z))
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(*.f64 (+.f64 1 (/.f64 -1 z)) x)
(-.f64 x (/.f64 x z))
(+.f64 (/.f64 y z) (*.f64 (-.f64 1 (/.f64 1 z)) x))
(fma.f64 (-.f64 1 (/.f64 1 z)) x (/.f64 y z))
(fma.f64 (+.f64 1 (/.f64 -1 z)) x (/.f64 y z))
(+.f64 x (/.f64 (-.f64 y x) z))
(+.f64 (/.f64 y z) (*.f64 (-.f64 1 (/.f64 1 z)) x))
(fma.f64 (-.f64 1 (/.f64 1 z)) x (/.f64 y z))
(fma.f64 (+.f64 1 (/.f64 -1 z)) x (/.f64 y z))
(+.f64 x (/.f64 (-.f64 y x) z))
(+.f64 (/.f64 y z) (*.f64 (-.f64 1 (/.f64 1 z)) x))
(fma.f64 (-.f64 1 (/.f64 1 z)) x (/.f64 y z))
(fma.f64 (+.f64 1 (/.f64 -1 z)) x (/.f64 y z))
(+.f64 x (/.f64 (-.f64 y x) z))
(*.f64 -1 (*.f64 (-.f64 (/.f64 1 z) 1) x))
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(*.f64 (+.f64 1 (/.f64 -1 z)) x)
(-.f64 x (/.f64 x z))
(+.f64 (*.f64 -1 (*.f64 (-.f64 (/.f64 1 z) 1) x)) (/.f64 y z))
(fma.f64 (-.f64 1 (/.f64 1 z)) x (/.f64 y z))
(fma.f64 (+.f64 1 (/.f64 -1 z)) x (/.f64 y z))
(+.f64 x (/.f64 (-.f64 y x) z))
(+.f64 (*.f64 -1 (*.f64 (-.f64 (/.f64 1 z) 1) x)) (/.f64 y z))
(fma.f64 (-.f64 1 (/.f64 1 z)) x (/.f64 y z))
(fma.f64 (+.f64 1 (/.f64 -1 z)) x (/.f64 y z))
(+.f64 x (/.f64 (-.f64 y x) z))
(+.f64 (*.f64 -1 (*.f64 (-.f64 (/.f64 1 z) 1) x)) (/.f64 y z))
(fma.f64 (-.f64 1 (/.f64 1 z)) x (/.f64 y z))
(fma.f64 (+.f64 1 (/.f64 -1 z)) x (/.f64 y z))
(+.f64 x (/.f64 (-.f64 y x) z))
(-.f64 x (/.f64 x z))
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(*.f64 (+.f64 1 (/.f64 -1 z)) x)
(-.f64 (+.f64 (/.f64 y z) x) (/.f64 x z))
(fma.f64 (-.f64 1 (/.f64 1 z)) x (/.f64 y z))
(fma.f64 (+.f64 1 (/.f64 -1 z)) x (/.f64 y z))
(+.f64 x (/.f64 (-.f64 y x) z))
(-.f64 (+.f64 (/.f64 y z) x) (/.f64 x z))
(fma.f64 (-.f64 1 (/.f64 1 z)) x (/.f64 y z))
(fma.f64 (+.f64 1 (/.f64 -1 z)) x (/.f64 y z))
(+.f64 x (/.f64 (-.f64 y x) z))
(-.f64 (+.f64 (/.f64 y z) x) (/.f64 x z))
(fma.f64 (-.f64 1 (/.f64 1 z)) x (/.f64 y z))
(fma.f64 (+.f64 1 (/.f64 -1 z)) x (/.f64 y z))
(+.f64 x (/.f64 (-.f64 y x) z))
(/.f64 y z)
(-.f64 (+.f64 x (/.f64 y z)) (/.f64 x z))
(fma.f64 (-.f64 1 (/.f64 1 z)) x (/.f64 y z))
(fma.f64 (+.f64 1 (/.f64 -1 z)) x (/.f64 y z))
(+.f64 x (/.f64 (-.f64 y x) z))
(-.f64 (+.f64 x (/.f64 y z)) (/.f64 x z))
(fma.f64 (-.f64 1 (/.f64 1 z)) x (/.f64 y z))
(fma.f64 (+.f64 1 (/.f64 -1 z)) x (/.f64 y z))
(+.f64 x (/.f64 (-.f64 y x) z))
(-.f64 (+.f64 x (/.f64 y z)) (/.f64 x z))
(fma.f64 (-.f64 1 (/.f64 1 z)) x (/.f64 y z))
(fma.f64 (+.f64 1 (/.f64 -1 z)) x (/.f64 y z))
(+.f64 x (/.f64 (-.f64 y x) z))
(/.f64 y z)
(+.f64 (*.f64 -1 (/.f64 x z)) (+.f64 x (/.f64 y z)))
(fma.f64 (-.f64 1 (/.f64 1 z)) x (/.f64 y z))
(fma.f64 (+.f64 1 (/.f64 -1 z)) x (/.f64 y z))
(+.f64 x (/.f64 (-.f64 y x) z))
(+.f64 (*.f64 -1 (/.f64 x z)) (+.f64 x (/.f64 y z)))
(fma.f64 (-.f64 1 (/.f64 1 z)) x (/.f64 y z))
(fma.f64 (+.f64 1 (/.f64 -1 z)) x (/.f64 y z))
(+.f64 x (/.f64 (-.f64 y x) z))
(+.f64 (*.f64 -1 (/.f64 x z)) (+.f64 x (/.f64 y z)))
(fma.f64 (-.f64 1 (/.f64 1 z)) x (/.f64 y z))
(fma.f64 (+.f64 1 (/.f64 -1 z)) x (/.f64 y z))
(+.f64 x (/.f64 (-.f64 y x) z))
(/.f64 (-.f64 y x) z)
(-.f64 (+.f64 x (/.f64 y z)) (/.f64 x z))
(fma.f64 (-.f64 1 (/.f64 1 z)) x (/.f64 y z))
(fma.f64 (+.f64 1 (/.f64 -1 z)) x (/.f64 y z))
(+.f64 x (/.f64 (-.f64 y x) z))
(-.f64 (+.f64 x (/.f64 y z)) (/.f64 x z))
(fma.f64 (-.f64 1 (/.f64 1 z)) x (/.f64 y z))
(fma.f64 (+.f64 1 (/.f64 -1 z)) x (/.f64 y z))
(+.f64 x (/.f64 (-.f64 y x) z))
(-.f64 (+.f64 x (/.f64 y z)) (/.f64 x z))
(fma.f64 (-.f64 1 (/.f64 1 z)) x (/.f64 y z))
(fma.f64 (+.f64 1 (/.f64 -1 z)) x (/.f64 y z))
(+.f64 x (/.f64 (-.f64 y x) z))
x
(-.f64 (+.f64 (/.f64 y z) x) (/.f64 x z))
(fma.f64 (-.f64 1 (/.f64 1 z)) x (/.f64 y z))
(fma.f64 (+.f64 1 (/.f64 -1 z)) x (/.f64 y z))
(+.f64 x (/.f64 (-.f64 y x) z))
(-.f64 (+.f64 (/.f64 y z) x) (/.f64 x z))
(fma.f64 (-.f64 1 (/.f64 1 z)) x (/.f64 y z))
(fma.f64 (+.f64 1 (/.f64 -1 z)) x (/.f64 y z))
(+.f64 x (/.f64 (-.f64 y x) z))
(-.f64 (+.f64 (/.f64 y z) x) (/.f64 x z))
(fma.f64 (-.f64 1 (/.f64 1 z)) x (/.f64 y z))
(fma.f64 (+.f64 1 (/.f64 -1 z)) x (/.f64 y z))
(+.f64 x (/.f64 (-.f64 y x) z))
x
(-.f64 (+.f64 (/.f64 y z) x) (/.f64 x z))
(fma.f64 (-.f64 1 (/.f64 1 z)) x (/.f64 y z))
(fma.f64 (+.f64 1 (/.f64 -1 z)) x (/.f64 y z))
(+.f64 x (/.f64 (-.f64 y x) z))
(-.f64 (+.f64 (/.f64 y z) x) (/.f64 x z))
(fma.f64 (-.f64 1 (/.f64 1 z)) x (/.f64 y z))
(fma.f64 (+.f64 1 (/.f64 -1 z)) x (/.f64 y z))
(+.f64 x (/.f64 (-.f64 y x) z))
(-.f64 (+.f64 (/.f64 y z) x) (/.f64 x z))
(fma.f64 (-.f64 1 (/.f64 1 z)) x (/.f64 y z))
(fma.f64 (+.f64 1 (/.f64 -1 z)) x (/.f64 y z))
(+.f64 x (/.f64 (-.f64 y x) z))

eval16.0ms (0.3%)

Compiler

Compiled 1307 to 392 computations (70% saved)

prune33.0ms (0.7%)

Pruning

7 alts after pruning (6 fresh and 1 done)

PrunedKeptTotal
New88694
Fresh000
Picked011
Done000
Total88795
Error
0b
Counts
95 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
30.6b
(/.f64 (-.f64 y x) z)
0.1b
(fma.f64 (/.f64 1 z) (-.f64 y x) x)
0.0b
(-.f64 (+.f64 (/.f64 y z) x) (/.f64 x z))
0.0b
(+.f64 x (/.f64 (-.f64 y x) z))
33.1b
x
23.0b
(-.f64 x (/.f64 x z))
40.3b
(/.f64 y z)
Compiler

Compiled 104 to 65 computations (37.5% saved)

localize9.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (/.f64 y z) x)
0.0b
(-.f64 (+.f64 (/.f64 y z) x) (/.f64 x z))
Compiler

Compiled 26 to 7 computations (73.1% saved)

series6.0ms (0.1%)

Counts
2 → 51
Calls

18 calls:

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

rewrite203.0ms (4.2%)

Algorithm
batch-egg-rewrite
Rules
529×log-prod_binary64
522×fma-def_binary64
388×pow-prod-down_binary64
277×pow2_binary64
275×fma-neg_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify46.0ms (0.9%)

Algorithm
egg-herbie
Rules
277×fma-def_binary64
253×fma-neg_binary64
85×cancel-sign-sub-inv_binary64
64×distribute-rgt-in_binary64
51×sub-neg_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
028357
171357
2149357
3426357
4931357
51326357
61511357
71517357
Stop Event
saturated
Counts
276 → 238
Calls
Call 1
Inputs
(-.f64 x (/.f64 x z))
(/.f64 y z)
(-.f64 (+.f64 x (/.f64 y z)) (/.f64 x z))
(-.f64 (+.f64 x (/.f64 y z)) (/.f64 x z))
(-.f64 (+.f64 x (/.f64 y z)) (/.f64 x z))
(/.f64 y z)
(-.f64 (+.f64 x (/.f64 y z)) (/.f64 x z))
(-.f64 (+.f64 x (/.f64 y z)) (/.f64 x z))
(-.f64 (+.f64 x (/.f64 y z)) (/.f64 x z))
(/.f64 (-.f64 y x) z)
(-.f64 (+.f64 x (/.f64 y z)) (/.f64 x z))
(-.f64 (+.f64 x (/.f64 y z)) (/.f64 x z))
(-.f64 (+.f64 x (/.f64 y z)) (/.f64 x z))
x
x
(+.f64 (*.f64 -1 (/.f64 (-.f64 (*.f64 -1 y) (*.f64 -1 x)) z)) x)
(+.f64 (*.f64 -1 (/.f64 (-.f64 (*.f64 -1 y) (*.f64 -1 x)) z)) x)
(+.f64 (*.f64 -1 (/.f64 (-.f64 (*.f64 -1 y) (*.f64 -1 x)) z)) x)
(/.f64 y z)
(+.f64 (*.f64 (-.f64 1 (/.f64 1 z)) x) (/.f64 y z))
(+.f64 (*.f64 (-.f64 1 (/.f64 1 z)) x) (/.f64 y z))
(+.f64 (*.f64 (-.f64 1 (/.f64 1 z)) x) (/.f64 y z))
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(+.f64 (/.f64 y z) (*.f64 (-.f64 1 (/.f64 1 z)) x))
(+.f64 (/.f64 y z) (*.f64 (-.f64 1 (/.f64 1 z)) x))
(+.f64 (/.f64 y z) (*.f64 (-.f64 1 (/.f64 1 z)) x))
(*.f64 -1 (*.f64 (-.f64 (/.f64 1 z) 1) x))
(+.f64 (*.f64 -1 (*.f64 (-.f64 (/.f64 1 z) 1) x)) (/.f64 y z))
(+.f64 (*.f64 -1 (*.f64 (-.f64 (/.f64 1 z) 1) x)) (/.f64 y z))
(+.f64 (*.f64 -1 (*.f64 (-.f64 (/.f64 1 z) 1) x)) (/.f64 y z))
x
(/.f64 y z)
(+.f64 x (/.f64 y z))
(+.f64 x (/.f64 y z))
(+.f64 x (/.f64 y z))
(/.f64 y z)
(+.f64 x (/.f64 y z))
(+.f64 x (/.f64 y z))
(+.f64 x (/.f64 y z))
(/.f64 y z)
(+.f64 x (/.f64 y z))
(+.f64 x (/.f64 y z))
(+.f64 x (/.f64 y z))
x
x
(/.f64 y z)
(+.f64 x (/.f64 y z))
(+.f64 x (/.f64 y z))
(+.f64 x (/.f64 y z))
x
x
Outputs
(-.f64 x (/.f64 x z))
(/.f64 y z)
(-.f64 (+.f64 x (/.f64 y z)) (/.f64 x z))
(+.f64 x (/.f64 (-.f64 y x) z))
(-.f64 (+.f64 x (/.f64 y z)) (/.f64 x z))
(+.f64 x (/.f64 (-.f64 y x) z))
(-.f64 (+.f64 x (/.f64 y z)) (/.f64 x z))
(+.f64 x (/.f64 (-.f64 y x) z))
(/.f64 y z)
(-.f64 (+.f64 x (/.f64 y z)) (/.f64 x z))
(+.f64 x (/.f64 (-.f64 y x) z))
(-.f64 (+.f64 x (/.f64 y z)) (/.f64 x z))
(+.f64 x (/.f64 (-.f64 y x) z))
(-.f64 (+.f64 x (/.f64 y z)) (/.f64 x z))
(+.f64 x (/.f64 (-.f64 y x) z))
(/.f64 (-.f64 y x) z)
(-.f64 (+.f64 x (/.f64 y z)) (/.f64 x z))
(+.f64 x (/.f64 (-.f64 y x) z))
(-.f64 (+.f64 x (/.f64 y z)) (/.f64 x z))
(+.f64 x (/.f64 (-.f64 y x) z))
(-.f64 (+.f64 x (/.f64 y z)) (/.f64 x z))
(+.f64 x (/.f64 (-.f64 y x) z))
x
x
(+.f64 (*.f64 -1 (/.f64 (-.f64 (*.f64 -1 y) (*.f64 -1 x)) z)) x)
(+.f64 x (/.f64 (-.f64 y x) z))
(+.f64 (*.f64 -1 (/.f64 (-.f64 (*.f64 -1 y) (*.f64 -1 x)) z)) x)
(+.f64 x (/.f64 (-.f64 y x) z))
(+.f64 (*.f64 -1 (/.f64 (-.f64 (*.f64 -1 y) (*.f64 -1 x)) z)) x)
(+.f64 x (/.f64 (-.f64 y x) z))
(/.f64 y z)
(+.f64 (*.f64 (-.f64 1 (/.f64 1 z)) x) (/.f64 y z))
(+.f64 x (/.f64 (-.f64 y x) z))
(+.f64 (*.f64 (-.f64 1 (/.f64 1 z)) x) (/.f64 y z))
(+.f64 x (/.f64 (-.f64 y x) z))
(+.f64 (*.f64 (-.f64 1 (/.f64 1 z)) x) (/.f64 y z))
(+.f64 x (/.f64 (-.f64 y x) z))
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(-.f64 x (/.f64 x z))
(+.f64 (/.f64 y z) (*.f64 (-.f64 1 (/.f64 1 z)) x))
(+.f64 x (/.f64 (-.f64 y x) z))
(+.f64 (/.f64 y z) (*.f64 (-.f64 1 (/.f64 1 z)) x))
(+.f64 x (/.f64 (-.f64 y x) z))
(+.f64 (/.f64 y z) (*.f64 (-.f64 1 (/.f64 1 z)) x))
(+.f64 x (/.f64 (-.f64 y x) z))
(*.f64 -1 (*.f64 (-.f64 (/.f64 1 z) 1) x))
(-.f64 x (/.f64 x z))
(+.f64 (*.f64 -1 (*.f64 (-.f64 (/.f64 1 z) 1) x)) (/.f64 y z))
(+.f64 x (/.f64 (-.f64 y x) z))
(+.f64 (*.f64 -1 (*.f64 (-.f64 (/.f64 1 z) 1) x)) (/.f64 y z))
(+.f64 x (/.f64 (-.f64 y x) z))
(+.f64 (*.f64 -1 (*.f64 (-.f64 (/.f64 1 z) 1) x)) (/.f64 y z))
(+.f64 x (/.f64 (-.f64 y x) z))
x
(/.f64 y z)
(+.f64 x (/.f64 y z))
(+.f64 x (/.f64 y z))
(+.f64 x (/.f64 y z))
(/.f64 y z)
(+.f64 x (/.f64 y z))
(+.f64 x (/.f64 y z))
(+.f64 x (/.f64 y z))
(/.f64 y z)
(+.f64 x (/.f64 y z))
(+.f64 x (/.f64 y z))
(+.f64 x (/.f64 y z))
x
x
(/.f64 y z)
(+.f64 x (/.f64 y z))
(+.f64 x (/.f64 y z))
(+.f64 x (/.f64 y z))
x
x

localize3.0ms (0.1%)

Compiler

Compiled 8 to 4 computations (50% saved)

localize6.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(-.f64 x (/.f64 x z))
Compiler

Compiled 13 to 5 computations (61.5% saved)

series2.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

rewrite49.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
726×pow1_binary64
678×add-log-exp_binary64
678×log1p-expm1-u_binary64
678×expm1-log1p-u_binary64
663×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify20.0ms (0.4%)

Algorithm
egg-herbie
Rules
148×fma-def_binary64
74×fma-neg_binary64
28×distribute-rgt-in_binary64
25×distribute-lft-in_binary64
23×cancel-sign-sub-inv_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
014218
132218
267155
3132155
4223155
5385155
6621155
7649155
Stop Event
saturated
Counts
60 → 43
Calls
Call 1
Inputs
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(*.f64 -1 (*.f64 (-.f64 (/.f64 1 z) 1) x))
(*.f64 -1 (*.f64 (-.f64 (/.f64 1 z) 1) x))
(*.f64 -1 (*.f64 (-.f64 (/.f64 1 z) 1) x))
(*.f64 -1 (*.f64 (-.f64 (/.f64 1 z) 1) x))
(*.f64 -1 (/.f64 x z))
(+.f64 (*.f64 -1 (/.f64 x z)) x)
(+.f64 (*.f64 -1 (/.f64 x z)) x)
(+.f64 (*.f64 -1 (/.f64 x z)) x)
x
(+.f64 (*.f64 -1 (/.f64 x z)) x)
(+.f64 (*.f64 -1 (/.f64 x z)) x)
(+.f64 (*.f64 -1 (/.f64 x z)) x)
x
(+.f64 (*.f64 -1 (/.f64 x z)) x)
(+.f64 (*.f64 -1 (/.f64 x z)) x)
(+.f64 (*.f64 -1 (/.f64 x z)) x)
Outputs
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(*.f64 x (-.f64 1 (/.f64 1 z)))
(-.f64 x (/.f64 x z))
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(*.f64 x (-.f64 1 (/.f64 1 z)))
(-.f64 x (/.f64 x z))
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(*.f64 x (-.f64 1 (/.f64 1 z)))
(-.f64 x (/.f64 x z))
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(*.f64 x (-.f64 1 (/.f64 1 z)))
(-.f64 x (/.f64 x z))
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(*.f64 x (-.f64 1 (/.f64 1 z)))
(-.f64 x (/.f64 x z))
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(*.f64 x (-.f64 1 (/.f64 1 z)))
(-.f64 x (/.f64 x z))
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(*.f64 x (-.f64 1 (/.f64 1 z)))
(-.f64 x (/.f64 x z))
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(*.f64 x (-.f64 1 (/.f64 1 z)))
(-.f64 x (/.f64 x z))
(*.f64 -1 (*.f64 (-.f64 (/.f64 1 z) 1) x))
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(*.f64 x (-.f64 1 (/.f64 1 z)))
(-.f64 x (/.f64 x z))
(*.f64 -1 (*.f64 (-.f64 (/.f64 1 z) 1) x))
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(*.f64 x (-.f64 1 (/.f64 1 z)))
(-.f64 x (/.f64 x z))
(*.f64 -1 (*.f64 (-.f64 (/.f64 1 z) 1) x))
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(*.f64 x (-.f64 1 (/.f64 1 z)))
(-.f64 x (/.f64 x z))
(*.f64 -1 (*.f64 (-.f64 (/.f64 1 z) 1) x))
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(*.f64 x (-.f64 1 (/.f64 1 z)))
(-.f64 x (/.f64 x z))
(*.f64 -1 (/.f64 x z))
(neg.f64 (/.f64 x z))
(/.f64 (neg.f64 x) z)
(+.f64 (*.f64 -1 (/.f64 x z)) x)
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(*.f64 x (-.f64 1 (/.f64 1 z)))
(-.f64 x (/.f64 x z))
(+.f64 (*.f64 -1 (/.f64 x z)) x)
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(*.f64 x (-.f64 1 (/.f64 1 z)))
(-.f64 x (/.f64 x z))
(+.f64 (*.f64 -1 (/.f64 x z)) x)
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(*.f64 x (-.f64 1 (/.f64 1 z)))
(-.f64 x (/.f64 x z))
x
(+.f64 (*.f64 -1 (/.f64 x z)) x)
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(*.f64 x (-.f64 1 (/.f64 1 z)))
(-.f64 x (/.f64 x z))
(+.f64 (*.f64 -1 (/.f64 x z)) x)
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(*.f64 x (-.f64 1 (/.f64 1 z)))
(-.f64 x (/.f64 x z))
(+.f64 (*.f64 -1 (/.f64 x z)) x)
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(*.f64 x (-.f64 1 (/.f64 1 z)))
(-.f64 x (/.f64 x z))
x
(+.f64 (*.f64 -1 (/.f64 x z)) x)
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(*.f64 x (-.f64 1 (/.f64 1 z)))
(-.f64 x (/.f64 x z))
(+.f64 (*.f64 -1 (/.f64 x z)) x)
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(*.f64 x (-.f64 1 (/.f64 1 z)))
(-.f64 x (/.f64 x z))
(+.f64 (*.f64 -1 (/.f64 x z)) x)
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(*.f64 x (-.f64 1 (/.f64 1 z)))
(-.f64 x (/.f64 x z))

localize41.0ms (0.9%)

Compiler

Compiled 14 to 5 computations (64.3% saved)

localize9.0ms (0.2%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.1b
(fma.f64 (/.f64 1 z) (-.f64 y x) x)
Compiler

Compiled 21 to 10 computations (52.4% saved)

series4.0ms (0.1%)

Counts
1 → 36
Calls

9 calls:

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

rewrite56.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
894×pow1_binary64
828×add-log-exp_binary64
828×log1p-expm1-u_binary64
828×expm1-log1p-u_binary64
809×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify300.0ms (6.2%)

Algorithm
egg-herbie
Rules
318×fma-def_binary64
307×fma-neg_binary64
73×distribute-rgt-in_binary64
71×cancel-sign-sub-inv_binary64
44×sub-neg_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
027315
162312
2108312
3200312
4369312
5663312
61013312
71219312
81317312
91398312
101488312
Stop Event
saturated
Counts
57 → 35
Calls
Call 1
Inputs
(/.f64 (-.f64 y x) z)
(-.f64 (+.f64 x (/.f64 y z)) (/.f64 x z))
(-.f64 (+.f64 x (/.f64 y z)) (/.f64 x z))
(-.f64 (+.f64 x (/.f64 y z)) (/.f64 x z))
x
(-.f64 (+.f64 (/.f64 y z) x) (/.f64 x z))
(-.f64 (+.f64 (/.f64 y z) x) (/.f64 x z))
(-.f64 (+.f64 (/.f64 y z) x) (/.f64 x z))
x
(-.f64 (+.f64 (/.f64 y z) x) (/.f64 x z))
(-.f64 (+.f64 (/.f64 y z) x) (/.f64 x z))
(-.f64 (+.f64 (/.f64 y z) x) (/.f64 x z))
(+.f64 (*.f64 -1 (/.f64 x z)) x)
(+.f64 (*.f64 -1 (/.f64 x z)) (+.f64 (/.f64 y z) x))
(+.f64 (*.f64 -1 (/.f64 x z)) (+.f64 (/.f64 y z) x))
(+.f64 (*.f64 -1 (/.f64 x z)) (+.f64 (/.f64 y z) x))
(/.f64 y z)
(+.f64 (*.f64 -1 (/.f64 x z)) (+.f64 x (/.f64 y z)))
(+.f64 (*.f64 -1 (/.f64 x z)) (+.f64 x (/.f64 y z)))
(+.f64 (*.f64 -1 (/.f64 x z)) (+.f64 x (/.f64 y z)))
(/.f64 y z)
(+.f64 (*.f64 -1 (/.f64 x z)) (+.f64 x (/.f64 y z)))
(+.f64 (*.f64 -1 (/.f64 x z)) (+.f64 x (/.f64 y z)))
(+.f64 (*.f64 -1 (/.f64 x z)) (+.f64 x (/.f64 y z)))
(/.f64 y z)
(+.f64 (*.f64 (-.f64 1 (/.f64 1 z)) x) (/.f64 y z))
(+.f64 (*.f64 (-.f64 1 (/.f64 1 z)) x) (/.f64 y z))
(+.f64 (*.f64 (-.f64 1 (/.f64 1 z)) x) (/.f64 y z))
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(+.f64 (/.f64 y z) (*.f64 (-.f64 1 (/.f64 1 z)) x))
(+.f64 (/.f64 y z) (*.f64 (-.f64 1 (/.f64 1 z)) x))
(+.f64 (/.f64 y z) (*.f64 (-.f64 1 (/.f64 1 z)) x))
(*.f64 -1 (*.f64 (-.f64 (/.f64 1 z) 1) x))
(+.f64 (*.f64 -1 (*.f64 (-.f64 (/.f64 1 z) 1) x)) (/.f64 y z))
(+.f64 (*.f64 -1 (*.f64 (-.f64 (/.f64 1 z) 1) x)) (/.f64 y z))
(+.f64 (*.f64 -1 (*.f64 (-.f64 (/.f64 1 z) 1) x)) (/.f64 y z))
Outputs
(/.f64 (-.f64 y x) z)
(-.f64 (+.f64 x (/.f64 y z)) (/.f64 x z))
(+.f64 x (/.f64 (-.f64 y x) z))
(-.f64 (+.f64 x (/.f64 y z)) (/.f64 x z))
(+.f64 x (/.f64 (-.f64 y x) z))
(-.f64 (+.f64 x (/.f64 y z)) (/.f64 x z))
(+.f64 x (/.f64 (-.f64 y x) z))
x
(-.f64 (+.f64 (/.f64 y z) x) (/.f64 x z))
(+.f64 x (/.f64 (-.f64 y x) z))
(-.f64 (+.f64 (/.f64 y z) x) (/.f64 x z))
(+.f64 x (/.f64 (-.f64 y x) z))
(-.f64 (+.f64 (/.f64 y z) x) (/.f64 x z))
(+.f64 x (/.f64 (-.f64 y x) z))
x
(-.f64 (+.f64 (/.f64 y z) x) (/.f64 x z))
(+.f64 x (/.f64 (-.f64 y x) z))
(-.f64 (+.f64 (/.f64 y z) x) (/.f64 x z))
(+.f64 x (/.f64 (-.f64 y x) z))
(-.f64 (+.f64 (/.f64 y z) x) (/.f64 x z))
(+.f64 x (/.f64 (-.f64 y x) z))
(+.f64 (*.f64 -1 (/.f64 x z)) x)
(fma.f64 -1 (/.f64 x z) x)
(-.f64 x (/.f64 x z))
(+.f64 (*.f64 -1 (/.f64 x z)) (+.f64 (/.f64 y z) x))
(+.f64 x (/.f64 (-.f64 y x) z))
(+.f64 (*.f64 -1 (/.f64 x z)) (+.f64 (/.f64 y z) x))
(+.f64 x (/.f64 (-.f64 y x) z))
(+.f64 (*.f64 -1 (/.f64 x z)) (+.f64 (/.f64 y z) x))
(+.f64 x (/.f64 (-.f64 y x) z))
(/.f64 y z)
(+.f64 (*.f64 -1 (/.f64 x z)) (+.f64 x (/.f64 y z)))
(+.f64 x (/.f64 (-.f64 y x) z))
(+.f64 (*.f64 -1 (/.f64 x z)) (+.f64 x (/.f64 y z)))
(+.f64 x (/.f64 (-.f64 y x) z))
(+.f64 (*.f64 -1 (/.f64 x z)) (+.f64 x (/.f64 y z)))
(+.f64 x (/.f64 (-.f64 y x) z))
(/.f64 y z)
(+.f64 (*.f64 -1 (/.f64 x z)) (+.f64 x (/.f64 y z)))
(+.f64 x (/.f64 (-.f64 y x) z))
(+.f64 (*.f64 -1 (/.f64 x z)) (+.f64 x (/.f64 y z)))
(+.f64 x (/.f64 (-.f64 y x) z))
(+.f64 (*.f64 -1 (/.f64 x z)) (+.f64 x (/.f64 y z)))
(+.f64 x (/.f64 (-.f64 y x) z))
(/.f64 y z)
(+.f64 (*.f64 (-.f64 1 (/.f64 1 z)) x) (/.f64 y z))
(+.f64 x (/.f64 (-.f64 y x) z))
(+.f64 (*.f64 (-.f64 1 (/.f64 1 z)) x) (/.f64 y z))
(+.f64 x (/.f64 (-.f64 y x) z))
(+.f64 (*.f64 (-.f64 1 (/.f64 1 z)) x) (/.f64 y z))
(+.f64 x (/.f64 (-.f64 y x) z))
(*.f64 (-.f64 1 (/.f64 1 z)) x)
(fma.f64 -1 (/.f64 x z) x)
(-.f64 x (/.f64 x z))
(+.f64 (/.f64 y z) (*.f64 (-.f64 1 (/.f64 1 z)) x))
(+.f64 x (/.f64 (-.f64 y x) z))
(+.f64 (/.f64 y z) (*.f64 (-.f64 1 (/.f64 1 z)) x))
(+.f64 x (/.f64 (-.f64 y x) z))
(+.f64 (/.f64 y z) (*.f64 (-.f64 1 (/.f64 1 z)) x))
(+.f64 x (/.f64 (-.f64 y x) z))
(*.f64 -1 (*.f64 (-.f64 (/.f64 1 z) 1) x))
(fma.f64 -1 (/.f64 x z) x)
(-.f64 x (/.f64 x z))
(+.f64 (*.f64 -1 (*.f64 (-.f64 (/.f64 1 z) 1) x)) (/.f64 y z))
(+.f64 x (/.f64 (-.f64 y x) z))
(+.f64 (*.f64 -1 (*.f64 (-.f64 (/.f64 1 z) 1) x)) (/.f64 y z))
(+.f64 x (/.f64 (-.f64 y x) z))
(+.f64 (*.f64 -1 (*.f64 (-.f64 (/.f64 1 z) 1) x)) (/.f64 y z))
(+.f64 x (/.f64 (-.f64 y x) z))

eval212.0ms (4.4%)

Compiler

Compiled 5316 to 1454 computations (72.6% saved)

prune77.0ms (1.6%)

Pruning

8 alts after pruning (2 fresh and 6 done)

PrunedKeptTotal
New3151316
Fresh011
Picked011
Done055
Total3158323
Error
0b
Counts
323 → 8
Alt Table
Click to see full alt table
StatusErrorProgram
30.6b
(/.f64 (-.f64 y x) z)
0.1b
(fma.f64 (/.f64 1 z) (-.f64 y x) x)
0.0b
(-.f64 (+.f64 (/.f64 y z) x) (/.f64 x z))
0.0b
(+.f64 x (/.f64 (-.f64 y x) z))
33.1b
x
53.0b
(/.f64 (neg.f64 x) z)
23.0b
(-.f64 x (/.f64 x z))
40.3b
(/.f64 y z)
Compiler

Compiled 66 to 42 computations (36.4% saved)

localize5.0ms (0.1%)

Compiler

Compiled 11 to 5 computations (54.5% saved)

eval0.0ms (0%)

Compiler

Compiled 3 to 3 computations (0% saved)

prune25.0ms (0.5%)

Pruning

8 alts after pruning (1 fresh and 7 done)

PrunedKeptTotal
New000
Fresh011
Picked011
Done066
Total088
Error
0b
Counts
8 → 8
Alt Table
Click to see full alt table
StatusErrorProgram
30.6b
(/.f64 (-.f64 y x) z)
0.1b
(fma.f64 (/.f64 1 z) (-.f64 y x) x)
0.0b
(-.f64 (+.f64 (/.f64 y z) x) (/.f64 x z))
0.0b
(+.f64 x (/.f64 (-.f64 y x) z))
33.1b
x
53.0b
(/.f64 (neg.f64 x) z)
23.0b
(-.f64 x (/.f64 x z))
40.3b
(/.f64 y z)
Compiler

Compiled 66 to 42 computations (36.4% saved)

eval0.0ms (0%)

Compiler

Compiled 3 to 3 computations (0% saved)

prune3.0ms (0.1%)

Pruning

8 alts after pruning (1 fresh and 7 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done077
Total088
Error
0b
Counts
8 → 8
Alt Table
Click to see full alt table
StatusErrorProgram
30.6b
(/.f64 (-.f64 y x) z)
0.1b
(fma.f64 (/.f64 1 z) (-.f64 y x) x)
0.0b
(-.f64 (+.f64 (/.f64 y z) x) (/.f64 x z))
0.0b
(+.f64 x (/.f64 (-.f64 y x) z))
33.1b
x
53.0b
(/.f64 (neg.f64 x) z)
23.0b
(-.f64 x (/.f64 x z))
40.3b
(/.f64 y z)
Compiler

Compiled 66 to 42 computations (36.4% saved)

regimes31.0ms (0.6%)

Counts
8 → 1
Calls
Call 1
Inputs
x
(/.f64 y z)
(/.f64 (neg.f64 x) z)
(/.f64 (-.f64 y x) z)
(-.f64 x (/.f64 x z))
(+.f64 x (/.f64 (-.f64 y x) z))
(-.f64 (+.f64 (/.f64 y z) x) (/.f64 x z))
(fma.f64 (/.f64 1 z) (-.f64 y x) x)
Outputs
(+.f64 x (/.f64 (-.f64 y x) z))
Calls

4 calls:

8.0ms
x
8.0ms
z
7.0ms
y
6.0ms
(+.f64 x (/.f64 (-.f64 y x) z))
Results
ErrorSegmentsBranch
0.0b1x
0.0b1y
0.0b1z
0.0b1(+.f64 x (/.f64 (-.f64 y x) z))
Compiler

Compiled 67 to 31 computations (53.7% saved)

regimes83.0ms (1.7%)

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

3 calls:

29.0ms
z
27.0ms
y
26.0ms
x
Results
ErrorSegmentsBranch
9.1b5x
12.8b5y
10.6b5z
Compiler

Compiled 33 to 19 computations (42.4% saved)

bsearch109.0ms (2.3%)

Algorithm
binary-search
Steps
TimeLeftRight
18.0ms
6.909276276579414e-96
1.1613408987513994e-94
17.0ms
-3.7465699500117035e-186
-5.208194736130043e-187
48.0ms
-1.9824960543428262e-13
-4.022535616257692e-16
27.0ms
-3.800036716128862e+97
-3.073065770822038e+93
Compiler

Compiled 34 to 23 computations (32.4% saved)

regimes278.0ms (5.8%)

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

3 calls:

224.0ms
x
32.0ms
y
22.0ms
z
Results
ErrorSegmentsBranch
14.4b7x
21.1b7y
11.0b5z
Compiler

Compiled 28 to 17 computations (39.3% saved)

bsearch189.0ms (3.9%)

Algorithm
binary-search
Steps
TimeLeftRight
26.0ms
3.120972819495425e+90
1.9065524147443545e+94
17.0ms
8.049445127029839e+65
2.3760074977468056e+66
129.0ms
4.246577876989021e+34
9.292786711761497e+42
17.0ms
-7.532411683885926e+30
-2.0213746557747744e+30
Compiler

Compiled 16 to 11 computations (31.3% saved)

regimes139.0ms (2.9%)

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

3 calls:

76.0ms
x
39.0ms
y
23.0ms
z
Results
ErrorSegmentsBranch
19.5b5x
23.0b5y
19.8b5z
Compiler

Compiled 23 to 15 computations (34.8% saved)

bsearch93.0ms (1.9%)

Algorithm
binary-search
Steps
TimeLeftRight
17.0ms
6.909276276579414e-96
1.1613408987513994e-94
20.0ms
-3.7465699500117035e-186
-5.208194736130043e-187
20.0ms
-1.0474429914901988e-10
-1.9824960543428262e-13
36.0ms
-3.800036716128862e+97
-3.073065770822038e+93
Compiler

Compiled 29 to 21 computations (27.6% saved)

regimes244.0ms (5.1%)

Accuracy

Total -42.4b remaining (-215.6%)

Threshold costs -42.4b (-215.6%)

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

3 calls:

194.0ms
x
29.0ms
z
20.0ms
y
Results
ErrorSegmentsBranch
19.6b5x
23.0b5y
21.5b3z
Compiler

Compiled 19 to 13 computations (31.6% saved)

bsearch105.0ms (2.2%)

Algorithm
binary-search
Steps
TimeLeftRight
19.0ms
6.909276276579414e-96
1.1613408987513994e-94
17.0ms
-3.7465699500117035e-186
-5.208194736130043e-187
20.0ms
-1.9824960543428262e-13
-4.022535616257692e-16
49.0ms
-2.0093912781725423e+89
-4.7137707877397613e+83
Compiler

Compiled 16 to 11 computations (31.3% saved)

simplify24.0ms (0.5%)

Algorithm
egg-herbie
Rules
+-commutative_binary64
sub-neg_binary64
*-commutative_binary64
neg-sub0_binary64
neg-mul-1_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
049180
158180
264180
367180
468180
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(+.f64 x (/.f64 (-.f64 y x) z))
(if (<=.f64 x -100000000000000002021887912715594698857609632321435774113777685620800400499816430935869782753280) (-.f64 x (/.f64 x z)) (if (<=.f64 x -15706951957736126/79228162514264337593543950336) (/.f64 (-.f64 y x) z) (if (<=.f64 x -73416036001290592/19595533242629369747791401605606558418088927130487463844933662202465281465266200982457647235235528838735010358900495684567911298014908298340170885513171109743249504533143507682501017145381579984990109696) (-.f64 x (/.f64 x z)) (if (<=.f64 x 8308085530468245/1202453802380202612679414065556140558016349465041059773802132977424491020858679523053413887173001575952350707712) (/.f64 (-.f64 y x) z) (-.f64 x (/.f64 x z))))))
(if (<=.f64 z -7532411683885925987295443288064) x (if (<=.f64 z 42465778769890212056906622172135424) (/.f64 (-.f64 y x) z) (if (<=.f64 z 804944512702983915312197134528887956830560579631320007303801864192) x (if (<=.f64 z 3120972819495425044419106781769239848350697234162676796361654571600886081025539744852869120) (/.f64 y z) x))))
(if (<=.f64 x -345115143556394134036405373408681897777227266380306915276213236704481073130349076372828989685760) x (if (<=.f64 x -8298698355421266944/79228162514264337593543950336) (/.f64 (neg.f64 x) z) (if (<=.f64 x -73416036001290592/19595533242629369747791401605606558418088927130487463844933662202465281465266200982457647235235528838735010358900495684567911298014908298340170885513171109743249504533143507682501017145381579984990109696) x (if (<=.f64 x 8308085530468245/1202453802380202612679414065556140558016349465041059773802132977424491020858679523053413887173001575952350707712) (/.f64 y z) x))))
(if (<=.f64 x -200939127817254227338574003738589591712430104972236297407440986546432890449226406754779136) x (if (<=.f64 x -15706951957736126/79228162514264337593543950336) (/.f64 y z) (if (<=.f64 x -73416036001290592/19595533242629369747791401605606558418088927130487463844933662202465281465266200982457647235235528838735010358900495684567911298014908298340170885513171109743249504533143507682501017145381579984990109696) x (if (<=.f64 x 8308085530468245/1202453802380202612679414065556140558016349465041059773802132977424491020858679523053413887173001575952350707712) (/.f64 y z) x))))
x
Outputs
(+.f64 x (/.f64 (-.f64 y x) z))
(if (<=.f64 x -100000000000000002021887912715594698857609632321435774113777685620800400499816430935869782753280) (-.f64 x (/.f64 x z)) (if (<=.f64 x -15706951957736126/79228162514264337593543950336) (/.f64 (-.f64 y x) z) (if (<=.f64 x -73416036001290592/19595533242629369747791401605606558418088927130487463844933662202465281465266200982457647235235528838735010358900495684567911298014908298340170885513171109743249504533143507682501017145381579984990109696) (-.f64 x (/.f64 x z)) (if (<=.f64 x 8308085530468245/1202453802380202612679414065556140558016349465041059773802132977424491020858679523053413887173001575952350707712) (/.f64 (-.f64 y x) z) (-.f64 x (/.f64 x z))))))
(if (<=.f64 x -100000000000000002021887912715594698857609632321435774113777685620800400499816430935869782753280) (-.f64 x (/.f64 x z)) (if (<=.f64 x -7853475978868063/39614081257132168796771975168) (/.f64 (-.f64 y x) z) (if (<=.f64 x -2294251125040331/612360413832167804618481300175204950565278972827733245154176943827040045789568780701801476101110276210469073715640490142747228062965884323130340172286597179476547016660734615078156785793174374530940928) (-.f64 x (/.f64 x z)) (if (<=.f64 x 8308085530468245/1202453802380202612679414065556140558016349465041059773802132977424491020858679523053413887173001575952350707712) (/.f64 (-.f64 y x) z) (-.f64 x (/.f64 x z))))))
(if (<=.f64 z -7532411683885925987295443288064) x (if (<=.f64 z 42465778769890212056906622172135424) (/.f64 (-.f64 y x) z) (if (<=.f64 z 804944512702983915312197134528887956830560579631320007303801864192) x (if (<=.f64 z 3120972819495425044419106781769239848350697234162676796361654571600886081025539744852869120) (/.f64 y z) x))))
(if (<=.f64 x -345115143556394134036405373408681897777227266380306915276213236704481073130349076372828989685760) x (if (<=.f64 x -8298698355421266944/79228162514264337593543950336) (/.f64 (neg.f64 x) z) (if (<=.f64 x -73416036001290592/19595533242629369747791401605606558418088927130487463844933662202465281465266200982457647235235528838735010358900495684567911298014908298340170885513171109743249504533143507682501017145381579984990109696) x (if (<=.f64 x 8308085530468245/1202453802380202612679414065556140558016349465041059773802132977424491020858679523053413887173001575952350707712) (/.f64 y z) x))))
(if (<=.f64 x -345115143556394134036405373408681897777227266380306915276213236704481073130349076372828989685760) x (if (<=.f64 x -8104197612716081/77371252455336267181195264) (/.f64 (neg.f64 x) z) (if (<=.f64 x -2294251125040331/612360413832167804618481300175204950565278972827733245154176943827040045789568780701801476101110276210469073715640490142747228062965884323130340172286597179476547016660734615078156785793174374530940928) x (if (<=.f64 x 8308085530468245/1202453802380202612679414065556140558016349465041059773802132977424491020858679523053413887173001575952350707712) (/.f64 y z) x))))
(if (<=.f64 x -200939127817254227338574003738589591712430104972236297407440986546432890449226406754779136) x (if (<=.f64 x -15706951957736126/79228162514264337593543950336) (/.f64 y z) (if (<=.f64 x -73416036001290592/19595533242629369747791401605606558418088927130487463844933662202465281465266200982457647235235528838735010358900495684567911298014908298340170885513171109743249504533143507682501017145381579984990109696) x (if (<=.f64 x 8308085530468245/1202453802380202612679414065556140558016349465041059773802132977424491020858679523053413887173001575952350707712) (/.f64 y z) x))))
(if (<=.f64 x -200939127817254227338574003738589591712430104972236297407440986546432890449226406754779136) x (if (<=.f64 x -7853475978868063/39614081257132168796771975168) (/.f64 y z) (if (<=.f64 x -2294251125040331/612360413832167804618481300175204950565278972827733245154176943827040045789568780701801476101110276210469073715640490142747228062965884323130340172286597179476547016660734615078156785793174374530940928) x (if (<=.f64 x 8308085530468245/1202453802380202612679414065556140558016349465041059773802132977424491020858679523053413887173001575952350707712) (/.f64 y z) x))))
x
Compiler

Compiled 145 to 80 computations (44.8% saved)

soundness0.0ms (0%)

end188.0ms (3.9%)

Compiler

Compiled 130 to 59 computations (54.6% saved)

Profiling

Loading profile data...