… | |
… | |
463 | C<ecb_mod> implements the mathematical modulo operation, which is missing |
463 | C<ecb_mod> implements the mathematical modulo operation, which is missing |
464 | in the language. |
464 | in the language. |
465 | |
465 | |
466 | C<n> must be strictly positive (i.e. C<< >= 1 >>), while C<m> must be |
466 | C<n> must be strictly positive (i.e. C<< >= 1 >>), while C<m> must be |
467 | negatable, that is, both C<m> and C<-m> must be representable in its |
467 | negatable, that is, both C<m> and C<-m> must be representable in its |
468 | type (this typically includes the minimum signed integer value, the same |
468 | type (this typically excludes the minimum signed integer value, the same |
469 | limitation as for C</> and C<%> in C). |
469 | limitation as for C</> and C<%> in C). |
470 | |
470 | |
471 | Current GCC versions compile this into an efficient branchless sequence on |
471 | Current GCC versions compile this into an efficient branchless sequence on |
472 | almost all CPUs. |
472 | almost all CPUs. |
473 | |
473 | |