⛏️ index : haiku.git

/*
 * Copyright 2002-2010, Haiku Inc. All rights reserved.
 * Distributed under the terms of the MIT License.
 *
 * Author:
 * 		Daniel Reinhold, danielre@users.sf.net
 * 		Tri-Edge AI, triedgeai@gmail.com
 */


#include <stdlib.h>


div_t
div(int numerator, int denominator)
{
	div_t val;

	val.quot = numerator / denominator;
	val.rem  = numerator % denominator;

	if (numerator >= 0 && val.rem < 0) {
		val.rem -= denominator;
		++val.quot;
	}

	return val;
}


ldiv_t
ldiv(long numerator, long denominator)
{
	ldiv_t val;

	val.quot = numerator / denominator;
	val.rem  = numerator % denominator;

	if (numerator >= 0 && val.rem < 0) {
		val.rem -= denominator;
		++val.quot;
	}

	return val;
}


lldiv_t
lldiv(long long numerator, long long denominator)
{
	lldiv_t val;

	val.quot = numerator / denominator;
	val.rem  = numerator % denominator;

	if (numerator >= 0 && val.rem < 0) {
		val.rem -= denominator;
		++val.quot;
	}

	return val;
}