Home | History | Annotate | Download | only in xcore

Lines Matching refs:mat

556     inline MatrixN<T, 2> inverse (const MatrixN<T, 2>& mat);
557 inline MatrixN<T, 3> inverse (const MatrixN<T, 3>& mat);
558 inline MatrixN<T, 4> inverse (const MatrixN<T, 4>& mat);
750 MatrixN<T, 2> MatrixN<T, N>::inverse (const MatrixN<T, 2>& mat)
754 T det = mat(0, 0) * mat(1, 1) - mat(0, 1) * mat(1, 0);
760 result(0, 0) = mat(1, 1);
761 result(0, 1) = -mat(0, 1);
762 result(1, 0) = -mat(1, 0);
763 result(1, 1) = mat(0, 0);
769 MatrixN<T, 3> MatrixN<T, N>::inverse (const MatrixN<T, 3>& mat)
773 T det = mat(0, 0) * mat(1, 1) * mat(2, 2) +
774 mat(1, 0) * mat(2, 1) * mat(0, 2) +
775 mat(2, 0) * mat(0, 1) * mat(1, 2) -
776 mat(0, 0) * mat(2, 1) * mat(1, 2) -
777 mat(1, 0) * mat(0, 1) * mat(2, 2) -
778 mat(2, 0) * mat(1, 1) * mat(0, 2);
784 result(0, 0) = mat(1, 1) * mat(2, 2) - mat(1, 2) * mat(2, 1);
785 result(1, 0) = mat(1, 2) * mat(2, 0) - mat(1, 0) * mat(2, 2);
786 result(2, 0) = mat(1, 0) * mat(2, 1) - mat(1, 1) * mat(2, 0);
787 result(0, 1) = mat(0, 2) * mat(2, 1) - mat(0, 1) * mat(2, 2);
788 result(1, 1) = mat(0, 0) * mat(2, 2) - mat(0, 2) * mat(2, 0);
789 result(2, 1) = mat(0, 1) * mat(2, 0) - mat(0, 0) * mat(2, 1);
790 result(0, 2) = mat(0, 1) * mat(1, 2) - mat(0, 2) * mat(1, 1);
791 result(1, 2) = mat(0, 2) * mat(1, 0) - mat(0, 0) * mat(1, 2);
792 result(2, 2) = mat(0, 0) * mat(1, 1) - mat(0, 1) * mat(1, 0);
798 MatrixN<T, 4> MatrixN<T, N>::inverse (const MatrixN<T, 4>& mat)
802 T det = mat(0, 3) * mat(1, 2) * mat(2, 1) * mat(3, 1) -
803 mat(0, 2) * mat(1, 3) * mat(2, 1) * mat(3, 1) -
804 mat(0, 3) * mat(1, 1) * mat(2, 2) * mat(3, 1) +
805 mat(0, 1) * mat(1, 3) * mat(2, 2) * mat(3, 1) +
806 mat(0, 2) * mat(1, 1) * mat(2, 3) * mat(3, 1) -
807 mat(0, 1) * mat(1, 2) * mat(2, 3) * mat(3, 1) -
808 mat(0, 3) * mat(1, 2) * mat(2, 0) * mat(3, 1) +
809 mat(0, 2) * mat(1, 3) * mat(2, 0) * mat(3, 1) +
810 mat(0, 3) * mat(1, 0) * mat(2, 2) * mat(3, 1) -
811 mat(0, 0) * mat(1, 3) * mat(2, 2) * mat(3, 1) -
812 mat(0, 2) * mat(1, 0) * mat(2, 3) * mat(3, 1) +
813 mat(0, 0) * mat(1, 2) * mat(2, 3) * mat(3, 1) +
814 mat(0, 3) * mat(1, 1) * mat(2, 0) * mat(3, 2) -
815 mat(0, 1) * mat(1, 3) * mat(2, 0) * mat(3, 2) -
816 mat(0, 3) * mat(1, 0) * mat(2, 1) * mat(3, 2) +
817 mat(0, 0) * mat(1, 3) * mat(2, 1) * mat(3, 2) +
818 mat(0, 1) * mat(1, 0) * mat(2, 3) * mat(3, 2) -
819 mat(0, 0) * mat(1, 1) * mat(2, 3) * mat(3, 2) -
820 mat(0, 2) * mat(1, 1) * mat(2, 0) * mat(3, 3) +
821 mat(0, 1) * mat(1, 2) * mat(2, 0) * mat(3, 3) +
822 mat(0, 2) * mat(1, 0) * mat(2, 1) * mat(3, 3) -
823 mat(0, 0) * mat(1, 2) * mat(2, 1) * mat(3, 3) -
824 mat(0, 1) * mat(1, 0) * mat(2, 2) * mat(3, 3) +
825 mat(0, 0) * mat(1, 1) * mat(2, 2) * mat(3, 3);
831 result(0, 0) = mat(1, 2) * mat(2, 3) * mat(3, 1) -
832 mat(1, 3) * mat(2, 2) * mat(3, 1) +
833 mat(1, 3) * mat(2, 1) * mat(3, 2) -
834 mat(1, 1) * mat(2, 3) * mat(3, 2) -
835 mat(1, 2) * mat(2, 1) * mat(3, 3) +
836 mat(1, 1) * mat(2, 2) * mat(3, 3);
838 result(0, 1) = mat(0, 3) * mat(2, 2) * mat(3, 1) -
839 mat(0, 2) * mat(2, 3) * mat(3, 1) -
840 mat(0, 3) * mat(2, 1) * mat(3, 2) +
841 mat(0, 1) * mat(2, 3) * mat(3, 2) +
842 mat(0, 2) * mat(2, 1) * mat(3, 3) -
843 mat(0, 1) * mat(2, 2) * mat(3, 3);
845 result(0, 2) = mat(0, 2) * mat(1, 3) * mat(3, 1) -
846 mat(0, 3) * mat(1, 2) * mat(3, 1) +
847 mat(0, 3) * mat(1, 1) * mat(3, 2) -
848 mat(0, 1) * mat(1, 3) * mat(3, 2) -
849 mat(0, 2) * mat(1, 1) * mat(3, 3) +
850 mat(0, 1) * mat(1, 2) * mat(3, 3);
852 result(0, 3) = mat(0, 3) * mat(1, 2) * mat(2, 1) -
853 mat(0, 2) * mat(1, 3) * mat(2, 1) -
854 mat(0, 3) * mat(1, 1) * mat(2, 2) +
855 mat(0, 1) * mat(1, 3) * mat(2, 2) +
856 mat(0, 2) * mat(1, 1) * mat(2, 3) -
857 mat(0, 1) * mat(1, 2) * mat(2, 3);
859 result(1, 0) = mat(1, 3) * mat(2, 2) * mat(3, 0) -
860 mat(1, 2) * mat(2, 3) * mat(3, 0) -
861 mat(1, 3) * mat(2, 0) * mat(3, 2) +
862 mat(1, 0) * mat(2, 3) * mat(3, 2) +
863 mat(1, 2) * mat(2, 0) * mat(3, 3) -
864 mat(1, 0) * mat(2, 2) * mat(3, 3);
866 result(1, 1) = mat(0, 2) * mat(2, 3) * mat(3, 0) -
867 mat(0, 3) * mat(2, 2) * mat(3, 0) +
868 mat(0, 3) * mat(2, 0) * mat(3, 2) -
869 mat(0, 0) * mat(2, 3) * mat(3, 2) -
870 mat(0, 2) * mat(2, 0) * mat(3, 3) +
871 mat(0, 0) * mat(2, 2) * mat(3, 3);
873 result(1, 2) = mat(0, 3) * mat(1, 2) * mat(3, 0) -
874 mat(0, 2) * mat(1, 3) * mat(3, 0) -
875 mat(0, 3) * mat(1, 0) * mat(3, 2) +
876 mat(0, 0) * mat(1, 3) * mat(3, 2) +
877 mat(0, 2) * mat(1, 0) * mat(3, 3) -
878 mat(0, 0) * mat(1, 2) * mat(3, 3);
880 result(1, 3) = mat(0, 2) * mat(1, 3) * mat(2, 0) -
881 mat(0, 3) * mat(1, 2) * mat(2, 0) +
882 mat(0, 3) * mat(1, 0) * mat(2, 2) -
883 mat(0, 0) * mat(1, 3) * mat(2, 2) -
884 mat(0, 2) * mat(1, 0) * mat(2, 3) +
885 mat(0, 0) * mat(1, 2) * mat(2, 3);
887 result(2, 0) = mat(1, 1) * mat(2, 3) * mat(3, 0) -
888 mat(1, 3) * mat(2, 1) * mat(3, 0) +
889 mat(1, 3) * mat(2, 0) * mat(3, 1) -
890 mat(1, 0) * mat(2, 3) * mat(3, 1) -
891 mat(1, 1) * mat(2, 0) * mat(3, 3) +
892 mat(1, 0) * mat(2, 1) * mat(3, 3);
894 result(2, 1) = mat(0, 3) * mat(2, 1) * mat(3, 0) -
895 mat(0, 1) * mat(2, 3) * mat(3, 0) -
896 mat(0, 3) * mat(2, 0) * mat(3, 1) +
897 mat(0, 0) * mat(2, 3) * mat(3, 1) +
898 mat(0, 1) * mat(2, 0) * mat(3, 3) -
899 mat(0, 0) * mat(2, 1) * mat(3, 3);
901 result(2, 2) = mat(0, 1) * mat(1, 3) * mat(3, 0) -
902 mat(0, 3) * mat(1, 1) * mat(3, 0) +
903 mat(0, 3) * mat(1, 0) * mat(3, 1) -
904 mat(0, 0) * mat(1, 3) * mat(3, 1) -
905 mat(0, 1) * mat(1, 0) * mat(3, 3) +
906 mat(0, 0) * mat(1, 1) * mat(3, 3);
908 result(2, 3) = mat(0, 3) * mat(1, 1) * mat(2, 0) -
909 mat(0, 1) * mat(1, 3) * mat(2, 0) -
910 mat(0, 3) * mat(1, 0) * mat(2, 1) +
911 mat(0, 0) * mat(1, 3) * mat(2, 1) +
912 mat(0, 1) * mat(1, 0) * mat(2, 3) -
913 mat(0, 0) * mat(1, 1) * mat(2, 3);
915 result(3, 0) = mat(1, 2) * mat(2, 1) * mat(3, 0) -
916 mat(1, 1) * mat(2, 2) * mat(3, 0) -
917 mat(1, 2) * mat(2, 0) * mat(3, 1) +
918 mat(1, 0) * mat(2, 2) * mat(3, 1) +
919 mat(1, 1) * mat(2, 0) * mat(3, 2) -
920 mat(1, 0) * mat(2, 1) * mat(3, 2);
922 result(3, 1) = mat(1, 1) * mat(2, 2) * mat(3, 0) -
923 mat(1, 2) * mat(2, 1) * mat(3, 0) +
924 mat(1, 2) * mat(2, 0) * mat(3, 1) -
925 mat(1, 0) * mat(2, 2) * mat(3, 1) -
926 mat(1, 1) * mat(2, 0) * mat(3, 2) +
927 mat(1, 0) * mat(2, 1) * mat(3, 2);
929 result(3, 2) = mat(0, 2) * mat(1, 1) * mat(3, 0) -
930 mat(0, 1) * mat(1, 2) * mat(3, 0) -
931 mat(0, 2) * mat(1, 0) * mat(3, 1) +
932 mat(0, 0) * mat(1, 2) * mat(3, 1) +
933 mat(0, 1) * mat(1, 0) * mat(3, 2) -
934 mat(0, 0) * mat(1, 1) * mat(3, 2);
936 result(3, 3) = mat(0, 1) * mat(1, 2) * mat(2, 0) -
937 mat(0, 2) * mat(1, 1) * mat(2, 0) +
938 mat(0, 2) * mat(1, 0) * mat(2, 1) -
939 mat(0, 0) * mat(1, 2) * mat(2, 1) -
940 mat(0, 1) * mat(1, 0) * mat(2, 2) +
941 mat(0, 0) * mat(1, 1) * mat(2, 2);
1078 static Quaternion<T> create_quaternion (const Mat3d& mat) {
1082 T diag1 = mat(0, 0);
1083 T diag2 = mat(1, 1);
1084 T diag3 = mat(2, 2);
1092 q.v[0] = (mat(2, 1) - mat(1, 2)) / s;
1093 q.v[1] = (mat(0, 2) - mat(2, 0)) / s;
1094 q.v[2] = (mat(1, 0) - mat(0, 1)) / s;
1102 s = 2.0 * (T) sqrt(1.0 + mat(0, 0) - mat(1, 1) - mat(2, 2));
1103 q.w = (mat(2, 1) - mat(1, 2)) / s;
1105 q.v[1] = (mat(0, 1) + mat(1, 0)) / s;
1106 q.v[2] = (mat(0, 2) + mat(2, 0)) / s;
1110 s = 2.0 * (T) sqrt(1.0 + mat(1, 1) - mat(0, 0) - mat(2, 2));
1111 q.w = (mat(0, 2) - mat(2, 0)) / s;
1112 q.v[0] = (mat(0, 1) + mat(1, 0)) / s;
1114 mat(1, 2) + mat(2, 1)) / s;
1118 s = 2.0 * (T) sqrt(1.0 + mat(2, 2) - mat(0, 0) - mat(1, 1));
1119 q.w = (mat(1, 0) - mat(0, 1)) / s;
1120 q.v[0] = (mat(0, 2) + mat(2, 0)) / s;
1121 q.v[1] = (mat(1, 2) + mat(2, 1)) / s;
1167 Mat3d mat;
1181 mat(0, 0) = 1 - 2 * (yy + zz);
1182 mat(0, 1) = 2 * (xy - zw);
1183 mat(0, 2) = 2 * (xz + yw);
1184 mat(1, 0) = 2 * (xy + zw);
1185 mat(1, 1) = 1 - 2 * (xx + zz);
1186 mat(1, 2) = 2 * (yz - xw);
1187 mat(2, 0) = 2 * (xz - yw);
1188 mat(2, 1) = 2 * (yz + xw);
1189 mat(2, 2) = 1 - 2 * (xx + yy);
1191 return mat;