37 t8_mat_init_xrot (
double mat[3][3],
const double angle)
46 mat[1][1] = cos (angle);
47 mat[1][2] = -sin (angle);
51 mat[2][1] = sin (angle);
52 mat[2][2] = cos (angle);
60 t8_mat_init_yrot (
double mat[3][3],
const double angle)
63 mat[0][0] = cos (angle);
65 mat[0][2] = sin (angle);
73 mat[2][0] = -sin (angle);
75 mat[2][2] = cos (angle);
83 t8_mat_init_zrot (
double mat[3][3],
const double angle)
86 mat[0][0] = cos (angle);
87 mat[0][1] = -sin (angle);
91 mat[1][0] = sin (angle);
92 mat[1][1] = cos (angle);
107 t8_mat_mult_vec (
const double mat[3][3],
const double a[3],
double b[3])
109 b[0] = mat[0][0] * a[0] + mat[0][1] * a[1] + mat[0][2] * a[2];
110 b[1] = mat[1][0] * a[0] + mat[1][1] * a[1] + mat[1][2] * a[2];
111 b[2] = mat[2][0] * a[0] + mat[2][1] * a[1] + mat[2][2] * a[2];
120 t8_mat_mult_mat (
const double A[3][3],
const double B[3][3],
double C[3][3])
122 for (
int i = 0; i < 3; i++) {
123 for (
int j = 0; j < 3; j++) {
128 for (
int i = 0; i < 3; i++) {
129 for (
int j = 0; j < 3; j++) {
130 for (
int k = 0; k < 3; k++) {
131 C[i][j] = C[i][j] + A[i][k] * B[k][j];