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])