00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #if !defined(_SPANDSP_COMPLEX_VECTOR_INT_H_)
00027 #define _SPANDSP_COMPLEX_VECTOR_INT_H_
00028
00029 #if defined(__cplusplus)
00030 extern "C"
00031 {
00032 #endif
00033
00034 static __inline__ void cvec_copyi(complexi_t z[], const complexi_t x[], int n)
00035 {
00036 memcpy(z, x, n*sizeof(z[0]));
00037 }
00038
00039
00040 static __inline__ void cvec_copyi16(complexi16_t z[], const complexi16_t x[], int n)
00041 {
00042 memcpy(z, x, n*sizeof(z[0]));
00043 }
00044
00045
00046 static __inline__ void cvec_copyi32(complexi32_t z[], const complexi32_t x[], int n)
00047 {
00048 memcpy(z, x, n*sizeof(z[0]));
00049 }
00050
00051
00052 static __inline__ void cvec_zeroi(complexi_t z[], int n)
00053 {
00054 memset(z, 0, n*sizeof(z[0]));
00055 }
00056
00057
00058 static __inline__ void cvec_zeroi16(complexi16_t z[], int n)
00059 {
00060 memset(z, 0, n*sizeof(z[0]));
00061 }
00062
00063
00064 static __inline__ void cvec_zeroi32(complexi32_t z[], int n)
00065 {
00066 memset(z, 0, n*sizeof(z[0]));
00067 }
00068
00069
00070 static __inline__ void cvec_seti(complexi_t z[], complexi_t *x, int n)
00071 {
00072 int i;
00073
00074 for (i = 0; i < n; i++)
00075 z[i] = *x;
00076 }
00077
00078
00079 static __inline__ void cvec_seti16(complexi16_t z[], complexi16_t *x, int n)
00080 {
00081 int i;
00082
00083 for (i = 0; i < n; i++)
00084 z[i] = *x;
00085 }
00086
00087
00088 static __inline__ void cvec_seti32(complexi32_t z[], complexi32_t *x, int n)
00089 {
00090 int i;
00091
00092 for (i = 0; i < n; i++)
00093 z[i] = *x;
00094 }
00095
00096
00097
00098
00099
00100
00101
00102 SPAN_DECLARE(complexi32_t) cvec_dot_prodi16(const complexi16_t x[], const complexi16_t y[], int n);
00103
00104
00105
00106
00107
00108
00109 SPAN_DECLARE(complexi32_t) cvec_dot_prodi32(const complexi32_t x[], const complexi32_t y[], int n);
00110
00111
00112
00113
00114
00115
00116
00117
00118 SPAN_DECLARE(complexi32_t) cvec_circular_dot_prodi16(const complexi16_t x[], const complexi16_t y[], int n, int pos);
00119
00120 SPAN_DECLARE(void) cvec_lmsi16(const complexi16_t x[], complexi16_t y[], int n, const complexi16_t *error);
00121
00122 SPAN_DECLARE(void) cvec_circular_lmsi16(const complexi16_t x[], complexi16_t y[], int n, int pos, const complexi16_t *error);
00123
00124 #if defined(__cplusplus)
00125 }
00126 #endif
00127
00128 #endif
00129