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/gssaver.x | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 math/gsurfit/gssaver.x (limited to 'math/gsurfit/gssaver.x') diff --git a/math/gsurfit/gssaver.x b/math/gsurfit/gssaver.x new file mode 100644 index 00000000..b4f5bf32 --- /dev/null +++ b/math/gsurfit/gssaver.x @@ -0,0 +1,42 @@ +# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. + +include +include "gsurfitdef.h" + +# GSSAVE -- Procedure to save the surface fit for later use by the +# evaluate routines. After a call to GSSAVE the first eight elements +# of fit contain the surface type, xorder (or number of polynomial pieces +# in x), yorder (or the number of polynomial pieces in y), xterms, xmin, +# xmax, ymin, and ymax. The remaining spaces are filled by the GS_NCOEFF(sf) +# coefficients. + +procedure gssave (sf, fit) + +pointer sf # pointer to the surface descriptor +real fit[ARB] # array for storing fit + +begin + # get the surface parameters + if (sf == NULL) + return + + # order is surface type dependent + switch (GS_TYPE(sf)) { + case GS_LEGENDRE, GS_CHEBYSHEV, GS_POLYNOMIAL: + GS_SAVEXORDER(fit) = GS_XORDER(sf) + GS_SAVEYORDER(fit) = GS_YORDER(sf) + default: + call error (0, "GSSAVE: Unknown surface type.") + } + + # save remaining parameters + GS_SAVETYPE(fit) = GS_TYPE(sf) + GS_SAVEXMIN(fit) = GS_XMIN(sf) + GS_SAVEXMAX(fit) = GS_XMAX(sf) + GS_SAVEYMIN(fit) = GS_YMIN(sf) + GS_SAVEYMAX(fit) = GS_YMAX(sf) + GS_SAVEXTERMS(fit) = GS_XTERMS(sf) + + # save the coefficients + call amovr (COEFF(GS_COEFF(sf)), fit[GS_SAVECOEFF+1], GS_NCOEFF(sf)) +end -- cgit