doc/expressions.texi: Correct documentation of MISSING and SYSMIS functions.
[pspp] / doc / expressions.texi
index 345e59669d36ad6f0cc08a8f95251e3b0760fdbc..463d5988657e7c18cd0096266419395eced76225 100644 (file)
@@ -1,9 +1,24 @@
+@c PSPP - a program for statistical analysis.
+@c Copyright (C) 2017 Free Software Foundation, Inc.
+@c Permission is granted to copy, distribute and/or modify this document
+@c under the terms of the GNU Free Documentation License, Version 1.3
+@c or any later version published by the Free Software Foundation;
+@c with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
+@c A copy of the license is included in the section entitled "GNU
+@c Free Documentation License".
+@c
+@c Use @func when refering to a function.
+@c Use @deftypefn for their definitions 
+@macro func{NAME}
+@code{\NAME\}
+@end macro
+
 @node Expressions
 @chapter Mathematical Expressions
 @cindex expressions, mathematical
 @cindex mathematical expressions
 
 @node Expressions
 @chapter Mathematical Expressions
 @cindex expressions, mathematical
 @cindex mathematical expressions
 
-Expressions share a common syntax each place they appear in PSPP
+Expressions share a common syntax each place they appear in @pspp{}
 commands.  Expressions are made up of @dfn{operands}, which can be
 numbers, strings, or variable names, separated by @dfn{operators}.
 There are five types of operators: grouping, arithmetic, logical,
 commands.  Expressions are made up of @dfn{operands}, which can be
 numbers, strings, or variable names, separated by @dfn{operators}.
 There are five types of operators: grouping, arithmetic, logical,
@@ -30,7 +45,7 @@ full-fledged expressions in themselves.
 @cindex Boolean
 @cindex values, Boolean
 
 @cindex Boolean
 @cindex values, Boolean
 
-Some PSPP operators and expressions work with Boolean values, which
+Some @pspp{} operators and expressions work with Boolean values, which
 represent true/false conditions.  Booleans have only three possible
 values: 0 (false), 1 (true), and system-missing (unknown).
 System-missing is neither true nor false and indicates that the true
 represent true/false conditions.  Booleans have only three possible
 values: 0 (false), 1 (true), and system-missing (unknown).
 System-missing is neither true nor false and indicates that the true
@@ -238,15 +253,15 @@ True if @var{a} is not equal to @var{b}.
 @cindex @code{(}
 @cindex @code{)}
 @cindex names, of functions
 @cindex @code{(}
 @cindex @code{)}
 @cindex names, of functions
-PSPP functions provide mathematical abilities above and beyond
+@pspp{} functions provide mathematical abilities above and beyond
 those possible using simple operators.  Functions have a common
 syntax: each is composed of a function name followed by a left
 parenthesis, one or more arguments, and a right parenthesis.
 
 Function names are not reserved.  Their names are specially treated
 those possible using simple operators.  Functions have a common
 syntax: each is composed of a function name followed by a left
 parenthesis, one or more arguments, and a right parenthesis.
 
 Function names are not reserved.  Their names are specially treated
-only when followed by a left parenthesis, so that @code{EXP(10)}
-refers to the constant value @code{e} raised to the 10th power, but
-@code{EXP} by itself refers to the value of variable EXP.
+only when followed by a left parenthesis, so that @samp{EXP(10)}
+refers to the constant value @math{e} raised to the 10th power, but
+@samp{EXP} by itself refers to the value of a variable called @code{EXP}.
 
 The sections below describe each function in detail.
 
 
 The sections below describe each function in detail.
 
@@ -256,9 +271,10 @@ The sections below describe each function in detail.
 * Trigonometry::                ACOS ARCOS ARSIN ARTAN ASIN ATAN COS SIN TAN
 * Missing Value Functions::     MISSING NMISS NVALID SYSMIS VALUE
 * Set Membership::              ANY RANGE
 * Trigonometry::                ACOS ARCOS ARSIN ARTAN ASIN ATAN COS SIN TAN
 * Missing Value Functions::     MISSING NMISS NVALID SYSMIS VALUE
 * Set Membership::              ANY RANGE
-* Statistical Functions::       CFVAR MAX MEAN MIN SD SUM VARIANCE
+* Statistical Functions::       CFVAR MAX MEAN MEDIAN MIN SD SUM VARIANCE
 * String Functions::            CONCAT INDEX LENGTH LOWER LPAD LTRIM NUMBER 
 * String Functions::            CONCAT INDEX LENGTH LOWER LPAD LTRIM NUMBER 
-                                RINDEX RPAD RTRIM STRING SUBSTR UPCASE
+                                REPLACE RINDEX RPAD RTRIM STRING STRUNC SUBSTR
+                                UPCASE
 * Time and Date::               CTIME.xxx DATE.xxx TIME.xxx XDATE.xxx
                                 DATEDIFF DATESUM
 * Miscellaneous Functions::     LAG YRMODA VALUELABEL
 * Time and Date::               CTIME.xxx DATE.xxx TIME.xxx XDATE.xxx
                                 DATEDIFF DATESUM
 * Miscellaneous Functions::     LAG YRMODA VALUELABEL
@@ -273,7 +289,7 @@ Advanced mathematical functions take numeric arguments and produce
 numeric results.
 
 @deftypefn {Function} {} EXP (@var{exponent})
 numeric results.
 
 @deftypefn {Function} {} EXP (@var{exponent})
