Details

Time bar (total: 7.2s)

analyze296.0ms (4.1%)

Algorithm
search
egg-herbie
Rules
770×unswap-sqr_binary64_1410
633×associate-*l*_binary64_1383
432×sub-neg_binary64_1435
416×associate-+l+_binary64_1375
342×associate-+r+_binary64_1374
284×unsub-neg_binary64_1436
255×+-commutative_binary64_1372
241×cancel-sign-sub-inv_binary64_1408
211×distribute-rgt-neg-in_binary64_1400
196×associate--l+_binary64_1379
188×distribute-rgt-in_binary64_1392
181×*-commutative_binary64_1373
178×distribute-lft-neg-in_binary64_1399
163×associate-+l-_binary64_1377
151×neg-sub0_binary64_1437
150×distribute-lft-in_binary64_1391
147×neg-mul-1_binary64_1438
114×distribute-lft-out_binary64_1393
113×distribute-neg-in_binary64_1403
108×associate--r+_binary64_1378
105×associate-*r*_binary64_1382
69×distribute-rgt-out_binary64_1395
52×associate--r-_binary64_1381 associate-+r-_binary64_1376
33×distribute-lft-neg-out_binary64_1401
30×sqr-pow_binary64_1414
22×cube-prod_binary64_1470
19×pow-plus_binary64_1505
18×remove-double-neg_binary64_1430
14×difference-of-sqr--1_binary64_1413
12×cube-unmult_binary64_1479 associate--l-_binary64_1380
11×*-rgt-identity_binary64_1432
10×rem-sqrt-square_binary64_1455 *-lft-identity_binary64_1431
unpow3_binary64_1508 mul-1-neg_binary64_1434
unpow2_binary64_1507 difference-of-sqr-1_binary64_1412
distribute-rgt-neg-out_binary64_1402
sqr-neg_binary64_1456 sub0-neg_binary64_1429 pow-sqr_binary64_1415
unpow1_binary64_1500 cube-neg_binary64_1469 --rgt-identity_binary64_1428 +-rgt-identity_binary64_1427
unpow1/2_binary64_1506 1-exp_binary64_1486 cube-mult_binary64_1472 count-2_binary64_1390
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_1705 erf-erfc_binary64_1704 erf-odd_binary64_1703 if-if-and-not_binary64_1702 if-if-and_binary64_1701 if-if-or-not_binary64_1700 if-if-or_binary64_1699 if-not_binary64_1698 if-same_binary64_1697 if-false_binary64_1696 if-true_binary64_1695 not-gte_binary64_1694 not-lte_binary64_1693 not-gt_binary64_1692 not-lt_binary64_1691 gte-same_binary64_1690 lte-same_binary64_1689 gt-same_binary64_1688 lt-same_binary64_1687 sinh---cosh_binary64_1634 sinh-+-cosh_binary64_1633 sinh-cosh_binary64_1632 tanh-def-c_binary64_1631 tanh-def-b_binary64_1630 tanh-def-a_binary64_1629 cosh-def_binary64_1628 sinh-def_binary64_1627 tan-neg_binary64_1574 cos-neg_binary64_1573 sin-neg_binary64_1572 tan-0_binary64_1571 cos-0_binary64_1570 sin-0_binary64_1569 hang-m-tan_binary64_1568 hang-p-tan_binary64_1567 hang-m0-tan_binary64_1566 hang-p0-tan_binary64_1565 hang-0m-tan_binary64_1564 hang-0p-tan_binary64_1563 tan-+PI/2_binary64_1562 tan-+PI_binary64_1561 tan-PI_binary64_1560 tan-PI/3_binary64_1559 tan-PI/4_binary64_1558 tan-PI/6_binary64_1557 cos-+PI/2_binary64_1556 cos-+PI_binary64_1555 cos-PI_binary64_1554 cos-PI/2_binary64_1553 cos-PI/3_binary64_1552 cos-PI/4_binary64_1551 cos-PI/6_binary64_1550 sin-+PI/2_binary64_1549 sin-+PI_binary64_1548 sin-PI_binary64_1547 sin-PI/2_binary64_1546 sin-PI/3_binary64_1545 sin-PI/4_binary64_1544 sin-PI/6_binary64_1543 sub-1-sin_binary64_1542 sub-1-cos_binary64_1541 -1-add-sin_binary64_1540 -1-add-cos_binary64_1539 1-sub-sin_binary64_1538 1-sub-cos_binary64_1537 cos-sin-sum_binary64_1536 log-E_binary64_1532 log-pow_binary64_1531 log-rec_binary64_1530 log-div_binary64_1529 log-prod_binary64_1528 pow-base-0_binary64_1526 unpow1/3_binary64_1509 exp-to-pow_binary64_1504 pow-base-1_binary64_1502 unpow0_binary64_1501 unpow-1_binary64_1499 exp-lft-cube_binary64_1498 exp-lft-sqr_binary64_1497 exp-cbrt_binary64_1496 exp-sqrt_binary64_1495 exp-prod_binary64_1494 div-exp_binary64_1493 rec-exp_binary64_1492 prod-exp_binary64_1491 exp-diff_binary64_1490 exp-neg_binary64_1489 exp-sum_binary64_1488 e-exp-1_binary64_1487 exp-1-e_binary64_1485 exp-0_binary64_1484 rem-log-exp_binary64_1483 rem-exp-log_binary64_1482 cube-div_binary64_1471 rem-3cbrt-rft_binary64_1468 rem-3cbrt-lft_binary64_1467 rem-cbrt-cube_binary64_1466 rem-cube-cbrt_binary64_1465 sqr-abs_binary64_1457 rem-square-sqrt_binary64_1454 times-frac_binary64_1448 div-sub_binary64_1447 /-rgt-identity_binary64_1433 +-lft-identity_binary64_1426 mul0-rgt_binary64_1425 mul0-lft_binary64_1424 div0_binary64_1423 *-inverses_binary64_1422 +-inverses_binary64_1421 lft-mult-inverse_binary64_1420 rgt-mult-inverse_binary64_1419 remove-double-div_binary64_1418 difference-of-squares_binary64_1411 swap-sqr_binary64_1409 cancel-sign-sub_binary64_1407 distribute-neg-frac_binary64_1406 distribute-frac-neg_binary64_1405 distribute-neg-out_binary64_1404 distribute-rgt1-in_binary64_1398 distribute-lft1-in_binary64_1397 distribute-rgt-out--_binary64_1396 distribute-lft-out--_binary64_1394 associate-/l/_binary64_1389 associate-/r/_binary64_1388 associate-/l*_binary64_1387 associate-/r*_binary64_1386 associate-*l/_binary64_1385 associate-*r/_binary64_1384
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01850
13950
26750
318150
449450
5145850
6337750
7499450
8481550
9509250
022
122
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
25%74.9%0.1%5
25%50%25.1%6
25%31.2%43.8%7
25%21.9%53.2%8
25%14%61%9
28.1%10.9%61%10
31.6%7.4%61%11
33.4%5.7%61%12
35.2%3.8%61%13
36.1%2.9%61%14
Compiler

