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