summaryrefslogtreecommitdiffstats
path: root/funtools/man/man3
diff options
context:
space:
mode:
Diffstat (limited to 'funtools/man/man3')
-rw-r--r--funtools/man/man3/funclose.3160
-rw-r--r--funtools/man/man3/funcolumnactivate.3330
-rw-r--r--funtools/man/man3/funcolumnlookup.3220
-rw-r--r--funtools/man/man3/funcolumnselect.3664
-rw-r--r--funtools/man/man3/funflush.3212
-rw-r--r--funtools/man/man3/funimageget.3332
-rw-r--r--funtools/man/man3/funimageput.3225
-rw-r--r--funtools/man/man3/funimagerowget.3215
-rw-r--r--funtools/man/man3/funimagerowput.3202
-rw-r--r--funtools/man/man3/funinfoget.3335
-rw-r--r--funtools/man/man3/funinfoput.3246
-rw-r--r--funtools/man/man3/funlib.3525
-rw-r--r--funtools/man/man3/funopen.3272
-rw-r--r--funtools/man/man3/funparamget.3262
-rw-r--r--funtools/man/man3/funparamput.3256
-rw-r--r--funtools/man/man3/funref.3287
-rw-r--r--funtools/man/man3/funtablerowget.3216
-rw-r--r--funtools/man/man3/funtablerowput.3297
18 files changed, 0 insertions, 5256 deletions
diff --git a/funtools/man/man3/funclose.3 b/funtools/man/man3/funclose.3
deleted file mode 100644
index dc8dbd2..0000000
--- a/funtools/man/man3/funclose.3
+++ /dev/null
@@ -1,160 +0,0 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32
-.\"
-.\" Standard preamble:
-.\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
-.de Sp \" Vertical space (when we can't use .PP)
-.if t .sp .5v
-.if n .sp
-..
-.de Vb \" Begin verbatim text
-.ft CW
-.nf
-.ne \\$1
-..
-.de Ve \" End verbatim text
-.ft R
-.fi
-..
-.\" Set up some character translations and predefined strings. \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote. | will give a
-.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
-.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
-.\" expand to `' in nroff, nothing in troff, for use with C<>.
-.tr \(*W-|\(bv\*(Tr
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
-.ie n \{\
-. ds -- \(*W-
-. ds PI pi
-. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
-. ds L" ""
-. ds R" ""
-. ds C` ""
-. ds C' ""
-'br\}
-.el\{\
-. ds -- \|\(em\|
-. ds PI \(*p
-. ds L" ``
-. ds R" ''
-'br\}
-.\"
-.\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
-.\" entries marked with X<> in POD. Of course, you'll have to process the
-.\" output yourself in some meaningful fashion.
-.if \nF \{\
-. de IX
-. tm Index:\\$1\t\\n%\t"\\$2"
-..
-. nr % 0
-. rr F
-.\}
-.\"
-.\" For nroff, turn off justification. Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.if n .na
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear. Run. Save yourself. No user-serviceable parts.
-. \" fudge factors for nroff and troff
-.if n \{\
-. ds #H 0
-. ds #V .8m
-. ds #F .3m
-. ds #[ \f1
-. ds #] \fP
-.\}
-.if t \{\
-. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-. ds #V .6m
-. ds #F 0
-. ds #[ \&
-. ds #] \&
-.\}
-. \" simple accents for nroff and troff
-.if n \{\
-. ds ' \&
-. ds ` \&
-. ds ^ \&
-. ds , \&
-. ds ~ ~
-. ds /
-.\}
-.if t \{\
-. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-. \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-. \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-. \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-. ds : e
-. ds 8 ss
-. ds o a
-. ds d- d\h'-1'\(ga
-. ds D- D\h'-1'\(hy
-. ds th \o'bp'
-. ds Th \o'LP'
-. ds ae ae
-. ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
-.\" ========================================================================
-.\"
-.IX Title "funclose 3"
-.TH funclose 3 "April 14, 2011" "version 1.4.5" "SAORD Documentation"
-.SH "NAME"
-FunClose \- close a Funtools data file
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-.Vb 1
-\& #include <funtools.h>
-.Ve
-.PP
-.Vb 1
-\& void FunClose(Fun fun)
-.Ve
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-The \fB\f(BIFunClose()\fB\fR routine closes a previously-opened Funtools data
-file, freeing control structures. If a
-Funtools reference handle
-was passed to
-the \fIFunOpen()\fR call for this file,
-and if copy mode also was specified for that file, then
-\&\fIFunClose()\fR also will copy the
-remaining extensions from the input file to the output file (if the
-input file still is open). Thus, we recommend always closing the
-output Funtools file \fBbefore\fR the input file. (Alternatively,
-you can call \fIFunFlush()\fR
-explicitly).
-.SH "SEE ALSO"
-.IX Header "SEE ALSO"
-See funtools(7) for a list of Funtools help pages
diff --git a/funtools/man/man3/funcolumnactivate.3 b/funtools/man/man3/funcolumnactivate.3
deleted file mode 100644
index 2eda34b..0000000
--- a/funtools/man/man3/funcolumnactivate.3
+++ /dev/null
@@ -1,330 +0,0 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32
-.\"
-.\" Standard preamble:
-.\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
-.de Sp \" Vertical space (when we can't use .PP)
-.if t .sp .5v
-.if n .sp
-..
-.de Vb \" Begin verbatim text
-.ft CW
-.nf
-.ne \\$1
-..
-.de Ve \" End verbatim text
-.ft R
-.fi
-..
-.\" Set up some character translations and predefined strings. \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote. | will give a
-.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
-.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
-.\" expand to `' in nroff, nothing in troff, for use with C<>.
-.tr \(*W-|\(bv\*(Tr
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
-.ie n \{\
-. ds -- \(*W-
-. ds PI pi
-. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
-. ds L" ""
-. ds R" ""
-. ds C` ""
-. ds C' ""
-'br\}
-.el\{\
-. ds -- \|\(em\|
-. ds PI \(*p
-. ds L" ``
-. ds R" ''
-'br\}
-.\"
-.\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
-.\" entries marked with X<> in POD. Of course, you'll have to process the
-.\" output yourself in some meaningful fashion.
-.if \nF \{\
-. de IX
-. tm Index:\\$1\t\\n%\t"\\$2"
-..
-. nr % 0
-. rr F
-.\}
-.\"
-.\" For nroff, turn off justification. Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.if n .na
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear. Run. Save yourself. No user-serviceable parts.
-. \" fudge factors for nroff and troff
-.if n \{\
-. ds #H 0
-. ds #V .8m
-. ds #F .3m
-. ds #[ \f1
-. ds #] \fP
-.\}
-.if t \{\
-. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-. ds #V .6m
-. ds #F 0
-. ds #[ \&
-. ds #] \&
-.\}
-. \" simple accents for nroff and troff
-.if n \{\
-. ds ' \&
-. ds ` \&
-. ds ^ \&
-. ds , \&
-. ds ~ ~
-. ds /
-.\}
-.if t \{\
-. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-. \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-. \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-. \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-. ds : e
-. ds 8 ss
-. ds o a
-. ds d- d\h'-1'\(ga
-. ds D- D\h'-1'\(hy
-. ds th \o'bp'
-. ds Th \o'LP'
-. ds ae ae
-. ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
-.\" ========================================================================
-.\"
-.IX Title "funcolumnactivate 3"
-.TH funcolumnactivate 3 "April 14, 2011" "version 1.4.5" "SAORD Documentation"
-.SH "NAME"
-FunColumnActivate \- activate Funtools columns
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-.Vb 1
-\& #include <funtools.h>
-.Ve
-.PP
-.Vb 1
-\& void FunColumnActivate(Fun fun, char *s, char *plist)
-.Ve
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-The \fB\f(BIFunColumnActivate()\fB\fR routine determines which columns (set up
-by \fIFunColumnSelect()\fR)
-ultimately will be read and/or written. By default, all columns that
-are selected using
-\&\fIFunColumnSelect()\fR
-are activated. The
-\&\fIFunColumnActivate()\fR
-routine can be used to turn off/off activation of specific columns.
-.PP
-The first argument is the Fun handle associated with this set of
-columns. The second argument is a space-delimited list of columns to
-activate or de\-activate. Columns preceded by \*(L"+\*(R" are activated and
-columns preceded by a \*(L"\-\*(R" are de\-activated. If a column is named
-without \*(L"+\*(R" or \*(L"\-\*(R", it is activated. The reserved strings \*(L"$region\*(R"
-and '$n' are used to activate a special columns containing the filter
-region value and row value, respectively, associated with
-this row. For example, if a filter containing two circular regions is
-specified as part of the Funtools file name, this column will contain
-a value of 1 or 2, depending on which region that row was in. The
-reserved strings \*(L"$x\*(R" and \*(L"$y\*(R" are used to activate the current
-binning columns. Thus, if the columns \s-1DX\s0 and \s-1DY\s0 are specified as
-binning columns:
-.PP
-.Vb 1
-\& [sh $] fundisp foo.fits[bincols=(DX,DY)]
-.Ve
-.PP
-then \*(L"$x\*(R" and \*(L"$y\*(R" will refer to these columns in a call to
-\&\fIFunColumnActivate()\fR.
-.PP
-In addition, if the activation string contains only columns to be
-activated, then the routine will de-activate all other columns.
-Similarly, if the activation string contains only
-columns to de\-activate, then the routine will activate all other columns
-before activating the list. This makes it simple to change the
-activation state of all columns without having to know all of the
-column names. For example:
-.IP "\(bu" 4
-\&\fB\*(L"pi pha time\*(R"\fR # only these three columns will be active
-.IP "\(bu" 4
-\&\fB\*(L"\-pi \-pha \-time\*(R"\fR # all but these columns will be active
-.IP "\(bu" 4
-\&\fB\*(L"pi \-pha\*(R"\fR # only pi is active, pha is not, others are not
-.IP "\(bu" 4
-\&\fB\*(L"+pi \-pha\*(R"\fR # same as above
-.IP "\(bu" 4
-\&\fB\*(L"pi \-pha \-time\*(R"\fR # only pi is active, all others are not
-.IP "\(bu" 4
-\&\fB\*(L"pi pha\*(R"\fR # pha and pi are active, all others are not
-.IP "\(bu" 4
-\&\fB\*(L"pi pha \-x \-y\*(R"\fR # pha and pi are active, all others are not
-.PP
-You can use the column activation list to reorder columns, since
-columns are output in the order specified. For example:
-.PP
-.Vb 9
-\& # default output order
-\& fundisp snr.ev'[cir 512 512 .1]'
-\& X Y PHA PI TIME DX DY
-\& -------- -------- -------- -------- --------------------- -------- --------
-\& 512 512 6 7 79493997.45854475 578 574
-\& 512 512 8 9 79494575.58943175 579 573
-\& 512 512 5 6 79493631.03866175 578 575
-\& 512 512 5 5 79493290.86521725 578 575
-\& 512 512 8 9 79493432.00990875 579 573
-.Ve
-.PP
-.Vb 9
-\& # re-order the output by specifying explicit order
-\& fundisp snr.ev'[cir 512 512 .1]' "time x y dy dx pi pha"
-\& TIME X Y DY DX PI PHA
-\& --------------------- -------- -------- -------- -------- -------- --------
-\& 79493997.45854475 512 512 574 578 7 6
-\& 79494575.58943175 512 512 573 579 9 8
-\& 79493631.03866175 512 512 575 578 6 5
-\& 79493290.86521725 512 512 575 578 5 5
-\& 79493432.00990875 512 512 573 579 9 8
-.Ve
-.PP
-A \*(L"+\*(R" sign by itself means to activate all columns, so that you can reorder
-just a few columns without specifying all of them:
-.PP
-.Vb 9
-\& # reorder 3 columns and then output the rest
-\& fundisp snr.ev'[cir 512 512 .1]' "time pi pha +"
-\& TIME PI PHA Y X DX DY
-\& --------------------- -------- -------- -------- -------- -------- --------
-\& 79493997.45854475 7 6 512 512 578 574
-\& 79494575.58943175 9 8 512 512 579 573
-\& 79493631.03866175 6 5 512 512 578 575
-\& 79493290.86521725 5 5 512 512 578 575
-\& 79493432.00990875 9 8 512 512 579 573
-.Ve
-.PP
-The column activation/deactivation is performed in the order of the
-specified column arguments. This means you can mix \*(L"+\*(R", \*(L"\-\*(R" (which
-de-activates all columns) and specific column names to reorder and
-select columns in one command. For example, consider the following:
-.PP
-.Vb 9
-\& # reorder and de-activate
-\& fundisp snr.ev'[cir 512 512 .1]' "time pi pha + \-x \-y"
-\& TIME PI PHA DX DY
-\& --------------------- -------- -------- -------- --------
-\& 79493997.45854475 7 6 578 574
-\& 79494575.58943175 9 8 579 573
-\& 79493631.03866175 6 5 578 575
-\& 79493290.86521725 5 5 578 575
-\& 79493432.00990875 9 8 579 573
-.Ve
-.PP
-We first activate \*(L"time\*(R", \*(L"pi\*(R", and \*(L"pha\*(R" so that they are output first.
-We then activate all of the other columns, and then de-activate \*(L"x\*(R" and \*(L"y\*(R".
-Note that this is different from:
-.PP
-.Vb 9
-\& # probably not what you want ...
-\& fundisp snr.ev'[cir 512 512 .1]' "time pi pha \-x \-y +"
-\& TIME PI PHA Y X DX DY
-\& --------------------- -------- -------- -------- -------- -------- --------
-\& 79493997.45854475 7 6 512 512 578 574
-\& 79494575.58943175 9 8 512 512 579 573
-\& 79493631.03866175 6 5 512 512 578 575
-\& 79493290.86521725 5 5 512 512 578 575
-\& 79493432.00990875 9 8 512 512 579 573
-.Ve
-.PP
-Here, \*(L"x\*(R" and \*(L"y\*(R" are de\-activated, but then all columns including \*(L"x\*(R" and
-\&\*(L"y\*(R" are again re\-activated.
-.PP
-Typically,
-\&\fIFunColumnActivate()\fR uses a
-list of columns that are passed into the program from the command line. For
-example, the code for funtable contains the following:
-.PP
-.Vb 1
-\& char *cols=NULL;
-.Ve
-.PP
-.Vb 3
-\& /* open the input FITS file */
-\& if( !(fun = FunOpen(argv[1], "rc", NULL)) )
-\& gerror(stderr, "could not FunOpen input file: %s\en", argv[1]);
-.Ve
-.PP
-.Vb 3
-\& /* set active flag for specified columns */
-\& if( argc >= 4 ) cols = argv[3];
-\& FunColumnActivate(fun, cols, NULL);
-.Ve
-.PP
-The \fIFunOpen()\fR call sets the
-default columns to be all columns in the input file. The
-\&\fIFunColumnActivate()\fR call
-then allows the user to control which columns ultimately will be
-activated (i.e., in this case, written to the new file). For example:
-.PP
-.Vb 1
-\& funtable test.ev foo.ev "pi pha time"
-.Ve
-.PP
-will process only the three columns mentioned, while:
-.PP
-.Vb 1
-\& funtable test.ev foo.ev "\-time"
-.Ve
-.PP
-will process all columns except \*(L"time\*(R".
-.PP
-If \fIFunColumnActivate()\fR
-is called with a null string, then the environment variable
-\&\fB\s-1FUN_COLUMNS\s0\fR will be used to provide a global value, if present.
-This is the reason why we call the routine even if no columns
-are specified on the command line (see example above), instead
-of calling it this way:
-.PP
-.Vb 4
-\& /* set active flag for specified columns */
-\& if( argc >= 4 ){
-\& FunColumnActivate(fun, argv[3], NULL);
-\& }
-.Ve
-.SH "SEE ALSO"
-.IX Header "SEE ALSO"
-See funtools(7) for a list of Funtools help pages
diff --git a/funtools/man/man3/funcolumnlookup.3 b/funtools/man/man3/funcolumnlookup.3
deleted file mode 100644
index 15c9c36..0000000
--- a/funtools/man/man3/funcolumnlookup.3
+++ /dev/null
@@ -1,220 +0,0 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32
-.\"
-.\" Standard preamble:
-.\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
-.de Sp \" Vertical space (when we can't use .PP)
-.if t .sp .5v
-.if n .sp
-..
-.de Vb \" Begin verbatim text
-.ft CW
-.nf
-.ne \\$1
-..
-.de Ve \" End verbatim text
-.ft R
-.fi
-..
-.\" Set up some character translations and predefined strings. \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote. | will give a
-.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
-.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
-.\" expand to `' in nroff, nothing in troff, for use with C<>.
-.tr \(*W-|\(bv\*(Tr
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
-.ie n \{\
-. ds -- \(*W-
-. ds PI pi
-. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
-. ds L" ""
-. ds R" ""
-. ds C` ""
-. ds C' ""
-'br\}
-.el\{\
-. ds -- \|\(em\|
-. ds PI \(*p
-. ds L" ``
-. ds R" ''
-'br\}
-.\"
-.\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
-.\" entries marked with X<> in POD. Of course, you'll have to process the
-.\" output yourself in some meaningful fashion.
-.if \nF \{\
-. de IX
-. tm Index:\\$1\t\\n%\t"\\$2"
-..
-. nr % 0
-. rr F
-.\}
-.\"
-.\" For nroff, turn off justification. Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.if n .na
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear. Run. Save yourself. No user-serviceable parts.
-. \" fudge factors for nroff and troff
-.if n \{\
-. ds #H 0
-. ds #V .8m
-. ds #F .3m
-. ds #[ \f1
-. ds #] \fP
-.\}
-.if t \{\
-. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-. ds #V .6m
-. ds #F 0
-. ds #[ \&
-. ds #] \&
-.\}
-. \" simple accents for nroff and troff
-.if n \{\
-. ds ' \&
-. ds ` \&
-. ds ^ \&
-. ds , \&
-. ds ~ ~
-. ds /
-.\}
-.if t \{\
-. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-. \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-. \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-. \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-. ds : e
-. ds 8 ss
-. ds o a
-. ds d- d\h'-1'\(ga
-. ds D- D\h'-1'\(hy
-. ds th \o'bp'
-. ds Th \o'LP'
-. ds ae ae
-. ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
-.\" ========================================================================
-.\"
-.IX Title "funcolumnlookup 3"
-.TH funcolumnlookup 3 "April 14, 2011" "version 1.4.5" "SAORD Documentation"
-.SH "NAME"
-FunColumnLookup \- lookup a Funtools column
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-.Vb 1
-\& #include <funtools.h>
-.Ve
-.PP
-.Vb 3
-\& int FunColumnLookup(Fun fun, char *s, int which,
-\& char **name, int *type, int *mode,
-\& int *offset, int *n, int *width)
-.Ve
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-The \fB\f(BIFunColumnLookup()\fB\fR routine returns information about a named
-(or indexed) column. The first argument is the Fun handle associated
-with this set of columns. The second argument is the name of the
-column to look up. If the name argument is \s-1NULL\s0, the argument that
-follows is the zero-based index into the column array of the column
-for which information should be returned. The next argument is a
-pointer to a char *, which will contain the name of the column. The
-arguments that follow are the addresses of int values into which
-the following information will be returned:
-.IP "\(bu" 4
-\&\fBtype\fR: data type of column:
-.RS 4
-.IP "\(bu" 4
-A: \s-1ASCII\s0 characters
-.IP "\(bu" 4
-B: unsigned 8-bit char
-.IP "\(bu" 4
-I: signed 16-bit int
-.IP "\(bu" 4
-U: unsigned 16-bit int (not standard \s-1FITS\s0)
-.IP "\(bu" 4
-J: signed 32-bit int
-.IP "\(bu" 4
-V: unsigned 32-bit int (not standard \s-1FITS\s0)
-.IP "\(bu" 4
-E: 32-bit float
-.IP "\(bu" 4
-D: 64-bit float
-.RE
-.RS 4
-.RE
-.IP "\(bu" 4
-\&\fBmode\fR: bit flag status of column, including:
-.RS 4
-.IP "\(bu" 4
-\&\s-1COL_ACTIVE\s0 1 is column activated?
-.IP "\(bu" 4
-\&\s-1COL_IBUF\s0 2 is column in the raw input data?
-.IP "\(bu" 4
-\&\s-1COL_PTR\s0 4 is column a pointer to an array?
-.IP "\(bu" 4
-\&\s-1COL_READ\s0 010 is read mode selected?
-.IP "\(bu" 4
-\&\s-1COL_WRITE\s0 020 is write mode selected?
-.IP "\(bu" 4
-\&\s-1COL_REPLACEME\s0 040 is this column being replaced by user data?
-.RE
-.RS 4
-.RE
-.IP "\(bu" 4
-\&\fBoffset\fR: byte offset in struct
-.IP "\(bu" 4
-\&\fBn\fR: number of elements (i.e. size of vector) in this column
-.IP "\(bu" 4
-\&\fBwidth\fR: size in bytes of this column
-.PP
-If the named column exists, the routine returns a positive integer,
-otherwise zero is returned. (The positive integer is the index+1 into
-the column array where this column was located.)
-.PP
-If \s-1NULL\s0 is passed as the return address of one (or more) of these
-values, no data is passed back for that information. For
-example:
-.PP
-.Vb 2
-\& if( !FunColumnLookup(fun, "phas", 0, NULL NULL, NULL, NULL, &npha, NULL) )
-\& gerror(stderr, "can't find phas column\en");
-.Ve
-.PP
-only returns information about the size of the phas vector.
-.SH "SEE ALSO"
-.IX Header "SEE ALSO"
-See funtools(7) for a list of Funtools help pages
diff --git a/funtools/man/man3/funcolumnselect.3 b/funtools/man/man3/funcolumnselect.3
deleted file mode 100644
index 88158c0..0000000
--- a/funtools/man/man3/funcolumnselect.3
+++ /dev/null
@@ -1,664 +0,0 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32
-.\"
-.\" Standard preamble:
-.\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
-.de Sp \" Vertical space (when we can't use .PP)
-.if t .sp .5v
-.if n .sp
-..
-.de Vb \" Begin verbatim text
-.ft CW
-.nf
-.ne \\$1
-..
-.de Ve \" End verbatim text
-.ft R
-.fi
-..
-.\" Set up some character translations and predefined strings. \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote. | will give a
-.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
-.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
-.\" expand to `' in nroff, nothing in troff, for use with C<>.
-.tr \(*W-|\(bv\*(Tr
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
-.ie n \{\
-. ds -- \(*W-
-. ds PI pi
-. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
-. ds L" ""
-. ds R" ""
-. ds C` ""
-. ds C' ""
-'br\}
-.el\{\
-. ds -- \|\(em\|
-. ds PI \(*p
-. ds L" ``
-. ds R" ''
-'br\}
-.\"
-.\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
-.\" entries marked with X<> in POD. Of course, you'll have to process the
-.\" output yourself in some meaningful fashion.
-.if \nF \{\
-. de IX
-. tm Index:\\$1\t\\n%\t"\\$2"
-..
-. nr % 0
-. rr F
-.\}
-.\"
-.\" For nroff, turn off justification. Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.if n .na
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear. Run. Save yourself. No user-serviceable parts.
-. \" fudge factors for nroff and troff
-.if n \{\
-. ds #H 0
-. ds #V .8m
-. ds #F .3m
-. ds #[ \f1
-. ds #] \fP
-.\}
-.if t \{\
-. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-. ds #V .6m
-. ds #F 0
-. ds #[ \&
-. ds #] \&
-.\}
-. \" simple accents for nroff and troff
-.if n \{\
-. ds ' \&
-. ds ` \&
-. ds ^ \&
-. ds , \&
-. ds ~ ~
-. ds /
-.\}
-.if t \{\
-. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-. \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-. \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-. \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-. ds : e
-. ds 8 ss
-. ds o a
-. ds d- d\h'-1'\(ga
-. ds D- D\h'-1'\(hy
-. ds th \o'bp'
-. ds Th \o'LP'
-. ds ae ae
-. ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
-.\" ========================================================================
-.\"
-.IX Title "funcolumnselect 3"
-.TH funcolumnselect 3 "April 14, 2011" "version 1.4.5" "SAORD Documentation"
-.SH "NAME"
-FunColumnSelect \- select Funtools columns
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-.Vb 1
-\& #include <funtools.h>
-.Ve
-.PP
-.Vb 5
-\& int FunColumnSelect(Fun fun, int size, char *plist,
-\& char *name1, char *type1, char *mode1, int offset1,
-\& char *name2, char *type2, char *mode2, int offset2,
-\& ...,
-\& NULL)
-.Ve
-.PP
-.Vb 3
-\& int FunColumnSelectArr(Fun fun, int size, char *plist,
-\& char **names, char **types, char **modes,
-\& int *offsets, int nargs);
-.Ve
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-The \fB\f(BIFunColumnSelect()\fB\fR routine is used to select the columns
-from a Funtools binary table extension or raw event file for
-processing. This routine allows you to specify how columns in a file
-are to be read into a user record structure or written from a user
-record structure to an output \s-1FITS\s0 file.
-.PP
-The first argument is the Fun handle associated with this set of
-columns. The second argument specifies the size of the user record
-structure into which columns will be read. Typically, the \fIsizeof()\fR
-macro is used to specify the size of a record structure. The third
-argument allows you to specify keyword directives for the selection
-and is described in more detail below.
-.PP
-Following the first three required arguments is a variable length list of
-column specifications. Each column specification will consist of four
-arguments:
-.IP "\(bu" 4
-\&\fBname\fR: the name of the column
-.IP "\(bu" 4
-\&\fBtype\fR: the data type of the column as it will be stored in
-the user record struct (not the data type of the input file). The
-following basic data types are recognized:
-.RS 4
-.IP "\(bu" 4
-A: \s-1ASCII\s0 characters
-.IP "\(bu" 4
-B: unsigned 8-bit char
-.IP "\(bu" 4
-I: signed 16-bit int
-.IP "\(bu" 4
-U: unsigned 16-bit int (not standard \s-1FITS\s0)
-.IP "\(bu" 4
-J: signed 32-bit int
-.IP "\(bu" 4
-V: unsigned 32-bit int (not standard \s-1FITS\s0)
-.IP "\(bu" 4
-E: 32-bit float
-.IP "\(bu" 4
-D: 64-bit float
-.RE
-.RS 4
-.Sp
-The syntax used is similar to that which defines the \s-1TFORM\s0 parameter
-in \s-1FITS\s0 binary tables. That is, a numeric repeat value can precede
-the type character, so that \*(L"10I\*(R" means a vector of 10 short ints, \*(L"E\*(R"
-means a single precision float, etc. Note that the column value from
-the input file will be converted to the specified data type as the
-data is read by
-\&\fIFunTableRowGet()\fR.
-.Sp
-[ A short digression regarding bit\-fields: Special attention is
-required when reading or writing the \s-1FITS\s0 bit-field type
-(\*(L"X\*(R"). Bit-fields almost always have a numeric repeat character
-preceding the 'X' specification. Usually this value is a multiple of 8
-so that bit-fields fit into an integral number of bytes. For all
-cases, the byte size of the bit-field B is (N+7)/8, where N is the
-numeric repeat character.
-.Sp
-A bit-field is most easily declared in the user struct as an array of
-type char of size B as defined above. In this case, bytes are simply
-moved from the file to the user space. If, instead, a short or int
-scalar or array is used, then the algorithm for reading the bit-field
-into the user space depends on the size of the data type used along
-with the value of the repeat character. That is, if the user data
-size is equal to the byte size of the bit\-field, then the data is
-simply moved (possibly with endian-based byte\-swapping) from one to
-the other. If, on the other hand, the data storage is larger than the
-bit-field size, then a data type cast conversion is performed to move
-parts of the bit-field into elements of the array. Examples will help
-make this clear:
-.IP "\(bu" 4
-If the file contains a 16X bit-field and user space specifies a 2B
-char array[2], then the bit-field is moved directly into the char array.
-.IP "\(bu" 4
-If the file contains a 16X bit-field and user space specifies a 1I
-scalar short int, then the bit-field is moved directly into the short int.
-.IP "\(bu" 4
-If the file contains a 16X bit-field and user space specifies a 1J
-scalar int, then the bit-field is type-cast to unsigned int before
-being moved (use of unsigned avoids possible sign extension).
-.IP "\(bu" 4
-If the file contains a 16X bit-field and user space specifies a 2J
-int array[2], then the bit-field is handled as 2 chars, each of which
-are type-cast to unsigned int before being moved (use of unsigned
-avoids possible sign extension).
-.IP "\(bu" 4
-If the file contains a 16X bit-field and user space specifies a 1B
-char, then the bit-field is treated as a char, i.e., truncation will
-occur.
-.IP "\(bu" 4
-If the file contains a 16X bit-field and user space specifies a 4J
-int array[4], then the results are undetermined.
-.RE
-.RS 4
-.Sp
-For all user data types larger than char, the bit-field is byte-swapped
-as necessary to convert to native format, so that bits in the
-resulting data in user space can be tested, masked, etc. in the same
-way regardless of platform.]
-.Sp
-In addition to setting data type and size, the \fBtype\fR
-specification allows a few ancillary parameters to be set, using the
-full syntax for \fBtype\fR:
-.Sp
-.Vb 1
-\& [@][n]<type>[[['B']poff]][:[tlmin[:tlmax[:binsiz]]]]
-.Ve
-.Sp
-The special character \*(L"@\*(R" can be prepended to this specification to
-indicated that the data element is a pointer in the user record,
-rather than an array stored within the record.
-.Sp
-The [n] value is an integer that specifies the
-number of elements that are in this column (default is 1). \s-1TLMIN\s0,
-\&\s-1TLMAX\s0, and \s-1BINSIZ\s0 values also can be specified for this column after
-the type, separated by colons. If only one such number is specified,
-it is assumed to be \s-1TLMAX\s0, and \s-1TLMIN\s0 and \s-1BINSIZ\s0 are set to 1.
-.Sp
-The [poff] value can be used to specify the offset into an
-array. By default, this offset value is set to zero and the data
-specified starts at the beginning of the array. The offset usually
-is specified in terms of the data type of the column. Thus an offset
-specification of [5] means a 20\-byte offset if the data type is a
-32-bit integer, and a 40\-byte offset for a double. If you want to
-specify a byte offset instead of an offset tied to the column data type,
-precede the offset value with 'B', e.g. [B6] means a 6\-bye offset,
-regardless of the column data type.
-.Sp
-The [poff] is especially useful in conjunction with the pointer @
-specification, since it allows the data element to anywhere stored
-anywhere in the allocated array. For example, a specification such as
-\&\*(L"@I[2]\*(R" specifies the third (i.e., starting from 0) element in the
-array pointed to by the pointer value. A value of \*(L"@2I[4]\*(R" specifies
-the fifth and sixth values in the array. For example, consider the
-following specification:
-.Sp
-.Vb 12
-\& typedef struct EvStruct{
-\& short x[4], *atp;
-\& } *Event, EventRec;
-\& /* set up the (hardwired) columns */
-\& FunColumnSelect( fun, sizeof(EventRec), NULL,
-\& "2i", "2I ", "w", FUN_OFFSET(Event, x),
-\& "2i2", "2I[2]", "w", FUN_OFFSET(Event, x),
-\& "at2p", "@2I", "w", FUN_OFFSET(Event, atp),
-\& "at2p4", "@2I[4]", "w", FUN_OFFSET(Event, atp),
-\& "atp9", "@I[9]", "w", FUN_OFFSET(Event, atp),
-\& "atb20", "@I[B20]", "w", FUN_OFFSET(Event, atb),
-\& NULL);
-.Ve
-.Sp
-Here we have specified the following columns:
-.IP "\(bu" 4
-2i: two short ints in an array which is stored as part the
-record
-.IP "\(bu" 4
-2i2: the 3rd and 4th elements of an array which is stored
-as part of the record
-.IP "\(bu" 4
-an array of at least 10 elements, not stored in the record but
-allocated elsewhere, and used by three different columns:
-.RS 4
-.IP "\(bu" 4
-at2p: 2 short ints which are the first 2 elements of the allocated array
-.IP "\(bu" 4
-at2p4: 2 short ints which are the 5th and 6th elements of
-the allocated array
-.IP "\(bu" 4
-atp9: a short int which is the 10th element of the allocated array
-.RE
-.RS 4
-.RE
-.IP "\(bu" 4
-atb20: a short int which is at byte offset 20 of another allocated array
-.RE
-.RS 4
-.Sp
-In this way, several columns can be specified, all of which are in a
-single array. \fB\s-1NB\s0\fR: it is the programmer's responsibility to
-ensure that specification of a positive value for poff does not point
-past the end of valid data.
-.RE
-.IP "\(bu" 4
-\&\fBread/write mode\fR: \*(L"r\*(R" means that the column is read from an
-input file into user space by
-\&\fIFunTableRowGet()\fR, \*(L"w\*(R" means that
-the column is written to an output file. Both can specified at the same
-time.
-.IP "\(bu" 4
-\&\fBoffset\fR: the offset into the user data to store
-this column. Typically, the macro \s-1FUN_OFFSET\s0(recname, colname) is used
-to define the offset into a record structure.
-.PP
-When all column arguments have been specified, a final \s-1NULL\s0 argument
-must added to signal the column selection list.
-.PP
-As an alternative to the varargs
-\&\fIFunColumnSelect()\fR
-routine, a non-varargs routine called
-\&\fIFunColumnSelectArr()\fR
-also is available. The first three arguments (fun, size, plist) of this
-routine are the same as in
-\&\fIFunColumnSelect()\fR.
-Instead of a variable
-argument list, however,
-\&\fIFunColumnSelectArr()\fR
-takes 5 additional arguments. The first 4 arrays arguments contain the
-names, types, modes, and offsets, respectively, of the columns being
-selected. The final argument is the number of columns that are
-contained in these arrays. It is the user's responsibility to free
-string space allocated in these arrays.
-.PP
-Consider the following example:
-.PP
-.Vb 5
-\& typedef struct evstruct{
-\& int status;
-\& float pi, pha, *phas;
-\& double energy;
-\& } *Ev, EvRec;
-.Ve
-.PP
-.Vb 6
-\& FunColumnSelect(fun, sizeof(EvRec), NULL,
-\& "status", "J", "r", FUN_OFFSET(Ev, status),
-\& "pi", "E", "r", FUN_OFFSET(Ev, pi),
-\& "pha", "E", "r", FUN_OFFSET(Ev, pha),
-\& "phas", "@9E", "r", FUN_OFFSET(Ev, phas),
-\& NULL);
-.Ve
-.PP
-Each time a row is read into the Ev struct, the \*(L"status\*(R" column is
-converted to an int data type (regardless of its data type in the
-file) and stored in the status value of the struct. Similarly, \*(L"pi\*(R"
-and \*(L"pha\*(R", and the phas vector are all stored as floats. Note that the
-\&\*(L"@\*(R" sign indicates that the \*(L"phas\*(R" vector is a pointer to a 9 element
-array, rather than an array allocated in the struct itself. The row
-record can then be processed as required:
-.PP
-.Vb 9
-\& /* get rows -- let routine allocate the row array */
-\& while( (ebuf = (Ev)FunTableRowGet(fun, NULL, MAXROW, NULL, &got)) ){
-\& /* process all rows */
-\& for(i=0; i<got; i++){
-\& /* point to the i'th row */
-\& ev = ebuf+i;
-\& ev->pi = (ev->pi+.5);
-\& ev->pha = (ev->pi-.5);
-\& }
-.Ve
-.PP
-\&\fIFunColumnSelect()\fR
-can also be called to define \*(L"writable\*(R" columns in order to generate a \s-1FITS\s0
-Binary Table, without reference to any input columns. For
-example, the following will generate a 4\-column \s-1FITS\s0 binary table when
-\&\fIFunTableRowPut()\fR is used to
-write Ev records:
-.PP
-.Vb 5
-\& typedef struct evstruct{
-\& int status;
-\& float pi, pha
-\& double energy;
-\& } *Ev, EvRec;
-.Ve
-.PP
-.Vb 6
-\& FunColumnSelect(fun, sizeof(EvRec), NULL,
-\& "status", "J", "w", FUN_OFFSET(Ev, status),
-\& "pi", "E", "w", FUN_OFFSET(Ev, pi),
-\& "pha", "E", "w", FUN_OFFSET(Ev, pha),
-\& "energy", "D", "w", FUN_OFFSET(Ev, energy),
-\& NULL);
-.Ve
-.PP
-All columns are declared to be write\-only, so presumably the column
-data is being generated or read from some other source.
-.PP
-In addition,
-\&\fIFunColumnSelect()\fR
-can be called to define \fBboth\fR \*(L"readable\*(R" and \*(L"writable\*(R" columns.
-In this case, the \*(L"read\*(R" columns
-are associated with an input file, while the \*(L"write\*(R" columns are
-associated with the output file. Of course, columns can be specified as both
-\&\*(L"readable\*(R" and \*(L"writable\*(R", in which case they are read from input
-and (possibly modified data values are) written to the output.
-The
-\&\fIFunColumnSelect()\fR
-call itself is made by passing the input Funtools handle, and it is
-assumed that the output file has been opened using this input handle
-as its
-Funtools reference handle.
-.PP
-Consider the following example:
-.PP
-.Vb 5
-\& typedef struct evstruct{
-\& int status;
-\& float pi, pha, *phas;
-\& double energy;
-\& } *Ev, EvRec;
-.Ve
-.PP
-.Vb 7
-\& FunColumnSelect(fun, sizeof(EvRec), NULL,
-\& "status", "J", "r", FUN_OFFSET(Ev, status),
-\& "pi", "E", "rw", FUN_OFFSET(Ev, pi),
-\& "pha", "E", "rw", FUN_OFFSET(Ev, pha),
-\& "phas", "@9E", "rw", FUN_OFFSET(Ev, phas),
-\& "energy", "D", "w", FUN_OFFSET(Ev, energy),
-\& NULL);
-.Ve
-.PP
-As in the \*(L"read\*(R" example above, each time an row is read into the Ev
-struct, the \*(L"status\*(R" column is converted to an int data type
-(regardless of its data type in the file) and stored in the status
-value of the struct. Similarly, \*(L"pi\*(R" and \*(L"pha\*(R", and the phas vector
-are all stored as floats. Since the \*(L"pi\*(R", \*(L"pha\*(R", and \*(L"phas\*(R" variables
-are declared as \*(L"writable\*(R" as well as \*(L"readable\*(R", they also will be
-written to the output file. Note, however, that the \*(L"status\*(R" variable
-is declared as \*(L"readable\*(R" only, and hence it will not be written to
-an output file. Finally, the \*(L"energy\*(R" column is declared as
-\&\*(L"writable\*(R" only, meaning it will not be read from the input file. In
-this case, it can be assumed that \*(L"energy\*(R" will be calculated in the
-program before being output along with the other values.
-.PP
-In these simple cases, only the columns specified as \*(L"writable\*(R" will
-be output using
-\&\fIFunTableRowPut()\fR. However,
-it often is the case that you want to merge the user columns back in
-with the input columns, even in cases where not all of the input
-column names are explicitly read or even known. For this important
-case, the \fBmerge=[type]\fR keyword is provided in the plist string.
-.PP
-The \fBmerge=[type]\fR keyword tells Funtools to merge the columns from
-the input file with user columns on output. It is normally used when
-an input and output file are opened and the input file provides the
-Funtools reference handle
-for the output file. In this case, each time
-\&\fIFunTableRowGet()\fR is called, the
-raw input rows are saved in a special buffer. If
-\&\fIFunTableRowPut()\fR then is called
-(before another call to
-\&\fIFunTableRowGet()\fR), the contents
-of the raw input rows are merged with the user rows according to the
-value of \fBtype\fR as follows:
-.IP "\(bu" 4
-\&\fBupdate\fR: add new user columns, and update value of existing ones (maintaining the input data type)
-.IP "\(bu" 4
-\&\fBreplace\fR: add new user columns, and replace the data type
-and value of existing ones. (Note that if tlmin/tlmax values are not
-specified in the replacing column, but are specified in the original
-column being replaced, then the original tlmin/tlmax values are used
-in the replacing column.)
-.IP "\(bu" 4
-\&\fBappend\fR: only add new columns, do not \*(L"replace\*(R" or \*(L"update\*(R" existing ones
-.PP
-Consider the example above. If \fBmerge=update\fR is specified in the
-plist string, then \*(L"energy\*(R" will be added to the input columns, and
-the values of \*(L"pi\*(R", \*(L"pha\*(R", and \*(L"phas\*(R" will be taken from the user
-space (i.e., the values will be updated from the original values, if
-they were changed by the program). The data type for \*(L"pi\*(R", \*(L"pha\*(R", and
-\&\*(L"phas\*(R" will be the same as in the original file. If
-\&\fBmerge=replace\fR is specified, both the data type and value of
-these three input columns will be changed to the data type and value
-in the user structure. If \fBmerge=append\fR is specified, none of
-these three columns will be updated, and only the \*(L"energy\*(R" column will
-be added. Note that in all cases, \*(L"status\*(R" will be written from the
-input data, not from the user record, since it was specified as read\-only.
-.PP
-Standard applications will call
-\&\fIFunColumnSelect()\fR
-to define user columns. However, if this routine is not called, the
-default behavior is to transfer all input columns into user space. For
-this purpose a default record structure is defined such that each data
-element is properly aligned on a valid data type boundary. This
-mechanism is used by programs such as fundisp and funtable to process
-columns without needing to know the specific names of those columns.
-It is not anticipated that users will need such capabilities (contact
-us if you do!)
-.PP
-By default, \fIFunColumnSelect()\fR
-reads/writes rows to/from an \*(L"array of structs\*(R", where each struct contains
-the column values for a single row of the table. This means that the
-returned values for a given column are not contiguous. You can
-set up the \s-1IO\s0 to return a \*(L"struct of arrays\*(R" so that each of the
-returned columns are contiguous by specifying \fBorg=structofarrays\fR
-(abbreviation: \fBorg=soa\fR) in the plist.
-(The default case is \fBorg=arrayofstructs\fR or \fBorg=aos\fR.)
-.PP
-For example, the default setup to retrieve rows from a table would be
-to define a record structure for a single event and then call
- \fIFunColumnSelect()\fR
-as follows:
-.PP
-.Vb 6
-\& typedef struct evstruct{
-\& short region;
-\& double x, y;
-\& int pi, pha;
-\& double time;
-\& } *Ev, EvRec;
-.Ve
-.PP
-.Vb 7
-\& got = FunColumnSelect(fun, sizeof(EvRec), NULL,
-\& "x", "D:10:10", mode, FUN_OFFSET(Ev, x),
-\& "y", "D:10:10", mode, FUN_OFFSET(Ev, y),
-\& "pi", "J", mode, FUN_OFFSET(Ev, pi),
-\& "pha", "J", mode, FUN_OFFSET(Ev, pha),
-\& "time", "1D", mode, FUN_OFFSET(Ev, time),
-\& NULL);
-.Ve
-.PP
-Subsequently, each call to
-\&\fIFunTableRowGet()\fR
-will return an array of structs, one for each returned row. If instead you
-wanted to read columns into contiguous arrays, you specify \fBorg=soa\fR:
-.PP
-.Vb 6
-\& typedef struct aevstruct{
-\& short region[MAXROW];
-\& double x[MAXROW], y[MAXROW];
-\& int pi[MAXROW], pha[MAXROW];
-\& double time[MAXROW];
-\& } *AEv, AEvRec;
-.Ve
-.PP
-.Vb 7
-\& got = FunColumnSelect(fun, sizeof(AEvRec), "org=soa",
-\& "x", "D:10:10", mode, FUN_OFFSET(AEv, x),
-\& "y", "D:10:10", mode, FUN_OFFSET(AEv, y),
-\& "pi", "J", mode, FUN_OFFSET(AEv, pi),
-\& "pha", "J", mode, FUN_OFFSET(AEv, pha),
-\& "time", "1D", mode, FUN_OFFSET(AEv, time),
-\& NULL);
-.Ve
-.PP
-Note that the only modification to the call is in the plist string.
-.PP
-Of course, instead of using statically allocated arrays, you also can specify
-dynamically allocated pointers:
-.PP
-.Vb 7
-\& /* pointers to arrays of columns (used in struct of arrays) */
-\& typedef struct pevstruct{
-\& short *region;
-\& double *x, *y;
-\& int *pi, *pha;
-\& double *time;
-\& } *PEv, PEvRec;
-.Ve
-.PP
-.Vb 8
-\& got = FunColumnSelect(fun, sizeof(PEvRec), "org=structofarrays",
-\& "$region", "@I", mode, FUN_OFFSET(PEv, region),
-\& "x", "@D:10:10", mode, FUN_OFFSET(PEv, x),
-\& "y", "@D:10:10", mode, FUN_OFFSET(PEv, y),
-\& "pi", "@J", mode, FUN_OFFSET(PEv, pi),
-\& "pha", "@J", mode, FUN_OFFSET(PEv, pha),
-\& "time", "@1D", mode, FUN_OFFSET(PEv, time),
-\& NULL);
-.Ve
-.PP
-Here, the actual storage space is either allocated by the user or by the
-\&\fIFunColumnSelect()\fR call).
-.PP
-In all of the above cases, the same call is made to retrieve rows, e.g.:
-.PP
-.Vb 1
-\& buf = (void *)FunTableRowGet(fun, NULL, MAXROW, NULL, &got);
-.Ve
-.PP
-However, the individual data elements are accessed differently.
-For the default case of an \*(L"array of structs\*(R", the
-individual row records are accessed using:
-.PP
-.Vb 5
-\& for(i=0; i<got; i++){
-\& ev = (Ev)buf+i;
-\& fprintf(stdout, "%.2f\et%.2f\et%d\et%d\et%.4f\et%.4f\et%21.8f\en",
-\& ev->x, ev->y, ev->pi, ev->pha, ev->dx, ev->dy, ev->time);
-\& }
-.Ve
-.PP
-For a struct of arrays or a struct of array pointers, we have a single struct
-through which we access individual columns and rows using:
-.PP
-.Vb 6
-\& aev = (AEv)buf;
-\& for(i=0; i<got; i++){
-\& fprintf(stdout, "%.2f\et%.2f\et%d\et%d\et%.4f\et%.4f\et%21.8f\en",
-\& aev->x[i], aev->y[i], aev->pi[i], aev->pha[i],
-\& aev->dx[i], aev->dy[i], aev->time[i]);
-\& }
-.Ve
-.PP
-Support for struct of arrays in the
-\&\fIFunTableRowPut()\fR
-call is handled analogously.
-.PP
-See the evread example code
-and
-evmerge example code
-for working examples of how
-\&\fIFunColumnSelect()\fR is used.
-.SH "SEE ALSO"
-.IX Header "SEE ALSO"
-See funtools(7) for a list of Funtools help pages
diff --git a/funtools/man/man3/funflush.3 b/funtools/man/man3/funflush.3
deleted file mode 100644
index 611dfc3..0000000
--- a/funtools/man/man3/funflush.3
+++ /dev/null
@@ -1,212 +0,0 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32
-.\"
-.\" Standard preamble:
-.\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
-.de Sp \" Vertical space (when we can't use .PP)
-.if t .sp .5v
-.if n .sp
-..
-.de Vb \" Begin verbatim text
-.ft CW
-.nf
-.ne \\$1
-..
-.de Ve \" End verbatim text
-.ft R
-.fi
-..
-.\" Set up some character translations and predefined strings. \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote. | will give a
-.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
-.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
-.\" expand to `' in nroff, nothing in troff, for use with C<>.
-.tr \(*W-|\(bv\*(Tr
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
-.ie n \{\
-. ds -- \(*W-
-. ds PI pi
-. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
-. ds L" ""
-. ds R" ""
-. ds C` ""
-. ds C' ""
-'br\}
-.el\{\
-. ds -- \|\(em\|
-. ds PI \(*p
-. ds L" ``
-. ds R" ''
-'br\}
-.\"
-.\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
-.\" entries marked with X<> in POD. Of course, you'll have to process the
-.\" output yourself in some meaningful fashion.
-.if \nF \{\
-. de IX
-. tm Index:\\$1\t\\n%\t"\\$2"
-..
-. nr % 0
-. rr F
-.\}
-.\"
-.\" For nroff, turn off justification. Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.if n .na
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear. Run. Save yourself. No user-serviceable parts.
-. \" fudge factors for nroff and troff
-.if n \{\
-. ds #H 0
-. ds #V .8m
-. ds #F .3m
-. ds #[ \f1
-. ds #] \fP
-.\}
-.if t \{\
-. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-. ds #V .6m
-. ds #F 0
-. ds #[ \&
-. ds #] \&
-.\}
-. \" simple accents for nroff and troff
-.if n \{\
-. ds ' \&
-. ds ` \&
-. ds ^ \&
-. ds , \&
-. ds ~ ~
-. ds /
-.\}
-.if t \{\
-. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-. \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-. \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-. \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-. ds : e
-. ds 8 ss
-. ds o a
-. ds d- d\h'-1'\(ga
-. ds D- D\h'-1'\(hy
-. ds th \o'bp'
-. ds Th \o'LP'
-. ds ae ae
-. ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
-.\" ========================================================================
-.\"
-.IX Title "funflush 3"
-.TH funflush 3 "April 14, 2011" "version 1.4.5" "SAORD Documentation"
-.SH "NAME"
-FunFlush \- flush data to output file
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-.Vb 1
-\& #include <funtools.h>
-.Ve
-.PP
-.Vb 1
-\& void FunFlush(Fun fun, char *plist)
-.Ve
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-The \fBFunFlush\fR routine will flush data to a \s-1FITS\s0 output file. In
-particular, it can be called after all rows have been written (using
-the \fIFunTableRowPut()\fR routine)
-in order to add the null padding that is required to complete a \s-1FITS\s0
-block. It also should be called after completely writing an image using
-\&\fIFunImagePut()\fR or after writing
-the final row of an image using
-\&\fIFunTableRowPut()\fR.
-.PP
-The \fBplist\fR (i.e., parameter list) argument is a string
-containing one or more comma-delimited \fBkeyword=value\fR
-parameters. If the plist string contains the parameter
-\&\*(L"copy=remainder\*(R" and the file was opened with a reference file, which,
-in turn, was opened for extension copying (i.e. the input
-\&\fIFunOpen()\fR mode also was \*(L"c\*(R" or \*(L"C\*(R"),
-then FunFlush also will copy the remainder of the \s-1FITS\s0 extensions from
-the input reference file to the output file. This normally would be
-done only at the end of processing.
-.PP
-Note that \fIFunFlush()\fR is called
-with \*(L"copy=remainder\*(R" in the mode string by \fIFunClose()\fR. This means
-that if you close the output file before the reference input file, it
-is not necessary to call
-\&\fIFunFlush()\fR explicitly, unless you
-are writing more than one extension. See the
-evmerge example code. However, it is safe to
-call \fIFunFlush()\fR more than once
-without fear of re-writing either the padding or the copied
-extensions.
-.PP
-In addition, if \fIFunFlush()\fR is
-called on an output file with the plist set to \*(L"copy=reference\*(R" and if
-the file was opened with a reference file, the reference extension is
-written to the output file. This mechanism provides a simple way to
-copy input extensions to an output file without processing the former.
-For example, in the code fragment below, an input extension is set to
-be the reference file for a newly opened output extension. If that
-reference extension is not a binary table, it is written to the output
-file:
-.PP
-.Vb 22
-\& /* process each input extension in turn */
-\& for(ext=0; ;ext++){
-\& /* get new extension name */
-\& sprintf(tbuf, "%s[%d]", argv[1], ext);
-\& /* open input extension -- if we cannot open it, we are done */
-\& if( !(ifun=FunOpen(tbuf, "r", NULL)) )
-\& break;
-\& /* make the new extension the reference handle for the output file */
-\& FunInfoPut(ofun, FUN_IFUN, &ifun, 0);
-\& /* if its not a binary table, just write it out */
-\& if( !(s=FunParamGets(ifun, "XTENSION", 0, NULL, &got)) ||
-\& strcmp(s, "BINTABLE")){
-\& if( s ) free(s);
-\& FunFlush(ofun, "copy=reference");
-\& FunClose(ifun);
-\& continue;
-\& }
-\& else{
-\& /* process binary table */
-\& ....
-\& }
-\& }
-.Ve
-.SH "SEE ALSO"
-.IX Header "SEE ALSO"
-See funtools(7) for a list of Funtools help pages
diff --git a/funtools/man/man3/funimageget.3 b/funtools/man/man3/funimageget.3
deleted file mode 100644
index 091765d..0000000
--- a/funtools/man/man3/funimageget.3
+++ /dev/null
@@ -1,332 +0,0 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32
-.\"
-.\" Standard preamble:
-.\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
-.de Sp \" Vertical space (when we can't use .PP)
-.if t .sp .5v
-.if n .sp
-..
-.de Vb \" Begin verbatim text
-.ft CW
-.nf
-.ne \\$1
-..
-.de Ve \" End verbatim text
-.ft R
-.fi
-..
-.\" Set up some character translations and predefined strings. \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote. | will give a
-.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
-.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
-.\" expand to `' in nroff, nothing in troff, for use with C<>.
-.tr \(*W-|\(bv\*(Tr
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
-.ie n \{\
-. ds -- \(*W-
-. ds PI pi
-. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
-. ds L" ""
-. ds R" ""
-. ds C` ""
-. ds C' ""
-'br\}
-.el\{\
-. ds -- \|\(em\|
-. ds PI \(*p
-. ds L" ``
-. ds R" ''
-'br\}
-.\"
-.\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
-.\" entries marked with X<> in POD. Of course, you'll have to process the
-.\" output yourself in some meaningful fashion.
-.if \nF \{\
-. de IX
-. tm Index:\\$1\t\\n%\t"\\$2"
-..
-. nr % 0
-. rr F
-.\}
-.\"
-.\" For nroff, turn off justification. Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.if n .na
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear. Run. Save yourself. No user-serviceable parts.
-. \" fudge factors for nroff and troff
-.if n \{\
-. ds #H 0
-. ds #V .8m
-. ds #F .3m
-. ds #[ \f1
-. ds #] \fP
-.\}
-.if t \{\
-. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-. ds #V .6m
-. ds #F 0
-. ds #[ \&
-. ds #] \&
-.\}
-. \" simple accents for nroff and troff
-.if n \{\
-. ds ' \&
-. ds ` \&
-. ds ^ \&
-. ds , \&
-. ds ~ ~
-. ds /
-.\}
-.if t \{\
-. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-. \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-. \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-. \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-. ds : e
-. ds 8 ss
-. ds o a
-. ds d- d\h'-1'\(ga
-. ds D- D\h'-1'\(hy
-. ds th \o'bp'
-. ds Th \o'LP'
-. ds ae ae
-. ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
-.\" ========================================================================
-.\"
-.IX Title "funimageget 3"
-.TH funimageget 3 "April 14, 2011" "version 1.4.5" "SAORD Documentation"
-.SH "NAME"
-FunImageGet \- get an image or image section
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-.Vb 1
-\& #include <funtools.h>
-.Ve
-.PP
-.Vb 1
-\& void *FunImageGet(Fun fun, void *buf, char *plist)
-.Ve
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-The \fB\f(BIFunImageGet()\fB\fR routine returns an binned image array of the
-specified section of a Funtools data file. If the input data are
-already of type image, the array is generated by extracting the
-specified image section and then binning it according to the specified
-bin factor. If the input data are contained in a binary table or raw
-event file, the rows are binned on the columns specified by the
-\&\fBbincols=\fR keyword (using appropriate default columns as
-necessary), after which the image section and bin factors are
-applied. In both cases, the data is automatically converted from \s-1FITS\s0
-to native format, if necessary.
-.PP
-The first argument is the Funtools handle returned by
-\&\fIFunOpen()\fR. The second \fBbuf\fR
-argument is a pointer to a data buffer to fill. If \s-1NULL\s0 is specified,
-FunImageGet will allocate a buffer of the appropriate size. Generally
-speaking, you always want Funtools to allocate the buffer because
-the image dimensions will be determined by
-Funtools image sectioning
-on the command line.
-.PP
-The third \fBplist\fR (i.e., parameter list) argument is a string
-containing one or more comma-delimited \fBkeyword=value\fR
-parameters. It can be used to specify the return data type using the
-\&\fBbitpix=\fR keyword. If no such keyword is specified in the plist
-string, the data type of the returned image is the same as the data type
-of the original input file, or is of type int for \s-1FITS\s0 binary tables.
-.PP
-If the \fBbitpix=\fR keyword is supplied in the plist string, the data
-type of the returned image will be one of the supported \s-1FITS\s0 image
-data types:
-.IP "\(bu" 4
-8 unsigned char
-.IP "\(bu" 4
-16 short
-.IP "\(bu" 4
-32 int
-.IP "\(bu" 4
-\&\-32 float
-.IP "\(bu" 4
-\&\-64 double
-.PP
-For example:
-.PP
-.Vb 4
-\& void *buf;
-\& /* extract data section into an image buffer */
-\& if( !(buf = FunImageGet(fun, NULL, NULL)) )
-\& gerror(stderr, "could not FunImageGet: %s\en", iname);
-.Ve
-.PP
-will allocate buf and retrieve the image in the file data format. In
-this case, you will have to determine the data type (using the
-\&\s-1FUN_SECT_BITPIX\s0 value in the
-\&\fIFunInfoGet()\fR
-routine)
-and then use a switch statement to process each data type:
-.PP
-.Vb 17
-\& int bitpix;
-\& void *buf;
-\& unsigned char *cbuf;
-\& short *sbuf;
-\& int *ibuf;
-\& ...
-\& buf = FunImageGet(fun, NULL, NULL);
-\& FunInfoGet(fun, FUN_SECT_BITPIX, &bitpix, 0);
-\& /* set appropriate data type buffer to point to image buffer */
-\& switch(bitpix){
-\& case 8:
-\& cbuf = (unsigned char *)buf; break;
-\& case 16:
-\& sbuf = (short *)buf; break;
-\& case 32:
-\& ibuf = (int *)buf; break;
-\& ...
-.Ve
-.PP
-See the
-imblank example code
-for more details on how to process an image when the data type is not
-specified beforehand.
-.PP
-It often is easier to specify the data type directly:
-.PP
-.Vb 4
-\& double *buf;
-\& /* extract data section into a double image buffer */
-\& if( !(buf = FunImageGet(fun, NULL, "bitpix=-64")) )
-\& gerror(stderr, "could not FunImageGet: %s\en", iname);
-.Ve
-.PP
-will extract the image while converting to type double.
-.PP
-On success, a pointer to the image buffer is returned. (This will be
-the same as the second argument, if \s-1NULL\s0 is not passed to the latter.)
-On error, \s-1NULL\s0 is returned.
-.PP
-In summary, to retrieve image or row data into a binned image, you simply
-call \fIFunOpen()\fR followed by
-\&\fIFunImageGet()\fR. Generally, you
-then will want to call
-\&\fIFunInfoGet()\fR
-to retrieve the
-axis dimensions (and data type) of the section you are processing
-(so as to take account of sectioning and blocking of the original data):
-.PP
-.Vb 4
-\& double *buf;
-\& int i, j;
-\& int dim1, dim2;
-\& ... other declarations, etc.
-.Ve
-.PP
-.Vb 3
-\& /* open the input FITS file */
-\& if( !(fun = FunOpen(argv[1], "rc", NULL)) )
-\& gerror(stderr, "could not FunOpen input file: %s\en", argv[1]);
-.Ve
-.PP
-.Vb 3
-\& /* extract and bin the data section into a double float image buffer */
-\& if( !(buf = FunImageGet(fun, NULL, "bitpix=-64")) )
-\& gerror(stderr, "could not FunImageGet: %s\en", argv[1]);
-.Ve
-.PP
-.Vb 2
-\& /* get dimension information from funtools structure */
-\& FunInfoGet(fun, FUN_SECT_DIM1, &dim1, FUN_SECT_DIM2, &dim2, 0);
-.Ve
-.PP
-.Vb 4
-\& /* loop through pixels and reset values below limit to value */
-\& for(i=0; i<dim1*dim2; i++){
-\& if( buf[i] <= blimit ) buf[i] = bvalue;
-\& }
-.Ve
-.PP
-Another useful plist string value is \*(L"mask=all\*(R", which returns an
-image populated with regions id values. Image pixels within a region
-will contain the associated region id (region values start at 1), and
-otherwise will contain a 0 value. Thus, the returned image is a
-region mask which can be used to process the image data (which
-presumably is retrieved by a separate call to FunImageGet) pixel by
-pixel.
-.PP
-If a \s-1FITS\s0 binary table or a non-FITS raw event file is being binned
-into an image, it is necessary to specify the two columns that will be
-used in the 2D binning. This usually is done on the command line
-using the \fBbincols=(x,y)\fR keyword:
-.PP
-.Vb 1
-\& funcnts "foo.ev[EVENTS,bincols=(detx,dety)]"
-.Ve
-.PP
-The full form of the \fBbincols=\fR specifier is:
-.PP
-.Vb 1
-\& bincols=([xname[:tlmin[:tlmax:[binsiz]]]],[yname[:tlmin[:tlmax[:binsiz]]]])
-.Ve
-.PP
-where the tlmin, tlmax, and binsiz specifiers determine the image binning
-dimensions:
-.PP
-.Vb 2
-\& dim = (tlmax - tlmin)/binsiz (floating point data)
-\& dim = (tlmax - tlmin)/binsiz + 1 (integer data)
-.Ve
-.PP
-These tlmin, tlmax, and binsiz specifiers can be omitted if \s-1TLMIN\s0,
-\&\s-1TLMAX\s0, and \s-1TDBIN\s0 header parameters (respectively) are present in the
-\&\s-1FITS\s0 binary table header for the column in question. Note that if
-only one parameter is specified, it is assumed to be tlmax, and tlmin
-defaults to 1. If two parameters are specified, they are assumed to be
-tlmin and tlmax.
-.PP
-If \fBbincols\fR is not specified on the command line, Funtools tries
-to use appropriate defaults: it looks for the environment variable
-\&\s-1FITS_BINCOLS\s0 (or \s-1FITS_BINKEY\s0). Then it looks for the Chandra
-parameters \s-1CPREF\s0 (or \s-1PREFX\s0) in the \s-1FITS\s0 binary table header. Failing
-this, it looks for columns named \*(L"X\*(R" and \*(L"Y\*(R" and if these are not
-found, it looks for columns containing the characters \*(L"X\*(R" and \*(L"Y\*(R".
-.PP
-See Binning \s-1FITS\s0 Binary Tables and
-Non-FITS Event Files for more information.
-.SH "SEE ALSO"
-.IX Header "SEE ALSO"
-See funtools(7) for a list of Funtools help pages
diff --git a/funtools/man/man3/funimageput.3 b/funtools/man/man3/funimageput.3
deleted file mode 100644
index 9618944..0000000
--- a/funtools/man/man3/funimageput.3
+++ /dev/null
@@ -1,225 +0,0 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32
-.\"
-.\" Standard preamble:
-.\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
-.de Sp \" Vertical space (when we can't use .PP)
-.if t .sp .5v
-.if n .sp
-..
-.de Vb \" Begin verbatim text
-.ft CW
-.nf
-.ne \\$1
-..
-.de Ve \" End verbatim text
-.ft R
-.fi
-..
-.\" Set up some character translations and predefined strings. \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote. | will give a
-.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
-.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
-.\" expand to `' in nroff, nothing in troff, for use with C<>.
-.tr \(*W-|\(bv\*(Tr
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
-.ie n \{\
-. ds -- \(*W-
-. ds PI pi
-. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
-. ds L" ""
-. ds R" ""
-. ds C` ""
-. ds C' ""
-'br\}
-.el\{\
-. ds -- \|\(em\|
-. ds PI \(*p
-. ds L" ``
-. ds R" ''
-'br\}
-.\"
-.\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
-.\" entries marked with X<> in POD. Of course, you'll have to process the
-.\" output yourself in some meaningful fashion.
-.if \nF \{\
-. de IX
-. tm Index:\\$1\t\\n%\t"\\$2"
-..
-. nr % 0
-. rr F
-.\}
-.\"
-.\" For nroff, turn off justification. Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.if n .na
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear. Run. Save yourself. No user-serviceable parts.
-. \" fudge factors for nroff and troff
-.if n \{\
-. ds #H 0
-. ds #V .8m
-. ds #F .3m
-. ds #[ \f1
-. ds #] \fP
-.\}
-.if t \{\
-. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-. ds #V .6m
-. ds #F 0
-. ds #[ \&
-. ds #] \&
-.\}
-. \" simple accents for nroff and troff
-.if n \{\
-. ds ' \&
-. ds ` \&
-. ds ^ \&
-. ds , \&
-. ds ~ ~
-. ds /
-.\}
-.if t \{\
-. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-. \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-. \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-. \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-. ds : e
-. ds 8 ss
-. ds o a
-. ds d- d\h'-1'\(ga
-. ds D- D\h'-1'\(hy
-. ds th \o'bp'
-. ds Th \o'LP'
-. ds ae ae
-. ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
-.\" ========================================================================
-.\"
-.IX Title "funimageput 3"
-.TH funimageput 3 "April 14, 2011" "version 1.4.5" "SAORD Documentation"
-.SH "NAME"
-FunImagePut \- put an image to a Funtools file
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-.Vb 1
-\& #include <funtools.h>
-.Ve
-.PP
-.Vb 2
-\& int FunImagePut(Fun fun, void *buf, int dim1, int dim2, int bitpix,
-\& char *plist)
-.Ve
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-The \fB\f(BIFunImagePut()\fB\fR routine outputs an image array to a \s-1FITS\s0
-file. The image is written either as a primary header/data unit or as
-an image extension, depending on whether other data have already been
-written to the file. That is, if the current file position is at the
-beginning of the file, a primary \s-1HDU\s0 is written. Otherwise, an
-image extension is written.
-.PP
-The first argument is the Funtools handle returned by
-\&\fIFunOpen()\fR. The second \fBbuf\fR
-argument is a pointer to a data buffer to write. The \fBdim1\fRand
-\&\fBdim2\fR arguments that follow specify the dimensions of the image,
-where dim1 corresponds to naxis1 and dim2 corresponds to naxis2. The
-\&\fBbitpix\fR argument specifies the data type of the image and can
-have the following FITS-standard values:
-.IP "\(bu" 4
-8 unsigned char
-.IP "\(bu" 4
-16 short
-.IP "\(bu" 4
-32 int
-.IP "\(bu" 4
-\&\-32 float
-.IP "\(bu" 4
-\&\-64 double
-.PP
-When \fIFunTableRowPut()\fR is first
-called for a given image, Funtools checks to see if the primary header
-has already been written (by having previously written an image or a
-binary table.) If not, this image is written to the primary \s-1HDU\s0.
-Otherwise, it is written to an image extension.
-.PP
-Thus, a simple program to generate a \s-1FITS\s0 image might look like this:
-.PP
-.Vb 16
-\& int i;
-\& int dim1=512, dim2=512;
-\& double *dbuf;
-\& Fun fun;
-\& dbuf = malloc(dim1*dim2*sizeof(double));
-\& /* open the output FITS image, preparing to copy input params */
-\& if( !(fun = FunOpen(argv[1], "w", NULL)) )
-\& gerror(stderr, "could not FunOpen output file: %s\en", argv[1]);
-\& for(i=0; i<(dim1*dim2); i++){
-\& ... fill dbuf ...
-\& }
-\& /* put the image (header will be generated automatically */
-\& if( !FunImagePut(fun, buf, dim1, dim2, \-64, NULL) )
-\& gerror(stderr, "could not FunImagePut: %s\en", argv[1]);
-\& FunClose(fun);
-\& free(dbuf);
-.Ve
-.PP
-In addition, if a
-Funtools reference handle
-was specified when this table was opened, the
-parameters from this
-Funtools reference handle
-are merged into the new image
-header. Furthermore, if a reference image was specified during
-\&\fIFunOpen()\fR, the values of
-\&\fBdim1\fR, \fBdim2\fR, and \fBbitpix\fR in the calling sequence
-can all be set to 0. In this case, default values are taken from the
-reference image section. This is useful if you are reading an image
-section in its native data format, processing it, and then writing
-that section to a new \s-1FITS\s0 file. See the
-imblank example code.
-.PP
-The data are assumed to be in the native machine format and will
-automatically be swapped to \s-1FITS\s0 big-endian format if necessary. This
-behavior can be over-ridden with the \fBconvert=[true|false]\fR
-keyword in the \fBplist\fR param list string.
-.PP
-When you are finished writing the image, you should call
-\&\fIFunFlush()\fR to write out the \s-1FITS\s0
-image padding. However, this is not necessary if you subsequently call
-\&\fIFunClose()\fR without doing any other I/O to the \s-1FITS\s0 file.
-.SH "SEE ALSO"
-.IX Header "SEE ALSO"
-See funtools(7) for a list of Funtools help pages
diff --git a/funtools/man/man3/funimagerowget.3 b/funtools/man/man3/funimagerowget.3
deleted file mode 100644
index 50a0979..0000000
--- a/funtools/man/man3/funimagerowget.3
+++ /dev/null
@@ -1,215 +0,0 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32
-.\"
-.\" Standard preamble:
-.\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
-.de Sp \" Vertical space (when we can't use .PP)
-.if t .sp .5v
-.if n .sp
-..
-.de Vb \" Begin verbatim text
-.ft CW
-.nf
-.ne \\$1
-..
-.de Ve \" End verbatim text
-.ft R
-.fi
-..
-.\" Set up some character translations and predefined strings. \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote. | will give a
-.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
-.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
-.\" expand to `' in nroff, nothing in troff, for use with C<>.
-.tr \(*W-|\(bv\*(Tr
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
-.ie n \{\
-. ds -- \(*W-
-. ds PI pi
-. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
-. ds L" ""
-. ds R" ""
-. ds C` ""
-. ds C' ""
-'br\}
-.el\{\
-. ds -- \|\(em\|
-. ds PI \(*p
-. ds L" ``
-. ds R" ''
-'br\}
-.\"
-.\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
-.\" entries marked with X<> in POD. Of course, you'll have to process the
-.\" output yourself in some meaningful fashion.
-.if \nF \{\
-. de IX
-. tm Index:\\$1\t\\n%\t"\\$2"
-..
-. nr % 0
-. rr F
-.\}
-.\"
-.\" For nroff, turn off justification. Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.if n .na
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear. Run. Save yourself. No user-serviceable parts.
-. \" fudge factors for nroff and troff
-.if n \{\
-. ds #H 0
-. ds #V .8m
-. ds #F .3m
-. ds #[ \f1
-. ds #] \fP
-.\}
-.if t \{\
-. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-. ds #V .6m
-. ds #F 0
-. ds #[ \&
-. ds #] \&
-.\}
-. \" simple accents for nroff and troff
-.if n \{\
-. ds ' \&
-. ds ` \&
-. ds ^ \&
-. ds , \&
-. ds ~ ~
-. ds /
-.\}
-.if t \{\
-. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-. \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-. \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-. \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-. ds : e
-. ds 8 ss
-. ds o a
-. ds d- d\h'-1'\(ga
-. ds D- D\h'-1'\(hy
-. ds th \o'bp'
-. ds Th \o'LP'
-. ds ae ae
-. ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
-.\" ========================================================================
-.\"
-.IX Title "funimagerowget 3"
-.TH funimagerowget 3 "April 14, 2011" "version 1.4.5" "SAORD Documentation"
-.SH "NAME"
-FunImageRowGet \- get row(s) of an image
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-.Vb 1
-\& #include <funtools.h>
-.Ve
-.PP
-.Vb 2
-\& void *FunImageRowGet(Fun fun, void *buf, int rstart, int rstop,
-\& char *plist)
-.Ve
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-The \fB\f(BIFunImageRowGet()\fB\fR routine returns one or more image rows
-from the specified section of a Funtools data file. If the input data
-are of type image, the array is generated by extracting the specified
-image rows and then binning them according to the specified bin
-factor. If the input data are contained in a binary table or raw
-event file, the rows are binned on the columns specified by the
-\&\fBbincols=\fR keyword (using appropriate default columns as needed),
-after which the image section and bin factors are applied.
-.PP
-The first argument is the Funtools handle returned by
-\&\fIFunOpen()\fR. The second \fBbuf\fR
-argument is a pointer to a data buffer to fill. If \s-1NULL\s0 is specified,
-\&\fIFunImageGet()\fR will allocate a buffer of the appropriate size.
-.PP
-The third and fourth arguments specify the first and last row to
-retrieve. Rows are counted starting from 1, up to the value of
-\&\s-1FUN_YMAX\s0(fun). The final \fBplist\fR (i.e., parameter list) argument
-is a string containing one or more comma-delimited
-\&\fBkeyword=value\fR parameters. It can be used to specify the return
-data type using the \fBbitpix=\fR keyword. If no such keyword is
-specified in the plist string, the data type of the image is the same
-as the data type of the original input file, or is of type int for
-\&\s-1FITS\s0 binary tables.
-.PP
-If the \fBbitpix=\fRvalue is supplied in the plist string, the data
-type of the returned image will be one of the supported \s-1FITS\s0 image
-data types:
-.IP "\(bu" 4
-8 unsigned char
-.IP "\(bu" 4
-16 short
-.IP "\(bu" 4
-32 int
-.IP "\(bu" 4
-\&\-32 float
-.IP "\(bu" 4
-\&\-64 double
-.PP
-For example:
-.PP
-.Vb 17
-\& double *drow;
-\& Fun fun;
-\& ... open files ...
-\& /* get section dimensions */
-\& FunInfoGet(fun, FUN_SECT_DIM1, &dim1, FUN_SECT_DIM2, &dim2, 0);
-\& /* allocate one line's worth */
-\& drow = malloc(dim1*sizeof(double));
-\& /* retrieve and process each input row (starting at 1) */
-\& for(i=1; i <= dim2; i++){
-\& if( !FunImageRowGet(fun, drow, i, i, "bitpix=-64") )
-\& gerror(stderr, "can't FunImageRowGet: %d %s\en", i, iname);
-\& /* reverse the line */
-\& for(j=1; j<=dim1; j++){
-\& ... process drow[j-1] ...
-\& }
-\& }
-\& ...
-.Ve
-.PP
-On success, a pointer to the image buffer is returned. (This will be
-the same as the second argument, if \s-1NULL\s0 is not passed to the latter.)
-On error, \s-1NULL\s0 is returned. Note that the considerations described
-above for specifying binning columns in
-\&\fIFunImageGet()\fR also apply to
-\&\fB\f(BIFunImageRowGet()\fB\fR.
-.SH "SEE ALSO"
-.IX Header "SEE ALSO"
-See funtools(7) for a list of Funtools help pages
diff --git a/funtools/man/man3/funimagerowput.3 b/funtools/man/man3/funimagerowput.3
deleted file mode 100644
index e76bc7f..0000000
--- a/funtools/man/man3/funimagerowput.3
+++ /dev/null
@@ -1,202 +0,0 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32
-.\"
-.\" Standard preamble:
-.\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
-.de Sp \" Vertical space (when we can't use .PP)
-.if t .sp .5v
-.if n .sp
-..
-.de Vb \" Begin verbatim text
-.ft CW
-.nf
-.ne \\$1
-..
-.de Ve \" End verbatim text
-.ft R
-.fi
-..
-.\" Set up some character translations and predefined strings. \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote. | will give a
-.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
-.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
-.\" expand to `' in nroff, nothing in troff, for use with C<>.
-.tr \(*W-|\(bv\*(Tr
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
-.ie n \{\
-. ds -- \(*W-
-. ds PI pi
-. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
-. ds L" ""
-. ds R" ""
-. ds C` ""
-. ds C' ""
-'br\}
-.el\{\
-. ds -- \|\(em\|
-. ds PI \(*p
-. ds L" ``
-. ds R" ''
-'br\}
-.\"
-.\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
-.\" entries marked with X<> in POD. Of course, you'll have to process the
-.\" output yourself in some meaningful fashion.
-.if \nF \{\
-. de IX
-. tm Index:\\$1\t\\n%\t"\\$2"
-..
-. nr % 0
-. rr F
-.\}
-.\"
-.\" For nroff, turn off justification. Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.if n .na
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear. Run. Save yourself. No user-serviceable parts.
-. \" fudge factors for nroff and troff
-.if n \{\
-. ds #H 0
-. ds #V .8m
-. ds #F .3m
-. ds #[ \f1
-. ds #] \fP
-.\}
-.if t \{\
-. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-. ds #V .6m
-. ds #F 0
-. ds #[ \&
-. ds #] \&
-.\}
-. \" simple accents for nroff and troff
-.if n \{\
-. ds ' \&
-. ds ` \&
-. ds ^ \&
-. ds , \&
-. ds ~ ~
-. ds /
-.\}
-.if t \{\
-. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-. \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-. \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-. \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-. ds : e
-. ds 8 ss
-. ds o a
-. ds d- d\h'-1'\(ga
-. ds D- D\h'-1'\(hy
-. ds th \o'bp'
-. ds Th \o'LP'
-. ds ae ae
-. ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
-.\" ========================================================================
-.\"
-.IX Title "funimagerowput 3"
-.TH funimagerowput 3 "April 14, 2011" "version 1.4.5" "SAORD Documentation"
-.SH "NAME"
-FunImageRowPut \- put row(s) of an image
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-.Vb 1
-\& #include <funtools.h>
-.Ve
-.PP
-.Vb 2
-\& void *FunImageRowPut(Fun fun, void *buf, int rstart, int rstop,
-\& int dim1, int dim2, int bitpix, char *plist)
-.Ve
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-The \fB\f(BIFunImageRowPut()\fB\fR routine writes one or more image rows to
-the specified \s-1FITS\s0 image file. The first argument is the Funtools
-handle returned by \fIFunOpen()\fR.
-The second \fBbuf\fR argument is a pointer to the row data buffer,
-while the third and fourth arguments specify the starting and ending
-rows to write. Valid rows values range from 1 to dim2, i.e., row is
-one\-valued.
-.PP
-The \fBdim1\fRand \fBdim2\fR arguments that follow specify the
-dimensions, where dim1 corresponds to naxis1 and dim2 corresponds to
-naxis2. The \fBbitpix\fR argument data type of the image and can
-have the following FITS-standard values:
-.IP "\(bu" 4
-8 unsigned char
-.IP "\(bu" 4
-16 short
-.IP "\(bu" 4
-32 int
-.IP "\(bu" 4
-\&\-32 float
-.IP "\(bu" 4
-\&\-64 double
-.PP
-For example:
-.PP
-.Vb 16
-\& double *drow;
-\& Fun fun, fun2;
-\& ... open files ...
-\& /* get section dimensions */
-\& FunInfoGet(fun, FUN_SECT_DIM1, &dim1, FUN_SECT_DIM2, &dim2, 0);
-\& /* allocate one line's worth */
-\& drow = malloc(dim1*sizeof(double));
-\& /* retrieve and process each input row (starting at 1) */
-\& for(i=1; i <= dim2; i++){
-\& if( !FunImageRowGet(fun, drow, i, i, "bitpix=-64") )
-\& gerror(stderr, "can't FunImageRowGet: %d %s\en", i, iname);
-\& ... process drow ...
-\& if( !FunImageRowPut(fun2, drow, i, i, 64, NULL) )
-\& gerror(stderr, "can't FunImageRowPut: %d %s\en", i, oname);
-\& }
-\& ...
-.Ve
-.PP
-The data are assumed to be in the native machine format and will
-automatically be swapped to big-endian \s-1FITS\s0 format if necessary. This
-behavior can be over-ridden with the \fBconvert=[true|false]\fR
-keyword in the \fBplist\fR param list string.
-.PP
-When you are finished writing the image, you should call
-\&\fIFunFlush()\fR to write out the \s-1FITS\s0
-image padding. However, this is not necessary if you subsequently call
-\&\fIFunClose()\fR without doing any other I/O to the \s-1FITS\s0 file.
-.SH "SEE ALSO"
-.IX Header "SEE ALSO"
-See funtools(7) for a list of Funtools help pages
diff --git a/funtools/man/man3/funinfoget.3 b/funtools/man/man3/funinfoget.3
deleted file mode 100644
index 6bb14c9..0000000
--- a/funtools/man/man3/funinfoget.3
+++ /dev/null
@@ -1,335 +0,0 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32
-.\"
-.\" Standard preamble:
-.\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
-.de Sp \" Vertical space (when we can't use .PP)
-.if t .sp .5v
-.if n .sp
-..
-.de Vb \" Begin verbatim text
-.ft CW
-.nf
-.ne \\$1
-..
-.de Ve \" End verbatim text
-.ft R
-.fi
-..
-.\" Set up some character translations and predefined strings. \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote. | will give a
-.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
-.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
-.\" expand to `' in nroff, nothing in troff, for use with C<>.
-.tr \(*W-|\(bv\*(Tr
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
-.ie n \{\
-. ds -- \(*W-
-. ds PI pi
-. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
-. ds L" ""
-. ds R" ""
-. ds C` ""
-. ds C' ""
-'br\}
-.el\{\
-. ds -- \|\(em\|
-. ds PI \(*p
-. ds L" ``
-. ds R" ''
-'br\}
-.\"
-.\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
-.\" entries marked with X<> in POD. Of course, you'll have to process the
-.\" output yourself in some meaningful fashion.
-.if \nF \{\
-. de IX
-. tm Index:\\$1\t\\n%\t"\\$2"
-..
-. nr % 0
-. rr F
-.\}
-.\"
-.\" For nroff, turn off justification. Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.if n .na
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear. Run. Save yourself. No user-serviceable parts.
-. \" fudge factors for nroff and troff
-.if n \{\
-. ds #H 0
-. ds #V .8m
-. ds #F .3m
-. ds #[ \f1
-. ds #] \fP
-.\}
-.if t \{\
-. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-. ds #V .6m
-. ds #F 0
-. ds #[ \&
-. ds #] \&
-.\}
-. \" simple accents for nroff and troff
-.if n \{\
-. ds ' \&
-. ds ` \&
-. ds ^ \&
-. ds , \&
-. ds ~ ~
-. ds /
-.\}
-.if t \{\
-. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-. \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-. \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-. \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-. ds : e
-. ds 8 ss
-. ds o a
-. ds d- d\h'-1'\(ga
-. ds D- D\h'-1'\(hy
-. ds th \o'bp'
-. ds Th \o'LP'
-. ds ae ae
-. ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
-.\" ========================================================================
-.\"
-.IX Title "funinfoget 3"
-.TH funinfoget 3 "April 14, 2011" "version 1.4.5" "SAORD Documentation"
-.SH "NAME"
-FunInfoGet \- get information from Funtools struct
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-.Vb 1
-\& #include <funtools.h>
-.Ve
-.PP
-.Vb 1
-\& int FunInfoGet(Fun fun, int type, char *addr, ...)
-.Ve
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-The \fB\f(BIFunInfoGet()\fB\fR routine returns information culled from the
-Funtools structure. The first argument is the Fun handle from which
-information is to be retrieved. This first required argument is followed
-by a variable length list of pairs of arguments. Each pair consists
-of an integer representing the type of information to retrieve and the
-address where the information is to be stored. The list is terminated by a 0.
-The routine returns the number of get actions performed.
-.PP
-The full list of available information is described below. Please note
-that only a few of these will be useful to most application developers.
-For imaging applications, the most important types are:
-.PP
-.Vb 3
-\& FUN_SECT_DIM1 int /* dim1 for section */
-\& FUN_SECT_DIM2 int /* dim2 for section */
-\& FUN_SECT_BITPIX int /* bitpix for section */
-.Ve
-.PP
-These would be used to determine the dimensions and data type of image
-data retrieved using the
-\&\fIFunImageGet()\fR routine. For
-example:
-.PP
-.Vb 17
-\& /* extract and bin the data section into an image buffer */
-\& buf = FunImageGet(fun, NULL, NULL);
-\& /* get required information from funtools structure.
-\& this should come after the FunImageGet() call, in case the call
-\& changed sect_bitpix */
-\& FunInfoGet(fun,
-\& FUN_SECT_BITPIX, &bitpix,
-\& FUN_SECT_DIM1, &dim1,
-\& FUN_SECT_DIM2, &dim2,
-\& 0);
-\& /* loop through pixels and reset values below limit to value */
-\& for(i=0; i<dim1*dim2; i++){
-\& switch(bitpix){
-\& case 8:
-\& if( cbuf[i] <= blimit ) cbuf[i] = bvalue;
-\& ...
-\& }
-.Ve
-.PP
-It is important to bear in mind that the call to
-\&\fIFunImageGet()\fR
-can change the value of \s-1FUN_SECT_BITPIX\s0 (e.g. if \*(L"bitpix=n\*(R" is passed
-in the param list). Therefore, a call to
-\&\fIFunInfoGet()\fR
-should be made \fBafter\fR the call to
-\&\fIFunImageGet()\fR,
-in order to retrieve the updated bitpix value.
-See the imblank example code for more
-details.
-.PP
-It also can be useful to retrieve the World Coordinate System
-information from the Funtools structure. Funtools uses the the \s-1WCS\s0
-Library developed by Doug Mink at \s-1SAO\s0, which is available
-here.
-(More information about the WCSTools project in general can be found
-here.)
-The \fIFunOpen()\fR routine initializes
-two \s-1WCS\s0 structures that can be used with this \s-1WCS\s0 Library.
-Applications can retrieve either of these two \s-1WCS\s0 structures using
-\&\fB\f(BIFunInfoGet()\fB\fR:
-.PP
-.Vb 2
-\& FUN_WCS struct WorldCoor * /* wcs structure, for image coordinates*/
-\& FUN_WCS0 struct WorldCoor * /* wcs structure, for physical coordinates */
-.Ve
-.PP
-The structure retrieved by \s-1FUN_WCS\s0 is a \s-1WCS\s0 library handle containing
-parameters suitable for use with image coordinates, regardless of whether the
-data are images or tables. For this structure, the \s-1WCS\s0 reference point
-(\s-1CRPIX\s0) has been converted to image coordinates if the underlying file
-is a table (and therefore in physical coordinates). You therefore must
-ensure that the positions being passed to a routine like pix2wcs are in
-image coordinates. The \s-1FUN_WCS0\s0 structure has not had its \s-1WCS\s0
-reference point converted to image coordinates. It therefore is useful
-when passing processing physical coordinates from a table.
-.PP
-Once a \s-1WCS\s0 structure has been retrieved, it can be used as the first
-argument to the \s-1WCS\s0 library routines. (If the structure is \s-1NULL\s0, no
-\&\s-1WCS\s0 information was contained in the file.) The two important \s-1WCS\s0 routines
-that Funtools uses are:
-.PP
-.Vb 5
-\& #include <wcs.h&gt
-\& void pix2wcs (wcs,xpix,ypix,xpos,ypos)
-\& struct WorldCoor *wcs; /* World coordinate system structure */
-\& double xpix,ypix; /* x and y coordinates in pixels */
-\& double *xpos,*ypos; /* RA and Dec in degrees (returned) */
-.Ve
-.PP
-which converts pixel coordinates to sky coordinates, and:
-.PP
-.Vb 5
-\& void wcs2pix (wcs, xpos, ypos, xpix, ypix, offscl)
-\& struct WorldCoor *wcs; /* World coordinate system structure */
-\& double xpos,ypos; /* World coordinates in degrees */
-\& double *xpix,*ypix; /* coordinates in pixels */
-\& int *offscl; /* 0 if within bounds, else off scale */
-.Ve
-.PP
-which converts sky coordinates to pixel coordinates. Again, please note
-that the wcs structure returned by \s-1FUN_WCS\s0 assumes that image coordinates
-are passed to the pix2wcs routine, while \s-1FUN_WCS0\s0 assumes that physical
-coordinates are passed.
-.PP
-Note that funtools.h file automatically includes wcs.h. An example
-program that utilizes these \s-1WCS\s0 structure to call \s-1WCS\s0 Library routines
-is twcs.c.
-.PP
-The following is the complete list of information that can be returned:
-.PP
-.Vb 52
-\& name type comment
-\& --------- -------- ---------------------------------------------
-\& FUN_FNAME char * /* file name */
-\& FUN_GIO GIO /* gio handle */
-\& FUN_HEADER FITSHead /* fitsy header struct */
-\& FUN_TYPE int /* TY_TABLE,TY_IMAGE,TY_EVENTS,TY_ARRAY */
-\& FUN_BITPIX int /* bits/pixel in file */
-\& FUN_MIN1 int /* tlmin of axis1 -- tables */
-\& FUN_MAX1 int /* tlmax of axis1 -- tables */
-\& FUN_MIN2 int /* tlmin of axis2 -- tables */
-\& FUN_MAX2 int /* tlmax of axis2 -- tables */
-\& FUN_DIM1 int /* dimension of axis1 */
-\& FUN_DIM2 int /* dimension of axis2 */
-\& FUN_ENDIAN int /* 0=little, 1=big endian */
-\& FUN_FILTER char * /* supplied filter */
-\& FUN_IFUN FITSHead /* pointer to reference header */
-\& FUN_IFUN0 FITSHead /* same as above, but no reset performed */
-\& /* image information */
-\& FUN_DTYPE int /* data type for images */
-\& FUN_DLEN int /* length of image in bytes */
-\& FUN_DPAD int /* padding to end of extension */
-\& FUN_DOBLANK int /* was blank keyword defined? */
-\& FUN_BLANK int /* value for blank */
-\& FUN_SCALED int /* was bscale/bzero defined? */
-\& FUN_BSCALE double /* bscale value */
-\& FUN_BZERO double /* bzero value */
-\& /* table information */
-\& FUN_NROWS int /* number of rows in file (naxis2) */
-\& FUN_ROWSIZE int /* size of user row struct */
-\& FUN_BINCOLS char * /* specified binning columns */
-\& FUN_OVERFLOW int /* overflow detected during binning? */
-\& /* array information */
-\& FUN_SKIP int /* bytes to skip in array header */
-\& /* section information */
-\& FUN_SECT_X0 int /* low dim1 value of section */
-\& FUN_SECT_X1 int /* hi dim1 value of section */
-\& FUN_SECT_Y0 int /* low dim2 value of section */
-\& FUN_SECT_Y1 int /* hi dim2 value of section */
-\& FUN_SECT_BLOCK int /* section block factor */
-\& FUN_SECT_BTYPE int /* 's' (sum), 'a' (average) for binning */
-\& FUN_SECT_DIM1 int /* dim1 for section */
-\& FUN_SECT_DIM2 int /* dim2 for section */
-\& FUN_SECT_BITPIX int /* bitpix for section */
-\& FUN_SECT_DTYPE int /* data type for section */
-\& FUN_RAWBUF char * /* pointer to raw row buffer */
-\& FUN_RAWSIZE int /* byte size of raw row records */
-\& /* column information */
-\& FUN_NCOL int /* number of row columns defined */
-\& FUN_COLS FunCol /* array of row columns */
-\& /* WCS information */
-\& FUN_WCS struct WorldCoor * /* wcs structure, converted for images*/
-\& FUN_WCS0 struct WorldCoor * /* wcs structure, not converted */
-.Ve
-.PP
-Row applications would not normally need any of this information.
-An example of how these values can be used in more complex programs is
-the evnext example code. In this program, the
-time value for each row is changed to be the value of the succeeding
-row. The program thus reads the time values for a batch of rows,
-changes the time values to be the value for the succeeding row, and
-then merges these changed time values back with the other columns to
-the output file. It then reads the next batch, etc.
-.PP
-This does not work for the last row read in each batch, since there
-is no succeeding row until the next batch is read. Therefore, the
-program saves that last row until it has read the next batch, then
-processes the former before starting on the new batch. In order to
-merge the last row successfully, the code uses \s-1FUN_RAWBUF\s0 to save
-and restore the raw input data associated with each batch of
-rows. Clearly, this requires some information about how funtools
-works internally. We are happy to help you write such programs as the
-need arises.
-.SH "SEE ALSO"
-.IX Header "SEE ALSO"
-See funtools(7) for a list of Funtools help pages
diff --git a/funtools/man/man3/funinfoput.3 b/funtools/man/man3/funinfoput.3
deleted file mode 100644
index 986fa9c..0000000
--- a/funtools/man/man3/funinfoput.3
+++ /dev/null
@@ -1,246 +0,0 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32
-.\"
-.\" Standard preamble:
-.\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
-.de Sp \" Vertical space (when we can't use .PP)
-.if t .sp .5v
-.if n .sp
-..
-.de Vb \" Begin verbatim text
-.ft CW
-.nf
-.ne \\$1
-..
-.de Ve \" End verbatim text
-.ft R
-.fi
-..
-.\" Set up some character translations and predefined strings. \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote. | will give a
-.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
-.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
-.\" expand to `' in nroff, nothing in troff, for use with C<>.
-.tr \(*W-|\(bv\*(Tr
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
-.ie n \{\
-. ds -- \(*W-
-. ds PI pi
-. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
-. ds L" ""
-. ds R" ""
-. ds C` ""
-. ds C' ""
-'br\}
-.el\{\
-. ds -- \|\(em\|
-. ds PI \(*p
-. ds L" ``
-. ds R" ''
-'br\}
-.\"
-.\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
-.\" entries marked with X<> in POD. Of course, you'll have to process the
-.\" output yourself in some meaningful fashion.
-.if \nF \{\
-. de IX
-. tm Index:\\$1\t\\n%\t"\\$2"
-..
-. nr % 0
-. rr F
-.\}
-.\"
-.\" For nroff, turn off justification. Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.if n .na
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear. Run. Save yourself. No user-serviceable parts.
-. \" fudge factors for nroff and troff
-.if n \{\
-. ds #H 0
-. ds #V .8m
-. ds #F .3m
-. ds #[ \f1
-. ds #] \fP
-.\}
-.if t \{\
-. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-. ds #V .6m
-. ds #F 0
-. ds #[ \&
-. ds #] \&
-.\}
-. \" simple accents for nroff and troff
-.if n \{\
-. ds ' \&
-. ds ` \&
-. ds ^ \&
-. ds , \&
-. ds ~ ~
-. ds /
-.\}
-.if t \{\
-. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-. \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-. \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-. \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-. ds : e
-. ds 8 ss
-. ds o a
-. ds d- d\h'-1'\(ga
-. ds D- D\h'-1'\(hy
-. ds th \o'bp'
-. ds Th \o'LP'
-. ds ae ae
-. ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
-.\" ========================================================================
-.\"
-.IX Title "funinfoput 3"
-.TH funinfoput 3 "April 14, 2011" "version 1.4.5" "SAORD Documentation"
-.SH "NAME"
-FunInfoPut \- put information into a Funtools struct
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-.Vb 1
-\& #include <funtools.h>
-.Ve
-.PP
-.Vb 1
-\& int FunInfoPut(Fun fun, int type, char *addr, ...)
-.Ve
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-The \fB\f(BIFunInfoPut()\fB\fR routine puts information into a Funtools
-structure. The first argument is the Fun handle from which
-information is to be retrieved. After this first required argument
-comes a variable length list of pairs of arguments. Each pair consists
-of an integer representing the type of information to store and the
-address of the new information to store in the struct. The variable
-list is terminated by a 0. The routine returns the number of put
-actions performed.
-.PP
-The full list of available information is described above with the
-\&\fIFunInfoPut()\fR routine. Although
-use of this routine is expected to be uncommon, there is one
-important situation in which it plays an essential part: writing
-multiple extensions to a single output file.
-.PP
-For input, multiple extensions are handled by calling
-\&\fIFunOpen()\fR for each extension to be
-processed. When opening multiple inputs, it sometimes is the case that
-you will want to process them and then write them (including their
-header parameters) to a single output file. To accomplish this, you
-open successive input extensions using
-\&\fIFunOpen()\fR and then call
-\&\fB\f(BIFunInfoPut()\fB\fR to set the
-Funtools reference handle
-of the output file to that of the newly opened input extension:
-.PP
-.Vb 4
-\& /* open a new input extension */
-\& ifun=FunOpen(tbuf, "r", NULL)) )
-\& /* make the new extension the reference handle for the output file */
-\& FunInfoPut(ofun, FUN_IFUN, &ifun, 0);
-.Ve
-.PP
-Resetting \s-1FUN_IFUN\s0 has same effect as when a funtools handle is passed
-as the final argument to
-\&\fIFunOpen()\fR. The state of the output
-file is reset so that a new extension is ready to be written.
-Thus, the next I/O call on the output extension will output the
-header, as expected.
-.PP
-For example, in a binary table, after resetting \s-1FUN_IFUN\s0 you can then
-call \fIFunColumnSelect()\fR to
-select the columns for output. When you then call
-\&\fIFunImagePut()\fR or <A
-HREF=\*(L"./library.html#funtablerowput\*(R">\fIFunTableRowPut()\fR, a new
-extension will be written that contains the header parameters from the
-reference extension. Remember to call
-\&\fIFunFlush()\fR to complete output of a
-given extension.
-.PP
-A complete example of this capability is given
-in the evcol example code.
-The central algorithm is:
-.IP "\(bu" 4
-open the output file without a reference handle
-.IP "\(bu" 4
-loop: open each input extension in turn
-.RS 4
-.IP "\(bu" 4
-set the reference handle for output to the newly opened input extension
-.IP "\(bu" 4
-read the input rows or image and perform processing
-.IP "\(bu" 4
-write new rows or image to the output file
-.IP "\(bu" 4
-flush the output
-.IP "\(bu" 4
-close input extension
-.RE
-.RS 4
-.RE
-.IP "\(bu" 4
-close output file
-.PP
-Note that \fIFunFlush()\fR is called
-after processing each input extension in order to ensure that the
-proper padding is written to the output file. A call to
-\&\fIFunFlush()\fR also ensures that the
-extension header is written to the output file in the case where there
-are no rows to output.
-.PP
-If you wish to output a new extension without using a
-Funtools reference handle, you can
-call \fIFunInfoPut()\fR to reset the \s-1FUN_OPS\s0 value directly. For a binary
-table, you would then call \fIFunColumnSelect()\fR to set up the columns for
-this new extension.
-.PP
-.Vb 6
-\& /* reset the operations performed on this handle */
-\& int ops=0;
-\& FunInfoPut(ofun, FUN_OPS, &ops, 0);
-\& FunColumnSelect(fun, sizeof(EvRec), NULL,
-\& "MYCOL", "J", "w", FUN_OFFSET(Ev, mycol),
-\& NULL);
-.Ve
-.PP
-Once the \s-1FUN_OPS\s0 variable has been reset, the next I/O call on the
-output extension will output the header, as expected.
-.SH "SEE ALSO"
-.IX Header "SEE ALSO"
-See funtools(7) for a list of Funtools help pages
diff --git a/funtools/man/man3/funlib.3 b/funtools/man/man3/funlib.3
deleted file mode 100644
index 6b4456a..0000000
--- a/funtools/man/man3/funlib.3
+++ /dev/null
@@ -1,525 +0,0 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32
-.\"
-.\" Standard preamble:
-.\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
-.de Sp \" Vertical space (when we can't use .PP)
-.if t .sp .5v
-.if n .sp
-..
-.de Vb \" Begin verbatim text
-.ft CW
-.nf
-.ne \\$1
-..
-.de Ve \" End verbatim text
-.ft R
-.fi
-..
-.\" Set up some character translations and predefined strings. \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote. | will give a
-.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
-.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
-.\" expand to `' in nroff, nothing in troff, for use with C<>.
-.tr \(*W-|\(bv\*(Tr
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
-.ie n \{\
-. ds -- \(*W-
-. ds PI pi
-. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
-. ds L" ""
-. ds R" ""
-. ds C` ""
-. ds C' ""
-'br\}
-.el\{\
-. ds -- \|\(em\|
-. ds PI \(*p
-. ds L" ``
-. ds R" ''
-'br\}
-.\"
-.\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
-.\" entries marked with X<> in POD. Of course, you'll have to process the
-.\" output yourself in some meaningful fashion.
-.if \nF \{\
-. de IX
-. tm Index:\\$1\t\\n%\t"\\$2"
-..
-. nr % 0
-. rr F
-.\}
-.\"
-.\" For nroff, turn off justification. Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.if n .na
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear. Run. Save yourself. No user-serviceable parts.
-. \" fudge factors for nroff and troff
-.if n \{\
-. ds #H 0
-. ds #V .8m
-. ds #F .3m
-. ds #[ \f1
-. ds #] \fP
-.\}
-.if t \{\
-. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-. ds #V .6m
-. ds #F 0
-. ds #[ \&
-. ds #] \&
-.\}
-. \" simple accents for nroff and troff
-.if n \{\
-. ds ' \&
-. ds ` \&
-. ds ^ \&
-. ds , \&
-. ds ~ ~
-. ds /
-.\}
-.if t \{\
-. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-. \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-. \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-. \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-. ds : e
-. ds 8 ss
-. ds o a
-. ds d- d\h'-1'\(ga
-. ds D- D\h'-1'\(hy
-. ds th \o'bp'
-. ds Th \o'LP'
-. ds ae ae
-. ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
-.\" ========================================================================
-.\"
-.IX Title "funlib 3"
-.TH funlib 3 "April 14, 2011" "version 1.4.5" "SAORD Documentation"
-.SH "NAME"
-FunLib \- the Funtools Programming Interface
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-A description of the Funtools library.
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-\&\fBIntroduction to the Funtools Programming Interface\fR
-.PP
-To create a Funtools application, you need to include
-the funtools.h definitions file in your code:
-.PP
-.Vb 1
-\& #include <funtools.h>
-.Ve
-.PP
-You then call Funtools subroutines and functions to access Funtools data.
-The most important routines are:
-.IP "\(bu" 4
-FunOpen: open a Funtools file
-.IP "\(bu" 4
-FunInfoGet: get info about an image or table
-.IP "\(bu" 4
-FunImageGet: retrieve image data
-.IP "\(bu" 4
-FunImageRowGet: retrieve image data by row
-.IP "\(bu" 4
-FunImagePut: output image data
-.IP "\(bu" 4
-FunImageRowPut: output image data by row
-.IP "\(bu" 4
-FunColumnSelect: select columns in a table for access
-.IP "\(bu" 4
-FunTableRowGet: retrieve rows from a table
-.IP "\(bu" 4
-FunTableRowPut: output rows to a table
-.IP "\(bu" 4
-FunClose: close a Funtools file
-.PP
-Your program must be linked against the libfuntools.a library,
-along with the math library. The following libraries also might be required
-on your system:
-.IP "\(bu" 4
-\&\-lsocket \-lnsl for socket support
-.IP "\(bu" 4
-\&\-ldl for dynamic loading
-.PP
-For example, on a Solaris system using gcc, use the following link line:
-.PP
-.Vb 1
-\& gcc \-o foo foo.c \-lfuntools \-lsocket \-lnsl \-ldl \-lm
-.Ve
-.PP
-On a Solaris system using Solaris cc, use the following link line:
-.PP
-.Vb 1
-\& gcc \-o foo foo.c \-lfuntools \-lsocket \-lnsl \-lm
-.Ve
-.PP
-On a Linux system using gcc, use the following link line:
-.PP
-.Vb 1
-\& gcc \-o foo foo.c \-lfuntools \-ldl \-lm
-.Ve
-.PP
-Once configure has built a Makefile on your platform, the required
-\&\*(L"extra\*(R" libraries (aside from \-lm, which always is required) are
-specified in that file's \s-1EXTRA_LIBS\s0 variable. For example, under
-Linux you will find:
-.PP
-.Vb 3
-\& grep EXTRA_LIBS Makefile
-\& EXTRA_LIBS = \-ldl
-\& ...
-.Ve
-.PP
-The Funtools library contains both the zlib library
-(http://www.gzip.org/zlib/) and Doug Mink's \s-1WCS\s0 library
-(http://tdc\-www.harvard.edu/software/wcstools/). It is not necessary
-to put these libraries on a Funtools link line. Include files
-necessary for using these libraries are installed in the Funtools
-include directory.
-.PP
-\&\fBFuntools Programming Tutorial\fR
-.PP
-The
-\&\fIFunOpen()\fR
-function is used to open a \s-1FITS\s0 file, an array, or a raw event file:
-.PP
-.Vb 4
-\& /* open the input FITS file for reading */
-\& ifun = FunOpen(iname, "r", NULL);
-\& /* open the output FITS file for writing, and connect it to the input file */
-\& ofun = FunOpen(iname, "w", ifun);
-.Ve
-.PP
-A new output file can inherit header parameters automatically from
-existing input file by passing the input Funtools handle as the last
-argument to the new file's
-\&\fIFunOpen()\fR
-call as shown above.
-.PP
-For image data, you then can call
-\&\fIFunImageGet()\fR
-to read an image into memory.
-.PP
-.Vb 3
-\& float buf=NULL;
-\& /* extract and bin the data section into an image buffer */
-\& buf = FunImageGet(fun, NULL, "bitpix=-32");
-.Ve
-.PP
-If the (second) buf argument to this call is \s-1NULL\s0, buffer space is allocated
-automatically. The (third) plist argument can be used to specify the
-return data type of the array. If \s-1NULL\s0 is specified, the data type of
-the input file is used.
-.PP
-To process an image buffer, you would generally make a call to
-\&\fIFunInfoGet()\fR to determine the
-dimensions of the image (which may have been changed from the original
-file dimensions due to Funtools image
-sectioning on the command line). In a \s-1FITS\s0 image, the index along
-the dim1 axis varies most rapidly, followed by the dim2 axis, etc.
-Thus, to access each pixel in an 2D image, use a double loop such as:
-.PP
-.Vb 7
-\& buf = FunImageGet(fun, NULL, "bitpix=-32");
-\& FunInfoGet(fun, FUN_SECT_DIM1, &dim1, FUN_SECT_DIM2, &dim2, 0);
-\& for(i=1; i<=dim2; i++){
-\& for(j=1; j<=dim1; j++){
-\& ... process buf[((i-1)*dim1)+(j-1)] ...
-\& }
-\& }
-.Ve
-.PP
-or:
-.PP
-.Vb 5
-\& buf = FunImageGet(fun, NULL, "bitpix=-32");
-\& FunInfoGet(fun, FUN_SECT_DIM1, &dim1, FUN_SECT_DIM2, &dim2, 0);
-\& for(i=0; i<(dim1*dim2); i++){
-\& ... process buf[i] ...
-\& }
-.Ve
-.PP
-Finally, you can write the resulting image to disk using
-\&\fIFunImagePut()\fR:
-.PP
-.Vb 1
-\& FunImagePut(fun2, buf, dim1, dim2, \-32, NULL);
-.Ve
-.PP
-Note that Funtools automatically takes care of book-keeping tasks such as
-reading and writing \s-1FITS\s0 headers (although you can, of course, write
-your own header or add your own parameters to a header).
-.PP
-For binary tables and raw event files, a call to
-\&\fIFunOpen()\fR
-will be followed by a call to the
-\&\fIFunColumnSelect()\fR
-routine to select columns to be read from the input file and/or
-written to the output file:
-.PP
-.Vb 8
-\& typedef struct evstruct{
-\& double time;
-\& int time2;
-\& } *Ev, EvRec;
-\& FunColumnSelect(fun, sizeof(EvRec), NULL,
-\& "time", "D", "rw", FUN_OFFSET(Ev, time),
-\& "time2", "J", "w", FUN_OFFSET(Ev, time2),
-\& NULL);
-.Ve
-.PP
-Columns whose (third) mode argument contains an \*(L"r\*(R" are \*(L"readable\*(R",
-i.e., columns will be read from the input file and converted into the
-data type specified in the call's second argument. These columns
-values then are stored in the specified offset of the user record
-structure. Columns whose mode argument contains a \*(L"w\*(R" are
-\&\*(L"writable\*(R", i.e., these values will be written to the output file.
-The
-\&\fIFunColumnSelect()\fR
-routine also offers the option of automatically merging user
-columns with the original input columns when writing the output
-rows.
-.PP
-Once a set of columns has been specified, you can retrieve rows using
-\&\fIFunTableRowGet()\fR,
-and write the rows using
-\&\fIFunTableRowPut()\fR:
-.PP
-.Vb 17
-\& Ev ebuf, ev;
-\& /* get rows -- let routine allocate the array */
-\& while( (ebuf = (Ev)FunTableRowGet(fun, NULL, MAXROW, NULL, &got)) ){
-\& /* process all rows */
-\& for(i=0; i<got; i++){
-\& /* point to the i'th row */
-\& ev = ebuf+i;
-\& /* time2 is generated here */
-\& ev->time2 = (int)(ev->time+.5);
-\& /* change the input time as well */
-\& ev->time = -(ev->time/10.0);
-\& }
-\& /* write out this batch of rows with the new column */
-\& FunTableRowPut(fun2, (char *)ebuf, got, 0, NULL);
-\& /* free row data */
-\& if( ebuf ) free(ebuf);
-\& }
-.Ve
-.PP
-The input rows are retrieved into an array of user structs, which
-can be accessed serially as shown above. Once again, Funtools
-automatically takes care of book-keeping tasks such as reading and writing
-\&\s-1FITS\s0 headers (although you can, of course, write your own header or
-add your own parameters to a header).
-.PP
-When all processing is done, you can call
-\&\fIFunClose()\fR
-to close the file(s):
-.PP
-.Vb 2
-\& FunClose(fun2);
-\& FunClose(fun);
-.Ve
-.PP
-These are the basics of processing \s-1FITS\s0 files (and arrays or raw event
-data) using Funtools. The routines in these examples are described in
-more detail below, along with a few other routines that support
-parameter access, data flushing, etc.
-.PP
-\&\fBCompiling and Linking\fR
-.PP
-To create a Funtools application, a software developer will include
-the funtools.h definitions file in Funtools code:
-.PP
-.Vb 1
-\& #include <funtools.h>
-.Ve
-.PP
-The program is linked against the libfuntools.a library, along with the
-math library (and the dynamic load library, if the latter is available
-on your system):
-.PP
-.Vb 1
-\& gcc \-o foo foo.c \-lfuntools \-ldl \-lm
-.Ve
-.PP
-If gcc is used, Funtools filtering can be performed using dynamically
-loaded shared objects that are built at run\-time. Otherwise, filtering
-is performed using a slave process.
-.PP
-Funtools has been built on the following systems:
-.IP "\(bu" 4
-Sun/Solaris 5.X
-.IP "\(bu" 4
-Linux/RedHat Linux 5.X,6.X,7.X
-.IP "\(bu" 4
-Dec Alpha/OSF1 V4.X
-.IP "\(bu" 4
-WindowsNT/Cygwin 1.0
-.IP "\(bu" 4
-\&\s-1SGI/IRIX64\s0 6.5
-.PP
-\&\fBA Short Digression on Subroutine Order\fR
-.PP
-There is a natural order for all I/O access libraries. You would not
-think of reading a file without first opening it, or writing a file
-after closing it. A large part of the experiment in funtools is to use
-the idea of \*(L"natural order\*(R" as a means of making programming
-easier. We do this by maintaining the state of processing for a given
-funtools file, so that we can do things like write headers and flush
-extension padding at the right time, without you having to do it.
-.PP
-For example, if you open a new funtools file for writing using
-\&\fIFunOpen()\fR,
-then generate an array of image data and call
-\&\fIFunImagePut()\fR,
-funtools knows to write the image header automatically.
-There is no need to think about writing a standard header.
-Of course, you can add parameters to the file first by
-calling one of the
-\&\fIFunParamPut()\fR
-routines, and these parameters will automatically be added
-to the header when it is written out. There still is no
-need to write the header explicitly.
-.PP
-Maintaining state in this way means that there are certain rules of
-order which should be maintained in any funtools program. In particular,
-we strongly recommend the following ordering rules be adhered to:
-.IP "\(bu" 4
-When specifying that input extensions be copied to an output file
-via a reference handle, open the output file \fBbefore\fR reading the
-input file. (Otherwise the initial copy will not occur).
-.IP "\(bu" 4
-Always write parameters to an output file using one of the
-\&\fIFunParamPut()\fR calls
-\&\fBbefore\fR writing any data. (This is a good idea for all \s-1FITS\s0
-libraries, to avoid having to recopy data is the \s-1FITS\s0 header needs
-to be extended by adding a single parameter.)
-.IP "\(bu" 4
-If you retrieve an image, and need to know the data
-type, use the \s-1FUN_SECT_BITPIX\s0 option of
-\&\fIFunInfoGet()\fR,
-\&\fBafter\fR calling
-\&\fIFunImageGet()\fR, since
-it is possible to change the value of \s-1BITPIX\s0 from the latter.
-.IP "\(bu" 4
-When specifying that input extensions be copied to an output file
-via a reference handle, close the output file \fBbefore\fR closing
-input file, or else use
-\&\fIFunFlush()\fR
-explicitly on the output file
-\&\fBbefore\fR closing the input file. (Otherwise the final copy will
-not occur).
-.PP
-We believe that these are the natural rules that are implied in most
-\&\s-1FITS\s0 programming tasks. However, we recognize that making explicit use
-of \*(L"natural order\*(R" to decide what automatic action to take on behalf
-of the programmer is experimental. Therefore, if you find that your
-needs are not compatible with our preferred order, please let us know
-\&\*(-- it will be most illuminating for us as we evaluate this experiment.
-.PP
-\&\fBFuntools Programming Examples\fR
-.PP
-The following complete coding examples are provided to illustrate the
-simplicity of Funtools applications. They can be found in the funtest
-subdirectory of the Funtools distribution. In many cases, you should
-be able to modify one of these programs to generate your own Funtools
-program:
-.IP "\(bu" 4
-evread.c: read and write binary tables
-.IP "\(bu" 4
-evcols.c: add column and rows to binary tables
-.IP "\(bu" 4
-evmerge.c: merge new columns with existing columns
-.IP "\(bu" 4
-evnext.c: manipulate raw data pointers
-.IP "\(bu" 4
-imblank.c: blank out image values below a threshold
-.IP "\(bu" 4
-asc2fits.c: convert a specific \s-1ASCII\s0 table to \s-1FITS\s0 binary table
-.PP
-\&\fBThe Funtools Programming Reference Manual\fR
-.PP
-#include <funtools.h>
-.PP
-Fun FunOpen(char *name, char *mode, Fun ref)
-.PP
-void *FunImageGet(Fun fun, void *buf, char *plist)
-.PP
-int FunImagePut(Fun fun, void *buf, int dim1, int dim2, int bitpix, char *plist)
-.PP
-void * FunImageRowGet(Fun fun, void *buf, int rstart, int rstop, char *plist)
-.PP
-void * FunImageRowPut(Fun fun, void *buf, int rstart, int rstop, int dim1, int dim2, int bitpix, char *plist)
-.PP
-int FunColumnSelect(Fun fun, int size, char *plist, ...)
-.PP
-void FunColumnActivate(Fun fun, char *s, char *plist)
-.PP
-int FunColumnLookup(Fun fun, char *s, int which, char **name, int *type, int *mode, int *offset, int *n, int *width)
-.PP
-void *FunTableRowGet(Fun fun, void *rows, int maxrow, char *plist, int *nrow)
-.PP
-int FunTableRowPut(Fun fun, void *rows, int nev, int idx, char *plist)
-.PP
-int FunParamGetb(Fun fun, char *name, int n, int defval, int *got)
-.PP
-int FunParamGeti(Fun fun, char *name, int n, int defval, int *got)
-.PP
-double FunParamGetd(Fun fun, char *name, int n, double defval, int *got)
-.PP
-char *FunParamGets(Fun fun, char *name, int n, char *defval, int *got)
-.PP
-int FunParamPutb(Fun fun, char *name, int n, int value, char *comm, int append)
-.PP
-int FunParamPuti(Fun fun, char *name, int n, int value, char *comm, int append)
-.PP
-int FunParamPutd(Fun fun, char *name, int n, double value, int prec, char *comm, int append)
-.PP
-int FunParamPuts(Fun fun, char *name, int n, char *value, char *comm, int append)
-.PP
-int FunInfoGet(Fun fun, int type, ...)
-.PP
-int FunInfoPut(Fun fun, int type, ...)
-.PP
-void FunFlush(Fun fun, char *plist)
-.PP
-void FunClose(Fun fun)
-.SH "SEE ALSO"
-.IX Header "SEE ALSO"
-See funtools(7) for a list of Funtools help pages
diff --git a/funtools/man/man3/funopen.3 b/funtools/man/man3/funopen.3
deleted file mode 100644
index f185ea5..0000000
--- a/funtools/man/man3/funopen.3
+++ /dev/null
@@ -1,272 +0,0 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32
-.\"
-.\" Standard preamble:
-.\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
-.de Sp \" Vertical space (when we can't use .PP)
-.if t .sp .5v
-.if n .sp
-..
-.de Vb \" Begin verbatim text
-.ft CW
-.nf
-.ne \\$1
-..
-.de Ve \" End verbatim text
-.ft R
-.fi
-..
-.\" Set up some character translations and predefined strings. \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote. | will give a
-.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
-.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
-.\" expand to `' in nroff, nothing in troff, for use with C<>.
-.tr \(*W-|\(bv\*(Tr
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
-.ie n \{\
-. ds -- \(*W-
-. ds PI pi
-. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
-. ds L" ""
-. ds R" ""
-. ds C` ""
-. ds C' ""
-'br\}
-.el\{\
-. ds -- \|\(em\|
-. ds PI \(*p
-. ds L" ``
-. ds R" ''
-'br\}
-.\"
-.\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
-.\" entries marked with X<> in POD. Of course, you'll have to process the
-.\" output yourself in some meaningful fashion.
-.if \nF \{\
-. de IX
-. tm Index:\\$1\t\\n%\t"\\$2"
-..
-. nr % 0
-. rr F
-.\}
-.\"
-.\" For nroff, turn off justification. Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.if n .na
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear. Run. Save yourself. No user-serviceable parts.
-. \" fudge factors for nroff and troff
-.if n \{\
-. ds #H 0
-. ds #V .8m
-. ds #F .3m
-. ds #[ \f1
-. ds #] \fP
-.\}
-.if t \{\
-. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-. ds #V .6m
-. ds #F 0
-. ds #[ \&
-. ds #] \&
-.\}
-. \" simple accents for nroff and troff
-.if n \{\
-. ds ' \&
-. ds ` \&
-. ds ^ \&
-. ds , \&
-. ds ~ ~
-. ds /
-.\}
-.if t \{\
-. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-. \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-. \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-. \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-. ds : e
-. ds 8 ss
-. ds o a
-. ds d- d\h'-1'\(ga
-. ds D- D\h'-1'\(hy
-. ds th \o'bp'
-. ds Th \o'LP'
-. ds ae ae
-. ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
-.\" ========================================================================
-.\"
-.IX Title "funopen 3"
-.TH funopen 3 "April 14, 2011" "version 1.4.5" "SAORD Documentation"
-.SH "NAME"
-FunOpen \- open a Funtools data file
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-.Vb 1
-\& #include <funtools.h>
-.Ve
-.PP
-.Vb 1
-\& Fun FunOpen(char *name, char *mode, Fun ref);
-.Ve
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-The \fB\f(BIFunOpen()\fB\fR routine opens a Funtools data file for reading or
-appending, or creates a new \s-1FITS\s0 file for writing. The \fBname\fR
-argument specifies the name of the Funtools data file to open. You can
-use IRAF-style bracket notation to specify
-Funtools Files, Extensions, and Filters.
-A separate call should be made each time a different \s-1FITS\s0 extension is
-accessed:
-.PP
-.Vb 7
-\& Fun fun;
-\& char *iname;
-\& ...
-\& if( !(fun = FunOpen(iname, "r", NULL)) ){
-\& fprintf(stderr, "could not FunOpen input file: %s\en", iname);
-\& exit(1);
-\& }
-.Ve
-.PP
-If \fBmode\fR is \*(L"r\*(R", the file is opened for reading, and processing
-is set up to begin at the specified extension. For reading,
-\&\fBname\fR can be \fBstdin\fR, in which case the standard input is read.
-.PP
-If \fBmode\fR is \*(L"w\*(R", the file is created if it does not exist, or
-opened and truncated for writing if it does exist. Processing starts
-at the beginning of the file. The \fBname\fR can be \fBstdout\fR,
-in which case the standard output is readied for processing.
-.PP
-If \fBmode\fR is \*(L"a\*(R", the file is created if it does not exist, or
-opened if it does exist. Processing starts at the end of the file.
-The \fBname\fR can be \fBstdout\fR, in which case the standard
-output is readied for processing.
-.PP
-When a Funtools file is opened for writing or appending, a previously
-opened Funtools reference
-handle can be specified as the third argument. This handle
-typically is associated with the input Funtools file that will be used
-to generate the data for the output data. When a reference file is
-specified in this way, the output file will inherit the (extension)
-header parameters from the input file:
-.PP
-.Vb 8
-\& Fun fun, fun2;
-\& ...
-\& /* open input file */
-\& if( !(fun = FunOpen(argv[1], "r", NULL)) )
-\& gerror(stderr, "could not FunOpen input file: %s\en", argv[1]);
-\& /* open the output FITS image, inheriting params from input */
-\& if( !(fun2 = FunOpen(argv[2], "w", fun)) )
-\& gerror(stderr, "could not FunOpen output file: %s\en", argv[2]);
-.Ve
-.PP
-Thus, in the above example, the output \s-1FITS\s0 binary table file will
-inherit all of the parameters associated with the input binary table
-extension.
-.PP
-A file opened for writing with a
-Funtools reference handle also
-inherits the selected columns (i.e. those columns chosen for
-processing using the
-\&\fIFunColumnSelect()\fR routine)
-from the reference file as its default columns. This makes it easy to
-open an output file in such a way that the columns written to the
-output file are the same as the columns read in the input file. Of
-course, column selection can easily be tailored using the
-\&\fIFunColumnSelect()\fR routine.
-In particular, it is easy to merge user-defined columns with the input
-columns to generate a new file. See the
-evmerge for a complete example.
-.PP
-In addition, when a
-Funtools reference handle
-is supplied in a \fIFunOpen()\fR call,
-it is possible also to specify that all other extensions from the
-reference file (other than the input extension being processed) should
-be copied from the reference file to the output file. This is useful,
-for example, in a case where you are processing a \s-1FITS\s0 binary table
-or image and you want to copy all of the other extensions to
-the output file as well. Copy of other extensions is controlled by
-adding a \*(L"C\*(R" or \*(L"c\*(R" to the mode string of the
-\&\fIFunOpen()\fR call of the input
-reference file. If \*(L"C\*(R" is specified, then other extensions are
-\&\fBalways\fR copied (i.e., copy is forced by the application). If
-\&\*(L"c\*(R" is used, then other extensions are copied if the user requests
-copying by adding a plus sign \*(L"+\*(R" to the extension name in the bracket
-specification. For example, the \fBfuntable\fR program utilizes
-\&\*(L"c\*(R" mode, giving users the option of copying all other extensions:
-.PP
-.Vb 6
-\& /* open input file -- allow user copy of other extensions */
-\& if( !(fun = FunOpen(argv[1], "rc", NULL)) )
-\& gerror(stderr, "could not FunOpen input file: %s\en", argv[1]);
-\& /* open the output FITS image, inheriting params from input */
-\& if( !(fun2 = FunOpen(argv[2], "w", fun)) )
-\& gerror(stderr, "could not FunOpen output file: %s\en", argv[2]);
-.Ve
-.PP
-Thus, \fBfuntable\fR supports either of these command lines:
-.PP
-.Vb 4
-\& # copy only the EVENTS extension
-\& csh> funtable "test.ev[EVENTS,circle(512,512,10)]" foo.ev
-\& # copy ALL extensions
-\& csh> funtable "test.ev[EVENTS+,circle(512,512,10)]" foo.ev
-.Ve
-.PP
-Use of a Funtools reference
-handle implies that the input file is opened before the output
-file. However, it is important to note that if copy mode (\*(L"c\*(R" or \*(L"C\*(R")
-is specified for the input file, the actual input file open is delayed
-until just after the output file is opened, since the copy of prior
-extensions to the output file takes place while Funtools is seeking to
-the specified input extension. This implies that the output file
-should be opened before any I/O is done on the input file or else the
-copy will fail. Note also that the copy of subsequent extension will
-be handled automatically by
-\&\fIFunClose()\fR
-if the output file is
-closed before the input file. Alternatively, it can be done explicitly
-by \fIFunFlush()\fR, but again, this
-assumes that the input file still is open.
-.PP
-Upon success \fIFunOpen()\fR returns a
-Fun handle that is used in subsequent Funtools calls. On error, \s-1NULL\s0
-is returned.
-.SH "SEE ALSO"
-.IX Header "SEE ALSO"
-See funtools(7) for a list of Funtools help pages
diff --git a/funtools/man/man3/funparamget.3 b/funtools/man/man3/funparamget.3
deleted file mode 100644
index 1609aae..0000000
--- a/funtools/man/man3/funparamget.3
+++ /dev/null
@@ -1,262 +0,0 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32
-.\"
-.\" Standard preamble:
-.\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
-.de Sp \" Vertical space (when we can't use .PP)
-.if t .sp .5v
-.if n .sp
-..
-.de Vb \" Begin verbatim text
-.ft CW
-.nf
-.ne \\$1
-..
-.de Ve \" End verbatim text
-.ft R
-.fi
-..
-.\" Set up some character translations and predefined strings. \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote. | will give a
-.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
-.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
-.\" expand to `' in nroff, nothing in troff, for use with C<>.
-.tr \(*W-|\(bv\*(Tr
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
-.ie n \{\
-. ds -- \(*W-
-. ds PI pi
-. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
-. ds L" ""
-. ds R" ""
-. ds C` ""
-. ds C' ""
-'br\}
-.el\{\
-. ds -- \|\(em\|
-. ds PI \(*p
-. ds L" ``
-. ds R" ''
-'br\}
-.\"
-.\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
-.\" entries marked with X<> in POD. Of course, you'll have to process the
-.\" output yourself in some meaningful fashion.
-.if \nF \{\
-. de IX
-. tm Index:\\$1\t\\n%\t"\\$2"
-..
-. nr % 0
-. rr F
-.\}
-.\"
-.\" For nroff, turn off justification. Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.if n .na
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear. Run. Save yourself. No user-serviceable parts.
-. \" fudge factors for nroff and troff
-.if n \{\
-. ds #H 0
-. ds #V .8m
-. ds #F .3m
-. ds #[ \f1
-. ds #] \fP
-.\}
-.if t \{\
-. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-. ds #V .6m
-. ds #F 0
-. ds #[ \&
-. ds #] \&
-.\}
-. \" simple accents for nroff and troff
-.if n \{\
-. ds ' \&
-. ds ` \&
-. ds ^ \&
-. ds , \&
-. ds ~ ~
-. ds /
-.\}
-.if t \{\
-. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-. \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-. \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-. \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-. ds : e
-. ds 8 ss
-. ds o a
-. ds d- d\h'-1'\(ga
-. ds D- D\h'-1'\(hy
-. ds th \o'bp'
-. ds Th \o'LP'
-. ds ae ae
-. ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
-.\" ========================================================================
-.\"
-.IX Title "funparamget 3"
-.TH funparamget 3 "April 14, 2011" "version 1.4.5" "SAORD Documentation"
-.SH "NAME"
-FunParamGet \- get a Funtools param value
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-.Vb 1
-\& #include <funtools.h>
-.Ve
-.PP
-.Vb 1
-\& int FunParamGetb(Fun fun, char *name, int n, int defval, int *got)
-.Ve
-.PP
-.Vb 1
-\& int FunParamGeti(Fun fun, char *name, int n, int defval, int *got)
-.Ve
-.PP
-.Vb 1
-\& double FunParamGetd(Fun fun, char *name, int n, double defval, int *got)
-.Ve
-.PP
-.Vb 1
-\& char *FunParamGets(Fun fun, char *name, int n, char *defval, int *got)
-.Ve
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-The four routines \fB\f(BIFunParamGetb()\fB\fR, \fB\f(BIFunParamGeti()\fB\fR,
-\&\fB\f(BIFunParamGetd()\fB\fR, and \fB\f(BIFunParamGets()\fB\fR, return the value of
-a \s-1FITS\s0 header parameter as a boolean, int, double, and string,
-respectively. The string returned by \fB\f(BIFunParamGets()\fB\fR is a malloc'ed
-copy of the header value and should be freed when no longer needed.
-.PP
-The first argument is the Fun handle associated with the \s-1FITS\s0 header
-being accessed. Normally, the header is associated with the \s-1FITS\s0
-extension that you opened with \fB\f(BIFunOpen()\fB\fR. However, you can use
-\&\fIFunInfoPut()\fR to specify access of the primary header. In particular,
-if you set the \s-1FUN_PRIMARYHEADER\s0 parameter to 1, then the primary
-header is used for all parameter access until the value is reset to
-0. For example:
-.PP
-.Vb 9
-\& int val;
-\& FunParamGeti(fun, "NAXIS", 1, 0, &got); # current header
-\& val=1;
-\& FunInfoPut(fun, FUN_PRIMARYHEADER, &val, 0); # switch to ...
-\& FunParamGeti(fun, "NAXIS", 1, 0, &got); # ... primary header
-\& FunParamGeti(fun, "NAXIS", 2, 0, &got); # ... primary header
-\& val=0;
-\& FunInfoPut(fun, FUN_PRIMARYHEADER, &val, 0); # switch back to ...
-\& FunParamGeti(fun, "NAXIS", 2, 0, &got); # current header
-.Ve
-.PP
-Alternatively, you can use the \s-1FUN_PRIMARY\s0 macro to access parameters
-from the primary header on a per-parameter basis:
-.PP
-.Vb 2
-\& FunParamGeti(fun, "NAXIS1", 0, 0, &got); # current header
-\& FunParamGeti(FUN_PRIMARY(fun), "NAXIS1", 0, 0, &got); # primary header
-.Ve
-.PP
-\s-1NB - \s0 \s-1FUN_PRIMARY\s0 is deprecated.
-It makes use of a global parameter and therefore will not not
-appropriate for threaded applications, when we make funtools
-thread\-safe. We recommend use of \fIFunInfoPut()\fR to switch between the
-extension header and the primary header.
-.PP
-For output data, access to the primary header is only possible until
-the header is written out, which usually takes place when the first
-data are written.
-.PP
-The second argument is the name of the parameter to access. The third
-\&\fBn\fR argument, if non\-zero, is an integer that will be added as a
-suffix to the parameter name. This makes it easy to use a simple loop
-to process parameters having the same root name. For example, to
-gather up all values of \s-1TLMIN\s0 and \s-1TLMAX\s0 for each column in a binary
-table, you can use:
-.PP
-.Vb 4
-\& for(i=0, got=1; got; i++){
-\& fun->cols[i]->tlmin = (int)FunParamGeti(fun, "TLMIN", i+1, 0.0, &got);
-\& fun->cols[i]->tlmax = (int)FunParamGeti(fun, "TLMAX", i+1, 0.0, &got);
-\& }
-.Ve
-.PP
-The fourth \fBdefval\fR argument is the default value to return if
-the parameter does not exist. Note that the data type of this
-parameter is different for each specific \fIFunParamGet()\fR call. The final
-\&\fBgot\fR argument will be 0 if no param was found. Otherwise the
-data type of the parameter is returned as follows: \s-1FUN_PAR_UNKNOWN\s0
-('u'), \s-1FUN_PAR_COMMENT\s0 ('c'), \s-1FUN_PAR_LOGICAL\s0 ('l'), \s-1FUN_PAR_INTEGER\s0
-('i'), \s-1FUN_PAR_STRING\s0 ('s'), \s-1FUN_PAR_REAL\s0 ('r'), \s-1FUN_PAR_COMPLEX\s0 ('x').
-.PP
-These routines return the value of the header parameter, or the
-specified default value if the header parameter does not exist. The
-returned value is a malloc'ed string and should be freed when no
-longer needed.
-.PP
-By default, \fB\f(BIFunParamGets()\fB\fR returns the string value of the
-named parameter. However, you can use \fIFunInfoPut()\fR to retrieve the
-raw 80\-character \s-1FITS\s0 card instead. In particular, if you set the
-\&\s-1FUN_RAWPARAM\s0 parameter to 1, then card images will be returned by
-\&\fIFunParamGets()\fR until the value is reset to 0.
-.PP
-Alternatively, if the \s-1FUN_RAW\s0 macro is applied to the name, then the
-80\-character raw \s-1FITS\s0 card is returned instead.
-\s-1NB - \s0 \s-1FUN_RAW\s0 is deprecated.
-It makes use of a global parameter and therefore will not not
-appropriate for threaded applications, when we make funtools
-thread\-safe. We recommend use of \fIFunInfoPut()\fR to switch between the
-extension header and the primary header.
-.PP
-Note that in addition to the behaviors described above, the
-routine \fB\f(BIFunParamGets()\fB\fR will return the 80 raw characters of the
-\&\fBnth\fR \s-1FITS\s0 card (including the comment) if \fBname\fR is specified as
-\&\s-1NULL\s0 and \fBn\fR is positive. For example, to loop through all \s-1FITS\s0
-header cards in a given extension and print out the raw card, use:
-.PP
-.Vb 9
-\& for(i=1; ;i++){
-\& if( (s = FunParamGets(fun, NULL, i, NULL, &got)) ){
-\& fprintf(stdout, "%.80s\en", s);
-\& free(s);
-\& }
-\& else{
-\& break;
-\& }
-\& }
-.Ve
-.SH "SEE ALSO"
-.IX Header "SEE ALSO"
-See funtools(7) for a list of Funtools help pages
diff --git a/funtools/man/man3/funparamput.3 b/funtools/man/man3/funparamput.3
deleted file mode 100644
index db90dcc..0000000
--- a/funtools/man/man3/funparamput.3
+++ /dev/null
@@ -1,256 +0,0 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32
-.\"
-.\" Standard preamble:
-.\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
-.de Sp \" Vertical space (when we can't use .PP)
-.if t .sp .5v
-.if n .sp
-..
-.de Vb \" Begin verbatim text
-.ft CW
-.nf
-.ne \\$1
-..
-.de Ve \" End verbatim text
-.ft R
-.fi
-..
-.\" Set up some character translations and predefined strings. \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote. | will give a
-.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
-.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
-.\" expand to `' in nroff, nothing in troff, for use with C<>.
-.tr \(*W-|\(bv\*(Tr
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
-.ie n \{\
-. ds -- \(*W-
-. ds PI pi
-. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
-. ds L" ""
-. ds R" ""
-. ds C` ""
-. ds C' ""
-'br\}
-.el\{\
-. ds -- \|\(em\|
-. ds PI \(*p
-. ds L" ``
-. ds R" ''
-'br\}
-.\"
-.\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
-.\" entries marked with X<> in POD. Of course, you'll have to process the
-.\" output yourself in some meaningful fashion.
-.if \nF \{\
-. de IX
-. tm Index:\\$1\t\\n%\t"\\$2"
-..
-. nr % 0
-. rr F
-.\}
-.\"
-.\" For nroff, turn off justification. Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.if n .na
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear. Run. Save yourself. No user-serviceable parts.
-. \" fudge factors for nroff and troff
-.if n \{\
-. ds #H 0
-. ds #V .8m
-. ds #F .3m
-. ds #[ \f1
-. ds #] \fP
-.\}
-.if t \{\
-. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-. ds #V .6m
-. ds #F 0
-. ds #[ \&
-. ds #] \&
-.\}
-. \" simple accents for nroff and troff
-.if n \{\
-. ds ' \&
-. ds ` \&
-. ds ^ \&
-. ds , \&
-. ds ~ ~
-. ds /
-.\}
-.if t \{\
-. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-. \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-. \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-. \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-. ds : e
-. ds 8 ss
-. ds o a
-. ds d- d\h'-1'\(ga
-. ds D- D\h'-1'\(hy
-. ds th \o'bp'
-. ds Th \o'LP'
-. ds ae ae
-. ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
-.\" ========================================================================
-.\"
-.IX Title "funparamput 3"
-.TH funparamput 3 "April 14, 2011" "version 1.4.5" "SAORD Documentation"
-.SH "NAME"
-FunParamPut \- put a Funtools param value
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-.Vb 1
-\& #include <funtools.h>
-.Ve
-.PP
-.Vb 2
-\& int FunParamPutb(Fun fun, char *name, int n, int value, char *comm,
-\& int append)
-.Ve
-.PP
-.Vb 2
-\& int FunParamPuti(Fun fun, char *name, int n, int value, char *comm,
-\& int append)
-.Ve
-.PP
-.Vb 2
-\& int FunParamPutd(Fun fun, char *name, int n, double value, int prec,
-\& char *comm, int append)
-.Ve
-.PP
-.Vb 2
-\& int FunParamPuts(Fun fun, char *name, int n, char *value, char *comm,
-\& int append)
-.Ve
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-The four routines \fB\f(BIFunParamPutb()\fB\fR, \fB\f(BIFunParamPuti()\fB\fR,
-\&\fB\f(BIFunParamPutd()\fB\fR, and \fB\f(BIFunParamPuts()\fB\fR, will set the value
-of a \s-1FITS\s0 header parameter as a boolean, int, double, and string,
-respectively.
-.PP
-The first argument is the Fun handle associated with the \s-1FITS\s0 header
-being accessed. Normally, the header is associated with the \s-1FITS\s0
-extension that you opened with \fB\f(BIFunOpen()\fB\fR.
-However, you can use \fIFunInfoPut()\fR to specify that use of the primary
-header. In particular, if you set the \s-1FUN_PRIMARYHEADER\s0 parameter to
-1, then the primary header is used for all parameter access until the
-value is reset to 0. For example:
-.PP
-.Vb 5
-\& int val;
-\& FunParamPuti(fun, "NAXIS1", 0, 10, NULL, 1); # current header
-\& val=1;
-\& FunInfoPut(fun, FUN_PRIMARYHEADER, &val, 0); # switch to ...
-\& FunParamPuti(fun, "NAXIS1", 0, 10, NULL, 1); # primary header
-.Ve
-.PP
-(You also can use the deprecated \s-1FUN_PRIMARY\s0 macro, to access
-parameters from the primary header.)
-.PP
-The second argument is the \fBname\fR of the parameter. (
-In accordance with \s-1FITS\s0 standards, the special names \fB\s-1COMMENT\s0\fR
-and \fB\s-1HISTORY\s0\fR, as well as blank names, are output without the \*(L"= \*(R"
-value indicator in columns 9 and 10.
-.PP
-The third \fBn\fR argument, if non\-zero, is an integer that will be
-added as a suffix to the parameter name. This makes it easy to use a
-simple loop to process parameters having the same root name. For
-example, to set the values of \s-1TLMIN\s0 and \s-1TLMAX\s0 for each column in a
-binary table, you can use:
-.PP
-.Vb 4
-\& for(i=0; i<got; i++){
-\& FunParamPutd(fun, "TLMIN", i+1, tlmin[i], 7, "min column val", 1);
-\& FunParamPutd(fun, "TLMAX", i+1, tlmax[i], 7, "max column val", 1);
-\& }
-.Ve
-.PP
-The fourth \fBdefval\fR argument is the value to set. Note that the
-data type of this argument is different for each specific
-\&\fIFunParamPut()\fR call. The \fBcomm\fR argument is the comment
-string to add to this header parameter. Its value can be \s-1NULL\s0. The
-final \fBappend\fR argument determines whether the parameter is added
-to the header if it does not exist. If set to a non-zero value, the
-header parameter will be appended to the header if it does not exist.
-If set to 0, the value will only be used to change an existing parameter.
-.PP
-Note that the double precision routine \fIFunParamPutd()\fR supports an
-extra \fBprec\fR argument after the \fBvalue\fR argument, in order
-to specify the precision when converting the double value to \s-1ASCII\s0. In
-general a 20.[prec] format is used (since 20 characters are alloted to
-a floating point number in \s-1FITS\s0) as follows: if the double value being
-put to the header is less than 0.1 or greater than or equal to
-10**(20\-2\-[prec]), then \f(CW%20\fR.[prec]e format is used (i.e., scientific
-notation); otherwise \f(CW%20\fR.[prec]f format is used (i.e., numeric
-notation).
-.PP
-As a rule, parameters should be set before writing the table or image.
-It is, however, possible to update the value of an \fBexisting\fR
-parameter after writing an image or table (but not to add a new
-one). Such updating only works if the parameter already exists and if
-the output file is seekable, i.e. if it is a disk file or is stdout
-being redirected to a disk file.
-.PP
-It is possible to add a new parameter to a header after the data has
-been written, but only if space has previously been reserved. To reserve
-space, add a blank parameter whose value is the name of the parameter you
-eventually will update. Then, when writing the new parameter, specify a
-value of 2 for the append flag. The parameter writing routine will
-first look to update an existing parameter, as usual. If an existing
-parameter is not found, an appropriately-valued blank parameter will be
-searched for and replaced. For example:
-.PP
-.Vb 8
-\& /* add blank card to be used as a place holder for IPAR1 update */
-\& FunParamPuts(fun, NULL, 0, "IPAR1", "INTEGER Param", 0);
-\& ...
-\& /* write header and data */
-\& FunTableRowPut(fun, events, got, 0, NULL);
-\& ...
-\& /* update param in file after writing data -- note append = 2 here */
-\& FunParamPuti(fun, "IPAR", 1, 400, "INTEGER Param", 2);
-.Ve
-.PP
-The parameter routines return a 1 if the routine was successful and a 0 on
-failure. In general, the major reason for failure is that you did not
-set the append argument to a non-zero value and the parameter did not
-already exist in the file.
-.SH "SEE ALSO"
-.IX Header "SEE ALSO"
-See funtools(7) for a list of Funtools help pages
diff --git a/funtools/man/man3/funref.3 b/funtools/man/man3/funref.3
deleted file mode 100644
index 7c6156a..0000000
--- a/funtools/man/man3/funref.3
+++ /dev/null
@@ -1,287 +0,0 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32
-.\"
-.\" Standard preamble:
-.\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
-.de Sp \" Vertical space (when we can't use .PP)
-.if t .sp .5v
-.if n .sp
-..
-.de Vb \" Begin verbatim text
-.ft CW
-.nf
-.ne \\$1
-..
-.de Ve \" End verbatim text
-.ft R
-.fi
-..
-.\" Set up some character translations and predefined strings. \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote. | will give a
-.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
-.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
-.\" expand to `' in nroff, nothing in troff, for use with C<>.
-.tr \(*W-|\(bv\*(Tr
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
-.ie n \{\
-. ds -- \(*W-
-. ds PI pi
-. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
-. ds L" ""
-. ds R" ""
-. ds C` ""
-. ds C' ""
-'br\}
-.el\{\
-. ds -- \|\(em\|
-. ds PI \(*p
-. ds L" ``
-. ds R" ''
-'br\}
-.\"
-.\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
-.\" entries marked with X<> in POD. Of course, you'll have to process the
-.\" output yourself in some meaningful fashion.
-.if \nF \{\
-. de IX
-. tm Index:\\$1\t\\n%\t"\\$2"
-..
-. nr % 0
-. rr F
-.\}
-.\"
-.\" For nroff, turn off justification. Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.if n .na
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear. Run. Save yourself. No user-serviceable parts.
-. \" fudge factors for nroff and troff
-.if n \{\
-. ds #H 0
-. ds #V .8m
-. ds #F .3m
-. ds #[ \f1
-. ds #] \fP
-.\}
-.if t \{\
-. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-. ds #V .6m
-. ds #F 0
-. ds #[ \&
-. ds #] \&
-.\}
-. \" simple accents for nroff and troff
-.if n \{\
-. ds ' \&
-. ds ` \&
-. ds ^ \&
-. ds , \&
-. ds ~ ~
-. ds /
-.\}
-.if t \{\
-. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-. \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-. \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-. \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-. ds : e
-. ds 8 ss
-. ds o a
-. ds d- d\h'-1'\(ga
-. ds D- D\h'-1'\(hy
-. ds th \o'bp'
-. ds Th \o'LP'
-. ds ae ae
-. ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
-.\" ========================================================================
-.\"
-.IX Title "funref 3"
-.TH funref 3 "April 14, 2011" "version 1.4.5" "SAORD Documentation"
-.SH "NAME"
-FunRef \- the Funtools Reference Handle
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-A description of how to use a Funtools reference handle to connect a
-Funtools input file to an output file.
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-The Funtools reference handle connects a Funtools input file to a
-Funtools output file so that parameters (or even whole extensions) can
-be copied from the one to the other. To make the connection, the Funtools
-handle of the input file is passed to the
-final argument of the
-\&\fIFunOpen()\fR call for the output file:
-.PP
-.Vb 4
-\& if( !(ifun = FunOpen(argv[1], "r", NULL)) )
-\& gerror(stderr, "could not FunOpen input file: %s\en", argv[1]);
-\& if( !(ofun = FunOpen(argv[2], "w", ifun)) )
-\& gerror(stderr, "could not FunOpen output file: %s\en", argv[2]);
-.Ve
-.PP
-It does not matter what type of input or output file (or extension) is
-opened, or whether they are the same type. When the output image or
-binary table is written using
-\&\fIFunImagePut()\fR
-or
-\&\fIFunTableRowPut()\fR
-an appropriate header will be written first, with parameters copied
-from the input extension. Of course, invalid parameters will be
-removed first, e.g., if the input is a binary table and the output is
-an image, then binary table parameters such as \s-1TFORM\s0, \s-1TUNIT\s0,
-etc. parameters will not be copied to the output.
-.PP
-Use of a reference handle also allows default values to be passed
-to
-\&\fIFunImagePut()\fR in order to
-write out an output image with the same dimensions and data type
-as the input image. To use the defaults from the input, a value
-of 0 is entered for dim1, dim2, and bitpix. For example:
-.PP
-.Vb 5
-\& fun = FunOpen(argv[1], "r", NULL);
-\& fun2 = FunOpen(argv[2], "w", fun);
-\& buf = FunImageGet(fun, NULL, NULL);
-\& ... process image data ...
-\& FunImagePut(fun2, buf, 0, 0, 0, NULL);
-.Ve
-.PP
-Of course, you often want to get information about the data type
-and dimensions of the image for processing. The above code
-is equivalent to the following:
-.PP
-.Vb 7
-\& fun = FunOpen(argv[1], "r", NULL);
-\& fun2 = FunOpen(argv[2], "w", fun);
-\& buf = FunImageGet(fun, NULL, NULL);
-\& FunInfoGet(fun, FUN_SECT_DIM1, &dim1, FUN_SECT_DIM2, &dim2,
-\& FUN_SECT_BITPIX, &bitpix, 0);
-\& ... process image data ...
-\& FunImagePut(fun2, buf, dim1, dim2, bitpix, NULL);
-.Ve
-.PP
-It is possible to change the reference handle for a given output Funtools
-handle using the
-\&\fIFunInfoPut()\fR routine:
-.PP
-.Vb 2
-\& /* make the new extension the reference handle for the output file */
-\& FunInfoPut(fun2, FUN_IFUN, &fun, 0);
-.Ve
-.PP
-When this is done, Funtools specially resets the output file to start
-a new output extension, which is connected to the new input reference
-handle. You can use this mechanism to process multiple input extensions
-into a single output file, by successively opening the former and
-setting the reference handle for the latter. For example:
-.PP
-.Vb 18
-\& /* open a new output FITS file */
-\& if( !(fun2 = FunOpen(argv[2], "w", NULL)) )
-\& gerror(stderr, "could not FunOpen output file: %s\en", argv[2]);
-\& /* process each input extension in turn */
-\& for(ext=0; ;ext++){
-\& /* get new extension name */
-\& sprintf(tbuf, "%s[%d]", argv[1], ext);
-\& /* open it -- if we cannot open it, we are done */
-\& if( !(fun=FunOpen(tbuf, "r", NULL)) )
-\& break;
-\& /* make the new extension the reference handle for the output file */
-\& FunInfoPut(fun2, FUN_IFUN, &fun, 0);
-\& ... process ...
-\& /* flush output extension (write padding, etc.) */
-\& FunFlush(fun2, NULL);
-\& /* close the input extension */
-\& FunClose(fun);
-\& }
-.Ve
-.PP
-In this example, the output file is opened first. Then each successive
-input extension is opened, and the output reference handle is set to
-the newly opened input handle. After data processing is performed, the
-output extension is flushed and the input extension is closed, in
-preparation for the next input extension.
-.PP
-Finally, a reference handle can be used to copy other extensions from
-the input file to the output file. Copy of other extensions is
-controlled by adding a \*(L"C\*(R" or \*(L"c\*(R" to the mode string of the
-\&\fIFunOpen()\fR
-call \fBof the input reference file\fR. If \*(L"C\*(R" is specified, then
-other extensions are \fBalways\fR copied (i.e., copy is forced by the
-application). If \*(L"c\*(R" is used, then other extensions are copied if the
-user requests copying by adding a plus sign \*(L"+\*(R" to the extension name
-in the bracket specification. For example, the \fBfuntable\fR
-program utilizes user-specified \*(L"c\*(R" mode so that the second example
-below will copy all extensions:
-.PP
-.Vb 4
-\& # copy only the EVENTS extension
-\& csh> funtable "test.ev[EVENTS,circle(512,512,10)]" foo.ev
-\& # copy ALL extensions
-\& csh> funtable "test.ev[EVENTS+,circle(512,512,10)]" foo.ev
-.Ve
-.PP
-When extension copy is specified in the input file, the call to
-\&\fIFunOpen()\fR
-on the input file delays the actual file open until the output file
-also is opened (or until I/O is performed on the input file, which
-ever happens first). Then, when the output file is opened, the input
-file is also opened and input extensions are copied to the output
-file, up to the specific extension being opened. Processing of input
-and output extensions then proceed.
-.PP
-When extension processing is complete, the remaining extensions need to
-be copied from input to output. This can be done explicitly, using the
-\&\fIFunFlush()\fR
-call with the \*(L"copy=remaining\*(R" plist:
-.PP
-.Vb 1
-\& FunFlush(fun, "copy=remaining");
-.Ve
-.PP
-Alternatively, this will happen automatically, if the output file
-is closed \fBbefore\fR the input file:
-.PP
-.Vb 5
-\& /* we could explicitly flush remaining extensions that need copying */
-\& /* FunFlush(fun2, "copy=remaining"); */
-\& /* but if we close output before input, end flush is done automatically */
-\& FunClose(fun2);
-\& FunClose(fun);
-.Ve
-.SH "SEE ALSO"
-.IX Header "SEE ALSO"
-See funtools(7) for a list of Funtools help pages
diff --git a/funtools/man/man3/funtablerowget.3 b/funtools/man/man3/funtablerowget.3
deleted file mode 100644
index 7554781..0000000
--- a/funtools/man/man3/funtablerowget.3
+++ /dev/null
@@ -1,216 +0,0 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32
-.\"
-.\" Standard preamble:
-.\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
-.de Sp \" Vertical space (when we can't use .PP)
-.if t .sp .5v
-.if n .sp
-..
-.de Vb \" Begin verbatim text
-.ft CW
-.nf
-.ne \\$1
-..
-.de Ve \" End verbatim text
-.ft R
-.fi
-..
-.\" Set up some character translations and predefined strings. \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote. | will give a
-.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
-.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
-.\" expand to `' in nroff, nothing in troff, for use with C<>.
-.tr \(*W-|\(bv\*(Tr
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
-.ie n \{\
-. ds -- \(*W-
-. ds PI pi
-. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
-. ds L" ""
-. ds R" ""
-. ds C` ""
-. ds C' ""
-'br\}
-.el\{\
-. ds -- \|\(em\|
-. ds PI \(*p
-. ds L" ``
-. ds R" ''
-'br\}
-.\"
-.\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
-.\" entries marked with X<> in POD. Of course, you'll have to process the
-.\" output yourself in some meaningful fashion.
-.if \nF \{\
-. de IX
-. tm Index:\\$1\t\\n%\t"\\$2"
-..
-. nr % 0
-. rr F
-.\}
-.\"
-.\" For nroff, turn off justification. Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.if n .na
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear. Run. Save yourself. No user-serviceable parts.
-. \" fudge factors for nroff and troff
-.if n \{\
-. ds #H 0
-. ds #V .8m
-. ds #F .3m
-. ds #[ \f1
-. ds #] \fP
-.\}
-.if t \{\
-. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-. ds #V .6m
-. ds #F 0
-. ds #[ \&
-. ds #] \&
-.\}
-. \" simple accents for nroff and troff
-.if n \{\
-. ds ' \&
-. ds ` \&
-. ds ^ \&
-. ds , \&
-. ds ~ ~
-. ds /
-.\}
-.if t \{\
-. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-. \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-. \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-. \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-. ds : e
-. ds 8 ss
-. ds o a
-. ds d- d\h'-1'\(ga
-. ds D- D\h'-1'\(hy
-. ds th \o'bp'
-. ds Th \o'LP'
-. ds ae ae
-. ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
-.\" ========================================================================
-.\"
-.IX Title "funtablerowget 3"
-.TH funtablerowget 3 "April 14, 2011" "version 1.4.5" "SAORD Documentation"
-.SH "NAME"
-FunTableRowGet \- get Funtools rows
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-.Vb 1
-\& #include <funtools.h>
-.Ve
-.PP
-.Vb 2
-\& void *FunTableRowGet(Fun fun, void *rows, int maxrow, char *plist,
-\& int *nrow)
-.Ve
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-The \fB\f(BIFunTableRowGet()\fB\fR routine retrieves rows from a Funtools
-binary table or raw event file, and places the values of columns
-selected by \fIFunColumnSelect()\fR
-into an array of user structs. Selected column values are
-automatically converted to the specified user data type (and to native
-data format) as necessary.
-.PP
-The first argument is the Fun handle associated with this row data.
-The second \fBrows\fR argument is the array of user structs into
-which the selected columns will be stored. If \s-1NULL\s0 is passed, the
-routine will automatically allocate space for this array. (This
-includes proper allocation of pointers within each struct, if the \*(L"@\*(R"
-pointer type is used in the selection of columns. Note that if you
-pass \s-1NULL\s0 in the second argument, you should free this space using the
-standard \fIfree()\fR system call when you are finished with the array of
-rows.) The third \fBmaxrow\fR argument specifies the maximum number
-of rows to be returned. Thus, if \fBrows\fR is allocated by the
-user, it should be at least of size maxrow*sizeof(evstruct).
-.PP
-The fourth \fBplist\fR argument is a param list string. Currently,
-the keyword/value pair \*(L"mask=transparent\*(R" is supported in the plist
-argument. If this string is passed in the call's plist argument, then
-all rows are passed back to the user (instead of just rows passing
-the filter). This is only useful when
-\&\fIFunColumnSelect()\fR also is
-used to specify \*(L"$region\*(R" as a column to return for each row. In
-such a case, rows found within a region have a returned region value
-greater than 0 (corresponding to the region id of the region in which
-they are located), rows passing the filter but not in a region have
-region value of \-1, and rows not passing any filter have region
-value of 0. Thus, using \*(L"mask=transparent\*(R" and the returned region
-value, a program can process all rows and decide on an action based
-on whether a given row passed the filter or not.
-.PP
-The final argument is a pointer to an int variable that will return
-the actual number of rows returned. The routine returns a pointer to
-the array of stored rows, or \s-1NULL\s0 if there was an error. (This pointer
-will be the same as the second argument, if the latter is non\-NULL).
-.PP
-.Vb 16
-\& /* get rows -- let routine allocate the row array */
-\& while( (buf = (Ev)FunTableRowGet(fun, NULL, MAXROW, NULL, &got)) ){
-\& /* process all rows */
-\& for(i=0; i<got; i++){
-\& /* point to the i'th row */
-\& ev = buf+i;
-\& /* rearrange some values. etc. */
-\& ev->energy = (ev->pi+ev->pha)/2.0;
-\& ev->pha = \-ev->pha;
-\& ev->pi = \-ev->pi;
-\& }
-\& /* write out this batch of rows */
-\& FunTableRowPut(fun2, buf, got, 0, NULL);
-\& /* free row data */
-\& if( buf ) free(buf);
-\& }
-.Ve
-.PP
-As shown above, successive calls to
-\&\fIFunTableRowGet()\fR will return the
-next set of rows from the input file until all rows have been read,
-i.e., the routine behaves like sequential Unix I/O calls such as
-\&\fIfread()\fR. See evmerge example code for a
-more complete example.
-.PP
-Note that \fIFunTableRowGet()\fR also can be called as \fIFunEventsGet()\fR, for
-backward compatibility.
-.SH "SEE ALSO"
-.IX Header "SEE ALSO"
-See funtools(7) for a list of Funtools help pages
diff --git a/funtools/man/man3/funtablerowput.3 b/funtools/man/man3/funtablerowput.3
deleted file mode 100644
index 533bd43..0000000
--- a/funtools/man/man3/funtablerowput.3
+++ /dev/null
@@ -1,297 +0,0 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32
-.\"
-.\" Standard preamble:
-.\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
-.de Sp \" Vertical space (when we can't use .PP)
-.if t .sp .5v
-.if n .sp
-..
-.de Vb \" Begin verbatim text
-.ft CW
-.nf
-.ne \\$1
-..
-.de Ve \" End verbatim text
-.ft R
-.fi
-..
-.\" Set up some character translations and predefined strings. \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote. | will give a
-.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
-.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
-.\" expand to `' in nroff, nothing in troff, for use with C<>.
-.tr \(*W-|\(bv\*(Tr
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
-.ie n \{\
-. ds -- \(*W-
-. ds PI pi
-. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
-. ds L" ""
-. ds R" ""
-. ds C` ""
-. ds C' ""
-'br\}
-.el\{\
-. ds -- \|\(em\|
-. ds PI \(*p
-. ds L" ``
-. ds R" ''
-'br\}
-.\"
-.\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
-.\" entries marked with X<> in POD. Of course, you'll have to process the
-.\" output yourself in some meaningful fashion.
-.if \nF \{\
-. de IX
-. tm Index:\\$1\t\\n%\t"\\$2"
-..
-. nr % 0
-. rr F
-.\}
-.\"
-.\" For nroff, turn off justification. Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.if n .na
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear. Run. Save yourself. No user-serviceable parts.
-. \" fudge factors for nroff and troff
-.if n \{\
-. ds #H 0
-. ds #V .8m
-. ds #F .3m
-. ds #[ \f1
-. ds #] \fP
-.\}
-.if t \{\
-. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-. ds #V .6m
-. ds #F 0
-. ds #[ \&
-. ds #] \&
-.\}
-. \" simple accents for nroff and troff
-.if n \{\
-. ds ' \&
-. ds ` \&
-. ds ^ \&
-. ds , \&
-. ds ~ ~
-. ds /
-.\}
-.if t \{\
-. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-. \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-. \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-. \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-. ds : e
-. ds 8 ss
-. ds o a
-. ds d- d\h'-1'\(ga
-. ds D- D\h'-1'\(hy
-. ds th \o'bp'
-. ds Th \o'LP'
-. ds ae ae
-. ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
-.\" ========================================================================
-.\"
-.IX Title "funtablerowput 3"
-.TH funtablerowput 3 "April 14, 2011" "version 1.4.5" "SAORD Documentation"
-.SH "NAME"
-FunTableRowPut \- put Funtools rows
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-int FunTableRowPut(Fun fun, void *rows, int nev, int idx, char *plist)
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-The \fB\f(BIFunTableRowPut()\fB\fR routine writes rows to a \s-1FITS\s0 binary
-table, taking its input from an array of user structs that contain
-column values selected by a previous call to
-\&\fIFunColumnSelect()\fR. Selected
-column values are automatically converted from native data format to
-\&\s-1FITS\s0 data format as necessary.
-.PP
-The first argument is the Fun handle associated with this row data.
-The second \fBrows\fR argument is the array of user structs to
-output. The third \fBnrow\fR argument specifies the number number of
-rows to write. The routine will write \fBnrow\fR records, starting
-from the location specified by \fBrows\fR.
-.PP
-The fourth \fBidx\fR argument is the index of the first raw input
-row to write, in the case where rows from the user buffer are
-being merged with their raw input row counterparts (see below). Note
-that this \fBidx\fR value is has nothing to do with the
-row buffer specified in argument 1. It merely matches the row
-being written with its corresponding (hidden) raw row. Thus, if you
-read a number of rows, process them, and then write them out all at
-once starting from the first user row, the value of \fBidx\fR
-should be 0:
-.PP
-.Vb 14
-\& Ev ebuf, ev;
-\& /* get rows -- let routine allocate the row array */
-\& while( (ebuf = (Ev)FunTableRowGet(fun, NULL, MAXROW, NULL, &got)) ){
-\& /* process all rows */
-\& for(i=0; i<got; i++){
-\& /* point to the i'th row */
-\& ev = ebuf+i;
-\& ...
-\& }
-\& /* write out this batch of rows, starting with the first */
-\& FunTableRowPut(fun2, (char *)ebuf, got, 0, NULL);
-\& /* free row data */
-\& if( ebuf ) free(ebuf);
-\& }
-.Ve
-.PP
-On the other hand, if you write out the rows one at a time (possibly
-skipping rows), then, when writing the i'th row from the input
-array of rows, set \fBidx\fR to the value of i:
-.PP
-.Vb 14
-\& Ev ebuf, ev;
-\& /* get rows -- let routine allocate the row array */
-\& while( (ebuf = (Ev)FunTableRowGet(fun, NULL, MAXROW, NULL, &got)) ){
-\& /* process all rows */
-\& for(i=0; i<got; i++){
-\& /* point to the i'th row */
-\& ev = ebuf+i;
-\& ...
-\& /* write out the current (i.e., i'th) row */
-\& FunTableRowPut(fun2, (char *)ev, 1, i, NULL);
-\& }
-\& /* free row data */
-\& if( ebuf ) free(ebuf);
-\& }
-.Ve
-.PP
-The final argument is a param list string that is not currently used.
-The routine returns the number of rows output. This should be equal
-to the value passed in the third nrow</B argument.
-.PP
-When \fIFunTableRowPut()\fR is first
-called for a given binary table, Funtools checks to see of the primary
-header has already been written (either by writing a previous row
-table or by writing an image.) If not, a dummy primary header is
-written to the file specifying that an extension should be expected.
-After this, a binary table header is automatically written containing
-information about the columns that will populate this table. In
-addition, if a
-Funtools reference handle
-was specified when this table was opened, the parameters from this
-Funtools reference handle
-are merged into the new binary table header.
-.PP
-In a typical Funtools row loop, you read rows using
-\&\fIFunTableRowGet()\fR() and write
-rows using \fIFunTableRowPut()\fR. The columns written by
-\&\fIFunTableRowPut()\fR() are those defined as writable by a previous call to
-\&\fIFunColumnSelect()\fR. If
-that call to FunColumnSelect also specified
-\&\fBmerge=[update|replace|append]\fR, then the entire corresponding
-raw input row record will be merged with the output row according
-to the \fBmerge\fR specification (see
-\&\fIFunColumnSelect()\fR above).
-.PP
-A call to write rows can either be done once, after all rows in
-the input batch have been processed, or it can be done (slightly less
-efficiently) one row at a time (or anything in between). We do
-recommend that you write all rows associated with a given batch of
-input rows before reading new rows. This is \fBrequired\fR if
-you are merging the output rows with the raw input rows (since
-the raw rows are destroyed with each successive call to get new rows).
-.PP
-For example:
-.PP
-.Vb 13
-\& Ev buf, ev;
-\& ...
-\& /* get rows -- let routine allocate the row array */
-\& while( (buf = (Ev)FunTableRowGet(fun, NULL, MAXROW, NULL, &got)) ){
-\& /* point to the i'th row */
-\& ev = buf + i;
-\& .... process
-\& }
-\& /* write out this batch of rows */
-\& FunTableRowPut(fun2, buf, got, 0, NULL);
-\& /* free row data */
-\& if( buf ) free(buf);
-\& }
-.Ve
-.PP
-or
-.PP
-.Vb 16
-\& Ev buf, ev;
-\& ...
-\& /* get rows -- let routine allocate the row array */
-\& while( (buf = (Ev)FunTableRowGet(fun, NULL, MAXROW, NULL, &got)) ){
-\& /* process all rows */
-\& for(i=0; i<got; i++){
-\& /* point to the i'th row */
-\& ev = buf + i;
-\& ... process
-\& /* write out this batch of rows with the new column */
-\& if( dowrite )
-\& FunTableRowPut(fun2, buf, 1, i, NULL);
-\& }
-\& /* free row data */
-\& if( buf ) free(buf);
-\& }
-.Ve
-.PP
-Note that the difference between these calls is that the first one
-outputs \fBgot\fR rows all at once and therefore passes
-\&\fBidx=0\fR in argument four, so that merging starts at the first raw
-input row. In the second case, a check it made on each row to see
-if it needs to be output. If so, the value of \fBidx\fR is passed as
-the value of the \fBi\fR variable which points to the current row
-being processed in the batch of input rows.
-.PP
-As shown above, successive calls to
-\&\fIFunTableRowPut()\fR will write
-rows sequentially. When you are finished writing all rows in a
-table, you should call
-\&\fIFunFlush()\fR to write out the \s-1FITS\s0
-binary table padding. However, this is not necessary if you
-subsequently call \fIFunClose()\fR without doing any other I/O to the \s-1FITS\s0
-file.
-.PP
-Note that \fIFunTableRowPut()\fR also can be called as \fIFunEventsPut()\fR, for
-backward compatibility.
-.SH "SEE ALSO"
-.IX Header "SEE ALSO"
-See funtools(7) for a list of Funtools help pages