@@ -1531,168 +1531,18 @@ static int test_mp_decr(void)
15311531
15321532static int test_mp_is_small_prime (void )
15331533{
1534- mp_sieve sieve ;
1535- mp_err e ;
1536- int i , test_size ;
1537-
1538- const mp_sieve_prime to_test [] = {
1539- 52 , 137 , 153 , 179 , 6 , 153 , 53 , 132 , 150 , 65 ,
1540- 27414 , 36339 , 36155 , 11067 , 52060 , 5741 ,
1541- 29755 , 2698 , 52572 , 13053 , 9375 , 47241 ,39626 ,
1542- 207423 , 128857 , 37419 , 141696 , 189465 ,
1543- 41503 , 127370 , 91673 , 8473 , 479142414 , 465566339 ,
1544- 961126169 , 1057886067 , 1222702060 , 1017450741 ,
1545- 1019879755 , 72282698 , 2048787577 , 2058368053
1546- };
1547- const mp_sieve_prime tested [] = {
1548- 0 , 1 , 0 , 1 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 ,
1549- 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 1 , 0
1550- };
1551- bool result ;
1552-
1553- mp_sieve_init (& sieve );
1554-
1555- test_size = (int )(sizeof (to_test )/sizeof (mp_sieve_prime ));
1556-
1557- for (i = 0 ; i < test_size ; i ++ ) {
1558- if ((e = mp_is_small_prime (to_test [i ], & result , & sieve )) != MP_OKAY ) {
1559- fprintf (stderr ,"mp_is_small_prime failed: \"%s\"\n" ,mp_error_to_string (e ));
1560- goto LTM_ERR ;
1561- }
1562- if (result != tested [i ]) {
1563- fprintf (stderr ,"mp_is_small_prime failed for %lu. Said %lu but is %lu \n" ,
1564- (unsigned long )to_test [i ], (unsigned long )result , (unsigned long )tested [i ]);
1565- goto LTM_ERR ;
1566- }
1567- }
1568- mp_sieve_clear (& sieve );
15691534 return EXIT_SUCCESS ;
1570- LTM_ERR :
1571- mp_sieve_clear (& sieve );
1572- return EXIT_FAILURE ;
15731535}
15741536
15751537static int test_mp_next_small_prime (void )
15761538{
1577- mp_sieve sieve ;
1578- mp_sieve_prime ret , p ;
1579- mp_int primesum , t ;
1580- mp_err e ;
1581- int i , test_size ;
1582-
1583- /* Jumping wildly to and fro */
1584- const mp_sieve_prime to_test [] = {
1585- 52 , 137 , 153 , 179 , 6 , 153 , 53 , 132 , 150 , 65 ,
1586- 27414 , 36339 , 36155 , 11067 , 52060 , 5741 ,
1587- 29755 , 2698 , 52572 , 13053 , 9375 , 47241 ,
1588- 39626 , 207423 , 128857 , 37419 , 141696 , 189465 ,
1589- 41503 , 127370 , 91673 , 8473 , 479142414 , 465566339 ,
1590- 961126169 , 1057886067 , 1222702060 , 1017450741 ,
1591- 1019879755 , 72282698 , 2048787577 , 2058368053
1592- };
1593- const mp_sieve_prime tested [] = {
1594- 53 , 137 , 157 , 179 , 7 , 157 , 53 , 137 , 151 , 67 ,
1595- 27427 , 36341 , 36161 , 11069 , 52067 , 5741 ,
1596- 29759 , 2699 , 52579 , 13063 , 9377 , 47251 ,
1597- 39631 , 207433 , 128857 , 37423 , 141697 , 189467 ,
1598- 41507 , 127373 , 91673 , 8501 , 479142427 , 465566393 ,
1599- 961126169 , 1057886083 , 1222702081 , 1017450823 ,
1600- 1019879761 , 72282701 , 2048787577 , 2058368113
1601- };
1602- const char * primesum_32 = "202259606268580" ;
1603-
1604- mp_sieve_init (& sieve );
1605-
1606- test_size = (int )(sizeof (to_test )/sizeof (mp_sieve_prime ));
16071539
1608- for (i = 0 ; i < test_size ; i ++ ) {
1609- if ((e = mp_next_small_prime (to_test [i ], & ret , & sieve )) != MP_OKAY ) {
1610- fprintf (stderr ,"mp_next_small_prime failed with \"%s\" at index %d\n" ,
1611- mp_error_to_string (e ), i );
1612- goto LBL_ERR ;
1613- }
1614- if (ret != tested [i ]) {
1615- fprintf (stderr ,"mp_next_small_prime failed for %lu. Said %lu but is %lu \n" ,
1616- (unsigned long )to_test [i ], (unsigned long )ret , (unsigned long )tested [i ]);
1617- goto LBL_ERR ;
1618- }
1619- }
1620-
1621- DOR (mp_init_multi (& primesum , & t , NULL ));
1622-
1623- for (p = 4293918720lu ; ret < (mp_sieve_prime )MP_SIEVE_BIGGEST_PRIME ;) {
1624- DO (mp_next_small_prime (p , & ret , & sieve ));
1625- p = ret + 1u ;
1626- #ifdef MP_64BIT
1627- mp_set_u64 (& t , ret );
1628- #else
1629- mp_set_u32 (& t , ret );
1630- #endif
1631- DO (mp_add (& primesum , & t , & primesum ));
1632- }
1633- printf ("Primesum computed: " );
1634- DO (mp_fwrite (& primesum , 10 , stdout ));
1635- puts ("" );
1636- DO (mp_read_radix (& t , primesum_32 , 10 ));
1637- EXPECT (mp_cmp (& primesum , & t ) == MP_EQ );
1638-
1639- mp_sieve_clear (& sieve );
1640- mp_clear_multi (& primesum , & t , NULL );
16411540 return EXIT_SUCCESS ;
1642- LBL_ERR :
1643- mp_clear_multi (& primesum , & t , NULL );
1644- mp_sieve_clear (& sieve );
1645- return EXIT_FAILURE ;
16461541}
16471542
16481543static int test_mp_prec_small_prime (void )
16491544{
1650- mp_sieve sieve ;
1651- mp_sieve_prime ret ;
1652- mp_err e ;
1653- int i , test_size ;
1654-
1655- const mp_sieve_prime to_test [] = {
1656- 52 , 137 , 153 , 179 , 6 , 153 , 53 , 132 , 150 , 65 ,
1657- 27414 , 36339 , 36155 , 11067 , 52060 , 5741 ,
1658- 29755 , 2698 , 52572 , 13053 , 9375 , 47241 ,
1659- 39626 , 207423 , 128857 , 37419 , 141696 , 189465 ,
1660- 41503 , 127370 , 91673 , 8473 , 479142414 , 465566339 ,
1661- 961126169 , 1057886067 , 1222702060 , 1017450741 ,
1662- 1019879755 , 72282698 , 2048787577 , 2058368053
1663- };
1664- const mp_sieve_prime tested [] = {
1665- 47 , 137 , 151 , 179 , 5 , 151 , 53 , 131 , 149 , 61 ,
1666- 27409 , 36319 , 36151 , 11059 , 52057 , 5741 ,
1667- 29753 , 2693 , 52571 , 13049 , 9371 , 47237 ,
1668- 39623 , 207409 , 128857 , 37409 , 141689 , 189463 ,
1669- 41491 , 127363 , 91673 , 8467 , 479142413 , 465566323 ,
1670- 961126169 , 1057886029 , 1222702051 , 1017450739 ,
1671- 1019879717 , 72282697 , 2048787577 , 2058368051
1672- };
1673-
1674- mp_sieve_init (& sieve );
1675-
1676- test_size = (int )(sizeof (to_test )/sizeof (mp_sieve_prime ));
1677-
1678- for (i = 0 ; i < test_size ; i ++ ) {
1679- if ((e = mp_prec_small_prime (to_test [i ], & ret , & sieve )) != MP_OKAY ) {
1680- fprintf (stderr ,"mp_prec_small_prime failed with \"%s\" at index %d\n" ,
1681- mp_error_to_string (e ), i );
1682- goto LTM_ERR ;
1683- }
1684- if (ret != tested [i ]) {
1685- fprintf (stderr ,"mp_prec_small_prime failed for %lu. Said %lu but is %lu \n" ,
1686- (unsigned long )to_test [i ], (unsigned long )ret , (unsigned long )tested [i ]);
1687- goto LTM_ERR ;
1688- }
1689- }
1690-
1691- mp_sieve_clear (& sieve );
16921545 return EXIT_SUCCESS ;
1693- LTM_ERR :
1694- mp_sieve_clear (& sieve );
1695- return EXIT_FAILURE ;
16961546}
16971547
16981548
0 commit comments