Commit Graph

177 Commits

Author SHA1 Message Date
Hans Dembinski
be058afcaf
fix for axis::get on a variant of pointers
* `axis::get<axis_t>(hist.axis(0))` failed, when hist uses an axis tuple
* added missing test for this case
2019-11-21 00:36:59 +01:00
Hans Dembinski
d0c1ef5b27
Allow some empty axes 2019-11-18 23:20:34 +01:00
Hans Dembinski
016532f011
Histogram fill method (#54)
huge refactor, various speed improvements, potential for further improvements and parallelization
2019-08-19 23:55:43 +02:00
Hans Dembinski
a06505d877
Get full coverage with tests only 2019-06-08 16:28:56 +02:00
Hans Dembinski
5f3f9d8fd7
Benchmark improvements and scripts to research history
* allow benchmarks to run in isolation, new scripts to run historic benchmarks
* make sure variant is never trivial in tests and benchmarks
2019-06-02 19:46:57 +02:00
Hans Dembinski
7a55bf0e29 move throw_exception implementation to test and benchmark folders 2019-05-28 23:15:17 +02:00
Hans Dembinski
ecd142080d
speed improvements for 1d and 2d histograms
* rename get_size to axes_rank and move axes buffer to axes.hpp
* added fill experiments
* faster and simpler fill_impl
* faster specializations for linearize_value
2019-05-26 23:51:15 +02:00
Hans Dembinski
8602102014
support -fno-exceptions and -fno-rrti and test this 2019-05-12 22:08:10 +02:00
Hans Dembinski
073dffdf09
More doc improvements 2019-04-28 12:22:49 +02:00
Hans Dembinski
9d25923b82
fix reduce when axis has no reduce support
- added is_reducible trait
- throw when axis is not reducible but reduction requested
2019-04-26 23:31:56 +02:00
Hans Dembinski
329fcf6855
Fix missing coverage and allocator-fail logic
* fixed allocator-failing code with better mock allocator; 100 % code coverage on all platforms
* fixed and refined use of safe comparison of number types
2019-04-23 23:25:05 +02:00
Hans Dembinski
1bf9dd9dfd
thread-safe storage
- new thread-safe accumulators for arithmetic types
- storages have a new flag `has_threading_support` to indicate support for parallel cell access
- histogram automatically synchronises growing axes and storage if necessary
2019-04-14 22:24:34 +02:00
Hans Dembinski
37edc673fa fix msvc warnings (#3)
* removes warnings on msvc
* fixes ==, <, > comparison for mixed signed/unsigned types in unlimited_storage
2019-03-21 16:59:05 +01:00
Hans Dembinski
478a06ea30
Option tag (#167)
replace option system with simpler and future-safe system
2019-03-06 15:25:11 +01:00
Hans Dembinski
2568a68f76
msvc fixes, simplification and bug-fixes of mp_int, more test coverage (#159)
* fixes broken msvc build
* smaller xml files for testing serialization
* fixing many warnings on msvc
* bug-fixes to mp_int regarding operators and new tests to check their behavior 
* don't expect iterable histogram::at to have size method
* build benchmarks in release mode
* test everything by default when b2 is run on project directory
* more test coverage
2019-02-18 10:04:27 +01:00
Hans Dembinski
9abbe46e3d
CI & doc update, removed multiprecision::cpp_int, simpler axis implementation, use_default to set default options
* Travis uses b2 and codecov now
* replacing boost::multiprecision with custom implementation to avoid the dependency
* improved axis implementation: `update` is now a normal method
* introduced use_default tag type to set defaults
* whitespace fixes and doc update
2019-02-17 13:37:50 +01:00
Hans Dembinski
4a2e3db0e0
upload edits on docs and minor code fixes (#152)
* renaming naked to remove_cvref_t
* more static_asserts to check implicit conditions
* use new BOOST_TEST_TRAIT_SAME
* reorganize and add operator tests, fixes for array and map adaptors
* improved map adaptor
* storage does not have to support scaling operator anymore
* doc improvements
2019-02-10 22:45:00 +01:00
Hans Dembinski
53b66cafc8 squash a few warnings on the boost matrix 2019-02-09 17:11:42 +01:00
Hans Dembinski
1b6adadae4 nicer stream for histogram 2019-02-03 21:57:53 +01:00
Hans Dembinski
beda2065a4 nicer type handling 2019-01-31 20:53:03 +01:00
Hans Dembinski
72d9ce635f axis:replaced operator() with index and operator[] with bin 2019-01-27 20:56:15 +01:00
Hans Dembinski
2ea4051e62 big clean-up of reference docu, fix for axis::variant<const Ts&...>, renamed operator_ostream header to ostream 2019-01-20 22:48:39 +01:00
Hans Dembinski
d0a59b9830 return iterator to current bin after fill 2019-01-19 14:57:47 +01:00
Hans Dembinski
0479c512e3 rename option_type to option, new growth option, new utiltity functions test and join 2019-01-13 14:25:34 +01:00
Hans Dembinski
e77e9ab2fe update 2019-01-11 00:06:26 +01:00
Hans Dembinski
188bf8ecbe Introduce grid type and derive histogram from grid 2019-01-11 00:06:26 +01:00
Hans Dembinski
37ac219921 added profile example and improved interface of mean and weighted_mean 2019-01-11 00:06:26 +01:00
Hans Dembinski
cbdd77f629 getting rid of value_bin_view, since we dont need to use bins as indices anymore 2019-01-11 00:06:26 +01:00
Hans Dembinski
168e41dc83 change the iteration order from 0...N-1 overflow underflow to underflow 0 ... N -1 overflow, move axis allocators at the end of template argument 2019-01-11 00:06:26 +01:00
Hans Dembinski
fb7ca0a0ef added deduction guides for axis types; removed circular axis implementation, implemented circular option for regular, integer, and variable axis; simplified transform spec; added axis::allocator alias 2019-01-11 00:06:26 +01:00
Hans Dembinski
1e0dcc72fb switch to int everywhere 2019-01-11 00:06:26 +01:00
Hans Dembinski
84641d0f41 added option for indexed to skip extra bins (new default); avoid mp11 in interface; use int as return type for axis::size() 2019-01-11 00:06:26 +01:00
Hans Dembinski
00cd2e866e changed axis::option_type to compile-time option, replaced fancy histogram iterator with indexed range adaptor, cleanup of various headers 2019-01-11 00:06:26 +01:00
Hans Dembinski
3b429d889c fix 2019-01-11 00:06:26 +01:00
Hans Dembinski
3661b238b6 clean up of accumuators, use consistent naming, make sure that sum accumulator can be used as RealType in weighted_sum 2019-01-11 00:06:26 +01:00
Hans Dembinski
692f8082c8 fix win 2019-01-11 00:06:26 +01:00
Hans Dembinski
8ec2daed87 rewrote accumulators to use more numerically stable algorithms, do not propagate weight_type down to the accumuator anymore, added neumaier summation, simplified interface of weight accumulator 2019-01-11 00:06:26 +01:00
Hans Dembinski
4bc30a74f0 added sum algorithm 2019-01-11 00:06:25 +01:00
Hans Dembinski
3020e72b53 moved reduce_to to project, closes issue 77 2019-01-11 00:06:25 +01:00
Hans Dembinski
521b43778a refactoring of make_histogram factories 2019-01-11 00:06:25 +01:00
Hans Dembinski
a6cb396704 more tests 2019-01-11 00:06:25 +01:00
Hans Dembinski
b82aa3b632 first working accumulator support 2019-01-11 00:06:25 +01:00
Hans Dembinski
04ca7a3fee wip for adding profile support 2019-01-11 00:06:25 +01:00
Hans Dembinski
b808de8154 support for axis types which accept multiple arguments 2019-01-11 00:06:25 +01:00
Hans Dembinski
8546683a4f fix 2019-01-11 00:06:25 +01:00
Hans Dembinski
4cc4cf0955 fix 2019-01-11 00:06:25 +01:00
Hans Dembinski
3c25dbdecf fix 2019-01-11 00:06:25 +01:00
Hans Dembinski
0b18bd6f0d removed handling of dynamic containers passed via operator() to obtain better non-surprising solution for tuples passed to 1d histogram, weights can be passed at the beginning or end again of the call to histogram::operator() 2019-01-11 00:06:25 +01:00
Hans Dembinski
ed4da69965 added tests for dynamic axis access 2019-01-11 00:06:25 +01:00
Hans Dembinski
23790f4008 support for vector of non-variant axes 2019-01-11 00:06:25 +01:00