28 #ifndef SPECK_TRAILS_H
29 #define SPECK_TRAILS_H
1419 uint32_t g_nrounds_n32_best = 14;
1421 double g_bounds_n32_best[SPECK_TRAIL_LEN] = {
1423 (1.0 / (double)(1ULL << 0)),
1424 (1.0 / (
double)(1ULL << 1)),
1425 (1.0 / (double)(1ULL << 3)),
1426 (1.0 / (
double)(1ULL << 7)),
1427 (1.0 / (double)(1ULL << 13)),
1428 (1.0 / (
double)(1ULL << 21)),
1429 (1.0 / (double)(1ULL << 27)),
1430 (1.0 / (
double)(1ULL << 32)),
1431 (1.0 / (double)(1ULL << 36)),
1432 (1.0 / (
double)(1ULL << 40)),
1433 (1.0 / (double)(1ULL << 44)),
1434 (1.0 / (
double)(1ULL << 47)),
1435 (1.0 / (double)(1ULL << 52)),
1436 (1.0 / (
double)(1ULL << 60)),
1441 { 0x9, 0x1000000, 0, 1.000000},
1442 { 0x8000000, 0x0, 0, 0.250000},
1443 { 0x80000, 0x80000, 0, 0.500000},
1444 { 0x80800, 0x480800, 0, 0.250000},
1445 { 0x480008, 0x2084008, 0, 0.062500},
1446 { 0x6080808, 0x164A0848, 0, 0.007812},
1447 {0xF2400040, 0x40104200, 0, 0.000122},
1448 { 0x820200, 0x1202, 0, 0.003906},
1449 { 0x9000, 0x10, 0, 0.062500},
1450 { 0x80, 0x0, 0, 0.250000},
1451 {0x80000000, 0x80000000, 0, 1.000000},
1452 {0x80800000, 0x80800004, 0, 0.500000},
1453 {0x80008004, 0x84008020, 0, 0.125000},
1454 {0x808080A0, 0xA08481A4, 0, 0.031250},
1455 { 0x40024, 0x4200D01, 0, 0.003906},
1472 uint32_t g_nrounds_n16_best = 9;
1474 double g_bounds_n16_best[SPECK_TRAIL_LEN] = {
1476 (1.0 / (double)(1ULL << 0)),
1477 (1.0 / (
double)(1ULL << 1)),
1478 (1.0 / (double)(1ULL << 3)),
1479 (1.0 / (
double)(1ULL << 5)),
1480 (1.0 / (double)(1ULL << 9)),
1481 (1.0 / (
double)(1ULL << 13)),
1482 (1.0 / (double)(1ULL << 18)),
1483 (1.0 / (
double)(1ULL << 24)),
1484 (1.0 / (double)(1ULL << 30)),
1485 (1.0 / (
double)(1ULL << 34)),
1493 {0x8054, 0xA900, 0, 1.000000},
1494 { 0x0, 0xA402, 0, 0.125000},
1495 {0xA402, 0x3408, 0, 0.125000},
1496 {0x50C0, 0x80E0, 0, 0.003906},
1497 { 0x181, 0x203, 0, 0.062500},
1498 { 0xC, 0x800, 0, 0.031250},
1499 {0x2000, 0x0, 0, 0.125000},
1500 { 0x40, 0x40, 0, 0.500000},
1501 {0x8040, 0x8140, 0, 0.500000},
1502 { 0x40, 0x542, 0, 0.250000},
1503 {0x8542, 0x904A, 0, 0.062500},
1523 uint32_t g_nrounds_n16_1 = 9;
1525 double g_bounds_n16_1[SPECK_TRAIL_LEN] = {
1527 (1.0 / (double)(1ULL << 0)),
1528 (1.0 / (
double)(1ULL << 1)),
1529 (1.0 / (double)(1ULL << 3)),
1530 (1.0 / (
double)(1ULL << 5)),
1531 (1.0 / (double)(1ULL << 9)),
1532 (1.0 / (
double)(1ULL << 13)),
1533 (1.0 / (double)(1ULL << 18)),
1534 (1.0 / (
double)(1ULL << 24)),
1535 (1.0 / (double)(1ULL << 31)),
1545 { 0xA60, 0x4205, 0, 1.0},
1546 { 0x211, 0xA04, 0, 0.031250},
1547 {0x2800, 0x10, 0, 0.062500},
1548 { 0x40, 0x0, 0, 0.250000},
1549 {0x8000, 0x8000, 0, 1.000000},
1550 {0x8100, 0x8102, 0, 0.500000},
1551 {0x8000, 0x840A, 0, 0.250000},
1552 {0x850A, 0x9520, 0, 0.062500},
1553 {0x802A, 0xD4A8, 0, 0.015625},
1554 { 0xA8, 0x520B, 0, 0.007812},
1578 uint32_t g_nrounds_n24_1 = 10;
1580 double g_bounds_n24_1[SPECK_TRAIL_LEN] = {
1582 (1.0 / (double)(1ULL << 0)),
1583 (1.0 / (
double)(1ULL << 1)),
1584 (1.0 / (double)(1ULL << 3)),
1585 (1.0 / (
double)(1ULL << 6)),
1586 (1.0 / (double)(1ULL << 10)),
1587 (1.0 / (
double)(1ULL << 14)),
1588 (1.0 / (double)(1ULL << 19)),
1589 (1.0 / (
double)(1ULL << 26)),
1590 (1.0 / (double)(1ULL << 35)),
1591 (1.0 / (
double)(1ULL << 45)),
1600 { 0x88A, 0x484008, 0, 1.0},
1601 {0x424000, 0x4042, 0, 0.031250},
1602 { 0x202, 0x20012, 0, 0.062500},
1603 { 0x10, 0x100080, 0, 0.125000},
1604 { 0x80, 0x800480, 0, 0.250000},
1605 { 0x480, 0x2084, 0, 0.250000},
1606 {0x802080, 0x8124A0, 0, 0.125000},
1607 { 0xA480, 0x98184, 0, 0.015625},
1608 {0x888020, 0xC48C00, 0, 0.007812},
1609 {0x240480, 0x6486, 0, 0.007812},
1610 {0x800082, 0x8324B2, 0, 0.015625},
1625 uint32_t g_nrounds_n24_2 = 10;
1627 double g_bounds_n24_2[SPECK_TRAIL_LEN] = {
1629 (1.0 / (double)(1ULL << 0)),
1630 (1.0 / (
double)(1ULL << 1)),
1631 (1.0 / (double)(1ULL << 4)),
1632 (1.0 / (
double)(1ULL << 8)),
1633 (1.0 / (double)(1ULL << 15)),
1634 (1.0 / (
double)(1ULL << 17)),
1635 (1.0 / (double)(1ULL << 21)),
1636 (1.0 / (
double)(1ULL << 26)),
1637 (1.0 / (double)(1ULL << 33)),
1638 (1.0 / (
double)(1ULL << 40)),
1647 {0x480901, 0x94009, 0, 1.000000},
1648 { 0x80802, 0x42084A, 0, 0.007812},
1649 {0x400052, 0x504200, 0, 0.007812},
1650 {0x820200, 0x1202, 0, 0.031250},
1651 { 0x9000, 0x10, 0, 0.062500},
1652 { 0x80, 0x0, 0, 0.250000},
1653 {0x800000, 0x800000, 0, 1.000000},
1654 {0x808000, 0x808004, 0, 0.500000},
1655 {0x800084, 0x8400A0, 0, 0.125000},
1656 { 0x80A0, 0x2085A4, 0, 0.062500},
1657 {0x808424, 0x84A905, 0, 0.007812},
1671 uint32_t g_nrounds_n24_best = 11;
1673 double g_bounds_n24_best[SPECK_TRAIL_LEN] = {
1675 (1.0 / (double)(1ULL << 0)),
1676 (1.0 / (
double)(1ULL << 1)),
1677 (1.0 / (double)(1ULL << 4)),
1678 (1.0 / (
double)(1ULL << 8)),
1679 (1.0 / (double)(1ULL << 15)),
1680 (1.0 / (
double)(1ULL << 17)),
1681 (1.0 / (double)(1ULL << 21)),
1682 (1.0 / (
double)(1ULL << 26)),
1683 (1.0 / (double)(1ULL << 33)),
1684 (1.0 / (
double)(1ULL << 40)),
1685 (1.0 / (double)(1ULL << 47)),
1693 {0x202040, 0x82921, 0, 1.000000},
1694 {0x480901, 0x94009, 0, 0.007812},
1695 { 0x80802, 0x42084A, 0, 0.007812},
1696 {0x400052, 0x504200, 0, 0.007812},
1697 {0x820200, 0x1202, 0, 0.031250},
1698 { 0x9000, 0x10, 0, 0.062500},
1699 { 0x80, 0x0, 0, 0.250000},
1700 {0x800000, 0x800000, 0, 1.000000},
1701 {0x808000, 0x808004, 0, 0.500000},
1702 {0x800084, 0x8400A0, 0, 0.125000},
1703 { 0x80A0, 0x2085A4, 0, 0.062500},
1704 {0x808424, 0x84A905, 0, 0.007812},
1713 uint32_t g_nrounds_n32_1 = 13;
1715 double g_bounds_n32_1[SPECK_TRAIL_LEN] = {
1717 (1.0 / (double)(1ULL << 0)),
1718 (1.0 / (
double)(1ULL << 1)),
1719 (1.0 / (double)(1ULL << 3)),
1720 (1.0 / (
double)(1ULL << 6)),
1721 (1.0 / (double)(1ULL << 11)),
1722 (1.0 / (
double)(1ULL << 16)),
1723 (1.0 / (double)(1ULL << 21)),
1724 (1.0 / (
double)(1ULL << 29)),
1725 (1.0 / (double)(1ULL << 34)),
1726 (1.0 / (
double)(1ULL << 38)),
1727 (1.0 / (double)(1ULL << 44)),
1728 (1.0 / (
double)(1ULL << 51)),
1729 (1.0 / (double)(1ULL << 58)),
1735 {0x50400092, 0x10404000, 0, 1.000000},
1736 {0x82100000, 0x120000, 0, 0.031250},
1737 { 0x901000, 0x1000, 0, 0.062500},
1738 { 0x8010, 0x10, 0, 0.125000},
1739 {0x10000090, 0x10000010, 0, 0.125000},
1740 {0x80100010, 0x100090, 0, 0.125000},
1741 {0x10901090, 0x10101410, 0, 0.015625},
1742 {0x80008400, 0x802480, 0, 0.015625},
1743 { 0x2404, 0x4010004, 0, 0.031250},
1744 { 0x10020, 0x20090000, 0, 0.062500},
1745 { 0x90100, 0x410101, 0, 0.062500},
1746 { 0x410800, 0x2490008, 0, 0.031250},
1747 { 0x2494100, 0x10014140, 0, 0.007812},
1748 {0x10010801, 0x900B0201, 0, 0.003906},
1775 uint32_t g_nrounds_n32_best_old = 13;
1777 double g_bounds_n32_best_old[SPECK_TRAIL_LEN] = {
1779 (1.0 / (double)(1ULL << 0)),
1780 (1.0 / (
double)(1ULL << 1)),
1781 (1.0 / (double)(1ULL << 3)),
1782 (1.0 / (
double)(1ULL << 6)),
1783 (1.0 / (double)(1ULL << 11)),
1784 (1.0 / (
double)(1ULL << 16)),
1785 (1.0 / (double)(1ULL << 21)),
1786 (1.0 / (
double)(1ULL << 29)),
1787 (1.0 / (double)(1ULL << 34)),
1788 (1.0 / (
double)(1ULL << 38)),
1789 (1.0 / (double)(1ULL << 44)),
1790 (1.0 / (
double)(1ULL << 51)),
1791 (1.0 / (double)(1ULL << 58)),
1797 { 0x802490, 0x10800004, 0, 1.0},
1798 {0x80808020, 0x4808000, 0, 0.031250},
1799 {0x24000080, 0x40080, 0, 0.031250},
1800 {0x80200080, 0x80000480, 0, 0.125000},
1801 { 0x802480, 0x800084, 0, 0.062500},
1802 {0x808080A0, 0x84808480, 0, 0.031250},
1803 {0x24000400, 0x42004, 0, 0.015625},
1804 { 0x202000, 0x12020, 0, 0.062500},
1805 { 0x10000, 0x80100, 0, 0.125000},
1806 { 0x80000, 0x480800, 0, 0.250000},
1807 { 0x480000, 0x2084000, 0, 0.125000},
1808 { 0x2080800, 0x124A0800, 0, 0.062500},
1809 {0x12480008, 0x80184008, 0, 0.007812},
1810 {0x880A0808, 0x88C8084C, 0, 0.007812},
1824 uint32_t g_nrounds_n32_3 = 13;
1826 double g_bounds_n32_3[SPECK_TRAIL_LEN] = {
1828 (1.0 / (double)(1ULL << 0)),
1829 (1.0 / (
double)(1ULL << 1)),
1830 (1.0 / (double)(1ULL << 3)),
1831 (1.0 / (
double)(1ULL << 6)),
1832 (1.0 / (double)(1ULL << 11)),
1833 (1.0 / (
double)(1ULL << 16)),
1834 (1.0 / (double)(1ULL << 21)),
1835 (1.0 / (
double)(1ULL << 29)),
1836 (1.0 / (double)(1ULL << 34)),
1837 (1.0 / (
double)(1ULL << 38)),
1838 (1.0 / (double)(1ULL << 44)),
1839 (1.0 / (
double)(1ULL << 51)),
1840 (1.0 / (double)(1ULL << 58)),
1846 {0x50400092, 0x10404000, 0, 1.000000},
1847 {0x82100000, 0x120000, 0, (1.0 / (double)(1ULL << 5))},
1848 { 0x901000, 0x1000, 0, (1.0 / (double)(1ULL << 4))},
1849 { 0x8010, 0x10, 0, (1.0 / (double)(1ULL << 3))},
1850 {0x10000090, 0x10000010, 0, (1.0 / (double)(1ULL << 3))},
1851 {0x80100010, 0x100090, 0, (1.0 / (double)(1ULL << 3))},
1852 {0x10901090, 0x10101410, 0, (1.0 / (double)(1ULL << 6))},
1853 {0x8000BC00, 0x801C80, 0, (1.0 / (double)(1ULL << 7))},
1854 { 0xE404, 0x4000004, 0, (1.0 / (double)(1ULL << 12))},
1855 { 0x20, 0x20000000, 0, (1.0 / (double)(1ULL << 5))},
1856 { 0x0, 0x1, 0, (1.0 / (double)(1ULL << 1))},
1857 { 0x1, 0x9, 0, (1.0 / (double)(1ULL << 1))},
1858 { 0x1000009, 0x1000041, 0, (1.0 / (double)(1ULL << 3))},
1859 { 0x8010041, 0x10249, 0, (1.0 / (double)(1ULL << 5))},
1866 #endif // #ifndef SPECK_TRAILS_H
Definition: common.hh:272