Yeppp!
 All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages
yepCore.h: basic arithmetic operations.

Addition

enum YepStatus yepCore_Add_V8uV8u_V8u (const Yep8u *restrict x, const Yep8u *restrict y, Yep8u *restrict sum, YepSize length)
 Adds corresponding elements in two unsigned 8-bit integer arrays, producing an array of unsigned 8-bit integer elements. More...
 
enum YepStatus yepCore_Add_V8uV8u_V16u (const Yep8u *restrict x, const Yep8u *restrict y, Yep16u *restrict sum, YepSize length)
 Adds corresponding elements in two unsigned 8-bit integer arrays, producing an array of unsigned 16-bit integer elements. More...
 
enum YepStatus yepCore_Add_V8sV8s_V16s (const Yep8s *restrict x, const Yep8s *restrict y, Yep16s *restrict sum, YepSize length)
 Adds corresponding elements in two signed 8-bit integer arrays, producing an array of signed 16-bit integer elements. More...
 
enum YepStatus yepCore_Add_V16uV16u_V16u (const Yep16u *restrict x, const Yep16u *restrict y, Yep16u *restrict sum, YepSize length)
 Adds corresponding elements in two unsigned 16-bit integer arrays, producing an array of unsigned 16-bit integer elements. More...
 
enum YepStatus yepCore_Add_V16uV16u_V32u (const Yep16u *restrict x, const Yep16u *restrict y, Yep32u *restrict sum, YepSize length)
 Adds corresponding elements in two unsigned 16-bit integer arrays, producing an array of unsigned 32-bit integer elements. More...
 
enum YepStatus yepCore_Add_V16sV16s_V32s (const Yep16s *restrict x, const Yep16s *restrict y, Yep32s *restrict sum, YepSize length)
 Adds corresponding elements in two signed 16-bit integer arrays, producing an array of signed 32-bit integer elements. More...
 
enum YepStatus yepCore_Add_V32uV32u_V32u (const Yep32u *restrict x, const Yep32u *restrict y, Yep32u *restrict sum, YepSize length)
 Adds corresponding elements in two unsigned 32-bit integer arrays, producing an array of unsigned 32-bit integer elements. More...
 
enum YepStatus yepCore_Add_V32uV32u_V64u (const Yep32u *restrict x, const Yep32u *restrict y, Yep64u *restrict sum, YepSize length)
 Adds corresponding elements in two unsigned 32-bit integer arrays, producing an array of unsigned 64-bit integer elements. More...
 
enum YepStatus yepCore_Add_V32sV32s_V64s (const Yep32s *restrict x, const Yep32s *restrict y, Yep64s *restrict sum, YepSize length)
 Adds corresponding elements in two signed 32-bit integer arrays, producing an array of signed 64-bit integer elements. More...
 
enum YepStatus yepCore_Add_V64uV64u_V64u (const Yep64u *restrict x, const Yep64u *restrict y, Yep64u *restrict sum, YepSize length)
 Adds corresponding elements in two unsigned 64-bit integer arrays, producing an array of unsigned 64-bit integer elements. More...
 
enum YepStatus yepCore_Add_V32fV32f_V32f (const Yep32f *restrict x, const Yep32f *restrict y, Yep32f *restrict sum, YepSize length)
 Adds corresponding elements in two single precision (32-bit) floating-point arrays, producing an array of single precision (32-bit) floating-point elements. More...
 
enum YepStatus yepCore_Add_V64fV64f_V64f (const Yep64f *restrict x, const Yep64f *restrict y, Yep64f *restrict sum, YepSize length)
 Adds corresponding elements in two double precision (64-bit) floating-point arrays, producing an array of double precision (64-bit) floating-point elements. More...
 

Subtraction

enum YepStatus yepCore_Subtract_V8uV8u_V8u (const Yep8u *restrict x, const Yep8u *restrict y, Yep8u *restrict difference, YepSize length)
 Subtracts corresponding elements in two unsigned 8-bit integer arrays, producing an array of unsigned 8-bit integer elements. More...
 
enum YepStatus yepCore_Subtract_V8uV8u_V16u (const Yep8u *restrict x, const Yep8u *restrict y, Yep16u *restrict difference, YepSize length)
 Subtracts corresponding elements in two unsigned 8-bit integer arrays, producing an array of unsigned 16-bit integer elements. More...
 
enum YepStatus yepCore_Subtract_V8sV8s_V16s (const Yep8s *restrict x, const Yep8s *restrict y, Yep16s *restrict difference, YepSize length)
 Subtracts corresponding elements in two signed 8-bit integer arrays, producing an array of signed 16-bit integer elements. More...
 
enum YepStatus yepCore_Subtract_V16uV16u_V16u (const Yep16u *restrict x, const Yep16u *restrict y, Yep16u *restrict difference, YepSize length)
 Subtracts corresponding elements in two unsigned 16-bit integer arrays, producing an array of unsigned 16-bit integer elements. More...
 
enum YepStatus yepCore_Subtract_V16uV16u_V32u (const Yep16u *restrict x, const Yep16u *restrict y, Yep32u *restrict difference, YepSize length)
 Subtracts corresponding elements in two unsigned 16-bit integer arrays, producing an array of unsigned 32-bit integer elements. More...
 
enum YepStatus yepCore_Subtract_V16sV16s_V32s (const Yep16s *restrict x, const Yep16s *restrict y, Yep32s *restrict difference, YepSize length)
 Subtracts corresponding elements in two signed 16-bit integer arrays, producing an array of signed 32-bit integer elements. More...
 
enum YepStatus yepCore_Subtract_V32uV32u_V32u (const Yep32u *restrict x, const Yep32u *restrict y, Yep32u *restrict difference, YepSize length)
 Subtracts corresponding elements in two unsigned 32-bit integer arrays, producing an array of unsigned 32-bit integer elements. More...
 
enum YepStatus yepCore_Subtract_V32uV32u_V64u (const Yep32u *restrict x, const Yep32u *restrict y, Yep64u *restrict difference, YepSize length)
 Subtracts corresponding elements in two unsigned 32-bit integer arrays, producing an array of unsigned 64-bit integer elements. More...
 
enum YepStatus yepCore_Subtract_V32sV32s_V64s (const Yep32s *restrict x, const Yep32s *restrict y, Yep64s *restrict difference, YepSize length)
 Subtracts corresponding elements in two signed 32-bit integer arrays, producing an array of signed 64-bit integer elements. More...
 
enum YepStatus yepCore_Subtract_V64uV64u_V64u (const Yep64u *restrict x, const Yep64u *restrict y, Yep64u *restrict difference, YepSize length)
 Subtracts corresponding elements in two unsigned 64-bit integer arrays, producing an array of unsigned 64-bit integer elements. More...
 
