1 /*
2  * Copyright (c) 2007 - 2015 Joseph Gaeddert
3  *
4  * Permission is hereby granted, free of charge, to any person obtaining a copy
5  * of this software and associated documentation files (the "Software"), to deal
6  * in the Software without restriction, including without limitation the rights
7  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8  * copies of the Software, and to permit persons to whom the Software is
9  * furnished to do so, subject to the following conditions:
10  *
11  * The above copyright notice and this permission notice shall be included in
12  * all copies or substantial portions of the Software.
13  *
14  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20  * THE SOFTWARE.
21  */
22 
23 //
24 // Floating-point matrix (double precision)
25 //
26 
27 #include "liquid.internal.h"
28 
29 #define MATRIX(name)    LIQUID_CONCAT(matrix, name)
30 #define MATRIX_NAME     "matrix"
31 
32 #define T               double          // general type
33 #define TP              double          // primitive type
34 #define T_COMPLEX       0               // is type complex?
35 
36 #define T_ABS(X)        fabs(X)
37 #define TP_ABS(X)       fabs(X)
38 
39 #define MATRIX_PRINT_ELEMENT(X,R,C,r,c) \
40     printf("%12.8f", matrix_access(X,R,C,r,c));
41 
42 #include "matrix.base.c"
43 #include "matrix.cgsolve.c"
44 #include "matrix.chol.c"
45 #include "matrix.gramschmidt.c"
46 #include "matrix.inv.c"
47 #include "matrix.linsolve.c"
48 #include "matrix.ludecomp.c"
49 #include "matrix.qrdecomp.c"
50 #include "matrix.math.c"
51 
52