-Returns @i{e} (approximately 2.71828) raised to power @var{exponent}.
+Returns @math{e} (approximately 2.71828) raised to power @var{exponent}.
 @end deftypefn
 
 @cindex logarithms
 @end deftypefn
 
 @cindex logarithms
@@ -283,12 +299,12 @@ not positive, the result is system-missing.
 @end deftypefn
 
 @deftypefn {Function} {} LN (@var{number})
 @end deftypefn
 
 @deftypefn {Function} {} LN (@var{number})
-Takes the base-@i{e} logarithm of @var{number}.  If @var{number} is
+Takes the base-@math{e} logarithm of @var{number}.  If @var{number} is
 not positive, the result is system-missing.
 @end deftypefn
 
 @deftypefn {Function} {} LNGAMMA (@var{number})
 not positive, the result is system-missing.
 @end deftypefn
 
 @deftypefn {Function} {} LNGAMMA (@var{number})
-Yields the base-@i{e} logarithm of the complete gamma of @var{number}.
+Yields the base-@math{e} logarithm of the complete gamma of @var{number}.
 If @var{number} is a negative integer, the result is system-missing.
 @end deftypefn
 
 If @var{number} is a negative integer, the result is system-missing.
 @end deftypefn
 
@@ -325,15 +341,24 @@ Returns the remainder when @var{number} is divided by 10.  If
 @end deftypefn
 
 @cindex rounding
 @end deftypefn
 
 @cindex rounding
-@deftypefn {Function} {} RND (@var{number})
-Takes the absolute value of @var{number} and rounds it to an integer.
-Then, if @var{number} was negative originally, negates the result.
+@deftypefn {Function} {} RND (@var{number} [, @var{mult}[, @var{fuzzbits}]])
+Rounds @var{number} and rounds it to a multiple of @var{mult} (by
+default 1).  Halves are rounded away from zero, as are values that
+fall short of halves by less than @var{fuzzbits} of errors in the
+least-significant bits of @var{number}.  If @var{fuzzbits} is not
+specified then the default is taken from SET FUZZBITS (@pxref{SET
+FUZZBITS}), which is 6 unless overridden.
 @end deftypefn
 
 @cindex truncation
 @end deftypefn
 
 @cindex truncation
-@deftypefn {Function} {} TRUNC (@var{number})
-Discards the fractional part of @var{number}; that is, rounds
-@var{number} towards zero.
+@deftypefn {Function} {} TRUNC (@var{number} [, @var{mult}[, @var{fuzzbits}]])
+Rounds @var{number} to a multiple of @var{mult}, toward zero.  For the
+default @var{mult} of 1, this is equivalent to discarding the
+fractional part of @var{number}.  Values that fall short of a multiple
+of @var{mult} by less than @var{fuzzbits} of errors in the
+least-significant bits of @var{number} are rounded away from zero.  If
+@var{fuzzbits} is not specified then the default is taken from SET
+FUZZBITS (@pxref{SET FUZZBITS}), which is 6 unless overridden.
 @end deftypefn
 
 @node Trigonometry
 @end deftypefn
 
 @node Trigonometry
@@ -349,7 +374,7 @@ results.
 @deftypefnx {Function} {} ACOS (@var{number})
 Takes the arccosine, in radians, of @var{number}.  Results in
 system-missing if @var{number} is not between -1 and 1 inclusive.
 @deftypefnx {Function} {} ACOS (@var{number})
 Takes the arccosine, in radians, of @var{number}.  Results in
 system-missing if @var{number} is not between -1 and 1 inclusive.
-This function is a PSPP extension.
+This function is a @pspp{} extension.
 @end deftypefn
 
 @cindex arcsine
 @end deftypefn
 
 @cindex arcsine
@@ -381,7 +406,7 @@ Takes the sine of @var{angle} which should be in radians.
 @deftypefn {Function} {} TAN (@var{angle})
 Takes the tangent of @var{angle} which should be in radians.
 Results in system-missing at values
 @deftypefn {Function} {} TAN (@var{angle})
 Takes the tangent of @var{angle} which should be in radians.
 Results in system-missing at values
-of @var{angle} that are too close to odd multiples of pi/2.
+of @var{angle} that are too close to odd multiples of @math{\pi/2}.
 Portability: none.
 @end deftypefn
 
 Portability: none.
 @end deftypefn
 
@@ -398,7 +423,11 @@ functions.  In particular, user-missing values for numeric variables
 are converted to system-missing values.
 
 @deftypefn {Function} {} MISSING (@var{expr})
 are converted to system-missing values.
 
 @deftypefn {Function} {} MISSING (@var{expr})
-Returns 1 if @var{expr} has the system-missing value, 0 otherwise.
+When @var{expr} is simply the name of a numeric variable, returns 1 if
+the variable has the system-missing value or if it is user-missing.
+For any other value 0 is returned.
+If @var{expr} takes another form, the function returns 1 if the value is
+system-missing, 0 otherwise.
 @end deftypefn
 
 @deftypefn {Function} {} NMISS (@var{expr} [, @var{expr}]@dots{})
 @end deftypefn
 
 @deftypefn {Function} {} NMISS (@var{expr} [, @var{expr}]@dots{})
@@ -414,10 +443,7 @@ variable ranges using the @code{@var{var1} TO @var{var2}} syntax.
 @end deftypefn
 
 @deftypefn {Function} {} SYSMIS (@var{expr})
 @end deftypefn
 
 @deftypefn {Function} {} SYSMIS (@var{expr})
