GCC Code Coverage Report
Directory: ./ Exec Total Coverage
File: src/gage/print.c Lines: 0 89 0.0 %
Date: 2017-05-26 Branches: 0 166 0.0 %

Line Branch Exec Source
1
/*
2
  Teem: Tools to process and visualize scientific data and images             .
3
  Copyright (C) 2013, 2012, 2011, 2010, 2009  University of Chicago
4
  Copyright (C) 2008, 2007, 2006, 2005  Gordon Kindlmann
5
  Copyright (C) 2004, 2003, 2002, 2001, 2000, 1999, 1998  University of Utah
6
7
  This library is free software; you can redistribute it and/or
8
  modify it under the terms of the GNU Lesser General Public License
9
  (LGPL) as published by the Free Software Foundation; either
10
  version 2.1 of the License, or (at your option) any later version.
11
  The terms of redistributing and/or modifying this software also
12
  include exceptions to the LGPL that facilitate static linking.
13
14
  This library is distributed in the hope that it will be useful,
15
  but WITHOUT ANY WARRANTY; without even the implied warranty of
16
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
17
  Lesser General Public License for more details.
18
19
  You should have received a copy of the GNU Lesser General Public License
20
  along with this library; if not, write to Free Software Foundation, Inc.,
21
  51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
22
*/
23
24
#include "gage.h"
25
#include "privateGage.h"
26
27
void
28
_gagePrint_off(FILE *file, gageContext *ctx) {
29
  int i, fd;
30
  unsigned int *off;
31
32
  fd = 2*ctx->radius;
33
  off = ctx->off;
34
  fprintf(file, "off[]:\n");
35
  switch(fd) {
36
  case 2:
37
    fprintf(file, "% 6d   % 6d\n", off[6], off[7]);
38
    fprintf(file, "   % 6d   % 6d\n\n", off[4], off[5]);
39
    fprintf(file, "% 6d   % 6d\n", off[2], off[3]);
40
    fprintf(file, "   % 6d   % 6d\n", off[0], off[1]);
41
    break;
42
  case 4:
43
    for (i=3; i>=0; i--) {
44
      fprintf(file, "% 6d   % 6d   % 6d   % 6d\n",
45
              off[12+16*i], off[13+16*i],
46
              off[14+16*i], off[15+16*i]);
47
      fprintf(file, "   % 6d  %c% 6d   % 6d%c   % 6d\n",
48
              off[ 8+16*i], (i==1||i==2)?'\\':' ',
49
              off[ 9+16*i], off[10+16*i], (i==1||i==2)?'\\':' ',
50
              off[11+16*i]);
51
      fprintf(file, "      % 6d  %c% 6d   % 6d%c   % 6d\n",
52
              off[ 4+16*i], (i==1||i==2)?'\\':' ',
53
              off[ 5+16*i], off[ 6+16*i], (i==1||i==2)?'\\':' ',
54
              off[ 7+16*i]);
55
      fprintf(file, "         % 6d   % 6d   % 6d   % 6d\n",
56
              off[ 0+16*i], off[ 1+16*i],
57
              off[ 2+16*i], off[ 3+16*i]);
58
      if (i) fprintf(file, "\n");
59
    }
60
    break;
61
  default:
62
    for (i=0; i<fd*fd*fd; i++) {
63
      fprintf(file, "  off[% 3d,% 3d,% 3d] = % 6d\n",
64
              i%fd, (i/fd)%fd, i/(fd*fd), off[i]);
65
    }
66
    break;
67
  }
68
}
69
70
#define PRINT_2(NN,C)                                  \
71
   fw = fw##NN##C;                                     \
72
   fprintf(file, " --" #NN "-->% 15.7f   % 15.7f\n", \
73
          (float)fw[0], (float)fw[1])
74
#define PRINT_4(NN,C)                                                      \
75
   fw = fw##NN##C;                                                         \
76
   fprintf(file, " --" #NN "-->% 15.7f   % 15.7f   % 15.7f   % 15.7f\n", \
77
          (float)fw[0], (float)fw[1], (float)fw[2], (float)fw[3])
78
#define PRINT_N(NN,C)                                   \
79
   fw = fw##NN##C;                                      \
