Development of an internal social media platform with personalised dashboards for students
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

floatvaluemacros.h 899B

12345678910111213141516171819202122232425
  1. #define VALUEMACROS_H "$Id$\n"
  2. #define VALUE_TYPE float
  3. #undef VALUE_TYPE_IS_PYOBJECT
  4. #define TEST_VALUE(K, T) (((K) < (T)) ? -1 : (((K) > (T)) ? 1: 0))
  5. #define VALUE_SAME(VALUE, TARGET) ( (VALUE) == (TARGET) )
  6. #define DECLARE_VALUE(NAME) VALUE_TYPE NAME
  7. #define VALUE_PARSE "f"
  8. #define DECREF_VALUE(k)
  9. #define INCREF_VALUE(k)
  10. #define COPY_VALUE(V, E) (V=(E))
  11. #define COPY_VALUE_TO_OBJECT(O, K) O=PyFloat_FromDouble(K)
  12. #define COPY_VALUE_FROM_ARG(TARGET, ARG, STATUS) \
  13. if (PyFloat_Check(ARG)) TARGET = (float)PyFloat_AsDouble(ARG); \
  14. else if (INT_CHECK(ARG)) TARGET = (float)INT_AS_LONG(ARG); \
  15. else { \
  16. PyErr_SetString(PyExc_TypeError, "expected float or int value"); \
  17. (STATUS)=0; (TARGET)=0; }
  18. #define NORMALIZE_VALUE(V, MIN) ((MIN) > 0) ? ((V)/=(MIN)) : 0
  19. #define MERGE_DEFAULT 1.0f
  20. #define MERGE(O1, w1, O2, w2) ((O1)*(w1)+(O2)*(w2))
  21. #define MERGE_WEIGHT(O, w) ((O)*(w))