Yeppp!
 All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages
yepMath.h: vector mathematical functions.

Natural logarithm

enum YepStatus yepMath_Log_V64f_V64f (const Yep64f *restrict x, Yep64f *restrict y, YepSize length)
 Computes logarithm on an array of double precision (64-bit) floating-point elements. More...
 

Base-e exponent

enum YepStatus yepMath_Exp_V64f_V64f (const Yep64f *restrict x, Yep64f *restrict y, YepSize length)
 Computes exponent on double precision (64-bit) floating-point elements. More...
 

Sine

enum YepStatus yepMath_Sin_V64f_V64f (const Yep64f *restrict x, Yep64f *restrict y, YepSize length)
 Computes sine on double precision (64-bit) floating-point elements. More...
 

Cosine

enum YepStatus yepMath_Cos_V64f_V64f (const Yep64f *restrict x, Yep64f *restrict y, YepSize length)
 Computes cosine on double precision (64-bit) floating-point elements. More...
 

Tangent

enum YepStatus yepMath_Tan_V64f_V64f (const Yep64f *restrict x, Yep64f *restrict y, YepSize length)
 Computes tangent on double precision (64-bit) floating-point elements. More...
 

Polynomial evaluation

enum YepStatus yepMath_EvaluatePolynomial_V32fV32f_V32f (const Yep32f *restrict coef, const Yep32f *restrict x, Yep32f *restrict y, YepSize coefCount, YepSize length)
 Evaluates polynomial with single precision (32-bit) floating-point coefficients on an array of single precision (32-bit) floating-point elements. More...
 
enum YepStatus yepMath_EvaluatePolynomial_V64fV64f_V64f (const Yep64f *restrict coef, const Yep64f *restrict x, Yep64f *restrict y, YepSize coefCount, YepSize length)
 Evaluates polynomial with double precision (64-bit) floating-point coefficients on an array of double precision (64-bit) floating-point elements. More...
 

Detailed Description

Function Documentation

enum YepStatus yepMath_Log_V64f_V64f ( const Yep64f *restrict  x,
Yep64f *restrict  y,
YepSize  length 
)

Computes logarithm on an array of double precision (64-bit) floating-point elements.

Parameters
[in]xPointer to the array of elements on which the logarithm will be computed.
[out]yPointer the array where the computed logarithms will be stored.
[in]lengthLength of the arrays specified by x and y.
Return values
YepStatusOkThe computation finished successfully.
YepStatusNullPointerx or y argument is null.
YepStatusMisalignedPointerx or y argument is not naturally aligned.
Optimized implementations
ArchitectureTarget microarchitectureRequired instruction extensions
x86-64Intel NehalemSSE, SSE2, SSE4.1
x86-64Intel Sandy BridgeAVX
x86-64AMD K10SSE, SSE2
x86-64AMD BulldozerAVX, FMA4, XOP
x86-64AMD BobcatSSE, SSE2
Examples:
Entropy.c.
enum YepStatus yepMath_Exp_V64f_V64f ( const Yep64f *restrict  x,
Yep64f *restrict  y,
YepSize  length 
)

Computes exponent on double precision (64-bit) floating-point elements.

Parameters
[in]xPointer the input array.
[out]yPointer the output array.
[in]lengthLength of the arrays specified by x and y.
Return values
YepStatusOkThe computation finished successfully.
YepStatusNullPointerx or y argument is null.
YepStatusMisalignedPointerx or y argument is not naturally aligned.
Optimized implementations
ArchitectureTarget microarchitectureRequired instruction extensions
x86-64Intel NehalemSSE, SSE2, SSE4.1
x86-64Intel Sandy BridgeAVX
x86-64Intel HaswellAVX, AVX2, FMA3
x86-64AMD K10CMOV, SSE, SSE2
x86-64AMD BulldozerAVX, FMA4
x86-64AMD BobcatCMOV, SSE, SSE2
enum YepStatus yepMath_Sin_V64f_V64f ( const Yep64f *restrict  x,
Yep64f *restrict  y,
YepSize  length 
)

Computes sine on double precision (64-bit) floating-point elements.

