diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/NLMSCC~.c | 4 | ||||
-rw-r--r-- | src/NLMS~.c | 2 | ||||
-rw-r--r-- | src/iemlib.h | 69 | ||||
-rw-r--r-- | src/n_CLNLMS~.c | 5 | ||||
-rw-r--r-- | src/n_CNLMS~.c | 5 |
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; |