|
|
|
@ -174,11 +174,14 @@ arm_status arm_mat_inverse_f64(
|
|
|
|
/* Temporary variable to hold the pivot value */
|
|
|
|
/* Temporary variable to hold the pivot value */
|
|
|
|
in = *pInT1;
|
|
|
|
in = *pInT1;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* Check if the pivot element is zero */
|
|
|
|
/* Check if the pivot element is zero */
|
|
|
|
if (*pInT1 == 0.0)
|
|
|
|
if (*pInT1 == 0.0)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
/* Loop over the number rows present below */
|
|
|
|
/* Loop over the number rows present below */
|
|
|
|
for (i = (l + 1U); i < numRows; i++)
|
|
|
|
|
|
|
|
|
|
|
|
for (i = 1U; i < numRows - l; i++)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
/* Update the input and destination pointers */
|
|
|
|
/* Update the input and destination pointers */
|
|
|
|
pInT2 = pInT1 + (numCols * i);
|
|
|
|
pInT2 = pInT1 + (numCols * i);
|
|
|
|
@ -224,6 +227,8 @@ arm_status arm_mat_inverse_f64(
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* Decrement loop counter */
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@ -474,13 +479,11 @@ arm_status arm_mat_inverse_f64(
|
|
|
|
/* Temporary variable to hold the pivot value */
|
|
|
|
/* Temporary variable to hold the pivot value */
|
|
|
|
in = *pInT1;
|
|
|
|
in = *pInT1;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* Check if the pivot element is zero */
|
|
|
|
/* Check if the pivot element is zero */
|
|
|
|
if (*pInT1 == 0.0)
|
|
|
|
if (*pInT1 == 0.0)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
/* Loop over the number rows present below */
|
|
|
|
/* Loop over the number rows present below */
|
|
|
|
for (i = (l + 1U); i < numRows; i++)
|
|
|
|
for (i = 1U; i < numRows-l; i++)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
/* Update the input and destination pointers */
|
|
|
|
/* Update the input and destination pointers */
|
|
|
|
pInT2 = pInT1 + (numCols * i);
|
|
|
|
pInT2 = pInT1 + (numCols * i);
|
|
|
|
@ -513,11 +516,10 @@ arm_status arm_mat_inverse_f64(
|
|
|
|
/* Break after exchange is done */
|
|
|
|
/* Break after exchange is done */
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* Update the status if the matrix is singular */
|
|
|
|
/* Update the status if the matrix is singular */
|
|
|
|
if ((flag != 1U) && (in == 0.0))
|
|
|
|
if ((flag != 1U) && (in == 0.0))
|
|
|
|
{
|
|
|
|
{
|
|
|
|
|