Project Ne10
An open, optimized software library for the ARM architecture.
Functions | Variables
Matrix-Vector Multiplication

Functions

ne10_result_t ne10_mulcmatvec_cm4x4f_v4f_c (ne10_vec4f_t *dst, const ne10_mat4x4f_t *cst, ne10_vec4f_t *src, ne10_uint32_t count)
 Specific implementation of ne10_mulcmatvec_cm4x4f_v4f using plain C code. More...
 
ne10_result_t ne10_mulcmatvec_cm4x4f_v4f_neon (ne10_vec4f_t *dst, const ne10_mat4x4f_t *cst, ne10_vec4f_t *src, ne10_uint32_t count) asm("ne10_mulcmatvec_cm4x4f_v4f_neon")
 Specific implementation of ne10_mulcmatvec_cm4x4f_v4f using NEON intrinsics. More...
 
ne10_result_t ne10_mulcmatvec_cm4x4f_v4f_asm (ne10_vec4f_t *dst, const ne10_mat4x4f_t *cst, ne10_vec4f_t *src, ne10_uint32_t count)
 Specific implementation of ne10_mulcmatvec_cm4x4f_v4f using NEON assembly. More...
 
ne10_result_t ne10_mulcmatvec_cm3x3f_v3f_c (ne10_vec3f_t *dst, const ne10_mat3x3f_t *cst, ne10_vec3f_t *src, ne10_uint32_t count)
 Specific implementation of ne10_mulcmatvec_cm3x3f_v3f using plain C code. More...
 
ne10_result_t ne10_mulcmatvec_cm3x3f_v3f_neon (ne10_vec3f_t *dst, const ne10_mat3x3f_t *cst, ne10_vec3f_t *src, ne10_uint32_t count) asm("ne10_mulcmatvec_cm3x3f_v3f_neon")
 Specific implementation of ne10_mulcmatvec_cm3x3f_v3f using NEON intrinsics. More...
 
ne10_result_t ne10_mulcmatvec_cm3x3f_v3f_asm (ne10_vec3f_t *dst, const ne10_mat3x3f_t *cst, ne10_vec3f_t *src, ne10_uint32_t count)
 Specific implementation of ne10_mulcmatvec_cm3x3f_v3f using NEON assembly. More...
 
ne10_result_t ne10_mulcmatvec_cm2x2f_v2f_c (ne10_vec2f_t *dst, const ne10_mat2x2f_t *cst, ne10_vec2f_t *src, ne10_uint32_t count)
 Specific implementation of ne10_mulcmatvec_cm2x2f_v2f using plain C code. More...
 
ne10_result_t ne10_mulcmatvec_cm2x2f_v2f_neon (ne10_vec2f_t *dst, const ne10_mat2x2f_t *cst, ne10_vec2f_t *src, ne10_uint32_t count) asm("ne10_mulcmatvec_cm2x2f_v2f_neon")
 Specific implementation of ne10_mulcmatvec_cm2x2f_v2f using NEON intrinsics. More...
 
ne10_result_t ne10_mulcmatvec_cm2x2f_v2f_asm (ne10_vec2f_t *dst, const ne10_mat2x2f_t *cst, ne10_vec2f_t *src, ne10_uint32_t count)
 Specific implementation of ne10_mulcmatvec_cm2x2f_v2f using NEON assembly. More...
 

Variables

ne10_result_t(* ne10_mulcmatvec_cm4x4f_v4f )(ne10_vec4f_t *dst, const ne10_mat4x4f_t *cst, ne10_vec4f_t *src, ne10_uint32_t count)
 Multiplies the 4x4 matrices of one input array by the 4D vectors of the same index in another, storing the results in an output array. More...
 
ne10_result_t(* ne10_mulcmatvec_cm3x3f_v3f )(ne10_vec3f_t *dst, const ne10_mat3x3f_t *cst, ne10_vec3f_t *src, ne10_uint32_t count)
 Multiplies the 3x3 matrices of one input array by the 3D vectors of the same index in another, storing the results in an output array. More...
 
ne10_result_t(* ne10_mulcmatvec_cm2x2f_v2f )(ne10_vec2f_t *dst, const ne10_mat2x2f_t *cst, ne10_vec2f_t *src, ne10_uint32_t count)
 Multiplies the 2x2 matrices of one input array by the 2D vectors of the same index in another, storing the results in an output array. More...
 

Detailed Description

These functions implement matrix-vector multiplication operations for single precision floating point values.

Function Documentation

ne10_result_t ne10_mulcmatvec_cm2x2f_v2f_asm ( ne10_vec2f_t dst,
const ne10_mat2x2f_t cst,
ne10_vec2f_t src,
ne10_uint32_t  count 
)

Specific implementation of ne10_mulcmatvec_cm2x2f_v2f using NEON assembly.

ne10_result_t ne10_mulcmatvec_cm2x2f_v2f_c ( ne10_vec2f_t dst,
const ne10_mat2x2f_t cst,
ne10_vec2f_t src,
ne10_uint32_t  count 
)

