public static long binomial(LongPair pair) { Object find = pascal.get(pair); if (find == null) { long l = binomial(pair.x() - 1, pair.y() - 1); long r = binomial(pair.x() - 1, pair.y()); pascal.put(pair, new Long(l + r)); return l + r; } return ((Long) find).longValue(); }