enum YepStatus yepCore_Subtract_V32fV32f_V32f (const Yep32f *restrict x, const Yep32f *restrict y, Yep32f *restrict difference, YepSize length)
 Subtracts corresponding elements in two single precision (32-bit) floating-point arrays, producing an array of single precision (32-bit) floating-point elements. More...
 
enum YepStatus yepCore_Subtract_V64fV64f_V64f (const Yep64f *restrict x, const Yep64f *restrict y, Yep64f *restrict difference, YepSize length)
 Subtracts corresponding elements in two double precision (64-bit) floating-point arrays, producing an array of double precision (64-bit) floating-point elements. More...
 

Multiplication

enum YepStatus yepCore_Multiply_V8uV8u_V8u (const Yep8u *restrict x, const Yep8u *restrict y, Yep8u *restrict product, YepSize length)
 Multiples corresponding elements in two unsigned 8-bit integer arrays, producing an array of unsigned 8-bit integer elements. More...
 
enum YepStatus yepCore_Multiply_V8uV8u_V16u (const Yep8u *restrict x, const Yep8u *restrict y, Yep16u *restrict product, YepSize length)
 Multiples corresponding elements in two unsigned 8-bit integer arrays, producing an array of unsigned 16-bit integer elements. More...
 
enum YepStatus yepCore_Multiply_V8sV8s_V16s (const Yep8s *restrict x, const Yep8s *restrict y, Yep16s *restrict product, YepSize length)
 Multiples corresponding elements in two signed 8-bit integer arrays, producing an array of signed 16-bit integer elements. More...
 
enum YepStatus yepCore_Multiply_V16uV16u_V16u (const Yep16u *restrict x, const Yep16u *restrict y, Yep16u *restrict product, YepSize length)
 Multiples corresponding elements in two unsigned 16-bit integer arrays, producing an array of unsigned 16-bit integer elements. More...
 
enum YepStatus yepCore_Multiply_V16uV16u_V32u (const Yep16u *restrict x, const Yep16u *restrict y, Yep32u *restrict product, YepSize length)
 Multiples corresponding elements in two unsigned 16-bit integer arrays, producing an array of unsigned 32-bit integer elements. More...
 
enum YepStatus yepCore_Multiply_V16sV16s_V32s (const Yep16s *restrict x, const Yep16s *restrict y, Yep32s *restrict product, YepSize length)
 Multiples corresponding elements in two signed 16-bit integer arrays, producing an array of signed 32-bit integer elements. More...
 
enum YepStatus yepCore_Multiply_V32uV32u_V32u (const Yep32u *restrict x, const Yep32u *restrict y, Yep32u *restrict product, YepSize length)
 Multiples corresponding elements in two unsigned 32-bit integer arrays, producing an array of unsigned 32-bit integer elements. More...
 
enum YepStatus yepCore_Multiply_V32uV32u_V64u (const Yep32u *restrict x, const Yep32u *restrict y, Yep64u *restrict product, YepSize length)
 Multiples corresponding elements in two unsigned 32-bit integer arrays, producing an array of unsigned 64-bit integer elements. More...
 
enum YepStatus yepCore_Multiply_V32sV32s_V64s (const Yep32s *restrict x, const Yep32s *restrict y, Yep64s *restrict product, YepSize length)
 Multiples corresponding elements in two signed 32-bit integer arrays, producing an array of signed 64-bit integer elements. More...
 
enum YepStatus yepCore_Multiply_V64uV64u_V64u (const Yep64u *restrict x, const Yep64u *restrict y, Yep64u *restrict product, YepSize length)
 Multiples corresponding elements in two unsigned 64-bit integer arrays, producing an array of unsigned 64-bit integer elements. More...
 
enum YepStatus yepCore_Multiply_V32fV32f_V32f (const Yep32f *restrict x, const Yep32f *restrict y, Yep32f *restrict product, YepSize length)
 Multiples corresponding elements in two single precision (32-bit) floating-point arrays, producing an array of single precision (32-bit) floating-point elements. More...
 
enum YepStatus yepCore_Multiply_V64fV64f_V64f (const Yep64f *restrict x, const Yep64f *restrict y, Yep64f *restrict product, YepSize length)
 Multiples corresponding elements in two double precision (64-bit) floating-point arrays, producing an array of double precision (64-bit) floating-point elements. More...
 
enum YepStatus yepCore_Multiply_V8uS8u_V8u (const Yep8u *restrict x, Yep8u y, Yep8u *restrict product, YepSize length)
 
enum YepStatus yepCore_Multiply_V8uS8u_V16u (const Yep8u *restrict x, Yep8u y, Yep16u *restrict product, YepSize length)
 
enum YepStatus yepCore_Multiply_V8sS8s_V16s (const Yep8s *restrict x, Yep8s y, Yep16s *restrict product, YepSize length)
 
enum YepStatus yepCore_Multiply_V16uS16u_V16u (const Yep16u *restrict x, Yep16u y, Yep16u *restrict product, YepSize length)
 
enum YepStatus yepCore_Multiply_V16uS16u_V32u (const Yep16u *restrict x, Yep16u y, Yep32u *restrict product, YepSize length)
 
enum YepStatus yepCore_Multiply_V16sS16s_V32s (const Yep16s *restrict x, Yep16s y, Yep32s *restrict product, YepSize length)
 
enum YepStatus yepCore_Multiply_V32uS32u_V32u (const Yep32u *restrict x, Yep32u y, Yep32u *restrict product, YepSize length)
 
enum YepStatus yepCore_Multiply_V32uS32u_V64u (const Yep32u *restrict x, Yep32u y, Yep64u *restrict product, YepSize length)
 
enum YepStatus yepCore_Multiply_V32sS32s_V64s (const Yep32s *restrict x, Yep32s y, Yep64s *restrict product, YepSize length)
 
enum YepStatus yepCore_Multiply_V64uS64u_V64u (const Yep64u *restrict x, Yep64u y, Yep64u *restrict product, YepSize length)
 
enum YepStatus yepCore_Multiply_V32fS32f_V32f (const Yep32f *restrict x, Yep32f y, Yep32f *restrict product, YepSize length)
 
enum YepStatus yepCore_Multiply_V64fS64f_V64f (const Yep64f *restrict x, Yep64f y, Yep64f *restrict product, YepSize length)
 
enum YepStatus yepCore_Multiply_IV8uV8u_IV8u (Yep8u *restrict x, const Yep8u *restrict y, YepSize length)
 
enum YepStatus yepCore_Multiply_IV16uV16u_IV16u (Yep16u *restrict x, const Yep16u *restrict y, YepSize length)
 
enum YepStatus yepCore_Multiply_IV32uV32u_IV32u (Yep32u *restrict x, const Yep32u *restrict y, YepSize length)
 