-When @var{expr} is simply the name of a numeric variable, returns 1 if
-the variable has the system-missing value, 0 if it is user-missing or
-not missing.  If given @var{expr} takes another form, results in 1 if
-the value is system-missing, 0 otherwise.
+Returns 1 if @var{expr} has the system-missing value, 0 otherwise.
 @end deftypefn
 
 @deftypefn {Function} {} VALUE (@var{variable})
 @end deftypefn
 
 @deftypefn {Function} {} VALUE (@var{variable})
@@ -443,7 +469,7 @@ String comparisons are performed according to the rules given in
 Results in true if @var{value} is equal to any of the @var{set}
 values.  Otherwise, results in false.  If @var{value} is
 system-missing, returns system-missing.  System-missing values in
 Results in true if @var{value} is equal to any of the @var{set}
 values.  Otherwise, results in false.  If @var{value} is
 system-missing, returns system-missing.  System-missing values in
-@var{set} do not cause ANY to return system-missing.
+@var{set} do not cause @func{ANY} to return system-missing.
 @end deftypefn
 
 @deftypefn {Function} {} RANGE (@var{value}, @var{low}, @var{high} [, @var{low}, @var{high}]@dots{})
 @end deftypefn
 
 @deftypefn {Function} {} RANGE (@var{value}, @var{low}, @var{high} [, @var{low}, @var{high}]@dots{})
@@ -452,7 +478,7 @@ Results in true if @var{value} is in any of the intervals bounded by
 Each @var{low} must be less than or equal to its corresponding
 @var{high} value.  @var{low} and @var{high} must be given in pairs.
 If @var{value} is system-missing, returns system-missing.
 Each @var{low} must be less than or equal to its corresponding
 @var{high} value.  @var{low} and @var{high} must be given in pairs.
 If @var{value} is system-missing, returns system-missing.
-System-missing values in @var{set} do not cause RANGE to return
+System-missing values in @var{set} do not cause @func{RANGE} to return
 system-missing.
 @end deftypefn
 
 system-missing.
 @end deftypefn
 
@@ -475,10 +501,10 @@ using the @code{@var{var1} TO @var{var2}} syntax.
 Unlike most functions, statistical functions can return non-missing
 values even when some of their arguments are missing.  Most
 statistical functions, by default, require only 1 non-missing value to
 Unlike most functions, statistical functions can return non-missing
 values even when some of their arguments are missing.  Most
 statistical functions, by default, require only 1 non-missing value to
-have a non-missing return, but CFVAR, SD, and VARIANCE require 2.
+have a non-missing return, but @func{CFVAR}, @func{SD}, and @func {VARIANCE} require 2.
 These defaults can be increased (but not decreased) by appending a dot
 and the minimum number of valid arguments to the function name.  For
 These defaults can be increased (but not decreased) by appending a dot
 and the minimum number of valid arguments to the function name.  For
-example, @code{MEAN.3(X, Y, Z)} would only return non-missing if all
+example, @subcmd{MEAN.3(X, Y, Z)} would only return non-missing if all
 of @samp{X}, @samp{Y}, and @samp{Z} were valid.
 
 @cindex coefficient of variation
 of @samp{X}, @samp{Y}, and @samp{Z} were valid.
 
 @cindex coefficient of variation
@@ -500,6 +526,13 @@ be numeric or string.
 Results in the mean of the values of @var{number}.
 @end deftypefn
 
 Results in the mean of the values of @var{number}.
 @end deftypefn
 
+@cindex median
+@deftypefn {Function} {} MEDIAN (@var{number}, @var{number}[, @dots{}])
+Results in the median of the values of @var{number}.  Given an even
+number of nonmissing arguments, yields the mean of the two middle
+values.
+@end deftypefn
+
 @cindex minimum
 @deftypefn {Function} {} MIN (@var{number}, @var{number}[, @dots{}])
 Results in the value of the least @var{value}.  The @var{value}s may
 @cindex minimum
 @deftypefn {Function} {} MIN (@var{number}, @var{number}[, @dots{}])
 Results in the value of the least @var{value}.  The @var{value}s may
@@ -610,8 +643,17 @@ right-padded with spaces.  If @var{string} is not in the correct
 format for @var{format}, system-missing is returned.
 @end deftypefn
 
 format for @var{format}, system-missing is returned.
 @end deftypefn
 
+@cindex strings, replacing substrings
+@cindex replacing substrings
+@deftypefn {Function} {} REPLACE (@var{haystack}, @var{needle}, @var{replacement}[, @var{n}])
+Returns string @var{haystack} with instances of @var{needle} replaced
+by @var{replacement}.  If nonnegative integer @var{n} is specified, it
+limits the maximum number of replacements; otherwise, all instances of
+@var{needle} are replaced.
+@end deftypefn
+
 @cindex strings, searching backwards
 @cindex strings, searching backwards
-@deftypefn {Function} {} RINDEX (@var{string}, @var{format})
+@deftypefn {Function} {} RINDEX (@var{haystack}, @var{needle})
 Returns a positive integer indicating the position of the last
 occurrence of @var{needle} in @var{haystack}.  Returns 0 if
 @var{haystack} does not contain @var{needle}.  Returns system-missing if
 Returns a positive integer indicating the position of the last
 occurrence of @var{needle} in @var{haystack}.  Returns 0 if
 @var{haystack} does not contain @var{needle}.  Returns system-missing if
