public int signum() {
   return api.signum();
 }
 public Xint divide(Xint a) {
   cnt.DIV++;
   return new Xint(api.divide(a.api));
 }
 public Xint divide(long b) {
   cnt.div++;
   return new Xint(api.divide(new Apint(b, radix)));
 }
 public Xint multiply(long b) {
   cnt.mul++;
   return new Xint(api.multiply(new Apint(b, radix)));
 }
 public Xint square() {
   cnt.sqr++;
   return new Xint(api.multiply(api));
 }
 public Xint subtract(long b) {
   cnt.sub++;
   return new Xint(api.subtract(new Apint(b, radix)));
 }
 public Xint multiply(Xint b) {
   cnt.MUL++;
   return new Xint(api.multiply(b.api));
 }
 public Xint add(long b) {
   cnt.add++;
   return new Xint(api.add(new Apint(b, radix)));
 }
 public Xint subtract(Xint a) {
   cnt.SUB++;
   return new Xint(api.subtract(a.api));
 }
 public int compareTo(Xint b) {
   return api.compareTo(b.api);
 }
 public Xint add(Xint b) {
   cnt.ADD++;
   return new Xint(api.add(b.api));
 }
 public String toHexString() {
   return api.toRadix(16).toString();
 }
 @Override
 public String toString() {
   return api.toRadix(10).toString();
 }
 public long crcValue() {
   return 0xffffffffL & api.hashCode();
 }
 public boolean isZERO() {
   return api.intValue() == 0;
 }
 public boolean isONE() {
   return api.intValue() == 1;
 }