enum YepStatus yepCore_Multiply_IV64uV64u_IV64u (Yep64u *restrict x, const Yep64u *restrict y, YepSize length)
 
enum YepStatus yepCore_Multiply_IV32fV32f_IV32f (Yep32f *restrict x, const Yep32f *restrict y, YepSize length)
 
enum YepStatus yepCore_Multiply_IV64fV64f_IV64f (Yep64f *restrict x, const Yep64f *restrict y, YepSize length)
 
enum YepStatus yepCore_Multiply_IV8uS8u_IV8u (Yep8u *restrict x, Yep8u y, YepSize length)
 
enum YepStatus yepCore_Multiply_IV16uS16u_IV16u (Yep16u *restrict x, Yep16u y, YepSize length)
 
enum YepStatus yepCore_Multiply_IV32uS32u_IV32u (Yep32u *restrict x, Yep32u y, YepSize length)
 
enum YepStatus yepCore_Multiply_IV64uS64u_IV64u (Yep64u *restrict x, Yep64u y, YepSize length)
 
enum YepStatus yepCore_Multiply_IV32fS32f_IV32f (Yep32f *restrict x, Yep32f y, YepSize length)
 
enum YepStatus yepCore_Multiply_IV64fS64f_IV64f (Yep64f *restrict x, Yep64f y, YepSize length)
 

Dot product

enum YepStatus yepCore_DotProduct_V32fV32f_S32f (const Yep32f *restrict x, const Yep32f *restrict y, Yep32f *restrict dotProduct, YepSize length)
 Computes the dot product of single precision (32-bit) floating-point elements in two arrays. More...
 
enum YepStatus yepCore_DotProduct_V64fV64f_S64f (const Yep64f *restrict x, const Yep64f *restrict y, Yep64f *restrict dotProduct, YepSize length)
 Computes the dot product of double precision (64-bit) floating-point elements in two arrays. More...
 

Sum of squares (squared L2 norm)

enum YepStatus yepCore_SumSquares_V32f_S32f (const Yep32f *restrict v, Yep32f *restrict sumSquares, YepSize length)
 Computes the sum of squares of single precision (32-bit) floating-point elements in the input array. More...
 
enum YepStatus yepCore_SumSquares_V64f_S64f (const Yep64f *restrict v, Yep64f *restrict sumSquares, YepSize length)
 Computes the sum of squares of double precision (64-bit) floating-point elements in the input array. More...
 

Detailed Description

Function Documentation

enum YepStatus yepCore_Add_V8uV8u_V8u ( const Yep8u *restrict  x,
const Yep8u *restrict  y,
Yep8u *restrict  sum,
YepSize  length 
)

Adds corresponding elements in two unsigned 8-bit integer arrays, producing an array of unsigned 8-bit integer elements.

Parameters
[in]xPointer the first array of unsigned 8-bit integer elements to be added.
[in]yPointer the second array of unsigned 8-bit integer elements to be added.
[out]sumPointer the array of unsigned 8-bit integer elements where the pairwise sums will be stored.
[in]lengthThe length of the arrays specified by x and y, and sum.
Return values
YepStatusOkThe computation finished successfully.
YepStatusNullPointerx, y or sum argument is null.
YepStatusMisalignedPointerx, y or sum argument is not naturally aligned.
Optimized implementations
ArchitectureTarget microarchitectureRequired instruction extensions
x86-64Intel NehalemSSE2
enum YepStatus yepCore_Add_V8uV8u_V16u ( const Yep8u *restrict  x,
const Yep8u *restrict  y,
Yep16u *restrict  sum,
YepSize  length 
)

Adds corresponding elements in two unsigned 8-bit integer arrays, producing an array of unsigned 16-bit integer elements.

Parameters
[in]xPointer the first array of unsigned 8-bit integer elements to be added.
[in]yPointer the second array of unsigned 8-bit integer elements to be added.
[out]sumPointer the array of unsigned 16-bit integer elements where the pairwise sums will be stored.
[in]lengthThe length of the arrays specified by x and y, and sum.
Return values
YepStatusOkThe computation finished successfully.
YepStatusNullPointerx, y or sum argument is null.
YepStatusMisalignedPointerx, y or sum argument is not naturally aligned.
Optimized implementations
ArchitectureTarget microarchitectureRequired instruction extensions
x86-64Intel NehalemSSE2, SSE4.1
enum YepStatus yepCore_Add_V8sV8s_V16s ( const Yep8s *restrict  x,
const Yep8s *restrict  y,
Yep16s *restrict  sum,
YepSize  length 
)

Adds corresponding elements in two signed 8-bit integer arrays, producing an array of signed 16-bit integer elements.

Parameters
[in]xPointer the first array of signed 8-bit integer elements to be added.
[in]yPointer the second array of signed 8-bit integer elements to be added.
[out]sumPointer the array of signed 16-bit integer elements where the pairwise sums will be stored.
[in]lengthThe length of the arrays specified by x and y, and sum.
Return values
YepStatusOkThe computation finished successfully.
YepStatusNullPointerx, y or sum argument is null.
YepStatusMisalignedPointerx, y or sum argument is not naturally aligned.
Optimized implementations
ArchitectureTarget microarchitectureRequired instruction extensions
x86-64Intel NehalemSSE2, SSE4.1
enum YepStatus yepCore_Add_V16uV16u_V16u ( const Yep16u *restrict  x,
const Yep16u *restrict  y,
Yep16u *restrict  sum,
YepSize  length 
)

Adds corresponding elements in two unsigned 16-bit integer arrays, producing an array of unsigned 16-bit integer elements.

Parameters
[in]xPointer the first array of unsigned 16-bit integer elements to be added.
[in]yPointer the second array of unsigned 16-bit integer elements to be added.
[out]sumPointer the array of unsigned 16-bit integer elements where the pairwise sums will be stored.
[in]lengthThe length of the arrays specified by x and y, and sum.
Return values
YepStatusOkThe computation finished successfully.
YepStatusNullPointerx, y or sum argument is null.
YepStatusMisalignedPointerx, y or sum argument is not naturally aligned.
Optimized implementations
ArchitectureTarget microarchitectureRequired instruction extensions
x86-64Intel NehalemSSE2
enum YepStatus yepCore_Add_V16uV16u_V32u ( const Yep16u *restrict  x,
const Yep16u *restrict  y,
Yep32u *restrict  sum,
YepSize  length 
)

Adds corresponding elements in two unsigned 16-bit integer arrays, producing an array of unsigned 32-bit integer elements.

