nd4j-common/src/main/java/org/nd4j/linalg/util/BigDecimalMath.java
static public BigDecimal pi(final MathContext mc) {
        /* look it up if possible */
        if (mc.getPrecision() < PI.precision()) {
            return PI.round(mc);
        } else {
            /* Broadhurst \protect\vrule width0pt\protect\href{http://arxiv.org/abs/math/9803067}{arXiv:math/9803067}
             */
            int[] a = {1, 0, 0, -1, -1, -1, 0, 0};
            BigDecimal S = broadhurstBBP(1, 1, a, mc);
            return multiplyRound(S, 8);
        }
    }
static public BigDecimal pi(final MathContext mc) {
        /* look it up if possible */
        if (mc.getPrecision() < PI.precision()) {
            return PI.round(mc);
        } else {
            /* Broadhurst \protect\vrule width0pt\protect\href{http://arxiv.org/abs/math/9803067}{arXiv:math/9803067}
             */
            int[] a = {1, 0, 0, -1, -1, -1, 0, 0};
            BigDecimal S = broadhurstBBP(1, 1, a, mc);
            return multiplyRound(S, 8);
        }
    }
Euler’s constant.

@param mc The required precision of the result.
@return 3.14159...