jfalcou/eve

[BENCH REPORT] Some stuff to investigate

jfalcou opened this issue · 1 comments

Nothing drastic , just here for reference.
Bench have been revamped to work again, and @jtlap made some observation of thign we need to investigate

bit_ceil         scalar float double
bit_floor        scalar float double
bit_shl(eve::wide<int, eve::fixed<1ULL>>, int32)
bit_shr(eve::wide<int, eve::fixed<1ULL>>, int32)
cbrt(eve::wide<double, eve::fixed<2>>) 
cbrt(eve::wide<double, eve::fixed<1ULL>>)
exponent scalar float and double
frac scalar float and double
frexp pedantic scalar  float 
frexp regular  scalar  double and float
is_equal(eve::wide<double, eve::fixed<1ULL>>, eve::wide<double, eve::fixed<1ULL>>) + numeric
is_even scalar double float
is_finite(eve::wide<double, eve::fixed<1ULL>>)
is_finite(eve::wide<float, eve::fixed<1ULL>>)
is_flint scalar 
is_greater_equal(eve::wide<float, eve::fixed<1ULL>>, eve::wide<float, eve::fixed<1ULL>>)
is_greater_equal(eve::wide<double, eve::fixed<1ULL>>, eve::wide<double, eve::fixed<1ULL>>
is_greater
is_less 
is_less_equal (_lessgreater in float but no double !)
is_normal (eve::wide<double, eve::fixed<1ULL>>)
is_normal(eve::wide<float, eve::fixed<1ULL>>)
is_not_denormal(eve::wide<double, eve::fixed<1ULL>>)
s_not_equal(eve::wide<double, eve::fixed<1ULL>>, eve::wide<double, eve::fixed<1ULL>>
is_not_equal(eve::wide<float, eve::fixed<1ULL>>, eve::wide<float, eve::fixed<1ULL>>)
is_not_finite(eve::wide<double, eve::fixed<1ULL>>)
is_not_finite(eve::wide<float, eve::fixed<1ULL>>)
is_not_greater_equal(eve::wide<float, eve::fixed<1ULL>>, eve::wide<float, eve::fixed<1ULL>>)
is_not_greater(eve::wide<float, eve::fixed<1ULL>>, eve::wide<float, eve::fixed<1ULL>>)
is_unordered(eve::wide<double, eve::fixed<1ULL>>, eve::wide<double, eve::fixed<1ULL>>)
is_unordered(eve::wide<float, eve::fixed<1ULL>>, eve::wide<float, eve::fixed<1ULL>>)
eve::ldexp[eve::pedantic2](eve::wide<float, eve::fixed<1ULL>>, eve::wide<int, eve::fixed<1ULL>>)
max[eve::numeric2](double, double)
nearest(double)
nearest(float)
eve::pedantic(eve::next)(eve::wide<float, eve::fixed<1ULL>>, eve::wide<int, eve::fixed<1ULL>>)
popcount(eve::wide<unsigned long, eve::fixed<1ULL>>)
rem pedantic is very very bad for short ints

These function are at least not so good versus scalar and trigo rempio2 is very slow for big inputs
acosh double
acsch double
asecd double
asecpi double
asec double
asinh double
cos regular double
cotd.half_circle.float
cotd.regular.double
cotd.regular.float
cotpi scalarfloat/double is better than simd
cot regular double (as cos)
cot regular float pas terrible
pow_abs.raw.double pas terrible
pow_abs.regular.double pas terrible
sec.regular.double as cos
sincos.regular.double as cos
sin.regular.double as cos
tan.regular.double as cos