nimphea/cmsis/dsp_complex

Source   Edit  

CMSIS-DSP Complex Math Functions

This module provides optimized operations on complex number vectors. Complex vectors are represented as interleaved float32 arrays re0, im0, re1, im1, ....

Procs

proc arm_cmplx_conj_f32(pSrc: ptr float32_t; pDst: ptr float32_t;
                        numSamples: uint32) {.importc, header: "arm_math.h",
    ...raises: [], tags: [], forbids: [].}
Source   Edit  
proc arm_cmplx_dot_prod_f32(pSrcA: ptr float32_t; pSrcB: ptr float32_t;
                            numSamples: uint32; realResult: ptr float32_t;
                            imagResult: ptr float32_t) {.importc,
    header: "arm_math.h", ...raises: [], tags: [], forbids: [].}
Source   Edit  
proc arm_cmplx_mag_f32(pSrc: ptr float32_t; pDst: ptr float32_t;
                       numSamples: uint32) {.importc, header: "arm_math.h",
    ...raises: [], tags: [], forbids: [].}
Source   Edit  
proc arm_cmplx_mag_squared_f32(pSrc: ptr float32_t; pDst: ptr float32_t;
                               numSamples: uint32) {.importc,
    header: "arm_math.h", ...raises: [], tags: [], forbids: [].}
Source   Edit  
proc arm_cmplx_mult_cmplx_f32(pSrcA: ptr float32_t; pSrcB: ptr float32_t;
                              pDst: ptr float32_t; numSamples: uint32) {.
    importc, header: "arm_math.h", ...raises: [], tags: [], forbids: [].}
Source   Edit  
proc arm_cmplx_mult_real_f32(pSrcCmplx: ptr float32_t; pSrcReal: ptr float32_t;
                             pDst: ptr float32_t; numSamples: uint32) {.importc,
    header: "arm_math.h", ...raises: [], tags: [], forbids: [].}
Source   Edit  
proc conjugate(dst: var openArray[float32]; src: openArray[float32]) {.inline,
    ...raises: [], tags: [], forbids: [].}
Complex conjugate: dst = re, -im Source   Edit  
proc dotProduct(a, b: openArray[float32]): tuple[real, imag: float32] {.
    ...raises: [], tags: [], forbids: [].}
Complex dot product Source   Edit  
proc mag(dst: var openArray[float32]; src: openArray[float32]) {.inline,
    ...raises: [], tags: [], forbids: [].}
Complex magnitude: dsti = sqrt(rei^2 + imi^2) Source   Edit  
proc magSquared(dst: var openArray[float32]; src: openArray[float32]) {.inline,
    ...raises: [], tags: [], forbids: [].}
Complex magnitude squared: dsti = rei^2 + imi^2 Source   Edit  
proc mult(dst: var openArray[float32]; a, b: openArray[float32]) {.inline,
    ...raises: [], tags: [], forbids: [].}
Complex-by-complex multiplication: dst = a * b Source   Edit  
proc multReal(dst: var openArray[float32]; cmplx: openArray[float32];
              real: openArray[float32]) {.inline, ...raises: [], tags: [],
    forbids: [].}
Complex-by-real multiplication Source   Edit