Skip to content

Releases: drostlab/philentropy

v0.10.0

03 Nov 11:07

Choose a tag to compare

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 for distance(), dist_one_many(), and dist_many_many(). (see PR #40 by @brownag)

  • Default values for optional arguments (like p for the Minkowski distance) have been updated from NA to NULL in 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.6 via devtools::install_github("https://github.com/RcppCore/Rcpp") and rerun Rcpp::compileAttributes().

v0.8.0

02 Dec 15:32

Choose a tag to compare

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.6 via devtools::install_github("https://github.com/RcppCore/Rcpp") and rerun Rcpp::compileAttributes().

v0.7.0

04 Nov 20:49

Choose a tag to compare

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

18 Feb 14:59

Choose a tag to compare

Version 0.6.0

New Features

  • distance() and all other individual information theory functions
    receive a new argument epsilon with default value epsilon = 0.00001 to treat cases where in individual distance or similarity computations
    yield x / 0 or 0 / 0. Instead of a hard coded epsilon, users can now set epsilon according 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 between distance() 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)
  • dplyr package dependency was removed and replaced by the poorman
    due to the heavy dependency burden of dplyr, since philentropy
    only used dplyr::between() which is now poorman::between() (Many thanks to Patrice Kiener for this suggestion)
  • distance(..., as.dist.obj = TRUE) now returns the same values as stats::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

v0.2.0

09 Jun 16:40

Choose a tag to compare

update release