Quadruple Precision Math Library reference (System/390)
Table of contents
- Data types
- Functions for accessing elements inside vector variable
- Conversion functions
- Comparison and selection functions
- Math functions
Data types
Sleef_quadx2
Sleef_quadx2
is a data type for retaining two QP FP numbers. Please use Sleef_loadq2, Sleef_storeq2, Sleef_getq2 and Sleef_setq2 functions to access the data inside variables in this data type.
Functions for accessing elements inside vector variable
#include <sleefquad.h>
Sleef_quadx2 Sleef_loadq2(Sleef_quad * ptr);
Sleef_quadx2 Sleef_loadq2_vxe(Sleef_quad * ptr);
Sleef_quadx2 Sleef_loadq2_vxe2(Sleef_quad * ptr);
Link with -lsleefquad
.
These functions load QP FP values from memory and store the results in a vector variable.
#include <sleefquad.h>
void Sleef_storeq2(Sleef_quad * ptr, Sleef_quadx2 v);
void Sleef_storeq2_vxe(Sleef_quad * ptr, Sleef_quadx2 v);
void Sleef_storeq2_vxe2(Sleef_quad * ptr, Sleef_quadx2 v);
Link with -lsleefquad
.
These functions store QP FP values in the given variable to memory.
#include <sleefquad.h>
Sleef_quad Sleef_getq2(Sleef_quadx2 v, int index);
Sleef_quad Sleef_getq2_vxe(Sleef_quadx2 v, int index);
Sleef_quad Sleef_getq2_vxe2(Sleef_quadx2 v, int index);
Link with -lsleefquad
.
These functions extract the index
-th element from a QP FP vector variable.
#include <sleefquad.h>
Sleef_quadx2 Sleef_setq2(Sleef_quadx2 v, int index, Sleef_quad e);
Sleef_quadx2 Sleef_setq2_vxe(Sleef_quadx2 v, int index, Sleef_quad e);
Sleef_quadx2 Sleef_setq2_vxe2(Sleef_quadx2 v, int index, Sleef_quad e);
Link with -lsleefquad
.
These functions return a QP FP vector in which the index
-th element is e
, and other elements are the same as v
.
#include <sleefquad.h>
Sleef_quadx2 Sleef_splatq2(Sleef_quad e);
Sleef_quadx2 Sleef_splatq2_vxe(Sleef_quad e);
Sleef_quadx2 Sleef_splatq2_vxe2(Sleef_quad e);
Link with -lsleefquad
.
These functions return a QP FP vector in which all elements are set to e
.
Conversion functions
Convert QP number to double-precision number
#include <sleefquad.h>
vector double Sleef_cast_to_doubleq2(Sleef_quadx2 a);
vector double Sleef_cast_to_doubleq2_vxe(Sleef_quadx2 a);
vector double Sleef_cast_to_doubleq2_vxe2(Sleef_quadx2 a);
Link with -lsleefquad
.
These functions convert a QP FP value to a double-precision value.
Convert double-precision number to QP number
#include <sleefquad.h>
Sleef_quadx2 Sleef_cast_from_doubleq2(vector double a);
Sleef_quadx2 Sleef_cast_from_doubleq2_vxe(vector double a);
Sleef_quadx2 Sleef_cast_from_doubleq2_vxe2(vector double a);
Link with -lsleefquad
.
These functions convert a double-precision value to a QP FP value.
Convert QP number to 64-bit signed integer
#include <sleefquad.h>
vector signed long long Sleef_cast_to_int64q2(Sleef_quadx2 a);
vector signed long long Sleef_cast_to_int64q2_vxe(Sleef_quadx2 a);
vector signed long long Sleef_cast_to_int64q2_vxe2(Sleef_quadx2 a);
Link with -lsleefquad
.
These functions convert a QP FP value to a 64-bit signed integer.
Convert 64-bit signed integer to QP number
#include <sleefquad.h>
Sleef_quadx2 Sleef_cast_from_int64q2(vector signed long long a);
Sleef_quadx2 Sleef_cast_from_int64q2_vxe(vector signed long long a);
Sleef_quadx2 Sleef_cast_from_int64q2_vxe2(vector signed long long a);
Link with -lsleefquad
.
These functions convert a 64-bit signed integer to a QP FP value.
Convert QP number to 64-bit unsigned integer
#include <sleefquad.h>
vector unsigned long long Sleef_cast_to_uint64q2(Sleef_quadx2 a);
vector unsigned long long Sleef_cast_to_uint64q2_vxe(Sleef_quadx2 a);
vector unsigned long long Sleef_cast_to_uint64q2_vxe2(Sleef_quadx2 a);
Link with -lsleefquad
.
These functions convert a QP FP value to a 64-bit signed integer.
Convert 64-bit unsigned integer to QP number
#include <sleefquad.h>
Sleef_quadx2 Sleef_cast_from_uint64q2(vector unsigned long long a);
Sleef_quadx2 Sleef_cast_from_uint64q2_vxe(vector unsigned long long a);
Sleef_quadx2 Sleef_cast_from_uint64q2_vxe2(vector unsigned long long a);
Link with -lsleefquad
.
These functions convert a 64-bit unsigned integer to a QP FP value.
Comparison and selection functions
QP comparison functions
#include <sleefquad.h>
vector int Sleef_icmpltq2(Sleef_quadx2 a, Sleef_quadx2 b);
vector int Sleef_icmpleq2(Sleef_quadx2 a, Sleef_quadx2 b);
vector int Sleef_icmpgtq2(Sleef_quadx2 a, Sleef_quadx2 b);
vector int Sleef_icmpgeq2(Sleef_quadx2 a, Sleef_quadx2 b);
vector int Sleef_icmpeqq2(Sleef_quadx2 a, Sleef_quadx2 b);
vector int Sleef_icmpneq2(Sleef_quadx2 a, Sleef_quadx2 b);
vector int Sleef_icmpltq2_vxe(Sleef_quadx2 a, Sleef_quadx2 b);
vector int Sleef_icmpleq2_vxe(Sleef_quadx2 a, Sleef_quadx2 b);
vector int Sleef_icmpgtq2_vxe(Sleef_quadx2 a, Sleef_quadx2 b);
vector int Sleef_icmpgeq2_vxe(Sleef_quadx2 a, Sleef_quadx2 b);
vector int Sleef_icmpeqq2_vxe(Sleef_quadx2 a, Sleef_quadx2 b);
vector int Sleef_icmpneq2_vxe(Sleef_quadx2 a, Sleef_quadx2 b);
vector int Sleef_icmpltq2_vxe2(Sleef_quadx2 a, Sleef_quadx2 b);
vector int Sleef_icmpleq2_vxe2(Sleef_quadx2 a, Sleef_quadx2 b);
vector int Sleef_icmpgtq2_vxe2(Sleef_quadx2 a, Sleef_quadx2 b);
vector int Sleef_icmpgeq2_vxe2(Sleef_quadx2 a, Sleef_quadx2 b);
vector int Sleef_icmpeqq2_vxe2(Sleef_quadx2 a, Sleef_quadx2 b);
vector int Sleef_icmpneq2_vxe2(Sleef_quadx2 a, Sleef_quadx2 b);
Link with -lsleefquad
.
These are the vectorized functions of comparison functions.
QP comparison functions of the second kind
#include <sleefquad.h>
vector int Sleef_icmpq2(Sleef_quadx2 a, Sleef_quadx2 b);
vector int Sleef_icmpq2_vxe(Sleef_quadx2 a, Sleef_quadx2 b);
vector int Sleef_icmpq2_vxe2(Sleef_quadx2 a, Sleef_quadx2 b);
Link with -lsleefquad
.
These are the vectorized functions of Sleef_icmpq1_purec.
Check orderedness
#include <sleefquad.h>
vector int Sleef_iunordq2(Sleef_quadx2 a, Sleef_quadx2 b);
vector int Sleef_iunordq2_vxe(Sleef_quadx2 a, Sleef_quadx2 b);
vector int Sleef_iunordq2_vxe2(Sleef_quadx2 a, Sleef_quadx2 b);
Link with -lsleefquad
.
These are the vectorized functions of Sleef_iunordq1_purec.
Select elements
#include <sleefquad.h>
Sleef_quadx2 Sleef_iselectq2(vector int c, Sleef_quadx2 a, Sleef_quadx2 b);
Sleef_quadx2 Sleef_iselectq2_vxe(vector int c, Sleef_quadx2 a, Sleef_quadx2 b);
Sleef_quadx2 Sleef_iselectq2_vxe2(vector int c, Sleef_quadx2 a, Sleef_quadx2 b);
Link with -lsleefquad
.
These are the vectorized functions that operate in the same way as the ternary operator.
Math functions
QP functions for basic arithmetic operations
#include <sleefquad.h>
Sleef_quadx2 Sleef_addq2_u05(Sleef_quadx2 a, Sleef_quadx2 b);
Sleef_quadx2 Sleef_subq2_u05(Sleef_quadx2 a, Sleef_quadx2 b);
Sleef_quadx2 Sleef_mulq2_u05(Sleef_quadx2 a, Sleef_quadx2 b);
Sleef_quadx2 Sleef_divq2_u05(Sleef_quadx2 a, Sleef_quadx2 b);
Sleef_quadx2 Sleef_negq2(Sleef_quadx2 a);
Sleef_quadx2 Sleef_addq2_u05vxe(Sleef_quadx2 a, Sleef_quadx2 b);
Sleef_quadx2 Sleef_subq2_u05vxe(Sleef_quadx2 a, Sleef_quadx2 b);
Sleef_quadx2 Sleef_mulq2_u05vxe(Sleef_quadx2 a, Sleef_quadx2 b);
Sleef_quadx2 Sleef_divq2_u05vxe(Sleef_quadx2 a, Sleef_quadx2 b);
Sleef_quadx2 Sleef_negq2_vxe(Sleef_quadx2 a);
Sleef_quadx2 Sleef_addq2_u05vxe2(Sleef_quadx2 a, Sleef_quadx2 b);
Sleef_quadx2 Sleef_subq2_u05vxe2(Sleef_quadx2 a, Sleef_quadx2 b);
Sleef_quadx2 Sleef_mulq2_u05vxe2(Sleef_quadx2 a, Sleef_quadx2 b);
Sleef_quadx2 Sleef_divq2_u05vxe2(Sleef_quadx2 a, Sleef_quadx2 b);
Sleef_quadx2 Sleef_negq2_vxe2(Sleef_quadx2 a);
Link with -lsleefquad
.
These are the vectorized functions of the basic arithmetic operations.
Square root functions
#include <sleefquad.h>
Sleef_quadx2 Sleef_sqrtq2_u05(Sleef_quadx2 a);
Sleef_quadx2 Sleef_sqrtq2_u05vxe(Sleef_quadx2 a);
Sleef_quadx2 Sleef_sqrtq2_u05vxe2(Sleef_quadx2 a);
Link with -lsleefquad
.
These are the vectorized functions of Sleef_sqrtq1_u05purec.
Sine functions
#include <sleefquad.h>
Sleef_quadx2 Sleef_sinq2_u10(Sleef_quadx2 a);
Sleef_quadx2 Sleef_sinq2_u10vxe(Sleef_quadx2 a);
Sleef_quadx2 Sleef_sinq2_u10vxe2(Sleef_quadx2 a);
Link with -lsleefquad
.
These are the vectorized functions of Sleef_sinq1_u10purec.
Cosine functions
#include <sleefquad.h>
Sleef_quadx2 Sleef_cosq2_u10(Sleef_quadx2 a);
Sleef_quadx2 Sleef_cosq2_u10vxe(Sleef_quadx2 a);
Sleef_quadx2 Sleef_cosq2_u10vxe2(Sleef_quadx2 a);
Link with -lsleefquad
.
These are the vectorized functions of Sleef_cosq1_u10purec.
Tangent functions
#include <sleefquad.h>
Sleef_quadx2 Sleef_tanq2_u10(Sleef_quadx2 a);
Sleef_quadx2 Sleef_tanq2_u10vxe(Sleef_quadx2 a);
Sleef_quadx2 Sleef_tanq2_u10vxe2(Sleef_quadx2 a);
Link with -lsleefquad
.
These are the vectorized functions of Sleef_tanq1_u10purec.
Arc sine functions
#include <sleefquad.h>
Sleef_quadx2 Sleef_asinq2_u10(Sleef_quadx2 a);
Sleef_quadx2 Sleef_asinq2_u10vxe(Sleef_quadx2 a);
Sleef_quadx2 Sleef_asinq2_u10vxe2(Sleef_quadx2 a);
Link with -lsleefquad
.
These are the vectorized functions of Sleef_asinq1_u10purec.
Arc cosine functions
#include <sleefquad.h>
Sleef_quadx2 Sleef_acosq2_u10(Sleef_quadx2 a);
Sleef_quadx2 Sleef_acosq2_u10vxe(Sleef_quadx2 a);
Sleef_quadx2 Sleef_acosq2_u10vxe2(Sleef_quadx2 a);
Link with -lsleefquad
.
These are the vectorized functions of Sleef_acosq1_u10purec.
Arc tangent functions
#include <sleefquad.h>
Sleef_quadx2 Sleef_atanq2_u10(Sleef_quadx2 a);
Sleef_quadx2 Sleef_atanq2_u10vxe(Sleef_quadx2 a);
Sleef_quadx2 Sleef_atanq2_u10vxe2(Sleef_quadx2 a);
Link with -lsleefquad
.
These are the vectorized functions of Sleef_atanq1_u10purec.
Base-e exponential functions
#include <sleefquad.h>
Sleef_quadx2 Sleef_expq2_u10(Sleef_quadx2 a);
Sleef_quadx2 Sleef_expq2_u10vxe(Sleef_quadx2 a);
Sleef_quadx2 Sleef_expq2_u10vxe2(Sleef_quadx2 a);
Link with -lsleefquad
.
These are the vectorized functions of Sleef_expq1_u10purec.
Base-2 exponential functions
#include <sleefquad.h>
Sleef_quadx2 Sleef_exp2q2_u10(Sleef_quadx2 a);
Sleef_quadx2 Sleef_exp2q2_u10vxe(Sleef_quadx2 a);
Sleef_quadx2 Sleef_exp2q2_u10vxe2(Sleef_quadx2 a);
Link with -lsleefquad
.
These are the vectorized functions of Sleef_exp2q1_u10purec.
Base-10 exponentail
#include <sleefquad.h>
Sleef_quadx2 Sleef_exp10q2_u10(Sleef_quadx2 a);
Sleef_quadx2 Sleef_exp10q2_u10vxe(Sleef_quadx2 a);
Sleef_quadx2 Sleef_exp10q2_u10vxe2(Sleef_quadx2 a);
Link with -lsleefquad
.
These are the vectorized functions of Sleef_exp10q1_u10purec.
Base-e exponential functions minus 1
#include <sleefquad.h>
Sleef_quadx2 Sleef_expm1q2_u10(Sleef_quadx2 a);
Sleef_quadx2 Sleef_expm1q2_u10vxe(Sleef_quadx2 a);
Sleef_quadx2 Sleef_expm1q2_u10vxe2(Sleef_quadx2 a);
Link with -lsleefquad
.
These are the vectorized functions of Sleef_expm1q1_u10purec.
Natural logarithmic functions
#include <sleefquad.h>
Sleef_quadx2 Sleef_logq2_u10(Sleef_quadx2 a);
Sleef_quadx2 Sleef_logq2_u10vxe(Sleef_quadx2 a);
Sleef_quadx2 Sleef_logq2_u10vxe2(Sleef_quadx2 a);
Link with -lsleefquad
.
These are the vectorized functions of Sleef_logq1_u10purec.
Base-2 logarithmic functions
#include <sleefquad.h>
Sleef_quadx2 Sleef_log2q2_u10(Sleef_quadx2 a);
Sleef_quadx2 Sleef_log2q2_u10vxe(Sleef_quadx2 a);
Sleef_quadx2 Sleef_log2q2_u10vxe2(Sleef_quadx2 a);
Link with -lsleefquad
.
These are the vectorized functions of Sleef_log2q1_u10purec.
Base-10 logarithmic functions
#include <sleefquad.h>
Sleef_quadx2 Sleef_log10q2_u10(Sleef_quadx2 a);
Sleef_quadx2 Sleef_log10q2_u10vxe(Sleef_quadx2 a);
Sleef_quadx2 Sleef_log10q2_u10vxe2(Sleef_quadx2 a);
Link with -lsleefquad
.
These are the vectorized functions of Sleef_log10q1_u10purec.
Logarithm of one plus argument
#include <sleefquad.h>
Sleef_quadx2 Sleef_log1pq2_u10(Sleef_quadx2 a);
Sleef_quadx2 Sleef_log1pq2_u10vxe(Sleef_quadx2 a);
Sleef_quadx2 Sleef_log1pq2_u10vxe2(Sleef_quadx2 a);
Link with -lsleefquad
.
These are the vectorized functions of Sleef_log1pq1_u10purec.
Power functions
#include <sleefquad.h>
Sleef_quadx2 Sleef_powq2_u10(Sleef_quadx2 x, Sleef_quadx2 y);
Sleef_quadx2 Sleef_powq2_u10vxe(Sleef_quadx2 x, Sleef_quadx2 y);
Sleef_quadx2 Sleef_powq2_u10vxe2(Sleef_quadx2 x, Sleef_quadx2 y);
Link with -lsleefquad
.
These are the vectorized functions of Sleef_powq1_u10purec.
Hyperbolic sine functions
#include <sleefquad.h>
Sleef_quadx2 Sleef_sinhq2_u10(Sleef_quadx2 a);
Sleef_quadx2 Sleef_sinhq2_u10vxe(Sleef_quadx2 a);
Sleef_quadx2 Sleef_sinhq2_u10vxe2(Sleef_quadx2 a);
Link with -lsleefquad
.
These are the vectorized functions of Sleef_sinhq1_u10purec.
Hyperbolic cosine functions
#include <sleefquad.h>
Sleef_quadx2 Sleef_coshq2_u10(Sleef_quadx2 a);
Sleef_quadx2 Sleef_coshq2_u10vxe(Sleef_quadx2 a);
Sleef_quadx2 Sleef_coshq2_u10vxe2(Sleef_quadx2 a);
Link with -lsleefquad
.
These are the vectorized functions of Sleef_coshq1_u10purec.
Hyperbolic tangent functions
#include <sleefquad.h>
Sleef_quadx2 Sleef_tanhq2_u10(Sleef_quadx2 a);
Sleef_quadx2 Sleef_tanhq2_u10vxe(Sleef_quadx2 a);
Sleef_quadx2 Sleef_tanhq2_u10vxe2(Sleef_quadx2 a);
Link with -lsleefquad
.
These are the vectorized functions of Sleef_tanhq1_u10purec.
Inverse hyperbolic sine functions
#include <sleefquad.h>
Sleef_quadx2 Sleef_asinhq2_u10(Sleef_quadx2 a);
Sleef_quadx2 Sleef_asinhq2_u10vxe(Sleef_quadx2 a);
Sleef_quadx2 Sleef_asinhq2_u10vxe2(Sleef_quadx2 a);
Link with -lsleefquad
.
These are the vectorized functions of Sleef_asinhq1_u10purec.
Inverse hyperbolic cosine functions
#include <sleefquad.h>
Sleef_quadx2 Sleef_acoshq2_u10(Sleef_quadx2 a);
Sleef_quadx2 Sleef_acoshq2_u10vxe(Sleef_quadx2 a);
Sleef_quadx2 Sleef_acoshq2_u10vxe2(Sleef_quadx2 a);
Link with -lsleefquad
.
These are the vectorized functions of Sleef_acoshq1_u10purec.
Inverse hyperbolic tangent functions
#include <sleefquad.h>
Sleef_quadx2 Sleef_atanhq2_u10(Sleef_quadx2 a);
Sleef_quadx2 Sleef_atanhq2_u10vxe(Sleef_quadx2 a);
Sleef_quadx2 Sleef_atanhq2_u10vxe2(Sleef_quadx2 a);
Link with -lsleefquad
.
These are the vectorized functions of Sleef_atanhq1_u10purec.
Round to integer towards zero
#include <sleefquad.h>
Sleef_quadx2 Sleef_truncq2(Sleef_quadx2 a);
Sleef_quadx2 Sleef_truncq2_vxe(Sleef_quadx2 a);
Sleef_quadx2 Sleef_truncq2_vxe2(Sleef_quadx2 a);
Link with -lsleefquad
.
These are the vectorized functions of Sleef_truncq1_purec.
Round to integer towards minus infinity
#include <sleefquad.h>
Sleef_quadx2 Sleef_floorq2(Sleef_quadx2 a);
Sleef_quadx2 Sleef_floorq2_vxe(Sleef_quadx2 a);
Sleef_quadx2 Sleef_floorq2_vxe2(Sleef_quadx2 a);
Link with -lsleefquad
.
These are the vectorized functions of Sleef_floorq1_purec.
Round to integer towards plus infinity
#include <sleefquad.h>
Sleef_quadx2 Sleef_ceilq2(Sleef_quadx2 a);
Sleef_quadx2 Sleef_ceilq2_vxe(Sleef_quadx2 a);
Sleef_quadx2 Sleef_ceilq2_vxe2(Sleef_quadx2 a);
Link with -lsleefquad
.
These are the vectorized functions of Sleef_ceilq1_purec.
Round to integer away from zero
#include <sleefquad.h>
Sleef_quadx2 Sleef_roundq2(Sleef_quadx2 a);
Sleef_quadx2 Sleef_roundq2_vxe(Sleef_quadx2 a);
Sleef_quadx2 Sleef_roundq2_vxe2(Sleef_quadx2 a);
Link with -lsleefquad
.
These are the vectorized functions of Sleef_roundq1_purec.
Round to integer, ties round to even
#include <sleefquad.h>
Sleef_quadx2 Sleef_rintq2(Sleef_quadx2 a);
Sleef_quadx2 Sleef_rintq2_vxe(Sleef_quadx2 a);
Sleef_quadx2 Sleef_rintq2_vxe2(Sleef_quadx2 a);
Link with -lsleefquad
.
These are the vectorized functions of Sleef_rintq1_purec.
Absolute value
#include <sleefquad.h>
Sleef_quadx2 Sleef_fabsq2(Sleef_quadx2 a);
Sleef_quadx2 Sleef_fabsq2_vxe(Sleef_quadx2 a);
Sleef_quadx2 Sleef_fabsq2_vxe2(Sleef_quadx2 a);
Link with -lsleefquad
.
These are the vectorized functions of Sleef_fabsq1_purec.
Copy sign of a number
#include <sleefquad.h>
Sleef_quadx2 Sleef_copysignq2(Sleef_quadx2 x, Sleef_quadx2 y);
Sleef_quadx2 Sleef_copysignq2_vxe(Sleef_quadx2 x, Sleef_quadx2 y);
Sleef_quadx2 Sleef_copysignq2_vxe2(Sleef_quadx2 x, Sleef_quadx2 y);
Link with -lsleefquad
.
These are the vectorized functions of Sleef_copysignq1_purec.
Maximum of two numbers
#include <sleefquad.h>
Sleef_quadx2 Sleef_fmaxq2(Sleef_quadx2 x, Sleef_quadx2 y);
Sleef_quadx2 Sleef_fmaxq2_vxe(Sleef_quadx2 x, Sleef_quadx2 y);
Sleef_quadx2 Sleef_fmaxq2_vxe2(Sleef_quadx2 x, Sleef_quadx2 y);
Link with -lsleefquad
.
These are the vectorized functions of Sleef_fmaxq1_purec.
Minimum of two numbers
#include <sleefquad.h>
Sleef_quadx2 Sleef_fminq2(Sleef_quadx2 x, Sleef_quadx2 y);
Sleef_quadx2 Sleef_fminq2_vxe(Sleef_quadx2 x, Sleef_quadx2 y);
Sleef_quadx2 Sleef_fminq2_vxe2(Sleef_quadx2 x, Sleef_quadx2 y);
Link with -lsleefquad
.
These are the vectorized functions of Sleef_fminq1_purec.
Positive difference
#include <sleefquad.h>
Sleef_quadx2 Sleef_fdimq2_u05(Sleef_quadx2 x, Sleef_quadx2 y);
Sleef_quadx2 Sleef_fdimq2_u05vxe(Sleef_quadx2 x, Sleef_quadx2 y);
Sleef_quadx2 Sleef_fdimq2_u05vxe2(Sleef_quadx2 x, Sleef_quadx2 y);
Link with -lsleefquad
.
These are the vectorized functions of Sleef_fdimq1_u05purec.
Floating point remainder
#include <sleefquad.h>
Sleef_quadx2 Sleef_fmodq2(Sleef_quadx2 x, Sleef_quadx2 y);
Sleef_quadx2 Sleef_fmodq2_vxe(Sleef_quadx2 x, Sleef_quadx2 y);
Sleef_quadx2 Sleef_fmodq2_vxe2(Sleef_quadx2 x, Sleef_quadx2 y);
Link with -lsleefquad
.
These are the vectorized functions of Sleef_fmodq1_purec.
Floating point remainder
#include <sleefquad.h>
Sleef_quadx2 Sleef_remainderq2(Sleef_quadx2 x, Sleef_quadx2 y);
Sleef_quadx2 Sleef_remainderq2_vxe(Sleef_quadx2 x, Sleef_quadx2 y);
Sleef_quadx2 Sleef_remainderq2_vxe2(Sleef_quadx2 x, Sleef_quadx2 y);
Link with -lsleefquad
.
These are the vectorized functions of Sleef_remainderq1_purec.
Split a number to fractional and integral components
#include <sleefquad.h>
Sleef_quadx2 Sleef_frexpq2(Sleef_quadx2 x, vector int * ptr);
Sleef_quadx2 Sleef_frexpq2_vxe(Sleef_quadx2 x, vector int * ptr);
Sleef_quadx2 Sleef_frexpq2_vxe2(Sleef_quadx2 x, vector int * ptr);
Link with -lsleefquad
.
These are the vectorized functions of Sleef_frexpq1_purec.
Break a number into integral and fractional parts
#include <sleefquad.h>
Sleef_quadx2 Sleef_modfq2(Sleef_quadx2 x, Sleef_quadx2 * ptr);
Sleef_quadx2 Sleef_modfq2_vxe(Sleef_quadx2 x, Sleef_quadx2 * ptr);
Sleef_quadx2 Sleef_modfq2_vxe2(Sleef_quadx2 x, Sleef_quadx2 * ptr);
Link with -lsleefquad
.
These are the vectorized functions of Sleef_modfq1_purec.
2D Euclidian distance
#include <sleefquad.h>
Sleef_quadx2 Sleef_hypotq2_u05(Sleef_quadx2 x, Sleef_quadx2 y);
Sleef_quadx2 Sleef_hypotq2_u05vxe(Sleef_quadx2 x, Sleef_quadx2 y);
Sleef_quadx2 Sleef_hypotq2_u05vxe2(Sleef_quadx2 x, Sleef_quadx2 y);
Link with -lsleefquad
.
These are the vectorized functions of Sleef_hypotq1_u05purec.
Fused multiply and accumulate
#include <sleefquad.h>
Sleef_quadx2 Sleef_fmaq2_u05(Sleef_quadx2 x, Sleef_quadx2 y, Sleef_quadx2 z);
Sleef_quadx2 Sleef_fmaq2_u05vxe(Sleef_quadx2 x, Sleef_quadx2 y, Sleef_quadx2 z);
Sleef_quadx2 Sleef_fmaq2_u05vxe2(Sleef_quadx2 x, Sleef_quadx2 y, Sleef_quadx2 z);
Link with -lsleefquad
.
These are the vectorized functions of Sleef_fmaq1_u05purec.
Multiply by integral power of 2
#include <sleefquad.h>
Sleef_quadx2 Sleef_ldexpq2(Sleef_quadx2 x, vector int e);
Sleef_quadx2 Sleef_ldexpq2_vxe(Sleef_quadx2 x, vector int e);
Sleef_quadx2 Sleef_ldexpq2_vxe2(Sleef_quadx2 x, vector int e);
Link with -lsleefquad
.
These are the vectorized functions of Sleef_ldexpq1_purec.
Integer exponent of an FP number
#include <sleefquad.h>
vector int Sleef_ilogbq2(Sleef_quadx2 x);
vector int Sleef_ilogbq2_vxe(Sleef_quadx2 x);
vector int Sleef_ilogbq2_vxe2(Sleef_quadx2 x);
Link with -lsleefquad
.
These are the vectorized functions of Sleef_ilogbq1_purec.