aboutsummaryrefslogtreecommitdiff
path: root/noao/digiphot/photcal/lib/prstruct.h
diff options
context:
space:
mode:
authorJoe Hunkeler <jhunkeler@gmail.com>2015-08-11 16:51:37 -0400
committerJoe Hunkeler <jhunkeler@gmail.com>2015-08-11 16:51:37 -0400
commit40e5a5811c6ffce9b0974e93cdd927cbcf60c157 (patch)
tree4464880c571602d54f6ae114729bf62a89518057 /noao/digiphot/photcal/lib/prstruct.h
downloadiraf-osx-40e5a5811c6ffce9b0974e93cdd927cbcf60c157.tar.gz
Repatch (from linux) of OSX IRAF
Diffstat (limited to 'noao/digiphot/photcal/lib/prstruct.h')
-rw-r--r--noao/digiphot/photcal/lib/prstruct.h344
1 files changed, 344 insertions, 0 deletions
diff --git a/noao/digiphot/photcal/lib/prstruct.h b/noao/digiphot/photcal/lib/prstruct.h
new file mode 100644
index 00000000..f5a25e73
--- /dev/null
+++ b/noao/digiphot/photcal/lib/prstruct.h
@@ -0,0 +1,344 @@
+# PRSTRUCT.H -- Parser symbol table structure.
+
+
+# Pointer access
+define MEMP Memi
+
+
+# ----------------------------------------------------------------------
+# Parser symbol structure. The symbol table is handled by the SYMTAB
+# procedures. The following is the definition of the structure associated
+# with each identifier in the table. The following diagram shows graphically
+# this structure:
+#
+# offset
+# +---------------------------------------+
+# 0 | symbol type |
+# +---------------------------------------+
+# 1 | symbol number |
+# +---------------------------------------+
+# 2 | substructure pointer | ->
+# +---------------------------------------+
+# 3 next free location
+#
+
+# Symbol structure length
+define LEN_PSYM 3
+
+# Symbol structure definition
+define PSYM_TYPE Memi[$1+0] # type
+define PSYM_NUM Memi[$1+1] # sequential number
+define PSYM_SUB MEMP[$1+2] # symbol substructure
+# next free location ($1 + 3) == LEN_PSYM !!!
+
+
+# ----------------------------------------------------------------------
+# Input column substructure. This substructure is supported for catalog
+# and observation input columns (PTY_CATCOL and PTY_OBSCOL). The following
+# diagram shows graphically this structure:
+#
+# offset
+# +---------------------------------------+
+# 0 | input column number |
+# +---------------------------------------+
+# 1 | error column number |
+# +---------------------------------------+
+# 2 | weight column number |
+# +---------------------------------------+
+# 3 | spare column flag |
+# +---------------------------------------+
+# 4 next free location
+#
+
+# Input column substructure length.
+define LEN_PINP 4
+
+# Input column substructure definition
+define PINP_COL Memi[$1+0] # input column
+define PINP_ERRCOL Memi[$1+1] # error column
+define PINP_WTSCOL Memi[$1+2] # weight column
+define PINP_SPARE Memi[$1+3] # spare flag (YES/NO)
+# next free location ($1 + 4) == LEN_PINP !!!
+
+
+# ----------------------------------------------------------------------
+# Fitting parameter substructure. This substructure is supported for
+# fitting and constant parameters (PTY_FITPAR and PTY_CONST). The
+# following diagram shows graphically this structure:
+#
+# offset
+# +---------------------------------------+
+# 0 | parameter value |
+# +---------------------------------------+
+# 1 | parameter delta |
+# +---------------------------------------+
+# 2 next free location
+#
+
+# Fitting parameter substructure length.
+define LEN_PFIT 2
+
+# Fitting parameter substructure definition
+define PFIT_VALUE Memr[P2R($1+0)] # parameter value
+define PFIT_DELTA Memr[P2R($1+1)] # parameter delta
+# next free location ($1 + 2) == LEN_PFIT !!!
+
+
+# ----------------------------------------------------------------------
+# Set equation substructure. This substructure is supported for set
+# equation symbols (PTY_SETEQ). The length of this substructure is
+# fixed.
+#
+# offset
+# +---------------------------------------+
+# 0 | set equation string offset |
+# +---------------------------------------+
+# 1 | error equation string offset |
+# +---------------------------------------+
+# 2 | min error equation string offset |
+# +---------------------------------------+
+# 3 | max error equation string offset |
+# +---------------------------------------+
+# 4 | weight equation string offset |
+# +---------------------------------------+
+# 5 | min weight equation string offset |
+# +---------------------------------------+
+# 6 | max weight equation string offset |
+# +---------------------------------------+
+# 7 | weight equation string offset |
+# +---------------------------------------+
+# 8 | error equation code pointer | ->
+# +---------------------------------------+
+# 9 | min error equation code pointer | ->
+# +---------------------------------------+
+# 10 | max error equation code pointer | ->
+# +---------------------------------------+
+# 11 | weight equation code pointer | ->
+# +---------------------------------------+
+# 12 | min weight equation code pointer | ->
+# +---------------------------------------+
+# 13 | max weight equation code pointer | ->
+# +---------------------------------------+
+# 14 next free location
+#
+
+# Set equation substructure length.
+define LEN_PSEQ 14
+
+# Set equation substructure definition
+define PSEQ_EQ Memi[$1 + 0] # equation string offset
+define PSEQ_ERROR Memi[$1 + 1] # error equation string offset
+define PSEQ_ERRMIN Memi[$1 + 2] # min error equation string offset
+define PSEQ_ERRMAX Memi[$1 + 3] # max error equation string offset
+define PSEQ_WEIGHT Memi[$1 + 4] # weight equation string offset
+define PSEQ_WTSMIN Memi[$1 + 5] # min weight equation string offset
+define PSEQ_WTSMAX Memi[$1 + 6] # max weight equation string offset
+define PSEQ_RPNEQ MEMP[$1 + 7] # equation code
+define PSEQ_RPNERROR MEMP[$1 + 8] # error equation code
+define PSEQ_RPNERRMIN MEMP[$1 + 9] # min error equation code
+define PSEQ_RPNERRMAX MEMP[$1 + 10] # max error equation code
+define PSEQ_RPNWEIGHT MEMP[$1 + 11] # weigt equation code
+define PSEQ_RPNWTSMIN MEMP[$1 + 12] # min weight equation code
+define PSEQ_RPNWTSMAX MEMP[$1 + 13] # max weight equation code
+# next free location ($1 + 14) == LEN_PSEQ !!!
+
+
+# ----------------------------------------------------------------------
+# Transformation equation substructure. This substructure is supported
+# for transformation equation symbols (PTY_TRNEQ). The length of this
+# substructure is variable, and depends on the total number of variables
+# (nvar) and parameters (npar) in the equation. The following diagram
+# shows graphically this structure:
+#
+# offset
+# +---------------------------------------+
+# 0 | number of ref. catalog var. = nrcat |
+# +---------------------------------------+
+# 1 | number of ref. obs. var. = nrobs |
+# +---------------------------------------+
+# 2 | total number of ref. var. = nrvar |
+# +---------------------------------------+
+# 3 | number of fit catalog var. = nfcat |
+# +---------------------------------------+
+# 4 | number of fit obs. var. = nfobs |
+# +---------------------------------------+
+# 5 | total number of fit var. = nfvar |
+# +---------------------------------------+
+# 6 | total number of variables = nvar |
+# +---------------------------------------+
+# 7 | ref. variable symbol offsets (nrvar) |
+# | ... |
+# | ... |
+# +---------------------------------------+
+# 1 * nrvar + 7 | ref. variable counters (nrvar) |
+# | ... |
+# | ... |
+# +---------------------------------------+
+# 2 * nrvar + 7 | fit variable symbol offsets (nfvar) |
+# | ... |
+# | ... |
+# +---------------------------------------+
+# 2 * nrvar + 1 * nfvar + 7 | fit variable counters (nfvar) |
+# | ... |
+# | ... |
+# +---------------------------------------+
+# 2 * nvar + 7 | number of parameters = npar |
+# +---------------------------------------+
+# 2 * nvar + 8 | number of fitting parameters |
+# +---------------------------------------+
+# 2 * nvar + 9 | parameter symbol offsets (npar) |
+# | ... |
+# | ... |
+# +---------------------------------------+
+# 2 * nvar + 1 * npar + 9 | parameter values (npar) |
+# | ... |
+# | ... |
+# +---------------------------------------+
+# 2 * nvar + 2 * npar + 9 | parameter list (npar) |
+# | ... |
+# | ... |
+# +---------------------------------------+
+# 2 * nvar + 3 * npar + 9 | fit equation string offset |
+# +---------------------------------------+
+# 2 * nvar + 3 * npar + 10 | reference equation string offset |
+# +---------------------------------------+
+# 2 * nvar + 3 * npar + 11 | error equation string offset |
+# +---------------------------------------+
+# 2 * nvar + 3 * npar + 12 | min error equation string offset |
+# +---------------------------------------+
+# 2 * nvar + 3 * npar + 13 | max error equation string offset |
+# +---------------------------------------+
+# 2 * nvar + 3 * npar + 14 | weight equation string offset |
+# +---------------------------------------+
+# 2 * nvar + 3 * npar + 15 | min weight equation string offset |
+# +---------------------------------------+
+# 2 * nvar + 3 * npar + 16 | max weight equation string offset |
+# +---------------------------------------+
+# 2 * nvar + 3 * npar + 17 | X plot equation string offset |
+# +---------------------------------------+
+# 2 * nvar + 3 * npar + 18 | Y plot equation string offset |
+# +---------------------------------------+
+# 2 * nvar + 3 * npar + 19 | derivative equation offsets (npar) |
+# | ... |
+# | ... |
+# +---------------------------------------+
+# 2 * nvar + 4 * npar + 19 | fit equation code pointer | ->
+# +---------------------------------------+
+# 2 * nvar + 4 * npar + 20 | reference equation code pointer | ->
+# +---------------------------------------+
+# 2 * nvar + 4 * npar + 21 | error equation code pointer | ->
+# +---------------------------------------+
+# 2 * nvar + 4 * npar + 22 | min error equation code pointer | ->
+# +---------------------------------------+
+# 2 * nvar + 4 * npar + 23 | max error equation code pointer | ->
+# +---------------------------------------+
+# 2 * nvar + 4 * npar + 24 | weight equation code pointer | ->
+# +---------------------------------------+
+# 2 * nvar + 4 * npar + 25 | min weight equation code pointer | ->
+# +---------------------------------------+
+# 2 * nvar + 4 * npar + 26 | max weight equation code pointer | ->
+# +---------------------------------------+
+# 2 * nvar + 4 * npar + 27 | X plot equation code pointer | ->
+# +---------------------------------------+
+# 2 * nvar + 4 * npar + 28 | Y plot equation code pointer | ->
+# +---------------------------------------+
+# 2 * nvar + 4 * npar + 29 | deriv. equation code pointers (npar) | ->
+# | ... | ->
+# | ... | ->
+# +---------------------------------------+
+# 2 * nvar + 5 * npar + 29 next free location
+#
+
+# Transformation equation substructure length. The macro parameters are
+# the total number of variables (npar), and the number of parameters (npar)
+# for the equation.
+define LEN_PTEQ (2 * $1 + 5 * $2 + 29)
+
+# Transformation equation substructure definition
+# - number of catalog and observation variables, and total number of variables
+# for reference equation.
+define PTEQ_NRCAT Memi[$1 + 0]
+define PTEQ_NROBS Memi[$1 + 1]
+define PTEQ_NRVAR Memi[$1 + 2]
+# - number of catalog and observation variables, and total number of variables
+# for fit equation.
+define PTEQ_NFCAT Memi[$1 + 3]
+define PTEQ_NFOBS Memi[$1 + 4]
+define PTEQ_NFVAR Memi[$1 + 5]
+# - total number of variables in the reference and fit equations.
+define PTEQ_NVAR Memi[$1 + 6]
+# - start of reference variable symbol offsets, and variable counters
+define PTEQ_SREFVAR ($1 + 7)
+define PTEQ_SREFCNT ($1 + 1 * PTEQ_NRVAR($1) + 7)
+# - start of fit variable symbol offsets, and variable counters
+define PTEQ_SFITVAR ($1 + 2 * PTEQ_NRVAR($1) + 7)
+define PTEQ_SFITCNT ($1 + 2 * PTEQ_NRVAR($1) + 1 * PTEQ_NFVAR($1) + 7)
+# - total number of parameters and number of parameters to be fitted.
+define PTEQ_NPAR Memi[$1 + 2 * PTEQ_NVAR($1) + 7]
+define PTEQ_NFPAR Memi[$1 + 2 * PTEQ_NVAR($1) + 8]
+# - Start of parameter offsets, parameter values, parameter list
+define PTEQ_SPAR ($1 + 2 * PTEQ_NVAR($1) + 9)
+define PTEQ_SPARVAL ($1 + 2 * PTEQ_NVAR($1) + 1 * PTEQ_NPAR($1) + 9)
+define PTEQ_SPLIST ($1 + 2 * PTEQ_NVAR($1) + 2 * PTEQ_NPAR($1) + 9)
+# - fitting and reference equation string offsets
+define PTEQ_FIT Memi[$1 + 2 * PTEQ_NVAR($1) + 3 * PTEQ_NPAR($1) + 9]
+define PTEQ_REF Memi[$1 + 2 * PTEQ_NVAR($1) + 3 * PTEQ_NPAR($1) + 10]
+# - error, minimum error, and maximum error equation string offsets
+define PTEQ_ERROR Memi[$1 + 2 * PTEQ_NVAR($1) + 3 * PTEQ_NPAR($1) + 11]
+define PTEQ_ERRMIN Memi[$1 + 2 * PTEQ_NVAR($1) + 3 * PTEQ_NPAR($1) + 12]
+define PTEQ_ERRMAX Memi[$1 + 2 * PTEQ_NVAR($1) + 3 * PTEQ_NPAR($1) + 13]
+# - weight, minimum weight, and maximum weight equation string offsets
+define PTEQ_WEIGHT Memi[$1 + 2 * PTEQ_NVAR($1) + 3 * PTEQ_NPAR($1) + 14]
+define PTEQ_WTSMIN Memi[$1 + 2 * PTEQ_NVAR($1) + 3 * PTEQ_NPAR($1) + 15]
+define PTEQ_WTSMAX Memi[$1 + 2 * PTEQ_NVAR($1) + 3 * PTEQ_NPAR($1) + 16]
+# - plot equation string offsets
+define PTEQ_XPLOT Memi[$1 + 2 * PTEQ_NVAR($1) + 3 * PTEQ_NPAR($1) + 17]
+define PTEQ_YPLOT Memi[$1 + 2 * PTEQ_NVAR($1) + 3 * PTEQ_NPAR($1) + 18]
+# - derivative equation string offsets
+define PTEQ_SDER ($1 + 2 * PTEQ_NVAR($1) + 3 * PTEQ_NPAR($1) + 19)
+# - fitting and reference equation codes
+define PTEQ_RPNFIT MEMP[$1 + 2 * PTEQ_NVAR($1) + 4 * PTEQ_NPAR($1) + 19]
+define PTEQ_RPNREF MEMP[$1 + 2 * PTEQ_NVAR($1) + 4 * PTEQ_NPAR($1) + 20]
+# - error equation, minimum error, and maximum error codes
+define PTEQ_RPNERROR MEMP[$1 + 2 * PTEQ_NVAR($1) + 4 * PTEQ_NPAR($1) + 21]
+define PTEQ_RPNERRMIN MEMP[$1 + 2 * PTEQ_NVAR($1) + 4 * PTEQ_NPAR($1) + 22]
+define PTEQ_RPNERRMAX MEMP[$1 + 2 * PTEQ_NVAR($1) + 4 * PTEQ_NPAR($1) + 23]
+# - weigth, minimum weight, maximum weight equation codes
+define PTEQ_RPNWEIGHT MEMP[$1 + 2 * PTEQ_NVAR($1) + 4 * PTEQ_NPAR($1) + 24]
+define PTEQ_RPNWTSMIN MEMP[$1 + 2 * PTEQ_NVAR($1) + 4 * PTEQ_NPAR($1) + 25]
+define PTEQ_RPNWTSMAX MEMP[$1 + 2 * PTEQ_NVAR($1) + 4 * PTEQ_NPAR($1) + 26]
+# - plot equation code3
+define PTEQ_RPNXPLOT MEMP[$1 + 2 * PTEQ_NVAR($1) + 4 * PTEQ_NPAR($1) + 27]
+define PTEQ_RPNYPLOT MEMP[$1 + 2 * PTEQ_NVAR($1) + 4 * PTEQ_NPAR($1) + 28]
+# - start of derivarive equation codes
+define PTEQ_SRPNDER ($1 + 2 * PTEQ_NVAR($1) + 4 * PTEQ_NPAR($1) + 29)
+# - next free location == LEN_PTEQ
+# ($1 + 2 * PTEQ_NVAR($1) + 5 * PTEQ_NPAR($1) + 29)
+
+# Vector access
+define PTEQ_AREFVAR Memi[PTEQ_SREFVAR($1)] # ref. variable sym. off.
+define PTEQ_AREFCNT Memi[PTEQ_SREFCNT($1)] # ref. variable counters
+define PTEQ_AFITVAR Memi[PTEQ_SFITVAR($1)] # fit variable sym. off.
+define PTEQ_AFITCNT Memi[PTEQ_SFITCNT($1)] # fit variable counters
+define PTEQ_APAR Memi[PTEQ_SPAR($1)] # parameter sym. offsets
+define PTEQ_APARVAL Memr[P2R(PTEQ_SPARVAL($1))] # parameter values
+define PTEQ_APLIST Memi[PTEQ_SPLIST($1)] # fitting parameter list
+define PTEQ_ADER Memi[PTEQ_SDER($1)] # derivative string offsets
+define PTEQ_ARPNDER MEMP[PTEQ_SRPNDER($1)] # derivative code
+
+# Individual access for variable symbols and counters.
+define PTEQ_REFVAR Memi[PTEQ_SREFVAR($1) + $2 - 1] # ref. var. symbol off.
+define PTEQ_REFCNT Memi[PTEQ_SREFCNT($1) + $2 - 1] # ref. var. counter
+define PTEQ_FITVAR Memi[PTEQ_SFITVAR($1) + $2 - 1] # fit var. symbol off.
+define PTEQ_FITCNT Memi[PTEQ_SFITCNT($1) + $2 - 1] # fit var. counter
+
+# Individual access for fitting parameter symbols, values and list. The
+# second argument is the parameter number, relative to the equation.
+define PTEQ_PAR Memi[PTEQ_SPAR($1) + $2 - 1] # symbol offset
+define PTEQ_PARVAL Memr[P2R(PTEQ_SPARVAL($1) + $2 - 1)] # value
+define PTEQ_PLIST Memi[PTEQ_SPLIST($1) + $2 - 1] # list element
+
+# Individual access for derivative equation string offsets and codes. The
+# second argument is the parameter number relative to the equation.
+define PTEQ_DER Memi[PTEQ_SDER($1) + $2 - 1] # string offset
+define PTEQ_RPNDER Memi[PTEQ_SRPNDER($1) + $2 - 1] # code