@@ -624,7 +666,7 @@ Searches @var{haystack} for the last occurrence of each part, and
 returns the largest value.  Returns 0 if @var{haystack} does not contain
 any part in @var{needle}.  It is an error if @var{needle_len} does not
 evenly divide the length of @var{needle}.  Returns system-missing
 returns the largest value.  Returns 0 if @var{haystack} does not contain
 any part in @var{needle}.  It is an error if @var{needle_len} does not
 evenly divide the length of @var{needle}.  Returns system-missing
-if @var{needle} is an empty string.
+if @var{needle} is an empty string or if needle_len is less than 1.
 @end deftypefn
 
 @cindex padding strings
 @end deftypefn
 
 @cindex padding strings
@@ -665,6 +707,15 @@ format specifier @var{format}.  For example, @code{STRING(123.56, F5.1)}
 has the value @code{"123.6"}.
 @end deftypefn
 
 has the value @code{"123.6"}.
 @end deftypefn
 
+@cindex strings, trimming
+@cindex strings, truncating
+@cindex white space, trimming
+@deftypefn {Function} {} STRUNC (@var{string}, @var{n})
+Returns @var{string}, first trimming it to at most @var{n} bytes, then
+removing trailing spaces.  Returns an empty string if @var{n} is
+missing or negative.
+@end deftypefn
+
 @cindex substrings
 @cindex strings, taking substrings of
 @deftypefn {Function} {} SUBSTR (@var{string}, @var{start})
 @cindex substrings
 @cindex strings, taking substrings of
 @deftypefn {Function} {} SUBSTR (@var{string}, @var{start})
@@ -698,7 +749,7 @@ Returns @var{string}, changing lowercase letters to uppercase letters.
 @cindex dates
 
 @cindex dates, valid
 @cindex dates
 
 @cindex dates, valid
-For compatibility, PSPP considers dates before 15 Oct 1582 invalid.
+For compatibility, @pspp{} considers dates before 15 Oct 1582 invalid.
 Most time and date functions will not accept earlier dates.
 
 @menu
 Most time and date functions will not accept earlier dates.
 
 @menu
@@ -717,8 +768,8 @@ Most time and date functions will not accept earlier dates.
 
 @cindex time, concepts
 @cindex time, intervals
 
 @cindex time, concepts
 @cindex time, intervals
-Times and dates are handled by PSPP as single numbers.  A
-@dfn{time} is an interval.  PSPP measures times in seconds.
+Times and dates are handled by @pspp{} as single numbers.  A
+@dfn{time} is an interval.  @pspp{} measures times in seconds.
 Thus, the following intervals correspond with the numeric values given:
                 
 @example
 Thus, the following intervals correspond with the numeric values given:
                 
 @example
@@ -731,9 +782,9 @@ Thus, the following intervals correspond with the numeric values given:
 @cindex dates, concepts
 @cindex time, instants of
 A @dfn{date}, on the other hand, is a particular instant in the past
 @cindex dates, concepts
 @cindex time, instants of
 A @dfn{date}, on the other hand, is a particular instant in the past
-or the future.  PSPP represents a date as a number of seconds since
+or the future.  @pspp{} represents a date as a number of seconds since
 midnight preceding 14 Oct 1582.  Because midnight preceding the dates
 midnight preceding 14 Oct 1582.  Because midnight preceding the dates
-given below correspond with the numeric PSPP dates given:
+given below correspond with the numeric @pspp{} dates given:
 
 @example
               15 Oct 1582                86,400
 
 @example
               15 Oct 1582                86,400
@@ -773,7 +824,7 @@ vice versa.
 @cindex examination, of times
 @cindex time, lengths of
 
 @cindex examination, of times
 @cindex time, lengths of
 
-These functions take numeric arguments in PSPP time format and
+These functions take numeric arguments in @pspp{} time format and
 give numeric results.
 
 @cindex days
 give numeric results.
 
 @cindex days
@@ -886,18 +937,18 @@ Results in a date value corresponding to the day
 @cindex date examination
 
 @cindex arguments, of date extraction functions
 @cindex date examination
 
 @cindex arguments, of date extraction functions
-These functions take numeric arguments in PSPP date or time
+These functions take numeric arguments in @pspp{} date or time
 format and give numeric results.  These names are used for arguments:
 
 @table @var
 @item date
 format and give numeric results.  These names are used for arguments:
 
 @table @var
 @item date
-A numeric value in PSPP date format.
+A numeric value in @pspp{} date format.
 
 @item time
 
 @item time
-A numeric value in PSPP time format.
+A numeric value in @pspp{} time format.
 
 @item time-or-date
 
 @item time-or-date
-A numeric value in PSPP time or date format.
+A numeric value in @pspp{} time or date format.
 @end table
 
 @cindex days
 @end table
 
 @cindex days
@@ -1025,7 +1076,7 @@ accuracy of some procedures may be affected.  If necessary, convert
 times or dates in seconds to some other unit, like days or years,
 before performing analysis.
 
 times or dates in seconds to some other unit, like days or years,
 before performing analysis.
 
-PSPP supplies a few functions for date arithmetic:
+@pspp{} supplies a few functions for date arithmetic:
 
 @deftypefn {Function} {} DATEDIFF (@var{date2}, @var{date1}, @var{unit})
 Returns the span of time from @var{date1} to @var{date2} in terms of
 
 @deftypefn {Function} {} DATEDIFF (@var{date2}, @var{date1}, @var{unit})
 Returns the span of time from @var{date1} to @var{date2} in terms of
