1 /****************************************************************\
2 *                                                                *
3 *  Simple matrix creation routines                               *
4 *                                                                *
5 *  Guy St.C. Slater..   mailto:guy@ebi.ac.uk                     *
6 *  Copyright (C) 2000-2009.  All Rights Reserved.                *
7 *                                                                *
8 *  This source code is distributed under the terms of the        *
9 *  GNU General Public License, version 3. See the file COPYING   *
10 *  or http://www.gnu.org/licenses/gpl.txt for details            *
11 *                                                                *
12 *  If you use this code, please keep this notice intact.         *
13 *                                                                *
14 \****************************************************************/
15 
16 #include "matrix.h"
17 
main(void)18 int main(void){
19     register gint **m2d, ***m3d;
20     register gshort ***ms3d, ****ms4d;
21     register gint i, j, k, l;
22     g_message("testing 2d matrix routines\n");
23     m2d = (gint**)Matrix2d_create(5, 10, sizeof(gint));
24     for(i = 0; i < 5; i++){
25         for(j = 0; j < 10; j++){
26             g_assert(!m2d[i][j]);
27             m2d[i][j] = i+j;
28             }
29         }
30     for(i = 0; i < 5; i++){
31         for(j = 0; j < 10; j++){
32             g_print("[%2d]", m2d[i][j]);
33             }
34         g_print("\n");
35         }
36     g_print("\n");
37     g_free(m2d);
38     /**/
39     g_print("\n");
40     g_message("testing 3d matrix routines\n");
41     m3d = (gint***)Matrix3d_create(4, 3, 2, sizeof(gint));
42     for(i = 0; i < 4; i++){
43         for(j = 0; j < 3; j++){
44             for(k = 0; k < 2; k++){
45                 g_assert(!m3d[i][j][k]);
46                 m3d[i][j][k] = i+j+k;
47                 }
48             }
49         }
50     for(i = 0; i < 4; i++){
51         for(j = 0; j < 3; j++){
52             g_print(" {");
53             for(k = 0; k < 2; k++){
54                 g_print("[%2d]", m3d[i][j][k]);
55                 }
56             g_print("}");
57             }
58         g_print("\n");
59         }
60     g_print("\n");
61     g_free(m3d);
62     /**/
63     g_message("testing 3d matrix routines on gshorts\n");
64     ms3d = (gshort***)Matrix3d_create(4, 3, 2, sizeof(gshort));
65     for(i = 0; i < 4; i++){
66         for(j = 0; j < 3; j++){
67             for(k = 0; k < 2; k++){
68                 g_assert(!ms3d[i][j][k]);
69                 ms3d[i][j][k] = i+j+k;
70                 }
71             }
72         }
73     for(i = 0; i < 4; i++){
74         for(j = 0; j < 3; j++){
75             g_print(" {");
76             for(k = 0; k < 2; k++){
77                 g_print("[%2d]", ms3d[i][j][k]);
78                 }
79             g_print("}");
80             }
81         g_print("\n");
82         }
83     g_print("\n");
84     g_free(ms3d);
85     /**/
86     g_message("testing 4d matrix routines on gshorts\n");
87     ms4d = (gshort****)Matrix4d_create(5, 4, 3, 2, sizeof(gshort));
88     for(i = 0; i < 5; i++){
89         for(j = 0; j < 4; j++){
90             for(k = 0; k < 3; k++){
91                 for(l = 0; l < 2; l++){
92                     g_assert(!ms4d[i][j][k][l]);
93                     ms4d[i][j][k][l] = i+j+k+l;
94                     }
95                 }
96             }
97         }
98     for(i = 0; i < 5; i++){
99         for(j = 0; j < 4; j++){
100             g_print(" {");
101             for(k = 0; k < 3; k++){
102                 for(l = 0; l < 2; l++){
103                     g_print("[%2d]", ms4d[i][j][k][l]);
104                     }
105                 g_print(",");
106                 }
107             g_print("}\n");
108             }
109         g_print("\n");
110         }
111     g_print("\n");
112     g_free(ms4d);
113     /**/
114     return 0;
115     }
116 
117