]> pd.if.org Git - pdclib/blob - functions/stdlib/lldiv.c
423d119ffb2feb859f022d32c39f7b5a08382c96
[pdclib] / functions / stdlib / lldiv.c
1 /* $Id$ */
2
3 /* lldiv( long long int, long long int )
4
5    This file is part of the Public Domain C Library (PDCLib).
6    Permission is granted to use, modify, and / or redistribute at will.
7 */
8
9 #include <stdlib.h>
10
11 #ifndef REGTEST
12
13 lldiv_t lldiv( long long int numer, long long int denom )
14 {
15     lldiv_t rc;
16     rc.quot = numer / denom;
17     rc.rem  = numer % denom;
18     /* TODO: pre-C99 compilers might require modulus corrections */
19     return rc;
20 }
21
22 #endif
23
24 #ifdef TEST
25 #include <_PDCLIB_test.h>
26
27 int main( void )
28 {
29     lldiv_t result;
30     result = lldiv( 5ll, 2ll );
31     TESTCASE( result.quot == 2 && result.rem == 1 );
32     result = lldiv( -5ll, 2ll );
33     TESTCASE( result.quot == -2 && result.rem == -1 );
34     result = lldiv( 5ll, -2ll );
35     TESTCASE( result.quot == -2 && result.rem == 1 );
36     TESTCASE( sizeof( result.quot ) == sizeof( long long ) );
37     TESTCASE( sizeof( result.rem )  == sizeof( long long ) );
38     return TEST_RESULTS;
39 }
40
41 #endif