diff options
| author | Mattias Andrée <maandree@kth.se> | 2017-07-16 00:59:42 +0200 |
|---|---|---|
| committer | Mattias Andrée <maandree@kth.se> | 2017-07-16 00:59:42 +0200 |
| commit | c216ac3049102422a41ba2c9476b0dbf4f3e4034 (patch) | |
| tree | 809793e1f01fafcb67422f654b6e9dbcab897660 /src/blind-matrix-rotate.c | |
| parent | Install the scripts (diff) | |
| download | blind-c216ac3049102422a41ba2c9476b0dbf4f3e4034.tar.gz blind-c216ac3049102422a41ba2c9476b0dbf4f3e4034.tar.bz2 blind-c216ac3049102422a41ba2c9476b0dbf4f3e4034.tar.xz | |
Use #include instead of #define
Signed-off-by: Mattias Andrée <maandree@kth.se>
Diffstat (limited to 'src/blind-matrix-rotate.c')
| -rw-r--r-- | src/blind-matrix-rotate.c | 98 |
1 files changed, 52 insertions, 46 deletions
diff --git a/src/blind-matrix-rotate.c b/src/blind-matrix-rotate.c index 486616e..f629df0 100644 --- a/src/blind-matrix-rotate.c +++ b/src/blind-matrix-rotate.c @@ -1,4 +1,5 @@ /* See LICENSE file for copyright and license details. */ +#ifndef TYPE #include "common.h" USAGE("[-cd]") @@ -6,52 +7,8 @@ USAGE("[-cd]") static int per_channel = 0; static int in_degrees = 0; -#define PROCESS(TYPE)\ - do {\ - typedef TYPE pixel_t[4];\ - pixel_t matrix[9];\ - pixel_t buf;\ - size_t i;\ - \ - for (i = 0; i < stream->n_chan; i++) {\ - matrix[0][i] = 1, matrix[1][i] = 0, matrix[2][i] = 0;\ - matrix[3][i] = 0, matrix[4][i] = 1, matrix[5][i] = 0;\ - matrix[6][i] = 0, matrix[7][i] = 0, matrix[8][i] = 1;\ - }\ - \ - while (eread_frame(stream, buf)) {\ - if (per_channel && in_degrees) {\ - for (i = 0; i < stream->n_chan; i++) {\ - matrix[4][i] = matrix[0][i] = degcos(buf[i]);\ - matrix[3][i] = -(matrix[1][i] = degsin(buf[i]));\ - }\ - } else if (per_channel) {\ - for (i = 0; i < stream->n_chan; i++) {\ - matrix[4][i] = matrix[0][i] = cos(buf[i]);\ - matrix[3][i] = -(matrix[1][i] = sin(buf[i]));\ - }\ - } else {\ - buf[1] *= buf[3];\ - if (in_degrees) {\ - matrix[4][0] = matrix[0][0] = degcos(buf[1]);\ - matrix[3][0] = -(matrix[1][0] = degsin(buf[1]));\ - } else {\ - matrix[4][0] = matrix[0][0] = cos(buf[1]);\ - matrix[3][0] = -(matrix[1][0] = sin(buf[1]));\ - }\ - for (i = 0; i < stream->n_chan; i++) {\ - matrix[0][i] = matrix[0][0];\ - matrix[1][i] = matrix[1][0];\ - matrix[3][i] = matrix[3][0];\ - matrix[4][i] = matrix[4][0];\ - }\ - }\ - ewriteall(STDOUT_FILENO, matrix, sizeof(matrix), "<stdout>");\ - }\ - } while (0) - -static void process_lf(struct stream *stream) { PROCESS(double); } -static void process_f(struct stream *stream) { PROCESS(float); } +#define FILE "blind-matrix-rotate.c" +#include "define-functions.h" int main(int argc, char *argv[]) @@ -93,3 +50,52 @@ main(int argc, char *argv[]) process(&stream); return 0; } + +#else + +static void +PROCESS(struct stream *stream) +{ + typedef TYPE pixel_t[4]; + pixel_t matrix[9]; + pixel_t buf; + size_t i; + + for (i = 0; i < stream->n_chan; i++) { + matrix[0][i] = 1, matrix[1][i] = 0, matrix[2][i] = 0; + matrix[3][i] = 0, matrix[4][i] = 1, matrix[5][i] = 0; + matrix[6][i] = 0, matrix[7][i] = 0, matrix[8][i] = 1; + } + + while (eread_frame(stream, buf)) { + if (per_channel && in_degrees) { + for (i = 0; i < stream->n_chan; i++) { + matrix[4][i] = matrix[0][i] = degcos(buf[i]); + matrix[3][i] = -(matrix[1][i] = degsin(buf[i])); + } + } else if (per_channel) { + for (i = 0; i < stream->n_chan; i++) { + matrix[4][i] = matrix[0][i] = cos(buf[i]); + matrix[3][i] = -(matrix[1][i] = sin(buf[i])); + } + } else { + buf[1] *= buf[3]; + if (in_degrees) { + matrix[4][0] = matrix[0][0] = degcos(buf[1]); + matrix[3][0] = -(matrix[1][0] = degsin(buf[1])); + } else { + matrix[4][0] = matrix[0][0] = cos(buf[1]); + matrix[3][0] = -(matrix[1][0] = sin(buf[1])); + } + for (i = 0; i < stream->n_chan; i++) { + matrix[0][i] = matrix[0][0]; + matrix[1][i] = matrix[1][0]; + matrix[3][i] = matrix[3][0]; + matrix[4][i] = matrix[4][0]; + } + } + ewriteall(STDOUT_FILENO, matrix, sizeof(matrix), "<stdout>"); + } +} + +#endif |
