Releases: verri/jules
CMake support and some improvements
(Almost)-complete Array module.
🎉 Celebrating 4K lines of code!
What's new?
In this release, all the basic and fundamental functionalities of the Array module have been implemented.
They are not still documented, but I do not intend to implement major changes for at least 5 years.
Many small utilities have been implemented and the test coverage has increased a lot.
Changes
The major change in this release is that the operator() of arrays has been removed.
Instead, an operator[] is used for each dimension. Such change brings not only a more familiar
syntax, but also many performance improvements.
New utilities for arrays and Range TS changes.
In this patch, some math and numeric utilities for arrays were added and some changes
were made to comply with the newest Range TS.
Bug fixes
- Complying with the newest Range TS.
- Fixed normal distribution p.d.f. formula.
New features
- Added
sqrt,log,var,sd,mean,freq,which.
Coercion improvements and more stable Array module
Bug fixes
- Jules now compiles with -pedantic.
- When using BLAS-optimized operation, the maximum number of rows and columns is checked.
- Fixed virtual destructor for
column_model. - Fixed some narrowing integer conversions in internal code.
- Fixed critical bug while checking slicing bounds.
- Removed useless
slice::iterator::operator->. - Preventing view of temporary columns.
- Fixed several bugs in empty columns.
- More documentation.
New "stable" features/changes
- Added operations for
contiguous_array. - Better defer utilities (using macros, though).
- Added uninitialized constructor for
base_array. base_arrayis value-initialized by default instead of default-initialized.
New "experimental" features/changes
- Calling
column::datadoes not coerce the column type. - Added
to_matrixfor dataframes. to_viewnow performs automatic coercion in columns.- Added
index_t,intandunsignedcoercion rules. - Learned coercions must be explicitly defined by the user.
- Improved
column_modelto support partial cloning and resizing. - Added initial dataframe action support, with
headimplementation.
Initial Dataframe support
New features
- Initial
dataframeandcolumnsupport. - Added
jules::metautilities.- It reduces range-v3 dependencies.
- Added
jules::contiguous_arrayfor non-owning contiguous storage.- Used in column views.
Improved features
jules::debugsupports throwing handlers.- Useful for code coverage and checks in the Dataframe module.
- Bug fixes on Numeric module.
- New utilities in the Numeric module (incomplete, but working great).
Initial Random support
This version includes some fixes on the Array module and the initial support for Base/Random module.
v0.1
Special thanks to @jimmyskull for hunting bugs.
Changes since v0.1-rc:
- Deprecated
slice::dimensions; as_vectorfor arrays of higher order;- Iterators do not inherit std::iterator anymore;
array::fillfor fast filling;- Initial BLAS support;
- Faster indirect slicing.
v0.1-rc
- Only the
arraymodule is working at the moment (along with fundamental functionalities of modulesbaseandcore). - The files under directories other than
array,baseandcoreshouldn't be included. - No new features will be incorporated into
arrayclasses before v0.2 series. - Features in
array,base,coreare guaranteed not to be removed before v0.3 series.- If necessary, they will be marked [[deprecated]] in v0.2 series.
- Algorithms and utilities included in base/numeric and array/numeric are not considered documented features yet, and thus, they can change during v0.1 series.
as_vector,to_vector, andseqare exceptions to this rule and will not change in the v0.1 series.