Add cal

Longs have more precision than a double.  In theory, this might be a problem, though in practice, it may not.