NEWS
lmom 3.2 (2024-09-30)
- Removed inappropriate WRITE statement from Fortran code. (Bug introduced
at version 3.1.)
- Corrected invalid URL in help file "lmom-package".
lmom 3.1
- In lmrd(fg=...), colour 'fg' is now also used by default for the legend
box (if one is drawn, i.e. if 'bty' is supplied as a list element of
'legend.lmrd').
- [invisible to users] Cleanup of Fortran code: changed routine names that
conflict with names of Fortran intrinsic functions recognized by CRAN's
compiler (GCC 14.2.0); modifications to avoid warnings from CRAN's
compiler about "obsolescent features"; specific names of intrinsic
functions changed to generic (two instances missed at version 3.0); in
(newly renamed) routine XLGAMA, removed an occurrence of a variable used
when undefined.
- Minor changes to help for "pel-functions" (changes in section "Details").
- Fixed: lmrd() would apply 'font' (when supplied in '...') to tick mark
labels, not to plotted points.
lmom 3.0 (2023-08-29)
- [invisible to users] Cleanup of Fortran code: replaced DFLOAT by DBLE, to
enable compilation under a strict F2008 standard; modifications to avoid
warnings from CRAN's compiler (GCC 12.2.0) about "Fortran 2018 deleted
features"; specific names of intrinsic functions changed to generic;
double-precision constants occur only in DATA statements.
- Corrected typos in documentation of cdfgev() and cdfgpa().
- In help for pelkap() and pelwak(), noted that there are some
combinations of L-moment values for which these functions are unable to
fit a distribution.
lmom 2.9 (2022-05-29)
- [invisible to users] In evplot.default() and evpoints(), computation of
plotting positions uses ppoints() rather than an explicit expression.
- In samlmu() and .samlmu(), removed the undocumented behaviour that
higher-order sample L-moments were restricted to be no larger than l_2
(the sample L-moment of order 2) in absolute value (and concomitantly
that sample L-moment ratios were restricted to the range [-1,1]).
This restriction applied to untrimmed L-moments, and induced analogous
(but much more complex) restrictions on trimmed sample L-moments.
- samlmu() and samlmu.s() try harder to compute defensible values when 'x'
contains Inf or -Inf. In particular, samlmu() no longer gives an error
when 'x' contains infinite values.
- samlmu() and samlmu.s() now warn "all data values equal" only when
L-moment ratios are computed (previously, a warning was given even when
the sample size after trimming was 1 or 2).
- In documentation of cdfgev() and cdfgpa(), added notes explaining that
some other R packages use a different convention for the sign of the
shape parameter.
- Fixed: Most cdf...() and qua...() functions, if called with 'x' having
length 1 and 'para' a named vector, would return a named vector.
Affected functions: cdfexp(), cdfgam(), cdfgev(), cdfglo(), cdfgno(),
cdfgpa(), cdfgum(), cdfkap(), cdfln3(), cdfwei(), quaexp(), quagam(),
quagev(), quaglo(), quagno(), quagpa(), quagum(), quakap(), qualn3(),
quape3(), quawak(), quawei().
- Fixed: lmrd() would give an error when plotting of two-parameter
distributions was requested but all points to be plotted were outside
the plot region.
- Fixed: samlmu() and samlmu.s(), when computing trimmed L-moments, could
give incorrect values when extreme values were present in the 'x' values
that would be trimmed away. Example:
'samlmu(c(1,2,3,6,1e20), trim=c(0,1))'.
- Fixed: samlmu.s(), with trimming at the upper end of the conceptual
sample, would compute too few L-moments, with NA values at the end of
the returned vector.
- Fixed: samlmu.s() with sample size 1 (after trimming if requested) would
return l_2 as 0 rather than NA.
lmom 2.8 (2019-03-12)
- In lmrp(), 'symm=NA' now indicates asymmetry, similarly to 'symm=FALSE'.
- [invisible to users] Internal C code used by lmrp() and lmrq() changed
to avoid a possible memory leak.
lmom 2.6 (2017-08-02)
- "Native routines" are now "registered".
- lmrd() now has a non-NULL return value, useful for adding a customized
legend to the plot.
- Internal function infer_trim(), used by pelp() and pelq(), has defensive
coding to work around the possibility (new in R 3.3.0) that nchar() may
return NA.
- Fixed: lmrd(), when an unrecognized distribution was supplied in
argument 'twopar', would give an incorrect error message.
lmom 2.5 (2015-02-02)
- lmrp() no longer allows the argument value 'symm=TRUE' (it was treated
as 'symm=0', though this was undocumented).
- Fixed: cdfwak() would give an error if 'x' contained no finite values.
- Fixed: lmrp(...,symm=,ratios=FALSE) and lmrq(..,symm=TRUE,ratios=FALSE)
gave incorrect values, by a factor of 2, for higher-order (even, >=4)
L-moments.
- Fixed: pelgno() would give an incorrect error message if the supplied
value of 'lmom[3]' was greater than 0.95.
- Fixed: samlmu() could, in rare cases, return (untrimmed) L-moment ratios
greater than 1 in absolute value.
- Fixed: samlmu.s(ratios=FALSE), when all 'x' values were equal, could
return not-exactly-zero values for L-moments.
lmom 2.4 (2014-03-24)
- Fixed: pelwak() would fail when 'bound' was not NULL. (Bug introduced
at version 2.3.)
lmom 2.3 (2014-02-09)
- Fixed: pelp() and pelq() required their arguments 'ratios' and 'trim'
to be set explicitly in some cases when the values of these arguments
were documented as being inferred from the names of 'lmom' -- for
example, when 'lmom' was a numeric vector returned by lmrp() or lmrq().
- [invisible to users] Some internal calls to .Fortran() altered, to avoid
a NOTE when building the package for CRAN under R version 3.1.0.
(Internal functions lmrxxx() and pelxxx() now use switch() to ensure
that, in calls to .Fortran(), argument '.NAME' is always a character
string and is recognizable as such to CRAN's code checks.)
- [invisible to users] Minor changes to internal Fortran code (routine
LMRGPA).
lmom 2.2 (2014-01-15)
- Now explicitly imports standard packages "stats" and "graphics".
- pelp() and pelq() gain an argument 'subdiv'.
- In samlmu() and samlmu.s(), computation of trimmed L-moments is faster
for small degrees of trimming.
- Help file for pelwak() now notes the difference between its behaviour
and that of the corresponding routine in the LMOMENTS Fortran package.
- Fixed: lmrp() could, in rare cases, attempt to evaluate 'pfunc' with an
argument outside the user-supplied bounds.
- Fixed: lmrp(...,order=1,verbose=TRUE) would fail with error
"in data.frame( ... : 'row.names' should specify one of the variables".
In versions 1.6 and earlier, lmrq(...,order=1,verbose=TRUE) would fail
with the same error. In versions 2.0 and later this was masked by the
following bug ...
- Fixed: since version 2.0, lmrq(...,order=1) would fail with error
"if (denom>0 ... : missing value where TRUE/FALSE needed".
pelq(...,type="s"), which calls lmrq(...,order=1) internally, would fail
with the same error.
- Fixed: since version 2.0, samlmu() could give an error in some cases
when 'nmom' exceeded the number of non-missing values in 'x'.
lmom 2.1 (2013-06-20)
- Removed Fortran 2003 features from the Fortran code used by lmrp() and
lmrq(), to enable compilation by CRAN for Macintosh OS.
lmom 2.0 (2013-06-18)
- Some support added for trimmed L-moments: samlmu(), samlmu.s(), lmrp(),
lmrq(), pelp(), and pelq() each gain an argument 'trim'.
- Some support added for computing L-moments rather than L-moment ratios:
samlmu(), samlmu.s(), lmrp(), lmrq(), pelp(), and pelq() each gain an
argument 'ratios'.
- New function .samlmu() for fast computation of (untrimmed) L-moment
ratios.
- lmrp() and lmrq() use an internal function for numerical integration,
to avoid the bugs present in R's own integrate() function in R versions
2.12.0 through 3.0.1.
- In lmrp(), modified the computation method for lambda_1: should make
computations a little faster.
- LICENSE file no longer included in package, to avoid a NOTE when
building the package for CRAN under R version 3.0.0. The license can
be found at http://www.eclipse.org/legal/cpl-v10.html.
lmom 1.6 (2012-02-04)
- In lmrd(), the framing box and the lines at x=0 and y=0 are drawn in
colour 'par("fg")'. The lines for distributions "GEV" and "PE3" use
less bright colours.
- In lmrd(), argument 'legend.lmrd' can be a list of arguments to legend().
- In lmrd() there is a small change to the default position of the legend,
ensuring that if a legend box is drawn (via the argument
'legend=list(bty="o")'), its top left corner is offset by 45 degrees
from the top left corner of the plot.
- Removed inappropriate WRITE statements from Fortran code.
- Fixed: some minor errors in the documentation (expressions for quantile
functions in help topics 'cdfgev', 'cdfglo', 'cdfgpa', and 'cdfkap').
lmom 1.5 (2009-11-29)
- Quantile functions drawn by evplot() now extend across the entire
x range of the plot (previously, with 'par("xaxs")' at its default
value "r", gaps were left at the sides of the plot).
- lmrexp(), lmrgam(), lmrgev(), lmrglo(), lmrgno(), lmrgpa(), lmrgum(),
lmrkap(), lmrnor(), lmrpe3(), lmrwak(), pelp(), and pelq() now have
a different specification of the default values for some of their
arguments. The actual usage of the functions is unchanged. The change
was made so that the help files can avoid the use of a "\synopsis"
section, which was giving unintended results in R 2.10.0.
lmom 1.4 (2009-07-18)
- New functions lmrdpoints() and lmrdlines(), to add points or lines
to an existing L-moment ratio diagram.
- evplot.default() is now exported from the package namespace.
lmom 1.3 (2009-05-04)
- evplot() is now a generic function, with (only) a default method.
(Further methods will be defined in package lmomRFA, version 2.0.)
- evplot(), when argument 'qfunc' is present but 'para' is missing, no
longer gives an error but instead uses default values for the parameters
of the distribution, i.e. internally it calls function 'qfunc' with only
one argument.
evdistp() and evdistq(), when argument 'para' is missing, act similarly.
- lmrd(), when 'x' is supplied but not 'y', now tries to identify
L-skewness and L-kurtosis elements in 'x' by name rather than by
position.
- lmrd() now recognizes distribution identifiers ("GEV", etc.) in either
upper or lower case.
- lmrd() gains an argument 'cex', to control the size of plotted points.
- lmrd(), when given an argument 'col' of length 1, will apply it
to the plotted points rather than to all the lines.
- samlmu() and samlmu.s() give a more direct error message when their
first argument is not numeric.
- Fixed: evplot() would sometimes not honour the y-axis limits supplied
in 'ylim'. Specifically, if argument 'qfunc' was specified, the y-axis
limits would be extended if necessary to include the range of quantile
values plotted.
- Fixed: lmrd() would set default y axis limits based on the values
of 'x', not of 'y'.
lmom 1.2 (2009-03-16)
- Default parameter values for the Weibull distribution are now 'c(0,1,1)'.
(The previous default, 'c(0,1,0)', used an invalid value for the third
parameter.) Functions affected: cdfwei(), lmrwei(), quawei().
- Fixed: cdfgum() gave incorrect results.
lmom 1.1 (2008-12-24)
- New functions, for the Weibull distribution: cdfwei(), lmrwei(),
pelwei(), quawei().
- New functions, for the 3-parameter lognormal distribution: cdfln3(),
lmrln3(), pelln3(), qualn3(). pelln3() also permits parameter
estimation for the 2-parameter lognormal distribution.
- Fixed: pelp() and pelq() would fail when the name of the
optimization routine (argument 'method') was also the name
of an object in the global environment.
lmom 1.0 (2008-07-03)
- Initial release. Functions included:
cdfexp
cdfgam
cdfgev
cdfglo
cdfgno
cdfgpa
cdfgum
cdfkap
cdfnor
cdfpe3
cdfwak
evdistp
evdistq
evplot
evpoints
lmrd
lmrexp
lmrgam
lmrgev
lmrglo
lmrgno
lmrgpa
lmrgum
lmrkap
lmrnor
lmrp
lmrpe3
lmrq
lmrwak
pelexp
pelgam
pelgev
pelglo
pelgno
pelgpa
pelgum
pelkap
pelnor
pelp
pelpe3
pelq
pelwak
quaexp
quagam
quagev
quaglo
quagno
quagpa
quagum
quakap
quanor
quape3
quawak
samlmu
samlmu.s