- _d->v[_o++] = MPW(-_i); \
- \
- /* --- More subtlety --- * \
- * \
- * Ideally, I'd like to just shift @i@ right by @MPW_BITS@. But I \
- * can't, because that might be more than I'm allowed. I can't \
- * divide by @MPW_MAX + 1@ because that might turn out to be zero \
- * in my current type, and besides which it's unsigned which messes \
- * up all of my negative arithmetic. So do an explicit test here. \
- */ \
- \
- if (_i >= -MPW_MAX) \
- break; \
- else \
- _i /= (type)MPW_MAX + 1; \