mat_vec_fns.h
Go to the documentation of this file.
1 //
2 // This file is part of the FFEA simulation package
3 //
4 // Copyright (c) by the Theory and Development FFEA teams,
5 // as they appear in the README.md file.
6 //
7 // FFEA is free software: you can redistribute it and/or modify
8 // it under the terms of the GNU General Public License as published by
9 // the Free Software Foundation, either version 3 of the License, or
10 // (at your option) any later version.
11 //
12 // FFEA is distributed in the hope that it will be useful,
13 // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 // GNU General Public License for more details.
16 //
17 // You should have received a copy of the GNU General Public License
18 // along with FFEA. If not, see <http://www.gnu.org/licenses/>.
19 //
20 // To help us fund FFEA development, we humbly ask that you cite
21 // the research papers on the package.
22 //
23 
24 #ifndef MAT_VEC_FNS_H_INCLUDED
25 #define MAT_VEC_FNS_H_INCLUDED
26 
27 #include <math.h>
28 #include <stdio.h>
29 
30 #include "mat_vec_types.h"
31 
35 void mat12_apply(matrix12 A, vector12 v);
36 
37 void vec3_mat3_mult(vector3 &v, matrix3 &A, vector3 &notV);
38 
39 void mat3_mult(matrix3 A, matrix3 B, matrix3 result);
40 
41 void vec12_add(vector12 A, vector12 B);
42 
43 void vec12_scale(vector12 A, scalar scale);
44 
45 void mat3_mult_transpose(matrix3 A, matrix3 B, matrix3 result);
46 
48 
49 void mat3_scale(matrix3 A, scalar s);
50 
52 
54 
56 void mat3_invert(matrix3 m, matrix3 m_inv, scalar *det_m);
57 
58 void mat12_set_zero(matrix12 A);
59 
60 void mat3_set_zero(matrix3 A);
61 
63 
64 void mat4_set_zero(matrix4 A);
65 
66 void vector3_set_zero(vector3 &v);
67 
68 void vec3_add_to_scaled(vector3 *v1, vector3 *v2, scalar a, int vec_size);
69 
70 void vec3_scale_and_add(vector3 *v1, vector3 *v2, scalar a, int vec_size);
71 
72 void vec12_set_zero(vector12 v);
73 
75 void print_matrix3(matrix3 m);
76 
78 void print_matrix4(matrix4 m);
79 
81 void print_matrix12(matrix12 m);
82 
84 void print_vector12(vector12 v);
85 
86 void print_vector3(vector3 &v);
87 
88 #endif
void vec3_mat3_mult(vector3 &v, matrix3 &A, vector3 &notV)
Definition: mat_vec_fns.cpp:36
void print_vector3(vector3 &v)
Definition: mat_vec_fns.cpp:325
void mat12_apply(matrix12 A, vector12 v)
Definition: mat_vec_fns.cpp:26
scalar mat3_double_contraction_symmetric(matrix3 A)
Definition: mat_vec_fns.cpp:131
void mat3_invert(matrix3 m, matrix3 m_inv, scalar *det_m)
Definition: mat_vec_fns.cpp:148
scalar matrix3[3][3]
Definition: mat_vec_types.h:132
void mat3_set_zero(matrix3 A)
Definition: mat_vec_fns.cpp:192
void mat3_set_identity(matrix3 A)
Definition: mat_vec_fns.cpp:202
void mat3_mult_both_transposed(matrix3 A, matrix3 B, matrix3 result)
Definition: mat_vec_fns.cpp:104
scalar vector12[12]
Definition: mat_vec_types.h:122
void print_vector12(vector12 v)
Definition: mat_vec_fns.cpp:319
void mat3_mult_transpose(matrix3 A, matrix3 B, matrix3 result)
Definition: mat_vec_fns.cpp:93
void print_matrix4(matrix4 m)
Definition: mat_vec_fns.cpp:298
void print_matrix3(matrix3 m)
Definition: mat_vec_fns.cpp:289
scalar mat3_double_contraction(matrix3 A)
Definition: mat_vec_fns.cpp:139
scalar matrix12[12][12]
Definition: mat_vec_types.h:127
void vec12_add(vector12 A, vector12 B)
Definition: mat_vec_fns.cpp:75
void mat3_scale(matrix3 A, scalar s)
Definition: mat_vec_fns.cpp:116
void vec12_set_zero(vector12 v)
Definition: mat_vec_fns.cpp:280
void mat4_set_zero(matrix4 A)
Definition: mat_vec_fns.cpp:213
void mat3_mult(matrix3 A, matrix3 B, matrix3 result)
Definition: mat_vec_fns.cpp:63
void vec12_scale(vector12 A, scalar scale)
Definition: mat_vec_fns.cpp:84
void vector3_set_zero(vector3 &v)
Definition: mat_vec_fns.cpp:223
void mat12_set_zero(matrix12 A)
Definition: mat_vec_fns.cpp:182
void vec3_add_to_scaled(vector3 *v1, vector3 *v2, scalar a, int vec_size)
Definition: mat_vec_fns.cpp:250
Definition: mat_vec_types.h:90
scalar matrix4[4][4]
Definition: mat_vec_types.h:137
double scalar
Definition: mat_vec_types.h:36
void print_matrix12(matrix12 m)
Definition: mat_vec_fns.cpp:307
void vec3_scale_and_add(vector3 *v1, vector3 *v2, scalar a, int vec_size)
Definition: mat_vec_fns.cpp:265