Details

Time bar (total: 3.9s)

analyze590.0ms (15%)

Algorithm
search
egg-herbie
Rules
824×div-sub_binary64
752×sub-neg_binary64
680×unsub-neg_binary64
566×associate-/l/_binary64
383×distribute-rgt-out--_binary64
378×neg-mul-1_binary64
314×distribute-rgt-neg-in_binary64
282×distribute-lft-neg-in_binary64
272×*-commutative_binary64
271×neg-sub0_binary64
245×distribute-rgt-out_binary64
243×distribute-lft-neg-out_binary64
232×distribute-rgt-neg-out_binary64
230×distribute-frac-neg_binary64
214×distribute-neg-frac_binary64
184×+-commutative_binary64
176×distribute-neg-out_binary64
169×associate-+l-_binary64
152×times-frac_binary64
149×distribute-rgt-in_binary64 associate--r-_binary64
146×associate--l-_binary64
122×associate-/r*_binary64
113×distribute-neg-in_binary64
112×associate-/r/_binary64
104×associate-*l/_binary64 associate--r+_binary64
95×remove-double-neg_binary64
78×distribute-lft-in_binary64
72×cancel-sign-sub-inv_binary64
62×associate-/l*_binary64
60×associate--l+_binary64
51×/-rgt-identity_binary64
50×associate-*r*_binary64
49×associate-+r+_binary64
48×distribute-rgt1-in_binary64
47×distribute-lft1-in_binary64
44×associate-*r/_binary64
34×cancel-sign-sub_binary64
32×sub0-neg_binary64
30×mul0-rgt_binary64
28×associate-+l+_binary64
27×associate-*l*_binary64 associate-+r-_binary64
25×*-lft-identity_binary64
24×*-rgt-identity_binary64
18×div0_binary64
16×mul0-lft_binary64
12×distribute-lft-out--_binary64
--rgt-identity_binary64
mul-1-neg_binary64 +-rgt-identity_binary64
*-inverses_binary64 remove-double-div_binary64
sqr-neg_binary64 +-lft-identity_binary64
1-exp_binary64 distribute-lft-out_binary64
not-true not-false not-not not-and not-or and-true-l and-true-r and-false-l and-false-r and-same or-true-l or-true-r or-false-l or-false-r or-same erfc-erf_binary64 erf-erfc_binary64 erf-odd_binary64 if-if-and-not_binary64 if-if-and_binary64 if-if-or-not_binary64 if-if-or_binary64 if-not_binary64 if-same_binary64 if-false_binary64 if-true_binary64 not-gte_binary64 not-lte_binary64 not-gt_binary64 not-lt_binary64 gte-same_binary64 lte-same_binary64 gt-same_binary64 lt-same_binary64 sinh---cosh_binary64 sinh-+-cosh_binary64 sinh-cosh_binary64 tanh-def-c_binary64 tanh-def-b_binary64 tanh-def-a_binary64 cosh-def_binary64 sinh-def_binary64 tan-neg_binary64 cos-neg_binary64 sin-neg_binary64 tan-0_binary64 cos-0_binary64 sin-0_binary64 hang-m-tan_binary64 hang-p-tan_binary64 hang-m0-tan_binary64 hang-p0-tan_binary64 hang-0m-tan_binary64 hang-0p-tan_binary64 tan-+PI/2_binary64 tan-+PI_binary64 tan-PI_binary64 tan-PI/3_binary64 tan-PI/4_binary64 tan-PI/6_binary64 cos-+PI/2_binary64 cos-+PI_binary64 cos-PI_binary64 cos-PI/2_binary64 cos-PI/3_binary64 cos-PI/4_binary64 cos-PI/6_binary64 sin-+PI/2_binary64 sin-+PI_binary64 sin-PI_binary64 sin-PI/2_binary64 sin-PI/3_binary64 sin-PI/4_binary64 sin-PI/6_binary64 sub-1-sin_binary64 sub-1-cos_binary64 -1-add-sin_binary64 -1-add-cos_binary64 1-sub-sin_binary64 1-sub-cos_binary64 cos-sin-sum_binary64 log-E_binary64 log-pow_binary64 log-rec_binary64 log-div_binary64 log-prod_binary64 pow-base-0_binary64 unpow1/3_binary64 unpow3_binary64 unpow2_binary64 unpow1/2_binary64 pow-plus_binary64 exp-to-pow_binary64 pow-base-1_binary64 unpow0_binary64 unpow1_binary64 unpow-1_binary64 exp-lft-cube_binary64 exp-lft-sqr_binary64 exp-cbrt_binary64 exp-sqrt_binary64 exp-prod_binary64 div-exp_binary64 rec-exp_binary64 prod-exp_binary64 exp-diff_binary64 exp-neg_binary64 exp-sum_binary64 e-exp-1_binary64 exp-1-e_binary64 exp-0_binary64 rem-log-exp_binary64 rem-exp-log_binary64 cube-unmult_binary64 cube-mult_binary64 cube-div_binary64 cube-prod_binary64 cube-neg_binary64 rem-3cbrt-rft_binary64 rem-3cbrt-lft_binary64 rem-cbrt-cube_binary64 rem-cube-cbrt_binary64 sqr-abs_binary64 rem-sqrt-square_binary64 rem-square-sqrt_binary64 +-inverses_binary64 lft-mult-inverse_binary64 rgt-mult-inverse_binary64 pow-sqr_binary64 sqr-pow_binary64 difference-of-sqr--1_binary64 difference-of-sqr-1_binary64 difference-of-squares_binary64 unswap-sqr_binary64 swap-sqr_binary64 count-2_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02052
13552
26952
311752
418852
541752
667952
7145852
8284152
9293152
10390452
11386252
12393552
13400352
14494952
15489052
033
133
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
9.4%90.5%0.1%7
14%85.8%0.1%8
21.1%78%0.9%9
37.3%60.3%2.5%10
39.7%56.1%4.2%11
45.6%48.7%5.7%12
55.9%35.1%8.9%13
57.6%32.1%10.3%14
Compiler

