Project Ne10
An Open Optimized Software Library Project for the ARM Architecture
Functions | Variables
Vector Multiply-Accumulator

Functions

ne10_result_t ne10_mlac_float_c (ne10_float32_t *dst, ne10_float32_t *acc, ne10_float32_t *src, const ne10_float32_t cst, ne10_uint32_t count)
 
ne10_result_t ne10_mlac_float_neon (ne10_float32_t *dst, ne10_float32_t *acc, ne10_float32_t *src, const ne10_float32_t cst, ne10_uint32_t count)
 
ne10_result_t ne10_mlac_float_asm (ne10_float32_t *dst, ne10_float32_t *acc, ne10_float32_t *src, const ne10_float32_t cst, ne10_uint32_t count)
 
ne10_result_t ne10_mlac_vec2f_c (ne10_vec2f_t *dst, ne10_vec2f_t *acc, ne10_vec2f_t *src, const ne10_vec2f_t *cst, ne10_uint32_t count)
 
ne10_result_t ne10_mlac_vec2f_neon (ne10_vec2f_t *dst, ne10_vec2f_t *acc, ne10_vec2f_t *src, const ne10_vec2f_t *cst, ne10_uint32_t count)
 
ne10_result_t ne10_mlac_vec2f_asm (ne10_vec2f_t *dst, ne10_vec2f_t *acc, ne10_vec2f_t *src, const ne10_vec2f_t *cst, ne10_uint32_t count)
 
ne10_result_t ne10_mlac_vec3f_c (ne10_vec3f_t *dst, ne10_vec3f_t *acc, ne10_vec3f_t *src, const ne10_vec3f_t *cst, ne10_uint32_t count)
 
ne10_result_t ne10_mlac_vec3f_neon (ne10_vec3f_t *dst, ne10_vec3f_t *acc, ne10_vec3f_t *src, const ne10_vec3f_t *cst, ne10_uint32_t count)
 
ne10_result_t ne10_mlac_vec3f_asm (ne10_vec3f_t *dst, ne10_vec3f_t *acc, ne10_vec3f_t *src, const ne10_vec3f_t *cst, ne10_uint32_t count)
 
ne10_result_t ne10_mlac_vec4f_c (ne10_vec4f_t *dst, ne10_vec4f_t *acc, ne10_vec4f_t *src, const ne10_vec4f_t *cst, ne10_uint32_t count)
 
ne10_result_t ne10_mlac_vec4f_neon (ne10_vec4f_t *dst, ne10_vec4f_t *acc, ne10_vec4f_t *src, const ne10_vec4f_t *cst, ne10_uint32_t count)
 
ne10_result_t ne10_mlac_vec4f_asm (ne10_vec4f_t *dst, ne10_vec4f_t *acc, ne10_vec4f_t *src, const ne10_vec4f_t *cst, ne10_uint32_t count)
 
ne10_result_t ne10_mla_float_c (ne10_float32_t *dst, ne10_float32_t *acc, ne10_float32_t *src1, ne10_float32_t *src2, ne10_uint32_t count)
 
ne10_result_t ne10_mla_float_neon (ne10_float32_t *dst, ne10_float32_t *acc, ne10_float32_t *src1, ne10_float32_t *src2, ne10_uint32_t count) asm("ne10_mla_float_neon")
 
ne10_result_t ne10_mla_float_asm (ne10_float32_t *dst, ne10_float32_t *acc, ne10_float32_t *src1, ne10_float32_t *src2, ne10_uint32_t count)
 
ne10_result_t ne10_vmla_vec2f_c (ne10_vec2f_t *dst, ne10_vec2f_t *acc, ne10_vec2f_t *src1, ne10_vec2f_t *src2, ne10_uint32_t count)
 
ne10_result_t ne10_vmla_vec2f_neon (ne10_vec2f_t *dst, ne10_vec2f_t *acc, ne10_vec2f_t *src1, ne10_vec2f_t *src2, ne10_uint32_t count) asm("ne10_vmla_vec2f_neon")
 
ne10_result_t ne10_vmla_vec2f_asm (ne10_vec2f_t *dst, ne10_vec2f_t *acc, ne10_vec2f_t *src1, ne10_vec2f_t *src2, ne10_uint32_t count)
 
ne10_result_t ne10_vmla_vec3f_c (ne10_vec3f_t *dst, ne10_vec3f_t *acc, ne10_vec3f_t *src1, ne10_vec3f_t *src2, ne10_uint32_t count)
 
ne10_result_t ne10_vmla_vec3f_neon (ne10_vec3f_t *dst, ne10_vec3f_t *acc, ne10_vec3f_t *src1, ne10_vec3f_t *src2, ne10_uint32_t count) asm("ne10_vmla_vec3f_neon")
 
ne10_result_t ne10_vmla_vec3f_asm (ne10_vec3f_t *dst, ne10_vec3f_t *acc, ne10_vec3f_t *src1, ne10_vec3f_t *src2, ne10_uint32_t count)
 
