Crate erydanos
Source pub use acos::eacos;
pub use acosf::eacosf;
pub use asin::easin;
pub use asinf::easinf;
pub use atan::eatan;
pub use atan2::eatan2;
pub use atan2f::eatan2f;
pub use atanf::eatanf;
pub use cbrt::ecbrt;
pub use cbrtf::ecbrtf;
pub use cos::ecos;
pub use cosf::ecosf;
pub use exp::eexp;
pub use expf::eexpf;
pub use floor::efloor;
pub use floor::efloorf;
- acos
- acosf
- asin
- asinf
- atan
- atan2
- atan2f
- atanf
- cbrt
- cbrtf
- ceil
- ceilf
- cos
- cosf
- double_precision
- exp
- expf
- floor
- __m128x2i
- Type represents u128, in low u64 and high u64 part
Lower parts, and upper parts are interleaved
- ArcCos
- ArcSin
- ArcTan
- ArcTan2
- Cosine
- CubeRoot
- Euclidean2DDistance
- Euclidean3DDistance
- Euclidean4DDistance
- Exponential
- FusedMultiplyAdd
- IsNegZero
- Checks if values is negative zero
- Logarithmic
- Power
- Roundable
- Signed
- Sine
- Sqrtf
- Tangent
- _mm256_abs_pd⚠
- Modulus operator for f64
- _mm256_abs_ps⚠
- Modulus operator for f32
- _mm256_acos_pd⚠
- Computes arccos, error bound ULP 2.0
- _mm256_acos_ps⚠
- Computes arccos, error bound ULP 2.0
- _mm256_adds_epi32⚠
- Add signed 32 bytes integers using saturation
- _mm256_adds_epu32⚠
- Add unsigned 32 bytes integers using saturation
- _mm256_asin_ps⚠
- Computes arcsin, error bound ULP 2.0
- _mm256_atan2_pd⚠
- Computes atan for Y,X
- _mm256_atan2_ps⚠
- Computes atan for Y,X
- _mm256_atan_pd⚠
- Computes Atan function with ULP 2.0 error
- _mm256_atan_ps⚠
- Computes Atan function with ULP 1.0 error
- _mm256_blendv_epi32⚠
- _mm256_cbrt_fast_ps⚠
- Takes cube root from value ULP 1.5, Skipping NaN, Inf checks
- _mm256_cbrt_ps⚠
- Takes cube root from value ULP 1.5
- _mm256_cmpge_epu16⚠
- Compare greater than or equal to unsigned 16,
- _mm256_cmpge_epu32⚠
- Compare greater than or equal to unsigned 32,
- _mm256_cmpgt_epu16⚠
- Compare greater than unsigned 16,
- _mm256_cmpgt_epu32⚠
- Compare greater than unsigned 32,
- _mm256_cmple_epu16⚠
- Compare less than or equal to unsigned 16,
- _mm256_cmple_epu32⚠
- Compare less than or equal to unsigned 32,
- _mm256_cmplt_epu16⚠
- Compare less than unsigned 16,
- _mm256_cmplt_epu32⚠
- Compare less than unsigned 16,
- _mm256_copysign_pd⚠
- Copies sign from
y
to x
- _mm256_cos_pd⚠
- Computes cosine function with error bound ULP 2.0
- _mm256_cos_ps⚠
- Computes cosine function with error bound ULP 1.5
- _mm256_cvtepi64_epi32x⚠
- Pack 64bytes integers into 32 bytes
- _mm256_cvtepi64_pdx⚠
- _mm256_cvtpd_epu64x⚠
- _mm256_eqzero_ps⚠
- Returns flag value is zero
- _mm256_exp_pd⚠
- Computes exp for an argument ULP 2.0
- _mm256_exp_ps⚠
- Computes exp for an argument ULP 1.0
- _mm256_expq_fast_pd⚠
- Method that computes exp skipping Inf, Nan checks error bound ULP 2.0
- _mm256_expq_fast_ps⚠
- Method that computes exp skipping Inf, Nan checks error bound ULP 1.0
- _mm256_extract_pd⚠
- Extracts f64 value
- _mm256_extract_ps⚠
- If mask then
true_vals
otherwise false_val
- _mm256_fmod_pd⚠
- Computes fmod for f64
- _mm256_fmod_ps⚠
- Computes fmod for f32
- _mm256_hypot3_fast_pd⚠
- Method that computes 3D Euclidian distance ULP 0.66667, skipping Inf, Nan checks
- _mm256_hypot3_fast_ps⚠
- Method that computes 3D Euclidian distance ULP 0.6666, skipping Inf, Nan checks
- _mm256_hypot3_pd⚠
- Method that computes 3D Euclidian distance ULP 0.66667
- _mm256_hypot3_ps⚠
- Method that computes 3D Euclidian distance ULP 0.6667
- _mm256_hypot4_fast_pd⚠
- Method that computes 4D Euclidian distance ULP 0.6666, skipping Inf, Nan checks
- _mm256_hypot4_fast_ps⚠
- Method that computes 4D Euclidian distance ULP 0.6666, skipping Inf, Nan checks
- _mm256_hypot4_pd⚠
- Method that computes 4D Euclidian distance ULP 0.6666
- _mm256_hypot4_ps⚠
- Method that computes 4D Euclidian distance ULP 0.6666
- _mm256_hypot_fast_pd⚠
- Method that computes 2D Euclidian distance ULP 0.6667, skipping Inf, Nan checks
- _mm256_hypot_fast_ps⚠
- Method that computes 2D Euclidian distance ULP 0.6667, skipping Inf, Nan checks
- _mm256_hypot_pd⚠
- Method that computes 2D Euclidian distance ULP 0.6667
- _mm256_hypot_ps⚠
- Method that computes 2D Euclidian distance ULP 0.6667
- _mm256_ilogb2k_pd⚠
- Founds n in x=a+𝑛ln(2), |a| <= 1
- _mm256_ilogb2kq_ps⚠
- Founds n in x=a+𝑛ln(2), |a| <= 1
- _mm256_isinf_pd⚠
- Returns flag value is Infinity
- _mm256_isinf_ps⚠
- Returns flag value is Infinity
- _mm256_isnan_pd⚠
- Returns true flag if value is NaN
- _mm256_isnan_ps⚠
- Returns true flag if value is NaN
- _mm256_isneginf_pd⚠
- Returns flag value is Neg Infinity
- _mm256_isneginf_ps⚠
- Returns flag value is Neg Infinity
- _mm256_isnotintegral_ps⚠
- Checks if arguments is not integral value
- _mm256_ldexp3k_pd⚠
- Founds a in x=a+𝑛ln(2), |a| <= 1
- _mm256_ldexp3kq_ps⚠
- Founds a in x=a+𝑛ln(2), |a| <= 1
- _mm256_ln_fast_pd⚠
- Method that computes ln skipping Inf, Nan checks, error bound ULP 1.5
- _mm256_ln_fast_ps⚠
- Method that computes ln skipping Inf, Nan checks, error bound ULP 1.5
- _mm256_ln_pd⚠
- Computes natural logarithm for an argument ULP 1.5
- _mm256_ln_ps⚠
- Computes natural logarithm for an argument ULP 1.5
- _mm256_ltzero_ps⚠
- Returns flag value is lower than zero
- _mm256_max_epi64x⚠
- Takes max for epi64
- _mm256_min_epi64x⚠
- Takes min for epi64
- _mm256_mlaf_pd⚠
- Computes
a*b + c
- _mm256_mlaf_ps⚠
- Computes
a*b + c
- _mm256_mul_epi64⚠
- Multiplies unsigned 64 bytes integers, takes only lower half after multiplication, do not care about overflow
Formally it is _mm_mullo_epi64
- _mm256_mul_epu64⚠
- Multiplies unsigned 64 bytes integers, takes only lower half after multiplication, do not care about overflow
Formally it is _mm256_mullo_epu64
- _mm256_neg_epi32⚠
- Negates signed 32 bytes integer
- _mm256_neg_epi64⚠
- Negates i64
- _mm256_neg_pd⚠
- Negates value
- _mm256_neg_ps⚠
- Negates value
- _mm256_packs_epi64⚠
- Pack 64bytes integers into 32 bytes using signed saturation
- _mm256_packts_epi64⚠
- Pack 64bytes integers into 32 bytes using truncation
- _mm256_packus_epi64⚠
- Pack 64bytes integers into 32 bytes using unsigned saturation
- _mm256_pow2i_epi64⚠
- Computes 2^n in f64 form for signed 64 bits integers, returns f64 in bits
- _mm256_pow2if_epi32⚠
- Computes 2^n in f32 form for signed 32 bits integers, returns f32 in bits
- _mm256_pow_fast_pd⚠
- Method that computes pow skipping Inf, Nan checks, ULP 2.0
- _mm256_pow_fast_ps⚠
- Method that computes pow skipping Inf, Nan checks, ULP 2.0
- _mm256_pow_pd⚠
- Computes pow function ULP 2.0
- _mm256_pow_ps⚠
- Computes pow function ULP 2.0
- _mm256_prefer_fma_pd⚠
- Computes
b*c + a
using fma when available - _mm256_prefer_fma_ps⚠
- Computes
b*c + a
using fma when available - _mm256_rint_pd⚠
- Rounds and takes integral part 64 bytes from double
- _mm256_rint_ps⚠
- Rounds and takes integral part from float
- _mm256_select_pd⚠
- If mask then
true_vals
otherwise false_val
- _mm256_select_ps⚠
- If mask then
true_vals
otherwise false_val
- _mm256_selecti_pd⚠
- If mask then
true_vals
otherwise false_val
- _mm256_selecti_ps⚠
- If mask then
true_vals
otherwise false_val
- _mm256_sin_pd⚠
- Computes sine function with ULP 1.5 on range [-15; 15]
- _mm256_sin_ps⚠
- Computes sine function with error bound ULP 1.5
- _mm256_srai_epi64x⚠
- Arithmetic shift for i64, shifting with sign bits
- _mm256_subs_epi32⚠
- Subtract signed integers 32 using saturation
- _mm256_tan_pd⚠
- Computes tan function with error bound ULP 1.5
- _mm256_tan_ps⚠
- Computes tan function with error bound ULP 1.5
- _mm_abs_epi64⚠
- Mod function for i64
- _mm_abs_epi128⚠
- Takes absolute value for i128
- _mm_abs_pd⚠
- Modulus operator for f64
- _mm_abs_ps⚠
- Modulus operator for f32
- _mm_acos_pd⚠
- Computes arccos, error bound ULP 2.0
- _mm_acos_ps⚠
- Computes arccos, error bound ULP 2.0
- _mm_add_epi128⚠
- Adds s128 to s128 using signed addition
- _mm_add_epu128⚠
- Adds s128 to s128 using unsigned addition
- _mm_adds_epi32⚠
- Add signed 32 bytes integers using saturation
- _mm_adds_epi64⚠
- Add signed 64 bytes integers usign saturation
- _mm_adds_epu32⚠
- Add unsigned 32 bytes integers using saturation
- _mm_adds_epu64⚠
- Add unsigned 32 bytes integers using saturation
- _mm_addw_epi128⚠
- Widening add 64 bytes integer to 128 bytes integer
- _mm_asin_pd⚠
- Computes arcsin, error bound ULP 2.0
- _mm_asin_ps⚠
- Computes arcsin, error bound ULP 2.0
- _mm_atan2_pd⚠
- Computes atan for Y,X
- _mm_atan2_ps⚠
- Computes atan for Y,X
- _mm_atan_pd⚠
- Computes Atan function with ULP 2.0 error
- _mm_atan_ps⚠
- Computes Atan function with ULP 1.0 error
- _mm_blendv_epi32⚠
- _mm_blendv_epi64⚠
- _mm_cbrt_fast_pd⚠
- Takes cube root from value ULP 1.5, Skipping NaN, Inf checks
- _mm_cbrt_fast_ps⚠
- Takes cube root from value ULP 1.5, Skipping NaN, Inf checks
- _mm_cbrt_pd⚠
- Takes cube root from value ULP 1.5
- _mm_cbrt_ps⚠
- Takes cube root from value ULP 1.5
- _mm_cmpge_epi64⚠
- Compare greater than or equal to signed 64 bytes integers,
- _mm_cmpge_epu8⚠
- Compare greater than or equal to unsigned 8,
- _mm_cmpge_epu16⚠
- Compare greater than or equal to unsigned 16,
- _mm_cmpge_epu32⚠
- Compare greater than or equal to unsigned 32,
- _mm_cmpge_epu64⚠
- Compare greater than or equal to unsigned 64 bytes integers,
- _mm_cmpgt_epu8⚠
- Compare greater than unsigned 8,
- _mm_cmpgt_epu16⚠
- Compare greater than unsigned 16,
- _mm_cmpgt_epu32⚠
- Compare greater than unsigned 32,
- _mm_cmpgt_epu64⚠
- Compare greater than unsigned 64 bytes integers,
- _mm_cmple_epi64⚠
- Compare less than or equal to signed 64 bytes integers,
- _mm_cmple_epu8⚠
- Compare less than or equal to unsigned 8,
- _mm_cmple_epu16⚠
- Compare less than or equal to unsigned 16,
- _mm_cmple_epu32⚠
- Compare less than or equal to unsigned 32,
- _mm_cmple_epu64⚠
- Compare less than or equal to unsigned 64 bytes integers,
- _mm_cmplt_epi64⚠
- Compare less than signed 64 bytes integers,
- _mm_cmplt_epu8⚠
- Compare less than unsigned 8,
- _mm_cmplt_epu16⚠
- Compare less than unsigned 16,
- _mm_cmplt_epu32⚠
- Compare less than unsigned 16,
- _mm_cmplt_epu64⚠
- Compare less than unsigned 64 bytes integers,
- _mm_copysign_pd⚠
- Copies sign from
y
to x
- _mm_copysign_ps⚠
- Copies sign from
y
to x
- _mm_cos_pd⚠
- Computes cosine function with error bound ULP 2.0
- _mm_cos_ps⚠
- Computes cosine function with error bound ULP 1.5
- _mm_cvtepi64_pd⚠
- Converts signed 64-bit integers into double
- _mm_cvtpd_epi64⚠
- Converts double into signed 64 bytes int with truncation
- _mm_cvtpd_epu64⚠
- Converts double into unsigned int 64 bytes with truncation
- _mm_eqzero_pd⚠
- Returns flag value is zero
- _mm_eqzero_ps⚠
- Returns flag value is zero
- _mm_exp_fast_pd⚠
- Method that computes exp skipping Inf, Nan checks error bound ULP 2.0
- _mm_exp_fast_ps⚠
- Method that computes exp skipping Inf, Nan checks error bound ULP 1.0
- _mm_exp_pd⚠
- Computes exp for an argument ULP 2.0
- _mm_exp_ps⚠
- Computes exp for an argument ULP 1.0
- _mm_extract_epi64x⚠
- Extracts i64 value
- _mm_extract_epi128⚠
- Computes u128 as u128 and extracts in general register
- _mm_extract_epu128⚠
- Computes u128 as u128 and extracts in general register
- _mm_extract_hi_epi128⚠
- Computes i128 as u64 and extracts upper half in general register
- _mm_extract_lo_epi128⚠
- Computes i128 as u64 and extracts lower half in general register
- _mm_extract_pd⚠
- Extracts f64 value
- _mm_fmod_pd⚠
- Computes fmod for f64
- _mm_fmod_ps⚠
- Computes fmod for f32
- _mm_hypot3_fast_pd⚠
- Method that computes 3D Euclidian distance ULP 0.66667, skipping Inf, Nan checks
- _mm_hypot3_fast_ps⚠
- Method that computes 3D Euclidian distance ULP 0.6666, skipping Inf, Nan checks
- _mm_hypot3_pd⚠
- Method that computes 3D Euclidian distance ULP 0.66667
- _mm_hypot3_ps⚠
- Method that computes 3D Euclidian distance ULP 0.6667
- _mm_hypot4_fast_pd⚠
- Method that computes 4D Euclidian distance ULP 0.6666, skipping Inf, Nan checks
- _mm_hypot4_fast_ps⚠
- Method that computes 4D Euclidian distance ULP 0.6666, skipping Inf, Nan checks
- _mm_hypot4_pd⚠
- Method that computes 4D Euclidian distance ULP 0.6666
- _mm_hypot4_ps⚠
- Method that computes 4D Euclidian distance ULP 0.6666
- _mm_hypot_fast_pd⚠
- Method that computes 2D Euclidian distance ULP 0.6667, skipping Inf, Nan checks
- _mm_hypot_fast_ps⚠
- Method that computes 2D Euclidian distance ULP 0.6667, skipping Inf, Nan checks
- _mm_hypot_pd⚠
- Method that computes 2D Euclidian distance ULP 0.6667
- _mm_hypot_ps⚠
- Method that computes 2D Euclidian distance ULP 0.6667
- _mm_ilogb2kq_ps⚠
- Founds n in x=a+𝑛ln(2), |a| <= 1
- _mm_isinf_pd⚠
- Returns flag value is Infinity
- _mm_isinf_ps⚠
- Returns flag value is Infinity
- _mm_isintegral_pd⚠
- Checks if arguments is integral value
- _mm_isintegral_ps⚠
- Checks if arguments is integral value
- _mm_isnan_pd⚠
- Returns true flag if value is NaN
- _mm_isnan_ps⚠
- Returns true flag if value is NaN
- _mm_isneginf_pd⚠
- Returns flag value is Neg Infinity
- _mm_isneginf_ps⚠
- Returns flag value is Neg Infinity
- _mm_isnotintegral_pd⚠
- Checks if arguments is not integral value
- _mm_isnotintegral_ps⚠
- Checks if arguments is not integral value
- _mm_ldexp3kq_ps⚠
- Founds a in x=a+𝑛ln(2), |a| <= 1
- _mm_ln_fast_pd⚠
- Method that computes ln skipping Inf, Nan checks, error bound ULP 1.5
- _mm_ln_fast_ps⚠
- Method that computes ln skipping Inf, Nan checks, error bound ULP 1.5
- _mm_ln_pd⚠
- Computes natural logarithm for an argument ULP 1.5
- _mm_ln_ps⚠
- Computes natural logarithm for an argument ULP 1.5
- _mm_ltzero_ps⚠
- Returns flag value is lower than zero
- _mm_max_epi64x⚠
- Takes max for epi64
- _mm_min_epi64x⚠
- Takes min for epi64
- _mm_mlaf_pd⚠
- Computes
a*b + c
- _mm_mlaf_ps⚠
- Computes
a*b + c
- _mm_movn_epi128⚠
- Saturates 128-bit integers presentation into 64 bits
- _mm_mul_epi64⚠
- Multiplies unsigned 64 bytes integers, takes only lower half after multiplication, do not care about overflow
Formally it is _mm_mullo_epi64
- _mm_mul_epu64⚠
- Multiplies unsigned 64 bytes integers, takes only lower half after multiplication, do not care about overflow
Formally it is _mm_mullo_epu64
- _mm_mull_epi64⚠
- Widening multiplication i64 in i128
- _mm_mull_epu64⚠
- Widening multiplication u64 in u128
- _mm_neg_epi32⚠
- Negates signed 32 bytes integer
- _mm_neg_epi64⚠
- Negates i64
- _mm_neg_pd⚠
- Negates value
- _mm_neg_ps⚠
- Negates value
- _mm_not_epi64⚠
- Bitwise not epi64
- _mm_packs_epi64⚠
- Packs integers 64 bits use signed saturation
- _mm_packts_epi64⚠
- Packs integers 64 bits use truncating, only lower half of i64 will be used
- _mm_packus_epi64⚠
- Packs integers 64 bits use unsigned saturation
- _mm_pow2if_epi32⚠
- Computes 2^n in f32 form for signed 32 bits integers, returns f32 in bits
- _mm_pow_fast_pd⚠
- Method that computes pow skipping Inf, Nan checks, ULP 2.0
- _mm_pow_fast_ps⚠
- Method that computes pow skipping Inf, Nan checks, ULP 2.0
- _mm_pow_pd⚠
- Computes pow function ULP 2.0
- _mm_pow_ps⚠
- Computes pow function ULP 2.0
- _mm_prefer_fma_pd⚠
- Computes
b*c + a
using fma when available - _mm_prefer_fma_ps⚠
- Computes
b*c + a
using fma when available - _mm_rint_ps⚠
- Rounds and takes integral part from float
- _mm_select_epi32⚠
- If mask then
true_vals
otherwise false_val
- _mm_select_epi64⚠
- Select true or false values based on masks for i64
- _mm_select_pd⚠
- If mask then
true_vals
otherwise false_val
- _mm_select_ps⚠
- If mask then
true_vals
otherwise false_val
- _mm_selecti_pd⚠
- If mask then
true_vals
otherwise false_val
- _mm_selecti_ps⚠
- If mask then
true_vals
otherwise false_val
- _mm_setr_epi64x⚠
- _mm_sin_pd⚠
- Computes sine function with ULP 1.5 on range [-15; 15]
- _mm_sin_ps⚠
- Computes sine function with error bound ULP 1.5
- _mm_slli_epi128x⚠
- Shifts left u128 immediate
- _mm_sllv_epi64x⚠
- Shifts packed 64-bit integers in a left by the amount specified by the corresponding element in count while shifting in zeros, and returns the result.
- _mm_srai_epi64x⚠
- Arithmetic shift for i64, shifting with sign bits
- _mm_srli_epi128x⚠
- Shifts right u128 immediate
- _mm_srlv_epi64x⚠
- Shifts packed 64-bit integers in a right by the amount specified by the corresponding element in count while shifting in zeros,
- _mm_subs_epi32⚠
- Subtract signed integers 32 using saturation
- _mm_subs_epi64⚠
- subtract signed integers 64 using saturation
- _mm_subw_epi128⚠
- Widening substract 64 bytes integer to 128 bytes integer
- _mm_tan_pd⚠
- Computes tan function with error bound ULP 1.5
- _mm_tan_ps⚠
- Computes tan function with error bound ULP 1.5
- copysignfk
- Copies sign from
y
to x
- copysignk
- Copies sign from
y
to x
- eabs
- Computes modulo for f64
- eabsf
- Computes modulo for f32
- efmax
- Find max between a pair of values
- efmaxf
- Find max between a pair of values
- efmin
- Find min between a pair of values
- efminf
- Find min between a pair of values
- ehypot
- Computes 2D Euclidian Distance ULP 0.5
- ehypot4
- Computes 4D Euclidian Distance ULP 0.6666
- ehypot3f
- Computes 3D Euclidian Distance ULP 0.6666
- ehypot4f
- Computes 4D Euclidian Distance ULP 0.6666
- ehypotf
- Computes 2D Euclidian Distance ULP 0.5
- eln
- Computes natural logarithm ULP 3.5
- elnf
- Computes natural logarithm for an argument ULP 1.0
- epow
- Computes power function, error bound ULP 2.0
- epowf
- Computes power function, error bound ULP 2.0
- esin
- Computes sine function with ULP 1.5 on range [-15; 15]
- esinf
- Computes sine function with error bound ULP 1.2
- esqrt
- Computes square root, error bound ULP 1.0
- esqrtf
- Computes square root, error bound ULP 1.0
- etan
- Computes tan with error bound ULP 2.0
- etanf
- Computes tan ULP 2.0
- ilogb2k
- ilogb2kf
- is_neg_infinite
- Checks if values is negative infinity
- is_neg_infinitef
- Checks if values is negative infinity
- is_pos_infinite
- Checks if values is positive infinity
- is_pos_infinitef
- Checks if values is positive infinity
- ldexp2kf
- ldexp3k
- ldexp3kf
- make_neg
- make_negf
- mlaf
- Computes
x*y + z
using fma
when available - mulsign
- Multiplies sign of numbers
- mulsignf
- Multiplies sign of numbers
- pow2i
- Computes 2^n
- pow2if
- Computes 2^n
- rempif2
- rintfk
- Round towards whole integral number
- rintk
- Round towards whole integral number
- signf
- Sign of a number