Hans Dembinski
7a55bf0e29
move throw_exception implementation to test and benchmark folders
2019-05-28 23:15:17 +02:00
Hans Dembinski
e434804508
explicitly guarantee nothrow moves for all builtin axis types
...
* use preinstalled gcc5 on travis and don't stop on first error anymore
* update axis concept regarding nothrow moves
2019-05-28 22:29:26 +02:00
Hans Dembinski
97f8b7dd91
Fix nothrow-move-assignable failures in travis
...
* new tests of nothrow move assignment for builtin axis types
* switch to xenial, which apparently comes with a different glibc version that adds a nothrow move assignment operator for std::string
2019-05-28 13:10:53 +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
18567de9f3
simpler variant
...
* simpler, now correct variant
* replaced reference_wrapper with pointer
2019-05-15 14:55:27 +02:00
Hans Dembinski
af188b6476
clean up warnings
2019-05-14 23:02:30 +02:00
Hans Dembinski
e5abd7dca1
tests of missing coverage and renamed make_mp_int to make_large_int
2019-05-13 23:32:52 +02:00
Hans Dembinski
1cb35db5f0
clean-up
2019-05-13 23:21: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
a8226955c2
Improve serialization of variant using only public interface and added serialiation for thread_safe<T>
2019-05-12 17:56:45 +02:00
Hans Dembinski
af77b6af07
Decouple tests and benchmarks, turn off warnings for tests with some external boost libs
...
- Tests and benchmarks now only include the headers they really need.
- Warnings turned off for tests that compile with external boost libs that are not warning free
2019-05-12 13:33:54 +02:00
Hans Dembinski
d65d47d082
new slice option, option fusion, more input checks
2019-05-10 00:01:16 +02:00
Hans Dembinski
5ef6a39945
Fix range iterator
...
* InputIterator concept requires that the decrement of a postfix-incremented iterator is valid, now it is
* added detached_accessor to that end
* update benchmark plot, better docs
2019-05-10 00:00:33 +02:00
Hans Dembinski
6c268109a3
Safer indexed range
...
* defined behavior when .begin() is called more than once
* better documentation about behavior
2019-05-04 07:44:48 +02:00
Hans Dembinski
e75aa6b210
Google benchmark and benchmark improvements
...
* fetching google benchmark with cmake
* use new thread-safe accumulator in histogram_parallel_filling
* update boost, root and gsl benchmarks to use google benchmark
2019-05-03 22:06:01 +02:00
Hans Dembinski
75312340f2
Construct from any iterable and select proper type
2019-05-03 11:36:06 +02:00
Hans Dembinski
170199bb9f
replacing boost::variant with detail::variant
...
- removes large number of outdated indirect boost dependencies
- less limited in number of stored types
2019-04-30 16:27:14 +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
5c75437db5
project algorithm generalized
...
project now also works with static histogram and iterable arguments
2019-04-26 17:15:13 +02:00
Hans Dembinski
112dff8048
include less
2019-04-26 15:24:35 +02:00
Hans Dembinski
5b6cdc8861
fix for bug in reduce with mixed axis types in std::vector<axis::variant>
2019-04-26 10:22:18 +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
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
ed4935cd93
better build files
2019-04-20 00:00:29 +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
07c3638423
also test threaded things with cmake
2019-04-16 23:41:03 +02:00
Hans Dembinski
a6c0e839b8
fix for threaded test
2019-04-15 00:30:02 +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
910431d8ad
Partial boost-cmake support
...
Running tests works, but installing targets does not
2019-04-14 19:54:46 +02:00
Hans Dembinski
b9ebd19127
adding -Wextra -pendatic -fstrict-aliasing ( #7 )
2019-03-23 11:20:54 +01: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
baca1ca8ae
Improved ubsan ( #173 )
...
Include leak test, exclude boost.serialization UB with blacklist.supp, avoid divide-by-zero in test
2019-03-18 15:50:59 +01:00
Hans Dembinski
0928156b51
avoid divide by zero in test
2019-03-18 15:50:39 +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
3d98d6208c
move requirements on cxx14 features into test and examples subprojects to not block doc build
2019-03-03 13:13:36 +01:00
Hans Dembinski
468510a443
fix accumulator support
2019-02-24 13:25:54 +01:00
Hans Dembinski
7f102b053d
fix appveyor uses b2, fix of serialization test
2019-02-24 10:31:18 +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
39b7afe2bf
better serialization tests which avoid having the xml data inline
2019-02-11 22:30:07 +01:00
Hans Dembinski
aad952f11e
removing lexical_cast
2019-02-11 20:34:17 +01:00
Hans Dembinski
c3966a52c2
doc and coverage updates
2019-02-11 20:28:41 +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
b7b945a0bc
fixing the test in both build systems
2019-02-09 15:56:08 +01:00
Hans Dembinski
718952e589
fixed building tests and examples
2019-02-08 17:11:26 +01:00
Hans Dembinski
ee6051f83c
adding defines to test
2019-02-08 16:44:03 +01:00
Hans Dembinski
ddc20134ff
fixing benchmark build
2019-02-08 16:26:41 +01:00
Hans Dembinski
123e91c312
removing more project ids
2019-02-08 15:52:39 +01:00
Hans Dembinski
918f6199b4
updating test builds
2019-02-08 15:47:36 +01:00
Hans Dembinski
e089280a12
moving benchmarks
2019-02-08 15:47:16 +01:00
Hans Dembinski
02f0004863
fix ci
2019-02-07 20:08:37 +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
b5eed0d90c
fix ci
2019-02-05 13:25:04 +01:00
Hans Dembinski
f521864203
better way to pass data files to test
2019-02-05 09:21:24 +01:00
Hans Dembinski
d1f5156b7c
test for overflow
2019-02-04 01:58:07 +01:00
Hans Dembinski
6e62514f10
dont compare serialized formats, only check unserialization
2019-02-04 01:15:26 +01:00
Hans Dembinski
c8fe13d2fa
better serialization test
2019-02-04 00:57:20 +01:00
Hans Dembinski
1b6adadae4
nicer stream for histogram
2019-02-03 21:57:53 +01:00
Hans Dembinski
7978ddef03
test and bug-fix of subtraction
2019-02-03 19:01:03 +01:00
Hans Dembinski
bdc8cb1975
fix CI
2019-02-03 18:11:36 +01:00
Hans Dembinski
e559694fa8
avoid warning on msvc
2019-02-03 17:22:34 +01:00
Hans Dembinski
5657d31c38
make histogram and all builtin storages subtractable
2019-02-03 17:14:29 +01:00
Hans Dembinski
da05be7128
improved benchmarks in docu
2019-02-03 12:45:04 +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
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
37c16139b1
better bench
2019-01-27 12:40:44 +01:00
Hans Dembinski
d56f60d32e
nicer bench
2019-01-27 11:53:35 +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
5396998eb7
improved stdlib compat, fixed bug in reference
2019-01-24 00:16:38 +01:00
Hans Dembinski
fd0b7dea8d
better reference docu
2019-01-22 22:14: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
61a4bf0c3e
fix benchmark
2019-01-19 14:34:21 +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
f8ebf85a05
accessor [] to index and indices
2019-01-17 21:56:02 +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
a51811c25a
more testing
2019-01-16 20:45:34 +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
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
2476e98259
growing axis fully working
2019-01-13 00:21:02 +01:00
Hans Dembinski
a9be9b0841
another growing axis
2019-01-13 00:00:51 +01:00