#include "ref.h" arm_status ref_mat_inverse_f32( const arm_matrix_instance_f32 * pSrc, arm_matrix_instance_f32 * pDst) { float32_t det; uint32_t i, size; arm_matrix_instance_f32 tmp; tmp.numCols = pSrc->numCols; tmp.numRows = pSrc->numRows; tmp.pData = scratchArray; det = ref_detrm(pSrc->pData,scratchArray,pSrc->numCols); size = pSrc->numCols * pSrc->numCols; ref_cofact(pSrc->pData,scratchArray,scratchArray + size,pSrc->numCols); ref_mat_trans_f32(&tmp,pDst); for(i=0;ipData[i] /= det; } return ARM_MATH_SUCCESS; } arm_status ref_mat_inverse_f64( const arm_matrix_instance_f64 * pSrc, arm_matrix_instance_f64 * pDst) { float64_t det; uint32_t i, size; arm_matrix_instance_f64 tmp; tmp.numCols = pSrc->numCols; tmp.numRows = pSrc->numRows; tmp.pData = (float64_t*)scratchArray; det = ref_detrm64(pSrc->pData,(float64_t*)scratchArray,pSrc->numCols); size = pSrc->numCols * pSrc->numCols; ref_cofact64(pSrc->pData,(float64_t*)scratchArray,(float64_t*)scratchArray + size,pSrc->numCols); ref_mat_trans_f64(&tmp,pDst); for(i=0;ipData[i] /= det; } return ARM_MATH_SUCCESS; }