134 #ifndef ti_drivers_APULPF3__include 135 #define ti_drivers_APULPF3__include 145 #include <ti/devices/DeviceFamily.h> 146 #include DeviceFamily_constructPath(inc/hw_memmap.h) 147 #include DeviceFamily_constructPath(driverlib/apu.h) 148 #include DeviceFamily_constructPath(driverlib/udma.h) 307 #define APULPF3_STATUS_SUCCESS 0 312 #define APULPF3_STATUS_ERROR 1 318 #define APULPF3_STATUS_RESOURCE_UNAVAILABLE 2 324 #define APULPF3_RESULT_INPLACE 0 329 #define APULPF3_MEM_BASE APURAM_DATA0_BASE 334 #define APULPF3_MEM_SIZE_MIRRORED APURAM_DATA0_SIZE 410 float complex *result);
477 float complex *scalar,
509 float complex *scalar,
677 uint16_t covMatrixSize,
734 float scalarThreshold,
APULPF3_SchedulingMode schedulingMode
Definition: APULPF3.h:286
int_fast16_t APULPF3_unitCircle(uint16_t numPoints, uint16_t constant, uint16_t phase, bool conjugate, APULPF3_ComplexVector *result)
Generate points evenly distributed on a unit circle. The APU generates a unit circle as follow: exp(-...
void APULPF3_dataMemTransfer(const float *src, float *dst, size_t length)
Transfer data to or from the APU data memory.
void * object
Definition: APULPF3.h:272
Definition: APULPF3.h:262
APULPF3_SchedulingMode
Define the APU memory scheduling modes, which are the ways APU memory operations are scheduled and pi...
Definition: APULPF3.h:257
APULPF3 Global configuration.
Definition: APULPF3.h:269
int_fast16_t APULPF3_vectorR2C(APULPF3_ComplexVector *vecA, APULPF3_ComplexVector *vecB, APULPF3_R2COp operator, APULPF3_ComplexVector *result)
APU function for converting vectors back and forth between real and complex number formats...
void * APULPF3_loadTriangular(APULPF3_ComplexMatrix *mat, uint16_t offset)
Loads the upper triangular part of a full matrix into APU memory.
int_fast16_t APULPF3_jacobiEVD(APULPF3_ComplexTriangleMatrix *mat, uint16_t maxIter, float stopThreshold, float epsTol, APULPF3_ComplexVector *result)
APU function to compute the Jacobi Eigen-Decomposition (EVD) of a triangular Hermitian Matrix...
APULPF3 Hardware attributes.
Definition: APULPF3.h:280
APULPF3 Upper Triangle Matrix Struct.
Definition: APULPF3.h:216
int_fast16_t APULPF3_matrixScalarSum(APULPF3_ComplexMatrix *mat, float complex *scalar, APULPF3_ComplexMatrix *result)
APU function for adding a scalar to a each of a matrix' elements.
uint16_t size
Definition: APULPF3.h:221
int_fast16_t APULPF3_computeFFT(APULPF3_ComplexVector *vec, bool inverse, APULPF3_ComplexVector *result)
APU function for computing the Discrete Fourier transform (DFT) of a complex vector using the Fast Fo...
int_fast16_t APULPF3_covMatrixSpatialSmoothing(APULPF3_ComplexVector *vec, uint16_t covMatrixSize, bool fbAveraging, APULPF3_ComplexTriangleMatrix *result)
APU function for covariance matrix computation using spatial smoothing and optionally forward-backwar...
APULPF3_OperationMode
Define the APU memory operation modes, which are the ways the APU expects data to be stored in its me...
Definition: APULPF3.h:246
unsigned int intPriority
Definition: APULPF3.h:282
uint16_t cols
Definition: APULPF3.h:199
APULPF3_OperationMode operationMode
Definition: APULPF3.h:284
Semaphore module for the RTOS Porting Interface.
void APULPF3_init(void)
APU init function.
int_fast16_t APULPF3_cartesianToPolarVector(APULPF3_ComplexVector *vec, APULPF3_ComplexVector *result)
APU function for converting a complex vector in cartesian format to polar format. ...
APULPF3 Vector Struct.
Definition: APULPF3.h:173
void const * hwAttrs
Definition: APULPF3.h:274
Definition: APULPF3.h:233
int_fast16_t APULPF3_gaussJordanElim(APULPF3_ComplexMatrix *mat, float zeroThreshold, APULPF3_ComplexMatrix *result)
Reduce the input matrix A[MxN] to reduced echelon form using Gauss-Jordan Elimination.
complex float * data
Definition: APULPF3.h:219
int_fast16_t APULPF3_matrixNorm(APULPF3_ComplexMatrix *mat, float complex *result)
Compute the Frobenius norm of a matrix.
int_fast16_t APULPF3_matrixScalarMult(APULPF3_ComplexMatrix *mat, float complex *scalar, APULPF3_ComplexMatrix *result)
APU function for multiplying each of a matrix' elements by a scalar.
void * APULPF3_loadArgMirrored(uint16_t argSize, uint16_t offset, float complex *src)
Load operation arguments into APU memory, assuming the APU is in mirrored mode. This means memory is ...
complex float * data
Definition: APULPF3.h:176
void APULPF3_prepareResult(uint16_t resultSize, uint16_t inputSize, complex float *resultBuffer)
Configure the APU pointers for temporary (in APU memory) and final results for a APU operation...
int_fast16_t APULPF3_sortVector(APULPF3_ComplexVector *vec, APULPF3_ComplexVector *result)
APU function for sorting the real parts of a complex vector in descending order. This function ignore...
Definition: APULPF3.h:232
int_fast16_t APULPF3_HermLo(APULPF3_ComplexTriangleMatrix *mat, APULPF3_ComplexTriangleMatrix *result)
converting Hermitian upper-triangular to lower-triangular
uint16_t size
Definition: APULPF3.h:178
int_fast16_t APULPF3_vectorScalarMult(APULPF3_ComplexVector *vecA, float complex *scalar, APULPF3_ComplexVector *result)
APU function for calculating the product of a vector and a scalar.
uint16_t rows
Definition: APULPF3.h:197
Definition: APULPF3.h:249
int_fast16_t APULPF3_matrixMult(APULPF3_ComplexMatrix *matA, APULPF3_ComplexMatrix *matB, APULPF3_ComplexMatrix *result)
APU function for multiplying two matrices. The number of rows in the first matrix must be equal to th...
APULPF3_R2COp
Modes for converting between real and complex vectors.
Definition: APULPF3.h:230
int_fast16_t APULPF3_dotProduct(APULPF3_ComplexVector *vecA, APULPF3_ComplexVector *vecB, bool conjugate, float complex *result)
APU function for calculating the dot product of two vectors, with the option to perform the complex c...
int_fast16_t APULPF3_vectorMult(APULPF3_ComplexVector *vecA, APULPF3_ComplexVector *vecB, bool conjugate, APULPF3_ComplexVector *result)
APU function for calculating the element-wise product of two vectors, with the option to perform the ...
Definition: APULPF3.h:236
int_fast16_t APULPF3_vectorMaxMin(APULPF3_ComplexVector *vec, float scalarThreshold, bool min, APULPF3_ComplexVector *result)
APU function for computing max/min of the real part of a vector and a real value scalar APU accelerat...
int_fast16_t APULPF3_polarToCartesianVector(APULPF3_ComplexVector *vec, float complex *temp, APULPF3_ComplexVector *result)
APU function for converting a complex vector in polar format to cartesian format. ...
int_fast16_t APULPF3_matrixSum(APULPF3_ComplexMatrix *matA, APULPF3_ComplexMatrix *matB, APULPF3_ComplexMatrix *result)
APU function for adding two matrices. The matrices must be of exact same sizes.
Definition: APULPF3.h:234
Definition: APULPF3.h:237
volatile uDMAControlTableEntry * dmaTableEntry
Definition: APULPF3.h:291
uint32_t dmaChannelMask
Definition: APULPF3.h:296
int_fast16_t APULPF3_vectorSum(APULPF3_ComplexVector *vecA, APULPF3_ComplexVector *vecB, bool subtraction, APULPF3_ComplexVector *result)
APU function for calculating the summation of a vector and a scalar.
Definition: APULPF3.h:235
uint16_t APULPF3_prepareMatrices(APULPF3_ComplexMatrix *matA, APULPF3_ComplexMatrix *matB)
Configure the APU for matrix operation inputs. If not in scratchpad mode, the matrices are loaded one...
Definition: APULPF3.h:238
void APULPF3_stopOperationSequence()
APU function to finish an operation chain.
Hardware Interrupt module for the RTOS Porting Interface.
APULPF3 Matrix Struct.
Definition: APULPF3.h:192
void APULPF3_startOperationSequence()
APU function to prepare the start of an operation chain.
complex float * data
Definition: APULPF3.h:195
uint16_t APULPF3_prepareVectors(APULPF3_ComplexVector *vecA, APULPF3_ComplexVector *vecB)
Configure the APU for vector operation inputs. If not in scratchpad mode, the vectors are loaded one ...