/* Copyright (c) 2009 Ian Piumarta
 * All rights reserved.
 * See the file COPYING for details.
 */

#include "_mpint.h"

/* r = ~r */

mp_t *mp_not(mp_t *r)
{
  if (mp_zerop(r)) return r;
  size_t w= r->width, i= 0;
  while (i < w) {
    mp_digit_t d= _mp_digitAt(r, i);
    _mp_digitAtPut(r, i++, ~d);
  }
  return r;
}

