Skip to content

Releases: tatami-inc/tatami

v3.1.1

05 Sep 17:15
Compare
Choose a tag to compare
  • Stripped out the OpenMP SIMD macros as they're not worth the effort.
  • Update to subpar v0.3.0 as a minimum requirement.
  • Switch to aliasing constructor for the wrap_shared_ptr().
  • Explicitly include parallelize.hpp in the umbrella header.

v3.1.0

27 Aug 04:42
Compare
Choose a tag to compare
  • Added support for DelayedArray's ConstantMatrix.
  • Corrected the binary multiplication for IEEE special values. Specifically, we cannot skip processing of zeros in one matrix if the corresponding value in the other matrix is an Inf or NaN.
  • Support comparison-and-substitution in the unary isometric operations. This allows users to implement masks efficiently, e.g., comparison to NaNs and substitution with a suitable placeholder.
  • Enable Value_ type transformations in isometric binary/unary operations. This allows us to support operations on a matrix that return a different type without resorting to DelayedCast. For unary operations, this change requires a modification to the unary isometric contract to accept another pointer for storing the output in a potentially-different type.
  • Added DelayedUnaryIsometricBooleanCast helper to cast values to booleans, equivalent to the old !! trick.
  • Reordered template arguments for consistency. This should not affect users as they are all deduced parameters.
  • Modified the isometric operation contract so that fill() is called with the InputValue_ type in its template arguments. This allows operation developers to use to the input type to decide what the output value should be.
  • Exported low-level utilities for extracting compressed sparse data, e.g., count_compressed_sparse_contents().
  • Added some SIMD directives via OpenMP pragmas.
  • Switch to the subpar library for parallelize(), which comes with some minor improvements.

v3.0.0

22 May 19:35
Compare
Choose a tag to compare
  • Completely overhauled the interface for the construction of dedicated oracle-aware extractors. These have fetch() methods that don't require users to supply an index that matches up with oracle's prediction, thus eliminating one source of misspecification bugs. It is also easier for Matrix developers, who can specialize extractor construction for the oracle/no-oracle cases without needing to switch between the two at runtime.
  • Renamed the sparse() and sparse_proportion() query methods to is_sparse() and is_sparse_proportion(), respectively, to avoid confusion with the new dense() and sparse() extractor construction methods.
  • Move row-based options (e.g., row-major dense matrices, CSR/CSC choices) out of class template and into the constructor as a regular argument. This is more ergonomic for callers who don't know the layout of their data at compile time.
  • Renamed many of the isometric-related classes to avoid ambiguity between the unary and binary methods.
  • Generalized the contracts for delayed isometric helper classes. This now considers both a basic and advanced contract, where the latter provides some more intuitive compile/run-time switches to decide if indices are necessary.
  • Added a block-wise transpose() function that operates on (strided) dense arrays.
  • Moved statistics calculations to the new tatami_stats library.
  • Minor performance improvements for sparse matrix, delayed bind extraction. This is achieved by creating a mapping vector, which enables faster access at the expense of increased memory usage.

v2.1.2

06 Sep 19:32
Compare
Choose a tag to compare
  • Exported the stats::tabulate_groups, stats::total_groups functions.
  • Simplified the grouped sums no-copy overload to just take the number of groups.
  • Templated the group size parameter for grouped medians.
  • Bugfixes to correctly zero the output buffer for the no-copy overloads.

v2.1.1

06 Sep 16:20
Compare
Choose a tag to compare
  • Added the grouped_sums header to the umbrella.
  • Added utility for counting occurrences per row/column.
  • Removed obsolete macros for the tatami version.

v2.1.0

03 Sep 06:13
Compare
Choose a tag to compare
  • Added a pointer-only interface for all stats functions.
  • Add functions for calculating grouped statistics (sum + median).
  • Documented the median calculation utilities for export.
  • Updated how C++17 is specified in the CMakeLists.txt.

v2.0.3

02 Sep 16:10
Compare
Choose a tag to compare

Added missing includes to the umbrella header.

v2.0.2

28 Aug 18:11
Compare
Choose a tag to compare

Ensure that make_DelayedSubset works correctly with an ArrayView.

v2.0.1

04 Aug 23:59
Compare
Choose a tag to compare
  • Provide options for CMake installation and use with find_package.
  • Minor improvements to the GitHub Actions for this library's CI.

v2.0.0

04 Aug 21:38
06997ec
Compare
Choose a tag to compare

Major updates to accommodate the new Extractor concept, which replaces the old workspaces. Added more delayed operations to support Bioconductor use cases. Also dispersed a lot of the extension functionality to separate repositories for easier management.