Compiled 10 to 8 computations (20% saved)

sample20.0ms (0.5%)

Algorithm
intervals
Results
8.0ms256×body128valid
1.0ms33×body128invalid
Compiler

Compiled 19 to 18 computations (5.3% saved)

simplify354.0ms (9%)

Algorithm
egg-herbie
Rules
2125×div-sub_binary64
1879×associate-/l/_binary64
704×sub-neg_binary64
541×unsub-neg_binary64
510×distribute-rgt-in_binary64
492×distribute-lft-in_binary64
365×associate-/l*_binary64
334×distribute-neg-frac_binary64
280×*-commutative_binary64
274×distribute-rgt-neg-in_binary64
265×neg-mul-1_binary64
259×neg-sub0_binary64
256×distribute-rgt-neg-out_binary64
214×associate-/r/_binary64
186×distribute-lft-neg-out_binary64
174×distribute-lft-neg-in_binary64
173×cancel-sign-sub-inv_binary64
161×distribute-frac-neg_binary64
151×associate-/r*_binary64
127×times-frac_binary64
124×associate--r+_binary64
118×associate-*l*_binary64
115×+-commutative_binary64
102×div0_binary64
93×cancel-sign-sub_binary64
89×associate-*r*_binary64
86×mul0-rgt_binary64
84×distribute-rgt-out--_binary64
81×mul0-lft_binary64
75×associate-*l/_binary64
68×distribute-lft-out_binary64
67×distribute-lft-out--_binary64
64×associate-*r/_binary64
49×remove-double-div_binary64
48×remove-double-neg_binary64
47×distribute-neg-in_binary64
43×distribute-rgt-out_binary64
41×*-lft-identity_binary64
39×associate--r-_binary64
28×associate-+r-_binary64
27×distribute-neg-out_binary64 associate-+l-_binary64
26×associate--l-_binary64
22×/-rgt-identity_binary64 associate--l+_binary64
21×associate-+r+_binary64
19×associate-+l+_binary64
16×sub0-neg_binary64
15×--rgt-identity_binary64
14×*-rgt-identity_binary64
+-lft-identity_binary64 distribute-rgt1-in_binary64
mul-1-neg_binary64 +-rgt-identity_binary64 distribute-lft1-in_binary64
sqr-neg_binary64 swap-sqr_binary64
1-exp_binary64 *-inverses_binary64
not-true not-false not-not not-and not-or and-true-l and-true-r and-false-l and-false-r and-same or-true-l or-true-r or-false-l or-false-r or-same erfc-erf_binary64 erf-erfc_binary64 erf-odd_binary64 if-if-and-not_binary64 if-if-and_binary64 if-if-or-not_binary64 if-if-or_binary64 if-not_binary64 if-same_binary64 if-false_binary64 if-true_binary64 not-gte_binary64 not-lte_binary64 not-gt_binary64 not-lt_binary64 gte-same_binary64 lte-same_binary64 gt-same_binary64 lt-same_binary64 sinh---cosh_binary64 sinh-+-cosh_binary64 sinh-cosh_binary64 tanh-def-c_binary64 tanh-def-b_binary64 tanh-def-a_binary64 cosh-def_binary64 sinh-def_binary64 tan-neg_binary64 cos-neg_binary64 sin-neg_binary64 tan-0_binary64 cos-0_binary64 sin-0_binary64 hang-m-tan_binary64 hang-p-tan_binary64 hang-m0-tan_binary64 hang-p0-tan_binary64 hang-0m-tan_binary64 hang-0p-tan_binary64 tan-+PI/2_binary64 tan-+PI_binary64 tan-PI_binary64 tan-PI/3_binary64 tan-PI/4_binary64 tan-PI/6_binary64 cos-+PI/2_binary64 cos-+PI_binary64 cos-PI_binary64 cos-PI/2_binary64 cos-PI/3_binary64 cos-PI/4_binary64 cos-PI/6_binary64 sin-+PI/2_binary64 sin-+PI_binary64 sin-PI_binary64 sin-PI/2_binary64 sin-PI/3_binary64 sin-PI/4_binary64 sin-PI/6_binary64 sub-1-sin_binary64 sub-1-cos_binary64 -1-add-sin_binary64 -1-add-cos_binary64 1-sub-sin_binary64 1-sub-cos_binary64 cos-sin-sum_binary64 log-E_binary64 log-pow_binary64 log-rec_binary64 log-div_binary64 log-prod_binary64 pow-base-0_binary64 unpow1/3_binary64 unpow3_binary64 unpow2_binary64 unpow1/2_binary64 pow-plus_binary64 exp-to-pow_binary64 pow-base-1_binary64 unpow0_binary64 unpow1_binary64 unpow-1_binary64 exp-lft-cube_binary64 exp-lft-sqr_binary64 exp-cbrt_binary64 exp-sqrt_binary64 exp-prod_binary64 div-exp_binary64 rec-exp_binary64 prod-exp_binary64 exp-diff_binary64 exp-neg_binary64 exp-sum_binary64 e-exp-1_binary64 exp-1-e_binary64 exp-0_binary64 rem-log-exp_binary64 rem-exp-log_binary64 cube-unmult_binary64 cube-mult_binary64 cube-div_binary64 cube-prod_binary64 cube-neg_binary64 rem-3cbrt-rft_binary64 rem-3cbrt-lft_binary64 rem-cbrt-cube_binary64 rem-cube-cbrt_binary64 sqr-abs_binary64 rem-sqrt-square_binary64 rem-square-sqrt_binary64 +-inverses_binary64 lft-mult-inverse_binary64 rgt-mult-inverse_binary64 pow-sqr_binary64 sqr-pow_binary64 difference-of-sqr--1_binary64 difference-of-sqr-1_binary64 difference-of-squares_binary64 unswap-sqr_binary64 count-2_binary64
Counts
1 → 0
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0813
11213
22313
34213
46613
510813
617513
736113
886113
9203813
10237113
11251013
12283913
13300713
14307913
15357713
16320113
17320113
18334113
19336113
20336113
21434113
22349313
23349313
24349313
25349313
26433213
27565913

