summaryrefslogtreecommitdiff
path: root/muse2/plugins/freeverb/denormals.h
diff options
context:
space:
mode:
Diffstat (limited to 'muse2/plugins/freeverb/denormals.h')
-rw-r--r--muse2/plugins/freeverb/denormals.h28
1 files changed, 28 insertions, 0 deletions
diff --git a/muse2/plugins/freeverb/denormals.h b/muse2/plugins/freeverb/denormals.h
new file mode 100644
index 00000000..d18412b4
--- /dev/null
+++ b/muse2/plugins/freeverb/denormals.h
@@ -0,0 +1,28 @@
+// Macro for killing denormalled numbers
+//
+// Written by Jezar at Dreampoint, June 2000
+// http://www.dreampoint.co.uk
+// Based on IS_DENORMAL macro by Jon Watte
+// This code is public domain
+
+#ifndef _denormals_
+#define _denormals_
+
+// this does not work with at least gcc3.3 and -O2:
+// #define undenormalise(sample) if(((*(unsigned int*)&sample)&0x7f800000)==0) sample=0.0f
+//
+// from Laurent de Soras Paper: Denormal numbers in floating point
+// signal processing applications
+// (ws)
+
+#define undenormalise(sample) \
+ { \
+ float anti_denormal = 1e-18; \
+ sample += anti_denormal; \
+ sample -= anti_denormal; \
+ }
+
+#endif//_denormals_
+
+//ends
+