if boost::multiprecision is not available fall back to GMP