code: private static FDBigInteger big5powRec(int p) {
          if (p < MAX_FIVE_POW) {
              return POW_5_CACHE[p];
          }
          // construct the value.
          // recursively.
          int q, r;
          // in order to compute 5^p,
          // compute its square root, 5^(p/2) and square.
          // or, let q = p / 2, r = p -q, then
          // 5^p = 5^(q+r) = 5^q * 5^r
          q = p >> 1;
          r = p - q;
          FDBigInteger bigq = big5powRec(q);
          if (r < SMALL_5_POW.length) {
              return bigq.mult(SMALL_5_POW[r]);
          } else {
              return bigq.mult(big5powRec(r));
          }
      }
docs: Computes <code>5</code> raised to a given power.
  
  @param p The exponent of 5.
  @return <code>5<sup>p</sup></code>.