20 for (
int i = 0; i < 4; i++) {
22 float pivotsize =
M[i][i];
25 pivotsize = -pivotsize;
28 for (
int j = i + 1; j < 4; j++) {
35 if (tmp > pivotsize) {
46 for (
int j = 0; j < 4; j++) {
50 M[i][j] =
M[pivot][j];
54 R[i][j] =
R[pivot][j];
59 for (
int j = i + 1; j < 4; j++) {
60 const float f =
M[j][i] /
M[i][i];
62 for (
int k = 0; k < 4; k++) {
63 M[j][k] -= f *
M[i][k];
64 R[j][k] -= f *
R[i][k];
70 for (
int i = 3; i >= 0; --i) {
77 for (
int j = 0; j < 4; j++) {
82 for (
int j = 0; j < i; j++) {
85 for (
int k = 0; k < 4; k++) {
86 M[j][k] -= f *
M[i][k];
87 R[j][k] -= f *
R[i][k];
#define ccl_device_forceinline
#define CCL_NAMESPACE_END
CCL_NAMESPACE_BEGIN ccl_device_forceinline bool projection_inverse_impl(ccl_private float R[4][4], ccl_private float M[4][4])