Releases: hosseinmoein/DataFrame
Oct-2024
Improved documentation both visually and content-wise
Changed NLargestVisitor to take N as constructor parameter instead of template parameter (backward incompatible change)
Implemented get_top_n_[data|view]()
Implemented get_bottom_n_[data|view]()
Implemented get_above_quantile_[data|view]()
Implemented get_below_quantile_[data|view]()
Added period parameter to ReturnVisitor visitor
Implemented starts_with()
Implemented ends_with()
Implemented CumCountVisitor visitor
Implemented in_between()
Implemented peaks()
Implemented valleys()
Made reading/writing large files faster
Implemented apply()
Made replace() faster with better algorithm
Implemented truncate()
Implemented a version of load_column() with functor generating data
Implemented explode()
Implemented reading/writing std::pair columns from/to files
Added more sanity checks
Implemented difference()
Implemented get_[data|view]_at_times()
Implemented get_[data|view]_before_times()
Implemented get_[data|view]_after_times()
Implemented get_[data|view]_on_days()
Implemented get_[data|view]_in_months()
Implemented get_[data|view]_on_days_in_month()
Implemented get_[data|view]_between_times()
Implemented remove_top_n_data()
Implemented remove_bottom_n_data()
Implemented remove_above_quantile_data()
Implemented remove_below_quantile_data()
Implemented remove_data_by_stdev()
Implemented get_[data|view]_by_stdev()
July-2024
Enhanced documentation and code clean ups
Converted DateTime doc to html
Implemented PeaksAndValleysVisitor visitor
Implemented EhlersHighPassFilterVisitor visitor
Implemented EhlersBandPassFilterVisitor visitor
Implemented reading/writing in binary format
Implemented reading binary data format in chunks
Implemented serialize() and deserialize()
Implemented reading/writing containers in binary format
Added optional time-zone to strings parsed by DateTime constructor
Implemented PowerFitVisitor visitor
Implemented QuadraticFitVisitor visitor
Implemented fill_policy::lagrange_interpolate
Implemented correlation_type::kendall_tau
Implemented change_freq()
Implemented duplication_mask()
May-2024
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
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
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
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
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
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
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
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()