00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037 static char *source_file = __FILE__;
00038 #include "defs.h"
00039 #include "erglob.h"
00040 #include "config_host.h"
00041 #include "targ_const.h"
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053 INT __c_q_to_a(char*, QUAD_TYPE, INT*);
00054 double __c_dble_q(QUAD_TYPE, INT*);
00055 float __c_sngl_q(QUAD_TYPE, INT*);
00056 INT32 __c_ji_qint(QUAD_TYPE, INT*);
00057 UINT32 __c_ji_quint(QUAD_TYPE, INT*);
00058 INT64 __c_ki_qint(QUAD_TYPE, INT*);
00059 UINT64 __c_ki_quint(QUAD_TYPE, INT*);
00060 QUAD_TYPE __c_a_to_q(char*, INT*);
00061 QUAD_TYPE __c_q_extd(double, INT*);
00062 QUAD_TYPE __c_q_ext(float, INT *);
00063 QUAD_TYPE __c_q_flotj(INT32, INT*);
00064 QUAD_TYPE __c_q_flotju(UINT32, INT*);
00065 QUAD_TYPE __c_q_flotk(INT64, INT*);
00066 QUAD_TYPE __c_q_flotku(UINT64, INT*);
00067 QUAD_TYPE __c_q_add(QUAD_TYPE, QUAD_TYPE, INT*);
00068 QUAD_TYPE __c_q_sub(QUAD_TYPE, QUAD_TYPE, INT*);
00069 QUAD_TYPE __c_q_mul(QUAD_TYPE, QUAD_TYPE, INT*);
00070 QUAD_TYPE __c_q_div(QUAD_TYPE, QUAD_TYPE, INT*);
00071 QUAD_TYPE __c_q_sqrt(QUAD_TYPE, INT*);
00072 QUAD_TYPE __c_q_neg(QUAD_TYPE, INT*);
00073 INT __c_q_eq(QUAD_TYPE, QUAD_TYPE, INT*);
00074 INT __c_q_ne(QUAD_TYPE, QUAD_TYPE, INT*);
00075 INT __c_q_lt(QUAD_TYPE, QUAD_TYPE, INT*);
00076 INT __c_q_le(QUAD_TYPE, QUAD_TYPE, INT*);
00077 INT __c_q_gt(QUAD_TYPE, QUAD_TYPE, INT*);
00078 INT __c_q_ge(QUAD_TYPE, QUAD_TYPE, INT*);
00079
00080
00081 QUAD_TYPE My_Atoq(char *str)
00082 {
00083 INT err;
00084 char *sstr;
00085
00086 for ( sstr = str; *sstr; sstr++ ) {
00087 if (*sstr == 'q' || *sstr == 'Q') {
00088 *sstr='E';
00089 break;
00090 }
00091 }
00092 return (__c_a_to_q(str,&err));
00093 }
00094
00095 INT QUADOP_EQ(QUAD_TYPE a, QUAD_TYPE b)
00096 {
00097 INT err;
00098 return(__c_q_eq(a,b,&err));
00099 }
00100
00101 INT QUADOP_NE(QUAD_TYPE a, QUAD_TYPE b)
00102 {
00103 INT err;
00104 return(__c_q_ne(a,b,&err));
00105 }
00106
00107 INT QUADOP_GE(QUAD_TYPE a, QUAD_TYPE b)
00108 {
00109 INT err;
00110 return(__c_q_ge(a,b,&err));
00111 }
00112
00113 INT QUADOP_GT(QUAD_TYPE a, QUAD_TYPE b)
00114 {
00115 INT err;
00116 return(__c_q_gt(a,b,&err));
00117 }
00118
00119 INT QUADOP_LE(QUAD_TYPE a, QUAD_TYPE b)
00120 {
00121 INT err;
00122 return(__c_q_le(a,b,&err));
00123 }
00124
00125 INT QUADOP_LT(QUAD_TYPE a, QUAD_TYPE b)
00126 {
00127 INT err;
00128 return(__c_q_lt(a,b,&err));
00129 }
00130
00131 QUAD_TYPE QUADOP_ADD(QUAD_TYPE a,QUAD_TYPE b)
00132 {
00133 INT err;
00134 return(__c_q_add(a,b,&err));
00135 }
00136
00137 QUAD_TYPE QUADOP_SUB(QUAD_TYPE a,QUAD_TYPE b)
00138 {
00139 INT err;
00140 return(__c_q_sub(a,b,&err));
00141 }
00142
00143 QUAD_TYPE QUADOP_MPY(QUAD_TYPE a,QUAD_TYPE b)
00144 {
00145 INT err;
00146 return(__c_q_mul(a,b,&err));
00147 }
00148
00149 QUAD_TYPE QUADOP_DIV(QUAD_TYPE a,QUAD_TYPE b)
00150 {
00151 INT err;
00152 return(__c_q_div(a,b,&err));
00153 }
00154
00155 QUAD_TYPE QUADOP_NEGATE(QUAD_TYPE a)
00156 {
00157 INT err;
00158 return(__c_q_neg(a,&err));
00159 }
00160
00161 double QUADOP_QTOD (QUAD_TYPE a)
00162 {
00163 INT err;
00164 return(__c_dble_q(a,&err));
00165 }
00166
00167 float QUADOP_QTOS (QUAD_TYPE a)
00168 {
00169 INT err;
00170 return(__c_sngl_q(a,&err));
00171 }
00172
00173 INT QUADOP_QTOI (QUAD_TYPE a)
00174 {
00175 INT err;
00176 return(__c_ji_qint(a,&err));
00177 }
00178
00179 UINT QUADOP_QTOU (QUAD_TYPE a)
00180 {
00181 INT err;
00182 return(__c_ji_quint(a,&err));
00183 }
00184
00185 QUAD_TYPE QUADOP_UTOQ (UINT a)
00186 {
00187 INT err;
00188 return(__c_q_flotju(a,&err));
00189 }
00190
00191 QUAD_TYPE QUADOP_STOQ (float a)
00192 {
00193 INT err;
00194 return(__c_q_ext(a,&err));
00195 }
00196
00197 QUAD_TYPE QUADOP_DTOQ (double a)
00198 {
00199 INT err;
00200 return(__c_q_extd(a,&err));
00201 }
00202
00203 QUAD_TYPE QUADOP_ITOQ (INT a)
00204 {
00205 INT err;
00206 return(__c_q_flotj(a,&err));
00207 }
00208
00209 QUAD_TYPE QUADOP_SQRT(QUAD_TYPE a)
00210 {
00211 INT err;
00212 return(__c_q_sqrt(a,&err));
00213 }
00214