Commit Graph

745 Commits

Author SHA1 Message Date
Hans Dembinski
6b386c9b51
increase coverage
* provide unsafe access to buffer
* factored mp_int out into separate header and renamed to large_int
* refined adding behavior
* more warnings and comeback of coverage variant
* better coverage reporting
2019-04-22 03:33:05 +02:00
Hans Dembinski
02348a74e1
Replace boost::iterator_adaptor with private iterator_adaptor to reduce dependencies 2019-04-19 23:07:23 +02:00
Hans Dembinski
7b88f02f0e fix for threading bug 2019-04-16 23:01:00 +02:00
Hans Dembinski
45a4ae1e19 simplify 2019-04-16 22:31:24 +02:00
Hans Dembinski
eb95a8975d
simplified traits, new try_cast, moved static_if to extra header 2019-04-16 22:00:31 +02:00
Hans Dembinski
47dda5edfc remove double implementation 2019-04-16 20:01:58 +02:00
Hans Dembinski
77f366b7c1 explicit zero-ing 2019-04-15 00:46:50 +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
23fd6f27d1 hot-fix for variant warning 2019-04-14 14:34:10 +02:00
Hans Dembinski
7301d6a4c2 optimization for static axes with same axis type 2019-03-21 16:59:24 +01: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
43f88383ac
bug-fix growing and non-growing axis in variant (#4) 2019-03-20 22:39:03 +01:00
Hans Dembinski
11c9da8f33 Add axis traits docs (#1)
add missing doxygen docs for axis::traits and more tests of axis::traits
2019-03-18 16:05:08 +01:00
Hans Dembinski
d1d5e37788 make metadata_type private to be consistent with any axis 2019-03-18 15:53:26 +01:00
Hans Dembinski
c4a3d7da4a fix naming error extend -> extent 2019-03-18 15:52:19 +01:00
Hans Dembinski
c4f9779524 axis::variant uses composition instead of inheritance (#171)
... to avoid problems with unwanted calls to the constructor of boost::variant
2019-03-14 10:30:25 +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
5dd50985ae
Concepts (#166)
* concept docs rewritten, adapting to tabular style as in Beast and cppreference.com
* update the readme with correct links and text
* removed necessity to add `storage_tag` member type to storage classes
2019-03-05 01:52:01 +01:00
Hans Dembinski
94c1563ae7 improved wording, make using namespace consistent, fixed missing section about 2d axes 2019-02-24 23:20:25 +01:00
Hans Dembinski
ff97700470 * finishing the user guide
* get master badges back
2019-02-24 22:14:30 +01:00
Hans Dembinski
468510a443 fix accumulator support 2019-02-24 13:25:54 +01:00
Hans Dembinski
503541b2d4 decltype(auto) doesnt work on older compilers 2019-02-23 22:44:45 +01:00
Hans Dembinski
9561eb8b12 simplifying variant implementation 2019-02-23 22:25:54 +01:00
Hans Dembinski
2a92ecb9a1 use use_default from core instead of custom type 2019-02-23 21:34:24 +01:00
Hans Dembinski
6af776020f fix 2019-02-22 00:21:16 +01:00
Hans Dembinski
266e1a69f2
Feature/operators (#162)
* better operators for mp_int, unlimited_storage::reference, map_impl::reference, copying code from boost.operators 
* treat warnings as errors on travis
* make appveyor build feature branches
2019-02-20 09:15:14 +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
3b110fc2a5 tabs to space, replace non-ascii [ci skip] 2019-02-11 22:30:41 +01:00
Hans Dembinski
e1837c6d40 avoid allocator<void> warning [ci skip] 2019-02-11 21:22:40 +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
a2dcbdccd9 doc improvements 2019-02-07 22:57:08 +01:00
Hans Dembinski
1aeeddd6a8 be more self-documenting [ci skip] 2019-02-06 23:53:45 +01:00
Hans Dembinski
f20abe19fb rename adaptive_storage to unlimited_storage, closes #150 2019-02-06 23:34:58 +01:00
Hans Dembinski
df4fefac18 histogram supports add, sub, mul, div 2019-02-06 00:29:22 +01:00
Hans Dembinski
6decac4755 fix ci 2019-02-05 13:00:56 +01:00
Hans Dembinski
017fa5a3a6 fix ci 2019-02-05 09:41:33 +01:00
Hans Dembinski
6cd4e59ed4 remove warnings by making conversion explicit 2019-02-05 09:34:11 +01:00
Hans Dembinski
5a5730e9cd more asserts 2019-02-05 00:26:56 +01:00
Hans Dembinski
c1bc7cbed8 getting rid of buffer.hpp, simplified adaptive_storage, make buffer is never in invalid state because of throw 2019-02-05 00:25:24 +01:00
Hans Dembinski
5c0c5f59b4 protect against invalid state after exception 2019-02-04 02:10:22 +01:00
Hans Dembinski
0b6763391e no unnamed namespace in header allowed 2019-02-04 02:10:03 +01:00
Hans Dembinski
d1f5156b7c test for overflow 2019-02-04 01:58:07 +01:00
Hans Dembinski
075fccc614 better name 2019-02-04 01:28:34 +01:00
Hans Dembinski
a2d7202547 more docu [ci skip] 2019-02-04 01:28:23 +01:00
Hans Dembinski
6d9861ebc2 simpler 2019-02-04 01:28:12 +01:00
Hans Dembinski
31d3f8cf49 doc improved [ci skip] 2019-02-04 01:04:22 +01:00
Hans Dembinski
c8fe13d2fa better serialization test 2019-02-04 00:57:20 +01:00
Hans Dembinski
1f7537700c make deserialization exception-safe 2019-02-03 22:30:18 +01:00
Hans Dembinski
1b6adadae4 nicer stream for histogram 2019-02-03 21:57:53 +01:00
Hans Dembinski
24429164a9 iosfwd instead of ostream header 2019-02-03 21:33:26 +01:00
Hans Dembinski
59ae6d7ca1 properly handle axis with allocators 2019-02-03 21:28:17 +01:00
Hans Dembinski
7d2d718c2d better docs [ci skip] 2019-02-03 21:09:40 +01:00
Hans Dembinski
4048586be1 nicer docs, move attribute.hpp to details 2019-02-03 20:36:49 +01:00
Hans Dembinski
f1bc45e72f doc improvement [ci skip] 2019-02-03 20:12:09 +01:00
Hans Dembinski
7978ddef03 test and bug-fix of subtraction 2019-02-03 19:01:03 +01:00
Hans Dembinski
5657d31c38 make histogram and all builtin storages subtractable 2019-02-03 17:14:29 +01:00
Hans Dembinski
beda2065a4 nicer type handling 2019-01-31 20:53:03 +01:00
Hans Dembinski
fa211299f7 tell about no-overflow-guarantee and its loss, closes #120 2019-01-31 20:42:35 +01:00
Hans Dembinski
72d9ce635f axis:replaced operator() with index and operator[] with bin 2019-01-27 20:56:15 +01:00
Hans Dembinski
8cc4ff26a9 fix comment [ci skip] 2019-01-27 19:48:43 +01:00
Hans Dembinski
0bb5c1b3f4 faster indexed iteration, replaced boost::container::X with std::X 2019-01-27 19:46:46 +01:00
Hans Dembinski
451f36c774 simple 2019-01-27 16:46:42 +01:00
Hans Dembinski
7035d687e3 move implementation into implementation file 2019-01-27 11:31:01 +01:00
Hans Dembinski
8d90019a53 remove obsolete 2019-01-27 11:30:28 +01:00
Hans Dembinski
ed5af698bc use std::enable_if_t for check, to get better error messages 2019-01-24 21:35:17 +01:00
Hans Dembinski
47b8a0734d CI fix 2019-01-24 20:53:33 +01:00
Hans Dembinski
5396998eb7 improved stdlib compat, fixed bug in reference 2019-01-24 00:16:38 +01:00
Hans Dembinski
2a4ed0b5f9 improve reference docs 2019-01-22 23:05:53 +01:00
Hans Dembinski
fd0b7dea8d better reference docu 2019-01-22 22:14:38 +01:00
Hans Dembinski
a412b53f12 fix 2019-01-22 20:48:07 +01:00
Hans Dembinski
0c052f5d62 better docs 2019-01-20 23:28:28 +01:00
Hans Dembinski
6bc32d0ea6 nicer 2019-01-20 22:56:38 +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
b6f454f493 enable underflow and overflow for growing axis where possible 2019-01-19 23:19:04 +01:00
Hans Dembinski
d0a59b9830 return iterator to current bin after fill 2019-01-19 14:57:47 +01:00
Hans Dembinski
9d22f3791c implemented ctor with step size for regular axis, closes #88 2019-01-19 13:21:42 +01:00
Hans Dembinski
6da0059eed signal intend 2019-01-19 12:33:49 +01:00
Hans Dembinski
c826c1f824 cosmetics 2019-01-19 12:33:31 +01:00
Hans Dembinski
30cf2fe97e nicer 2019-01-17 22:26:59 +01:00
Hans Dembinski
f8ebf85a05 accessor [] to index and indices 2019-01-17 21:56:02 +01:00
Hans Dembinski
07b91f013f more pointer an array interface 2019-01-17 08:08:03 +01:00
Hans Dembinski
bc6ee8f89e switch second indexed argument to enum class and use use_default everywhere 2019-01-16 22:00:59 +01:00
Hans Dembinski
56c3d5bc40 fix ci 2019-01-16 20:48:11 +01:00
Hans Dembinski
acb5b7ba1e fix CI 2019-01-16 20:36:31 +01:00
Hans Dembinski
2a7f9cdf61 support for growing variable axis 2019-01-16 09:16:56 +01:00
Hans Dembinski
6c74da60ed regular axis growable; removed axis::base; replaced int with index_type 2019-01-16 00:52:41 +01:00
Hans Dembinski
cadc27135f make category growable and add missing deduction guides 2019-01-15 00:13:04 +01:00
Hans Dembinski
4108c54869 replacing custom SFINAE with mp11::mp_valid 2019-01-14 22:00:53 +01:00
Hans Dembinski
3ed77e7287 nicer way of injecting optional interface 2019-01-14 22:00:33 +01:00
Hans Dembinski
f1ac913246 better solution for adding optional update method when axis has growth 2019-01-13 23:18:39 +01:00
Hans Dembinski
8e9dd85837 wip: growing axis for axis::integer 2019-01-13 22:14:53 +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
ac47484483 simper and slightly faster adaptive_storage 2019-01-12 23:37:31 +01:00
Hans Dembinski
4ad531fd77 shorter 2019-01-12 22:49:43 +01:00
Hans Dembinski
6158a9a8bc fix 2019-01-12 22:04:17 +01:00
Hans Dembinski
5ba3c694b0 fix 2019-01-12 21:40:11 +01:00
Hans Dembinski
1a04ecc4a0 add comment 2019-01-12 21:00:58 +01:00
Hans Dembinski
3179ac3420 fix 2019-01-12 20:58:55 +01:00
Hans Dembinski
cdc1fc442f fix 2019-01-12 20:51:30 +01:00
Hans Dembinski
3cec3edb9c working test: simpler variant visit, simpler linearize functions, extended traits; get_if for std compliance 2019-01-12 20:42:45 +01:00
Hans Dembinski
d926077705 nicer naming of internal functions and explicitly initialize shifts, 2019-01-11 23:56:18 +01:00
Hans Dembinski
2e4ad7a5df enable growing axis support at compile-time only when needed 2019-01-11 23:33:30 +01:00
Hans Dembinski
bd381dbe76 gcc fix 2019-01-11 00:47:18 +01:00
Hans Dembinski
54eb52d80d wip: growing axis for static 1d working 2019-01-11 00:38:34 +01:00
Hans Dembinski
7be6dd27f6 wip, support for growing axes 2019-01-11 00:11:34 +01:00
Hans Dembinski
b0b1f9065e exact comparison for references 2019-01-11 00:06:26 +01:00
Hans Dembinski
347ac33d2c make accessor writeable 2019-01-11 00:06:26 +01:00
Hans Dembinski
608a89fef3 fix travis 2019-01-11 00:06:26 +01:00
Hans Dembinski
e80ae946e6 full iterator support 2019-01-11 00:06:26 +01:00
Hans Dembinski
dd0943a4b0 not necessary 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
ca815dd231 remove obsolete comment 2019-01-11 00:06:26 +01:00
Hans Dembinski
2d5fb32b88 improved support and testing of axes over boost::units 2019-01-11 00:06:26 +01:00
Hans Dembinski
68ce22a323 deduction guides for histogram class 2019-01-11 00:06:26 +01:00
Hans Dembinski
d96f749a52 deduction guides for histogram 2019-01-11 00:06:26 +01:00
Hans Dembinski
12a79e5197 regular axis with unit can now also use transforms 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
a510b7dc93 no need for serialize method in histogram anymore 2019-01-11 00:06:26 +01:00
Hans Dembinski
c4c2476012 use indexed in reduce and project, making index_mapper obsolete 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
74d1b95d72 fixing deduction guide testing; better error when google benchmark is not found 2019-01-11 00:06:26 +01:00
Hans Dembinski
81abaa23eb fix for travis 2019-01-11 00:06:26 +01:00
Henry Fredrick Schreiner
d75b2dc207 Small typo fix 2019-01-11 00:06:26 +01:00
Henry Fredrick Schreiner
0d481a8938 Fix for duplicate symbol linking error 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
5752fd8f87 axis benchmark and simpler circular index calculation 2019-01-11 00:06:26 +01:00
Hans Dembinski
d6c7e81515 faster indexing when iterating over all bins 2019-01-11 00:06:26 +01:00
Hans Dembinski
f21d396179 better value access and fixes for CI builds 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
9783a329c4 BOOST_THROW_EXCEPTION 2019-01-11 00:06:26 +01:00
Hans Dembinski
5d98adcdef fix 2019-01-11 00:06:26 +01:00
Hans Dembinski
e2987d528e added nodiscard 2019-01-11 00:06:26 +01:00
Hans Dembinski
be16b0f39f fix 2019-01-11 00:06:26 +01:00
Hans Dembinski
fbf9707874 fix 2019-01-11 00:06:26 +01:00
Hans Dembinski
dc1f4ad47c fix 2019-01-11 00:06:26 +01:00
Hans Dembinski
a4fe842b4a added density method to indexed proxy, hide details of axes_buffer 2019-01-11 00:06:26 +01:00
Hans Dembinski
31c762b359 new interface for proxy returned by indexed, new test and fixes for boost.range support 2019-01-11 00:06:26 +01:00
Hans Dembinski
d512bf469f simpler 2019-01-11 00:06:26 +01:00
Hans Dembinski
b7dd2865cc use correct size for buffer if size is known at compile-time 2019-01-11 00:06:26 +01:00
Hans Dembinski
14649920b7 better placement 2019-01-11 00:06:26 +01:00
Hans Dembinski
e40757b9de clean up 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
db8fe44e9e added support for variable axis 2019-01-11 00:06:26 +01:00
Hans Dembinski
82186969f3 added support for circular axis 2019-01-11 00:06:26 +01:00
Hans Dembinski
4533bd9fd4 added reduce algorithm to shrink and rebin, fixed bug in polymorphic_bin in the process, to-do: add more axis support for shrink and rebin 2019-01-11 00:06:26 +01:00
Hans Dembinski
09f58022c0 eliminate some warnings about conversions 2019-01-11 00:06:26 +01:00