Releases: drostlab/philentropy
v0.10.0
Version 0.10.0
Updates
Major Refactoring Release thanks to @brownag!
In addition to a general code refactoring and new templating architecture, the main new feature is multi-core (parallel) processing of distance computations. This is a long-awaited feature which we hope will further enrich the user experience.
Main new features:
-
The core distance calculation engine has been refactored to use C++ template metaprogramming and
RcppParallel. This provides significant speed and memory usage improvements fordistance(),dist_one_many(), anddist_many_many(). (see PR #40 by @brownag) -
Default values for optional arguments (like
pfor the Minkowski distance) have been updated fromNAtoNULLin the R function signatures to better align with the C++ backend.
Version 0.9.0
Updates
- Documentation
Version 0.8.0
Updates
Fixing warning on Debian systems:
Result: WARN
Found the following significant warnings:
RcppExports.cpp:865:18: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
RcppExports.cpp:899:18: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
RcppExports.cpp:933:18: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
RcppExports.cpp:967:18: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
See ‘/home/hornik/tmp/R.check/r-devel-clang/Work/PKGS/philentropy.Rcheck/00install.out’ for details.
* used C++ compiler: ‘Debian clang version 17.0.5 (1)’
- The solution was to implement this quick fix by reinstalling
Rcpp v1.0.11.6viadevtools::install_github("https://github.com/RcppCore/Rcpp")and rerunRcpp::compileAttributes().
v0.8.0
Version 0.8.0
Updates
Fixing warning on Debian systems:
Result: WARN
Found the following significant warnings:
RcppExports.cpp:865:18: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
RcppExports.cpp:899:18: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
RcppExports.cpp:933:18: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
RcppExports.cpp:967:18: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
See ‘/home/hornik/tmp/R.check/r-devel-clang/Work/PKGS/philentropy.Rcheck/00install.out’ for details.
* used C++ compiler: ‘Debian clang version 17.0.5 (1)’
- The solution was to implement this quick fix by reinstalling
Rcpp v1.0.11.6viadevtools::install_github("https://github.com/RcppCore/Rcpp")and rerunRcpp::compileAttributes().
v0.7.0
Updates
- the Distances vignette now has a fixed documentation for the benchmarking of low-level distance functions. Many thanks to (@Nowosad) #30
- in ../src/correlation.h adjustment of use of logical operators rather than Wbitwise (| -> or) which otherwises raises warnings in clang14
- vector element limit is now extended to long vectors for all distance measures by declaring R_xlen_t instead of int during indexing.
Update Release
Version 0.6.0
New Features
distance()and all other individual information theory functions
receive a new argumentepsilonwith default valueepsilon = 0.00001to treat cases where in individual distance or similarity computations
yieldx / 0or0 / 0. Instead of a hard coded epsilon, users can now setepsilonaccording to their input vectors. (Many thanks to Joshua McNeill #26 for this great question).- three new functions
dist_one_one(),dist_one_many(),dist_many_many()are added. They are fairly flexible intermediaries betweendistance()and single distance functions.dist_one_one()expects two vectors (probability density functions) and returns a single value.dist_one_many()expects one vector (a probability density function) and one matrix (a set of probability density functions), and returns a vector of values.dist_many_many()expects two matrices (two sets of probability density functions), and returns a matrix of values. (Many thanks to
Jakub Nowosad, see #27, #28, and New Vignette Many_Distance)
Updates
- a new Vignette Comparing many probability density functions (Many thanks to
Jakub Nowosad) dplyrpackage dependency was removed and replaced by thepoorman
due to the heavy dependency burden ofdplyr, sincephilentropy
only useddplyr::between()which is nowpoorman::between()(Many thanks to Patrice Kiener for this suggestion)distance(..., as.dist.obj = TRUE)now returns the same values asstats::dist()when working with 2 dimensional input matrices (2 vector inputs) (see #29) (Many thanks to
Jakub Nowosad (@Nowosad))
Example:
library(philentropy)
m1 = matrix(c(1, 2), ncol = 1)
dist(m1)
#> 1
#> 2 1
distance(m1, as.dist.obj = TRUE)
#> Metric: 'euclidean'; comparing: 2 vectors.
#> 1
#> 2 1