summaryrefslogtreecommitdiff
path: root/modules/signal_processing/src
diff options
context:
space:
mode:
authorShashank2017-05-29 12:40:26 +0530
committerShashank2017-05-29 12:40:26 +0530
commit0345245e860375a32c9a437c4a9d9cae807134e9 (patch)
treead51ecbfa7bcd3cc5f09834f1bb8c08feaa526a4 /modules/signal_processing/src
downloadscilab_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')
-rwxr-xr-xmodules/signal_processing/src/c/.deps/.dirstamp0
-rwxr-xr-xmodules/signal_processing/src/c/.deps/libscisignal_processing_algo_la-conv2.Plo152
-rwxr-xr-xmodules/signal_processing/src/c/.deps/libscisignal_processing_algo_la-corrtable.Plo16
-rwxr-xr-xmodules/signal_processing/src/c/.dirstamp0
-rwxr-xr-xmodules/signal_processing/src/c/.libs/libscisignal_processing_algo_la-conv2.obin0 -> 31328 bytes
-rwxr-xr-xmodules/signal_processing/src/c/.libs/libscisignal_processing_algo_la-corrtable.obin0 -> 6936 bytes
-rwxr-xr-xmodules/signal_processing/src/c/DllmainSignal_processing.c75
-rwxr-xr-xmodules/signal_processing/src/c/conv2.c285
-rwxr-xr-xmodules/signal_processing/src/c/conv2.h78
-rwxr-xr-xmodules/signal_processing/src/c/core_Import.def11
-rwxr-xr-xmodules/signal_processing/src/c/corrtable.c90
-rwxr-xr-xmodules/signal_processing/src/c/libscisignal_processing_algo_la-conv2.lo12
-rwxr-xr-xmodules/signal_processing/src/c/libscisignal_processing_algo_la-corrtable.lo12
-rwxr-xr-xmodules/signal_processing/src/c/signal_processing.rc96
-rwxr-xr-xmodules/signal_processing/src/c/signal_processing.vcxproj247
-rwxr-xr-xmodules/signal_processing/src/c/signal_processing.vcxproj.filters99
-rwxr-xr-xmodules/signal_processing/src/c/signal_processing_f_Import.def17
-rwxr-xr-xmodules/signal_processing/src/fortran/.deps/.dirstamp0
-rwxr-xr-xmodules/signal_processing/src/fortran/.dirstamp0
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/amell.obin0 -> 10784 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/bldenz.obin0 -> 5968 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/blnumz.obin0 -> 5664 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/bounn.obin0 -> 8376 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/cheby.obin0 -> 9808 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/cmpse2.obin0 -> 13184 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/cmpse3.obin0 -> 13136 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/coeft.obin0 -> 4640 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/compel.obin0 -> 5824 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/degree.obin0 -> 6184 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/deli1.obin0 -> 8072 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/deli11.obin0 -> 7160 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/deli2.obin0 -> 12088 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/delip.obin0 -> 7456 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/dellk.obin0 -> 5664 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/desi00.obin0 -> 4600 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/desi01.obin0 -> 5864 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/desi11.obin0 -> 7096 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/desi12.obin0 -> 9768 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/desi14.obin0 -> 11416 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/desi21.obin0 -> 7528 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/desi22.obin0 -> 10008 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/desi24.obin0 -> 9424 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/desia.obin0 -> 9048 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/desib.obin0 -> 8296 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/dfft2.obin0 -> 4400 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/dfftbi.obin0 -> 9536 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/dfftmx.obin0 -> 27488 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/dgee01.obin0 -> 5208 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/dsn2.obin0 -> 6592 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/dsqrtc.obin0 -> 5472 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/fft842.obin0 -> 15888 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/filbut.obin0 -> 5744 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/freque.obin0 -> 5976 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/gee.obin0 -> 5632 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/hammin.obin0 -> 5208 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/ino.obin0 -> 4328 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/nstabl.obin0 -> 4856 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/ouch.obin0 -> 14880 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/parcha.obin0 -> 7176 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/poles.obin0 -> 4696 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/r2tx.obin0 -> 3752 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/r4tx.obin0 -> 4760 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/r8tx.obin0 -> 24904 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/remez.obin0 -> 24096 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/romeg.obin0 -> 5120 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/rpem.obin0 -> 11072 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/sn.obin0 -> 6784 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/snell.obin0 -> 6888 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/syredi.obin0 -> 8472 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/tg02ad.obin0 -> 7920 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/tranpo.obin0 -> 9296 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/transn.obin0 -> 8192 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/tranze.obin0 -> 11672 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/trbipo.obin0 -> 6432 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/trbize.obin0 -> 7544 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/.libs/tscccf.obin0 -> 6552 bytes
-rwxr-xr-xmodules/signal_processing/src/fortran/Elementary_functions_Import.def6
-rwxr-xr-xmodules/signal_processing/src/fortran/Elementary_functions_f_Import.def13
-rwxr-xr-xmodules/signal_processing/src/fortran/amell.f93
-rwxr-xr-xmodules/signal_processing/src/fortran/amell.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/bldenz.f36
-rwxr-xr-xmodules/signal_processing/src/fortran/bldenz.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/blnumz.f48
-rwxr-xr-xmodules/signal_processing/src/fortran/blnumz.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/bounn.f54
-rwxr-xr-xmodules/signal_processing/src/fortran/bounn.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/cheby.f96
-rwxr-xr-xmodules/signal_processing/src/fortran/cheby.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/cmpse2.f143
-rwxr-xr-xmodules/signal_processing/src/fortran/cmpse2.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/cmpse3.f107
-rwxr-xr-xmodules/signal_processing/src/fortran/cmpse3.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/coeft.f41
-rwxr-xr-xmodules/signal_processing/src/fortran/coeft.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/compel.f37
-rwxr-xr-xmodules/signal_processing/src/fortran/compel.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/core_Import.def33
-rwxr-xr-xmodules/signal_processing/src/fortran/core_f_Import.def14
-rwxr-xr-xmodules/signal_processing/src/fortran/degree.f32
-rwxr-xr-xmodules/signal_processing/src/fortran/degree.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/deli1.f85
-rwxr-xr-xmodules/signal_processing/src/fortran/deli1.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/deli11.f72
-rwxr-xr-xmodules/signal_processing/src/fortran/deli11.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/deli2.f120
-rwxr-xr-xmodules/signal_processing/src/fortran/deli2.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/delip.f46
-rwxr-xr-xmodules/signal_processing/src/fortran/delip.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/dellk.f36
-rwxr-xr-xmodules/signal_processing/src/fortran/dellk.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/desi00.f14
-rwxr-xr-xmodules/signal_processing/src/fortran/desi00.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/desi01.f26
-rwxr-xr-xmodules/signal_processing/src/fortran/desi01.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/desi11.f46
-rwxr-xr-xmodules/signal_processing/src/fortran/desi11.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/desi12.f90
-rwxr-xr-xmodules/signal_processing/src/fortran/desi12.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/desi14.f101
-rwxr-xr-xmodules/signal_processing/src/fortran/desi14.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/desi21.f36
-rwxr-xr-xmodules/signal_processing/src/fortran/desi21.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/desi22.f76
-rwxr-xr-xmodules/signal_processing/src/fortran/desi22.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/desi24.f70
-rwxr-xr-xmodules/signal_processing/src/fortran/desi24.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/desia.f38
-rwxr-xr-xmodules/signal_processing/src/fortran/desia.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/desib.f35
-rwxr-xr-xmodules/signal_processing/src/fortran/desib.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/dfft2.f21
-rwxr-xr-xmodules/signal_processing/src/fortran/dfft2.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/dfftbi.f187
-rwxr-xr-xmodules/signal_processing/src/fortran/dfftbi.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/dfftmx.f537
-rwxr-xr-xmodules/signal_processing/src/fortran/dfftmx.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/dgee01.f27
-rwxr-xr-xmodules/signal_processing/src/fortran/dgee01.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/dsn2.f51
-rwxr-xr-xmodules/signal_processing/src/fortran/dsn2.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/dsqrtc.f26
-rwxr-xr-xmodules/signal_processing/src/fortran/dsqrtc.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/fft842.f132
-rwxr-xr-xmodules/signal_processing/src/fortran/fft842.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/filbut.f61
-rwxr-xr-xmodules/signal_processing/src/fortran/filbut.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/freque.f40
-rwxr-xr-xmodules/signal_processing/src/fortran/freque.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/gee.f25
-rwxr-xr-xmodules/signal_processing/src/fortran/gee.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/hammin.f43
-rwxr-xr-xmodules/signal_processing/src/fortran/hammin.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/ino.f51
-rwxr-xr-xmodules/signal_processing/src/fortran/ino.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/nstabl.f37
-rwxr-xr-xmodules/signal_processing/src/fortran/nstabl.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/ouch.f40
-rwxr-xr-xmodules/signal_processing/src/fortran/ouch.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/output_stream_Import.def9
-rwxr-xr-xmodules/signal_processing/src/fortran/parcha.f36
-rwxr-xr-xmodules/signal_processing/src/fortran/parcha.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/poles.f36
-rwxr-xr-xmodules/signal_processing/src/fortran/poles.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/r2tx.f17
-rwxr-xr-xmodules/signal_processing/src/fortran/r2tx.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/r4tx.f29
-rwxr-xr-xmodules/signal_processing/src/fortran/r4tx.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/r8tx.f110
-rwxr-xr-xmodules/signal_processing/src/fortran/r8tx.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/remez.f309
-rwxr-xr-xmodules/signal_processing/src/fortran/remez.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/romeg.f31
-rwxr-xr-xmodules/signal_processing/src/fortran/romeg.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/rpem.f202
-rwxr-xr-xmodules/signal_processing/src/fortran/rpem.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/sci_ffir.f18
-rwxr-xr-xmodules/signal_processing/src/fortran/signal_processing_Import.def17
-rwxr-xr-xmodules/signal_processing/src/fortran/signal_processing_f.rc96
-rwxr-xr-xmodules/signal_processing/src/fortran/signal_processing_f.vfproj178
-rwxr-xr-xmodules/signal_processing/src/fortran/signal_processing_f2c.vcxproj422
-rwxr-xr-xmodules/signal_processing/src/fortran/signal_processing_f2c.vcxproj.filters457
-rwxr-xr-xmodules/signal_processing/src/fortran/sn.f21
-rwxr-xr-xmodules/signal_processing/src/fortran/sn.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/snell.f53
-rwxr-xr-xmodules/signal_processing/src/fortran/snell.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/syredi.f92
-rwxr-xr-xmodules/signal_processing/src/fortran/syredi.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/tg02ad.f113
-rwxr-xr-xmodules/signal_processing/src/fortran/tg02ad.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/tranpo.f73
-rwxr-xr-xmodules/signal_processing/src/fortran/tranpo.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/transn.f84
-rwxr-xr-xmodules/signal_processing/src/fortran/transn.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/tranze.f122
-rwxr-xr-xmodules/signal_processing/src/fortran/tranze.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/trbipo.f37
-rwxr-xr-xmodules/signal_processing/src/fortran/trbipo.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/trbize.f42
-rwxr-xr-xmodules/signal_processing/src/fortran/trbize.lo12
-rwxr-xr-xmodules/signal_processing/src/fortran/tscccf.f56
-rwxr-xr-xmodules/signal_processing/src/fortran/tscccf.lo12
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
new file mode 100755
index 000000000..1061aaff2
--- /dev/null
+++ b/modules/signal_processing/src/c/.libs/libscisignal_processing_algo_la-conv2.o
Binary files differ
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
new file mode 100755
index 000000000..b1cbe5659
--- /dev/null
+++ b/modules/signal_processing/src/c/.libs/libscisignal_processing_algo_la-corrtable.o
Binary files differ
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&gt;NUL 2&gt;NUL
+lib /DEF:"$(ProjectDir)signal_processing_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)signal_processing_f.lib" 1&gt;NUL 2&gt;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&gt;NUL 2&gt;NUL
+lib /DEF:"$(ProjectDir)signal_processing_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)signal_processing_f.lib" 1&gt;NUL 2&gt;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&gt;NUL 2&gt;NUL
+lib /DEF:"$(ProjectDir)signal_processing_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)signal_processing_f.lib" 1&gt;NUL 2&gt;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&gt;NUL 2&gt;NUL
+lib /DEF:"$(ProjectDir)signal_processing_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)signal_processing_f.lib" 1&gt;NUL 2&gt;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
new file mode 100755
index 000000000..fb3730913
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/amell.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/bldenz.o b/modules/signal_processing/src/fortran/.libs/bldenz.o
new file mode 100755
index 000000000..a25bf979c
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/bldenz.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/blnumz.o b/modules/signal_processing/src/fortran/.libs/blnumz.o
new file mode 100755
index 000000000..9b5fcee9f
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/blnumz.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/bounn.o b/modules/signal_processing/src/fortran/.libs/bounn.o
new file mode 100755
index 000000000..1b808b471
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/bounn.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/cheby.o b/modules/signal_processing/src/fortran/.libs/cheby.o
new file mode 100755
index 000000000..261fbb014
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/cheby.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/cmpse2.o b/modules/signal_processing/src/fortran/.libs/cmpse2.o
new file mode 100755
index 000000000..dd513432c
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/cmpse2.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/cmpse3.o b/modules/signal_processing/src/fortran/.libs/cmpse3.o
new file mode 100755
index 000000000..090cf4d4b
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/cmpse3.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/coeft.o b/modules/signal_processing/src/fortran/.libs/coeft.o
new file mode 100755
index 000000000..5c46933e1
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/coeft.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/compel.o b/modules/signal_processing/src/fortran/.libs/compel.o
new file mode 100755
index 000000000..cebe47e9e
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/compel.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/degree.o b/modules/signal_processing/src/fortran/.libs/degree.o
new file mode 100755
index 000000000..ce6354ee5
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/degree.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/deli1.o b/modules/signal_processing/src/fortran/.libs/deli1.o
new file mode 100755
index 000000000..dc7505c43
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/deli1.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/deli11.o b/modules/signal_processing/src/fortran/.libs/deli11.o
new file mode 100755
index 000000000..9331e5a6a
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/deli11.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/deli2.o b/modules/signal_processing/src/fortran/.libs/deli2.o
new file mode 100755
index 000000000..1779a5a08
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/deli2.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/delip.o b/modules/signal_processing/src/fortran/.libs/delip.o
new file mode 100755
index 000000000..5e672d2a7
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/delip.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/dellk.o b/modules/signal_processing/src/fortran/.libs/dellk.o
new file mode 100755
index 000000000..5a2142191
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/dellk.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/desi00.o b/modules/signal_processing/src/fortran/.libs/desi00.o
new file mode 100755
index 000000000..e1d52b158
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/desi00.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/desi01.o b/modules/signal_processing/src/fortran/.libs/desi01.o
new file mode 100755
index 000000000..5ddc24713
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/desi01.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/desi11.o b/modules/signal_processing/src/fortran/.libs/desi11.o
new file mode 100755
index 000000000..c05f67794
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/desi11.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/desi12.o b/modules/signal_processing/src/fortran/.libs/desi12.o
new file mode 100755
index 000000000..70dff4f5c
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/desi12.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/desi14.o b/modules/signal_processing/src/fortran/.libs/desi14.o
new file mode 100755
index 000000000..e370e8b6b
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/desi14.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/desi21.o b/modules/signal_processing/src/fortran/.libs/desi21.o
new file mode 100755
index 000000000..cc2cd5fd3
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/desi21.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/desi22.o b/modules/signal_processing/src/fortran/.libs/desi22.o
new file mode 100755
index 000000000..1172f6475
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/desi22.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/desi24.o b/modules/signal_processing/src/fortran/.libs/desi24.o
new file mode 100755
index 000000000..8558e4a11
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/desi24.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/desia.o b/modules/signal_processing/src/fortran/.libs/desia.o
new file mode 100755
index 000000000..06c076922
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/desia.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/desib.o b/modules/signal_processing/src/fortran/.libs/desib.o
new file mode 100755
index 000000000..048f520e7
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/desib.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/dfft2.o b/modules/signal_processing/src/fortran/.libs/dfft2.o
new file mode 100755
index 000000000..2ee3a3752
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/dfft2.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/dfftbi.o b/modules/signal_processing/src/fortran/.libs/dfftbi.o
new file mode 100755
index 000000000..d66015a1c
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/dfftbi.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/dfftmx.o b/modules/signal_processing/src/fortran/.libs/dfftmx.o
new file mode 100755
index 000000000..00d6b3f19
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/dfftmx.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/dgee01.o b/modules/signal_processing/src/fortran/.libs/dgee01.o
new file mode 100755
index 000000000..643f10afd
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/dgee01.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/dsn2.o b/modules/signal_processing/src/fortran/.libs/dsn2.o
new file mode 100755
index 000000000..1913ecd7a
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/dsn2.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/dsqrtc.o b/modules/signal_processing/src/fortran/.libs/dsqrtc.o
new file mode 100755
index 000000000..349c52930
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/dsqrtc.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/fft842.o b/modules/signal_processing/src/fortran/.libs/fft842.o
new file mode 100755
index 000000000..a42c97426
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/fft842.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/filbut.o b/modules/signal_processing/src/fortran/.libs/filbut.o
new file mode 100755
index 000000000..5b73b1844
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/filbut.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/freque.o b/modules/signal_processing/src/fortran/.libs/freque.o
new file mode 100755
index 000000000..7816f9470
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/freque.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/gee.o b/modules/signal_processing/src/fortran/.libs/gee.o
new file mode 100755
index 000000000..8ec609f9b
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/gee.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/hammin.o b/modules/signal_processing/src/fortran/.libs/hammin.o
new file mode 100755
index 000000000..63f855ff6
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/hammin.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/ino.o b/modules/signal_processing/src/fortran/.libs/ino.o
new file mode 100755
index 000000000..e3795b059
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/ino.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/nstabl.o b/modules/signal_processing/src/fortran/.libs/nstabl.o
new file mode 100755
index 000000000..332a5e0dd
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/nstabl.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/ouch.o b/modules/signal_processing/src/fortran/.libs/ouch.o
new file mode 100755
index 000000000..523a79748
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/ouch.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/parcha.o b/modules/signal_processing/src/fortran/.libs/parcha.o
new file mode 100755
index 000000000..0ec11635d
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/parcha.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/poles.o b/modules/signal_processing/src/fortran/.libs/poles.o
new file mode 100755
index 000000000..d652ee3f6
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/poles.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/r2tx.o b/modules/signal_processing/src/fortran/.libs/r2tx.o
new file mode 100755
index 000000000..70ce0c20b
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/r2tx.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/r4tx.o b/modules/signal_processing/src/fortran/.libs/r4tx.o
new file mode 100755
index 000000000..d90bf64f2
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/r4tx.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/r8tx.o b/modules/signal_processing/src/fortran/.libs/r8tx.o
new file mode 100755
index 000000000..e24bcd2da
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/r8tx.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/remez.o b/modules/signal_processing/src/fortran/.libs/remez.o
new file mode 100755
index 000000000..a47b83032
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/remez.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/romeg.o b/modules/signal_processing/src/fortran/.libs/romeg.o
new file mode 100755
index 000000000..54c29e35a
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/romeg.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/rpem.o b/modules/signal_processing/src/fortran/.libs/rpem.o
new file mode 100755
index 000000000..313ec475b
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/rpem.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/sn.o b/modules/signal_processing/src/fortran/.libs/sn.o
new file mode 100755
index 000000000..8f885b5f6
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/sn.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/snell.o b/modules/signal_processing/src/fortran/.libs/snell.o
new file mode 100755
index 000000000..67ba9a9ec
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/snell.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/syredi.o b/modules/signal_processing/src/fortran/.libs/syredi.o
new file mode 100755
index 000000000..e37e8cebd
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/syredi.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/tg02ad.o b/modules/signal_processing/src/fortran/.libs/tg02ad.o
new file mode 100755
index 000000000..d6f695525
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/tg02ad.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/tranpo.o b/modules/signal_processing/src/fortran/.libs/tranpo.o
new file mode 100755
index 000000000..604f965e7
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/tranpo.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/transn.o b/modules/signal_processing/src/fortran/.libs/transn.o
new file mode 100755
index 000000000..5d585bb5f
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/transn.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/tranze.o b/modules/signal_processing/src/fortran/.libs/tranze.o
new file mode 100755
index 000000000..078af66f5
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/tranze.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/trbipo.o b/modules/signal_processing/src/fortran/.libs/trbipo.o
new file mode 100755
index 000000000..074f84434
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/trbipo.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/trbize.o b/modules/signal_processing/src/fortran/.libs/trbize.o
new file mode 100755
index 000000000..5c80a5458
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/trbize.o
Binary files differ
diff --git a/modules/signal_processing/src/fortran/.libs/tscccf.o b/modules/signal_processing/src/fortran/.libs/tscccf.o
new file mode 100755
index 000000000..ae0076283
--- /dev/null
+++ b/modules/signal_processing/src/fortran/.libs/tscccf.o
Binary files differ
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
+&quot;$(SolutionDir)bin\dumpexts&quot; -o $(ProjectName).def $(ProjectName).dll %LIST_OBJ%
+copy $(ProjectName).def ..\$(ProjectName).def &gt;nul
+del *.def &gt;nul
+cd .." Description="Build $(ProjectName).def"/>
+ <Tool Name="VFPreBuildEventTool" CommandLine="lib /DEF:&quot;$(InputDir)core_import.def&quot; /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:&quot;$(InputDir)core.lib&quot; 1&gt;NUL 2&gt;NUL
+lib /DEF:&quot;$(InputDir)core_f_Import.def&quot; /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:&quot;$(InputDir)core_f.lib&quot; 1&gt;NUL 2&gt;NUL
+lib /DEF:&quot;$(InputDir)signal_processing_Import.def&quot; /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:&quot;$(InputDir)signal_processing.lib&quot; 1&gt;NUL 2&gt;NUL
+lib /DEF:&quot;$(InputDir)output_stream_Import.def&quot; /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:&quot;$(InputDir)output_stream.lib&quot; 1&gt;NUL 2&gt;NUL
+lib /DEF:&quot;$(InputDir)elementary_functions_Import.def&quot; /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:&quot;$(InputDir)elementary_functions.lib&quot; 1&gt;NUL 2&gt;NUL
+lib /DEF:&quot;$(InputDir)elementary_functions_f_Import.def&quot; /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:&quot;$(InputDir)elementary_functions_f.lib&quot; 1&gt;NUL 2&gt;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
+&quot;$(SolutionDir)bin\dumpexts&quot; -o $(ProjectName).def $(ProjectName).dll %LIST_OBJ%
+copy $(ProjectName).def ..\$(ProjectName).def &gt;nul
+del *.def &gt;nul
+cd .." Description="Build $(ProjectName).def"/>
+ <Tool Name="VFPreBuildEventTool" CommandLine="lib /DEF:&quot;$(InputDir)core_import.def&quot; /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:&quot;$(InputDir)core.lib&quot; 1&gt;NUL 2&gt;NUL
+lib /DEF:&quot;$(InputDir)core_f_Import.def&quot; /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:&quot;$(InputDir)core_f.lib&quot; 1&gt;NUL 2&gt;NUL
+lib /DEF:&quot;$(InputDir)signal_processing_Import.def&quot; /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:&quot;$(InputDir)signal_processing.lib&quot; 1&gt;NUL 2&gt;NUL
+lib /DEF:&quot;$(InputDir)output_stream_Import.def&quot; /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:&quot;$(InputDir)output_stream.lib&quot; 1&gt;NUL 2&gt;NUL
+lib /DEF:&quot;$(InputDir)elementary_functions_Import.def&quot; /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:&quot;$(InputDir)elementary_functions.lib&quot; 1&gt;NUL 2&gt;NUL
+lib /DEF:&quot;$(InputDir)elementary_functions_f_Import.def&quot; /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:&quot;$(InputDir)elementary_functions_f.lib&quot; 1&gt;NUL 2&gt;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
+&quot;$(SolutionDir)bin\dumpexts&quot; -o $(ProjectName).def $(ProjectName).dll %LIST_OBJ%
+copy $(ProjectName).def ..\$(ProjectName).def &gt;nul
+del *.def &gt;nul
+cd .." Description="Build $(ProjectName).def"/>
+ <Tool Name="VFPreBuildEventTool" CommandLine="lib /DEF:&quot;$(InputDir)core_import.def&quot; /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:&quot;$(InputDir)core.lib&quot; 1&gt;NUL 2&gt;NUL
+lib /DEF:&quot;$(InputDir)core_f_Import.def&quot; /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:&quot;$(InputDir)core_f.lib&quot; 1&gt;NUL 2&gt;NUL
+lib /DEF:&quot;$(InputDir)signal_processing_Import.def&quot; /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:&quot;$(InputDir)signal_processing.lib&quot; 1&gt;NUL 2&gt;NUL
+lib /DEF:&quot;$(InputDir)output_stream_Import.def&quot; /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:&quot;$(InputDir)output_stream.lib&quot; 1&gt;NUL 2&gt;NUL
+lib /DEF:&quot;$(InputDir)elementary_functions_Import.def&quot; /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:&quot;$(InputDir)elementary_functions.lib&quot; 1&gt;NUL 2&gt;NUL
+lib /DEF:&quot;$(InputDir)elementary_functions_f_Import.def&quot; /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:&quot;$(InputDir)elementary_functions_f.lib&quot; 1&gt;NUL 2&gt;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
+&quot;$(SolutionDir)bin\dumpexts&quot; -o $(ProjectName).def $(ProjectName).dll %LIST_OBJ%
+copy $(ProjectName).def ..\$(ProjectName).def &gt;nul
+del *.def &gt;nul
+cd .." Description="Build $(ProjectName).def"/>
+ <Tool Name="VFPreBuildEventTool" CommandLine="lib /DEF:&quot;$(InputDir)core_import.def&quot; /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:&quot;$(InputDir)core.lib&quot; 1&gt;NUL 2&gt;NUL
+lib /DEF:&quot;$(InputDir)core_f_Import.def&quot; /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:&quot;$(InputDir)core_f.lib&quot; 1&gt;NUL 2&gt;NUL
+lib /DEF:&quot;$(InputDir)signal_processing_Import.def&quot; /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:&quot;$(InputDir)signal_processing.lib&quot; 1&gt;NUL 2&gt;NUL
+lib /DEF:&quot;$(InputDir)output_stream_Import.def&quot; /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:&quot;$(InputDir)output_stream.lib&quot; 1&gt;NUL 2&gt;NUL
+lib /DEF:&quot;$(InputDir)elementary_functions_Import.def&quot; /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:&quot;$(InputDir)elementary_functions.lib&quot; 1&gt;NUL 2&gt;NUL
+lib /DEF:&quot;$(InputDir)elementary_functions_f_Import.def&quot; /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:&quot;$(InputDir)elementary_functions_f.lib&quot; 1&gt;NUL 2&gt;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&gt;NUL 2&gt;NUL
+lib /DEF:"$(ProjectDir)Core_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)core_f.lib" 1&gt;NUL 2&gt;NUL
+lib /DEF:"$(ProjectDir)signal_processing_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)signal_processing.lib" 1&gt;NUL 2&gt;NUL
+lib /DEF:"$(ProjectDir)output_stream_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)output_stream.lib" 1&gt;NUL 2&gt;NUL
+lib /DEF:"$(ProjectDir)elementary_functions_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)elementary_functions.lib" 1&gt;NUL 2&gt;NUL
+lib /DEF:"$(ProjectDir)elementary_functions_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)elementary_functions_f.lib" 1&gt;NUL 2&gt;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 &gt;nul
+del *.def &gt;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&gt;NUL 2&gt;NUL
+lib /DEF:"$(ProjectDir)Core_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)core_f.lib" 1&gt;NUL 2&gt;NUL
+lib /DEF:"$(ProjectDir)signal_processing_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)signal_processing.lib" 1&gt;NUL 2&gt;NUL
+lib /DEF:"$(ProjectDir)output_stream_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)output_stream.lib" 1&gt;NUL 2&gt;NUL
+lib /DEF:"$(ProjectDir)elementary_functions_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)elementary_functions.lib" 1&gt;NUL 2&gt;NUL
+lib /DEF:"$(ProjectDir)elementary_functions_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)elementary_functions_f.lib" 1&gt;NUL 2&gt;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 &gt;nul
+del *.def &gt;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&gt;NUL 2&gt;NUL
+lib /DEF:"$(ProjectDir)Core_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)core_f.lib" 1&gt;NUL 2&gt;NUL
+lib /DEF:"$(ProjectDir)signal_processing_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)signal_processing.lib" 1&gt;NUL 2&gt;NUL
+lib /DEF:"$(ProjectDir)output_stream_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)output_stream.lib" 1&gt;NUL 2&gt;NUL
+lib /DEF:"$(ProjectDir)elementary_functions_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)elementary_functions.lib" 1&gt;NUL 2&gt;NUL
+lib /DEF:"$(ProjectDir)elementary_functions_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)elementary_functions_f.lib" 1&gt;NUL 2&gt;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 &gt;nul
+del *.def &gt;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&gt;NUL 2&gt;NUL
+lib /DEF:"$(ProjectDir)Core_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)core_f.lib" 1&gt;NUL 2&gt;NUL
+lib /DEF:"$(ProjectDir)signal_processing_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)signal_processing.lib" 1&gt;NUL 2&gt;NUL
+lib /DEF:"$(ProjectDir)output_stream_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)output_stream.lib" 1&gt;NUL 2&gt;NUL
+lib /DEF:"$(ProjectDir)elementary_functions_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)elementary_functions.lib" 1&gt;NUL 2&gt;NUL
+lib /DEF:"$(ProjectDir)elementary_functions_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)elementary_functions_f.lib" 1&gt;NUL 2&gt;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 &gt;nul
+del *.def &gt;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
+