Commit Graph

881 Commits

Author SHA1 Message Date
Jonathan Poelen 24e9ec6593 optimize mp_replace
compiler |      gcc-15       |     clang-20
before   | 0:00.30s - 90020K | 0:00.48s - 129272K
after    | 0:00.29s - 89428K | 0:00.46s - 126580K

```cpp
template<class I, class L = mp_iota<I>> using test
  = mp_replace<L, I, I>;

using r1 = mp_transform<test, mp_iota_c<120>>;
```
2026-03-24 03:50:40 +02:00
Jonathan Poelen 0d61d09d3a optimize mp_remove
compiler |      gcc-15       |     clang-20
before   | 0:00.32s - 91276K | 0:00.69s - 156512K
after    | 0:00.31s - 90684K | 0:00.67s - 157560K

```cpp
template<class> using pred = mp_true;
template<class I, class L = mp_iota<I>> using test
  = mp_remove<L, I>;

using r1 = mp_transform<test, mp_iota_c<120>>;
```
2026-03-24 02:27:42 +02:00
Jonathan Poelen e06ba9abd3 optimize mp_copy_if
compiler |      gcc-15       |     clang-20
before   | 0:00.21s - 65820K | 0:00.51s - 138048K
after    | 0:00.21s - 65428K | 0:00.49s - 138540K

```cpp
template<class> using pred = mp_false;
template<class I, class L = mp_iota<I>> using test
  = mp_copy_if<L, pred>;

using r1 = mp_transform<test, mp_iota_c<120>>;
```
2026-03-23 22:49:31 +02:00
Jonathan Poelen 04dd0e118c optimize mp_remove_if
compiler |      gcc-15       |     clang-20
before   | 0:00.21s - 67308K | 0:00.51s - 137744K
after    | 0:00.21s - 66956K | 0:00.49s - 138492K

```cpp
template<class> using pred = mp_true;
template<class I, class L = mp_iota<I>> using test
  = mp_remove_if<L, pred>;

using r1 = mp_transform<test, mp_iota_c<120>>;
```
2026-03-23 21:25:37 +02:00
Jonathan Poelen 2d3a0e9877 optimize integer_sequence with gcc
Use the `__integer_pack` builtin

compiler |      gcc-15
before   | 0:00.14s - 47284K
after    | 0:00.07s - 37572K

