/******************************************************************* VECTORS.C Functions for working with one-dimensional arrays. Modified 10/17/87 ********************************************************************/ #include "common.h" #include "vector.h" #ifndef M_PI #define M_PI 3.14159265358979323846 #endif void scale_elements(float scales[], float array[], float out_array[], int n ) { int i; float aa, ss; float bf = BADFLOAT * .999999; for (i=0; i=bf) || (ss>=bf) ) out_array[i] = BADFLOAT; else out_array[i] = aa * ss; } } /********************************************* |---------|---------|---------|---------| start | end ar[0] ar[1] ...... ar[n-1] **********************************************/ void make_uniform_grid(double start, double end, int n, float array[]) { int i; double incr; double grid_val; incr = (end - start) / n; array[0] = grid_val = start; for (i = 1; i < n; i++) { grid_val += incr; array[i] = grid_val; } return; } void make_sinusoid(float array[], int n, double amp, double cycles, double degrees) { int i; double omega, phi; omega = 2 * M_PI * cycles / n; phi = degrees * M_PI / 180.0; for (i=0; i