Crate erydanos

Source

Re-exports§

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;

Modules§

acos
acosf
asin
asinf
atan
atan2
atan2f
atanf
cbrt
cbrtf
ceil
ceilf
cos
cosf
double_precision
exp
expf
floor

Structs§

__m128x2i
Type represents u128, in low u64 and high u64 part Lower parts, and upper parts are interleaved

Traits§

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

Functions§

_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