Compiled 18 to 13 computations (27.8% saved)

sample19.0ms (0.3%)

Algorithm
intervals
Results
10.0ms256×body128valid
Compiler

Compiled 35 to 27 computations (22.9% saved)

simplify41.0ms (0.6%)

Algorithm
egg-herbie
Rules
785×distribute-rgt-neg-in_binary64_1400
770×unswap-sqr_binary64_1410
631×associate-*l*_binary64_1383
289×sub-neg_binary64_1435
232×associate-+l+_binary64_1375
216×cancel-sign-sub-inv_binary64_1408
209×distribute-neg-in_binary64_1403
200×associate-+r+_binary64_1374
176×distribute-rgt-in_binary64_1392
175×distribute-lft-neg-in_binary64_1399
162×+-commutative_binary64_1372
161×*-commutative_binary64_1373
150×distribute-lft-in_binary64_1391
115×associate--l+_binary64_1379
104×associate-*r*_binary64_1382
99×neg-sub0_binary64_1437
98×neg-mul-1_binary64_1438
96×associate-+l-_binary64_1377
69×associate--r+_binary64_1378
66×distribute-lft-out_binary64_1393
65×unsub-neg_binary64_1436
51×distribute-rgt-out_binary64_1395
40×distribute-lft-neg-out_binary64_1401
34×associate--r-_binary64_1381
31×distribute-rgt-neg-out_binary64_1402
29×sqr-pow_binary64_1414
28×associate-+r-_binary64_1376
19×cancel-sign-sub_binary64_1407
17×remove-double-neg_binary64_1430 swap-sqr_binary64_1409
14×difference-of-sqr--1_binary64_1413
13×pow-plus_binary64_1505
12×associate--l-_binary64_1380
11×*-rgt-identity_binary64_1432
10×*-lft-identity_binary64_1431
cube-unmult_binary64_1479
cube-prod_binary64_1470 mul-1-neg_binary64_1434
difference-of-sqr-1_binary64_1412
distribute-neg-out_binary64_1404
pow-sqr_binary64_1415
unpow2_binary64_1507 sub0-neg_binary64_1429
unpow3_binary64_1508 unpow1/2_binary64_1506 unpow1_binary64_1500 1-exp_binary64_1486 rem-sqrt-square_binary64_1455 --rgt-identity_binary64_1428 +-rgt-identity_binary64_1427 count-2_binary64_1390
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_1705 erf-erfc_binary64_1704 erf-odd_binary64_1703 if-if-and-not_binary64_1702 if-if-and_binary64_1701 if-if-or-not_binary64_1700 if-if-or_binary64_1699 if-not_binary64_1698 if-same_binary64_1697 if-false_binary64_1696 if-true_binary64_1695 not-gte_binary64_1694 not-lte_binary64_1693 not-gt_binary64_1692 not-lt_binary64_1691 gte-same_binary64_1690 lte-same_binary64_1689 gt-same_binary64_1688 lt-same_binary64_1687 sinh---cosh_binary64_1634 sinh-+-cosh_binary64_1633 sinh-cosh_binary64_1632 tanh-def-c_binary64_1631 tanh-def-b_binary64_1630 tanh-def-a_binary64_1629 cosh-def_binary64_1628 sinh-def_binary64_1627 tan-neg_binary64_1574 cos-neg_binary64_1573 sin-neg_binary64_1572 tan-0_binary64_1571 cos-0_binary64_1570 sin-0_binary64_1569 hang-m-tan_binary64_1568 hang-p-tan_binary64_1567 hang-m0-tan_binary64_1566 hang-p0-tan_binary64_1565 hang-0m-tan_binary64_1564 hang-0p-tan_binary64_1563 tan-+PI/2_binary64_1562 tan-+PI_binary64_1561 tan-PI_binary64_1560 tan-PI/3_binary64_1559 tan-PI/4_binary64_1558 tan-PI/6_binary64_1557 cos-+PI/2_binary64_1556 cos-+PI_binary64_1555 cos-PI_binary64_1554 cos-PI/2_binary64_1553 cos-PI/3_binary64_1552 cos-PI/4_binary64_1551 cos-PI/6_binary64_1550 sin-+PI/2_binary64_1549 sin-+PI_binary64_1548 sin-PI_binary64_1547 sin-PI/2_binary64_1546 sin-PI/3_binary64_1545 sin-PI/4_binary64_1544 sin-PI/6_binary64_1543 sub-1-sin_binary64_1542 sub-1-cos_binary64_1541 -1-add-sin_binary64_1540 -1-add-cos_binary64_1539 1-sub-sin_binary64_1538 1-sub-cos_binary64_1537 cos-sin-sum_binary64_1536 log-E_binary64_1532 log-pow_binary64_1531 log-rec_binary64_1530 log-div_binary64_1529 log-prod_binary64_1528 pow-base-0_binary64_1526 unpow1/3_binary64_1509 exp-to-pow_binary64_1504 pow-base-1_binary64_1502 unpow0_binary64_1501 unpow-1_binary64_1499 exp-lft-cube_binary64_1498 exp-lft-sqr_binary64_1497 exp-cbrt_binary64_1496 exp-sqrt_binary64_1495 exp-prod_binary64_1494 div-exp_binary64_1493 rec-exp_binary64_1492 prod-exp_binary64_1491 exp-diff_binary64_1490 exp-neg_binary64_1489 exp-sum_binary64_1488 e-exp-1_binary64_1487 exp-1-e_binary64_1485 exp-0_binary64_1484 rem-log-exp_binary64_1483 rem-exp-log_binary64_1482 cube-mult_binary64_1472 cube-div_binary64_1471 cube-neg_binary64_1469 rem-3cbrt-rft_binary64_1468 rem-3cbrt-lft_binary64_1467 rem-cbrt-cube_binary64_1466 rem-cube-cbrt_binary64_1465 sqr-abs_binary64_1457 sqr-neg_binary64_1456 rem-square-sqrt_binary64_1454 times-frac_binary64_1448 div-sub_binary64_1447 /-rgt-identity_binary64_1433 +-lft-identity_binary64_1426 mul0-rgt_binary64_1425 mul0-lft_binary64_1424 div0_binary64_1423 *-inverses_binary64_1422 +-inverses_binary64_1421 lft-mult-inverse_binary64_1420 rgt-mult-inverse_binary64_1419 remove-double-div_binary64_1418 difference-of-squares_binary64_1411 distribute-neg-frac_binary64_1406 distribute-frac-neg_binary64_1405 distribute-rgt1-in_binary64_1398 distribute-lft1-in_binary64_1397 distribute-rgt-out--_binary64_1396 distribute-lft-out--_binary64_1394 associate-/l/_binary64_1389 associate-/r/_binary64_1388 associate-/l*_binary64_1387 associate-/r*_binary64_1386 associate-*l/_binary64_1385 associate-*r/_binary64_1384
Counts
1 → 1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01325
12925
25025
313825
437425
5111525
6283325
7512625

