home *** CD-ROM | disk | FTP | other *** search
/ Freelog 33 / Freelog033.iso / Progr / Python-2.2.1.exe / FLOATOBJECT.H < prev    next >
Encoding:
C/C++ Source or Header  |  2001-09-10  |  1.8 KB  |  54 lines

  1.  
  2. /* Float object interface */
  3.  
  4. /*
  5. PyFloatObject represents a (double precision) floating point number.
  6. */
  7.  
  8. #ifndef Py_FLOATOBJECT_H
  9. #define Py_FLOATOBJECT_H
  10. #ifdef __cplusplus
  11. extern "C" {
  12. #endif
  13.  
  14. typedef struct {
  15.     PyObject_HEAD
  16.     double ob_fval;
  17. } PyFloatObject;
  18.  
  19. extern DL_IMPORT(PyTypeObject) PyFloat_Type;
  20.  
  21. #define PyFloat_Check(op) PyObject_TypeCheck(op, &PyFloat_Type)
  22. #define PyFloat_CheckExact(op) ((op)->ob_type == &PyFloat_Type)
  23.  
  24. /* Return Python float from string PyObject.  Second argument ignored on
  25.    input, and, if non-NULL, NULL is stored into *junk (this tried to serve a
  26.    purpose once but can't be made to work as intended). */
  27. extern DL_IMPORT(PyObject *) PyFloat_FromString(PyObject*, char** junk);
  28.  
  29. /* Return Python float from C double. */
  30. extern DL_IMPORT(PyObject *) PyFloat_FromDouble(double);
  31.  
  32. /* Extract C double from Python float.  The macro version trades safety for
  33.    speed. */
  34. extern DL_IMPORT(double) PyFloat_AsDouble(PyObject *);
  35. #define PyFloat_AS_DOUBLE(op) (((PyFloatObject *)(op))->ob_fval)
  36.  
  37. /* Write repr(v) into the char buffer argument, followed by null byte.  The
  38.    buffer must be "big enough"; >= 100 is very safe.
  39.    PyFloat_AsReprString(buf, x) strives to print enough digits so that
  40.    PyFloat_FromString(buf) then reproduces x exactly. */
  41. extern DL_IMPORT(void) PyFloat_AsReprString(char*, PyFloatObject *v);
  42.  
  43. /* Write str(v) into the char buffer argument, followed by null byte.  The
  44.    buffer must be "big enough"; >= 100 is very safe.  Note that it's
  45.    unusual to be able to get back the float you started with from
  46.    PyFloat_AsString's result -- use PyFloat_AsReprString() if you want to
  47.    preserve precision across conversions. */
  48. extern DL_IMPORT(void) PyFloat_AsString(char*, PyFloatObject *v);
  49.  
  50. #ifdef __cplusplus
  51. }
  52. #endif
  53. #endif /* !Py_FLOATOBJECT_H */
  54.