aboutsummaryrefslogtreecommitdiff
path: root/math/gsurfit/gsstat.gx
blob: d701ea9e1c2db20ec03b8d7395a252b2db7eaae1 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc.

include <math/gsurfit.h>
$if (datatype == r)
include "gsurfitdef.h"
$else
include "dgsurfitdef.h"
$endif

# GSGET -- Procedure to fetch a gsurfit parameter
$if (datatype == r)
real procedure gsgetr (sf, parameter)
$else
double procedure dgsgetd (sf, parameter)
$endif

pointer	sf		# pointer to the surface fit
int	parameter	# parameter to be fetched

begin
	switch (parameter) {
	case GSXMAX:
	    return (GS_XMAX(sf))
	case GSXMIN:
	    return (GS_XMIN(sf))
	case GSYMAX:
	    return (GS_YMAX(sf))
	case GSYMIN:
	    return (GS_YMIN(sf))
	case GSXREF:
	    return (GS_XREF(sf))
	case GSYREF:
	    return (GS_YREF(sf))
	case GSZREF:
	    return (GS_ZREF(sf))
	}
end


# GSSET -- Procedure to set a gsurfit parameter
$if (datatype == r)
procedure gsset (sf, parameter, val)
$else
procedure dgsset (sf, parameter, val)
$endif

pointer	sf		# pointer to the surface fit
int	parameter	# parameter to be fetched
PIXEL	val		# value to set

begin
	switch (parameter) {
	case GSXREF:
	    GS_XREF(sf) = val
	case GSYREF:
	    GS_YREF(sf) = val
	case GSZREF:
	    GS_ZREF(sf) = val
	}
end


# GSGETI -- Procedure to fetch an integer parameter

$if (datatype == r)
int procedure gsgeti (sf, parameter)
$else
int procedure dgsgeti (sf, parameter)
$endif

pointer sf		# pointer to the surface fit
int	parameter	# integer parameter

begin
	switch (parameter) {
	case GSTYPE:
	    return (GS_TYPE(sf))
	case GSXORDER:
	    switch (GS_TYPE(sf)) {
	    case GS_LEGENDRE, GS_CHEBYSHEV, GS_POLYNOMIAL:
		return (GS_XORDER(sf))
	    }
	case GSYORDER:
	    switch (GS_TYPE(sf)) {
	    case GS_LEGENDRE, GS_CHEBYSHEV, GS_POLYNOMIAL:
	        return (GS_YORDER(sf))
	    }
	case GSXTERMS:
	    return (GS_XTERMS(sf))
	case GSNXCOEFF:
	    return (GS_NXCOEFF(sf))
	case GSNYCOEFF:
	    return (GS_NYCOEFF(sf))
	case GSNCOEFF:
	    return (GS_NCOEFF(sf))
	case GSNSAVE:
	    return (GS_SAVECOEFF+GS_NCOEFF(sf))
	}
end