Parameters
[in]xPointer the first array of unsigned 16-bit integer elements to be added.
[in]yPointer the second array of unsigned 16-bit integer elements to be added.
[out]sumPointer the array of unsigned 32-bit integer elements where the pairwise sums will be stored.
[in]lengthThe length of the arrays specified by x and y, and sum.
Return values
YepStatusOkThe computation finished successfully.
YepStatusNullPointerx, y or sum argument is null.
YepStatusMisalignedPointerx, y or sum argument is not naturally aligned.
Optimized implementations
ArchitectureTarget microarchitectureRequired instruction extensions
x86-64Intel NehalemSSE2, SSE4.1
enum YepStatus yepCore_Add_V16sV16s_V32s ( const Yep16s *restrict  x,
const Yep16s *restrict  y,
Yep32s *restrict  sum,
YepSize  length 
)

Adds corresponding elements in two signed 16-bit integer arrays, producing an array of signed 32-bit integer elements.

Parameters
[in]xPointer the first array of signed 16-bit integer elements to be added.
[in]yPointer the second array of signed 16-bit integer elements to be added.
[out]sumPointer the array of signed 32-bit integer elements where the pairwise sums will be stored.
[in]lengthThe length of the arrays specified by x and y, and sum.
Return values
YepStatusOkThe computation finished successfully.
YepStatusNullPointerx, y or sum argument is null.
YepStatusMisalignedPointerx, y or sum argument is not naturally aligned.
Optimized implementations
ArchitectureTarget microarchitectureRequired instruction extensions
x86-64Intel NehalemSSE2, SSE4.1
enum YepStatus yepCore_Add_V32uV32u_V32u ( const Yep32u *restrict  x,
const Yep32u *restrict  y,
Yep32u *restrict  sum,
YepSize  length 
)

Adds corresponding elements in two unsigned 32-bit integer arrays, producing an array of unsigned 32-bit integer elements.

Parameters
[in]xPointer the first array of unsigned 32-bit integer elements to be added.
[in]yPointer the second array of unsigned 32-bit integer elements to be added.
[out]sumPointer the array of unsigned 32-bit integer elements where the pairwise sums will be stored.
[in]lengthThe length of the arrays specified by x and y, and sum.
Return values
YepStatusOkThe computation finished successfully.
YepStatusNullPointerx, y or sum argument is null.
YepStatusMisalignedPointerx, y or sum argument is not naturally aligned.
Optimized implementations
ArchitectureTarget microarchitectureRequired instruction extensions
x86-64Intel NehalemSSE2
enum YepStatus yepCore_Add_V32uV32u_V64u ( const Yep32u *restrict  x,
const Yep32u *restrict  y,
Yep64u *restrict  sum,
YepSize  length 
)

Adds corresponding elements in two unsigned 32-bit integer arrays, producing an array of unsigned 64-bit integer elements.

Parameters
[in]xPointer the first array of unsigned 32-bit integer elements to be added.
[in]yPointer the second array of unsigned 32-bit integer elements to be added.
[out]sumPointer the array of unsigned 64-bit integer elements where the pairwise sums will be stored.
[in]lengthThe length of the arrays specified by x and y, and sum.
Return values
YepStatusOkThe computation finished successfully.
YepStatusNullPointerx, y or sum argument is null.
YepStatusMisalignedPointerx, y or sum argument is not naturally aligned.
Optimized implementations
ArchitectureTarget microarchitectureRequired instruction extensions
x86-64Intel NehalemSSE2, SSE4.1
enum YepStatus yepCore_Add_V32sV32s_V64s ( const Yep32s *restrict  x,
const Yep32s *restrict  y,
Yep64s *restrict  sum,
YepSize  length 
)

Adds corresponding elements in two signed 32-bit integer arrays, producing an array of signed 64-bit integer elements.

Parameters
[in]xPointer the first array of signed 32-bit integer elements to be added.
[in]yPointer the second array of signed 32-bit integer elements to be added.
[out]sumPointer the array of signed 64-bit integer elements where the pairwise sums will be stored.
[in]lengthThe length of the arrays specified by x and y, and sum.
Return values
YepStatusOkThe computation finished successfully.
YepStatusNullPointerx, y or sum argument is null.
YepStatusMisalignedPointerx, y or sum argument is not naturally aligned.
Optimized implementations
ArchitectureTarget microarchitectureRequired instruction extensions
x86-64Intel NehalemSSE2, SSE4.1
enum YepStatus yepCore_Add_V64uV64u_V64u ( const Yep64u *restrict  x,
const Yep64u *restrict  y,
Yep64u *restrict  sum,
YepSize  length 
)

Adds corresponding elements in two unsigned 64-bit integer arrays, producing an array of unsigned 64-bit integer elements.

Parameters
[in]xPointer the first array of unsigned 64-bit integer elements to be added.
[in]yPointer the second array of unsigned 64-bit integer elements to be added.
[out]sumPointer the array of unsigned 64-bit integer elements where the pairwise sums will be stored.
[in]lengthThe length of the arrays specified by x and y, and sum.
Return values
YepStatusOkThe computation finished successfully.
YepStatusNullPointerx, y or sum argument is null.
YepStatusMisalignedPointerx, y or sum argument is not naturally aligned.
Optimized implementations
ArchitectureTarget microarchitectureRequired instruction extensions
x86-64Intel NehalemSSE2
enum YepStatus yepCore_Add_V32fV32f_V32f ( const Yep32f *restrict  x,
const Yep32f *restrict  y,
Yep32f *restrict  sum,
YepSize  length 
)

Adds corresponding elements in two single precision (32-bit) floating-point arrays, producing an array of single precision (32-bit) floating-point elements.

Parameters
[in]xPointer the first array of single precision (32-bit) floating-point elements to be added.
[in]yPointer the second array of single precision (32-bit) floating-point elements to be added.
[out]sumPointer the array of single precision (32-bit) floating-point elements where the pairwise sums will be stored.
[in]lengthThe length of the arrays specified by x and y, and sum.
Return values
YepStatusOkThe computation finished successfully.
YepStatusNullPointerx, y or sum argument is null.
YepStatusMisalignedPointerx, y or sum argument is not naturally aligned.
Optimized implementations
ArchitectureTarget microarchitectureRequired instruction extensions
x86-64Intel NehalemSSE
enum YepStatus yepCore_Add_V64fV64f_V64f ( const Yep64f *restrict  x,
const Yep64f *restrict  y,
Yep64f *restrict  sum,
YepSize  length 
)

Adds corresponding elements in two double precision (64-bit) floating-point arrays, producing an array of double precision (64-bit) floating-point elements.

