COMBINATORIAL_BLAS 1.6
 
Loading...
Searching...
No Matches
promote.h
Go to the documentation of this file.
1#ifndef _PROMOTE_H_
2#define _PROMOTE_H_
3
4template <class T1, class T2>
5struct promote_trait { };
6
7#define DECLARE_PROMOTE(A,B,C) \
8 template <> struct promote_trait<A,B> \
9 { \
10 typedef C T_promote; \
11 };
12
13DECLARE_PROMOTE(int, bool,int);
14DECLARE_PROMOTE(unsigned, bool, unsigned);
15DECLARE_PROMOTE(float, bool, float);
16DECLARE_PROMOTE(double, bool, double);
17DECLARE_PROMOTE(long long, bool, long long);
18DECLARE_PROMOTE(unsigned long long, bool, unsigned long long);
19DECLARE_PROMOTE(bool, int, int);
20DECLARE_PROMOTE(bool, unsigned, unsigned);
21DECLARE_PROMOTE(bool, float, float);
22DECLARE_PROMOTE(bool, double, double);
23DECLARE_PROMOTE(bool, long long, long long);
24DECLARE_PROMOTE(bool, unsigned long long, unsigned long long);
25DECLARE_PROMOTE(bool, bool, bool);
26DECLARE_PROMOTE(float, int, float);
27DECLARE_PROMOTE(double, int, double);
28DECLARE_PROMOTE(int, float, float);
29DECLARE_PROMOTE(int, double, double);
30DECLARE_PROMOTE(float, float, float);
31DECLARE_PROMOTE(double, double, double);
32DECLARE_PROMOTE(int, int, int);
33DECLARE_PROMOTE(unsigned, unsigned, unsigned);
34DECLARE_PROMOTE(long long, long long, long long);
35DECLARE_PROMOTE(unsigned long long, unsigned long long, unsigned long long);
36
37#endif
#define DECLARE_PROMOTE(A, B, C)
Definition promote.h:7