@@ -1077,7 +1128,8 @@ yields the value of that variable for the case @var{n} before the
 current one.  Results in system-missing (for numeric variables) or
 blanks (for string variables) for the first @var{n} cases.
 
 current one.  Results in system-missing (for numeric variables) or
 blanks (for string variables) for the first @var{n} cases.
 
-@code{LAG} obtains values from the cases that become the new active file
+@code{LAG} obtains values from the cases that become the new active
+dataset
 after a procedure executes.  Thus, @code{LAG} will not return values
 from cases dropped by transformations such as @cmd{SELECT IF}, and
 transformations like @cmd{COMPUTE} that modify data will change the
 after a procedure executes.  Thus, @code{LAG} will not return values
 from cases dropped by transformations such as @cmd{SELECT IF}, and
 transformations like @cmd{COMPUTE} that modify data will change the
@@ -1097,7 +1149,7 @@ use of a large value will increase memory consumption.
 @cindex Julian date
 @deftypefn {Function} {} YRMODA (@var{year}, @var{month}, @var{day})
 @var{year} is a year, either between 0 and 99 or at least 1582.
 @cindex Julian date
 @deftypefn {Function} {} YRMODA (@var{year}, @var{month}, @var{day})
 @var{year} is a year, either between 0 and 99 or at least 1582.
-Unlike other PSPP date functions, years between 0 and 99 always
+Unlike other @pspp{} date functions, years between 0 and 99 always
 correspond to 1900 through 1999.  @var{month} is a month between 1 and
 13.  @var{day} is a day between 0 and 31.  A @var{day} of 0 refers to
 the last day of the previous month, and a @var{month} of 13 refers to
 correspond to 1900 through 1999.  @var{month} is a month between 1 and
 13.  @var{day} is a day between 0 and 31.  A @var{day} of 0 refers to
 the last day of the previous month, and a @var{month} of 13 refers to
@@ -1120,7 +1172,7 @@ associated label, then this function returns the empty string.
 @node Statistical Distribution Functions
 @subsection Statistical Distribution Functions
 
 @node Statistical Distribution Functions
 @subsection Statistical Distribution Functions
 
-PSPP can calculate several functions of standard statistical
+@pspp{} can calculate several functions of standard statistical
 distributions.  These functions are named systematically based on the
 function and the distribution.  The table below describes the
 statistical distribution functions in general:
 distributions.  These functions are named systematically based on the
 function and the distribution.  The table below describes the
 statistical distribution functions in general:
@@ -1143,7 +1195,7 @@ a probability.
 Tail probability function for @var{dist}, that is, the probability
 that a random variate drawn from the distribution is greater than
 @var{x}.  The domain of @var{x} depends @var{dist}.  The result is a
 Tail probability function for @var{dist}, that is, the probability
 that a random variate drawn from the distribution is greater than
 @var{x}.  The domain of @var{x} depends @var{dist}.  The result is a
-probability.  Only a few distributions include an SIG function.
+probability.  Only a few distributions include an @func{SIG} function.
 
 @item IDF.@var{dist} (@var{p}[, @var{param}@dots{}])
 Inverse distribution function for @var{dist}, the value of @var{x} for
 
 @item IDF.@var{dist} (@var{p}[, @var{param}@dots{}])
 Inverse distribution function for @var{dist}, the value of @var{x} for
@@ -1159,7 +1211,7 @@ distribution.
 Noncentral probability density function.  The result is the density of
 the given noncentral distribution at @var{x}.  The domain of @var{x}
 depends on @var{dist}.  The range is nonnegative real numbers.  Only a
 Noncentral probability density function.  The result is the density of
 the given noncentral distribution at @var{x}.  The domain of @var{x}
 depends on @var{dist}.  The range is nonnegative real numbers.  Only a
-few distributions include an NPDF function.
+few distributions include an @func{NPDF} function.
 
 @item NCDF.@var{dist} (@var{x}[, @var{param}@dots{}])
 Noncentral cumulative distribution function for @var{dist}, that is,
 
 @item NCDF.@var{dist} (@var{x}[, @var{param}@dots{}])
 Noncentral cumulative distribution function for @var{dist}, that is,
@@ -1208,12 +1260,12 @@ Cauchy distribution with location parameter @var{a} and scale
 parameter @var{b}.  Constraints: @var{b} > 0, 0 < @var{p} < 1.
 @end deftypefn
 
 parameter @var{b}.  Constraints: @var{b} > 0, 0 < @var{p} < 1.
 @end deftypefn
 
-@deftypefn {Function} {} PDF.CHISQ (@var{x}, @var{df})
-@deftypefnx {Function} {} CDF.CHISQ (@var{x}, @var{df})
+@c @deftypefn {Function} {} PDF.CHISQ (@var{x}, @var{df})
+@deftypefn {Function} {} CDF.CHISQ (@var{x}, @var{df})
 @deftypefnx {Function} {} SIG.CHISQ (@var{x}, @var{df})
 @deftypefnx {Function} {} IDF.CHISQ (@var{p}, @var{df})
 @deftypefnx {Function} {} RV.CHISQ (@var{df})
 @deftypefnx {Function} {} SIG.CHISQ (@var{x}, @var{df})
 @deftypefnx {Function} {} IDF.CHISQ (@var{p}, @var{df})
 @deftypefnx {Function} {} RV.CHISQ (@var{df})
