Skip to content

Releases: hosseinmoein/DataFrame

May-2024

01 May 13:30
Compare
Choose a tag to compare

Please consider sponsoring DataFrame, especially if you are using it in Production Capacity. It is the strongest form of appreciation

Significantly enhanced documentations both content-wise and visually
Fixed a few edge-case bugs, including an edge-case in reading CSV2 format files
Factored out and cleaned code
Implemented inversion_count()
Implemented get_[data|view]_by_like()
Implemented remove_data_by_like()
Added char and uchar type to types read/written from/to files
Added ability to read/write columns of containers from/to files
remove_column() now requires a template parameter. It actually frees up the memory space now
Implemented clear()
Implemented swap()
Now using some of the std::ranges algorithms
Added scaler arithmetic DF operators
Added magnitude calculations to DotProdVisitor visitor
Added Euclidean distance calculations to DotProdVisitor visitor
Added Manhattan distance calculations to DotProdVisitor visitor
Implemented VectorSimilarityVisitor visitor
Replaced asserts in algos with exceptions and added a compile-time option for it (HMDF_SANITY_EXCEPTIONS)
Partially reengineered views so now you can use most of the API from views
Added sentinels to vector views iterators

Feb-2024

01 Feb 14:14
b8067bc
Compare
Choose a tag to compare

Please consider sponsoring DataFrame, especially if you are using it in Production Capacity. It is the strongest form of appreciation

multithreading was completely redesigned by using a versatile thread-pool. Almost every API has a multithreaded version that kicks in for large datasets. This justifies increasing the major version number
Added a thread-pool.
All Async calls now use the thread-pool.
Sort now uses parallel sort for large datasets.
Added multithreading to almost all algorithms.
Enhanced docs and hello world.

Dec-2023

30 Nov 16:10
b721632
Compare
Choose a tag to compare

Please consider sponsoring DataFrame, especially if you are using it in Production Capacity. It is the strongest form of appreciation

This release requires C++23 or higher.
Added more content to documentation.
Made reading/writing files more streamlined and efficient.
Fixed a bug in Median and Kth_element visitors related to handling nans.
Added ability to read/write String Vectors, Double Sets, and String Sets as column elements in CSV2 format.
Added seed option to all algorithms that use random numbers.
Implemented PriceVolumeTrendVisitor visitor.
Implemented QuantQualEstimationVisitor visitor.
Fixed RSIVisitor visitor result to be the same size as its input.
Implemented get_str_col_stats().
Added get_euclidean_norm() to QuadraticMeanVisitor visitor.
Added different normalization-types to NormalizeVisitor visitor.
Added more benchmarking comparing with Pandas and Polars
Made sorting much faster by using ranges and zip.

Oct-2023

06 Oct 13:58
Compare
Choose a tag to compare

Please consider sponsoring DataFrame, especially if you are using it in Production Capacity. It is the strongest form of appreciation

Added more content to documentation and Hello World example.
Fixed a bug in join that missed multiple matches in some edge cases
Fixed a bug/edge case in Covariance calculation.
Fixed a bug in reading JSON files.
Utilized meta-programming in several parts of the codebase, especially visitors.
Added a whole lot of C++ concepts throughout the code.
Fixed many const-correctness throughout the code.
Added a mechanism for a lot of visitors to be used in groupby and bucketize.
Now in csv2 format you can read/write columns of vector, map, and unordered map types
Enhanced DateTime ISO format parsing.

June-2023

01 Jun 13:24
Compare
Choose a tag to compare

Please consider sponsoring DataFrame, especially if you are using it in Production Capacity. It is the strongest form of appreciation

Added more content to documentation and README
Cleaned up and streamlined codebase (using a lot of typedef’s, using STL algorithms)
Fixed minor bugs (got rid of template exports, ChandeKrollStopVisitor{}, got rid of boundary issues)
Added more operators to DateTime class
Implemented InertiaVisitor{} visitor
Implemented SymmTriangleMovingMeanVisitor{} visitor
Implemented RelativeVigorIndexVisitor{} visitor
Implemented ElderRayIndexVisitor{} visitor
Implemented ChopIndexVisitor{} visitor
Implemented DetrendPriceOsciVisitor{} visitor
Implemented RectifiedLinearUnitVisitor{} visitor
Implemented AccelerationBandsVisitor{} visitor
Implemented PriceDistanceVisitor{} visitor
Implemented EldersThermometerVisitor{} visitor
Implemented ProbabilityDistVisitor{} visitor
Changed ReUL Rectifier visitor to a generalized RectifyVisitor{} with many options
Implemented PolicyLearningLossVisitor{} visitor
Implemented load_result_as_column() that runs and loads the result in one-shot
Implemented LossFunctionVisitor{} visitor
Implemented EldersForceIndexVisitor{} visitor
Implemented EaseOfMovementVisitor{} visitor
Added [[likely]] to branches and now requiring C++20
Implemented SeqLock{} synchronization