```cpp
template<class I> using test
  = make_integer_sequence<int, I::value>;

using r1 = mp_transform<test, mp_iota_c<200>>;
```
2026-03-23 17:49:05 +02:00
Peter Dimov 6ac4c8cae6 Update ci.yml 2026-03-23 16:57:31 +02:00
Peter Dimov 41c54ed155 Add Drone support 2026-03-23 16:15:20 +02:00
Peter Dimov 7f59439e3f Update ci.yml 2026-03-23 15:31:27 +02:00
Peter Dimov b94b089d4e Merge pull request #112 from Lastique/feature/remove_static_assert
Remove dependencies on Boost.StaticAssert
boost-1.91.0.beta1 boost-1.91.0
2026-01-23 02:29:05 +02:00
Andrey Semashev ae2b1bf4fe Remove dependencies on Boost.StaticAssert.
Boost.StaticAssert has been merged into Boost.Config, so remove
the dependency.
2026-01-22 20:13:13 +03:00
Peter Dimov 2c10351d5e Update ci.yml 2025-12-15 15:52:34 +02:00
Peter Dimov fc8003d32c Update version 2025-12-15 15:49:34 +02:00
Peter Dimov fe7447470d Update cuda-windows job in ci.yml boost-1.90.0.beta1 boost-1.90.0 2025-11-03 13:55:57 +02:00
Peter Dimov 6f3796a68c Update cuda-linux job in ci.yml 2025-11-03 10:57:49 +02:00
Peter Dimov 437ddf60af Update documentation of mp_transform 2025-11-01 14:12:53 +02:00
Peter Dimov 24441db797 Merge pull request #109 from joaquintides/fix/docs
fixed definition of list
2025-10-30 10:46:49 +02:00
joaquintides bd1be41b70 s/template class/class template 2025-10-26 20:46:25 +01:00
joaquintides 2e541a7ee9 fixed definition 2025-10-26 12:00:49 +01:00
Peter Dimov d8ddd856e8 Update revision history 2025-10-22 11:09:08 +03:00
Peter Dimov 811aa7a0f1 Update mp_reverse_fold to work on fixed size lists. Fixes #108. 2025-10-21 18:51:31 +03:00
Peter Dimov d27d821192 Test mp_fold and mp_reverse_fold with std::pair. Refs #108. 2025-10-21 18:48:33 +03:00
Peter Dimov 50e2a0a1b8 Update version 2025-10-09 18:32:10 +03:00
Peter Dimov 1f3d0bbe0c Update ci.yml 2025-09-09 16:43:32 +03:00
Peter Dimov 75e0901b40 Fix typo in mp_push_back example. Closes #107. 2025-09-09 16:37:30 +03:00
Peter Dimov 2fb81c2453 Update version boost-1.89.0 2025-06-28 08:20:51 +03:00
Peter Dimov 1a99027e8c Add an alternative implementation of mp_map_find for GCC 14+. Fixes #106. 2025-05-08 15:50:59 +03:00
Peter Dimov f8ee448fa5 Add test case from #106. Refs #106. 2025-05-08 03:04:21 +03:00
Peter Dimov 7e04eb38f9 Update ci.yml 2025-05-07 21:36:56 +03:00
Peter Dimov e5da96b9b6 Update revision history boost-1.88.0.beta1 boost-1.88.0 2025-01-15 19:35:28 +02:00
Peter Dimov 9910ada772 Clang considers the specialization ambiguous in C++17 and above, rewrite. Fixes #103. 2025-01-07 22:52:07 +02:00
Peter Dimov 7ca1e0a92b Add a specialization of mp_from_sequence_impl to handle the defaulted offset case. Fixes #103. 2025-01-07 21:10:14 +02:00
Peter Dimov e2277a5b2e Add test/mp_from_sequence_3.cpp. Refs #103. 2025-01-07 21:08:55 +02:00
Peter Dimov 43fd186a8e Remove cxxstd=1z from clang-5.0 2024-12-21 22:21:46 +02:00
Peter Dimov abcb365993 Use N=257 for all compilers lacking C++14 constexpr 2024-12-21 22:03:10 +02:00
Peter Dimov 82533c431e Do not use fold expressions for mp_find and mp_find_if 2024-12-21 21:48:37 +02:00
Peter Dimov 35435bf206 Add N=1089 test case to test/mp_find_if_q.cpp 2024-12-21 21:40:56 +02:00
Peter Dimov c08451873c test/mp_find: Decrease N to 257 for MSVC without constexpr 2024-12-21 21:24:02 +02:00
Peter Dimov 784ff13c6e Add a test with N=1089 to mp_find.cpp 2024-12-21 21:04:34 +02:00
Peter Dimov 279041fd42 Update version 2024-12-14 02:09:09 +02:00
Peter Dimov 8d4b6eb840 Apply Node20 workaround 2024-12-13 22:45:58 +02:00
Peter Dimov 7a4a2c3661 Update ci.yml 2024-12-13 22:44:53 +02:00
Peter Dimov b108e01927 Update version 2024-12-13 22:43:40 +02:00
Peter Dimov b06d0e4062 Merge pull request #100 from joaquintides/feature/improved-perf-mp_is_set
Improved performance of  `mp_is_set`
2024-11-09 03:46:10 +02:00
joaquintides 28929d9794 kept old impl for msvc 12.0 2024-11-08 22:07:10 +01:00
joaquintides c2bc9788ca made mp_is_set<S> robust when S is not a list 2024-11-08 19:50:48 +01:00
joaquintides 13a81c86ee added missing #include 2024-11-08 19:21:27 +01:00
joaquintides fb79d23aac improved performance of mp_is_set 2024-11-08 19:08:50 +01:00
Peter Dimov 1caff7ffa9 Change second occurrence of the same code in mp_count.hpp to match boost-1.87.0.beta1 boost-1.87.0 2024-10-22 19:50:32 +03:00
Peter Dimov 9b8d36ec84 Merge pull request #98 from tjcw/issue-97
Candidate fix
2024-10-22 19:40:17 +03:00
Chris Ward 44a731d868 Candidate fix
code without "if constexpr"
2024-10-22 08:59:32 +01:00