prune3.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New101
Fresh011
Picked000
Done000
Total112
Error
0.2b
Counts
2 → 1
Compiler

Compiled 34 to 24 computations (29.4% saved)

localize10.0ms (0.1%)

Local error

Found 4 expressions with local error:

0.0b
(+.f64 (*.f64 a a) (*.f64 b b))
0.0b
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 4 (*.f64 b b))) 1)
0.0b
(*.f64 4 (*.f64 b b))
0.3b
(pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2)

rewrite163.0ms (2.3%)

Algorithm
rewrite-expression-head
Error
0.2b
Rules
13×add-sqr-sqrt_binary64_1464
11×*-un-lft-identity_binary64_1442 add-log-exp_binary64_1481
10×pow1_binary64_1503 add-exp-log_binary64_1480
add-cbrt-cube_binary64_1478
add-cube-cbrt_binary64_1477
unpow-prod-down_binary64_1521 pow-unpow_binary64_1519 pow-prod-down_binary64_1513 prod-exp_binary64_1491 cbrt-unprod_binary64_1475 associate-*l*_binary64_1383 cancel-sign-sub-inv_binary64_1408
sum-log_binary64_1533 diff-log_binary64_1534 difference-of-squares_binary64_1411
pow-pow_binary64_1514 pow-to-exp_binary64_1511 pow-exp_binary64_1510 unpow2_binary64_1507 sqr-pow_binary64_1414 unswap-sqr_binary64_1410 associate-*r*_binary64_1382 *-commutative_binary64_1373 flip3--_binary64_1446 sub-neg_binary64_1435 flip--_binary64_1417 difference-of-sqr-1_binary64_1412 distribute-lft-out--_binary64_1394 associate--l+_binary64_1379 flip3-+_binary64_1445 flip-+_binary64_1416 +-commutative_binary64_1372
Counts
4 → 68
Calls

4 calls:

11.0ms
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 4 (*.f64 b b))) 1)
7.0ms
(+.f64 (*.f64 a a) (*.f64 b b))
6.0ms
(*.f64 4 (*.f64 b b))
5.0ms
(pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2)
Compiler

Compiled 1630 to 735 computations (54.9% saved)

series1.1s (15.1%)

Error
0.0b
Counts
4 → 51
Calls

4 calls:

594.0ms
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 4 (*.f64 b b))) 1)
290.0ms
(pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2)
137.0ms
(+.f64 (*.f64 a a) (*.f64 b b))
34.0ms
(*.f64 4 (*.f64 b b))
Compiler

Compiled 1680 to 1429 computations (14.9% saved)

simplify123.0ms (1.7%)

