Primality::Primality():prime(3) { key_type tmp; key_type two(2ul); tmp = two.pow(9*(key_type::lenght/10) ); prime = get_random_integer(tmp); }
int get_param_integer(char *value, int *integer) { if (strcmp(value, "random")) { *integer = (int) strtoll(value, NULL, 10); } else { *integer = get_random_integer(); } return 0; }
const Primality::key_type Primality::prime_by_miller_rabin(key_type max) { do { prime = get_random_integer(max); } while(!miller_rabin_test(prime)); return prime; }
TrajectoryLookupTable::TrajectoryControlParameters generate_random_trajectory_control_parameters_sample(int i_v, int dist) { TrajectoryLookupTable::TrajectoryControlParameters tcp; double v0 = get_initial_velocity_by_index(i_v); float distance = get_distance_by_index(dist); // distance = delta_t * (v0 + vt) / 2 -> trapezoidal rule tcp.vf = 2.0 * distance / PROFILE_TIME - v0; tcp.tt = PROFILE_TIME; tcp.a = (tcp.vf - v0) / tcp.tt; tcp.k2 = get_k2_by_index(get_random_integer(N_K2)); tcp.k3 = get_k3_by_index(get_random_integer(N_K3)); tcp.valid = true; return (tcp); }
const Primality::key_type Primality::get_random_prime() { prime = get_random_integer(); return get_next_prime(); }