prune1.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done000
Total011
Error
8.1b
Counts
1 → 1
Compiler

Compiled 9 to 7 computations (22.2% saved)

localize6.0ms (0.2%)

Local error

Found 3 expressions with local error:

0.0b
(+.f64 x (*.f64 y (-.f64 z x)))
0.0b
(*.f64 y (-.f64 z x))
7.6b
(/.f64 (+.f64 x (*.f64 y (-.f64 z x))) z)

rewrite112.0ms (2.8%)

Algorithm
rewrite-expression-head
Error
8.0b
Rules
21×add-sqr-sqrt_binary64
19×*-un-lft-identity_binary64
17×add-cube-cbrt_binary64
12×cancel-sign-sub-inv_binary64
times-frac_binary64
distribute-rgt-in_binary64 distribute-lft-in_binary64 associate-+r+_binary64
add-exp-log_binary64 add-cbrt-cube_binary64
pow1_binary64 add-log-exp_binary64 associate-*r*_binary64
sub-neg_binary64
associate-/l*_binary64 associate-/r*_binary64 associate-*l*_binary64
flip3-+_binary64 associate-/l/_binary64 flip-+_binary64 associate-*r/_binary64
div-exp_binary64 cbrt-undiv_binary64 frac-2neg_binary64 clear-num_binary64 div-inv_binary64 pow-prod-down_binary64 prod-exp_binary64 cbrt-unprod_binary64 unswap-sqr_binary64 flip3--_binary64 flip--_binary64 difference-of-squares_binary64 distribute-lft-out--_binary64 *-commutative_binary64 sum-log_binary64 +-commutative_binary64
Counts
3 → 78
Calls

3 calls:

7.0ms
(*.f64 y (-.f64 z x))
5.0ms
(/.f64 (+.f64 x (*.f64 y (-.f64 z x))) z)
4.0ms
(+.f64 x (*.f64 y (-.f64 z x)))
Compiler

Compiled 1311 to 312 computations (76.2% saved)

series118.0ms (3%)

Error
0.3b
Counts
3 → 51
Calls

3 calls:

43.0ms
(/.f64 (+.f64 x (*.f64 y (-.f64 z x))) z)
34.0ms
(+.f64 x (*.f64 y (-.f64 z x)))
26.0ms
(*.f64 y (-.f64 z x))
Compiler

Compiled 867 to 627 computations (27.7% saved)

simplify92.0ms (2.3%)

Algorithm
egg-herbie
Rules
532×distribute-rgt-in_binary64
514×distribute-lft-in_binary64
432×div-sub_binary64
290×unsub-neg_binary64
245×*-commutative_binary64
170×exp-prod_binary64
169×sub-neg_binary64
156×associate-/l*_binary64
110×neg-sub0_binary64
103×cancel-sign-sub-inv_binary64
102×neg-mul-1_binary64
90×associate-*l*_binary64
79×associate-*l/_binary64
75×associate-*r*_binary64
69×exp-sum_binary64 distribute-rgt-neg-in_binary64 associate-+l+_binary64
66×associate-*r/_binary64
60×associate-+r+_binary64
51×+-commutative_binary64
48×distribute-lft-neg-in_binary64 associate-/r*_binary64
46×associate-/l/_binary64
44×distribute-rgt-neg-out_binary64 distribute-lft-neg-out_binary64
43×associate-/r/_binary64
37×associate--r+_binary64
36×exp-diff_binary64 times-frac_binary64
31×distribute-neg-in_binary64
23×cube-prod_binary64 associate-+l-_binary64
21×associate-+r-_binary64
20×sqr-pow_binary64
19×associate--l+_binary64
18×*-rgt-identity_binary64 *-lft-identity_binary64 distribute-rgt-out_binary64
17×log-prod_binary64
12×unswap-sqr_binary64
11×distribute-rgt-out--_binary64
exp-neg_binary64 sqr-neg_binary64 mul-1-neg_binary64 distribute-neg-frac_binary64 distribute-lft-out_binary64 associate--r-_binary64
unpow3_binary64 /-rgt-identity_binary64
swap-sqr_binary64 cancel-sign-sub_binary64
log-div_binary64 cube-unmult_binary64 difference-of-squares_binary64 distribute-lft-out--_binary64 associate--l-_binary64
cube-mult_binary64 remove-double-neg_binary64
cube-div_binary64 cube-neg_binary64 +-rgt-identity_binary64 distribute-rgt1-in_binary64
unpow1/2_binary64 prod-exp_binary64 1-exp_binary64 exp-1-e_binary64 rem-3cbrt-lft_binary64 rem-sqrt-square_binary64 rem-square-sqrt_binary64 sub0-neg_binary64 pow-sqr_binary64 distribute-lft1-in_binary64
not-true not-false not-not not-and not-or and-true-l and-true-r and-false-l and-false-r and-same or-true-l or-true-r or-false-l or-false-r or-same erfc-erf_binary64 erf-erfc_binary64 erf-odd_binary64 if-if-and-not_binary64 if-if-and_binary64 if-if-or-not_binary64 if-if-or_binary64 if-not_binary64 if-same_binary64 if-false_binary64 if-true_binary64 not-gte_binary64 not-lte_binary64 not-gt_binary64 not-lt_binary64 gte-same_binary64 lte-same_binary64 gt-same_binary64 lt-same_binary64 sinh---cosh_binary64 sinh-+-cosh_binary64 sinh-cosh_binary64 tanh-def-c_binary64 tanh-def-b_binary64 tanh-def-a_binary64 cosh-def_binary64 sinh-def_binary64 tan-neg_binary64 cos-neg_binary64 sin-neg_binary64 tan-0_binary64 cos-0_binary64 sin-0_binary64 hang-m-tan_binary64 hang-p-tan_binary64 hang-m0-tan_binary64 hang-p0-tan_binary64 hang-0m-tan_binary64 hang-0p-tan_binary64 tan-+PI/2_binary64 tan-+PI_binary64 tan-PI_binary64 tan-PI/3_binary64 tan-PI/4_binary64 tan-PI/6_binary64 cos-+PI/2_binary64 cos-+PI_binary64 cos-PI_binary64 cos-PI/2_binary64 cos-PI/3_binary64 cos-PI/4_binary64 cos-PI/6_binary64 sin-+PI/2_binary64 sin-+PI_binary64 sin-PI_binary64 sin-PI/2_binary64 sin-PI/3_binary64 sin-PI/4_binary64 sin-PI/6_binary64 sub-1-sin_binary64 sub-1-cos_binary64 -1-add-sin_binary64 -1-add-cos_binary64 1-sub-sin_binary64 1-sub-cos_binary64 cos-sin-sum_binary64 log-E_binary64 log-pow_binary64 log-rec_binary64 pow-base-0_binary64 unpow1/3_binary64 unpow2_binary64 pow-plus_binary64 exp-to-pow_binary64 pow-base-1_binary64 unpow0_binary64 unpow1_binary64 unpow-1_binary64 exp-lft-cube_binary64 exp-lft-sqr_binary64 exp-cbrt_binary64 exp-sqrt_binary64 div-exp_binary64 rec-exp_binary64 e-exp-1_binary64 exp-0_binary64 rem-log-exp_binary64 rem-exp-log_binary64 rem-3cbrt-rft_binary64 rem-cbrt-cube_binary64 rem-cube-cbrt_binary64 sqr-abs_binary64 --rgt-identity_binary64 +-lft-identity_binary64 mul0-rgt_binary64 mul0-lft_binary64 div0_binary64 *-inverses_binary64 +-inverses_binary64 lft-mult-inverse_binary64 rgt-mult-inverse_binary64 remove-double-div_binary64 difference-of-sqr--1_binary64 difference-of-sqr-1_binary64 distribute-frac-neg_binary64 distribute-neg-out_binary64 count-2_binary64
Counts
129 → 79
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01521658
13531556
211161554
334371554
450181554