80
   fprintf(file, " --" #NN "--> \n");                 \
81
   for (i=0; i<fd; i++)                                 \
82
     fprintf(file, "     % 5d : % 15.7f\n", i, (float)fw[i])
83
84
#define PRINTALL(HOW,C)                                 \
85
   if (ctx->needK[gageKernel00]) { HOW(00,C); }         \
86
   if (ctx->needK[gageKernel10]) { HOW(10,C); }         \
87
   if (ctx->needK[gageKernel11]) { HOW(11,C); }         \
88
   if (ctx->needK[gageKernel20]) { HOW(20,C); }         \
89
   if (ctx->needK[gageKernel21]) { HOW(21,C); }         \
90
   if (ctx->needK[gageKernel22]) { HOW(22,C); }
91
92
void
93
_gagePrint_fslw(FILE *file, gageContext *ctx) {
94
  int i, fd;
95
  double *fslx, *fsly, *fslz, *fw,
96
    *fw000, *fw001, *fw002,
97
    *fw100, *fw101, *fw102,
98
    *fw110, *fw111, *fw112,
99
    *fw200, *fw201, *fw202,
100
    *fw210, *fw211, *fw212,
101
    *fw220, *fw221, *fw222;
102
103
  /* float *p; */
104
105
  fd = 2*ctx->radius;
106
  fslx = ctx->fsl + fd*0;
107
  fsly = ctx->fsl + fd*1;
108
  fslz = ctx->fsl + fd*2;
109
  fw000 = ctx->fw + 0 + fd*(0 + 3*gageKernel00);
110
  fw001 = ctx->fw + 0 + fd*(1 + 3*gageKernel00);
111
  fw002 = ctx->fw + 0 + fd*(2 + 3*gageKernel00);
112
  fw100 = ctx->fw + 0 + fd*(0 + 3*gageKernel10);
113
  fw101 = ctx->fw + 0 + fd*(1 + 3*gageKernel10);
114
  fw102 = ctx->fw + 0 + fd*(2 + 3*gageKernel10);
115
  fw110 = ctx->fw + 0 + fd*(0 + 3*gageKernel11);
116
  fw111 = ctx->fw + 0 + fd*(1 + 3*gageKernel11);
117
  fw112 = ctx->fw + 0 + fd*(2 + 3*gageKernel11);
118
  fw200 = ctx->fw + 0 + fd*(0 + 3*gageKernel20);
119
  fw201 = ctx->fw + 0 + fd*(1 + 3*gageKernel20);
120
  fw202 = ctx->fw + 0 + fd*(2 + 3*gageKernel20);
121
  fw210 = ctx->fw + 0 + fd*(0 + 3*gageKernel21);
122
  fw211 = ctx->fw + 0 + fd*(1 + 3*gageKernel21);
123
  fw212 = ctx->fw + 0 + fd*(2 + 3*gageKernel21);
124
  fw220 = ctx->fw + 0 + fd*(0 + 3*gageKernel22);
125
  fw221 = ctx->fw + 0 + fd*(1 + 3*gageKernel22);
126
  fw222 = ctx->fw + 0 + fd*(2 + 3*gageKernel22);
127
128
  fprintf(file, "fsl -> fw: \n");
129
  switch(fd) {
130
  case 2:
131
    fprintf(file, "x[]: % 15.7f   % 15.7f\n",
132
            (float)fslx[0], (float)fslx[1]);
133
    PRINTALL(PRINT_2, 0);
134
    fprintf(file, "y[]: % 15.7f   % 15.7f\n",
135
            (float)fsly[0], (float)fsly[1]);
136
    PRINTALL(PRINT_2, 1);
137
    fprintf(file, "z[]: % 15.7f   % 15.7f\n",
138
            (float)fslz[0], (float)fslz[1]);
139
    PRINTALL(PRINT_2, 2);
140
    break;
141
  case 4:
142
    fprintf(file, "x[]: % 15.7f  % 15.7f  % 15.7f  % 15.7f\n",
143
            (float)fslx[0], (float)fslx[1], (float)fslx[2], (float)fslx[3]);
144
    PRINTALL(PRINT_4, 0);
145
    fprintf(file, "y[]: % 15.7f  % 15.7f  % 15.7f  % 15.7f\n",
146
            (float)fsly[0], (float)fsly[1], (float)fsly[2], (float)fsly[3]);
147
    PRINTALL(PRINT_4, 1);
148
    fprintf(file, "z[]: % 15.7f  % 15.7f  % 15.7f  % 15.7f\n",
149
            (float)fslz[0], (float)fslz[1], (float)fslz[2], (float)fslz[3]);
150
    PRINTALL(PRINT_4, 2);
151
    break;
152
  default:
153
    fprintf(file, "x[]:\n");
154
    for (i=0; i<fd; i++)
155
      fprintf(file, "     % 5d : % 15.7f\n", i, (float)fslx[i]);
156
    PRINTALL(PRINT_N, 0);
157
    fprintf(file, "y[]:\n");
158
    for (i=0; i<fd; i++)
159
      fprintf(file, "     % 5d : % 15.7f\n", i, (float)fsly[i]);
160
    PRINTALL(PRINT_N, 1);
161
    fprintf(file, "z[]:\n");
162
    for (i=0; i<fd; i++)
163
      fprintf(file, "     % 5d : % 15.7f\n", i, (float)fslz[i]);
164
    PRINTALL(PRINT_N, 2);
165
    break;
166
  }
167
  return;
168
}
169
170
void
171
gageQueryPrint(FILE *file, const gageKind *kind, gageQuery query) {
172
  int ii;
173
174
  fprintf(file, "%s query = ...\n", kind->name);
175
  ii = kind->itemMax+1;
176
  do {
177
    ii--;
178
    if (GAGE_QUERY_ITEM_TEST(query, ii)) {
179
      fprintf(file, "    %3d: %s\n", ii, airEnumStr(kind->enm, ii));
180
    }
181
  } while (ii);
182
}