Parameters
[in]xPointer the first array of double precision (64-bit) floating-point elements to be added.
[in]yPointer the second array of double precision (64-bit) floating-point elements to be added.
[out]sumPointer the array of double precision (64-bit) floating-point elements where the pairwise sums will be stored.
[in]lengthThe length of the arrays specified by x and y, and sum.
Return values
YepStatusOkThe computation finished successfully.
YepStatusNullPointerx, y or sum argument is null.
YepStatusMisalignedPointerx, y or sum argument is not naturally aligned.
Optimized implementations
ArchitectureTarget microarchitectureRequired instruction extensions
x86-64Intel NehalemSSE2
enum YepStatus yepCore_Subtract_V8uV8u_V8u ( const Yep8u *restrict  x,
const Yep8u *restrict  y,
Yep8u *restrict  difference,
YepSize  length 
)

Subtracts corresponding elements in two unsigned 8-bit integer arrays, producing an array of unsigned 8-bit integer elements.

Parameters
[in]xPointer the minuend array of unsigned 8-bit integer elements to be subtracted from.
[in]yPointer the subtrahend array of unsigned 8-bit integer elements to be subtracted.
[out]differencePointer the array of unsigned 8-bit integer elements where the pairwise differences will be stored.
[in]lengthThe length of the arrays specified by x and y, and sum.
Return values
YepStatusOkThe computation finished successfully.
YepStatusNullPointerx, y or difference argument is null.
YepStatusMisalignedPointerx, y or difference argument is not naturally aligned.
Optimized implementations
ArchitectureTarget microarchitectureRequired instruction extensions
x86-64Intel NehalemSSE2
enum YepStatus yepCore_Subtract_V8uV8u_V16u ( const Yep8u *restrict  x,
const Yep8u *restrict  y,
Yep16u *restrict  difference,
YepSize  length 
)

Subtracts corresponding elements in two unsigned 8-bit integer arrays, producing an array of unsigned 16-bit integer elements.

Parameters
[in]xPointer the minuend array of unsigned 8-bit integer elements to be subtracted from.
[in]yPointer the subtrahend array of unsigned 8-bit integer elements to be subtracted.
[out]differencePointer the array of unsigned 16-bit integer elements where the pairwise differences will be stored.
[in]lengthThe length of the arrays specified by x and y, and sum.
Return values
YepStatusOkThe computation finished successfully.
YepStatusNullPointerx, y or difference argument is null.
YepStatusMisalignedPointerx, y or difference argument is not naturally aligned.
Optimized implementations
ArchitectureTarget microarchitectureRequired instruction extensions
x86-64Intel NehalemSSE2, SSE4.1
enum YepStatus yepCore_Subtract_V8sV8s_V16s ( const Yep8s *restrict  x,
const Yep8s *restrict  y,
Yep16s *restrict  difference,
YepSize  length 
)

Subtracts corresponding elements in two signed 8-bit integer arrays, producing an array of signed 16-bit integer elements.

Parameters
[in]xPointer the minuend array of signed 8-bit integer elements to be subtracted from.
[in]yPointer the subtrahend array of signed 8-bit integer elements to be subtracted.
[out]differencePointer the array of signed 16-bit integer elements where the pairwise differences will be stored.
[in]lengthThe length of the arrays specified by x and y, and sum.
Return values
YepStatusOkThe computation finished successfully.
YepStatusNullPointerx, y or difference argument is null.
YepStatusMisalignedPointerx, y or difference argument is not naturally aligned.
Optimized implementations
ArchitectureTarget microarchitectureRequired instruction extensions
x86-64Intel NehalemSSE2, SSE4.1
enum YepStatus yepCore_Subtract_V16uV16u_V16u ( const Yep16u *restrict  x,
const Yep16u *restrict  y,
Yep16u *restrict  difference,
YepSize  length 
)

Subtracts corresponding elements in two unsigned 16-bit integer arrays, producing an array of unsigned 16-bit integer elements.

Parameters
[in]xPointer the minuend array of unsigned 16-bit integer elements to be subtracted from.
[in]yPointer the subtrahend array of unsigned 16-bit integer elements to be subtracted.
[out]differencePointer the array of unsigned 16-bit integer elements where the pairwise differences will be stored.
[in]lengthThe length of the arrays specified by x and y, and sum.
Return values
YepStatusOkThe computation finished successfully.
YepStatusNullPointerx, y or difference argument is null.
YepStatusMisalignedPointerx, y or difference argument is not naturally aligned.
Optimized implementations
ArchitectureTarget microarchitectureRequired instruction extensions
x86-64Intel NehalemSSE2
enum YepStatus yepCore_Subtract_V16uV16u_V32u ( const Yep16u *restrict  x,
const Yep16u *restrict  y,
Yep32u *restrict  difference,
YepSize  length 
)

Subtracts corresponding elements in two unsigned 16-bit integer arrays, producing an array of unsigned 32-bit integer elements.

Parameters
[in]xPointer the minuend array of unsigned 16-bit integer elements to be subtracted from.
[in]yPointer the subtrahend array of unsigned 16-bit integer elements to be subtracted.
[out]differencePointer the array of unsigned 32-bit integer elements where the pairwise differences will be stored.
[in]lengthThe length of the arrays specified by x and y, and sum.
Return values
YepStatusOkThe computation finished successfully.
YepStatusNullPointerx, y or difference argument is null.
YepStatusMisalignedPointerx, y or difference argument is not naturally aligned.
Optimized implementations
ArchitectureTarget microarchitectureRequired instruction extensions
x86-64Intel NehalemSSE2, SSE4.1
enum YepStatus yepCore_Subtract_V16sV16s_V32s ( const Yep16s *restrict  x,
const Yep16s *restrict  y,
Yep32s *restrict  difference,
YepSize  length 
)

Subtracts corresponding elements in two signed 16-bit integer arrays, producing an array of signed 32-bit integer elements.

Parameters
[in]xPointer the minuend array of signed 16-bit integer elements to be subtracted from.
[in]yPointer the subtrahend array of signed 16-bit integer elements to be subtracted.
[out]differencePointer the array of signed 32-bit integer elements where the pairwise differences will be stored.
[in]lengthThe length of the arrays specified by x and y, and sum.
Return values
YepStatusOkThe computation finished successfully.
YepStatusNullPointerx, y or difference argument is null.
YepStatusMisalignedPointerx, y or difference argument is not naturally aligned.
Optimized implementations
ArchitectureTarget microarchitectureRequired instruction extensions
x86-64Intel NehalemSSE2, SSE4.1
enum YepStatus yepCore_Subtract_V32uV32u_V32u ( const Yep32u *restrict  x,
const Yep32u *restrict  y,
Yep32u *restrict  difference,
YepSize  length 
)

Subtracts corresponding elements in two unsigned 32-bit integer arrays, producing an array of unsigned 32-bit integer elements.

