From: Kevin M. Rosenberg Date: Tue, 9 May 2000 14:52:27 +0000 (+0000) Subject: r45: added sqr and sqrt functions X-Git-Tag: debian-4.5.3-3~972 X-Git-Url: http://git.kpe.io/?p=ctsim.git;a=commitdiff_plain;h=76fba74c85daa8a2494c3aa10046c77683e8e710 r45: added sqr and sqrt functions --- diff --git a/src/sdf-1.c b/src/sdf-1.c index d21052d..b95deb8 100644 --- a/src/sdf-1.c +++ b/src/sdf-1.c @@ -2,8 +2,11 @@ ** This is part of the CTSim program ** Copyright (C) 1983-2000 Kevin Rosenberg ** -** $Id: sdf-1.c,v 1.3 2000/05/08 20:02:32 kevin Exp $ +** $Id: sdf-1.c,v 1.4 2000/05/09 14:52:27 kevin Exp $ ** $Log: sdf-1.c,v $ +** Revision 1.4 2000/05/09 14:52:27 kevin +** added sqr and sqrt functions +** ** Revision 1.3 2000/05/08 20:02:32 kevin ** ANSI C changes ** @@ -34,7 +37,7 @@ #include "ct.h" -enum {O_LOG, O_EXP, O_INVERT, O_VERBOSE, O_HELP, O_VERSION}; +enum {O_LOG, O_EXP, O_SQRT, O_SQR, O_INVERT, O_VERBOSE, O_HELP, O_VERSION}; static struct option my_options[] = { @@ -42,6 +45,8 @@ static struct option my_options[] = {"verbose", 0, 0, O_VERBOSE}, {"log", 0, 0, O_LOG}, {"exp", 0, 0, O_EXP}, + {"sqr", 0, 0, O_SQR}, + {"sqrt", 0, 0, O_SQRT}, {"help", 0, 0, O_HELP}, {"version", 0, 0, O_VERSION}, {0, 0, 0, 0} @@ -56,6 +61,8 @@ usage (const char *program) fprintf(stdout, " --invert Invert image\n"); fprintf(stdout, " --log Natural logrithm of image\n"); fprintf(stdout, " --exp Natural exponential of image\n"); + fprintf(stdout, " --sqr Square of image\n"); + fprintf(stdout, " --sqrt Square root of image\n"); fprintf(stdout, " --verbose Verbose modem\n"); fprintf(stdout, " --version Print version\n"); fprintf(stdout, " --help Print this help message\n"); @@ -73,6 +80,8 @@ main (int argc, char *const argv[]) int opt_invert = 0; int opt_log = 0; int opt_exp = 0; + int opt_sqr = 0; + int opt_sqrt = 0; while (1) { @@ -89,6 +98,12 @@ main (int argc, char *const argv[]) case O_LOG: opt_log = 1; break; + case O_SQR: + opt_sqr = 1; + break; + case O_SQRT: + opt_sqrt = 1; + break; case O_EXP: opt_exp = 1; break; @@ -130,18 +145,28 @@ main (int argc, char *const argv[]) if (opt_invert) { for (ix = 0; ix < im_in->nx; ix++) - for (iy = 0; iy < im_in->ny; iy++) - im_out->v[ix][iy] = - im_in->v[ix][iy]; + for (iy = 0; iy < im_in->ny; iy++) + im_out->v[ix][iy] = - im_in->v[ix][iy]; } if (opt_log) { for (ix = 0; ix < im_in->nx; ix++) - for (iy = 0; iy < im_in->ny; iy++) - im_out->v[ix][iy] = log (im_in->v[ix][iy]); + for (iy = 0; iy < im_in->ny; iy++) + im_out->v[ix][iy] = log (im_in->v[ix][iy]); } if (opt_exp) { for (ix = 0; ix < im_in->nx; ix++) - for (iy = 0; iy < im_in->ny; iy++) - im_out->v[ix][iy] = exp (im_in->v[ix][iy]); + for (iy = 0; iy < im_in->ny; iy++) + im_out->v[ix][iy] = exp (im_in->v[ix][iy]); + } + if (opt_sqr) { + for (ix = 0; ix < im_in->nx; ix++) + for (iy = 0; iy < im_in->ny; iy++) + im_out->v[ix][iy] = im_in->v[ix][iy] * im_in->v[ix][iy]; + } + if (opt_sqrt) { + for (ix = 0; ix < im_in->nx; ix++) + for (iy = 0; iy < im_in->ny; iy++) + im_out->v[ix][iy] = sqrt (im_in->v[ix][iy]); } image_save(im_out);