April-2023

31 Mar 18:38
Compare
Choose a tag to compare

Please consider sponsoring DataFrame, especially if you are using it in Production system. It is the strongest form of appreciation

Implemented ability to have custom memory-boundary allocation to take advantage of SIMD instructions. This breaks backward-compatibility especially for views. Also, this justifies increasing the major version number
Bug fixes and code cleanup
Enhanced hello_world.cc and docs
Made multi-threading faster by streamlining locks
Made file I/O faster and more efficient
Implemented get_data_by_sel() for 11, 12, and 13 columns
Implemented CubicSplineFit visitor
Implemented ImpurityVisitor visitor
Added ignore_index option to sort functions to make index sorting optional
Implemented ExponentiallyWeightedVarVisitor visitor
Removed ExponentialRollAdopter
Implemented ExponentiallyWeightedCovVisitor visitor
Implemented ExponentiallyWeightedCorrVisitor visitor
Implemented ability to read files in chunks
Added arithmetic operators to DateTime
Changed KMeans to always calculate clusters -- interface change
Changed all std::is_arithmetic to supports_arithmetic
Implemented FixedAutoCorrVisitor visitor
Added option to SharpeRatioVisitor to also calculate Sortino Ratio
Implemented RVIVisitor visitor
Fixed moving averages to work with nan values in the beginning
Added options to sort to sort based on absolute values
Implemented LinregMovingMeanVisitor visitor

Jan-2023

01 Jan 15:59
Compare
Choose a tag to compare

Please consider sponsoring DataFrame, especially if you are using it in Production system. It is the strongest form of support

Bug fixes, including get_[data|view]_by_rand(), docs
Documentation and Hello World enhancements
More confirmation with ISO C++
Enhanced DateTime ISO parsing
Implemented T3MovingMeanVisitor
Implemented appned_row()
Added max_recs parameter to write() + fixed compiler debug warnings
Implemented const views
Implemented load_result_as_column()
Implemented get_indicators() and from_indicators()
Implemented TreynorRatioVisitor
Implemented ExponentialFitVisitor
Implemented LinearFitVisitor

July-2022

22 Jul 20:04
a884b2e
Compare
Choose a tag to compare

Enhanced documentation + add more to hello_world.cc
Fixed compiling issue related to injecting clock_gettime() system call into code
Code clean ups and performance enhancements
Fixed a bug in KthValueVisitor that affected MedianVisitor and QuantileVisitor
Implemented BalanceOfPowerVisitor visitor
Implemented NonZeroRangeVisitor visitor
Implemented ChandeKrollStopVisitor visitor
Added average option to TrueRange
Implemented VotexVisitor visitor
Implemented KeltnerChannelsVisitor visitor
Added normalize option to TrueRange + now using exponential moving avg in TrueRange
Implemented TrixVisitor visitor
Implemented PrettyGoodOsciVisitor visitor
Implemented ZeroLagMovingMeanVisitor visitor
Implemented StableMeanVisitor visitor
Added double operator to DateTime
Implemented describe()

Feb-2022

25 Feb 21:37
Compare
Choose a tag to compare

Enhanced documentation
Fixed a few bugs; visitors macros, get_[data|view]_by_loc(), get_view_by_idx()
Fixed all views not to be const, since you can change things through views
CMake compiling was redone to make it easier for Windows
Windows macros were redesigned to make compiling easier
Turned extra warning flag on and fixed all compiler warnings
Made hello_world.cc more comprehensive
Implemented get_[data|view]()
Replaced std::array, in all interfaces, with std::vector
Implemented get_[data|view]_by_sel() for up to 5 columns
Implemented to_string() and from_string()
Implemented Coppock Curve Visitor
Implemented Bias Visitor

Oct-2021

12 Oct 20:20
Compare
Choose a tag to compare

Fixed bugs, including in multithreading, groupby + Removed all warnings
Improved documentation
Improved/tightened multithreading + SpinLock is now recursive
Implemented RateOfChangeVisitor
Implemented AccumDistVisitor
Added single_act_visit() for 5 columns
Implemented ChaikinMoneyFlowVisitor
Implemented VertHorizFilterVisitor
Implemented OnBalanceVolumeVisitor
Implemented TrueRangeVisitor
Changed the ReturnVisitor logic to start with a NaN and have the same length as input
Implemented DecayVisitor
Implemented HodgesTompkinsVolVisitor
Implemented ParkinsonVolVisitor
Implemented concat_view()
Added hello_world.cc
Implemented get_row() that always includes all columns