#if !defined(DECSINGLE)
#define DECSINGLE
#define DECSINGLENAME "decSingle"
#define DECSINGLETITLE "Decimal 32-bit datum"
#define DECSINGLEAUTHOR "Mike Cowlishaw"
#define DECSINGLE_Bytes 4
#define DECSINGLE_Pmax 7
#define DECSINGLE_Emin -95
#define DECSINGLE_Emax 96
#define DECSINGLE_EmaxD 3
#define DECSINGLE_Bias 101
#define DECSINGLE_String 16
#define DECSINGLE_EconL 6
#define DECSINGLE_Declets 2
#define DECSINGLE_Ehigh (DECSINGLE_Emax + DECSINGLE_Bias - (DECSINGLE_Pmax-1))
#include "decContext.h"
#include "decQuad.h"
#include "decDouble.h"
typedef union {
uint8_t bytes[DECSINGLE_Bytes];
uint16_t shorts[DECSINGLE_Bytes/2];
uint32_t words[DECSINGLE_Bytes/4];
} decSingle;
extern decSingle * decSingleFromBCD(decSingle *, int32_t, const uint8_t *, int32_t);
extern decSingle * decSingleFromPacked(decSingle *, int32_t, const uint8_t *);
extern decSingle * decSingleFromPackedChecked(decSingle *, int32_t, const uint8_t *);
extern decSingle * decSingleFromString(decSingle *, const char *, decContext *);
extern decSingle * decSingleFromWider(decSingle *, const decDouble *, decContext *);
extern int32_t decSingleGetCoefficient(const decSingle *, uint8_t *);
extern int32_t decSingleGetExponent(const decSingle *);
extern decSingle * decSingleSetCoefficient(decSingle *, const uint8_t *, int32_t);
extern decSingle * decSingleSetExponent(decSingle *, decContext *, int32_t);
extern void decSingleShow(const decSingle *, const char *);
extern int32_t decSingleToBCD(const decSingle *, int32_t *, uint8_t *);
extern char * decSingleToEngString(const decSingle *, char *);
extern int32_t decSingleToPacked(const decSingle *, int32_t *, uint8_t *);
extern char * decSingleToString(const decSingle *, char *);
extern decDouble * decSingleToWider(const decSingle *, decDouble *);
extern decSingle * decSingleZero(decSingle *);
extern uint32_t decSingleRadix(const decSingle *);
extern const char * decSingleVersion(void);
#define decSingleToNumber(dq, dn) decimal32ToNumber((decimal32 *)(dq), dn)
#define decSingleFromNumber(dq, dn, set) decimal32FromNumber((decimal32 *)(dq), dn, set)
#endif