Parameters
[in]xPointer the minuend array of unsigned 32-bit integer elements to be subtracted from.
[in]yPointer the subtrahend array of unsigned 32-bit integer elements to be subtracted.
[out]differencePointer the array of unsigned 32-bit integer elements where the pairwise differences will be stored.
[in]lengthThe length of the arrays specified by x and y, and sum.
Return values
YepStatusOkThe computation finished successfully.
YepStatusNullPointerx, y or difference argument is null.
YepStatusMisalignedPointerx, y or difference argument is not naturally aligned.
Optimized implementations
ArchitectureTarget microarchitectureRequired instruction extensions
x86-64Intel NehalemSSE2
enum YepStatus yepCore_Subtract_V32uV32u_V64u ( const Yep32u *restrict  x,
const Yep32u *restrict  y,
Yep64u *restrict  difference,
YepSize  length 
)

Subtracts corresponding elements in two unsigned 32-bit integer arrays, producing an array of unsigned 64-bit integer elements.

Parameters
[in]xPointer the minuend array of unsigned 32-bit integer elements to be subtracted from.
[in]yPointer the subtrahend array of unsigned 32-bit integer elements to be subtracted.
[out]differencePointer the array of unsigned 64-bit integer elements where the pairwise differences will be stored.
[in]lengthThe length of the arrays specified by x and y, and sum.
Return values
YepStatusOkThe computation finished successfully.
YepStatusNullPointerx, y or difference argument is null.
YepStatusMisalignedPointerx, y or difference argument is not naturally aligned.
Optimized implementations
ArchitectureTarget microarchitectureRequired instruction extensions
x86-64Intel NehalemSSE2, SSE4.1
enum YepStatus yepCore_Subtract_V32sV32s_V64s ( const Yep32s *restrict  x,
const Yep32s *restrict  y,
Yep64s *restrict  difference,
YepSize  length 
)

Subtracts corresponding elements in two signed 32-bit integer arrays, producing an array of signed 64-bit integer elements.

Parameters
[in]xPointer the minuend array of signed 32-bit integer elements to be subtracted from.
[in]yPointer the subtrahend array of signed 32-bit integer elements to be subtracted.
[out]differencePointer the array of signed 64-bit integer elements where the pairwise differences will be stored.
[in]lengthThe length of the arrays specified by x and y, and sum.
Return values
YepStatusOkThe computation finished successfully.
YepStatusNullPointerx, y or difference argument is null.
YepStatusMisalignedPointerx, y or difference argument is not naturally aligned.
Optimized implementations
ArchitectureTarget microarchitectureRequired instruction extensions
x86-64Intel NehalemSSE2, SSE4.1
enum YepStatus yepCore_Subtract_V64uV64u_V64u ( const Yep64u *restrict  x,
const Yep64u *restrict  y,
Yep64u *restrict  difference,
YepSize  length 
)

Subtracts corresponding elements in two unsigned 64-bit integer arrays, producing an array of unsigned 64-bit integer elements.

Parameters
[in]xPointer the minuend array of unsigned 64-bit integer elements to be subtracted from.
[in]yPointer the subtrahend array of unsigned 64-bit integer elements to be subtracted.
[out]differencePointer the array of unsigned 64-bit integer elements where the pairwise differences will be stored.
[in]lengthThe length of the arrays specified by x and y, and sum.
Return values
YepStatusOkThe computation finished successfully.
YepStatusNullPointerx, y or difference argument is null.
YepStatusMisalignedPointerx, y or difference argument is not naturally aligned.
Optimized implementations
ArchitectureTarget microarchitectureRequired instruction extensions
x86-64Intel NehalemSSE2
enum YepStatus yepCore_Subtract_V32fV32f_V32f ( const Yep32f *restrict  x,
const Yep32f *restrict  y,
Yep32f *restrict  difference,
YepSize  length 
)

Subtracts corresponding elements in two single precision (32-bit) floating-point arrays, producing an array of single precision (32-bit) floating-point elements.

Parameters
[in]xPointer the minuend array of single precision (32-bit) floating-point elements to be subtracted from.
[in]yPointer the subtrahend array of single precision (32-bit) floating-point elements to be subtracted.
[out]differencePointer the array of single precision (32-bit) floating-point elements where the pairwise differences will be stored.
[in]lengthThe length of the arrays specified by x and y, and sum.
Return values
YepStatusOkThe computation finished successfully.
YepStatusNullPointerx, y or difference argument is null.
YepStatusMisalignedPointerx, y or difference argument is not naturally aligned.
Optimized implementations
ArchitectureTarget microarchitectureRequired instruction extensions
x86-64Intel NehalemSSE
enum YepStatus yepCore_Subtract_V64fV64f_V64f ( const Yep64f *restrict  x,
const Yep64f *restrict  y,
Yep64f *restrict  difference,
YepSize  length 
)

Subtracts corresponding elements in two double precision (64-bit) floating-point arrays, producing an array of double precision (64-bit) floating-point elements.

Parameters
[in]xPointer the minuend array of double precision (64-bit) floating-point elements to be subtracted from.
[in]yPointer the subtrahend array of double precision (64-bit) floating-point elements to be subtracted.
[out]differencePointer the array of double precision (64-bit) floating-point elements where the pairwise differences will be stored.
[in]lengthThe length of the arrays specified by x and y, and sum.
Return values
YepStatusOkThe computation finished successfully.
YepStatusNullPointerx, y or difference argument is null.
YepStatusMisalignedPointerx, y or difference argument is not naturally aligned.
Optimized implementations
ArchitectureTarget microarchitectureRequired instruction extensions
x86-64Intel NehalemSSE2
enum YepStatus yepCore_Multiply_V8uV8u_V8u ( const Yep8u *restrict  x,
const Yep8u *restrict  y,
Yep8u *restrict  product,
YepSize  length 
)

Multiples corresponding elements in two unsigned 8-bit integer arrays, producing an array of unsigned 8-bit integer elements.

Parameters
[in]xPointer the first array of unsigned 8-bit integer elements to be multiplied.
[in]yPointer the second array of unsigned 8-bit integer elements to be multiplied.
[out]productPointer the array of unsigned 8-bit integer elements where the pairwise products will be stored.
[in]lengthThe length of the arrays specified by x and y, and product.
Return values
YepStatusOkThe computation finished successfully.
YepStatusNullPointerx, y or product argument is null.
YepStatusMisalignedPointerx, y or product argument is not naturally aligned.
enum YepStatus yepCore_Multiply_V8uV8u_V16u ( const Yep8u *restrict  x,
const Yep8u *restrict  y,
Yep16u *restrict  product,
YepSize  length 
)

Multiples corresponding elements in two unsigned 8-bit integer arrays, producing an array of unsigned 16-bit integer elements.