ne10_result_t ne10_vmla_vec4f_c (ne10_vec4f_t *dst, ne10_vec4f_t *acc, ne10_vec4f_t *src1, ne10_vec4f_t *src2, ne10_uint32_t count)
 
ne10_result_t ne10_vmla_vec4f_neon (ne10_vec4f_t *dst, ne10_vec4f_t *acc, ne10_vec4f_t *src1, ne10_vec4f_t *src2, ne10_uint32_t count) asm("ne10_vmla_vec4f_neon")
 
ne10_result_t ne10_vmla_vec4f_asm (ne10_vec4f_t *dst, ne10_vec4f_t *acc, ne10_vec4f_t *src1, ne10_vec4f_t *src2, ne10_uint32_t count)
 

Variables

ne10_result_t(* ne10_mlac_float )(ne10_float32_t *dst, ne10_float32_t *acc, ne10_float32_t *src, const ne10_float32_t cst, ne10_uint32_t count)
 Multiplies each entry in the source array (src) by cst, then adds the result to the corresponding item of the accumulation array (acc), and stores the result in the destination array. More...
 
ne10_result_t(* ne10_mlac_vec2f )(ne10_vec2f_t *dst, ne10_vec2f_t *acc, ne10_vec2f_t *src, const ne10_vec2f_t *cst, ne10_uint32_t count)
 Multiplies each entry in the source array (src) by the 2D vector cst, then adds the result to the corresponding item of the accumulation array (acc), and stores the result in the destination array. More...
 
ne10_result_t(* ne10_mlac_vec3f )(ne10_vec3f_t *dst, ne10_vec3f_t *acc, ne10_vec3f_t *src, const ne10_vec3f_t *cst, ne10_uint32_t count)
 Multiplies each entry in the source array (src) by the 3D vector cst, then adds the result to the corresponding item of the accumulation array (acc), and stores the result in the destination array. More...
 
ne10_result_t(* ne10_mlac_vec4f )(ne10_vec4f_t *dst, ne10_vec4f_t *acc, ne10_vec4f_t *src, const ne10_vec4f_t *cst, ne10_uint32_t count)
 Multiplies each entry in the source array (src) by the 4D vector cst, then adds the result to the corresponding item of the accumulation array (acc), and stores the result in the destination array. More...
 
ne10_result_t(* ne10_mla_float )(ne10_float32_t *dst, ne10_float32_t *acc, ne10_float32_t *src1, ne10_float32_t *src2, ne10_uint32_t count)
 Performs a multiply and accumulate operation using the corresponding elements in acc, src1, and src2. More...
 
ne10_result_t(* ne10_vmla_vec2f )(ne10_vec2f_t *dst, ne10_vec2f_t *acc, ne10_vec2f_t *src1, ne10_vec2f_t *src2, ne10_uint32_t count)
 Performs a multiply and accumulate operation on the components of a 2D vector with the corresponding components of another. More...
 
ne10_result_t(* ne10_vmla_vec3f )(ne10_vec3f_t *dst, ne10_vec3f_t *acc, ne10_vec3f_t *src1, ne10_vec3f_t *src2, ne10_uint32_t count)
 Performs a multiply and accumulate operation on the components of a 3D vector with the corresponding components of another. More...
 
ne10_result_t(* ne10_vmla_vec4f )(ne10_vec4f_t *dst, ne10_vec4f_t *acc, ne10_vec4f_t *src1, ne10_vec4f_t *src2, ne10_uint32_t count)
 Performs a multiply and accumulate operation on the components of a 4D vector with the corresponding components of another. More...
 

Detailed Description

These functions implement the vector multiply-accumulator operation for float data type.

Variable Documentation

◆ ne10_mla_float

ne10_result_t(* ne10_mla_float) (ne10_float32_t *dst, ne10_float32_t *acc, ne10_float32_t *src1, ne10_float32_t *src2, ne10_uint32_t count)

Performs a multiply and accumulate operation using the corresponding elements in acc, src1, and src2.

This function point could be pointed to one of ne10_mla_float_c, ne10_mla_float_neon and ne10_mla_float_asm.

Parameters
[out]dstPointer to the destination array
[in]accThese elemtns are added to the result of the multiplication operation
[in]src1The first array to use as the input array
[in]src2The second array to use as the input array
[in]countThe number of items in the two input arrays

Definition at line 252 of file NE10_init_math.c.

◆ ne10_mlac_float

ne10_result_t(* ne10_mlac_float) (ne10_float32_t *dst, ne10_float32_t *acc, ne10_float32_t *src, const ne10_float32_t cst, ne10_uint32_t count)

Multiplies each entry in the source array (src) by cst, then adds the result to the corresponding item of the accumulation array (acc), and stores the result in the destination array.

This function point could be pointed to one of ne10_mlac_float_c, ne10_mlac_float_neon and ne10_mlac_float_asm.