Parameters
[in]xPointer the input array.
[out]yPointer the output array.
[in]lengthLength of the arrays specified by x and y.
Return values
YepStatusOkThe computation finished successfully.
YepStatusNullPointerx or y argument is null.
YepStatusMisalignedPointerx or y argument is not naturally aligned.
Optimized implementations
ArchitectureTarget microarchitectureRequired instruction extensions
x86-64Intel NehalemSSE, SSE2, SSE4.1
x86-64Intel Sandy BridgeAVX
x86-64Intel HaswellAVX, AVX2, FMA3
x86-64AMD BulldozerAVX, FMA4
enum YepStatus yepMath_Cos_V64f_V64f ( const Yep64f *restrict  x,
Yep64f *restrict  y,
YepSize  length 
)

Computes cosine on double precision (64-bit) floating-point elements.

Parameters
[in]xPointer the input array.
[out]yPointer the output array.
[in]lengthLength of the arrays specified by x and y.
Return values
YepStatusOkThe computation finished successfully.
YepStatusNullPointerx or y argument is null.
YepStatusMisalignedPointerx or y argument is not naturally aligned.
Optimized implementations
ArchitectureTarget microarchitectureRequired instruction extensions
x86-64Intel NehalemSSE, SSE2, SSE4.1
x86-64Intel Sandy BridgeAVX
x86-64Intel HaswellAVX, AVX2, FMA3
x86-64AMD BulldozerAVX, FMA4
enum YepStatus yepMath_Tan_V64f_V64f ( const Yep64f *restrict  x,
Yep64f *restrict  y,
YepSize  length 
)

Computes tangent on double precision (64-bit) floating-point elements.

Parameters
[in]xPointer the array of elements to compute tangent on.
[out]yPointer the output array.
[in]lengthLength of the arrays specified by x and y.
Return values
YepStatusOkThe computation finished successfully.
YepStatusNullPointerx or y argument is null.
YepStatusMisalignedPointerx or y argument is not naturally aligned.
Optimized implementations
ArchitectureTarget microarchitectureRequired instruction extensions
x86-64AMD BulldozerAVX, FMA4
enum YepStatus yepMath_EvaluatePolynomial_V32fV32f_V32f ( const Yep32f *restrict  coef,
const Yep32f *restrict  x,
Yep32f *restrict  y,
YepSize  coefCount,
YepSize  length 
)

Evaluates polynomial with single precision (32-bit) floating-point coefficients on an array of single precision (32-bit) floating-point elements.

Parameters
[in]xPointer to the array of elements on which the polynomial will be evaluated.
[in]coefPointer to the array of polynomial coefficients.
[out]yPointer the array where the result of polynomial evaluation will be stored.
[in]coefCountNumber of polynomial coefficients. Should equal the polynomial degree plus one.
[in]lengthLength of the arrays specified by x and y.
Return values
YepStatusInvalidArgumentcoefCount is zero.
YepStatusOkThe computation finished successfully.
YepStatusNullPointercoef, x or y argument is null.
YepStatusMisalignedPointercoef, x or y argument is not naturally aligned.
Optimized implementations
ArchitectureTarget microarchitectureRequired instruction extensions
x86-64DefaultSSE
x86-64Intel NehalemSSE
x86-64Intel Sandy BridgeAVX
x86-64Intel HaswellAVX, FMA3
x86-64Intel BonnellSSE
x86-64AMD BulldozerAVX, FMA4
enum YepStatus yepMath_EvaluatePolynomial_V64fV64f_V64f ( const Yep64f *restrict  coef,
const Yep64f *restrict  x,
Yep64f *restrict  y,
YepSize  coefCount,
YepSize  length 
)

Evaluates polynomial with double precision (64-bit) floating-point coefficients on an array of double precision (64-bit) floating-point elements.

Parameters
[in]xPointer to the array of elements on which the polynomial will be evaluated.
[in]coefPointer to the array of polynomial coefficients.
[out]yPointer the array where the result of polynomial evaluation will be stored.
[in]coefCountNumber of polynomial coefficients. Should equal the polynomial degree plus one.
[in]lengthLength of the arrays specified by x and y.
Return values
YepStatusInvalidArgumentcoefCount is zero.
YepStatusOkThe computation finished successfully.
YepStatusNullPointercoef, x or y argument is null.
YepStatusMisalignedPointercoef, x or y argument is not naturally aligned.
Optimized implementations
ArchitectureTarget microarchitectureRequired instruction extensions
x86-64DefaultSSE2
x86-64Intel NehalemSSE, SSE2, SSE3
x86-64Intel Sandy BridgeAVX
x86-64Intel HaswellAVX, FMA3
x86-64Intel BonnellSSE, SSE2
x86-64AMD BulldozerAVX, FMA4
Examples:
Polynomial.c.