Algorithm
egg-herbie
Rules
579×associate-*l*_binary64_1383
480×associate-*r*_binary64_1382
361×exp-prod_binary64_1494
326×distribute-rgt-in_binary64_1392
310×distribute-lft-in_binary64_1391
180×cancel-sign-sub-inv_binary64_1408
178×associate-+l+_binary64_1375
161×*-commutative_binary64_1373
151×associate-+r+_binary64_1374
131×unswap-sqr_binary64_1410
128×log-prod_binary64_1528
118×sqr-pow_binary64_1414
109×+-commutative_binary64_1372
89×exp-sum_binary64_1488
88×sub-neg_binary64_1435
66×cube-prod_binary64_1470
61×associate--l+_binary64_1379
60×swap-sqr_binary64_1409
49×unpow3_binary64_1508
48×difference-of-squares_binary64_1411
39×distribute-rgt-out_binary64_1395
31×pow-sqr_binary64_1415
30×log-pow_binary64_1531
29×distribute-rgt-neg-in_binary64_1400
27×pow-plus_binary64_1505
25×*-rgt-identity_binary64_1432
24×neg-sub0_binary64_1437 *-lft-identity_binary64_1431
23×distribute-lft-neg-in_binary64_1399
21×cube-unmult_binary64_1479 neg-mul-1_binary64_1438
19×distribute-lft-out_binary64_1393
16×mul-1-neg_binary64_1434
15×rem-sqrt-square_binary64_1455 difference-of-sqr-1_binary64_1412
14×unsub-neg_binary64_1436
11×difference-of-sqr--1_binary64_1413
10×associate-+l-_binary64_1377
distribute-rgt-out--_binary64_1396 associate-/l*_binary64_1387
unpow2_binary64_1507 div-exp_binary64_1493 associate-+r-_binary64_1376
unpow1/2_binary64_1506 unpow1_binary64_1500 distribute-lft-neg-out_binary64_1401
prod-exp_binary64_1491 +-rgt-identity_binary64_1427
exp-diff_binary64_1490 cube-mult_binary64_1472 sub0-neg_binary64_1429 distribute-rgt1-in_binary64_1398 associate-/l/_binary64_1389 associate-*r/_binary64_1384
distribute-rgt-neg-out_binary64_1402 distribute-lft1-in_binary64_1397 distribute-lft-out--_binary64_1394 associate-/r/_binary64_1388 associate-/r*_binary64_1386
1-exp_binary64_1486 exp-1-e_binary64_1485 rem-3cbrt-rft_binary64_1468 rem-3cbrt-lft_binary64_1467 rem-square-sqrt_binary64_1454 count-2_binary64_1390
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_1705 erf-erfc_binary64_1704 erf-odd_binary64_1703 if-if-and-not_binary64_1702 if-if-and_binary64_1701 if-if-or-not_binary64_1700 if-if-or_binary64_1699 if-not_binary64_1698 if-same_binary64_1697 if-false_binary64_1696 if-true_binary64_1695 not-gte_binary64_1694 not-lte_binary64_1693 not-gt_binary64_1692 not-lt_binary64_1691 gte-same_binary64_1690 lte-same_binary64_1689 gt-same_binary64_1688 lt-same_binary64_1687 sinh---cosh_binary64_1634 sinh-+-cosh_binary64_1633 sinh-cosh_binary64_1632 tanh-def-c_binary64_1631 tanh-def-b_binary64_1630 tanh-def-a_binary64_1629 cosh-def_binary64_1628 sinh-def_binary64_1627 tan-neg_binary64_1574 cos-neg_binary64_1573 sin-neg_binary64_1572 tan-0_binary64_1571 cos-0_binary64_1570 sin-0_binary64_1569 hang-m-tan_binary64_1568 hang-p-tan_binary64_1567 hang-m0-tan_binary64_1566 hang-p0-tan_binary64_1565 hang-0m-tan_binary64_1564 hang-0p-tan_binary64_1563 tan-+PI/2_binary64_1562 tan-+PI_binary64_1561 tan-PI_binary64_1560 tan-PI/3_binary64_1559 tan-PI/4_binary64_1558 tan-PI/6_binary64_1557 cos-+PI/2_binary64_1556 cos-+PI_binary64_1555 cos-PI_binary64_1554 cos-PI/2_binary64_1553 cos-PI/3_binary64_1552 cos-PI/4_binary64_1551 cos-PI/6_binary64_1550 sin-+PI/2_binary64_1549 sin-+PI_binary64_1548 sin-PI_binary64_1547 sin-PI/2_binary64_1546 sin-PI/3_binary64_1545 sin-PI/4_binary64_1544 sin-PI/6_binary64_1543 sub-1-sin_binary64_1542 sub-1-cos_binary64_1541 -1-add-sin_binary64_1540 -1-add-cos_binary64_1539 1-sub-sin_binary64_1538 1-sub-cos_binary64_1537 cos-sin-sum_binary64_1536 log-E_binary64_1532 log-rec_binary64_1530 log-div_binary64_1529 pow-base-0_binary64_1526 unpow1/3_binary64_1509 exp-to-pow_binary64_1504 pow-base-1_binary64_1502 unpow0_binary64_1501 unpow-1_binary64_1499 exp-lft-cube_binary64_1498 exp-lft-sqr_binary64_1497 exp-cbrt_binary64_1496 exp-sqrt_binary64_1495 rec-exp_binary64_1492 exp-neg_binary64_1489 e-exp-1_binary64_1487 exp-0_binary64_1484 rem-log-exp_binary64_1483 rem-exp-log_binary64_1482 cube-div_binary64_1471 cube-neg_binary64_1469 rem-cbrt-cube_binary64_1466 rem-cube-cbrt_binary64_1465 sqr-abs_binary64_1457 sqr-neg_binary64_1456 times-frac_binary64_1448 div-sub_binary64_1447 /-rgt-identity_binary64_1433 remove-double-neg_binary64_1430 --rgt-identity_binary64_1428 +-lft-identity_binary64_1426 mul0-rgt_binary64_1425 mul0-lft_binary64_1424 div0_binary64_1423 *-inverses_binary64_1422 +-inverses_binary64_1421 lft-mult-inverse_binary64_1420 rgt-mult-inverse_binary64_1419 remove-double-div_binary64_1418 cancel-sign-sub_binary64_1407 distribute-neg-frac_binary64_1406 distribute-frac-neg_binary64_1405 distribute-neg-out_binary64_1404 distribute-neg-in_binary64_1403 associate-*l/_binary64_1385 associate--r-_binary64_1381 associate--l-_binary64_1380 associate--r+_binary64_1378
Counts
119 → 83
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01472158
13361990
29471957
337591957
448051957
549981957