prune31.0ms (0.8%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New77279
Fresh000
Picked101
Done000
Total78280
Error
0.0b
Counts
80 → 2
Compiler

Compiled 438 to 141 computations (67.8% saved)

localize6.0ms (0.2%)

Local error

Found 1 expressions with local error:

1.6b
(*.f64 (/.f64 x z) (-.f64 1 y))

rewrite62.0ms (1.6%)

Algorithm
rewrite-expression-head
Error
0b
Rules
19×add-sqr-sqrt_binary64
14×*-un-lft-identity_binary64
13×associate-*l*_binary64
11×add-cube-cbrt_binary64
10×times-frac_binary64
add-exp-log_binary64 add-cbrt-cube_binary64 cancel-sign-sub-inv_binary64 associate-*r*_binary64
distribute-rgt-in_binary64 distribute-lft-in_binary64
pow1_binary64
prod-exp_binary64 cbrt-unprod_binary64 flip3--_binary64 frac-times_binary64 flip--_binary64 unswap-sqr_binary64 sub-neg_binary64 associate-*r/_binary64 difference-of-squares_binary64
pow-prod-down_binary64 div-exp_binary64 add-log-exp_binary64 cbrt-undiv_binary64 associate-*l/_binary64 div-inv_binary64 distribute-lft-out--_binary64 *-commutative_binary64
Counts
1 → 47
Calls

1 calls:

14.0ms
(*.f64 (/.f64 x z) (-.f64 1 y))
Compiler

Compiled 761 to 384 computations (49.5% saved)

series41.0ms (1%)

Error
0.0b
Counts
1 → 12
Calls

1 calls:

31.0ms
(*.f64 (/.f64 x z) (-.f64 1 y))
Compiler

Compiled 255 to 190 computations (25.5% saved)

simplify82.0ms (2.1%)

Algorithm
egg-herbie
Rules
987×div-sub_binary64
277×exp-prod_binary64
262×times-frac_binary64
256×unsub-neg_binary64
252×associate-*l/_binary64
235×distribute-rgt-neg-out_binary64
234×distribute-lft-neg-out_binary64
229×associate-/l*_binary64
224×distribute-rgt-in_binary64
211×distribute-lft-in_binary64
200×associate-*r/_binary64
165×*-commutative_binary64
135×associate-/r*_binary64
87×neg-sub0_binary64
82×neg-mul-1_binary64
81×associate-*l*_binary64
80×cube-prod_binary64
76×associate-+l-_binary64
74×exp-diff_binary64
71×log-prod_binary64
67×associate-*r*_binary64
66×distribute-frac-neg_binary64
64×*-lft-identity_binary64
63×distribute-rgt-neg-in_binary64
61×sub-neg_binary64
60×/-rgt-identity_binary64
57×exp-neg_binary64
54×*-rgt-identity_binary64
53×distribute-lft-neg-in_binary64
52×exp-sum_binary64
48×log-div_binary64 cancel-sign-sub-inv_binary64
42×cube-div_binary64
34×sqr-pow_binary64 associate-/r/_binary64
30×swap-sqr_binary64
27×mul0-rgt_binary64 mul0-lft_binary64
25×sqr-neg_binary64
22×cube-neg_binary64 +-commutative_binary64
19×unpow3_binary64
17×unswap-sqr_binary64
16×cube-mult_binary64
15×distribute-neg-out_binary64 distribute-rgt-out_binary64
14×associate--l+_binary64 associate--r+_binary64
13×associate-/l/_binary64
12×distribute-neg-frac_binary64 distribute-rgt-out--_binary64
11×log-rec_binary64 associate-+l+_binary64
cube-unmult_binary64 associate--l-_binary64
distribute-neg-in_binary64
pow-sqr_binary64 distribute-rgt1-in_binary64 associate-+r-_binary64 associate-+r+_binary64
mul-1-neg_binary64 sub0-neg_binary64 +-rgt-identity_binary64
rem-sqrt-square_binary64
unpow1/2_binary64 remove-double-neg_binary64 div0_binary64 difference-of-sqr-1_binary64 associate--r-_binary64
distribute-lft-out_binary64
1-exp_binary64 exp-1-e_binary64 rem-3cbrt-lft_binary64 rem-square-sqrt_binary64 difference-of-sqr--1_binary64 cancel-sign-sub_binary64 distribute-lft-out--_binary64 count-2_binary64
not-true not-false not-not not-and not-or and-true-l and-true-r and-false-l and-false-r and-same or-true-l or-true-r or-false-l or-false-r or-same erfc-erf_binary64 erf-erfc_binary64 erf-odd_binary64 if-if-and-not_binary64 if-if-and_binary64 if-if-or-not_binary64 if-if-or_binary64 if-not_binary64 if-same_binary64 if-false_binary64 if-true_binary64 not-gte_binary64 not-lte_binary64 not-gt_binary64 not-lt_binary64 gte-same_binary64 lte-same_binary64 gt-same_binary64 lt-same_binary64 sinh---cosh_binary64 sinh-+-cosh_binary64 sinh-cosh_binary64 tanh-def-c_binary64 tanh-def-b_binary64 tanh-def-a_binary64 cosh-def_binary64 sinh-def_binary64 tan-neg_binary64 cos-neg_binary64 sin-neg_binary64 tan-0_binary64 cos-0_binary64 sin-0_binary64 hang-m-tan_binary64 hang-p-tan_binary64 hang-m0-tan_binary64 hang-p0-tan_binary64 hang-0m-tan_binary64 hang-0p-tan_binary64 tan-+PI/2_binary64 tan-+PI_binary64 tan-PI_binary64 tan-PI/3_binary64 tan-PI/4_binary64 tan-PI/6_binary64 cos-+PI/2_binary64 cos-+PI_binary64 cos-PI_binary64 cos-PI/2_binary64 cos-PI/3_binary64 cos-PI/4_binary64 cos-PI/6_binary64 sin-+PI/2_binary64 sin-+PI_binary64 sin-PI_binary64 sin-PI/2_binary64 sin-PI/3_binary64 sin-PI/4_binary64 sin-PI/6_binary64 sub-1-sin_binary64 sub-1-cos_binary64 -1-add-sin_binary64 -1-add-cos_binary64 1-sub-sin_binary64 1-sub-cos_binary64 cos-sin-sum_binary64 log-E_binary64 log-pow_binary64 pow-base-0_binary64 unpow1/3_binary64 unpow2_binary64 pow-plus_binary64 exp-to-pow_binary64 pow-base-1_binary64 unpow0_binary64 unpow1_binary64 unpow-1_binary64 exp-lft-cube_binary64 exp-lft-sqr_binary64 exp-cbrt_binary64 exp-sqrt_binary64 div-exp_binary64 rec-exp_binary64 prod-exp_binary64 e-exp-1_binary64 exp-0_binary64 rem-log-exp_binary64 rem-exp-log_binary64 rem-3cbrt-rft_binary64 rem-cbrt-cube_binary64 rem-cube-cbrt_binary64 sqr-abs_binary64 --rgt-identity_binary64 +-lft-identity_binary64 *-inverses_binary64 +-inverses_binary64 lft-mult-inverse_binary64 rgt-mult-inverse_binary64 remove-double-div_binary64 difference-of-squares_binary64 distribute-lft1-in_binary64
Counts
59 → 46
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0118793
1308727
2838727
32592727
44367727
56384727

prune34.0ms (0.9%)

Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New45146
Fresh011
Picked011
Done000
Total45348
Error
0b
Counts
48 → 3
Compiler

Compiled 483 to 253 computations (47.6% saved)

localize6.0ms (0.2%)

Local error

Found 2 expressions with local error:

0.0b
(/.f64 (-.f64 1 y) z)
4.0b
(*.f64 x (/.f64 (-.f64 1 y) z))

rewrite89.0ms (2.2%)

Algorithm
rewrite-expression-head
Error
0b
Rules
50×add-sqr-sqrt_binary64
45×*-un-lft-identity_binary64
37×times-frac_binary64
24×add-cube-cbrt_binary64
22×associate-*r*_binary64
14×difference-of-squares_binary64
add-exp-log_binary64 add-cbrt-cube_binary64
distribute-lft-out--_binary64
associate-/l*_binary64
pow1_binary64
associate-*l*_binary64 associate-/r*_binary64
div-exp_binary64 prod-exp_binary64 add-log-exp_binary64 cbrt-unprod_binary64 cbrt-undiv_binary64 unswap-sqr_binary64 div-inv_binary64 associate-/l/_binary64
pow-prod-down_binary64 associate-*r/_binary64 *-commutative_binary64 frac-2neg_binary64 div-sub_binary64 clear-num_binary64 flip3--_binary64 flip--_binary64
Counts
2 → 83
Calls

2 calls:

11.0ms
(*.f64 x (/.f64 (-.f64 1 y) z))
6.0ms
(/.f64 (-.f64 1 y) z)
Compiler

Compiled 1280 to 755 computations (41% saved)

series55.0ms (1.4%)

Error
0b
Counts
2 → 21
Calls

2 calls:

30.0ms
(*.f64 x (/.f64 (-.f64 1 y) z))
18.0ms
(/.f64 (-.f64 1 y) z)
Compiler

Compiled 451 to 345 computations (23.5% saved)

simplify88.0ms (2.2%)

Algorithm
egg-herbie
Rules
385×distribute-frac-neg_binary64
357×associate-*l*_binary64
350×div-sub_binary64
310×associate-*r*_binary64
309×times-frac_binary64
281×associate-/l*_binary64
272×associate-*l/_binary64 associate-*r/_binary64
241×distribute-rgt-in_binary64
232×distribute-lft-in_binary64
131×associate-/r*_binary64
128×neg-sub0_binary64
106×*-commutative_binary64
103×associate-/l/_binary64
93×exp-prod_binary64
92×unsub-neg_binary64
87×log-prod_binary64
82×sub-neg_binary64
81×neg-mul-1_binary64
78×associate-/r/_binary64
77×cube-prod_binary64
55×*-lft-identity_binary64
54×distribute-rgt-neg-out_binary64
49×log-div_binary64
47×distribute-lft-neg-out_binary64
46×cube-div_binary64
44×*-rgt-identity_binary64
40×cancel-sign-sub-inv_binary64
37×swap-sqr_binary64
36×distribute-neg-frac_binary64
35×sqr-pow_binary64
31×/-rgt-identity_binary64 +-commutative_binary64
22×exp-sum_binary64 mul-1-neg_binary64
19×unswap-sqr_binary64
16×exp-diff_binary64
14×cube-neg_binary64 sqr-neg_binary64
12×distribute-rgt-neg-in_binary64
10×exp-neg_binary64 associate-+r-_binary64
distribute-lft-neg-in_binary64 associate-+r+_binary64
unpow3_binary64 associate-+l-_binary64 associate-+l+_binary64
log-rec_binary64 cube-unmult_binary64
+-rgt-identity_binary64 distribute-neg-in_binary64
cube-mult_binary64 remove-double-neg_binary64 remove-double-div_binary64 associate--r+_binary64
pow-sqr_binary64
div0_binary64 distribute-rgt1-in_binary64 distribute-rgt-out--_binary64 distribute-rgt-out_binary64
associate--l-_binary64 associate--l+_binary64
unpow1/2_binary64 1-exp_binary64 exp-1-e_binary64 sub0-neg_binary64 mul0-rgt_binary64 mul0-lft_binary64 associate--r-_binary64
not-true not-false not-not not-and not-or and-true-l and-true-r and-false-l and-false-r and-same or-true-l or-true-r or-false-l or-false-r or-same erfc-erf_binary64 erf-erfc_binary64 erf-odd_binary64 if-if-and-not_binary64 if-if-and_binary64 if-if-or-not_binary64 if-if-or_binary64 if-not_binary64 if-same_binary64 if-false_binary64 if-true_binary64 not-gte_binary64 not-lte_binary64 not-gt_binary64 not-lt_binary64 gte-same_binary64 lte-same_binary64 gt-same_binary64 lt-same_binary64 sinh---cosh_binary64 sinh-+-cosh_binary64 sinh-cosh_binary64 tanh-def-c_binary64 tanh-def-b_binary64 tanh-def-a_binary64 cosh-def_binary64 sinh-def_binary64 tan-neg_binary64 cos-neg_binary64 sin-neg_binary64 tan-0_binary64 cos-0_binary64 sin-0_binary64 hang-m-tan_binary64 hang-p-tan_binary64 hang-m0-tan_binary64 hang-p0-tan_binary64 hang-0m-tan_binary64 hang-0p-tan_binary64 tan-+PI/2_binary64 tan-+PI_binary64 tan-PI_binary64 tan-PI/3_binary64 tan-PI/4_binary64 tan-PI/6_binary64 cos-+PI/2_binary64 cos-+PI_binary64 cos-PI_binary64 cos-PI/2_binary64 cos-PI/3_binary64 cos-PI/4_binary64 cos-PI/6_binary64 sin-+PI/2_binary64 sin-+PI_binary64 sin-PI_binary64 sin-PI/2_binary64 sin-PI/3_binary64 sin-PI/4_binary64 sin-PI/6_binary64 sub-1-sin_binary64 sub-1-cos_binary64 -1-add-sin_binary64 -1-add-cos_binary64 1-sub-sin_binary64 1-sub-cos_binary64 cos-sin-sum_binary64 log-E_binary64 log-pow_binary64 pow-base-0_binary64 unpow1/3_binary64 unpow2_binary64 pow-plus_binary64 exp-to-pow_binary64 pow-base-1_binary64 unpow0_binary64 unpow1_binary64 unpow-1_binary64 exp-lft-cube_binary64 exp-lft-sqr_binary64 exp-cbrt_binary64 exp-sqrt_binary64 div-exp_binary64 rec-exp_binary64 prod-exp_binary64 e-exp-1_binary64 exp-0_binary64 rem-log-exp_binary64 rem-exp-log_binary64 rem-3cbrt-rft_binary64 rem-3cbrt-lft_binary64 rem-cbrt-cube_binary64 rem-cube-cbrt_binary64 sqr-abs_binary64 rem-sqrt-square_binary64 rem-square-sqrt_binary64 --rgt-identity_binary64 +-lft-identity_binary64 *-inverses_binary64 +-inverses_binary64 lft-mult-inverse_binary64 rgt-mult-inverse_binary64 difference-of-sqr--1_binary64 difference-of-sqr-1_binary64 difference-of-squares_binary64 cancel-sign-sub_binary64 distribute-neg-out_binary64 distribute-lft1-in_binary64 distribute-lft-out--_binary64 distribute-lft-out_binary64 count-2_binary64
Counts
104 → 54
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01251379
12951284
29231284
332891284
449791284

prune27.0ms (0.7%)

Pruning

3 alts after pruning (1 fresh and 2 done)

PrunedKeptTotal
New54054
Fresh011
Picked011
Done011
Total54357
Error
0b
Counts
57 → 3
Compiler

Compiled 495 to 289 computations (41.6% saved)

localize8.0ms (0.2%)

Local error

Found 4 expressions with local error:

0.1b
(/.f64 (sqrt.f64 (+.f64 x (*.f64 y (-.f64 z x)))) z)
0.2b
(*.f64 (sqrt.f64 (+.f64 x (*.f64 y (-.f64 z x)))) (/.f64 (sqrt.f64 (+.f64 x (*.f64 y (-.f64 z x)))) z))
2.4b
(sqrt.f64 (+.f64 x (*.f64 y (-.f64 z x))))
2.4b
(sqrt.f64 (+.f64 x (*.f64 y (-.f64 z x))))

rewrite101.0ms (2.6%)

Algorithm
rewrite-expression-head
Error
0b
Rules
54×add-sqr-sqrt_binary64
40×times-frac_binary64
36×add-cube-cbrt_binary64 *-un-lft-identity_binary64
35×sqrt-prod_binary64
22×associate-*r*_binary64
11×add-exp-log_binary64 add-cbrt-cube_binary64
10×sqrt-div_binary64
pow1_binary64
unswap-sqr_binary64 associate-*l*_binary64 associate-/l*_binary64
flip3-+_binary64 flip-+_binary64
add-log-exp_binary64
associate-/r*_binary64
pow1/2_binary64 sqrt-pow1_binary64 rem-sqrt-square_binary64 div-exp_binary64 prod-exp_binary64 cbrt-unprod_binary64 cbrt-undiv_binary64 frac-times_binary64 associate-*l/_binary64 div-inv_binary64 associate-/l/_binary64
pow-prod-down_binary64 associate-*r/_binary64 *-commutative_binary64 frac-2neg_binary64 clear-num_binary64
Counts
4 → 123
Calls

4 calls:

15.0ms
(*.f64 (sqrt.f64 (+.f64 x (*.f64 y (-.f64 z x)))) (/.f64 (sqrt.f64 (+.f64 x (*.f64 y (-.f64 z x)))) z))
5.0ms
(/.f64 (sqrt.f64 (+.f64 x (*.f64 y (-.f64 z x)))) z)
3.0ms
(sqrt.f64 (+.f64 x (*.f64 y (-.f64 z x))))
2.0ms
(sqrt.f64 (+.f64 x (*.f64 y (-.f64 z x))))
Compiler

Compiled 3409 to 394 computations (88.4% saved)

series263.0ms (6.7%)

Error
0b
Counts
4 → 63
Calls

4 calls:

70.0ms
(/.f64 (sqrt.f64 (+.f64 x (*.f64 y (-.f64 z x)))) z)
56.0ms
(sqrt.f64 (+.f64 x (*.f64 y (-.f64 z x))))
55.0ms
(sqrt.f64 (+.f64 x (*.f64 y (-.f64 z x))))
45.0ms
(*.f64 (sqrt.f64 (+.f64 x (*.f64 y (-.f64 z x)))) (/.f64 (sqrt.f64 (+.f64 x (*.f64 y (-.f64 z x)))) z))
Compiler

Compiled 4572 to 3047 computations (33.4% saved)

simplify179.0ms (4.5%)

Algorithm
egg-herbie
Rules
555×cancel-sign-sub-inv_binary64
462×times-frac_binary64
268×associate-*r*_binary64
265×sub-neg_binary64
230×neg-sub0_binary64
226×neg-mul-1_binary64
219×associate-*l*_binary64
195×*-commutative_binary64
170×distribute-rgt-neg-in_binary64
155×unsub-neg_binary64
153×distribute-lft-neg-in_binary64
118×+-commutative_binary64
113×distribute-neg-in_binary64
86×distribute-rgt-out_binary64
84×associate-/l*_binary64
81×unswap-sqr_binary64
68×sqr-pow_binary64 associate-+r+_binary64
66×associate-+l+_binary64
60×associate--l+_binary64
58×associate-*r/_binary64
54×associate-*l/_binary64
50×associate--r+_binary64
47×associate-/r*_binary64
40×div-sub_binary64
33×cube-prod_binary64
32×log-prod_binary64
28×*-rgt-identity_binary64
25×associate-/l/_binary64
23×*-lft-identity_binary64 distribute-rgt-out--_binary64
22×exp-prod_binary64
21×distribute-neg-frac_binary64 distribute-lft-neg-out_binary64
16×log-div_binary64 /-rgt-identity_binary64
15×distribute-rgt-in_binary64
14×distribute-lft-in_binary64 associate-/r/_binary64
13×rem-sqrt-square_binary64
12×swap-sqr_binary64
11×distribute-rgt-neg-out_binary64
10×unpow3_binary64 cube-div_binary64 remove-double-neg_binary64
pow-sqr_binary64
cube-unmult_binary64
cube-mult_binary64
mul-1-neg_binary64 distribute-lft-out_binary64
unpow1/2_binary64 pow-plus_binary64 div0_binary64
log-rec_binary64 unpow2_binary64 unpow1_binary64 difference-of-squares_binary64 associate-+r-_binary64
log-pow_binary64 rem-square-sqrt_binary64 distribute-rgt1-in_binary64 associate-+l-_binary64
1-exp_binary64 exp-1-e_binary64 +-rgt-identity_binary64 *-inverses_binary64 difference-of-sqr--1_binary64 distribute-lft-out--_binary64 count-2_binary64
not-true not-false not-not not-and not-or and-true-l and-true-r and-false-l and-false-r and-same or-true-l or-true-r or-false-l or-false-r or-same erfc-erf_binary64 erf-erfc_binary64 erf-odd_binary64 if-if-and-not_binary64 if-if-and_binary64 if-if-or-not_binary64 if-if-or_binary64 if-not_binary64 if-same_binary64 if-false_binary64 if-true_binary64 not-gte_binary64 not-lte_binary64 not-gt_binary64 not-lt_binary64 gte-same_binary64 lte-same_binary64 gt-same_binary64 lt-same_binary64 sinh---cosh_binary64 sinh-+-cosh_binary64 sinh-cosh_binary64 tanh-def-c_binary64 tanh-def-b_binary64 tanh-def-a_binary64 cosh-def_binary64 sinh-def_binary64 tan-neg_binary64 cos-neg_binary64 sin-neg_binary64 tan-0_binary64 cos-0_binary64 sin-0_binary64 hang-m-tan_binary64 hang-p-tan_binary64 hang-m0-tan_binary64 hang-p0-tan_binary64 hang-0m-tan_binary64 hang-0p-tan_binary64 tan-+PI/2_binary64 tan-+PI_binary64 tan-PI_binary64 tan-PI/3_binary64 tan-PI/4_binary64 tan-PI/6_binary64 cos-+PI/2_binary64 cos-+PI_binary64 cos-PI_binary64 cos-PI/2_binary64 cos-PI/3_binary64 cos-PI/4_binary64 cos-PI/6_binary64 sin-+PI/2_binary64 sin-+PI_binary64 sin-PI_binary64 sin-PI/2_binary64 sin-PI/3_binary64 sin-PI/4_binary64 sin-PI/6_binary64 sub-1-sin_binary64 sub-1-cos_binary64 -1-add-sin_binary64 -1-add-cos_binary64 1-sub-sin_binary64 1-sub-cos_binary64 cos-sin-sum_binary64 log-E_binary64 pow-base-0_binary64 unpow1/3_binary64 exp-to-pow_binary64 pow-base-1_binary64 unpow0_binary64 unpow-1_binary64 exp-lft-cube_binary64 exp-lft-sqr_binary64 exp-cbrt_binary64 exp-sqrt_binary64 div-exp_binary64 rec-exp_binary64 prod-exp_binary64 exp-diff_binary64 exp-neg_binary64 exp-sum_binary64 e-exp-1_binary64 exp-0_binary64 rem-log-exp_binary64 rem-exp-log_binary64 cube-neg_binary64 rem-3cbrt-rft_binary64 rem-3cbrt-lft_binary64 rem-cbrt-cube_binary64 rem-cube-cbrt_binary64 sqr-abs_binary64 sqr-neg_binary64 sub0-neg_binary64 --rgt-identity_binary64 +-lft-identity_binary64 mul0-rgt_binary64 mul0-lft_binary64 +-inverses_binary64 lft-mult-inverse_binary64 rgt-mult-inverse_binary64 remove-double-div_binary64 difference-of-sqr-1_binary64 cancel-sign-sub_binary64 distribute-frac-neg_binary64 distribute-neg-out_binary64 distribute-lft1-in_binary64 associate--r-_binary64 associate--l-_binary64
Counts
186 → 117
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
03195247
18224755
226104552
343454552
449534552

prune54.0ms (1.4%)

Pruning

3 alts after pruning (0 fresh and 3 done)

PrunedKeptTotal
New1170117
Fresh000
Picked011
Done022
Total1173120
Error
0b
Counts
120 → 3
Compiler

Compiled 2335 to 700 computations (70% saved)

regimes630.0ms (16%)

Accuracy

Total 0.0b remaining (55.6%)

Threshold costs 0.0b (55.6%)

Compiler

Compiled 7443 to 5138 computations (31% saved)

bsearch0.0ms (0%)

simplify4.0ms (0.1%)

Algorithm
egg-herbie
Rules
*-commutative_binary64 +-commutative_binary64
neg-sub0_binary64
neg-mul-1_binary64 sub-neg_binary64
distribute-rgt-neg-in_binary64
unsub-neg_binary64 distribute-lft-neg-in_binary64
1-exp_binary64 mul-1-neg_binary64 *-lft-identity_binary64 distribute-neg-frac_binary64 distribute-rgt-neg-out_binary64 distribute-lft-neg-out_binary64
not-true not-false not-not not-and not-or and-true-l and-true-r and-false-l and-false-r and-same or-true-l or-true-r or-false-l or-false-r or-same if-if-and-not_binary64 if-if-and_binary64 if-if-or-not_binary64 if-if-or_binary64 if-not_binary64 if-same_binary64 if-false_binary64 if-true_binary64 tan-0_binary64 cos-0_binary64 sin-0_binary64 unpow1_binary64 e-exp-1_binary64 exp-1-e_binary64 exp-0_binary64 sqr-abs_binary64 sqr-neg_binary64 /-rgt-identity_binary64 *-rgt-identity_binary64 remove-double-neg_binary64 sub0-neg_binary64 --rgt-identity_binary64 +-rgt-identity_binary64 +-lft-identity_binary64 cancel-sign-sub-inv_binary64 cancel-sign-sub_binary64 distribute-frac-neg_binary64 distribute-neg-out_binary64 distribute-neg-in_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01318
12118
22616
33216
44216
54616
64916
75016
84816

end1.0ms (0%)

Compiler

Compiled 11 to 7 computations (36.4% saved)

sample890.0ms (22.6%)

Algorithm
intervals
Results
254.0ms8000×body128valid
31.0ms1056×body128invalid
Compiler

Compiled 72 to 63 computations (12.5% saved)

Profiling

Loading profile data...