Parameters
[in]xPointer the first array of unsigned 8-bit integer elements to be multiplied.
[in]yPointer the second array of unsigned 8-bit integer elements to be multiplied.
[out]productPointer the array of unsigned 16-bit integer elements where the pairwise products will be stored.
[in]lengthThe length of the arrays specified by x and y, and product.
Return values
YepStatusOkThe computation finished successfully.
YepStatusNullPointerx, y or product argument is null.
YepStatusMisalignedPointerx, y or product argument is not naturally aligned.
enum YepStatus yepCore_Multiply_V8sV8s_V16s ( const Yep8s *restrict  x,
const Yep8s *restrict  y,
Yep16s *restrict  product,
YepSize  length 
)

Multiples corresponding elements in two signed 8-bit integer arrays, producing an array of signed 16-bit integer elements.

Parameters
[in]xPointer the first array of signed 8-bit integer elements to be multiplied.
[in]yPointer the second array of signed 8-bit integer elements to be multiplied.
[out]productPointer the array of signed 16-bit integer elements where the pairwise products will be stored.
[in]lengthThe length of the arrays specified by x and y, and product.
Return values
YepStatusOkThe computation finished successfully.
YepStatusNullPointerx, y or product argument is null.
YepStatusMisalignedPointerx, y or product argument is not naturally aligned.
enum YepStatus yepCore_Multiply_V16uV16u_V16u ( const Yep16u *restrict  x,
const Yep16u *restrict  y,
Yep16u *restrict  product,
YepSize  length 
)

Multiples corresponding elements in two unsigned 16-bit integer arrays, producing an array of unsigned 16-bit integer elements.

Parameters
[in]xPointer the first array of unsigned 16-bit integer elements to be multiplied.
[in]yPointer the second array of unsigned 16-bit integer elements to be multiplied.
[out]productPointer the array of unsigned 16-bit integer elements where the pairwise products will be stored.
[in]lengthThe length of the arrays specified by x and y, and product.
Return values
YepStatusOkThe computation finished successfully.
YepStatusNullPointerx, y or product argument is null.
YepStatusMisalignedPointerx, y or product argument is not naturally aligned.
Optimized implementations
ArchitectureTarget microarchitectureRequired instruction extensions
x86-64Intel NehalemSSE2
enum YepStatus yepCore_Multiply_V16uV16u_V32u ( const Yep16u *restrict  x,
const Yep16u *restrict  y,
Yep32u *restrict  product,
YepSize  length 
)

Multiples corresponding elements in two unsigned 16-bit integer arrays, producing an array of unsigned 32-bit integer elements.

Parameters
[in]xPointer the first array of unsigned 16-bit integer elements to be multiplied.
[in]yPointer the second array of unsigned 16-bit integer elements to be multiplied.
[out]productPointer the array of unsigned 32-bit integer elements where the pairwise products will be stored.
[in]lengthThe length of the arrays specified by x and y, and product.
Return values
YepStatusOkThe computation finished successfully.
YepStatusNullPointerx, y or product argument is null.
YepStatusMisalignedPointerx, y or product argument is not naturally aligned.
Optimized implementations
ArchitectureTarget microarchitectureRequired instruction extensions
x86-64Intel NehalemSSE2
enum YepStatus yepCore_Multiply_V16sV16s_V32s ( const Yep16s *restrict  x,
const Yep16s *restrict  y,
Yep32s *restrict  product,
YepSize  length 
)

Multiples corresponding elements in two signed 16-bit integer arrays, producing an array of signed 32-bit integer elements.

Parameters
[in]xPointer the first array of signed 16-bit integer elements to be multiplied.
[in]yPointer the second array of signed 16-bit integer elements to be multiplied.
[out]productPointer the array of signed 32-bit integer elements where the pairwise products will be stored.
[in]lengthThe length of the arrays specified by x and y, and product.
Return values
YepStatusOkThe computation finished successfully.
YepStatusNullPointerx, y or product argument is null.
YepStatusMisalignedPointerx, y or product argument is not naturally aligned.
Optimized implementations
ArchitectureTarget microarchitectureRequired instruction extensions
x86-64Intel NehalemSSE2
enum YepStatus yepCore_Multiply_V32uV32u_V32u ( const Yep32u *restrict  x,
const Yep32u *restrict  y,
Yep32u *restrict  product,
YepSize  length 
)

Multiples corresponding elements in two unsigned 32-bit integer arrays, producing an array of unsigned 32-bit integer elements.

Parameters
[in]xPointer the first array of unsigned 32-bit integer elements to be multiplied.
[in]yPointer the second array of unsigned 32-bit integer elements to be multiplied.
[out]productPointer the array of unsigned 32-bit integer elements where the pairwise products will be stored.
[in]lengthThe length of the arrays specified by x and y, and product.
Return values
YepStatusOkThe computation finished successfully.
YepStatusNullPointerx, y or product argument is null.
YepStatusMisalignedPointerx, y or product argument is not naturally aligned.
Optimized implementations
ArchitectureTarget microarchitectureRequired instruction extensions
x86-64Intel NehalemSSE2, SSE4.1
enum YepStatus yepCore_Multiply_V32uV32u_V64u ( const Yep32u *restrict  x,
const Yep32u *restrict  y,
Yep64u *restrict  product,
YepSize  length 
)

Multiples corresponding elements in two unsigned 32-bit integer arrays, producing an array of unsigned 64-bit integer elements.

Parameters
[in]xPointer the first array of unsigned 32-bit integer elements to be multiplied.
[in]yPointer the second array of unsigned 32-bit integer elements to be multiplied.
[out]productPointer the array of unsigned 64-bit integer elements where the pairwise products will be stored.
[in]lengthThe length of the arrays specified by x and y, and product.
Return values
YepStatusOkThe computation finished successfully.
YepStatusNullPointerx, y or product argument is null.
YepStatusMisalignedPointerx, y or product argument is not naturally aligned.
Optimized implementations
ArchitectureTarget microarchitectureRequired instruction extensions
x86-64Intel NehalemSSE2, SSE4.1
enum YepStatus yepCore_Multiply_V32sV32s_V64s ( const Yep32s *restrict  x,
const Yep32s *restrict  y,
Yep64s *restrict  product,
YepSize  length 
)

Multiples corresponding elements in two signed 32-bit integer arrays, producing an array of signed 64-bit integer elements.

Parameters
[in]xPointer the first array of signed 32-bit integer elements to be multiplied.
[in]yPointer the second array of signed 32-bit integer elements to be multiplied.
[out]productPointer the array of signed 64-bit integer elements where the pairwise products will be stored.
[in]lengthThe length of the arrays specified by x and y, and product.
Return values
YepStatusOkThe computation finished successfully.
YepStatusNullPointerx, y or product argument is null.
YepStatusMisalignedPointerx, y or product argument is not naturally aligned.
Optimized implementations
ArchitectureTarget microarchitectureRequired instruction extensions
x86-64Intel NehalemSSE2, SSE4.1
enum YepStatus yepCore_Multiply_V64uV64u_V64u ( const Yep64u *restrict  x,
const Yep64u *restrict  y,
Yep64u *restrict  product,
YepSize  length 
)