prune79.0ms (1.1%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New81283
Fresh000
Picked101
Done000
Total82284
Error
0.0b
Counts
84 → 2
Compiler

Compiled 989 to 479 computations (51.6% saved)

localize14.0ms (0.2%)

Local error

Found 4 expressions with local error:

0.0b
(-.f64 (+.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b))) (+.f64 (pow.f64 b 4) (pow.f64 a 4))) (*.f64 4 (*.f64 b b))) 1)
0.0b
(*.f64 4 (*.f64 b b))
0.0b
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
2.3b
(*.f64 (*.f64 a a) (*.f64 b b))

rewrite254.0ms (3.5%)

Algorithm
rewrite-expression-head
Error
0.0b
Rules
55×pow1_binary64_1503
39×add-exp-log_binary64_1480 add-cbrt-cube_binary64_1478
30×pow-prod-down_binary64_1513
24×prod-exp_binary64_1491 cbrt-unprod_binary64_1475
18×add-log-exp_binary64_1481
12×add-sqr-sqrt_binary64_1464
10×*-un-lft-identity_binary64_1442
add-cube-cbrt_binary64_1477 associate-*l*_binary64_1383
sum-log_binary64_1533
pow-prod-up_binary64_1512 pow-plus_binary64_1505 diff-log_binary64_1534
associate-*r*_binary64_1382 *-commutative_binary64_1373 cancel-sign-sub-inv_binary64_1408
pow2_binary64_1523 pow-sqr_binary64_1415 unswap-sqr_binary64_1410 difference-of-squares_binary64_1411
flip3--_binary64_1446 sub-neg_binary64_1435 flip--_binary64_1417 difference-of-sqr-1_binary64_1412 distribute-lft-out--_binary64_1394 associate--l+_binary64_1379
Counts
4 → 97
Calls

4 calls:

31.0ms
(-.f64 (+.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b))) (+.f64 (pow.f64 b 4) (pow.f64 a 4))) (*.f64 4 (*.f64 b b))) 1)
14.0ms
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
10.0ms
(*.f64 (*.f64 a a) (*.f64 b b))
6.0ms
(*.f64 4 (*.f64 b b))
Compiler

Compiled 2777 to 1458 computations (47.5% saved)

series897.0ms (12.4%)

Error
0.0b
Counts
4 → 33
Calls

4 calls:

589.0ms
(-.f64 (+.f64 (+.f64 (*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b))) (+.f64 (pow.f64 b 4) (pow.f64 a 4))) (*.f64 4 (*.f64 b b))) 1)
145.0ms
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
108.0ms
(*.f64 (*.f64 a a) (*.f64 b b))
37.0ms
(*.f64 4 (*.f64 b b))
Compiler

Compiled 1430 to 1211 computations (15.3% saved)

simplify127.0ms (1.8%)

