code: public /*@ pure @*/ int cmpPow52(int p5, int p2) {
          if (p5 == 0) {
              int wordcount = p2 >> 5;
              int bitcount = p2 & 0x1f;
              int size = this.nWords + this.offset;
              if (size > wordcount + 1) {
                  return 1;
              } else if (size < wordcount + 1) {
                  return -1;
              }
              int a = this.data[this.nWords -1];
              int b = 1 << bitcount;
              if (a != b) {
                  return ( (a & LONG_MASK) < (b & LONG_MASK)) ? -1 : 1;
              }
              return checkZeroTail(this.data, this.nWords - 1);
          }
          return this.cmp(big5pow(p5).leftShift(p2));
      }
docs: /*@
  @ requires p5 >= 0 && p2 >= 0;
  @ ensures \result == (this.value() < pow52(p5, p2) ? -1 : this.value() >  pow52(p5, p2) ? +1 : 0);
  @