Multiples corresponding elements in two unsigned 64-bit integer arrays, producing an array of unsigned 64-bit integer elements.

Parameters
[in]xPointer the first array of unsigned 64-bit integer elements to be multiplied.
[in]yPointer the second array of unsigned 64-bit integer elements to be multiplied.
[out]productPointer the array of unsigned 64-bit integer elements where the pairwise products will be stored.
[in]lengthThe length of the arrays specified by x and y, and product.
Return values
YepStatusOkThe computation finished successfully.
YepStatusNullPointerx, y or product argument is null.
YepStatusMisalignedPointerx, y or product argument is not naturally aligned.
enum YepStatus yepCore_Multiply_V32fV32f_V32f ( const Yep32f *restrict  x,
const Yep32f *restrict  y,
Yep32f *restrict  product,
YepSize  length 
)

Multiples corresponding elements in two single precision (32-bit) floating-point arrays, producing an array of single precision (32-bit) floating-point elements.

Parameters
[in]xPointer the first array of single precision (32-bit) floating-point elements to be multiplied.
[in]yPointer the second array of single precision (32-bit) floating-point elements to be multiplied.
[out]productPointer the array of single precision (32-bit) floating-point elements where the pairwise products will be stored.
[in]lengthThe length of the arrays specified by x and y, and product.
Return values
YepStatusOkThe computation finished successfully.
YepStatusNullPointerx, y or product argument is null.
YepStatusMisalignedPointerx, y or product argument is not naturally aligned.
Optimized implementations
ArchitectureTarget microarchitectureRequired instruction extensions
x86-64Intel NehalemSSE
enum YepStatus yepCore_Multiply_V64fV64f_V64f ( const Yep64f *restrict  x,
const Yep64f *restrict  y,
Yep64f *restrict  product,
YepSize  length 
)

Multiples corresponding elements in two double precision (64-bit) floating-point arrays, producing an array of double precision (64-bit) floating-point elements.

Parameters
[in]xPointer the first array of double precision (64-bit) floating-point elements to be multiplied.
[in]yPointer the second array of double precision (64-bit) floating-point elements to be multiplied.
[out]productPointer the array of double precision (64-bit) floating-point elements where the pairwise products will be stored.
[in]lengthThe length of the arrays specified by x and y, and product.
Return values
YepStatusOkThe computation finished successfully.
YepStatusNullPointerx, y or product argument is null.
YepStatusMisalignedPointerx, y or product argument is not naturally aligned.
Optimized implementations
ArchitectureTarget microarchitectureRequired instruction extensions
x86-64Intel NehalemSSE2
enum YepStatus yepCore_DotProduct_V32fV32f_S32f ( const Yep32f *restrict  x,
const Yep32f *restrict  y,
Yep32f *restrict  dotProduct,
YepSize  length 
)

Computes the dot product of single precision (32-bit) floating-point elements in two arrays.

Parameters
[in]xPointer the first vector of elements.
[in]yPointer the second vector of elements.
[out]dotProductPointer the variable where the dot product values will be stored.
[in]lengthThe length of the arrays specified by x and y.
Return values
YepStatusOkThe computation finished successfully.
YepStatusNullPointerx, y or dotProduct argument is null.
YepStatusMisalignedPointerx, y or dotProduct argument is not naturally aligned.
Optimized implementations
ArchitectureTarget microarchitectureRequired instruction extensions
x86-64Intel NehalemSSE, SSE3
x86-64Intel Sandy BridgeAVX
x86-64Intel HaswellAVX, FMA3
x86-64AMD BulldozerAVX, FMA4
enum YepStatus yepCore_DotProduct_V64fV64f_S64f ( const Yep64f *restrict  x,
const Yep64f *restrict  y,
Yep64f *restrict  dotProduct,
YepSize  length 
)

Computes the dot product of double precision (64-bit) floating-point elements in two arrays.

Parameters
[in]xPointer the first vector of elements.
[in]yPointer the second vector of elements.
[out]dotProductPointer the variable where the dot product values will be stored.
[in]lengthThe length of the arrays specified by x and y.
Return values
YepStatusOkThe computation finished successfully.
YepStatusNullPointerx, y or dotProduct argument is null.
YepStatusMisalignedPointerx, y or dotProduct argument is not naturally aligned.
Optimized implementations
ArchitectureTarget microarchitectureRequired instruction extensions
x86-64Intel NehalemSSE2, SSE3
x86-64Intel Sandy BridgeAVX
x86-64Intel HaswellAVX, FMA3
x86-64AMD BulldozerAVX, FMA4
Examples:
Entropy.c.
enum YepStatus yepCore_SumSquares_V32f_S32f ( const Yep32f *restrict  v,
Yep32f *restrict  sumSquares,
YepSize  length 
)

Computes the sum of squares of single precision (32-bit) floating-point elements in the input array.

Parameters
[in]vPointer the array of elements which will be squared (without write-back) and summed up.
[out]sumSquaresPointer a variable where the sum of squares will be stored.
[in]lengthThe length of the array specified by v. The length is zero, the computed sum of squares will be 0.
Return values
YepStatusOkThe computation finished successfully.
YepStatusNullPointerv or sumSquares argument is null.
YepStatusMisalignedPointerv or sumSquares argument is not naturally aligned.
Optimized implementations
ArchitectureTarget microarchitectureRequired instruction extensions
x86-64Intel NehalemSSE, SSE3
x86-64Intel Sandy BridgeAVX
x86-64AMD BulldozerAVX, FMA4
enum YepStatus yepCore_SumSquares_V64f_S64f ( const Yep64f *restrict  v,
Yep64f *restrict  sumSquares,
YepSize  length 
)

Computes the sum of squares of double precision (64-bit) floating-point elements in the input array.

Parameters
[in]vPointer the array of elements which will be squared (without write-back) and summed up.
[out]sumSquaresPointer a variable where the sum of squares will be stored.
[in]lengthThe length of the array specified by v. The length is zero, the computed sum of squares will be 0.
Return values
YepStatusOkThe computation finished successfully.
YepStatusNullPointerv or sumSquares argument is null.
YepStatusMisalignedPointerv or sumSquares argument is not naturally aligned.
Optimized implementations
ArchitectureTarget microarchitectureRequired instruction extensions
x86-64Intel NehalemSSE, SSE2, SSE3
x86-64Intel Sandy BridgeAVX
x86-64AMD BulldozerAVX, FMA4