#if !defined(DECIMAL64)
#define DECIMAL64
#define DEC64NAME "decimal64"
#define DEC64FULLNAME "Decimal 64-bit Number"
#define DEC64AUTHOR "Mike Cowlishaw"
#define DECIMAL64_Bytes 8
#define DECIMAL64_Pmax 16
#define DECIMAL64_Emax 384
#define DECIMAL64_Emin -383
#define DECIMAL64_Bias 398
#define DECIMAL64_String 24
#define DECIMAL64_EconL 8
#define DECIMAL64_Ehigh (DECIMAL64_Emax+DECIMAL64_Bias-DECIMAL64_Pmax+1)
#if defined(DECNUMDIGITS)
#if (DECNUMDIGITS<DECIMAL64_Pmax)
#error decimal64.h needs pre-defined DECNUMDIGITS>=16 for safe use
#endif
#endif
#ifndef DECNUMDIGITS
#define DECNUMDIGITS DECIMAL64_Pmax
#endif
#ifndef DECNUMBER
#include "decNumber.h"
#endif
typedef union {
uint8_t bytes[DECIMAL64_Bytes];
uint16_t shorts[DECIMAL64_Bytes/2];
uint32_t words[DECIMAL64_Bytes/4];
#if DECUSE64
uint64_t longs[DECIMAL64_Bytes/8];
#endif
} decimal64;
#if !defined(DECIMAL_NaN)
#define DECIMAL_NaN 0x7c
#define DECIMAL_sNaN 0x7e
#define DECIMAL_Inf 0x78
#endif
decimal64 * decimal64FromString(decimal64 *, const char *, decContext *);
char * decimal64ToString(const decimal64 *, char *);
char * decimal64ToEngString(const decimal64 *, char *);
decimal64 * decimal64FromNumber(decimal64 *, const decNumber *,
decContext *);
decNumber * decimal64ToNumber(const decimal64 *, decNumber *);
uint32_t decimal64IsCanonical(const decimal64 *);
decimal64 * decimal64Canonical(decimal64 *, const decimal64 *);
#endif