Main Page   Modules   Alphabetical List   Data Structures   File List   Data Fields   Globals  

number.c

Go to the documentation of this file.
00001 
00090 inline int plint_num_n2i(plint_num_t n)
00091 {
00092   return (n.typ == PLINT_num_dbl) ? (int)n.val.num_dbl : n.val.num_int;
00093 }
00094 
00100 inline double plint_num_n2d(plint_num_t n)
00101 {
00102   return (n.typ == PLINT_num_dbl) ? n.val.num_dbl : (double)n.val.num_int;
00103 }
00104 
00110 inline plint_num_t plint_num_INT(int i)
00111 {
00112   plint_num_t ret;
00113   ret.typ = PLINT_num_int;
00114   ret.val.num_int = i;
00115   return ret;
00116 }
00117 
00123 inline plint_num_t plint_num_DBL(double d)
00124 {
00125   plint_num_t ret;
00126   ret.typ = PLINT_num_dbl;
00127   ret.val.num_dbl = d;
00128   return ret;
00129 }
00130 
00136 plint_val_t plint_num_val(plint_num_t num)
00137 {
00138   plint_val_t ret;
00139   switch (num.typ)
00140     {
00141     case PLINT_num OR PLINT_num_int:
00142       ret.num_int = num.val.num_int;
00143       break;
00144 
00145     case PLINT_num_dbl:
00146       ret.num_dbl = num.val.num_dbl;
00147       break;
00148 
00149     default:
00150     }
00151   return ret;
00152 }
00153 
00162 inline plint_num_t plint_ptr_num(plint_ptr_t p)
00163 {
00164   return plint_val_num(&p->val, p->typ);
00165 }
00166 
00167 inline plint_ptr_t plint_num_ptr(plint_num_t n)
00168 {
00169   plint_ptr_t p = plint_ptr_new(n.typ);
00170   return plint_num_set(p, n);
00171 }
00172 
00173 inline plint_ptr_t plint_num_set(plint_ptr_t p, plint_num_t n)
00174 {
00175   p->typ = n.typ;
00176   p->val = plint_num_val(n);
00177   return p;
00178 }
00179 

Generated on Thu Jan 9 19:02:38 2003 for plint by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002