multiple precision arithmetic