Algorithm
egg-herbie
Rules
550×unswap-sqr_binary64_1410
487×*-commutative_binary64_1373
438×associate-+l+_binary64_1375
372×associate-+r+_binary64_1374
206×exp-prod_binary64_1494
181×associate-*r*_binary64_1382
178×associate-*l*_binary64_1383
175×+-commutative_binary64_1372
171×exp-sum_binary64_1488
131×sqr-pow_binary64_1414
101×log-prod_binary64_1528
83×associate--l+_binary64_1379
80×distribute-neg-in_binary64_1403
58×cube-prod_binary64_1470 sub-neg_binary64_1435
53×swap-sqr_binary64_1409
47×distribute-rgt-in_binary64_1392 distribute-lft-in_binary64_1391
42×div-exp_binary64_1493
37×associate-/l*_binary64_1387
34×cancel-sign-sub-inv_binary64_1408
26×prod-exp_binary64_1491 pow-sqr_binary64_1415 distribute-rgt-out_binary64_1395
22×unpow3_binary64_1508
21×distribute-rgt1-in_binary64_1398
16×pow-plus_binary64_1505
15×exp-diff_binary64_1490 distribute-rgt-neg-in_binary64_1400
14×distribute-lft-out_binary64_1393 associate-/r*_binary64_1386
12×cube-mult_binary64_1472
11×*-rgt-identity_binary64_1432 *-lft-identity_binary64_1431
10×distribute-lft-neg-in_binary64_1399
cube-unmult_binary64_1479 neg-sub0_binary64_1437
exp-lft-sqr_binary64_1497 difference-of-sqr-1_binary64_1412
neg-mul-1_binary64_1438
log-pow_binary64_1531
unpow1_binary64_1500 associate-/r/_binary64_1388 associate-+l-_binary64_1377
unpow2_binary64_1507 unpow1/2_binary64_1506 distribute-lft-neg-out_binary64_1401
rem-sqrt-square_binary64_1455 unsub-neg_binary64_1436 mul-1-neg_binary64_1434 difference-of-sqr--1_binary64_1413 associate-/l/_binary64_1389
distribute-lft1-in_binary64_1397 count-2_binary64_1390 associate-+r-_binary64_1376
1-exp_binary64_1486 exp-1-e_binary64_1485 rem-3cbrt-lft_binary64_1467 distribute-rgt-neg-out_binary64_1402
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_1705 erf-erfc_binary64_1704 erf-odd_binary64_1703 if-if-and-not_binary64_1702 if-if-and_binary64_1701 if-if-or-not_binary64_1700 if-if-or_binary64_1699 if-not_binary64_1698 if-same_binary64_1697 if-false_binary64_1696 if-true_binary64_1695 not-gte_binary64_1694 not-lte_binary64_1693 not-gt_binary64_1692 not-lt_binary64_1691 gte-same_binary64_1690 lte-same_binary64_1689 gt-same_binary64_1688 lt-same_binary64_1687 sinh---cosh_binary64_1634 sinh-+-cosh_binary64_1633 sinh-cosh_binary64_1632 tanh-def-c_binary64_1631 tanh-def-b_binary64_1630 tanh-def-a_binary64_1629 cosh-def_binary64_1628 sinh-def_binary64_1627 tan-neg_binary64_1574 cos-neg_binary64_1573 sin-neg_binary64_1572 tan-0_binary64_1571 cos-0_binary64_1570 sin-0_binary64_1569 hang-m-tan_binary64_1568 hang-p-tan_binary64_1567 hang-m0-tan_binary64_1566 hang-p0-tan_binary64_1565 hang-0m-tan_binary64_1564 hang-0p-tan_binary64_1563 tan-+PI/2_binary64_1562 tan-+PI_binary64_1561 tan-PI_binary64_1560 tan-PI/3_binary64_1559 tan-PI/4_binary64_1558 tan-PI/6_binary64_1557 cos-+PI/2_binary64_1556 cos-+PI_binary64_1555 cos-PI_binary64_1554 cos-PI/2_binary64_1553 cos-PI/3_binary64_1552 cos-PI/4_binary64_1551 cos-PI/6_binary64_1550 sin-+PI/2_binary64_1549 sin-+PI_binary64_1548 sin-PI_binary64_1547 sin-PI/2_binary64_1546 sin-PI/3_binary64_1545 sin-PI/4_binary64_1544 sin-PI/6_binary64_1543 sub-1-sin_binary64_1542 sub-1-cos_binary64_1541 -1-add-sin_binary64_1540 -1-add-cos_binary64_1539 1-sub-sin_binary64_1538 1-sub-cos_binary64_1537 cos-sin-sum_binary64_1536 log-E_binary64_1532 log-rec_binary64_1530 log-div_binary64_1529 pow-base-0_binary64_1526 unpow1/3_binary64_1509 exp-to-pow_binary64_1504 pow-base-1_binary64_1502 unpow0_binary64_1501 unpow-1_binary64_1499 exp-lft-cube_binary64_1498 exp-cbrt_binary64_1496 exp-sqrt_binary64_1495 rec-exp_binary64_1492 exp-neg_binary64_1489 e-exp-1_binary64_1487 exp-0_binary64_1484 rem-log-exp_binary64_1483 rem-exp-log_binary64_1482 cube-div_binary64_1471 cube-neg_binary64_1469 rem-3cbrt-rft_binary64_1468 rem-cbrt-cube_binary64_1466 rem-cube-cbrt_binary64_1465 sqr-abs_binary64_1457 sqr-neg_binary64_1456 rem-square-sqrt_binary64_1454 times-frac_binary64_1448 div-sub_binary64_1447 /-rgt-identity_binary64_1433 remove-double-neg_binary64_1430 sub0-neg_binary64_1429 --rgt-identity_binary64_1428 +-rgt-identity_binary64_1427 +-lft-identity_binary64_1426 mul0-rgt_binary64_1425 mul0-lft_binary64_1424 div0_binary64_1423 *-inverses_binary64_1422 +-inverses_binary64_1421 lft-mult-inverse_binary64_1420 rgt-mult-inverse_binary64_1419 remove-double-div_binary64_1418 difference-of-squares_binary64_1411 cancel-sign-sub_binary64_1407 distribute-neg-frac_binary64_1406 distribute-frac-neg_binary64_1405 distribute-neg-out_binary64_1404 distribute-rgt-out--_binary64_1396 distribute-lft-out--_binary64_1394 associate-*l/_binary64_1385 associate-*r/_binary64_1384 associate--r-_binary64_1381 associate--l-_binary64_1380 associate--r+_binary64_1378
Counts
130 → 91
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01702641
13302198
213342113
330902080
449212080
548382080

prune87.0ms (1.2%)

Pruning

2 alts after pruning (1 fresh and 1 done)

PrunedKeptTotal
New91091
Fresh011
Picked011
Done000
Total91293
Error
0.0b
Counts
93 → 2
Compiler

Compiled 1170 to 668 computations (42.9% saved)

localize16.0ms (0.2%)

Local error

Found 4 expressions with local error:

0.3b
(pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2)
0.3b
(pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2)
15.1b
(sqrt.f64 (+.f64 (*.f64 4 (*.f64 b b)) (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2)))
15.1b
(sqrt.f64 (+.f64 (*.f64 4 (*.f64 b b)) (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2)))