Specific implementation of ne10_mulcmatvec_cm2x2f_v2f using plain C code.

Definition at line 37 of file NE10_mulcmatvec.c.

ne10_result_t ne10_mulcmatvec_cm2x2f_v2f_neon ( ne10_vec2f_t dst,
const ne10_mat2x2f_t cst,
ne10_vec2f_t src,
ne10_uint32_t  count 
)

Specific implementation of ne10_mulcmatvec_cm2x2f_v2f using NEON intrinsics.

ne10_result_t ne10_mulcmatvec_cm3x3f_v3f_asm ( ne10_vec3f_t dst,
const ne10_mat3x3f_t cst,
ne10_vec3f_t src,
ne10_uint32_t  count 
)

Specific implementation of ne10_mulcmatvec_cm3x3f_v3f using NEON assembly.

ne10_result_t ne10_mulcmatvec_cm3x3f_v3f_c ( ne10_vec3f_t dst,
const ne10_mat3x3f_t cst,
ne10_vec3f_t src,
ne10_uint32_t  count 
)

Specific implementation of ne10_mulcmatvec_cm3x3f_v3f using plain C code.

Definition at line 58 of file NE10_mulcmatvec.c.

ne10_result_t ne10_mulcmatvec_cm3x3f_v3f_neon ( ne10_vec3f_t dst,
const ne10_mat3x3f_t cst,
ne10_vec3f_t src,
ne10_uint32_t  count 
)

Specific implementation of ne10_mulcmatvec_cm3x3f_v3f using NEON intrinsics.

ne10_result_t ne10_mulcmatvec_cm4x4f_v4f_asm ( ne10_vec4f_t dst,
const ne10_mat4x4f_t cst,
ne10_vec4f_t src,
ne10_uint32_t  count 
)

Specific implementation of ne10_mulcmatvec_cm4x4f_v4f using NEON assembly.

ne10_result_t ne10_mulcmatvec_cm4x4f_v4f_c ( ne10_vec4f_t dst,
const ne10_mat4x4f_t cst,
ne10_vec4f_t src,
ne10_uint32_t  count 
)

Specific implementation of ne10_mulcmatvec_cm4x4f_v4f using plain C code.

Definition at line 90 of file NE10_mulcmatvec.c.

ne10_result_t ne10_mulcmatvec_cm4x4f_v4f_neon ( ne10_vec4f_t dst,
const ne10_mat4x4f_t cst,
ne10_vec4f_t src,
ne10_uint32_t  count 
)

Specific implementation of ne10_mulcmatvec_cm4x4f_v4f using NEON intrinsics.

Variable Documentation

ne10_result_t(* ne10_mulcmatvec_cm2x2f_v2f) (ne10_vec2f_t *dst, const ne10_mat2x2f_t *cst, ne10_vec2f_t *src, ne10_uint32_t count)

Multiplies the 2x2 matrices of one input array by the 2D vectors of the same index in another, storing the results in an output array.

Points to ne10_mulcmatvec_cm2x2f_v2f_c, ne10_mulcmatvec_cm2x2f_v2f_neon, or ne10_mulcmatvec_cm2x2f_v2f_asm. This operation cannot be performed in-place.

Parameters
[out]dstPointer to the destination array
[in]cstPointer to the source array of matrices
[in]srcPointer to the source array of vectors
[in]countThe number of multiplications to be performed (i.e. the length of the source arrays)

Definition at line 295 of file NE10_init_math.c.

ne10_result_t(* ne10_mulcmatvec_cm3x3f_v3f) (ne10_vec3f_t *dst, const ne10_mat3x3f_t *cst, ne10_vec3f_t *src, ne10_uint32_t count)

Multiplies the 3x3 matrices of one input array by the 3D vectors of the same index in another, storing the results in an output array.

Points to ne10_mulcmatvec_cm3x3f_v3f_c, ne10_mulcmatvec_cm3x3f_v3f_neon, or ne10_mulcmatvec_cm3x3f_v3f_asm. This operation cannot be performed in-place.

Parameters
[out]dstPointer to the destination array
[in]cstPointer to the source array of matrices
[in]srcPointer to the source array of vectors
[in]countThe number of multiplications to be performed (i.e. the length of the source arrays)

Definition at line 294 of file NE10_init_math.c.

ne10_result_t(* ne10_mulcmatvec_cm4x4f_v4f) (ne10_vec4f_t *dst, const ne10_mat4x4f_t *cst, ne10_vec4f_t *src, ne10_uint32_t count)

Multiplies the 4x4 matrices of one input array by the 4D vectors of the same index in another, storing the results in an output array.

Points to ne10_mulcmatvec_cm4x4f_v4f_c, ne10_mulcmatvec_cm4x4f_v4f_neon, or ne10_mulcmatvec_cm4x4f_v4f_asm. This operation cannot be performed in-place.

Parameters
[out]dstPointer to the destination array
[in]cstPointer to the source array of matrices
[in]srcPointer to the source array of vectors
[in]countThe number of multiplications to be performed (i.e. the length of the source arrays)

Definition at line 293 of file NE10_init_math.c.