+@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
-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,
full-fledged expressions in themselves.
@menu
-* Boolean Values:: Boolean values.
-* Missing Values in Expressions:: Using missing values in expressions.
-* Grouping Operators:: parentheses
-* Arithmetic Operators:: add sub mul div pow
-* Logical Operators:: AND NOT OR
-* Relational Operators:: EQ GE GT LE LT NE
-* Functions:: More-sophisticated operators.
-* Order of Operations:: Operator precedence.
+* Boolean Values:: Boolean values
+* Missing Values in Expressions:: Using missing values in expressions
+* Grouping Operators:: parentheses
+* Arithmetic Operators:: add sub mul div pow
+* Logical Operators:: AND NOT OR
+* Relational Operators:: EQ GE GT LE LT NE
+* Functions:: More-sophisticated operators
+* Order of Operations:: Operator precedence
@end menu
@node Boolean Values
@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
@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
-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.
* Statistical Functions:: CFVAR MAX MEAN MIN SD SUM VARIANCE
* String Functions:: CONCAT INDEX LENGTH LOWER LPAD LTRIM NUMBER
RINDEX RPAD RTRIM STRING SUBSTR UPCASE
-* Time & Date:: CTIME.xxx DATE.xxx TIME.xxx XDATE.xxx
+* Time and Date:: CTIME.xxx DATE.xxx TIME.xxx XDATE.xxx
DATEDIFF DATESUM
* Miscellaneous Functions:: LAG YRMODA VALUELABEL
* Statistical Distribution Functions:: PDF CDF SIG IDF RV NPDF NCDF
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
@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})
-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
@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
@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
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{})
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
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
-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
Returns @var{string}, changing lowercase letters to uppercase letters.
@end deftypefn
-@node Time & Date
+@node Time and Date
@subsection Time & Date Functions
@cindex functions, time & date
@cindex times
@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
-* Time & Date Concepts:: How times & dates are defined and represented
+* Time and Date Concepts:: How times & dates are defined and represented
* Time Construction:: TIME.@{DAYS HMS@}
* Time Extraction:: CTIME.@{DAYS HOURS MINUTES SECONDS@}
* Date Construction:: DATE.@{DMY MDY MOYR QYR WKYR YRDAY@}
* Date Extraction:: XDATE.@{DATE HOUR JDAY MDAY MINUTE MONTH
QUARTER SECOND TDAY TIME WEEK
WKDAY YEAR@}
-* Time & Date Arithmetic:: DATEDIFF DATESUM
+* Time and Date Arithmetic:: DATEDIFF DATESUM
@end menu
-@node Time & Date Concepts
+@node Time and Date Concepts
@subsubsection How times & dates are defined and represented
@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
@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
-given below correspond with the numeric PSPP dates given:
+given below correspond with the numeric @pspp{} dates given:
@example
15 Oct 1582 86,400
@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
@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
-A numeric value in PSPP date format.
+A numeric value in @pspp{} date format.
@item time
-A numeric value in PSPP time format.
+A numeric value in @pspp{} time format.
@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
@var{date}.
@end deftypefn
-@node Time & Date Arithmetic
+@node Time and Date Arithmetic
@subsubsection Time and Date Arithmetic
@cindex time, mathematical properties of
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
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
@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
@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:
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
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,
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})
@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
@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
-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
@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
-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
@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