00001 00009 #ifndef NUMBERS_H 00010 #define NUMBERS_H 00011 00013 typedef enum{ 00015 INT_NUMBER, 00017 COMPLEX_NUMBER, 00019 MATRIX, 00021 ERROR} 00022 number_type; 00023 00025 typedef struct NB number; 00026 00028 typedef struct Matrix matrix; 00029 00031 typedef union{ 00033 int intval; 00035 double doublePair[2]; 00037 matrix * matval; 00038 } value_type; 00039 00040 00041 00043 struct NB{ 00045 number_type type; 00047 value_type val; 00049 number (*add)(); 00051 number (*mult)(); 00053 number (*getUnit)(); 00055 number (*getZero)(); 00057 void (*display)(); 00058 }; 00059 00065 number add(const number x,const number y); 00071 number mult(const number x,const number y); 00072 00077 number getUnit(const number x); 00078 00083 number getZero(const number y); 00084 00088 void display(const number); 00089 00095 number power(number x, int n); 00096 00097 00098 00101 extern number error; 00102 00107 number getIntNumber(const int i); 00113 number getComplexNumber(double x, double y); 00114 00115 00116 #endif
1.3.9.1