TI Autonomous Driving Algorithms (TIADALG) Library User Guide
sfm_ti_matrixOps.h
Go to the documentation of this file.
1 /*
2 * module name : Structure From Motion
3 *
4 * module descripton : Generates sparse 3D points from optical flow information in camera captured images
5 *
6 * Copyright (C) 2009-2017 Texas Instruments Incorporated - http://www.ti.com/
7 * ALL RIGHTS RESERVED
8 *
9 */
10 
20 #ifndef TI_SFM_MATRIXOPS_H
21 #define TI_SFM_MATRIXOPS_H
22 
23 int32_t SFM_TI_gaussJordanElimination_cn(float *a, int32_t n, float *b,int32_t aMatPitch, uint8_t* scratch);
24 int32_t SFM_TI_gaussJordanElimination_ci(float a[restrict], int32_t n, float b[restrict],int32_t aMatPitch, uint8_t scratch[restrict]);
25 
26 void SFM_TI_matrixMultiply_3x3(float A[], float B[], float C[]);
27 void SFM_TI_matrixMultiply_4x4(float A[], float B[], float C[]);
28 
29 void SFM_TI_svdcmp(float* restrict Amat, int16_t rows, int16_t cols,int16_t pitch, float* restrict Wmat, float* restrict vMat, float * restrict scratch);
30 float SFM_TI_PYTHAG(float a, float b);
31 
32 void SFM_TI_multiplyByTranspose(float A[], float B[], float out[], uint16_t ma, uint16_t na, uint16_t nb);
33 void SFM_TI_multiplyByTranspose_ci(float A[restrict], float B[restrict], float out[restrict], uint16_t ma, uint16_t na, uint16_t nb) ;
34 void SFM_TI_multiplyByItsTranspose(float A[], float AtA[], uint16_t m, uint16_t n);
35 void SFM_TI_multiplyByItsTranspose_ci(float A[restrict],
36  float AtA[restrict],
37  float B[restrict],
38  float Atb[restrict],
39  uint16_t* curTrackLength,
40  uint16_t n);
41 void SFM_TI_matrixMultiply_4x4By4x1(float A[], float B[], float C[]);
42 
43 int32_t SFM_TI_LUDecomposion_3x3(float* A,float* b);
44 void SFM_TI_matrixMultiply_9x9(float A[], float B[], float C[], int32_t rowSteps);
45 int32_t SFM_TI_LUDecomposion_3x3_ci(float * restrict A, float * restrict b, int32_t* restrict result);
46 
47 
49  int16_t pivot[],
50  int32_t n,
51  float * Aout,
52  int32_t pitch);
53 
54 int32_t SFM_TI_Crout_LU_Decomposition(float * ALUin,
55  int32_t n,
56  float * ALout,
57  float * AUout,
58  int32_t pitch);
59 
60 int32_t SFM_TI_Crout_LU_with_Pivoting_Solve(float *LU,
61  float B[],
62  int16_t pivot[],
63  float x[],
64  int32_t n,
65  int32_t pitch);
66 
67 void SFM_TI_preMultiplyByTranspose( float * Ain, float * AtA, int32_t rows, int32_t cols, int32_t pitch);
68 
69 int32_t SFM_TI_Crout_LU_Decomposition(float * ALUin,
70  int32_t n,
71  float * ALout,
72  float * AUout,
73  int32_t pitch);
74 
75 int32_t SFM_TI_Crout_LU_Decomposition_ci(float * restrict Ain,
76  float * restrict ALUin,
77  int32_t n,
78  float * restrict ALout,
79  float * restrict AUout,
80  int32_t pitch);
81 
82 
83 void SFM_TI_preMultiplyByTranspose_ci( float * restrict Ain, float * restrict AtA, int32_t rows, int32_t cols, int32_t pitch);
84 
85 int32_t SFM_TI_Crout_LU_Decomposition_with_Pivoting_ci(float * restrict Ain,
86  int16_t * restrict pivot,
87  int32_t n,
88  float * restrict Aout,
89  int32_t pitch);
90 
91 
92 int32_t SFM_TI_Crout_LU_with_Pivoting_Solve_ci(float L[restrict],
93  float U[restrict],
94  float B[restrict],
95  short pivot[restrict],
96  float x[restrict],
97  int32_t n,
98  int32_t pitch);
99 float SFM_TI_NormalizeVec(float * vec, uint16_t length, float * vecOut);
100 
101 float SFM_TI_NormalizeVecAndComputeNorm(float * restrict vec,
102  uint16_t length,
103  float * restrict vecOut);
104 
105 void SFM_TI_matrixMultiply_3x4By4x1(float A[restrict], float B[restrict], float C[restrict], int32_t num_matrices);
106 void SFM_TI_matrixMultiply_3x3By3x1(float A[restrict], float B[restrict], float C[restrict], int32_t num_matrices);
107 
108 void SFM_TI_matrixMultiply_3x4By4x1_ci(float A[restrict], float B[restrict], float C[restrict], int32_t num_matrices, uint32_t* pBlock);
109 void SFM_TI_matrixMultiply_3x3By3x1_ci(float A[restrict], float B[restrict], float C[restrict], int32_t num_matrices, uint32_t* pBlock);
110 
111 #endif
int32_t SFM_TI_Crout_LU_Decomposition_ci(float *restrict Ain, float *restrict ALUin, int32_t n, float *restrict ALout, float *restrict AUout, int32_t pitch)
float SFM_TI_NormalizeVec(float *vec, uint16_t length, float *vecOut)
void SFM_TI_svdcmp(float *restrict Amat, int16_t rows, int16_t cols, int16_t pitch, float *restrict Wmat, float *restrict vMat, float *restrict scratch)
float SFM_TI_NormalizeVecAndComputeNorm(float *restrict vec, uint16_t length, float *restrict vecOut)
int32_t SFM_TI_Crout_LU_with_Pivoting_Solve(float *LU, float B[], int16_t pivot[], float x[], int32_t n, int32_t pitch)
void SFM_TI_preMultiplyByTranspose_ci(float *restrict Ain, float *restrict AtA, int32_t rows, int32_t cols, int32_t pitch)
void SFM_TI_matrixMultiply_9x9(float A[], float B[], float C[], int32_t rowSteps)
int32_t SFM_TI_gaussJordanElimination_ci(float a[restrict], int32_t n, float b[restrict], int32_t aMatPitch, uint8_t scratch[restrict])
int32_t SFM_TI_Crout_LU_with_Pivoting_Solve_ci(float L[restrict], float U[restrict], float B[restrict], short pivot[restrict], float x[restrict], int32_t n, int32_t pitch)
void SFM_TI_multiplyByTranspose_ci(float A[restrict], float B[restrict], float out[restrict], uint16_t ma, uint16_t na, uint16_t nb)
void SFM_TI_multiplyByItsTranspose_ci(float A[restrict], float AtA[restrict], float B[restrict], float Atb[restrict], uint16_t *curTrackLength, uint16_t n)
int32_t SFM_TI_gaussJordanElimination_cn(float *a, int32_t n, float *b, int32_t aMatPitch, uint8_t *scratch)
float SFM_TI_PYTHAG(float a, float b)
void SFM_TI_matrixMultiply_3x3By3x1(float A[restrict], float B[restrict], float C[restrict], int32_t num_matrices)
int32_t SFM_TI_Crout_LU_Decomposition_with_Pivoting_ci(float *restrict Ain, int16_t *restrict pivot, int32_t n, float *restrict Aout, int32_t pitch)
int32_t SFM_TI_LUDecomposion_3x3_ci(float *restrict A, float *restrict b, int32_t *restrict result)
int32_t SFM_TI_Crout_LU_Decomposition_with_Pivoting(float *Ain, int16_t pivot[], int32_t n, float *Aout, int32_t pitch)
int32_t SFM_TI_LUDecomposion_3x3(float *A, float *b)
void SFM_TI_matrixMultiply_3x3(float A[], float B[], float C[])
void SFM_TI_matrixMultiply_3x4By4x1_ci(float A[restrict], float B[restrict], float C[restrict], int32_t num_matrices, uint32_t *pBlock)
void SFM_TI_preMultiplyByTranspose(float *Ain, float *AtA, int32_t rows, int32_t cols, int32_t pitch)
void SFM_TI_matrixMultiply_4x4(float A[], float B[], float C[])
void SFM_TI_matrixMultiply_3x3By3x1_ci(float A[restrict], float B[restrict], float C[restrict], int32_t num_matrices, uint32_t *pBlock)
void SFM_TI_matrixMultiply_4x4By4x1(float A[], float B[], float C[])
void SFM_TI_multiplyByTranspose(float A[], float B[], float out[], uint16_t ma, uint16_t na, uint16_t nb)
int32_t SFM_TI_Crout_LU_Decomposition(float *ALUin, int32_t n, float *ALout, float *AUout, int32_t pitch)
void SFM_TI_matrixMultiply_3x4By4x1(float A[restrict], float B[restrict], float C[restrict], int32_t num_matrices)
void SFM_TI_multiplyByItsTranspose(float A[], float AtA[], uint16_t m, uint16_t n)

© Copyright 2018 Texas Instruments Incorporated. All rights reserved.
Document generated by doxygen 1.8.6