nimphea/cmsis/dsp_basic

Source   Edit  

CMSIS-DSP Basic Math Functions

This module provides optimized vector math operations. All operations are in-place or write to a user-provided destination buffer. Zero heap allocation is used.

Procs

proc abs(dst: var openArray[float32]; src: openArray[float32]) {.inline,
    ...raises: [], tags: [], forbids: [].}
Vector absolute value: dst = abs(src) Source   Edit  
proc add(dst: var openArray[float32]; a, b: openArray[float32]) {.inline,
    ...raises: [], tags: [], forbids: [].}
Vector addition: dst = a + b Source   Edit  
proc arm_abs_f32(pSrc: ptr float32_t; pDst: ptr float32_t; blockSize: uint32) {.
    importc, header: "arm_math.h", ...raises: [], tags: [], forbids: [].}
Source   Edit  
proc arm_add_f32(pSrcA, pSrcB: ptr float32_t; pDst: ptr float32_t;
                 blockSize: uint32) {.importc, header: "arm_math.h", ...raises: [],
                                      tags: [], forbids: [].}
Source   Edit  
proc arm_dot_prod_f32(pSrcA, pSrcB: ptr float32_t; blockSize: uint32;
                      result: ptr float32_t) {.importc, header: "arm_math.h",
    ...raises: [], tags: [], forbids: [].}
Source   Edit  
proc arm_mult_f32(pSrcA, pSrcB: ptr float32_t; pDst: ptr float32_t;
                  blockSize: uint32) {.importc, header: "arm_math.h",
                                       ...raises: [], tags: [], forbids: [].}
Source   Edit  
proc arm_negate_f32(pSrc: ptr float32_t; pDst: ptr float32_t; blockSize: uint32) {.
    importc, header: "arm_math.h", ...raises: [], tags: [], forbids: [].}
Source   Edit  
proc arm_scale_f32(pSrc: ptr float32_t; scale: float32_t; pDst: ptr float32_t;
                   blockSize: uint32) {.importc, header: "arm_math.h",
                                        ...raises: [], tags: [], forbids: [].}
Source   Edit  
proc arm_sub_f32(pSrcA, pSrcB: ptr float32_t; pDst: ptr float32_t;
                 blockSize: uint32) {.importc, header: "arm_math.h", ...raises: [],
                                      tags: [], forbids: [].}
Source   Edit  
proc dotProduct(a, b: openArray[float32]): float32 {....raises: [], tags: [],
    forbids: [].}
Vector dot product: sum(ai * bi) Source   Edit  
proc mult(dst: var openArray[float32]; a, b: openArray[float32]) {.inline,
    ...raises: [], tags: [], forbids: [].}
Vector multiplication: dst = a * b Source   Edit  
proc negate(dst: var openArray[float32]; src: openArray[float32]) {.inline,
    ...raises: [], tags: [], forbids: [].}
Vector negation: dst = -src Source   Edit  
proc scale(dst: var openArray[float32]; scale: float32) {.inline, ...raises: [],
    tags: [], forbids: [].}
In-place vector scaling: dst = dst * scale Source   Edit  
proc scale(dst: var openArray[float32]; src: openArray[float32]; scale: float32) {.
    inline, ...raises: [], tags: [], forbids: [].}
Vector scaling: dst = src * scale Source   Edit  
proc sub(dst: var openArray[float32]; a, b: openArray[float32]) {.inline,
    ...raises: [], tags: [], forbids: [].}
Vector subtraction: dst = a - b Source   Edit