Parameters
[out]dstPointer to the destination array
[in]accThe corresponding elemetn is added to the result of the multiplication
[in]srcPointer to the source array
[in]cstThe constant scalar to multiply the input elements with
[in]countThe number of items in the input array

Definition at line 244 of file NE10_init_math.c.

◆ ne10_mlac_vec2f

ne10_result_t(* ne10_mlac_vec2f) (ne10_vec2f_t *dst, ne10_vec2f_t *acc, ne10_vec2f_t *src, const ne10_vec2f_t *cst, ne10_uint32_t count)

Multiplies each entry in the source array (src) by the 2D vector cst, then adds the result to the corresponding item of the accumulation array (acc), and stores the result in the destination array.

This function point could be pointed to one of ne10_mlac_vec2f_c, ne10_mlac_vec2f_neon and ne10_mlac_vec2f_asm.

Parameters
[out]dstPointer to the destination array
[in]accThe corresponding elemetn is added to the result of the multiplication
[in]srcPointer to the source array
[in]cstPointer to the 2D vector to multiply the input vectors with
[in]countThe number of items in the input array

Definition at line 245 of file NE10_init_math.c.

◆ ne10_mlac_vec3f

ne10_result_t(* ne10_mlac_vec3f) (ne10_vec3f_t *dst, ne10_vec3f_t *acc, ne10_vec3f_t *src, const ne10_vec3f_t *cst, ne10_uint32_t count)

Multiplies each entry in the source array (src) by the 3D vector cst, then adds the result to the corresponding item of the accumulation array (acc), and stores the result in the destination array.

This function point could be pointed to one of ne10_mlac_vec3f_c, ne10_mlac_vec3f_neon and ne10_mlac_vec3f_asm.

Parameters
[out]dstPointer to the destination array
[in]accThe corresponding elemetn is added to the result of the multiplication
[in]srcPointer to the source array
[in]cstPointer to the 3D vector to multiply the input vectors with
[in]countThe number of items in the input array

Definition at line 246 of file NE10_init_math.c.

◆ ne10_mlac_vec4f

ne10_result_t(* ne10_mlac_vec4f) (ne10_vec4f_t *dst, ne10_vec4f_t *acc, ne10_vec4f_t *src, const ne10_vec4f_t *cst, ne10_uint32_t count)

Multiplies each entry in the source array (src) by the 4D vector cst, then adds the result to the corresponding item of the accumulation array (acc), and stores the result in the destination array.

This function point could be pointed to one of ne10_mlac_vec4f_c, ne10_mlac_vec4f_neon and ne10_mlac_vec4f_asm.

Parameters
[out]dstPointer to the destination array
[in]accThe corresponding elemetn is added to the result of the multiplication
[in]srcPointer to the source array
[in]cstPointer to the 4D vector to multiply the input vectors with
[in]countThe number of items in the input array

Definition at line 247 of file NE10_init_math.c.

◆ ne10_vmla_vec2f

ne10_result_t(* ne10_vmla_vec2f) (ne10_vec2f_t *dst, ne10_vec2f_t *acc, ne10_vec2f_t *src1, ne10_vec2f_t *src2, ne10_uint32_t count)

Performs a multiply and accumulate operation on the components of a 2D vector with the corresponding components of another.

This function point could be pointed to one of ne10_vmla_vec2f_c, ne10_vmla_vec2f_neon and ne10_vmla_vec2f_asm.

Parameters
[out]dstPointer to the destination array
[in]src1Pointer to the first source array
[in]src2Pointer to the second source array
[in]countThe number of items in the input arrays

Definition at line 270 of file NE10_init_math.c.

◆ ne10_vmla_vec3f

ne10_result_t(* ne10_vmla_vec3f) (ne10_vec3f_t *dst, ne10_vec3f_t *acc, ne10_vec3f_t *src1, ne10_vec3f_t *src2, ne10_uint32_t count)

Performs a multiply and accumulate operation on the components of a 3D vector with the corresponding components of another.

This function point could be pointed to one of ne10_vmla_vec3f_c, ne10_vmla_vec3f_neon and ne10_vmla_vec3f_asm.

Parameters
[out]dstPointer to the destination array
[in]src1Pointer to the first source array
[in]src2Pointer to the second source array
[in]countThe number of items in the input arrays

Definition at line 271 of file NE10_init_math.c.

◆ ne10_vmla_vec4f

ne10_result_t(* ne10_vmla_vec4f) (ne10_vec4f_t *dst, ne10_vec4f_t *acc, ne10_vec4f_t *src1, ne10_vec4f_t *src2, ne10_uint32_t count)

Performs a multiply and accumulate operation on the components of a 4D vector with the corresponding components of another.

This function point could be pointed to one of ne10_vmla_vec4f_c, ne10_vmla_vec4f_neon and ne10_vmla_vec4f_asm.

Parameters
[out]dstPointer to the destination array
[in]src1Pointer to the first source array
[in]src2Pointer to the second source array
[in]countThe number of items in the input arrays

Definition at line 272 of file NE10_init_math.c.