00001 /* 00002 # This file is Copyright 2009 Dean Hall. 00003 # 00004 # This file is part of the PyMite VM. 00005 # The PyMite VM is free software: you can redistribute it and/or modify 00006 # it under the terms of the GNU GENERAL PUBLIC LICENSE Version 2. 00007 # 00008 # The PyMite VM is distributed in the hope that it will be useful, 00009 # but WITHOUT ANY WARRANTY; without even the implied warranty of 00010 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 00011 # A copy of the GNU GENERAL PUBLIC LICENSE Version 2 00012 # is seen in the file COPYING in this directory. 00013 */ 00014 00015 00016 #ifndef __FLOAT_H__ 00017 #define __FLOAT_H__ 00018 00019 00033 typedef struct PmFloat_s 00034 { 00036 PmObjDesc_t od; 00037 00039 float val; 00040 } PmFloat_t, *pPmFloat_t; 00041 00042 00043 #ifdef HAVE_FLOAT 00044 00052 PmReturn_t float_new(float f, pPmObj_t *r_pf); 00053 00063 PmReturn_t float_negative(pPmObj_t pf, pPmObj_t *r_pf); 00064 00074 PmReturn_t float_op(pPmObj_t px, pPmObj_t py, pPmObj_t *r_pn, int8_t op); 00075 00085 PmReturn_t float_compare(pPmObj_t px, pPmObj_t py, pPmObj_t *r_pobj, 00086 PmCompare_t cmp); 00087 00088 #ifdef HAVE_PRINT 00089 00096 PmReturn_t float_print(pPmObj_t pf); 00097 00098 #endif /* HAVE_PRINT */ 00099 00100 #endif /* HAVE_FLOAT */ 00101 00102 #endif /* __FLOAT_H__ */