rewrite205.0ms (2.8%)

Algorithm
rewrite-expression-head
Error
0.0b
Rules
12×add-sqr-sqrt_binary64_1464
10×add-cube-cbrt_binary64_1477 *-un-lft-identity_binary64_1442
pow1_binary64_1503
add-exp-log_binary64_1480 sqrt-prod_binary64_1458 unpow-prod-down_binary64_1521 pow-unpow_binary64_1519
add-log-exp_binary64_1481 add-cbrt-cube_binary64_1478 sqrt-div_binary64_1459
pow1/2_binary64_1522 sqrt-pow1_binary64_1460 flip3-+_binary64_1445 flip-+_binary64_1416 rem-sqrt-square_binary64_1455 pow-pow_binary64_1514 pow-to-exp_binary64_1511 pow-exp_binary64_1510 unpow2_binary64_1507 sqr-pow_binary64_1414
Counts
4 → 66
Calls

4 calls:

11.0ms
(sqrt.f64 (+.f64 (*.f64 4 (*.f64 b b)) (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2)))
11.0ms
(sqrt.f64 (+.f64 (*.f64 4 (*.f64 b b)) (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2)))
5.0ms
(pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2)
5.0ms
(pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2)
Compiler

Compiled 3028 to 1402 computations (53.7% saved)

series1.4s (18.9%)

Error
0.0b
Counts
4 → 73
Calls

4 calls:

375.0ms
(sqrt.f64 (+.f64 (*.f64 4 (*.f64 b b)) (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2)))
319.0ms
(sqrt.f64 (+.f64 (*.f64 4 (*.f64 b b)) (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2)))
298.0ms
(pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2)
289.0ms
(pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2)
Compiler

Compiled 5218 to 3800 computations (27.2% saved)

simplify117.0ms (1.6%)

Algorithm
egg-herbie
Rules
781×unswap-sqr_binary64_1410
426×associate-*l*_binary64_1383
407×associate-*r*_binary64_1382
240×associate-+l+_binary64_1375
156×cancel-sign-sub-inv_binary64_1408
151×associate-+r+_binary64_1374
148×associate--l+_binary64_1379
141×sub-neg_binary64_1435
134×*-commutative_binary64_1373
123×+-commutative_binary64_1372
119×distribute-rgt-in_binary64_1392
107×distribute-lft-in_binary64_1391
74×times-frac_binary64_1448
71×sqr-pow_binary64_1414
67×associate-/r*_binary64_1386
60×unsub-neg_binary64_1436
58×exp-prod_binary64_1494
57×distribute-rgt-neg-in_binary64_1400
55×neg-sub0_binary64_1437
53×cube-prod_binary64_1470 associate-/l*_binary64_1387
52×neg-mul-1_binary64_1438
51×distribute-lft-neg-in_binary64_1399
38×log-prod_binary64_1528
30×associate--r+_binary64_1378
26×associate-*r/_binary64_1384
24×associate-*l/_binary64_1385
21×pow-sqr_binary64_1415
19×cube-unmult_binary64_1479 associate-+r-_binary64_1376
18×+-rgt-identity_binary64_1427 distribute-rgt-out_binary64_1395
17×rem-sqrt-square_binary64_1455 associate-+l-_binary64_1377
15×pow-plus_binary64_1505
14×exp-sum_binary64_1488
11×log-pow_binary64_1531 associate-/r/_binary64_1388
10×unpow3_binary64_1508 distribute-neg-frac_binary64_1406 distribute-neg-in_binary64_1403
distribute-rgt-out--_binary64_1396
swap-sqr_binary64_1409
cube-mult_binary64_1472 distribute-lft-neg-out_binary64_1401
unpow2_binary64_1507 unpow1/2_binary64_1506 unpow1_binary64_1500 sub0-neg_binary64_1429 associate-/l/_binary64_1389
distribute-lft-out--_binary64_1394
distribute-lft-out_binary64_1393
rem-square-sqrt_binary64_1454 difference-of-squares_binary64_1411
1-exp_binary64_1486 rem-3cbrt-rft_binary64_1468 *-rgt-identity_binary64_1432 distribute-rgt-neg-out_binary64_1402
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_1705 erf-erfc_binary64_1704 erf-odd_binary64_1703 if-if-and-not_binary64_1702 if-if-and_binary64_1701 if-if-or-not_binary64_1700 if-if-or_binary64_1699 if-not_binary64_1698 if-same_binary64_1697 if-false_binary64_1696 if-true_binary64_1695 not-gte_binary64_1694 not-lte_binary64_1693 not-gt_binary64_1692 not-lt_binary64_1691 gte-same_binary64_1690 lte-same_binary64_1689 gt-same_binary64_1688 lt-same_binary64_1687 sinh---cosh_binary64_1634 sinh-+-cosh_binary64_1633 sinh-cosh_binary64_1632 tanh-def-c_binary64_1631 tanh-def-b_binary64_1630 tanh-def-a_binary64_1629 cosh-def_binary64_1628 sinh-def_binary64_1627 tan-neg_binary64_1574 cos-neg_binary64_1573 sin-neg_binary64_1572 tan-0_binary64_1571 cos-0_binary64_1570 sin-0_binary64_1569 hang-m-tan_binary64_1568 hang-p-tan_binary64_1567 hang-m0-tan_binary64_1566 hang-p0-tan_binary64_1565 hang-0m-tan_binary64_1564 hang-0p-tan_binary64_1563 tan-+PI/2_binary64_1562 tan-+PI_binary64_1561 tan-PI_binary64_1560 tan-PI/3_binary64_1559 tan-PI/4_binary64_1558 tan-PI/6_binary64_1557 cos-+PI/2_binary64_1556 cos-+PI_binary64_1555 cos-PI_binary64_1554 cos-PI/2_binary64_1553 cos-PI/3_binary64_1552 cos-PI/4_binary64_1551 cos-PI/6_binary64_1550 sin-+PI/2_binary64_1549 sin-+PI_binary64_1548 sin-PI_binary64_1547 sin-PI/2_binary64_1546 sin-PI/3_binary64_1545 sin-PI/4_binary64_1544 sin-PI/6_binary64_1543 sub-1-sin_binary64_1542 sub-1-cos_binary64_1541 -1-add-sin_binary64_1540 -1-add-cos_binary64_1539 1-sub-sin_binary64_1538 1-sub-cos_binary64_1537 cos-sin-sum_binary64_1536 log-E_binary64_1532 log-rec_binary64_1530 log-div_binary64_1529 pow-base-0_binary64_1526 unpow1/3_binary64_1509 exp-to-pow_binary64_1504 pow-base-1_binary64_1502 unpow0_binary64_1501 unpow-1_binary64_1499 exp-lft-cube_binary64_1498 exp-lft-sqr_binary64_1497 exp-cbrt_binary64_1496 exp-sqrt_binary64_1495 div-exp_binary64_1493 rec-exp_binary64_1492 prod-exp_binary64_1491 exp-diff_binary64_1490 exp-neg_binary64_1489 e-exp-1_binary64_1487 exp-1-e_binary64_1485 exp-0_binary64_1484 rem-log-exp_binary64_1483 rem-exp-log_binary64_1482 cube-div_binary64_1471 cube-neg_binary64_1469 rem-3cbrt-lft_binary64_1467 rem-cbrt-cube_binary64_1466 rem-cube-cbrt_binary64_1465 sqr-abs_binary64_1457 sqr-neg_binary64_1456 div-sub_binary64_1447 mul-1-neg_binary64_1434 /-rgt-identity_binary64_1433 *-lft-identity_binary64_1431 remove-double-neg_binary64_1430 --rgt-identity_binary64_1428 +-lft-identity_binary64_1426 mul0-rgt_binary64_1425 mul0-lft_binary64_1424 div0_binary64_1423 *-inverses_binary64_1422 +-inverses_binary64_1421 lft-mult-inverse_binary64_1420 rgt-mult-inverse_binary64_1419 remove-double-div_binary64_1418 difference-of-sqr--1_binary64_1413 difference-of-sqr-1_binary64_1412 cancel-sign-sub_binary64_1407 distribute-frac-neg_binary64_1405 distribute-neg-out_binary64_1404 distribute-rgt1-in_binary64_1398 distribute-lft1-in_binary64_1397 count-2_binary64_1390 associate--r-_binary64_1381 associate--l-_binary64_1380
Counts
139 → 105
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01213096
12853036
28422986
336132986
454482986

