Details

Time bar (total: 33.1s)

analyze664.0ms (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
50%50%0.1%5
50%50%0.1%6
50%37.5%12.6%7
50%37.5%12.6%8
50%31.2%18.8%9
50%31.2%18.8%10
50%28.1%22%11
50%28.1%22%12
50%26.5%23.5%13
50%26.5%23.5%14
Compiler

Compiled 13 to 12 computations (7.7% saved)

sample367.0ms (1.1%)

Algorithm
intervals
Results
188.0ms72×body1024invalid
75.0ms158×body1024valid
63.0ms55×body512valid
9.0ms12×body2048valid
7.0ms35×body512invalid
3.0ms19×body256valid
2.0ms30×body128invalid
2.0ms13×body256invalid
1.0ms12×body128valid
Compiler

Compiled 25 to 25 computations (0% saved)

simplify734.0ms (2.2%)

Algorithm
egg-herbie
Rules
928×exp-prod_binary64_2517
631×distribute-lft-out--_binary64_2417
576×distribute-lft-out_binary64_2416
502×associate--l+_binary64_2402
434×associate--r+_binary64_2401
420×sub-neg_binary64_2458
360×associate-+l+_binary64_2398
179×cancel-sign-sub-inv_binary64_2431
130×distribute-rgt-in_binary64_2415
100×distribute-rgt1-in_binary64_2421
83×unsub-neg_binary64_2459
80×distribute-lft-in_binary64_2414
75×associate-/r/_binary64_2411
72×associate-/l*_binary64_2410
70×distribute-neg-in_binary64_2426 associate-*r*_binary64_2405
68×neg-sub0_binary64_2460
65×neg-mul-1_binary64_2461
62×associate-*l*_binary64_2406
61×associate-+l-_binary64_2400
55×exp-sum_binary64_2511 div-sub_binary64_2470
49×distribute-lft-neg-in_binary64_2422
48×distribute-rgt-neg-in_binary64_2423
47×associate--r-_binary64_2404 *-commutative_binary64_2396
43×distribute-lft-neg-out_binary64_2424
42×associate--l-_binary64_2403
39×sqr-pow_binary64_2437
32×distribute-neg-frac_binary64_2429
30×sub0-neg_binary64_2452 distribute-rgt-neg-out_binary64_2425
29×associate-+r-_binary64_2399
24×pow-sqr_binary64_2438
23×*-rgt-identity_binary64_2455
21×pow-plus_binary64_2528 distribute-neg-out_binary64_2427
20×+-inverses_binary64_2444
19×distribute-lft1-in_binary64_2420
18×*-lft-identity_binary64_2454
17×times-frac_binary64_2471
16×count-2_binary64_2413
14×unswap-sqr_binary64_2433
12×exp-diff_binary64_2513
11×+-lft-identity_binary64_2449
10×distribute-rgt-out_binary64_2418
associate-/r*_binary64_2409 associate-*l/_binary64_2408
exp-lft-sqr_binary64_2520 remove-double-neg_binary64_2453
associate-+r+_binary64_2397 +-commutative_binary64_2395
/-rgt-identity_binary64_2456 --rgt-identity_binary64_2451 associate-*r/_binary64_2407
mul0-rgt_binary64_2448 mul0-lft_binary64_2447 difference-of-squares_binary64_2434
pow-base-1_binary64_2525 exp-neg_binary64_2512
prod-exp_binary64_2514 cube-unmult_binary64_2502 +-rgt-identity_binary64_2450 div0_binary64_2446 difference-of-sqr-1_binary64_2435 swap-sqr_binary64_2432
unpow1/2_binary64_2529 div-exp_binary64_2516 exp-1-e_binary64_2508 exp-0_binary64_2507 cube-prod_binary64_2493 mul-1-neg_binary64_2457 *-inverses_binary64_2445 distribute-frac-neg_binary64_2428 associate-/l/_binary64_2412
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_2728 erf-erfc_binary64_2727 erf-odd_binary64_2726 if-if-and-not_binary64_2725 if-if-and_binary64_2724 if-if-or-not_binary64_2723 if-if-or_binary64_2722 if-not_binary64_2721 if-same_binary64_2720 if-false_binary64_2719 if-true_binary64_2718 not-gte_binary64_2717 not-lte_binary64_2716 not-gt_binary64_2715 not-lt_binary64_2714 gte-same_binary64_2713 lte-same_binary64_2712 gt-same_binary64_2711 lt-same_binary64_2710 sinh---cosh_binary64_2657 sinh-+-cosh_binary64_2656 sinh-cosh_binary64_2655 tanh-def-c_binary64_2654 tanh-def-b_binary64_2653 tanh-def-a_binary64_2652 cosh-def_binary64_2651 sinh-def_binary64_2650 tan-neg_binary64_2597 cos-neg_binary64_2596 sin-neg_binary64_2595 tan-0_binary64_2594 cos-0_binary64_2593 sin-0_binary64_2592 hang-m-tan_binary64_2591 hang-p-tan_binary64_2590 hang-m0-tan_binary64_2589 hang-p0-tan_binary64_2588 hang-0m-tan_binary64_2587 hang-0p-tan_binary64_2586 tan-+PI/2_binary64_2585 tan-+PI_binary64_2584 tan-PI_binary64_2583 tan-PI/3_binary64_2582 tan-PI/4_binary64_2581 tan-PI/6_binary64_2580 cos-+PI/2_binary64_2579 cos-+PI_binary64_2578 cos-PI_binary64_2577 cos-PI/2_binary64_2576 cos-PI/3_binary64_2575 cos-PI/4_binary64_2574 cos-PI/6_binary64_2573 sin-+PI/2_binary64_2572 sin-+PI_binary64_2571 sin-PI_binary64_2570 sin-PI/2_binary64_2569 sin-PI/3_binary64_2568 sin-PI/4_binary64_2567 sin-PI/6_binary64_2566 sub-1-sin_binary64_2565 sub-1-cos_binary64_2564 -1-add-sin_binary64_2563 -1-add-cos_binary64_2562 1-sub-sin_binary64_2561 1-sub-cos_binary64_2560 cos-sin-sum_binary64_2559 log-E_binary64_2555 log-pow_binary64_2554 log-rec_binary64_2553 log-div_binary64_2552 log-prod_binary64_2551 pow-base-0_binary64_2549 unpow1/3_binary64_2532 unpow3_binary64_2531 unpow2_binary64_2530 exp-to-pow_binary64_2527 unpow0_binary64_2524 unpow1_binary64_2523 unpow-1_binary64_2522 exp-lft-cube_binary64_2521 exp-cbrt_binary64_2519 exp-sqrt_binary64_2518 rec-exp_binary64_2515 e-exp-1_binary64_2510 1-exp_binary64_2509 rem-log-exp_binary64_2506 rem-exp-log_binary64_2505 cube-mult_binary64_2495 cube-div_binary64_2494 cube-neg_binary64_2492 rem-3cbrt-rft_binary64_2491 rem-3cbrt-lft_binary64_2490 rem-cbrt-cube_binary64_2489 rem-cube-cbrt_binary64_2488 sqr-abs_binary64_2480 sqr-neg_binary64_2479 rem-sqrt-square_binary64_2478 rem-square-sqrt_binary64_2477 lft-mult-inverse_binary64_2443 rgt-mult-inverse_binary64_2442 remove-double-div_binary64_2441 difference-of-sqr--1_binary64_2436 cancel-sign-sub_binary64_2430 distribute-rgt-out--_binary64_2419
Counts
1 → 2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01218
12218
25118
311418
419718
543318
6250318

prune3.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New112
Fresh101
Picked000
Done000
Total213
Error
58.0b
Counts
3 → 1
Compiler

Compiled 33 to 23 computations (30.3% saved)

localize9.0ms (0%)

Local error

Found 2 expressions with local error:

0.0b
(*.f64 (cos.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
4.7b
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))

rewrite116.0ms (0.3%)

Algorithm
rewrite-expression-head
Error
57.9b
Rules
13×add-sqr-sqrt_binary64_2487
11×*-un-lft-identity_binary64_2465
cancel-sign-sub-inv_binary64_2431
add-cube-cbrt_binary64_2500
associate-*r*_binary64_2405
add-log-exp_binary64_2504 pow1_binary64_2526 add-exp-log_binary64_2503 add-cbrt-cube_binary64_2501 distribute-rgt-in_binary64_2415 distribute-lft-in_binary64_2414
sub-neg_binary64_2458 associate-*l*_binary64_2406
flip3--_binary64_2469 flip--_binary64_2440 difference-of-squares_binary64_2434 distribute-lft-out--_binary64_2417 associate-*r/_binary64_2407
diff-log_binary64_2557 pow-prod-down_binary64_2536 prod-exp_binary64_2514 cbrt-unprod_binary64_2498 unswap-sqr_binary64_2433 *-commutative_binary64_2396
Counts
2 → 46
Calls

2 calls:

8.0ms
(*.f64 (cos.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
5.0ms
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
Compiler

Compiled 894 to 253 computations (71.7% saved)

series327.0ms (1%)

Error
0.1b
Counts
2 → 16
Calls

2 calls:

177.0ms
(-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im))
138.0ms
(*.f64 (cos.f64 re) (-.f64 (exp.f64 (neg.f64 im)) (exp.f64 im)))
Compiler

Compiled 640 to 476 computations (25.6% saved)

simplify290.0ms (0.9%)

Algorithm
egg-herbie
Rules
546×unsub-neg_binary64_2459
285×unswap-sqr_binary64_2433
204×distribute-rgt-in_binary64_2415
199×sub-neg_binary64_2458
198×*-commutative_binary64_2396
187×distribute-rgt-neg-out_binary64_2425
165×distribute-lft-in_binary64_2414
158×neg-sub0_binary64_2460
157×exp-prod_binary64_2517
154×neg-mul-1_binary64_2461
117×associate-*r*_binary64_2405
116×associate-*r/_binary64_2407
112×associate-*l/_binary64_2408
110×associate-*l*_binary64_2406
105×distribute-neg-frac_binary64_2429
104×distribute-rgt-neg-in_binary64_2423
98×cancel-sign-sub-inv_binary64_2431 distribute-neg-in_binary64_2426
97×sqr-pow_binary64_2437
92×distribute-lft-neg-in_binary64_2422
91×associate-+r+_binary64_2397
88×associate-+l+_binary64_2398
81×distribute-neg-out_binary64_2427
77×times-frac_binary64_2471
64×*-rgt-identity_binary64_2455
63×log-prod_binary64_2551
61×*-lft-identity_binary64_2454 +-commutative_binary64_2395
60×exp-sum_binary64_2511
58×cube-prod_binary64_2493
54×associate--r+_binary64_2401 associate-+l-_binary64_2400
53×prod-exp_binary64_2514
51×swap-sqr_binary64_2432
47×pow-sqr_binary64_2438
46×distribute-lft-neg-out_binary64_2424
43×cube-div_binary64_2494
42×associate-+r-_binary64_2399
37×log-div_binary64_2552 mul0-rgt_binary64_2448 mul0-lft_binary64_2447
36×difference-of-squares_binary64_2434
32×associate-/r*_binary64_2409
31×cancel-sign-sub_binary64_2430
29×sub0-neg_binary64_2452
26×associate--l+_binary64_2402
25×exp-sqrt_binary64_2518
24×exp-diff_binary64_2513
23×+-rgt-identity_binary64_2450
20×div-exp_binary64_2516
19×div-sub_binary64_2470 distribute-rgt-out_binary64_2418
17×associate-/l*_binary64_2410
12×exp-neg_binary64_2512
pow-plus_binary64_2528
unpow3_binary64_2531
log-pow_binary64_2554 distribute-frac-neg_binary64_2428 associate-/l/_binary64_2412 associate--l-_binary64_2403
cube-unmult_binary64_2502 /-rgt-identity_binary64_2456
cube-mult_binary64_2495 difference-of-sqr--1_binary64_2436 distribute-rgt-out--_binary64_2419 distribute-lft-out_binary64_2416
rem-log-exp_binary64_2506 *-inverses_binary64_2445 distribute-lft1-in_binary64_2420
rem-sqrt-square_binary64_2478 distribute-rgt1-in_binary64_2421 distribute-lft-out--_binary64_2417
pow-base-1_binary64_2525 exp-lft-sqr_binary64_2520 remove-double-neg_binary64_2453 --rgt-identity_binary64_2451 count-2_binary64_2413
log-rec_binary64_2553 unpow2_binary64_2530 unpow1_binary64_2523 rec-exp_binary64_2515 1-exp_binary64_2509 exp-1-e_binary64_2508 rem-3cbrt-lft_binary64_2490 sqr-neg_binary64_2479 rem-square-sqrt_binary64_2477 +-lft-identity_binary64_2449 +-inverses_binary64_2444 lft-mult-inverse_binary64_2443 rgt-mult-inverse_binary64_2442 associate--r-_binary64_2404
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_2728 erf-erfc_binary64_2727 erf-odd_binary64_2726 if-if-and-not_binary64_2725 if-if-and_binary64_2724 if-if-or-not_binary64_2723 if-if-or_binary64_2722 if-not_binary64_2721 if-same_binary64_2720 if-false_binary64_2719 if-true_binary64_2718 not-gte_binary64_2717 not-lte_binary64_2716 not-gt_binary64_2715 not-lt_binary64_2714 gte-same_binary64_2713 lte-same_binary64_2712 gt-same_binary64_2711 lt-same_binary64_2710 sinh---cosh_binary64_2657 sinh-+-cosh_binary64_2656 sinh-cosh_binary64_2655 tanh-def-c_binary64_2654 tanh-def-b_binary64_2653 tanh-def-a_binary64_2652 cosh-def_binary64_2651 sinh-def_binary64_2650 tan-neg_binary64_2597 cos-neg_binary64_2596 sin-neg_binary64_2595 tan-0_binary64_2594 cos-0_binary64_2593 sin-0_binary64_2592 hang-m-tan_binary64_2591 hang-p-tan_binary64_2590 hang-m0-tan_binary64_2589 hang-p0-tan_binary64_2588 hang-0m-tan_binary64_2587 hang-0p-tan_binary64_2586 tan-+PI/2_binary64_2585 tan-+PI_binary64_2584 tan-PI_binary64_2583 tan-PI/3_binary64_2582 tan-PI/4_binary64_2581 tan-PI/6_binary64_2580 cos-+PI/2_binary64_2579 cos-+PI_binary64_2578 cos-PI_binary64_2577 cos-PI/2_binary64_2576 cos-PI/3_binary64_2575 cos-PI/4_binary64_2574 cos-PI/6_binary64_2573 sin-+PI/2_binary64_2572 sin-+PI_binary64_2571 sin-PI_binary64_2570 sin-PI/2_binary64_2569 sin-PI/3_binary64_2568 sin-PI/4_binary64_2567 sin-PI/6_binary64_2566 sub-1-sin_binary64_2565 sub-1-cos_binary64_2564 -1-add-sin_binary64_2563 -1-add-cos_binary64_2562 1-sub-sin_binary64_2561 1-sub-cos_binary64_2560 cos-sin-sum_binary64_2559 log-E_binary64_2555 pow-base-0_binary64_2549 unpow1/3_binary64_2532 unpow1/2_binary64_2529 exp-to-pow_binary64_2527 unpow0_binary64_2524 unpow-1_binary64_2522 exp-lft-cube_binary64_2521 exp-cbrt_binary64_2519 e-exp-1_binary64_2510 exp-0_binary64_2507 rem-exp-log_binary64_2505 cube-neg_binary64_2492 rem-3cbrt-rft_binary64_2491 rem-cbrt-cube_binary64_2489 rem-cube-cbrt_binary64_2488 sqr-abs_binary64_2480 mul-1-neg_binary64_2457 div0_binary64_2446 remove-double-div_binary64_2441 difference-of-sqr-1_binary64_2435 associate-/r/_binary64_2411
Counts
62 → 120
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01301208
13341097
210461068
331821068

prune111.0ms (0.3%)

Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New1182120
Fresh000
Picked011
Done000
Total1183121
Error
0.1b
Counts
121 → 3
Compiler

Compiled 2321 to 836 computations (64% saved)

localize64.0ms (0.2%)

Local error

Found 4 expressions with local error:

0.1b
(*.f64 1/60 (pow.f64 im 5))
0.1b
(*.f64 1/2520 (pow.f64 im 7))
0.1b
(*.f64 (cos.f64 re) (neg.f64 (+.f64 (*.f64 1/60 (pow.f64 im 5)) (+.f64 (*.f64 1/3 (pow.f64 im 3)) (+.f64 (*.f64 im 2) (*.f64 1/2520 (pow.f64 im 7)))))))
0.1b
(*.f64 1/3 (pow.f64 im 3))

rewrite807.0ms (2.4%)

Algorithm
rewrite-expression-head
Error
0.0b
Rules
37×add-sqr-sqrt_binary64_2487
36×associate-*r*_binary64_2405
21×add-exp-log_binary64_2503
18×add-cube-cbrt_binary64_2500 *-un-lft-identity_binary64_2465
12×add-cbrt-cube_binary64_2501 unpow-prod-down_binary64_2544 associate-*l*_binary64_2406
11×unswap-sqr_binary64_2433
10×prod-exp_binary64_2514
pow1_binary64_2526 sqr-pow_binary64_2437
add-log-exp_binary64_2504 cbrt-unprod_binary64_2498 cube-prod_binary64_2493 *-commutative_binary64_2396
pow-to-exp_binary64_2534 pow-exp_binary64_2533 distribute-rgt-neg-in_binary64_2423 distribute-lft-neg-in_binary64_2422
distribute-neg-in_binary64_2426 distribute-neg-frac_binary64_2429 associate-*r/_binary64_2407
unpow3_binary64_2531 cube-mult_binary64_2495 pow-prod-down_binary64_2536 distribute-rgt-neg-out_binary64_2425 distribute-rgt-in_binary64_2415 distribute-lft-in_binary64_2414 flip3-+_binary64_2468 flip-+_binary64_2439 neg-mul-1_binary64_2461
Counts
4 → 111
Calls

4 calls:

13.0ms
(*.f64 (cos.f64 re) (neg.f64 (+.f64 (*.f64 1/60 (pow.f64 im 5)) (+.f64 (*.f64 1/3 (pow.f64 im 3)) (+.f64 (*.f64 im 2) (*.f64 1/2520 (pow.f64 im 7)))))))
6.0ms
(*.f64 1/3 (pow.f64 im 3))
5.0ms
(*.f64 1/2520 (pow.f64 im 7))
5.0ms
(*.f64 1/60 (pow.f64 im 5))
Compiler

Compiled 4094 to 3218 computations (21.4% saved)

series1.0s (3.1%)

Error
0.1b
Counts
4 → 21
Calls

4 calls:

794.0ms
(*.f64 (cos.f64 re) (neg.f64 (+.f64 (*.f64 1/60 (pow.f64 im 5)) (+.f64 (*.f64 1/3 (pow.f64 im 3)) (+.f64 (*.f64 im 2) (*.f64 1/2520 (pow.f64 im 7)))))))
50.0ms
(*.f64 1/60 (pow.f64 im 5))
37.0ms
(*.f64 1/3 (pow.f64 im 3))
21.0ms
(*.f64 1/2520 (pow.f64 im 7))
Compiler

Compiled 1787 to 1475 computations (17.5% saved)

simplify959.0ms (2.9%)

Algorithm
egg-herbie
Rules
368×associate-*l*_binary64_2406
367×associate-*r*_binary64_2405
296×cancel-sign-sub-inv_binary64_2431
262×unswap-sqr_binary64_2433
206×distribute-rgt-neg-in_binary64_2423
198×distribute-neg-in_binary64_2426
163×distribute-rgt-neg-out_binary64_2425
159×*-commutative_binary64_2396
132×sub-neg_binary64_2458
131×distribute-lft-neg-out_binary64_2424
124×sqr-pow_binary64_2437
104×associate-+r+_binary64_2397
97×neg-sub0_binary64_2460
91×neg-mul-1_binary64_2461
88×distribute-rgt-in_binary64_2415
80×log-prod_binary64_2551
75×distribute-lft-in_binary64_2414
73×pow-sqr_binary64_2438
68×exp-prod_binary64_2517
67×+-commutative_binary64_2395
63×associate-+l+_binary64_2398
46×cube-prod_binary64_2493 associate--r+_binary64_2401
45×*-lft-identity_binary64_2454
42×*-rgt-identity_binary64_2455
38×distribute-lft-neg-in_binary64_2422
32×swap-sqr_binary64_2432
31×log-pow_binary64_2554
27×associate--l+_binary64_2402
26×unsub-neg_binary64_2459
19×pow-plus_binary64_2528
18×cube-unmult_binary64_2502
14×exp-sum_binary64_2511
10×unpow3_binary64_2531
pow-base-1_binary64_2525
exp-diff_binary64_2513 cube-mult_binary64_2495
div-sub_binary64_2470
rem-sqrt-square_binary64_2478 mul-1-neg_binary64_2457
prod-exp_binary64_2514
sqr-neg_binary64_2479 remove-double-neg_binary64_2453 +-rgt-identity_binary64_2450 distribute-rgt-out_binary64_2418 associate-/l/_binary64_2412 associate-+r-_binary64_2399
unpow1/3_binary64_2532 distribute-neg-out_binary64_2427
log-div_binary64_2552 unpow2_binary64_2530 unpow1_binary64_2523 exp-sqrt_binary64_2518 div-exp_binary64_2516 exp-neg_binary64_2512 1-exp_binary64_2509 exp-1-e_binary64_2508 rem-log-exp_binary64_2506 cube-div_binary64_2494 rem-cbrt-cube_binary64_2489 rem-cube-cbrt_binary64_2488 rem-square-sqrt_binary64_2477 sub0-neg_binary64_2452 *-inverses_binary64_2445 difference-of-squares_binary64_2434 distribute-neg-frac_binary64_2429 distribute-frac-neg_binary64_2428 associate--r-_binary64_2404 associate-+l-_binary64_2400
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_2728 erf-erfc_binary64_2727 erf-odd_binary64_2726 if-if-and-not_binary64_2725 if-if-and_binary64_2724 if-if-or-not_binary64_2723 if-if-or_binary64_2722 if-not_binary64_2721 if-same_binary64_2720 if-false_binary64_2719 if-true_binary64_2718 not-gte_binary64_2717 not-lte_binary64_2716 not-gt_binary64_2715 not-lt_binary64_2714 gte-same_binary64_2713 lte-same_binary64_2712 gt-same_binary64_2711 lt-same_binary64_2710 sinh---cosh_binary64_2657 sinh-+-cosh_binary64_2656 sinh-cosh_binary64_2655 tanh-def-c_binary64_2654 tanh-def-b_binary64_2653 tanh-def-a_binary64_2652 cosh-def_binary64_2651 sinh-def_binary64_2650 tan-neg_binary64_2597 cos-neg_binary64_2596 sin-neg_binary64_2595 tan-0_binary64_2594 cos-0_binary64_2593 sin-0_binary64_2592 hang-m-tan_binary64_2591 hang-p-tan_binary64_2590 hang-m0-tan_binary64_2589 hang-p0-tan_binary64_2588 hang-0m-tan_binary64_2587 hang-0p-tan_binary64_2586 tan-+PI/2_binary64_2585 tan-+PI_binary64_2584 tan-PI_binary64_2583 tan-PI/3_binary64_2582 tan-PI/4_binary64_2581 tan-PI/6_binary64_2580 cos-+PI/2_binary64_2579 cos-+PI_binary64_2578 cos-PI_binary64_2577 cos-PI/2_binary64_2576 cos-PI/3_binary64_2575 cos-PI/4_binary64_2574 cos-PI/6_binary64_2573 sin-+PI/2_binary64_2572 sin-+PI_binary64_2571 sin-PI_binary64_2570 sin-PI/2_binary64_2569 sin-PI/3_binary64_2568 sin-PI/4_binary64_2567 sin-PI/6_binary64_2566 sub-1-sin_binary64_2565 sub-1-cos_binary64_2564 -1-add-sin_binary64_2563 -1-add-cos_binary64_2562 1-sub-sin_binary64_2561 1-sub-cos_binary64_2560 cos-sin-sum_binary64_2559 log-E_binary64_2555 log-rec_binary64_2553 pow-base-0_binary64_2549 unpow1/2_binary64_2529 exp-to-pow_binary64_2527 unpow0_binary64_2524 unpow-1_binary64_2522 exp-lft-cube_binary64_2521 exp-lft-sqr_binary64_2520 exp-cbrt_binary64_2519 rec-exp_binary64_2515 e-exp-1_binary64_2510 exp-0_binary64_2507 rem-exp-log_binary64_2505 cube-neg_binary64_2492 rem-3cbrt-rft_binary64_2491 rem-3cbrt-lft_binary64_2490 sqr-abs_binary64_2480 times-frac_binary64_2471 /-rgt-identity_binary64_2456 --rgt-identity_binary64_2451 +-lft-identity_binary64_2449 mul0-rgt_binary64_2448 mul0-lft_binary64_2447 div0_binary64_2446 +-inverses_binary64_2444 lft-mult-inverse_binary64_2443 rgt-mult-inverse_binary64_2442 remove-double-div_binary64_2441 difference-of-sqr--1_binary64_2436 difference-of-sqr-1_binary64_2435 cancel-sign-sub_binary64_2430 distribute-rgt1-in_binary64_2421 distribute-lft1-in_binary64_2420 distribute-rgt-out--_binary64_2419 distribute-lft-out--_binary64_2417 distribute-lft-out_binary64_2416 count-2_binary64_2413 associate-/r/_binary64_2411 associate-/l*_binary64_2410 associate-/r*_binary64_2409 associate-*l/_binary64_2408 associate-*r/_binary64_2407 associate--l-_binary64_2403
Counts
132 → 210
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02973040
17402792
229812791

prune3.0s (9%)

Pruning

9 alts after pruning (7 fresh and 2 done)

PrunedKeptTotal
New2037210
Fresh101
Picked011
Done011
Total2049213
Error
0.0b
Counts
213 → 9
Compiler

Compiled 9647 to 7339 computations (23.9% saved)

localize682.0ms (2.1%)

Local error

Found 4 expressions with local error:

0.2b
(*.f64 (cbrt.f64 (cos.f64 re)) (cbrt.f64 (cos.f64 re)))
0.4b
(cbrt.f64 (cos.f64 re))
0.4b
(cbrt.f64 (cos.f64 re))
0.4b
(cbrt.f64 (cos.f64 re))

rewrite2.0s (6.2%)

Algorithm
rewrite-expression-head
Error
0.0b
Rules
25×cbrt-prod_binary64_2496
23×add-sqr-sqrt_binary64_2487
15×add-cube-cbrt_binary64_2500 *-un-lft-identity_binary64_2465
11×pow1_binary64_2526
pow1/3_binary64_2547
add-exp-log_binary64_2503 swap-sqr_binary64_2432 associate-*l*_binary64_2406 associate-*r*_binary64_2405
add-log-exp_binary64_2504 add-cbrt-cube_binary64_2501 unswap-sqr_binary64_2433
pow-prod-down_binary64_2536 pow-prod-up_binary64_2535 pow-sqr_binary64_2438
pow2_binary64_2546 pow-plus_binary64_2528 prod-exp_binary64_2514 cbrt-unprod_binary64_2498 *-commutative_binary64_2396
Counts
4 → 73
Calls

4 calls:

428.0ms
(*.f64 (cbrt.f64 (cos.f64 re)) (cbrt.f64 (cos.f64 re)))
1.0ms
(cbrt.f64 (cos.f64 re))
1.0ms
(cbrt.f64 (cos.f64 re))
1.0ms
(cbrt.f64 (cos.f64 re))
Compiler

Compiled 3044 to 1767 computations (42% saved)

series1.2s (3.5%)

Error
0.0b
Counts
4 → 24
Calls

4 calls:

365.0ms
(cbrt.f64 (cos.f64 re))
360.0ms
(cbrt.f64 (cos.f64 re))
244.0ms
(cbrt.f64 (cos.f64 re))
125.0ms
(*.f64 (cbrt.f64 (cos.f64 re)) (cbrt.f64 (cos.f64 re)))
Compiler

Compiled 2220 to 1733 computations (21.9% saved)

simplify1.3s (3.9%)

Algorithm
egg-herbie
Rules
443×associate-/l*_binary64_2410
334×associate-*l*_binary64_2406
308×associate-/r/_binary64_2411
266×cancel-sign-sub-inv_binary64_2431
221×associate-*r*_binary64_2405
194×log-prod_binary64_2551
164×distribute-rgt-in_binary64_2415
148×associate-+l-_binary64_2400
140×exp-prod_binary64_2517
114×associate-/l/_binary64_2412
113×unswap-sqr_binary64_2433
112×cube-prod_binary64_2493
108×distribute-lft-in_binary64_2414
104×associate--l+_binary64_2402
97×sub-neg_binary64_2458
89×sqr-pow_binary64_2437
86×swap-sqr_binary64_2432
82×distribute-rgt-neg-in_binary64_2423
70×distribute-lft-neg-in_binary64_2422 associate--l-_binary64_2403
60×associate-+r-_binary64_2399
55×distribute-rgt-out_binary64_2418
54×*-commutative_binary64_2396
52×times-frac_binary64_2471
45×pow-sqr_binary64_2438
40×associate--r+_binary64_2401
38×log-div_binary64_2552 associate-*l/_binary64_2408
34×neg-sub0_binary64_2460
33×neg-mul-1_binary64_2461
31×distribute-lft-out_binary64_2416
29×cube-div_binary64_2494 associate-/r*_binary64_2409
27×unsub-neg_binary64_2459 associate-*r/_binary64_2407
25×*-lft-identity_binary64_2454
24×distribute-neg-in_binary64_2426
23×*-rgt-identity_binary64_2455
22×pow-plus_binary64_2528 associate-+l+_binary64_2398
19×exp-sqrt_binary64_2518
18×log-pow_binary64_2554 rem-sqrt-square_binary64_2478
17×cube-unmult_binary64_2502
15×+-commutative_binary64_2395
14×distribute-neg-out_binary64_2427 distribute-lft-neg-out_binary64_2424
12×sub0-neg_binary64_2452
10×associate-+r+_binary64_2397
exp-lft-sqr_binary64_2520
distribute-rgt1-in_binary64_2421 count-2_binary64_2413
unpow3_binary64_2531 associate--r-_binary64_2404
/-rgt-identity_binary64_2456 +-rgt-identity_binary64_2450
div-exp_binary64_2516 prod-exp_binary64_2514 cancel-sign-sub_binary64_2430 distribute-neg-frac_binary64_2429 distribute-rgt-out--_binary64_2419
log-rec_binary64_2553 unpow2_binary64_2530
unpow1/3_binary64_2532 unpow1_binary64_2523 rec-exp_binary64_2515 exp-sum_binary64_2511 cube-mult_binary64_2495 rem-3cbrt-lft_binary64_2490 rem-cbrt-cube_binary64_2489 distribute-lft1-in_binary64_2420 distribute-lft-out--_binary64_2417
pow-base-1_binary64_2525 exp-diff_binary64_2513 1-exp_binary64_2509 exp-1-e_binary64_2508 rem-log-exp_binary64_2506 rem-3cbrt-rft_binary64_2491 rem-square-sqrt_binary64_2477 mul0-lft_binary64_2447 *-inverses_binary64_2445
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_2728 erf-erfc_binary64_2727 erf-odd_binary64_2726 if-if-and-not_binary64_2725 if-if-and_binary64_2724 if-if-or-not_binary64_2723 if-if-or_binary64_2722 if-not_binary64_2721 if-same_binary64_2720 if-false_binary64_2719 if-true_binary64_2718 not-gte_binary64_2717 not-lte_binary64_2716 not-gt_binary64_2715 not-lt_binary64_2714 gte-same_binary64_2713 lte-same_binary64_2712 gt-same_binary64_2711 lt-same_binary64_2710 sinh---cosh_binary64_2657 sinh-+-cosh_binary64_2656 sinh-cosh_binary64_2655 tanh-def-c_binary64_2654 tanh-def-b_binary64_2653 tanh-def-a_binary64_2652 cosh-def_binary64_2651 sinh-def_binary64_2650 tan-neg_binary64_2597 cos-neg_binary64_2596 sin-neg_binary64_2595 tan-0_binary64_2594 cos-0_binary64_2593 sin-0_binary64_2592 hang-m-tan_binary64_2591 hang-p-tan_binary64_2590 hang-m0-tan_binary64_2589 hang-p0-tan_binary64_2588 hang-0m-tan_binary64_2587 hang-0p-tan_binary64_2586 tan-+PI/2_binary64_2585 tan-+PI_binary64_2584 tan-PI_binary64_2583 tan-PI/3_binary64_2582 tan-PI/4_binary64_2581 tan-PI/6_binary64_2580 cos-+PI/2_binary64_2579 cos-+PI_binary64_2578 cos-PI_binary64_2577 cos-PI/2_binary64_2576 cos-PI/3_binary64_2575 cos-PI/4_binary64_2574 cos-PI/6_binary64_2573 sin-+PI/2_binary64_2572 sin-+PI_binary64_2571 sin-PI_binary64_2570 sin-PI/2_binary64_2569 sin-PI/3_binary64_2568 sin-PI/4_binary64_2567 sin-PI/6_binary64_2566 sub-1-sin_binary64_2565 sub-1-cos_binary64_2564 -1-add-sin_binary64_2563 -1-add-cos_binary64_2562 1-sub-sin_binary64_2561 1-sub-cos_binary64_2560 cos-sin-sum_binary64_2559 log-E_binary64_2555 pow-base-0_binary64_2549 unpow1/2_binary64_2529 exp-to-pow_binary64_2527 unpow0_binary64_2524 unpow-1_binary64_2522 exp-lft-cube_binary64_2521 exp-cbrt_binary64_2519 exp-neg_binary64_2512 e-exp-1_binary64_2510 exp-0_binary64_2507 rem-exp-log_binary64_2505 cube-neg_binary64_2492 rem-cube-cbrt_binary64_2488 sqr-abs_binary64_2480 sqr-neg_binary64_2479 div-sub_binary64_2470 mul-1-neg_binary64_2457 remove-double-neg_binary64_2453 --rgt-identity_binary64_2451 +-lft-identity_binary64_2449 mul0-rgt_binary64_2448 div0_binary64_2446 +-inverses_binary64_2444 lft-mult-inverse_binary64_2443 rgt-mult-inverse_binary64_2442 remove-double-div_binary64_2441 difference-of-sqr--1_binary64_2436 difference-of-sqr-1_binary64_2435 difference-of-squares_binary64_2434 distribute-frac-neg_binary64_2428 distribute-rgt-neg-out_binary64_2425
Counts
97 → 105
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0791148
11591050
25231036
317021030

prune283.0ms (0.9%)

Pruning

9 alts after pruning (7 fresh and 2 done)

PrunedKeptTotal
New1032105
Fresh156
Picked101
Done022
Total1059114
Error
0.0b
Counts
114 → 9
Compiler

Compiled 4850 to 3219 computations (33.6% saved)

localize58.0ms (0.2%)

Local error

Found 4 expressions with local error:

0.3b
(cbrt.f64 (cbrt.f64 (pow.f64 (cos.f64 re) 2)))
0.4b
(cbrt.f64 (cos.f64 re))
0.4b
(cbrt.f64 (cos.f64 re))
0.4b
(cbrt.f64 (cos.f64 re))

rewrite115.0ms (0.3%)

Algorithm
rewrite-expression-head
Error
0.0b
Rules
28×cbrt-prod_binary64_2496
10×add-cube-cbrt_binary64_2500 add-sqr-sqrt_binary64_2487 *-un-lft-identity_binary64_2465
pow1/3_binary64_2547 pow1_binary64_2526 add-log-exp_binary64_2504 add-exp-log_binary64_2503 add-cbrt-cube_binary64_2501
unpow-prod-down_binary64_2544
unpow2_binary64_2530 sqr-pow_binary64_2437
Counts
4 → 52
Calls

4 calls:

2.0ms
(cbrt.f64 (cbrt.f64 (pow.f64 (cos.f64 re) 2)))
1.0ms
(cbrt.f64 (cos.f64 re))
1.0ms
(cbrt.f64 (cos.f64 re))
1.0ms
(cbrt.f64 (cos.f64 re))
Compiler

Compiled 2598 to 1589 computations (38.8% saved)

series533.0ms (1.6%)

Error
0.0b
Counts
4 → 24
Calls

4 calls:

204.0ms
(cbrt.f64 (cos.f64 re))
119.0ms
(cbrt.f64 (cbrt.f64 (pow.f64 (cos.f64 re) 2)))
74.0ms
(cbrt.f64 (cos.f64 re))
70.0ms
(cbrt.f64 (cos.f64 re))
Compiler

Compiled 2682 to 2004 computations (25.3% saved)

simplify739.0ms (2.2%)

Algorithm
egg-herbie
Rules
416×sub-neg_binary64_2458
365×sqr-pow_binary64_2437
313×associate-/l/_binary64_2412
295×associate-/l*_binary64_2410
269×*-commutative_binary64_2396
243×pow-sqr_binary64_2438
218×cancel-sign-sub-inv_binary64_2431
185×distribute-rgt-neg-in_binary64_2423
172×associate-+l-_binary64_2400
150×cube-div_binary64_2494
149×pow-plus_binary64_2528
148×distribute-lft-neg-in_binary64_2422
144×log-prod_binary64_2551
142×cube-prod_binary64_2493
124×neg-mul-1_binary64_2461
117×distribute-rgt-out_binary64_2418
112×neg-sub0_binary64_2460
102×exp-prod_binary64_2517
97×associate-*l*_binary64_2406
87×associate-*r*_binary64_2405
82×associate--r+_binary64_2401
80×associate--l+_binary64_2402
76×distribute-neg-in_binary64_2426
75×unsub-neg_binary64_2459
73×associate-+l+_binary64_2398
72×unswap-sqr_binary64_2433
71×+-commutative_binary64_2395
68×distribute-rgt-in_binary64_2415
67×log-pow_binary64_2554
62×sub0-neg_binary64_2452
57×associate--r-_binary64_2404 associate-+r+_binary64_2397
56×associate-+r-_binary64_2399
48×associate-*l/_binary64_2408
46×associate-/r/_binary64_2411
45×remove-double-neg_binary64_2453
44×times-frac_binary64_2471
41×distribute-lft-in_binary64_2414
40×rem-sqrt-square_binary64_2478 swap-sqr_binary64_2432
37×associate-/r*_binary64_2409
35×distribute-lft-out_binary64_2416
33×unpow3_binary64_2531
32×associate--l-_binary64_2403
31×pow-base-1_binary64_2525 cube-mult_binary64_2495
30×remove-double-div_binary64_2441
28×count-2_binary64_2413
24×+-rgt-identity_binary64_2450
22×distribute-neg-frac_binary64_2429 distribute-lft-neg-out_binary64_2424
21×cube-unmult_binary64_2502 /-rgt-identity_binary64_2456 *-rgt-identity_binary64_2455
20×*-lft-identity_binary64_2454 distribute-rgt1-in_binary64_2421
16×distribute-rgt-neg-out_binary64_2425
14×associate-*r/_binary64_2407
13×--rgt-identity_binary64_2451
12×prod-exp_binary64_2514
10×cancel-sign-sub_binary64_2430
div-exp_binary64_2516
exp-sqrt_binary64_2518 exp-sum_binary64_2511
unpow2_binary64_2530 exp-lft-sqr_binary64_2520
unpow1_binary64_2523 distribute-lft1-in_binary64_2420
log-div_binary64_2552 distribute-neg-out_binary64_2427 distribute-rgt-out--_binary64_2419
rec-exp_binary64_2515 rem-cbrt-cube_binary64_2489 mul0-rgt_binary64_2448 +-inverses_binary64_2444 distribute-lft-out--_binary64_2417
rem-3cbrt-lft_binary64_2490 mul0-lft_binary64_2447
unpow1/3_binary64_2532 1-exp_binary64_2509 exp-1-e_binary64_2508 rem-square-sqrt_binary64_2477 div-sub_binary64_2470 *-inverses_binary64_2445 rgt-mult-inverse_binary64_2442
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_2728 erf-erfc_binary64_2727 erf-odd_binary64_2726 if-if-and-not_binary64_2725 if-if-and_binary64_2724 if-if-or-not_binary64_2723 if-if-or_binary64_2722 if-not_binary64_2721 if-same_binary64_2720 if-false_binary64_2719 if-true_binary64_2718 not-gte_binary64_2717 not-lte_binary64_2716 not-gt_binary64_2715 not-lt_binary64_2714 gte-same_binary64_2713 lte-same_binary64_2712 gt-same_binary64_2711 lt-same_binary64_2710 sinh---cosh_binary64_2657 sinh-+-cosh_binary64_2656 sinh-cosh_binary64_2655 tanh-def-c_binary64_2654 tanh-def-b_binary64_2653 tanh-def-a_binary64_2652 cosh-def_binary64_2651 sinh-def_binary64_2650 tan-neg_binary64_2597 cos-neg_binary64_2596 sin-neg_binary64_2595 tan-0_binary64_2594 cos-0_binary64_2593 sin-0_binary64_2592 hang-m-tan_binary64_2591 hang-p-tan_binary64_2590 hang-m0-tan_binary64_2589 hang-p0-tan_binary64_2588 hang-0m-tan_binary64_2587 hang-0p-tan_binary64_2586 tan-+PI/2_binary64_2585 tan-+PI_binary64_2584 tan-PI_binary64_2583 tan-PI/3_binary64_2582 tan-PI/4_binary64_2581 tan-PI/6_binary64_2580 cos-+PI/2_binary64_2579 cos-+PI_binary64_2578 cos-PI_binary64_2577 cos-PI/2_binary64_2576 cos-PI/3_binary64_2575 cos-PI/4_binary64_2574 cos-PI/6_binary64_2573 sin-+PI/2_binary64_2572 sin-+PI_binary64_2571 sin-PI_binary64_2570 sin-PI/2_binary64_2569 sin-PI/3_binary64_2568 sin-PI/4_binary64_2567 sin-PI/6_binary64_2566 sub-1-sin_binary64_2565 sub-1-cos_binary64_2564 -1-add-sin_binary64_2563 -1-add-cos_binary64_2562 1-sub-sin_binary64_2561 1-sub-cos_binary64_2560 cos-sin-sum_binary64_2559 log-E_binary64_2555 log-rec_binary64_2553 pow-base-0_binary64_2549 unpow1/2_binary64_2529 exp-to-pow_binary64_2527 unpow0_binary64_2524 unpow-1_binary64_2522 exp-lft-cube_binary64_2521 exp-cbrt_binary64_2519 exp-diff_binary64_2513 exp-neg_binary64_2512 e-exp-1_binary64_2510 exp-0_binary64_2507 rem-log-exp_binary64_2506 rem-exp-log_binary64_2505 cube-neg_binary64_2492 rem-3cbrt-rft_binary64_2491 rem-cube-cbrt_binary64_2488 sqr-abs_binary64_2480 sqr-neg_binary64_2479 mul-1-neg_binary64_2457 +-lft-identity_binary64_2449 div0_binary64_2446 lft-mult-inverse_binary64_2443 difference-of-sqr--1_binary64_2436 difference-of-sqr-1_binary64_2435 difference-of-squares_binary64_2434 distribute-frac-neg_binary64_2428
Counts
76 → 88
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
085878
1153872
2367872
31090839
42316833
53999833

prune233.0ms (0.7%)

Pruning

10 alts after pruning (7 fresh and 3 done)

PrunedKeptTotal
New87188
Fresh066
Picked011
Done022
Total871097
Error
0.0b
Counts
97 → 10
Compiler

Compiled 4549 to 2862 computations (37.1% saved)

regimes5.1s (15.4%)

Accuracy

Total 0.7b remaining (98.2%)

Threshold costs 0.7b (98.2%)

Compiler

Compiled 16564 to 12965 computations (21.7% saved)

bsearch0.0ms (0%)

simplify8.0ms (0%)

Algorithm
egg-herbie
Rules
27×*-commutative_binary64_2396
22×+-commutative_binary64_2395
20×neg-mul-1_binary64_2461 neg-sub0_binary64_2460
19×sub-neg_binary64_2458
10×distribute-rgt-neg-in_binary64_2423 distribute-lft-neg-in_binary64_2422
unsub-neg_binary64_2459 distribute-neg-in_binary64_2426
distribute-rgt-neg-out_binary64_2425 distribute-lft-neg-out_binary64_2424
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_2725 if-if-and_binary64_2724 if-if-or-not_binary64_2723 if-if-or_binary64_2722 if-not_binary64_2721 if-same_binary64_2720 if-false_binary64_2719 if-true_binary64_2718 tan-0_binary64_2594 cos-0_binary64_2593 sin-0_binary64_2592 unpow1_binary64_2523 e-exp-1_binary64_2510 1-exp_binary64_2509 exp-1-e_binary64_2508 exp-0_binary64_2507 sqr-abs_binary64_2480 sqr-neg_binary64_2479 mul-1-neg_binary64_2457 /-rgt-identity_binary64_2456 *-rgt-identity_binary64_2455 *-lft-identity_binary64_2454 remove-double-neg_binary64_2453 sub0-neg_binary64_2452 --rgt-identity_binary64_2451 +-rgt-identity_binary64_2450 +-lft-identity_binary64_2449 cancel-sign-sub-inv_binary64_2431 cancel-sign-sub_binary64_2430 distribute-neg-frac_binary64_2429 distribute-frac-neg_binary64_2428 distribute-neg-out_binary64_2427
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02541
14341
27041
310541
414441
516841
618141
718541
Proof
(* f64 1/2 (* f64 (cos f64 h0) (=> (neg f64 (+ f64 (* f64 1/60 (pow f64 h1 5)) (+ f64 (* f64 1/3 (pow f64 h1 3)) (+ f64 (* f64 h1 2) (* f64 1/2520 (pow f64 h1 7))))))))) distribute-neg-in_binary64_2426 => (* f64 1/2 (* f64 (cos f64 h0) (=> (+ f64 (neg f64 (* f64 1/60 (pow f64 h1 5))) (neg f64 (+ f64 (* f64 1/3 (pow f64 h1 3)) (+ f64 (* f64 h1 2) (* f64 1/2520 (pow f64 h1 7))))))))) unsub-neg_binary64_2459 => (* f64 1/2 (* f64 (cos f64 h0) (- f64 (=> (neg f64 (* f64 1/60 (pow f64 h1 5)))) (+ f64 (* f64 1/3 (pow f64 h1 3)) (+ f64 (* f64 h1 2) (* f64 1/2520 (pow f64 h1 7))))))) distribute-rgt-neg-in_binary64_2423 => (* f64 1/2 (* f64 (cos f64 h0) (- f64 (* f64 1/60 (neg f64 (pow f64 h1 5))) (+ f64 (* f64 1/3 (pow f64 h1 3)) (+ f64 (* f64 h1 2) (* f64 1/2520 (pow f64 h1 7)))))))

end0.0ms (0%)

sample12.4s (37.4%)

Algorithm
intervals
Results
5.4s4890×body1024valid
1.8s1905×body1024invalid
1.1s1662×body512valid
458.0ms919×body512invalid
399.0ms399×body2048valid
390.0ms493×body256invalid
109.0ms667×body256valid
81.0ms677×body128invalid
33.0ms382×body128valid
Compiler

Compiled 2829 to 2213 computations (21.8% saved)

Profiling

Loading profile data...