home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / misc / volume21 / cloops / part01 / signal.c < prev    next >
C/C++ Source or Header  |  1991-07-25  |  3KB  |  149 lines

  1. /*
  2.  * This file is part of the Livermore Loops transliteration into C.
  3.  * Copyright (C) 1991 by Martin Fouts
  4.  *
  5.  * This program is free software; you can redistribute it and/or modify
  6.  * it under the terms of the GNU General Public License as published by
  7.  * the Free Software Foundation; either version 1, or (at your option)
  8.  * any later version.
  9.  *
  10.  * This program is distributed in the hope that it will be useful,
  11.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  12.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13.  * GNU General Public License for more details.
  14.  *
  15.  * You should have received a copy of the GNU General Public License
  16.  * along with this program; if not, write to the Free Software
  17.  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  18.  */
  19.  
  20. #include "types.h"
  21. #include "externs.h"
  22.  
  23. static Float fuzz, buzz, fizz, biased, scaled;
  24.  
  25. void newbuzz()
  26. {
  27.   fuzz = 1.2345e-3;
  28.   buzz = 1.0 + fuzz;
  29.   fizz = 1.1 * fuzz;
  30. }
  31.  
  32. Float buzzer()
  33. {
  34.   /* To make C 'Very Much Like' Fortran */ /*GAG*/
  35.  
  36.   buzz = (Float) (( (Float) (1.0 - fuzz)) * buzz) + fuzz;
  37.   fuzz = -fuzz;
  38.   return (Float) ((Float) ( (Float)(buzz - fizz) - (Float) biased) * scaled);
  39. }
  40.  
  41. Void lsignal0(skale,bias)
  42. Float skale, bias;
  43. {
  44.  
  45. #ifndef BUZZ
  46.   newbuzz();
  47. #endif
  48.   scaled= skale;
  49.   biased= bias;
  50.   a11 = buzzer();
  51.   a12 = buzzer();
  52.   a13 = buzzer();
  53.   a21 = buzzer();
  54.   a22 = buzzer();
  55.   a23 = buzzer();
  56.   a31 = buzzer();
  57.   a32 = buzzer();
  58.   a33 = buzzer();
  59.   ar = buzzer();
  60.   br = buzzer();
  61.   c0 = buzzer();
  62.   cr = buzzer();
  63.   di = buzzer();
  64.   dk = buzzer();
  65.   dm22 = buzzer();
  66.   dm23 = buzzer();
  67.   dm24 = buzzer();
  68.   dm25 = buzzer();
  69.   dm26 = buzzer();
  70.   dm27 = buzzer();
  71.   dm28 = buzzer();
  72.   dn = buzzer();
  73.   e3 = buzzer();
  74.   e6 = buzzer();
  75.   expmax = buzzer();
  76.   flx = buzzer();
  77.   q = buzzer();
  78.   qa = buzzer();
  79.   r = buzzer();
  80.   ri = buzzer();
  81.   s = buzzer();
  82.   scale = buzzer();
  83.   sig = buzzer();
  84.   stb5 = buzzer();
  85.   t = buzzer();
  86.   xnc = buzzer();
  87.   xnei = buzzer();
  88.   xnm = buzzer();
  89. }
  90.  
  91.  
  92. Void lsignal1(v,scale,bias,n)    /* name changed to lsignal to avoid . . . */
  93. Float v[], scale, bias;        /* name conflict under unix. */
  94. int n;
  95. {
  96.   Int k;
  97.  
  98.   scaled= scale;
  99.   biased= bias;
  100. #ifndef BUZZ
  101.   newbuzz();
  102. #endif
  103.   for (k = 0; k < n; k ++) {
  104.     buzz= (1.0 - fuzz)*buzz +fuzz;
  105.     fuzz= -fuzz;
  106.     v[k]=((buzz- fizz) -biased)*scaled;
  107.   }
  108.   return;
  109. }
  110.  
  111. Void lsignal2(v,scale,bias,n1,n2)
  112. Float v[], scale, bias;
  113. int n1, n2;
  114. {
  115.   Int k;
  116.  
  117.   scaled= scale;
  118.   biased= bias;
  119. #ifndef BUZZ
  120.   newbuzz();
  121. #endif
  122.   for (k = 0; k < n1 * n2; k ++) {
  123.     buzz= (1.0 - fuzz)*buzz +fuzz;
  124.     fuzz= -fuzz;
  125.     v[k]=((buzz- fizz) -biased)*scaled;
  126.   }
  127.   return;
  128. }
  129.  
  130. Void lsignal3(v,scale,bias,n1,n2,n3)
  131. Float v[], scale, bias;    
  132. int n1, n2, n3;
  133. {
  134.   Int k;
  135.  
  136.   scaled= scale;
  137.   biased= bias;
  138. #ifndef BUZZ
  139.   newbuzz();
  140. #endif
  141.   for (k = 0; k < n1 * n2 * n3; k ++) {
  142.     buzz= (1.0 - fuzz)*buzz +fuzz;
  143.     fuzz= -fuzz;
  144.     v[k]=((buzz- fizz) -biased)*scaled;
  145.   }
  146.   return;
  147. }
  148.  
  149.