BUG FIX project_to_curve(): Return error message
when x or s contain insufficient
rows.
BUG FIX unit tests: Switch from svg() to
pdf() as support for svg() might be
optional.
project_to_curve(): Fix pass-by-reference bug,
issue #33. Thanks to @szcf-weiya for detecting and fixing this
bug!BUG FIX: Fix warning in stats::approx() due to
changes made in R 3.6.
DEFUNCT principal.curve() and
get.lam().
BUG FIX: Removed extra dependencies in princurve by removing vignettes; fixes #28.
DEPRECATION principal.curve() and
get.lam().
DOCUMENTATION: Use the magick package to generate
animated GIFs in the vignette, instead of the animation
package, because animation uses ffmpeg which
is not installed on all CRAN systems.
DEPRECATION: Added deprecation which will be triggered starting
from 2018-08-01 upon calling principal.curve() or
get.lam().
DOCUMENTATION: Added vignettes on the algorithm behind princurve and on benchmarking results between princurve 1.1 and 2.1.
BUG FIX principal_curve(): Don’t apply rownames to
curve as approx_points could be set to a different value other than
nrow(x).
TESTING: Skip comparison unit test between princurve 1.1 and 2.1 on CRAN.
MINOR CHANGE project_to_curve(): Attempt to fix rchk
warnings by not using x(i, j) = v notation but instead
x[j * x.nrow() + i] = v.
DOCUMENTATION: Fix in README documentation.
BUG FIX principal_curve(): avoid division by zero
when the initial principal curve has already converged.
BUG FIX project_to_curve(): set dimension names of
outputted s correctly.
DOCUMENTATION: Added cran-comments.md and
revdep to repository.
MINOR CHANGE: Removed adjust_range(); use
grDevices::extendrange() instead.
TESTING start_circle(): Added unit tests.
BUG FIX start_circle(): Make sure circle is centered
and scaled correctly.
MINOR CHANGE: Move smoother functions from inside
principal_curve() to a list
smoother_functions.
TESTING smoother_functions: Added tests to ensure
each of the smoother functions work correctly.
SPEED UP project_to_curve(): Significantly speed up
this function by not allocation objects that don’t need allocation, and
pre-allocating objects that do.
SPEED UP principal_curve(): Added
approx_points parameter. This allows approximation of the
curve between smoothing and projection, to ensure
principal_curve() scales well to higher numbers of
samples.
BUG FIX: Fixed issues with legacy principal.curve()
and get.lam() (#8).
TESTING: Perform direct comparison between the current princurve
and princurve 1.1-12 to check whether principal.curve() and
get.lam() produce output with exactly the same format and
almost exactly the same values.
SIGNIFICANT CHANGE: Remove the ord parameter from
project_to_curve(), in order to reduce the amount of Rcpp
code a little bit.
DOCUMENTATION: Improved citations (#10).
DOCUMENTATION: Improved news (#11).
SPEED UP project_to_curve(): Do not compute
lambda accurately as it is only used to order the points in
x.
MINOR CHANGE: Added ... argument to
whiskers().
DOCUMENTATION: Minor fix in output documentation of
principal_curve().
DOCUMENTATION: Added more information to the README.
MINOR CHANGE: Support both news() and markdown news
on GitHub.
SIGNIFICANT CHANGES: Reimplemented
project_to_curve() completely in Rcpp, thereby completely
removing all Fortran code from princurve.
TESTING: test both on linux and osx.
TESTING: Added tests to ensure project_to_curve()
works similar to legacy get.lam().
MAINTAINER: Changed the maintainer from Andreas Weingessel to Robrecht Cannoodt.
SIGNIFICANT CHANGES: Added functions
principal_curve() and project_to_curve() with
a slightly different interface than principal.curve() and
get.lam().
DEPRECATION: Prepare get.lam() and
principal.curve() for deprecation planned on 2018-07-01.
Will contact maintainers of reverse depending packages.
BUG FIX: Allow start_circle() to work when the
number of dimensions is larger than 2.
DOCUMENTATION: Rewrite the README in markdown.
DOCUMENTATION: Use roxygen2 for the documentation.
MINOR CHANGES: Clean up code to ensure consistent code formatting.
TESTING: Added tests for principal_curve() and
project_to_curve().
TESTING: Enabled continuous integration using travis-ci.org and ci.appveyor.com.
MINOR CHANGES: Update for R 2.0.
DEPRECATION: Removed whiskers()
BENCHMARKING: For larger data sets, most of the time is spent in
get.lam().
BUG FIX: smooth.spline(x,y) will only use
and return values for “unique” {x}:s. This means that the
fitted {y}:s maybe be fewer than the input vector. In order to control
for this, we use predict().
NEW FEATURE: Now smoother can also be a function
taking arguments lambda, xj and
... and return y of the same length as
lambda and xj.
NEW FEATURE principal.curve(): Arguments
start and stretch can be NULL, which behaves
the same as if they are “missing” [which is hard to emulate with for
instance do.call()].
NEW FEATURE: Added converged and
nbrOfIterations to return structure.
SPEED UP/MEMORY OPTIMIZATION: Now the nxp matrix ‘s’ is allocated only once. Before it was built up using cbind() once per iteration.
SPEED UP: Now the smoother function is identified/created before starting the algorithm, and not once per dimension and iteration.
MEMORY OPTIMISATION principal.curve(): Now the
result matrix allocated as doubles, not logicals (as NA is), in order to
prevent a coersion.
BUG FIX: An error was thrown if smoother was a
function.
MINOR CHANGES: Cleaned up source code (removed comments).
MINOR CHANGE: Depend on R >= 1.9.0
MINOR CHANGE: Changed license to GPL version 2 or newer, as granted by Trevor Hastie.
MINOR CHANGE: Don’t require defunct modreg.
PACKAGE to Fortran calls.T to TRUE.MINOR CHANGE plot.principal.curve(): Rename argument
object to x.
MINOR CHANGE lines.principal.curve(): Rename
argument object to x.
MINOR CHANGE points.principal.curve(): Rename
argument object to x.
MINOR CHANGE: Rename internal functionstart.circle()
to startCircle().
DESCRIPTION: Added Title and Maintainer field.
MINOR CHANGES: Changed F to
FALSE.
DOCUMENTATION: Added keywords to get.lam().
DOCUMENTATION: Expanded documentation of
principal.curve(): added default values to usage,
description, keywords and aliases.
MINOR CHANGES: Changed precision in getlam.f from
v(2,10) to v(2,p).