| 124 | } |
| 125 | |
| 126 | static word AtomicInverseModPower2(word A) |
| 127 | { |
| 128 | CRYPTOPP_ASSERT(A%2==1); |
| 129 | |
| 130 | word R=A%8; |
| 131 | |
| 132 | for (unsigned i=3; i<WORD_BITS; i*=2) |
| 133 | R = R*(2-R*A); |
| 134 | |
| 135 | CRYPTOPP_ASSERT(R*A==1); |
| 136 | return R; |
| 137 | } |
| 138 | |
| 139 | // ******************************************************** |
| 140 |