-@deftypefnx {Function} {} NPDF.CHISQ (@var{x}, @var{df}, @var{lambda})
+@c @deftypefnx {Function} {} NPDF.CHISQ (@var{x}, @var{df}, @var{lambda})
 @deftypefnx {Function} {} NCDF.CHISQ (@var{x}, @var{df}, @var{lambda})
 Chi-squared distribution with @var{df} degrees of freedom.  The
 noncentral distribution takes an additional parameter @var{lambda}.
 @deftypefnx {Function} {} NCDF.CHISQ (@var{x}, @var{df}, @var{lambda})
 Chi-squared distribution with @var{df} degrees of freedom.  The
 noncentral distribution takes an additional parameter @var{lambda}.
@@ -1235,7 +1287,7 @@ Exponential distribution with scale parameter @var{a}.  The inverse of
 Exponential power distribution with positive scale parameter @var{a}
 and nonnegative power parameter @var{b}.  Constraints: @var{a} > 0,
 @var{b} >= 0, @var{x} >= 0, 0 <= @var{p} <= 1.  This distribution is a
 Exponential power distribution with positive scale parameter @var{a}
 and nonnegative power parameter @var{b}.  Constraints: @var{a} > 0,
 @var{b} >= 0, @var{x} >= 0, 0 <= @var{p} <= 1.  This distribution is a
-PSPP extension.
+@pspp{} extension.
 @end deftypefn
 
 @deftypefn {Function} {} PDF.F (@var{x}, @var{df1}, @var{df2})
 @end deftypefn
 
 @deftypefn {Function} {} PDF.F (@var{x}, @var{df1}, @var{df2})
@@ -1243,8 +1295,8 @@ PSPP extension.
 @deftypefnx {Function} {} SIG.F (@var{x}, @var{df1}, @var{df2})
 @deftypefnx {Function} {} IDF.F (@var{p}, @var{df1}, @var{df2})
 @deftypefnx {Function} {} RV.F (@var{df1}, @var{df2})
 @deftypefnx {Function} {} SIG.F (@var{x}, @var{df1}, @var{df2})
 @deftypefnx {Function} {} IDF.F (@var{p}, @var{df1}, @var{df2})
 @deftypefnx {Function} {} RV.F (@var{df1}, @var{df2})
-@deftypefnx {Function} {} NPDF.F (@var{x}, @var{df1}, @var{df2}, @var{lambda})
-@deftypefnx {Function} {} NCDF.F (@var{x}, @var{df1}, @var{df2}, @var{lambda})
+@c @deftypefnx {Function} {} NPDF.F (@var{x}, @var{df1}, @var{df2}, @var{lambda})
+@c @deftypefnx {Function} {} NCDF.F (@var{x}, @var{df1}, @var{df2}, @var{lambda})
 F-distribution of two chi-squared deviates with @var{df1} and
 @var{df2} degrees of freedom.  The noncentral distribution takes an
 additional parameter @var{lambda}.  Constraints: @var{df1} > 0,
 F-distribution of two chi-squared deviates with @var{df1} and
 @var{df2} degrees of freedom.  The noncentral distribution takes an
 additional parameter @var{lambda}.  Constraints: @var{df1} > 0,
@@ -1260,21 +1312,21 @@ Gamma distribution with shape parameter @var{a} and scale parameter
 @var{p} < 1.
 @end deftypefn
 
 @var{p} < 1.
 @end deftypefn
 
-@deftypefn {Function} {} PDF.HALFNRM (@var{x}, @var{a}, @var{b})
-@deftypefnx {Function} {} CDF.HALFNRM (@var{x}, @var{a}, @var{b})
-@deftypefnx {Function} {} IDF.HALFNRM (@var{p}, @var{a}, @var{b})
-@deftypefnx {Function} {} RV.HALFNRM (@var{a}, @var{b})
-Half-normal distribution with location parameter @var{a} and shape
-parameter @var{b}.  Constraints: @var{b} > 0, 0 < @var{p} < 1.
-@end deftypefn
+@c @deftypefn {Function} {} PDF.HALFNRM (@var{x}, @var{a}, @var{b})
+@c @deftypefnx {Function} {} CDF.HALFNRM (@var{x}, @var{a}, @var{b})
+@c @deftypefnx {Function} {} IDF.HALFNRM (@var{p}, @var{a}, @var{b})
+@c @deftypefnx {Function} {} RV.HALFNRM (@var{a}, @var{b})
+@c Half-normal distribution with location parameter @var{a} and shape
+@c parameter @var{b}.  Constraints: @var{b} > 0, 0 < @var{p} < 1.
+@c @end deftypefn
 
 
-@deftypefn {Function} {} PDF.IGAUSS (@var{x}, @var{a}, @var{b})
-@deftypefnx {Function} {} CDF.IGAUSS (@var{x}, @var{a}, @var{b})
-@deftypefnx {Function} {} IDF.IGAUSS (@var{p}, @var{a}, @var{b})
-@deftypefnx {Function} {} RV.IGAUSS (@var{a}, @var{b})
-Inverse Gaussian distribution with parameters @var{a} and @var{b}.
-Constraints: @var{a} > 0, @var{b} > 0, @var{x} > 0, 0 <= @var{p} < 1.
-@end deftypefn
+@c @deftypefn {Function} {} PDF.IGAUSS (@var{x}, @var{a}, @var{b})
+@c @deftypefnx {Function} {} CDF.IGAUSS (@var{x}, @var{a}, @var{b})
+@c @deftypefnx {Function} {} IDF.IGAUSS (@var{p}, @var{a}, @var{b})
+@c @deftypefnx {Function} {} RV.IGAUSS (@var{a}, @var{b})
+@c Inverse Gaussian distribution with parameters @var{a} and @var{b}.
+@c Constraints: @var{a} > 0, @var{b} > 0, @var{x} > 0, 0 <= @var{p} < 1.
+@c @end deftypefn
 
 @deftypefn {Function} {} PDF.LANDAU (@var{x})
 @deftypefnx {Function} {} RV.LANDAU ()
 
 @deftypefn {Function} {} PDF.LANDAU (@var{x})
 @deftypefnx {Function} {} RV.LANDAU ()
