Efficiency tweaks to C code.
Use native CRAN DOI and update ‘README’.
Expanded package metadata testing.
If an explicitly passed conviter
is larger than
miniter
, then miniter
is set to conviter
.
Documentation made more consistent.
C code tweaked for clarity and efficiency.
Updated unit tests.
Set up Github workflow for testing with rhub.
One unit test adjusted to pass on Professor Ripley's OpenBLAS test machine which has different tolerances than the standard twelve on CRAN, six on Github, three on R Win Builder, and the one on R Mac Builder.
Breaking: Analysis now uses the Chebyshev polynomials of
the first kind, T_k
, as the default basis instead of the monomials,
x^k
. Monomials can still be used by passing the appropriate
basis
parameter.
The internal functions underlying the Chebyshev polynomial calculations were ported to C for speed.
Breaking: Changed names in return object. What was
Basis
is now Extrema
. The basis
parameter is now used
to capture whether monomials or Chebyshev polynomials should be/were used.
Breaking: User-facing functions now have basis
parameter to determine which basis to use; see appropriate help files.
Parameter positions have thus changed.
The print
, plot
, and coef
methods were updated
to recognize or allow basis selection.
The print
method now shows 14 digits for the convergence
ratio by default.
Internal code was streamlined and tolerances were tightened.
Updated documentation for new functionality.
The C files were split and header files created to keep Chebyshev and Horner code seperate from each other.
Fixed potential division-by-zero problem in the “unchanging” test.
Fixed outdated parameter name in documentation.
Fixed incorrect ‘NEWS’ entries.
Breaking: More descriptive names in return object. See the
Value section of help("minimaxApprox")
for details.
Breaking: When using relative error for convergence and one
of the basis points has a functional value of 0, instead of stopping with
an error, the algorithm will perturb that basis point by 1e-12
in
the appropriate direction and proceed with a warning.
Breaking: Forced convergence to look only at the
ratio if the difference between tested values is \le
.Machine$double.eps
.
Breaking: Increased default for conviter
from 10 to
30 as tests on some values now need more iterations to acheive ratio
convergence given a distance \le
.Machine$double.eps
.
Added unit tests for additional functionality.
Fixed a misnamed option value in some unit tests.
Refactored ‘README’ to split out security and contributions wordings to their own respective files and link the citation to the file on CRAN.
Changed some tests to be more acceptable for CRAN.
Added LTO_OPT
to ‘Makevars’ and UseLTO
to
‘DESCRIPTION’.
Test for calculating polynomial of degree n + 1
when one of
degree n
fails, while passing both R Mac Builder and
Github's Mac platform, failed on CRAN's testbed.
So test is no longer run for Mac on CRAN.
When the polynomial algorithm fails with a singular matrix error
for degree n
, it will now look for a polynomial of degree
n + 1
. If found, and the contribution of that coefficient
is less than the new option tailtol
(default 1e-10
), it will
return the found polynomial without the uppermost coefficient—which is
effectively 0. It will message the user to that effect. Passing
NULL
skips the test. (see
Issue 2 with
thanks to Hans W. Borchers).
New option ztol
which acts similarly to
zapsmall
in that it will zero out coefficient values—both
polynomial and rational—whose contributions are \le
ztol
at each step of the iteration. The default, NULL
, skips the test.
Ported Compensated Horner Scheme algorithms to C for speed. The algorithms are now roughly 10x faster.
Changed linear solution algorithm to use qr.solve
when the
default solve
fails with a singular matrix issue. This may
allow for higher degree polynomials in certain cases.
Breaking: Changed name of ‘round
’ parameter
in print method to ‘digits
’ to prevent any confusion with
base function round
.
Updated unit tests.
Cleaned up and updated some documentation and various messages.
Tightened tolerances and cleaned up some internal functions.
Added ‘LICENSE’ to ‘.Rbuildignore’ and removed from ‘DESCRIPTION’ as suggested on R-pkg-devel.
Internal polynomial evaluations now uses Compensated Horner Scheme of Langlois et al. (2006) for increased precision and stability.
Clarified some error messages.
Remove one test which fails on M1 Mac (thanks to Professor Brian Ripley) and PowerPC (Issue 1; thanks to Sergey Fedorov) due to it returning a singular matrix where on Linux and Windows it does not.
Added file LICENSE with text of MPL-2.0.
Added copyright and license notices to source code where it was missing.
Added unit tests.
Correct documentation and make more consistent.
Provide better examples for minimaxApprox
.
Updated README with live CRAN links.
Initial release.
So long as the package remains in its experimental development state—noted by a 0 major version—the API may change without incrementing the major version. Please read these development notes carefully. Breaking changes will be prefaced by “Breaking:”.