From fa080de7afc95aa1c19a6e6fc0e0708ced2eadc4 Mon Sep 17 00:00:00 2001 From: Joseph Hunkeler Date: Wed, 8 Jul 2015 20:46:52 -0400 Subject: Initial commit --- math/gsurfit/gs_b1evalr.x | 85 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 math/gsurfit/gs_b1evalr.x (limited to 'math/gsurfit/gs_b1evalr.x') diff --git a/math/gsurfit/gs_b1evalr.x b/math/gsurfit/gs_b1evalr.x new file mode 100644 index 00000000..a313a043 --- /dev/null +++ b/math/gsurfit/gs_b1evalr.x @@ -0,0 +1,85 @@ +# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. + +# GS_B1POL -- Procedure to evaluate all the non-zero polynomial functions +# for a single point and given order. + +procedure rgs_b1pol (x, order, k1, k2, basis) + +real x # data point +int order # order of polynomial, order = 1, constant +real k1, k2 # nomalizing constants, dummy in this case +real basis[ARB] # basis functions + +int i + +begin + basis[1] = 1. + if (order == 1) + return + + basis[2] = x + if (order == 2) + return + + do i = 3, order + basis[i] = x * basis[i-1] + +end + +# GS_B1LEG -- Procedure to evaluate all the non-zero Legendre functions for +# a single point and given order. + +procedure rgs_b1leg (x, order, k1, k2, basis) + +real x # data point +int order # order of polynomial, order = 1, constant +real k1, k2 # normalizing constants +real basis[ARB] # basis functions + +int i +real ri, xnorm + +begin + basis[1] = 1. + if (order == 1) + return + + xnorm = (x + k1) * k2 + basis[2] = xnorm + if (order == 2) + return + + do i = 3, order { + ri = i + basis[i] = ((2. * ri - 3.) * xnorm * basis[i-1] - + (ri - 2.) * basis[i-2]) / (ri - 1.) + } +end + + +# GS_B1CHEB -- Procedure to evaluate all the non zero Chebyshev function +# for a given x and order. + +procedure rgs_b1cheb (x, order, k1, k2, basis) + +real x # number of data points +int order # order of polynomial, 1 is a constant +real k1, k2 # normalizing constants +real basis[ARB] # array of basis functions + +int i +real xnorm + +begin + basis[1] = 1. + if (order == 1) + return + + xnorm = (x + k1) * k2 + basis[2] = xnorm + if (order == 2) + return + + do i = 3, order + basis[i] = 2. * xnorm * basis[i-1] - basis[i-2] +end -- cgit