99 #define APU_FBA_ENABLE 1 100 #define APU_FBA_DISABLE 0 101 #define APU_MEMORY_INTERLEAVED 1 102 #define APU_MEMORY_MIRRORED 0 104 #define APU_HEAP_ADDR 0x03CE 110 #define APU_OP_R2CC 1 111 #define APU_OP_R2CA 2 112 #define APU_OP_R2CCA 3 124 #define APU_GET_DATA_MEM_OFFSET(x) ((uint32_t)x - (uint32_t)APURAM_DATA0_BASE) >> 3 126 #define APU_GET_DATA_MEM_ABS(x) ((uint32_t)APURAM_DATA0_BASE + (((uint32_t)x) << 3)) 232 void APUVectorDot(uint16_t N,
void *pInputA,
void *pInputB,
void *pResult);
258 void APUVectorDotConj(uint16_t N,
void *pInputA,
void *pInputB,
void *pResult);
284 void APUVectorMult(uint16_t N,
void *pInputA,
void *pInputB,
void *pResult);
360 void APUVectorSum(uint16_t N,
void *pInputA,
void *pInputB, uint16_t op,
void *pResult);
388 void APUVectorScalarSum(uint16_t N,
void *pInputA,
void *pInputB, uint16_t op,
void *pResult);
510 void APUMatrixMult(uint16_t M, uint16_t N, uint16_t P,
void *pInputA,
void *pInputB,
void *pResult);
566 void APUMatrixMultSym(uint16_t M,
void *pInputA,
void *pInputB,
void *pResult);
591 void APUMatrixSum(uint16_t M, uint16_t N,
void *pInputA,
void *pInputB,
void *pResult);
616 void APUMatrixScalarMult(uint16_t M, uint16_t N,
void *pInputA,
void *pInputB,
void *pResult);
641 void APUMatrixScalarSum(uint16_t M, uint16_t N,
void *pInputA,
void *pInputB,
void *pResult);
662 void APUMatrixNorm(uint16_t M, uint16_t N,
void *pInput,
void *pResult);
734 void APUJacobiEVD(uint16_t N,
void *pInput,
void *pResultV, uint16_t maxIter,
float minSum,
float epsTol);
882 void APUUnitCircle(uint16_t N, uint16_t M, uint16_t phase, uint16_t conj,
void *pResult);
919 void APUVectorMaxMin(uint16_t N,
void *pInput,
float thresh, uint16_t op,
void *pResult);
954 void APUVectorR2C(uint16_t N,
void *pInputA,
void *pInputB, uint16_t op,
void *pResult);
975 void APUHermLo(uint16_t N,
void *pInput,
void *pResult);
void APUMatrixMult(uint16_t M, uint16_t N, uint16_t P, void *pInputA, void *pInputB, void *pResult)
APU accelerator for matrix multiplication of two matrices C = A*B.
Definition: apu.c:312
void APUVectorR2C(uint16_t N, void *pInputA, void *pInputB, uint16_t op, void *pResult)
APU accelerator for converting back and forth between real and complex numbers.
Definition: apu.c:702
void APUGaussJordanElim(uint16_t M, uint16_t N, void *pInput, float epsTol)
APU accelerator for Gauss-Jordan Elimination of a rectable complex matrix.
Definition: apu.c:545
void APUVectorMaxMin(uint16_t N, void *pInput, float thresh, uint16_t op, void *pResult)
APU accelerator for computing max/min of the real part of a vector and a real value scalar...
Definition: apu.c:672
void APUMatrixScalarSum(uint16_t M, uint16_t N, void *pInputA, void *pInputB, void *pResult)
APU accelerator for addition of a matrix A and a scalar b.
Definition: apu.c:417
void APUSpSmoothCovMatrix(uint16_t N, void *pInput, uint16_t L, void *pResult, uint16_t fb)
APU accelerator for covariance matrix computation using spatial smoothing and forward-backward averag...
Definition: apu.c:484
void APUWaitOnIrq(void)
Wait for the APU interrupt.
Definition: apu.c:50
void APUVectorScalarSum(uint16_t N, void *pInputA, void *pInputB, uint16_t op, void *pResult)
APU accelerator for addition/subtraction of a vector and a scalar.
Definition: apu.c:288
void APUVectorSum(uint16_t N, void *pInputA, void *pInputB, uint16_t op, void *pResult)
APU accelerator for addition/subtraction of two vectors.
Definition: apu.c:264
void APUMatrixSum(uint16_t M, uint16_t N, void *pInputA, void *pInputB, void *pResult)
APU accelerator for matrix addition of two matrices C = A+B.
Definition: apu.c:384
void APUVectorScalarMult(uint16_t N, void *pInputA, void *pInputB, void *pResult)
APU accelerator for product of a vector and a scalar.
Definition: apu.c:210
void APUSetConfig(uint32_t memConfig)
Configure the APU.
Definition: apu.c:87
void APUVectorMultConj(uint16_t N, void *pInputA, void *pInputB, void *pResult)
APU accelerator for element-wise product of vector A with the conjugate of vector B...
Definition: apu.c:238
void APUWaitOp(void)
Wait for the APU to start and finish.
Definition: apu.c:74
void APUMatrixMultSym(uint16_t M, void *pInputA, void *pInputB, void *pResult)
APU accelerator for matrix multiplication of two symmetric matrices C = A*B.
Definition: apu.c:360
void APUVectorSort(uint16_t N, void *pInput)
APU accelerator for in-place sorting of a vector.
Definition: apu.c:466
void APUVectorDot(uint16_t N, void *pInputA, void *pInputB, void *pResult)
APU accelerator for vector dot product c = A dot B.
Definition: apu.c:136
void APUUnitCircle(uint16_t N, uint16_t M, uint16_t phase, uint16_t conj, void *pResult)
APU accelerator for generating points evenly distributed on unit circle.
Definition: apu.c:650
APUApi
Definition: apu.h:66
void APUMatrixNorm(uint16_t M, uint16_t N, void *pInput, void *pResult)
APU accelerator for Frobenius norm computation of a matrix.
Definition: apu.c:572
void APUComputeIfft(uint16_t N, void *pX)
APU accelerator for invert Fast Fourier transform.
Definition: apu.c:612
void APUComputeFft(uint16_t N, void *pX)
APU accelerator for Fast Fourier transform.
Definition: apu.c:593
void APUNop(void)
APU NOP.
Definition: apu.c:124
bool APUOperationDone(void)
Check if the APU has completed its operation.
Definition: apu.c:64
void APUMatrixScalarMult(uint16_t M, uint16_t N, void *pInputA, void *pInputB, void *pResult)
APU accelerator for multiplication of a matrix A and a scalar b.
Definition: apu.c:406
void APUHermLo(uint16_t N, void *pInput, void *pResult)
APU accelerator for converting Hermitian upper-triangular to lower-triangular.
Definition: apu.c:725
void APUVectorPol2Cart(uint16_t N, void *pInput, void *pResult, void *pTemp)
APU accelerator for element-wise Polar-to-Cartesian transformation of a vector.
Definition: apu.c:446
void APUVectorMult(uint16_t N, void *pInputA, void *pInputB, void *pResult)
APU accelerator for element-wise product of two vectors.
Definition: apu.c:184
void APUVectorCart2Pol(uint16_t N, void *pInput, void *pResult)
APU accelerator for element-wise Cartesian-to-Polar transformation of a vector.
Definition: apu.c:428
void APUMatrixMultHerm(uint16_t M, void *pInputA, void *pInputB, void *pResult)
APU accelerator for matrix multiplication of two Hermitian matrices C = A*B.
Definition: apu.c:336
void APUJacobiEVD(uint16_t N, void *pInput, void *pResultV, uint16_t maxIter, float minSum, float epsTol)
APU accelerator for Jacobi Eigen-Decomposition (EVD) of Hermitian Matrix.
Definition: apu.c:508
void APUConfigFft(uint16_t N, void *pX)
Configure APU accelerator for Fast Fourier transform.
Definition: apu.c:631
void APUVectorDotConj(uint16_t N, void *pInputA, void *pInputB, void *pResult)
APU accelerator for vector dot product c = A dot conj(B)
Definition: apu.c:160