From 0345245e860375a32c9a437c4a9d9cae807134e9 Mon Sep 17 00:00:00 2001
From: Shashank
Date: Mon, 29 May 2017 12:40:26 +0530
Subject: CMSCOPE changed
---
modules/arnoldi/sci_gateway/arnoldi_gateway.xml | 43 ++
modules/arnoldi/sci_gateway/c/.deps/.dirstamp | 0
.../c/.deps/libsciarnoldi_la-gw_arnoldi.Plo | 273 +++++++
.../c/.deps/libsciarnoldi_la-sci_dnaupd.Plo | 284 +++++++
.../c/.deps/libsciarnoldi_la-sci_dneupd.Plo | 284 +++++++
.../c/.deps/libsciarnoldi_la-sci_dsaupd.Plo | 284 +++++++
.../c/.deps/libsciarnoldi_la-sci_dseupd.Plo | 284 +++++++
.../c/.deps/libsciarnoldi_la-sci_eigs.Plo | 316 ++++++++
.../c/.deps/libsciarnoldi_la-sci_znaupd.Plo | 284 +++++++
.../c/.deps/libsciarnoldi_la-sci_zneupd.Plo | 284 +++++++
modules/arnoldi/sci_gateway/c/.dirstamp | 0
.../c/.libs/libsciarnoldi_la-gw_arnoldi.o | Bin 0 -> 6840 bytes
.../c/.libs/libsciarnoldi_la-sci_dnaupd.o | Bin 0 -> 24200 bytes
.../c/.libs/libsciarnoldi_la-sci_dneupd.o | Bin 0 -> 31800 bytes
.../c/.libs/libsciarnoldi_la-sci_dsaupd.o | Bin 0 -> 24096 bytes
.../c/.libs/libsciarnoldi_la-sci_dseupd.o | Bin 0 -> 28736 bytes
.../c/.libs/libsciarnoldi_la-sci_eigs.o | Bin 0 -> 62672 bytes
.../c/.libs/libsciarnoldi_la-sci_znaupd.o | Bin 0 -> 25352 bytes
.../c/.libs/libsciarnoldi_la-sci_zneupd.o | Bin 0 -> 30936 bytes
modules/arnoldi/sci_gateway/c/gw_arnoldi.c | 48 ++
.../sci_gateway/c/libsciarnoldi_la-gw_arnoldi.lo | 12 +
.../sci_gateway/c/libsciarnoldi_la-sci_dnaupd.lo | 12 +
.../sci_gateway/c/libsciarnoldi_la-sci_dneupd.lo | 12 +
.../sci_gateway/c/libsciarnoldi_la-sci_dsaupd.lo | 12 +
.../sci_gateway/c/libsciarnoldi_la-sci_dseupd.lo | 12 +
.../sci_gateway/c/libsciarnoldi_la-sci_eigs.lo | 12 +
.../sci_gateway/c/libsciarnoldi_la-sci_znaupd.lo | 12 +
.../sci_gateway/c/libsciarnoldi_la-sci_zneupd.lo | 12 +
modules/arnoldi/sci_gateway/c/sci_dnaupd.c | 395 ++++++++++
modules/arnoldi/sci_gateway/c/sci_dneupd.c | 579 ++++++++++++++
modules/arnoldi/sci_gateway/c/sci_dsaupd.c | 395 ++++++++++
modules/arnoldi/sci_gateway/c/sci_dseupd.c | 514 +++++++++++++
modules/arnoldi/sci_gateway/c/sci_eigs.c | 841 +++++++++++++++++++++
modules/arnoldi/sci_gateway/c/sci_znaupd.c | 418 ++++++++++
modules/arnoldi/sci_gateway/c/sci_zneupd.c | 553 ++++++++++++++
35 files changed, 6175 insertions(+)
create mode 100755 modules/arnoldi/sci_gateway/arnoldi_gateway.xml
create mode 100755 modules/arnoldi/sci_gateway/c/.deps/.dirstamp
create mode 100755 modules/arnoldi/sci_gateway/c/.deps/libsciarnoldi_la-gw_arnoldi.Plo
create mode 100755 modules/arnoldi/sci_gateway/c/.deps/libsciarnoldi_la-sci_dnaupd.Plo
create mode 100755 modules/arnoldi/sci_gateway/c/.deps/libsciarnoldi_la-sci_dneupd.Plo
create mode 100755 modules/arnoldi/sci_gateway/c/.deps/libsciarnoldi_la-sci_dsaupd.Plo
create mode 100755 modules/arnoldi/sci_gateway/c/.deps/libsciarnoldi_la-sci_dseupd.Plo
create mode 100755 modules/arnoldi/sci_gateway/c/.deps/libsciarnoldi_la-sci_eigs.Plo
create mode 100755 modules/arnoldi/sci_gateway/c/.deps/libsciarnoldi_la-sci_znaupd.Plo
create mode 100755 modules/arnoldi/sci_gateway/c/.deps/libsciarnoldi_la-sci_zneupd.Plo
create mode 100755 modules/arnoldi/sci_gateway/c/.dirstamp
create mode 100755 modules/arnoldi/sci_gateway/c/.libs/libsciarnoldi_la-gw_arnoldi.o
create mode 100755 modules/arnoldi/sci_gateway/c/.libs/libsciarnoldi_la-sci_dnaupd.o
create mode 100755 modules/arnoldi/sci_gateway/c/.libs/libsciarnoldi_la-sci_dneupd.o
create mode 100755 modules/arnoldi/sci_gateway/c/.libs/libsciarnoldi_la-sci_dsaupd.o
create mode 100755 modules/arnoldi/sci_gateway/c/.libs/libsciarnoldi_la-sci_dseupd.o
create mode 100755 modules/arnoldi/sci_gateway/c/.libs/libsciarnoldi_la-sci_eigs.o
create mode 100755 modules/arnoldi/sci_gateway/c/.libs/libsciarnoldi_la-sci_znaupd.o
create mode 100755 modules/arnoldi/sci_gateway/c/.libs/libsciarnoldi_la-sci_zneupd.o
create mode 100755 modules/arnoldi/sci_gateway/c/gw_arnoldi.c
create mode 100755 modules/arnoldi/sci_gateway/c/libsciarnoldi_la-gw_arnoldi.lo
create mode 100755 modules/arnoldi/sci_gateway/c/libsciarnoldi_la-sci_dnaupd.lo
create mode 100755 modules/arnoldi/sci_gateway/c/libsciarnoldi_la-sci_dneupd.lo
create mode 100755 modules/arnoldi/sci_gateway/c/libsciarnoldi_la-sci_dsaupd.lo
create mode 100755 modules/arnoldi/sci_gateway/c/libsciarnoldi_la-sci_dseupd.lo
create mode 100755 modules/arnoldi/sci_gateway/c/libsciarnoldi_la-sci_eigs.lo
create mode 100755 modules/arnoldi/sci_gateway/c/libsciarnoldi_la-sci_znaupd.lo
create mode 100755 modules/arnoldi/sci_gateway/c/libsciarnoldi_la-sci_zneupd.lo
create mode 100755 modules/arnoldi/sci_gateway/c/sci_dnaupd.c
create mode 100755 modules/arnoldi/sci_gateway/c/sci_dneupd.c
create mode 100755 modules/arnoldi/sci_gateway/c/sci_dsaupd.c
create mode 100755 modules/arnoldi/sci_gateway/c/sci_dseupd.c
create mode 100755 modules/arnoldi/sci_gateway/c/sci_eigs.c
create mode 100755 modules/arnoldi/sci_gateway/c/sci_znaupd.c
create mode 100755 modules/arnoldi/sci_gateway/c/sci_zneupd.c
(limited to 'modules/arnoldi/sci_gateway')
diff --git a/modules/arnoldi/sci_gateway/arnoldi_gateway.xml b/modules/arnoldi/sci_gateway/arnoldi_gateway.xml
new file mode 100755
index 000000000..389771c8f
--- /dev/null
+++ b/modules/arnoldi/sci_gateway/arnoldi_gateway.xml
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/modules/arnoldi/sci_gateway/c/.deps/.dirstamp b/modules/arnoldi/sci_gateway/c/.deps/.dirstamp
new file mode 100755
index 000000000..e69de29bb
diff --git a/modules/arnoldi/sci_gateway/c/.deps/libsciarnoldi_la-gw_arnoldi.Plo b/modules/arnoldi/sci_gateway/c/.deps/libsciarnoldi_la-gw_arnoldi.Plo
new file mode 100755
index 000000000..b1c9cc9a1
--- /dev/null
+++ b/modules/arnoldi/sci_gateway/c/.deps/libsciarnoldi_la-gw_arnoldi.Plo
@@ -0,0 +1,273 @@
+sci_gateway/c/libsciarnoldi_la-gw_arnoldi.lo: sci_gateway/c/gw_arnoldi.c \
+ /usr/include/stdc-predef.h /usr/include/math.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/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/string.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h /usr/include/xlocale.h \
+ /usr/include/x86_64-linux-gnu/bits/string.h \
+ /usr/include/x86_64-linux-gnu/bits/string2.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/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/string3.h includes/gw_arnoldi.h \
+ includes/dynlib_arnoldi.h ../../modules/api_scilab/includes/api_scilab.h \
+ ../../modules/core/includes/stack-c.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/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/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.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 \
+ ../../modules/core/includes/stack-def.h \
+ ../../modules/core/includes/machine.h \
+ ../../modules/core/includes/stackTypeVariable.h \
+ ../../modules/core/includes/BOOL.h \
+ ../../modules/core/includes/doublecomplex.h \
+ ../../modules/core/includes/stack1.h \
+ ../../modules/core/includes/scisparse.h \
+ ../../modules/core/includes/stack2.h \
+ ../../modules/core/includes/stack3.h \
+ ../../modules/core/includes/stack-optional.h \
+ ../../modules/core/includes/sci_types.h \
+ ../../modules/api_scilab/includes/api_common.h \
+ ../../modules/api_scilab/includes/api_scilab.h \
+ ../../modules/api_scilab/includes/api_double.h \
+ ../../modules/core/includes/doublecomplex.h \
+ ../../modules/api_scilab/includes/api_string.h /usr/include/wchar.h \
+ /usr/include/stdio.h /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar2.h \
+ ../../modules/api_scilab/includes/api_int.h \
+ ../../modules/api_scilab/includes/api_poly.h \
+ ../../modules/api_scilab/includes/api_sparse.h \
+ ../../modules/api_scilab/includes/api_boolean.h \
+ ../../modules/api_scilab/includes/api_boolean_sparse.h \
+ ../../modules/api_scilab/includes/api_pointer.h \
+ ../../modules/api_scilab/includes/api_list.h \
+ ../../modules/api_scilab/includes/api_error.h \
+ ../../modules/api_scilab/includes/api_handle.h \
+ ../../modules/api_scilab/includes/api_optional.h \
+ ../../modules/core/includes/stack-optional.h \
+ ../../modules/api_scilab/includes/api_hypermat.h \
+ ../../modules/core/includes/core_math.h \
+ ../../modules/core/includes/sci_types.h \
+ ../../modules/core/includes/MALLOC.h \
+ ../../modules/core/includes/sci_mem_alloc.h \
+ ../../modules/core/includes/callFunctionFromGateway.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/math.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/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/string.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/x86_64-linux-gnu/bits/string.h:
+
+/usr/include/x86_64-linux-gnu/bits/string2.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/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/string3.h:
+
+includes/gw_arnoldi.h:
+
+includes/dynlib_arnoldi.h:
+
+../../modules/api_scilab/includes/api_scilab.h:
+
+../../modules/core/includes/stack-c.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/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/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.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:
+
+../../modules/core/includes/stack-def.h:
+
+../../modules/core/includes/machine.h:
+
+../../modules/core/includes/stackTypeVariable.h:
+
+../../modules/core/includes/BOOL.h:
+
+../../modules/core/includes/doublecomplex.h:
+
+../../modules/core/includes/stack1.h:
+
+../../modules/core/includes/scisparse.h:
+
+../../modules/core/includes/stack2.h:
+
+../../modules/core/includes/stack3.h:
+
+../../modules/core/includes/stack-optional.h:
+
+../../modules/core/includes/sci_types.h:
+
+../../modules/api_scilab/includes/api_common.h:
+
+../../modules/api_scilab/includes/api_scilab.h:
+
+../../modules/api_scilab/includes/api_double.h:
+
+../../modules/core/includes/doublecomplex.h:
+
+../../modules/api_scilab/includes/api_string.h:
+
+/usr/include/wchar.h:
+
+/usr/include/stdio.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar2.h:
+
+../../modules/api_scilab/includes/api_int.h:
+
+../../modules/api_scilab/includes/api_poly.h:
+
+../../modules/api_scilab/includes/api_sparse.h:
+
+../../modules/api_scilab/includes/api_boolean.h:
+
+../../modules/api_scilab/includes/api_boolean_sparse.h:
+
+../../modules/api_scilab/includes/api_pointer.h:
+
+../../modules/api_scilab/includes/api_list.h:
+
+../../modules/api_scilab/includes/api_error.h:
+
+../../modules/api_scilab/includes/api_handle.h:
+
+../../modules/api_scilab/includes/api_optional.h:
+
+../../modules/core/includes/stack-optional.h:
+
+../../modules/api_scilab/includes/api_hypermat.h:
+
+../../modules/core/includes/core_math.h:
+
+../../modules/core/includes/sci_types.h:
+
+../../modules/core/includes/MALLOC.h:
+
+../../modules/core/includes/sci_mem_alloc.h:
+
+../../modules/core/includes/callFunctionFromGateway.h:
diff --git a/modules/arnoldi/sci_gateway/c/.deps/libsciarnoldi_la-sci_dnaupd.Plo b/modules/arnoldi/sci_gateway/c/.deps/libsciarnoldi_la-sci_dnaupd.Plo
new file mode 100755
index 000000000..9b41bd8b1
--- /dev/null
+++ b/modules/arnoldi/sci_gateway/c/.deps/libsciarnoldi_la-sci_dnaupd.Plo
@@ -0,0 +1,284 @@
+sci_gateway/c/libsciarnoldi_la-sci_dnaupd.lo: sci_gateway/c/sci_dnaupd.c \
+ /usr/include/stdc-predef.h /usr/include/math.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/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/string.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h /usr/include/xlocale.h \
+ /usr/include/x86_64-linux-gnu/bits/string.h \
+ /usr/include/x86_64-linux-gnu/bits/string2.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/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/string3.h \
+ ../../modules/api_scilab/includes/api_scilab.h \
+ ../../modules/core/includes/stack-c.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/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/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.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 \
+ ../../modules/core/includes/stack-def.h \
+ ../../modules/core/includes/machine.h \
+ ../../modules/core/includes/stackTypeVariable.h \
+ ../../modules/core/includes/BOOL.h \
+ ../../modules/core/includes/doublecomplex.h \
+ ../../modules/core/includes/stack1.h \
+ ../../modules/core/includes/scisparse.h \
+ ../../modules/core/includes/stack2.h \
+ ../../modules/core/includes/stack3.h \
+ ../../modules/core/includes/stack-optional.h \
+ ../../modules/core/includes/sci_types.h \
+ ../../modules/api_scilab/includes/api_common.h \
+ ../../modules/api_scilab/includes/api_scilab.h \
+ ../../modules/api_scilab/includes/api_double.h \
+ ../../modules/core/includes/doublecomplex.h \
+ ../../modules/api_scilab/includes/api_string.h /usr/include/wchar.h \
+ /usr/include/stdio.h /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar2.h \
+ ../../modules/api_scilab/includes/api_int.h \
+ ../../modules/api_scilab/includes/api_poly.h \
+ ../../modules/api_scilab/includes/api_sparse.h \
+ ../../modules/api_scilab/includes/api_boolean.h \
+ ../../modules/api_scilab/includes/api_boolean_sparse.h \
+ ../../modules/api_scilab/includes/api_pointer.h \
+ ../../modules/api_scilab/includes/api_list.h \
+ ../../modules/api_scilab/includes/api_error.h \
+ ../../modules/api_scilab/includes/api_handle.h \
+ ../../modules/api_scilab/includes/api_optional.h \
+ ../../modules/core/includes/stack-optional.h \
+ ../../modules/api_scilab/includes/api_hypermat.h \
+ ../../modules/core/includes/core_math.h \
+ ../../modules/core/includes/sci_types.h includes/gw_arnoldi.h \
+ includes/dynlib_arnoldi.h \
+ ../../modules/localization/includes/localization.h \
+ ../../modules/core/includes/machine.h /usr/include/libintl.h \
+ /usr/include/locale.h /usr/include/x86_64-linux-gnu/bits/locale.h \
+ ../../modules/output_stream/includes/Scierror.h \
+ ../../modules/output_stream/includes/do_error_number.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/math.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/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/string.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/x86_64-linux-gnu/bits/string.h:
+
+/usr/include/x86_64-linux-gnu/bits/string2.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/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/string3.h:
+
+../../modules/api_scilab/includes/api_scilab.h:
+
+../../modules/core/includes/stack-c.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/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/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.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:
+
+../../modules/core/includes/stack-def.h:
+
+../../modules/core/includes/machine.h:
+
+../../modules/core/includes/stackTypeVariable.h:
+
+../../modules/core/includes/BOOL.h:
+
+../../modules/core/includes/doublecomplex.h:
+
+../../modules/core/includes/stack1.h:
+
+../../modules/core/includes/scisparse.h:
+
+../../modules/core/includes/stack2.h:
+
+../../modules/core/includes/stack3.h:
+
+../../modules/core/includes/stack-optional.h:
+
+../../modules/core/includes/sci_types.h:
+
+../../modules/api_scilab/includes/api_common.h:
+
+../../modules/api_scilab/includes/api_scilab.h:
+
+../../modules/api_scilab/includes/api_double.h:
+
+../../modules/core/includes/doublecomplex.h:
+
+../../modules/api_scilab/includes/api_string.h:
+
+/usr/include/wchar.h:
+
+/usr/include/stdio.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar2.h:
+
+../../modules/api_scilab/includes/api_int.h:
+
+../../modules/api_scilab/includes/api_poly.h:
+
+../../modules/api_scilab/includes/api_sparse.h:
+
+../../modules/api_scilab/includes/api_boolean.h:
+
+../../modules/api_scilab/includes/api_boolean_sparse.h:
+
+../../modules/api_scilab/includes/api_pointer.h:
+
+../../modules/api_scilab/includes/api_list.h:
+
+../../modules/api_scilab/includes/api_error.h:
+
+../../modules/api_scilab/includes/api_handle.h:
+
+../../modules/api_scilab/includes/api_optional.h:
+
+../../modules/core/includes/stack-optional.h:
+
+../../modules/api_scilab/includes/api_hypermat.h:
+
+../../modules/core/includes/core_math.h:
+
+../../modules/core/includes/sci_types.h:
+
+includes/gw_arnoldi.h:
+
+includes/dynlib_arnoldi.h:
+
+../../modules/localization/includes/localization.h:
+
+../../modules/core/includes/machine.h:
+
+/usr/include/libintl.h:
+
+/usr/include/locale.h:
+
+/usr/include/x86_64-linux-gnu/bits/locale.h:
+
+../../modules/output_stream/includes/Scierror.h:
+
+../../modules/output_stream/includes/do_error_number.h:
diff --git a/modules/arnoldi/sci_gateway/c/.deps/libsciarnoldi_la-sci_dneupd.Plo b/modules/arnoldi/sci_gateway/c/.deps/libsciarnoldi_la-sci_dneupd.Plo
new file mode 100755
index 000000000..733c5b46d
--- /dev/null
+++ b/modules/arnoldi/sci_gateway/c/.deps/libsciarnoldi_la-sci_dneupd.Plo
@@ -0,0 +1,284 @@
+sci_gateway/c/libsciarnoldi_la-sci_dneupd.lo: sci_gateway/c/sci_dneupd.c \
+ /usr/include/stdc-predef.h /usr/include/math.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/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/string.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h /usr/include/xlocale.h \
+ /usr/include/x86_64-linux-gnu/bits/string.h \
+ /usr/include/x86_64-linux-gnu/bits/string2.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/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/string3.h \
+ ../../modules/api_scilab/includes/api_scilab.h \
+ ../../modules/core/includes/stack-c.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/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/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.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 \
+ ../../modules/core/includes/stack-def.h \
+ ../../modules/core/includes/machine.h \
+ ../../modules/core/includes/stackTypeVariable.h \
+ ../../modules/core/includes/BOOL.h \
+ ../../modules/core/includes/doublecomplex.h \
+ ../../modules/core/includes/stack1.h \
+ ../../modules/core/includes/scisparse.h \
+ ../../modules/core/includes/stack2.h \
+ ../../modules/core/includes/stack3.h \
+ ../../modules/core/includes/stack-optional.h \
+ ../../modules/core/includes/sci_types.h \
+ ../../modules/api_scilab/includes/api_common.h \
+ ../../modules/api_scilab/includes/api_scilab.h \
+ ../../modules/api_scilab/includes/api_double.h \
+ ../../modules/core/includes/doublecomplex.h \
+ ../../modules/api_scilab/includes/api_string.h /usr/include/wchar.h \
+ /usr/include/stdio.h /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar2.h \
+ ../../modules/api_scilab/includes/api_int.h \
+ ../../modules/api_scilab/includes/api_poly.h \
+ ../../modules/api_scilab/includes/api_sparse.h \
+ ../../modules/api_scilab/includes/api_boolean.h \
+ ../../modules/api_scilab/includes/api_boolean_sparse.h \
+ ../../modules/api_scilab/includes/api_pointer.h \
+ ../../modules/api_scilab/includes/api_list.h \
+ ../../modules/api_scilab/includes/api_error.h \
+ ../../modules/api_scilab/includes/api_handle.h \
+ ../../modules/api_scilab/includes/api_optional.h \
+ ../../modules/core/includes/stack-optional.h \
+ ../../modules/api_scilab/includes/api_hypermat.h \
+ ../../modules/core/includes/core_math.h \
+ ../../modules/core/includes/sci_types.h includes/gw_arnoldi.h \
+ includes/dynlib_arnoldi.h \
+ ../../modules/localization/includes/localization.h \
+ ../../modules/core/includes/machine.h /usr/include/libintl.h \
+ /usr/include/locale.h /usr/include/x86_64-linux-gnu/bits/locale.h \
+ ../../modules/output_stream/includes/Scierror.h \
+ ../../modules/output_stream/includes/do_error_number.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/math.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/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/string.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/x86_64-linux-gnu/bits/string.h:
+
+/usr/include/x86_64-linux-gnu/bits/string2.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/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/string3.h:
+
+../../modules/api_scilab/includes/api_scilab.h:
+
+../../modules/core/includes/stack-c.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/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/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.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:
+
+../../modules/core/includes/stack-def.h:
+
+../../modules/core/includes/machine.h:
+
+../../modules/core/includes/stackTypeVariable.h:
+
+../../modules/core/includes/BOOL.h:
+
+../../modules/core/includes/doublecomplex.h:
+
+../../modules/core/includes/stack1.h:
+
+../../modules/core/includes/scisparse.h:
+
+../../modules/core/includes/stack2.h:
+
+../../modules/core/includes/stack3.h:
+
+../../modules/core/includes/stack-optional.h:
+
+../../modules/core/includes/sci_types.h:
+
+../../modules/api_scilab/includes/api_common.h:
+
+../../modules/api_scilab/includes/api_scilab.h:
+
+../../modules/api_scilab/includes/api_double.h:
+
+../../modules/core/includes/doublecomplex.h:
+
+../../modules/api_scilab/includes/api_string.h:
+
+/usr/include/wchar.h:
+
+/usr/include/stdio.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar2.h:
+
+../../modules/api_scilab/includes/api_int.h:
+
+../../modules/api_scilab/includes/api_poly.h:
+
+../../modules/api_scilab/includes/api_sparse.h:
+
+../../modules/api_scilab/includes/api_boolean.h:
+
+../../modules/api_scilab/includes/api_boolean_sparse.h:
+
+../../modules/api_scilab/includes/api_pointer.h:
+
+../../modules/api_scilab/includes/api_list.h:
+
+../../modules/api_scilab/includes/api_error.h:
+
+../../modules/api_scilab/includes/api_handle.h:
+
+../../modules/api_scilab/includes/api_optional.h:
+
+../../modules/core/includes/stack-optional.h:
+
+../../modules/api_scilab/includes/api_hypermat.h:
+
+../../modules/core/includes/core_math.h:
+
+../../modules/core/includes/sci_types.h:
+
+includes/gw_arnoldi.h:
+
+includes/dynlib_arnoldi.h:
+
+../../modules/localization/includes/localization.h:
+
+../../modules/core/includes/machine.h:
+
+/usr/include/libintl.h:
+
+/usr/include/locale.h:
+
+/usr/include/x86_64-linux-gnu/bits/locale.h:
+
+../../modules/output_stream/includes/Scierror.h:
+
+../../modules/output_stream/includes/do_error_number.h:
diff --git a/modules/arnoldi/sci_gateway/c/.deps/libsciarnoldi_la-sci_dsaupd.Plo b/modules/arnoldi/sci_gateway/c/.deps/libsciarnoldi_la-sci_dsaupd.Plo
new file mode 100755
index 000000000..454d3d57c
--- /dev/null
+++ b/modules/arnoldi/sci_gateway/c/.deps/libsciarnoldi_la-sci_dsaupd.Plo
@@ -0,0 +1,284 @@
+sci_gateway/c/libsciarnoldi_la-sci_dsaupd.lo: sci_gateway/c/sci_dsaupd.c \
+ /usr/include/stdc-predef.h /usr/include/math.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/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/string.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h /usr/include/xlocale.h \
+ /usr/include/x86_64-linux-gnu/bits/string.h \
+ /usr/include/x86_64-linux-gnu/bits/string2.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/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/string3.h \
+ ../../modules/api_scilab/includes/api_scilab.h \
+ ../../modules/core/includes/stack-c.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/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/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.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 \
+ ../../modules/core/includes/stack-def.h \
+ ../../modules/core/includes/machine.h \
+ ../../modules/core/includes/stackTypeVariable.h \
+ ../../modules/core/includes/BOOL.h \
+ ../../modules/core/includes/doublecomplex.h \
+ ../../modules/core/includes/stack1.h \
+ ../../modules/core/includes/scisparse.h \
+ ../../modules/core/includes/stack2.h \
+ ../../modules/core/includes/stack3.h \
+ ../../modules/core/includes/stack-optional.h \
+ ../../modules/core/includes/sci_types.h \
+ ../../modules/api_scilab/includes/api_common.h \
+ ../../modules/api_scilab/includes/api_scilab.h \
+ ../../modules/api_scilab/includes/api_double.h \
+ ../../modules/core/includes/doublecomplex.h \
+ ../../modules/api_scilab/includes/api_string.h /usr/include/wchar.h \
+ /usr/include/stdio.h /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar2.h \
+ ../../modules/api_scilab/includes/api_int.h \
+ ../../modules/api_scilab/includes/api_poly.h \
+ ../../modules/api_scilab/includes/api_sparse.h \
+ ../../modules/api_scilab/includes/api_boolean.h \
+ ../../modules/api_scilab/includes/api_boolean_sparse.h \
+ ../../modules/api_scilab/includes/api_pointer.h \
+ ../../modules/api_scilab/includes/api_list.h \
+ ../../modules/api_scilab/includes/api_error.h \
+ ../../modules/api_scilab/includes/api_handle.h \
+ ../../modules/api_scilab/includes/api_optional.h \
+ ../../modules/core/includes/stack-optional.h \
+ ../../modules/api_scilab/includes/api_hypermat.h \
+ ../../modules/core/includes/core_math.h \
+ ../../modules/core/includes/sci_types.h includes/gw_arnoldi.h \
+ includes/dynlib_arnoldi.h \
+ ../../modules/localization/includes/localization.h \
+ ../../modules/core/includes/machine.h /usr/include/libintl.h \
+ /usr/include/locale.h /usr/include/x86_64-linux-gnu/bits/locale.h \
+ ../../modules/output_stream/includes/Scierror.h \
+ ../../modules/output_stream/includes/do_error_number.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/math.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/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/string.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/x86_64-linux-gnu/bits/string.h:
+
+/usr/include/x86_64-linux-gnu/bits/string2.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/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/string3.h:
+
+../../modules/api_scilab/includes/api_scilab.h:
+
+../../modules/core/includes/stack-c.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/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/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.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:
+
+../../modules/core/includes/stack-def.h:
+
+../../modules/core/includes/machine.h:
+
+../../modules/core/includes/stackTypeVariable.h:
+
+../../modules/core/includes/BOOL.h:
+
+../../modules/core/includes/doublecomplex.h:
+
+../../modules/core/includes/stack1.h:
+
+../../modules/core/includes/scisparse.h:
+
+../../modules/core/includes/stack2.h:
+
+../../modules/core/includes/stack3.h:
+
+../../modules/core/includes/stack-optional.h:
+
+../../modules/core/includes/sci_types.h:
+
+../../modules/api_scilab/includes/api_common.h:
+
+../../modules/api_scilab/includes/api_scilab.h:
+
+../../modules/api_scilab/includes/api_double.h:
+
+../../modules/core/includes/doublecomplex.h:
+
+../../modules/api_scilab/includes/api_string.h:
+
+/usr/include/wchar.h:
+
+/usr/include/stdio.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar2.h:
+
+../../modules/api_scilab/includes/api_int.h:
+
+../../modules/api_scilab/includes/api_poly.h:
+
+../../modules/api_scilab/includes/api_sparse.h:
+
+../../modules/api_scilab/includes/api_boolean.h:
+
+../../modules/api_scilab/includes/api_boolean_sparse.h:
+
+../../modules/api_scilab/includes/api_pointer.h:
+
+../../modules/api_scilab/includes/api_list.h:
+
+../../modules/api_scilab/includes/api_error.h:
+
+../../modules/api_scilab/includes/api_handle.h:
+
+../../modules/api_scilab/includes/api_optional.h:
+
+../../modules/core/includes/stack-optional.h:
+
+../../modules/api_scilab/includes/api_hypermat.h:
+
+../../modules/core/includes/core_math.h:
+
+../../modules/core/includes/sci_types.h:
+
+includes/gw_arnoldi.h:
+
+includes/dynlib_arnoldi.h:
+
+../../modules/localization/includes/localization.h:
+
+../../modules/core/includes/machine.h:
+
+/usr/include/libintl.h:
+
+/usr/include/locale.h:
+
+/usr/include/x86_64-linux-gnu/bits/locale.h:
+
+../../modules/output_stream/includes/Scierror.h:
+
+../../modules/output_stream/includes/do_error_number.h:
diff --git a/modules/arnoldi/sci_gateway/c/.deps/libsciarnoldi_la-sci_dseupd.Plo b/modules/arnoldi/sci_gateway/c/.deps/libsciarnoldi_la-sci_dseupd.Plo
new file mode 100755
index 000000000..bd7dcf7b2
--- /dev/null
+++ b/modules/arnoldi/sci_gateway/c/.deps/libsciarnoldi_la-sci_dseupd.Plo
@@ -0,0 +1,284 @@
+sci_gateway/c/libsciarnoldi_la-sci_dseupd.lo: sci_gateway/c/sci_dseupd.c \
+ /usr/include/stdc-predef.h /usr/include/math.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/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/string.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h /usr/include/xlocale.h \
+ /usr/include/x86_64-linux-gnu/bits/string.h \
+ /usr/include/x86_64-linux-gnu/bits/string2.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/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/string3.h \
+ ../../modules/api_scilab/includes/api_scilab.h \
+ ../../modules/core/includes/stack-c.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/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/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.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 \
+ ../../modules/core/includes/stack-def.h \
+ ../../modules/core/includes/machine.h \
+ ../../modules/core/includes/stackTypeVariable.h \
+ ../../modules/core/includes/BOOL.h \
+ ../../modules/core/includes/doublecomplex.h \
+ ../../modules/core/includes/stack1.h \
+ ../../modules/core/includes/scisparse.h \
+ ../../modules/core/includes/stack2.h \
+ ../../modules/core/includes/stack3.h \
+ ../../modules/core/includes/stack-optional.h \
+ ../../modules/core/includes/sci_types.h \
+ ../../modules/api_scilab/includes/api_common.h \
+ ../../modules/api_scilab/includes/api_scilab.h \
+ ../../modules/api_scilab/includes/api_double.h \
+ ../../modules/core/includes/doublecomplex.h \
+ ../../modules/api_scilab/includes/api_string.h /usr/include/wchar.h \
+ /usr/include/stdio.h /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar2.h \
+ ../../modules/api_scilab/includes/api_int.h \
+ ../../modules/api_scilab/includes/api_poly.h \
+ ../../modules/api_scilab/includes/api_sparse.h \
+ ../../modules/api_scilab/includes/api_boolean.h \
+ ../../modules/api_scilab/includes/api_boolean_sparse.h \
+ ../../modules/api_scilab/includes/api_pointer.h \
+ ../../modules/api_scilab/includes/api_list.h \
+ ../../modules/api_scilab/includes/api_error.h \
+ ../../modules/api_scilab/includes/api_handle.h \
+ ../../modules/api_scilab/includes/api_optional.h \
+ ../../modules/core/includes/stack-optional.h \
+ ../../modules/api_scilab/includes/api_hypermat.h \
+ ../../modules/core/includes/core_math.h \
+ ../../modules/core/includes/sci_types.h includes/gw_arnoldi.h \
+ includes/dynlib_arnoldi.h \
+ ../../modules/localization/includes/localization.h \
+ ../../modules/core/includes/machine.h /usr/include/libintl.h \
+ /usr/include/locale.h /usr/include/x86_64-linux-gnu/bits/locale.h \
+ ../../modules/output_stream/includes/Scierror.h \
+ ../../modules/output_stream/includes/do_error_number.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/math.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/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/string.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/x86_64-linux-gnu/bits/string.h:
+
+/usr/include/x86_64-linux-gnu/bits/string2.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/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/string3.h:
+
+../../modules/api_scilab/includes/api_scilab.h:
+
+../../modules/core/includes/stack-c.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/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/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.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:
+
+../../modules/core/includes/stack-def.h:
+
+../../modules/core/includes/machine.h:
+
+../../modules/core/includes/stackTypeVariable.h:
+
+../../modules/core/includes/BOOL.h:
+
+../../modules/core/includes/doublecomplex.h:
+
+../../modules/core/includes/stack1.h:
+
+../../modules/core/includes/scisparse.h:
+
+../../modules/core/includes/stack2.h:
+
+../../modules/core/includes/stack3.h:
+
+../../modules/core/includes/stack-optional.h:
+
+../../modules/core/includes/sci_types.h:
+
+../../modules/api_scilab/includes/api_common.h:
+
+../../modules/api_scilab/includes/api_scilab.h:
+
+../../modules/api_scilab/includes/api_double.h:
+
+../../modules/core/includes/doublecomplex.h:
+
+../../modules/api_scilab/includes/api_string.h:
+
+/usr/include/wchar.h:
+
+/usr/include/stdio.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar2.h:
+
+../../modules/api_scilab/includes/api_int.h:
+
+../../modules/api_scilab/includes/api_poly.h:
+
+../../modules/api_scilab/includes/api_sparse.h:
+
+../../modules/api_scilab/includes/api_boolean.h:
+
+../../modules/api_scilab/includes/api_boolean_sparse.h:
+
+../../modules/api_scilab/includes/api_pointer.h:
+
+../../modules/api_scilab/includes/api_list.h:
+
+../../modules/api_scilab/includes/api_error.h:
+
+../../modules/api_scilab/includes/api_handle.h:
+
+../../modules/api_scilab/includes/api_optional.h:
+
+../../modules/core/includes/stack-optional.h:
+
+../../modules/api_scilab/includes/api_hypermat.h:
+
+../../modules/core/includes/core_math.h:
+
+../../modules/core/includes/sci_types.h:
+
+includes/gw_arnoldi.h:
+
+includes/dynlib_arnoldi.h:
+
+../../modules/localization/includes/localization.h:
+
+../../modules/core/includes/machine.h:
+
+/usr/include/libintl.h:
+
+/usr/include/locale.h:
+
+/usr/include/x86_64-linux-gnu/bits/locale.h:
+
+../../modules/output_stream/includes/Scierror.h:
+
+../../modules/output_stream/includes/do_error_number.h:
diff --git a/modules/arnoldi/sci_gateway/c/.deps/libsciarnoldi_la-sci_eigs.Plo b/modules/arnoldi/sci_gateway/c/.deps/libsciarnoldi_la-sci_eigs.Plo
new file mode 100755
index 000000000..f04132610
--- /dev/null
+++ b/modules/arnoldi/sci_gateway/c/.deps/libsciarnoldi_la-sci_eigs.Plo
@@ -0,0 +1,316 @@
+sci_gateway/c/libsciarnoldi_la-sci_eigs.lo: sci_gateway/c/sci_eigs.c \
+ /usr/include/stdc-predef.h /usr/include/math.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/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/string.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h /usr/include/xlocale.h \
+ /usr/include/x86_64-linux-gnu/bits/string.h \
+ /usr/include/x86_64-linux-gnu/bits/string2.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/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/string3.h \
+ ../../modules/core/includes/stack-c.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/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/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.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 \
+ ../../modules/core/includes/stack-def.h \
+ ../../modules/core/includes/machine.h \
+ ../../modules/core/includes/stackTypeVariable.h \
+ ../../modules/core/includes/BOOL.h \
+ ../../modules/core/includes/doublecomplex.h \
+ ../../modules/core/includes/stack1.h \
+ ../../modules/core/includes/scisparse.h \
+ ../../modules/core/includes/stack2.h \
+ ../../modules/core/includes/stack3.h \
+ ../../modules/core/includes/stack-optional.h \
+ ../../modules/core/includes/sci_types.h \
+ ../../modules/core/includes/isanan.h \
+ ../../modules/core/includes/core_math.h includes/gw_arnoldi.h \
+ includes/dynlib_arnoldi.h \
+ ../../modules/localization/includes/localization.h \
+ ../../modules/core/includes/machine.h /usr/include/libintl.h \
+ /usr/include/locale.h /usr/include/x86_64-linux-gnu/bits/locale.h \
+ ../../modules/output_stream/includes/Scierror.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \
+ ../../modules/output_stream/includes/do_error_number.h \
+ ../../modules/api_scilab/includes/api_scilab.h \
+ ../../modules/api_scilab/includes/api_common.h \
+ ../../modules/api_scilab/includes/api_scilab.h \
+ ../../modules/api_scilab/includes/api_double.h \
+ ../../modules/core/includes/doublecomplex.h \
+ ../../modules/api_scilab/includes/api_string.h /usr/include/wchar.h \
+ /usr/include/stdio.h /usr/include/x86_64-linux-gnu/bits/wchar.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar2.h \
+ ../../modules/api_scilab/includes/api_int.h \
+ ../../modules/api_scilab/includes/api_poly.h \
+ ../../modules/api_scilab/includes/api_sparse.h \
+ ../../modules/api_scilab/includes/api_boolean.h \
+ ../../modules/api_scilab/includes/api_boolean_sparse.h \
+ ../../modules/api_scilab/includes/api_pointer.h \
+ ../../modules/api_scilab/includes/api_list.h \
+ ../../modules/api_scilab/includes/api_error.h \
+ ../../modules/api_scilab/includes/api_handle.h \
+ ../../modules/api_scilab/includes/api_optional.h \
+ ../../modules/core/includes/stack-optional.h \
+ ../../modules/api_scilab/includes/api_hypermat.h \
+ ../../modules/core/includes/sci_types.h /usr/include/libio.h \
+ /usr/include/_G_config.h /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \
+ /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio.h \
+ /usr/include/x86_64-linux-gnu/bits/stdio2.h \
+ ../../modules/output_stream/includes/sciprint.h \
+ ../../modules/core/includes/BOOL.h ../../modules/core/includes/MALLOC.h \
+ ../../modules/core/includes/sci_mem_alloc.h includes/eigs.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/math.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/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/string.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/x86_64-linux-gnu/bits/string.h:
+
+/usr/include/x86_64-linux-gnu/bits/string2.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/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/string3.h:
+
+../../modules/core/includes/stack-c.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/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/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.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:
+
+../../modules/core/includes/stack-def.h:
+
+../../modules/core/includes/machine.h:
+
+../../modules/core/includes/stackTypeVariable.h:
+
+../../modules/core/includes/BOOL.h:
+
+../../modules/core/includes/doublecomplex.h:
+
+../../modules/core/includes/stack1.h:
+
+../../modules/core/includes/scisparse.h:
+
+../../modules/core/includes/stack2.h:
+
+../../modules/core/includes/stack3.h:
+
+../../modules/core/includes/stack-optional.h:
+
+../../modules/core/includes/sci_types.h:
+
+../../modules/core/includes/isanan.h:
+
+../../modules/core/includes/core_math.h:
+
+includes/gw_arnoldi.h:
+
+includes/dynlib_arnoldi.h:
+
+../../modules/localization/includes/localization.h:
+
+../../modules/core/includes/machine.h:
+
+/usr/include/libintl.h:
+
+/usr/include/locale.h:
+
+/usr/include/x86_64-linux-gnu/bits/locale.h:
+
+../../modules/output_stream/includes/Scierror.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h:
+
+../../modules/output_stream/includes/do_error_number.h:
+
+../../modules/api_scilab/includes/api_scilab.h:
+
+../../modules/api_scilab/includes/api_common.h:
+
+../../modules/api_scilab/includes/api_scilab.h:
+
+../../modules/api_scilab/includes/api_double.h:
+
+../../modules/core/includes/doublecomplex.h:
+
+../../modules/api_scilab/includes/api_string.h:
+
+/usr/include/wchar.h:
+
+/usr/include/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar2.h:
+
+../../modules/api_scilab/includes/api_int.h:
+
+../../modules/api_scilab/includes/api_poly.h:
+
+../../modules/api_scilab/includes/api_sparse.h:
+
+../../modules/api_scilab/includes/api_boolean.h:
+
+../../modules/api_scilab/includes/api_boolean_sparse.h:
+
+../../modules/api_scilab/includes/api_pointer.h:
+
+../../modules/api_scilab/includes/api_list.h:
+
+../../modules/api_scilab/includes/api_error.h:
+
+../../modules/api_scilab/includes/api_handle.h:
+
+../../modules/api_scilab/includes/api_optional.h:
+
+../../modules/core/includes/stack-optional.h:
+
+../../modules/api_scilab/includes/api_hypermat.h:
+
+../../modules/core/includes/sci_types.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio_lim.h:
+
+/usr/include/x86_64-linux-gnu/bits/sys_errlist.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio.h:
+
+/usr/include/x86_64-linux-gnu/bits/stdio2.h:
+
+../../modules/output_stream/includes/sciprint.h:
+
+../../modules/core/includes/BOOL.h:
+
+../../modules/core/includes/MALLOC.h:
+
+../../modules/core/includes/sci_mem_alloc.h:
+
+includes/eigs.h:
diff --git a/modules/arnoldi/sci_gateway/c/.deps/libsciarnoldi_la-sci_znaupd.Plo b/modules/arnoldi/sci_gateway/c/.deps/libsciarnoldi_la-sci_znaupd.Plo
new file mode 100755
index 000000000..7f7ccdb44
--- /dev/null
+++ b/modules/arnoldi/sci_gateway/c/.deps/libsciarnoldi_la-sci_znaupd.Plo
@@ -0,0 +1,284 @@
+sci_gateway/c/libsciarnoldi_la-sci_znaupd.lo: sci_gateway/c/sci_znaupd.c \
+ /usr/include/stdc-predef.h /usr/include/math.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/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/string.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h /usr/include/xlocale.h \
+ /usr/include/x86_64-linux-gnu/bits/string.h \
+ /usr/include/x86_64-linux-gnu/bits/string2.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/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/string3.h \
+ ../../modules/api_scilab/includes/api_scilab.h \
+ ../../modules/core/includes/stack-c.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/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/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.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 \
+ ../../modules/core/includes/stack-def.h \
+ ../../modules/core/includes/machine.h \
+ ../../modules/core/includes/stackTypeVariable.h \
+ ../../modules/core/includes/BOOL.h \
+ ../../modules/core/includes/doublecomplex.h \
+ ../../modules/core/includes/stack1.h \
+ ../../modules/core/includes/scisparse.h \
+ ../../modules/core/includes/stack2.h \
+ ../../modules/core/includes/stack3.h \
+ ../../modules/core/includes/stack-optional.h \
+ ../../modules/core/includes/sci_types.h \
+ ../../modules/api_scilab/includes/api_common.h \
+ ../../modules/api_scilab/includes/api_scilab.h \
+ ../../modules/api_scilab/includes/api_double.h \
+ ../../modules/core/includes/doublecomplex.h \
+ ../../modules/api_scilab/includes/api_string.h /usr/include/wchar.h \
+ /usr/include/stdio.h /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar2.h \
+ ../../modules/api_scilab/includes/api_int.h \
+ ../../modules/api_scilab/includes/api_poly.h \
+ ../../modules/api_scilab/includes/api_sparse.h \
+ ../../modules/api_scilab/includes/api_boolean.h \
+ ../../modules/api_scilab/includes/api_boolean_sparse.h \
+ ../../modules/api_scilab/includes/api_pointer.h \
+ ../../modules/api_scilab/includes/api_list.h \
+ ../../modules/api_scilab/includes/api_error.h \
+ ../../modules/api_scilab/includes/api_handle.h \
+ ../../modules/api_scilab/includes/api_optional.h \
+ ../../modules/core/includes/stack-optional.h \
+ ../../modules/api_scilab/includes/api_hypermat.h \
+ ../../modules/core/includes/core_math.h \
+ ../../modules/core/includes/sci_types.h includes/gw_arnoldi.h \
+ includes/dynlib_arnoldi.h \
+ ../../modules/localization/includes/localization.h \
+ ../../modules/core/includes/machine.h /usr/include/libintl.h \
+ /usr/include/locale.h /usr/include/x86_64-linux-gnu/bits/locale.h \
+ ../../modules/output_stream/includes/Scierror.h \
+ ../../modules/output_stream/includes/do_error_number.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/math.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/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/string.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/x86_64-linux-gnu/bits/string.h:
+
+/usr/include/x86_64-linux-gnu/bits/string2.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/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/string3.h:
+
+../../modules/api_scilab/includes/api_scilab.h:
+
+../../modules/core/includes/stack-c.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/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/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.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:
+
+../../modules/core/includes/stack-def.h:
+
+../../modules/core/includes/machine.h:
+
+../../modules/core/includes/stackTypeVariable.h:
+
+../../modules/core/includes/BOOL.h:
+
+../../modules/core/includes/doublecomplex.h:
+
+../../modules/core/includes/stack1.h:
+
+../../modules/core/includes/scisparse.h:
+
+../../modules/core/includes/stack2.h:
+
+../../modules/core/includes/stack3.h:
+
+../../modules/core/includes/stack-optional.h:
+
+../../modules/core/includes/sci_types.h:
+
+../../modules/api_scilab/includes/api_common.h:
+
+../../modules/api_scilab/includes/api_scilab.h:
+
+../../modules/api_scilab/includes/api_double.h:
+
+../../modules/core/includes/doublecomplex.h:
+
+../../modules/api_scilab/includes/api_string.h:
+
+/usr/include/wchar.h:
+
+/usr/include/stdio.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar2.h:
+
+../../modules/api_scilab/includes/api_int.h:
+
+../../modules/api_scilab/includes/api_poly.h:
+
+../../modules/api_scilab/includes/api_sparse.h:
+
+../../modules/api_scilab/includes/api_boolean.h:
+
+../../modules/api_scilab/includes/api_boolean_sparse.h:
+
+../../modules/api_scilab/includes/api_pointer.h:
+
+../../modules/api_scilab/includes/api_list.h:
+
+../../modules/api_scilab/includes/api_error.h:
+
+../../modules/api_scilab/includes/api_handle.h:
+
+../../modules/api_scilab/includes/api_optional.h:
+
+../../modules/core/includes/stack-optional.h:
+
+../../modules/api_scilab/includes/api_hypermat.h:
+
+../../modules/core/includes/core_math.h:
+
+../../modules/core/includes/sci_types.h:
+
+includes/gw_arnoldi.h:
+
+includes/dynlib_arnoldi.h:
+
+../../modules/localization/includes/localization.h:
+
+../../modules/core/includes/machine.h:
+
+/usr/include/libintl.h:
+
+/usr/include/locale.h:
+
+/usr/include/x86_64-linux-gnu/bits/locale.h:
+
+../../modules/output_stream/includes/Scierror.h:
+
+../../modules/output_stream/includes/do_error_number.h:
diff --git a/modules/arnoldi/sci_gateway/c/.deps/libsciarnoldi_la-sci_zneupd.Plo b/modules/arnoldi/sci_gateway/c/.deps/libsciarnoldi_la-sci_zneupd.Plo
new file mode 100755
index 000000000..186c546ef
--- /dev/null
+++ b/modules/arnoldi/sci_gateway/c/.deps/libsciarnoldi_la-sci_zneupd.Plo
@@ -0,0 +1,284 @@
+sci_gateway/c/libsciarnoldi_la-sci_zneupd.lo: sci_gateway/c/sci_zneupd.c \
+ /usr/include/stdc-predef.h /usr/include/math.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/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/string.h \
+ /usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h /usr/include/xlocale.h \
+ /usr/include/x86_64-linux-gnu/bits/string.h \
+ /usr/include/x86_64-linux-gnu/bits/string2.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/stdlib.h \
+ /usr/include/x86_64-linux-gnu/bits/string3.h \
+ ../../modules/api_scilab/includes/api_scilab.h \
+ ../../modules/core/includes/stack-c.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/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/x86_64-linux-gnu/bits/waitflags.h \
+ /usr/include/x86_64-linux-gnu/bits/waitstatus.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 \
+ ../../modules/core/includes/stack-def.h \
+ ../../modules/core/includes/machine.h \
+ ../../modules/core/includes/stackTypeVariable.h \
+ ../../modules/core/includes/BOOL.h \
+ ../../modules/core/includes/doublecomplex.h \
+ ../../modules/core/includes/stack1.h \
+ ../../modules/core/includes/scisparse.h \
+ ../../modules/core/includes/stack2.h \
+ ../../modules/core/includes/stack3.h \
+ ../../modules/core/includes/stack-optional.h \
+ ../../modules/core/includes/sci_types.h \
+ ../../modules/api_scilab/includes/api_common.h \
+ ../../modules/api_scilab/includes/api_scilab.h \
+ ../../modules/api_scilab/includes/api_double.h \
+ ../../modules/core/includes/doublecomplex.h \
+ ../../modules/api_scilab/includes/api_string.h /usr/include/wchar.h \
+ /usr/include/stdio.h /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar.h \
+ /usr/include/x86_64-linux-gnu/bits/wchar2.h \
+ ../../modules/api_scilab/includes/api_int.h \
+ ../../modules/api_scilab/includes/api_poly.h \
+ ../../modules/api_scilab/includes/api_sparse.h \
+ ../../modules/api_scilab/includes/api_boolean.h \
+ ../../modules/api_scilab/includes/api_boolean_sparse.h \
+ ../../modules/api_scilab/includes/api_pointer.h \
+ ../../modules/api_scilab/includes/api_list.h \
+ ../../modules/api_scilab/includes/api_error.h \
+ ../../modules/api_scilab/includes/api_handle.h \
+ ../../modules/api_scilab/includes/api_optional.h \
+ ../../modules/core/includes/stack-optional.h \
+ ../../modules/api_scilab/includes/api_hypermat.h \
+ ../../modules/core/includes/core_math.h \
+ ../../modules/core/includes/sci_types.h includes/gw_arnoldi.h \
+ includes/dynlib_arnoldi.h \
+ ../../modules/localization/includes/localization.h \
+ ../../modules/core/includes/machine.h /usr/include/libintl.h \
+ /usr/include/locale.h /usr/include/x86_64-linux-gnu/bits/locale.h \
+ ../../modules/output_stream/includes/Scierror.h \
+ ../../modules/output_stream/includes/do_error_number.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/math.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/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/string.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stddef.h:
+
+/usr/include/xlocale.h:
+
+/usr/include/x86_64-linux-gnu/bits/string.h:
+
+/usr/include/x86_64-linux-gnu/bits/string2.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/stdlib.h:
+
+/usr/include/x86_64-linux-gnu/bits/string3.h:
+
+../../modules/api_scilab/includes/api_scilab.h:
+
+../../modules/core/includes/stack-c.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/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/x86_64-linux-gnu/bits/waitflags.h:
+
+/usr/include/x86_64-linux-gnu/bits/waitstatus.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:
+
+../../modules/core/includes/stack-def.h:
+
+../../modules/core/includes/machine.h:
+
+../../modules/core/includes/stackTypeVariable.h:
+
+../../modules/core/includes/BOOL.h:
+
+../../modules/core/includes/doublecomplex.h:
+
+../../modules/core/includes/stack1.h:
+
+../../modules/core/includes/scisparse.h:
+
+../../modules/core/includes/stack2.h:
+
+../../modules/core/includes/stack3.h:
+
+../../modules/core/includes/stack-optional.h:
+
+../../modules/core/includes/sci_types.h:
+
+../../modules/api_scilab/includes/api_common.h:
+
+../../modules/api_scilab/includes/api_scilab.h:
+
+../../modules/api_scilab/includes/api_double.h:
+
+../../modules/core/includes/doublecomplex.h:
+
+../../modules/api_scilab/includes/api_string.h:
+
+/usr/include/wchar.h:
+
+/usr/include/stdio.h:
+
+/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar.h:
+
+/usr/include/x86_64-linux-gnu/bits/wchar2.h:
+
+../../modules/api_scilab/includes/api_int.h:
+
+../../modules/api_scilab/includes/api_poly.h:
+
+../../modules/api_scilab/includes/api_sparse.h:
+
+../../modules/api_scilab/includes/api_boolean.h:
+
+../../modules/api_scilab/includes/api_boolean_sparse.h:
+
+../../modules/api_scilab/includes/api_pointer.h:
+
+../../modules/api_scilab/includes/api_list.h:
+
+../../modules/api_scilab/includes/api_error.h:
+
+../../modules/api_scilab/includes/api_handle.h:
+
+../../modules/api_scilab/includes/api_optional.h:
+
+../../modules/core/includes/stack-optional.h:
+
+../../modules/api_scilab/includes/api_hypermat.h:
+
+../../modules/core/includes/core_math.h:
+
+../../modules/core/includes/sci_types.h:
+
+includes/gw_arnoldi.h:
+
+includes/dynlib_arnoldi.h:
+
+../../modules/localization/includes/localization.h:
+
+../../modules/core/includes/machine.h:
+
+/usr/include/libintl.h:
+
+/usr/include/locale.h:
+
+/usr/include/x86_64-linux-gnu/bits/locale.h:
+
+../../modules/output_stream/includes/Scierror.h:
+
+../../modules/output_stream/includes/do_error_number.h:
diff --git a/modules/arnoldi/sci_gateway/c/.dirstamp b/modules/arnoldi/sci_gateway/c/.dirstamp
new file mode 100755
index 000000000..e69de29bb
diff --git a/modules/arnoldi/sci_gateway/c/.libs/libsciarnoldi_la-gw_arnoldi.o b/modules/arnoldi/sci_gateway/c/.libs/libsciarnoldi_la-gw_arnoldi.o
new file mode 100755
index 000000000..1812098de
Binary files /dev/null and b/modules/arnoldi/sci_gateway/c/.libs/libsciarnoldi_la-gw_arnoldi.o differ
diff --git a/modules/arnoldi/sci_gateway/c/.libs/libsciarnoldi_la-sci_dnaupd.o b/modules/arnoldi/sci_gateway/c/.libs/libsciarnoldi_la-sci_dnaupd.o
new file mode 100755
index 000000000..305630bc4
Binary files /dev/null and b/modules/arnoldi/sci_gateway/c/.libs/libsciarnoldi_la-sci_dnaupd.o differ
diff --git a/modules/arnoldi/sci_gateway/c/.libs/libsciarnoldi_la-sci_dneupd.o b/modules/arnoldi/sci_gateway/c/.libs/libsciarnoldi_la-sci_dneupd.o
new file mode 100755
index 000000000..b0893e97a
Binary files /dev/null and b/modules/arnoldi/sci_gateway/c/.libs/libsciarnoldi_la-sci_dneupd.o differ
diff --git a/modules/arnoldi/sci_gateway/c/.libs/libsciarnoldi_la-sci_dsaupd.o b/modules/arnoldi/sci_gateway/c/.libs/libsciarnoldi_la-sci_dsaupd.o
new file mode 100755
index 000000000..a8565b2d9
Binary files /dev/null and b/modules/arnoldi/sci_gateway/c/.libs/libsciarnoldi_la-sci_dsaupd.o differ
diff --git a/modules/arnoldi/sci_gateway/c/.libs/libsciarnoldi_la-sci_dseupd.o b/modules/arnoldi/sci_gateway/c/.libs/libsciarnoldi_la-sci_dseupd.o
new file mode 100755
index 000000000..9856e4a18
Binary files /dev/null and b/modules/arnoldi/sci_gateway/c/.libs/libsciarnoldi_la-sci_dseupd.o differ
diff --git a/modules/arnoldi/sci_gateway/c/.libs/libsciarnoldi_la-sci_eigs.o b/modules/arnoldi/sci_gateway/c/.libs/libsciarnoldi_la-sci_eigs.o
new file mode 100755
index 000000000..5414ca9fb
Binary files /dev/null and b/modules/arnoldi/sci_gateway/c/.libs/libsciarnoldi_la-sci_eigs.o differ
diff --git a/modules/arnoldi/sci_gateway/c/.libs/libsciarnoldi_la-sci_znaupd.o b/modules/arnoldi/sci_gateway/c/.libs/libsciarnoldi_la-sci_znaupd.o
new file mode 100755
index 000000000..f47ec9c91
Binary files /dev/null and b/modules/arnoldi/sci_gateway/c/.libs/libsciarnoldi_la-sci_znaupd.o differ
diff --git a/modules/arnoldi/sci_gateway/c/.libs/libsciarnoldi_la-sci_zneupd.o b/modules/arnoldi/sci_gateway/c/.libs/libsciarnoldi_la-sci_zneupd.o
new file mode 100755
index 000000000..c4c66ab43
Binary files /dev/null and b/modules/arnoldi/sci_gateway/c/.libs/libsciarnoldi_la-sci_zneupd.o differ
diff --git a/modules/arnoldi/sci_gateway/c/gw_arnoldi.c b/modules/arnoldi/sci_gateway/c/gw_arnoldi.c
new file mode 100755
index 000000000..9e127cecb
--- /dev/null
+++ b/modules/arnoldi/sci_gateway/c/gw_arnoldi.c
@@ -0,0 +1,48 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2006-2008 - INRIA - 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
+#include
+/*--------------------------------------------------------------------------*/
+#include "gw_arnoldi.h"
+#include "api_scilab.h"
+#include "MALLOC.h"
+#include "callFunctionFromGateway.h"
+/*--------------------------------------------------------------------------*/
+static gw_generic_table Tab[] =
+{
+ {sci_dsaupd, "dsaupd"},
+ {sci_dnaupd, "dnaupd"},
+ {sci_znaupd, "znaupd"},
+ {sci_dseupd, "dseupd"},
+ {sci_dneupd, "dneupd"},
+ {sci_zneupd, "zneupd"},
+ {sci_eigs, "%_eigs"}
+};
+/*--------------------------------------------------------------------------*/
+int gw_arnoldi(void)
+{
+ Rhs = Max(0, Rhs);
+
+ if (pvApiCtx == NULL)
+ {
+ pvApiCtx = (StrCtx*)MALLOC(sizeof(StrCtx));
+ }
+
+ pvApiCtx->pstName = (char*)Tab[Fin - 1].name;
+ callFunctionFromGateway(Tab, SIZE_CURRENT_GENERIC_TABLE(Tab));
+ return 0;
+}
+/*--------------------------------------------------------------------------*/
+
+
diff --git a/modules/arnoldi/sci_gateway/c/libsciarnoldi_la-gw_arnoldi.lo b/modules/arnoldi/sci_gateway/c/libsciarnoldi_la-gw_arnoldi.lo
new file mode 100755
index 000000000..c7f37eef2
--- /dev/null
+++ b/modules/arnoldi/sci_gateway/c/libsciarnoldi_la-gw_arnoldi.lo
@@ -0,0 +1,12 @@
+# sci_gateway/c/libsciarnoldi_la-gw_arnoldi.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/libsciarnoldi_la-gw_arnoldi.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/arnoldi/sci_gateway/c/libsciarnoldi_la-sci_dnaupd.lo b/modules/arnoldi/sci_gateway/c/libsciarnoldi_la-sci_dnaupd.lo
new file mode 100755
index 000000000..032579505
--- /dev/null
+++ b/modules/arnoldi/sci_gateway/c/libsciarnoldi_la-sci_dnaupd.lo
@@ -0,0 +1,12 @@
+# sci_gateway/c/libsciarnoldi_la-sci_dnaupd.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/libsciarnoldi_la-sci_dnaupd.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/arnoldi/sci_gateway/c/libsciarnoldi_la-sci_dneupd.lo b/modules/arnoldi/sci_gateway/c/libsciarnoldi_la-sci_dneupd.lo
new file mode 100755
index 000000000..06ac154ad
--- /dev/null
+++ b/modules/arnoldi/sci_gateway/c/libsciarnoldi_la-sci_dneupd.lo
@@ -0,0 +1,12 @@
+# sci_gateway/c/libsciarnoldi_la-sci_dneupd.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/libsciarnoldi_la-sci_dneupd.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/arnoldi/sci_gateway/c/libsciarnoldi_la-sci_dsaupd.lo b/modules/arnoldi/sci_gateway/c/libsciarnoldi_la-sci_dsaupd.lo
new file mode 100755
index 000000000..f675787db
--- /dev/null
+++ b/modules/arnoldi/sci_gateway/c/libsciarnoldi_la-sci_dsaupd.lo
@@ -0,0 +1,12 @@
+# sci_gateway/c/libsciarnoldi_la-sci_dsaupd.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/libsciarnoldi_la-sci_dsaupd.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/arnoldi/sci_gateway/c/libsciarnoldi_la-sci_dseupd.lo b/modules/arnoldi/sci_gateway/c/libsciarnoldi_la-sci_dseupd.lo
new file mode 100755
index 000000000..de36443f7
--- /dev/null
+++ b/modules/arnoldi/sci_gateway/c/libsciarnoldi_la-sci_dseupd.lo
@@ -0,0 +1,12 @@
+# sci_gateway/c/libsciarnoldi_la-sci_dseupd.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/libsciarnoldi_la-sci_dseupd.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/arnoldi/sci_gateway/c/libsciarnoldi_la-sci_eigs.lo b/modules/arnoldi/sci_gateway/c/libsciarnoldi_la-sci_eigs.lo
new file mode 100755
index 000000000..0efe16762
--- /dev/null
+++ b/modules/arnoldi/sci_gateway/c/libsciarnoldi_la-sci_eigs.lo
@@ -0,0 +1,12 @@
+# sci_gateway/c/libsciarnoldi_la-sci_eigs.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/libsciarnoldi_la-sci_eigs.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/arnoldi/sci_gateway/c/libsciarnoldi_la-sci_znaupd.lo b/modules/arnoldi/sci_gateway/c/libsciarnoldi_la-sci_znaupd.lo
new file mode 100755
index 000000000..78b7f23c0
--- /dev/null
+++ b/modules/arnoldi/sci_gateway/c/libsciarnoldi_la-sci_znaupd.lo
@@ -0,0 +1,12 @@
+# sci_gateway/c/libsciarnoldi_la-sci_znaupd.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/libsciarnoldi_la-sci_znaupd.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/arnoldi/sci_gateway/c/libsciarnoldi_la-sci_zneupd.lo b/modules/arnoldi/sci_gateway/c/libsciarnoldi_la-sci_zneupd.lo
new file mode 100755
index 000000000..a66db7825
--- /dev/null
+++ b/modules/arnoldi/sci_gateway/c/libsciarnoldi_la-sci_zneupd.lo
@@ -0,0 +1,12 @@
+# sci_gateway/c/libsciarnoldi_la-sci_zneupd.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/libsciarnoldi_la-sci_zneupd.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/arnoldi/sci_gateway/c/sci_dnaupd.c b/modules/arnoldi/sci_gateway/c/sci_dnaupd.c
new file mode 100755
index 000000000..7735d7cee
--- /dev/null
+++ b/modules/arnoldi/sci_gateway/c/sci_dnaupd.c
@@ -0,0 +1,395 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) ????-2008 - 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
+#include
+#include "api_scilab.h"
+#include "core_math.h"
+#include "gw_arnoldi.h"
+#include "localization.h"
+#include "Scierror.h"
+/*--------------------------------------------------------------------------*/
+extern int C2F(dnaupd)(int *ido, char *bmat, int *n, char *which, int *nev,
+ double *tol, double *resid, int *ncv, double *v,
+ int *ldv, int *iparam, int *ipntr, double *workd,
+ double *workl, int *lworkl, int *info,
+ unsigned long bmat_len, unsigned long which_len);
+/*--------------------------------------------------------------------------*/
+int sci_dnaupd(char *fname, unsigned long fname_len)
+{
+ SciErr sciErr;
+
+ int* piAddrpIDO = NULL;
+ int* pIDO = NULL;
+ int* piAddrpBMAT = NULL;
+ char* pBMAT = NULL;
+ int* piAddrpN = NULL;
+ int* pN = NULL;
+ int* piAddrpWHICH = NULL;
+ char* pWHICH = NULL;
+ int* piAddrpNEV = NULL;
+ int* pNEV = NULL;
+ int* piAddrpTOL = NULL;
+ double* pTOL = NULL;
+ int* piAddrpRESID = NULL;
+ double* pRESID = NULL;
+ int* piAddrpNCV = NULL;
+ int* pNCV = NULL;
+ int* piAddrpV = NULL;
+ double* pV = NULL;
+ int* piAddrpIPARAM = NULL;
+ int* pIPARAM = NULL;
+ int* piAddrpIPNTR = NULL;
+ int* pIPNTR = NULL;
+ int* piAddrpWORKD = NULL;
+ double* pWORKD = NULL;
+ int* piAddrpWORKL = NULL;
+ double* pWORKL = NULL;
+ int* piAddrpINFO = NULL;
+ int* pINFO = NULL;
+
+ int IDO, mIDO, nIDO;
+ int mBMAT, nBMAT;
+ int mN, nN;
+ int mWHICH, nWHICH;
+ int mNEV, nNEV;
+ int mTOL, nTOL;
+ int RESID, mRESID, nRESID;
+ int mNCV, nNCV;
+ int V, mV, nV;
+ int IPARAM, mIPARAM, nIPARAM;
+ int IPNTR, mIPNTR, nIPNTR;
+ int WORKD, mWORKD, nWORKD;
+ int WORKL, mWORKL, nWORKL;
+ int INFO, mINFO, nINFO;
+
+ int minlhs = 1, minrhs = 14, maxlhs = 8, maxrhs = 14;
+ int LDV, LWORKL;
+ int sizeWORKL = 0;
+
+ /* [IDO,RESID,V,IPARAM,IPNTR,WORKD,WORKL,INFO]=dnaupd...
+ (ID0,BMAT,N,WHICH,NEV,TOL,RESID,NCV,V,IPARAM,IPNTR,WORKD,WORKL,INFO) */
+
+ CheckInputArgument(pvApiCtx, minrhs, maxrhs);
+ CheckOutputArgument(pvApiCtx, minlhs, maxlhs);
+
+ /* VARIABLE = NUMBER */
+ sciErr = getVarAddressFromPosition(pvApiCtx, 1, &piAddrpIDO);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 1.
+ sciErr = getMatrixOfDoubleAsInteger(pvApiCtx, piAddrpIDO, &mIDO, &nIDO, &pIDO);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 1);
+ return 1;
+ }
+
+ IDO = 1;
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, 3, &piAddrpN);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 3.
+ sciErr = getMatrixOfDoubleAsInteger(pvApiCtx, piAddrpN, &mN, &nN, &pN);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 3);
+ return 1;
+ }
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, 5, &piAddrpNEV);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 5.
+ sciErr = getMatrixOfDoubleAsInteger(pvApiCtx, piAddrpNEV, &mNEV, &nNEV, &pNEV);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 5);
+ return 1;
+ }
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, 6, &piAddrpTOL);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 6.
+ sciErr = getMatrixOfDouble(pvApiCtx, piAddrpTOL, &mTOL, &nTOL, &pTOL);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 6);
+ return 1;
+ }
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, 7, &piAddrpRESID);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 7.
+ sciErr = getMatrixOfDouble(pvApiCtx, piAddrpRESID, &mRESID, &nRESID, &pRESID);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 7);
+ return 1;
+ }
+
+ RESID = 7;
+ sciErr = getVarAddressFromPosition(pvApiCtx, 8, &piAddrpNCV);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 8.
+ sciErr = getMatrixOfDoubleAsInteger(pvApiCtx, piAddrpNCV, &mNCV, &nNCV, &pNCV);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 8);
+ return 1;
+ }
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, 9, &piAddrpV);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 9.
+ sciErr = getMatrixOfDouble(pvApiCtx, piAddrpV, &mV, &nV, &pV);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 9);
+ return 1;
+ }
+
+ V = 9;
+ sciErr = getVarAddressFromPosition(pvApiCtx, 10, &piAddrpIPARAM);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 10.
+ sciErr = getMatrixOfDoubleAsInteger(pvApiCtx, piAddrpIPARAM, &mIPARAM, &nIPARAM, &pIPARAM);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 10);
+ return 1;
+ }
+
+ IPARAM = 10;
+ sciErr = getVarAddressFromPosition(pvApiCtx, 11, &piAddrpIPNTR);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 11.
+ sciErr = getMatrixOfDoubleAsInteger(pvApiCtx, piAddrpIPNTR, &mIPNTR, &nIPNTR, &pIPNTR);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 11);
+ return 1;
+ }
+
+ IPNTR = 11;
+ sciErr = getVarAddressFromPosition(pvApiCtx, 12, &piAddrpWORKD);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 12.
+ sciErr = getMatrixOfDouble(pvApiCtx, piAddrpWORKD, &mWORKD, &nWORKD, &pWORKD);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 12);
+ return 1;
+ }
+
+ WORKD = 12;
+ sciErr = getVarAddressFromPosition(pvApiCtx, 13, &piAddrpWORKL);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 13.
+ sciErr = getMatrixOfDouble(pvApiCtx, piAddrpWORKL, &mWORKL, &nWORKL, &pWORKL);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 13);
+ return 1;
+ }
+
+ WORKL = 13;
+ sciErr = getVarAddressFromPosition(pvApiCtx, 14, &piAddrpINFO);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 14.
+ sciErr = getMatrixOfDoubleAsInteger(pvApiCtx, piAddrpINFO, &mINFO, &nINFO, &pINFO);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 14);
+ return 1;
+ }
+
+ INFO = 14;
+
+ LWORKL = mWORKL * nWORKL;
+ LDV = Max(1, pN[0]);
+
+ /* Don't call dnaupd if ido == 99 */
+ if (pIDO[0] == 99)
+ {
+ Scierror(999, _("%s: the computation is already terminated\n"), fname);
+ return 1;
+ }
+
+ /* Check some sizes */
+ if (mIPARAM*nIPARAM != 11)
+ {
+ Scierror(999, _("%s: Wrong size for input argument %s: An array of size %d expected.\n"), fname, "IPARAM", 11);
+ return 1;
+ }
+
+ if (mIPNTR*nIPNTR != 14)
+ {
+ Scierror(999, _("%s: Wrong size for input argument %s: An array of size %d expected.\n"), fname, "IPNTR", 14);
+ return 1;
+ }
+
+ if (mRESID*nRESID != pN[0])
+ {
+ Scierror(999, _("%s: Wrong size for input argument %s: An array of size %d expected.\n"), fname, "RESID", *(int*)(pN));
+ return 1;
+ }
+
+ if ((mV != pN[0]) || (nV != pNCV[0]))
+ {
+ Scierror(999, _("%s: Wrong size for input argument %s: A matrix of size %dx%d expected.\n"), fname, "V", *(int*)(pN), *(int*)(pNCV));
+ return 1;
+ }
+
+ if (mWORKD * nWORKD < 3 * pN[0])
+ {
+ Scierror(999, _("%s: Wrong size for input argument %s: An array of size %d expected.\n"), fname, "WORKD", 3 * *(int*)(pN));
+ return 1;
+ }
+
+ sizeWORKL = 3 * pNCV[0] * pNCV[0] + 6 * pNCV[0];
+
+ if (mWORKL * nWORKL < sizeWORKL)
+ {
+ Scierror(999, _("%s: Wrong size for input argument %s: An array of size %d expected.\n"), fname, "WORKL", sizeWORKL);
+ return 1;
+ }
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, 2, &piAddrpBMAT);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 2.
+ if (getAllocatedSingleString(pvApiCtx, piAddrpBMAT, &pBMAT))
+ {
+ Scierror(202, _("%s: Wrong type for argument #%d: A string expected.\n"), fname, 2);
+ return 1;
+ }
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, 4, &piAddrpWHICH);
+ if (sciErr.iErr)
+ {
+ freeAllocatedSingleString(pBMAT);
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 4.
+ if (getAllocatedSingleString(pvApiCtx, piAddrpWHICH, &pWHICH))
+ {
+ freeAllocatedSingleString(pBMAT);
+ Scierror(202, _("%s: Wrong type for argument #%d: A string expected.\n"), fname, 4);
+ return 1;
+ }
+
+ C2F(dnaupd)(pIDO, pBMAT, pN,
+ pWHICH, pNEV, pTOL,
+ pRESID, pNCV, pV, &LDV,
+ pIPARAM, pIPNTR, pWORKD,
+ pWORKL, &LWORKL, pINFO, 1L, 2L);
+
+ freeAllocatedSingleString(pBMAT);
+ freeAllocatedSingleString(pWHICH);
+
+ if (*pINFO < 0)
+ {
+ C2F(errorinfo)("dnaupd", (int*)(pINFO), 6L);
+ return 0;
+ }
+
+ AssignOutputVariable(pvApiCtx, 1) = IDO;
+ AssignOutputVariable(pvApiCtx, 2) = RESID;
+ AssignOutputVariable(pvApiCtx, 3) = V;
+ AssignOutputVariable(pvApiCtx, 4) = IPARAM;
+ AssignOutputVariable(pvApiCtx, 5) = IPNTR;
+ AssignOutputVariable(pvApiCtx, 6) = WORKD;
+ AssignOutputVariable(pvApiCtx, 7) = WORKL;
+ AssignOutputVariable(pvApiCtx, 8) = INFO;
+
+ ReturnArguments(pvApiCtx);
+
+ return 0;
+}
+/*--------------------------------------------------------------------------*/
diff --git a/modules/arnoldi/sci_gateway/c/sci_dneupd.c b/modules/arnoldi/sci_gateway/c/sci_dneupd.c
new file mode 100755
index 000000000..aa70b9367
--- /dev/null
+++ b/modules/arnoldi/sci_gateway/c/sci_dneupd.c
@@ -0,0 +1,579 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) ????-2008 - 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
+#include
+#include "api_scilab.h"
+#include "core_math.h"
+#include "gw_arnoldi.h"
+#include "localization.h"
+#include "Scierror.h"
+/*--------------------------------------------------------------------------*/
+extern int C2F(dneupd)(int *rvec, char *howmny, int *select, double *dr,
+ double *di, double *z, int *ldz, double *sigmar,
+ double *sigmai, double *workev, char *bmat, int *n,
+ char *which, int *nev, double *tol, double *resid,
+ int *ncv, double *v, int *ldv, int *iparam, int *ipntr,
+ double *workd, double *workl, int *lworkl, int *info);
+/*--------------------------------------------------------------------------*/
+int sci_dneupd(char *fname, unsigned long fname_len)
+{
+ SciErr sciErr;
+
+ int* piAddrpRVEC = NULL;
+ int* pRVEC = NULL;
+ int* piAddrpHOWMANY = NULL;
+ char* pHOWMANY = NULL;
+ int* piAddrpSELECT = NULL;
+ int* pSELECT = NULL;
+ int* piAddrpDr = NULL;
+ double* pDr = NULL;
+ int* piAddrpDi = NULL;
+ double* pDi = NULL;
+ int* piAddrpZ = NULL;
+ double* pZ = NULL;
+ int* piAddrpSIGMAr = NULL;
+ double* pSIGMAr = NULL;
+ int* piAddrpSIGMAi = NULL;
+ double* pSIGMAi = NULL;
+ int* piAddrpWORKev = NULL;
+ double* pWORKev = NULL;
+ int* piAddrpBMAT = NULL;
+ char* pBMAT = NULL;
+ int* piAddrpN = NULL;
+ int* pN = NULL;
+ int* piAddrpWHICH = NULL;
+ char* pWHICH = NULL;
+ int* piAddrpNEV = NULL;
+ int* pNEV = NULL;
+ int* piAddrpTOL = NULL;
+ double* pTOL = NULL;
+ int* piAddrpRESID = NULL;
+ double* pRESID = NULL;
+ int* piAddrpNCV = NULL;
+ int* pNCV = NULL;
+ int* piAddrpV = NULL;
+ double* pV = NULL;
+ int* piAddrpIPARAM = NULL;
+ int* pIPARAM = NULL;
+ int* piAddrpIPNTR = NULL;
+ int* pIPNTR = NULL;
+ int* piAddrpWORKD = NULL;
+ double* pWORKD = NULL;
+ int* piAddrpWORKL = NULL;
+ double* pWORKL = NULL;
+ int* piAddrpINFO = NULL;
+ int* pINFO = NULL;
+
+ int mRVEC, nRVEC;
+ int mHOWMANY, nHOWMANY;
+ int mSELECT, nSELECT;
+ int Dr, mDr, nDr;
+ int Di, mDi, nDi;
+ int Z, mZ, nZ;
+ int mSIGMAr, nSIGMAr;
+ int mSIGMAi, nSIGMAi;
+ int mWORKev, nWORKev;
+ int mBMAT, nBMAT;
+ int mN, nN;
+ int mWHICH, nWHICH;
+ int mNEV, nNEV;
+ int mTOL, nTOL;
+ int RESID, mRESID, nRESID;
+ int mNCV, nNCV;
+ int V, mV, nV;
+ int IPARAM, mIPARAM, nIPARAM;
+ int IPNTR, mIPNTR, nIPNTR;
+ int WORKD, mWORKD, nWORKD;
+ int WORKL, mWORKL, nWORKL;
+ int INFO, mINFO, nINFO;
+
+ int minlhs = 1, minrhs = 22, maxlhs = 10, maxrhs = 22;
+ int LDZ, LDV, LWORKL;
+ int sizeWORKL = 0;
+
+ CheckInputArgument(pvApiCtx, minrhs, maxrhs);
+ CheckOutputArgument(pvApiCtx, minlhs, maxlhs);
+
+ /* VARIABLE = NUMBER */
+ sciErr = getVarAddressFromPosition(pvApiCtx, 1, &piAddrpRVEC);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 1.
+ sciErr = getMatrixOfDoubleAsInteger(pvApiCtx, piAddrpRVEC, &mRVEC, &nRVEC, &pRVEC);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 1);
+ return 1;
+ }
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, 3, &piAddrpSELECT);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 3.
+ sciErr = getMatrixOfDoubleAsInteger(pvApiCtx, piAddrpSELECT, &mSELECT, &nSELECT, &pSELECT);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 3);
+ return 1;
+ }
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, 4, &piAddrpDr);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 4.
+ sciErr = getMatrixOfDouble(pvApiCtx, piAddrpDr, &mDr, &nDr, &pDr);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 4);
+ return 1;
+ }
+
+ Dr = 4;
+ sciErr = getVarAddressFromPosition(pvApiCtx, 5, &piAddrpDi);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 5.
+ sciErr = getMatrixOfDouble(pvApiCtx, piAddrpDi, &mDi, &nDi, &pDi);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 5);
+ return 1;
+ }
+
+ Di = 5;
+ sciErr = getVarAddressFromPosition(pvApiCtx, 6, &piAddrpZ);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 6.
+ sciErr = getMatrixOfDouble(pvApiCtx, piAddrpZ, &mZ, &nZ, &pZ);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 6);
+ return 1;
+ }
+
+ Z = 6;
+ sciErr = getVarAddressFromPosition(pvApiCtx, 7, &piAddrpSIGMAr);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 7.
+ sciErr = getMatrixOfDouble(pvApiCtx, piAddrpSIGMAr, &mSIGMAr, &nSIGMAr, &pSIGMAr);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 7);
+ return 1;
+ }
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, 8, &piAddrpSIGMAi);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 8.
+ sciErr = getMatrixOfDouble(pvApiCtx, piAddrpSIGMAi, &mSIGMAi, &nSIGMAi, &pSIGMAi);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 8);
+ return 1;
+ }
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, 9, &piAddrpWORKev);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 9.
+ sciErr = getMatrixOfDouble(pvApiCtx, piAddrpWORKev, &mWORKev, &nWORKev, &pWORKev);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 9);
+ return 1;
+ }
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, 11, &piAddrpN);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 11.
+ sciErr = getMatrixOfDoubleAsInteger(pvApiCtx, piAddrpN, &mN, &nN, &pN);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 11);
+ return 1;
+ }
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, 13, &piAddrpNEV);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 13.
+ sciErr = getMatrixOfDoubleAsInteger(pvApiCtx, piAddrpNEV, &mNEV, &nNEV, &pNEV);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 13);
+ return 1;
+ }
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, 14, &piAddrpTOL);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 14.
+ sciErr = getMatrixOfDouble(pvApiCtx, piAddrpTOL, &mTOL, &nTOL, &pTOL);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 14);
+ return 1;
+ }
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, 15, &piAddrpRESID);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 15.
+ sciErr = getMatrixOfDouble(pvApiCtx, piAddrpRESID, &mRESID, &nRESID, &pRESID);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 15);
+ return 1;
+ }
+
+ RESID = 15;
+ sciErr = getVarAddressFromPosition(pvApiCtx, 16, &piAddrpNCV);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 16.
+ sciErr = getMatrixOfDoubleAsInteger(pvApiCtx, piAddrpNCV, &mNCV, &nNCV, &pNCV);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 16);
+ return 1;
+ }
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, 17, &piAddrpV);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 17.
+ sciErr = getMatrixOfDouble(pvApiCtx, piAddrpV, &mV, &nV, &pV);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 17);
+ return 1;
+ }
+
+ V = 17;
+ sciErr = getVarAddressFromPosition(pvApiCtx, 18, &piAddrpIPARAM);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 18.
+ sciErr = getMatrixOfDoubleAsInteger(pvApiCtx, piAddrpIPARAM, &mIPARAM, &nIPARAM, &pIPARAM);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 18);
+ return 1;
+ }
+
+ IPARAM = 18;
+ sciErr = getVarAddressFromPosition(pvApiCtx, 19, &piAddrpIPNTR);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 19.
+ sciErr = getMatrixOfDoubleAsInteger(pvApiCtx, piAddrpIPNTR, &mIPNTR, &nIPNTR, &pIPNTR);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 19);
+ return 1;
+ }
+
+ IPNTR = 19;
+ sciErr = getVarAddressFromPosition(pvApiCtx, 20, &piAddrpWORKD);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 20.
+ sciErr = getMatrixOfDouble(pvApiCtx, piAddrpWORKD, &mWORKD, &nWORKD, &pWORKD);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 20);
+ return 1;
+ }
+
+ WORKD = 20;
+ sciErr = getVarAddressFromPosition(pvApiCtx, 21, &piAddrpWORKL);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 21.
+ sciErr = getMatrixOfDouble(pvApiCtx, piAddrpWORKL, &mWORKL, &nWORKL, &pWORKL);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 21);
+ return 1;
+ }
+
+ WORKL = 21;
+ sciErr = getVarAddressFromPosition(pvApiCtx, 22, &piAddrpINFO);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 22.
+ sciErr = getMatrixOfDoubleAsInteger(pvApiCtx, piAddrpINFO, &mINFO, &nINFO, &pINFO);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 22);
+ return 1;
+ }
+
+ INFO = 22;
+
+ LWORKL = mWORKL * nWORKL;
+ LDV = Max(1, *(int*)(pN));
+ LDZ = LDV;
+
+ /* Check some sizes */
+ if (mIPARAM*nIPARAM != 11)
+ {
+ Scierror(999, _("%s: Wrong size for input argument %s: An array of size %d expected.\n"), fname, "IPARAM", 11);
+ return 0;
+ }
+
+ if (mIPNTR*nIPNTR != 14)
+ {
+ Scierror(999, _("%s: Wrong size for input argument %s: An array of size %d expected.\n"), fname, "IPNTR", 14);
+ return 0;
+ }
+
+ if (mRESID*nRESID != *(int*)(pN))
+ {
+ Scierror(999, _("%s: Wrong size for input argument %s: An array of size %d expected.\n"), fname, "RESID", *(int*)(pN));
+ return 0;
+ }
+
+ if (mWORKD * nWORKD < 3 * *(int*)(pN))
+ {
+ Scierror(999, _("%s: Wrong size for input argument %s: An array of size %d expected.\n"), fname, "WORKD", 3 * *(int*)(pN));
+ return 0;
+ }
+
+ if (mSELECT*nSELECT != *(int*)(pNCV))
+ {
+ Scierror(999, _("%s: Wrong size for input argument %s: An array of size %d expected.\n"), fname, "SELECT", *(int*)(pNCV));
+ return 0;
+ }
+
+ if (mDr*nDr != (*(int*)(pNEV) + 1))
+ {
+ Scierror(999, _("%s: Wrong size for input argument %s: An array of size %d expected.\n"), fname, "Dr", *(int*)(pNEV) + 1);
+ return 0;
+ }
+
+ if (mDi*nDi != (*(int*)(pNEV) + 1))
+ {
+ Scierror(999, _("%s: Wrong size for input argument %s: An array of size %d expected.\n"), fname, "Di", *(int*)(pNEV) + 1);
+ return 0;
+ }
+
+ if ((mZ != *(int*)(pN)) || (nZ != *(int*)(pNEV) + 1))
+ {
+ Scierror(999, _("%s: Wrong size for input argument %s: A matrix of size %dx%d expected.\n"), fname, "Z", *(int*)(pN), *(int*)(pNEV) + 1);
+ return 0;
+ }
+
+ if (mWORKev*nWORKev != 3 * *(int*)(pNCV))
+ {
+ Scierror(999, _("%s: Wrong size for input argument %s: An array of size %d expected.\n"), fname, "WORKev", 3 * *(int*)(pNCV));
+ return 0;
+ }
+
+ if ((mV != *(int*)(pN)) || (nV != *(int*)(pNCV)))
+ {
+ Scierror(999, _("%s: Wrong size for input argument %s: A matrix of size %dx%d expected.\n"), fname, "V", *(int*)(pN), *(int*)(pNCV));
+ return 0;
+ }
+
+ sizeWORKL = 3 * *(int*)(pNCV) * *(int*)(pNCV) + 6 * *(int*)(pNCV);
+
+ if ((mWORKL * nWORKL < sizeWORKL))
+ {
+ Scierror(999, _("%s: Wrong size for input argument %s: An array of size %d expected.\n"), fname, "WORKL", sizeWORKL);
+ return 0;
+ }
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, 2, &piAddrpHOWMANY);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 2.
+ if (getAllocatedSingleString(pvApiCtx, piAddrpHOWMANY, &pHOWMANY))
+ {
+ Scierror(202, _("%s: Wrong type for argument #%d: A string expected.\n"), fname, 2);
+ return 1;
+ }
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, 10, &piAddrpBMAT);
+ if (sciErr.iErr)
+ {
+ freeAllocatedSingleString(pHOWMANY);
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 10.
+ if (getAllocatedSingleString(pvApiCtx, piAddrpBMAT, &pBMAT))
+ {
+ freeAllocatedSingleString(pHOWMANY);
+ Scierror(202, _("%s: Wrong type for argument #%d: A string expected.\n"), fname, 10);
+ return 1;
+ }
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, 12, &piAddrpWHICH);
+ if (sciErr.iErr)
+ {
+ freeAllocatedSingleString(pHOWMANY);
+ freeAllocatedSingleString(pBMAT);
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 12.
+ if (getAllocatedSingleString(pvApiCtx, piAddrpWHICH, &pWHICH))
+ {
+ freeAllocatedSingleString(pHOWMANY);
+ freeAllocatedSingleString(pBMAT);
+ Scierror(202, _("%s: Wrong type for argument #%d: A string expected.\n"), fname, 12);
+ return 1;
+ }
+
+ C2F(dneupd)(pRVEC, pHOWMANY, pSELECT,
+ pDr, pDi, pZ, &LDZ,
+ pSIGMAr, pSIGMAi, pWORKev,
+ pBMAT, pN, pWHICH,
+ pNEV, pTOL, pRESID,
+ pNCV, pV, &LDV,
+ pIPARAM, pIPNTR,
+ pWORKD, pWORKL, &LWORKL,
+ pINFO);
+
+ freeAllocatedSingleString(pHOWMANY);
+ freeAllocatedSingleString(pBMAT);
+ freeAllocatedSingleString(pWHICH);
+
+ if (pINFO[0] < 0)
+ {
+ C2F(errorinfo)("dneupd", (int*)(pINFO), 6L);
+ return 0;
+ }
+
+ AssignOutputVariable(pvApiCtx, 1) = Dr;
+ AssignOutputVariable(pvApiCtx, 2) = Di;
+ AssignOutputVariable(pvApiCtx, 3) = Z;
+ AssignOutputVariable(pvApiCtx, 4) = RESID;
+ AssignOutputVariable(pvApiCtx, 5) = V;
+ AssignOutputVariable(pvApiCtx, 6) = IPARAM;
+ AssignOutputVariable(pvApiCtx, 7) = IPNTR;
+ AssignOutputVariable(pvApiCtx, 8) = WORKD;
+ AssignOutputVariable(pvApiCtx, 9) = WORKL;
+ AssignOutputVariable(pvApiCtx, 10) = INFO;
+
+ ReturnArguments(pvApiCtx);
+
+ return 0;
+}
+/*--------------------------------------------------------------------------*/
diff --git a/modules/arnoldi/sci_gateway/c/sci_dsaupd.c b/modules/arnoldi/sci_gateway/c/sci_dsaupd.c
new file mode 100755
index 000000000..c707950ce
--- /dev/null
+++ b/modules/arnoldi/sci_gateway/c/sci_dsaupd.c
@@ -0,0 +1,395 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) ????-2008 - 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
+#include
+#include "api_scilab.h"
+#include "core_math.h"
+#include "gw_arnoldi.h"
+#include "localization.h"
+#include "Scierror.h"
+/*--------------------------------------------------------------------------*/
+extern int C2F(dsaupd)(int *ido, char *bmat, int *n, char *which, int *nev,
+ double *tol, double *resid, int *ncv, double *v,
+ int *ldv, int *iparam, int *ipntr, double *workd,
+ double *workl, int *lworkl, int *info);
+/*--------------------------------------------------------------------------*/
+int sci_dsaupd(char *fname, unsigned long fname_len)
+{
+ SciErr sciErr;
+
+ int* piAddrpIDO = NULL;
+ int* pIDO = NULL;
+ int* piAddrpBMAT = NULL;
+ char* pBMAT = NULL;
+ int* piAddrpN = NULL;
+ int* pN = NULL;
+ int* piAddrpWHICH = NULL;
+ char* pWHICH = NULL;
+ int* piAddrpNEV = NULL;
+ int* pNEV = NULL;
+ int* piAddrpTOL = NULL;
+ double* pTOL = NULL;
+ int* piAddrpRESID = NULL;
+ double* pRESID = NULL;
+ int* piAddrpNCV = NULL;
+ int* pNCV = NULL;
+ int* piAddrpV = NULL;
+ double* pV = NULL;
+ int* piAddrpIPARAM = NULL;
+ int* pIPARAM = NULL;
+ int* piAddrpIPNTR = NULL;
+ int* pIPNTR = NULL;
+ int* piAddrpWORKD = NULL;
+ double* pWORKD = NULL;
+ int* piAddrpWORKL = NULL;
+ double* pWORKL = NULL;
+ int* piAddrpINFO = NULL;
+ int* pINFO = NULL;
+
+ int IDO, mIDO, nIDO;
+ int mBMAT, nBMAT;
+ int mN, nN;
+ int mWHICH, nWHICH;
+ int mNEV, nNEV;
+ int mTOL, nTOL;
+ int RESID, mRESID, nRESID;
+ int mNCV, nNCV;
+ int V, mV, nV;
+ int IPARAM, mIPARAM, nIPARAM;
+ int IPNTR, mIPNTR, nIPNTR;
+ int WORKD, mWORKD, nWORKD;
+ int WORKL, mWORKL, nWORKL;
+ int INFO, mINFO, nINFO;
+
+ int minlhs = 1, minrhs = 14, maxlhs = 8, maxrhs = 14;
+ int LDV, LWORKL;
+ int sizeWORKL = 0;
+
+ /* [IDO,RESID,V,IPARAM,IPNTR,WORKD,WORKL,INFO]=dsaupd...
+ (ID0,BMAT,N,WHICH,NEV,TOL,RESID,NCV,V,IPARAM,IPNTR,WORKD,WORKL,INFO) */
+
+ CheckInputArgument(pvApiCtx, minrhs, maxrhs);
+ CheckOutputArgument(pvApiCtx, minlhs, maxlhs);
+
+ /* VARIABLE = NUMBER */
+ sciErr = getVarAddressFromPosition(pvApiCtx, 1, &piAddrpIDO);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 1.
+ sciErr = getMatrixOfDoubleAsInteger(pvApiCtx, piAddrpIDO, &mIDO, &nIDO, &pIDO);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 1);
+ return 1;
+ }
+
+ IDO = 1;
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, 3, &piAddrpN);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 3.
+ sciErr = getMatrixOfDoubleAsInteger(pvApiCtx, piAddrpN, &mN, &nN, &pN);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 3);
+ return 1;
+ }
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, 5, &piAddrpNEV);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 5.
+ sciErr = getMatrixOfDoubleAsInteger(pvApiCtx, piAddrpNEV, &mNEV, &nNEV, &pNEV);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 5);
+ return 1;
+ }
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, 6, &piAddrpTOL);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 6.
+ sciErr = getMatrixOfDouble(pvApiCtx, piAddrpTOL, &mTOL, &nTOL, &pTOL);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 6);
+ return 1;
+ }
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, 7, &piAddrpRESID);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 7.
+ sciErr = getMatrixOfDouble(pvApiCtx, piAddrpRESID, &mRESID, &nRESID, &pRESID);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 7);
+ return 1;
+ }
+
+ RESID = 7;
+ sciErr = getVarAddressFromPosition(pvApiCtx, 8, &piAddrpNCV);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 8.
+ sciErr = getMatrixOfDoubleAsInteger(pvApiCtx, piAddrpNCV, &mNCV, &nNCV, &pNCV);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 8);
+ return 1;
+ }
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, 9, &piAddrpV);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 9.
+ sciErr = getMatrixOfDouble(pvApiCtx, piAddrpV, &mV, &nV, &pV);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 9);
+ return 1;
+ }
+
+ V = 9;
+ sciErr = getVarAddressFromPosition(pvApiCtx, 10, &piAddrpIPARAM);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 10.
+ sciErr = getMatrixOfDoubleAsInteger(pvApiCtx, piAddrpIPARAM, &mIPARAM, &nIPARAM, &pIPARAM);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 10);
+ return 1;
+ }
+
+ IPARAM = 10;
+ sciErr = getVarAddressFromPosition(pvApiCtx, 11, &piAddrpIPNTR);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 11.
+ sciErr = getMatrixOfDoubleAsInteger(pvApiCtx, piAddrpIPNTR, &mIPNTR, &nIPNTR, &pIPNTR);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 11);
+ return 1;
+ }
+
+ IPNTR = 11;
+ sciErr = getVarAddressFromPosition(pvApiCtx, 12, &piAddrpWORKD);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 12.
+ sciErr = getMatrixOfDouble(pvApiCtx, piAddrpWORKD, &mWORKD, &nWORKD, &pWORKD);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 12);
+ return 1;
+ }
+
+ WORKD = 12;
+ sciErr = getVarAddressFromPosition(pvApiCtx, 13, &piAddrpWORKL);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 13.
+ sciErr = getMatrixOfDouble(pvApiCtx, piAddrpWORKL, &mWORKL, &nWORKL, &pWORKL);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 13);
+ return 1;
+ }
+
+ WORKL = 13;
+ sciErr = getVarAddressFromPosition(pvApiCtx, 14, &piAddrpINFO);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 14.
+ sciErr = getMatrixOfDoubleAsInteger(pvApiCtx, piAddrpINFO, &mINFO, &nINFO, &pINFO);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 14);
+ return 1;
+ }
+
+ INFO = 14;
+
+ LWORKL = mWORKL * nWORKL;
+ LDV = Max(1, pN[0]);
+
+ /* Don't call dnaupd if ido == 99 */
+ if (pIDO[0] == 99)
+ {
+ Scierror(999, _("%s: Wrong size for input argument %s: An array of size %d expected.\n"), fname);
+ return 1;
+ }
+
+ /* Check some sizes */
+ if (mIPARAM*nIPARAM != 11)
+ {
+ Scierror(999, _("%s: Wrong size for input argument %s: An array of size %d expected.\n"), fname, "IPARAM", 11);
+ return 1;
+ }
+
+ if (mIPNTR*nIPNTR != 14)
+ {
+ Scierror(999, _("%s: Wrong size for input argument %s: An array of size %d expected.\n"), fname, "IPNTR", 14);
+ return 1;
+ }
+
+ if (mRESID*nRESID != pN[0])
+ {
+ Scierror(999, _("%s: Wrong size for input argument %s: An array of size %d expected.\n"), fname, "RESID", pN[0]);
+ return 1;
+ }
+
+ if ((mV != pN[0]) || (nV != pNCV[0]))
+ {
+ Scierror(999, _("%s: Wrong size for input argument %s: A matrix of size %dx%d expected.\n"), fname, "V", pN[0], pNCV[0]);
+ return 1;
+ }
+
+ if (mWORKD * nWORKD < 3 * pN[0])
+ {
+ Scierror(999, _("%s: Wrong size for input argument %s: An array of size %d expected.\n"), fname, "WORKD", 3 * pN[0]);
+ return 1;
+ }
+
+ sizeWORKL = pNCV[0] * pNCV[0] + 8 * pNCV[0];
+
+ if (mWORKL * nWORKL < sizeWORKL)
+ {
+ Scierror(999, _("%s: Wrong size for input argument %s: An array of size %d expected.\n"), fname, "WORKL", sizeWORKL);
+ return 1;
+ }
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, 2, &piAddrpBMAT);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 2.
+ if (getAllocatedSingleString(pvApiCtx, piAddrpBMAT, &pBMAT))
+ {
+ Scierror(202, _("%s: Wrong type for argument #%d: A string expected.\n"), fname, 2);
+ return 1;
+ }
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, 4, &piAddrpWHICH);
+ if (sciErr.iErr)
+ {
+ freeAllocatedSingleString(pBMAT);
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 4.
+ if (getAllocatedSingleString(pvApiCtx, piAddrpWHICH, &pWHICH))
+ {
+ freeAllocatedSingleString(pBMAT);
+ Scierror(202, _("%s: Wrong type for argument #%d: A string expected.\n"), fname, 4);
+ return 1;
+ }
+
+
+ C2F(dsaupd)(pIDO, pBMAT, pN,
+ pWHICH, pNEV, pTOL,
+ pRESID, pNCV, pV, &LDV,
+ pIPARAM, pIPNTR, pWORKD,
+ pWORKL, &LWORKL, pINFO);
+
+ freeAllocatedSingleString(pBMAT);
+ freeAllocatedSingleString(pWHICH);
+
+ if (pINFO[0] < 0)
+ {
+ C2F(errorinfo)("dsaupd", (int*)(pINFO), 6L);
+ return 0;
+ }
+
+ AssignOutputVariable(pvApiCtx, 1) = IDO;
+ AssignOutputVariable(pvApiCtx, 2) = RESID;
+ AssignOutputVariable(pvApiCtx, 3) = V;
+ AssignOutputVariable(pvApiCtx, 4) = IPARAM;
+ AssignOutputVariable(pvApiCtx, 5) = IPNTR;
+ AssignOutputVariable(pvApiCtx, 6) = WORKD;
+ AssignOutputVariable(pvApiCtx, 7) = WORKL;
+ AssignOutputVariable(pvApiCtx, 8) = INFO;
+
+ ReturnArguments(pvApiCtx);
+
+ return 0;
+}
+/*--------------------------------------------------------------------------*/
diff --git a/modules/arnoldi/sci_gateway/c/sci_dseupd.c b/modules/arnoldi/sci_gateway/c/sci_dseupd.c
new file mode 100755
index 000000000..ed316d83c
--- /dev/null
+++ b/modules/arnoldi/sci_gateway/c/sci_dseupd.c
@@ -0,0 +1,514 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) ????-2008 - 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
+#include
+#include "api_scilab.h"
+#include "core_math.h"
+#include "gw_arnoldi.h"
+#include "localization.h"
+#include "Scierror.h"
+/*--------------------------------------------------------------------------*/
+extern int C2F(dseupd)(int *rvec, char *howmny, int *select, double *d,
+ double *z, int *ldz, double *sigma, char *bmat,
+ int *n, char *which, int *nev , double *tol,
+ double *resid, int *ncv, double *v , int *ldv,
+ int *iparam, int *ipntr, double *workd, double *workl,
+ int *lworkl, int *info, unsigned long rvec_length,
+ unsigned long howmany_length,
+ unsigned long bmat_length, unsigned long which_len);
+/*--------------------------------------------------------------------------*/
+int sci_dseupd(char *fname, unsigned long fname_len)
+{
+ SciErr sciErr;
+
+ int* piAddrpRVEC = NULL;
+ int* pRVEC = NULL;
+ int* piAddrpHOWMANY = NULL;
+ char* pHOWMANY = NULL;
+ int* piAddrpSELECT = NULL;
+ int* pSELECT = NULL;
+ int* piAddrpD = NULL;
+ double* pD = NULL;
+ int* piAddrpZ = NULL;
+ double* pZ = NULL;
+ int* piAddrpSIGMA = NULL;
+ double* pSIGMA = NULL;
+ int* piAddrpBMAT = NULL;
+ char* pBMAT = NULL;
+ int* piAddrpN = NULL;
+ int* pN = NULL;
+ int* piAddrpWHICH = NULL;
+ char* pWHICH = NULL;
+ int* piAddrpNEV = NULL;
+ int* pNEV = NULL;
+ int* piAddrpTOL = NULL;
+ double* pTOL = NULL;
+ int* piAddrpRESID = NULL;
+ double* pRESID = NULL;
+ int* piAddrpNCV = NULL;
+ int* pNCV = NULL;
+ int* piAddrpV = NULL;
+ double* pV = NULL;
+ int* piAddrpIPARAM = NULL;
+ int* pIPARAM = NULL;
+ int* piAddrpIPNTR = NULL;
+ int* pIPNTR = NULL;
+ int* piAddrpWORKD = NULL;
+ double* pWORKD = NULL;
+ int* piAddrpWORKL = NULL;
+ double* pWORKL = NULL;
+ int* piAddrpINFO = NULL;
+ int* pINFO = NULL;
+
+ int mRVEC, nRVEC;
+ int mHOWMANY, nHOWMANY;
+ int mSELECT, nSELECT;
+ int D, mD, nD;
+ int Z, mZ, nZ;
+ int mSIGMA, nSIGMA;
+ int mBMAT, nBMAT;
+ int mN, nN;
+ int mWHICH, nWHICH;
+ int mNEV, nNEV;
+ int mTOL, nTOL;
+ int RESID, mRESID, nRESID;
+ int mNCV, nNCV;
+ int V, mV, nV;
+ int IPARAM, mIPARAM, nIPARAM;
+ int IPNTR, mIPNTR, nIPNTR;
+ int WORKD, mWORKD, nWORKD;
+ int WORKL, mWORKL, nWORKL;
+ int INFO, mINFO, nINFO;
+
+ int minlhs = 1, minrhs = 19, maxlhs = 9, maxrhs = 19;
+ int LDZ, LDV, LWORKL;
+ int sizeWORKL = 0;
+
+ /* [D,Z,RESID,V,IPARAM,IPNTR,WORKD,WORKL,INFO]=dseupd...
+ (RVEC,HOWMANY,SELECT,D,Z,SIGMA,BMAT,N,WHICH,NEV,TOL,RESID,NCV,V,IPARAM,IPNTR,WORKD,WORKL,INFO) */
+
+ CheckInputArgument(pvApiCtx, minrhs, maxrhs);
+ CheckOutputArgument(pvApiCtx, minlhs, maxlhs);
+
+ /* VARIABLE = NUMBER */
+ sciErr = getVarAddressFromPosition(pvApiCtx, 1, &piAddrpRVEC);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 1.
+ sciErr = getMatrixOfDoubleAsInteger(pvApiCtx, piAddrpRVEC, &mRVEC, &nRVEC, &pRVEC);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 1);
+ return 1;
+ }
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, 3, &piAddrpSELECT);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 3.
+ sciErr = getMatrixOfDoubleAsInteger(pvApiCtx, piAddrpSELECT, &mSELECT, &nSELECT, &pSELECT);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 3);
+ return 1;
+ }
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, 4, &piAddrpD);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 4.
+ sciErr = getMatrixOfDouble(pvApiCtx, piAddrpD, &mD, &nD, &pD);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 4);
+ return 1;
+ }
+
+ D = 4;
+ sciErr = getVarAddressFromPosition(pvApiCtx, 5, &piAddrpZ);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 5.
+ sciErr = getMatrixOfDouble(pvApiCtx, piAddrpZ, &mZ, &nZ, &pZ);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 5);
+ return 1;
+ }
+
+ Z = 5;
+ sciErr = getVarAddressFromPosition(pvApiCtx, 6, &piAddrpSIGMA);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 6.
+ sciErr = getMatrixOfDouble(pvApiCtx, piAddrpSIGMA, &mSIGMA, &nSIGMA, &pSIGMA);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 6);
+ return 1;
+ }
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, 8, &piAddrpN);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 8.
+ sciErr = getMatrixOfDoubleAsInteger(pvApiCtx, piAddrpN, &mN, &nN, &pN);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 8);
+ return 1;
+ }
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, 10, &piAddrpNEV);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 10.
+ sciErr = getMatrixOfDoubleAsInteger(pvApiCtx, piAddrpNEV, &mNEV, &nNEV, &pNEV);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 10);
+ return 1;
+ }
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, 11, &piAddrpTOL);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 11.
+ sciErr = getMatrixOfDouble(pvApiCtx, piAddrpTOL, &mTOL, &nTOL, &pTOL);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 11);
+ return 1;
+ }
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, 12, &piAddrpRESID);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 12.
+ sciErr = getMatrixOfDouble(pvApiCtx, piAddrpRESID, &mRESID, &nRESID, &pRESID);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 12);
+ return 1;
+ }
+
+ RESID = 12;
+ sciErr = getVarAddressFromPosition(pvApiCtx, 13, &piAddrpNCV);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 13.
+ sciErr = getMatrixOfDoubleAsInteger(pvApiCtx, piAddrpNCV, &mNCV, &nNCV, &pNCV);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 13);
+ return 1;
+ }
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, 14, &piAddrpV);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 14.
+ sciErr = getMatrixOfDouble(pvApiCtx, piAddrpV, &mV, &nV, &pV);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 14);
+ return 1;
+ }
+
+ V = 14;
+ sciErr = getVarAddressFromPosition(pvApiCtx, 15, &piAddrpIPARAM);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 15.
+ sciErr = getMatrixOfDoubleAsInteger(pvApiCtx, piAddrpIPARAM, &mIPARAM, &nIPARAM, &pIPARAM);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 15);
+ return 1;
+ }
+
+ IPARAM = 15;
+ sciErr = getVarAddressFromPosition(pvApiCtx, 16, &piAddrpIPNTR);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 16.
+ sciErr = getMatrixOfDoubleAsInteger(pvApiCtx, piAddrpIPNTR, &mIPNTR, &nIPNTR, &pIPNTR);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 16);
+ return 1;
+ }
+
+ IPNTR = 16;
+ sciErr = getVarAddressFromPosition(pvApiCtx, 17, &piAddrpWORKD);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 17.
+ sciErr = getMatrixOfDouble(pvApiCtx, piAddrpWORKD, &mWORKD, &nWORKD, &pWORKD);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 17);
+ return 1;
+ }
+
+ WORKD = 17;
+ sciErr = getVarAddressFromPosition(pvApiCtx, 18, &piAddrpWORKL);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 18.
+ sciErr = getMatrixOfDouble(pvApiCtx, piAddrpWORKL, &mWORKL, &nWORKL, &pWORKL);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 18);
+ return 1;
+ }
+
+ WORKL = 18;
+ sciErr = getVarAddressFromPosition(pvApiCtx, 19, &piAddrpINFO);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 19.
+ sciErr = getMatrixOfDoubleAsInteger(pvApiCtx, piAddrpINFO, &mINFO, &nINFO, &pINFO);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 19);
+ return 1;
+ }
+
+ INFO = 19;
+
+ LWORKL = mWORKL * nWORKL;
+ LDV = Max(1, pN[0]);
+ LDZ = LDV;
+
+ /* Check some sizes */
+ if (mIPARAM*nIPARAM != 11)
+ {
+ Scierror(999, _("%s: Wrong size for input argument %s: An array of size %d expected.\n"), fname, "IPARAM", 11);
+ return 1;
+ }
+
+ if (mIPNTR*nIPNTR != 14)
+ {
+ Scierror(999, _("%s: Wrong size for input argument %s: An array of size %d expected.\n"), fname, "IPNTR", 14);
+ return 1;
+ }
+
+ if (mRESID*nRESID != pN[0])
+ {
+ Scierror(999, _("%s: Wrong size for input argument %s: An array of size %d expected.\n"), fname, "RESID", pN[0]);
+ return 1;
+ }
+
+ if (mWORKD * nWORKD < 3 * pN[0])
+ {
+ Scierror(999, _("%s: Wrong size for input argument %s: An array of size %d expected.\n"), fname, "WORKD", 3 * pN[0]);
+ return 1;
+ }
+
+ if (mSELECT*nSELECT != pNCV[0])
+ {
+ Scierror(999, _("%s: Wrong size for input argument %s: An array of size %d expected.\n"), fname, "SELECT", pNCV[0]);
+ return 1;
+ }
+
+ if (mD*nD != (pNEV[0]))
+ {
+ Scierror(999, _("%s: Wrong size for input argument %s: An array of size %d expected.\n"), fname, "D", pNEV[0]);
+ return 1;
+ }
+
+ if ((mZ != pN[0]) || (nZ != pNEV[0]))
+ {
+ Scierror(999, _("%s: Wrong size for input argument %s: A matrix of size %dx%d expected.\n"), fname, "Z", pN[0], pNEV[0]);
+ return 1;
+ }
+
+ if ((mV != pN[0]) || (nV != pNCV[0]))
+ {
+ Scierror(999, _("%s: Wrong size for input argument %s: A matrix of size %dx%d expected.\n"), fname, "V", pN[0], pNCV[0]);
+ return 1;
+ }
+
+ sizeWORKL = pNCV[0] * pNCV[0] + 8 * pNCV[0];
+
+ if ((mWORKL * nWORKL < sizeWORKL))
+ {
+ Scierror(999, _("%s: Wrong size for input argument %s: An array of size %d expected.\n"), fname, "WORKL", sizeWORKL);
+ return 1;
+ }
+
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, 2, &piAddrpHOWMANY);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 2.
+ if (getAllocatedSingleString(pvApiCtx, piAddrpHOWMANY, &pHOWMANY))
+ {
+ Scierror(202, _("%s: Wrong type for argument #%d: A string expected.\n"), fname, 2);
+ return 1;
+ }
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, 7, &piAddrpBMAT);
+ if (sciErr.iErr)
+ {
+ freeAllocatedSingleString(pHOWMANY);
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 7.
+ if (getAllocatedSingleString(pvApiCtx, piAddrpBMAT, &pBMAT))
+ {
+ freeAllocatedSingleString(pHOWMANY);
+ Scierror(202, _("%s: Wrong type for argument #%d: A string expected.\n"), fname, 7);
+ return 1;
+ }
+
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, 9, &piAddrpWHICH);
+ if (sciErr.iErr)
+ {
+ freeAllocatedSingleString(pBMAT);
+ freeAllocatedSingleString(pHOWMANY);
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 9.
+ if (getAllocatedSingleString(pvApiCtx, piAddrpWHICH, &pWHICH))
+ {
+ freeAllocatedSingleString(pBMAT);
+ freeAllocatedSingleString(pHOWMANY);
+ Scierror(202, _("%s: Wrong type for argument #%d: A string expected.\n"), fname, 9);
+ return 1;
+ }
+
+ C2F(dseupd)(pRVEC, pHOWMANY, pSELECT,
+ pD, pZ, &LDZ,
+ pSIGMA, pBMAT, pN, pWHICH,
+ pNEV, pTOL, pRESID,
+ pNCV, pV, &LDV,
+ pIPARAM, pIPNTR,
+ pWORKD, pWORKL, &LWORKL,
+ pINFO, 1L, 1L, 1L, 2L);
+
+ freeAllocatedSingleString(pHOWMANY);
+ freeAllocatedSingleString(pBMAT);
+
+ if (pINFO[0] < 0)
+ {
+ C2F(errorinfo)("dseupd", pINFO, 6L);
+ return 0;
+ }
+
+ AssignOutputVariable(pvApiCtx, 1) = D;
+ AssignOutputVariable(pvApiCtx, 2) = Z;
+ AssignOutputVariable(pvApiCtx, 3) = RESID;
+ AssignOutputVariable(pvApiCtx, 4) = V;
+ AssignOutputVariable(pvApiCtx, 5) = IPARAM;
+ AssignOutputVariable(pvApiCtx, 6) = IPNTR;
+ AssignOutputVariable(pvApiCtx, 7) = WORKD;
+ AssignOutputVariable(pvApiCtx, 8) = WORKL;
+ AssignOutputVariable(pvApiCtx, 9) = INFO;
+
+ ReturnArguments(pvApiCtx);
+
+ return 0;
+}
+/*--------------------------------------------------------------------------*/
+
diff --git a/modules/arnoldi/sci_gateway/c/sci_eigs.c b/modules/arnoldi/sci_gateway/c/sci_eigs.c
new file mode 100755
index 000000000..99b425254
--- /dev/null
+++ b/modules/arnoldi/sci_gateway/c/sci_eigs.c
@@ -0,0 +1,841 @@
+/*
+* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+* Copyright (C) 2012 - Scilab Enterprises - Adeline CARNIS
+*
+* 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
+#include
+#include "stack-c.h"
+#include "isanan.h"
+#include "core_math.h"
+#include "gw_arnoldi.h"
+#include "localization.h"
+#include "Scierror.h"
+#include "api_scilab.h"
+#include "stdio.h"
+#include "stdlib.h"
+#include "sciprint.h"
+#include "doublecomplex.h"
+#include "MALLOC.h"
+#include "eigs.h"
+
+int sci_eigs(char *fname, unsigned long fname_len)
+{
+ SciErr sciErr;
+
+ int *piAddressVarOne = NULL;
+ int iRowsOne = 0;
+ int iColsOne = 0;
+ double elemt1 = 0;
+ double elemt2 = 0;
+ double* Areal = NULL;
+ doublecomplex* Acplx = NULL;
+ int Asym = 1;
+ int Acomplex = 0;
+ int N = 0;
+
+ int *piAddressVarTwo = NULL;
+ int iTypeVarTwo = 0;
+ int iRowsTwo = 0;
+ int iColsTwo = 0;
+ double* Breal = NULL;
+ doublecomplex* Bcplx = NULL;
+ int Bcomplex = 0;
+ int matB = 0;
+
+ int *piAddressVarThree = NULL;
+ double dblNEV = 0;
+ int iNEV = 0;
+
+ int *piAddressVarFour = NULL;
+ int iTypeVarFour = 0;
+ int iRowsFour = 0;
+ int iColsFour = 0;
+ int iLen = 0;
+ char* pstData = NULL;
+ doublecomplex SIGMA;
+
+ int *piAddressVarFive = NULL;
+ double dblMAXITER = 0;
+
+ int *piAddressVarSix = NULL;
+ double dblTOL = 0;
+
+ int *piAddressVarSeven = NULL;
+ int TypeVarSeven = 0;
+ int RowsSeven = 0;
+ int ColsSeven = 0;
+ double* dblNCV = NULL;
+
+ int *piAddressVarEight = NULL;
+ int iTypeVarEight = 0;
+ double dblCHOLB = 0;
+ int iCHOLB = 0;
+
+ int *piAddressVarNine = NULL;
+ int iTypeVarNine = 0;
+ int iRowsNine = 0;
+ int iColsNine = 0;
+ double* RESID = NULL;
+ doublecomplex* RESIDC = NULL;
+
+ int *piAddressVarTen = NULL;
+ int iINFO = 0;
+ int RVEC = 0;
+ // Output arguments
+ double* eigenvalue = NULL;
+ double* eigenvector = NULL;
+ doublecomplex* eigenvalueC = NULL;
+ doublecomplex* eigenvectorC = NULL;
+
+ double* mat_eigenvalue = NULL;
+ doublecomplex* mat_eigenvalueC = NULL;
+ int INFO_EUPD = 0;
+ int error = 0;
+
+ int iErr = 0;
+ int i = 0;
+ int j = 0;
+
+ CheckInputArgument(pvApiCtx, 1, 10);
+ CheckOutputArgument(pvApiCtx, 0, 2);
+
+ /****************************************
+ * First variable : A *
+ *****************************************/
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, 1, &piAddressVarOne);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(999, _("%s: Can not read input argument #%d.\n"), fname, 1);
+ return 1;
+ }
+
+ sciErr = getVarDimension(pvApiCtx, piAddressVarOne, &iRowsOne, &iColsOne);
+ //check if A is a square matrix
+ if (iRowsOne * iColsOne == 1 || iRowsOne != iColsOne)
+ {
+ Scierror(999, _("%s: Wrong type for input argument #%d: A square matrix expected.\n"), "eigs", 1);
+ return 1;
+ }
+
+ N = iRowsOne;
+
+ //check if A is complex
+ if (isVarComplex(pvApiCtx, piAddressVarOne))
+ {
+ sciErr = getComplexZMatrixOfDouble(pvApiCtx, piAddressVarOne, &iRowsOne, &iColsOne, &Acplx);
+ Acomplex = 1;
+ }
+ else
+ {
+ sciErr = getMatrixOfDouble(pvApiCtx, piAddressVarOne, &iRowsOne, &iColsOne, &Areal);
+
+ for (i = 0; i < iColsOne; i++)
+ {
+ for (j = 0; j < i; j++)
+ {
+ elemt1 = Areal[j + i * iColsOne];
+ elemt2 = Areal[j * iColsOne + i];
+ if (fabs(elemt1 - elemt2) > 0)
+ {
+ Asym = 0;
+ break;
+ }
+ }
+ if (Asym == 0)
+ {
+ break;
+ }
+ }
+ }
+
+ /****************************************
+ * Second variable : B *
+ *****************************************/
+ sciErr = getVarAddressFromPosition(pvApiCtx, 2, &piAddressVarTwo);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(999, _("%s: Can not read input argument #%d.\n"), fname, 2);
+ return 1;
+ }
+
+ sciErr = getVarType(pvApiCtx, piAddressVarTwo, &iTypeVarTwo);
+ if (sciErr.iErr || iTypeVarTwo != sci_matrix)
+ {
+ printError(&sciErr, 0);
+ Scierror(999, _("%s: Wrong type for input argument #%d: An empty matrix or full or sparse square matrix expected.\n"), "eigs", 2);
+ return 1;
+ }
+
+ sciErr = getVarDimension(pvApiCtx, piAddressVarTwo, &iRowsTwo, &iColsTwo);
+ matB = iRowsTwo * iColsTwo;
+ if (matB && (iRowsTwo != iRowsOne || iColsTwo != iColsOne))
+ {
+ Scierror(999, _("%s: Wrong dimension for input argument #%d: B must have the same size as A.\n"), "eigs", 2);
+ return 1;
+ }
+
+ if (isVarComplex(pvApiCtx, piAddressVarTwo))
+ {
+ sciErr = getComplexZMatrixOfDouble(pvApiCtx, piAddressVarTwo, &iRowsTwo, &iColsTwo, &Bcplx);
+ Bcomplex = 1;
+ }
+ else
+ {
+ sciErr = getMatrixOfDouble(pvApiCtx, piAddressVarTwo, &iRowsTwo, &iColsTwo, &Breal);
+ }
+
+ if (matB != 0)
+ {
+ if (Acomplex && !Bcomplex)
+ {
+ Bcplx = (doublecomplex*)MALLOC(N * N * sizeof(doublecomplex));
+ memset(Bcplx, 0, N * N * sizeof(doublecomplex));
+ Bcomplex = 1;
+ for (i = 0 ; i < N * N ; i++)
+ {
+ Bcplx[i].r = Breal[i];
+ }
+ }
+ if (!Acomplex && Bcomplex)
+ {
+ Acplx = (doublecomplex*)MALLOC(N * N * sizeof(doublecomplex));
+ memset(Acplx, 0, N * N * sizeof(doublecomplex));
+ Acomplex = 1;
+ for (i = 0 ; i < N * N ; i++)
+ {
+ Acplx[i].r = Areal[i];
+ }
+ }
+ }
+
+
+ /****************************************
+ * NEV *
+ *****************************************/
+ sciErr = getVarAddressFromPosition(pvApiCtx, 3, &piAddressVarThree);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(999, _("%s: Can not read input argument #%d.\n"), fname, 3);
+ FREE(Acplx);
+ return 1;
+ }
+
+ iErr = getScalarDouble(pvApiCtx, piAddressVarThree, &dblNEV);
+ if (iErr)
+ {
+ Scierror(999, _("%s: Wrong type for input argument #%d: A scalar expected.\n"), "eigs", 3);
+ return 1;
+ }
+
+ if (isVarComplex(pvApiCtx, piAddressVarThree))
+ {
+ Scierror(999, _("%s: Wrong type for input argument #%d: A scalar expected.\n"), "eigs", 3);
+ return 1;
+ }
+
+ if (dblNEV != floor(dblNEV) || (dblNEV <= 0))
+ {
+ Scierror(999, _("%s: Wrong type for input argument #%d: k must be a positive integer.\n"), "eigs", 3);
+ return 1;
+ }
+
+ if (!finite(dblNEV))
+ {
+ Scierror(999, _("%s: Wrong value for input argument #%d: k must be in the range 1 to N.\n"), "eigs", 3);
+ return 1;
+ }
+
+
+ iNEV = (int)dblNEV;
+
+ /****************************************
+ * SIGMA AND WHICH *
+ *****************************************/
+ sciErr = getVarAddressFromPosition(pvApiCtx, 4, &piAddressVarFour);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(999, _("%s: Can not read input argument #%d.\n"), fname, 4);
+ return 1;
+ }
+
+ sciErr = getVarType(pvApiCtx, piAddressVarFour, &iTypeVarFour);
+ if (sciErr.iErr || (iTypeVarFour != sci_matrix && iTypeVarFour != sci_strings))
+ {
+ Scierror(999, _("%s: Wrong type for input argument #%d: A scalar expected.\n"), "eigs", 4);
+ return 1;
+ }
+
+ if (iTypeVarFour == sci_strings)
+ {
+ int iErr = getAllocatedSingleString(pvApiCtx, piAddressVarFour, &pstData);
+ if (iErr)
+ {
+ return 1;
+ }
+
+ if (strcmp(pstData, "LM") != 0 && strcmp(pstData, "SM") != 0 && strcmp(pstData, "LR") != 0 && strcmp(pstData, "SR") != 0 && strcmp(pstData, "LI") != 0
+ && strcmp(pstData, "SI") != 0 && strcmp(pstData, "LA") != 0 && strcmp(pstData, "SA") != 0 && strcmp(pstData, "BE") != 0)
+ {
+ if (!Acomplex && Asym)
+ {
+ Scierror(999, _("%s: Wrong value for input argument #%d: Unrecognized sigma value.\n Sigma must be one of '%s', '%s', '%s', '%s' or '%s'.\n" ),
+ "eigs", 4, "LM", "SM", "LA", "SA", "BE");
+ return 1;
+ }
+ else
+ {
+ Scierror(999, _("%s: Wrong value for input argument #%d: Unrecognized sigma value.\n Sigma must be one of '%s', '%s', '%s', '%s', '%s' or '%s'.\n " ),
+ "eigs", 4, "LM", "SM", "LR", "SR", "LI", "SI");
+ return 1;
+ }
+ }
+
+ if ((Acomplex || !Asym) && (strcmp(pstData, "LA") == 0 || strcmp(pstData, "SA") == 0 || strcmp(pstData, "BE") == 0))
+ {
+ Scierror(999, _("%s: Invalid sigma value for complex or non symmetric problem.\n"), "eigs", 4);
+ return 1;
+ }
+
+ if (!Acomplex && Asym && (strcmp(pstData, "LR") == 0 || strcmp(pstData, "SR") == 0 || strcmp(pstData, "LI") == 0 || strcmp(pstData, "SI") == 0))
+ {
+ Scierror(999, _("%s: Invalid sigma value for real symmetric problem.\n"), "eigs", 4);
+ return 1;
+ }
+
+ SIGMA.r = 0;
+ SIGMA.i = 0;
+ }
+
+ if (iTypeVarFour == sci_matrix)
+ {
+ sciErr = getVarDimension(pvApiCtx, piAddressVarFour, &iRowsFour, &iColsFour);
+ if (iRowsFour * iColsFour != 1)
+ {
+ Scierror(999, _("%s: Wrong type for input argument #%d: A scalar expected.\n"), "eigs", 4);
+ return 1;
+ }
+
+ if (getScalarComplexDouble(pvApiCtx, piAddressVarFour, &SIGMA.r, &SIGMA.i))
+ {
+ printError(&sciErr, 0);
+ Scierror(999, _("%s: Can not read input argument #%d.\n"), fname, 4);
+ return 1;
+ }
+
+ if (C2F(isanan)(&SIGMA.r) || C2F(isanan)(&SIGMA.i))
+ {
+ Scierror(999, _("%s: Wrong type for input argument #%d: sigma must be a real.\n"), "eigs", 4);
+ return 1;
+ }
+
+ pstData = "LM";
+ }
+
+ /****************************************
+ * MAXITER *
+ *****************************************/
+ sciErr = getVarAddressFromPosition(pvApiCtx, 5, &piAddressVarFive);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(999, _("%s: Can not read input argument #%d.\n"), fname, 5);
+ return 0;
+ }
+
+ iErr = getScalarDouble(pvApiCtx, piAddressVarFive, &dblMAXITER);
+ if (iErr)
+ {
+ Scierror(999, _("%s: Wrong type for input argument #%d: %s must be a scalar.\n"), "eigs", 5, "opts.maxiter");
+ return 1;
+ }
+
+ if ((dblMAXITER != floor(dblMAXITER)) || (dblMAXITER <= 0))
+ {
+ Scierror(999, _("%s: Wrong type for input argument #%d: %s must be an integer positive value.\n"), "eigs", 5, "opts.maxiter");
+ return 1;
+ }
+
+ /****************************************
+ * TOL *
+ *****************************************/
+ sciErr = getVarAddressFromPosition(pvApiCtx, 6, &piAddressVarSix);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(999, _("%s: Can not read input argument #%d.\n"), fname, 6);
+ return 1;
+ }
+
+ iErr = getScalarDouble(pvApiCtx, piAddressVarSix, &dblTOL);
+ if (iErr)
+ {
+ Scierror(999, _("%s: Wrong type for input argument #%d: %s must be a real scalar.\n"), "eigs", 6, "opts.tol");
+ return 1;
+ }
+
+ if (C2F(isanan)(&dblTOL))
+ {
+ Scierror(999, _("%s: Wrong type for input argument #%d: %s must be a real scalar.\n"), "eigs", 6, "opts.tol");
+ return 1;
+ }
+
+ /****************************************
+ * NCV *
+ *****************************************/
+ sciErr = getVarAddressFromPosition(pvApiCtx, 7, &piAddressVarSeven);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(999, _("%s: Can not read input argument #%d.\n"), fname, 7);
+ return 1;
+ }
+
+ sciErr = getVarType(pvApiCtx, piAddressVarSeven, &TypeVarSeven);
+ if (sciErr.iErr || TypeVarSeven != sci_matrix)
+ {
+ printError(&sciErr, 0);
+ Scierror(999, _("%s: Wrong type for input argument #%d: %s must be an integer scalar.\n"), "eigs", 7, "opts.ncv");
+ return 1;
+ }
+ else
+ {
+ if (isVarComplex(pvApiCtx, piAddressVarSeven))
+ {
+ Scierror(999, _("%s: Wrong type for input argument #%d: %s must be an integer scalar.\n"), "eigs", 7, "opts.ncv");
+ 0;
+ }
+ else
+ {
+ sciErr = getVarDimension(pvApiCtx, piAddressVarSeven, &RowsSeven, &ColsSeven);
+ if (RowsSeven * ColsSeven > 1)
+ {
+ Scierror(999, _("%s: Wrong type for input argument #%d: %s must be an integer scalar.\n"), "eigs", 7, "opts.ncv");
+ return 1;
+ }
+
+ if (RowsSeven * ColsSeven == 1)
+ {
+ sciErr = getMatrixOfDouble(pvApiCtx, piAddressVarSeven, &RowsSeven, &ColsSeven, &dblNCV);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(999, _("%s: Can not read input argument #%d.\n"), fname, 7);
+ return 1;
+ }
+
+ if (dblNCV[0] != floor(dblNCV[0]))
+ {
+ Scierror(999, _("%s: Wrong type for input argument #%d: %s must be an integer scalar.\n"), "eigs", 7, "opts.ncv");
+ return 1;
+ }
+ }
+ }
+ }
+
+ /****************************************
+ * CHOLB *
+ *****************************************/
+ sciErr = getVarAddressFromPosition(pvApiCtx, 8, &piAddressVarEight);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(999, _("%s: Can not read input argument #%d.\n"), fname, 8);
+ return 1;
+ }
+
+ sciErr = getVarType(pvApiCtx, piAddressVarEight, &iTypeVarEight);
+ if (sciErr.iErr || iTypeVarEight != sci_matrix && iTypeVarEight != sci_boolean)
+ {
+ Scierror(999, _("%s: Wrong type for input argument #%d: %s must be an integer scalar or a boolean.\n"), "eigs", 8, "opts.cholB");
+ return 1;
+ }
+
+ if (iTypeVarEight == sci_boolean)
+ {
+ iErr = getScalarBoolean(pvApiCtx, piAddressVarEight, &iCHOLB);
+ if (iErr)
+ {
+ Scierror(999, _("%s: Wrong type for input argument #%d: %s must be an integer scalar or a boolean.\n"), "eigs", 8, "opts.cholB");
+ return 1;
+ }
+
+ if (iCHOLB != 1 && iCHOLB != 0)
+ {
+ Scierror(999, _("%s: Wrong value for input argument #%d: %s must be %s or %s.\n"), "eigs", 8, "opts.cholB", "%f", "%t");
+ return 1;
+ }
+ dblCHOLB = (double) iCHOLB;
+ }
+
+ if (iTypeVarEight == sci_matrix)
+ {
+ iErr = getScalarDouble(pvApiCtx, piAddressVarEight, &dblCHOLB);
+ if (iErr)
+ {
+ Scierror(999, _("%s: Wrong type for input argument #%d: %s must be an integer scalar or a boolean.\n"), "eigs", 8, "opts.cholB");
+ return 1;
+ }
+
+ if (dblCHOLB != 1 && dblCHOLB != 0)
+ {
+ Scierror(999, _("%s: Wrong value for input argument #%d: %s must be %s or %s.\n"), "eigs", 8, "opts.cholB", "%f", "%t");
+ return 1;
+ }
+ }
+
+ if ( dblCHOLB ) // check that B is upper triangular with non zero element on the diagonal
+ {
+ if (!Bcomplex)
+ {
+ for (i = 0; i < N; i++)
+ {
+ for (j = 0; j <= i; j++)
+ {
+ if (i == j && Breal[i + j * N] == 0)
+ {
+ Scierror(999, _("%s: B is not positive definite. Try with sigma='SM' or sigma=scalar.\n"), "eigs");
+ return 0;
+ }
+ else
+ {
+ if ( j < i && Breal[i + j * N] != 0 )
+ {
+ Scierror(999, _("%s: If opts.cholB is true, B should be upper triangular.\n"), "eigs");
+ return 0;
+ }
+ }
+ }
+ }
+ }
+ else
+ {
+ for (i = 0; i < N; i++)
+ {
+ for (j = 0; j <= i; j++)
+ {
+ if (i == j && Bcplx[i + i * N].r == 0 && Bcplx[i + i * N].i == 0)
+ {
+ Scierror(999, _("%s: B is not positive definite. Try with sigma='SM' or sigma=scalar.\n"), "eigs");
+ return 0;
+ }
+ else
+ {
+ if ( j < i && (Bcplx[i + j * N].r != 0 || Bcplx[i + j * N].i != 0) )
+ {
+ Scierror(999, _("%s: If opts.cholB is true, B should be upper triangular.\n"), "eigs");
+ return 0;
+ }
+ }
+ }
+ }
+ }
+ }
+
+ /****************************************
+ * RESID *
+ *****************************************/
+ sciErr = getVarAddressFromPosition(pvApiCtx, 9, &piAddressVarNine);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(999, _("%s: Can not read input argument #%d.\n"), fname, 9);
+ return 1;
+ }
+
+ sciErr = getVarType(pvApiCtx, piAddressVarNine, &iTypeVarNine);
+ if (sciErr.iErr || iTypeVarNine != sci_matrix)
+ {
+ printError(&sciErr, 0);
+ Scierror(999, _("%s: Wrong type for input argument #%d: A real or complex matrix expected.\n"), "eigs", 9);
+ return 1;
+ }
+ else
+ {
+ sciErr = getVarDimension(pvApiCtx, piAddressVarNine, &iRowsNine, &iColsNine);
+ if (iRowsNine * iColsNine == 1 || iRowsNine * iColsNine != N)
+ {
+ Scierror(999, _("%s: Wrong dimension for input argument #%d: Start vector %s must be N by 1.\n"), "eigs", 9, "opts.resid");
+ return 1;
+ }
+ }
+
+ if (!Acomplex && !Bcomplex)
+ {
+ if (isVarComplex(pvApiCtx, piAddressVarNine))
+ {
+ Scierror(999, _("%s: Wrong type for input argument #%d: Start vector %s must be real for real problems.\n"), "eigs", 9, "opts.resid");
+ return 1;
+ }
+ else
+ {
+ sciErr = getMatrixOfDouble(pvApiCtx, piAddressVarNine, &iRowsNine, &iColsNine, &RESID);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(999, _("%s: Can not read input argument #%d.\n"), "eigs", 9);
+ return 1;
+ }
+ }
+ }
+ else
+ {
+ sciErr = getComplexZMatrixOfDouble(pvApiCtx, piAddressVarNine, &iRowsNine, &iColsNine, &RESIDC);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(999, _("%s: Can not read input argument #%d.\n"), "eigs", 9);
+ return 1;
+ }
+ }
+
+ /****************************************
+ * INFO *
+ *****************************************/
+ sciErr = getVarAddressFromPosition(pvApiCtx, 10, &piAddressVarTen);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(999, _("%s: Can not read input argument #%d.\n"), "eigs", 9);
+ return 1;
+ }
+
+ iErr = getScalarInteger32(pvApiCtx, piAddressVarTen, &iINFO);
+ if (iErr)
+ {
+ Scierror(999, _("%s: Wrong type for input argument #%d: An integer expected.\n"), "eigs", 1);
+ return 1;
+ }
+
+ // Initialization output arguments
+ if (nbOutputArgument(pvApiCtx) > 1)
+ {
+ RVEC = 1;
+ }
+
+ if (Acomplex || Bcomplex || !Asym)
+ {
+ eigenvalueC = (doublecomplex*)CALLOC((iNEV + 1), sizeof(doublecomplex));
+ if (RVEC)
+ {
+ eigenvectorC = (doublecomplex*)CALLOC(N * (iNEV + 1), sizeof(doublecomplex));
+ }
+ }
+ else
+ {
+ eigenvalue = (double*)CALLOC(iNEV, sizeof(double));
+ /* we should allocate eigenvector only if RVEC is true, but dseupd segfaults
+ if Z is not allocated even when RVEC is false, contrary to the docs.*/
+ eigenvector = (double*)CALLOC(iNEV * N, sizeof(double));
+ }
+
+ error = eigs(Areal, Acplx, N, Acomplex, Asym, Breal, Bcplx, Bcomplex, matB, iNEV, SIGMA, pstData, &dblMAXITER,
+ &dblTOL, dblNCV, RESID, RESIDC, &iINFO, &dblCHOLB, INFO_EUPD, eigenvalue, eigenvector, eigenvalueC, eigenvectorC, RVEC);
+
+ switch (error)
+ {
+ case -1 :
+ if (Asym && !Acomplex && !Bcomplex)
+ {
+ Scierror(999, _("%s: Wrong value for input argument #%d: For real symmetric problems, NCV must be k < NCV <= N.\n"), "eigs", 7);
+ }
+ else
+ {
+ if (!Asym && !Acomplex && !Bcomplex)
+ {
+ Scierror(999, _("%s: Wrong value for input argument #%d: For real non symmetric problems, NCV must be k + 2 < NCV <= N.\n"), "eigs", 7);
+ }
+ else
+ {
+ Scierror(999, _("%s: Wrong value for input argument #%d: For complex problems, NCV must be k + 1 < NCV <= N.\n"), "eigs", 7);
+ }
+ }
+ ReturnArguments(pvApiCtx);
+ return 1;
+
+ case -2 :
+ if (Asym && !Acomplex && !Bcomplex)
+ {
+ Scierror(999, _("%s: Wrong value for input argument #%d: For real symmetric problems, k must be an integer in the range 1 to N - 1.\n"), "eigs", 3);
+ }
+ else
+ {
+ Scierror(999, _("%s: Wrong value for input argument #%d: For real non symmetric or complex problems, k must be an integer in the range 1 to N - 2.\n"), "eigs", 3);
+ }
+ ReturnArguments(pvApiCtx);
+ return 1;
+
+ case -3 :
+ Scierror(999, _("%s: Error with input argument #%d: B is not positive definite. Try with sigma='SM' or sigma=scalar.\n"), "eigs", 2);
+ ReturnArguments(pvApiCtx);
+ return 0;
+
+ case -4 :
+ if (!Acomplex && !Bcomplex)
+ {
+ if (Asym)
+ {
+ Scierror(999, _("%s: Error with %s: info = %d \n"), "eigs", "DSAUPD", iINFO);
+ }
+ else
+ {
+ Scierror(999, _("%s: Error with %s: info = %d \n"), "eigs", "DNAUPD", iINFO);
+ }
+ }
+ else
+ {
+ Scierror(999, _("%s: Error with %s: info = %d \n"), "eigs", "ZNAUPD", iINFO);
+ }
+ ReturnArguments(pvApiCtx);
+ return 1;
+
+ case -5 :
+ if (!Acomplex && !Bcomplex)
+ {
+ if (Asym)
+ {
+ Scierror(999, _("%s: Error with %s: unknown mode returned.\n"), "eigs", "DSAUPD");
+ }
+ else
+ {
+ Scierror(999, _("%s: Error with %s: unknown mode returned.\n"), "eigs", "DNAUPD");
+ }
+ }
+ else
+ {
+ Scierror(999, _("%s: Error with %s: unknown mode returned.\n"), "eigs", "ZNAUPD");
+ }
+ ReturnArguments(pvApiCtx);
+ return 1;
+
+ case -6 :
+ if (!Acomplex && !Bcomplex)
+ {
+ if (Asym)
+ {
+ Scierror(999, _("%s: Error with %s: info = %d \n"), "eigs", "DSEUPD", INFO_EUPD);
+ }
+ else
+ {
+ Scierror(999, _("%s: Error with %s: info = %d \n"), "eigs", "DNEUPD", INFO_EUPD);
+ }
+ }
+ else
+ {
+ Scierror(999, _("%s: Error with %s: info = %d \n"), "eigs", "ZNEUPD", INFO_EUPD);
+ }
+ ReturnArguments(pvApiCtx);
+ FREE(mat_eigenvalue);
+ return 1;
+ }
+
+ if (nbOutputArgument(pvApiCtx) <= 1)
+ {
+ if (eigenvalue)
+ {
+ sciErr = createMatrixOfDouble(pvApiCtx, nbInputArgument(pvApiCtx) + 1, iNEV, 1, eigenvalue);
+ FREE(eigenvalue);
+ FREE(eigenvector);
+ }
+ else if (eigenvalueC)
+ {
+ sciErr = createComplexZMatrixOfDouble(pvApiCtx, nbInputArgument(pvApiCtx) + 1, iNEV, 1, eigenvalueC);
+ FREE(eigenvalueC);
+ }
+
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(999, _("%s: Memory allocation error.\n"), fname);
+ return 1;
+ }
+
+ AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
+ }
+ else
+ {
+ // create a matrix which contains the eigenvalues
+ if (eigenvalue)
+ {
+ mat_eigenvalue = (double*)CALLOC(iNEV * iNEV, sizeof(double));
+ for (i = 0; i < iNEV; i++)
+ {
+ mat_eigenvalue[i * iNEV + i] = eigenvalue[i];
+ }
+ sciErr = createMatrixOfDouble(pvApiCtx, nbInputArgument(pvApiCtx) + 1, iNEV, iNEV, mat_eigenvalue);
+ FREE(eigenvalue);
+ FREE(mat_eigenvalue);
+ }
+ else if (eigenvalueC)
+ {
+ mat_eigenvalueC = (doublecomplex*)CALLOC(iNEV * iNEV, sizeof(doublecomplex));
+ for (i = 0; i < iNEV; i++)
+ {
+ mat_eigenvalueC[i * iNEV + i] = eigenvalueC[i];
+ }
+ sciErr = createComplexZMatrixOfDouble(pvApiCtx, nbInputArgument(pvApiCtx) + 1, iNEV, iNEV, mat_eigenvalueC);
+ FREE(eigenvalueC);
+ FREE(mat_eigenvalueC);
+ }
+
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(999, _("%s: Memory allocation error.\n"), fname);
+ return 1;
+ }
+
+ if (eigenvector)
+ {
+ sciErr = createMatrixOfDouble(pvApiCtx, nbInputArgument(pvApiCtx) + 2, N, iNEV, eigenvector);
+ FREE(eigenvector);
+ }
+ else if (eigenvectorC)
+ {
+ sciErr = createComplexZMatrixOfDouble(pvApiCtx, nbInputArgument(pvApiCtx) + 2, N, iNEV, eigenvectorC);
+ FREE(eigenvectorC);
+ }
+
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(999, _("%s: Memory allocation error.\n"), fname);
+ return 1;
+ }
+
+ AssignOutputVariable(pvApiCtx, 1) = nbInputArgument(pvApiCtx) + 1;
+ AssignOutputVariable(pvApiCtx, 2) = nbInputArgument(pvApiCtx) + 2;
+ }
+
+ if (iTypeVarFour == sci_strings)
+ {
+ freeAllocatedSingleString(pstData);
+ }
+
+ if (matB != 0)
+ {
+ if (Acomplex && !Bcomplex)
+ {
+ FREE(Bcplx);
+ }
+ if (!Acomplex && Bcomplex)
+ {
+ FREE(Acplx);
+ }
+ }
+
+ ReturnArguments(pvApiCtx);
+ return 0;
+}
diff --git a/modules/arnoldi/sci_gateway/c/sci_znaupd.c b/modules/arnoldi/sci_gateway/c/sci_znaupd.c
new file mode 100755
index 000000000..ff203d37d
--- /dev/null
+++ b/modules/arnoldi/sci_gateway/c/sci_znaupd.c
@@ -0,0 +1,418 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) ????-2008 - 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
+#include
+#include "api_scilab.h"
+#include "core_math.h"
+#include "gw_arnoldi.h"
+#include "localization.h"
+#include "Scierror.h"
+/*--------------------------------------------------------------------------*/
+extern int C2F(znaupd)(int * ido, char * bmat, int * n, char * which,
+ int * nev, double * tol, doublecomplex * resid,
+ int * ncv, doublecomplex * v, int * ldv, int * iparam,
+ int * ipntr, doublecomplex * workd,
+ doublecomplex * workl, int * lworkl, double * rwork,
+ int * info);
+/*--------------------------------------------------------------------------*/
+int sci_znaupd(char *fname, unsigned long fname_len)
+{
+ SciErr sciErr;
+
+ int* piAddrpIDO = NULL;
+ int* pIDO = NULL;
+ int* piAddrpBMAT = NULL;
+ char* pBMAT = NULL;
+ int* piAddrpN = NULL;
+ int* pN = NULL;
+ int* piAddrpWHICH = NULL;
+ char* pWHICH = NULL;
+ int* piAddrpNEV = NULL;
+ int* pNEV = NULL;
+ int* piAddrpTOL = NULL;
+ double* pTOL = NULL;
+ int* piAddrpNCV = NULL;
+ int* pNCV = NULL;
+ int* piAddrpIPARAM = NULL;
+ int* pIPARAM = NULL;
+ int* piAddrpIPNTR = NULL;
+ int* pIPNTR = NULL;
+ int* piAddrpRWORK = NULL;
+ double* pRWORK = NULL;
+ int* piAddrpINFO = NULL;
+ int* pINFO = NULL;
+ int* piAddrpV = NULL;
+
+ doublecomplex* pV = NULL;
+ int* piAddrpRESID = NULL;
+ doublecomplex* pRESID = NULL;
+ int* piAddrpWORKD = NULL;
+ doublecomplex* pWORKD = NULL;
+ int* piAddrpWORKL = NULL;
+ doublecomplex* pWORKL = NULL;
+
+ int IDO, mIDO, nIDO;
+ int mBMAT, nBMAT;
+ int mN, nN;
+ int mWHICH, nWHICH;
+ int mNEV, nNEV;
+ int mTOL, nTOL;
+ int RESID, mRESID, nRESID;
+ int mNCV, nNCV;
+ int V, mV, nV;
+ int IPARAM, mIPARAM, nIPARAM;
+ int IPNTR, mIPNTR, nIPNTR;
+ int WORKD, mWORKD, nWORKD;
+ int WORKL, mWORKL, nWORKL;
+ int RWORK, mRWORK, nRWORK;
+ int INFO, mINFO, nINFO;
+
+ int minlhs = 1, minrhs = 15, maxlhs = 9, maxrhs = 15;
+ int LDV, LWORKL;
+ int sizeWORKL = 0;
+
+ CheckInputArgument(pvApiCtx, minrhs, maxrhs);
+ CheckOutputArgument(pvApiCtx, minlhs, maxlhs);
+
+ /* VARIABLE = NUMBER */
+ sciErr = getVarAddressFromPosition(pvApiCtx, 1, &piAddrpIDO);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 1.
+ sciErr = getMatrixOfDoubleAsInteger(pvApiCtx, piAddrpIDO, &mIDO, &nIDO, &pIDO);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 1);
+ return 1;
+ }
+
+ IDO = 1;
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, 3, &piAddrpN);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 3.
+ sciErr = getMatrixOfDoubleAsInteger(pvApiCtx, piAddrpN, &mN, &nN, &pN);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 3);
+ return 1;
+ }
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, 5, &piAddrpNEV);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 5.
+ sciErr = getMatrixOfDoubleAsInteger(pvApiCtx, piAddrpNEV, &mNEV, &nNEV, &pNEV);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 5);
+ return 1;
+ }
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, 6, &piAddrpTOL);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 6.
+ sciErr = getMatrixOfDouble(pvApiCtx, piAddrpTOL, &mTOL, &nTOL, &pTOL);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 6);
+ return 1;
+ }
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, 7, &piAddrpRESID);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 7.
+ sciErr = getComplexZMatrixOfDouble(pvApiCtx, piAddrpRESID, &mRESID, &nRESID, &pRESID);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 7);
+ return 1;
+ }
+
+ RESID = 7;
+ sciErr = getVarAddressFromPosition(pvApiCtx, 8, &piAddrpNCV);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 8.
+ sciErr = getMatrixOfDoubleAsInteger(pvApiCtx, piAddrpNCV, &mNCV, &nNCV, &pNCV);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 8);
+ return 1;
+ }
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, 9, &piAddrpV);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 9.
+ sciErr = getComplexZMatrixOfDouble(pvApiCtx, piAddrpV, &mV, &nV, &pV);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 9);
+ return 1;
+ }
+
+ V = 9;
+ sciErr = getVarAddressFromPosition(pvApiCtx, 10, &piAddrpIPARAM);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 10.
+ sciErr = getMatrixOfDoubleAsInteger(pvApiCtx, piAddrpIPARAM, &mIPARAM, &nIPARAM, &pIPARAM);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 10);
+ return 1;
+ }
+
+ IPARAM = 10;
+ sciErr = getVarAddressFromPosition(pvApiCtx, 11, &piAddrpIPNTR);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 11.
+ sciErr = getMatrixOfDoubleAsInteger(pvApiCtx, piAddrpIPNTR, &mIPNTR, &nIPNTR, &pIPNTR);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 11);
+ return 1;
+ }
+
+ IPNTR = 11;
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, 12, &piAddrpWORKD);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 12.
+ sciErr = getComplexZMatrixOfDouble(pvApiCtx, piAddrpWORKD, &mWORKD, &nWORKD, &pWORKD);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 12);
+ return 1;
+ }
+
+ WORKD = 12;
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, 13, &piAddrpWORKL);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 13.
+ sciErr = getComplexZMatrixOfDouble(pvApiCtx, piAddrpWORKL, &mWORKL, &nWORKL, &pWORKL);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 13);
+ return 1;
+ }
+
+ WORKL = 13;
+ sciErr = getVarAddressFromPosition(pvApiCtx, 14, &piAddrpRWORK);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 14.
+ sciErr = getMatrixOfDouble(pvApiCtx, piAddrpRWORK, &mRWORK, &nRWORK, &pRWORK);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 14);
+ return 1;
+ }
+
+ RWORK = 14;
+ sciErr = getVarAddressFromPosition(pvApiCtx, 15, &piAddrpINFO);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 15.
+ sciErr = getMatrixOfDoubleAsInteger(pvApiCtx, piAddrpINFO, &mINFO, &nINFO, &pINFO);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 15);
+ return 1;
+ }
+
+ INFO = 15;
+
+ LWORKL = mWORKL * nWORKL;
+ LDV = Max(1, pN[0]);
+
+ /* Don't call dnaupd if ido == 99 */
+ if (pIDO[0] == 99)
+ {
+ Scierror(999, _("%s: the computation is already terminated\n"), fname);
+ return 0;
+ }
+
+ /* Check some sizes */
+ if (mIPARAM*nIPARAM != 11)
+ {
+ Scierror(999, _("%s: Wrong size for input argument %s: An array of size %d expected.\n"), fname, "IPARAM", 11);
+ return 0;
+ }
+
+ if (mIPNTR*nIPNTR != 14)
+ {
+ Scierror(999, _("%s: Wrong size for input argument %s: An array of size %d expected.\n"), fname, "IPNTR", 14);
+ return 0;
+ }
+
+ if (mRESID*nRESID != pN[0])
+ {
+ Scierror(999, _("%s: Wrong size for input argument %s: An array of size %d expected.\n"), fname, "RESID", pN[0]);
+ return 0;
+ }
+
+ if ((mV != pN[0]) || (nV != pNCV[0]))
+ {
+ Scierror(999, _("%s: Wrong size for input argument %s: A matrix of size %dx%d expected.\n"), fname, "V", pN[0], pNCV[0]);
+ return 0;
+ }
+
+ if (mWORKD * nWORKD < 3 * pN[0])
+ {
+ Scierror(999, _("%s: Wrong size for input argument %s: An array of size %d expected.\n"), fname, "WORKD", 3 * pN[0]);
+ return 0;
+ }
+
+ sizeWORKL = 3 * pNCV[0] * pNCV[0] + 5 * pNCV[0];
+
+ if (mWORKL * nWORKL < sizeWORKL)
+ {
+ Scierror(999, _("%s: Wrong size for input argument %s: An array of size %d expected.\n"), fname, "WORKL", sizeWORKL);
+ return 0;
+ }
+
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, 2, &piAddrpBMAT);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 2.
+ if (getAllocatedSingleString(pvApiCtx, piAddrpBMAT, &pBMAT))
+ {
+ Scierror(202, _("%s: Wrong type for argument #%d: A string expected.\n"), fname, 2);
+ return 1;
+ }
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, 4, &piAddrpWHICH);
+ if (sciErr.iErr)
+ {
+ freeAllocatedSingleString(pBMAT);
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 4.
+ if (getAllocatedSingleString(pvApiCtx, piAddrpWHICH, &pWHICH))
+ {
+ freeAllocatedSingleString(pBMAT);
+ Scierror(202, _("%s: Wrong type for argument #%d: A string expected.\n"), fname, 4);
+ return 1;
+ }
+
+ C2F(znaupd)(pIDO, pBMAT, pN,
+ pWHICH, pNEV, pTOL,
+ pRESID, pNCV, pV, &LDV,
+ pIPARAM, pIPNTR, pWORKD,
+ pWORKL, &LWORKL, pRWORK, pINFO);
+
+ freeAllocatedSingleString(pBMAT);
+ freeAllocatedSingleString(pWHICH);
+
+ if (pINFO[0] < 0)
+ {
+ C2F(errorinfo)("znaupd", pINFO, 6L);
+ return 0;
+ }
+
+ AssignOutputVariable(pvApiCtx, 1) = IDO;
+ AssignOutputVariable(pvApiCtx, 2) = RESID;
+ AssignOutputVariable(pvApiCtx, 3) = V;
+ AssignOutputVariable(pvApiCtx, 4) = IPARAM;
+ AssignOutputVariable(pvApiCtx, 5) = IPNTR;
+ AssignOutputVariable(pvApiCtx, 6) = WORKD;
+ AssignOutputVariable(pvApiCtx, 7) = WORKL;
+ AssignOutputVariable(pvApiCtx, 8) = RWORK;
+ AssignOutputVariable(pvApiCtx, 9) = INFO;
+
+ ReturnArguments(pvApiCtx);
+
+ return 0;
+}
+/*--------------------------------------------------------------------------*/
diff --git a/modules/arnoldi/sci_gateway/c/sci_zneupd.c b/modules/arnoldi/sci_gateway/c/sci_zneupd.c
new file mode 100755
index 000000000..3a01b5f80
--- /dev/null
+++ b/modules/arnoldi/sci_gateway/c/sci_zneupd.c
@@ -0,0 +1,553 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) ????-2008 - 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
+#include
+#include "api_scilab.h"
+#include "gw_arnoldi.h"
+#include "core_math.h"
+#include "localization.h"
+#include "Scierror.h"
+/*--------------------------------------------------------------------------*/
+extern int C2F(zneupd)(int * rvec, char * howmny, int * select,
+ doublecomplex * d, doublecomplex * z, int * ldz,
+ doublecomplex * sigma, doublecomplex * workev,
+ char * bmat, int * n, char * which, int * nev,
+ double * tol, doublecomplex * resid, int * ncv,
+ doublecomplex * v, int * ldv, int * iparam, int * ipntr,
+ doublecomplex * workd, doublecomplex * workl,
+ int * lworkl, double * rwork, int * info);
+/*--------------------------------------------------------------------------*/
+int sci_zneupd(char *fname, unsigned long fname_len)
+{
+ SciErr sciErr;
+
+ int* piAddrpRVEC = NULL;
+ int* pRVEC = NULL;
+ int* piAddrpHOWMANY = NULL;
+ char* pHOWMANY = NULL;
+ int* piAddrpSELECT = NULL;
+ int* pSELECT = NULL;
+ int* piAddrpBMAT = NULL;
+ char* pBMAT = NULL;
+ int* piAddrpN = NULL;
+ int* pN = NULL;
+ int* piAddrpWHICH = NULL;
+ char* pWHICH = NULL;
+ int* piAddrpNEV = NULL;
+ int* pNEV = NULL;
+ int* piAddrpTOL = NULL;
+ double* pTOL = NULL;
+ int* piAddrpNCV = NULL;
+ int* pNCV = NULL;
+ int* piAddrpIPARAM = NULL;
+ int* pIPARAM = NULL;
+ int* piAddrpIPNTR = NULL;
+ int* pIPNTR = NULL;
+ int* piAddrpRWORK = NULL;
+ double* pRWORK = NULL;
+ int* piAddrpINFO = NULL;
+ int* pINFO = NULL;
+
+ int* piAddrpD = NULL;
+ doublecomplex* pD = NULL;
+ int* piAddrpZ = NULL;
+ doublecomplex* pZ = NULL;
+ int* piAddrpSIGMA = NULL;
+ doublecomplex* pSIGMA = NULL;
+ int* piAddrpWORKev = NULL;
+ doublecomplex* pWORKev = NULL;
+ int* piAddrpRESID = NULL;
+ doublecomplex* pRESID = NULL;
+ int* piAddrpWORKD = NULL;
+ doublecomplex* pV = NULL;
+ int* piAddrpV = NULL;
+ doublecomplex* pWORKD = NULL;
+ int* piAddrpWORKL = NULL;
+ doublecomplex* pWORKL = NULL;
+
+ int mRVEC, nRVEC;
+ int mHOWMANY, nHOWMANY;
+ int mSELECT, nSELECT;
+ int D, mD, nD;
+ int Z, mZ, nZ;
+ int mSIGMA, nSIGMA;
+ int mWORKev, nWORKev;
+ int mBMAT, nBMAT;
+ int mN, nN;
+ int mWHICH, nWHICH;
+ int mNEV, nNEV;
+ int mTOL, nTOL;
+ int RESID, mRESID, nRESID;
+ int mNCV, nNCV;
+ int mV, nV;
+ int IPARAM, mIPARAM, nIPARAM;
+ int IPNTR, mIPNTR, nIPNTR;
+ int WORKD, mWORKD, nWORKD;
+ int WORKL, mWORKL, nWORKL;
+ int RWORK, mRWORK, nRWORK;
+ int INFO, mINFO, nINFO;
+
+ int minlhs = 1, minrhs = 21, maxlhs = 9, maxrhs = 21;
+ int LDZ, LDV, LWORKL;
+ int sizeWORKL = 0;
+
+ CheckInputArgument(pvApiCtx, minrhs, maxrhs);
+ CheckOutputArgument(pvApiCtx, minlhs, maxlhs);
+
+ /* VARIABLE = NUMBER */
+ sciErr = getVarAddressFromPosition(pvApiCtx, 1, &piAddrpRVEC);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 1.
+ sciErr = getMatrixOfDoubleAsInteger(pvApiCtx, piAddrpRVEC, &mRVEC, &nRVEC, &pRVEC);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 1);
+ return 1;
+ }
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, 3, &piAddrpSELECT);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 3.
+ sciErr = getMatrixOfDoubleAsInteger(pvApiCtx, piAddrpSELECT, &mSELECT, &nSELECT, &pSELECT);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 3);
+ return 1;
+ }
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, 4, &piAddrpD);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 4.
+ sciErr = getComplexZMatrixOfDouble(pvApiCtx, piAddrpD, &mD, &nD, &pD);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 4);
+ return 1;
+ }
+ D = 4;
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, 5, &piAddrpZ);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 5.
+ sciErr = getComplexZMatrixOfDouble(pvApiCtx, piAddrpZ, &mZ, &nZ, &pZ);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 5);
+ return 1;
+ }
+ Z = 5;
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, 6, &piAddrpSIGMA);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 6.
+ sciErr = getComplexZMatrixOfDouble(pvApiCtx, piAddrpSIGMA, &mSIGMA, &nSIGMA, &pSIGMA);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 6);
+ return 1;
+ }
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, 7, &piAddrpWORKev);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 7.
+ sciErr = getComplexZMatrixOfDouble(pvApiCtx, piAddrpWORKev, &mWORKev, &nWORKev, &pWORKev);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 7);
+ return 1;
+ }
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, 9, &piAddrpN);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 9.
+ sciErr = getMatrixOfDoubleAsInteger(pvApiCtx, piAddrpN, &mN, &nN, &pN);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 9);
+ return 1;
+ }
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, 11, &piAddrpNEV);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 11.
+ sciErr = getMatrixOfDoubleAsInteger(pvApiCtx, piAddrpNEV, &mNEV, &nNEV, &pNEV);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 11);
+ return 1;
+ }
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, 12, &piAddrpTOL);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 12.
+ sciErr = getMatrixOfDouble(pvApiCtx, piAddrpTOL, &mTOL, &nTOL, &pTOL);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 12);
+ return 1;
+ }
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, 13, &piAddrpRESID);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 13.
+ sciErr = getComplexZMatrixOfDouble(pvApiCtx, piAddrpRESID, &mRESID, &nRESID, &pRESID);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 13);
+ return 1;
+ }
+ RESID = 13;
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, 14, &piAddrpNCV);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 14.
+ sciErr = getMatrixOfDoubleAsInteger(pvApiCtx, piAddrpNCV, &mNCV, &nNCV, &pNCV);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 14);
+ return 1;
+ }
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, 15, &piAddrpV);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 15.
+ sciErr = getComplexZMatrixOfDouble(pvApiCtx, piAddrpV, &mV, &nV, &pV);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 15);
+ return 1;
+ }
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, 16, &piAddrpIPARAM);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 16.
+ sciErr = getMatrixOfDoubleAsInteger(pvApiCtx, piAddrpIPARAM, &mIPARAM, &nIPARAM, &pIPARAM);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 16);
+ return 1;
+ }
+
+ IPARAM = 16;
+ sciErr = getVarAddressFromPosition(pvApiCtx, 17, &piAddrpIPNTR);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 17.
+ sciErr = getMatrixOfDoubleAsInteger(pvApiCtx, piAddrpIPNTR, &mIPNTR, &nIPNTR, &pIPNTR);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 17);
+ return 1;
+ }
+
+ IPNTR = 17;
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, 18, &piAddrpWORKD);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 18.
+ sciErr = getComplexZMatrixOfDouble(pvApiCtx, piAddrpWORKD, &mWORKD, &nWORKD, &pWORKD);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 18);
+ return 1;
+ }
+ WORKD = 18;
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, 19, &piAddrpWORKL);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 19.
+ sciErr = getComplexZMatrixOfDouble(pvApiCtx, piAddrpWORKL, &mWORKL, &nWORKL, &pWORKL);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 19);
+ return 1;
+ }
+ WORKL = 19;
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, 20, &piAddrpRWORK);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 20.
+ sciErr = getMatrixOfDouble(pvApiCtx, piAddrpRWORK, &mRWORK, &nRWORK, &pRWORK);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 20);
+ return 1;
+ }
+
+ RWORK = 20;
+ sciErr = getVarAddressFromPosition(pvApiCtx, 21, &piAddrpINFO);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 21.
+ sciErr = getMatrixOfDoubleAsInteger(pvApiCtx, piAddrpINFO, &mINFO, &nINFO, &pINFO);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ Scierror(202, _("%s: Wrong type for argument #%d: A real expected.\n"), fname, 21);
+ return 1;
+ }
+
+ INFO = 21;
+
+ LWORKL = mWORKL * nWORKL;
+ LDV = Max(1, pN[0]);
+ LDZ = LDV;
+
+ /* Check some sizes */
+ if (mIPARAM*nIPARAM != 11)
+ {
+ Scierror(999, _("%s: Wrong size for input argument %s: An array of size %d expected.\n"), fname, "IPARAM", 11);
+ return 1;
+ }
+
+ if (mIPNTR*nIPNTR != 14)
+ {
+ Scierror(999, _("%s: Wrong size for input argument %s: An array of size %d expected.\n"), fname, "IPNTR", 14);
+ return 1;
+ }
+
+ if (mRESID*nRESID != pN[0])
+ {
+ Scierror(999, _("%s: Wrong size for input argument %s: An array of size %d expected.\n"), fname, "RESID", pN[0]);
+ return 1;
+ }
+
+ if (mWORKD * nWORKD < 3 * pN[0])
+ {
+ Scierror(999, _("%s: Wrong size for input argument %s: An array of size %d expected.\n"), fname, "WORKD", 3 * pN[0]);
+ return 1;
+ }
+
+ if (mSELECT*nSELECT != pNCV[0])
+ {
+ Scierror(999, _("%s: Wrong size for input argument %s: An array of size %d expected.\n"), fname, "SELECT", pNCV[0]);
+ return 1;
+ }
+
+ if (mD*nD != (pNEV[0] + 1))
+ {
+ Scierror(999, _("%s: Wrong size for input argument %s: An array of size %d expected.\n"), fname, "D", pNEV[0] + 1);
+ return 1;
+ }
+
+ if ((mZ != pN[0]) || (nZ != pNEV[0]))
+ {
+ Scierror(999, _("%s: Wrong size for input argument %s: A matrix of size %dx%d expected.\n"), fname, "Z", pN[0], pNEV[0]);
+ return 1;
+ }
+
+ if (mWORKev*nWORKev != 2 * pNCV[0])
+ {
+ Scierror(999, _("%s: Wrong size for input argument %s: An array of size %d expected.\n"), fname, "WORKev", 2 * pNCV[0]);
+ return 1;
+ }
+
+ if ((mV != pN[0]) || (nV != pNCV[0]))
+ {
+ Scierror(999, _("%s: Wrong size for input argument %s: A matrix of size %dx%d expected.\n"), fname, "V", pN[0], pNCV[0]);
+ return 1;
+ }
+
+ sizeWORKL = 3 * pNCV[0] * pNCV[0] + 5 * pNCV[0];
+
+ if ((mWORKL * nWORKL < sizeWORKL))
+ {
+ Scierror(999, _("%s: Wrong size for input argument %s: An array of size %d expected.\n"), fname, "WORKL", sizeWORKL);
+ return 1;
+ }
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, 2, &piAddrpHOWMANY);
+ if (sciErr.iErr)
+ {
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 2.
+ if (getAllocatedSingleString(pvApiCtx, piAddrpHOWMANY, &pHOWMANY))
+ {
+ Scierror(202, _("%s: Wrong type for argument #%d: A string expected.\n"), fname, 2);
+ return 1;
+ }
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, 8, &piAddrpBMAT);
+ if (sciErr.iErr)
+ {
+ freeAllocatedSingleString(pHOWMANY);
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 8.
+ if (getAllocatedSingleString(pvApiCtx, piAddrpBMAT, &pBMAT))
+ {
+ freeAllocatedSingleString(pHOWMANY);
+ Scierror(202, _("%s: Wrong type for argument #%d: A string expected.\n"), fname, 8);
+ return 1;
+ }
+
+ sciErr = getVarAddressFromPosition(pvApiCtx, 10, &piAddrpWHICH);
+ if (sciErr.iErr)
+ {
+ freeAllocatedSingleString(pHOWMANY);
+ freeAllocatedSingleString(pBMAT);
+ printError(&sciErr, 0);
+ return 1;
+ }
+
+ // Retrieve a matrix of double at position 10.
+ if (getAllocatedSingleString(pvApiCtx, piAddrpWHICH, &pWHICH))
+ {
+ freeAllocatedSingleString(pHOWMANY);
+ freeAllocatedSingleString(pBMAT);
+ Scierror(202, _("%s: Wrong type for argument #%d: A string expected.\n"), fname, 10);
+ return 1;
+ }
+
+ C2F(zneupd)(pRVEC, pHOWMANY, pSELECT, pD,
+ pZ, &LDZ, pSIGMA, pWORKev,
+ pBMAT, pN, pWHICH, pNEV,
+ pTOL, pRESID, pNCV, pV,
+ &LDV, pIPARAM, pIPNTR, pWORKD,
+ pWORKL, &LWORKL, pRWORK, pINFO);
+
+ freeAllocatedSingleString(pHOWMANY);
+ freeAllocatedSingleString(pBMAT);
+ freeAllocatedSingleString(pWHICH);
+
+ if (pINFO[0] < 0)
+ {
+ C2F(errorinfo)("zneupd", pINFO, 6L);
+ return 0;
+ }
+
+ AssignOutputVariable(pvApiCtx, 1) = D;
+ AssignOutputVariable(pvApiCtx, 2) = Z;
+ AssignOutputVariable(pvApiCtx, 3) = RESID;
+ AssignOutputVariable(pvApiCtx, 4) = IPARAM;
+ AssignOutputVariable(pvApiCtx, 5) = IPNTR;
+ AssignOutputVariable(pvApiCtx, 6) = WORKD;
+ AssignOutputVariable(pvApiCtx, 7) = WORKL;
+ AssignOutputVariable(pvApiCtx, 8) = RWORK;
+ AssignOutputVariable(pvApiCtx, 9) = INFO;
+
+ ReturnArguments(pvApiCtx);
+
+ return 0;
+}
+/*--------------------------------------------------------------------------*/
--
cgit