diff options
author | Shashank | 2017-05-29 12:40:26 +0530 |
---|---|---|
committer | Shashank | 2017-05-29 12:40:26 +0530 |
commit | 0345245e860375a32c9a437c4a9d9cae807134e9 (patch) | |
tree | ad51ecbfa7bcd3cc5f09834f1bb8c08feaa526a4 /modules/signal_processing/src | |
download | scilab_for_xcos_on_cloud-0345245e860375a32c9a437c4a9d9cae807134e9.tar.gz scilab_for_xcos_on_cloud-0345245e860375a32c9a437c4a9d9cae807134e9.tar.bz2 scilab_for_xcos_on_cloud-0345245e860375a32c9a437c4a9d9cae807134e9.zip |
CMSCOPE changed
Diffstat (limited to 'modules/signal_processing/src')
201 files changed, 7456 insertions, 0 deletions
diff --git a/modules/signal_processing/src/c/.deps/.dirstamp b/modules/signal_processing/src/c/.deps/.dirstamp new file mode 100755 index 000000000..e69de29bb --- /dev/null +++ b/modules/signal_processing/src/c/.deps/.dirstamp diff --git a/modules/signal_processing/src/c/.deps/libscisignal_processing_algo_la-conv2.Plo b/modules/signal_processing/src/c/.deps/libscisignal_processing_algo_la-conv2.Plo new file mode 100755 index 000000000..2a3eaeebc --- /dev/null +++ b/modules/signal_processing/src/c/.deps/libscisignal_processing_algo_la-conv2.Plo @@ -0,0 +1,152 @@ +src/c/libscisignal_processing_algo_la-conv2.lo: src/c/conv2.c \ + /usr/include/stdc-predef.h ../../modules/core/includes/machine.h \ + ../../modules/core/includes/core_math.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h \ + /usr/include/limits.h /usr/include/features.h \ + /usr/include/x86_64-linux-gnu/sys/cdefs.h \ + /usr/include/x86_64-linux-gnu/bits/wordsize.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs.h \ + /usr/include/x86_64-linux-gnu/gnu/stubs-64.h \ + /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h /usr/include/math.h \ + /usr/include/x86_64-linux-gnu/bits/math-vector.h \ + /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \ + /usr/include/x86_64-linux-gnu/bits/huge_val.h \ + /usr/include/x86_64-linux-gnu/bits/huge_valf.h \ + /usr/include/x86_64-linux-gnu/bits/huge_vall.h \ + /usr/include/x86_64-linux-gnu/bits/inf.h \ + /usr/include/x86_64-linux-gnu/bits/nan.h \ + /usr/include/x86_64-linux-gnu/bits/mathdef.h \ + /usr/include/x86_64-linux-gnu/bits/mathcalls.h \ + /usr/include/x86_64-linux-gnu/bits/mathinline.h /usr/include/stdlib.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h \ + /usr/include/x86_64-linux-gnu/bits/waitflags.h \ + /usr/include/x86_64-linux-gnu/bits/waitstatus.h /usr/include/endian.h \ + /usr/include/x86_64-linux-gnu/bits/endian.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap.h \ + /usr/include/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h \ + /usr/include/x86_64-linux-gnu/bits/byteswap-16.h \ + /usr/include/x86_64-linux-gnu/sys/types.h /usr/include/time.h \ + /usr/include/x86_64-linux-gnu/sys/select.h \ + /usr/include/x86_64-linux-gnu/bits/select.h \ + /usr/include/x86_64-linux-gnu/bits/sigset.h \ + /usr/include/x86_64-linux-gnu/bits/time.h \ + /usr/include/x86_64-linux-gnu/bits/select2.h \ + /usr/include/x86_64-linux-gnu/sys/sysmacros.h \ + /usr/include/x86_64-linux-gnu/bits/pthreadtypes.h /usr/include/alloca.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib-float.h \ + /usr/include/x86_64-linux-gnu/bits/stdlib.h /usr/include/values.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/float.h \ + ../../modules/core/includes/MALLOC.h \ + ../../modules/core/includes/sci_mem_alloc.h + +/usr/include/stdc-predef.h: + +../../modules/core/includes/machine.h: + +../../modules/core/includes/core_math.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h: + +/usr/include/limits.h: + +/usr/include/features.h: + +/usr/include/x86_64-linux-gnu/sys/cdefs.h: + +/usr/include/x86_64-linux-gnu/bits/wordsize.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs.h: + +/usr/include/x86_64-linux-gnu/gnu/stubs-64.h: + +/usr/include/x86_64-linux-gnu/bits/posix1_lim.h: + +/usr/include/x86_64-linux-gnu/bits/local_lim.h: + +/usr/include/linux/limits.h: + +/usr/include/x86_64-linux-gnu/bits/posix2_lim.h: + +/usr/include/math.h: + +/usr/include/x86_64-linux-gnu/bits/math-vector.h: + +/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h: + +/usr/include/x86_64-linux-gnu/bits/huge_val.h: + +/usr/include/x86_64-linux-gnu/bits/huge_valf.h: + +/usr/include/x86_64-linux-gnu/bits/huge_vall.h: + +/usr/include/x86_64-linux-gnu/bits/inf.h: + +/usr/include/x86_64-linux-gnu/bits/nan.h: + +/usr/include/x86_64-linux-gnu/bits/mathdef.h: + +/usr/include/x86_64-linux-gnu/bits/mathcalls.h: + +/usr/include/x86_64-linux-gnu/bits/mathinline.h: + +/usr/include/stdlib.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h: + +/usr/include/x86_64-linux-gnu/bits/waitflags.h: + +/usr/include/x86_64-linux-gnu/bits/waitstatus.h: + +/usr/include/endian.h: + +/usr/include/x86_64-linux-gnu/bits/endian.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap.h: + +/usr/include/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/x86_64-linux-gnu/bits/byteswap-16.h: + +/usr/include/x86_64-linux-gnu/sys/types.h: + +/usr/include/time.h: + +/usr/include/x86_64-linux-gnu/sys/select.h: + +/usr/include/x86_64-linux-gnu/bits/select.h: + +/usr/include/x86_64-linux-gnu/bits/sigset.h: + +/usr/include/x86_64-linux-gnu/bits/time.h: + +/usr/include/x86_64-linux-gnu/bits/select2.h: + +/usr/include/x86_64-linux-gnu/sys/sysmacros.h: + +/usr/include/x86_64-linux-gnu/bits/pthreadtypes.h: + +/usr/include/alloca.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-bsearch.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib-float.h: + +/usr/include/x86_64-linux-gnu/bits/stdlib.h: + +/usr/include/values.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/float.h: + +../../modules/core/includes/MALLOC.h: + +../../modules/core/includes/sci_mem_alloc.h: diff --git a/modules/signal_processing/src/c/.deps/libscisignal_processing_algo_la-corrtable.Plo b/modules/signal_processing/src/c/.deps/libscisignal_processing_algo_la-corrtable.Plo new file mode 100755 index 000000000..111092914 --- /dev/null +++ b/modules/signal_processing/src/c/.deps/libscisignal_processing_algo_la-corrtable.Plo @@ -0,0 +1,16 @@ +src/c/libscisignal_processing_algo_la-corrtable.lo: src/c/corrtable.c \ + /usr/include/stdc-predef.h \ + ../../modules/dynamic_link/includes/GetFunctionByName.h \ + ../../modules/dynamic_link/includes/dynlib_dynamic_link.h \ + includes/dynlib_signal_processing.h \ + ../../modules/core/includes/machine.h + +/usr/include/stdc-predef.h: + +../../modules/dynamic_link/includes/GetFunctionByName.h: + +../../modules/dynamic_link/includes/dynlib_dynamic_link.h: + +includes/dynlib_signal_processing.h: + +../../modules/core/includes/machine.h: diff --git a/modules/signal_processing/src/c/.dirstamp b/modules/signal_processing/src/c/.dirstamp new file mode 100755 index 000000000..e69de29bb --- /dev/null +++ b/modules/signal_processing/src/c/.dirstamp diff --git a/modules/signal_processing/src/c/.libs/libscisignal_processing_algo_la-conv2.o b/modules/signal_processing/src/c/.libs/libscisignal_processing_algo_la-conv2.o Binary files differnew file mode 100755 index 000000000..1061aaff2 --- /dev/null +++ b/modules/signal_processing/src/c/.libs/libscisignal_processing_algo_la-conv2.o diff --git a/modules/signal_processing/src/c/.libs/libscisignal_processing_algo_la-corrtable.o b/modules/signal_processing/src/c/.libs/libscisignal_processing_algo_la-corrtable.o Binary files differnew file mode 100755 index 000000000..b1cbe5659 --- /dev/null +++ b/modules/signal_processing/src/c/.libs/libscisignal_processing_algo_la-corrtable.o diff --git a/modules/signal_processing/src/c/DllmainSignal_processing.c b/modules/signal_processing/src/c/DllmainSignal_processing.c new file mode 100755 index 000000000..2c6b605d4 --- /dev/null +++ b/modules/signal_processing/src/c/DllmainSignal_processing.c @@ -0,0 +1,75 @@ + +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2008 - DIGITEO - Allan CORNET + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +#include <windows.h> +#include "machine.h" /* C2F */ +/*--------------------------------------------------------------------------*/ +#pragma comment(lib,"../../../../bin/libintl.lib") +/*--------------------------------------------------------------------------*/ +/* defines & exports fortran COMMON in C */ +/* required by F2C */ + +__declspec (dllexport) struct +{ + int iero; +} C2F(iercorr); + +__declspec (dllexport) struct +{ + double pi2, dev; + int nfcns, ngrid; +} C2F(rem001); + +__declspec (dllexport) struct +{ + int niter, iout; +} C2F(oops); + +__declspec (dllexport) struct +{ + char namex[25], namey[25]; +} C2F(corrname); + + +__declspec (dllexport) struct +{ + int kgxtop, kgytop, ksec, kisc; +} C2F(corradr); + +__declspec (dllexport) struct +{ + int itxcorr, itycorr; +} C2F(corrtyp); + +__declspec (dllexport) struct +{ + int k; +} C2F(tg02bd); +/*--------------------------------------------------------------------------*/ +int WINAPI DllMain (HINSTANCE hInstance , DWORD reason, PVOID pvReserved) +{ + switch (reason) + { + case DLL_PROCESS_ATTACH: + break; + case DLL_PROCESS_DETACH: + break; + case DLL_THREAD_ATTACH: + break; + case DLL_THREAD_DETACH: + break; + } + return 1; +} +/*--------------------------------------------------------------------------*/ + diff --git a/modules/signal_processing/src/c/conv2.c b/modules/signal_processing/src/c/conv2.c new file mode 100755 index 000000000..17ee46284 --- /dev/null +++ b/modules/signal_processing/src/c/conv2.c @@ -0,0 +1,285 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2012 - INRIA - Serge STEER + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ +/*--------------------------------------------------------------------------*/ +#include "machine.h" +#include "core_math.h" +#include "MALLOC.h" +/*--------------------------------------------------------------------------*/ +extern double C2F(ddot)(int *n, double *A, int *iA, double *B, int *iB); +/*--------------------------------------------------------------------------*/ +void conv2_separable_R(double *R, int nR, double *C, int mC, double *A, int mA, int nA, double *Out, int mOut, int nOut, int edgM, int edgN, double *T) +{ + int ai = 0, tj = 0, ci = 0, rj = 0; /*current index over A,T,C and R */ + int i = 0, j = 0; /* loop variables*/ + int l = 0; + int one = 1, minusone = -1; + + for (i = 0; i < mOut; i++ ) + { + /*Compute the 1-D conv A(i,:) and C in T */ + ai = Max(0, i - edgM) ; + ci = mC - 1 - Max(0, edgM - i); + l = Min(ci + 1, mA - ai); + for (j = 0; j < nA; j++ ) + { + T[j] = C2F(ddot)(&l, A + ai + mA * j, &one, C + ci - l + 1, &minusone); + } + /*1-D convolution of T and R */ + for (j = 0; j < nOut; j++ ) + { + rj = nR - 1 - Max(0, edgN - j); + tj = Max(0, j - edgN) ; + l = Min(rj + 1, nA - tj); + Out[i + j * mOut] = C2F(ddot)(&l, T + tj, &one, R + rj - l + 1, &minusone); + } + } +} +/*--------------------------------------------------------------------------*/ +void conv2_separable_C(double *Rr, double *Ri, int nR, double *Cr, double *Ci, int mC, double *Ar, double *Ai, int mA, int nA, double *Outr, double *Outi, int mOut, int nOut, int edgM, int edgN, double *Tr, double *Ti) +{ + int ai = 0, tj = 0, ci = 0, rj = 0; /*current index over A,T,C and R */ + int i = 0, j = 0; /* loop variables*/ + int l = 0; + int one = 1, minusone = -1; + + for (i = 0; i < mOut; i++ ) + { + /*Compute the 1-D conv A(i,:) and C in T */ + ai = Max(0, i - edgM) ; + ci = mC - 1 - Max(0, edgM - i); + l = Min(ci + 1, mA - ai); + if (Ai != NULL && Ci != NULL) + { + for (j = 0; j < nA; j++ ) + { + Tr[j] = C2F(ddot)(&l, Ar + ai + mA * j, &one, Cr + ci - l + 1, &minusone) - + C2F(ddot)(&l, Ai + ai + mA * j, &one, Ci + ci - l + 1, &minusone); + + Ti[j] = C2F(ddot)(&l, Ar + ai + mA * j, &one, Ci + ci - l + 1, &minusone) + + C2F(ddot)(&l, Ai + ai + mA * j, &one, Cr + ci - l + 1, &minusone); + } + } + else if (Ci != NULL) + { + for (j = 0; j < nA; j++ ) + { + Tr[j] = C2F(ddot)(&l, Ar + ai + mA * j, &one, Cr + ci - l + 1, &minusone); + Ti[j] = C2F(ddot)(&l, Ar + ai + mA * j, &one, Ci + ci - l + 1, &minusone); + } + } + else if (Ai != NULL) + { + for (j = 0; j < nA; j++ ) + { + Tr[j] = C2F(ddot)(&l, Ar + ai + mA * j, &one, Cr + ci - l + 1, &minusone); + Ti[j] = C2F(ddot)(&l, Ai + ai + mA * j, &one, Cr + ci - l + 1, &minusone); + } + } + else + { + for (j = 0; j < nA; j++ ) + { + Tr[j] = C2F(ddot)(&l, Ar + ai + mA * j, &one, Cr + ci - l + 1, &minusone); + Ti[j] = 0.0; + } + } + /*1-D convolution of T and R */ + for (j = 0; j < nOut; j++ ) + { + rj = nR - 1 - Max(0, edgN - j); + tj = Max(0, j - edgN) ; + l = Min(rj + 1, nA - tj); + Outr[i + j * mOut] = C2F(ddot)(&l, Tr + tj, &one, Rr + rj - l + 1, &minusone); + Outi[i + j * mOut] = C2F(ddot)(&l, Ti + tj, &one, Rr + rj - l + 1, &minusone); + if (Ri != NULL) + { + Outr[i + j * mOut] -= C2F(ddot)(&l, Ti + tj, &one, Ri + rj - l + 1, &minusone); + Outi[i + j * mOut] = C2F(ddot)(&l, Tr + tj, &one, Ri + rj - l + 1, &minusone); + } + } + } +} +/*--------------------------------------------------------------------------*/ +void conv2_R(double *A, int mA, int nA, double *B, int mB, int nB, double *Out, int mOut, int nOut, int edgM, int edgN) +{ + int ai = 0, aj = 0, bi = 0, bj = 0; /*current index over A and B */ + int i = 0, j = 0; /* loop variables*/ + int l = 0; + int one = 1, minusone = -1; + double sum = 0; + if (nOut == 1) + { + /* A and B are column vectors nA=nB=nOut=1 */ + for (i = 0; i < mOut; i++ ) + { + bi = mB - 1 - Max(0, edgM - i); + ai = Max(0, i - edgM); + l = Min(bi + 1, mA - ai); + Out[i] = C2F(ddot)(&l, A + ai, &one, B + bi - l + 1, &minusone); + } + } + else if (mOut == 1) + { + /* A and B are row vectors mA=mB=mOut=1 */ + for (j = 0; j < nOut; j++ ) + { + bj = nB - 1 - Max(0, edgN - j); + aj = Max(0, j - edgN); + l = Min(bj + 1, nA - aj); + Out[j] = C2F(ddot)(&l, A + aj, &one, B + bj - l + 1, &minusone); + } + } + else + { + /* general array case */ + for (i = 0; i < mOut; i++ ) + { + bi = mB - 1 - Max(0, edgM - i); + ai = Max(0, i - edgM); + for (j = 0; j < nOut; j++ ) + { + sum = 0; + for (bj = nB - 1 - Max(0, edgN - j), aj = Max(0, j - edgN); bj >= 0 && aj < nA; bj--, aj++) + { + l = Min(bi + 1, mA - ai); + sum += C2F(ddot)(&l, A + ai + mA * aj, &one, B + bi - l + 1 + mB * bj, &minusone); + } + Out[i + j * mOut] = sum; + } + } + } +} +/*--------------------------------------------------------------------------*/ +void conv2_C(double *Ar, double *Ai, int mA, int nA, double *Br, double *Bi, int mB, int nB, double *Outr, double *Outi, int mOut, int nOut, int edgM, int edgN) +{ + int ai = 0, aj = 0, bi = 0, bj = 0; /*current index over A and B */ + int i = 0, j = 0; /* loop variables*/ + int l = 0; + int one = 1, minusone = -1; + double sumr = 0, sumi = 0; + + if (Bi != NULL && Ai != NULL) + { + if (nOut == 1) + { + /* fastest code */ + for (i = 0; i < mOut; i++ ) + { + bi = mB - 1 - Max(0, edgM - i); + ai = Max(0, i - edgM); + l = Min(bi + 1, mA - ai); + Outr[i] = C2F(ddot)(&l, Ar + ai, &one, Br + bi - l + 1, &minusone) - + C2F(ddot)(&l, Ai + ai, &one, Bi + bi - l + 1, &minusone); + + Outi[i] = C2F(ddot)(&l, Ar + ai, &one, Bi + bi - l + 1, &minusone) + + C2F(ddot)(&l, Ai + ai, &one, Br + bi - l + 1, &minusone); + } + } + else + { + for (i = 0; i < mOut; i++ ) + { + bi = mB - 1 - Max(0, edgM - i); + ai = Max(0, i - edgM); + for (j = 0; j < nOut; j++ ) + { + sumr = 0; + sumi = 0; + for (bj = nB - 1 - Max(0, edgN - j), aj = Max(0, j - edgN); bj >= 0 && aj < nA; bj--, aj++) + { + l = Min(bi + 1, mA - ai); + sumr += C2F(ddot)(&l, Ar + ai + mA * aj, &one, Br + bi - l + 1 + mB * bj, &minusone) + - C2F(ddot)(&l, Ai + ai + mA * aj, &one, Bi + bi - l + 1 + mB * bj, &minusone); + + sumi += C2F(ddot)(&l, Ar + ai + mA * aj, &one, Bi + bi - l + 1 + mB * bj, &minusone) + + C2F(ddot)(&l, Ai + ai + mA * aj, &one, Br + bi - l + 1 + mB * bj, &minusone); + } + Outr[i + j * mOut] = sumr; + Outi[i + j * mOut] = sumi; + } + } + } + } + else if (Ai != NULL) + { + if (nOut == 1) + { + /* fastest code */ + for (i = 0; i < mOut; i++ ) + { + bi = mB - 1 - Max(0, edgM - i); + ai = Max(0, i - edgM); + l = Min(bi + 1, mA - ai); + Outr[i] = C2F(ddot)(&l, Ar + ai, &one, Br + bi - l + 1, &minusone); + Outi[i] = C2F(ddot)(&l, Ai + ai, &one, Br + bi - l + 1, &minusone); + } + } + else + { + for (i = 0; i < mOut; i++ ) + { + bi = mB - 1 - Max(0, edgM - i); + ai = Max(0, i - edgM); + for (j = 0; j < nOut; j++ ) + { + sumr = 0; + sumi = 0; + for (bj = nB - 1 - Max(0, edgN - j), aj = Max(0, j - edgN); bj >= 0 && aj < nA; bj--, aj++) + { + l = Min(bi + 1, mA - ai); + sumr += C2F(ddot)(&l, Ar + ai + mA * aj, &one, Br + bi - l + 1 + mB * bj, &minusone); + sumi += C2F(ddot)(&l, Ai + ai + mA * aj, &one, Br + bi - l + 1 + mB * bj, &minusone); + } + Outr[i + j * mOut] = sumr; + Outi[i + j * mOut] = sumi; + } + } + } + } + else if (Bi != NULL) + { + if (nOut == 1) + { + /* fastest code */ + for (i = 0; i < mOut; i++ ) + { + bi = mB - 1 - Max(0, edgM - i); + ai = Max(0, i - edgM); + l = Min(bi + 1, mA - ai); + Outr[i] = C2F(ddot)(&l, Ar + ai, &one, Br + bi - l + 1, &minusone); + Outi[i] = C2F(ddot)(&l, Ar + ai, &one, Bi + bi - l + 1, &minusone); + } + } + else + { + for (i = 0; i < mOut; i++ ) + { + bi = mB - 1 - Max(0, edgM - i); + ai = Max(0, i - edgM); + for (j = 0; j < nOut; j++ ) + { + sumr = 0; + sumi = 0; + for (bj = nB - 1 - Max(0, edgN - j), aj = Max(0, j - edgN); bj >= 0 && aj < nA; bj--, aj++) + { + l = Min(bi + 1, mA - ai); + sumr += C2F(ddot)(&l, Ar + ai + mA * aj, &one, Br + bi - l + 1 + mB * bj, &minusone); + sumi += C2F(ddot)(&l, Ar + ai + mA * aj, &one, Bi + bi - l + 1 + mB * bj, &minusone); + } + Outr[i + j * mOut] = sumr; + Outi[i + j * mOut] = sumi; + } + } + } + } +} +/*--------------------------------------------------------------------------*/ diff --git a/modules/signal_processing/src/c/conv2.h b/modules/signal_processing/src/c/conv2.h new file mode 100755 index 000000000..1991ca11c --- /dev/null +++ b/modules/signal_processing/src/c/conv2.h @@ -0,0 +1,78 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2012 - INRIA - Serge Steer + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ +/*------------------------------------------------------------------------*/ +/* file: conv2.h */ +/* desc : Functions to compute 2-D convolutions */ +/*------------------------------------------------------------------------*/ +#ifndef __CONV2_H__ +#define __CONV2_H__ + + +/** + * computes 2-D convolution for separable kernel in real case + * R is a real vector of length nR + * C is a real vector of length nC + * A is a (mA,nA) real matrix + * Out is a (mOut,nOut) real matrix + * edgM is an integer + * edgN is an integer + * T is a real vector of length nA + */ +void conv2_separable_R(double *R, int nR, + double *C, int nC, + double *A, int mA, int nA, + double *Out, int mOut, int nOut, + int edgM, int edgN, double *T); + +/** + * computes 2-D convolution for separable kernel in complex case + * Rr and Ri are real vectors of length nR + * Cr and Ci are real vectors of length nC + * Ar and Ai are (mA,nA) real matrices + * Outr and Outii are (mOut,nOut) real matrices + * edgM is an integer + * edgN is an integer + * Tr and Ti are real vectors of length nA + */ +void conv2_separable_C(double *Rr, double *Ri, int nR, + double *Cr, double *Ci, int nC, + double *Ar, double *Ai, int mA, int nA, + double *Outr, double *Outi, int mOut, int nOut, + int edgM, int edgN, double *Tr, double *Ti); + +/** + * computes 2-D convolution for matrix kernel in real case + * A is a (mA,nA) real matrix + * B is a (mB,nB) real matrix + * Out is a (mOut,nOut) real matrix + * edgM is an integer + * edgN is an integer + */ +void conv2_R(double *A, int mA, int nA, + double *B, int mB, int nB, + double *Out, int mOut, int nOut, + int edgM, int edgN); + +/** + * computes 2-D convolution for matrix kernel in complex case + * Ar and Ai are (mA,nA) real matrices + * Br and Bi are (mB,nB) real matrices + * Outr and Outi are (mOut,nOut) real matrices + * edgM is an integer + * edgN is an integer + */ +void conv2_C(double *Ar, double *Ai, int mA, int nA, + double *Br, double *Bi, int mB, int nB, + double *Outr, double *Outi, int mOut, int nOut, + int edgM, int edgN); +#endif /* __CONV2_H__ */ + diff --git a/modules/signal_processing/src/c/core_Import.def b/modules/signal_processing/src/c/core_Import.def new file mode 100755 index 000000000..cb760ea14 --- /dev/null +++ b/modules/signal_processing/src/c/core_Import.def @@ -0,0 +1,11 @@ +LIBRARY core.dll + + +EXPORTS +; --------------------------------------- +; Libscilab +; --------------------------------------- +callFunctionFromGateway +com_ +MyHeapAlloc +MyHeapFree diff --git a/modules/signal_processing/src/c/corrtable.c b/modules/signal_processing/src/c/corrtable.c new file mode 100755 index 000000000..d19846e40 --- /dev/null +++ b/modules/signal_processing/src/c/corrtable.c @@ -0,0 +1,90 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +#include "GetFunctionByName.h" +#include "dynlib_signal_processing.h" +#include "machine.h" +/*********************************** +* corr ( dgetx dgety ) +***********************************/ + +#define ARGS_dgetx double *,int*,int* +typedef void (*dgetxf)(ARGS_dgetx); + +#define ARGS_dgety double *,int*,int* +typedef void (*dgetyf)(ARGS_dgety); + + +/**************** dgetx ***************/ +extern void C2F(corexx)(ARGS_dgetx); +SIGNAL_PROCESSING_IMPEXP void C2F(dgetx)(ARGS_dgetx); +SIGNAL_PROCESSING_IMPEXP void C2F(setdgetx)(char *name, int *rep); + +FTAB FTab_dgetx[] = +{ + {"corexx", (voidf) C2F(corexx)}, + {(char *) 0, (voidf) 0} +}; + +/**************** dgety ***************/ +extern void C2F(corexy)(ARGS_dgety); +SIGNAL_PROCESSING_IMPEXP void C2F(dgety)(ARGS_dgety); +SIGNAL_PROCESSING_IMPEXP void C2F(setdgety)(char *name, int *rep); + +FTAB FTab_dgety[] = +{ + {"corexy", (voidf) C2F(corexy)}, + {(char *) 0, (voidf) 0} +}; + +/*********************************** +* Search Table for corr +* corr uses two externals : dgetx and dgety +***********************************/ + +/** the current function fixed by setdgetx **/ + + +static dgetxf dgetxfonc ; + +/** function call **/ + +void C2F(dgetx)(double *x, int *incr, int *istart) +{ + (*dgetxfonc)(x, incr, istart); +} + +/** fixes the function associated to name **/ + +void C2F(setdgetx)(char *name, int *rep) +{ + dgetxfonc = (dgetxf) GetFunctionByName(name, rep, FTab_dgetx); +} + + +/** the current function fixed by setdgety **/ + +static dgetyf dgetyfonc ; + +void C2F(dgety)(double *y, int *incr, int *istart) +{ + (*dgetyfonc)(y, incr, istart); +} + + +/** fixes the function associated to name **/ + +void C2F(setdgety)(char *name, int *rep) +{ + dgetyfonc = (dgetyf) GetFunctionByName(name, rep, FTab_dgety); +} + diff --git a/modules/signal_processing/src/c/libscisignal_processing_algo_la-conv2.lo b/modules/signal_processing/src/c/libscisignal_processing_algo_la-conv2.lo new file mode 100755 index 000000000..8987a66ac --- /dev/null +++ b/modules/signal_processing/src/c/libscisignal_processing_algo_la-conv2.lo @@ -0,0 +1,12 @@ +# src/c/libscisignal_processing_algo_la-conv2.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/libscisignal_processing_algo_la-conv2.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/signal_processing/src/c/libscisignal_processing_algo_la-corrtable.lo b/modules/signal_processing/src/c/libscisignal_processing_algo_la-corrtable.lo new file mode 100755 index 000000000..2efad5461 --- /dev/null +++ b/modules/signal_processing/src/c/libscisignal_processing_algo_la-corrtable.lo @@ -0,0 +1,12 @@ +# src/c/libscisignal_processing_algo_la-corrtable.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/libscisignal_processing_algo_la-corrtable.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/signal_processing/src/c/signal_processing.rc b/modules/signal_processing/src/c/signal_processing.rc new file mode 100755 index 000000000..8cd689ad6 --- /dev/null +++ b/modules/signal_processing/src/c/signal_processing.rc @@ -0,0 +1,96 @@ +// Microsoft Visual C++ generated resource script. +// + + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +//#include "afxres.h" +#define APSTUDIO_HIDDEN_SYMBOLS +#include "windows.h" +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// French (France) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_FRA) +#ifdef _WIN32 +LANGUAGE LANG_FRENCH, SUBLANG_FRENCH +#pragma code_page(1252) +#endif //_WIN32 + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE +BEGIN + "resource.h\0" +END + +3 TEXTINCLUDE +BEGIN + "\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 5,5,2,0 + PRODUCTVERSION 5,5,2,0 + FILEFLAGSMASK 0x17L +#ifdef _DEBUG + FILEFLAGS 0x1L +#else + FILEFLAGS 0x0L +#endif + FILEOS 0x4L + FILETYPE 0x2L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040c04b0" + BEGIN + VALUE "FileDescription", "signal_processing module" + VALUE "FileVersion", "5, 5, 2, 0" + VALUE "InternalName", "signal_processing module" + VALUE "LegalCopyright", "Copyright (C) 2017" + VALUE "OriginalFilename", "signal_processing.dll" + VALUE "ProductName", "signal_processing module" + VALUE "ProductVersion", "5, 5, 2, 0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x40c, 1200 + END +END + +#endif // French (France) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// + + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/modules/signal_processing/src/c/signal_processing.vcxproj b/modules/signal_processing/src/c/signal_processing.vcxproj new file mode 100755 index 000000000..f22b281f5 --- /dev/null +++ b/modules/signal_processing/src/c/signal_processing.vcxproj @@ -0,0 +1,247 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Debug|Win32"> + <Configuration>Debug</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug|x64"> + <Configuration>Debug</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{A3AD381E-C0DD-45BB-ACB2-C0A0DB33A606}</ProjectGuid> + <RootNamespace>signal_processing</RootNamespace> + <Keyword>Win32Proj</Keyword> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <CharacterSet>MultiByte</CharacterSet> + <WholeProgramOptimization>false</WholeProgramOptimization> + <PlatformToolset>v110</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>v110</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <CharacterSet>MultiByte</CharacterSet> + <WholeProgramOptimization>false</WholeProgramOptimization> + <PlatformToolset>v110</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>v110</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup> + <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)bin\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)$(Configuration)\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)bin\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)$(Configuration)\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</LinkIncremental> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)bin\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)$(Configuration)\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)bin\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)$(Configuration)\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <ClCompile> + <Optimization>Disabled</Optimization> + <AdditionalIncludeDirectories>.;../../includes;../../../output_stream/includes;../../../localization/includes;../../../dynamic_link/includes;../../../string/includes;../../../core/includes;../../../../libs/intl;../../../api_scilab/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;FORDLL;_DEBUG;_WINDOWS;_USRDLL;SIGNAL_PROCESSING_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> + <WarningLevel>Level3</WarningLevel> + </ClCompile> + <PreLinkEvent> + <Message>Make dependencies</Message> + <Command>lib /DEF:"$(ProjectDir)core_import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)core.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)signal_processing_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)signal_processing_f.lib" 1>NUL 2>NUL +</Command> + </PreLinkEvent> + <Link> + <AdditionalDependencies>../../../../bin/blasplus.lib;core.lib;signal_processing_f.lib;%(AdditionalDependencies)</AdditionalDependencies> + <OutputFile>$(SolutionDir)bin\$(ProjectName).dll</OutputFile> + <GenerateDebugInformation>true</GenerateDebugInformation> + <SubSystem>Windows</SubSystem> + <ImportLibrary>$(SolutionDir)bin\$(ProjectName).lib</ImportLibrary> + <TargetMachine>MachineX86</TargetMachine> + <CLRUnmanagedCodeCheck>true</CLRUnmanagedCodeCheck> + <RandomizedBaseAddress>false</RandomizedBaseAddress> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <Midl> + <TargetEnvironment>X64</TargetEnvironment> + </Midl> + <ClCompile> + <Optimization>Disabled</Optimization> + <AdditionalIncludeDirectories>.;../../includes;../../../output_stream/includes;../../../localization/includes;../../../dynamic_link/includes;../../../string/includes;../../../core/includes;../../../../libs/intl;../../../api_scilab/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;FORDLL;_DEBUG;_WINDOWS;_USRDLL;SIGNAL_PROCESSING_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> + <WarningLevel>Level3</WarningLevel> + </ClCompile> + <PreLinkEvent> + <Message>Make dependencies</Message> + <Command>lib /DEF:"$(ProjectDir)core_import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)core.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)signal_processing_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)signal_processing_f.lib" 1>NUL 2>NUL +</Command> + </PreLinkEvent> + <Link> + <AdditionalDependencies>../../../../bin/blasplus.lib;core.lib;signal_processing_f.lib;%(AdditionalDependencies)</AdditionalDependencies> + <OutputFile>$(SolutionDir)bin\$(ProjectName).dll</OutputFile> + <GenerateDebugInformation>true</GenerateDebugInformation> + <SubSystem>Windows</SubSystem> + <ImportLibrary>$(SolutionDir)bin\$(ProjectName).lib</ImportLibrary> + <TargetMachine>MachineX64</TargetMachine> + <CLRUnmanagedCodeCheck>true</CLRUnmanagedCodeCheck> + <RandomizedBaseAddress>false</RandomizedBaseAddress> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed> + <WholeProgramOptimization>false</WholeProgramOptimization> + <AdditionalIncludeDirectories>.;../../includes;../../../output_stream/includes;../../../localization/includes;../../../dynamic_link/includes;../../../string/includes;../../../core/includes;../../../../libs/intl;../../../api_scilab/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;FORDLL;NDEBUG;_WINDOWS;_USRDLL;SIGNAL_PROCESSING_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <StringPooling>true</StringPooling> + <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> + <WarningLevel>Level3</WarningLevel> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + </ClCompile> + <PreLinkEvent> + <Message>Make dependencies</Message> + <Command>lib /DEF:"$(ProjectDir)core_import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)core.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)signal_processing_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)signal_processing_f.lib" 1>NUL 2>NUL +</Command> + </PreLinkEvent> + <Link> + <AdditionalDependencies>../../../../bin/blasplus.lib;core.lib;signal_processing_f.lib;%(AdditionalDependencies)</AdditionalDependencies> + <OutputFile>$(SolutionDir)bin\$(ProjectName).dll</OutputFile> + <GenerateDebugInformation>false</GenerateDebugInformation> + <SubSystem>Windows</SubSystem> + <OptimizeReferences>true</OptimizeReferences> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <ImportLibrary>$(SolutionDir)bin\$(ProjectName).lib</ImportLibrary> + <TargetMachine>MachineX86</TargetMachine> + <CLRUnmanagedCodeCheck>true</CLRUnmanagedCodeCheck> + <RandomizedBaseAddress>false</RandomizedBaseAddress> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <Midl> + <TargetEnvironment>X64</TargetEnvironment> + </Midl> + <ClCompile> + <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed> + <WholeProgramOptimization>false</WholeProgramOptimization> + <AdditionalIncludeDirectories>.;../../includes;../../../output_stream/includes;../../../localization/includes;../../../dynamic_link/includes;../../../string/includes;../../../core/includes;../../../../libs/intl;../../../api_scilab/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;FORDLL;NDEBUG;_WINDOWS;_USRDLL;SIGNAL_PROCESSING_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <StringPooling>true</StringPooling> + <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> + <WarningLevel>Level3</WarningLevel> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + </ClCompile> + <PreLinkEvent> + <Message>Make dependencies</Message> + <Command>lib /DEF:"$(ProjectDir)core_import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)core.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)signal_processing_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)signal_processing_f.lib" 1>NUL 2>NUL +</Command> + </PreLinkEvent> + <Link> + <AdditionalDependencies>../../../../bin/blasplus.lib;core.lib;signal_processing_f.lib;%(AdditionalDependencies)</AdditionalDependencies> + <OutputFile>$(SolutionDir)bin\$(ProjectName).dll</OutputFile> + <GenerateDebugInformation>false</GenerateDebugInformation> + <SubSystem>Windows</SubSystem> + <OptimizeReferences>true</OptimizeReferences> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <ImportLibrary>$(SolutionDir)bin\$(ProjectName).lib</ImportLibrary> + <TargetMachine>MachineX64</TargetMachine> + <CLRUnmanagedCodeCheck>true</CLRUnmanagedCodeCheck> + <RandomizedBaseAddress>false</RandomizedBaseAddress> + </Link> + </ItemDefinitionGroup> + <ItemGroup> + <ClCompile Include="..\..\sci_gateway\c\sci_conv2.c" /> + <ClCompile Include="conv2.c" /> + <ClCompile Include="corrtable.c" /> + <ClCompile Include="DllmainSignal_processing.c" /> + <ClCompile Include="..\..\sci_gateway\c\gw_signal.c" /> + <ClCompile Include="..\..\sci_gateway\c\sci_amell.c" /> + <ClCompile Include="..\..\sci_gateway\c\sci_corr.c" /> + <ClCompile Include="..\..\sci_gateway\c\sci_delip.c" /> + <ClCompile Include="..\..\sci_gateway\c\sci_ffir.c" /> + <ClCompile Include="..\..\sci_gateway\c\sci_fft.c" /> + <ClCompile Include="..\..\sci_gateway\c\sci_fiir.c" /> + <ClCompile Include="..\..\sci_gateway\c\sci_remez.c" /> + <ClCompile Include="..\..\sci_gateway\c\sci_rpem.c" /> + <ClCompile Include="..\..\sci_gateway\c\sci_syredi.c" /> + </ItemGroup> + <ItemGroup> + <ClInclude Include="..\..\includes\dynlib_signal_processing.h" /> + <ClInclude Include="..\..\includes\gw_signal.h" /> + <ClInclude Include="conv2.h" /> + </ItemGroup> + <ItemGroup> + <None Include="..\..\locales\signal_processing.pot" /> + <None Include="core_import.def" /> + <None Include="signal_processing_f_Import.def" /> + <None Include="..\..\Makefile.am" /> + <None Include="..\..\signal_processing.iss" /> + <None Include="..\..\sci_gateway\signal_processing_gateway.xml" /> + </ItemGroup> + <ItemGroup> + <ResourceCompile Include="signal_processing.rc" /> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="..\..\..\..\tools\Dumpexts\Dumpexts.vcxproj"> + <Project>{3170e4c2-1173-4264-a222-7ee8ccb3ddf7}</Project> + <ReferenceOutputAssembly>false</ReferenceOutputAssembly> + </ProjectReference> + <ProjectReference Include="..\..\..\api_scilab\api_scilab.vcxproj"> + <Project>{43c5bab1-1dca-4743-a183-77e0d42fe7d0}</Project> + </ProjectReference> + <ProjectReference Include="..\..\..\dynamic_link\src\c\dynamic_link.vcxproj"> + <Project>{eab6c580-22b3-4359-ba1d-dd7499a96163}</Project> + <ReferenceOutputAssembly>false</ReferenceOutputAssembly> + </ProjectReference> + <ProjectReference Include="..\..\..\output_stream\src\c\output_stream.vcxproj"> + <Project>{a5911cd7-f8e8-440c-a23e-4843a0636f3a}</Project> + </ProjectReference> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project>
\ No newline at end of file diff --git a/modules/signal_processing/src/c/signal_processing.vcxproj.filters b/modules/signal_processing/src/c/signal_processing.vcxproj.filters new file mode 100755 index 000000000..d1dd8f3a8 --- /dev/null +++ b/modules/signal_processing/src/c/signal_processing.vcxproj.filters @@ -0,0 +1,99 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Source Files"> + <UniqueIdentifier>{e9de913f-eaff-49f5-a98a-c1e43a30fac3}</UniqueIdentifier> + <Extensions>cpp;c;cxx;rc;def;r;odl;idl;hpj;bat</Extensions> + </Filter> + <Filter Include="Header Files"> + <UniqueIdentifier>{7d355e9c-4382-4b73-b57c-232fd1df0fff}</UniqueIdentifier> + <Extensions>h;hpp;hxx;hm;inl</Extensions> + </Filter> + <Filter Include="localization"> + <UniqueIdentifier>{daf54f0c-b81b-48af-b068-f015dbe56e00}</UniqueIdentifier> + </Filter> + <Filter Include="Libraries Dependencies"> + <UniqueIdentifier>{5055e0f1-e648-40da-98ae-c94c3a3b6c2e}</UniqueIdentifier> + </Filter> + <Filter Include="Libraries Dependencies\Imports"> + <UniqueIdentifier>{c6ac18c8-f30f-4076-a6ed-e24976cec289}</UniqueIdentifier> + </Filter> + <Filter Include="Resource Files"> + <UniqueIdentifier>{f64486fd-3c8c-42ba-9661-87c1796473cd}</UniqueIdentifier> + </Filter> + </ItemGroup> + <ItemGroup> + <ClCompile Include="corrtable.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="DllmainSignal_processing.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\c\gw_signal.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\c\sci_amell.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\c\sci_corr.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\c\sci_delip.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\c\sci_ffir.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\c\sci_fft.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\c\sci_fiir.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\c\sci_remez.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\c\sci_rpem.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\c\sci_syredi.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="conv2.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\c\sci_conv2.c"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> + <ItemGroup> + <ClInclude Include="..\..\includes\dynlib_signal_processing.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\includes\gw_signal.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="conv2.h"> + <Filter>Header Files</Filter> + </ClInclude> + </ItemGroup> + <ItemGroup> + <None Include="core_import.def"> + <Filter>Libraries Dependencies\Imports</Filter> + </None> + <None Include="signal_processing_f_Import.def"> + <Filter>Libraries Dependencies\Imports</Filter> + </None> + <None Include="..\..\Makefile.am" /> + <None Include="..\..\signal_processing.iss" /> + <None Include="..\..\sci_gateway\signal_processing_gateway.xml" /> + <None Include="..\..\locales\signal_processing.pot"> + <Filter>localization</Filter> + </None> + </ItemGroup> + <ItemGroup> + <ResourceCompile Include="signal_processing.rc"> + <Filter>Resource Files</Filter> + </ResourceCompile> + </ItemGroup> +</Project>
\ No newline at end of file diff --git a/modules/signal_processing/src/c/signal_processing_f_Import.def b/modules/signal_processing/src/c/signal_processing_f_Import.def new file mode 100755 index 000000000..abcce6939 --- /dev/null +++ b/modules/signal_processing/src/c/signal_processing_f_Import.def @@ -0,0 +1,17 @@ +LIBRARY signal_processing_f.dll + + +EXPORTS +; --------------------------------------- +; signal_processing_f +; --------------------------------------- +corexy_ +corexx_ +scisyredi_ +scirpem_ +sciremez_ +scifft_ +scifiir_ +scidelip_ +scicorr_ +sciamell_
\ No newline at end of file diff --git a/modules/signal_processing/src/fortran/.deps/.dirstamp b/modules/signal_processing/src/fortran/.deps/.dirstamp new file mode 100755 index 000000000..e69de29bb --- /dev/null +++ b/modules/signal_processing/src/fortran/.deps/.dirstamp diff --git a/modules/signal_processing/src/fortran/.dirstamp b/modules/signal_processing/src/fortran/.dirstamp new file mode 100755 index 000000000..e69de29bb --- /dev/null +++ b/modules/signal_processing/src/fortran/.dirstamp diff --git a/modules/signal_processing/src/fortran/.libs/amell.o b/modules/signal_processing/src/fortran/.libs/amell.o Binary files differnew file mode 100755 index 000000000..fb3730913 --- /dev/null +++ b/modules/signal_processing/src/fortran/.libs/amell.o diff --git a/modules/signal_processing/src/fortran/.libs/bldenz.o b/modules/signal_processing/src/fortran/.libs/bldenz.o Binary files differnew file mode 100755 index 000000000..a25bf979c --- /dev/null +++ b/modules/signal_processing/src/fortran/.libs/bldenz.o diff --git a/modules/signal_processing/src/fortran/.libs/blnumz.o b/modules/signal_processing/src/fortran/.libs/blnumz.o Binary files differnew file mode 100755 index 000000000..9b5fcee9f --- /dev/null +++ b/modules/signal_processing/src/fortran/.libs/blnumz.o diff --git a/modules/signal_processing/src/fortran/.libs/bounn.o b/modules/signal_processing/src/fortran/.libs/bounn.o Binary files differnew file mode 100755 index 000000000..1b808b471 --- /dev/null +++ b/modules/signal_processing/src/fortran/.libs/bounn.o diff --git a/modules/signal_processing/src/fortran/.libs/cheby.o b/modules/signal_processing/src/fortran/.libs/cheby.o Binary files differnew file mode 100755 index 000000000..261fbb014 --- /dev/null +++ b/modules/signal_processing/src/fortran/.libs/cheby.o diff --git a/modules/signal_processing/src/fortran/.libs/cmpse2.o b/modules/signal_processing/src/fortran/.libs/cmpse2.o Binary files differnew file mode 100755 index 000000000..dd513432c --- /dev/null +++ b/modules/signal_processing/src/fortran/.libs/cmpse2.o diff --git a/modules/signal_processing/src/fortran/.libs/cmpse3.o b/modules/signal_processing/src/fortran/.libs/cmpse3.o Binary files differnew file mode 100755 index 000000000..090cf4d4b --- /dev/null +++ b/modules/signal_processing/src/fortran/.libs/cmpse3.o diff --git a/modules/signal_processing/src/fortran/.libs/coeft.o b/modules/signal_processing/src/fortran/.libs/coeft.o Binary files differnew file mode 100755 index 000000000..5c46933e1 --- /dev/null +++ b/modules/signal_processing/src/fortran/.libs/coeft.o diff --git a/modules/signal_processing/src/fortran/.libs/compel.o b/modules/signal_processing/src/fortran/.libs/compel.o Binary files differnew file mode 100755 index 000000000..cebe47e9e --- /dev/null +++ b/modules/signal_processing/src/fortran/.libs/compel.o diff --git a/modules/signal_processing/src/fortran/.libs/degree.o b/modules/signal_processing/src/fortran/.libs/degree.o Binary files differnew file mode 100755 index 000000000..ce6354ee5 --- /dev/null +++ b/modules/signal_processing/src/fortran/.libs/degree.o diff --git a/modules/signal_processing/src/fortran/.libs/deli1.o b/modules/signal_processing/src/fortran/.libs/deli1.o Binary files differnew file mode 100755 index 000000000..dc7505c43 --- /dev/null +++ b/modules/signal_processing/src/fortran/.libs/deli1.o diff --git a/modules/signal_processing/src/fortran/.libs/deli11.o b/modules/signal_processing/src/fortran/.libs/deli11.o Binary files differnew file mode 100755 index 000000000..9331e5a6a --- /dev/null +++ b/modules/signal_processing/src/fortran/.libs/deli11.o diff --git a/modules/signal_processing/src/fortran/.libs/deli2.o b/modules/signal_processing/src/fortran/.libs/deli2.o Binary files differnew file mode 100755 index 000000000..1779a5a08 --- /dev/null +++ b/modules/signal_processing/src/fortran/.libs/deli2.o diff --git a/modules/signal_processing/src/fortran/.libs/delip.o b/modules/signal_processing/src/fortran/.libs/delip.o Binary files differnew file mode 100755 index 000000000..5e672d2a7 --- /dev/null +++ b/modules/signal_processing/src/fortran/.libs/delip.o diff --git a/modules/signal_processing/src/fortran/.libs/dellk.o b/modules/signal_processing/src/fortran/.libs/dellk.o Binary files differnew file mode 100755 index 000000000..5a2142191 --- /dev/null +++ b/modules/signal_processing/src/fortran/.libs/dellk.o diff --git a/modules/signal_processing/src/fortran/.libs/desi00.o b/modules/signal_processing/src/fortran/.libs/desi00.o Binary files differnew file mode 100755 index 000000000..e1d52b158 --- /dev/null +++ b/modules/signal_processing/src/fortran/.libs/desi00.o diff --git a/modules/signal_processing/src/fortran/.libs/desi01.o b/modules/signal_processing/src/fortran/.libs/desi01.o Binary files differnew file mode 100755 index 000000000..5ddc24713 --- /dev/null +++ b/modules/signal_processing/src/fortran/.libs/desi01.o diff --git a/modules/signal_processing/src/fortran/.libs/desi11.o b/modules/signal_processing/src/fortran/.libs/desi11.o Binary files differnew file mode 100755 index 000000000..c05f67794 --- /dev/null +++ b/modules/signal_processing/src/fortran/.libs/desi11.o diff --git a/modules/signal_processing/src/fortran/.libs/desi12.o b/modules/signal_processing/src/fortran/.libs/desi12.o Binary files differnew file mode 100755 index 000000000..70dff4f5c --- /dev/null +++ b/modules/signal_processing/src/fortran/.libs/desi12.o diff --git a/modules/signal_processing/src/fortran/.libs/desi14.o b/modules/signal_processing/src/fortran/.libs/desi14.o Binary files differnew file mode 100755 index 000000000..e370e8b6b --- /dev/null +++ b/modules/signal_processing/src/fortran/.libs/desi14.o diff --git a/modules/signal_processing/src/fortran/.libs/desi21.o b/modules/signal_processing/src/fortran/.libs/desi21.o Binary files differnew file mode 100755 index 000000000..cc2cd5fd3 --- /dev/null +++ b/modules/signal_processing/src/fortran/.libs/desi21.o diff --git a/modules/signal_processing/src/fortran/.libs/desi22.o b/modules/signal_processing/src/fortran/.libs/desi22.o Binary files differnew file mode 100755 index 000000000..1172f6475 --- /dev/null +++ b/modules/signal_processing/src/fortran/.libs/desi22.o diff --git a/modules/signal_processing/src/fortran/.libs/desi24.o b/modules/signal_processing/src/fortran/.libs/desi24.o Binary files differnew file mode 100755 index 000000000..8558e4a11 --- /dev/null +++ b/modules/signal_processing/src/fortran/.libs/desi24.o diff --git a/modules/signal_processing/src/fortran/.libs/desia.o b/modules/signal_processing/src/fortran/.libs/desia.o Binary files differnew file mode 100755 index 000000000..06c076922 --- /dev/null +++ b/modules/signal_processing/src/fortran/.libs/desia.o diff --git a/modules/signal_processing/src/fortran/.libs/desib.o b/modules/signal_processing/src/fortran/.libs/desib.o Binary files differnew file mode 100755 index 000000000..048f520e7 --- /dev/null +++ b/modules/signal_processing/src/fortran/.libs/desib.o diff --git a/modules/signal_processing/src/fortran/.libs/dfft2.o b/modules/signal_processing/src/fortran/.libs/dfft2.o Binary files differnew file mode 100755 index 000000000..2ee3a3752 --- /dev/null +++ b/modules/signal_processing/src/fortran/.libs/dfft2.o diff --git a/modules/signal_processing/src/fortran/.libs/dfftbi.o b/modules/signal_processing/src/fortran/.libs/dfftbi.o Binary files differnew file mode 100755 index 000000000..d66015a1c --- /dev/null +++ b/modules/signal_processing/src/fortran/.libs/dfftbi.o diff --git a/modules/signal_processing/src/fortran/.libs/dfftmx.o b/modules/signal_processing/src/fortran/.libs/dfftmx.o Binary files differnew file mode 100755 index 000000000..00d6b3f19 --- /dev/null +++ b/modules/signal_processing/src/fortran/.libs/dfftmx.o diff --git a/modules/signal_processing/src/fortran/.libs/dgee01.o b/modules/signal_processing/src/fortran/.libs/dgee01.o Binary files differnew file mode 100755 index 000000000..643f10afd --- /dev/null +++ b/modules/signal_processing/src/fortran/.libs/dgee01.o diff --git a/modules/signal_processing/src/fortran/.libs/dsn2.o b/modules/signal_processing/src/fortran/.libs/dsn2.o Binary files differnew file mode 100755 index 000000000..1913ecd7a --- /dev/null +++ b/modules/signal_processing/src/fortran/.libs/dsn2.o diff --git a/modules/signal_processing/src/fortran/.libs/dsqrtc.o b/modules/signal_processing/src/fortran/.libs/dsqrtc.o Binary files differnew file mode 100755 index 000000000..349c52930 --- /dev/null +++ b/modules/signal_processing/src/fortran/.libs/dsqrtc.o diff --git a/modules/signal_processing/src/fortran/.libs/fft842.o b/modules/signal_processing/src/fortran/.libs/fft842.o Binary files differnew file mode 100755 index 000000000..a42c97426 --- /dev/null +++ b/modules/signal_processing/src/fortran/.libs/fft842.o diff --git a/modules/signal_processing/src/fortran/.libs/filbut.o b/modules/signal_processing/src/fortran/.libs/filbut.o Binary files differnew file mode 100755 index 000000000..5b73b1844 --- /dev/null +++ b/modules/signal_processing/src/fortran/.libs/filbut.o diff --git a/modules/signal_processing/src/fortran/.libs/freque.o b/modules/signal_processing/src/fortran/.libs/freque.o Binary files differnew file mode 100755 index 000000000..7816f9470 --- /dev/null +++ b/modules/signal_processing/src/fortran/.libs/freque.o diff --git a/modules/signal_processing/src/fortran/.libs/gee.o b/modules/signal_processing/src/fortran/.libs/gee.o Binary files differnew file mode 100755 index 000000000..8ec609f9b --- /dev/null +++ b/modules/signal_processing/src/fortran/.libs/gee.o diff --git a/modules/signal_processing/src/fortran/.libs/hammin.o b/modules/signal_processing/src/fortran/.libs/hammin.o Binary files differnew file mode 100755 index 000000000..63f855ff6 --- /dev/null +++ b/modules/signal_processing/src/fortran/.libs/hammin.o diff --git a/modules/signal_processing/src/fortran/.libs/ino.o b/modules/signal_processing/src/fortran/.libs/ino.o Binary files differnew file mode 100755 index 000000000..e3795b059 --- /dev/null +++ b/modules/signal_processing/src/fortran/.libs/ino.o diff --git a/modules/signal_processing/src/fortran/.libs/nstabl.o b/modules/signal_processing/src/fortran/.libs/nstabl.o Binary files differnew file mode 100755 index 000000000..332a5e0dd --- /dev/null +++ b/modules/signal_processing/src/fortran/.libs/nstabl.o diff --git a/modules/signal_processing/src/fortran/.libs/ouch.o b/modules/signal_processing/src/fortran/.libs/ouch.o Binary files differnew file mode 100755 index 000000000..523a79748 --- /dev/null +++ b/modules/signal_processing/src/fortran/.libs/ouch.o diff --git a/modules/signal_processing/src/fortran/.libs/parcha.o b/modules/signal_processing/src/fortran/.libs/parcha.o Binary files differnew file mode 100755 index 000000000..0ec11635d --- /dev/null +++ b/modules/signal_processing/src/fortran/.libs/parcha.o diff --git a/modules/signal_processing/src/fortran/.libs/poles.o b/modules/signal_processing/src/fortran/.libs/poles.o Binary files differnew file mode 100755 index 000000000..d652ee3f6 --- /dev/null +++ b/modules/signal_processing/src/fortran/.libs/poles.o diff --git a/modules/signal_processing/src/fortran/.libs/r2tx.o b/modules/signal_processing/src/fortran/.libs/r2tx.o Binary files differnew file mode 100755 index 000000000..70ce0c20b --- /dev/null +++ b/modules/signal_processing/src/fortran/.libs/r2tx.o diff --git a/modules/signal_processing/src/fortran/.libs/r4tx.o b/modules/signal_processing/src/fortran/.libs/r4tx.o Binary files differnew file mode 100755 index 000000000..d90bf64f2 --- /dev/null +++ b/modules/signal_processing/src/fortran/.libs/r4tx.o diff --git a/modules/signal_processing/src/fortran/.libs/r8tx.o b/modules/signal_processing/src/fortran/.libs/r8tx.o Binary files differnew file mode 100755 index 000000000..e24bcd2da --- /dev/null +++ b/modules/signal_processing/src/fortran/.libs/r8tx.o diff --git a/modules/signal_processing/src/fortran/.libs/remez.o b/modules/signal_processing/src/fortran/.libs/remez.o Binary files differnew file mode 100755 index 000000000..a47b83032 --- /dev/null +++ b/modules/signal_processing/src/fortran/.libs/remez.o diff --git a/modules/signal_processing/src/fortran/.libs/romeg.o b/modules/signal_processing/src/fortran/.libs/romeg.o Binary files differnew file mode 100755 index 000000000..54c29e35a --- /dev/null +++ b/modules/signal_processing/src/fortran/.libs/romeg.o diff --git a/modules/signal_processing/src/fortran/.libs/rpem.o b/modules/signal_processing/src/fortran/.libs/rpem.o Binary files differnew file mode 100755 index 000000000..313ec475b --- /dev/null +++ b/modules/signal_processing/src/fortran/.libs/rpem.o diff --git a/modules/signal_processing/src/fortran/.libs/sn.o b/modules/signal_processing/src/fortran/.libs/sn.o Binary files differnew file mode 100755 index 000000000..8f885b5f6 --- /dev/null +++ b/modules/signal_processing/src/fortran/.libs/sn.o diff --git a/modules/signal_processing/src/fortran/.libs/snell.o b/modules/signal_processing/src/fortran/.libs/snell.o Binary files differnew file mode 100755 index 000000000..67ba9a9ec --- /dev/null +++ b/modules/signal_processing/src/fortran/.libs/snell.o diff --git a/modules/signal_processing/src/fortran/.libs/syredi.o b/modules/signal_processing/src/fortran/.libs/syredi.o Binary files differnew file mode 100755 index 000000000..e37e8cebd --- /dev/null +++ b/modules/signal_processing/src/fortran/.libs/syredi.o diff --git a/modules/signal_processing/src/fortran/.libs/tg02ad.o b/modules/signal_processing/src/fortran/.libs/tg02ad.o Binary files differnew file mode 100755 index 000000000..d6f695525 --- /dev/null +++ b/modules/signal_processing/src/fortran/.libs/tg02ad.o diff --git a/modules/signal_processing/src/fortran/.libs/tranpo.o b/modules/signal_processing/src/fortran/.libs/tranpo.o Binary files differnew file mode 100755 index 000000000..604f965e7 --- /dev/null +++ b/modules/signal_processing/src/fortran/.libs/tranpo.o diff --git a/modules/signal_processing/src/fortran/.libs/transn.o b/modules/signal_processing/src/fortran/.libs/transn.o Binary files differnew file mode 100755 index 000000000..5d585bb5f --- /dev/null +++ b/modules/signal_processing/src/fortran/.libs/transn.o diff --git a/modules/signal_processing/src/fortran/.libs/tranze.o b/modules/signal_processing/src/fortran/.libs/tranze.o Binary files differnew file mode 100755 index 000000000..078af66f5 --- /dev/null +++ b/modules/signal_processing/src/fortran/.libs/tranze.o diff --git a/modules/signal_processing/src/fortran/.libs/trbipo.o b/modules/signal_processing/src/fortran/.libs/trbipo.o Binary files differnew file mode 100755 index 000000000..074f84434 --- /dev/null +++ b/modules/signal_processing/src/fortran/.libs/trbipo.o diff --git a/modules/signal_processing/src/fortran/.libs/trbize.o b/modules/signal_processing/src/fortran/.libs/trbize.o Binary files differnew file mode 100755 index 000000000..5c80a5458 --- /dev/null +++ b/modules/signal_processing/src/fortran/.libs/trbize.o diff --git a/modules/signal_processing/src/fortran/.libs/tscccf.o b/modules/signal_processing/src/fortran/.libs/tscccf.o Binary files differnew file mode 100755 index 000000000..ae0076283 --- /dev/null +++ b/modules/signal_processing/src/fortran/.libs/tscccf.o diff --git a/modules/signal_processing/src/fortran/Elementary_functions_Import.def b/modules/signal_processing/src/fortran/Elementary_functions_Import.def new file mode 100755 index 000000000..a907e258f --- /dev/null +++ b/modules/signal_processing/src/fortran/Elementary_functions_Import.def @@ -0,0 +1,6 @@ + LIBRARY elementary_functions.dll + + +EXPORTS +;elementary_functions +unsfdcopy_
\ No newline at end of file diff --git a/modules/signal_processing/src/fortran/Elementary_functions_f_Import.def b/modules/signal_processing/src/fortran/Elementary_functions_f_Import.def new file mode 100755 index 000000000..f385d393e --- /dev/null +++ b/modules/signal_processing/src/fortran/Elementary_functions_f_Import.def @@ -0,0 +1,13 @@ + LIBRARY elementary_functions_f.dll + + +EXPORTS +;elementary_functions_f +arcosh_ +arsinh_ +coshin_ +dset_ +entier_ +iset_ +lnblnk_ +simple_ diff --git a/modules/signal_processing/src/fortran/amell.f b/modules/signal_processing/src/fortran/amell.f new file mode 100755 index 000000000..56b2b15ac --- /dev/null +++ b/modules/signal_processing/src/fortran/amell.f @@ -0,0 +1,93 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) INRIA +c +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + + subroutine amell(du, dk, dsn2 ,n) +c!purpose +c calculation of the jacobi's elliptic function am(u,k) +c +c external calculation of the parameter necessary +c ddk = k($dk) +c dq = exp(-pi*k'/k) ... (jacobi's nome) +c!calling sequence +c subroutine amell(du, dk, dsn2 ,n) +c double precision du(n),dsn2(n),dk +c integer n +c! +c + double precision dpi, domi,dsn2 + double precision de, dz, dpi2, dq, dm, du, dk, dc, dqq, dh, dq1, + * dq2 ,ddk ,dkprim,dsn22,du1 + double precision dlamch + dimension du(n),dsn2(n) + logical neg +c + data de, dz /1.0d+0,2.0d+0/ +c + domi=2.0d+0*dlamch('p') + dpi=4.0d+0*atan(1.0d+0) + call compel(dk,ddk) + call compel(sqrt(1.0d+0-dk*dk),dkprim) + do 1 ijk=1,n + neg=.false. + du1=du(ijk) + if(du1.lt.0.0d+0) then + neg=.true. + du1=-du1 + endif + du1=mod(du1,4.0d+0*ddk) + dq=exp(-dpi*dkprim/ddk) + dpi2 = dpi/dz + if (abs(dq).ge.de) go to 30 +c + dm = dpi2*du1/ddk + dc = dz*dm + dc = cos(dc) +c + dm = sin(dm)*ddk/dpi2 + dqq = dq*dq + dq1 = dq + dq2 = dqq +c + do 10 i=1,100 + dh = (de-dq1)/(de-dq2) + dh = dh*dh + dh = dh*(de-dz*dq2*dc+dq2*dq2) + dh = dh/(de-dz*dq1*dc+dq1*dq1) + dm = dm*dh +c + dh = abs(de-dh) + if (dh.lt.domi) go to 20 +c + dq1 = dq1*dqq + dq2 = dq2*dqq + 10 continue +c + go to 30 +c + 20 if(dm.lt.-1.0d+0) dm=-1.0d+0 + if(dm.gt.1.0d+0) dm=1.0d+0 + dsn22 = asin(dm) + if(dsn22.lt.0.0d+0) dsn22=dsn22+dpi*2.0d+0 + if(du1.ge.ddk.and.du1.le.2.0d+0*ddk) then + dsn22=dpi-dsn22 + endif + if(du1.ge.2.0d+0*ddk.and .du1.le.3.0d+0*ddk) then + dsn22=3.0d+0*dpi-dsn22 + endif + goto 2 +c + 30 dsn22 = 0.0d+0 + 2 continue + if (neg) then + dsn22=-dsn22 + endif + dsn2(ijk)=dsn22 + 1 continue + return + end diff --git a/modules/signal_processing/src/fortran/amell.lo b/modules/signal_processing/src/fortran/amell.lo new file mode 100755 index 000000000..1a4e2ccd7 --- /dev/null +++ b/modules/signal_processing/src/fortran/amell.lo @@ -0,0 +1,12 @@ +# src/fortran/amell.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/amell.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/signal_processing/src/fortran/bldenz.f b/modules/signal_processing/src/fortran/bldenz.f new file mode 100755 index 000000000..d08c7fe6d --- /dev/null +++ b/modules/signal_processing/src/fortran/bldenz.f @@ -0,0 +1,36 @@ + subroutine bldenz(ndeg,nj,zfa,zpr,zpi,nb,fact,c1,c0) +c!purpose +c build denominator blocks of second order -- z-domain +c!calling sequence +c subroutine bldenz (ndeg,nj,zfa,zpr,zpi,nb,fact,c1,c0) +c implicit double precision (a-h,o-z) +c double precision zpr(*),zpi(*) +c double precision c1(*),c0(*) +c! + implicit double precision (a-h,o-z) + double precision zpr(*),zpi(*) + double precision c1(*),c0(*) + flmi=2.0d+0*dlamch('p') + nb = (ndeg+1)/2 + n = 0 + fact = zfa + do 40 i=1,nb + n = n + 1 + qr = zpr(n) + qi = zpi(n) + if (abs(qi).lt.flmi) go to 10 + c1(i) = -2.0d+0*qr + c0(i) = qr*qr + qi*qi + go to 40 + 10 if (n.ge.nj) go to 20 + if (abs(zpi(n+1)).lt.flmi) go to 30 + 20 c1(i) = -qr + c0(i) = 0.0d+0 + go to 40 + 30 n = n + 1 + qi = zpr(n) + c1(i) = -qr - qi + c0(i) = qr*qi + 40 continue + return + end diff --git a/modules/signal_processing/src/fortran/bldenz.lo b/modules/signal_processing/src/fortran/bldenz.lo new file mode 100755 index 000000000..e433f6b52 --- /dev/null +++ b/modules/signal_processing/src/fortran/bldenz.lo @@ -0,0 +1,12 @@ +# src/fortran/bldenz.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/bldenz.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/signal_processing/src/fortran/blnumz.f b/modules/signal_processing/src/fortran/blnumz.f new file mode 100755 index 000000000..db1090adf --- /dev/null +++ b/modules/signal_processing/src/fortran/blnumz.f @@ -0,0 +1,48 @@ + subroutine blnumz(nzm,nzero,zzr,zzi,b2,b1,b0,nze) +c!but +c build numerator blocks of second order +c! + implicit double precision (a-h,o-z) + dimension nzm(*),nzero(*),zzr(*),zzi(*) + double precision b0(*),b1(*),b2(*) + dimension nze(*) +c + n = 0 + me = nzm(4) + do 10 i=1,me + nze(i) = nzero(i) + 10 continue +c + do 70 i=1,me + qr = zzr(i) + nz = nze(i) +c + 20 if (nz.eq.0) go to 70 + n = n + 1 + b2(n) = 1.0d+0 + if (nz.eq.1) go to 30 + b1(n) = -2.0d+0*qr + b0(n) = 1.0d+0 + nz = nz - 2 + if (nz.gt.0) go to 20 + go to 70 +c + 30 if (i.eq.me) go to 60 + ma = i + 1 + do 40 ii=ma,me + if (zzi(ii).eq.0.0d+0) go to 50 + 40 continue + go to 60 +c + 50 qrr = zzr(ii) + b1(n) = -qr - qrr + b0(n) = qr*qrr + nze(ii) = nze(ii) - 1 + go to 70 +c + 60 b1(n) = -qr + b0(n) = 0.0d+0 +c + 70 continue + return + end diff --git a/modules/signal_processing/src/fortran/blnumz.lo b/modules/signal_processing/src/fortran/blnumz.lo new file mode 100755 index 000000000..4ee64796d --- /dev/null +++ b/modules/signal_processing/src/fortran/blnumz.lo @@ -0,0 +1,12 @@ +# src/fortran/blnumz.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/blnumz.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/signal_processing/src/fortran/bounn.f b/modules/signal_processing/src/fortran/bounn.f new file mode 100755 index 000000000..4b22f6a44 --- /dev/null +++ b/modules/signal_processing/src/fortran/bounn.f @@ -0,0 +1,54 @@ +C/MEMBR ADD NAME=BOUNN,SSI=0 + subroutine bounn(adeg,acap12,vsn) +c!purpose +C calculation of a bounn for vsn or acap12 for elliptic filters +c! + implicit double precision (a-h,o-z) +c + dimension dk(3), df(3) + data de /1.0d+0/ + dff(dd) = (dellk(dd)*dkk/dellk(sqrt(de-dd*dd)))**ii - ddeg + dpi=4.0d+0*atan(1.0d+00) + if (acap12.le.0.0d+0) go to 10 + dcap12 = acap12 + deg = 1.0d+0/adeg + ii = 1 + go to 20 + 10 dcap12 = de/vsn + deg = adeg + ii = -1 + 20 dcap14 = sqrt(de-dcap12*dcap12) + dkk = dellk(dcap14)/dellk(dcap12) + dq = exp(-dpi*dkk*deg) + dk1 = 4.0d+0*sqrt(dq) + if (dk1.lt.de) go to 30 + dq = 2.0d+0*dq + dq = (de-dq)/(de+dq) + dq = dq*dq + dk1 = sqrt(de-dq*dq) + 30 dk(1) = dk1 + dk(2) = (de+dk(1))/2.0d+0 + ddeg = adeg + df(1) = dff(dk(1)) + df(2) = dff(dk(2)) + 40 dk(3) = dk(1) - df(1)*(dk(1)-dk(2))/(df(1)-df(2)) + df(3) = dff(dk(3)) + if (abs(df(3)).lt.1.0d-6) go to 60 + dmax = 0.0d+0 + do 50 j=1,3 + dab = abs(df(j)) + if (dmax.gt.dab) go to 50 + jj = j + dmax = dab + 50 continue + if (jj.eq.3) go to 40 + dk(jj) = dk(3) + df(jj) = df(3) + go to 40 + 60 if (acap12.le.0.) go to 70 + dde = de/dk(3) + vsn = dde + return + 70 acap12 = dk(3) + return + end diff --git a/modules/signal_processing/src/fortran/bounn.lo b/modules/signal_processing/src/fortran/bounn.lo new file mode 100755 index 000000000..fb5424368 --- /dev/null +++ b/modules/signal_processing/src/fortran/bounn.lo @@ -0,0 +1,12 @@ +# src/fortran/bounn.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/bounn.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/signal_processing/src/fortran/cheby.f b/modules/signal_processing/src/fortran/cheby.f new file mode 100755 index 000000000..9e354c78a --- /dev/null +++ b/modules/signal_processing/src/fortran/cheby.f @@ -0,0 +1,96 @@ +C/MEMBR ADD NAME=CHEBY,SSI=0 + subroutine cheby(ordr,demi,ieo,dp,x0,tam,win) +c! +c sous-programme: cheby +c fenetre de dolph chebyshev +c en double precision +c acheve le 05/12/85 +c ecrit par philippe touron +c +c +c parametres entrants +c ------------------- +c ordr, l'ordre du filtre (entier) +c demi, l'ordre de la demi fenetre (entier) +c ieo, indicateur de parite vaut 0 si ordr pair et 1 sinon (entier) +c dp, attenuation en absolu (reelle) +c x0, constante de la fenetre de chebyshev fonction de +c la largeur du lobe principale (reelle) +c tam, tableau de travail (reels) qui doit etre dans un programme +c appelant dimensionne a 3 fois ordr) +c +c parametres sortants +c ------------------- +c win, tableau de valeurs de la fenetre (reelles) qui doit dans +c un programme appelant etre dimensionne a ordr +c +c variables internes +c ------------------ +c c0,c1,c2, des buffers de calcul (reels) +c compt,indi,xcompt,xindi, compteurs de boucles (entiers et reels) +c teta,gama, coefficients de la fenetres de chebyshev (reels) +c +c sous programmes appele: coshin +c +c! + double precision win(*),tam(*) + double precision x0,dp,xordr,teta,gama,freq + double precision pi,twopi,twn,c0,c1,c2,somm,xcompt,xindi + double precision coshin + integer ordr,demi,compt,indi,icompt,jcompt +c + xordr=dble(ordr) + teta=(x0+1.)/2.0d+0 + gama=(x0-1.)/2.0d+0 + pi=acos(-1.0d+0) + twopi=2.0d+0*pi + c0=(xordr-1.0d+0)/2.0d+0 + do 40 compt=1,ordr + icompt=ordr+compt + jcompt=icompt+ordr + xcompt=dble(compt)-1.0d+0 + c1=xcompt/xordr + freq=teta*cos(twopi*c1)+gama + CRES=abs(freq)-1.0d+0 + if (CRES .le. 0) then + goto 10 + else + goto 20 + endif +10 tam(icompt)=dp*cos(c0*acos(freq)) + goto 30 +20 tam(icompt)=dp*cosh(c0*coshin(freq)) +30 tam(jcompt)=0.0d+0 +c +c modification si filtre d'ordr pair +c + if(ieo.eq.1)goto 40 + tam(jcompt)=-tam(icompt)*sin(pi*c1) + tam(icompt)= tam(icompt)*cos(pi*c1) + if(compt.gt.(ordr/2+1))then + tam(icompt)=-tam(icompt) + tam(jcompt)=-tam(jcompt) + endif +40 continue +c +c transformee de fourrier inverse +c + twn=twopi/xordr + do 60 compt=1,demi + xcompt=dble(compt)-1.0d+0 + somm=0.0d+0 + do 50 indi=1,ordr + icompt=indi+ordr + jcompt=icompt+ordr + xindi=dble(indi)-1.0d+0 + somm=somm+tam(icompt)*cos(twn*xindi*xcompt) + & +tam(jcompt)*sin(twn*xindi*xcompt) +50 continue + win(compt)=somm +60 continue + c2=win(1) + do 70 compt=1,demi + win(compt)=win(compt)/c2 +70 continue + return + end diff --git a/modules/signal_processing/src/fortran/cheby.lo b/modules/signal_processing/src/fortran/cheby.lo new file mode 100755 index 000000000..1e976cec9 --- /dev/null +++ b/modules/signal_processing/src/fortran/cheby.lo @@ -0,0 +1,12 @@ +# src/fortran/cheby.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/cheby.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/signal_processing/src/fortran/cmpse2.f b/modules/signal_processing/src/fortran/cmpse2.f new file mode 100755 index 000000000..6d7e189bf --- /dev/null +++ b/modules/signal_processing/src/fortran/cmpse2.f @@ -0,0 +1,143 @@ +C/MEMBR ADD NAME=CMPSE2,SSI=0 + subroutine cmpse2(m,n,mode,dgetx,dgety,xa,xr,xi,zr,zi,ierr) +c! +c calcul de correlations. +c +c authors: l r rabiner +c bell laboratories, murray hill, new jersey 07974 +c r w schafer and d dlugos +c +c ieee trans on audio and elect, vol 18, no 4, pp 439-442, 1970. +c +c input: m is the section size(must be a power of 2) +c n is the number of samples to be used is the analysis +c mode is the data format type +c mode = 0 auto correlation +c mode = 1 cross correlation +c mode = 2 auto covariance +c mode = 3 cross covariance +c fs is the sampling frequency in hz +c iwin is the window type +c iwin = 1 rectangular window +c iwin = 2 hamming window +c +c modifications scilab : +c +c en sortie xa contient m/2+1 coeff de correlation +c xr,xi,zr,zi sont des tableaux de travail +c xa,xr,xi dimensionnes a m=puissance de 2 +c zr,zi dimensionnes a m/2+1 +c zr(1),zr(2) contient en sortie xmean et ymean +c! + double precision xa(m),xr(m),xi(m),zr(*),zi(*) + double precision xmean,ymean,xsum,ysum,xmnr,xmni + double precision xir,xii,yir,yii,yirbis,fn + external dgetx,dgety + common/ iercorr /iero +c +c + lshft=m/2 + mhlf1=lshft+1 + nsect=(dble(n)+dble(lshft)-1.0d+0)/dble(lshft) + iss=1 + nrd=lshft + xsum=0.0d+0 + ysum=0.0d+0 + do 70 k=1,nsect + if(k.eq.nsect) nrd=n-(k-1)*nrd + call dgetx(xa,nrd,iss) + if (iero.gt.0) return + do 40 i=1,nrd + xsum=xsum+xa(i) + 40 continue + if(mode.eq.2) goto 60 + call dgety(xa,nrd,iss) + if (iero.gt.0) return + do 50 i=1,nrd + ysum=ysum+xa(i) + 50 continue + 60 iss=iss+nrd + 70 continue + xmean=xsum/dble(n) + ymean=ysum/dble(n) + if(mode.eq.2) ymean=xmean + xmnr=xmean + xmni=ymean + iss=1 + nrdy=m + nrdx=lshft + do 90 i=1,mhlf1 + zr(i)=0.0d+0 + zi(i)=0.0d+0 + 90 continue + do 190 k=1,nsect + nsect1=nsect-1 + if(k.lt.nsect1) goto 110 + nrdy=n-(k-1)*lshft + if(k.eq.nsect) nrdx=nrdy + if(nrdy.eq.m) goto 110 + nrdy1=nrdy+1 + do 100 i=nrdy1,m + xr(i)=0.0d+0 + xi(i)=0.0d+0 + 100 continue + 110 call dgetx(xa,nrdy,iss) + if (iero.gt.0) return + do 120 i=1,nrdy + xr(i)=xa(i) + xi(i)=xa(i) + 120 continue + if(mode.eq.0..or.mode.eq.2) goto 140 + call dgety(xa,nrdy,iss) + if (iero.gt.0) return + do 130 i=1,nrdy + xi(i)=xa(i) + 130 continue + 140 if(mode.lt.2) goto 160 + do 150 i=1,nrdy + xr(i)=xr(i)-xmnr + xi(i)=xi(i)-xmni + 150 continue + 160 nrdx1=nrdx+1 + do 170 i=nrdx1,m + xr(i)=0.0d+0 + 170 continue + call fft842(0,m,xr,xi,ierr) + if(ierr.gt.0) return + do 180 i=2,lshft + j=m+2-i + xir=0.50d+0*(xr(i)+xr(j)) + xii=0.50d+0*(xi(i)-xi(j)) + yir=0.50d+0*(xr(j)-xr(i)) + yii=0.50d+0*(xi(i)+xi(j)) + yirbis=yir + yir=yii + yii=yirbis + zr(i)=zr(i)+xir*yir+xii*yii + zi(i)=zi(i)+xir*yii-xii*yir + 180 continue + zr(1)=zr(1)+xr(1)*xi(1) + zr(mhlf1)=zr(mhlf1)+xr(mhlf1)*xi(mhlf1) + iss=iss+lshft + 190 continue + do 200 i=2,lshft + j=m+2-i + xr(i)=zr(i) + xi(i)=zi(i) + xr(j)=zr(i) + xi(j)=-zi(i) + 200 continue + xr(1)=zr(1) + xi(1)=zi(1) + xr(mhlf1)=zr(mhlf1) + xi(mhlf1)=zi(mhlf1) + call fft842(1,m,xr,xi,ierr) + if(ierr.gt.0) return + fn=dble(n) + do 210 i=1,mhlf1 + xa(i)=xr(i)/fn + 210 continue + xr(1)=xmean + xr(2)=ymean + return + end diff --git a/modules/signal_processing/src/fortran/cmpse2.lo b/modules/signal_processing/src/fortran/cmpse2.lo new file mode 100755 index 000000000..2bd8587c2 --- /dev/null +++ b/modules/signal_processing/src/fortran/cmpse2.lo @@ -0,0 +1,12 @@ +# src/fortran/cmpse2.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/cmpse2.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/signal_processing/src/fortran/cmpse3.f b/modules/signal_processing/src/fortran/cmpse3.f new file mode 100755 index 000000000..da68c6efc --- /dev/null +++ b/modules/signal_processing/src/fortran/cmpse3.f @@ -0,0 +1,107 @@ +C/MEMBR ADD NAME=CMPSE3,SSI=0 + subroutine cmpse3(m,n,mode,x,y,xr,xi,zr,zi,ierr,ichaud,nbx) +c! +c calcul de correlations. +c +c d'apres rabiner +c ieee trans on audio and elect, vol 18, no 4, pp 439-442, 1970. +c +c input: m is the section size(must be a power of 2) +c n is the number of samples to be used is the analysis +c mode is the data format type +c mode = 0 auto correlation +c mode = 1 cross correlation +c +c modifications scilab : +c +c en sortie xa contient m/2+1 coeff de correlation +c xr,xi sont des tableaux de travail +c xr,xi dimensionnes a m=puissance de 2 +c zr,zi dimensionnes a m/2+1 en sortie zr et zi sont updates +c x et y contiennent les deux series a correler +c! + double precision x(n),y(n) + double precision xr(m),xi(m),zr(*),zi(*) + double precision xir,xii,yir,yii,yirbis +c +c + lshft=m/2 + mhlf1=lshft+1 + nsect=(dble(n)+dble(lshft)-1.0d+0)/dble(lshft) + iss=1 + nrdy=m + nrdx=lshft +c demarrage a chaud + if(ichaud.eq.1) then + call dset(nbx,0.0d+0,xi,1) + if (mode.eq.1) then + call dcopy(m-nbx,y,1,xi(nbx+1),1) + endif + if (mode.eq.0) then + call dcopy(m-nbx,x,1,xi(nbx+1),1) + endif + call fft842(0,m,xr,xi,ierr) + do 181 i=2,lshft + j=m+2-i + xir=0.50d+0*(xr(i)+xr(j)) + xii=0.50d+0*(xi(i)-xi(j)) + yir=0.50d+0*(xr(j)-xr(i)) + yii=0.50d+0*(xi(i)+xi(j)) + yirbis=yir + yir=yii + yii=yirbis + zr(i)=zr(i)+xir*yir+xii*yii + zi(i)=zi(i)+xir*yii-xii*yir + 181 continue + zr(1)=zr(1)+xr(1)*xi(1) + zr(mhlf1)=zr(mhlf1)+xr(mhlf1)*xi(mhlf1) + endif + do 190 k=1,nsect + nsect1=nsect-1 + if(k.lt.nsect1) goto 110 + nrdy=n-(k-1)*lshft + if(k.eq.nsect) nrdx=nrdy + if(nrdy.eq.m) goto 110 + nrdy1=nrdy+1 + do 100 i=nrdy1,m + xr(i)=0.0d+0 + xi(i)=0.0d+0 + 100 continue + 110 continue + call dcopy(nrdy,x(iss),1,xr,1) + if (mode.eq.0) then + call dcopy(nrdy,x(iss),1,xi,1) + endif + if(mode.eq.1) then + call dcopy(nrdy,y(iss),1,xi,1) + endif + nrdx1=nrdx+1 + do 170 i=nrdx1,m + xr(i)=0.0d+0 + 170 continue + call fft842(0,m,xr,xi,ierr) + if(ierr.gt.0) return + do 180 i=2,lshft + j=m+2-i + xir=0.50d+0*(xr(i)+xr(j)) + xii=0.50d+0*(xi(i)-xi(j)) + yir=0.50d+0*(xr(j)-xr(i)) + yii=0.50d+0*(xi(i)+xi(j)) + yirbis=yir + yir=yii + yii=yirbis + zr(i)=zr(i)+xir*yir+xii*yii + zi(i)=zi(i)+xir*yii-xii*yir + 180 continue + zr(1)=zr(1)+xr(1)*xi(1) + zr(mhlf1)=zr(mhlf1)+xr(mhlf1)*xi(mhlf1) + iss=iss+lshft + 190 continue + do 200 i=2,lshft + j=m+2-i + zr(j)=zr(i) + zi(j)=-zi(i) + 200 continue + nbx=nrdy + return + end diff --git a/modules/signal_processing/src/fortran/cmpse3.lo b/modules/signal_processing/src/fortran/cmpse3.lo new file mode 100755 index 000000000..243ba8d42 --- /dev/null +++ b/modules/signal_processing/src/fortran/cmpse3.lo @@ -0,0 +1,12 @@ +# src/fortran/cmpse3.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/cmpse3.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/signal_processing/src/fortran/coeft.f b/modules/signal_processing/src/fortran/coeft.f new file mode 100755 index 000000000..936973994 --- /dev/null +++ b/modules/signal_processing/src/fortran/coeft.f @@ -0,0 +1,41 @@ +C/MEMBR ADD NAME=COEFT,SSI=0 + subroutine coeft(ordre,poler,polei,gain) +c! +c sous-programme : coeft +c calcul du gain de la fonction de transfert +c et des coefficients de la decomposition en elements simples +c en double precision +c ecrit par gregoire de nanteuil le 08-10-1985 +c +c +c parametres entrants +c poler : tableau des parties reelles des poles +c de la fonction de transfert. +c +c polei : tableau des parties imaginaires des poles +c de la fonction de transfert. +c +c parametres sortants +c +c gain : coefficient de la fonction de transfert (gain) +c +c variables internes +c zr,zi,pre,pim,i,j,ordre +c! + double precision gain + double precision poler(*),polei(*) + double precision zr,zi + integer ordre,i +c + zr=1.0d+0 + zi=0.0d+0 + do 40 i=1,ordre + pre=zr*(-poler(i))-zi*(-polei(i)) + pim=zi*(-poler(i))+zr*(-polei(i)) + zr=pre + zi=pim +40 continue + gain=zr +50 continue + return + end diff --git a/modules/signal_processing/src/fortran/coeft.lo b/modules/signal_processing/src/fortran/coeft.lo new file mode 100755 index 000000000..de9450d23 --- /dev/null +++ b/modules/signal_processing/src/fortran/coeft.lo @@ -0,0 +1,12 @@ +# src/fortran/coeft.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/coeft.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/signal_processing/src/fortran/compel.f b/modules/signal_processing/src/fortran/compel.f new file mode 100755 index 000000000..3471e49df --- /dev/null +++ b/modules/signal_processing/src/fortran/compel.f @@ -0,0 +1,37 @@ + subroutine compel(dk, dellk) +c!purpose +c calculate complete elliptic integral of first kind +c!calling sequence +c subroutine compel(dk, dellk) +c double precision dk,dellk +c! + double precision dpi, domi,dellk + double precision de, dgeo, dk, dri, dari, dtest + external slamch, dlamch + double precision dlamch,flma + real slamch +c + data de /1.0d+0/ + flma=2.0d+0**(int(slamch('l'))-2) + dpi=4.0d+0*atan(1.0d+0) + domi=2.0d+0*dlamch('p') + dgeo = de - dk*dk + if (dgeo .le. 0) then + goto 10 + else + goto 20 + endif + 10 dellk = flma + return + 20 dgeo = sqrt(dgeo) + dri = de + 30 dari = dri + dtest = dari*domi + dri = dgeo + dri + if((dari-dgeo-dtest).le.0.0d+0) goto 50 + dgeo = sqrt(dari*dgeo) + dri = 0.50d+0*dri + go to 30 + 50 dellk = dpi/dri + return + end diff --git a/modules/signal_processing/src/fortran/compel.lo b/modules/signal_processing/src/fortran/compel.lo new file mode 100755 index 000000000..c0b8de6e6 --- /dev/null +++ b/modules/signal_processing/src/fortran/compel.lo @@ -0,0 +1,12 @@ +# src/fortran/compel.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/compel.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/signal_processing/src/fortran/core_Import.def b/modules/signal_processing/src/fortran/core_Import.def new file mode 100755 index 000000000..25f7e7d12 --- /dev/null +++ b/modules/signal_processing/src/fortran/core_Import.def @@ -0,0 +1,33 @@ + LIBRARY core.dll + + +EXPORTS +;core +; +com_ +vstk_ +stack_ +iop_ +errgst_ +recu_ +adre_ +cha1_ +parse_ +isrecursioncalltofunction_ +callinterf_ +checkrhs_ +getscalar_ +cremat_ +getrmat_ +copyobj_ +gettype_ +getexternal_ +getmat_ + +; +; explicit imports (COMMON) to fix warning LNK4049: locally defined symbol +; +intersci_ +; + + diff --git a/modules/signal_processing/src/fortran/core_f_Import.def b/modules/signal_processing/src/fortran/core_f_Import.def new file mode 100755 index 000000000..5aa4d3401 --- /dev/null +++ b/modules/signal_processing/src/fortran/core_f_Import.def @@ -0,0 +1,14 @@ + LIBRARY core_f.dll + + +EXPORTS +;core_f +; +allowptr_ +btof_ +extlarg_ +ftob_ +funnam_ +funs_ +isbyref_ +ref2val_ diff --git a/modules/signal_processing/src/fortran/degree.f b/modules/signal_processing/src/fortran/degree.f new file mode 100755 index 000000000..abc10118b --- /dev/null +++ b/modules/signal_processing/src/fortran/degree.f @@ -0,0 +1,32 @@ + subroutine degree(iapro,vsn,acap12,adeg) +c!but +c computation of the minimum filter degree (adeg) +c Nomenclature Rabiner-Gold (page 241) +c acap12=1/k1 +c vsn=1/k +c!calling sequence +c subroutine degree (iapro,vsn,acap12,adeg) +c implicit double precision (a-h,o-z) +c! +c + implicit double precision (a-h,o-z) + double precision dellk +c + go to (10, 20, 20, 30), iapro +c + 10 adeg = log(1.0d+0/acap12)/log(vsn) + return +c + 20 adeg = arcosh(1.0d+0/acap12)/arcosh(vsn) + return +c + 30 de = 1.0d+0 + dcap02 = de/vsn + dcap04 = sqrt(de-dcap02*dcap02) + dcap12 = acap12 + dcap14 = sqrt(de-dcap12*dcap12) + dadeg = (dellk(dcap02)*dellk(dcap14))/(dellk(dcap04)*dellk(dcap12) + & ) + adeg = dadeg + return + end diff --git a/modules/signal_processing/src/fortran/degree.lo b/modules/signal_processing/src/fortran/degree.lo new file mode 100755 index 000000000..4ad390d12 --- /dev/null +++ b/modules/signal_processing/src/fortran/degree.lo @@ -0,0 +1,12 @@ +# src/fortran/degree.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/degree.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/signal_processing/src/fortran/deli1.f b/modules/signal_processing/src/fortran/deli1.f new file mode 100755 index 000000000..01e12e82d --- /dev/null +++ b/modules/signal_processing/src/fortran/deli1.f @@ -0,0 +1,85 @@ +C/MEMBR ADD NAME=DELI1,SSI=0 + subroutine deli1(n,resv,xv,ck) +c!purpose +c res=integral(zero to x) of +c 1/sqrt((1+t*t)(1+ck*ck*t*t)) +c!calling sequence +c subroutine deli1(n,resv,xv,ck) +c double precision resv(n),xv(n),ck +c! + implicit double precision (a-h,o-z) + dimension resv(n),xv(n) +c + dpi=4.0d+0*atan(1.0d+00) + domi=2.0d+0*dlamch('p') +c + do 200 k=1,n + x=xv(k) + if (x .eq. 0) then + goto 10 + else + goto 20 + endif + 10 res = 0.0d+0 + goto 150 +c + 20 if (ck .eq. 0) then + goto 30 + else + goto 40 + endif + 30 res = log(abs(x)+sqrt(1.0d+0+x*x)) + go to 130 +c + 40 angle = abs(1.0d+0/x) + geo = abs(ck) + ari = 1.0d+0 + pim = 0.0d+0 + 50 sqgeo = ari*geo + aari = ari + ari = geo + ari + angle = -sqgeo/angle + angle + sqgeo = sqrt(sqgeo) + if (angle .eq. 0) then + goto 60 + else + goto 70 + endif +c +c replace 0 by a small value, test +c + 60 angle = sqgeo*domi + 70 test = aari*domi*1.0d+05 + CRES=abs(aari-geo)-test + if (CRES .le. 0) then + goto 100 + else + goto 80 + endif + 80 geo = sqgeo + sqgeo + pim = pim + pim + if (angle .lt. 0) then + goto 90 + else + goto 50 + endif + 90 pim = pim + dpi + go to 50 + 100 if (angle .lt. 0) then + goto 110 + else + goto 120 + endif + 110 pim = pim + dpi + 120 res = (atan(ari/angle)+pim)/ari + 130 if (x .lt. 0) then + goto 140 + else + goto 150 + endif + 140 res = -res + 150 continue + resv(k)=res + 200 continue + return + end diff --git a/modules/signal_processing/src/fortran/deli1.lo b/modules/signal_processing/src/fortran/deli1.lo new file mode 100755 index 000000000..b0bff1dac --- /dev/null +++ b/modules/signal_processing/src/fortran/deli1.lo @@ -0,0 +1,12 @@ +# src/fortran/deli1.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/deli1.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/signal_processing/src/fortran/deli11.f b/modules/signal_processing/src/fortran/deli11.f new file mode 100755 index 000000000..135f932a4 --- /dev/null +++ b/modules/signal_processing/src/fortran/deli11.f @@ -0,0 +1,72 @@ +C/MEMBR ADD NAME=DELI11,SSI=0 + subroutine deli11(x, ck,res) +c!purpose +c elliptic function +c!calling sequence +c subroutine deli11(x, ck,res) +c double precision x,ck,res +c! + implicit double precision (a-h,o-z) + dpi=4.0d+0*atan(1.0d+00) + domi=2.0d+0*dlamch('p') + if (x .eq. 0) then + goto 10 + else + goto 20 + endif + 10 res = 0.0d+0 + return + 20 if (ck .eq. 0) then + goto 30 + else + goto 40 + endif + 30 res = log(abs(x)+sqrt(1.0d+0+x*x)) + go to 130 + 40 angle = abs(1.0d+0/x) + geo = abs(ck) + ari = 1.0d+0 + pim = 0.0d+0 + 50 sqgeo = ari*geo + aari = ari + ari = geo + ari + angle = -sqgeo/angle + angle + sqgeo = sqrt(sqgeo) + if (angle .eq. 0) then + goto 60 + else + goto 70 + endif +C replace 0 by a small value, test + 60 angle = sqgeo*domi + 70 test = aari*domi*1.0d+05 + CRES=abs(aari-geo)-test + if (CRES .le. 0) then + goto 100 + else + goto 80 + endif + 80 geo = sqgeo + sqgeo + pim = pim + pim + if (angle .lt. 0) then + goto 90 + else + goto 50 + endif + 90 pim = pim + dpi + go to 50 + 100 if (angle .lt. 0) then + goto 110 + else + goto 120 + endif + 110 pim = pim + dpi + 120 res = (atan(ari/angle)+pim)/ari + 130 if (x .lt. 0) then + goto 140 + else + goto 150 + endif + 140 res = -res + 150 return + end diff --git a/modules/signal_processing/src/fortran/deli11.lo b/modules/signal_processing/src/fortran/deli11.lo new file mode 100755 index 000000000..64b7bb93f --- /dev/null +++ b/modules/signal_processing/src/fortran/deli11.lo @@ -0,0 +1,12 @@ +# src/fortran/deli11.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/deli11.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/signal_processing/src/fortran/deli2.f b/modules/signal_processing/src/fortran/deli2.f new file mode 100755 index 000000000..fbefc021a --- /dev/null +++ b/modules/signal_processing/src/fortran/deli2.f @@ -0,0 +1,120 @@ + subroutine deli2(nn,resv,xxv,ck) +c!purpose +c calculates an approximate value for the elliptic integral of +c the first kind, rf(x,y,z), as defined by b.c.carlson. +c -special functions of applied maths-academic press(1977). +c res=integral(zero to x) of +c 1/sqrt((1-t*t)(1-ck*ck*t*t)) +c for 0<=t<=1 +c +c!calling sequence +c subroutine deli2(nn,resv,xxv,ck) +c double precision ck, xxv(nn),resv(nn) +c! +c .. scalar arguments .. + double precision x, y, z + double precision xxv(nn),resv(nn) + double precision res,xx,ck +c .. +c .. local scalars .. + double precision acc, c1, c2, c3, cxn, cyn, czn, e2, e3, lamda, + * lolim,mu, rscale, rtx, rty, rtz, uplim, xn, yn, zn + integer ind +c .. function references .. + double precision dlamch + data acc/8.50d-4/ +c +c order x,y,z into xn,yn,zn st. xn.le.yn.le.zn +c write(6,*) nn,resv(1),xxv(1),ck + do 201 kk=1,nn + xx=xxv(kk) + x=1.0d+0-xx*xx + y=1.0d+0-ck*ck*xx*xx + if (x.le.y) go to 20 + xn = y + yn = x + go to 40 + 20 xn = x + yn = y + z=1.0d+0 + 40 zn = z + if (yn.le.zn) go to 60 + zn = yn + yn = z + if (xn.le.yn) go to 60 + yn = xn + xn = z +c +c test for valid arguments + 60 ind = 1 + if (xn.lt.0.0d+0) then + xn=0.d0 + endif + ind = 2 + if (yn.le.0.0d+0) go to 180 +c +c valid call + rscale = 1.0d+0 + lolim=dlamch('u')*16.0d+0 + uplim=0.06250d+0*dlamch('o') +c +c for extreme arguments scale to avoid under and overflows + if (zn.le.uplim) go to 120 + rscale = 0.250d+0 + zn = zn*0.06250d+0 + if (yn.le.lolim) go to 80 + yn = yn*0.06250d+0 + if (xn.le.lolim) go to 100 + xn = xn*0.06250d+0 + go to 140 + 80 lamda = (sqrt(xn)+sqrt(yn))*(sqrt(zn)*0.250d+0) + xn = lamda*0.250d+0 + yn = xn + zn = (zn+lamda)*0.250d+0 + go to 140 + 100 rtz = sqrt(zn) + rty = sqrt(yn) + lamda = rtz*rty + ((rtz+rty)*0.250d+0)*sqrt(xn) + xn = lamda*0.250d+0 + yn = (yn+lamda)*0.250d+0 + zn = (zn+lamda)*0.250d+0 + go to 140 + 120 if (zn.gt.lolim) go to 140 + rscale = 4.0d+0 + xn = xn*16.0d+0 + yn = yn*16.0d+0 + zn = zn*16.0d+0 +c +c main recursion + 140 mu = (xn+yn+zn)/3.0d+0 + czn = 2.0d+0 - (zn+mu)/mu + cxn = 2.0d+0 - (xn+mu)/mu + if (max(cxn,-czn).le.acc) go to 160 + rtx = sqrt(xn) + rty = sqrt(yn) + rtz = sqrt(zn) + lamda = rtz*(rtx+rty) + rtx*rty + xn = (xn+lamda)*0.250d+0 + yn = (yn+lamda)*0.250d+0 + zn = (zn+lamda)*0.250d+0 + go to 140 +c +c power series expansion + 160 c1 = 1.0d+0/24.0d+0 + c2 = 3.0d+0/44.0d+0 + c3 = 1.0d+0/14.0d+0 + cyn = -cxn - czn + e2 = cxn*cyn - czn*czn + e3 = cxn*czn*cyn + res = rscale*(1.0d+0+(c1*e2-0.1d0-c2*e3)*e2+c3*e3)/sqrt(mu) + res=res*xx + go to 200 +c +c failure exits + 180 continue + res = 0.0d+0 + 200 continue + resv(kk)=res + 201 continue + return + end diff --git a/modules/signal_processing/src/fortran/deli2.lo b/modules/signal_processing/src/fortran/deli2.lo new file mode 100755 index 000000000..69fb745b7 --- /dev/null +++ b/modules/signal_processing/src/fortran/deli2.lo @@ -0,0 +1,12 @@ +# src/fortran/deli2.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/deli2.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/signal_processing/src/fortran/delip.f b/modules/signal_processing/src/fortran/delip.f new file mode 100755 index 000000000..ca3017a72 --- /dev/null +++ b/modules/signal_processing/src/fortran/delip.f @@ -0,0 +1,46 @@ + subroutine delip(n,resr,resi,x,ck) +c!purpose +c vector valued elliptic integral : +c r = integral from 0 to x of : +c dt/sqrt((1-t^2)*(1-ck^2*t^2)) for x real positive +c x=argument r=resr+%i*resi=result +c ck = parameter +c n size of x and r +c Author F.D. +c!calling sequence +c subroutine delip(n,resr,resi,x,ck) +c double precision resr(n),resi(n),x(n),ck +c! + double precision resr(n),resi(n),x(n) + double precision ck,r,xx,compk,compk1,yy,m,m1,ck1 + double precision xxxxx + m=ck*ck + m1=1.0d+0-m + ck1=sqrt(m1) + call compel(ck,compk) + call compel(ck1,compk1) + do 1 k=1,n + xx=x(k) + if(xx.ge.0.0d+0.and.xx.le.1.0d+0) then + call deli2(1,r,xx,ck) + resr(k)=r + resi(k)=0.0d+0 + elseif (xx.gt.1.0d+0.and.xx.le.(1.0d+0/ck)) then + xxxxx=1.0d+0/ck-xx +c . change of variable : integral from 1 to xx of +c . dt/sqrt((1-mt^2)(t^2-1)) = integral from o to yy of +c . dt/sqrt((1-t^2)(1-m1t^2)) with m1=1-m and +c . yy = (1/sqrt(m1))*sqrt((x^2-1)/x^2) + yy=(1.0d+0/ck1)*sqrt((xx*xx-1.0d+0)/(xx*xx)) + call deli2(1,r,yy,ck1) + resi(k)=r + resr(k)=compk + elseif(xx.ge.(1.0d+0/ck)) then + xxxxx=1.0d+0/(ck*xx) + call deli2(1,r,xxxxx,ck) + resi(k)=compk1 + resr(k)=r + endif + 1 continue + return + end diff --git a/modules/signal_processing/src/fortran/delip.lo b/modules/signal_processing/src/fortran/delip.lo new file mode 100755 index 000000000..8b4843f0a --- /dev/null +++ b/modules/signal_processing/src/fortran/delip.lo @@ -0,0 +1,12 @@ +# src/fortran/delip.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/delip.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/signal_processing/src/fortran/dellk.f b/modules/signal_processing/src/fortran/dellk.f new file mode 100755 index 000000000..d6fae5cb6 --- /dev/null +++ b/modules/signal_processing/src/fortran/dellk.f @@ -0,0 +1,36 @@ + double precision function dellk(dk) +c!purpose +C calculate complete elliptic integral of first kind +c! + implicit double precision (a-h,o-z) + external slamch, dlamch + real slamch +c + data de /1.0d+0/ + flma=2.0d+0**(int(slamch('l'))-2) + dpi=4.0d+0*atan(1.0d+00) + domi=2.0d+0*dlamch('p') + dgeo = de - dk*dk + if (dgeo .le. 0) then + goto 10 + else + goto 20 + endif + 10 dellk = flma + return + 20 dgeo = sqrt(dgeo) + dri = de + 30 dari = dri + dtest = dari*domi + dri = dgeo + dri + if (dari-dgeo-dtest .le. 0) then + goto 50 + else + goto 40 + endif + 40 dgeo = sqrt(dari*dgeo) + dri = 0.50d+0*dri + go to 30 + 50 dellk = dpi/dri + return + end diff --git a/modules/signal_processing/src/fortran/dellk.lo b/modules/signal_processing/src/fortran/dellk.lo new file mode 100755 index 000000000..6e9cf9fd8 --- /dev/null +++ b/modules/signal_processing/src/fortran/dellk.lo @@ -0,0 +1,12 @@ +# src/fortran/dellk.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/dellk.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/signal_processing/src/fortran/desi00.f b/modules/signal_processing/src/fortran/desi00.f new file mode 100755 index 000000000..e09882d35 --- /dev/null +++ b/modules/signal_processing/src/fortran/desi00.f @@ -0,0 +1,14 @@ + subroutine desi00(ityp,om,norma,edeg,ndeg,adeg, + *vsn,vd,a) +c!purpose +c transform tolerance scheme +c! +c + implicit double precision (a-h,o-z) + double precision om(*) +c + if (ityp.ge.3) ndeg = (ndeg+1)/2 + if (ndeg.ne.0) adeg = dble(real(ndeg))/(1.0d+0+edeg) + call transn (ityp,om,norma,vsn,vd,a) + return + end diff --git a/modules/signal_processing/src/fortran/desi00.lo b/modules/signal_processing/src/fortran/desi00.lo new file mode 100755 index 000000000..edc6efed2 --- /dev/null +++ b/modules/signal_processing/src/fortran/desi00.lo @@ -0,0 +1,12 @@ +# src/fortran/desi00.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/desi00.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/signal_processing/src/fortran/desi01.f b/modules/signal_processing/src/fortran/desi01.f new file mode 100755 index 000000000..9c3a00a88 --- /dev/null +++ b/modules/signal_processing/src/fortran/desi01.f @@ -0,0 +1,26 @@ +C/MEMBR ADD NAME=DESI01,SSI=0 + subroutine desi01(maxdeg,iapro,edeg,ndeg,adelp,adels, + *vsn,adeg,gd1,gd2,acap12,ierr) +c!purpose +c design of butterworth, chebyshev (passband or stopband), and +c elliptic filters +c! + implicit double precision (a-h,o-z) +c + call parcha (iapro,adeg,adelp,adels,vsn,gd1,gd2,acap12) + call degree (iapro,vsn,acap12,adeg) + q = adeg*(1.0d+0+edeg) + 0.50d+0 + n = int(q) + m = int(adeg) + if (real(m).lt.adeg) m = m + 1 + n = max0(m,n) + if (ndeg.eq.0) go to 10 + if (ndeg.ge.n) go to 20 + ierr=15 +c + 10 ndeg = n +c + 20 if (ndeg.le.maxdeg) return + ierr=25 + return + end diff --git a/modules/signal_processing/src/fortran/desi01.lo b/modules/signal_processing/src/fortran/desi01.lo new file mode 100755 index 000000000..2d5871ffe --- /dev/null +++ b/modules/signal_processing/src/fortran/desi01.lo @@ -0,0 +1,12 @@ +# src/fortran/desi01.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/desi01.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/signal_processing/src/fortran/desi11.f b/modules/signal_processing/src/fortran/desi11.f new file mode 100755 index 000000000..ba9b71bd7 --- /dev/null +++ b/modules/signal_processing/src/fortran/desi11.f @@ -0,0 +1,46 @@ + subroutine desi11(nmaxi,maxdeg,vsn,ndeg,gd1,gd2,adelta,nzm,sm + *,nzero,pren,pimn,ugc,ogc,nj,nh) +c!purpose +c butterworth filter +c computation of the zeros and locations of the extrema +c! +c + implicit double precision (a-h,o-z) + external slamch + real slamch + dimension nzm(*),sm(maxdeg,4),nzero(*),pren(*),pimn(*) +c + pi=4.0d+0*atan(1.0d+0) + flma=2.0d+0**(int(slamch('l'))-2) +c + adelta = vsn**ndeg +c + nh = ndeg/2 + nj = (ndeg+1)/2 + fdeg = real(ndeg) + fn = pi/2.0d+0/fdeg +c + do 10 i=1,nj + nzero(i) = 0 + iii = i + i - 1 + q = fn*real(iii) + pren(i) = sin(q) + pimn(i) = cos(q) + 10 continue +c + fn = 2.0d+0*fn + nzero(1) = ndeg + nzm(1) = 1 + sm(1,1) = 0.0d+0 + nzm(2) = 1 + sm(1,2) = 1.0d+0 + nzm(3) = 1 + sm(1,3) = vsn + nzm(4) = 1 + sm(1,4) = flma +c + ugc = gd2/adelta + ogc = gd1 + sm(nmaxi-1,4) = 1.0d+0 + return + end diff --git a/modules/signal_processing/src/fortran/desi11.lo b/modules/signal_processing/src/fortran/desi11.lo new file mode 100755 index 000000000..557485487 --- /dev/null +++ b/modules/signal_processing/src/fortran/desi11.lo @@ -0,0 +1,12 @@ +# src/fortran/desi11.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/desi11.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/signal_processing/src/fortran/desi12.f b/modules/signal_processing/src/fortran/desi12.f new file mode 100755 index 000000000..29f95007b --- /dev/null +++ b/modules/signal_processing/src/fortran/desi12.f @@ -0,0 +1,90 @@ + subroutine desi12(nmaxi,maxdeg,iapro,ndeg,vsn,gd1,gd2,adelta, + *nzm,sm,nzero,pren,pimn,ugc,ack,nj,nh) +c!purpose +c chebyshev filter (passband or stopband) +c computation of the zeros and the locations of the extrema +c!calling sequence +c subroutine desi12 (nmaxi,maxdeg,iapro,ndeg,vsn,gd1,gd2,adelta, +c *nzm,sm,nzero,pren,pimn,ugc,ack,nj,nh) +c! +c + implicit double precision (a-h,o-z) + dimension nzm(*),sm(maxdeg,*),nzero(*),pren(*),pimn(*) +c + external slamch + real slamch +c + pi=4.0d+0*atan(1.0d+0) + flma=2.0d+0**(int(slamch('l'))-2) + adelta = cosh(real(ndeg)*arcosh(vsn)) +c + fa = 1.0d+0 + nh = ndeg/2 + nj = (ndeg+1)/2 + fn = pi/(2.0d+0*dble(real(ndeg))) +c + do 10 i=1,nj + nzero(i) = 0 + inj = i + i - 1 + q = fn*dble(real(inj)) + pren(i) = sin(q) + pimn(i) = cos(q) + 10 continue +c + fn = 2.0d+0*fn +c + if (iapro.eq.3) go to 40 +c + m = nj + 1 + do 20 i=1,nj + j = m - i + sm(i,1) = pimn(j) +20 continue + nzm(1) = nj + m = nh + 1 + do 30 i=1,m + mi = m - i + q = real(mi)*fn + sm(i,2) = cos(q) + 30 continue + nzm(2) = m + sm(1,3) = vsn + nzm(3) = 1 + sm(1,4) = flma + nzm(4) = 1 + nzero(1) = ndeg +c + ugc = gd2/adelta +cccccccccccccccccccccccccccccccccccccc +c The two lines below were missing + ogc = gd1 + go to 80 +cccccccccccccccccccccccccccccccccccccc + 40 sm(1,1) = 0.0d+0 + nzm(1) = 1 + sm(1,2) = 1.0d+0 + nzm(2) = 1 + do 50 i=1,nj + inj = nj - i + q = real(inj)*fn + sm(inj+1,3) = vsn/cos(q) + 50 continue + nzm(3) = nj + do 60 i=1,nh + nzero(i) = 2 + q = pimn(i) + fa = fa*q*q + sm(i,4) = vsn/q + 60 continue + if (nh.eq.nj) go to 70 + nzero(nj) = 1 + sm(nj,4) = flma + 70 nzm(4) = nj +c + ugc = gd2 + ogc = gd1*adelta + 80 ack = fa + sm(nmaxi-1,4) = 1.0d+0 + return + end + diff --git a/modules/signal_processing/src/fortran/desi12.lo b/modules/signal_processing/src/fortran/desi12.lo new file mode 100755 index 000000000..b75dda768 --- /dev/null +++ b/modules/signal_processing/src/fortran/desi12.lo @@ -0,0 +1,12 @@ +# src/fortran/desi12.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/desi12.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/signal_processing/src/fortran/desi14.f b/modules/signal_processing/src/fortran/desi14.f new file mode 100755 index 000000000..2a60eedc7 --- /dev/null +++ b/modules/signal_processing/src/fortran/desi14.f @@ -0,0 +1,101 @@ + subroutine desi14(nmaxi,maxdeg,ndeg,vsn,gd1,gd2,adelta,nzm, + *sm,nzero,dsk,ugc,ogc,ack,nj,nh,dk,dks,dcap02,dcap04) +c!purpose +c elliptic filter +c computation of the zeros and the locations of the extrema +c! +c + implicit double precision (a-h,o-z) + double precision dsk(*) + dimension nzero(*),sm(maxdeg,*),nzm(*) +c + external slamch + real slamch +c + data de /1.0d+00/ + dpi=4.0d+0*atan(1.0d+00) + flma=2.0d+0**(int(slamch('l'))-2) +c + dcap02 = de/vsn + dcap01 = sqrt(dcap02) + dcap04 = sqrt(de-dcap02*dcap02) + dk = dellk(dcap02) + dks = dellk(dcap04) +c + dq = exp(-dpi*dks/dk) +c + nh = ndeg/2 + m = ndeg + 1 + nj = m/2 + mh = nh + 1 +c + dn = dk/dble(real(ndeg)) +c + del1 = de + if (nh.eq.0) go to 20 + do 10 i=1,nh + inh = m - i - i + du = dn*dble(real(inh)) + dm = dsn2(du,dk,dq) + del1 = del1*dm*dcap01 + dsk(i) = dm + j = mh - i + sm(j,1) = dm + nzero(i) = 2 + dde = de/(dcap02*dm) + sm(i,4) = dde + 10 continue + go to 30 + 20 sm(1,1) = 0.0d+0 + 30 kj = nj - 1 + mj = nj + 1 + del2 = de + if (kj.eq.0) go to 50 + do 40 i=1,kj + ndegi = ndeg - i - i + du = dn*dble(real(ndegi)) + dm = dsn2(du,dk,dq) + j = mj - i + sm(j,2) = dm + dde = de/(dcap02*dm) + sm(i+1,3) = dde + del2 = del2*dm*dcap01 + 40 continue + go to 60 + 50 sm(ndeg,2) = 1.0d+0 + sm(1,3) = vsn +c + 60 ddelt = del1*del1 + adelta = ddelt + ack = 1.0d+0/adelta + if (nh.eq.nj) go to 80 + ack = ack*dcap01 + ddelta = del2*del2*dcap01 + adelta = ddelta + dsk(nj) = 0.0d+0 + nzero(nj) = 1 + sm(nj,4) = flma +c + if (nh.eq.0) go to 90 + do 70 i=1,nh + j = mj - i + sm(j,1) = sm(j-1,1) + sm(i,2) = sm(i+1,2) + 70 continue + sm(1,1) = 0.0d+0 + go to 90 +c + 80 sm(mh,3) = flma + sm(1,2) = 0.0d+0 +c + 90 nzm(1) = nj + nzm(4) = nj + nzm(2) = mh + nzm(3) = mh + sm(mh,2) = 1.0d+0 + sm(1,3) = vsn + ugc = gd2*adelta + ogc = gd1/adelta + sm(nmaxi-1,4) = 1.0d+0 + return + end diff --git a/modules/signal_processing/src/fortran/desi14.lo b/modules/signal_processing/src/fortran/desi14.lo new file mode 100755 index 000000000..084011576 --- /dev/null +++ b/modules/signal_processing/src/fortran/desi14.lo @@ -0,0 +1,12 @@ +# src/fortran/desi14.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/desi14.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/signal_processing/src/fortran/desi21.f b/modules/signal_processing/src/fortran/desi21.f new file mode 100755 index 000000000..8a120c1a8 --- /dev/null +++ b/modules/signal_processing/src/fortran/desi21.f @@ -0,0 +1,36 @@ + subroutine desi21(ndeg,adelp,adels,adelta,pren,pimn, + *ugc,ogc,nj,acx,ac,rdelp,rdels,sfa,spr,spi) +c!purpose +c butterworth filter +c computation of the poles +c! +c + implicit double precision (a-h,o-z) + double precision spr(*), spi(*) + double precision pren(*), pimn(*) + flmi=2.0d+0*dlamch('p') +c +c computation of constant c and reduced tolerance scheme +c + if (acx.lt.999.0d+0) go to 20 + if ((ogc-ugc).lt.flmi) go to 10 + ac = (2.0d+0*adelp/(adelta*adels))**(1.0d+0/3.0d+0) + acx = log10(ac/ugc)/log10(ogc/ugc) + if (acx.ge.0.0d+0 .and. acx.le.1.0d+0) go to 30 + 10 acx = 0.50d+0 + 20 ac = ugc*(ogc/ugc)**acx + 30 rdelp = 1.0d+0 - sqrt(1.0d+0/(1.0d+0+ac*ac)) + q = ac*adelta + rdels = sqrt(1.0d+0/(1.0d+0+q*q)) +c +c computation of factor sfa and poles +c + sfa = 1.0d+0/ac + q = ac**(-1.0d+0/dble(ndeg)) +c + do 40 i=1,nj + spr(i) = -q*pren(i) + spi(i) = q*pimn(i) + 40 continue + return + end diff --git a/modules/signal_processing/src/fortran/desi21.lo b/modules/signal_processing/src/fortran/desi21.lo new file mode 100755 index 000000000..85d2db4bf --- /dev/null +++ b/modules/signal_processing/src/fortran/desi21.lo @@ -0,0 +1,12 @@ +# src/fortran/desi21.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/desi21.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/signal_processing/src/fortran/desi22.f b/modules/signal_processing/src/fortran/desi22.f new file mode 100755 index 000000000..66983d623 --- /dev/null +++ b/modules/signal_processing/src/fortran/desi22.f @@ -0,0 +1,76 @@ + subroutine desi22(iapro,ndeg,adelp,adels,adelta,vsn, + *pren,pimn,ugc,ogc,ack,nj,nh,acx,ac,rdels,sfa,spr,spi) +c!purpose +c chebyshev filter (passband or stopband) +c computation of the poles +c!calling sequence +c subroutine desi22 (iapro,ndeg,adelp,adels,adelta,vsn, +c *pren,pimn,ugc,ogc,ack,nj,nh,acx,ac,rdels,sfa,spr,spi) +c +c implicit double precision (a-h,o-z) +c dimension spr(*),spi(*) +c dimension pren(*),pimn(*) +c! +c + implicit double precision (a-h,o-z) + double precision spr(*),spi(*) + double precision pren(*),pimn(*) +c + flmi=2.0d+0*dlamch('p') + if (acx.lt.999.0d+0) go to 20 + if ((ogc-ugc).lt.flmi) go to 10 + if (iapro.eq.2) q = 1.0d+0/adelta + if (iapro.eq.3) q = adelta*adelta + ac = (2.0d+0*adelp*q/adels)**(1.0d+0/3.0d+0) + acx = log10(ac/ugc)/log10(ogc/ugc) + if (acx.ge.0.0d+0 .and. acx.le.1.0d+0) go to 30 + 10 acx = 0.50d+0 + 20 ac = ugc*(ogc/ugc)**acx +c +c computation of the reduced tolerance scheme +c + 30 q = ac + if (iapro.eq.3) q = q/adelta + q = 1.0d+0 + q*q + rdelp = 1.0d+0- sqrt(1.0d+0/q) + q = ac + if (iapro.eq.2) q = q*adelta + q = 1.0d+0 + q*q + rdels = sqrt(1.0d+0/q) +c +c computation of the factor sfa and the poles + if (iapro.eq.3) go to 40 +ccccccccccccccccccccccccccccccccccccccccccccc +c The next line was missing + sfa = 2.0d+0/(ac*2.0d+0 **ndeg) +ccccccccccccccccccccccccccccccccccccccccccccc + q = -1.0d+0/ac + go to 50 + 40 sfa = ack + q = ac + 50 q = arsinh(q)/dble(ndeg) + qr = sinh(q) + qi = cosh(q) + if (iapro.eq.3) go to 70 + do 60 i=1,nj + spr(i) = qr*pren(i) + spi(i) = qi*pimn(i) + 60 continue + return + 70 do 80 i=1,nh + q = pimn(i)*qi + qa = pren(i)*qr + qq = q*q + qqa = qa*qa + sfa = sfa/(qq+qqa) + spr(i) = -vsn/(qq/qa+qa) + spi(i) = vsn/(q+qqa/q) + 80 continue + if (nh.eq.nj) return + spi(nj) = 0.0d+0 + q = vsn/qr + sfa = sfa*q + spr(nj) = -q + return + end + diff --git a/modules/signal_processing/src/fortran/desi22.lo b/modules/signal_processing/src/fortran/desi22.lo new file mode 100755 index 000000000..cee24e5bc --- /dev/null +++ b/modules/signal_processing/src/fortran/desi22.lo @@ -0,0 +1,12 @@ +# src/fortran/desi22.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/desi22.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/signal_processing/src/fortran/desi24.f b/modules/signal_processing/src/fortran/desi24.f new file mode 100755 index 000000000..a7c3b7562 --- /dev/null +++ b/modules/signal_processing/src/fortran/desi24.f @@ -0,0 +1,70 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) INRIA +c +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + + subroutine desi24(ndeg,adelp,adels,adelta,dsk,ugc,ogc,ack, + *nj,nh,dk,dks,dcap02,dcap04,acx,ac,rdelp,rdels,sfa,spr,spi) +c!purpose +C elliptic filter +C computation of the reduced tolerance scheme, the factor sfa, and +C the poles +c! + implicit double precision (a-h,o-z) + double precision dsk(*) + double precision dellk + double precision spr(*),spi(*) + data de /1.0d+0/ + flmi=2.0d+0*dlamch('p') + dpi=4.00d+0*atan(1.0d+00) +C if acx not defined, compute a symmetrical usage of the tolerance +C scheme + if (acx.lt.999.0d+0) go to 20 + if ((ogc-ugc).lt.flmi) go to 10 + ac = (2.0d+0*adelp/(adelta*adels))**(1.0d+0/3.0d+0) + acx = log10(ac/ugc)/log10(ogc/ugc) + if (acx.ge.0.0d+0 .and. acx.le.1.0d+0) go to 30 + 10 acx = 0.50d+0 + 20 ac = ugc*(ogc/ugc)**acx +C computation of the reduced tolerance scheme + 30 q = ac*adelta + du = de/q + rdelp = 1.0d+0 - sqrt(1.0d+0/(1.0d+0+q*q)) + q = 1.0d+0 + ac*ac/(adelta*adelta) + rdels = sqrt(1.0d+0/q) +C computation of the factor sfa and the poles + q = ac*ack + if (nh.eq.nj) q = sqrt(1.0d+0+q*q) + sfa = 1.0d+0/q + dr = adelta + dr = dr*dr + dq = q + call deli11(du, dr, dq) + du = dq + dq = sqrt(de-dr*dr) + dq = dellk(dr) + du = dk*du/(dq*dble(ndeg)) + dq = exp(-dpi*dk/dks) + du = -dsn2(du,dks,dq) + dq = du*du + dud = de - dcap04*dcap04*dq + dud = sqrt(dud) + duc = sqrt(de-dq) + do 40 i=1,nj + dr = dsk(i) + drc = dr*dr + drd = de - dcap02*dcap02*drc + drc = sqrt(de-drc) + dm = de - dq*drd + drd = sqrt(drd) + drd = drd*du*duc*drc/dm + spr(i) = drd + dr = dr*dud/dm + spi(i) = dr + 40 continue + return + end diff --git a/modules/signal_processing/src/fortran/desi24.lo b/modules/signal_processing/src/fortran/desi24.lo new file mode 100755 index 000000000..29cdabadd --- /dev/null +++ b/modules/signal_processing/src/fortran/desi24.lo @@ -0,0 +1,12 @@ +# src/fortran/desi24.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/desi24.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/signal_processing/src/fortran/desia.f b/modules/signal_processing/src/fortran/desia.f new file mode 100755 index 000000000..cd1ebed1d --- /dev/null +++ b/modules/signal_processing/src/fortran/desia.f @@ -0,0 +1,38 @@ + subroutine desia(nmaxi,maxdeg,ityp,iapro,om,norma, + *edeg,ndeg,adelp,adels, + *nbn,nzero,nzm,vsn,a,adelta,adeg, + *sm,pren,pimn,ugc,ogc,ack,zm,zzr,zzi,rom, + *b2,b1,b0,dk,dks,dcap02,dcap04,vsnn,ndegn,nh,vd,nze,ierr) +c!purpose +c filter design -- first section +c! +c + implicit double precision (a-h,o-z) + dimension sm(maxdeg,4),nzero(*),pren(*),pimn(*) + dimension rom(*),nzm(*),zm(maxdeg,4),nze(*) + double precision om(*) + double precision zzr(*),zzi(*),b0(*),b1(*),b2(*) +c + sfa = 0. + call desi00 (ityp,om,norma,edeg,ndeg,adeg,vsn,vd,a) + call desi01 (maxdeg,iapro,edeg,ndeg,adelp,adels,vsn, + *adeg,gd1,gd2,acap12,ierr) + go to (10, 20, 20, 30), iapro + 10 call desi11(nmaxi,maxdeg,vsn,ndeg,gd1,gd2,adelta,nzm, + *sm,nzero,pren,pimn,ugc,ogc,nj,nh) + go to 40 + 20 call desi12 (nmaxi,maxdeg,iapro,ndeg,vsn,gd1,gd2,adelta, + *nzm,sm,nzero,pren,pimn,ugc,ack,nj,nh) + go to 40 + 30 call desi14 (nmaxi,maxdeg,ndeg,vsn,gd1,gd2,adelta,nzm,sm,nzero, + *pren,ugc,ogc,ack,nj,nh,dk,dks,dcap02,dcap04) +c + 40 vsnn = vsn + ndegn = ndeg + nbn = nj + call tranze (nmaxi,maxdeg,ityp,ndeg,nzm,a,vd,sm,nzero) + call trbize (nmaxi,maxdeg,nzm,nzero,sm,zm,zzr,zzi) + call blnumz (nzm,nzero,zzr,zzi,b2,b1,b0,nze) + call romeg (nmaxi,maxdeg,ityp,nzm,zm,rom) + return + end diff --git a/modules/signal_processing/src/fortran/desia.lo b/modules/signal_processing/src/fortran/desia.lo new file mode 100755 index 000000000..e0640d249 --- /dev/null +++ b/modules/signal_processing/src/fortran/desia.lo @@ -0,0 +1,12 @@ +# src/fortran/desia.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/desia.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/signal_processing/src/fortran/desib.f b/modules/signal_processing/src/fortran/desib.f new file mode 100755 index 000000000..d53d45f8d --- /dev/null +++ b/modules/signal_processing/src/fortran/desib.f @@ -0,0 +1,35 @@ +C/MEMBR ADD NAME=DESIB,SSI=0 + subroutine desib(nmaxi,maxdeg,vsnn,ndegn,nbn,ityp,iapro,om,nh, + *adelp,adels,vd,a,adelta,pren,pimn,ugc,ogc,ack,dk, + *dks,dcap02,dcap04,acx,spr,spi,zpr,zpi,nb,fact,c1,c0,sm,ierr,ndeg) +c!purpose +c filter design -- second section +c! +c + implicit double precision (a-h,o-z) +c + double precision sm(maxdeg,4) + double precision om(*),pren(*),pimn(*) + double precision spr(*),spi(*) + double precision zpr(*),zpi(*) + double precision c1(*),c0(*) +c + vsn = vsnn + ndeg = ndegn + nj = nbn + go to (10, 20, 20, 30), iapro + 10 call desi21 (ndeg,adelp,adels,adelta,pren,pimn,ugc,ogc,nj, + *acx,ac,rdelp,rdels,sfa,spr,spi) + go to 40 + 20 call desi22 (iapro,ndeg,adelp,adels,adelta,vsn,pren,pimn, + *ugc,ogc,ack,nj,nh,acx,ac,rdels,sfa,spr,spi) + go to 40 + 30 call desi24 (ndeg,adelp,adels,adelta,pren,ugc,ogc,ack,nj, + *nh,dk,dks,dcap02,dcap04,acx,ac,rdelp,rdels,sfa,spr,spi) +c + 40 continue + call tranpo (nmaxi,maxdeg,ityp,vd,sm,a,ndeg,sfa,spr,spi,nj) + call trbipo (nmaxi,maxdeg,nj,sfa,sm,spr,spi,zfa,zpr,zpi) + call bldenz (ndeg,nj,zfa,zpr,zpi,nb,fact,c1,c0) + return + end diff --git a/modules/signal_processing/src/fortran/desib.lo b/modules/signal_processing/src/fortran/desib.lo new file mode 100755 index 000000000..59086e9c9 --- /dev/null +++ b/modules/signal_processing/src/fortran/desib.lo @@ -0,0 +1,12 @@ +# src/fortran/desib.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/desib.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/signal_processing/src/fortran/dfft2.f b/modules/signal_processing/src/fortran/dfft2.f new file mode 100755 index 000000000..611568ff1 --- /dev/null +++ b/modules/signal_processing/src/fortran/dfft2.f @@ -0,0 +1,21 @@ + subroutine dfft2(a,b,nseg,n,nspn,isn,ierr,iw,lw) +c! +c fft avec tableau de travail iw +c +c voir la routine fft de singleton pour l'appel +c iw est ici un tableau de travail a dimensionner a lw +c dans le pgm appelant.Si lw est trop petit on sort avec +c ierr < 0 et -ierr est le manque de place necessaire pour +c poursuivre le calcul +c! + double precision a,b + dimension iw(*),a(*),b(*) + iw(1)=0 + iw(2)=10 + iw(3)=10 + iw(4)=lw + iw(5)=10 + call dfftbi(a,b,nseg,n,nspn,isn,ierr,iw(1),iw(2), + + iw(3),iw(4),iw(5),iw(1),iw(1)) + return + end diff --git a/modules/signal_processing/src/fortran/dfft2.lo b/modules/signal_processing/src/fortran/dfft2.lo new file mode 100755 index 000000000..62558b896 --- /dev/null +++ b/modules/signal_processing/src/fortran/dfft2.lo @@ -0,0 +1,12 @@ +# src/fortran/dfft2.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/dfft2.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/signal_processing/src/fortran/dfftbi.f b/modules/signal_processing/src/fortran/dfftbi.f new file mode 100755 index 000000000..1d6b03abc --- /dev/null +++ b/modules/signal_processing/src/fortran/dfftbi.f @@ -0,0 +1,187 @@ + subroutine dfftbi(a, b, nseg, n, nspn, isn,ierr,lout,lnow, + + lused,lmax,lbook,rstak,istak) +c! +c arrays a and b originally hold the real and imaginary +c components of the data, and return the real and +c imaginary components of the resulting fourier coefficients. +c multivariate data is indexed according to the fortran +c array element successor function, without limit +c on the number of implied multiple subscripts. +c the subroutine is called once for each variate. +c the calls for a multivariate transform may be in any order. +c +c n is the dimension of the current variable. +c nspn is the spacing of consecutive data values +c while indexing the current variable. +c nseg*n*nspn is the total number of complex data values. +c the sign of isn determines the sign of the complex +c exponential, and the magnitude of isn is normally one. +c the magnitude of isn determines the indexing increment for a&b. +c +c if fft is called twice, with opposite signs on isn, an +c identity transformation is done...calls can be in either order. +c the results are scaled by 1/n when the sign of isn is positive. +c +c a tri-variate transform with a(n1,n2,n3), b(n1,n2,n3) +c is computed by +c call fft(a,b,n2*n3,n1,1,-1) +c call fft(a,b,n3,n2,n1,-1) +c call fft(a,b,1,n3,n1*n2,-1) +c +c a single-variate transform of n complex data values is computed by +c call fft(a,b,1,n,1,-1) +c +c the data may alternatively be stored in a single complex +c array a, then the magnitude of isn changed to two to +c give the correct indexing increment and a(2) used to +c pass the initial address for the sequence of imaginary +c values, e.g. +c call fft(a,a(2),nseg,n,nspn,-2) +c +c array nfac is working storage for factoring n. the smallest +c number exceeding the 15 locations provided is 12,754,584. +c! + implicit double precision (a-h,o-z) + dimension a(*), b(*), rstak(*),istak(*),nfac(15) +c +c + integer isize(5) + data isize(1),isize(2),isize(3),isize(4),isize(5)/1,1,1,2,2/ +c + ierr=0 +c +c determine the factors of n +c + m = 0 + nf = abs(n) + k = nf + if (nf.eq.1) return + nspan = abs(nf*nspn) + ntot = abs(nspan*nseg) + if (isn*ntot.ne.0) go to 20 + ierr=1 + return +c + 10 m = m + 1 + nfac(m) = 4 + k = k/16 + 20 if (k-(k/16)*16.eq.0) go to 10 + j = 3 + jj = 9 + go to 40 + 30 m = m + 1 + nfac(m) = j + k = k/jj + 40 if (mod(k,jj).eq.0) go to 30 + j = j + 2 + jj = j**2 + if (jj.le.k) go to 40 + if (k.gt.4) go to 50 + kt = m + nfac(m+1) = k + if (k.ne.1) m = m + 1 + go to 90 + 50 if (k-(k/4)*4.ne.0) go to 60 + m = m + 1 + nfac(m) = 2 + k = k/4 +c all square factors out now, but k .ge. 5 still + 60 kt = m + maxp = max(kt+kt+2,k-1) + j = 2 + 70 if (mod(k,j).ne.0) go to 80 + m = m + 1 + nfac(m) = j + k = k/j + 80 j = ((j+1)/2)*2 + 1 + if (j.le.k) go to 70 + 90 if (m.le.kt+1) maxp = m + kt + 1 + if (m+kt.gt.15) go to 120 + if (kt.eq.0) go to 110 + j = kt + 100 m = m + 1 + nfac(m) = nfac(j) + j = j - 1 + if (j.ne.0) go to 100 +c + 110 maxf = m - kt + maxf = nfac(maxf) + if (kt.gt.0) maxf = max(nfac(kt),maxf) +c MAJOR MODIFICATION + do 9999 kkk=1,m + maxf=max(maxf,nfac(kkk)) + 9999 continue +c j = istkgt(maxf*4,3) + nitems=maxf*4 +c following line modified FD & MG + itype=4 +c xxxxxxxxxxxxxxxxxxxxxxxxxxx + istkgt = (lnow*isize(2)-1)/isize(itype) + 2 + i = ((istkgt-1+nitems)*isize(itype)-1)/isize(2) + 3 + if (i.gt.lmax) go to 1010 + istak(i-1) = itype + istak(i) = lnow + lout = lout + 1 + lnow = i + lused = max(lused,lnow) + goto 1300 +c + 1010 continue + ierr=-i + return + 1300 continue + j=istkgt + jj = j + maxf + j2 = jj + maxf + j3 = j2 + maxf +c k = istkgt(maxp,2) + nitems=maxp + itype=2 +c xxxxxxxxxxxxxxxxxxxxxxxxxx + istkgt = (lnow*isize(2)-1)/isize(itype) + 2 + i = ((istkgt-1+nitems)*isize(itype)-1)/isize(2) + 3 + if (i.gt.lmax) go to 11 + istak(i-1) = itype + istak(i) = lnow + lout = lout + 1 + lnow = i + lused = max(lused,lnow) + goto 1400 +c + 11 continue + ierr=-i + return + 1400 continue + k=istkgt +c la carte suivante est a supprimer si simple precision +c next instruction commented by FD&MG (simulog residue?) +c ******************************************** +c k=2*k-1 +c ********************************************* + call dfftmx(a, b, ntot, nf, nspan, isn, m, kt, rstak(j), + * rstak(jj), rstak(j2), rstak(j3), istak(k), nfac) +c call istkrl(2) + k=2 +c xxxxxxxxxxxxxxx + in = 2 +c + if (lbook.le.lnow .and. lnow.le.lused .and. lused.le.lmax) go to + * 13 + ierr = 3 + return + 13 if (in.le.0) goto 1500 + if (lbook.gt.istak(lnow) .or. istak(lnow).ge.lnow-1) go to 21 + lout = lout - 1 + lnow = istak(lnow) + in = in - 1 + go to 13 +c + 21 ierr = 4 + return + 1500 continue + return +c + 120 continue + ierr=2 + return + end diff --git a/modules/signal_processing/src/fortran/dfftbi.lo b/modules/signal_processing/src/fortran/dfftbi.lo new file mode 100755 index 000000000..f8cb35f1e --- /dev/null +++ b/modules/signal_processing/src/fortran/dfftbi.lo @@ -0,0 +1,12 @@ +# src/fortran/dfftbi.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/dfftbi.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/signal_processing/src/fortran/dfftmx.f b/modules/signal_processing/src/fortran/dfftmx.f new file mode 100755 index 000000000..628f21b00 --- /dev/null +++ b/modules/signal_processing/src/fortran/dfftmx.f @@ -0,0 +1,537 @@ + subroutine dfftmx(a, b, ntot, n, nspan, isn, m, kt, wt, ck, bt, + * sk, np, nfac) +c + implicit double precision(a-h,o-z) + dimension a(*), b(*), wt(*), ck(*), bt(*), sk(*), np(*), nfac(*) +c + inc = abs(isn) + nt = inc*ntot + ks = inc*nspan + rad = atan(1.0d+0) + s72 = rad/0.6250d+0 + c72 = cos(s72) + s72 = sin(s72) + s120 = sqrt(0.750d+0) + if (isn.gt.0) go to 10 + s72 = -s72 + s120 = -s120 + rad = -rad + go to 30 +c +c scale by 1/n for isn .gt. 0 +c + 10 ak = 1.0d+0/dble(n) + do 20 j=1,nt,inc + a(j) = a(j)*ak + b(j) = b(j)*ak + 20 continue +c + 30 kspan = ks + nn = nt - inc + jc = ks/n +c +c sin, cos values are reinitialized each lim steps +c + lim = 32 + klim = lim*jc + i = 0 + jf = 0 + maxf = m - kt + maxf = nfac(maxf) + if (kt.gt.0) maxf = max(nfac(kt),maxf) +c +c compute fourier transform +c + 40 dr = 8.0d+0*dble(jc)/dble(kspan) + cd = 2.0d+0*sin(0.50d+0*dr*rad)**2 + sd = sin(dr*rad) + kk = 1 + i = i + 1 + if (nfac(i).ne.2) go to 110 +c +c transform for factor of 2 (including rotation factor) +c + kspan = kspan/2 + k1 = kspan + 2 + 50 k2 = kk + kspan + ak = a(k2) + bk = b(k2) + a(k2) = a(kk) - ak + b(k2) = b(kk) - bk + a(kk) = a(kk) + ak + b(kk) = b(kk) + bk + kk = k2 + kspan + if (kk.le.nn) go to 50 + kk = kk - nn + if (kk.le.jc) go to 50 + if (kk.gt.kspan) go to 350 + 60 c1 = 1.0d+0- cd + s1 = sd + mm = min(k1/2,klim) + go to 80 + 70 ak = c1 - (cd*c1+sd*s1) + s1 = (sd*c1-cd*s1) + s1 +c +c the following three statements compensate for truncation +c error. if rounded arithmetic is used, substitute +c c1=ak +c + c1 = 0.50d+0/(ak**2+s1**2) + 0.50d+0 + s1 = c1*s1 + c1 = c1*ak + 80 k2 = kk + kspan + ak = a(kk) - a(k2) + bk = b(kk) - b(k2) + a(kk) = a(kk) + a(k2) + b(kk) = b(kk) + b(k2) + a(k2) = c1*ak - s1*bk + b(k2) = s1*ak + c1*bk + kk = k2 + kspan + if (kk.lt.nt) go to 80 + k2 = kk - nt + c1 = -c1 + kk = k1 - k2 + if (kk.gt.k2) go to 80 + kk = kk + jc + if (kk.le.mm) go to 70 + if (kk.lt.k2) go to 90 + k1 = k1 + inc + inc + kk = (k1-kspan)/2 + jc + if (kk.le.jc+jc) go to 60 + go to 40 + 90 s1 = dble((kk-1)/jc)*dr*rad + c1 = cos(s1) + s1 = sin(s1) + mm = min(k1/2,mm+klim) + go to 80 +c +c transform for factor of 3 (optional code) +c + 100 k1 = kk + kspan + k2 = k1 + kspan + ak = a(kk) + bk = b(kk) + aj = a(k1) + a(k2) + bj = b(k1) + b(k2) + a(kk) = ak + aj + b(kk) = bk + bj + ak = -0.50d+0*aj + ak + bk = -0.50d+0*bj + bk + aj = (a(k1)-a(k2))*s120 + bj = (b(k1)-b(k2))*s120 + a(k1) = ak - bj + b(k1) = bk + aj + a(k2) = ak + bj + b(k2) = bk - aj + kk = k2 + kspan + if (kk.lt.nn) go to 100 + kk = kk - nn + if (kk.le.kspan) go to 100 + go to 290 +c +c transform for factor of 4 +c + 110 if (nfac(i).ne.4) go to 230 + kspnn = kspan + kspan = kspan/4 + 120 c1 = 1.0d+0 + s1 = 0.0d+0 + mm = min(kspan,klim) + go to 150 + 130 c2 = c1 - (cd*c1+sd*s1) + s1 = (sd*c1-cd*s1) + s1 +c +c the following three statements compensate for truncation +c error. if rounded arithmetic is used, substitute +c c1=c2 +c + c1 = 0.50d+0/(c2**2+s1**2) + 0.50d+0 + s1 = c1*s1 + c1 = c1*c2 + 140 c2 = c1**2 - s1**2 + s2 = c1*s1*2.0 + c3 = c2*c1 - s2*s1 + s3 = c2*s1 + s2*c1 + 150 k1 = kk + kspan + k2 = k1 + kspan + k3 = k2 + kspan + akp = a(kk) + a(k2) + akm = a(kk) - a(k2) + ajp = a(k1) + a(k3) + ajm = a(k1) - a(k3) + a(kk) = akp + ajp + ajp = akp - ajp + bkp = b(kk) + b(k2) + bkm = b(kk) - b(k2) + bjp = b(k1) + b(k3) + bjm = b(k1) - b(k3) + b(kk) = bkp + bjp + bjp = bkp - bjp + if (isn.lt.0) go to 180 + akp = akm - bjm + akm = akm + bjm + bkp = bkm + ajm + bkm = bkm - ajm + if (s1.eq.0.0d+0) go to 190 + 160 a(k1) = akp*c1 - bkp*s1 + b(k1) = akp*s1 + bkp*c1 + a(k2) = ajp*c2 - bjp*s2 + b(k2) = ajp*s2 + bjp*c2 + a(k3) = akm*c3 - bkm*s3 + b(k3) = akm*s3 + bkm*c3 + kk = k3 + kspan + if (kk.le.nt) go to 150 + 170 kk = kk - nt + jc + if (kk.le.mm) go to 130 +c MODIF HERE (WAS .lt.) + if (kk.le.kspan) go to 200 + kk = kk - kspan + inc + if (kk.le.jc) go to 120 + if (kspan.eq.jc) go to 350 + go to 40 + 180 akp = akm + bjm + akm = akm - bjm + bkp = bkm - ajm + bkm = bkm + ajm + if (s1.ne.0.0d+0) go to 160 + 190 a(k1) = akp + b(k1) = bkp + a(k2) = ajp + b(k2) = bjp + a(k3) = akm + b(k3) = bkm + kk = k3 + kspan + if (kk.le.nt) go to 150 + go to 170 + 200 s1 = dble((kk-1)/jc)*dr*rad + c1 = cos(s1) + s1 = sin(s1) + mm = min(kspan,mm+klim) + go to 140 +c +c transform for factor of 5 (optional code) +c + 210 c2 = c72**2 - s72**2 + s2 = 2.0d+0*c72*s72 + 220 k1 = kk + kspan + k2 = k1 + kspan + k3 = k2 + kspan + k4 = k3 + kspan + akp = a(k1) + a(k4) + akm = a(k1) - a(k4) + bkp = b(k1) + b(k4) + bkm = b(k1) - b(k4) + ajp = a(k2) + a(k3) + ajm = a(k2) - a(k3) + bjp = b(k2) + b(k3) + bjm = b(k2) - b(k3) + aa = a(kk) + bb = b(kk) + a(kk) = aa + akp + ajp + b(kk) = bb + bkp + bjp + ak = akp*c72 + ajp*c2 + aa + bk = bkp*c72 + bjp*c2 + bb + aj = akm*s72 + ajm*s2 + bj = bkm*s72 + bjm*s2 + a(k1) = ak - bj + a(k4) = ak + bj + b(k1) = bk + aj + b(k4) = bk - aj + ak = akp*c2 + ajp*c72 + aa + bk = bkp*c2 + bjp*c72 + bb + aj = akm*s2 - ajm*s72 + bj = bkm*s2 - bjm*s72 + a(k2) = ak - bj + a(k3) = ak + bj + b(k2) = bk + aj + b(k3) = bk - aj + kk = k4 + kspan + if (kk.lt.nn) go to 220 + kk = kk - nn + if (kk.le.kspan) go to 220 + go to 290 +c +c transform for odd factors +c + 230 k = nfac(i) + kspnn = kspan + kspan = kspan/k + if (k.eq.3) go to 100 + if (k.eq.5) go to 210 + if (k.eq.jf) go to 250 + jf = k + s1 = rad/(dble(k)/8.0d+0) + c1 = cos(s1) + s1 = sin(s1) + ck(jf) = 1.0d+0 + sk(jf) = 0.0d+0 + j = 1 + 240 ck(j) = ck(k)*c1 + sk(k)*s1 + sk(j) = ck(k)*s1 - sk(k)*c1 + k = k - 1 + ck(k) = ck(j) + sk(k) = -sk(j) + j = j + 1 + if (j.lt.k) go to 240 + 250 k1 = kk + k2 = kk + kspnn + aa = a(kk) + bb = b(kk) + ak = aa + bk = bb + j = 1 + k1 = k1 + kspan + 260 k2 = k2 - kspan + j = j + 1 + wt(j) = a(k1) + a(k2) + ak = wt(j) + ak + bt(j) = b(k1) + b(k2) + bk = bt(j) + bk + j = j + 1 + wt(j) = a(k1) - a(k2) + bt(j) = b(k1) - b(k2) + k1 = k1 + kspan + if (k1.lt.k2) go to 260 + a(kk) = ak + b(kk) = bk + k1 = kk + k2 = kk + kspnn + j = 1 + 270 k1 = k1 + kspan + k2 = k2 - kspan + jj = j + ak = aa + bk = bb + aj = 0.0d+0 + bj = 0.0d+0 + k = 1 + 280 k = k + 1 + ak = wt(k)*ck(jj) + ak + bk = bt(k)*ck(jj) + bk + k = k + 1 + aj = wt(k)*sk(jj) + aj + bj = bt(k)*sk(jj) + bj + jj = jj + j + if (jj.gt.jf) jj = jj - jf + if (k.lt.jf) go to 280 + k = jf - j + a(k1) = ak - bj + b(k1) = bk + aj + a(k2) = ak + bj + b(k2) = bk - aj + j = j + 1 + if (j.lt.k) go to 270 + kk = kk + kspnn + if (kk.le.nn) go to 250 + kk = kk - nn + if (kk.le.kspan) go to 250 +c +c multiply by rotation factor (except for factors of 2 and 4) +c + 290 if (i.eq.m) go to 350 + kk = jc + 1 + 300 c2 = 1.0d+0- cd + s1 = sd + mm = min(kspan,klim) + go to 320 + 310 continue + c2 = c1 - (cd*c1+sd*s1) + s1 = s1 + (sd*c1-cd*s1) +c +c the following three statements compensate for truncation +c error. if rounded arithmetic is used, they may +c be deleted. +c + c1 = 0.50d+0/(c2**2+s1**2) + 0.50d+0 + s1 = c1*s1 + c2 = c1*c2 + 320 c1 = c2 + s2 = s1 + kk = kk + kspan + 330 ak = a(kk) + a(kk) = c2*ak - s2*b(kk) + b(kk) = s2*ak + c2*b(kk) + kk = kk + kspnn + if (kk.le.nt) go to 330 + ak = s1*s2 + s2 = s1*c2 + c1*s2 + c2 = c1*c2 - ak + kk = kk - nt + kspan + if (kk.le.kspnn) go to 330 + kk = kk - kspnn + jc + if (kk.le.mm) go to 310 +c MODIFICATION OF ORIGINAL CODE: + if (kk.le.kspan) go to 340 +c SINGLETON's CODE was: +c if (kk.lt.kspan) go to 340 + kk = kk - kspan + jc + inc + if (kk.le.jc+jc) go to 300 + go to 40 + 340 s1 = dble((kk-1)/jc)*dr*rad + c2 = cos(s1) + s1 = sin(s1) + mm = min(kspan,mm+klim) + go to 320 +c +c permute the results to normal order---done in two stages +c permutation for square factors of n +c + 350 np(1) = ks + if (kt.eq.0) go to 440 + k = kt + kt + 1 + if (m.lt.k) k = k - 1 + j = 1 + np(k+1) = jc + 360 np(j+1) = np(j)/nfac(j) + np(k) = np(k+1)*nfac(j) + j = j + 1 + k = k - 1 + if (j.lt.k) go to 360 + k3 = np(k+1) + kspan = np(2) + kk = jc + 1 + k2 = kspan + 1 + j = 1 + if (n.ne.ntot) go to 400 +c +c permutation for single-variate transform (optional code) +c + 370 ak = a(kk) + a(kk) = a(k2) + a(k2) = ak + bk = b(kk) + b(kk) = b(k2) + b(k2) = bk + kk = kk + inc + k2 = kspan + k2 + if (k2.lt.ks) go to 370 + 380 k2 = k2 - np(j) + j = j + 1 + k2 = np(j+1) + k2 + if (k2.gt.np(j)) go to 380 + j = 1 + 390 if (kk.lt.k2) go to 370 + kk = kk + inc + k2 = kspan + k2 + if (k2.lt.ks) go to 390 + if (kk.lt.ks) go to 380 + jc = k3 + go to 440 +c +c permutation for multivariate transform +c + 400 k = kk + jc + 410 ak = a(kk) + a(kk) = a(k2) + a(k2) = ak + bk = b(kk) + b(kk) = b(k2) + b(k2) = bk + kk = kk + inc + k2 = k2 + inc + if (kk.lt.k) go to 410 + kk = kk + ks - jc + k2 = k2 + ks - jc + if (kk.lt.nt) go to 400 + k2 = k2 - nt + kspan + kk = kk - nt + jc + if (k2.lt.ks) go to 400 + 420 k2 = k2 - np(j) + j = j + 1 + k2 = np(j+1) + k2 + if (k2.gt.np(j)) go to 420 + j = 1 + 430 if (kk.lt.k2) go to 400 + kk = kk + jc + k2 = kspan + k2 + if (k2.lt.ks) go to 430 + if (kk.lt.ks) go to 420 + jc = k3 + 440 if (2*kt+1.ge.m) return + kspnn = np(kt+1) +c +c permutation for square-free factors of n +c + j = m - kt + nfac(j+1) = 1 + 450 nfac(j) = nfac(j)*nfac(j+1) + j = j - 1 + if (j.ne.kt) go to 450 + kt = kt + 1 + nn = nfac(kt) - 1 + jj = 0 + j = 0 + go to 480 + 460 jj = jj - k2 + k2 = kk + k = k + 1 + kk = nfac(k) + 470 jj = kk + jj + if (jj.ge.k2) go to 460 + np(j) = jj + 480 k2 = nfac(kt) + k = kt + 1 + kk = nfac(k) + j = j + 1 + if (j.le.nn) go to 470 +c +c determine the permutation cycles of length greater than 1 +c + j = 0 + go to 500 + 490 k = kk + kk = np(k) + np(k) = -kk + if (kk.ne.j) go to 490 + k3 = kk + 500 j = j + 1 + kk = np(j) + if (kk.lt.0) go to 500 + if (kk.ne.j) go to 490 + np(j) = -j + if (j.ne.nn) go to 500 + maxf = inc*maxf +c +c reorder a and b, following the permutation cycles +c + go to 570 + 510 j = j - 1 + if (np(j).lt.0) go to 510 + jj = jc + 520 kspan = jj + if (jj.gt.maxf) kspan = maxf + jj = jj - kspan + k = np(j) + kk = jc*k + i + jj + k1 = kk + kspan + k2 = 0 + 530 k2 = k2 + 1 + wt(k2) = a(k1) + bt(k2) = b(k1) + k1 = k1 - inc + if (k1.ne.kk) go to 530 + 540 k1 = kk + kspan + k2 = k1 - jc*(k+np(k)) + k = -np(k) + 550 a(k1) = a(k2) + b(k1) = b(k2) + k1 = k1 - inc + k2 = k2 - inc + if (k1.ne.kk) go to 550 + kk = k2 + if (k.ne.j) go to 540 + k1 = kk + kspan + k2 = 0 + 560 k2 = k2 + 1 + a(k1) = wt(k2) + b(k1) = bt(k2) + k1 = k1 - inc + if (k1.ne.kk) go to 560 + if (jj.ne.0) go to 520 + if (j.ne.1) go to 510 + 570 j = k3 + 1 + nt = nt - kspnn + i = nt - inc + 1 + if (nt.ge.0) go to 510 + return + end diff --git a/modules/signal_processing/src/fortran/dfftmx.lo b/modules/signal_processing/src/fortran/dfftmx.lo new file mode 100755 index 000000000..38ca8d2f8 --- /dev/null +++ b/modules/signal_processing/src/fortran/dfftmx.lo @@ -0,0 +1,12 @@ +# src/fortran/dfftmx.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/dfftmx.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/signal_processing/src/fortran/dgee01.f b/modules/signal_processing/src/fortran/dgee01.f new file mode 100755 index 000000000..613042e49 --- /dev/null +++ b/modules/signal_processing/src/fortran/dgee01.f @@ -0,0 +1,27 @@ +C/MEMBR ADD NAME=DGEE01,SSI=0 + double precision function dgee01(k,n,m,x) +c!purpose +c function to calculate the lagrange interpolation +c coefficients for use in the function gee. +c! + dimension x(*) + double precision dev,x + double precision q + double precision pi2 + common /rem001/ pi2,dev,nfcns,ngrid +c + d=1.0d+0 + q=x(k) + do 3 l=1,m + do 2 j=l,n,m + if ((j-k) .eq. 0) then + goto 2 + else + goto 1 + endif + 1 d=2.0d+0*d*(q-x(j)) + 2 continue + 3 continue + dgee01=1.0d+0/d + return + end diff --git a/modules/signal_processing/src/fortran/dgee01.lo b/modules/signal_processing/src/fortran/dgee01.lo new file mode 100755 index 000000000..c00e2f97a --- /dev/null +++ b/modules/signal_processing/src/fortran/dgee01.lo @@ -0,0 +1,12 @@ +# src/fortran/dgee01.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/dgee01.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/signal_processing/src/fortran/dsn2.f b/modules/signal_processing/src/fortran/dsn2.f new file mode 100755 index 000000000..74cdeceee --- /dev/null +++ b/modules/signal_processing/src/fortran/dsn2.f @@ -0,0 +1,51 @@ + double precision function dsn2(du, dk, dq) +c!purpose +c function: dsn2 +c calculation of the jacobi's elliptic function sn(u,k) +c +c external calculation of the parameter necessary +c dk = k($k) +c dq = exp(-pi*k'/k) ... (jacobi's nome) +c! + + implicit double precision (a-h,o-z) + + data de, dz /1.d00,2.d00/ + + dpi=4.0d0*atan(1.0d00) + domi=2.0d0*dlamch('p') + + dpi2 = dpi/dz + if (abs(dq).ge.de) go to 30 + + dm = dpi2*du/dk + dc = dz*dm + dc = cos(dc) + + dm = sin(dm)*dk/dpi2 + dqq = dq*dq + dq1 = dq + dq2 = dqq + + do 10 i=1,100 + dh = (de-dq1)/(de-dq2) + dh = dh*dh + dh = dh*(de-dz*dq2*dc+dq2*dq2) + dh = dh/(de-dz*dq1*dc+dq1*dq1) + dm = dm*dh + + dh = abs(de-dh) + if (dh.lt.domi) go to 20 + + dq1 = dq1*dqq + dq2 = dq2*dqq + 10 continue + + go to 30 + + 20 dsn2 = dm + return + + 30 dsn2 = 0.d00 + return + end diff --git a/modules/signal_processing/src/fortran/dsn2.lo b/modules/signal_processing/src/fortran/dsn2.lo new file mode 100755 index 000000000..17f57ea15 --- /dev/null +++ b/modules/signal_processing/src/fortran/dsn2.lo @@ -0,0 +1,12 @@ +# src/fortran/dsn2.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/dsn2.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/signal_processing/src/fortran/dsqrtc.f b/modules/signal_processing/src/fortran/dsqrtc.f new file mode 100755 index 000000000..fcc93ffdb --- /dev/null +++ b/modules/signal_processing/src/fortran/dsqrtc.f @@ -0,0 +1,26 @@ +C/MEMBR ADD NAME=DSQRTC,SSI=0 + subroutine dsqrtc(dx, dy, du, dv) +c!purpose +c computation of the complex square root in double precision +c!calling sequence +c subroutine dsqrtc(dx, dy, du, dv) +c du + j*dv = sqrt ( dx + j*dy ) +c! +c + implicit double precision (a-h,o-z) + domi=2.0d+0*dlamch('p') + dq = dx + dp = dy + dv = 0.50d+0*dq + du = dq*dq + dp*dp + du = sqrt(du) + du = 0.50d+0*du + dv = du - dv + du = dv + dq + if (abs(du).le.3.0d+0*dlamch('e')) du = 0.0d+0 + du = sqrt(du) + if (abs(dv).le.3.0d+0*dlamch('e')) dv = 0.0d+0 + dv = sqrt(dv) + if (dp.lt.(-domi)) du = -du + return + end diff --git a/modules/signal_processing/src/fortran/dsqrtc.lo b/modules/signal_processing/src/fortran/dsqrtc.lo new file mode 100755 index 000000000..eee2bc28a --- /dev/null +++ b/modules/signal_processing/src/fortran/dsqrtc.lo @@ -0,0 +1,12 @@ +# src/fortran/dsqrtc.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/dsqrtc.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/signal_processing/src/fortran/fft842.f b/modules/signal_processing/src/fortran/fft842.f new file mode 100755 index 000000000..16e233408 --- /dev/null +++ b/modules/signal_processing/src/fortran/fft842.f @@ -0,0 +1,132 @@ + subroutine fft842(in, n, x, y,err) +c programe de transformee de fourier rapide pour n=2**m +c - algorithme de cooley-tukey - +c!entrees +c +c ce logiciel traite des entrees complexes sous forme de deux tableaux +c +c -1] tableau representant les coefficients reels :x(i) +c -1] tableau representant les coefficients complexes :y(i) +c +c options : +c directe ----> code=0 +c indirecte----> code=1 +c +c si la dimension (suite de nombres complexes n'est pas de +c dimension 2**n tel que 0<n<15 )err est positionne a 1 . +c +c + integer ij,ji,m,nt,n2pow,fn,n8pow,nxtlt,lengt + integer err + double precision pi2,p7 + double precision pi,r,fi + double precision x(*), y(*) + dimension l(15) + equivalence(l15,l(1)),(l14,l(2)),(l13,l(3)),(l12,l(4)), + & (l11,l(5)),(l10,l(6)),(l9,l(7)),(l8,l(8)),(l7,l(9)), + & (l6,l(10)),(l5,l(11)),(l4,l(12)),(l3,l(13)),(l2,l(14)), + & (l1,l(15)) +c + pi2=8.0d+0*atan(1.0d+0) + pi=acos(-1.0d+0) + p7=1.0d+0/sqrt(2.0d+0) + do 10 i=1,15 + m=i + nt=2**i + if(n.eq.nt)goto 20 +10 continue +c +c erreur puissance de 2 non respecte)==> err=1 +c + err=1 + return +c aucune erreur===> err=0 +20 err=0 + n2pow=m + nthpo=n + fn=nthpo + if(in.eq.1)goto 40 + do 30 i=1,nthpo + y(i)=-y(i) +30 continue +40 n8pow=n2pow/3 + if(n8pow.eq.0)goto 60 +c +c developement de l'algoritme en base 8 si ... +c + do 50 ipass=1,n8pow + nxtlt=2**(n2pow-3*ipass) + lengt=8*nxtlt + call r8tx(nxtlt, nthpo, lengt, x(1), x(nxtlt+1), x(2*nxtlt+1), + & x(3*nxtlt+1), x(4*nxtlt+1), x(5*nxtlt+1), x(6*nxtlt+1), + & x(7*nxtlt+1), y(1), y(nxtlt+1), y(2*nxtlt+1), y(3*nxtlt+1), + & y(4*nxtlt+1), y(5*nxtlt+1), y(6*nxtlt+1), y(7*nxtlt+1)) +50 continue +c +c is there a four factor left +c +60 CRES=n2pow-3*n8pow-1 + if (CRES .lt. 0) then + goto 90 + elseif (CRES .eq. 0) then + goto 70 + else + goto 80 + endif +c +c iteration de l'algoritme en base 2 +c +70 call r2tx(nthpo, x(1), x(2), y(1), y(2)) + goto 90 +c +c iteration de l'algoritme en base 4 +c +80 call r4tx(nthpo, x(1), x(2), x(3), x(4), y(1), y(2), y(3), y(4)) +c +90 do 110 j=1,15 + l(j)=1.0d+0 + CRES=j-n2pow + if (CRES .le. 0) goto 100 + goto 110 +100 l(j)=2.0d+0**(n2pow+1-j) +110 continue + ij=1 + do 130 j1=1,l1 + do 130 j2=j1,l2,l1 + do 130 j3=j2,l3,l2 + do 130 j4=j3,l4,l3 + do 130 j5=j4,l5,l4 + do 130 j6=j5,l6,l5 + do 130 j7=j6,l7,l6 + do 130 j8=j7,l8,l7 + do 130 j9=j8,l9,l8 + do 130 j10=j9,l10,l9 + do 130 j11=j10,l11,l10 + do 130 j12=j11,l12,l11 + do 130 j13=j12,l13,l12 + do 130 j14=j13,l14,l13 + do 130 ji=j14,l15,l14 + CRES=ij-ji + if (CRES .ge. 0) then + goto 130 + else + goto 120 + endif +120 r=x(ij) + x(ij)=x(ji) + x(ji)=r + fi=y(ij) + y(ij)=y(ji) + y(ji)=fi +130 ij=ij+1 + if(in.eq.1)goto 150 + do 140 i=1,nthpo + y(i)=-y(i) +140 continue + goto 170 +150 do 160 i=1,nthpo + x(i)=x(i)/fn + y(i)=y(i)/fn +160 continue +170 return + end diff --git a/modules/signal_processing/src/fortran/fft842.lo b/modules/signal_processing/src/fortran/fft842.lo new file mode 100755 index 000000000..e2f9000e4 --- /dev/null +++ b/modules/signal_processing/src/fortran/fft842.lo @@ -0,0 +1,12 @@ +# src/fortran/fft842.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/fft842.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/signal_processing/src/fortran/filbut.f b/modules/signal_processing/src/fortran/filbut.f new file mode 100755 index 000000000..92f2944d4 --- /dev/null +++ b/modules/signal_processing/src/fortran/filbut.f @@ -0,0 +1,61 @@ +C/MEMBR ADD NAME=FILBUT,SSI=0 + subroutine filbut(fmin,fmax,atmin,atmax, + * ordre,fc,gain,poler,polei,err) +c! +c sous-programme : filbut +c filtre a reponse impulsionnelle infinie +c calcul en double precision +c ecrit par gregoire de nanteuil le 08-10-1985 +c +c +c parametres entrants +c par l"utilisateur : +c +c fmin : frequence de fin de bande passante. +c +c fmax : frequence de debut de bande affaiblie. +c +c atmin : amplitude crete a crete des ondulations +c en bande passante en db . +c +c atmax : amplitude des ondulations en bande affaiblie en db . +c +c +c parametres sortants +c ordre : ordre du filtre. +c +c fc : frequence de coupure du filtre. +c +c gain : gain de la fonction de transfert. +c +c poler : tableau des parties reelles des poles +c de la fonction de transfert. +c +c polei : tableau des parties imaginaires des poles +c de la fonction de transfert. +c +c err : variable contenant le type d"erreur rencontree +c +c subroutines appelees frequen, poles, coeft +c! + double precision fmin,fmax + double precision fc,gain + double precision poler(*),polei(*) + integer atmin,atmax,ordre,err +c +1 if (fmin.ge.fmax) err=36 + if (err.gt.0) return + if ((fmin.le.0.).or.(fmax.ge.1.)) err=36 + if (err.gt.0) return + if (atmin.ge.atmax) err=36 + if (err.gt.0) return + if (atmin.le.0) err=36 + if (err.gt.0) return +10 continue +c + call freque(fmin,fmax,atmin,atmax,ordre,fc,err) + call poles(ordre,fc,poler,polei) + call coeft(ordre,poler,polei,gain) +100 continue + return + end diff --git a/modules/signal_processing/src/fortran/filbut.lo b/modules/signal_processing/src/fortran/filbut.lo new file mode 100755 index 000000000..68266d105 --- /dev/null +++ b/modules/signal_processing/src/fortran/filbut.lo @@ -0,0 +1,12 @@ +# src/fortran/filbut.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/filbut.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/signal_processing/src/fortran/freque.f b/modules/signal_processing/src/fortran/freque.f new file mode 100755 index 000000000..5582751b4 --- /dev/null +++ b/modules/signal_processing/src/fortran/freque.f @@ -0,0 +1,40 @@ +C/MEMBR ADD NAME=FREQUE,SSI=0 + subroutine freque(fmin,fmax,atmin,atmax,ordre,fc,err) +c! +c sous-programme : frequen +c calcul de l'ordre et de la frequence de coupure du filtre +c calcul en double precision +c ecrit par gregoire de nanteuil le 08-10-1985 +c +c +c parametres entrants +c fmin : frequence de fin de bande passante [0.;0.5] +c +c fmax : frequence de debut de bande affaiblie [0.;0.5] +c +c atmin : amplitude crete a crete des ondulations +c en bande passante en db +c +c atmax : amplitudes des ondulations en bande affaiblie en db +c +c parametres sortants +c ordre : ordre du filtre +c +c fc : frequence de coupure +c +c err : variable contenant le type d"erreur rencontree +c! + double precision fmin,fmax + double precision fc + integer atmin,atmax,ordre,err +c + ordre=nint(log10((10**(atmax/10.0d+0)-1) + * /(10**(atmin/10.0d+0)-1))/(2.0d+0*log10(fmax/fmin))) + if (ordre.le.0) err=36 + if (err.gt.0) return + fc=fmax/(10**((log10(10**(atmax/10.0d+0)-1))/(2*ordre))) + if (fc.le.0) err=36 + if (err.gt.0) return +100 continue + return + end diff --git a/modules/signal_processing/src/fortran/freque.lo b/modules/signal_processing/src/fortran/freque.lo new file mode 100755 index 000000000..4c1b05ed7 --- /dev/null +++ b/modules/signal_processing/src/fortran/freque.lo @@ -0,0 +1,12 @@ +# src/fortran/freque.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/freque.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/signal_processing/src/fortran/gee.f b/modules/signal_processing/src/fortran/gee.f new file mode 100755 index 000000000..bfb308638 --- /dev/null +++ b/modules/signal_processing/src/fortran/gee.f @@ -0,0 +1,25 @@ +C/MEMBR ADD NAME=GEE,SSI=0 + double precision function gee(k,n,ad,x,y,grid) +c!purpose +c function to evaluate the frequency response using the +c lagrange interpolation formula in the barycentric form +c! + dimension ad(*),x(*),y(*) + dimension grid(*) + double precision p,c,d,xf + double precision pi2 + double precision ad,dev,x,y + common /rem001/ pi2,dev,nfcns,ngrid +c + p=0.0d+0 + xf=grid(k) + xf=cos(pi2*xf) + d=0.0d+0 + do 1 j=1,n + c=xf-x(j) + c=ad(j)/c + d=d+c + 1 p=p+c*y(j) + gee=p/d + return + end diff --git a/modules/signal_processing/src/fortran/gee.lo b/modules/signal_processing/src/fortran/gee.lo new file mode 100755 index 000000000..b09eb100c --- /dev/null +++ b/modules/signal_processing/src/fortran/gee.lo @@ -0,0 +1,12 @@ +# src/fortran/gee.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/gee.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/signal_processing/src/fortran/hammin.f b/modules/signal_processing/src/fortran/hammin.f new file mode 100755 index 000000000..4a37627fb --- /dev/null +++ b/modules/signal_processing/src/fortran/hammin.f @@ -0,0 +1,43 @@ +C/MEMBR ADD NAME=HAMMIN,SSI=0 + subroutine hammin(ordr,demi,ieo,alph,win) +c! +c sous-programme: hammin +c fenetre de hamming generalisee +c en double precision +c acheve le 05/12/85 +c ecrit par philippe touron +c +c +c parametres entrants +c ------------------- +c demi, ordre de la demi-fenetre (entier) +c ordr, ordre du filtre (entier) +c ieo, indicateur de parite (entier) +c alph, 1ere constante de la fenetre de hamming (reelle) +c +c parametres sortants +c ------------------- +c win, les valeurs de la demi-fenetre (tableau de reels qui doit +c dans un programme appelant etre dimensionne a ordr) +c +c variables internes +c ------------------ +c xcompt,ycompt,compt, compteur de boucle et indice de tableau en reel +c (resp en entier) +c +c sous programmes appeles: aucun +c! + double precision win(*),pi,twopi,xcompt,ycompt,alph,beta + integer ordr,compt,demi,ieo +c + pi=acos(-1.0d+0) + twopi=2.0d+0*pi + beta=1.0d+0-alph + ycompt=dble(ordr)-1.0d+0 + do 10 compt=1,demi + xcompt=dble(compt)-1.0d+0 + if(ieo.eq.0)xcompt=xcompt+0.50d+0 + win(compt)=alph+beta*cos((twopi*xcompt)/ycompt) +10 continue + return + end diff --git a/modules/signal_processing/src/fortran/hammin.lo b/modules/signal_processing/src/fortran/hammin.lo new file mode 100755 index 000000000..27c26fb5c --- /dev/null +++ b/modules/signal_processing/src/fortran/hammin.lo @@ -0,0 +1,12 @@ +# src/fortran/hammin.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/hammin.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/signal_processing/src/fortran/ino.f b/modules/signal_processing/src/fortran/ino.f new file mode 100755 index 000000000..d2256927e --- /dev/null +++ b/modules/signal_processing/src/fortran/ino.f @@ -0,0 +1,51 @@ +C/MEMBR ADD NAME=INO,SSI=0 + double precision function ino(x) +c! +c fonction: ino +c fonction de bessel pour la fenetre de kaiser +c en double precision +c acheve 05/12/85 +c ecrit par philippe touron +c +c +c paramatres entrants +c ------------------- +c x, variable reelle +c +c parametres sortants +c ------------------- +c ino(x), valeur de la fonction de bessel (reelle) +c +c variables internes +c ------------------ +c y, variable reelle egale a x/2 +c incr, increment reel de la fonction de bessel +c term, valeur reelle du terme general de la serie de bessel +c somm, fonction de bessel a la n-ieme iteration (reel) +c prec, si le rapport (term/somm) < 1.0**-8, le calcul est stoppe !! +c compt, compteur de boucle (entier) +c xcompt, valeur de compt en double precision +c +c sous programmes appele: aucun +c! + double precision x,y,prec,somm,incr,term,xcompt + integer compt +c + y=x/2.0d+0 + prec=0.000000010d+0 + somm=1.0d+0 + incr=1.0d+0 + do 10 compt=1,25 + xcompt=dble(compt) + incr=incr*y/xcompt + term=incr*incr + somm=somm+term + if ((somm*prec-term) .le. 0) then + goto 10 + else + goto 20 + endif +10 continue +20 ino=somm + return + end diff --git a/modules/signal_processing/src/fortran/ino.lo b/modules/signal_processing/src/fortran/ino.lo new file mode 100755 index 000000000..ffc755c70 --- /dev/null +++ b/modules/signal_processing/src/fortran/ino.lo @@ -0,0 +1,12 @@ +# src/fortran/ino.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/ino.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/signal_processing/src/fortran/nstabl.f b/modules/signal_processing/src/fortran/nstabl.f new file mode 100755 index 000000000..52182c11b --- /dev/null +++ b/modules/signal_processing/src/fortran/nstabl.f @@ -0,0 +1,37 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) INRIA +c +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +C/MEMBR ADD NAME=NSTABL,SSI=0 + subroutine nstabl(a,n,w,ist) +c test de stabilite + dimension a(*),w(*) + double precision a,w,al + ist=1 + n1=n+1 + do 1 i=1,n1 + w(i)=a(i) + w(n1+i)=0.0d+0 + 1 continue + k=0 + if (n.eq.0) goto 99 + 10 nk1=n-k+1 + do 11 j=1,nk1 + 11 w(n1+j)=w(nk1-j+1) + if(w(n1+nk1).eq.0.0d+0) return + al=w(nk1)/w(n1+nk1) + if(abs(al).ge.1.0d+0) return + nk=n-k + do 12 j=1,nk + 12 w(j)=w(j)-al*w(n1+j) + k=k+1 + if (k.lt.n) goto 10 + 99 ist=0 + return + end + diff --git a/modules/signal_processing/src/fortran/nstabl.lo b/modules/signal_processing/src/fortran/nstabl.lo new file mode 100755 index 000000000..41a713896 --- /dev/null +++ b/modules/signal_processing/src/fortran/nstabl.lo @@ -0,0 +1,12 @@ +# src/fortran/nstabl.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/nstabl.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/signal_processing/src/fortran/ouch.f b/modules/signal_processing/src/fortran/ouch.f new file mode 100755 index 000000000..ab4b0e170 --- /dev/null +++ b/modules/signal_processing/src/fortran/ouch.f @@ -0,0 +1,40 @@ +C/MEMBR ADD NAME=OUCH,SSI=0 + subroutine ouch +c!purpose +c writes an error message when the algorithm fails to +c converge. there seem to be two conditions under which +c the algorithm fails to converge: (1) the initial +c guess for the extremal frequencies is so poor that +c the exchange iteration cannot get started, or +c (2) near the termination of a correct design, +c the deviation decreases due to rounding errors +c and the program stops. in this latter case the +c filter design is probably acceptable, but should +c be checked by computing a frequency response. +c! + INCLUDE 'stack.h' + common /oops/niter,iout + character bufstr*(4096) + + write(bufstr, 1001) + call basout(io ,wte ,bufstr(1:lnblnk(bufstr))) +1001 format('************ failure to converge **********') + + write(bufstr, 1002) + call basout(io ,wte ,bufstr(1:lnblnk(bufstr))) +1002 format('probable cause is machine rounding error') + + write(bufstr, 1003) niter + call basout(io ,wte ,bufstr(1:lnblnk(bufstr))) +1003 format( '- number of iterations =',i4) + + write(bufstr, 1004) + call basout(io ,wte ,bufstr(1:lnblnk(bufstr))) +1004 format( 'if the number of iterations exceeds 3 the design') + + write(bufstr, 1005) + call basout(io ,wte ,bufstr(1:lnblnk(bufstr))) +1005 format('may be correct, but should be verified with an fft') + + return + end diff --git a/modules/signal_processing/src/fortran/ouch.lo b/modules/signal_processing/src/fortran/ouch.lo new file mode 100755 index 000000000..e6c7e6d01 --- /dev/null +++ b/modules/signal_processing/src/fortran/ouch.lo @@ -0,0 +1,12 @@ +# src/fortran/ouch.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/ouch.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/signal_processing/src/fortran/output_stream_Import.def b/modules/signal_processing/src/fortran/output_stream_Import.def new file mode 100755 index 000000000..76b4f6e6d --- /dev/null +++ b/modules/signal_processing/src/fortran/output_stream_Import.def @@ -0,0 +1,9 @@ + LIBRARY output_stream.dll + + +EXPORTS +; +;output_stream +; +error_ +basout_ diff --git a/modules/signal_processing/src/fortran/parcha.f b/modules/signal_processing/src/fortran/parcha.f new file mode 100755 index 000000000..4433882c9 --- /dev/null +++ b/modules/signal_processing/src/fortran/parcha.f @@ -0,0 +1,36 @@ +C/MEMBR ADD NAME=PARCHA,SSI=0 + subroutine parcha(iapro,adeg,adelp,adels,vsn,gd1,gd2,acap12) +c!purpose +c computation of the parameters of the characteristic function +c Nomenclature Rabiner-Gold (page 241) +c Si adelp > 0 et adelps > 0 +c acap12=1/k1 +c!calling sequence +c subroutine parcha (iapro,adeg,adelp,adels,vsn,gd1,gd2,acap12) +c implicit double precision (a-h,o-z) +c! +c + implicit double precision (a-h,o-z) +c + gd1 = 0.0d+0 + gd2 = -1.0d+0 + if (adelp.gt.0.0d+0) gd1 = sqrt((2.0d+0-adelp)*adelp) + + / (1.0d+0-adelp) + if (adels.gt.0.0d+0) gd2 = sqrt(1.0d+0-adels*adels)/adels + acap12 = gd1/gd2 + if (acap12.gt.0.0d+0) go to 60 + go to (10, 20, 20, 30), iapro + 10 acap12 = vsn**(-adeg) + go to 40 + 20 q = arcosh(vsn)*adeg + acap12 = 1.0d+0/cosh(q) + go to 40 + 30 call bounn (adeg,acap12,vsn) + 40 if (gd2.eq.(-1.0d+0)) go to 50 + gd1 = acap12*gd2 + adelp = 1.0d+0 - 1.0d+0/sqrt(1.0d+0+gd1*gd1) + go to 60 + 50 gd2 = gd1/acap12 + adels = 1.0d+0/sqrt(1.0d+0+gd2*gd2) + 60 return + end diff --git a/modules/signal_processing/src/fortran/parcha.lo b/modules/signal_processing/src/fortran/parcha.lo new file mode 100755 index 000000000..477def4c9 --- /dev/null +++ b/modules/signal_processing/src/fortran/parcha.lo @@ -0,0 +1,12 @@ +# src/fortran/parcha.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/parcha.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/signal_processing/src/fortran/poles.f b/modules/signal_processing/src/fortran/poles.f new file mode 100755 index 000000000..abdd60379 --- /dev/null +++ b/modules/signal_processing/src/fortran/poles.f @@ -0,0 +1,36 @@ +C/MEMBR ADD NAME=POLES,SSI=0 + subroutine poles(ordre,fc,poler,polei) +c! +c sous-programme : poles +c calcul des poles de la fonction de transfert +c calcul en double precision +c ecrit par gregoire de nanteuil le 08-10-1985 +c +c +c parametres entrants +c ordre : ordre du filtre +c +c fc : frquence de coupure +c +c parametres sortants +c poler : tableau des parties reelles des poles +c de la fonction de transfert. +c +c polei : tableau des parties imaginaires des poles +c de la fonction de transfert. +c +c variables internes +c i +c! + double precision pi,fc + double precision poler(*),polei(*) + integer ordre,i +c + pi=3.1415926535897930d+0 +c + do 30 i=0,ordre-1 + poler(i+1)=-fc*sin(pi*(2*i+1)/(2*ordre)) + polei(i+1)=fc*cos(pi*(2*i+1)/(2*ordre)) +30 continue + return + end diff --git a/modules/signal_processing/src/fortran/poles.lo b/modules/signal_processing/src/fortran/poles.lo new file mode 100755 index 000000000..ebb22b74c --- /dev/null +++ b/modules/signal_processing/src/fortran/poles.lo @@ -0,0 +1,12 @@ +# src/fortran/poles.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/poles.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/signal_processing/src/fortran/r2tx.f b/modules/signal_processing/src/fortran/r2tx.f new file mode 100755 index 000000000..552786d23 --- /dev/null +++ b/modules/signal_processing/src/fortran/r2tx.f @@ -0,0 +1,17 @@ + subroutine r2tx(nthpo, cr0, cr1, ci0, ci1) +c! +c subroutine: r2tx +c sous-programme d'iteration en base 2 +c! + double precision cr0(*), cr1(*), ci0(*), ci1(*) + double precision r1,fi1 + do 10 k=1,nthpo,2 + r1=cr0(k)+cr1(k) + cr1(k)=cr0(k)-cr1(k) + cr0(k)=r1 + fi1=ci0(k)+ci1(k) + ci1(k)=ci0(k)-ci1(k) + ci0(k)=fi1 +10 continue + return + end diff --git a/modules/signal_processing/src/fortran/r2tx.lo b/modules/signal_processing/src/fortran/r2tx.lo new file mode 100755 index 000000000..6369438ab --- /dev/null +++ b/modules/signal_processing/src/fortran/r2tx.lo @@ -0,0 +1,12 @@ +# src/fortran/r2tx.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/r2tx.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/signal_processing/src/fortran/r4tx.f b/modules/signal_processing/src/fortran/r4tx.f new file mode 100755 index 000000000..80d7d472e --- /dev/null +++ b/modules/signal_processing/src/fortran/r4tx.f @@ -0,0 +1,29 @@ + subroutine r4tx(nthpo, cr0, cr1, cr2, cr3, ci0, ci1, ci2, ci3) +c! +c subroutine: r4tx +c sous-programme d'iteration en base 4 +c! + double precision cr0(*), cr1(*), cr2(*), cr3(*), + & ci0(*), ci1(*), ci2(*), ci3(*) + double precision r1,r2,r3,r4,fi1,fi2,fi3,fi4 +c + do 10 k=1,nthpo,4 + r1=cr0(k)+cr2(k) + r2=cr0(k)-cr2(k) + r3=cr1(k)+cr3(k) + r4=cr1(k)-cr3(k) + fi1=ci0(k)+ci2(k) + fi2=ci0(k)-ci2(k) + fi3=ci1(k)+ci3(k) + fi4=ci1(k)-ci3(k) + cr0(k)=r1+r3 + ci0(k)=fi1+fi3 + cr1(k)=r1-r3 + ci1(k)=fi1-fi3 + cr2(k)=r2-fi4 + ci2(k)=fi2+r4 + cr3(k)=r2+fi4 + ci3(k)=fi2-r4 + 10 continue + return + end diff --git a/modules/signal_processing/src/fortran/r4tx.lo b/modules/signal_processing/src/fortran/r4tx.lo new file mode 100755 index 000000000..029791723 --- /dev/null +++ b/modules/signal_processing/src/fortran/r4tx.lo @@ -0,0 +1,12 @@ +# src/fortran/r4tx.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/r4tx.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/signal_processing/src/fortran/r8tx.f b/modules/signal_processing/src/fortran/r8tx.f new file mode 100755 index 000000000..e25524846 --- /dev/null +++ b/modules/signal_processing/src/fortran/r8tx.f @@ -0,0 +1,110 @@ + subroutine r8tx(nxtlt, nthpo, lengt, cr0, cr1, cr2, cr3, cr4, + & cr5, cr6, cr7, ci0, ci1, ci2, ci3, ci4, ci5, ci6, ci7) +c! +c subroutine: r8tx +c sous-programme d'iteration en base 8 +c! + double precision cr0(*), cr1(*), cr2(*), cr3(*), cr4(*), + & cr5(*), cr6(*), cr7(*), ci1(*), ci2(*), ci3(*), ci4(*), + & ci5(*), ci6(*), ci7(*), ci0(*) + double precision arg,c1,s1,c2,s2,c3,s3,c4,s4,c5,s5,c6,s6,c7,s7, + & ar0,ar1,ar2,ar3,ar4,ar5,ar6,ar7,ai0,ai1,ai2,ai3,ai4, + & ai5,ai6,ai7,br0,br1,br2,br3,br4,br5,br6,br7,bi0,bi1, + & bi2,bi3,bi4,bi5,bi6,bi7,tr,ti,scale,pi2,p7 +c + pi2=8.0d+0*atan(1.0d+0) + p7=1.0d+0/sqrt(2.0d+0) + scale=pi2/dble(lengt) + do 30 j=1,nxtlt + arg=dble(j-1)*scale + c1=cos(arg) + s1=sin(arg) + c2=c1**2-s1**2 + s2=c1*s1+c1*s1 + c3=c1*c2-s1*s2 + s3=c2*s1+s2*c1 + c4=c2**2-s2**2 + s4=c2*s2+c2*s2 + c5=c2*c3-s2*s3 + s5=c3*s2+s3*c2 + c6=c3**2-s3**2 + s6=c3*s3+c3*s3 + c7=c3*c4-s3*s4 + s7=c4*s3+s4*c3 + do 20 k=j,nthpo,lengt + ar0=cr0(k)+cr4(k) + ar1=cr1(k)+cr5(k) + ar2=cr2(k)+cr6(k) + ar3=cr3(k)+cr7(k) + ar4=cr0(k)-cr4(k) + ar5=cr1(k)-cr5(k) + ar6=cr2(k)-cr6(k) + ar7=cr3(k)-cr7(k) + ai0=ci0(k)+ci4(k) + ai1=ci1(k)+ci5(k) + ai2=ci2(k)+ci6(k) + ai3=ci3(k)+ci7(k) + ai4=ci0(k)-ci4(k) + ai5=ci1(k)-ci5(k) + ai6=ci2(k)-ci6(k) + ai7=ci3(k)-ci7(k) + br0=ar0+ar2 + br1=ar1+ar3 + br2=ar0-ar2 + br3=ar1-ar3 + br4=ar4-ai6 + br5=ar5-ai7 + br6=ar4+ai6 + br7=ar5+ai7 + bi0=ai0+ai2 + bi1=ai1+ai3 + bi2=ai0-ai2 + bi3=ai1-ai3 + bi4=ai4+ar6 + bi5=ai5+ar7 + bi6=ai4-ar6 + bi7=ai5-ar7 + cr0(k)=br0+br1 + ci0(k)=bi0+bi1 + if(j.le.1)goto 10 + cr1(k)=c4*(br0-br1)-s4*(bi0-bi1) + ci1(k)=c4*(bi0-bi1)+s4*(br0-br1) + cr2(k)=c2*(br2-bi3)-s2*(bi2+br3) + ci2(k)=c2*(bi2+br3)+s2*(br2-bi3) + cr3(k)=c6*(br2+bi3)-s6*(bi2-br3) + ci3(k)=c6*(bi2-br3)+s6*(br2+bi3) + tr=p7*(br5-bi5) + ti=p7*(br5+bi5) + cr4(k)=c1*(br4+tr)-s1*(bi4+ti) + ci4(k)=c1*(bi4+ti)+s1*(br4+tr) + cr5(k)=c5*(br4-tr)-s5*(bi4-ti) + ci5(k)=c5*(bi4-ti)+s5*(br4-tr) + tr=-p7*(br7+bi7) + ti=p7*(br7-bi7) + cr6(k)=c3*(br6+tr)-s3*(bi6+ti) + ci6(k)=c3*(bi6+ti)+s3*(br6+tr) + cr7(k)=c7*(br6-tr)-s7*(bi6-ti) + ci7(k)=c7*(bi6-ti)+s7*(br6-tr) + goto 20 +10 cr1(k)=br0-br1 + ci1(k)=bi0-bi1 + cr2(k)=br2-bi3 + ci2(k)=bi2+br3 + cr3(k)=br2+bi3 + ci3(k)=bi2-br3 + tr=p7*(br5-bi5) + ti=p7*(br5+bi5) + cr4(k)=br4+tr + ci4(k)=bi4+ti + cr5(k)=br4-tr + ci5(k)=bi4-ti + tr=-p7*(br7+bi7) + ti=p7*(br7-bi7) + cr6(k)=br6+tr + ci6(k)=bi6+ti + cr7(k)=br6-tr + ci7(k)=bi6-ti +20 continue +30 continue + return + end diff --git a/modules/signal_processing/src/fortran/r8tx.lo b/modules/signal_processing/src/fortran/r8tx.lo new file mode 100755 index 000000000..8400b49cf --- /dev/null +++ b/modules/signal_processing/src/fortran/r8tx.lo @@ -0,0 +1,12 @@ +# src/fortran/r8tx.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/r8tx.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/signal_processing/src/fortran/remez.f b/modules/signal_processing/src/fortran/remez.f new file mode 100755 index 000000000..50c03be9e --- /dev/null +++ b/modules/signal_processing/src/fortran/remez.f @@ -0,0 +1,309 @@ +C/MEMBR ADD NAME=REMEZ,SSI=0 + subroutine remez(ngr,nfc,iext,ad,x,y,des,grid,wt,a,p,q,alpha) +c!purpose +c this subroutine implements the remez exchange algorithm +c for the weighted chebyshev approximation of a continuous +c function with a sum of cosines. inputs to the subroutine +c are a dense grid which replaces the frequency axis, the +c desired function on this grid, the weight function on the +c grid, the number of cosines, and an initial guess of the +c extremal frequencies. the program minimizes the chebyshev +c error by determining the best location of the extremal +c frequencies (points of maximum error) and then calculates +c the coefficients of the best approximation. +c!calling sequence +c subroutine remez(ngr,nfc,iext,ad,x,y,des,grid,wt,a,p,q,alpha) +c dimensioning of arrays in calling program is as follows: +c working vectors ad,x,y,a,p,q: nfc+2 +c input vectors des,grid,wt: ngr +c input vector iext: nfc+2 +c output vector alpha: nfc+2 +c!authors +C JAMES H. MCCLELLAN +C DEPARTMENT OF ELECTRICAL ENGINEERING AND COMPUTER SCIENCE +C MASSACHUSETTS INSTITUTE OF TECHNOLOGY +C CAMBRIDGE, MASS. 02139 +C +C THOMAS W. PARKS +C DEPARTMENT OF ELECTRICAL ENGINEERING +C RICE UNIVERSITY +C HOUSTON, TEXAS 77001 +C +C LAWRENCE R. RABINER +C BELL LABORATORIES +C MURRAY HILL, NEW JERSEY 07974 +c! + dimension iext(*),ad(*),alpha(*),x(*),y(*) + dimension des(*),grid(*),wt(*) + dimension a(*),p(*),q(*) + double precision pi2,dnum,dden,dtemp,a,p,q + double precision dk,dak + double precision ad,dev,x,y + double precision gee,dgee01 + double precision alpha + common /rem001/ pi2,dev,nfcns,ngrid + common /oops/niter,iout +c +c the program allows a maximum number of iterations of 25 +c + itrmax=25 + ngrid=ngr + nfcns=nfc + pi=4.0d+0*atan(1.0d+0) + pi2=2.0d+0*pi + devl=-1.0d+0 + nz=nfcns+1 + nzz=nfcns+2 + niter=0 + 100 continue + iext(nzz)=ngrid+1 + niter=niter+1 + if(niter.gt.itrmax) go to 400 + do 110 j=1,nz + jxt=iext(j) + dtemp=grid(jxt) + dtemp=cos(dtemp*pi2) + 110 x(j)=dtemp + jet=(nfcns-1)/15+1 + do 120 j=1,nz + 120 ad(j)=dgee01(j,nz,jet,x) + dnum=0.0d+0 + dden=0.0d+0 + k=1 + do 130 j=1,nz + l=iext(j) + dtemp=ad(j)*des(l) + dnum=dnum+dtemp + dtemp=dble(k)*ad(j)/wt(l) + dden=dden+dtemp + 130 k=-k + dev=dnum/dden +c write(6,131) dev +c 131 format(1x,12hdeviation = ,f12.9) + nu=1 + if(dev.gt.0.0d+0) nu=-1 + dev=-dble(nu)*dev + k=nu + do 140 j=1,nz + l=iext(j) + dtemp=dble(k)*dev/wt(l) + y(j)=des(l)+dtemp + 140 k=-k + if(dev.gt.devl) go to 150 + call ouch + go to 400 + 150 devl=dev + jchnge=0 + k1=iext(1) + knz=iext(nz) + klow=0 + nut=-nu + j=1 +c +c search for the extremal frequencies of the best +c approximation +c + 200 if(j.eq.nzz) ynz=comp + if(j.ge.nzz) go to 300 + kup=iext(j+1) + l=iext(j)+1 + nut=-nut + if(j.eq.2) y1=comp + comp=dev + if(l.ge.kup) go to 220 + err=gee(l,nz,ad,x,y,grid) + err=(err-des(l))*wt(l) + dtemp=dble(nut)*err-comp + if(dtemp.le.0.0d+0) go to 220 + comp=dble(nut)*err + 210 l=l+1 + if(l.ge.kup) go to 215 + err=gee(l,nz,ad,x,y,grid) + err=(err-des(l))*wt(l) + dtemp=dble(nut)*err-comp + if(dtemp.le.0.0d+0) go to 215 + comp=dble(nut)*err + go to 210 + 215 iext(j)=l-1 + j=j+1 + klow=l-1 + jchnge=jchnge+1 + go to 200 + 220 l=l-1 + 225 l=l-1 + if(l.le.klow) go to 250 + err=gee(l,nz,ad,x,y,grid) + err=(err-des(l))*wt(l) + dtemp=dble(nut)*err-comp + if(dtemp.gt.0.0d+0) go to 230 + if(jchnge.le.0) go to 225 + go to 260 + 230 comp=dble(nut)*err + 235 l=l-1 + if(l.le.klow) go to 240 + err=gee(l,nz,ad,x,y,grid) + err=(err-des(l))*wt(l) + dtemp=dble(nut)*err-comp + if(dtemp.le.0.0d+0) go to 240 + comp=dble(nut)*err + go to 235 + 240 klow=iext(j) + iext(j)=l+1 + j=j+1 + jchnge=jchnge+1 + go to 200 + 250 l=iext(j)+1 + if(jchnge.gt.0) go to 215 + 255 l=l+1 + if(l.ge.kup) go to 260 + err=gee(l,nz,ad,x,y,grid) + err=(err-des(l))*wt(l) + dtemp=dble(nut)*err-comp + if(dtemp.le.0.0d+0) go to 255 + comp=dble(nut)*err + go to 210 + 260 klow=iext(j) + j=j+1 + go to 200 + 300 if(j.gt.nzz) go to 320 + if(k1.gt.iext(1)) k1=iext(1) + if(knz.lt.iext(nz)) knz=iext(nz) + nut1=nut + nut=-nu + l=0 + kup=k1 + comp=ynz*(1.000010d+0) + luck=1 + 310 l=l+1 + if(l.ge.kup) go to 315 + err=gee(l,nz,ad,x,y,grid) + err=(err-des(l))*wt(l) + dtemp=dble(nut)*err-comp + if(dtemp.le.0.0d+0) go to 310 + comp=dble(nut)*err + j=nzz + go to 210 + 315 luck=6 + go to 325 + 320 if(luck.gt.9) go to 350 + if(comp.gt.y1) y1=comp + k1=iext(nzz) + 325 l=ngrid+1 + klow=knz + nut=-nut1 + comp=y1*(1.000010d+0) + 330 l=l-1 + if(l.le.klow) go to 340 + err=gee(l,nz,ad,x,y,grid) + err=(err-des(l))*wt(l) + dtemp=dble(nut)*err-comp + if(dtemp.le.0.0d+0) go to 330 + j=nzz + comp=dble(nut)*err + luck=luck+10 + go to 235 + 340 if(luck.eq.6) go to 370 + do 345 j=1,nfcns + nzzmj=nzz-j + nzmj=nz-j + 345 iext(nzzmj)=iext(nzmj) + iext(1)=k1 + go to 100 + 350 kn=iext(nzz) + do 360 j=1,nfcns + 360 iext(j)=iext(j+1) + iext(nz)=kn + go to 100 + 370 if(jchnge.gt.0) go to 100 +c +c calculation of the coefficients of the best approximation +c using the inverse discrete fourier transform +c + 400 continue + nm1=nfcns-1 + fsh=1.0e-06 + gtemp=grid(1) + x(nzz)=-2.0d+0 + cn=2*nfcns-1 + delf=1.0d+0/cn + l=1 + kkk=0 + if(grid(1).lt.0.010d+0.and.grid(ngrid).gt.0.490d+0) kkk=1 + if(nfcns.le.3) kkk=1 + if(kkk.eq.1) go to 405 + dtemp=cos(pi2*grid(1)) + dnum=cos(pi2*grid(ngrid)) + aa=2.0d+0/(dtemp-dnum) + bb=-(dtemp+dnum)/(dtemp-dnum) + 405 continue + do 430 j=1,nfcns + ft=j-1 + ft=ft*delf + xt=cos(pi2*ft) + if(kkk.eq.1) go to 410 + xt=(xt-bb)/aa + xt1=sqrt(1.0d+0-xt*xt) + ft=atan2(xt1,xt)/pi2 + 410 xe=x(l) + if(xt.gt.xe) go to 420 + if((xe-xt).lt.fsh) go to 415 + l=l+1 + go to 410 + 415 a(j)=y(l) + go to 425 + 420 if((xt-xe).lt.fsh) go to 415 + grid(1)=ft + a(j)=gee(1,nz,ad,x,y,grid) + 425 continue + if(l.gt.1) l=l-1 + 430 continue + grid(1)=gtemp + dden=pi2/cn + do 510 j=1,nfcns + dtemp=0.0d+0 + dnum=j-1 + dnum=dnum*dden + if(nm1.lt.1) go to 505 + do 500 k=1,nm1 + dak=a(k+1) + dk=k + 500 dtemp=dtemp+dak*cos(dnum*dk) + 505 dtemp=2.0d+0*dtemp+a(1) + 510 alpha(j)=dtemp + do 550 j=2,nfcns + 550 alpha(j)=2.0d+0*alpha(j)/cn + alpha(1)=alpha(1)/cn + if(kkk.eq.1) go to 545 + p(1)=2.0d+0*alpha(nfcns)*bb+alpha(nm1) + p(2)=2.0d+0*aa*alpha(nfcns) + q(1)=alpha(nfcns-2)-alpha(nfcns) + do 540 j=2,nm1 + if(j.lt.nm1) go to 515 + aa=0.5*aa + bb=0.5*bb + 515 continue + p(j+1)=0.0d+0 + do 520 k=1,j + a(k)=p(k) + 520 p(k)=2.0d+0*bb*a(k) + p(2)=p(2)+a(1)*2.0d+0*aa + jm1=j-1 + do 525 k=1,jm1 + 525 p(k)=p(k)+q(k)+aa*a(k+1) + jp1=j+1 + do 530 k=3,jp1 + 530 p(k)=p(k)+aa*a(k-1) + if(j.eq.nm1) go to 540 + do 535 k=1,j + 535 q(k)=-a(k) + nf1j=nfcns-1-j + q(1)=q(1)+alpha(nf1j) + 540 continue + do 543 j=1,nfcns + 543 alpha(j)=p(j) + 545 continue + if(nfcns.gt.3)return + alpha(nfcns+1)=0.0d+0 + alpha(nfcns+2)=0.0d+0 + return + end diff --git a/modules/signal_processing/src/fortran/remez.lo b/modules/signal_processing/src/fortran/remez.lo new file mode 100755 index 000000000..d3d369939 --- /dev/null +++ b/modules/signal_processing/src/fortran/remez.lo @@ -0,0 +1,12 @@ +# src/fortran/remez.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/remez.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/signal_processing/src/fortran/romeg.f b/modules/signal_processing/src/fortran/romeg.f new file mode 100755 index 000000000..a833e2996 --- /dev/null +++ b/modules/signal_processing/src/fortran/romeg.f @@ -0,0 +1,31 @@ +C/MEMBR ADD NAME=ROMEG,SSI=0 + subroutine romeg(nmaxi,maxdeg,ityp,nzm,zm,rom) +c!purpose +c realized frequencies omega +c! +c + implicit double precision (a-h,o-z) + dimension rom(*), nzm(*) + double precision zm(maxdeg,*) +c + n2 = nzm(2) + n3 = nzm(3) + go to (10, 20, 30, 40), ityp + 10 rom(1) = zm(n2,2) + rom(2) = zm(1,3) + go to 50 + 20 rom(1) = zm(1,3) + rom(2) = zm(n2,2) + go to 50 + 30 rom(1) = zm(n3,3) + rom(2) = zm(1,2) + rom(3) = zm(n2,2) + rom(4) = zm(1,3) + go to 50 + 40 n2 = n2/2 + rom(1) = zm(n2,2) + rom(4) = zm(n2+1,2) + rom(3) = zm(1,3) + rom(2) = zm(n3,3) + 50 return + end diff --git a/modules/signal_processing/src/fortran/romeg.lo b/modules/signal_processing/src/fortran/romeg.lo new file mode 100755 index 000000000..c158af606 --- /dev/null +++ b/modules/signal_processing/src/fortran/romeg.lo @@ -0,0 +1,12 @@ +# src/fortran/romeg.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/romeg.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/signal_processing/src/fortran/rpem.f b/modules/signal_processing/src/fortran/rpem.f new file mode 100755 index 000000000..97c2f44e7 --- /dev/null +++ b/modules/signal_processing/src/fortran/rpem.f @@ -0,0 +1,202 @@ +C/MEMBR ADD NAME=RPEM,SSI=0 + subroutine rpem(theta,p,n,u,y,lambda,k,c,istab2,v,eps, + & eps1,idim,fi,psi,tstab,work,f,g,l) +c!but +c -1 -1 -1 +c a(q )y(t) = b(q )u(t) + c(q )e(t) +c +c!parametres +c +c ***description des parametres*** +c +c theta - vecteur d'ordre (3*n) qui contienne les parametres +c de estimation +c theta=(a(1) ...a(n),b(1) ...b(n), c(1) ...c(n) +c theta est changee dans la subroutine +c p - matrice symetrique d'ordre (3*n) +c p est employee dans la forme u-d +c p=u*d*u(transposee) +c avec d diagonale et u triangulaire superieure +c les elements de d sont conserves dans la diagonale de d +c les elements de u sont gardes dans la partie diagonale +c superieure de p. p est changee dans la subroutine. +c n - modele d'ordre (min 1, max 10) +c u - derniere valeur d'entree +c y - derniere valeur de sortie +c lambda- facteur d'oubli (a fournir) +c k - facteur de contraction employe pour le filtrage +c des donnees (a fournir) +c commentaire: +c pour des resultats raisonnables +c 0.lt.lambda.le.1 +c lambda proche de 1 apres plusieurs appels a rpem +c 0.lt.k.lt.1 +c k proche de 1 apres plusieurs appels a rpem +c c - parametre employe pour la regularisation +c c doit etre choisi plutot grand +c istab1- flag (a fournir) pour les tests d'estabilite de c(z). +c si istab1=0 on n'execute pas des controles (test +c d'estabilite et reductions de pas) +c si istab1.ne.0 on execute des controles (test +c d'estabilite et eventuelles reductions de pas) +c istab2- entier donne en sortie qu'indique le nombre des +c reductions de pas executees. si istab1=0, +c alors la valeur de istab2 n'est pas significative +c v - fonction de perte- addition des carres des erreurs +c predis. une modification due a des incertitudes dans +c la phase transiente est inclue +c v est changee par la subroutine +c eps - erreur de prediction (retourne) +c eps1 - residu(retourne) +c init - flag employe pour commencer la prediction +c si init=0 tous les parametres sont mis a jour +c si init.ne.0 des valeurs initiaux adequats sont +c mis en premier et apres les parametres sont mis +c en employant les donnees disponibles u et y +c po - parametre scalaire employe pour donner a p une +c valeur initiale (a etre fourni quand init.ne.0) +c if init.ne.0 p=po*matrice unitaire +c idim - parametre de dimension +c +c!subroutines necessaires +c nstabl +c! + double precision theta(*),p(idim,*),u,y,c,eps,eps1,po + double precision fi(*),psi(*),tstab(*),work(*),f(*),g(*) + double precision lambda,k,l(*) + double precision amy,y1,u1,e1,ci,alfa,gamma,beta,dd,al,s,v +c + nn=n*3 +c ======================================== +c test pour initialisation +c ======================================== + init=0 + istab1=1 + po=1 + if (init.eq.0) goto 100 +c + v=0.0d+0 + do 10 i=1,nn + do 10 j=1,nn +10 p(i,j)=0.0d+0 + do 20 i=1,nn + p(i,i)=po + theta(i)=0.0d+0 + l(i)=0.0d+0 + fi(i)=0.0d+0 +20 psi(i)=0.0d+0 +c ======================================== +c calcul de l'erreur de prediction +c ======================================== +100 eps=y + do 110 i=1,nn +110 eps=eps-fi(i)*theta(i) +c ======================================== +c calcul des nouvelles estimations de parametres +c ======================================== + amy=1.0d+0 +c ======================================== +c test pour determiner si on fait des controles +c ======================================== + if(istab1.eq.0) goto 200 + istab2=0 +120 do 130 i=1,n + ni=2*n+i +130 tstab(i+1)=theta(ni)+l(ni)*eps*amy + tstab(1)=1.0d+0 +c ======================================== +c test pour stabilite de c(z) +c ======================================== + call nstabl(tstab,n,work,ist) + if (ist.eq.0) goto 200 + amy=amy/2.0d+0 + if(1.0d+0+amy.le.1.0d+0) goto 200 + istab2=istab2+1 + goto 120 +c ======================================== +c mise a jour de parametres d'estimation +c ======================================== +200 do 210 i=1,nn +210 theta(i)=theta(i)+l(i)*eps*amy +c ======================================== +c calcul residus +c ======================================== + eps1=y + do 220 i=1,nn +220 eps1=eps1-fi(i)*theta(i) +c ======================================== +c calcul des signaux filtrees y1, u1, e1 +c ======================================== + y1=y + u1=u + e1=eps1 +c + do 620 i=1,n + ci=theta(2*n+i)*k**i + y1=y1+ci*psi(i) + u1=u1-ci*psi(n+i) +620 e1=e1-ci*psi(n*2+i) +c ======================================== +c mise a jour des vecteurs fi et psi +c ======================================== + if(n.eq.1) goto 720 + do 700 j=2,n + i=n+2-j + fi(i)=fi(i-1) + psi(i)=psi(i-1) + i=2*n+2-j + fi(i)=fi(i-1) + psi(i)=psi(i-1) + i=3*n+2-j + fi(i)=fi(i-1) +700 psi(i)=psi(i-1) +720 fi(1)=-y + psi(1)=-y1 + fi(n+1)=u + psi(n+1)=u1 + fi(2*n+1)=eps1 + psi(2*n+1)=e1 +c ======================================== +c calcul du vecteur de gain l, mise a jour de p et v +c ======================================== + do 810 i=2,nn + j=nn+2-i + alfa=psi(j) + j1=j-1 + do 800 kk=1,j1 +800 alfa=alfa+p(kk,j)*psi(kk) + f(j)=alfa +810 g(j)=p(j,j)*alfa + g(1)=p(1,1)*psi(1) + f(1)=psi(1) +c + alfa=lambda+f(1)*g(1) + gamma=0.0d+0 + if (alfa.gt.0.0d+0) gamma=1.0d+0/alfa + if(g(1).ne.0.0d+0) p(1,1)=gamma*p(1,1) +c + do 830 j=2,nn + beta=alfa + dd=g(j) + alfa=alfa+dd*f(j) + if(alfa.eq.0.0d+0) goto 830 + al=-f(j)*gamma +c + j1=j-1 + do 820 i=1,j1 + s=p(i,j) + p(i,j)=s+al*g(i) +820 g(i)=g(i)+dd*s + gamma=1.0d+0/alfa + p(j,j)=beta*gamma*p(j,j)/lambda + p(j,j)=min(p(j,j),c) +830 continue +c + v=v+eps**2/alfa + do 840 i=1,nn +840 l(i)=g(i)/alfa +c ======================================== +c fin des calculs +c ======================================== + return + end diff --git a/modules/signal_processing/src/fortran/rpem.lo b/modules/signal_processing/src/fortran/rpem.lo new file mode 100755 index 000000000..fc7cba304 --- /dev/null +++ b/modules/signal_processing/src/fortran/rpem.lo @@ -0,0 +1,12 @@ +# src/fortran/rpem.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/rpem.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/signal_processing/src/fortran/sci_ffir.f b/modules/signal_processing/src/fortran/sci_ffir.f new file mode 100755 index 000000000..d95a14bf4 --- /dev/null +++ b/modules/signal_processing/src/fortran/sci_ffir.f @@ -0,0 +1,18 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) INRIA +c +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +c ======================================= + subroutine sciffir(fname) +c implicit undefined (a-z) + include 'stack.h' + character*(*) fname + return + end +c ======================================= + + diff --git a/modules/signal_processing/src/fortran/signal_processing_Import.def b/modules/signal_processing/src/fortran/signal_processing_Import.def new file mode 100755 index 000000000..c1c727ad6 --- /dev/null +++ b/modules/signal_processing/src/fortran/signal_processing_Import.def @@ -0,0 +1,17 @@ +LIBRARY signal_processing.dll + + +EXPORTS +; imports required by f2c solution +corrname_ +corrtyp_ +corradr_ +iercorr_ +rem001_ +oops_ +tg02bd_ +; +setdgetx_ +dgety_ +dgetx_ +setdgety_ diff --git a/modules/signal_processing/src/fortran/signal_processing_f.rc b/modules/signal_processing/src/fortran/signal_processing_f.rc new file mode 100755 index 000000000..38c13c722 --- /dev/null +++ b/modules/signal_processing/src/fortran/signal_processing_f.rc @@ -0,0 +1,96 @@ +// Microsoft Visual C++ generated resource script. +// + + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +//#include "afxres.h" +#define APSTUDIO_HIDDEN_SYMBOLS +#include "windows.h" +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// French (France) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_FRA) +#ifdef _WIN32 +LANGUAGE LANG_FRENCH, SUBLANG_FRENCH +#pragma code_page(1252) +#endif //_WIN32 + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE +BEGIN + "resource.h\0" +END + +3 TEXTINCLUDE +BEGIN + "\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 5,5,2,0 + PRODUCTVERSION 5,5,2,0 + FILEFLAGSMASK 0x17L +#ifdef _DEBUG + FILEFLAGS 0x1L +#else + FILEFLAGS 0x0L +#endif + FILEOS 0x4L + FILETYPE 0x2L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040c04b0" + BEGIN + VALUE "FileDescription", "signal_processing_f module" + VALUE "FileVersion", "5, 5, 2, 0" + VALUE "InternalName", "signal_processing_f module" + VALUE "LegalCopyright", "Copyright (C) 2017" + VALUE "OriginalFilename", "signal_processing_f.dll" + VALUE "ProductName", "signal_processing_f module" + VALUE "ProductVersion", "5, 5, 2, 0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x40c, 1200 + END +END + +#endif // French (France) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// + + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/modules/signal_processing/src/fortran/signal_processing_f.vfproj b/modules/signal_processing/src/fortran/signal_processing_f.vfproj new file mode 100755 index 000000000..a1ba0e7de --- /dev/null +++ b/modules/signal_processing/src/fortran/signal_processing_f.vfproj @@ -0,0 +1,178 @@ +<?xml version="1.0" encoding="UTF-8"?> +<VisualStudioProject ProjectType="typeDynamicLibrary" ProjectCreator="Intel Fortran" Keyword="Dll" Version="11.0" ProjectIdGuid="{959384FC-016C-4B01-B848-1B18D26B6CC4}"> + <Platforms> + <Platform Name="Win32"/> + <Platform Name="x64"/></Platforms> + <Configurations> + <Configuration Name="Debug|Win32" OutputDirectory="$(SolutionDir)bin\" IntermediateDirectory="$(ProjectDir)$(ConfigurationName)" DeleteExtensionsOnClean="*.obj;*.mod;*.pdb;*.asm;*.map;*.dyn;*.dpi;*.tmp;*.log;*.ilk;*.dll;$(TargetPath)" ConfigurationType="typeDynamicLibrary"> + <Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" DebugInformationFormat="debugEnabled" Optimization="optimizeDisabled" AdditionalIncludeDirectories="../../../core/includes" PreprocessorDefinitions="WIN32;FORDLL" AlternateParameterSyntax="false" F77RuntimeCompatibility="true" FPS4Libs="false" CallingConvention="callConventionCRef" ExternalNameUnderscore="true" ModulePath="$(INTDIR)/" ObjectFile="$(INTDIR)/" RuntimeLibrary="rtMultiThreadedDebugDLL"/> + <Tool Name="VFLinkerTool" OutputFile="$(SolutionDir)bin\$(ProjectName).dll" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" ModuleDefinitionFile="signal_processing_f.def" GenerateDebugInformation="true" SubSystem="subSystemWindows" ImportLibrary="$(SolutionDir)bin\$(ProjectName).lib" LinkDLL="true" AdditionalDependencies="../../../../bin/blasplus.lib ../../../../bin/lapack.lib core.lib signal_processing.lib output_stream.lib elementary_functions.lib elementary_functions_f.lib core_f.lib"/> + <Tool Name="VFResourceCompilerTool"/> + <Tool Name="VFMidlTool" SuppressStartupBanner="true" HeaderFileName="$(InputName).h" TypeLibraryName="$(IntDir)/$(InputName).tlb"/> + <Tool Name="VFCustomBuildTool"/> + <Tool Name="VFPreLinkEventTool" CommandLine="setlocal EnableDelayedExpansion +cd $(ConfigurationName) +set LIST_OBJ= +for %%f in (*.obj) do set LIST_OBJ=!LIST_OBJ! %%f +"$(SolutionDir)bin\dumpexts" -o $(ProjectName).def $(ProjectName).dll %LIST_OBJ% +copy $(ProjectName).def ..\$(ProjectName).def >nul +del *.def >nul +cd .." Description="Build $(ProjectName).def"/> + <Tool Name="VFPreBuildEventTool" CommandLine="lib /DEF:"$(InputDir)core_import.def" /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:"$(InputDir)core.lib" 1>NUL 2>NUL +lib /DEF:"$(InputDir)core_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:"$(InputDir)core_f.lib" 1>NUL 2>NUL +lib /DEF:"$(InputDir)signal_processing_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:"$(InputDir)signal_processing.lib" 1>NUL 2>NUL +lib /DEF:"$(InputDir)output_stream_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:"$(InputDir)output_stream.lib" 1>NUL 2>NUL +lib /DEF:"$(InputDir)elementary_functions_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:"$(InputDir)elementary_functions.lib" 1>NUL 2>NUL +lib /DEF:"$(InputDir)elementary_functions_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:"$(InputDir)elementary_functions_f.lib" 1>NUL 2>NUL" Description="Build Dependencies"/> + <Tool Name="VFPostBuildEventTool"/> + <Tool Name="VFManifestTool" SuppressStartupBanner="true"/></Configuration> + <Configuration Name="Release|Win32" OutputDirectory="$(SolutionDir)bin\" IntermediateDirectory="$(ProjectDir)$(ConfigurationName)" DeleteExtensionsOnClean="*.obj;*.mod;*.pdb;*.asm;*.map;*.dyn;*.dpi;*.tmp;*.log;*.ilk;*.dll;$(TargetPath)" ConfigurationType="typeDynamicLibrary"> + <Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" AdditionalIncludeDirectories="../../../core/includes" PreprocessorDefinitions="WIN32;FORDLL" AlternateParameterSyntax="false" F77RuntimeCompatibility="true" FPS4Libs="false" CallingConvention="callConventionCRef" ExternalNameUnderscore="true" ModulePath="$(INTDIR)/" ObjectFile="$(INTDIR)/" RuntimeLibrary="rtMultiThreadedDLL"/> + <Tool Name="VFLinkerTool" OutputFile="$(SolutionDir)bin\$(ProjectName).dll" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" ModuleDefinitionFile="signal_processing_f.def" SubSystem="subSystemWindows" ImportLibrary="$(SolutionDir)bin\$(ProjectName).lib" LinkDLL="true" AdditionalDependencies="../../../../bin/blasplus.lib ../../../../bin/lapack.lib core.lib signal_processing.lib output_stream.lib elementary_functions.lib elementary_functions_f.lib core_f.lib"/> + <Tool Name="VFResourceCompilerTool"/> + <Tool Name="VFMidlTool" SuppressStartupBanner="true" HeaderFileName="$(InputName).h" TypeLibraryName="$(IntDir)/$(InputName).tlb"/> + <Tool Name="VFCustomBuildTool"/> + <Tool Name="VFPreLinkEventTool" CommandLine="setlocal EnableDelayedExpansion +cd $(ConfigurationName) +set LIST_OBJ= +for %%f in (*.obj) do set LIST_OBJ=!LIST_OBJ! %%f +"$(SolutionDir)bin\dumpexts" -o $(ProjectName).def $(ProjectName).dll %LIST_OBJ% +copy $(ProjectName).def ..\$(ProjectName).def >nul +del *.def >nul +cd .." Description="Build $(ProjectName).def"/> + <Tool Name="VFPreBuildEventTool" CommandLine="lib /DEF:"$(InputDir)core_import.def" /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:"$(InputDir)core.lib" 1>NUL 2>NUL +lib /DEF:"$(InputDir)core_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:"$(InputDir)core_f.lib" 1>NUL 2>NUL +lib /DEF:"$(InputDir)signal_processing_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:"$(InputDir)signal_processing.lib" 1>NUL 2>NUL +lib /DEF:"$(InputDir)output_stream_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:"$(InputDir)output_stream.lib" 1>NUL 2>NUL +lib /DEF:"$(InputDir)elementary_functions_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:"$(InputDir)elementary_functions.lib" 1>NUL 2>NUL +lib /DEF:"$(InputDir)elementary_functions_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:"$(InputDir)elementary_functions_f.lib" 1>NUL 2>NUL" Description="Build Dependencies"/> + <Tool Name="VFPostBuildEventTool"/> + <Tool Name="VFManifestTool" SuppressStartupBanner="true"/></Configuration> + <Configuration Name="Debug|x64" OutputDirectory="$(SolutionDir)bin\" IntermediateDirectory="$(ProjectDir)$(ConfigurationName)" DeleteExtensionsOnClean="*.obj;*.mod;*.pdb;*.asm;*.map;*.dyn;*.dpi;*.tmp;*.log;*.ilk;*.dll;$(TargetPath)" ConfigurationType="typeDynamicLibrary"> + <Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" DebugInformationFormat="debugEnabled" Optimization="optimizeDisabled" AdditionalIncludeDirectories="../../../core/includes" PreprocessorDefinitions="WIN32;FORDLL" AlternateParameterSyntax="false" F77RuntimeCompatibility="true" FPS4Libs="false" CallingConvention="callConventionCRef" ExternalNameUnderscore="true" ModulePath="$(INTDIR)/" ObjectFile="$(INTDIR)/" RuntimeLibrary="rtMultiThreadedDebugDLL"/> + <Tool Name="VFLinkerTool" OutputFile="$(SolutionDir)bin\$(ProjectName).dll" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" ModuleDefinitionFile="signal_processing_f.def" GenerateDebugInformation="true" SubSystem="subSystemWindows" ImportLibrary="$(SolutionDir)bin\$(ProjectName).lib" LinkDLL="true" AdditionalDependencies="../../../../bin/blasplus.lib ../../../../bin/lapack.lib core.lib signal_processing.lib output_stream.lib elementary_functions.lib elementary_functions_f.lib core_f.lib"/> + <Tool Name="VFResourceCompilerTool"/> + <Tool Name="VFMidlTool" SuppressStartupBanner="true" HeaderFileName="$(InputName).h" TypeLibraryName="$(IntDir)/$(InputName).tlb"/> + <Tool Name="VFCustomBuildTool"/> + <Tool Name="VFPreLinkEventTool" CommandLine="setlocal EnableDelayedExpansion +cd $(ConfigurationName) +set LIST_OBJ= +for %%f in (*.obj) do set LIST_OBJ=!LIST_OBJ! %%f +"$(SolutionDir)bin\dumpexts" -o $(ProjectName).def $(ProjectName).dll %LIST_OBJ% +copy $(ProjectName).def ..\$(ProjectName).def >nul +del *.def >nul +cd .." Description="Build $(ProjectName).def"/> + <Tool Name="VFPreBuildEventTool" CommandLine="lib /DEF:"$(InputDir)core_import.def" /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:"$(InputDir)core.lib" 1>NUL 2>NUL +lib /DEF:"$(InputDir)core_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:"$(InputDir)core_f.lib" 1>NUL 2>NUL +lib /DEF:"$(InputDir)signal_processing_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:"$(InputDir)signal_processing.lib" 1>NUL 2>NUL +lib /DEF:"$(InputDir)output_stream_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:"$(InputDir)output_stream.lib" 1>NUL 2>NUL +lib /DEF:"$(InputDir)elementary_functions_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:"$(InputDir)elementary_functions.lib" 1>NUL 2>NUL +lib /DEF:"$(InputDir)elementary_functions_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:"$(InputDir)elementary_functions_f.lib" 1>NUL 2>NUL" Description="Build Dependencies"/> + <Tool Name="VFPostBuildEventTool"/> + <Tool Name="VFManifestTool" SuppressStartupBanner="true"/></Configuration> + <Configuration Name="Release|x64" OutputDirectory="$(SolutionDir)bin\" IntermediateDirectory="$(ProjectDir)$(ConfigurationName)" DeleteExtensionsOnClean="*.obj;*.mod;*.pdb;*.asm;*.map;*.dyn;*.dpi;*.tmp;*.log;*.ilk;*.dll;$(TargetPath)" ConfigurationType="typeDynamicLibrary"> + <Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" AdditionalIncludeDirectories="../../../core/includes" PreprocessorDefinitions="WIN32;FORDLL" AlternateParameterSyntax="false" F77RuntimeCompatibility="true" FPS4Libs="false" CallingConvention="callConventionCRef" ExternalNameUnderscore="true" ModulePath="$(INTDIR)/" ObjectFile="$(INTDIR)/" RuntimeLibrary="rtMultiThreadedDLL"/> + <Tool Name="VFLinkerTool" OutputFile="$(SolutionDir)bin\$(ProjectName).dll" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" ModuleDefinitionFile="signal_processing_f.def" SubSystem="subSystemWindows" ImportLibrary="$(SolutionDir)bin\$(ProjectName).lib" LinkDLL="true" AdditionalDependencies="../../../../bin/blasplus.lib ../../../../bin/lapack.lib core.lib signal_processing.lib output_stream.lib elementary_functions.lib elementary_functions_f.lib core_f.lib"/> + <Tool Name="VFResourceCompilerTool"/> + <Tool Name="VFMidlTool" SuppressStartupBanner="true" HeaderFileName="$(InputName).h" TypeLibraryName="$(IntDir)/$(InputName).tlb"/> + <Tool Name="VFCustomBuildTool"/> + <Tool Name="VFPreLinkEventTool" CommandLine="setlocal EnableDelayedExpansion +cd $(ConfigurationName) +set LIST_OBJ= +for %%f in (*.obj) do set LIST_OBJ=!LIST_OBJ! %%f +"$(SolutionDir)bin\dumpexts" -o $(ProjectName).def $(ProjectName).dll %LIST_OBJ% +copy $(ProjectName).def ..\$(ProjectName).def >nul +del *.def >nul +cd .." Description="Build $(ProjectName).def"/> + <Tool Name="VFPreBuildEventTool" CommandLine="lib /DEF:"$(InputDir)core_import.def" /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:"$(InputDir)core.lib" 1>NUL 2>NUL +lib /DEF:"$(InputDir)core_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:"$(InputDir)core_f.lib" 1>NUL 2>NUL +lib /DEF:"$(InputDir)signal_processing_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:"$(InputDir)signal_processing.lib" 1>NUL 2>NUL +lib /DEF:"$(InputDir)output_stream_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:"$(InputDir)output_stream.lib" 1>NUL 2>NUL +lib /DEF:"$(InputDir)elementary_functions_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:"$(InputDir)elementary_functions.lib" 1>NUL 2>NUL +lib /DEF:"$(InputDir)elementary_functions_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:"$(InputDir)elementary_functions_f.lib" 1>NUL 2>NUL" Description="Build Dependencies"/> + <Tool Name="VFPostBuildEventTool"/> + <Tool Name="VFManifestTool" SuppressStartupBanner="true"/></Configuration></Configurations> + <Files> + <Filter Name="Header Files" Filter="fi;fd"/> + <Filter Name="libraries Dependencies"> + <File RelativePath=".\core_f_Import.def"/> + <File RelativePath=".\core_import.def"/> + <File RelativePath=".\Elementary_functions_f_Import.def"/> + <File RelativePath=".\Elementary_functions_Import.def"/> + <File RelativePath=".\output_stream_Import.def"/> + <File RelativePath=".\signal_processing_Import.def"/></Filter> + <Filter Name="Resource Files" Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"> + <File RelativePath=".\signal_processing_f.rc"/></Filter> + <Filter Name="Source Files" Filter="f90;for;f;fpp;ftn;def;odl;idl"> + <File RelativePath=".\amell.f"/> + <File RelativePath="..\..\sci_gateway\fortran\bgetx.f"/> + <File RelativePath="..\..\sci_gateway\fortran\bgety.f"/> + <File RelativePath=".\bldenz.f"/> + <File RelativePath=".\blnumz.f"/> + <File RelativePath=".\bounn.f"/> + <File RelativePath=".\cheby.f"/> + <File RelativePath=".\cmpse2.f"/> + <File RelativePath=".\cmpse3.f"/> + <File RelativePath=".\coeft.f"/> + <File RelativePath=".\compel.f"/> + <File RelativePath=".\degree.f"/> + <File RelativePath=".\deli1.f"/> + <File RelativePath=".\deli11.f"/> + <File RelativePath=".\deli2.f"/> + <File RelativePath=".\delip.f"/> + <File RelativePath=".\dellk.f"/> + <File RelativePath=".\desi00.f"/> + <File RelativePath=".\desi01.f"/> + <File RelativePath=".\desi11.f"/> + <File RelativePath=".\desi12.f"/> + <File RelativePath=".\desi14.f"/> + <File RelativePath=".\desi21.f"/> + <File RelativePath=".\desi22.f"/> + <File RelativePath=".\desi24.f"/> + <File RelativePath=".\desia.f"/> + <File RelativePath=".\desib.f"/> + <File RelativePath=".\dfft2.f"/> + <File RelativePath=".\dfftbi.f"/> + <File RelativePath=".\dfftmx.f"/> + <File RelativePath=".\dgee01.f"/> + <File RelativePath=".\dsn2.f"/> + <File RelativePath=".\dsqrtc.f"/> + <File RelativePath="..\..\sci_gateway\fortran\Ex-corr.f"/> + <File RelativePath=".\fft842.f"/> + <File RelativePath=".\filbut.f"/> + <File RelativePath=".\freque.f"/> + <File RelativePath=".\gee.f"/> + <File RelativePath=".\hammin.f"/> + <File RelativePath=".\ino.f"/> + <File RelativePath=".\nstabl.f"/> + <File RelativePath=".\ouch.f"/> + <File RelativePath=".\parcha.f"/> + <File RelativePath=".\poles.f"/> + <File RelativePath=".\r2tx.f"/> + <File RelativePath=".\r4tx.f"/> + <File RelativePath=".\r8tx.f"/> + <File RelativePath=".\remez.f"/> + <File RelativePath=".\romeg.f"/> + <File RelativePath=".\rpem.f"/> + <File RelativePath="..\..\sci_gateway\fortran\sci_f_amell.f"/> + <File RelativePath="..\..\sci_gateway\fortran\sci_f_corr.f"/> + <File RelativePath="..\..\sci_gateway\fortran\sci_f_delip.f"/> + <File RelativePath="..\..\sci_gateway\fortran\sci_f_fft.f"/> + <File RelativePath="..\..\sci_gateway\fortran\sci_f_fiir.f"/> + <File RelativePath="..\..\sci_gateway\fortran\sci_f_remez.f"/> + <File RelativePath="..\..\sci_gateway\fortran\sci_f_rpem.f"/> + <File RelativePath="..\..\sci_gateway\fortran\sci_f_syredi.f"/> + <File RelativePath=".\sci_ffir.f"/> + <File RelativePath=".\sn.f"/> + <File RelativePath=".\snell.f"/> + <File RelativePath=".\syredi.f"/> + <File RelativePath=".\tg02ad.f"/> + <File RelativePath=".\tranpo.f"/> + <File RelativePath=".\transn.f"/> + <File RelativePath=".\tranze.f"/> + <File RelativePath=".\trbipo.f"/> + <File RelativePath=".\trbize.f"/> + <File RelativePath=".\tscccf.f"/></Filter> + <File RelativePath="..\..\Makefile.am"/> + <File RelativePath="..\..\sci_gateway\signal_processing_gateway.xml"/></Files> + <Globals/></VisualStudioProject> diff --git a/modules/signal_processing/src/fortran/signal_processing_f2c.vcxproj b/modules/signal_processing/src/fortran/signal_processing_f2c.vcxproj new file mode 100755 index 000000000..dd7dd5c53 --- /dev/null +++ b/modules/signal_processing/src/fortran/signal_processing_f2c.vcxproj @@ -0,0 +1,422 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Debug|Win32"> + <Configuration>Debug</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug|x64"> + <Configuration>Debug</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectName>signal_processing_f</ProjectName> + <ProjectGuid>{959384FC-016C-4B01-B848-1B18D26B6CC4}</ProjectGuid> + <RootNamespace>signal_processing_f2c</RootNamespace> + <Keyword>Win32Proj</Keyword> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <CharacterSet>Unicode</CharacterSet> + <WholeProgramOptimization>true</WholeProgramOptimization> + <PlatformToolset>v110</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v110</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <CharacterSet>Unicode</CharacterSet> + <WholeProgramOptimization>true</WholeProgramOptimization> + <PlatformToolset>v110</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v110</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + <Import Project="..\..\..\..\Visual-Studio-settings\f2c.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup> + <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)bin\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)$(Configuration)\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)bin\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)$(Configuration)\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)bin\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)$(Configuration)\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)bin\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)$(Configuration)\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <PreBuildEvent> + <Message>Build Dependencies</Message> + <Command>lib /DEF:"$(ProjectDir)core_import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)core.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)Core_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)core_f.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)signal_processing_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)signal_processing.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)output_stream_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)output_stream.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)elementary_functions_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)elementary_functions.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)elementary_functions_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)elementary_functions_f.lib" 1>NUL 2>NUL</Command> + </PreBuildEvent> + <ClCompile> + <Optimization>Disabled</Optimization> + <AdditionalIncludeDirectories>../../../../libs/f2c;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;INTERPOLATION_F2C_EXPORTS;FORDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> + <WarningLevel>Level3</WarningLevel> + </ClCompile> + <PreLinkEvent> + <Message>Build $(ProjectName).def</Message> + <Command>setlocal EnableDelayedExpansion +cd $(ConfigurationName) +set LIST_OBJ= +for %%f in (*.obj) do set LIST_OBJ=!LIST_OBJ! %%f +"$(SolutionDir)bin\dumpexts" -o $(ProjectName).def $(ProjectName).dll %LIST_OBJ% +copy $(ProjectName).def ..\$(ProjectName).def >nul +del *.def >nul +cd .. +</Command> + </PreLinkEvent> + <Link> + <AdditionalDependencies>core.lib;signal_processing.lib;output_stream.lib;elementary_functions.lib;elementary_functions_f.lib;core_f.lib;../../../../bin/blasplus.lib;../../../../bin/lapack.lib;../../../../bin/libf2c.lib;%(AdditionalDependencies)</AdditionalDependencies> + <OutputFile>$(SolutionDir)bin\$(ProjectName).dll</OutputFile> + <ModuleDefinitionFile>signal_processing_f.def</ModuleDefinitionFile> + <GenerateDebugInformation>true</GenerateDebugInformation> + <SubSystem>Windows</SubSystem> + <ImportLibrary>$(SolutionDir)bin\$(ProjectName).lib</ImportLibrary> + <TargetMachine>MachineX86</TargetMachine> + <CLRUnmanagedCodeCheck>true</CLRUnmanagedCodeCheck> + <RandomizedBaseAddress>false</RandomizedBaseAddress> + <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <PreBuildEvent> + <Message>Build Dependencies</Message> + <Command>lib /DEF:"$(ProjectDir)core_import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)core.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)Core_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)core_f.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)signal_processing_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)signal_processing.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)output_stream_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)output_stream.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)elementary_functions_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)elementary_functions.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)elementary_functions_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)elementary_functions_f.lib" 1>NUL 2>NUL</Command> + </PreBuildEvent> + <Midl> + <TargetEnvironment>X64</TargetEnvironment> + </Midl> + <ClCompile> + <Optimization>Disabled</Optimization> + <AdditionalIncludeDirectories>../../../../libs/f2c;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;INTERPOLATION_F2C_EXPORTS;FORDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> + <WarningLevel>Level3</WarningLevel> + </ClCompile> + <PreLinkEvent> + <Message>Build $(ProjectName).def</Message> + <Command>setlocal EnableDelayedExpansion +cd $(ConfigurationName) +set LIST_OBJ= +for %%f in (*.obj) do set LIST_OBJ=!LIST_OBJ! %%f +"$(SolutionDir)bin\dumpexts" -o $(ProjectName).def $(ProjectName).dll %LIST_OBJ% +copy $(ProjectName).def ..\$(ProjectName).def >nul +del *.def >nul +cd .. +</Command> + </PreLinkEvent> + <Link> + <AdditionalDependencies>core.lib;signal_processing.lib;output_stream.lib;elementary_functions.lib;elementary_functions_f.lib;core_f.lib;../../../../bin/blasplus.lib;../../../../bin/lapack.lib;../../../../bin/libf2c.lib;%(AdditionalDependencies)</AdditionalDependencies> + <OutputFile>$(SolutionDir)bin\$(ProjectName).dll</OutputFile> + <ModuleDefinitionFile>signal_processing_f.def</ModuleDefinitionFile> + <GenerateDebugInformation>true</GenerateDebugInformation> + <SubSystem>Windows</SubSystem> + <ImportLibrary>$(SolutionDir)bin\$(ProjectName).lib</ImportLibrary> + <TargetMachine>MachineX64</TargetMachine> + <CLRUnmanagedCodeCheck>true</CLRUnmanagedCodeCheck> + <RandomizedBaseAddress>false</RandomizedBaseAddress> + <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <PreBuildEvent> + <Message>Build Dependencies</Message> + <Command>lib /DEF:"$(ProjectDir)core_import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)core.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)Core_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)core_f.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)signal_processing_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)signal_processing.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)output_stream_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)output_stream.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)elementary_functions_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)elementary_functions.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)elementary_functions_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)elementary_functions_f.lib" 1>NUL 2>NUL</Command> + </PreBuildEvent> + <ClCompile> + <WholeProgramOptimization>false</WholeProgramOptimization> + <AdditionalIncludeDirectories>../../../../libs/f2c;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;INTERPOLATION_F2C_EXPORTS;FORDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> + <WarningLevel>Level3</WarningLevel> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + </ClCompile> + <PreLinkEvent> + <Message>Build $(ProjectName).def</Message> + <Command>setlocal EnableDelayedExpansion +cd $(ConfigurationName) +set LIST_OBJ= +for %%f in (*.obj) do set LIST_OBJ=!LIST_OBJ! %%f +"$(SolutionDir)bin\dumpexts" -o $(ProjectName).def $(ProjectName).dll %LIST_OBJ% +copy $(ProjectName).def ..\$(ProjectName).def >nul +del *.def >nul +cd .. +</Command> + </PreLinkEvent> + <Link> + <AdditionalDependencies>core.lib;signal_processing.lib;output_stream.lib;elementary_functions.lib;elementary_functions_f.lib;core_f.lib;../../../../bin/blasplus.lib;../../../../bin/lapack.lib;../../../../bin/libf2c.lib;%(AdditionalDependencies)</AdditionalDependencies> + <OutputFile>$(SolutionDir)bin\$(ProjectName).dll</OutputFile> + <ModuleDefinitionFile>signal_processing_f.def</ModuleDefinitionFile> + <GenerateDebugInformation>true</GenerateDebugInformation> + <SubSystem>Windows</SubSystem> + <OptimizeReferences>true</OptimizeReferences> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <ImportLibrary>$(SolutionDir)bin\$(ProjectName).lib</ImportLibrary> + <TargetMachine>MachineX86</TargetMachine> + <CLRUnmanagedCodeCheck>true</CLRUnmanagedCodeCheck> + <RandomizedBaseAddress>false</RandomizedBaseAddress> + <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <PreBuildEvent> + <Message>Build Dependencies</Message> + <Command>lib /DEF:"$(ProjectDir)core_import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)core.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)Core_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)core_f.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)signal_processing_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)signal_processing.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)output_stream_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)output_stream.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)elementary_functions_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)elementary_functions.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)elementary_functions_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)elementary_functions_f.lib" 1>NUL 2>NUL</Command> + </PreBuildEvent> + <Midl> + <TargetEnvironment>X64</TargetEnvironment> + </Midl> + <ClCompile> + <WholeProgramOptimization>false</WholeProgramOptimization> + <AdditionalIncludeDirectories>../../../../libs/f2c;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;INTERPOLATION_F2C_EXPORTS;FORDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> + <WarningLevel>Level3</WarningLevel> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + </ClCompile> + <PreLinkEvent> + <Message>Build $(ProjectName).def</Message> + <Command>setlocal EnableDelayedExpansion +cd $(ConfigurationName) +set LIST_OBJ= +for %%f in (*.obj) do set LIST_OBJ=!LIST_OBJ! %%f +"$(SolutionDir)bin\dumpexts" -o $(ProjectName).def $(ProjectName).dll %LIST_OBJ% +copy $(ProjectName).def ..\$(ProjectName).def >nul +del *.def >nul +cd .. +</Command> + </PreLinkEvent> + <Link> + <AdditionalDependencies>core.lib;signal_processing.lib;output_stream.lib;elementary_functions.lib;elementary_functions_f.lib;core_f.lib;../../../../bin/blasplus.lib;../../../../bin/lapack.lib;../../../../bin/libf2c.lib;%(AdditionalDependencies)</AdditionalDependencies> + <OutputFile>$(SolutionDir)bin\$(ProjectName).dll</OutputFile> + <ModuleDefinitionFile>signal_processing_f.def</ModuleDefinitionFile> + <GenerateDebugInformation>true</GenerateDebugInformation> + <SubSystem>Windows</SubSystem> + <OptimizeReferences>true</OptimizeReferences> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <ImportLibrary>$(SolutionDir)bin\$(ProjectName).lib</ImportLibrary> + <TargetMachine>MachineX64</TargetMachine> + <CLRUnmanagedCodeCheck>true</CLRUnmanagedCodeCheck> + <RandomizedBaseAddress>false</RandomizedBaseAddress> + <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration> + </Link> + </ItemDefinitionGroup> + <ItemGroup> + <ClCompile Include="..\..\sci_gateway\fortran\sci_f_amell.c" /> + <ClCompile Include="..\..\sci_gateway\fortran\sci_f_corr.c" /> + <ClCompile Include="..\..\sci_gateway\fortran\sci_f_delip.c" /> + <ClCompile Include="..\..\sci_gateway\fortran\sci_f_fft.c" /> + <ClCompile Include="..\..\sci_gateway\fortran\sci_f_fiir.c" /> + <ClCompile Include="..\..\sci_gateway\fortran\sci_f_remez.c" /> + <ClCompile Include="..\..\sci_gateway\fortran\sci_f_rpem.c" /> + <ClCompile Include="..\..\sci_gateway\fortran\sci_f_syredi.c" /> + <ClCompile Include="amell.c" /> + <ClCompile Include="..\..\sci_gateway\fortran\bgetx.c" /> + <ClCompile Include="..\..\sci_gateway\fortran\bgety.c" /> + <ClCompile Include="bldenz.c" /> + <ClCompile Include="blnumz.c" /> + <ClCompile Include="bounn.c" /> + <ClCompile Include="cheby.c" /> + <ClCompile Include="cmpse2.c" /> + <ClCompile Include="cmpse3.c" /> + <ClCompile Include="coeft.c" /> + <ClCompile Include="compel.c" /> + <ClCompile Include="degree.c" /> + <ClCompile Include="deli1.c" /> + <ClCompile Include="deli11.c" /> + <ClCompile Include="deli2.c" /> + <ClCompile Include="delip.c" /> + <ClCompile Include="dellk.c" /> + <ClCompile Include="desi00.c" /> + <ClCompile Include="desi01.c" /> + <ClCompile Include="desi11.c" /> + <ClCompile Include="desi12.c" /> + <ClCompile Include="desi14.c" /> + <ClCompile Include="desi21.c" /> + <ClCompile Include="desi22.c" /> + <ClCompile Include="desi24.c" /> + <ClCompile Include="desia.c" /> + <ClCompile Include="desib.c" /> + <ClCompile Include="dfft2.c" /> + <ClCompile Include="dfftbi.c" /> + <ClCompile Include="dfftmx.c" /> + <ClCompile Include="dgee01.c" /> + <ClCompile Include="dsn2.c" /> + <ClCompile Include="dsqrtc.c" /> + <ClCompile Include="..\..\sci_gateway\fortran\Ex-corr.c" /> + <ClCompile Include="fft842.c" /> + <ClCompile Include="filbut.c" /> + <ClCompile Include="freque.c" /> + <ClCompile Include="gee.c" /> + <ClCompile Include="hammin.c" /> + <ClCompile Include="ino.c" /> + <ClCompile Include="nstabl.c" /> + <ClCompile Include="ouch.c" /> + <ClCompile Include="parcha.c" /> + <ClCompile Include="poles.c" /> + <ClCompile Include="r2tx.c" /> + <ClCompile Include="r4tx.c" /> + <ClCompile Include="r8tx.c" /> + <ClCompile Include="remez.c" /> + <ClCompile Include="romeg.c" /> + <ClCompile Include="rpem.c" /> + <ClCompile Include="sn.c" /> + <ClCompile Include="snell.c" /> + <ClCompile Include="syredi.c" /> + <ClCompile Include="tg02ad.c" /> + <ClCompile Include="tranpo.c" /> + <ClCompile Include="transn.c" /> + <ClCompile Include="tranze.c" /> + <ClCompile Include="trbipo.c" /> + <ClCompile Include="trbize.c" /> + <ClCompile Include="tscccf.c" /> + </ItemGroup> + <ItemGroup> + <f2c_rule Include="..\..\sci_gateway\fortran\sci_f_amell.f" /> + <f2c_rule Include="..\..\sci_gateway\fortran\sci_f_corr.f" /> + <f2c_rule Include="..\..\sci_gateway\fortran\sci_f_delip.f" /> + <f2c_rule Include="..\..\sci_gateway\fortran\sci_f_fft.f" /> + <f2c_rule Include="..\..\sci_gateway\fortran\sci_f_fiir.f" /> + <f2c_rule Include="..\..\sci_gateway\fortran\sci_f_remez.f" /> + <f2c_rule Include="..\..\sci_gateway\fortran\sci_f_rpem.f" /> + <f2c_rule Include="..\..\sci_gateway\fortran\sci_f_syredi.f" /> + <f2c_rule Include="amell.f" /> + <f2c_rule Include="..\..\sci_gateway\fortran\bgetx.f" /> + <f2c_rule Include="..\..\sci_gateway\fortran\bgety.f" /> + <f2c_rule Include="bldenz.f" /> + <f2c_rule Include="blnumz.f" /> + <f2c_rule Include="bounn.f" /> + <f2c_rule Include="cheby.f" /> + <f2c_rule Include="cmpse2.f" /> + <f2c_rule Include="cmpse3.f" /> + <f2c_rule Include="coeft.f" /> + <f2c_rule Include="compel.f" /> + <f2c_rule Include="degree.f" /> + <f2c_rule Include="deli1.f" /> + <f2c_rule Include="deli11.f" /> + <f2c_rule Include="deli2.f" /> + <f2c_rule Include="delip.f" /> + <f2c_rule Include="dellk.f" /> + <f2c_rule Include="desi00.f" /> + <f2c_rule Include="desi01.f" /> + <f2c_rule Include="desi11.f" /> + <f2c_rule Include="desi12.f" /> + <f2c_rule Include="desi14.f" /> + <f2c_rule Include="desi21.f" /> + <f2c_rule Include="desi22.f" /> + <f2c_rule Include="desi24.f" /> + <f2c_rule Include="desia.f" /> + <f2c_rule Include="desib.f" /> + <f2c_rule Include="dfft2.f" /> + <f2c_rule Include="dfftbi.f" /> + <f2c_rule Include="dfftmx.f" /> + <f2c_rule Include="dgee01.f" /> + <f2c_rule Include="dsn2.f" /> + <f2c_rule Include="dsqrtc.f" /> + <f2c_rule Include="..\..\sci_gateway\fortran\Ex-corr.f" /> + <f2c_rule Include="fft842.f" /> + <f2c_rule Include="filbut.f" /> + <f2c_rule Include="freque.f" /> + <f2c_rule Include="gee.f" /> + <f2c_rule Include="hammin.f" /> + <f2c_rule Include="ino.f" /> + <f2c_rule Include="nstabl.f" /> + <f2c_rule Include="ouch.f" /> + <f2c_rule Include="parcha.f" /> + <f2c_rule Include="poles.f" /> + <f2c_rule Include="r2tx.f" /> + <f2c_rule Include="r4tx.f" /> + <f2c_rule Include="r8tx.f" /> + <f2c_rule Include="remez.f" /> + <f2c_rule Include="romeg.f" /> + <f2c_rule Include="rpem.f" /> + <f2c_rule Include="sn.f" /> + <f2c_rule Include="snell.f" /> + <f2c_rule Include="syredi.f" /> + <f2c_rule Include="tg02ad.f" /> + <f2c_rule Include="tranpo.f" /> + <f2c_rule Include="transn.f" /> + <f2c_rule Include="tranze.f" /> + <f2c_rule Include="trbipo.f" /> + <f2c_rule Include="trbize.f" /> + <f2c_rule Include="tscccf.f" /> + </ItemGroup> + <ItemGroup> + <None Include="..\..\Makefile.am" /> + <None Include="..\..\sci_gateway\signal_processing_gateway.xml" /> + <None Include="core_f_Import.def" /> + <None Include="Elementary_functions_f_Import.def" /> + <None Include="Elementary_functions_Import.def" /> + <None Include="core_import.def" /> + <None Include="output_stream_Import.def" /> + <None Include="signal_processing_Import.def" /> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="..\..\..\..\tools\Dumpexts\Dumpexts.vcxproj"> + <Project>{3170e4c2-1173-4264-a222-7ee8ccb3ddf7}</Project> + <ReferenceOutputAssembly>false</ReferenceOutputAssembly> + </ProjectReference> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + <Import Project="..\..\..\..\Visual-Studio-settings\f2c.targets" /> + </ImportGroup> +</Project>
\ No newline at end of file diff --git a/modules/signal_processing/src/fortran/signal_processing_f2c.vcxproj.filters b/modules/signal_processing/src/fortran/signal_processing_f2c.vcxproj.filters new file mode 100755 index 000000000..d6c11ece3 --- /dev/null +++ b/modules/signal_processing/src/fortran/signal_processing_f2c.vcxproj.filters @@ -0,0 +1,457 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Source Files"> + <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> + <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions> + </Filter> + <Filter Include="Header Files"> + <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier> + <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> + </Filter> + <Filter Include="Resource Files"> + <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier> + <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions> + </Filter> + <Filter Include="Fortran files"> + <UniqueIdentifier>{18349bb6-3f1d-4951-99a5-aeac4980248c}</UniqueIdentifier> + </Filter> + <Filter Include="Libraries Dependencies"> + <UniqueIdentifier>{6627d266-40e7-4ca5-829c-5aa37731d26d}</UniqueIdentifier> + </Filter> + </ItemGroup> + <ItemGroup> + <ClCompile Include="amell.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\fortran\bgetx.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\fortran\bgety.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="bldenz.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="blnumz.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="bounn.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="cheby.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="cmpse2.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="cmpse3.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="coeft.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="compel.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="degree.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="deli1.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="deli11.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="deli2.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="delip.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="dellk.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="desi00.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="desi01.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="desi11.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="desi12.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="desi14.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="desi21.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="desi22.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="desi24.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="desia.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="desib.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="dfft2.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="dfftbi.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="dfftmx.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="dgee01.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="dsn2.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="dsqrtc.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\fortran\Ex-corr.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="fft842.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="filbut.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="freque.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="gee.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="hammin.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="ino.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="nstabl.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="ouch.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="parcha.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="poles.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="r2tx.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="r4tx.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="r8tx.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="remez.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="romeg.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="rpem.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="sn.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="snell.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="syredi.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="tg02ad.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="tranpo.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="transn.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="tranze.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="trbipo.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="trbize.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="tscccf.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\fortran\sci_f_amell.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\fortran\sci_f_corr.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\fortran\sci_f_delip.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\fortran\sci_f_fft.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\fortran\sci_f_fiir.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\fortran\sci_f_remez.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\fortran\sci_f_rpem.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\fortran\sci_f_syredi.c"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> + <ItemGroup> + <f2c_rule Include="amell.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="..\..\sci_gateway\fortran\bgetx.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="..\..\sci_gateway\fortran\bgety.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="bldenz.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="blnumz.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="bounn.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="cheby.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="cmpse2.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="cmpse3.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="coeft.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="compel.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="degree.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="deli1.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="deli11.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="deli2.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="delip.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="dellk.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="desi00.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="desi01.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="desi11.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="desi12.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="desi14.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="desi21.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="desi22.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="desi24.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="desia.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="desib.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="dfft2.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="dfftbi.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="dfftmx.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="dgee01.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="dsn2.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="dsqrtc.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="..\..\sci_gateway\fortran\Ex-corr.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="fft842.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="filbut.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="freque.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="gee.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="hammin.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="ino.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="nstabl.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="ouch.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="parcha.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="poles.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="r2tx.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="r4tx.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="r8tx.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="remez.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="romeg.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="rpem.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="sn.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="snell.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="syredi.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="tg02ad.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="tranpo.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="transn.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="tranze.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="trbipo.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="trbize.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="tscccf.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="..\..\sci_gateway\fortran\sci_f_amell.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="..\..\sci_gateway\fortran\sci_f_corr.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="..\..\sci_gateway\fortran\sci_f_delip.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="..\..\sci_gateway\fortran\sci_f_fft.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="..\..\sci_gateway\fortran\sci_f_fiir.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="..\..\sci_gateway\fortran\sci_f_remez.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="..\..\sci_gateway\fortran\sci_f_rpem.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="..\..\sci_gateway\fortran\sci_f_syredi.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + </ItemGroup> + <ItemGroup> + <None Include="..\..\Makefile.am" /> + <None Include="..\..\sci_gateway\signal_processing_gateway.xml" /> + <None Include="Elementary_functions_Import.def"> + <Filter>Libraries Dependencies</Filter> + </None> + <None Include="core_import.def"> + <Filter>Libraries Dependencies</Filter> + </None> + <None Include="output_stream_Import.def"> + <Filter>Libraries Dependencies</Filter> + </None> + <None Include="signal_processing_Import.def"> + <Filter>Libraries Dependencies</Filter> + </None> + <None Include="Elementary_functions_f_Import.def"> + <Filter>Libraries Dependencies</Filter> + </None> + <None Include="core_f_Import.def"> + <Filter>Libraries Dependencies</Filter> + </None> + </ItemGroup> +</Project>
\ No newline at end of file diff --git a/modules/signal_processing/src/fortran/sn.f b/modules/signal_processing/src/fortran/sn.f new file mode 100755 index 000000000..d37a7364f --- /dev/null +++ b/modules/signal_processing/src/fortran/sn.f @@ -0,0 +1,21 @@ +C/MEMBR ADD NAME=SN,SSI=0 + double precision function sn(y,a,ak1,ak3) +c! + implicit double precision (a-h,o-z) +c + pi=3.1415926535 + ns=sqrt(50.0*ak1/(pi*ak3))+2 + x=y*0.50d+0/ak1 + q=exp(-pi*ak3/ak1) + sup=2.0d+0*(q**(1.0d+0/4.0d+0))*sin(pi*x) + den=1.0d+0 + i=-2 + n=1 + 1 sup=sup+i*(q**((n+0.5)**2))*sin((2*n+1)*pi*x) + den=den+i*(q**(n**2))*cos(2.*n*pi*x) + i=-i + n=n+1 + if(n.le.ns) goto 1 + sn=sup/(den*sqrt(a)) + return + end diff --git a/modules/signal_processing/src/fortran/sn.lo b/modules/signal_processing/src/fortran/sn.lo new file mode 100755 index 000000000..dee5c89ca --- /dev/null +++ b/modules/signal_processing/src/fortran/sn.lo @@ -0,0 +1,12 @@ +# src/fortran/sn.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/sn.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/signal_processing/src/fortran/snell.f b/modules/signal_processing/src/fortran/snell.f new file mode 100755 index 000000000..49af56f2a --- /dev/null +++ b/modules/signal_processing/src/fortran/snell.f @@ -0,0 +1,53 @@ +C/MEMBR ADD NAME=SNELL,SSI=0 + subroutine snell(dsn2,du, dk, dq) +c!purpose +c calculation of the jacobi's elliptic function sn(u,k) +c +c external calculation of the parameter necessary +c dk = k($k) +c dq = exp(-pi*k'/k) ... (jacobi's nome) +c! +c + double precision dpi, domi + double precision de, dz, dpi2, dq, dm, du, dk, dc, dqq, dh, dq1, + * dq2 +c + domi=2.0d+0*dlamch('p') + dpi=4.0d+0*atan(1.0d+0) +c + data de, dz /1.0d+0,2.0d+0/ +c + dpi2 = dpi/dz + if (abs(dq).ge.de) go to 30 +c + dm = dpi2*du/dk + dc = dz*dm + dc = cos(dc) +c + dm = sin(dm)*dk/dpi2 + dqq = dq*dq + dq1 = dq + dq2 = dqq +c + do 10 i=1,100 + dh = (de-dq1)/(de-dq2) + dh = dh*dh + dh = dh*(de-dz*dq2*dc+dq2*dq2) + dh = dh/(de-dz*dq1*dc+dq1*dq1) + dm = dm*dh +c + dh = abs(de-dh) + if (dh.lt.domi) go to 20 +c + dq1 = dq1*dqq + dq2 = dq2*dqq + 10 continue +c + go to 30 +c + 20 dsn2 = dm + return +c + 30 dsn2 = 0.0d+0 + return + end diff --git a/modules/signal_processing/src/fortran/snell.lo b/modules/signal_processing/src/fortran/snell.lo new file mode 100755 index 000000000..2f0e8a198 --- /dev/null +++ b/modules/signal_processing/src/fortran/snell.lo @@ -0,0 +1,12 @@ +# src/fortran/snell.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/snell.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/signal_processing/src/fortran/syredi.f b/modules/signal_processing/src/fortran/syredi.f new file mode 100755 index 000000000..c00623e76 --- /dev/null +++ b/modules/signal_processing/src/fortran/syredi.f @@ -0,0 +1,92 @@ + subroutine syredi(maxdeg,ityp,iapro,om,adelp,adels,ndeg, + * nb,fact,b2,b1,b0,c1,c0,zzr,zzi,zpr,zpi,ierr, + * spr,spi,pren,pimn,zm,sm,rom,nzero,nze) +c!purpose +c computes butterworth, chebyshev, and elliptic approximation; +c!calling sequence +c subroutine syredi(maxdeg,ityp,iapro,om,adelp,adels,ndeg, +c * nb,fact,b2,b1,b0,c1,c0,zzr,zzi,zpr,zpi,ierr, +c * spr,spi,pren,pimn,zm,sm,rom,nzero,nze) +c +c variables d entree +c integer maxdeg,ityp,iapro +c double precision om(4),adelp,adels +c variables de sortie +c integer ndeg,ierr +c double precision bo(nb),b1(nb),b2(nb),c0(nb),c1(nb),fact +c double precision zzr(maxdeg),zzi(maxdeg),spr(maxdeg),spi(maxdeg) +c nb=(maxdeg+1)/2 +c! +c variables de travail +c pren,primn,nzero,zm,sm,rom,nzm,nze + implicit double precision (a-h,o-z) +c + double precision b2(*),b1(*),b0(*) + double precision c1(*),c0(*) + double precision zzr(*),zzi(*),zpr(*),zpi(*) + double precision spr(*),spi(*) + double precision om(4) + double precision pren(*),pimn(*) + dimension nzm(4),nzero(*),nze(*) + double precision zm(maxdeg,4),sm(maxdeg,4) + double precision rom(4),fact,adelp,adels + nmaxi=(maxdeg+5)/2 + nb=(maxdeg+1)/2 +c + norma=0 + ndeg=0 + edeg=0.0d+0 + acx=0.0d+0 +c + adeg=0.0d+0 + adelta=0.0d+0 + a=0.0d+0 +c + do 10 i=1,4 + rom(i) =0.0d+0 + 10 continue + do 15 i=1,maxdeg + zzr(i)=0.0d+0 + zzi(i)=0.0d+0 + zpr(i)=0.0d+0 + zpi(i)=0.0d+0 + spr(i)=0.0d+0 + spi(i)=0.0d+0 + pren(i)=0.0d+0 + pimn(i)=0.0d+0 + nzero(i)=0.0d+0 + 15 continue + do 20 i=1,nb + b2(i)=0.0d+0 + b1(i)=0.0d+0 + b0(i)=0.0d+0 + c1(i)=0.0d+0 + c0(i)=0.0d+0 + 20 continue + do 21 i=1,maxdeg + do 21 j=1,4 + sm(i,j)=0.0d+0 + zm(i,j)=0.0d+0 + 21 continue +c + ierr=0 + call desia (nmaxi,maxdeg,ityp,iapro,om,norma, + *edeg,ndeg,adelp,adels,nbn,nzero,nzm,vsn,a, + *adelta,adeg,sm,pren,pimn,ugc,ogc,ack,zm,zzr,zzi, + *rom,b2,b1,b0,dk,dks,dcap02,dcap04,vsnn,ndegn,nh,vd,nze,ierr) + if(2*ndeg.gt.maxdeg) then + ierr=-9 + return + endif + if(ndeg.le.0) then + ierr=-7 + return + endif + call desib(nmaxi,maxdeg,vsnn,ndegn,nbn,ityp,iapro,om,nh,adelp, + *adels,vd,a,adelta,pren,pimn,ugc,ogc,ack,dk, + *dks,dcap02,dcap04,acx,spr,spi,zpr,zpi, + *nb,fact,c1,c0,sm,ierr,ndeg) +c + return + end + diff --git a/modules/signal_processing/src/fortran/syredi.lo b/modules/signal_processing/src/fortran/syredi.lo new file mode 100755 index 000000000..fc3e007cf --- /dev/null +++ b/modules/signal_processing/src/fortran/syredi.lo @@ -0,0 +1,12 @@ +# src/fortran/syredi.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/syredi.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/signal_processing/src/fortran/tg02ad.f b/modules/signal_processing/src/fortran/tg02ad.f new file mode 100755 index 000000000..0709874a0 --- /dev/null +++ b/modules/signal_processing/src/fortran/tg02ad.f @@ -0,0 +1,113 @@ +C/MEMBR ADD NAME=TG02AD,SSI=0 + subroutine tg02ad(ix,n,u,s,d,x,v) +c!but +c tg02ad - a routine to compute function values and 1st, 2nd +c and 3rd derivative values of a cubic spline. the spline +c is defined by its values and 1st derivative values at the +c knots. +c +c the values of the spline and its derivatives are set to be +c zero if x should fall outside the knot range plus or minus +c a rounding error. +c!calling sequence +c ix set by the user to specify the method of estimating +c the knot interval containing x. if ix<0 the +c initial guess is calculated on the assumption that the +c knots are equally spaced. if ix>=0 it assumes that +c the current x is very near the x of the previous +c entry and that it is the same spline. +c n,u(i),s(i),d(i) i=1,n; define the spline and are set by +c the user to the number of knots, the knots, the spline +c values at the knots and the 1st derivative values +c at the knots. the knots u(i) i=1,n must be ordered. +c x the point at which the spline value is required. +c v(i) i=1,4; set by the routine to the values of the spline +c and its first three derivatives at the point x. +c! + implicit double precision(a-h,o-z) + double precision u(*),s(*),d(*),v(*) +c + common/tg02bd/ k +c +c k returned set to the knot interval that +c contained x, i.e. u(k)<=x<=u(k+1). +c +c allowable rounding error on points at extreams +c of knot range is 2**ieps*max(|u(1)|,|u(n)|). + integer iflg,ieps + data iflg,ieps/0,-30/ +c +c test whether point in range. + j=0 + k=0 + if(x.lt.u(1)) go to 990 + if(x.gt.u(n)) go to 991 +c +c jump if knot interval requires random search. + if(ix.lt.0.or.iflg.eq.0) go to 12 +c test if knot interval same as last time. + if(x.gt.u(j+1)) go to 1 + if(x.ge.u(j)) go to 18 + go to 2 +c loop till interval found. + 1 j=j+1 + 11 if(x.gt.u(j+1)) go to 1 + go to 7 +c +c estimate knot interval by assuming equally spaced knots. + 12 j=abs(x-u(1))/(u(n)-u(1))*(n-1)+1 +c ensure case x=u(n) gives j=n-1. + j=min(j,n-1) +c indicate that knot interval inside range has been used. + iflg=1 +c search for knot interval containing x. + if(x.ge.u(j)) go to 11 + 2 j=j-1 + if(x.lt.u(j)) go to 2 +c +c calculate spline parameters for jth interval. +c +c knot interval + 7 k=j + h=u(j+1)-u(j) + hr=1.0d+0/h + hrr=(hr+hr)*hr +c + s0=s(j) + s1=s(j+1) + d0=d(j) + d1=d(j+1) + a=s1-s0 + b=a-h*d1 + a=a-h*d0 + c=a+b + c3=c*3.0d+0 +c transform the variable + 18 theta=(x-u(j))*hr + phi=1.0d+0-theta + t=theta*phi + gama=theta*b-phi*a +c spline value + v(1)=theta*s1+phi*s0+t*gama +c 1st derivative value + v(2)=theta*d1+phi*d0+t*c3*hr +c 2nd derivative value + v(3)=(c*(phi-theta)-gama)*hrr +c 3rd derivative value + v(4)=-c3*hrr*hr + return +c test if x within rounding error of u(1). + 990 if(x.le.u(1)-2.0d+0**ieps*max(abs(u(1)),abs(u(n)))) go to 99 + j=1 + go to 7 +c test if x within rounding error of u(n). + 991 if(x.ge.u(n)+2.0d+0**ieps*max(abs(u(1)),abs(u(n)))) go to 995 + j=n-1 + go to 7 + 995 k=n + 99 iflg=0 +c values set to zero for points outside the range + 5 do 6 i=1,4 + 6 v(i)=0d+0 + return + end diff --git a/modules/signal_processing/src/fortran/tg02ad.lo b/modules/signal_processing/src/fortran/tg02ad.lo new file mode 100755 index 000000000..c72153189 --- /dev/null +++ b/modules/signal_processing/src/fortran/tg02ad.lo @@ -0,0 +1,12 @@ +# src/fortran/tg02ad.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/tg02ad.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/signal_processing/src/fortran/tranpo.f b/modules/signal_processing/src/fortran/tranpo.f new file mode 100755 index 000000000..dbc2341d3 --- /dev/null +++ b/modules/signal_processing/src/fortran/tranpo.f @@ -0,0 +1,73 @@ + subroutine tranpo(nmaxi,maxdeg,ityp,vd,sm,a,ndeg,sfa,spr,spi,nj) +c!purpose +c reactance transformation of the poles +c! + implicit double precision (a-h,o-z) + double precision sm (maxdeg,*) + double precision spr(*),spi(*) + external slamch, dlamch + real slamch +c + flmi=2.0d+0*dlamch('p') + flma=2.0d+0**(int(slamch('l'))-2) + if (ityp.eq.1) go to 90 + if (ityp.eq.3) go to 40 + do 30 i=1,nj + qr = spr(i) + qi = spi(i) + qh = qr*qr + qi*qi + if (abs(qi).gt.flmi) go to 10 + sfa = -sfa/qr + go to 20 + 10 sfa = sfa/qh + 20 qi = qi/qh + if (abs(qi).lt.flmi) qi = 0.0d+0 + spi(i) = qi + spr(i) = qr/qh + 30 continue + if (ityp.eq.2) go to 90 + 40 qa = 2.0d+0*a + nn = nj + nj = ndeg + ndeg = 2*ndeg + me = nj + do 80 i=1,nn + qr = spr(i)/qa + qi = spi(i)/qa + if (abs(qi).ge.flma) go to 70 + dr = qr + di = qi + dq = di*di + di = di*dr*2.0d+0 + dr = dr*dr - dq - 1.0d+0 + call dsqrtc(dr, di, dr, di) + qz = dr + qn = di + if (abs(qn).gt.flmi) go to 60 + jj = nj + me + do 50 ii=me,nj + j = jj - ii + spr(j+1) = spr(j) + spi(j+1) = spi(j) + 50 continue + nj = nj + 1 + me = me + 1 + 60 spr(i) = qr + qz + spi(i) = qi + qn + spr(me) = qr - qz + spi(me) = qn - qi + me = me - 1 + go to 80 + 70 spr(i) = qr + spi(i) = flma + nj = nj + 1 + spr(nj) = qr + spi(nj) = 0.0d+0 + 80 continue + 90 do 100 i=1,nj + spr(i) = spr(i)*vd + spi(i) = spi(i)*vd + 100 continue + sfa = sfa*sm(nmaxi-1,4) + return + end diff --git a/modules/signal_processing/src/fortran/tranpo.lo b/modules/signal_processing/src/fortran/tranpo.lo new file mode 100755 index 000000000..c367a0646 --- /dev/null +++ b/modules/signal_processing/src/fortran/tranpo.lo @@ -0,0 +1,12 @@ +# src/fortran/tranpo.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/tranpo.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/signal_processing/src/fortran/transn.f b/modules/signal_processing/src/fortran/transn.f new file mode 100755 index 000000000..ac4a939b9 --- /dev/null +++ b/modules/signal_processing/src/fortran/transn.f @@ -0,0 +1,84 @@ + subroutine transn(ityp,om,norma,vsn,vd,a) +c!purpose +c computation of the parameters of the normalized lowpass +c! +c + implicit double precision (a-h,o-z) + double precision om(*) +c + tan2(aa) = sin(aa/2.0d+0)/cos(aa/2.0d+0) +c +c +c Nomenclature Rabiner-Gold (page 241) +c Si ityp = < 2 +c vsn=1/k + v1 = tan2(om(1)) + v2 = tan2(om(2)) + if (ityp.le.2) go to 210 + v3 = tan2(om(3)) + v4 = tan2(om(4)) + if (ityp.eq.3) go to 10 + q = v1 + v1 = -v4 + v4 = -q + q = v2 + v2 = -v3 + v3 = -q +c + 10 jj = 1 + j = norma + 1 + go to (30, 30, 40, 70), j + 30 vdq1 = v2*v3 + vsn1 = vdq1/v1 - v1 + q = v4 - vdq1/v4 + if (q.lt.vsn1) vsn1 = q + a1 = 1.0d+0/(v3-v2) + vsn1 = vsn1*a1 + go to (40, 50, 40), j + 40 vdq = v1*v4 + a = v2/(vdq-v2*v2) + q = v3/(v3*v3-vdq) + if (q.lt.a) a = q + vsn = a*(v4-v1) + if (norma.eq.2) go to 200 + if (vsn.ge.vsn1) go to 200 + 50 vdq = vdq1 + 60 vsn = vsn1 + a = a1 + go to 200 +c + 70 vdq = sqrt(v1*v2*v3*v4) + a1 = v3/(v3*v3-vdq) + vsn1 = (v4-vdq/v4)*a1 + a = v2/(vdq-v2*v2) + vsn = (vdq/v1-v1)*a + if (vsn.ge.vsn1) go to 200 + go to 60 +c +c BUG: NO PATH TO HERE !!!!! +cccp vdq = v2*v3 +cccp vsn = v4 - vdq/v4 +c +cccp a = 1.0d+0/(v3-v2) +cccp vsn = vsn*a +c + 200 vd = sqrt(vdq) + a = a*vd + if (ityp.le.3) go to 270 + a = a/vsn + go to 270 +c + 210 j = ityp + go to (220, 220, 230, 240, 250, 260), j + 220 vsn = v2/v1 + go to (250, 240), j + 230 vd = v2/vsn + go to 270 + 240 vd = v2 + go to 270 + 250 vd = v1 + go to 270 + 260 vd = v1*vsn +c + 270 return + end diff --git a/modules/signal_processing/src/fortran/transn.lo b/modules/signal_processing/src/fortran/transn.lo new file mode 100755 index 000000000..8fd000b63 --- /dev/null +++ b/modules/signal_processing/src/fortran/transn.lo @@ -0,0 +1,12 @@ +# src/fortran/transn.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/transn.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/signal_processing/src/fortran/tranze.f b/modules/signal_processing/src/fortran/tranze.f new file mode 100755 index 000000000..781aec702 --- /dev/null +++ b/modules/signal_processing/src/fortran/tranze.f @@ -0,0 +1,122 @@ + subroutine tranze(nmaxi,maxdeg,ityp,ndeg,nzm,a,vd,sm,nzero) +c!purpose +c reactance transformation of the zeros and the locations of the +c extrema +c! +c + implicit double precision (a-h,o-z) +c + external slamch + real slamch + dimension nzm(*),nzero(*) + double precision sm(maxdeg,*) +c + dimension msm(4) +c + flma=2.0d+0**(int(slamch('l'))-2) + flmi=2.0d+0*dlamch('p') + fa = 1.0d+0 + if (ityp.eq.1) go to 190 + if (ityp.eq.3) go to 60 +c + me = nzm(4) + do 10 i=1,me + q = sm(i,4) + if (q.lt.flma) fa = fa*q + 10 continue +c + fa = fa*fa +c +c lowpass - highpass +c + do 50 j=1,4 + me = nzm(j) + do 40 i=1,me + qi = sm(i,j) + if (abs(qi).lt.flmi) go to 20 + qi = 1.0d+0/qi + go to 30 + 20 qi = flma + 30 sm(i,j) = qi + 40 continue + 50 continue + go to 90 + 60 do 80 j=1,2 + me = nzm(j) + ma = me + 1 + me = me/2 + do 70 i=1,me + qi = sm(i,j) + ii = ma - i + sm(i,j) = sm(ii,j) + sm(ii,j) = qi + 70 continue + 80 continue +c + 90 if (ityp.eq.2) go to 190 +c +c lowpass - bandpass transformation +c + qa = 2.0d+0*a + nn = ndeg + 1 + if (ityp.eq.4) go to 110 +c + msm(1) = 1 + if (nzm(1).ne.1) msm(1) = ndeg + msm(2) = 2 + if (nzm(2).ne.1) msm(2) = nn + do 100 j=3,4 + msm(j) = 2*nzm(j) + 100 continue + go to 130 +c + 110 do 120 j=1,2 + msm(j) = 2*nzm(j) + 120 continue + msm(3) = 2 + if (nzm(3).ne.1) msm(3) = nn + msm(4) = 1 + if (nzm(4).ne.1) msm(4) = ndeg +c + 130 s = 1.0d+0 + do 180 j=1,4 + me = nzm(j) + ma = msm(j) + nzm(j) = ma + if (j.eq.3) s = -1.0d+0 + do 170 i=1,me + qr = sm(i,j) + nu = nzero(i) + if (abs(qr).lt.flma) go to 150 + if (j.ne.4) go to 140 + fa = fa*(vd/a)**nu + 140 qi = qr + go to 160 +c + 150 qr = qr/qa + dr = qr + dqi = sqrt(dr*dr+1.0d+0) + qi = dqi + 160 sm(i,j) = qi - s*qr + ii = ma - i + 1 + if (abs(qr).lt.flmi) nu = 2*nu + if (j.eq.4) nzero(ii) = nu + sm(ii,j) = qi + s*qr + 170 continue + 180 continue +c + 190 do 220 j=1,4 + me = nzm(j) + do 210 i=1,me + q = sm(i,j) + if (q.lt.flma) go to 200 + if (j.ne.4 .or. ityp.ge.3) go to 210 + nu = nzero(i) + fa = fa*vd**nu + go to 210 + 200 sm(i,j) = q*vd + 210 continue + 220 continue + sm(nmaxi-1,4) = sm(nmaxi-1,4)*fa + return + end diff --git a/modules/signal_processing/src/fortran/tranze.lo b/modules/signal_processing/src/fortran/tranze.lo new file mode 100755 index 000000000..820a2b702 --- /dev/null +++ b/modules/signal_processing/src/fortran/tranze.lo @@ -0,0 +1,12 @@ +# src/fortran/tranze.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/tranze.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/signal_processing/src/fortran/trbipo.f b/modules/signal_processing/src/fortran/trbipo.f new file mode 100755 index 000000000..bd2e98537 --- /dev/null +++ b/modules/signal_processing/src/fortran/trbipo.f @@ -0,0 +1,37 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) INRIA +c +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +C/MEMBR ADD NAME=TRBIPO,SSI=0 + subroutine trbipo(nmaxi,maxdeg,nj,sfa,sm,spr,spi,zfa,zpr,zpi) +c!purpose +c bilinear transformation of the poles +c! + implicit double precision (a-h,o-z) + double precision sm(maxdeg,*) + double precision spr(*),spi(*),zpr(*),zpi(*) + flmi=2.0d+0*dlamch('p') + zfa = sfa*sm(nmaxi-1,1) + do 20 i=1,nj + qr = spr(i) + q = 1.0d+0 - qr + qi = spi(i) + if (abs(qi).lt.flmi) go to 10 + qqr = qr*qr + qqi = qi*qi + zfa = zfa/(q-qr+qqr+qqi) + q = 1.0d+0/(q*q+qqi) + zpr(i) = (1.0d+0-qqr-qqi)*q + zpi(i) = 2.0d+0*qi*q + go to 20 + 10 zpr(i) = (1.0d+0+qr)/q + zpi(i) = 0.0d+0 + zfa = zfa/q + 20 continue + return + end diff --git a/modules/signal_processing/src/fortran/trbipo.lo b/modules/signal_processing/src/fortran/trbipo.lo new file mode 100755 index 000000000..5f7ec68a3 --- /dev/null +++ b/modules/signal_processing/src/fortran/trbipo.lo @@ -0,0 +1,12 @@ +# src/fortran/trbipo.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/trbipo.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/signal_processing/src/fortran/trbize.f b/modules/signal_processing/src/fortran/trbize.f new file mode 100755 index 000000000..c210df47e --- /dev/null +++ b/modules/signal_processing/src/fortran/trbize.f @@ -0,0 +1,42 @@ + subroutine trbize(nmaxi,maxdeg,nzm,nzero,sm,zm,zzr,zzi) +c!purpose +c bilinear transformation of the zeros and the locations of the extrema +c! +c + implicit double precision (a-h,o-z) + dimension nzm(*) + dimension sm(maxdeg,*), nzero(*) + double precision zm(maxdeg,*), zzr(*), zzi(*) + external slamch, dlamch + real slamch +c + flma=2.0d+0**(int(slamch('l'))-2) + flmi=2.0d+0*dlamch('p') + fa = 1.0d+0 + do 50 j=1,4 + me = nzm(j) + do 40 i=1,me + qi = sm(i,j) + zm(i,j) = 2.0d+0*atan(qi) + if (j.ne.4) go to 40 + if (qi.ge.flma) go to 10 + if (qi.lt.flmi) go to 20 + qqi = qi*qi + q = 1.0d+0 + qqi + zzr(i) = (1.0d+0-qqi)/q + zzi(i) = 2.0d+0*qi/q + nu = nzero(i)/2 + fa = fa*q**nu + go to 40 +c + 10 zzr(i) = -1.0d+0 + go to 30 +c + 20 zzr(i) = 1.0d+0 + 30 zzi(i) = 0.0d+0 + 40 continue + 50 continue +c + sm(nmaxi-1,1) = fa + return + end diff --git a/modules/signal_processing/src/fortran/trbize.lo b/modules/signal_processing/src/fortran/trbize.lo new file mode 100755 index 000000000..6290d7c4d --- /dev/null +++ b/modules/signal_processing/src/fortran/trbize.lo @@ -0,0 +1,12 @@ +# src/fortran/trbize.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/trbize.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/signal_processing/src/fortran/tscccf.f b/modules/signal_processing/src/fortran/tscccf.f new file mode 100755 index 000000000..adac86f1b --- /dev/null +++ b/modules/signal_processing/src/fortran/tscccf.f @@ -0,0 +1,56 @@ + subroutine tscccf(x,y,n,cxy,xymean,lag,ierr) +c! +c purposes : function tscccf computes lag crosscovariance cxy +c n-dimensioned time series x and y, x leading y, +c starting at lag 0. +c +c usage : call tscccf(x,y,n,cxy,xymean,lag)* +c +c parameters on entry on return +c ---------- -------- --------- +c x : time series x unchanged +c y : time series y unchanged +c n : series length unchanged +c cxy : unusedcrosscovariance function +c lag : number of lags unchanged +c +c +c remarks : lag must be strictly positive, inferior to n. +c +c error flag tscccf is set to the following values: +c ierr = 0 : no errors. +c ierr = -1 : wrong input parameter n or lag. +c +c routines called : dset +c +c! + double precision x,y,cxy,xymean,eyy,f,exx + dimension x(*),y(*),cxy(*),xymean(2) +c + if(lag.le.0 .or. lag.gt.n .or. n.le.0) then + ierr=-1 + return + endif + call dset(lag,0.0d+0,cxy,1) + call dset(2,0.0d+0,xymean,1) + exx=0.0d+0 + eyy=0.0d+0 + do 10 k=1,n + exx=exx+x(k) + eyy=eyy+y(k) + 10 continue + f = 1.0d+0/dble(n) + exx=exx*f + eyy=eyy*f + xymean(1)=exx + xymean(2)=eyy + do 1000 m=1,lag + do 100 j=1,n-m+1 + cxy(m) = cxy(m)+(x(j)-exx)*(y(j+m-1)-eyy) +100 continue + cxy(m) = cxy(m)*f +1000 continue + ierr=0 +c + return + end diff --git a/modules/signal_processing/src/fortran/tscccf.lo b/modules/signal_processing/src/fortran/tscccf.lo new file mode 100755 index 000000000..4b82451a6 --- /dev/null +++ b/modules/signal_processing/src/fortran/tscccf.lo @@ -0,0 +1,12 @@ +# src/fortran/tscccf.lo - a libtool object file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# Name of the PIC object. +pic_object='.libs/tscccf.o' + +# Name of the non-PIC object +non_pic_object=none + |