Рефакторинг и оптимизация вычислений / Refactoring and optimization of computations
This commit is contained in:
parent
03e390c1d0
commit
2655e43cb4
15 changed files with 810 additions and 829 deletions
|
@ -22,17 +22,19 @@ int bg_fp32_matrix3x3_invert(BgFP32Matrix3x3* matrix)
|
|||
const float r3c2 = matrix->r1c2 * matrix->r3c1 - matrix->r1c1 * matrix->r3c2;
|
||||
const float r3c3 = matrix->r1c1 * matrix->r2c2 - matrix->r1c2 * matrix->r2c1;
|
||||
|
||||
matrix->r1c1 = r1c1 / determinant;
|
||||
matrix->r1c2 = r1c2 / determinant;
|
||||
matrix->r1c3 = r1c3 / determinant;
|
||||
const float multiplier = 1.0f / determinant;
|
||||
|
||||
matrix->r2c1 = r2c1 / determinant;
|
||||
matrix->r2c2 = r2c2 / determinant;
|
||||
matrix->r2c3 = r2c3 / determinant;
|
||||
matrix->r1c1 = r1c1 * multiplier;
|
||||
matrix->r1c2 = r1c2 * multiplier;
|
||||
matrix->r1c3 = r1c3 * multiplier;
|
||||
|
||||
matrix->r3c1 = r3c1 / determinant;
|
||||
matrix->r3c2 = r3c2 / determinant;
|
||||
matrix->r3c3 = r3c3 / determinant;
|
||||
matrix->r2c1 = r2c1 * multiplier;
|
||||
matrix->r2c2 = r2c2 * multiplier;
|
||||
matrix->r2c3 = r2c3 * multiplier;
|
||||
|
||||
matrix->r3c1 = r3c1 * multiplier;
|
||||
matrix->r3c2 = r3c2 * multiplier;
|
||||
matrix->r3c3 = r3c3 * multiplier;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
@ -57,17 +59,19 @@ int bg_fp64_matrix3x3_invert(BgFP64Matrix3x3* matrix)
|
|||
const double r3c2 = matrix->r1c2 * matrix->r3c1 - matrix->r1c1 * matrix->r3c2;
|
||||
const double r3c3 = matrix->r1c1 * matrix->r2c2 - matrix->r1c2 * matrix->r2c1;
|
||||
|
||||
matrix->r1c1 = r1c1 / determinant;
|
||||
matrix->r1c2 = r1c2 / determinant;
|
||||
matrix->r1c3 = r1c3 / determinant;
|
||||
const double multiplier = 1.0 / determinant;
|
||||
|
||||
matrix->r2c1 = r2c1 / determinant;
|
||||
matrix->r2c2 = r2c2 / determinant;
|
||||
matrix->r2c3 = r2c3 / determinant;
|
||||
matrix->r1c1 = r1c1 * multiplier;
|
||||
matrix->r1c2 = r1c2 * multiplier;
|
||||
matrix->r1c3 = r1c3 * multiplier;
|
||||
|
||||
matrix->r3c1 = r3c1 / determinant;
|
||||
matrix->r3c2 = r3c2 / determinant;
|
||||
matrix->r3c3 = r3c3 / determinant;
|
||||
matrix->r2c1 = r2c1 * multiplier;
|
||||
matrix->r2c2 = r2c2 * multiplier;
|
||||
matrix->r2c3 = r2c3 * multiplier;
|
||||
|
||||
matrix->r3c1 = r3c1 * multiplier;
|
||||
matrix->r3c2 = r3c2 * multiplier;
|
||||
matrix->r3c3 = r3c3 * multiplier;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
@ -94,17 +98,19 @@ int bg_fp32_matrix3x3_set_inverted(const BgFP32Matrix3x3* matrix, BgFP32Matrix3x
|
|||
const float r3c2 = matrix->r1c2 * matrix->r3c1 - matrix->r1c1 * matrix->r3c2;
|
||||
const float r3c3 = matrix->r1c1 * matrix->r2c2 - matrix->r1c2 * matrix->r2c1;
|
||||
|
||||
result->r1c1 = r1c1 / determinant;
|
||||
result->r1c2 = r1c2 / determinant;
|
||||
result->r1c3 = r1c3 / determinant;
|
||||
const float multiplier = 1.0f / determinant;
|
||||
|
||||
result->r2c1 = r2c1 / determinant;
|
||||
result->r2c2 = r2c2 / determinant;
|
||||
result->r2c3 = r2c3 / determinant;
|
||||
result->r1c1 = r1c1 * multiplier;
|
||||
result->r1c2 = r1c2 * multiplier;
|
||||
result->r1c3 = r1c3 * multiplier;
|
||||
|
||||
result->r3c1 = r3c1 / determinant;
|
||||
result->r3c2 = r3c2 / determinant;
|
||||
result->r3c3 = r3c3 / determinant;
|
||||
result->r2c1 = r2c1 * multiplier;
|
||||
result->r2c2 = r2c2 * multiplier;
|
||||
result->r2c3 = r2c3 * multiplier;
|
||||
|
||||
result->r3c1 = r3c1 * multiplier;
|
||||
result->r3c2 = r3c2 * multiplier;
|
||||
result->r3c3 = r3c3 * multiplier;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
@ -129,17 +135,19 @@ int bg_fp64_matrix3x3_set_inverted(const BgFP64Matrix3x3* matrix, BgFP64Matrix3x
|
|||
const double r3c2 = matrix->r1c2 * matrix->r3c1 - matrix->r1c1 * matrix->r3c2;
|
||||
const double r3c3 = matrix->r1c1 * matrix->r2c2 - matrix->r1c2 * matrix->r2c1;
|
||||
|
||||
result->r1c1 = r1c1 / determinant;
|
||||
result->r1c2 = r1c2 / determinant;
|
||||
result->r1c3 = r1c3 / determinant;
|
||||
const double multiplier = 1.0 / determinant;
|
||||
|
||||
result->r2c1 = r2c1 / determinant;
|
||||
result->r2c2 = r2c2 / determinant;
|
||||
result->r2c3 = r2c3 / determinant;
|
||||
result->r1c1 = r1c1 * multiplier;
|
||||
result->r1c2 = r1c2 * multiplier;
|
||||
result->r1c3 = r1c3 * multiplier;
|
||||
|
||||
result->r3c1 = r3c1 / determinant;
|
||||
result->r3c2 = r3c2 / determinant;
|
||||
result->r3c3 = r3c3 / determinant;
|
||||
result->r2c1 = r2c1 * multiplier;
|
||||
result->r2c2 = r2c2 * multiplier;
|
||||
result->r2c3 = r2c3 * multiplier;
|
||||
|
||||
result->r3c1 = r3c1 * multiplier;
|
||||
result->r3c2 = r3c2 * multiplier;
|
||||
result->r3c3 = r3c3 * multiplier;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue