Sha256: 0769260b81e849210991e21526b13e124e1e1921e6851a97413d412a4e166c21
Contents?: true
Size: 1.25 KB
Versions: 2
Compression:
Stored size: 1.25 KB
Contents
#ifndef ARRAY_2D_H #define ARRAY_2D_H #include <algorithm> #include "ruby.h" #ifdef HAVE_XMMINTRIN_H #include <xmmintrin.h> #define MM_GET_INDEX(packed, index) *(((double*)&packed) + index); #endif namespace array_2d { struct Stats { double min; double max; double mean; double median; double q1; double q3; double standard_deviation; Stats() { min = 0.0, max = 0.0, mean = 0.0, median = 0.0, q1 = 0.0, q3 = 0.0, standard_deviation = 0.0; }; }; class DFloat { inline double* base_ptr(int col) { return entries + (col * rows); } inline void sort(double* col); inline double percentile(double* col, double pct); inline double sum(double* col); inline double standard_deviation(double* col, double mean); #ifdef HAVE_XMMINTRIN_H inline double safe_entry(int col, int row); inline void sort_columns(int start_col, int pack_size); inline __m128d percentile_packed(int start_col, float pct); inline __m128d pack(int start_col, int row); #endif public: int cols; int rows; bool data_initialized; double* entries; Stats* stats; DFloat(VALUE ruby_arr, bool initialize_data); ~DFloat(); Stats* descriptive_statistics(); #ifdef HAVE_XMMINTRIN_H Stats* descriptive_statistics_packed(); #endif }; } // namespace array_2d #endif
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
fast_statistics-0.2.1 | ext/fast_statistics/array_2d.h |
fast_statistics-0.2.0 | ext/fast_statistics/array_2d.h |