@@ -1340,7 +1392,7 @@ Equivalent to RV.NORMAL(0, @var{sigma}).
 @deftypefn {Function} {} PDF.NTAIL (@var{x}, @var{a}, @var{sigma})
 @deftypefnx {Function} {} RV.NTAIL (@var{a}, @var{sigma})
 Normal tail distribution with lower limit @var{a} and standard
 @deftypefn {Function} {} PDF.NTAIL (@var{x}, @var{a}, @var{sigma})
 @deftypefnx {Function} {} RV.NTAIL (@var{a}, @var{sigma})
 Normal tail distribution with lower limit @var{a} and standard
-deviation @var{sigma}.  This distribution is a PSPP extension.
+deviation @var{sigma}.  This distribution is a @pspp{} extension.
 Constraints: @var{a} > 0, @var{x} > @var{a}, 0 < @var{p} < 1.
 @end deftypefn
 
 Constraints: @var{a} > 0, @var{x} > @var{a}, 0 < @var{p} < 1.
 @end deftypefn
 
@@ -1358,37 +1410,37 @@ parameter @var{b}.  Constraints: @var{a} > 0, @var{b} > 0, @var{x} >=
 @deftypefnx {Function} {} IDF.RAYLEIGH (@var{p}, @var{sigma})
 @deftypefnx {Function} {} RV.RAYLEIGH (@var{sigma})
 Rayleigh distribution with scale parameter @var{sigma}.  This
 @deftypefnx {Function} {} IDF.RAYLEIGH (@var{p}, @var{sigma})
 @deftypefnx {Function} {} RV.RAYLEIGH (@var{sigma})
 Rayleigh distribution with scale parameter @var{sigma}.  This
-distribution is a PSPP extension.  Constraints: @var{sigma} > 0,
+distribution is a @pspp{} extension.  Constraints: @var{sigma} > 0,
 @var{x} > 0.
 @end deftypefn
 
 @deftypefn {Function} {} PDF.RTAIL (@var{x}, @var{a}, @var{sigma})
 @deftypefnx {Function} {} RV.RTAIL (@var{a}, @var{sigma})
 Rayleigh tail distribution with lower limit @var{a} and scale
 @var{x} > 0.
 @end deftypefn
 
 @deftypefn {Function} {} PDF.RTAIL (@var{x}, @var{a}, @var{sigma})
 @deftypefnx {Function} {} RV.RTAIL (@var{a}, @var{sigma})
 Rayleigh tail distribution with lower limit @var{a} and scale
-parameter @var{sigma}.  This distribution is a PSPP extension.
+parameter @var{sigma}.  This distribution is a @pspp{} extension.
 Constraints: @var{a} > 0, @var{sigma} > 0, @var{x} > @var{a}.
 @end deftypefn
 
 Constraints: @var{a} > 0, @var{sigma} > 0, @var{x} > @var{a}.
 @end deftypefn
 
-@deftypefn {Function} {} CDF.SMOD (@var{x}, @var{a}, @var{b})
-@deftypefnx {Function} {} IDF.SMOD (@var{p}, @var{a}, @var{b})
-Studentized maximum modulus distribution with parameters @var{a} and
-@var{b}.  Constraints: @var{a} > 0, @var{b} > 0, @var{x} > 0, 0 <=
-@var{p} < 1.
-@end deftypefn
+@c @deftypefn {Function} {} CDF.SMOD (@var{x}, @var{a}, @var{b})
+@c @deftypefnx {Function} {} IDF.SMOD (@var{p}, @var{a}, @var{b})
+@c Studentized maximum modulus distribution with parameters @var{a} and
+@c @var{b}.  Constraints: @var{a} > 0, @var{b} > 0, @var{x} > 0, 0 <=
+@c @var{p} < 1.
+@c @end deftypefn
 
 
-@deftypefn {Function} {} CDF.SRANGE (@var{x}, @var{a}, @var{b})
-@deftypefnx {Function} {} IDF.SRANGE (@var{p}, @var{a}, @var{b})
-Studentized range distribution with parameters @var{a} and @var{b}.
-Constraints:  @var{a} >= 1, @var{b} >= 1, @var{x} > 0, 0 <= @var{p} <
-1.
-@end deftypefn
+@c @deftypefn {Function} {} CDF.SRANGE (@var{x}, @var{a}, @var{b})
+@c @deftypefnx {Function} {} IDF.SRANGE (@var{p}, @var{a}, @var{b})
+@c Studentized range distribution with parameters @var{a} and @var{b}.
+@c Constraints:  @var{a} >= 1, @var{b} >= 1, @var{x} > 0, 0 <= @var{p} <
+@c 1.
+@c @end deftypefn
 
 @deftypefn {Function} {} PDF.T (@var{x}, @var{df})
 @deftypefnx {Function} {} CDF.T (@var{x}, @var{df})
 @deftypefnx {Function} {} IDF.T (@var{p}, @var{df})
 @deftypefnx {Function} {} RV.T (@var{df})
 
 @deftypefn {Function} {} PDF.T (@var{x}, @var{df})
 @deftypefnx {Function} {} CDF.T (@var{x}, @var{df})
 @deftypefnx {Function} {} IDF.T (@var{p}, @var{df})
 @deftypefnx {Function} {} RV.T (@var{df})
