@@ -92,18 +92,17 @@ inline char less_partial(epu8 a, epu8 b, int k) {
9292 : static_cast <char >(a[diff]) - static_cast <char >(b[diff]);
9393}
9494
95-
9695inline uint64_t first_zero (epu8 v, int bnd) {
97- return first_mask (v == epu8 {}, bnd);
96+ return first_mask (v == epu8{}, bnd);
9897}
9998inline uint64_t last_zero (epu8 v, int bnd) {
100- return last_mask (v == epu8 {}, bnd);
99+ return last_mask (v == epu8{}, bnd);
101100}
102101inline uint64_t first_non_zero (epu8 v, int bnd) {
103- return first_mask (v != epu8 {}, bnd);
102+ return first_mask (v != epu8{}, bnd);
104103}
105104inline uint64_t last_non_zero (epu8 v, int bnd) {
106- return last_mask (v != epu8 {}, bnd);
105+ return last_mask (v != epu8{}, bnd);
107106}
108107
109108// / Apply a sorting network
@@ -180,15 +179,9 @@ constexpr std::array<epu8, 6> sorting_rounds8
180179inline bool is_sorted (epu8 a) {
181180 return _mm_movemask_epi8 (shifted_right (a) > a) == 0 ;
182181}
183- inline epu8 sorted (epu8 a) {
184- return network_sort<true >(a, sorting_rounds);
185- }
186- inline epu8 sorted8 (epu8 a) {
187- return network_sort<true >(a, sorting_rounds8);
188- }
189- inline epu8 revsorted (epu8 a) {
190- return network_sort<false >(a, sorting_rounds);
191- }
182+ inline epu8 sorted (epu8 a) { return network_sort<true >(a, sorting_rounds); }
183+ inline epu8 sorted8 (epu8 a) { return network_sort<true >(a, sorting_rounds8); }
184+ inline epu8 revsorted (epu8 a) { return network_sort<false >(a, sorting_rounds); }
192185inline epu8 revsorted8 (epu8 a) {
193186 return network_sort<false >(a, sorting_rounds8);
194187}
@@ -200,7 +193,6 @@ inline epu8 sort8_perm(epu8 &a) {
200193 return network_sort_perm<true >(a, sorting_rounds8);
201194}
202195
203-
204196inline epu8 random_epu8 (uint16_t bnd) {
205197 epu8 res;
206198 std::random_device rd;
@@ -219,7 +211,7 @@ inline epu8 remove_dups(epu8 v, uint8_t repl) {
219211}
220212
221213// Gather at the front numbers with (3-i)-th bit not set.
222- constexpr std::array<epu8, 3 > inverting_rounds {{
214+ constexpr std::array<epu8, 3 > inverting_rounds{{
223215 // clang-format off
224216 // 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
225217 epu8 { 0 , 1 , 2 , 3 , 8 , 9 , 10 , 11 , 4 , 5 , 6 , 7 , 12 , 13 , 14 , 15 },
@@ -244,14 +236,13 @@ inline epu8 permutation_of(epu8 a, epu8 b) {
244236 return res;
245237}
246238
247-
248239#if defined(FF)
249240#error FF is defined !
250241#endif /* FF */
251242#define FF 0xff
252243
253244// / Permutation Round for partial and horizontal sums
254- constexpr std::array<epu8, 4 > summing_rounds {{
245+ constexpr std::array<epu8, 4 > summing_rounds{{
255246 // clang-format off
256247 // 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
257248 epu8 { FF, 0 , FF, 2 , FF, 4 , FF, 6 , FF, 8 , FF, 10 , FF, 12 , FF, 14 },
@@ -261,7 +252,7 @@ constexpr std::array<epu8, 4> summing_rounds {{
261252 // clang-format on
262253}};
263254
264- constexpr std::array<epu8, 4 > mining_rounds {{
255+ constexpr std::array<epu8, 4 > mining_rounds{{
265256 // clang-format off
266257 // 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
267258 epu8 { 0 , 0 , 2 , 2 , 4 , 4 , 6 , 6 , 8 , 8 , 10 , 10 , 12 , 12 , 14 , 14 },
@@ -306,7 +297,6 @@ inline epu8 partial_sums_round(epu8 v) {
306297 return v;
307298}
308299
309-
310300inline uint8_t horiz_max_ref (epu8 v) {
311301 uint8_t res = 0 ;
312302 for (size_t i = 0 ; i < 16 ; i++)
@@ -340,7 +330,6 @@ inline epu8 partial_max_round(epu8 v) {
340330 return v;
341331}
342332
343-
344333inline uint8_t horiz_min_ref (epu8 v) {
345334 uint8_t res = 255 ;
346335 for (size_t i = 0 ; i < 16 ; i++)
@@ -361,7 +350,7 @@ inline epu8 partial_min_ref(epu8 v) {
361350 epu8 res;
362351 res[0 ] = v[0 ];
363352 for (size_t i = 1 ; i < 16 ; i++)
364- res[i] = std::min (res[i - 1 ], v[i]) ;
353+ res[i] = std::min (res[i - 1 ], v[i]);
365354 return res;
366355}
367356inline epu8 partial_min_gen (epu8 v) {
@@ -374,7 +363,6 @@ inline epu8 partial_min_round(epu8 v) {
374363 return v;
375364}
376365
377-
378366inline epu8 eval16_ref (epu8 v) {
379367 epu8 res{};
380368 for (size_t i = 0 ; i < 16 ; i++)
@@ -409,44 +397,42 @@ inline epu8 eval16_popcount(epu8 v) {
409397 return res;
410398}
411399
412-
413- inline epu8 popcount16 (epu8 v){
400+ inline epu8 popcount16 (epu8 v) {
414401 return permuted (popcount4, (v & Epu8 (0x0f ))) + permuted (popcount4, v >> 4 );
415402}
416403
417-
418404inline bool is_partial_transformation (epu8 v, const size_t k) {
419405 uint64_t diff = last_diff (v, epu8id, 16 );
420406 // (forall x in v, x + 1 <= 16) and
421407 // (v = Perm16::one() or last diff index < 16)
422- return (_mm_movemask_epi8 (v + Epu8 (1 ) <= Epu8 (0x10 )) == 0xffff )
423- && (diff == 16 || diff < k);
408+ return (_mm_movemask_epi8 (v + Epu8 (1 ) <= Epu8 (0x10 )) == 0xffff ) &&
409+ (diff == 16 || diff < k);
424410}
425411
426412inline bool is_transformation (epu8 v, const size_t k) {
427413 uint64_t diff = last_diff (v, epu8id, 16 );
428- return (_mm_movemask_epi8 (v < Epu8 (0x10 )) == 0xffff )
429- && (diff == 16 || diff < k);
414+ return (_mm_movemask_epi8 (v < Epu8 (0x10 )) == 0xffff ) &&
415+ (diff == 16 || diff < k);
430416}
431417
432418inline bool is_partial_permutation (epu8 v, const size_t k) {
433419 uint64_t diff = last_diff (v, epu8id, 16 );
434420 // (forall x in v, x <= 15) and
435421 // (forall x < 15, multiplicity x v <= 1
436422 // (v = Perm16::one() or last diff index < 16)
437- return (_mm_movemask_epi8 (v + Epu8 (1 ) <= Epu8 (0x10 )) == 0xffff )
438- && (_mm_movemask_epi8 (eval16 (v) <= Epu8 (1 )) == 0xffff )
439- && (diff == 16 || diff < k);
423+ return (_mm_movemask_epi8 (v + Epu8 (1 ) <= Epu8 (0x10 )) == 0xffff ) &&
424+ (_mm_movemask_epi8 (eval16 (v) <= Epu8 (1 )) == 0xffff ) &&
425+ (diff == 16 || diff < k);
440426}
441427
442428inline bool is_permutation (epu8 v, const size_t k) {
443429 uint64_t diff = last_diff (v, epu8id, 16 );
444430 // (forall x in v, x in Perm16::one()) and
445431 // (forall x in Perm16::one(), x in v) and
446432 // (v = Perm16::one() or last diff index < 16)
447- return _mm_cmpestri (epu8id, 16 , v, 16 , FIRST_NON_ZERO) == 16
448- && _mm_cmpestri (v, 16 , epu8id, 16 , FIRST_NON_ZERO) == 16
449- && (diff == 16 || diff < k);
433+ return _mm_cmpestri (epu8id, 16 , v, 16 , FIRST_NON_ZERO) == 16 &&
434+ _mm_cmpestri (v, 16 , epu8id, 16 , FIRST_NON_ZERO) == 16 &&
435+ (diff == 16 || diff < k);
450436}
451437
452438} // namespace HPCombi
0 commit comments