aboutsummaryrefslogtreecommitdiffstats
path: root/include/gmisc/options.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/gmisc/options.h')
-rw-r--r--include/gmisc/options.h27
1 files changed, 26 insertions, 1 deletions
diff --git a/include/gmisc/options.h b/include/gmisc/options.h
index 73b41800..9c309487 100644
--- a/include/gmisc/options.h
+++ b/include/gmisc/options.h
@@ -44,9 +44,34 @@
/**
* @}
*
- * @name GMISC Optional Sizing Parameters
+ * @name GMISC Optional Parameters
* @{
*/
+ /**
+ * @brief Modifies the @p invsqrt() function to assume a different integer to floating point endianness.
+ * @note Normally the floating point format and the integer format have
+ * the same endianness. Unfortunately there are some strange
+ * processors that don't eg. some very early ARM devices.
+ * For those where the endianness doesn't match you can fix it by
+ * defining GDISP_INVSQRT_MIXED_ENDIAN.
+ * @note This still assumes the processor is using an ieee floating point format.
+ *
+ * If you have a software floating point that uses a non-standard
+ * floating point format (or very strange hardware) then define
+ * GDISP_INVSQRT_REAL_SLOW and it will do it the hard way.
+ */
+ #ifndef GDISP_INVSQRT_MIXED_ENDIAN
+ #define GDISP_INVSQRT_MIXED_ENDIAN FALSE
+ #endif
+ /**
+ * @brief Modifies the @p invsqrt() function to do things the long slow way.
+ * @note This causes the @p invsqrt() function to work regardless of the
+ * processor floating point format.
+ * @note This makes the @p invsqrt() function very slow.
+ */
+ #ifndef GDISP_INVSQRT_REAL_SLOW
+ #define GDISP_INVSQRT_REAL_SLOW FALSE
+ #endif
/** @} */
#endif /* _GMISC_OPTIONS_H */