| \input texinfo @c -*-texinfo-*- |
| @c This will be for the printing version of the manual |
| @c @input config-local.texi |
| @c %**start of header |
| @setfilename gsl-ref.info |
| @settitle GNU Scientific Library -- Reference Manual |
| @finalout |
| @set frontcontents |
| @ifset publish |
| @setchapternewpage odd |
| @end ifset |
| @c %**end of header |
| |
| @dircategory Scientific software |
| @direntry |
| * gsl-ref: (gsl-ref). GNU Scientific Library -- Reference |
| @end direntry |
| |
| @c How to use the math macros |
| @c ========================== |
| @c |
| @c For simple expressions, simply use the @math{} command, e.g. |
| @c |
| @c @math{\exp(x)/(1+x^2)} |
| @c |
| @c but if the expression includes characters that need to be 'escaped' |
| @c in texinfo, like '{' or '}', or needs different output for TeX and info, |
| @c then use the following form, |
| @c |
| @c blah blah blah @c{$y^{1+b} \le \pi$} |
| @c @math{y^@{1+b@} <= \pi} |
| @c |
| @c The first part using @c{} must appear at the end of a line (it reads |
| @c up to the line end -- as far as texinfo is concerned it's actually |
| @c a 'comment'). The comment command @c has been modified to capture |
| @c a TeX expression which is output by the next @math. |
| @c |
| @c For ordinary comments use the @comment command. |
| |
| @tex |
| % Mathematical macros taken from the GNU Calc Manual |
| % ================================================== |
| % |
| % Some special kludges to make TeX formatting prettier. |
| % Because makeinfo.c exists, we can't just define new commands. |
| % So instead, we take over little-used existing commands. |
| % |
| % Redefine @cite{text} to act like $text$ in regular TeX. |
| % Info will typeset this same as @samp{text}. |
| \gdef\goodtex{\tex \let\rm\goodrm \let\t\ttfont \turnoffactive} |
| \gdef\goodrm{\fam0\tenrm} |
| \gdef\math{\goodtex$\mathxxx} |
| \gdef\mathxxx#1{#1$\endgroup} |
| \global\let\oldxrefX=\xrefX |
| \gdef\xrefX[#1]{\begingroup\let\math=\dfn\oldxrefX[#1]\endgroup} |
| % |
| % Redefine @i{text} to be equivalent to @cite{text}, i.e., to use math mode. |
| % This looks the same in TeX but omits the surrounding ` ' in Info. |
| %\global\let\i=\cite |
| %\global\let\math=\cite |
| % |
| % Redefine @c{tex-stuff} \n @whatever{info-stuff}. |
| \gdef\c{\futurelet\next\mycxxx} |
| \gdef\mycxxx{% |
| \ifx\next\bgroup \goodtex\let\next\mycxxy |
| \else\ifx\next\mindex \let\next\relax |
| \else\ifx\next\kindex \let\next\relax |
| \else\ifx\next\starindex \let\next\relax \else \let\next\comment |
| \fi\fi\fi\fi \next |
| } |
| \gdef\mycxxy#1#2{#1\endgroup\mycxxz} |
| \gdef\mycxxz#1{} |
| % |
| % Define \Hat to take over from \hat as an accent |
| \gdef\Hat{\mathaccent "705E} |
| % |
| %\gdef\beforedisplay{\vskip-10pt} |
| %\gdef\afterdisplay{\vskip-5pt} |
| \gdef\beforedisplay{} |
| \gdef\afterdisplay{} |
| {\globaldefs = 1 |
| \abovedisplayskip=7pt plus 2pt minus 1pt |
| \belowdisplayskip=7pt plus 2pt minus 1pt |
| \abovedisplayshortskip=7pt plus 2pt minus 1pt |
| \belowdisplayshortskip=7pt plus 2pt minus 1pt} |
| %\abovedisplayskip=12pt plus 3pt minus 3pt |
| %\belowdisplayskip=12pt plus 3pt minus 3pt |
| %\abovedisplayshortskip=7pt plus 1pt minus 1pt |
| %\belowdisplayshortskip=7pt plus 1pt minus 1pt |
| %\gdef\beforedisplayh{\vskip-25pt} |
| %\gdef\afterdisplayh{\vskip-10pt} |
| % |
| \gdef\arcsec{\hbox{\rm arcsec}} |
| \gdef\arccsc{\hbox{\rm arccsc}} |
| \gdef\arccot{\hbox{\rm arccot}} |
| \gdef\sech{\hbox{\rm sech}} |
| \gdef\csch{\hbox{\rm csch}} |
| \gdef\coth{\hbox{\rm coth}} |
| \gdef\arcsinh{\hbox{\rm arcsinh}} |
| \gdef\arccosh{\hbox{\rm arccosh}} |
| \gdef\arctanh{\hbox{\rm arctanh}} |
| \gdef\arcsech{\hbox{\rm arcsech}} |
| \gdef\arccsch{\hbox{\rm arccsch}} |
| \gdef\arccoth{\hbox{\rm arccoth}} |
| % |
| \gdef\Re{\hbox{\rm Re}} |
| \gdef\Im{\hbox{\rm Im}} |
| \gdef\Sin{\hbox{\rm Sin}} |
| \gdef\Cos{\hbox{\rm Cos}} |
| \gdef\Log{\hbox{\rm Log}} |
| % |
| \gdef\erf{\hbox{\rm erf}} |
| \gdef\erfc{\hbox{\rm erfc}} |
| \gdef\sinc{\hbox{\rm sinc}} |
| \gdef\sgn{\hbox{\rm sgn}} |
| \gdef\sign{\hbox{\rm sign}} |
| \gdef\det{\hbox{\rm det}} |
| \gdef\Var{\hbox{\rm Var}} |
| \gdef\arg{\hbox{\rm arg}} % avoid temporary clobbering of arg in texinfo-4.8 |
| @end tex |
| |
| @include version-ref.texi |
| @set GSL @i{GNU Scientific Library} |
| |
| @copying |
| Copyright @copyright{} 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 The GSL Team. |
| |
| Permission is granted to copy, distribute and/or modify this document |
| under the terms of the GNU Free Documentation License, Version 1.2 or |
| any later version published by the Free Software Foundation; with the |
| Invariant Sections being ``GNU General Public License'' and ``Free Software |
| Needs Free Documentation'', the Front-Cover text being ``A GNU Manual'', |
| and with the Back-Cover Text being (a) (see below). A copy of the |
| license is included in the section entitled ``GNU Free Documentation |
| License''. |
| |
| (a) The Back-Cover Text is: ``You have freedom to copy and modify this |
| GNU Manual, like GNU software.'' |
| @end copying |
| |
| @titlepage |
| @title GNU Scientific Library |
| @subtitle Reference Manual |
| @subtitle Edition @value{EDITION}, for GSL Version @value{VERSION} |
| @subtitle @value{UPDATED} |
| |
| @author Mark Galassi |
| Los Alamos National Laboratory |
| @comment @email{rosalia@@lanl.gov} |
| @sp 1 |
| |
| @author Jim Davies |
| Department of Computer Science, Georgia Institute of Technology |
| @comment @email{jimmyd@@nis.lanl.gov} |
| @sp 1 |
| |
| @author James Theiler |
| Astrophysics and Radiation Measurements Group, Los Alamos National Laboratory |
| @comment @email{jt@@nis.lanl.gov} |
| @sp 1 |
| |
| @author Brian Gough |
| Network Theory Limited |
| @comment @email{bjg@@network-theory.co.uk} |
| @sp 1 |
| |
| @comment Asked to be moved to 'contributors' appendix |
| @comment @author Reid Priedhorsky |
| @comment Mathematical Modeling and Analysis Group, Los Alamos National Laboratory |
| @comment @email{rp@@lanl.gov} |
| @comment @sp 1 |
| |
| @author Gerard Jungman |
| Theoretical Astrophysics Group, Los Alamos National Laboratory |
| @comment @email{jungman@@lanl.gov} |
| @sp 1 |
| |
| @author Michael Booth |
| Department of Physics and Astronomy, The Johns Hopkins University |
| @comment @email{booth@@planck.pha.jhu.edu} or @email{booth@@debian.org} |
| @sp 1 |
| |
| @author Fabrice Rossi |
| University of Paris-Dauphine |
| @comment @email{rossi@@ufrmd.dauphine.fr} |
| @sp 1 |
| @page |
| @vskip 0pt plus 1filll |
| @insertcopying |
| @ifclear publish |
| Printed copies of this manual can be purchased from Network Theory Ltd |
| at @uref{http://www.network-theory.co.uk/gsl/manual/}. |
| |
| The money raised from sales of the manual helps support the |
| development of GSL. |
| @end ifclear |
| @end titlepage |
| |
| @iftex |
| @ifset frontcontents |
| @contents |
| @end ifset |
| @end iftex |
| |
| @ifnottex |
| @node Top, Introduction, (dir), (dir) |
| @top GSL |
| |
| This file documents the @value{GSL} (GSL), a collection of numerical |
| routines for scientific computing. It corresponds to release |
| @value{VERSION} of the library. Please report any errors in this |
| manual to @email{bug-gsl@@gnu.org}. |
| |
| More information about GSL can be found at the project homepage, |
| @uref{http://www.gnu.org/software/gsl/}. |
| |
| Printed copies of this manual can be purchased from Network Theory Ltd |
| at @uref{http://www.network-theory.co.uk/gsl/manual/}. The money |
| raised from sales of the manual helps support the development of GSL. |
| |
| A Japanese translation of this manual is available from the GSL |
| project homepage thanks to Daisuke Tominaga. |
| |
| @insertcopying |
| @sp 1 |
| @end ifnottex |
| |
| @menu |
| * Introduction:: |
| * Using the library:: |
| * Error Handling:: |
| * Mathematical Functions:: |
| * Complex Numbers:: |
| * Polynomials:: |
| * Special Functions:: |
| * Vectors and Matrices:: |
| * Permutations:: |
| * Combinations:: |
| * Sorting:: |
| * BLAS Support:: |
| * Linear Algebra:: |
| * Eigensystems:: |
| * Fast Fourier Transforms:: |
| * Numerical Integration:: |
| * Random Number Generation:: |
| * Quasi-Random Sequences:: |
| * Random Number Distributions:: |
| * Statistics:: |
| * Histograms:: |
| * N-tuples:: |
| * Monte Carlo Integration:: |
| * Simulated Annealing:: |
| * Ordinary Differential Equations:: |
| * Interpolation:: |
| * Numerical Differentiation:: |
| * Chebyshev Approximations:: |
| * Series Acceleration:: |
| * Wavelet Transforms:: |
| * Discrete Hankel Transforms:: |
| * One dimensional Root-Finding:: |
| * One dimensional Minimization:: |
| * Multidimensional Root-Finding:: |
| * Multidimensional Minimization:: |
| * Least-Squares Fitting:: |
| * Nonlinear Least-Squares Fitting:: |
| * Basis Splines:: |
| * Physical Constants:: |
| * IEEE floating-point arithmetic:: |
| * Debugging Numerical Programs:: |
| * Contributors to GSL:: |
| * Autoconf Macros:: |
| * GSL CBLAS Library:: |
| * Free Software Needs Free Documentation:: |
| * GNU General Public License:: |
| * GNU Free Documentation License:: |
| * Function Index:: |
| * Variable Index:: |
| * Type Index:: |
| * Concept Index:: |
| @end menu |
| |
| @node Introduction, Using the library, Top, Top |
| @chapter Introduction |
| @include intro.texi |
| |
| @node Using the library, Error Handling, Introduction, Top |
| @chapter Using the library |
| @cindex usage, compiling application programs |
| @include usage.texi |
| |
| @node Error Handling, Mathematical Functions, Using the library, Top |
| @chapter Error Handling |
| @cindex Errors |
| @include err.texi |
| |
| @node Mathematical Functions, Complex Numbers, Error Handling, Top |
| @chapter Mathematical Functions |
| @include math.texi |
| |
| @node Complex Numbers, Polynomials, Mathematical Functions, Top |
| @chapter Complex Numbers |
| @include complex.texi |
| |
| @node Polynomials, Special Functions, Complex Numbers, Top |
| @chapter Polynomials |
| @include poly.texi |
| |
| @node Special Functions, Vectors and Matrices, Polynomials, Top |
| @chapter Special Functions |
| @include specfunc.texi |
| |
| @node Vectors and Matrices, Permutations, Special Functions, Top |
| @chapter Vectors and Matrices |
| @include vectors.texi |
| |
| @node Permutations, Combinations, Vectors and Matrices, Top |
| @chapter Permutations |
| @include permutation.texi |
| |
| @node Combinations, Sorting, Permutations, Top |
| @chapter Combinations |
| @include combination.texi |
| |
| @node Sorting, BLAS Support, Combinations, Top |
| @chapter Sorting |
| @include sort.texi |
| |
| @node BLAS Support, Linear Algebra, Sorting, Top |
| @chapter BLAS Support |
| @include blas.texi |
| |
| @node Linear Algebra, Eigensystems, BLAS Support, Top |
| @chapter Linear Algebra |
| @include linalg.texi |
| |
| @node Eigensystems, Fast Fourier Transforms, Linear Algebra, Top |
| @chapter Eigensystems |
| @include eigen.texi |
| |
| @node Fast Fourier Transforms, Numerical Integration, Eigensystems, Top |
| @chapter Fast Fourier Transforms (FFTs) |
| @include fft.texi |
| |
| @node Numerical Integration, Random Number Generation, Fast Fourier Transforms, Top |
| @chapter Numerical Integration |
| @include integration.texi |
| |
| @node Random Number Generation, Quasi-Random Sequences, Numerical Integration, Top |
| @chapter Random Number Generation |
| @include rng.texi |
| |
| @node Quasi-Random Sequences, Random Number Distributions, Random Number Generation, Top |
| @chapter Quasi-Random Sequences |
| @include qrng.texi |
| |
| @node Random Number Distributions, Statistics, Quasi-Random Sequences, Top |
| @chapter Random Number Distributions |
| @include randist.texi |
| |
| @node Statistics, Histograms, Random Number Distributions, Top |
| @chapter Statistics |
| @include statistics.texi |
| |
| @node Histograms, N-tuples, Statistics, Top |
| @chapter Histograms |
| @include histogram.texi |
| |
| @node N-tuples, Monte Carlo Integration, Histograms, Top |
| @chapter N-tuples |
| @include ntuple.texi |
| |
| @node Monte Carlo Integration, Simulated Annealing, N-tuples, Top |
| @chapter Monte Carlo Integration |
| @include montecarlo.texi |
| |
| @node Simulated Annealing, Ordinary Differential Equations, Monte Carlo Integration, Top |
| @chapter Simulated Annealing |
| @include siman.texi |
| |
| @node Ordinary Differential Equations, Interpolation, Simulated Annealing, Top |
| @chapter Ordinary Differential Equations |
| @include ode-initval.texi |
| |
| @node Interpolation, Numerical Differentiation, Ordinary Differential Equations, Top |
| @chapter Interpolation |
| @include interp.texi |
| |
| @node Numerical Differentiation, Chebyshev Approximations, Interpolation, Top |
| @chapter Numerical Differentiation |
| @include diff.texi |
| |
| @node Chebyshev Approximations, Series Acceleration, Numerical Differentiation, Top |
| @chapter Chebyshev Approximations |
| @include cheb.texi |
| |
| @node Series Acceleration, Wavelet Transforms, Chebyshev Approximations, Top |
| @chapter Series Acceleration |
| @include sum.texi |
| |
| @node Wavelet Transforms, Discrete Hankel Transforms, Series Acceleration, Top |
| @chapter Wavelet Transforms |
| @include dwt.texi |
| |
| @node Discrete Hankel Transforms, One dimensional Root-Finding, Wavelet Transforms, Top |
| @chapter Discrete Hankel Transforms |
| @include dht.texi |
| |
| @node One dimensional Root-Finding, One dimensional Minimization, Discrete Hankel Transforms, Top |
| @chapter One dimensional Root-Finding |
| @include roots.texi |
| |
| @node One dimensional Minimization, Multidimensional Root-Finding, One dimensional Root-Finding, Top |
| @chapter One dimensional Minimization |
| @include min.texi |
| |
| @node Multidimensional Root-Finding, Multidimensional Minimization, One dimensional Minimization, Top |
| @chapter Multidimensional Root-Finding |
| @include multiroots.texi |
| |
| @node Multidimensional Minimization, Least-Squares Fitting, Multidimensional Root-Finding, Top |
| @chapter Multidimensional Minimization |
| @include multimin.texi |
| |
| @node Least-Squares Fitting, Nonlinear Least-Squares Fitting, Multidimensional Minimization, Top |
| @chapter Least-Squares Fitting |
| @include fitting.texi |
| |
| @node Nonlinear Least-Squares Fitting, Basis Splines, Least-Squares Fitting, Top |
| @chapter Nonlinear Least-Squares Fitting |
| @include multifit.texi |
| |
| @node Basis Splines, Physical Constants, Nonlinear Least-Squares Fitting, Top |
| @chapter Basis Splines |
| @include bspline.texi |
| |
| @node Physical Constants, IEEE floating-point arithmetic, Basis Splines, Top |
| @chapter Physical Constants |
| @include const.texi |
| |
| @node IEEE floating-point arithmetic, Debugging Numerical Programs, Physical Constants, Top |
| @chapter IEEE floating-point arithmetic |
| @include ieee754.texi |
| |
| @node Debugging Numerical Programs, Contributors to GSL, IEEE floating-point arithmetic, Top |
| @appendix Debugging Numerical Programs |
| @include debug.texi |
| |
| @node Contributors to GSL, Autoconf Macros, Debugging Numerical Programs, Top |
| @appendix Contributors to GSL |
| |
| (See the AUTHORS file in the distribution for up-to-date information.) |
| |
| @table @strong |
| @item Mark Galassi |
| Conceived GSL (with James Theiler) and wrote the design document. Wrote |
| the simulated annealing package and the relevant chapter in the manual. |
| |
| @item James Theiler |
| Conceived GSL (with Mark Galassi). Wrote the random number generators |
| and the relevant chapter in this manual. |
| |
| @item Jim Davies |
| Wrote the statistical routines and the relevant chapter in this |
| manual. |
| |
| @item Brian Gough |
| FFTs, numerical integration, random number generators and distributions, |
| root finding, minimization and fitting, polynomial solvers, complex |
| numbers, physical constants, permutations, vector and matrix functions, |
| histograms, statistics, ieee-utils, revised @sc{cblas} Level 2 & 3, |
| matrix decompositions, eigensystems, cumulative distribution functions, |
| testing, documentation and releases. |
| |
| @item Reid Priedhorsky |
| Wrote and documented the initial version of the root finding routines |
| while at Los Alamos National Laboratory, Mathematical Modeling and |
| Analysis Group. |
| @comment email: reid@reidster.net |
| |
| @item Gerard Jungman |
| Special Functions, Series acceleration, ODEs, BLAS, Linear Algebra, |
| Eigensystems, Hankel Transforms. |
| |
| @item Mike Booth |
| Wrote the Monte Carlo library. |
| |
| @item Jorma Olavi T@"ahtinen |
| Wrote the initial complex arithmetic functions. |
| |
| @item Thomas Walter |
| Wrote the initial heapsort routines and cholesky decomposition. |
| |
| @item Fabrice Rossi |
| Multidimensional minimization. |
| |
| @item Carlo Perassi |
| Implementation of the random number generators in Knuth's |
| @cite{Seminumerical Algorithms}, 3rd Ed. |
| |
| @item Szymon Jaroszewicz |
| @comment <sj@cs.umb.edu> |
| Wrote the routines for generating combinations. |
| |
| @item Nicolas Darnis |
| Wrote the initial routines for canonical permutations. |
| |
| @item Jason H. Stover |
| @comment (jason@sakla.net) |
| Wrote the major cumulative distribution functions. |
| |
| @item Ivo Alxneit |
| Wrote the routines for wavelet transforms. |
| |
| @item Tuomo Keskitalo |
| Improved the implementation of the ODE solvers. |
| |
| @item Lowell Johnson |
| Implementation of the Mathieu functions. |
| |
| @item Patrick Alken |
| Implementation of non-symmetric eigensystems and B-splines. |
| |
| @end table |
| |
| Thanks to Nigel Lowry for help in proofreading the manual. |
| |
| The non-symmetric eigensystems routines contain code based on the |
| LAPACK linear algebra library. LAPACK is distributed under the |
| following license: |
| |
| @iftex |
| @smallerfonts @rm |
| @end iftex |
| @sp 1 |
| @quotation |
| Copyright (c) 1992-2006 The University of Tennessee. All rights reserved. |
| |
| Redistribution and use in source and binary forms, with or without |
| modification, are permitted provided that the following conditions are |
| met: |
| |
| @bullet{} Redistributions of source code must retain the above copyright |
| notice, this list of conditions and the following disclaimer. |
| |
| @bullet{} Redistributions in binary form must reproduce the above copyright |
| notice, this list of conditions and the following disclaimer listed |
| in this license in the documentation and/or other materials |
| provided with the distribution. |
| |
| @bullet{} Neither the name of the copyright holders nor the names of its |
| contributors may be used to endorse or promote products derived from |
| this software without specific prior written permission. |
| |
| THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
| "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
| LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
| A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
| OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
| SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
| LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
| DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
| THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| @end quotation |
| |
| @iftex |
| @textfonts @rm |
| @end iftex |
| |
| |
| |
| @node Autoconf Macros, GSL CBLAS Library, Contributors to GSL, Top |
| @appendix Autoconf Macros |
| @include autoconf.texi |
| |
| @node GSL CBLAS Library, Free Software Needs Free Documentation, Autoconf Macros, Top |
| @appendix GSL CBLAS Library |
| @include cblas.texi |
| |
| @comment @node Copyright, GNU General Public License, Contributors to GSL, Top |
| @comment @unnumbered Copyright |
| @comment @include science.texi |
| |
| @node Free Software Needs Free Documentation, GNU General Public License, GSL CBLAS Library, Top |
| @unnumbered Free Software Needs Free Documentation |
| @include freemanuals.texi |
| |
| @node GNU General Public License, GNU Free Documentation License, Free Software Needs Free Documentation, Top |
| @unnumbered GNU General Public License |
| @include gpl.texi |
| |
| @node GNU Free Documentation License, Function Index, GNU General Public License, Top |
| @unnumbered GNU Free Documentation License |
| @include fdl.texi |
| |
| @comment htmlhelp: @printindex fn |
| @comment htmlhelp: @printindex vr |
| @comment htmlhelp: @printindex tp |
| @comment htmlhelp: @printindex cp |
| @comment htmlhelp: @bye |
| |
| @iftex |
| @normalbottom |
| @end iftex |
| |
| @node Function Index, Variable Index, GNU Free Documentation License, Top |
| @unnumbered Function Index |
| |
| @printindex fn |
| |
| @node Variable Index, Type Index, Function Index, Top |
| @unnumbered Variable Index |
| |
| @printindex vr |
| |
| @node Type Index, Concept Index, Variable Index, Top |
| @unnumbered Type Index |
| |
| @printindex tp |
| |
| @node Concept Index, , Type Index, Top |
| @unnumbered Concept Index |
| |
| @printindex cp |
| |
| @ifclear frontcontents |
| @comment Use @setchapternewpage odd to ensure that the contents starts |
| @comment on an odd page so that it can always be moved to the front when |
| @comment printing two-up. |
| @setchapternewpage odd |
| @contents |
| @end ifclear |
| |
| @ifset extrablankpages |
| @comment final page must be blank for printed version |
| @page |
| @headings off |
| @* |
| @page |
| @* |
| @comment @page |
| @comment @* |
| @comment @page |
| @comment @* |
| @end ifset |
| @bye |