summaryrefslogtreecommitdiff
path: root/libc/dfp/test/test_fdim.c
blob: b440dd3309c22201f60ce1b3b8fd296213588513 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#include <stdio.h>
#include <stdint.h>
#ifndef __STDC_WANT_DEC_FP__
# define __STDC_WANT_DEC_FP__ 1
#endif
#include <math.h>

#ifndef FUNCTION
#define FUNCTION fdim
#endif

#define FUNCTION_CALL(type)	PASTE(FUNCTION,type)
#define PASTE(x,y)	PASTE1(x,y)
#define PASTE1(x,y)	x##y

int main() {
	_Decimal32 ad32;
	_Decimal32 bd32;
	_Decimal32 cd32;

	_Decimal64 ad64;
	_Decimal64 bd64;
	_Decimal64 cd64;

	_Decimal128 ad128;
	_Decimal128 bd128;
	_Decimal128 cd128;

	ad32  = 10.0DF;
	bd32  = 9.0DF;
	cd32 = FUNCTION_CALL(d32)(ad32,bd32);
	printf("%Hf = fdimd32(%Hf,%Hf)\n", cd32, ad32, bd32);

	ad32  = 10.0DF;
	bd32  = 12.0DF;
	cd32 = FUNCTION_CALL(d32)(ad32,bd32);
	printf("%Hf = fdimd32(%Hf,%Hf)\n", cd32, ad32, bd32);

	ad32  = -10.0DF;
	bd32  = -12.0DF;
	cd32 = FUNCTION_CALL(d32)(ad32,bd32);
	printf("%Hf = fdimd32(%Hf,%Hf)\n", cd32, ad32, bd32);

	ad32  = -10.0DF;
	bd32  = -8.0DF;
	cd32 = FUNCTION_CALL(d32)(ad32,bd32);
	printf("%Hf = fdimd32(%Hf,%Hf)\n", cd32, ad32, bd32);

	ad32  = -0.012DF;
	bd32  = 0.010DF;
	cd32 = FUNCTION_CALL(d32)(ad32,bd32);
	printf("%Hf = fdimd32(%Hf,%Hf)\n", cd32, ad32, bd32);

	ad64  = 10.0DD;
	bd64  = 9.0DD;
	cd64 = FUNCTION_CALL(d64)(ad64,bd64);
	printf("%Df = fdimd64(%Df,%Df)\n", cd64, ad64, bd64);

	ad64  = 10.0DD;
	bd64 =  12.0DD;
	cd64 = FUNCTION_CALL(d64)(ad64,bd64);
	printf("%Df = fdimd64(%Df,%Df)\n", cd64, ad64, bd64);

	ad128 = 10.0DL;
	bd128 = 9.0DL;
	cd128 = FUNCTION_CALL(d128)(ad128,bd128);
	printf("%DDf = fdimd128(%DDf,%DDf)\n", cd128, ad128, bd128);

	ad128 = 10.0DL;
	bd128 = 12.0DL;
	cd128 = FUNCTION_CALL(d128)(ad128,bd128);
	printf("%DDf = fdimd128(%DDf,%DDf)\n", cd128, ad128, bd128);
}