prune144.0ms (2%)

Pruning

2 alts after pruning (0 fresh and 2 done)

PrunedKeptTotal
New1050105
Fresh000
Picked011
Done011
Total1052107
Error
0.0b
Counts
107 → 2
Compiler

Compiled 2576 to 1225 computations (52.4% saved)

regimes1.5s (20.4%)

Accuracy

Total 0.0b remaining (47.3%)

Threshold costs 0.0b (47.3%)

Compiler

Compiled 19151 to 13332 computations (30.4% saved)

bsearch0.0ms (0%)

simplify3.0ms (0%)

Algorithm
egg-herbie
Rules
+-commutative_binary64_1372
*-commutative_binary64_1373
1-exp_binary64_1486 sub-neg_binary64_1435
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_1702 if-if-and_binary64_1701 if-if-or-not_binary64_1700 if-if-or_binary64_1699 if-not_binary64_1698 if-same_binary64_1697 if-false_binary64_1696 if-true_binary64_1695 tan-0_binary64_1571 cos-0_binary64_1570 sin-0_binary64_1569 unpow1_binary64_1500 e-exp-1_binary64_1487 exp-1-e_binary64_1485 exp-0_binary64_1484 sqr-abs_binary64_1457 sqr-neg_binary64_1456 neg-mul-1_binary64_1438 neg-sub0_binary64_1437 unsub-neg_binary64_1436 mul-1-neg_binary64_1434 /-rgt-identity_binary64_1433 *-rgt-identity_binary64_1432 *-lft-identity_binary64_1431 remove-double-neg_binary64_1430 sub0-neg_binary64_1429 --rgt-identity_binary64_1428 +-rgt-identity_binary64_1427 +-lft-identity_binary64_1426 cancel-sign-sub-inv_binary64_1408 cancel-sign-sub_binary64_1407 distribute-neg-frac_binary64_1406 distribute-frac-neg_binary64_1405 distribute-neg-out_binary64_1404 distribute-neg-in_binary64_1403 distribute-rgt-neg-out_binary64_1402 distribute-lft-neg-out_binary64_1401 distribute-rgt-neg-in_binary64_1400 distribute-lft-neg-in_binary64_1399
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01837
12937
23037
32837

end2.0ms (0%)

Compiler

Compiled 25 to 21 computations (16% saved)

sample684.0ms (9.5%)

Algorithm
intervals
Results
330.0ms8000×body128valid
0.0msbody128invalid
Compiler

Compiled 108 to 85 computations (21.3% saved)

Profiling

Loading profile data...