29 std::cout <<
"\nList of enabled instructions' sets:\n";
32 std::cout <<
" - SSE2 instructions enabled" << std::endl;
34 std::cout <<
" - SSE2 instructions *not* enabled" << std::endl;
37 std::cout <<
" - SSE3 instructions enabled" << std::endl;
39 std::cout <<
" - SSE3 instructions *not* enabled" << std::endl;
43 std::cout <<
" - SSE4.1 instructions enabled" << std::endl;
45 std::cout <<
" - SSE4.1 instructions *not* enabled" << std::endl;
48 std::cout <<
" - AVX instructions enabled" << std::endl;
50 std::cout <<
" - AVX instructions *not* enabled" << std::endl;
79 nv[
i] = n = std::floor(
LOG2E * input[
i] + 0.5 );
91 x -= px * 6.93145751953125E-1;
92 x -= px * 1.42860682030941723212E-6;
128 u.
ll = (
long long) (n) << 52;
129 output[
i] = output[
i] * u.
d;
155 double* x_arr =
new double [
arr_size];
164 input[
i] = original_input[
i];
175 x = getMantExponent(x,fe);
228 y -= fe * 2.121944400546905827679e-4;
232 z += fe * 0.693359375;
double const unsigned int arr_size
void fast_exp_vect_46(double const *input, double *output, const unsigned int arr_size)
Some tweaks to make it vectorise with gcc46.
constexpr double EXP_LIMIT
void print_instructions_info()
Print the instructions used on screen.
constexpr double LOG_UPPER_LIMIT
constexpr double LOG_LOWER_LIMIT
void fast_log_vect_46(double const *input, double *output, const unsigned int arr_size)
Some tweaks to make it vectorise with gcc46.
Used to switch between different type of interpretations of the data (64 bits)