/* Cancel out the denominator and numerator of a fraction to get smaller numerator and denominator.  */
void cancel_out(u32 *num, u32 *den, u32 den_limit)
/* Cancel out the denominator and numerator of a fraction to get smaller numerator and denominator.  */
void cancel_out(u32 *num, u32 *den, u32 den_limit)
{
	do_cancel_out(num, den, 2);
	do_cancel_out(num, den, 3);
	do_cancel_out(num, den, 5);
	do_cancel_out(num, den, 7);
	do_cancel_out(num, den, 11);
	do_cancel_out(num, den, 13);
	do_cancel_out(num, den, 17);
	while ((*den) > den_limit) {
		*num /= 2;
		*den = (*den + 1) / 2;
	}
}