Loading [MathJax]/extensions/tex2jax.js
Parallel numerical verification of the σ_odd problem  October 6, 2018
All Classes Namespaces Files Functions Variables Typedefs Macros
Typedefs | Functions
threads Namespace Reference

Typedefs

using nat_type = sigmaodd::nat_type
 
using prime_type = sigmaodd::prime_type
 

Functions

std::set< nat_typethreads_check_gentle_varsigma_odd__by_range (unsigned int nb_thread, nat_type first_n, nat_type last_n, const std::set< nat_type > &previous_bad_table, bool print_bad, unsigned int range_size)
 
std::set< nat_typethreads_check_gentle_varsigma_odd__dynamic (unsigned int nb_thread, nat_type first_n, nat_type last_n, const std::set< nat_type > &previous_bad_table=std::set< nat_type >(), bool print_bad=true, unsigned int range_size=20000, unsigned int master_range_size=200)
 Check in the order all odd gentle numbers between first_n and last_n, and if print_bad then print all bad numbers between first_n and last_n (included). The consequence of the result is that: if (all numbers < first_n respect the conjecture) and (all perfect squares < last_n respect the conjecture) and (all bad numbers < last_n respect the conjecture) then all numbers < last_n respect the conjecture. More...
 
std::set< nat_typethreads_check_gentle_varsigma_odd__one_by_one (unsigned int nb_thread, nat_type first_n, nat_type last_n, const std::set< nat_type > &previous_bad_table, bool print_bad)
 

Typedef Documentation

◆ nat_type

Definition at line 25 of file threads.hpp.

◆ prime_type

Definition at line 26 of file threads.hpp.

Function Documentation

◆ threads_check_gentle_varsigma_odd__by_range()

std::set< nat_type > threads::threads_check_gentle_varsigma_odd__by_range ( unsigned int  nb_thread,
nat_type  first_n,
nat_type  last_n,
const std::set< nat_type > &  previous_bad_table = std::set< nat_type >(),
bool  print_bad = true,
unsigned int  range_size = 2000 
)

Check in the order all odd gentle numbers between first_n and last_n, and if print_bad then print all bad numbers between first_n and last_n (included). The consequence of the result is that: if (all numbers < first_n respect the conjecture) and (all perfect squares < last_n respect the conjecture) and (all bad numbers < last_n respect the conjecture) then all numbers < last_n respect the conjecture.

One master thread dispatch one range of numbers for each of the (nb_thread - 1) slaves threads and compute itself one range. Then wait that they all finish, and so forth with next numbers.

Printing is do in increasing order.

sigmaodd::primes.cpp must be compiled without the macro PRIME16.

Parameters
nb_thread>= 1
first_n3 <= odd <= last_n
last_n<= MAX_POSSIBLE_N
previous_bad_tableif not empty then must be contains all bad numbers < first_n
print_bad
range_sizeeven
Returns
the set of all bad numbers between first_n and last_n (included)

Definition at line 27 of file threads.cpp.

◆ threads_check_gentle_varsigma_odd__dynamic()

std::set< nat_type > threads::threads_check_gentle_varsigma_odd__dynamic ( unsigned int  nb_thread,
nat_type  first_n,
nat_type  last_n,
const std::set< nat_type > &  previous_bad_table = std::set< nat_type >(),
bool  print_bad = true,
unsigned int  range_size = 20000,
unsigned int  master_range_size = 200 
)

Check in the order all odd gentle numbers between first_n and last_n, and if print_bad then print all bad numbers between first_n and last_n (included). The consequence of the result is that: if (all numbers < first_n respect the conjecture) and (all perfect squares < last_n respect the conjecture) and (all bad numbers < last_n respect the conjecture) then all numbers < last_n respect the conjecture.

One master thread dispatch one range of numbers for each of the (nb_thread - 1) slaves threads and compute itself one range. There is no barrier, the master thread dispatch new range for free slave threads and compute itself one new range. And so forth with next numbers.

Printing is do in increasing order.

sigmaodd::primes.cpp must be compiled without the macro PRIME16.

Parameters
nb_thread>= 1
first_n3 <= odd <= last_n
last_n<= MAX_POSSIBLE_N
previous_bad_tableif not empty then must be contains all bad numbers < first_n
print_bad
range_sizeeven
master_range_sizeeven
Returns
the set of all bad numbers between first_n and last_n (included)

Definition at line 107 of file threads.cpp.

◆ threads_check_gentle_varsigma_odd__one_by_one()

std::set< nat_type > threads::threads_check_gentle_varsigma_odd__one_by_one ( unsigned int  nb_thread,
nat_type  first_n,
nat_type  last_n,
const std::set< nat_type > &  previous_bad_table = std::set< nat_type >(),
bool  print_bad = true 
)

Check in the order all odd gentle numbers between first_n and last_n, and if print_bad then print all bad numbers between first_n and last_n (included). The consequence of the result is that: if (all numbers < first_n respect the conjecture) and (all perfect squares < last_n respect the conjecture) and (all bad numbers < last_n respect the conjecture) then all numbers < last_n respect the conjecture.

One master thread dispatch one number for each of the (nb_thread - 1) slaves threads and compute itself one number. Then wait that they all finish, and so forth with next numbers.

Printing is do in not deterministic order.

sigmaodd::primes.cpp must be compiled without the macro PRIME16.

Parameters
nb_thread>= 1
first_n3 <= odd <= last_n
last_n<= MAX_POSSIBLE_N
previous_bad_tableif not empty then must be contains all bad numbers < first_n
print_bad
Returns
the set of all bad numbers between first_n and last_n (included)

Definition at line 227 of file threads.cpp.