-@c Use @func when refering to a function.
-@c Use @deftypefn for their definitions
+@c PSPP - a program for statistical analysis.
+@c Copyright (C) 2017, 2020 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 referring to a function.
+@c Use @deftypefn for their definitions
@macro func{NAME}
-@code{/NAME/}
+@code{\NAME\}
@end macro
@node Expressions
@cindex @samp{-}
@cindex negation
@item - @var{a}
-Reverses the sign of @var{a}.
+Reverses the sign of @var{a}.
@end table
@node Logical Operators
* Missing Value Functions:: MISSING NMISS NVALID SYSMIS VALUE
* Set Membership:: ANY RANGE
* Statistical Functions:: CFVAR MAX MEAN MEDIAN MIN SD SUM VARIANCE
-* String Functions:: CONCAT INDEX LENGTH LOWER LPAD LTRIM NUMBER
- REPLACE RINDEX RPAD RTRIM STRING SUBSTR UPCASE
+* String Functions:: CONCAT INDEX LENGTH LOWER LPAD LTRIM NUMBER
+ 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
@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
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} {} 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})
Returns the number produced when @var{string} is interpreted according
to format specifier @var{format}. If the format width @var{w} is less
than the length of @var{string}, then only the first @var{w}
-characters in @var{string} are used, e.g.@: @code{NUMBER("123", F3.0)}
+characters in @var{string} are used, @i{e.g.}@: @code{NUMBER("123", F3.0)}
and @code{NUMBER("1234", F3.0)} both have value 123. If @var{w} is
greater than @var{string}'s length, then it is treated as if it were
right-padded with spaces. If @var{string} is not in the correct
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})
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
10 minutes 600
1 hour 3,600
Returns a time corresponding to @var{nhours} hours, @var{nmins}
minutes, and @var{nsecs} seconds. The arguments may not have mixed
signs: if any of them are positive, then none may be negative, and
-vice versa.
+vice versa.
@end deftypefn
@node Time Extraction
For a time, results in the number of whole hours beyond the number of
whole days represented by @var{date-or-time}. For a date, results in
the hour (as an integer between 0 and 23) corresponding to
-@var{date-or-time}.
+@var{date-or-time}.
@end deftypefn
@cindex day of the year
@cindex time, in minutes
@deftypefn {Function} {} XDATE.MINUTE (@var{time-or-date})
Results in the number of minutes (as an integer between 0 and 59) after
-the last hour in @var{time-or-date}.
+the last hour in @var{time-or-date}.
@end deftypefn
@cindex months
The individual distributions are described individually below.
@menu
-* Continuous Distributions::
-* Discrete Distributions::
+* Continuous Distributions::
+* Discrete Distributions::
@end menu
@node Continuous Distributions