Releases: tatami-inc/tatami
Releases · tatami-inc/tatami
v3.1.1
v3.1.0
- 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 toDelayedCast
. 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 theInputValue_
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
- 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()
andsparse_proportion()
query methods tois_sparse()
andis_sparse_proportion()
, respectively, to avoid confusion with the newdense()
andsparse()
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
- 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.