git.ucc.asn.au
/
ipdf
/
code.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Real that uses Fast2Sum for addition
[ipdf/code.git]
/
src
/
real.h
diff --git
a/src/real.h
b/src/real.h
index
0068472
..
4a81227
100644
(file)
--- a/
src/real.h
+++ b/
src/real.h
@@
-6,11
+6,16
@@
#define REAL_SINGLE 0
#define REAL_DOUBLE 1
#define REAL_LONG_DOUBLE 2
#define REAL_SINGLE 0
#define REAL_DOUBLE 1
#define REAL_LONG_DOUBLE 2
+#define REAL_SINGLE_FAST2SUM 3
#ifndef REAL
#error "REAL was not defined!"
#endif
#ifndef REAL
#error "REAL was not defined!"
#endif
+#if REAL >= REAL_SINGLE_FAST2SUM
+ #include "real_fast2sum.h"
+#endif //REAL
+
namespace IPDF
{
extern const char * g_real_name[];
namespace IPDF
{
extern const char * g_real_name[];
@@
-24,6
+29,10
@@
namespace IPDF
#elif REAL == REAL_LONG_DOUBLE
typedef long double Real;
inline long double Float(Real r) {return r;}
#elif REAL == REAL_LONG_DOUBLE
typedef long double Real;
inline long double Float(Real r) {return r;}
+#elif REAL == REAL_SINGLE_FAST2SUM
+ typedef RealF2S<float> Real;
+ inline float Float(Real r) {return r.m_value;}
+
#else
#error "Type of Real unspecified."
#endif //REAL
#else
#error "Type of Real unspecified."
#endif //REAL
UCC
git Repository :: git.ucc.asn.au