aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/NLMSCC~.c4
-rw-r--r--src/NLMS~.c2
-rw-r--r--src/iemlib.h69
-rw-r--r--src/n_CLNLMS~.c5
-rw-r--r--src/n_CNLMS~.c5
5 files changed, 38 insertions, 47 deletions
diff --git a/src/NLMSCC~.c b/src/NLMSCC~.c
index 1dc4610..445f82a 100644
--- a/src/NLMSCC~.c
+++ b/src/NLMSCC~.c
@@ -21,7 +21,7 @@ noisternig_AT_iem.at; musil_AT_iem.at
/* ----------------------- NLMSCC~ ------------------------------ */
/* -- Normalized Least Mean Square (linear adaptive FIR-filter) -- */
-/* -- with Coefficient Constraint
+/* -- with Coefficient Constraint -- */
/* -- first input: reference signal -- */
/* -- second input: desired signal -- */
/* -- -- */
@@ -61,7 +61,7 @@ static void NLMSCC_tilde_tick(t_NLMSCC_tilde *x)
static t_float *NLMSCC_tilde_check_array(t_symbol *array_sym_name, t_int length)
{
- t_int n_points;
+ int n_points;
t_garray *a;
t_float *vec;
diff --git a/src/NLMS~.c b/src/NLMS~.c
index b065afa..ade883e 100644
--- a/src/NLMS~.c
+++ b/src/NLMS~.c
@@ -49,7 +49,7 @@ t_class *NLMS_tilde_class;
static t_float *NLMS_tilde_check_array(t_symbol *array_sym_name, t_int length)
{
- t_int n_points;
+ int n_points;
t_garray *a;
t_float *vec;
diff --git a/src/iemlib.h b/src/iemlib.h
index ba62f68..973bfeb 100644
--- a/src/iemlib.h
+++ b/src/iemlib.h
@@ -1,7 +1,7 @@
/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
-iemlib written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2006 */
+iemlib written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2007 */
#ifndef __IEMLIB_H__
#define __IEMLIB_H__
@@ -15,8 +15,13 @@ iemlib written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2006 *
#define IS_A_SEMI(atom,index) ((atom+index)->a_type == A_SEMI)
#define IS_A_COMMA(atom,index) ((atom+index)->a_type == A_COMMA)
+/* now miller's code starts :
+ for 4 point interpolation
+ for lookup tables
+ for denormal floats
+ */
-#ifdef NT
+#ifdef MSW
int sys_noloadbang;
//t_symbol *iemgui_key_sym=0;
#include <io.h>
@@ -30,76 +35,60 @@ extern int sys_noloadbang;
#define XTRASAMPS 4
#define SAMPBLK 4
-
#define UNITBIT32 1572864. /* 3*2^19; bit 32 has place value 1 */
-/* machine-dependent definitions. These ifdefs really
-should have been by CPU type and not by operating system! */
+ /* machine-dependent definitions. These ifdefs really
+ should have been by CPU type and not by operating system! */
#ifdef IRIX
-/* big-endian. Most significant byte is at low address in memory */
+ /* big-endian. Most significant byte is at low address in memory */
#define HIOFFSET 0 /* word offset to find MSB */
#define LOWOFFSET 1 /* word offset to find LSB */
#define int32 long /* a data type that has 32 bits */
-#else
+#endif /* IRIX */
+
#ifdef MSW
-/* little-endian; most significant byte is at highest address */
+ /* little-endian; most significant byte is at highest address */
#define HIOFFSET 1
#define LOWOFFSET 0
#define int32 long
-#else
-#ifdef __FreeBSD__
+#endif /* MSW */
+
+#if defined(__FreeBSD__) || defined(__APPLE__)
#include <machine/endian.h>
-#if BYTE_ORDER == LITTLE_ENDIAN
-#define HIOFFSET 1
-#define LOWOFFSET 0
-#else
-#define HIOFFSET 0 /* word offset to find MSB */
-#define LOWOFFSET 1 /* word offset to find LSB */
-#endif /* BYTE_ORDER */
-#include <sys/types.h>
-#define int32 int32_t
#endif
-#ifdef __linux__
+#ifdef __linux__
#include <endian.h>
+#endif
-#if !defined(__BYTE_ORDER) || !defined(__LITTLE_ENDIAN)
+#if defined(__unix__) || defined(__APPLE__)
+#if !defined(BYTE_ORDER) || !defined(LITTLE_ENDIAN)
#error No byte order defined
#endif
-#if __BYTE_ORDER == __LITTLE_ENDIAN
+#if BYTE_ORDER == LITTLE_ENDIAN
#define HIOFFSET 1
#define LOWOFFSET 0
#else
#define HIOFFSET 0 /* word offset to find MSB */
#define LOWOFFSET 1 /* word offset to find LSB */
#endif /* __BYTE_ORDER */
-
#include <sys/types.h>
#define int32 int32_t
+#endif /* __unix__ or __APPLE__*/
-#else
-#ifdef __APPLE__
-#ifdef __BIG_ENDIAN__
-#define HIOFFSET 0 /* word offset to find MSB */
-#define LOWOFFSET 1 /* word offset to find LSB */
-#else
-#define HIOFFSET 1 /* word offset to find MSB */
-#define LOWOFFSET 0 /* word offset to find LSB */
-#endif
-#define int32 int /* a data type that has 32 bits */
-
-#endif /* __APPLE__ */
-#endif /* __linux__ */
-#endif /* MSW */
-#endif /* SGI */
-
-union tabfudge
+union tabfudge_d
{
double tf_d;
int32 tf_i[2];
};
+union tabfudge_f
+{
+ float tf_f;
+ long tf_l;
+};
+
#if defined __i386__ || defined __x86_64__
#define IEM_DENORMAL(f) ((((*(unsigned int*)&(f))&0x60000000)==0) || \
(((*(unsigned int*)&(f))&0x60000000)==0x60000000))
diff --git a/src/n_CLNLMS~.c b/src/n_CLNLMS~.c
index 05ef1c1..be330b6 100644
--- a/src/n_CLNLMS~.c
+++ b/src/n_CLNLMS~.c
@@ -68,7 +68,7 @@ static void n_CLNLMS_tilde_tick(t_n_CLNLMS_tilde *x)
static t_float *n_CLNLMS_tilde_check_array(t_symbol *array_sym_name, t_int length)
{
- t_int n_points;
+ int n_points;
t_garray *a;
t_float *vec;
@@ -399,7 +399,8 @@ static void *n_CLNLMS_tilde_new(t_symbol *s, t_int argc, t_atom *argv)
{
t_n_CLNLMS_tilde *x = (t_n_CLNLMS_tilde *)pd_new(n_CLNLMS_tilde_class);
char buffer[400];
- t_int i, n_order=39, n_io=1;
+ int i;
+ t_int n_order=39, n_io=1;
t_symbol *w_name;
t_float beta=0.1f;
t_float gamma=0.00001f;
diff --git a/src/n_CNLMS~.c b/src/n_CNLMS~.c
index b3b1389..a80c313 100644
--- a/src/n_CNLMS~.c
+++ b/src/n_CNLMS~.c
@@ -67,7 +67,7 @@ static void n_CNLMS_tilde_tick(t_n_CNLMS_tilde *x)
static t_float *n_CNLMS_tilde_check_array(t_symbol *array_sym_name, t_int length)
{
- t_int n_points;
+ int n_points;
t_garray *a;
t_float *vec;
@@ -388,7 +388,8 @@ static void *n_CNLMS_tilde_new(t_symbol *s, t_int argc, t_atom *argv)
{
t_n_CNLMS_tilde *x = (t_n_CNLMS_tilde *)pd_new(n_CNLMS_tilde_class);
char buffer[400];
- t_int i, n_order=39, n_io=1;
+ int i;
+ t_int n_order=39, n_io=1;
t_symbol *w_name;
t_float beta=0.1f;
t_float gamma=0.00001f;