cudd  3.0.0
The University of Colorado Decision Diagram Package
epd.h
Go to the documentation of this file.
1 
50 #ifndef EPD_H_
51 #define EPD_H_
52 
53 #ifdef __cplusplus
54 extern "C" {
55 #endif
56 
57 /*---------------------------------------------------------------------------*/
58 /* Type declarations */
59 /*---------------------------------------------------------------------------*/
60 
64 typedef struct EpDoubleStruct EpDouble;
65 
66 /*---------------------------------------------------------------------------*/
67 /* Function prototypes */
68 /*---------------------------------------------------------------------------*/
69 
70 extern EpDouble *EpdAlloc(void);
71 extern int EpdCmp(const void *key1, const void *key2);
72 extern void EpdFree(EpDouble *epd);
73 extern void EpdGetString(EpDouble const *epd, char *str);
74 extern void EpdConvert(double value, EpDouble *epd);
75 extern void EpdMultiply(EpDouble *epd1, double value);
76 extern void EpdMultiply2(EpDouble *epd1, EpDouble const *epd2);
77 extern void EpdMultiply2Decimal(EpDouble *epd1, EpDouble const *epd2);
78 extern void EpdMultiply3(EpDouble const *epd1, EpDouble const *epd2, EpDouble *epd3);
79 extern void EpdMultiply3Decimal(EpDouble const *epd1, EpDouble const *epd2, EpDouble *epd3);
80 extern void EpdDivide(EpDouble *epd1, double value);
81 extern void EpdDivide2(EpDouble *epd1, EpDouble const *epd2);
82 extern void EpdDivide3(EpDouble const *epd1, EpDouble const *epd2, EpDouble *epd3);
83 extern void EpdAdd(EpDouble *epd1, double value);
84 extern void EpdAdd2(EpDouble *epd1, EpDouble const *epd2);
85 extern void EpdAdd3(EpDouble const *epd1, EpDouble const *epd2, EpDouble *epd3);
86 extern void EpdSubtract(EpDouble *epd1, double value);
87 extern void EpdSubtract2(EpDouble *epd1, EpDouble const *epd2);
88 extern void EpdSubtract3(EpDouble const *epd1, EpDouble const *epd2, EpDouble *epd3);
89 extern void EpdPow2(int n, EpDouble *epd);
90 extern void EpdPow2Decimal(int n, EpDouble *epd);
91 extern void EpdNormalize(EpDouble *epd);
92 extern void EpdNormalizeDecimal(EpDouble *epd);
93 extern void EpdGetValueAndDecimalExponent(EpDouble const *epd, double *value, int *exponent);
94 extern int EpdGetExponent(double value);
95 extern int EpdGetExponentDecimal(double value);
96 extern void EpdMakeInf(EpDouble *epd, int sign);
97 extern void EpdMakeZero(EpDouble *epd, int sign);
98 extern void EpdMakeNan(EpDouble *epd);
99 extern void EpdCopy(EpDouble const *from, EpDouble *to);
100 extern int EpdIsInf(EpDouble const *epd);
101 extern int EpdIsZero(EpDouble const *epd);
102 extern int EpdIsNan(EpDouble const *epd);
103 extern int EpdIsNanOrInf(EpDouble const *epd);
104 extern int IsInfDouble(double value);
105 extern int IsNanDouble(double value);
106 extern int IsNanOrInfDouble(double value);
107 
108 #ifdef __cplusplus
109 }
110 #endif
111 
112 #endif /* EPD_H_ */
int IsNanOrInfDouble(double value)
Checks whether the value is NaN or Inf.
Definition: epd.c:1041
void EpdMultiply(EpDouble *epd1, double value)
Multiplies an extended precision double by a double.
Definition: epd.c:154
void EpdGetString(EpDouble const *epd, char *str)
Converts an extended precision double value to a string.
Definition: epd.c:98
void EpdDivide(EpDouble *epd1, double value)
Divides an extended precision double by a double.
Definition: epd.c:297
void EpdFree(EpDouble *epd)
Frees an EpDouble struct.
Definition: epd.c:86
void EpdSubtract2(EpDouble *epd1, EpDouble const *epd2)
Subtracts an extended precision double from another.
Definition: epd.c:645
void EpdDivide3(EpDouble const *epd1, EpDouble const *epd2, EpDouble *epd3)
Divides two extended precision double values.
Definition: epd.c:385
int IsNanDouble(double value)
Checks whether the value is NaN.
Definition: epd.c:1021
void EpdMakeInf(EpDouble *epd, int sign)
Makes EpDouble Inf.
Definition: epd.c:903
int EpdIsNan(EpDouble const *epd)
Checks whether the value is NaN.
Definition: epd.c:980
void EpdMultiply3Decimal(EpDouble const *epd1, EpDouble const *epd2, EpDouble *epd3)
Multiplies two extended precision double values.
Definition: epd.c:274
void EpdMakeNan(EpDouble *epd)
Makes EpDouble NaN.
Definition: epd.c:931
int EpdGetExponent(double value)
Returns the exponent value of a double.
Definition: epd.c:872
void EpdAdd2(EpDouble *epd1, EpDouble const *epd2)
Adds an extended precision double to another.
Definition: epd.c:479
int EpdCmp(const void *key1, const void *key2)
Compares two EpDouble struct.
Definition: epd.c:70
void EpdSubtract(EpDouble *epd1, double value)
Subtracts a double from an extended precision double.
Definition: epd.c:591
void EpdMultiply3(EpDouble const *epd1, EpDouble const *epd2, EpDouble *epd3)
Multiplies two extended precision double values.
Definition: epd.c:248
void EpdConvert(double value, EpDouble *epd)
Converts double to EpDouble struct.
Definition: epd.c:142
void EpdGetValueAndDecimalExponent(EpDouble const *epd, double *value, int *exponent)
Returns value and decimal exponent of EpDouble.
Definition: epd.c:843
int IsInfDouble(double value)
Checks whether the value is Inf.
Definition: epd.c:1000
void EpdNormalizeDecimal(EpDouble *epd)
Normalize an extended precision double value.
Definition: epd.c:824
void EpdAdd3(EpDouble const *epd1, EpDouble const *epd2, EpDouble *epd3)
Adds two extended precision double values.
Definition: epd.c:533
void EpdMultiply2Decimal(EpDouble *epd1, EpDouble const *epd2)
Multiplies two extended precision double values.
Definition: epd.c:218
Extended precision double to keep very large value.
Definition: epdInt.h:129
int EpdIsNanOrInf(EpDouble const *epd)
Checks whether the value is NaN or Inf.
Definition: epd.c:990
int EpdIsZero(EpDouble const *epd)
Checks whether the value is Zero.
Definition: epd.c:967
void EpdPow2(int n, EpDouble *epd)
Computes extended precision pow of base 2.
Definition: epd.c:758
void EpdPow2Decimal(int n, EpDouble *epd)
Computes extended precision pow of base 2.
Definition: epd.c:779
void EpdNormalize(EpDouble *epd)
Normalize an extended precision double value.
Definition: epd.c:802
void EpdDivide2(EpDouble *epd1, EpDouble const *epd2)
Divides an extended precision double by another.
Definition: epd.c:342
void EpdMakeZero(EpDouble *epd, int sign)
Makes EpDouble Zero.
Definition: epd.c:917
void EpdMultiply2(EpDouble *epd1, EpDouble const *epd2)
Multiplies an extended precision double by another.
Definition: epd.c:187
int EpdIsInf(EpDouble const *epd)
Checks whether the value is Inf.
Definition: epd.c:957
EpDouble * EpdAlloc(void)
Allocates an EpDouble struct.
Definition: epd.c:55
void EpdCopy(EpDouble const *from, EpDouble *to)
Copies an EpDouble struct.
Definition: epd.c:946
int EpdGetExponentDecimal(double value)
Returns the decimal exponent value of a double.
Definition: epd.c:887
void EpdSubtract3(EpDouble const *epd1, EpDouble const *epd2, EpDouble *epd3)
Subtracts two extended precision double values.
Definition: epd.c:699
void EpdAdd(EpDouble *epd1, double value)
Adds a double to an extended precision double.
Definition: epd.c:423