-@deftypefnx {Function} {} NPDF.T (@var{x}, @var{df}, @var{lambda})
-@deftypefnx {Function} {} NCDF.T (@var{x}, @var{df}, @var{lambda})
+@c @deftypefnx {Function} {} NPDF.T (@var{x}, @var{df}, @var{lambda})
+@c @deftypefnx {Function} {} NCDF.T (@var{x}, @var{df}, @var{lambda})
 T-distribution with @var{df} degrees of freedom.  The noncentral
 distribution takes an additional parameter @var{lambda}.  Constraints:
 @var{df} > 0, 0 < @var{p} < 1.
 T-distribution with @var{df} degrees of freedom.  The noncentral
 distribution takes an additional parameter @var{lambda}.  Constraints:
 @var{df} > 0, 0 < @var{p} < 1.
@@ -1398,14 +1450,14 @@ distribution takes an additional parameter @var{lambda}.  Constraints:
 @deftypefnx {Function} {} CDF.T1G (@var{x}, @var{a}, @var{b})
 @deftypefnx {Function} {} IDF.T1G (@var{p}, @var{a}, @var{b})
 Type-1 Gumbel distribution with parameters @var{a} and @var{b}.  This
 @deftypefnx {Function} {} CDF.T1G (@var{x}, @var{a}, @var{b})
 @deftypefnx {Function} {} IDF.T1G (@var{p}, @var{a}, @var{b})
 Type-1 Gumbel distribution with parameters @var{a} and @var{b}.  This
-distribution is a PSPP extension.  Constraints: 0 < @var{p} < 1.
+distribution is a @pspp{} extension.  Constraints: 0 < @var{p} < 1.
 @end deftypefn
 
 @deftypefn {Function} {} PDF.T2G (@var{x}, @var{a}, @var{b})
 @deftypefnx {Function} {} CDF.T2G (@var{x}, @var{a}, @var{b})
 @deftypefnx {Function} {} IDF.T2G (@var{p}, @var{a}, @var{b})
 Type-2 Gumbel distribution with parameters @var{a} and @var{b}.  This
 @end deftypefn
 
 @deftypefn {Function} {} PDF.T2G (@var{x}, @var{a}, @var{b})
 @deftypefnx {Function} {} CDF.T2G (@var{x}, @var{a}, @var{b})
 @deftypefnx {Function} {} IDF.T2G (@var{p}, @var{a}, @var{b})
 Type-2 Gumbel distribution with parameters @var{a} and @var{b}.  This
-distribution is a PSPP extension.  Constraints: @var{x} > 0, 0 <
+distribution is a @pspp{} extension.  Constraints: @var{x} > 0, 0 <
 @var{p} < 1.
 @end deftypefn
 
 @var{p} < 1.
 @end deftypefn
 
@@ -1442,9 +1494,9 @@ Bernoulli distribution with probability of success @var{p}.
 Constraints: @var{x} = 0 or 1, 0 <= @var{p} <= 1.
 @end deftypefn
 
 Constraints: @var{x} = 0 or 1, 0 <= @var{p} <= 1.
 @end deftypefn
 
-@deftypefn {Function} {} PDF.BINOMIAL (@var{x}, @var{n}, @var{p})
-@deftypefnx {Function} {} CDF.BINOMIAL (@var{x}, @var{n}, @var{p})
-@deftypefnx {Function} {} RV.BINOMIAL (@var{n}, @var{p})
+@deftypefn {Function} {} PDF.BINOM (@var{x}, @var{n}, @var{p})
+@deftypefnx {Function} {} CDF.BINOM (@var{x}, @var{n}, @var{p})
+@deftypefnx {Function} {} RV.BINOM (@var{n}, @var{p})
 Binomial distribution with @var{n} trials and probability of success
 @var{p}.  Constraints: integer @var{n} > 0, 0 <= @var{p} <= 1, integer
 @var{x} <= @var{n}.
 Binomial distribution with @var{n} trials and probability of success
 @var{p}.  Constraints: integer @var{n} > 0, 0 <= @var{p} <= 1, integer
 @var{x} <= @var{n}.
@@ -1475,7 +1527,7 @@ Constraints: 0 <= @var{p} < 1, @var{x} >= 1.
 @deftypefn {Function} {} PDF.NEGBIN (@var{x}, @var{n}, @var{p})
 @deftypefnx {Function} {} CDF.NEGBIN (@var{x}, @var{n}, @var{p})
 @deftypefnx {Function} {} RV.NEGBIN (@var{n}, @var{p})
 @deftypefn {Function} {} PDF.NEGBIN (@var{x}, @var{n}, @var{p})
 @deftypefnx {Function} {} CDF.NEGBIN (@var{x}, @var{n}, @var{p})
 @deftypefnx {Function} {} RV.NEGBIN (@var{n}, @var{p})
-Negative binomial distribution with number of successes paramter
+Negative binomial distribution with number of successes parameter
 @var{n} and probability of success parameter @var{p}.  Constraints:
 integer @var{n} >= 0, 0 < @var{p} <= 1, integer @var{x} >= 1.
 @end deftypefn
 @var{n} and probability of success parameter @var{p}.  Constraints:
 integer @var{n} >= 0, 0 < @var{p} <= 1, integer @var{x} >= 1.
 @end deftypefn