public BigInteger multiply(BigInteger val)
private int[] multiply(int[] x, int[] y, int[] z)
    public BigInteger multiply(BigInteger val)    {        if (sign == 0 || val.sign == 0)            return BigInteger.ZERO;        int[] res = new int[magnitude.length + val.magnitude.length];        return new BigInteger(sign * val.sign, multiply(res, magnitude, val.magnitude));    }