summaryrefslogtreecommitdiff
path: root/modules/polynomials/sci_gateway
diff options
context:
space:
mode:
Diffstat (limited to 'modules/polynomials/sci_gateway')
-rwxr-xr-xmodules/polynomials/sci_gateway/c/.deps/.dirstamp0
-rwxr-xr-xmodules/polynomials/sci_gateway/c/.deps/libscipolynomials_la-gw_polynomials.Plo274
-rwxr-xr-xmodules/polynomials/sci_gateway/c/.deps/libscipolynomials_la-sci_bezout.Plo62
-rwxr-xr-xmodules/polynomials/sci_gateway/c/.deps/libscipolynomials_la-sci_cleanp.Plo61
-rwxr-xr-xmodules/polynomials/sci_gateway/c/.deps/libscipolynomials_la-sci_coeff.Plo61
-rwxr-xr-xmodules/polynomials/sci_gateway/c/.deps/libscipolynomials_la-sci_degree.Plo61
-rwxr-xr-xmodules/polynomials/sci_gateway/c/.deps/libscipolynomials_la-sci_diag.Plo60
-rwxr-xr-xmodules/polynomials/sci_gateway/c/.deps/libscipolynomials_la-sci_div.Plo61
-rwxr-xr-xmodules/polynomials/sci_gateway/c/.deps/libscipolynomials_la-sci_poly.Plo60
-rwxr-xr-xmodules/polynomials/sci_gateway/c/.deps/libscipolynomials_la-sci_prod.Plo60
-rwxr-xr-xmodules/polynomials/sci_gateway/c/.deps/libscipolynomials_la-sci_roots.Plo62
-rwxr-xr-xmodules/polynomials/sci_gateway/c/.deps/libscipolynomials_la-sci_sfact.Plo62
-rwxr-xr-xmodules/polynomials/sci_gateway/c/.deps/libscipolynomials_la-sci_simp.Plo61
-rwxr-xr-xmodules/polynomials/sci_gateway/c/.deps/libscipolynomials_la-sci_simp_mode.Plo62
-rwxr-xr-xmodules/polynomials/sci_gateway/c/.deps/libscipolynomials_la-sci_sum.Plo61
-rwxr-xr-xmodules/polynomials/sci_gateway/c/.deps/libscipolynomials_la-sci_tril.Plo60
-rwxr-xr-xmodules/polynomials/sci_gateway/c/.deps/libscipolynomials_la-sci_triu.Plo60
-rwxr-xr-xmodules/polynomials/sci_gateway/c/.deps/libscipolynomials_la-sci_varn.Plo61
-rwxr-xr-xmodules/polynomials/sci_gateway/c/.dirstamp0
-rwxr-xr-xmodules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-gw_polynomials.obin0 -> 7832 bytes
-rwxr-xr-xmodules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_bezout.obin0 -> 4088 bytes
-rwxr-xr-xmodules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_cleanp.obin0 -> 4096 bytes
-rwxr-xr-xmodules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_coeff.obin0 -> 4080 bytes
-rwxr-xr-xmodules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_degree.obin0 -> 4096 bytes
-rwxr-xr-xmodules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_diag.obin0 -> 4080 bytes
-rwxr-xr-xmodules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_div.obin0 -> 4080 bytes
-rwxr-xr-xmodules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_poly.obin0 -> 4096 bytes
-rwxr-xr-xmodules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_prod.obin0 -> 4080 bytes
-rwxr-xr-xmodules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_roots.obin0 -> 4080 bytes
-rwxr-xr-xmodules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_sfact.obin0 -> 4080 bytes
-rwxr-xr-xmodules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_simp.obin0 -> 4080 bytes
-rwxr-xr-xmodules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_simp_mode.obin0 -> 4104 bytes
-rwxr-xr-xmodules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_sum.obin0 -> 4080 bytes
-rwxr-xr-xmodules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_tril.obin0 -> 4120 bytes
-rwxr-xr-xmodules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_triu.obin0 -> 4120 bytes
-rwxr-xr-xmodules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_varn.obin0 -> 4080 bytes
-rwxr-xr-xmodules/polynomials/sci_gateway/c/gw_polynomials.c59
-rwxr-xr-xmodules/polynomials/sci_gateway/c/libscipolynomials_la-gw_polynomials.lo12
-rwxr-xr-xmodules/polynomials/sci_gateway/c/libscipolynomials_la-sci_bezout.lo12
-rwxr-xr-xmodules/polynomials/sci_gateway/c/libscipolynomials_la-sci_cleanp.lo12
-rwxr-xr-xmodules/polynomials/sci_gateway/c/libscipolynomials_la-sci_coeff.lo12
-rwxr-xr-xmodules/polynomials/sci_gateway/c/libscipolynomials_la-sci_degree.lo12
-rwxr-xr-xmodules/polynomials/sci_gateway/c/libscipolynomials_la-sci_diag.lo12
-rwxr-xr-xmodules/polynomials/sci_gateway/c/libscipolynomials_la-sci_div.lo12
-rwxr-xr-xmodules/polynomials/sci_gateway/c/libscipolynomials_la-sci_poly.lo12
-rwxr-xr-xmodules/polynomials/sci_gateway/c/libscipolynomials_la-sci_prod.lo12
-rwxr-xr-xmodules/polynomials/sci_gateway/c/libscipolynomials_la-sci_roots.lo12
-rwxr-xr-xmodules/polynomials/sci_gateway/c/libscipolynomials_la-sci_sfact.lo12
-rwxr-xr-xmodules/polynomials/sci_gateway/c/libscipolynomials_la-sci_simp.lo12
-rwxr-xr-xmodules/polynomials/sci_gateway/c/libscipolynomials_la-sci_simp_mode.lo12
-rwxr-xr-xmodules/polynomials/sci_gateway/c/libscipolynomials_la-sci_sum.lo12
-rwxr-xr-xmodules/polynomials/sci_gateway/c/libscipolynomials_la-sci_tril.lo12
-rwxr-xr-xmodules/polynomials/sci_gateway/c/libscipolynomials_la-sci_triu.lo12
-rwxr-xr-xmodules/polynomials/sci_gateway/c/libscipolynomials_la-sci_varn.lo12
-rwxr-xr-xmodules/polynomials/sci_gateway/c/sci_bezout.c26
-rwxr-xr-xmodules/polynomials/sci_gateway/c/sci_cleanp.c26
-rwxr-xr-xmodules/polynomials/sci_gateway/c/sci_coeff.c26
-rwxr-xr-xmodules/polynomials/sci_gateway/c/sci_degree.c26
-rwxr-xr-xmodules/polynomials/sci_gateway/c/sci_diag.c26
-rwxr-xr-xmodules/polynomials/sci_gateway/c/sci_div.c26
-rwxr-xr-xmodules/polynomials/sci_gateway/c/sci_poly.c26
-rwxr-xr-xmodules/polynomials/sci_gateway/c/sci_prod.c26
-rwxr-xr-xmodules/polynomials/sci_gateway/c/sci_roots.c26
-rwxr-xr-xmodules/polynomials/sci_gateway/c/sci_sfact.c26
-rwxr-xr-xmodules/polynomials/sci_gateway/c/sci_simp.c26
-rwxr-xr-xmodules/polynomials/sci_gateway/c/sci_simp_mode.c26
-rwxr-xr-xmodules/polynomials/sci_gateway/c/sci_sum.c26
-rwxr-xr-xmodules/polynomials/sci_gateway/c/sci_tril.c27
-rwxr-xr-xmodules/polynomials/sci_gateway/c/sci_triu.c27
-rwxr-xr-xmodules/polynomials/sci_gateway/c/sci_varn.c26
-rwxr-xr-xmodules/polynomials/sci_gateway/fortran/.deps/.dirstamp0
-rwxr-xr-xmodules/polynomials/sci_gateway/fortran/.dirstamp0
-rwxr-xr-xmodules/polynomials/sci_gateway/fortran/.libs/polops.obin0 -> 179728 bytes
-rwxr-xr-xmodules/polynomials/sci_gateway/fortran/.libs/sci_f_bezout.obin0 -> 22112 bytes
-rwxr-xr-xmodules/polynomials/sci_gateway/fortran/.libs/sci_f_coeff.obin0 -> 26088 bytes
-rwxr-xr-xmodules/polynomials/sci_gateway/fortran/.libs/sci_f_degree.obin0 -> 16832 bytes
-rwxr-xr-xmodules/polynomials/sci_gateway/fortran/.libs/sci_f_diag.obin0 -> 22640 bytes
-rwxr-xr-xmodules/polynomials/sci_gateway/fortran/.libs/sci_f_div.obin0 -> 29976 bytes
-rwxr-xr-xmodules/polynomials/sci_gateway/fortran/.libs/sci_f_pclean.obin0 -> 17544 bytes
-rwxr-xr-xmodules/polynomials/sci_gateway/fortran/.libs/sci_f_poly.obin0 -> 27424 bytes
-rwxr-xr-xmodules/polynomials/sci_gateway/fortran/.libs/sci_f_prod.obin0 -> 18424 bytes
-rwxr-xr-xmodules/polynomials/sci_gateway/fortran/.libs/sci_f_psimp.obin0 -> 24256 bytes
-rwxr-xr-xmodules/polynomials/sci_gateway/fortran/.libs/sci_f_roots.obin0 -> 27504 bytes
-rwxr-xr-xmodules/polynomials/sci_gateway/fortran/.libs/sci_f_rsimp.obin0 -> 26616 bytes
-rwxr-xr-xmodules/polynomials/sci_gateway/fortran/.libs/sci_f_sfact.obin0 -> 23232 bytes
-rwxr-xr-xmodules/polynomials/sci_gateway/fortran/.libs/sci_f_simp.obin0 -> 12424 bytes
-rwxr-xr-xmodules/polynomials/sci_gateway/fortran/.libs/sci_f_simpmd.obin0 -> 13232 bytes
-rwxr-xr-xmodules/polynomials/sci_gateway/fortran/.libs/sci_f_sum.obin0 -> 19152 bytes
-rwxr-xr-xmodules/polynomials/sci_gateway/fortran/.libs/sci_f_triu_tril.obin0 -> 21952 bytes
-rwxr-xr-xmodules/polynomials/sci_gateway/fortran/.libs/sci_f_varn.obin0 -> 18488 bytes
-rwxr-xr-xmodules/polynomials/sci_gateway/fortran/polops.f2213
-rwxr-xr-xmodules/polynomials/sci_gateway/fortran/polops.lo12
-rwxr-xr-xmodules/polynomials/sci_gateway/fortran/sci_f_bezout.f156
-rwxr-xr-xmodules/polynomials/sci_gateway/fortran/sci_f_bezout.lo12
-rwxr-xr-xmodules/polynomials/sci_gateway/fortran/sci_f_coeff.f207
-rwxr-xr-xmodules/polynomials/sci_gateway/fortran/sci_f_coeff.lo12
-rwxr-xr-xmodules/polynomials/sci_gateway/fortran/sci_f_degree.f93
-rwxr-xr-xmodules/polynomials/sci_gateway/fortran/sci_f_degree.lo12
-rwxr-xr-xmodules/polynomials/sci_gateway/fortran/sci_f_diag.f132
-rwxr-xr-xmodules/polynomials/sci_gateway/fortran/sci_f_diag.lo12
-rwxr-xr-xmodules/polynomials/sci_gateway/fortran/sci_f_div.f299
-rwxr-xr-xmodules/polynomials/sci_gateway/fortran/sci_f_div.lo12
-rwxr-xr-xmodules/polynomials/sci_gateway/fortran/sci_f_pclean.f124
-rwxr-xr-xmodules/polynomials/sci_gateway/fortran/sci_f_pclean.lo12
-rwxr-xr-xmodules/polynomials/sci_gateway/fortran/sci_f_poly.f244
-rwxr-xr-xmodules/polynomials/sci_gateway/fortran/sci_f_poly.lo12
-rwxr-xr-xmodules/polynomials/sci_gateway/fortran/sci_f_prod.f96
-rwxr-xr-xmodules/polynomials/sci_gateway/fortran/sci_f_prod.lo12
-rwxr-xr-xmodules/polynomials/sci_gateway/fortran/sci_f_psimp.f213
-rwxr-xr-xmodules/polynomials/sci_gateway/fortran/sci_f_psimp.lo12
-rwxr-xr-xmodules/polynomials/sci_gateway/fortran/sci_f_roots.f243
-rwxr-xr-xmodules/polynomials/sci_gateway/fortran/sci_f_roots.lo12
-rwxr-xr-xmodules/polynomials/sci_gateway/fortran/sci_f_rsimp.f211
-rwxr-xr-xmodules/polynomials/sci_gateway/fortran/sci_f_rsimp.lo12
-rwxr-xr-xmodules/polynomials/sci_gateway/fortran/sci_f_sfact.f166
-rwxr-xr-xmodules/polynomials/sci_gateway/fortran/sci_f_sfact.lo12
-rwxr-xr-xmodules/polynomials/sci_gateway/fortran/sci_f_simp.f34
-rwxr-xr-xmodules/polynomials/sci_gateway/fortran/sci_f_simp.lo12
-rwxr-xr-xmodules/polynomials/sci_gateway/fortran/sci_f_simpmd.f57
-rwxr-xr-xmodules/polynomials/sci_gateway/fortran/sci_f_simpmd.lo12
-rwxr-xr-xmodules/polynomials/sci_gateway/fortran/sci_f_sum.f94
-rwxr-xr-xmodules/polynomials/sci_gateway/fortran/sci_f_sum.lo12
-rwxr-xr-xmodules/polynomials/sci_gateway/fortran/sci_f_triu_tril.f117
-rwxr-xr-xmodules/polynomials/sci_gateway/fortran/sci_f_triu_tril.lo12
-rwxr-xr-xmodules/polynomials/sci_gateway/fortran/sci_f_varn.f116
-rwxr-xr-xmodules/polynomials/sci_gateway/fortran/sci_f_varn.lo12
-rwxr-xr-xmodules/polynomials/sci_gateway/polynomials_gateway.xml56
127 files changed, 7017 insertions, 0 deletions
diff --git a/modules/polynomials/sci_gateway/c/.deps/.dirstamp b/modules/polynomials/sci_gateway/c/.deps/.dirstamp
new file mode 100755
index 000000000..e69de29bb
--- /dev/null
+++ b/modules/polynomials/sci_gateway/c/.deps/.dirstamp
diff --git a/modules/polynomials/sci_gateway/c/.deps/libscipolynomials_la-gw_polynomials.Plo b/modules/polynomials/sci_gateway/c/.deps/libscipolynomials_la-gw_polynomials.Plo
new file mode 100755
index 000000000..05c4ad406
--- /dev/null
+++ b/modules/polynomials/sci_gateway/c/.deps/libscipolynomials_la-gw_polynomials.Plo
@@ -0,0 +1,274 @@
+sci_gateway/c/libscipolynomials_la-gw_polynomials.lo: \
+ sci_gateway/c/gw_polynomials.c /usr/include/stdc-predef.h \
+ includes/gw_polynomials.h includes/dynlib_polynomials.h \
+ ../../modules/core/includes/callFunctionFromGateway.h \
+ ../../modules/api_scilab/includes/api_scilab.h \
+ ../../modules/core/includes/stack-c.h /usr/include/string.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/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/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/math.h \
+ /usr/include/x86_64-linux-gnu/bits/math-vector.h \
+ /usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_val.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_valf.h \
+ /usr/include/x86_64-linux-gnu/bits/huge_vall.h \
+ /usr/include/x86_64-linux-gnu/bits/inf.h \
+ /usr/include/x86_64-linux-gnu/bits/nan.h \
+ /usr/include/x86_64-linux-gnu/bits/mathdef.h \
+ /usr/include/x86_64-linux-gnu/bits/mathcalls.h \
+ /usr/include/x86_64-linux-gnu/bits/mathinline.h \
+ /usr/include/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
+
+/usr/include/stdc-predef.h:
+
+includes/gw_polynomials.h:
+
+includes/dynlib_polynomials.h:
+
+../../modules/core/includes/callFunctionFromGateway.h:
+
+../../modules/api_scilab/includes/api_scilab.h:
+
+../../modules/core/includes/stack-c.h:
+
+/usr/include/string.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/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/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/math.h:
+
+/usr/include/x86_64-linux-gnu/bits/math-vector.h:
+
+/usr/include/x86_64-linux-gnu/bits/libm-simd-decl-stubs.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_val.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_valf.h:
+
+/usr/include/x86_64-linux-gnu/bits/huge_vall.h:
+
+/usr/include/x86_64-linux-gnu/bits/inf.h:
+
+/usr/include/x86_64-linux-gnu/bits/nan.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathdef.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathcalls.h:
+
+/usr/include/x86_64-linux-gnu/bits/mathinline.h:
+
+/usr/include/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:
diff --git a/modules/polynomials/sci_gateway/c/.deps/libscipolynomials_la-sci_bezout.Plo b/modules/polynomials/sci_gateway/c/.deps/libscipolynomials_la-sci_bezout.Plo
new file mode 100755
index 000000000..fdd7d9c8d
--- /dev/null
+++ b/modules/polynomials/sci_gateway/c/.deps/libscipolynomials_la-sci_bezout.Plo
@@ -0,0 +1,62 @@
+sci_gateway/c/libscipolynomials_la-sci_bezout.lo: \
+ sci_gateway/c/sci_bezout.c /usr/include/stdc-predef.h \
+ /usr/include/string.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/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/machine.h includes/gw_polynomials.h \
+ includes/dynlib_polynomials.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/string.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/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/machine.h:
+
+includes/gw_polynomials.h:
+
+includes/dynlib_polynomials.h:
diff --git a/modules/polynomials/sci_gateway/c/.deps/libscipolynomials_la-sci_cleanp.Plo b/modules/polynomials/sci_gateway/c/.deps/libscipolynomials_la-sci_cleanp.Plo
new file mode 100755
index 000000000..5908e0450
--- /dev/null
+++ b/modules/polynomials/sci_gateway/c/.deps/libscipolynomials_la-sci_cleanp.Plo
@@ -0,0 +1,61 @@
+sci_gateway/c/libscipolynomials_la-sci_cleanp.lo: \
+ sci_gateway/c/sci_cleanp.c /usr/include/stdc-predef.h \
+ /usr/include/string.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/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_polynomials.h \
+ includes/dynlib_polynomials.h ../../modules/core/includes/machine.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/string.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/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_polynomials.h:
+
+includes/dynlib_polynomials.h:
+
+../../modules/core/includes/machine.h:
diff --git a/modules/polynomials/sci_gateway/c/.deps/libscipolynomials_la-sci_coeff.Plo b/modules/polynomials/sci_gateway/c/.deps/libscipolynomials_la-sci_coeff.Plo
new file mode 100755
index 000000000..099ae9101
--- /dev/null
+++ b/modules/polynomials/sci_gateway/c/.deps/libscipolynomials_la-sci_coeff.Plo
@@ -0,0 +1,61 @@
+sci_gateway/c/libscipolynomials_la-sci_coeff.lo: \
+ sci_gateway/c/sci_coeff.c /usr/include/stdc-predef.h \
+ /usr/include/string.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/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_polynomials.h \
+ includes/dynlib_polynomials.h ../../modules/core/includes/machine.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/string.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/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_polynomials.h:
+
+includes/dynlib_polynomials.h:
+
+../../modules/core/includes/machine.h:
diff --git a/modules/polynomials/sci_gateway/c/.deps/libscipolynomials_la-sci_degree.Plo b/modules/polynomials/sci_gateway/c/.deps/libscipolynomials_la-sci_degree.Plo
new file mode 100755
index 000000000..e69dca0d7
--- /dev/null
+++ b/modules/polynomials/sci_gateway/c/.deps/libscipolynomials_la-sci_degree.Plo
@@ -0,0 +1,61 @@
+sci_gateway/c/libscipolynomials_la-sci_degree.lo: \
+ sci_gateway/c/sci_degree.c /usr/include/stdc-predef.h \
+ /usr/include/string.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/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_polynomials.h \
+ includes/dynlib_polynomials.h ../../modules/core/includes/machine.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/string.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/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_polynomials.h:
+
+includes/dynlib_polynomials.h:
+
+../../modules/core/includes/machine.h:
diff --git a/modules/polynomials/sci_gateway/c/.deps/libscipolynomials_la-sci_diag.Plo b/modules/polynomials/sci_gateway/c/.deps/libscipolynomials_la-sci_diag.Plo
new file mode 100755
index 000000000..f419ba091
--- /dev/null
+++ b/modules/polynomials/sci_gateway/c/.deps/libscipolynomials_la-sci_diag.Plo
@@ -0,0 +1,60 @@
+sci_gateway/c/libscipolynomials_la-sci_diag.lo: sci_gateway/c/sci_diag.c \
+ /usr/include/stdc-predef.h /usr/include/string.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/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_polynomials.h \
+ includes/dynlib_polynomials.h ../../modules/core/includes/machine.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/string.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/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_polynomials.h:
+
+includes/dynlib_polynomials.h:
+
+../../modules/core/includes/machine.h:
diff --git a/modules/polynomials/sci_gateway/c/.deps/libscipolynomials_la-sci_div.Plo b/modules/polynomials/sci_gateway/c/.deps/libscipolynomials_la-sci_div.Plo
new file mode 100755
index 000000000..4cfc6aafd
--- /dev/null
+++ b/modules/polynomials/sci_gateway/c/.deps/libscipolynomials_la-sci_div.Plo
@@ -0,0 +1,61 @@
+sci_gateway/c/libscipolynomials_la-sci_div.lo: sci_gateway/c/sci_div.c \
+ /usr/include/stdc-predef.h /usr/include/string.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/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/machine.h includes/gw_polynomials.h \
+ includes/dynlib_polynomials.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/string.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/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/machine.h:
+
+includes/gw_polynomials.h:
+
+includes/dynlib_polynomials.h:
diff --git a/modules/polynomials/sci_gateway/c/.deps/libscipolynomials_la-sci_poly.Plo b/modules/polynomials/sci_gateway/c/.deps/libscipolynomials_la-sci_poly.Plo
new file mode 100755
index 000000000..85dd8b60b
--- /dev/null
+++ b/modules/polynomials/sci_gateway/c/.deps/libscipolynomials_la-sci_poly.Plo
@@ -0,0 +1,60 @@
+sci_gateway/c/libscipolynomials_la-sci_poly.lo: sci_gateway/c/sci_poly.c \
+ /usr/include/stdc-predef.h /usr/include/string.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/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_polynomials.h \
+ includes/dynlib_polynomials.h ../../modules/core/includes/machine.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/string.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/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_polynomials.h:
+
+includes/dynlib_polynomials.h:
+
+../../modules/core/includes/machine.h:
diff --git a/modules/polynomials/sci_gateway/c/.deps/libscipolynomials_la-sci_prod.Plo b/modules/polynomials/sci_gateway/c/.deps/libscipolynomials_la-sci_prod.Plo
new file mode 100755
index 000000000..4fa01ef31
--- /dev/null
+++ b/modules/polynomials/sci_gateway/c/.deps/libscipolynomials_la-sci_prod.Plo
@@ -0,0 +1,60 @@
+sci_gateway/c/libscipolynomials_la-sci_prod.lo: sci_gateway/c/sci_prod.c \
+ /usr/include/stdc-predef.h /usr/include/string.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/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_polynomials.h \
+ includes/dynlib_polynomials.h ../../modules/core/includes/machine.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/string.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/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_polynomials.h:
+
+includes/dynlib_polynomials.h:
+
+../../modules/core/includes/machine.h:
diff --git a/modules/polynomials/sci_gateway/c/.deps/libscipolynomials_la-sci_roots.Plo b/modules/polynomials/sci_gateway/c/.deps/libscipolynomials_la-sci_roots.Plo
new file mode 100755
index 000000000..9f8ad699f
--- /dev/null
+++ b/modules/polynomials/sci_gateway/c/.deps/libscipolynomials_la-sci_roots.Plo
@@ -0,0 +1,62 @@
+sci_gateway/c/libscipolynomials_la-sci_roots.lo: \
+ sci_gateway/c/sci_roots.c /usr/include/stdc-predef.h \
+ /usr/include/string.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/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/machine.h includes/gw_polynomials.h \
+ includes/dynlib_polynomials.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/string.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/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/machine.h:
+
+includes/gw_polynomials.h:
+
+includes/dynlib_polynomials.h:
diff --git a/modules/polynomials/sci_gateway/c/.deps/libscipolynomials_la-sci_sfact.Plo b/modules/polynomials/sci_gateway/c/.deps/libscipolynomials_la-sci_sfact.Plo
new file mode 100755
index 000000000..d142dfe91
--- /dev/null
+++ b/modules/polynomials/sci_gateway/c/.deps/libscipolynomials_la-sci_sfact.Plo
@@ -0,0 +1,62 @@
+sci_gateway/c/libscipolynomials_la-sci_sfact.lo: \
+ sci_gateway/c/sci_sfact.c /usr/include/stdc-predef.h \
+ /usr/include/string.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/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/machine.h includes/gw_polynomials.h \
+ includes/dynlib_polynomials.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/string.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/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/machine.h:
+
+includes/gw_polynomials.h:
+
+includes/dynlib_polynomials.h:
diff --git a/modules/polynomials/sci_gateway/c/.deps/libscipolynomials_la-sci_simp.Plo b/modules/polynomials/sci_gateway/c/.deps/libscipolynomials_la-sci_simp.Plo
new file mode 100755
index 000000000..c2ed02293
--- /dev/null
+++ b/modules/polynomials/sci_gateway/c/.deps/libscipolynomials_la-sci_simp.Plo
@@ -0,0 +1,61 @@
+sci_gateway/c/libscipolynomials_la-sci_simp.lo: sci_gateway/c/sci_simp.c \
+ /usr/include/stdc-predef.h /usr/include/string.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/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/machine.h includes/gw_polynomials.h \
+ includes/dynlib_polynomials.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/string.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/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/machine.h:
+
+includes/gw_polynomials.h:
+
+includes/dynlib_polynomials.h:
diff --git a/modules/polynomials/sci_gateway/c/.deps/libscipolynomials_la-sci_simp_mode.Plo b/modules/polynomials/sci_gateway/c/.deps/libscipolynomials_la-sci_simp_mode.Plo
new file mode 100755
index 000000000..141d6c695
--- /dev/null
+++ b/modules/polynomials/sci_gateway/c/.deps/libscipolynomials_la-sci_simp_mode.Plo
@@ -0,0 +1,62 @@
+sci_gateway/c/libscipolynomials_la-sci_simp_mode.lo: \
+ sci_gateway/c/sci_simp_mode.c /usr/include/stdc-predef.h \
+ /usr/include/string.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/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/machine.h includes/gw_polynomials.h \
+ includes/dynlib_polynomials.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/string.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/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/machine.h:
+
+includes/gw_polynomials.h:
+
+includes/dynlib_polynomials.h:
diff --git a/modules/polynomials/sci_gateway/c/.deps/libscipolynomials_la-sci_sum.Plo b/modules/polynomials/sci_gateway/c/.deps/libscipolynomials_la-sci_sum.Plo
new file mode 100755
index 000000000..66339332e
--- /dev/null
+++ b/modules/polynomials/sci_gateway/c/.deps/libscipolynomials_la-sci_sum.Plo
@@ -0,0 +1,61 @@
+sci_gateway/c/libscipolynomials_la-sci_sum.lo: sci_gateway/c/sci_sum.c \
+ /usr/include/stdc-predef.h /usr/include/string.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/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/machine.h includes/gw_polynomials.h \
+ includes/dynlib_polynomials.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/string.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/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/machine.h:
+
+includes/gw_polynomials.h:
+
+includes/dynlib_polynomials.h:
diff --git a/modules/polynomials/sci_gateway/c/.deps/libscipolynomials_la-sci_tril.Plo b/modules/polynomials/sci_gateway/c/.deps/libscipolynomials_la-sci_tril.Plo
new file mode 100755
index 000000000..b25f510d2
--- /dev/null
+++ b/modules/polynomials/sci_gateway/c/.deps/libscipolynomials_la-sci_tril.Plo
@@ -0,0 +1,60 @@
+sci_gateway/c/libscipolynomials_la-sci_tril.lo: sci_gateway/c/sci_tril.c \
+ /usr/include/stdc-predef.h /usr/include/string.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/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_polynomials.h \
+ includes/dynlib_polynomials.h ../../modules/core/includes/machine.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/string.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/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_polynomials.h:
+
+includes/dynlib_polynomials.h:
+
+../../modules/core/includes/machine.h:
diff --git a/modules/polynomials/sci_gateway/c/.deps/libscipolynomials_la-sci_triu.Plo b/modules/polynomials/sci_gateway/c/.deps/libscipolynomials_la-sci_triu.Plo
new file mode 100755
index 000000000..9047a2bfa
--- /dev/null
+++ b/modules/polynomials/sci_gateway/c/.deps/libscipolynomials_la-sci_triu.Plo
@@ -0,0 +1,60 @@
+sci_gateway/c/libscipolynomials_la-sci_triu.lo: sci_gateway/c/sci_triu.c \
+ /usr/include/stdc-predef.h /usr/include/string.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/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_polynomials.h \
+ includes/dynlib_polynomials.h ../../modules/core/includes/machine.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/string.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/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_polynomials.h:
+
+includes/dynlib_polynomials.h:
+
+../../modules/core/includes/machine.h:
diff --git a/modules/polynomials/sci_gateway/c/.deps/libscipolynomials_la-sci_varn.Plo b/modules/polynomials/sci_gateway/c/.deps/libscipolynomials_la-sci_varn.Plo
new file mode 100755
index 000000000..a3eecd299
--- /dev/null
+++ b/modules/polynomials/sci_gateway/c/.deps/libscipolynomials_la-sci_varn.Plo
@@ -0,0 +1,61 @@
+sci_gateway/c/libscipolynomials_la-sci_varn.lo: sci_gateway/c/sci_varn.c \
+ /usr/include/stdc-predef.h /usr/include/string.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/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/machine.h includes/gw_polynomials.h \
+ includes/dynlib_polynomials.h
+
+/usr/include/stdc-predef.h:
+
+/usr/include/string.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/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/machine.h:
+
+includes/gw_polynomials.h:
+
+includes/dynlib_polynomials.h:
diff --git a/modules/polynomials/sci_gateway/c/.dirstamp b/modules/polynomials/sci_gateway/c/.dirstamp
new file mode 100755
index 000000000..e69de29bb
--- /dev/null
+++ b/modules/polynomials/sci_gateway/c/.dirstamp
diff --git a/modules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-gw_polynomials.o b/modules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-gw_polynomials.o
new file mode 100755
index 000000000..a6bbb051e
--- /dev/null
+++ b/modules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-gw_polynomials.o
Binary files differ
diff --git a/modules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_bezout.o b/modules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_bezout.o
new file mode 100755
index 000000000..df9859a0e
--- /dev/null
+++ b/modules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_bezout.o
Binary files differ
diff --git a/modules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_cleanp.o b/modules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_cleanp.o
new file mode 100755
index 000000000..636bb4f89
--- /dev/null
+++ b/modules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_cleanp.o
Binary files differ
diff --git a/modules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_coeff.o b/modules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_coeff.o
new file mode 100755
index 000000000..9e91becb6
--- /dev/null
+++ b/modules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_coeff.o
Binary files differ
diff --git a/modules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_degree.o b/modules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_degree.o
new file mode 100755
index 000000000..d904d2122
--- /dev/null
+++ b/modules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_degree.o
Binary files differ
diff --git a/modules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_diag.o b/modules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_diag.o
new file mode 100755
index 000000000..77d1920b3
--- /dev/null
+++ b/modules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_diag.o
Binary files differ
diff --git a/modules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_div.o b/modules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_div.o
new file mode 100755
index 000000000..64d121b08
--- /dev/null
+++ b/modules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_div.o
Binary files differ
diff --git a/modules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_poly.o b/modules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_poly.o
new file mode 100755
index 000000000..db4442c66
--- /dev/null
+++ b/modules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_poly.o
Binary files differ
diff --git a/modules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_prod.o b/modules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_prod.o
new file mode 100755
index 000000000..c632d150e
--- /dev/null
+++ b/modules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_prod.o
Binary files differ
diff --git a/modules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_roots.o b/modules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_roots.o
new file mode 100755
index 000000000..6c7b142bc
--- /dev/null
+++ b/modules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_roots.o
Binary files differ
diff --git a/modules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_sfact.o b/modules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_sfact.o
new file mode 100755
index 000000000..15085ffa0
--- /dev/null
+++ b/modules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_sfact.o
Binary files differ
diff --git a/modules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_simp.o b/modules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_simp.o
new file mode 100755
index 000000000..08300b3e6
--- /dev/null
+++ b/modules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_simp.o
Binary files differ
diff --git a/modules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_simp_mode.o b/modules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_simp_mode.o
new file mode 100755
index 000000000..432e10607
--- /dev/null
+++ b/modules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_simp_mode.o
Binary files differ
diff --git a/modules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_sum.o b/modules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_sum.o
new file mode 100755
index 000000000..3de28d3d8
--- /dev/null
+++ b/modules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_sum.o
Binary files differ
diff --git a/modules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_tril.o b/modules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_tril.o
new file mode 100755
index 000000000..24efec6f9
--- /dev/null
+++ b/modules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_tril.o
Binary files differ
diff --git a/modules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_triu.o b/modules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_triu.o
new file mode 100755
index 000000000..84bee6b41
--- /dev/null
+++ b/modules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_triu.o
Binary files differ
diff --git a/modules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_varn.o b/modules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_varn.o
new file mode 100755
index 000000000..55bd5b678
--- /dev/null
+++ b/modules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_varn.o
Binary files differ
diff --git a/modules/polynomials/sci_gateway/c/gw_polynomials.c b/modules/polynomials/sci_gateway/c/gw_polynomials.c
new file mode 100755
index 000000000..f9114f4e0
--- /dev/null
+++ b/modules/polynomials/sci_gateway/c/gw_polynomials.c
@@ -0,0 +1,59 @@
+/*
+ * 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 "gw_polynomials.h"
+#include "callFunctionFromGateway.h"
+#include "api_scilab.h"
+#include "MALLOC.h"
+/*--------------------------------------------------------------------------*/
+static int sci_notused(char *fname, unsigned long fname_len)
+{
+ /* not used */
+ return 0;
+}
+/*--------------------------------------------------------------------------*/
+static gw_generic_table Tab[] =
+{
+ {sci_poly_primitive, "poly"},
+ {sci_roots, "roots"},
+ {sci_degree, "degree"},
+ {sci_coeff, "coeff"},
+ {sci_notused, ""}, /* not used but required primitives order (short cut fin,fun) */
+ {sci_pppdiv, "pppdiv"},
+ {sci_simp, "simp"},
+ {sci_psum, "sum"},
+ {sci_pprod, "prod"},
+ {sci_pdiag, "diag"},
+ {sci_ptriu, "triu"},
+ {sci_ptril, "tril"},
+ {sci_bezout, "bezout"},
+ {sci_sfact, "sfact"},
+ {sci_simp_mode, "simp_mode"},
+ {sci_varn, "varn"},
+ {sci_cleanp, "cleanp"}
+};
+/*--------------------------------------------------------------------------*/
+int gw_polynomials(void)
+{
+ callFunctionFromGateway(Tab, SIZE_CURRENT_GENERIC_TABLE(Tab));
+
+ if (pvApiCtx == NULL)
+ {
+ pvApiCtx = (StrCtx*)MALLOC(sizeof(StrCtx));
+ }
+
+ pvApiCtx->pstName = (char*)Tab[Fin - 1].name;
+ return 0;
+}
+/*--------------------------------------------------------------------------*/
diff --git a/modules/polynomials/sci_gateway/c/libscipolynomials_la-gw_polynomials.lo b/modules/polynomials/sci_gateway/c/libscipolynomials_la-gw_polynomials.lo
new file mode 100755
index 000000000..8e519f64f
--- /dev/null
+++ b/modules/polynomials/sci_gateway/c/libscipolynomials_la-gw_polynomials.lo
@@ -0,0 +1,12 @@
+# sci_gateway/c/libscipolynomials_la-gw_polynomials.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/libscipolynomials_la-gw_polynomials.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/polynomials/sci_gateway/c/libscipolynomials_la-sci_bezout.lo b/modules/polynomials/sci_gateway/c/libscipolynomials_la-sci_bezout.lo
new file mode 100755
index 000000000..557d0625d
--- /dev/null
+++ b/modules/polynomials/sci_gateway/c/libscipolynomials_la-sci_bezout.lo
@@ -0,0 +1,12 @@
+# sci_gateway/c/libscipolynomials_la-sci_bezout.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/libscipolynomials_la-sci_bezout.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/polynomials/sci_gateway/c/libscipolynomials_la-sci_cleanp.lo b/modules/polynomials/sci_gateway/c/libscipolynomials_la-sci_cleanp.lo
new file mode 100755
index 000000000..0349fca1b
--- /dev/null
+++ b/modules/polynomials/sci_gateway/c/libscipolynomials_la-sci_cleanp.lo
@@ -0,0 +1,12 @@
+# sci_gateway/c/libscipolynomials_la-sci_cleanp.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/libscipolynomials_la-sci_cleanp.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/polynomials/sci_gateway/c/libscipolynomials_la-sci_coeff.lo b/modules/polynomials/sci_gateway/c/libscipolynomials_la-sci_coeff.lo
new file mode 100755
index 000000000..9f52ef861
--- /dev/null
+++ b/modules/polynomials/sci_gateway/c/libscipolynomials_la-sci_coeff.lo
@@ -0,0 +1,12 @@
+# sci_gateway/c/libscipolynomials_la-sci_coeff.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/libscipolynomials_la-sci_coeff.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/polynomials/sci_gateway/c/libscipolynomials_la-sci_degree.lo b/modules/polynomials/sci_gateway/c/libscipolynomials_la-sci_degree.lo
new file mode 100755
index 000000000..40c6c1695
--- /dev/null
+++ b/modules/polynomials/sci_gateway/c/libscipolynomials_la-sci_degree.lo
@@ -0,0 +1,12 @@
+# sci_gateway/c/libscipolynomials_la-sci_degree.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/libscipolynomials_la-sci_degree.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/polynomials/sci_gateway/c/libscipolynomials_la-sci_diag.lo b/modules/polynomials/sci_gateway/c/libscipolynomials_la-sci_diag.lo
new file mode 100755
index 000000000..6c0f035ba
--- /dev/null
+++ b/modules/polynomials/sci_gateway/c/libscipolynomials_la-sci_diag.lo
@@ -0,0 +1,12 @@
+# sci_gateway/c/libscipolynomials_la-sci_diag.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/libscipolynomials_la-sci_diag.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/polynomials/sci_gateway/c/libscipolynomials_la-sci_div.lo b/modules/polynomials/sci_gateway/c/libscipolynomials_la-sci_div.lo
new file mode 100755
index 000000000..da0340274
--- /dev/null
+++ b/modules/polynomials/sci_gateway/c/libscipolynomials_la-sci_div.lo
@@ -0,0 +1,12 @@
+# sci_gateway/c/libscipolynomials_la-sci_div.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/libscipolynomials_la-sci_div.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/polynomials/sci_gateway/c/libscipolynomials_la-sci_poly.lo b/modules/polynomials/sci_gateway/c/libscipolynomials_la-sci_poly.lo
new file mode 100755
index 000000000..be259b290
--- /dev/null
+++ b/modules/polynomials/sci_gateway/c/libscipolynomials_la-sci_poly.lo
@@ -0,0 +1,12 @@
+# sci_gateway/c/libscipolynomials_la-sci_poly.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/libscipolynomials_la-sci_poly.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/polynomials/sci_gateway/c/libscipolynomials_la-sci_prod.lo b/modules/polynomials/sci_gateway/c/libscipolynomials_la-sci_prod.lo
new file mode 100755
index 000000000..9232c8fe4
--- /dev/null
+++ b/modules/polynomials/sci_gateway/c/libscipolynomials_la-sci_prod.lo
@@ -0,0 +1,12 @@
+# sci_gateway/c/libscipolynomials_la-sci_prod.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/libscipolynomials_la-sci_prod.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/polynomials/sci_gateway/c/libscipolynomials_la-sci_roots.lo b/modules/polynomials/sci_gateway/c/libscipolynomials_la-sci_roots.lo
new file mode 100755
index 000000000..a10d0db18
--- /dev/null
+++ b/modules/polynomials/sci_gateway/c/libscipolynomials_la-sci_roots.lo
@@ -0,0 +1,12 @@
+# sci_gateway/c/libscipolynomials_la-sci_roots.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/libscipolynomials_la-sci_roots.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/polynomials/sci_gateway/c/libscipolynomials_la-sci_sfact.lo b/modules/polynomials/sci_gateway/c/libscipolynomials_la-sci_sfact.lo
new file mode 100755
index 000000000..9023fe73a
--- /dev/null
+++ b/modules/polynomials/sci_gateway/c/libscipolynomials_la-sci_sfact.lo
@@ -0,0 +1,12 @@
+# sci_gateway/c/libscipolynomials_la-sci_sfact.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/libscipolynomials_la-sci_sfact.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/polynomials/sci_gateway/c/libscipolynomials_la-sci_simp.lo b/modules/polynomials/sci_gateway/c/libscipolynomials_la-sci_simp.lo
new file mode 100755
index 000000000..850b7a11e
--- /dev/null
+++ b/modules/polynomials/sci_gateway/c/libscipolynomials_la-sci_simp.lo
@@ -0,0 +1,12 @@
+# sci_gateway/c/libscipolynomials_la-sci_simp.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/libscipolynomials_la-sci_simp.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/polynomials/sci_gateway/c/libscipolynomials_la-sci_simp_mode.lo b/modules/polynomials/sci_gateway/c/libscipolynomials_la-sci_simp_mode.lo
new file mode 100755
index 000000000..69cb17fa6
--- /dev/null
+++ b/modules/polynomials/sci_gateway/c/libscipolynomials_la-sci_simp_mode.lo
@@ -0,0 +1,12 @@
+# sci_gateway/c/libscipolynomials_la-sci_simp_mode.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/libscipolynomials_la-sci_simp_mode.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/polynomials/sci_gateway/c/libscipolynomials_la-sci_sum.lo b/modules/polynomials/sci_gateway/c/libscipolynomials_la-sci_sum.lo
new file mode 100755
index 000000000..4f413b210
--- /dev/null
+++ b/modules/polynomials/sci_gateway/c/libscipolynomials_la-sci_sum.lo
@@ -0,0 +1,12 @@
+# sci_gateway/c/libscipolynomials_la-sci_sum.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/libscipolynomials_la-sci_sum.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/polynomials/sci_gateway/c/libscipolynomials_la-sci_tril.lo b/modules/polynomials/sci_gateway/c/libscipolynomials_la-sci_tril.lo
new file mode 100755
index 000000000..476224aa3
--- /dev/null
+++ b/modules/polynomials/sci_gateway/c/libscipolynomials_la-sci_tril.lo
@@ -0,0 +1,12 @@
+# sci_gateway/c/libscipolynomials_la-sci_tril.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/libscipolynomials_la-sci_tril.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/polynomials/sci_gateway/c/libscipolynomials_la-sci_triu.lo b/modules/polynomials/sci_gateway/c/libscipolynomials_la-sci_triu.lo
new file mode 100755
index 000000000..6b0f3bf7d
--- /dev/null
+++ b/modules/polynomials/sci_gateway/c/libscipolynomials_la-sci_triu.lo
@@ -0,0 +1,12 @@
+# sci_gateway/c/libscipolynomials_la-sci_triu.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/libscipolynomials_la-sci_triu.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/polynomials/sci_gateway/c/libscipolynomials_la-sci_varn.lo b/modules/polynomials/sci_gateway/c/libscipolynomials_la-sci_varn.lo
new file mode 100755
index 000000000..2f8774dba
--- /dev/null
+++ b/modules/polynomials/sci_gateway/c/libscipolynomials_la-sci_varn.lo
@@ -0,0 +1,12 @@
+# sci_gateway/c/libscipolynomials_la-sci_varn.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/libscipolynomials_la-sci_varn.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/polynomials/sci_gateway/c/sci_bezout.c b/modules/polynomials/sci_gateway/c/sci_bezout.c
new file mode 100755
index 000000000..56f95b9eb
--- /dev/null
+++ b/modules/polynomials/sci_gateway/c/sci_bezout.c
@@ -0,0 +1,26 @@
+/*
+ * 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 <string.h>
+#include "machine.h"
+#include "gw_polynomials.h"
+/*--------------------------------------------------------------------------*/
+extern int C2F(intbez)(int *id);
+/*--------------------------------------------------------------------------*/
+int sci_bezout(char *fname, unsigned long fname_len)
+{
+ static int id[6];
+ C2F(intbez)(id);
+ return 0;
+}
+/*--------------------------------------------------------------------------*/
diff --git a/modules/polynomials/sci_gateway/c/sci_cleanp.c b/modules/polynomials/sci_gateway/c/sci_cleanp.c
new file mode 100755
index 000000000..a3a3c2415
--- /dev/null
+++ b/modules/polynomials/sci_gateway/c/sci_cleanp.c
@@ -0,0 +1,26 @@
+/*
+ * 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 <string.h>
+#include "gw_polynomials.h"
+#include "machine.h"
+/*--------------------------------------------------------------------------*/
+extern int C2F(intpclean)(int *id);
+/*--------------------------------------------------------------------------*/
+int sci_cleanp(char *fname, unsigned long fname_len)
+{
+ static int id[6];
+ C2F(intpclean)(id);
+ return 0;
+}
+/*--------------------------------------------------------------------------*/
diff --git a/modules/polynomials/sci_gateway/c/sci_coeff.c b/modules/polynomials/sci_gateway/c/sci_coeff.c
new file mode 100755
index 000000000..58eb7fdf8
--- /dev/null
+++ b/modules/polynomials/sci_gateway/c/sci_coeff.c
@@ -0,0 +1,26 @@
+/*
+ * 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 <string.h>
+#include "gw_polynomials.h"
+#include "machine.h"
+/*--------------------------------------------------------------------------*/
+extern int C2F(intcoeff)(int *id);
+/*--------------------------------------------------------------------------*/
+int sci_coeff(char *fname, unsigned long fname_len)
+{
+ static int id[6];
+ C2F(intcoeff)(id);
+ return 0;
+}
+/*--------------------------------------------------------------------------*/
diff --git a/modules/polynomials/sci_gateway/c/sci_degree.c b/modules/polynomials/sci_gateway/c/sci_degree.c
new file mode 100755
index 000000000..0e856d23b
--- /dev/null
+++ b/modules/polynomials/sci_gateway/c/sci_degree.c
@@ -0,0 +1,26 @@
+/*
+ * 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 <string.h>
+#include "gw_polynomials.h"
+#include "machine.h"
+/*--------------------------------------------------------------------------*/
+extern int C2F(intdegree)(int *id);
+/*--------------------------------------------------------------------------*/
+int sci_degree(char *fname, unsigned long fname_len)
+{
+ static int id[6];
+ C2F(intdegree)(id);
+ return 0;
+}
+/*--------------------------------------------------------------------------*/
diff --git a/modules/polynomials/sci_gateway/c/sci_diag.c b/modules/polynomials/sci_gateway/c/sci_diag.c
new file mode 100755
index 000000000..f63433850
--- /dev/null
+++ b/modules/polynomials/sci_gateway/c/sci_diag.c
@@ -0,0 +1,26 @@
+/*
+ * 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 <string.h>
+#include "gw_polynomials.h"
+#include "machine.h"
+/*--------------------------------------------------------------------------*/
+extern int C2F(intpdiag)(int *id);
+/*--------------------------------------------------------------------------*/
+int sci_pdiag(char *fname, unsigned long fname_len)
+{
+ static int id[6];
+ C2F(intpdiag)(id);
+ return 0;
+}
+/*--------------------------------------------------------------------------*/
diff --git a/modules/polynomials/sci_gateway/c/sci_div.c b/modules/polynomials/sci_gateway/c/sci_div.c
new file mode 100755
index 000000000..1f2809fc3
--- /dev/null
+++ b/modules/polynomials/sci_gateway/c/sci_div.c
@@ -0,0 +1,26 @@
+/*
+ * 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 <string.h>
+#include "machine.h"
+#include "gw_polynomials.h"
+/*--------------------------------------------------------------------------*/
+extern int C2F(intpdiv)(int *id);
+/*--------------------------------------------------------------------------*/
+int sci_pppdiv(char *fname, unsigned long fname_len)
+{
+ static int id[6];
+ C2F(intpdiv)(id);
+ return 0;
+}
+/*--------------------------------------------------------------------------*/
diff --git a/modules/polynomials/sci_gateway/c/sci_poly.c b/modules/polynomials/sci_gateway/c/sci_poly.c
new file mode 100755
index 000000000..63fb3f8ce
--- /dev/null
+++ b/modules/polynomials/sci_gateway/c/sci_poly.c
@@ -0,0 +1,26 @@
+/*
+ * 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 <string.h>
+#include "gw_polynomials.h"
+#include "machine.h"
+/*--------------------------------------------------------------------------*/
+extern int C2F(intpoly)(int *id);
+/*--------------------------------------------------------------------------*/
+int sci_poly_primitive(char *fname, unsigned long fname_len)
+{
+ static int id[6];
+ C2F(intpoly)(id);
+ return 0;
+}
+/*--------------------------------------------------------------------------*/
diff --git a/modules/polynomials/sci_gateway/c/sci_prod.c b/modules/polynomials/sci_gateway/c/sci_prod.c
new file mode 100755
index 000000000..779ba48cb
--- /dev/null
+++ b/modules/polynomials/sci_gateway/c/sci_prod.c
@@ -0,0 +1,26 @@
+/*
+ * 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 <string.h>
+#include "gw_polynomials.h"
+#include "machine.h"
+/*--------------------------------------------------------------------------*/
+extern int C2F(intpprod)(int *id);
+/*--------------------------------------------------------------------------*/
+int sci_pprod(char *fname, unsigned long fname_len)
+{
+ static int id[6];
+ C2F(intpprod)(id);
+ return 0;
+}
+/*--------------------------------------------------------------------------*/
diff --git a/modules/polynomials/sci_gateway/c/sci_roots.c b/modules/polynomials/sci_gateway/c/sci_roots.c
new file mode 100755
index 000000000..8b4bfa820
--- /dev/null
+++ b/modules/polynomials/sci_gateway/c/sci_roots.c
@@ -0,0 +1,26 @@
+/*
+ * 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 <string.h>
+#include "machine.h"
+#include "gw_polynomials.h"
+/*--------------------------------------------------------------------------*/
+extern int C2F(introots)(int *id);
+/*--------------------------------------------------------------------------*/
+int sci_roots(char *fname, unsigned long fname_len)
+{
+ static int id[6];
+ C2F(introots)(id);
+ return 0;
+}
+/*--------------------------------------------------------------------------*/
diff --git a/modules/polynomials/sci_gateway/c/sci_sfact.c b/modules/polynomials/sci_gateway/c/sci_sfact.c
new file mode 100755
index 000000000..627474c38
--- /dev/null
+++ b/modules/polynomials/sci_gateway/c/sci_sfact.c
@@ -0,0 +1,26 @@
+/*
+ * 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 <string.h>
+#include "machine.h"
+#include "gw_polynomials.h"
+/*--------------------------------------------------------------------------*/
+extern int C2F(intsfact)(int *id);
+/*--------------------------------------------------------------------------*/
+int sci_sfact(char *fname, unsigned long fname_len)
+{
+ static int id[6];
+ C2F(intsfact)(id);
+ return 0;
+}
+/*--------------------------------------------------------------------------*/
diff --git a/modules/polynomials/sci_gateway/c/sci_simp.c b/modules/polynomials/sci_gateway/c/sci_simp.c
new file mode 100755
index 000000000..829724bc3
--- /dev/null
+++ b/modules/polynomials/sci_gateway/c/sci_simp.c
@@ -0,0 +1,26 @@
+/*
+ * 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 <string.h>
+#include "machine.h"
+#include "gw_polynomials.h"
+/*--------------------------------------------------------------------------*/
+extern int C2F(intsimp)(int *id);
+/*--------------------------------------------------------------------------*/
+int sci_simp(char *fname, unsigned long fname_len)
+{
+ static int id[6];
+ C2F(intsimp)(id);
+ return 0;
+}
+/*--------------------------------------------------------------------------*/
diff --git a/modules/polynomials/sci_gateway/c/sci_simp_mode.c b/modules/polynomials/sci_gateway/c/sci_simp_mode.c
new file mode 100755
index 000000000..ecaee9e68
--- /dev/null
+++ b/modules/polynomials/sci_gateway/c/sci_simp_mode.c
@@ -0,0 +1,26 @@
+/*
+ * 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 <string.h>
+#include "machine.h"
+#include "gw_polynomials.h"
+/*--------------------------------------------------------------------------*/
+extern int C2F(intsimpmd)(int *id);
+/*--------------------------------------------------------------------------*/
+int sci_simp_mode(char *fname, unsigned long fname_len)
+{
+ static int id[6];
+ C2F(intsimpmd)(id);
+ return 0;
+}
+/*--------------------------------------------------------------------------*/
diff --git a/modules/polynomials/sci_gateway/c/sci_sum.c b/modules/polynomials/sci_gateway/c/sci_sum.c
new file mode 100755
index 000000000..86df6fa4e
--- /dev/null
+++ b/modules/polynomials/sci_gateway/c/sci_sum.c
@@ -0,0 +1,26 @@
+/*
+ * 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 <string.h>
+#include "machine.h"
+#include "gw_polynomials.h"
+/*--------------------------------------------------------------------------*/
+extern int C2F(intpsum)(int *id);
+/*--------------------------------------------------------------------------*/
+int sci_psum(char *fname, unsigned long fname_len)
+{
+ static int id[6];
+ C2F(intpsum)(id);
+ return 0;
+}
+/*--------------------------------------------------------------------------*/
diff --git a/modules/polynomials/sci_gateway/c/sci_tril.c b/modules/polynomials/sci_gateway/c/sci_tril.c
new file mode 100755
index 000000000..acf28e7f1
--- /dev/null
+++ b/modules/polynomials/sci_gateway/c/sci_tril.c
@@ -0,0 +1,27 @@
+/*
+ * 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 <string.h>
+#include "gw_polynomials.h"
+#include "machine.h"
+/*--------------------------------------------------------------------------*/
+extern int C2F(intptriu)(int *job, int *id);
+/*--------------------------------------------------------------------------*/
+int sci_ptril(char *fname, unsigned long fname_len)
+{
+ static int id[6];
+ int job = 0;
+ C2F(intptriu)(&job, id);
+ return 0;
+}
+/*--------------------------------------------------------------------------*/
diff --git a/modules/polynomials/sci_gateway/c/sci_triu.c b/modules/polynomials/sci_gateway/c/sci_triu.c
new file mode 100755
index 000000000..4fbe99611
--- /dev/null
+++ b/modules/polynomials/sci_gateway/c/sci_triu.c
@@ -0,0 +1,27 @@
+/*
+ * 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 <string.h>
+#include "gw_polynomials.h"
+#include "machine.h"
+/*--------------------------------------------------------------------------*/
+extern int C2F(intptriu)(int *job, int *id);
+/*--------------------------------------------------------------------------*/
+int sci_ptriu(char *fname, unsigned long fname_len)
+{
+ static int id[6];
+ int job = 1;
+ C2F(intptriu)(&job, id);
+ return 0;
+}
+/*--------------------------------------------------------------------------*/
diff --git a/modules/polynomials/sci_gateway/c/sci_varn.c b/modules/polynomials/sci_gateway/c/sci_varn.c
new file mode 100755
index 000000000..82d9908e8
--- /dev/null
+++ b/modules/polynomials/sci_gateway/c/sci_varn.c
@@ -0,0 +1,26 @@
+/*
+ * 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 <string.h>
+#include "machine.h"
+#include "gw_polynomials.h"
+/*--------------------------------------------------------------------------*/
+extern int C2F(intvarn)(int *id);
+/*--------------------------------------------------------------------------*/
+int sci_varn(char *fname, unsigned long fname_len)
+{
+ static int id[6];
+ C2F(intvarn)(id);
+ return 0;
+}
+/*--------------------------------------------------------------------------*/
diff --git a/modules/polynomials/sci_gateway/fortran/.deps/.dirstamp b/modules/polynomials/sci_gateway/fortran/.deps/.dirstamp
new file mode 100755
index 000000000..e69de29bb
--- /dev/null
+++ b/modules/polynomials/sci_gateway/fortran/.deps/.dirstamp
diff --git a/modules/polynomials/sci_gateway/fortran/.dirstamp b/modules/polynomials/sci_gateway/fortran/.dirstamp
new file mode 100755
index 000000000..e69de29bb
--- /dev/null
+++ b/modules/polynomials/sci_gateway/fortran/.dirstamp
diff --git a/modules/polynomials/sci_gateway/fortran/.libs/polops.o b/modules/polynomials/sci_gateway/fortran/.libs/polops.o
new file mode 100755
index 000000000..20b83c840
--- /dev/null
+++ b/modules/polynomials/sci_gateway/fortran/.libs/polops.o
Binary files differ
diff --git a/modules/polynomials/sci_gateway/fortran/.libs/sci_f_bezout.o b/modules/polynomials/sci_gateway/fortran/.libs/sci_f_bezout.o
new file mode 100755
index 000000000..b76a9ea3b
--- /dev/null
+++ b/modules/polynomials/sci_gateway/fortran/.libs/sci_f_bezout.o
Binary files differ
diff --git a/modules/polynomials/sci_gateway/fortran/.libs/sci_f_coeff.o b/modules/polynomials/sci_gateway/fortran/.libs/sci_f_coeff.o
new file mode 100755
index 000000000..9309cb75c
--- /dev/null
+++ b/modules/polynomials/sci_gateway/fortran/.libs/sci_f_coeff.o
Binary files differ
diff --git a/modules/polynomials/sci_gateway/fortran/.libs/sci_f_degree.o b/modules/polynomials/sci_gateway/fortran/.libs/sci_f_degree.o
new file mode 100755
index 000000000..090e85bb1
--- /dev/null
+++ b/modules/polynomials/sci_gateway/fortran/.libs/sci_f_degree.o
Binary files differ
diff --git a/modules/polynomials/sci_gateway/fortran/.libs/sci_f_diag.o b/modules/polynomials/sci_gateway/fortran/.libs/sci_f_diag.o
new file mode 100755
index 000000000..cf935c4ba
--- /dev/null
+++ b/modules/polynomials/sci_gateway/fortran/.libs/sci_f_diag.o
Binary files differ
diff --git a/modules/polynomials/sci_gateway/fortran/.libs/sci_f_div.o b/modules/polynomials/sci_gateway/fortran/.libs/sci_f_div.o
new file mode 100755
index 000000000..b27de7b61
--- /dev/null
+++ b/modules/polynomials/sci_gateway/fortran/.libs/sci_f_div.o
Binary files differ
diff --git a/modules/polynomials/sci_gateway/fortran/.libs/sci_f_pclean.o b/modules/polynomials/sci_gateway/fortran/.libs/sci_f_pclean.o
new file mode 100755
index 000000000..a14bba60e
--- /dev/null
+++ b/modules/polynomials/sci_gateway/fortran/.libs/sci_f_pclean.o
Binary files differ
diff --git a/modules/polynomials/sci_gateway/fortran/.libs/sci_f_poly.o b/modules/polynomials/sci_gateway/fortran/.libs/sci_f_poly.o
new file mode 100755
index 000000000..07b2e6fc3
--- /dev/null
+++ b/modules/polynomials/sci_gateway/fortran/.libs/sci_f_poly.o
Binary files differ
diff --git a/modules/polynomials/sci_gateway/fortran/.libs/sci_f_prod.o b/modules/polynomials/sci_gateway/fortran/.libs/sci_f_prod.o
new file mode 100755
index 000000000..b576885f3
--- /dev/null
+++ b/modules/polynomials/sci_gateway/fortran/.libs/sci_f_prod.o
Binary files differ
diff --git a/modules/polynomials/sci_gateway/fortran/.libs/sci_f_psimp.o b/modules/polynomials/sci_gateway/fortran/.libs/sci_f_psimp.o
new file mode 100755
index 000000000..ac0039da2
--- /dev/null
+++ b/modules/polynomials/sci_gateway/fortran/.libs/sci_f_psimp.o
Binary files differ
diff --git a/modules/polynomials/sci_gateway/fortran/.libs/sci_f_roots.o b/modules/polynomials/sci_gateway/fortran/.libs/sci_f_roots.o
new file mode 100755
index 000000000..12ad51e1f
--- /dev/null
+++ b/modules/polynomials/sci_gateway/fortran/.libs/sci_f_roots.o
Binary files differ
diff --git a/modules/polynomials/sci_gateway/fortran/.libs/sci_f_rsimp.o b/modules/polynomials/sci_gateway/fortran/.libs/sci_f_rsimp.o
new file mode 100755
index 000000000..66c01579c
--- /dev/null
+++ b/modules/polynomials/sci_gateway/fortran/.libs/sci_f_rsimp.o
Binary files differ
diff --git a/modules/polynomials/sci_gateway/fortran/.libs/sci_f_sfact.o b/modules/polynomials/sci_gateway/fortran/.libs/sci_f_sfact.o
new file mode 100755
index 000000000..e46e3fdf6
--- /dev/null
+++ b/modules/polynomials/sci_gateway/fortran/.libs/sci_f_sfact.o
Binary files differ
diff --git a/modules/polynomials/sci_gateway/fortran/.libs/sci_f_simp.o b/modules/polynomials/sci_gateway/fortran/.libs/sci_f_simp.o
new file mode 100755
index 000000000..5bf790c1f
--- /dev/null
+++ b/modules/polynomials/sci_gateway/fortran/.libs/sci_f_simp.o
Binary files differ
diff --git a/modules/polynomials/sci_gateway/fortran/.libs/sci_f_simpmd.o b/modules/polynomials/sci_gateway/fortran/.libs/sci_f_simpmd.o
new file mode 100755
index 000000000..f5c936f89
--- /dev/null
+++ b/modules/polynomials/sci_gateway/fortran/.libs/sci_f_simpmd.o
Binary files differ
diff --git a/modules/polynomials/sci_gateway/fortran/.libs/sci_f_sum.o b/modules/polynomials/sci_gateway/fortran/.libs/sci_f_sum.o
new file mode 100755
index 000000000..facb58ca4
--- /dev/null
+++ b/modules/polynomials/sci_gateway/fortran/.libs/sci_f_sum.o
Binary files differ
diff --git a/modules/polynomials/sci_gateway/fortran/.libs/sci_f_triu_tril.o b/modules/polynomials/sci_gateway/fortran/.libs/sci_f_triu_tril.o
new file mode 100755
index 000000000..a0ea3a888
--- /dev/null
+++ b/modules/polynomials/sci_gateway/fortran/.libs/sci_f_triu_tril.o
Binary files differ
diff --git a/modules/polynomials/sci_gateway/fortran/.libs/sci_f_varn.o b/modules/polynomials/sci_gateway/fortran/.libs/sci_f_varn.o
new file mode 100755
index 000000000..2aab1bc59
--- /dev/null
+++ b/modules/polynomials/sci_gateway/fortran/.libs/sci_f_varn.o
Binary files differ
diff --git a/modules/polynomials/sci_gateway/fortran/polops.f b/modules/polynomials/sci_gateway/fortran/polops.f
new file mode 100755
index 000000000..bac9cd8f5
--- /dev/null
+++ b/modules/polynomials/sci_gateway/fortran/polops.f
@@ -0,0 +1,2213 @@
+c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+c Copyright (C) ????-2008 - INRIA
+c
+c This file must be used under the terms of the CeCILL.
+c This source file is licensed as described in the file COPYING,
+c which
+c you should have received as part of this distribution. The terms
+c are also available at
+c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ subroutine polops
+c =================================================================
+c ===
+c
+c operations on polynomial matrices
+c
+c =================================================================
+c ===
+c
+ include 'stack.h'
+c
+
+ integer plus,minus,star,dstar,slash,bslash,dot,colon
+ integer quote,equal,less,great,insert,extrac
+c
+ double precision sr,si,e1,e2,st
+ integer vol,var1(4),var2(4),var3(4),var4(4),volr,rhs1,top0,op
+ integer topin
+ logical chkvar
+ integer sadr,iadr
+ integer colonid(nsiz)
+c
+ data plus/45/,minus/46/,star/47/,dstar/62/,slash/48/
+ data bslash/49/,dot/51/,colon/44/,quote/53/
+ data equal/50/,less/59/,great/60/,insert/2/,extrac/3/
+ data colonid/673720364,673720360,673720360,673720360,
+ $ 673720360,673720360/
+c
+ iadr(l)=l+l-1
+ sadr(l)=(l/2)+1
+c
+ op=fin
+c
+ fun=0
+ lw=lstk(top+1)
+ topin=top
+
+ if(op.eq.dstar) goto 80
+ if(op.eq.dstar+dot) goto 70
+
+ if(op.eq.colon) goto 200
+ if(op.eq.extrac) goto 130
+ if(op.eq.insert) goto 120
+c
+
+ top0=top+1-rhs
+ rhs1=rhs
+
+c
+ var2(1)=0
+ it2=0
+ if(rhs.eq.1) goto 05
+ il2=iadr(lstk(top))
+ if(istk(il2).lt.0) il2=iadr(istk(il2+1))
+ if(istk(il2).gt.2) goto 03
+ m2=istk(il2+1)
+ n2=istk(il2+2)
+ it2=istk(il2+3)
+ mn2=m2*n2
+ if(istk(il2).ne.1) then
+ id2=il2+8
+ call icopy(4,istk(il2+4),1,var2,1)
+ l2r=sadr(id2+mn2+1)
+ vol=istk(id2+mn2)-1
+ l2i=l2r+vol
+ l3r=lw
+ goto 03
+ else
+ l2r=sadr(il2+4)
+ l2i=l2r+mn2
+ id2=iadr(lw)
+ l3r=sadr(id2+mn2+1)
+ err=l3r-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+ call ivimp(1,mn2+1,1,istk(id2))
+ l3r=l3r+1
+ endif
+ 03 continue
+
+ top = top-1
+ 05 il1=iadr(lstk(top))
+ if(istk(il1).lt.0) il1=iadr(istk(il1+1))
+ if(istk(il1).gt.2) goto 10
+ m1=istk(il1+1)
+ n1=istk(il1+2)
+ it1=istk(il1+3)
+ mn1 = m1*n1
+ if(istk(il1).ne.1) then
+ id1=il1+8
+ call icopy(4,istk(il1+4),1,var1,1)
+c
+ if(var2(1).eq.0) call icopy(4,var1,1,var2,1)
+ if(op.ne.equal.and.op.ne.less+great) then
+ if(.not.chkvar(var1,var2)) then
+ fin=-fin
+ top=top+1
+ return
+ endif
+ endif
+c
+ l1r=sadr(id1+mn1+1)
+ vol=istk(id1+mn1)-1
+ l1i=l1r+vol
+ else
+ l1r=sadr(il1+4)
+ l1i=l1r+mn1
+ call icopy(4,var2,1,var1,1)
+ id1=iadr(l3r)
+ l3r=sadr(id1+mn1+1)
+ err=l3r-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+ call ivimp(1,mn1+1,1,istk(id1))
+ l3r=l3r+1
+ lw=l3r
+ endif
+c
+ 10 it3=max(it1,it2)
+
+c
+ goto (60,120,130,65) op
+ if (op .eq. quote.or.op .eq. quote+dot) goto 110
+ if (rhs .eq. 1 .and. op .eq. minus) goto 101
+ if (op .eq. plus .or. op .eq. minus) go to 20
+ if (op .eq. star.or. op.eq.star+dot) go to 40
+ if(op.eq.slash.or.op.eq.slash+dot) goto 150
+ if(op.eq.bslash.or.op.eq.bslash+dot) goto 155
+ if(op.eq.equal.or.op.eq.less+great) goto 160
+c
+c operations non implantees
+ top=top0-1+rhs
+ fin=-fin
+ return
+c
+c addition et soustraction
+c
+ 20 continue
+ vol=istk(id2+mn2)-1
+ if(op.eq.minus.and.vol.gt.0) call dscal(vol*(it2+1),-1.0d+0
+ $ ,stk(l2r),1)
+ if(m1.eq.1.and.n1.eq.1.and.mn2.gt.1) then
+c . p+P , p-P
+c . p*ones(P) is generated
+ n=istk(id1+1)-istk(id1)
+ istk(il1+1)=m2
+ istk(il1+2)=n2
+ m1=m2
+ n1=n2
+ mn1=m1*n1
+ l=l1r
+c
+ id1=iadr(l3r)
+ l1r=sadr(id1+mn2+1)
+ vol=mn1*n
+ l1i=l1r+vol
+ l3r=l1i+vol*it1
+ err=l3r-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+ l1=l1r
+ istk(id1)=1
+ do 21 i=1,mn1
+ istk(id1+i)=istk(id1-1+i)+n
+ call unsfdcopy(n,stk(l),1,stk(l1),1)
+ if(it1.eq.1) call unsfdcopy(n,stk(l+n),1,stk(l1+vol),1)
+ l1=l1+n
+ 21 continue
+ elseif(m2.eq.1.and.n2.eq.1.and.mn1.gt.1) then
+c . P+p, P-p
+c . p*ones(P) is generated
+ n=istk(id2+1)-istk(id2)
+ m2=abs(m1)
+ n2=abs(n1)
+ mn2=m2*n2
+ l=l2r
+c
+ id2=iadr(l3r)
+ l2r=sadr(id2+mn1+1)
+ vol=mn2*n
+ l2i=l2r+vol
+ l3r=l2i+vol*it2
+ err=l3r-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+ l2=l2r
+ istk(id2)=1
+ do 22 i=1,mn2
+ istk(id2+i)=istk(id2-1+i)+n
+ call unsfdcopy(n,stk(l),1,stk(l2),1)
+ if(it2.eq.1) call unsfdcopy(n,stk(l+n),1,stk(l2+vol),1)
+ l2=l2+n
+ 22 continue
+ elseif(mn1.eq.0) then
+c . []+P, []-P
+ call icopy(9+mn2,istk(il2),1,istk(il1),1)
+ l1=sadr(il1+9+mn2)
+ vol=(istk(id2+mn2)-1)*(it2+1)
+ call unsfdcopy(vol,stk(l2r),1,stk(l1),1)
+ lstk(top+1)=l1+vol
+ goto 999
+ elseif(mn2.eq.0) then
+c . P+[] , P-[]
+ goto 999
+ elseif(m1.lt.0) then
+c eye*p+A
+c . p*eye(A) is generated
+ n=istk(id1+1)-istk(id1)
+ istk(il1+1)=m2
+ istk(il1+2)=n2
+ m1=abs(m2)
+ n1=abs(n2)
+ mn1=m1*n1
+ l=l1r
+
+ id1=iadr(l3r)
+ l1r=sadr(id1+mn2+1)
+ vol=min(n1,m1)*(n-1)+mn2
+ l1i=l1r+vol
+ l3r=l1i+vol*it1
+ err=l3r-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+ call dset(vol*(it1+1),0.0d+0,stk(l1r),1)
+ l1=l1r
+ do 23 i=1,min(n1,m1)
+ call unsfdcopy(n,stk(l),1,stk(l1),1)
+ if(it1.eq.1) call unsfdcopy(n,stk(l+n),1,stk(l1+vol),1)
+ l1=l1+n+m1
+ 23 continue
+ l1=id1
+ istk(l1)=1
+ do 25 j=1,n1
+ do 24 i=1,m1
+ l1=l1+1
+ istk(l1)=istk(l1-1)+1
+ if(i.eq.j) istk(l1)=istk(l1)+n-1
+ 24 continue
+ 25 continue
+ elseif(m2.lt.0) then
+c A+eye*p
+c . p*eye(A) is generated
+ m2=abs(m1)
+ n2=abs(n1)
+ l=l2r
+ id=id2
+ n=istk(id+1)-istk(id)
+ id2=iadr(l3r)
+ l2r=sadr(id2+mn1+1)
+ vol=m2*(n-1)+mn1
+ l2i=l2r+vol
+ l3r=l2i+vol*it2
+ err=l3r-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+ call dset(vol*(it2+1),0.0d+0,stk(l2r),1)
+ l2=l2r
+ do 26 i=1,min(n2,m2)
+ call unsfdcopy(n,stk(l),1,stk(l2),1)
+ if(it2.eq.1) call unsfdcopy(n,stk(l+n),1,stk(l2+vol),1)
+ l2=l2+n+m2
+ 26 continue
+ l2=id2
+ istk(l2)=1
+ do 28 j=1,n2
+ do 27 i=1,m2
+ l2=l2+1
+ istk(l2)=istk(l2-1)+1
+ if(i.eq.j) istk(l2)=istk(l2)+n-1
+ 27 continue
+ 28 continue
+ elseif(m1.eq.m2.and.n1.eq.n2) then
+c . P1+P2 P1-P2
+ else
+ if (op.eq.plus) then
+ call error(8)
+ else
+ call error(9)
+ endif
+ return
+ endif
+
+c
+ id3=iadr(l3r)
+ l3r=sadr(id3+mn1+1)
+ vol=0
+ do 31 k=1,mn1
+ vol=vol+max(istk(id1+k)-istk(id1+k-1),istk(id2+k)
+ $ -istk(id2+k-1))
+ 31 continue
+ l3i=l3r+vol
+ err=l3i+vol*it3-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+ goto (32,33,34) it1+2*it2
+ call dmpad(stk(l1r),istk(id1),m1,stk(l2r),istk(id2),m2,stk(l3r),
+ & istk(id3),m1,n1)
+ call dmpadj(stk(l3r),istk(id3),m1,n1)
+ goto 35
+ 32 call wdmpad(stk(l1r),stk(l1i),istk(id1),m1,stk(l2r),istk(id2),
+ & m2,stk(l3r),stk(l3i),istk(id3),m1,n1)
+ call wmpadj(stk(l3r),stk(l3i),istk(id3),m1,n1)
+ goto 35
+ 33 call wdmpad(stk(l2r),stk(l2i),istk(id2),m2,stk(l1r),istk(id1),
+ & m1,stk(l3r),stk(l3i),istk(id3),m1,n1)
+ call wmpadj(stk(l3r),stk(l3i),istk(id3),m1,n1)
+ goto 35
+ 34 call wmpad(stk(l1r),stk(l1i),istk(id1),m1,stk(l2r),stk(l2i),
+ & istk(id2),m2,stk(l3r),stk(l3i),istk(id3),m1,n1)
+ call wmpadj(stk(l3r),stk(l3i),istk(id3),m1,n1)
+ 35 continue
+ istk(il1)=2
+ istk(il1+1)=m1
+ istk(il1+2)=n1
+ istk(il1+3)=it3
+ call icopy(4,var1,1,istk(il1+4),1)
+ vol=istk(id3+m1*n1)-1
+ call icopy(mn1+1,istk(id3),1,istk(il1+8),1)
+ l1r=sadr(il1+9+mn1)
+ call unsfdcopy(vol,stk(l3r),1,stk(l1r),1)
+ if(it3.eq.1) call unsfdcopy(vol,stk(l3i),1,stk(l1r+vol),1)
+ lstk(top+1)=l1r+vol*(it3+1)
+ goto 999
+c
+c multiplications
+c
+ 40 if(mn1.eq.0.or.mn2.eq.0) then
+ istk(il1)=1
+ istk(il1+1)=0
+ istk(il1+2)=0
+ istk(il1+3)=0
+ lstk(top+1)=sadr(il1+4)+1
+ goto 999
+ endif
+ indef=0
+ if(m1.lt.0) then
+ if(mn2.eq.1) then
+ indef=1
+ else
+ call error(14)
+ return
+ endif
+ elseif(m2.lt.0) then
+ if(mn1.eq.1) then
+ indef=1
+ else
+ call error(14)
+ return
+ endif
+ endif
+ m1=abs(m1)
+ n1=abs(n1)
+ m2=abs(m2)
+ n2=abs(n2)
+ if(mn1.gt.1.and.mn2.gt.1 .and. op.gt.dot) then
+c . a.*b
+ if(m1.ne.m2.or.n1.ne.n2) then
+ call error(10)
+ return
+ endif
+ m3=m1
+ n3=n1
+ n1=0
+ vol=istk(id1+mn1)+istk(id2+mn2)-mn2-2
+ elseif(mn1.eq.1) then
+c . cst*b or cst.*b
+ m1=0
+ n1=m2
+ m3=m2
+ n3=n2
+ vol=istk(id2+mn2)-1+mn2*(istk(id1+1)-2)
+ elseif(mn2.eq.1) then
+c . a*cst or a.*cst
+ n2=0
+ m3=m1
+ n3=n1
+ vol=istk(id1+mn1)-1+mn1*(istk(id2+1)-2)
+ else
+c . a*b
+ if(n1.ne.m2) then
+ call error(10)
+ return
+ endif
+ m3=m1
+ n3=n2
+c . estimate result size
+ vol=0
+ do 46 i=1,m3
+ j1=id2-m2
+ do 45 j=1,n3
+ j1=j1+m2
+ k1=id1-m1
+ mx=0
+ do 44 k=1,n1
+ k1=k1+m1
+ ll1=istk(i+k1)-istk(i-1+k1)
+ ll2=istk(k+j1)-istk(k-1+j1)
+ mx=max(mx,ll1+ll2)
+ 44 continue
+ vol=vol+mx-1
+ 45 continue
+ 46 continue
+ endif
+
+c
+ id3=iadr(l3r)
+ l3r=sadr(id3+m3*n3+1)
+ l3i=l3r+vol
+ err=l3i+it3*vol-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+c
+ m=max(1,m1)
+ goto (51,52,53) it1+2*it2
+ call dmpmu(stk(l1r),istk(id1),m,stk(l2r),istk(id2),m2,
+ & stk(l3r),istk(id3),m1,n1,n2)
+ call dmpadj(stk(l3r),istk(id3),m3,n3)
+ goto 55
+ 51 call wdmpmu(stk(l1r),stk(l1i),istk(id1),m,stk(l2r),istk(id2),
+ & m2,stk(l3r),stk(l3i),istk(id3),m1,n1,n2)
+ call wmpadj(stk(l3r),stk(l3i),istk(id3),m3,n3)
+ goto 55
+ 52 continue
+ call dwmpmu(stk(l1r),istk(id1),m,stk(l2r),stk(l2i),istk(id2),
+ & m2,stk(l3r),stk(l3i),istk(id3),m1,n1,n2)
+ call wmpadj(stk(l3r),stk(l3i),istk(id3),m3,n3)
+ goto 55
+ 53 call wmpmu(stk(l1r),stk(l1i),istk(id1),m,stk(l2r),stk(l2i),
+ & istk(id2),m2,stk(l3r),stk(l3i),istk(id3),m1,n1,n2)
+ call wmpadj(stk(l3r),stk(l3i),istk(id3),m3,n3)
+ goto 55
+c
+ 55 if(istk(il1).eq.1) id1=il1+8
+ l1r=sadr(id1+m3*n3+1)
+ call icopy(m3*n3+1,istk(id3),1,istk(id1),1)
+ vol=istk(id1+m3*n3)-1
+ call unsfdcopy(vol,stk(l3r),1,stk(l1r),1)
+ if(it3.eq.1) call unsfdcopy(vol,stk(l3i),1,stk(l1r+vol),1)
+ lstk(top+1)=l1r+vol*(it3+1)
+ istk(il1)=2
+ istk(il1+1)=m3
+ istk(il1+2)=n3
+ istk(il1+3)=it3
+ call icopy(4,var1,1,istk(il1+4),1)
+
+ if(indef.eq.0) goto 999
+ istk(il1+1)=-1
+ istk(il1+2)=-1
+ goto 999
+c
+c concatenation [a b]
+c
+ 60 continue
+ if(m1.lt.0.or.m2.lt.0) then
+ call error(14)
+ return
+ endif
+ if(m2.eq.0) then
+ return
+ elseif(m1.eq.0)then
+ call unsfdcopy(lstk(top+2)-lstk(top+1),stk(lstk(top+1)),1,
+ & stk(lstk(top)),1)
+ lstk(top+1)=lstk(top)+lstk(top+2)-lstk(top+1)
+ return
+ elseif(m1.ne.m2) then
+ call error(5)
+ return
+ endif
+c
+ id3=iadr(l3r)
+ l3r=sadr(id3+mn1+mn2+1)
+ vol=istk(id1+mn1)+istk(id2+mn2)-2
+ l3i=l3r+vol
+ lw=l3i+vol*it3
+ err=lw-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+ goto (61,62,63) it1+2*it2
+ call dmpcnc(stk(l1r),istk(id1),m1,stk(l2r),istk(id2),m1,
+ & stk(l3r),istk(id3),m1,n1,n2,1)
+ goto 64
+ 61 call wmpcnc(stk(l1r),stk(l1i),istk(id1),m1,stk(l2r),st,
+ & istk(id2),m1,stk(l3r),stk(l3i),istk(id3),m1,n1,n2,3)
+ goto 64
+ 62 call wmpcnc(stk(l1r),st,istk(id1),m1,stk(l2r),stk(l2i),
+ & istk(id2),m1,stk(l3r),stk(l3i),istk(id3),m1,n1,n2,2)
+ goto 64
+ 63 call wmpcnc(stk(l1r),stk(l1i),istk(id1),m1,stk(l2r),stk(l2i),
+ & istk(id2),m1,stk(l3r),stk(l3i),istk(id3),m1,n1,n2,1)
+ goto 64
+c
+ 64 istk(il1)=2
+ istk(il1+1)=m1
+ istk(il1+2)=n1+n2
+ istk(il1+3)=it3
+ call icopy(mn1+mn2+1,istk(id3),1,istk(il1+8),1)
+ l1r=sadr(il1+9+mn1+mn2)
+ call unsfdcopy(vol*(it3+1),stk(l3r),1,stk(l1r),1)
+ call icopy(4,var1,1,istk(il1+4),1)
+ lstk(top+1)=l1r+vol*(it3+1)
+ goto 999
+c
+c concatenation [a;b]
+ 65 if(n1.lt.0.or.n2.lt.0) then
+ call error(14)
+ return
+ endif
+ if(n2.eq.0) then
+ goto 999
+ elseif(n1.eq.0)then
+ call unsfdcopy(lstk(top+2)-lstk(top+1),stk(lstk(top+1)),1,
+ & stk(lstk(top)),1)
+ lstk(top+1)=lstk(top)+lstk(top+2)-lstk(top+1)
+ goto 999
+ elseif(n1.ne.n2) then
+ call error(6)
+ return
+ endif
+ m=m1+m2
+ mn=m*n1
+c
+ id3=iadr(l3r)
+ l3r=sadr(id3+mn+1)
+ vol=istk(id1+mn1)+istk(id2+mn2)-2
+ l3i=l3r+vol
+ lw=l3i+vol*it3
+ err=lw-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+ goto (66,67,68) it1+2*it2
+ call dmpcnc(stk(l1r),istk(id1),m1,stk(l2r),istk(id2),m2,
+ & stk(l3r),istk(id3),m1,m2,n2,-1)
+ goto 69
+ 66 call wmpcnc(stk(l1r),stk(l1i),istk(id1),m1,stk(l2r),st,
+ & istk(id2),m2,stk(l3r),stk(l3i),istk(id3),m1,m2,n2,-3)
+ goto 69
+ 67 call wmpcnc(stk(l1r),st,istk(id1),m1,stk(l2r),stk(l2i),
+ & istk(id2),m2,stk(l3r),stk(l3i),istk(id3),m1,m2,n2,-2)
+ goto 69
+ 68 call wmpcnc(stk(l1r),stk(l1i),istk(id1),m1,stk(l2r),stk(l2i),
+ & istk(id2),m2,stk(l3r),stk(l3i),istk(id3),m1,m2,n2,-1)
+ goto 69
+c
+ 69 istk(il1)=2
+ istk(il1+1)=m
+ istk(il1+2)=n1
+ istk(il1+3)=it3
+ call icopy(mn1+mn2+1,istk(id3),1,istk(il1+8),1)
+ l1r=sadr(il1+9+mn1+mn2)
+ call unsfdcopy(vol*(it3+1),stk(l3r),1,stk(l1r),1)
+ call icopy(4,var1,1,istk(il1+4),1)
+ lstk(top+1)=l1r+vol*(it3+1)
+ goto 999
+c
+c puissance .^
+c
+ 70 il2=iadr(lstk(top))
+ m2=istk(il2+1)
+ n2=istk(il2+2)
+ top=top-1
+ if(istk(il2).ne.1.or.istk(il2+3).ne.0) then
+ call error(30)
+ return
+ endif
+ mn2=istk(il2+1)*istk(il2+2)
+ if (mn2.eq.0) then
+ il1=iadr(lstk(top))
+ istk(il1)=1
+ istk(il1+1)=0
+ istk(il1+2)=0
+ istk(il1+3)=0
+ lstk(top+1)=sadr(il1+4)+1
+ return
+ endif
+ l2=sadr(il2+4)
+c
+ il1=iadr(lstk(top))
+ m1=abs(istk(il1+1))
+ n1=abs(istk(il1+2))
+ it1=istk(il1+3)
+ mn1=m1*n1
+ id1=il1+8
+ l1r=sadr(id1+mn1+1)
+ vol=istk(id1+mn1)-1
+ l1i=l1r+vol
+c
+ if (mn2 .gt. 1) then
+ m=m2
+ n=n2
+ inc2=1
+ if (mn1 .eq.1) then
+ inc1=0
+ elseif(m1.eq.m2.and.n1.eq.n2) then
+ inc1=1
+ else
+ call error(30)
+ return
+ endif
+ else
+ inc2=0
+ inc1=1
+ m=m1
+ n=n1
+ endif
+ mn=m*n
+c
+ idr=iadr(lw)
+ lr=sadr(idr+mn+1)
+ err=lr-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+ istk(idr)=1
+ do 71 i=0,mn-1
+ i1=i*inc1
+ i2=i*inc2
+ nexp=int(stk(l2+i2))
+ if(dble(nexp).ne.stk(l2+i2)) then
+ call error(30)
+ return
+ elseif(nexp.lt.0) then
+ fin=-fin
+ top=top+1
+ return
+ endif
+ istk(idr+i+1)=istk(idr+i)+
+ $ (istk(id1+i1+1)-istk(id1+i1)-1)*nexp+1
+ 71 continue
+
+ nr=istk(idr+mn)-1
+ err=lr+nr*(it1+1)-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+
+ do 73 i=1,mn
+ i1=(i-1)*inc1
+ i2=(i-1)*inc2
+ nexp=int(stk(l2+i2))
+ l1=l1r+istk(id1+i1)-1
+ l=lr+istk(idr+i-1)-1
+
+ ni=istk(id1+i1+1)-istk(id1+i1)
+ if(nexp.gt.0) then
+ call unsfdcopy(ni,stk(l1),1,stk(l),1)
+ if(it1.eq.1) call unsfdcopy(ni,stk(l1+vol),1,stk(l+nr),1)
+ else
+ stk(l)=1.0d0
+ if(it1.eq.1) stk(l+nr)=0.0d0
+ endif
+ mi=ni-1
+ if(nexp.gt.1) then
+ do 72 ne=2,nexp
+ if(it1.eq.0) then
+ call dpmul1(stk(l),mi,stk(l1),ni-1,stk(l))
+ else
+ call wpmul1(stk(l),stk(l+nr),mi,stk(l1),
+ & stk(l1+vol),ni-1,stk(l),stk(l+nr))
+ endif
+ mi=mi+ni-1
+ 72 continue
+ endif
+ 73 continue
+ istk(il1+1)=m
+ istk(il1+2)=n
+ istk(il1+3)=it1
+ call icopy(mn+1,istk(idr),1,istk(id1),1)
+ l1=sadr(id1+mn+1)
+ call unsfdcopy(nr*(it1+1),stk(lr),1,stk(l1),1)
+ lstk(top+1)=l1+nr*(it1+1)
+ goto 999
+
+c puissance de matrice
+ 80 continue
+ il2=iadr(lstk(top))
+ mn2=istk(il2+1)*istk(il2+2)
+ il1=iadr(lstk(top-1))
+ m1=abs(istk(il1+1))
+ n1=abs(istk(il1+2))
+ it1=istk(il1+3)
+ mn1=m1*n1
+
+ if(mn1.eq.1) goto 70
+ if(mn2.gt.1) then
+ fin=-fin
+ return
+ endif
+ if(m1.ne.n1) then
+ if(mn2.eq.1.and.(m1.eq.1.or.n1.eq.1)) then
+ call msgs(116)
+ goto 70
+ endif
+ err=1
+ call error(20)
+ return
+ endif
+ fin=-fin
+ return
+c
+ 101 vol=istk(id1+mn1)-1
+c multiplication par -1
+ call dscal(vol*(it1+1),-1.0d+0,stk(l1r),1)
+ goto 999
+c
+c transposition
+ 110 continue
+ vol=istk(id1+mn1)-1
+ if(abs(m1).eq.1.or.abs(n1).eq.1) then
+ if(it1.eq.1.and.op.ne.quote+dot) then
+ call dscal(vol,-1.0d0,stk(l1i),1)
+ endif
+ istk(il1+1)=n1
+ istk(il1+2)=m1
+ goto 999
+ endif
+
+ id2=iadr(lstk(top+1))
+ l2r=sadr(id2+mn1+1)
+ l2i=l2r+vol
+ err=l2r+vol*(it1+1)-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+ if(it1.eq.1) goto 111
+ call dmptra(stk(l1r),istk(id1),m1,stk(l2r),istk(id2),m1,n1)
+ goto 112
+ 111 call wmptra(stk(l1r),stk(l1i),istk(id1),m1,stk(l2r),stk(l2i),
+ & istk(id2),m1,n1)
+ 112 istk(il1+1)=n1
+ istk(il1+2)=m1
+ call icopy(mn1+1,istk(id2),1,istk(id1),1)
+ call unsfdcopy(vol*(it1+1),stk(l2r),1,stk(l1r),1)
+ if (it1.eq.1.and.op.ne.quote+dot) then
+ call dscal(vol,-1.0d0,stk(l1r+vol),1)
+ endif
+ goto 999
+c
+c
+c insertion
+c
+ 120 continue
+ if(rhs.gt.4) then
+ top=topin
+ fin=-fin
+ return
+ endif
+ if(rhs.eq.4) goto 124
+c arg3(arg1)=arg2
+c
+c get arg3
+ var3(1)=0
+ il3=iadr(lstk(top))
+ if(istk(il3).lt.0) il3=iadr(istk(il3+1))
+ m3=istk(il3+1)
+ n3=istk(il3+2)
+ it3=istk(il3+3)
+ mn3=m3*n3
+ if(istk(il3).eq.2) then
+ id3=il3+8
+ call icopy(4,istk(il3+4),1,var3,1)
+ l3r=sadr(id3+mn3+1)
+ vol=istk(id3+mn3)-1
+ l3i=l3r+vol
+ elseif(istk(il3).eq.1) then
+ l3r=sadr(il3+4)
+ l3i=l3r+mn3
+ id3=iadr(lw)
+ lw=sadr(id3+mn3+1)
+ err=lw-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+ call ivimp(1,mn3+1,1,istk(id3))
+ endif
+c get arg2
+ top=top-1
+ var2(1)=0
+ il2=iadr(lstk(top))
+ if(istk(il2).lt.0) il2=iadr(istk(il2+1))
+ if(istk(il2).eq.0) then
+ call error(220)
+ return
+ endif
+ m2=istk(il2+1)
+ n2=istk(il2+2)
+ it2=istk(il2+3)
+ mn2=m2*n2
+ if(istk(il2).eq.2) then
+ id2=il2+8
+ call icopy(4,istk(il2+4),1,var2,1)
+ l2r=sadr(id2+mn2+1)
+ vol=istk(id2+mn2)-1
+ l2i=l2r+vol
+ else
+ l2r=sadr(il2+4)
+ l2i=l2r+mn2
+ id2=iadr(lw)
+ lw=sadr(id2+mn2+1)
+ err=lw-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+ call ivimp(1,mn2+1,1,istk(id2))
+ endif
+ if(var2(1).eq.0) call icopy(4,var3,1,var2,1)
+ if(.not.chkvar(var2,var3)) then
+ fin=-fin
+ top=top+1
+ call error(278)
+ return
+ endif
+c get arg1
+ top=top-1
+ il1=iadr(lstk(top))
+ ilrs=il1
+ if(il1.lt.0) il1=iadr(istk(il1))
+ if(istk(il1).eq.0) then
+ call error(220)
+ return
+ endif
+ if (istk(il1).eq.10.or.istk(il1).eq.15) then
+ top=topin
+ fin=-fin
+ return
+ endif
+ m1=istk(il1+1)
+ n1=istk(il1+2)
+c
+ if (m2.eq.0) then
+c . arg3(arg1)=[]
+ if(m1.eq.-1) then
+c . arg3(:)=[] -->[]
+ istk(ilrs)=1
+ istk(ilrs+1)=0
+ istk(ilrs+2)=0
+ istk(ilrs+3)=0
+ lstk(top+1)=sadr(ilrs+4)+1
+ goto 999
+ elseif(m1.eq.0) then
+c . arg3([])=[] --> arg3
+ volr=istk(id3+mn3)-1
+ istk(ilrs)=2
+ istk(ilrs+1)=m3
+ istk(ilrs+2)=n3
+ istk(ilrs+3)=it3
+ call icopy(4,var2,1,istk(ilrs+4),1)
+ call icopy(mn3+1,istk(id3),1,istk(ilrs+8),1)
+ l1=sadr(ilrs+9+mn3)
+ call unsfdcopy(volr*(it3+1),stk(l3r),1,stk(l1),1)
+ lstk(top+1)=l1+volr*(it3+1)
+ goto 999
+ else
+c . arg3(arg1)=[] --> arg3(compl(arg1))
+ call indxgc(il1,mn3,ilr,mi,mx,lw)
+ if(err.gt.0) return
+ l2r=l3r
+ l2i=l3i
+ n2=n3
+ m2=m3
+ mn2=m2*n2
+ it2=it3
+ id2=id3
+ ili=ilr
+c . call extraction
+ goto 131
+ endif
+ elseif(m2.lt.0.or.m3.lt.0) then
+c . arg3=eye,arg2=eye
+ call error(14)
+ return
+ elseif(m1.lt.0) then
+c . arg3(:)=arg2
+ if(mn2.ne.mn3) then
+ if(mn2.eq.1) goto 121
+ call error(15)
+ return
+ endif
+c . reshape arg2 according to arg3
+ volr=lstk(top+2)-lstk(top+1)
+c . copy arg2
+ call unsfdcopy(volr,stk(lstk(top+1)),1,stk(lstk(top)),1)
+
+c . change dimensions
+ istk(ilrs+1)=m3
+ istk(ilrs+2)=n3
+ lstk(top+1)=lstk(top)+volr
+ goto 999
+ endif
+ 121 call indxg(il1,mn3,ili,mi,mxi,lw,1)
+ if(err.gt.0) return
+ if(mi.eq.0) then
+c . arg3([])=arg2
+ if(mn2.eq.1) then
+c . arg3([])=c --> arg3
+ volr=istk(id3+mn3)-1
+ istk(ilrs)=2
+ istk(ilrs+1)=m3
+ istk(ilrs+2)=n3
+ istk(ilrs+3)=it3
+ call icopy(4,var2,1,istk(ilrs+4),1)
+ call icopy(mn3+1,istk(id3),1,istk(ilrs+8),1)
+ l1=sadr(ilrs+9+mn3)
+ call unsfdcopy(volr*(it3+1),stk(l3r),1,stk(l1),1)
+ lstk(top+1)=l1+volr*(it3+1)
+ goto 999
+ else
+ call error(15)
+ return
+ endif
+ endif
+ inc2=1
+ if(mi.ne.mn2) then
+ if(mn2.eq.1) then
+ inc2=0
+ else
+ call error(15)
+ return
+ endif
+ endif
+c
+ if (n3.gt.1.and.m3.gt.1) then
+c . arg3 is not a vector
+ if(n2.gt.1.and.m2.gt.1) then
+ call error(15)
+ return
+ endif
+ if(mxi.gt.m3*n3) then
+ call error(21)
+ return
+ endif
+ mr=m3
+ nr=n3
+ elseif (n3.le.1.and.n2.le.1) then
+c . arg3 and arg2 are column vectors
+ mr=max(m3,mxi)
+ nr=max(n3,1)
+
+ elseif (m3.le.1.and.m2.le.1) then
+c . row vectors
+ nr=max(n3,mxi)
+ mr=max(m3,1)
+ else
+c . arg3 and arg2 dimensions dont agree
+ call error(15)
+ return
+ endif
+c
+ itr=max(it2,it3)
+ mnr=mr*nr
+c set result pointers
+ idr=iadr(lw)
+ ilr=idr+mr*nr+1
+ lr=sadr(ilr)
+ ilw=ilr
+ err=sadr(ilr+mr*nr+1)-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+ call mpinsp(istk(id3),m3*n3,1,istk(ili),mi,1,1,istk(id2),m2*n2,1
+ $ ,istk(idr),mr*nr,1,1,istk(ilw),err)
+ if(err.gt.0) then
+ call error(15)
+ return
+ endif
+ volr=istk(idr)
+c set result coefficients
+ li=lr+volr
+ lw=li+volr*itr
+ err=lw-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+c
+ if(it2.eq.0) then
+ if(it3.eq.0) then
+ call dmpins(stk(l3r),istk(id3),m3*n3,1,stk(l2r),istk(id2),
+ $ m2*n2,1,stk(lr),istk(idr),mr*nr,1)
+ else
+ l2i=lw
+ lw=l2i+istk(id2+mn2)
+ err=lw-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+ call dset(istk(id2+mn2)-1,0.0d+0,stk(l2i),1)
+ call wmpins(stk(l3r),stk(l3i),istk(id3),m3*n3,1,
+ $ stk(l2r),stk(l2i),istk(id2),m2*n2,1,stk(lr),
+ $ stk(lr+volr),istk(idr),mr*nr,1)
+ endif
+ else
+ if(it3.eq.0) then
+ l3i=lw
+ lw=l3i+istk(id3+mn3)
+ err=lw-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+ call dset(istk(id3+mn3)-1,0.0d+0,stk(l3i),1)
+ call wmpins(stk(l3r),stk(l3i),istk(id3),m3*n3,1,
+ $ stk(l2r),stk(l2i),istk(id2),m2*n2,1,stk(lr),
+ $ stk(lr+volr),istk(idr),mr*nr,1)
+ else
+ call wmpins(stk(l3r),stk(l3i),istk(id3),m3*n3,1,
+ $ stk(l2r),stk(l2i),istk(id2),m2*n2,1,stk(lr),
+ $ stk(lr+volr),istk(idr),mr*nr,1)
+ endif
+ endif
+c set output variable
+ il1=iadr(lstk(top))
+ istk(il1)=2
+ istk(il1+1)=mr
+ istk(il1+2)=nr
+ istk(il1+3)=itr
+ call icopy(4,var2,1,istk(il1+4),1)
+ call icopy(mr*nr+1,istk(idr),1,istk(il1+8),1)
+ l1=sadr(il1+mr*nr+9)
+ call unsfdcopy(volr*(itr+1),stk(lr),1,stk(l1),1)
+ lstk(top+1)=l1+volr*(itr+1)
+ goto 999
+c
+ 124 continue
+c arg4(arg1,arg2)=arg3
+c get arg4
+ var4(1)=0
+ il4=iadr(lstk(top))
+ if(istk(il4).lt.0) il4=iadr(istk(il4+1))
+ m4=istk(il4+1)
+ n4=istk(il4+2)
+ it4=istk(il4+3)
+ mn4=m4*n4
+ if(istk(il4).eq.2) then
+ id4=il4+8
+ call icopy(4,istk(il4+4),1,var4,1)
+ l4r=sadr(id4+mn4+1)
+ vol=istk(id4+mn4)-1
+ l4i=l4r+vol
+ else
+ l4r=sadr(il4+4)
+ l4i=l4r+mn4
+ id4=iadr(lw)
+ lw=sadr(id4+mn4+1)
+ err=lw-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+ call ivimp(1,mn4+1,1,istk(id4))
+ endif
+ top=top-1
+c get arg3
+ var3(1)=0
+ il3=iadr(lstk(top))
+ if(istk(il3).lt.0) il3=iadr(istk(il3+1))
+ if(istk(il3).eq.0) then
+ call error(220)
+ return
+ endif
+ m3=istk(il3+1)
+ n3=istk(il3+2)
+ it3=istk(il3+3)
+ mn3=m3*n3
+ if(istk(il3).eq.2) then
+ id3=il3+8
+ call icopy(4,istk(il3+4),1,var3,1)
+ l3r=sadr(id3+mn3+1)
+ vol=istk(id3+mn3)-1
+ l3i=l3r+vol
+ else
+ l3r=sadr(il3+4)
+ l3i=l3r+mn3
+ id3=iadr(lw)
+ lw=sadr(id3+mn3+1)
+ err=lw-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+ call ivimp(1,mn3+1,1,istk(id3))
+ endif
+ if(var3(1).eq.0) call icopy(4,var4,1,var3,1)
+ if(.not.chkvar(var3,var4)) then
+ fin=-fin
+ top=top+2
+ endif
+c get arg2
+ top=top-1
+ il2=iadr(lstk(top))
+ if(istk(il2).lt.0) il2=iadr(istk(il2+1))
+ if(istk(il2).eq.0) then
+ call error(220)
+ return
+ endif
+ m2=istk(il2+1)
+c get arg1
+ top=top-1
+ il1=iadr(lstk(top))
+ ilrs=il1
+ if(istk(il1).lt.0) il1=iadr(istk(il1+1))
+ if(istk(il1).eq.0) then
+ call error(220)
+ return
+ endif
+ m1=istk(il1+1)
+
+ if (m3.eq.0) then
+c . arg4(arg1,arg2)=[]
+ if(m1.eq.-1.and.m2.eq.-1) then
+c . arg4(:,:)=[] -->[]
+ istk(ilrs)=1
+ istk(ilrs+1)=0
+ istk(ilrs+2)=0
+ istk(ilrs+3)=0
+ lstk(top+1)=sadr(ilrs+4)+1
+ goto 999
+ elseif(m1.eq.0.or.m2.eq.0) then
+c . arg4([],arg2)=[], arg4(arg1,[])=[] --> arg4
+ volr=istk(id4+mn4)-1
+ istk(ilrs)=2
+ istk(ilrs+1)=m4
+ istk(ilrs+2)=n4
+ istk(ilrs+3)=it4
+ call icopy(4,var3,1,istk(ilrs+4),1)
+ call icopy(mn4+1,istk(id4),1,istk(ilrs+8),1)
+ l1=sadr(ilrs+9+mn4)
+ call unsfdcopy(volr*(it4+1),stk(l4r),1,stk(l1),1)
+ lstk(top+1)=l1+volr*(it4+1)
+ goto 999
+ elseif(m2.eq.-1) then
+c . arg4(arg1,:)=[] --> arg3(compl(arg1),:)
+ call indxgc(il1,m4,ili,mi,mxi,lw)
+ if(err.gt.0) return
+ call indxg(il2,n4,ilj,nj,mxj,lw,1)
+ if(err.gt.0) return
+ l3r=l4r
+ l3i=l4i
+ n3=n4
+ m3=m4
+ mn3=m3*n3
+ it3=it4
+ id3=id4
+c . call extraction
+ goto 133
+ elseif(m1.eq.-1) then
+c . arg4(:,arg2)=[] --> arg4(:,compl(arg2))
+ call indxgc(il2,n4,ilj,nj,mxj,lw)
+ if(err.gt.0) return
+ call indxg(il1,m4,ili,mi,mxi,lw,1)
+ if(err.gt.0) return
+ l3r=l4r
+ l3i=l4i
+ n3=n4
+ m3=m4
+ mn3=m3*n3
+ it3=it4
+ id3=id4
+c . call extraction
+ goto 133
+ else
+c . arg4(arg1,arg2)=[]
+ lw1=lw
+ call indxgc(il2,n4,ilj,nj,mxj,lw)
+ if(err.gt.0) return
+ if(nj.eq.0) then
+c . arg4(arg1,1:n4)=[]
+ call indxgc(il1,m4,ili,mi,mxi,lw)
+ lw2=lw
+ if(err.gt.0) return
+c . arg2=1:n4
+ if(mi.eq.0) then
+c . arg4(1:m4,1:n4)=[]
+ istk(ilrs)=1
+ istk(ilrs+1)=0
+ istk(ilrs+2)=0
+ istk(ilrs+3)=0
+ lstk(top+1)=sadr(ilrs+4)+1
+ goto 999
+ else
+c . arg4(arg1,1:n4)=[]
+c . replace arg2 by ":"
+ il2=iadr(lw2)
+ istk(il2)=1
+ istk(il2+1)=-1
+ istk(il2+2)=-1
+ istk(il2+3)=0
+c .
+ lw=lw2+2
+ call indxg(il2,n4,ilj,nj,mxj,lw,1)
+ if(err.gt.0) return
+ l3r=l4r
+ n3=n4
+ m3=m4
+ it3=it4
+ mn3=m3*n3
+ id3=id4
+c . call extraction
+ goto 133
+ endif
+ elseif(nj.eq.n4) then
+c . arg4(arg1,[])=[] --> arg4
+ volr=istk(id4+mn4)-1
+ istk(ilrs)=2
+ istk(ilrs+1)=m4
+ istk(ilrs+2)=n4
+ istk(ilrs+3)=it4
+ call icopy(4,var3,1,istk(ilrs+4),1)
+ call icopy(mn4+1,istk(id4),1,istk(ilrs+8),1)
+ l1=sadr(ilrs+9+mn4)
+ call unsfdcopy(volr*(it4+1),stk(l4r),1,stk(l1),1)
+ lstk(top+1)=l1+volr*(it4+1)
+ goto 999
+ else
+ call indxgc(il1,m4,ili,mi,mxi,lw)
+ if(err.gt.0) return
+
+ if(mi.eq.0) then
+c . arg4(1:m4,arg2)=[]
+ call indxg(il1,m4,ili,mi,mxi,lw,1)
+ if(err.gt.0) return
+ l3r=l4r
+ n3=n4
+ m3=m4
+C . given set is larger than 1:m4
+ mi=min(m4,mi)
+ it3=it4
+ mn3=m3*n3
+ id3=id4
+c . call extraction
+ goto 133
+ elseif(mi.eq.m4) then
+c . arg4([],arg2)=[] --> arg4
+ volr=istk(id4+mn4)-1
+ istk(ilrs)=2
+ istk(ilrs+1)=m4
+ istk(ilrs+2)=n4
+ istk(ilrs+3)=it4
+ call icopy(4,var3,1,istk(ilrs+4),1)
+ call icopy(mn4+1,istk(id4),1,istk(ilrs+8),1)
+ l1=sadr(ilrs+9+mn4)
+ call unsfdcopy(volr*(it4+1),stk(l4r),1,stk(l1),1)
+ lstk(top+1)=l1+volr*(it4+1)
+ goto 999
+ else
+ call error(15)
+ return
+ endif
+ endif
+ endif
+ elseif(m3.lt.0.or.m4.lt.0) then
+c . arg3=eye , arg4=eye
+ call error(14)
+ return
+ elseif(m1.eq.-1.and.m2.eq.-1) then
+c . arg4(:,:)=arg3
+ if(mn3.ne.mn4) then
+ if(mn3.eq.1) goto 125
+ call error(15)
+ return
+ endif
+c . reshape arg3 according to arg4
+ volr=istk(id3+mn3)-1
+ istk(ilrs)=2
+ istk(ilrs+1)=m4
+ istk(ilrs+2)=n4
+ istk(ilrs+3)=it3
+ call icopy(4,var3,1,istk(ilrs+4),1)
+ call icopy(mn3+1,istk(id3),1,istk(ilrs+8),1)
+ l1=sadr(ilrs+9+mn3)
+ call unsfdcopy(volr*(it3+1),stk(l3r),1,stk(l1),1)
+ lstk(top+1)=l1+volr*(it3+1)
+ goto 999
+ endif
+
+ 125 continue
+ init4=0
+ if(m1.eq.-1.and.m4.eq.0) then
+c . arg4(:,i)=arg3
+ m3=m3*n3
+ n3=1
+ n4=1
+ m4=m3
+ init4=1
+
+ elseif(m2.eq.-1.and.m4.eq.0) then
+c . arg4(i,:)=arg3
+ n3=m3*n3
+ m3=1
+ m4=1
+ n4=n3
+ init4=1
+ endif
+ if(init4.eq.1) then
+
+ mn4=m4*n4
+ l4r=lw
+ l4i=l4r+mn4
+ id4=iadr(l4i)
+ lw=sadr(id4+mn4+1)
+ err=lw-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+ call dset(mn4,0.0d0,stk(l4r),1)
+ call ivimp(1,mn4+1,1,istk(id4))
+ endif
+ call indxg(il1,m4,ili,mi,mxi,lw,1)
+ if(err.gt.0) return
+ call indxg(il2,n4,ilj,mj,mxj,lw,1)
+ if(err.gt.0) return
+ if(mi.ne.m3.or.mj.ne.n3) then
+c . sizes of arg1 or arg2 dont agree with arg3 sizes
+ inc3=1
+ if(mn3.eq.1) then
+ if(mi.eq.0.or.mj.eq.0) then
+ volr=istk(id4+mn4)-1
+ istk(ilrs)=2
+ istk(ilrs+1)=m4
+ istk(ilrs+2)=n4
+ istk(ilrs+3)=it4
+ call icopy(4,var3,1,istk(ilrs+4),1)
+ call icopy(mn4+1,istk(id4),1,istk(ilrs+8),1)
+ l1=sadr(ilrs+9+mn4)
+ call unsfdcopy(volr*(it4+1),stk(l4r),1,stk(l1),1)
+ lstk(top+1)=l1+volr*(it4+1)
+ goto 999
+ endif
+ inc3=0
+ else
+ call error(15)
+ return
+ endif
+ else
+ if(mi.eq.0.or.mj.eq.0) then
+ call error(15)
+ return
+ endif
+ endif
+ mr=max(m4,mxi)
+ nr=max(n4,mxj)
+c
+ mnr=mr*nr
+ itr=max(it4,it3)
+c set result pointers
+ idr=iadr(lw)
+ ilr=idr+mr*nr+1
+ lr=sadr(ilr)
+ ilw=ilr
+ err=sadr(ilw+mr+nr)-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+ call mpinsp(istk(id4),m4,n4,istk(ili),mi,istk(ilj),mj,istk(id3)
+ $ ,m3,n3,istk(idr),mr,nr,1,istk(ilw),err)
+ if(err.gt.0) then
+ call error(15)
+ return
+ endif
+ volr=istk(idr)
+c set result coefficients
+ li=lr+volr
+ lw=li+volr*itr
+ err=lw-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+c
+ if(it3.eq.0) then
+ if(it4.eq.0) then
+ call dmpins(stk(l4r),istk(id4),m4,n4,stk(l3r),istk(id3),
+ $ m3,n3,stk(lr),istk(idr),mr,nr)
+ else
+ l3i=lw
+ lw=l3i+istk(id3+mn3)
+ err=lw-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+ call dset(istk(id3+mn3),0.0d+0,stk(l3i),1)
+ call wmpins(stk(l4r),stk(l4i),istk(id4),m4,n4,
+ $ stk(l3r),stk(l3i),istk(id3),m3,n3,stk(lr),
+ $ stk(lr+volr),istk(idr),mr,nr)
+ endif
+ else
+ if(it4.eq.0) then
+ l4i=lw
+ lw=l4i+istk(id4+mn4)
+ err=lw-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+ call dset(istk(id4+mn4),0.0d+0,stk(l4i),1)
+ call wmpins(stk(l4r),stk(l4i),istk(id4),m4,n4,
+ $ stk(l3r),stk(l3i),istk(id3),m3,n3,stk(lr),
+ $ stk(lr+volr),istk(idr),mr,nr)
+ else
+ call wmpins(stk(l4r),stk(l4i),istk(id4),m4,n4,
+ $ stk(l3r),stk(l3i),istk(id3),m3,n3,stk(lr),
+ $ stk(lr+volr),istk(idr),mr,nr)
+ endif
+ endif
+c set output variable
+ il1=iadr(lstk(top))
+ istk(il1)=2
+ istk(il1+1)=mr
+ istk(il1+2)=nr
+ istk(il1+3)=itr
+ call icopy(4,var3,1,istk(il1+4),1)
+ call icopy(mr*nr+1,istk(idr),1,istk(il1+8),1)
+ l1=sadr(il1+mr*nr+9)
+ call unsfdcopy(volr*(itr+1),stk(lr),1,stk(l1),1)
+ lstk(top+1)=l1+volr*(itr+1)
+ goto 999
+
+
+c
+c extraction
+ 130 continue
+ if(rhs.lt.2) then
+ call error(227)
+ return
+ endif
+ if(rhs.eq.3) goto 132
+ if(rhs.gt.3) then
+ fin=-fin
+ return
+ endif
+c arg2(arg1)
+c get arg2
+ il2=iadr(lstk(top))
+ if(istk(il2).lt.0) il2=iadr(istk(il2+1))
+ m2=istk(il2+1)
+ n2=istk(il2+2)
+ it2=istk(il2+3)
+ mn2=m2*n2
+ id2=il2+8
+ call icopy(4,istk(il2+4),1,var2,1)
+ l2r=sadr(id2+mn2+1)
+ vol=istk(id2+mn2)-1
+ l2i=l2r+vol
+c get arg1
+ top=top-1
+ il1=iadr(lstk(top))
+ if(istk(il1).lt.0) il1=iadr(istk(il1+1))
+ if(istk(il1).eq.0) then
+ call error(220)
+ return
+ endif
+ m1=istk(il1+1)
+ n1=istk(il1+2)
+
+ if(mn2.eq.0) then
+c . arg2=[]
+ il1=iadr(lstk(top))
+ istk(il1)=1
+ istk(il1+1)=0
+ istk(il1+2)=0
+ istk(il1+3)=0
+ l1=sadr(il1+4)
+ lstk(top+1)=l1+1
+ goto 999
+ elseif(m2.lt.0) then
+c . arg2=eye
+ call error(14)
+ return
+ elseif(m1.lt.0) then
+c . arg2(:), just reshape to column vector
+ volr=istk(id2+mn2)-1
+ il1=iadr(lstk(top))
+ istk(il1)=2
+ istk(il1+1)=mn2
+ istk(il1+2)=1
+ istk(il1+3)=istk(il2+3)
+ call icopy(4,var2,1,istk(il1+4),1)
+ call icopy(mn2+1,istk(id2),1,istk(il1+8),1)
+ l1=sadr(il1+9+mn2)
+ call unsfdcopy(volr*(it2+1),stk(l2r),1,stk(l1),1)
+ lstk(top+1)=l1+volr*(it2+1)
+ goto 999
+ endif
+c check and convert indices variable
+ call indxg(il1,mn2,ili,mi,mx,lw,1)
+ if(err.gt.0) return
+ if(mx.gt.mn2) then
+ call error(21)
+ return
+ endif
+ 131 if(mi.eq.0) then
+c arg2([])
+ il1=iadr(lstk(top))
+ istk(il1)=1
+ istk(il1+1)=0
+ istk(il1+2)=0
+ istk(il1+3)=0
+ l1=sadr(il1+4)
+ lstk(top+1)=l1+1
+ goto 999
+ endif
+c get memory for the result
+ idr=iadr(lw)
+ lr=sadr(idr+mi+1)
+ lw=lr
+ err=lw-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+c set result pointers
+ if (m2 .gt. 1.or.m1.lt.0) then
+ call dmpext(stk(l2r),istk(id2),m2,n2,istk(ili),mi,1,1,stk(lr)
+ $ ,istk(idr),0,err)
+ else
+ call dmpext(stk(l2r),istk(id2),m2,n2,1,1,istk(ili),mi,stk(lr)
+ $ ,istk(idr),0,err)
+ endif
+ if(err.gt.0) then
+ call error(21)
+ return
+ endif
+c set result coefficients
+ volr=istk(idr+mi)-1
+ lw=lr+volr*(it2+1)
+ err=lw-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+ if (m2.eq.1.and.n2.eq.1.and.m1.gt.0) then
+ m = m1
+ n = min(n1,mi)
+ call dmpext(stk(l2r),istk(id2),m2,n2,istk(ili),mi,1,1,stk(lr)
+ $ ,istk(idr),1,err)
+ if(it2.eq.1) call dmpext(stk(l2i),istk(id2),m2,n2,istk(ili),mi
+ $ ,1,1,stk(lr+volr),istk(idr),1,err)
+ elseif (m2 .gt. 1.or.m1.lt.0) then
+ call dmpext(stk(l2r),istk(id2),m2,n2,istk(ili),mi,1,1,stk(lr)
+ $ ,istk(idr),1,err)
+ if(it2.eq.1) call dmpext(stk(l2i),istk(id2),m2,n2,istk(ili),mi
+ $ ,1,1,stk(lr+volr),istk(idr),1,err)
+ m = mi
+ n = 1
+ else
+ call dmpext(stk(l2r),istk(id2),m2,n2,1,1,istk(ili),mi,stk(lr)
+ $ ,istk(idr),1,err)
+ if(it2.eq.1) call dmpext(stk(l2i),istk(id2),m2,n2,1,1,istk(ili)
+ $ ,mi,stk(lr+volr),istk(idr),1,err)
+ n = mi
+ m = 1
+ endif
+c form resulting variable
+ il1=iadr(lstk(top))
+ istk(il1)=2
+ istk(il1+1)=m
+ istk(il1+2)=n
+ istk(il1+3)=it2
+ call icopy(4,var2,1,istk(il1+4),1)
+ call icopy(mi+1,istk(idr),1,istk(il1+8),1)
+ l1=sadr(il1+9+mi)
+ call unsfdcopy(volr*(it2+1),stk(lr),1,stk(l1),1)
+ lstk(top+1)=l1+volr*(it2+1)
+ go to 999
+c
+ 132 continue
+c arg3(arg1,arg2)
+c get arg3
+ il3=iadr(lstk(top))
+ if(istk(il3).lt.0) il3=iadr(istk(il3+1))
+ m3=istk(il3+1)
+ n3=istk(il3+2)
+ it3=istk(il3+3)
+ mn3=m3*n3
+ id3=il3+8
+ call icopy(4,istk(il3+4),1,var3,1)
+ l3r=sadr(id3+mn3+1)
+ vol=istk(id3+mn3)-1
+ l3i=l3r+vol
+c get arg2
+ top=top-1
+ il2=iadr(lstk(top))
+ if(istk(il2).lt.0) il2=iadr(istk(il2+1))
+ if(istk(il2).eq.0) then
+ call error(220)
+ return
+ endif
+ m2=istk(il2+1)
+c get arg1
+ top=top-1
+ il1=iadr(lstk(top))
+ if(istk(il1).lt.0) il1=iadr(istk(il1+1))
+ if(istk(il1).eq.0) then
+ call error(220)
+ return
+ endif
+ m1=istk(il1+1)
+c
+ if(mn3.eq.0) then
+c . arg3=[]
+ il1=iadr(lstk(top))
+ istk(il1)=1
+ istk(il1+1)=0
+ istk(il1+2)=0
+ istk(il1+3)=0
+ l1=sadr(il1+4)
+ lstk(top+1)=l1+1
+ goto 999
+ elseif(m3.lt.0) then
+c .arg3=eye
+ call error(14)
+ return
+ endif
+c check and convert indices variables
+ call indxg(il1,m3,ili,mi,mxi,lw,1)
+ if(err.gt.0) return
+ if(mxi.gt.m3) then
+ call error(21)
+ return
+ endif
+ call indxg(il2,n3,ilj,nj,mxj,lw,1)
+ if(err.gt.0) return
+ if(mxj.gt.n3) then
+ call error(21)
+ return
+ endif
+c
+c perform extraction
+ 133 mnr=mi*nj
+ if(mnr.eq.0) then
+c . arg1=[] or arg2=[]
+ il1=iadr(lstk(top))
+ istk(il1)=1
+ istk(il1+1)=0
+ istk(il1+2)=0
+ istk(il1+3)=0
+ l1=sadr(il1+4)
+ lstk(top+1)=l1+1
+ goto 999
+ endif
+ idr=iadr(lw)
+ lr=sadr(idr+mnr+1)
+ lw=lr
+ err=lr-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+c set result pointers
+ call dmpext(stk(l3r),istk(id3),m3,n3,istk(ili),mi,istk(ilj),nj
+ $ ,stk(lr),istk(idr),0,err)
+ if(err.gt.0) then
+ call error(21)
+ return
+ endif
+c set result coefficients
+ volr=istk(idr+mnr)-1
+ lw=lr+volr*(it3+1)
+ err=lw-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+ call dmpext(stk(l3r),istk(id3),m3,n3,istk(ili),mi,istk(ilj),nj
+ $ ,stk(lr),istk(idr),1,err)
+ if(it3.eq.1) call dmpext(stk(l3i),istk(id3),m3,n3,istk(ili),mi
+ $ ,istk(ilj),nj,stk(lr+volr),istk(idr),1,err)
+c
+ il1=iadr(lstk(top))
+ istk(il1)=2
+ istk(il1+1)=mi
+ istk(il1+2)=nj
+ istk(il1+3)=it3
+ call icopy(4,var3,1,istk(il1+4),1)
+ call icopy(mnr+1,istk(idr),1,istk(il1+8),1)
+ l1=sadr(il1+9+mnr)
+ call unsfdcopy(volr*(it3+1),stk(lr),1,stk(l1),1)
+ lstk(top+1)=l1+volr*(it3+1)
+ goto 999
+c
+c divisions
+c
+c division a droite
+ 150 continue
+ if(mn1.eq.0.or.mn2.eq.0) then
+ istk(il1)=1
+ istk(il1+1)=0
+ istk(il1+2)=0
+ istk(il1+3)=0
+ lstk(top+1)=sadr(il1+4)+1
+ goto 999
+ endif
+ if(op.eq.slash) then
+ if(mn2.ne.1.and.mn1.ne.1.and.n2.ne.n1) then
+ call error(11)
+ return
+ endif
+ if(istk(il2).ne.1) then
+c . divisor is a polynomial
+ fin=-op
+ top=top+1
+ goto 999
+ elseif(mn2.gt.1) then
+c . divisor is not a scalar
+ fin=-op
+ top=top+1
+ goto 999
+ else
+c . scalar divisor
+ mn=mn2
+ l=l2r
+ il=il2
+ it=it2
+ goto 157
+ endif
+ elseif(op.eq.dot+slash) then
+ if(mn2.ne.1.and.mn1.ne.1.and.(m1.ne.m2.or.n1.ne.n2)) then
+ call error(11)
+ return
+ endif
+ if(istk(il2).ne.1) then
+c . divisor is a polynomial
+ fin=-op
+ top=top+1
+ goto 999
+ else
+c . divisor is a vector of scalar
+ mn=mn2
+ l=l2r
+ il=il2
+ it=it2
+ goto 157
+ endif
+ endif
+c
+c
+c division a gauche
+ 155 continue
+ if(mn1.eq.0.or.mn2.eq.0) then
+ istk(il1)=1
+ istk(il1+1)=0
+ istk(il1+2)=0
+ istk(il1+3)=0
+ lstk(top+1)=sadr(il1+4)+1
+ goto 999
+ endif
+ if(op.eq.bslash) then
+ if(mn2.ne.1.and.mn1.ne.1.and.m2.ne.m1) then
+ call error(12)
+ return
+ endif
+ if(istk(il1).ne.1) then
+c . divisor is a polynomial
+ fin=-op
+ top=top+1
+ goto 999
+ elseif(mn1.gt.1) then
+c . divisor is not a scalar
+ fin=-op
+ top=top+1
+ goto 999
+ else
+c . scalar divisor
+ mn=mn1
+ l=l1r
+ il=il1
+ it=it1
+ goto 157
+ endif
+ elseif(op.eq.dot+bslash) then
+ if(mn2.ne.1.and.mn1.ne.1.and.(m1.ne.m2.or.n1.ne.n2)) then
+ call error(12)
+ return
+ endif
+ if(istk(il1).ne.1) then
+c . divisor is a polynomial
+ fin=-op
+ top=top+1
+ goto 999
+ else
+c . divisor is a vector of scalar
+ mn=mn1
+ l=l1r
+ il=il1
+ it=it1
+ goto 157
+ endif
+ endif
+ go to 999
+
+c in-line inversion procedure
+ 157 continue
+c divisor is a vector of scalars
+ do 158 i=1,mn
+ sr=stk(l-1+i)
+ si=0.0d+0
+ if(it.eq.1) si=stk(l+mn-1+i)
+ e1=max(abs(sr),abs(si))
+ if(e1.eq.0.d0) then
+ call error(27)
+ return
+ endif
+ sr=sr/e1
+ si=si/e1
+ e1=e1*(sr*sr+si*si)
+ stk(l-1+i)=sr/e1
+ if(it.eq.1) stk(l+mn-1+i)=-si/e1
+ 158 continue
+c . goto multiplication alg
+ goto 40
+
+c
+c comparaisons
+ 160 continue
+ itrue=1
+ if(op.eq.less+great) itrue=0
+c comparaison des types
+ if(istk(il1).gt.2.or.istk(il2).gt.2) then
+ istk(il1)=4
+ istk(il1+1)=1
+ istk(il1+2)=1
+ istk(il1+3)=1-itrue
+ lstk(top+1)=sadr(il1+4)
+ return
+ endif
+c des nom de variable
+ do 161 i=1,4
+ if(var1(i).ne.var2(i)) then
+ istk(il1)=4
+ istk(il1+1)=1
+ istk(il1+2)=1
+ istk(il1+3)=1-itrue
+ lstk(top+1)=sadr(il1+4)
+ return
+ endif
+ 161 continue
+c des dimensions
+ if(m1.eq.-1) then
+c . eye op b
+ nn1=istk(id1+1)-1
+ il1w=iadr(lw)
+ lw=sadr(il1w+m2*n2)
+ err=lw+2-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+ stk(lw)=0.0d0
+ stk(lw+1)=0.0d0
+ i2=id2
+ n2=abs(n2)
+ m2=abs(m2)
+ do 166 i=1,n2
+ do 165 j=1,m2
+ if (i.eq.j) then
+ if(nn1.ne.istk(i2+1)-istk(i2) ) goto 164
+ nl=nn1
+ l1=l1r-1
+ else
+ if(1.ne.istk(i2+1)-istk(i2) ) goto 164
+ l1=lw-1
+ nl=1
+ endif
+ l2=l2r+istk(i2)-2
+ do 162 ii=1,nl
+ if(stk(l1+ii).ne.stk(l2+ii)) goto 164
+ 162 continue
+ if(max(it1,it2).eq.1) then
+ e1=0.0d+0
+ e2=0.0d+0
+ do 163 ii=1,nl
+ if(it1.eq.1) e1=stk(l1+nl+ii)
+ if(it2.eq.1) e2=stk(l2i+istk(i2)-2+ii)
+ if(e1.ne.e2) goto 164
+ 163 continue
+ endif
+ i2=i2+1
+ istk(il1w-1+(j-1)*m2+i)=itrue
+ goto 165
+ 164 continue
+ i2=i2+1
+ istk(il1w-1+(j-1)*m2+i)=1-itrue
+ 165 continue
+ 166 continue
+ istk(il1)=4
+ istk(il1+1)=m2
+ istk(il1+2)=n2
+ call icopy(m2*n2,istk(il1w),1,istk(il1+3),1)
+ lstk(top+1)=sadr(il1+3+m2*n2)
+ goto 999
+ elseif(m2.eq.-1) then
+c . b op eye
+ nn2=istk(id2+1)-1
+ il1w=iadr(lw)
+ lw=sadr(il1w+m1*n1)
+ err=lw+2-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+ stk(lw)=0.0d0
+ stk(lw+1)=0.0d0
+ i1=id1
+ do 176 i=1,n1
+ do 175 j=1,m1
+ if (i.eq.j) then
+ if(nn2.ne.istk(i1+1)-istk(i1) ) goto 174
+ nl=nn2
+ l2=l2r-1
+ else
+ if(1.ne.istk(i1+1)-istk(i1) ) goto 174
+ l2=lw-1
+ nl=1
+ endif
+ l1=l1r+istk(i1)-2
+ do 172 ii=1,nl
+ if(stk(l2+ii).ne.stk(l1+ii)) goto 174
+ 172 continue
+ if(max(it1,it2).eq.1) then
+ e1=0.0d+0
+ e2=0.0d+0
+ do 173 ii=1,nl
+ if(it1.eq.1) e1=stk(l2+nl+ii)
+ if(it2.eq.1) e2=stk(l1i+istk(i1)-2+ii)
+ if(e1.ne.e2) goto 174
+ 173 continue
+ endif
+ i1=i1+1
+ istk(il1w-1+(j-1)*m1+i)=itrue
+ goto 175
+ 174 continue
+ i2=i2+1
+ istk(il1w-1+(j-1)*m1+i)=1-itrue
+ 175 continue
+ 176 continue
+ istk(il1)=4
+ istk(il1+1)=m1
+ istk(il1+2)=n1
+ call icopy(m1*n1,istk(il1w),1,istk(il1+3),1)
+ lstk(top+1)=sadr(il1+3+m1*n1)
+ goto 999
+
+ elseif(mn1.eq.1.and.mn2.gt.1) then
+ nn1=istk(id1+1)-1
+ err=lw+nn1*(it1+1)+2-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+ call unsfdcopy(nn1*(it1+1),stk(l1r),1,stk(lw),1)
+ l1r=lw
+ l1i=l1r+nn1
+ id1=iadr(l1r+nn1*(it1+1))
+ istk(id1)=1
+ istk(id1+1)=nn1+1
+ inc1=0
+ inc2=1
+ mn1=mn2
+ m1=m2
+ n1=n2
+ istk(il1+1)=m1
+ istk(il1+2)=n1
+ else if(mn2.eq.1.and.mn1.gt.1) then
+ nn2=istk(id2+1)-1
+ err=lw+nn2*(it2+1)+2-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+ call unsfdcopy(nn2*(it2+1),stk(l2r),1,stk(lw),1)
+ l2r=lw
+ l2i=l2r+nn2
+ id2=iadr(l2r+nn2*(it2+1))
+ istk(id2)=1
+ istk(id2+1)=nn2+1
+ inc1=1
+ inc2=0
+ mn2=mn1
+ m2=m1
+ n2=n1
+ else if(n1.ne.n2.or.m1.ne.m2) then
+ istk(il1)=4
+ istk(il1+1)=1
+ istk(il1+2)=1
+ istk(il1+3)=1-itrue
+ lstk(top+1)=sadr(il1+4)
+ return
+ else
+ inc1=1
+ inc2=1
+ endif
+c des valeurs
+ i1=id1-inc1
+ i2=id2-inc2
+ l1r=l1r-1
+ l2r=l2r-1
+ l1i=l1i-1
+ l2i=l2i-1
+ do 185 i=0,mn1-1
+ i1=i1+inc1
+ i2=i2+inc2
+ if(istk(il2).eq.1) then
+c poly == double
+c check rank
+ if(istk(i1+1)-istk(i1)-1.ne.0) goto 184
+c check real values
+ if(stk(l1r+istk(i1)).ne.stk(l2r+(i*inc2)+1)) goto 184
+c check imaginary values
+ if(it1+it2.eq.2) then
+ if(stk(l1i+istk(i1)).ne.stk(l2i+(i*inc2)+1)) goto 184
+ else if(it1.eq.1) then
+ if(stk(l1i+istk(i1)).ne.0.0d+0) goto 184
+ else if(it2.eq.1) then
+ if(0.0d+0.ne.stk(l2i+(i*inc2)+1)) goto 184
+ endif
+ else if (istk(il1).eq.1) then
+c double == poly
+c check rank
+ if(istk(i2+1)-istk(i2)-1.ne.0) goto 184
+c check real values
+ if(stk(l1r+(i*inc1)+1).ne.stk(l2r+istk(i2))) goto 184
+c check imaginary values
+ if(it1+it2.eq.2) then
+ if(stk(l1i+(i*inc1)+1).ne.stk(l2i+istk(i2))) goto 184
+ else if(it1.eq.1) then
+ if(stk(l1i+(i*inc1)+1).ne.0.0d+0) goto 184
+ else if(it2.eq.1) then
+ if(0.0d+0.ne.stk(l2i+istk(i2))) goto 184
+ endif
+ else
+c poly == poly
+c check rank
+ if(istk(i1+1)-istk(i1).ne.istk(i2+1)-istk(i2) ) goto 184
+ nl=istk(i1+1)-istk(i1)-1
+c check real values
+ do 182 ii=0,nl
+ if(stk(l1r+istk(i1)+ii).ne.stk(l2r+istk(i2)+ii)) goto 184
+ 182 continue
+ istk(il1+3+i)=itrue
+ if(max(it1,it2).eq.0) goto 185
+ e1=0.0d+0
+ e2=0.0d+0
+c check imaginary values
+ do 183 ii=0,nl
+ if(it1.eq.1) e1=stk(l1i+istk(i1)+ii)
+ if(it2.eq.1) e2=stk(l2i+istk(i2)+ii)
+ if(e1.ne.e2) goto 184
+ 183 continue
+ endif
+ istk(il1+3+i)=itrue
+ goto 185
+ 184 istk(il1+3+i)=1-itrue
+ 185 continue
+ istk(il1)=4
+ istk(il1+1)=m1
+ istk(il1+2)=n1
+ lstk(top+1)=sadr(il1+3+mn1)
+ goto 999
+c
+ 200 continue
+c a [:b]:c
+ var1(1)=0
+ if(rhs.eq.3) then
+ il3=iadr(lstk(top))
+ if(istk(il3).lt.0) il3=iadr(istk(il3+1))
+ if(istk(il3+1).ne.1.or.istk(il3+2).ne.1) then
+ err=3
+ call putid(ids(1,pt+1),colonid)
+ call error(204)
+ return
+ endif
+ if(istk(il3+3).ne.0) then
+ err=3
+ call error(52)
+ return
+ endif
+ if(istk(il3).eq.1) then
+ n3=1
+ l3=sadr(il3+4)
+ else
+ n3=istk(il3+9)-1
+ l3=sadr(il3+10)
+ call icopy(4,istk(il3+4),1,var1,1)
+ endif
+ top=top-1
+ endif
+ if (rhs.ge.2) then
+ il2=iadr(lstk(top))
+ if(istk(il2).lt.0) il2=iadr(istk(il2+1))
+ if(istk(il2+1).ne.1.or.istk(il2+2).ne.1) then
+ err=2
+ call putid(ids(1,pt+1),colonid)
+ call error(204)
+ return
+ endif
+ if(istk(il2+3).ne.0) then
+ err=2
+ call error(52)
+ return
+ endif
+ if(istk(il2).eq.1) then
+ n2=1
+ l2=sadr(il2+4)
+ else
+ n2=istk(il2+9)-1
+ l2=sadr(il2+10)
+ if (var1(1).ne.0) then
+ if(var1(1).ne.istk(il2+4).or.var1(2).ne.istk(il2+5).or
+ $ .var1(3).ne.istk(il2+6).or.var1(4).ne.istk(il2+7))
+ $ then
+ call error(278)
+ return
+ endif
+ else
+ call icopy(4,istk(il2+4),1,var1,1)
+ endif
+ endif
+ top=top-1
+ endif
+ il1=iadr(lstk(top))
+ if(istk(il1).lt.0) il1=iadr(istk(il1+1))
+ if(istk(il1+1).ne.1.or.istk(il1+2).ne.1) then
+ err=1
+ call putid(ids(1,pt+1),colonid)
+ call error(204)
+ return
+ endif
+ if(istk(il1+3).ne.0) then
+ err=2
+ call error(52)
+ return
+ endif
+ if(istk(il1).eq.1) then
+ n1=1
+ l1=sadr(il1+4)
+ else
+ n1=istk(il1+9)-1
+ l1=sadr(il1+10)
+ if (var1(1).ne.0) then
+ if(var1(1).ne.istk(il1+4).or.var1(2).ne.istk(il1+5).or.
+ $ var1(3).ne.istk(il1+6).or.var1(4).ne.istk(il1+7)) then
+ call error(278)
+ return
+ endif
+ else
+ call icopy(4,istk(il1+4),1,var1,1)
+ endif
+ endif
+ if (rhs.eq.2) then
+ n3=n2
+ l3=l2
+ n2=1
+ l2=lw
+ stk(l2)=1
+ lw=lw+1
+ endif
+ call unsfdcopy(n1,stk(l1),1,stk(lw),1)
+ call unsfdcopy(n2,stk(l2),1,stk(lw+n1),1)
+ call unsfdcopy(n3,stk(l3),1,stk(lw+n1+n2),1)
+ il1=iadr(lstk(top))
+ istk(il1)=129
+ istk(il1+1)=1
+ istk(il1+2)=3
+ istk(il1+3)=0
+ call icopy(4,var1,1,istk(il1+4),1)
+ istk(il1+8)=1
+ istk(il1+9)=1+n1
+ istk(il1+10)=istk(il1+9)+n2
+ istk(il1+11)=istk(il1+10)+n3
+ l=sadr(il1+12)
+ call unsfdcopy(n1+n2+n3,stk(lw),1,stk(l),1)
+ lstk(top+1)=l+n1+n2+n3
+c
+ 999 return
+ end
diff --git a/modules/polynomials/sci_gateway/fortran/polops.lo b/modules/polynomials/sci_gateway/fortran/polops.lo
new file mode 100755
index 000000000..430858609
--- /dev/null
+++ b/modules/polynomials/sci_gateway/fortran/polops.lo
@@ -0,0 +1,12 @@
+# sci_gateway/fortran/polops.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/polops.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/polynomials/sci_gateway/fortran/sci_f_bezout.f b/modules/polynomials/sci_gateway/fortran/sci_f_bezout.f
new file mode 100755
index 000000000..21cc216bc
--- /dev/null
+++ b/modules/polynomials/sci_gateway/fortran/sci_f_bezout.f
@@ -0,0 +1,156 @@
+c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+c Copyright (C) ????-2008 - INRIA
+c
+c This file must be used under the terms of the CeCILL.
+c This source file is licensed as described in the file COPYING, which
+c you should have received as part of this distribution. The terms
+c are also available at
+c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+ subroutine intbez(id)
+ INCLUDE 'stack.h'
+ integer iadr, sadr
+ integer id(nsiz)
+ integer vol,blank,ipb(6)
+ double precision er
+
+ logical refa,refb
+ data blank/40/
+c
+ iadr(l)=l+l-1
+ sadr(l)=(l/2)+1
+c
+
+ if(rhs.ne.2) then
+ call error(42)
+ return
+ endif
+ if(lhs.ne.2.and.lhs.ne.3) then
+ call error(41)
+ return
+ endif
+ lw =lstk(top+1)
+c
+ ilb=iadr(lstk(top))
+ ilbr=ilb
+ if(istk(ilb).lt.0) ilb=iadr(istk(ilb+1))
+ if(istk(ilb).gt.2) then
+ fun=-1
+ call funnam(ids(1,pt+1),'bezout',ilb)
+ return
+ endif
+ refb=ilbr.ne.ilb
+ itb=istk(ilb+3)
+ if(itb.ne.0) then
+ fun=-1
+ call funnam(ids(1,pt+1),'bezout',ilb)
+ return
+ endif
+ if(istk(ilb+1)*istk(ilb+2).ne.1)then
+ err=2
+ call error(89)
+ return
+ endif
+ if(istk(ilb).eq.1) then
+ nb=0
+ lb=sadr(ilb+4)
+ id(1)=0
+ else
+ nb=istk(ilb+9)-2
+ lb=sadr(ilb+9)
+ call icopy(4,istk(ilb+4),1,id,1)
+ endif
+c
+ il1=iadr(lstk(top+1-rhs))
+ ilr=il1
+ if(istk(il1).lt.0) il1=iadr(istk(il1+1))
+ if(istk(il1).gt.2) then
+ fun=-1
+ call funnam(ids(1,pt+1),'bezout',il1)
+ return
+ endif
+ refa=ilr.ne.il1
+ it1=istk(il1+3)
+ if(it1.ne.0) then
+ fun=-1
+ call funnam(ids(1,pt+1),'bezout',il1)
+ return
+ endif
+ if(istk(il1+1)*istk(il1+2).ne.1) then
+ err=1
+ call error(89)
+ return
+ endif
+ mn1=1
+ if(istk(il1).eq.2) then
+ id1=il1+8
+ l1=sadr(id1+mn1+1)
+ vol=istk(id1+mn1)-1
+ na=vol-1
+ if(id(1).eq.0) call icopy(4,istk(il1+4),1,id,1)
+ else
+ l1=sadr(il1+4)
+ na=0
+ endif
+ if(id(1).eq.0) call iset(4,blank,id,1)
+c
+ lf=lstk(top+1)+na+9
+ if(refa) lf=lw+na+9
+c
+ lw=lf+2*(na+nb)+min(na,nb)+3
+ n0=max(na,nb)+1
+ err=lw+10*n0+3*n0*n0-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+ call recbez(stk(l1),na,stk(lb),nb,stk(lf),ipb,stk(lw),er)
+c pgcd
+ istk(ilr)=2
+ istk(ilr+1)=1
+ istk(ilr+2)=1
+ istk(ilr+3)=0
+ call icopy(4,id,1,istk(ilr+4),1)
+ l1=sadr(ilr+8+mn1+1)
+ istk(ilr+8)=1
+ np=ipb(2)-ipb(1)-1
+ istk(ilr+9)=2+np
+ call unsfdcopy(np+1,stk(lf+ipb(1)-1),1,stk(l1),1)
+ lstk(top)=l1+np+1
+
+c matrice q
+ il=iadr(lstk(top))
+ istk(il)=2
+ istk(il+1)=2
+ istk(il+2)=2
+ istk(il+3)=0
+ call icopy(4,id,1,istk(il+4),1)
+ il=il+8
+ istk(il)=1
+ l=sadr(il+5)
+ do 71 i=1,4
+ ii=i+1
+ istk(il+1)=istk(il)+ipb(ii+1)-ipb(ii)
+ call unsfdcopy(istk(il+1)-istk(il),stk(lf+ipb(ii)-1),1,
+ $ stk(l),1)
+ l=l+istk(il+1)-istk(il)
+ il=il+1
+ 71 continue
+ lstk(top+1)=l
+ if(lhs.eq.3) then
+c retour de l'erreur
+ top=top+1
+ il=iadr(lstk(top))
+ istk(il)=1
+ istk(il+1)=1
+ istk(il+2)=1
+ istk(il+3)=0
+ l=sadr(il+4)
+ stk(l)=er
+ lstk(top+1)=l+1
+ endif
+ goto 999
+ 999 return
+ end
+
+c =======================================
diff --git a/modules/polynomials/sci_gateway/fortran/sci_f_bezout.lo b/modules/polynomials/sci_gateway/fortran/sci_f_bezout.lo
new file mode 100755
index 000000000..c29808b4a
--- /dev/null
+++ b/modules/polynomials/sci_gateway/fortran/sci_f_bezout.lo
@@ -0,0 +1,12 @@
+# sci_gateway/fortran/sci_f_bezout.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/sci_f_bezout.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/polynomials/sci_gateway/fortran/sci_f_coeff.f b/modules/polynomials/sci_gateway/fortran/sci_f_coeff.f
new file mode 100755
index 000000000..65874cab4
--- /dev/null
+++ b/modules/polynomials/sci_gateway/fortran/sci_f_coeff.f
@@ -0,0 +1,207 @@
+c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+c Copyright (C) ????-2008 - INRIA
+c
+c This file must be used under the terms of the CeCILL.
+c This source file is licensed as described in the file COPYING, which
+c you should have received as part of this distribution. The terms
+c are also available at
+c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+ subroutine intcoeff(id)
+ INCLUDE 'stack.h'
+ integer iadr, sadr
+ integer id(nsiz)
+ integer v2,vol,top0
+ logical ref
+c
+ iadr(l)=l+l-1
+ sadr(l)=(l/2)+1
+c
+ if(lhs.ne.1) then
+ call error(41)
+ return
+ endif
+ if(rhs.ne.1.and.rhs.ne.2) then
+ call error(42)
+ return
+ endif
+ top0=top
+c
+ il1=iadr(lstk(top+1-rhs))
+ ilr=il1
+ if(istk(il1).lt.0) il1=iadr(istk(il1+1))
+ ref=il1.ne.ilr
+ if(istk(il1).gt.2) then
+ fun=-1
+ call funnam(ids(1,pt+1),'coeff',il1)
+ return
+ endif
+
+ if(rhs.eq.2) then
+ ilv=iadr(lstk(top))
+ if(istk(ilv).lt.0) ilv=iadr(istk(ilv+1))
+ if(istk(ilv).ne.1) then
+ err=2
+ call error(53)
+ return
+ endif
+ if(istk(ilv+3).ne.0) then
+ err=2
+ call error(52)
+ return
+ endif
+ nv=istk(ilv+1)*istk(ilv+2)
+ if(nv.eq.0) then
+ top=top-1
+ istk(ilr)=1
+ istk(ilr+1)=0
+ istk(ilr+2)=0
+ istk(ilr+3)=0
+ lstk(top+1)=sadr(ilr+4)
+ return
+ endif
+ if(istk(ilv+1).ne.1.and.istk(ilv+2).ne.1) then
+ err=2
+ call error(89)
+ return
+ endif
+ lv=sadr(ilv+4)
+ do 10 i=0,nv-1
+ if(int(stk(lv+i)).lt.0) then
+ err=2
+ call error(116)
+ return
+ endif
+ 10 continue
+ top=top-1
+ endif
+c
+ m1=istk(il1+1)
+ n1=istk(il1+2)
+ it1=istk(il1+3)
+ mn1=m1*n1
+c
+ if(ref) then
+ lr=sadr(ilr+4)
+ else
+ lr=lstk(top+1)
+ endif
+c
+ if(istk(il1).eq.2) then
+c coeff of a matrix of polynomials
+ id1=il1+8
+ l1=sadr(id1+mn1+1)
+ vol=istk(id1+mn1)-1
+
+ if(rhs.eq.1) then
+ mx=0
+ do 20 ij=1,mn1
+ nij=istk(id1+ij)-istk(id1+ij-1)
+ if(nij.gt.mx) mx=nij
+ 20 continue
+ v2=mn1*mx
+ err=lr+v2*(it1+1)-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+ call dset(v2*(it1+1),0.0d+0,stk(lr),1)
+ do 30 ij=1,mn1
+ nij=istk(id1+ij)-istk(id1+ij-1)
+ lij=l1-1+istk(id1+ij-1)
+ call unsfdcopy(nij,stk(lij),1,stk(lr-1+ij),mn1)
+ if(it1.eq.1) then
+ call unsfdcopy(nij,stk(lij+vol),1,stk(lr+v2-1+ij),mn1)
+ endif
+ 30 continue
+ if(.not.ref) then
+ l=sadr(ilr+4)
+ call unsfdcopy(v2*(it1+1),stk(lr),1,stk(l),1)
+ lr=l
+ endif
+ istk(ilr)=1
+ istk(ilr+1)=m1
+ istk(ilr+2)=n1*mx
+ istk(ilr+3)=it1
+ lstk(top+1)=lr+v2*(it1+1)
+ else
+ lw=max(lstk(top0+1),lr+mn1*nv*(it1+1))
+ err=lw+nv-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+ call unsfdcopy(nv,stk(lv),1,stk(lw),1)
+ lv=lw
+ call dset(mn1*nv*(it1+1),0.0d+0,stk(lr),1)
+ do 41 ij=1,mn1
+ nij=istk(id1+ij)-istk(id1+ij-1)
+ lij=l1-1+istk(id1+ij-1)
+ do 40 k=1,nv
+ mv=int(stk(lv-1+k))
+ if(mv.ge.nij) goto 40
+ stk(lr+ij-1+(k-1)*mn1)=stk(lij+mv)
+ if(it1.ne.0) stk(lr+ij-1+(k-1+nv)*mn1)=stk(lij+mv+vol)
+ 40 continue
+ 41 continue
+ l=sadr(ilr+4)
+ if(.not.ref) call unsfdcopy(mn1*nv*(it1+1),stk(lr),1,
+ $ stk(l),1)
+ istk(ilr)=1
+ istk(ilr+1)=m1
+ istk(ilr+2)=n1*nv
+ istk(ilr+3)=it1
+ lstk(top+1)=l+mn1*nv*(it1+1)
+ endif
+ else
+c coeff of a matrix of numbers
+ if(rhs.eq.1) then
+c . return the input matrix
+ if(ref) then
+c . copy matrix on the top of the stack
+ k=istk(ilr+2)
+ err=lstk(top)+lstk(k+1)-lstk(k)-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+ call unsfdcopy(lstk(k+1)-lstk(k),stk(lstk(k)),1
+ $ ,stk(lstk(top)),1)
+ lstk(top+1)=lstk(top)+lstk(k+1)-lstk(k)
+ endif
+ return
+ endif
+ l1=sadr(il1+4)
+ vol=mn1
+
+ lw=lr+mn1*nv*(it1+1)
+ err=lw+nv-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+ if(lv.le.lw) then
+ call unsfdcopy(nv,stk(lv),-1,stk(lw),-1)
+ lv=lw
+ endif
+ call dset(mn1*nv*(it1+1),0.0d+0,stk(lr),1)
+ do 50 k=1,nv
+ if(stk(lv-1+k).eq.0.0d0) then
+ call unsfdcopy(mn1,stk(l1),1,stk(lr+(k-1)*mn1),1)
+ if(it1.eq.1) call unsfdcopy(mn1,stk(l1+mn1),1,
+ $ stk(lr+(k-1)*mn1+mn1*nv),1)
+ endif
+ 50 continue
+ l=sadr(ilr+4)
+ if(.not.ref) call unsfdcopy(mn1*nv*(it1+1),stk(lr),1,stk(l),1)
+ istk(ilr)=1
+ istk(ilr+1)=m1
+ istk(ilr+2)=n1*nv
+ istk(ilr+3)=it1
+ lstk(top+1)=l+mn1*nv*(it1+1)
+ endif
+
+ return
+ end
+
+c =======================================
diff --git a/modules/polynomials/sci_gateway/fortran/sci_f_coeff.lo b/modules/polynomials/sci_gateway/fortran/sci_f_coeff.lo
new file mode 100755
index 000000000..ed1378ffc
--- /dev/null
+++ b/modules/polynomials/sci_gateway/fortran/sci_f_coeff.lo
@@ -0,0 +1,12 @@
+# sci_gateway/fortran/sci_f_coeff.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/sci_f_coeff.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/polynomials/sci_gateway/fortran/sci_f_degree.f b/modules/polynomials/sci_gateway/fortran/sci_f_degree.f
new file mode 100755
index 000000000..0b9d0fa27
--- /dev/null
+++ b/modules/polynomials/sci_gateway/fortran/sci_f_degree.f
@@ -0,0 +1,93 @@
+c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+c Copyright (C) ????-2008 - INRIA
+c
+c This file must be used under the terms of the CeCILL.
+c This source file is licensed as described in the file COPYING, which
+c you should have received as part of this distribution. The terms
+c are also available at
+c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+ subroutine intdegree(id)
+ INCLUDE 'stack.h'
+ integer iadr, sadr
+ integer id(nsiz)
+ logical ref
+c
+ iadr(l)=l+l-1
+ sadr(l)=(l/2)+1
+
+ if(lhs.ne.1) then
+ call error(41)
+ return
+ endif
+ if(rhs.ne.1) then
+ call error(42)
+ return
+ endif
+c
+ il1=iadr(lstk(top+1-rhs))
+ ilr=il1
+ if(istk(il1).lt.0) il1=iadr(istk(il1+1))
+ ref=il1.ne.ilr
+ if(istk(il1).gt.2) then
+ fun=-1
+ call funnam(ids(1,pt+1),'degree',il1)
+ return
+ endif
+
+ m1=istk(il1+1)
+ n1=istk(il1+2)
+ mn1=m1*n1
+
+ if(mn1.eq.0) then
+ if (ref) then
+ l=sadr(ilr+4)
+ err=l-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+ istk(ilr)=1
+ istk(ilr+1)=0
+ istk(ilr+2)=0
+ istk(ilr+3)=0
+ lstk(top+1)=l
+ endif
+ return
+ endif
+c
+ if(istk(il1).eq.2) then
+ id1=il1+8
+ if(ref) then
+ l1=sadr(ilr+4)
+ l=l1
+ else
+ l1=sadr(id1+mn1+1)
+ l=sadr(ilr+4)
+ endif
+ do 31 k=1,mn1
+ stk(l1-1+k)=dble(istk(id1+k)-istk(id1+k-1)-1)
+ 31 continue
+ if(ref) then
+ istk(ilr)=1
+ istk(ilr+1)=m1
+ istk(ilr+2)=n1
+ istk(ilr+3)=0
+ else
+ istk(ilr)=1
+ istk(ilr+3)=0
+ call unsfdcopy(mn1,stk(l1),1,stk(l),1)
+ endif
+ lstk(top+1)=l+mn1
+ elseif(istk(il1).eq.1) then
+ istk(ilr)=1
+ istk(ilr+1)=m1
+ istk(ilr+2)=n1
+ istk(ilr+3)=0
+ l=sadr(ilr+4)
+ call dset(mn1,0.0d+0,stk(l),1)
+ lstk(top+1)=l+mn1
+ endif
+ return
+ end
+c =======================================
diff --git a/modules/polynomials/sci_gateway/fortran/sci_f_degree.lo b/modules/polynomials/sci_gateway/fortran/sci_f_degree.lo
new file mode 100755
index 000000000..80f6015a8
--- /dev/null
+++ b/modules/polynomials/sci_gateway/fortran/sci_f_degree.lo
@@ -0,0 +1,12 @@
+# sci_gateway/fortran/sci_f_degree.lo - a libtool object file
+# Generated by libtool (GNU libtool) 2.4.2
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object='.libs/sci_f_degree.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/polynomials/sci_gateway/fortran/sci_f_diag.f b/modules/polynomials/sci_gateway/fortran/sci_f_diag.f
new file mode 100755
index 000000000..0815b02f7
--- /dev/null
+++ b/modules/polynomials/sci_gateway/fortran/sci_f_diag.f
@@ -0,0 +1,132 @@
+c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+c Copyright (C) ????-2008 - INRIA
+c
+c This file must be used under the terms of the CeCILL.
+c This source file is licensed as described in the file COPYING, which
+c you should have received as part of this distribution. The terms
+c are also available at
+c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+ subroutine intpdiag(id)
+ INCLUDE 'stack.h'
+ integer iadr, sadr
+ integer id(nsiz)
+ integer volr,vol,tops
+ logical ref
+
+c
+ iadr(l)=l+l-1
+ sadr(l)=(l/2)+1
+c
+ lw=lstk(top+1)
+ tops=top
+c
+ if(lhs.ne.1) then
+ call error(41)
+ return
+ endif
+ if(rhs.ne.1.and.rhs.ne.2) then
+ call error(42)
+ return
+ endif
+c
+ kdiag=0
+ if (rhs .eq. 2) then
+ il=iadr(lstk(top))
+ if(istk(il).lt.0) il=iadr(istk(il+1))
+ if(istk(il).ne.1) then
+ err=1
+ call error(53)
+ return
+ endif
+ if(istk(il+3).ne.0) then
+ err=1
+ call error(52)
+ return
+ endif
+ if(istk(il+1)*istk(il+2).ne.1) then
+ err=1
+ call error(89)
+ return
+ endif
+ kdiag = int(stk(sadr(il+4)))
+ top = top-1
+ endif
+
+ lw=lstk(top+1)
+c
+ il1=iadr(lstk(top))
+ ilr=il1
+ if(istk(il1).lt.0) il1=iadr(istk(il1+1))
+ ref=il1.ne.ilr
+ if(istk(il1).ne.2) then
+ fun=-1
+ top=tops
+ call funnam(ids(1,pt+1),'diag',il1)
+ return
+ endif
+c
+ id1=il1+8
+ m1=istk(il1+1)
+ n1=istk(il1+2)
+ it1=istk(il1+3)
+ mn1=m1*n1
+ l1=sadr(id1+mn1+1)
+ vol=istk(id1+mn1)-1
+
+c
+ if(ref) then
+ idr=ilr+8
+ else
+ idr=iadr(lw)
+ endif
+ if(m1.eq.1.or.n1.eq.1) then
+ m1=mn1
+ n1=0
+ err=sadr(idr+mn1*(mn1+abs(kdiag)))-lstk(bot)
+ else
+ err=sadr(idr+min(n1,m1))-lstk(bot)
+ endif
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+c
+ call mpdiag(istk(id1),m1,n1,kdiag,istk(idr),mr,nr)
+ if(nr.le.0.or.mr.le.0) then
+ istk(ilr)=1
+ istk(ilr+1)=0
+ istk(ilr+2)=0
+ istk(ilr+3)=0
+ lstk(top+1)=sadr(ilr+4)
+ goto 999
+ endif
+ lr=sadr(idr+mr*nr+1)
+ volr=istk(idr)
+ err=lr+volr*(it1+1)-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+ if (it1.eq.0) then
+ call dmpins(stk(l1),istk(id1),mn1,1,stk,1,0,0,
+ 1 stk(lr),istk(idr),mr,nr)
+ else
+ call wmpins(stk(l1),stk(l1+vol),istk(id1),mn1,1,
+ 1 stk,stk,1,0,0,stk(lr),stk(lr+volr),istk(idr),mr,nr)
+ endif
+ if(ref) then
+ call icopy(8,istk(il1),1,istk(ilr),1)
+ l1=sadr(idr+mr*nr+1)
+ else
+ call icopy(mr*nr+1,istk(idr),1,istk(id1),1)
+ l1=sadr(id1+mr*nr+1)
+ call unsfdcopy(volr*(it1+1),stk(lr),1,stk(l1),1)
+ endif
+ istk(ilr+1)=mr
+ istk(ilr+2)=nr
+ lstk(top+1)=l1+volr*(it1+1)
+ goto 999
+ 999 return
+ end
+c =======================================
diff --git a/modules/polynomials/sci_gateway/fortran/sci_f_diag.lo b/modules/polynomials/sci_gateway/fortran/sci_f_diag.lo
new file mode 100755
index 000000000..eda62b669
--- /dev/null
+++ b/modules/polynomials/sci_gateway/fortran/sci_f_diag.lo
@@ -0,0 +1,12 @@
+# sci_gateway/fortran/sci_f_diag.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/sci_f_diag.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/polynomials/sci_gateway/fortran/sci_f_div.f b/modules/polynomials/sci_gateway/fortran/sci_f_div.f
new file mode 100755
index 000000000..e0b63bf4c
--- /dev/null
+++ b/modules/polynomials/sci_gateway/fortran/sci_f_div.f
@@ -0,0 +1,299 @@
+c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+c Copyright (C) ????-2008 - INRIA
+c
+c This file must be used under the terms of the CeCILL.
+c This source file is licensed as described in the file COPYING, which
+c you should have received as part of this distribution. The terms
+c are also available at
+c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+ subroutine intpdiv(id)
+ INCLUDE 'stack.h'
+ integer iadr, sadr
+ integer id(nsiz)
+ integer voln,vold,v2
+c
+ iadr(l)=l+l-1
+ sadr(l)=(l/2)+1
+c
+ if(lhs.ne.1.and.lhs.ne.2) then
+ call error(41)
+ return
+ endif
+ if(rhs.ne.2) then
+ call error(42)
+ return
+ endif
+c
+ lw=lstk(top+1)
+c
+ iln=iadr(lstk(top+1-rhs))
+
+ il=iln
+ if(istk(il).lt.0) il=iadr(istk(il+1))
+ if(istk(il).gt.2) then
+ fun=-1
+ call funnam(ids(1,pt+1),'pdiv',il)
+ return
+ endif
+c
+ ild=iadr(lstk(top))
+
+ il=ild
+ if(istk(il).lt.0) il=iadr(istk(il+1))
+ if(istk(il).gt.2) then
+ fun=-1
+ call funnam(ids(1,pt+1),'pdiv',il)
+ return
+ endif
+c
+ if(istk(iln).lt.0) then
+c move d and copy value of n in place of its reference
+ k=istk(iln+2)
+ voln=lstk(k+1)-lstk(k)
+ vold=lstk(top+1)-lstk(top)
+ err=lstk(top)+voln+vold-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+ call unsfdcopy(vold,stk(lstk(top)),-1,stk(lstk(top-1)+voln),-1)
+ call unsfdcopy(voln,stk(lstk(k)),1,stk(lstk(top-1)),1)
+ lstk(top)=lstk(top-1)+voln
+ ild=iadr(lstk(top))
+ lstk(top+1)=lstk(top)+vold
+ endif
+
+ if(istk(ild).lt.0) then
+c copy value of b in place of its reference
+ k=istk(ild+2)
+ vold=lstk(k+1)-lstk(k)
+ err=lstk(top)+vold-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+ call unsfdcopy(vold,stk(lstk(k)),1,stk(lstk(top)),1)
+ lstk(top+1)=lstk(top)+vold
+ endif
+ lw=lstk(top+1)
+
+ il1=iln
+ m1=istk(il1+1)
+ n1=istk(il1+2)
+ it1=istk(il1+3)
+ l1=sadr(il1+4)
+ mn1=m1*n1
+ if(mn1.ne.1) then
+ err=1
+ call error(89)
+ return
+ endif
+ if(istk(il1).eq.2) then
+ id1=il1+8
+ l1=sadr(id1+mn1+1)
+ vol=istk(id1+mn1)-1
+ call icopy(4,istk(il1+4),1,id,1)
+ nn=istk(id1+1)-2
+ else
+ nn=0
+ id(1)=0
+ endif
+c
+c denominateur
+
+ nd=istk(ild+1)*istk(ild+2)
+ if(nd.ne.1) then
+ err=2
+ call error(89)
+ return
+ endif
+ itd=istk(ild+3)
+ if(istk(ild).eq.1) then
+ ld=sadr(ild+4)
+ nd=0
+ if (id(1).eq.0) then
+ err=2
+ call error(54)
+ return
+ endif
+ v2=1
+ else
+ if(id(1).eq.0) call icopy(4,istk(ild+4),1,id,1)
+ do 61 i=1,4
+ if(id(i).ne.istk(ild+3+i)) then
+ call error(43)
+ return
+ endif
+ 61 continue
+ nd=istk(ild+9)-2
+ ld=sadr(ild+10)
+ v2=istk(ild+9)-1
+ endif
+
+c test degre du denominateur
+ 64 continue
+ if(itd.eq.0) then
+ if(stk(ld+nd).ne.0.0d+0) goto 65
+ else
+ if(abs(stk(ld+nd))+abs(stk(ld+v2+nd)).ne.0.0d+0) goto 65
+ endif
+ nd=nd-1
+ if(nd.lt.0) then
+ call error(27)
+ return
+ endif
+ goto 64
+c
+ 65 if(nn.lt.nd) then
+c . No division to perform
+ if(lhs.eq.2) then
+ istk(ild)=1
+ ld=sadr(ild+4)
+ stk(ld)=0.0d+0
+ lstk(top+1)=ld+1
+ else
+ top=top-1
+ istk(il1)=1
+ stk(l1)=0.0d+0
+ lstk(top+1)=l1+1
+ endif
+ goto 999
+ endif
+c
+ if(it1.eq.0) then
+ if (itd.eq.0) then
+ call dpodiv(stk(l1),stk(ld),nn,nd)
+ else
+ l1i=lw
+ lw=l1i+nn+1
+ err=lw-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+ ldi=ld+v2
+ call dset(nn+1,0.0d0,stk(l1i),1)
+ call wpodiv(stk(l1),stk(l1i),stk(ld),stk(ldi),nn,nd,ierr)
+ endif
+ else
+ l1i=l1+nn+1
+ if (itd.eq.0) then
+ ldi=lw
+ lw=ldi+nd+1
+ err=lw-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+ call dset(nd+1,0.0d0,stk(ldi),1)
+ call wpodiv(stk(l1),stk(l1i),stk(ld),stk(ldi),nn,nd,ierr)
+ else
+ ldi=ld+v2
+ call wpodiv(stk(l1),stk(l1i),stk(ld),stk(ldi),nn,nd,ierr)
+ endif
+ endif
+c
+ itr=max(it1,itd)
+ nq=nn-nd
+
+ if(lhs.eq.1) then
+c . only q is returned
+ top=top-1
+c . set type
+ istk(il1+3)=itr
+c . set length
+ istk(il1+9)=nq+2
+c . install real and imaginary part
+ call unsfdcopy(nq+1,stk(l1+nd),1,stk(l1),1)
+ if(itr.eq.1) call unsfdcopy(nq+1,stk(l1i+nd),1,stk(l1+nq+1),1)
+ else
+c . computes remainder degree
+ nr=nd
+ 66 nr=nr-1
+ if(nr.lt.0) goto 67
+ if (itr.eq.0) then
+ if(stk(l1+nr).eq.0.0d+0) goto 66
+ else
+ if(stk(l1+nr).eq.0.0d+0.and.stk(l1i+nr).eq.0.0d+0) goto 66
+ endif
+ 67 continue
+
+c
+ if(itr.eq.0) then
+c . real result
+ if(nr.gt.0) then
+c . remainder is a polynomial
+ istk(id1+1)=nr+2
+ lstk(top)=l1+(nr+1)
+ else
+c . remainder is a scalar
+ istk(il1)=1
+ istk(il1+1)=1
+ istk(il1+2)=1
+ lr=sadr(il1+4)
+ stk(lr)=stk(l1)
+c???? stk(lr+1)=stk(l1i)
+ lstk(top)=lr+1
+ endif
+ ilq=iadr(lstk(top))
+ lq=sadr(ilq+10)
+ inc=1
+ if (l1+nd.lt.lq) inc=-1
+ call unsfdcopy(nq+1,stk(l1+nd),inc,stk(lq),inc)
+ if(nr.lt.0) stk(lr)=0.0d+0
+ istk(ilq)=2
+ istk(ilq+1)=1
+ istk(ilq+2)=1
+ istk(ilq+3)=0
+ call icopy(4,id,1,istk(ilq+4),1)
+ idq=ilq+8
+ istk(idq)=1
+ istk(idq+1)=nq+2
+ lstk(top+1)=lq+nq+1
+ goto 999
+ else
+c . complex result
+c . preserve quotient coeff
+ lqs=lw
+ lw=lqs+sadr(10)+(nq+1)*2
+ err=lw-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+ call unsfdcopy(nq+1,stk(l1+nd),1,stk(lqs),1)
+ call unsfdcopy(nq+1,stk(l1i+nd),1,stk(lqs+nq+1),1)
+
+c . set remainder
+ if(nr.ge.0) then
+ istk(il1+3)=1
+ call unsfdcopy(nr+1,stk(l1i),1,stk(l1+nr+1),1)
+ istk(id1+1)=nr+2
+ lstk(top)=l1+(nr+1)*2
+ else
+ istk(il1+3)=0
+ stk(l1)=0.0d0
+ istk(id1+1)=2
+ lstk(top)=l1+1
+ endif
+c . set quotient
+ ilq=iadr(lstk(top))
+ istk(ilq)=2
+ istk(ilq+1)=1
+ istk(ilq+2)=1
+ istk(ilq+3)=1
+ call icopy(4,id,1,istk(ilq+4),1)
+ idq=ilq+8
+ istk(idq)=1
+ istk(idq+1)=nq+2
+ lq=sadr(ilq+10)
+ call unsfdcopy(2*(nq+1),stk(lqs),1,stk(lq),1)
+ lstk(top+1)=lq+(nq+1)*2
+ endif
+ endif
+
+ goto 999
+ 999 return
+ end
+c =======================================
diff --git a/modules/polynomials/sci_gateway/fortran/sci_f_div.lo b/modules/polynomials/sci_gateway/fortran/sci_f_div.lo
new file mode 100755
index 000000000..a67a05fd8
--- /dev/null
+++ b/modules/polynomials/sci_gateway/fortran/sci_f_div.lo
@@ -0,0 +1,12 @@
+# sci_gateway/fortran/sci_f_div.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/sci_f_div.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/polynomials/sci_gateway/fortran/sci_f_pclean.f b/modules/polynomials/sci_gateway/fortran/sci_f_pclean.f
new file mode 100755
index 000000000..d82b39a7a
--- /dev/null
+++ b/modules/polynomials/sci_gateway/fortran/sci_f_pclean.f
@@ -0,0 +1,124 @@
+c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+c Copyright (C) ????-2008 - INRIA
+c
+c This file must be used under the terms of the CeCILL.
+c This source file is licensed as described in the file COPYING, which
+c you should have received as part of this distribution. The terms
+c are also available at
+c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+ subroutine intpclean(id)
+ INCLUDE 'stack.h'
+ integer iadr, sadr
+ integer id(nsiz)
+ integer vol
+ logical ref
+ double precision epsa,epsr
+c
+ iadr(l)=l+l-1
+ sadr(l)=(l/2)+1
+c
+ if(lhs.ne.1) then
+ call error(41)
+ return
+ endif
+ if (rhs.lt.1.or.rhs.gt.3) then
+ call error(42)
+ return
+ endif
+c
+ il1=iadr(lstk(top+1-rhs))
+ ilr=il1
+ if(istk(il1).lt.0) il1=iadr(istk(il1+1))
+ if(istk(il1).ne.2) then
+ fun=-1
+ call funnam(ids(1,pt+1),'clean',il1)
+ return
+ endif
+ ref=il1.ne.ilr
+
+c get relative and absolute tolerances
+ epsr=1.0d-10
+ epsa=1.0d-10
+
+ if (rhs.eq.3) then
+ il=iadr(lstk(top))
+ if(istk(il).lt.0) il=iadr(istk(il+1))
+ if(istk(il).ne.1) then
+ err=3
+ call error(52)
+ return
+ endif
+ if(istk(il+1)*istk(il+2).ne.1) then
+ err=3
+ call error(60)
+ return
+ endif
+ if(istk(il+3).ne.0) then
+ err=3
+ call error(52)
+ return
+ endif
+ epsr=stk(sadr(il+4))
+ top=top-1
+ endif
+
+ if (rhs.ge.2) then
+ il=iadr(lstk(top))
+ if(istk(il).lt.0) il=iadr(istk(il+1))
+ if(istk(il).ne.1) then
+ err=3
+ call error(52)
+ return
+ endif
+ if(istk(il+1)*istk(il+2).ne.1) then
+ err=3
+ call error(60)
+ return
+ endif
+ if(istk(il+3).ne.0) then
+ err=3
+ call error(52)
+ return
+ endif
+ epsa=stk(sadr(il+4))
+ top=top-1
+ endif
+
+ if(ref) then
+ k=istk(ilr+2)
+ vol=lstk(k+1)-lstk(k)
+ err=lstk(top)+vol-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+ call unsfdcopy(vol,stk(lstk(k)),1,stk(lstk(top)),1)
+ lstk(top+1)=lstk(top)+vol
+ il1=ilr
+ endif
+ it1=istk(il1+3)
+ m1=istk(il1+1)
+ n1=istk(il1+2)
+ mn1=m1*n1
+ id1=il1+8
+ l1=sadr(id1+mn1+1)
+ vol=istk(id1+mn1)-1
+
+
+ id2=iadr(lstk(top+1))
+ err=sadr(id2+mn1+1)-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+ if(it1.eq.0) then
+ call dmpcle(stk(l1),istk(id1),m1,n1,istk(id2),epsr,epsa)
+ else
+ call wmpcle(stk(l1),stk(l1+vol),istk(id1),m1,n1,
+ & istk(id2),epsr,epsa)
+ endif
+ lstk(top+1)=l1+(istk(id1+mn1)-1)*(it1+1)
+ return
+ end
+c =======================================
diff --git a/modules/polynomials/sci_gateway/fortran/sci_f_pclean.lo b/modules/polynomials/sci_gateway/fortran/sci_f_pclean.lo
new file mode 100755
index 000000000..333a22fe3
--- /dev/null
+++ b/modules/polynomials/sci_gateway/fortran/sci_f_pclean.lo
@@ -0,0 +1,12 @@
+# sci_gateway/fortran/sci_f_pclean.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/sci_f_pclean.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/polynomials/sci_gateway/fortran/sci_f_poly.f b/modules/polynomials/sci_gateway/fortran/sci_f_poly.f
new file mode 100755
index 000000000..d17617517
--- /dev/null
+++ b/modules/polynomials/sci_gateway/fortran/sci_f_poly.f
@@ -0,0 +1,244 @@
+c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+c Copyright (C) ????-2008 - INRIA
+c
+c This file must be used under the terms of the CeCILL.
+c This source file is licensed as described in the file COPYING, which
+c you should have received as part of this distribution. The terms
+c are also available at
+c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ subroutine intpoly(id)
+
+ INCLUDE 'stack.h'
+ integer id(nsiz)
+ integer iadr, sadr, w
+ integer blank,racine,coeff
+ logical roots,ref
+ integer r(5)
+ integer c(5)
+ integer size
+ character*256 tmpmsg
+c
+ data blank/40/,racine/27/,coeff/12/
+ data r/27, 24, 24, 29, 28/
+ data c/12, 24, 14, 15, 15/
+c
+ iadr(l)=l+l-1
+ sadr(l)=(l/2)+1
+c
+ lw=lstk(top+1)
+ w = 0
+ if(lhs.ne.1) then
+ call error(41)
+ return
+ endif
+ if(rhs.lt.1.or.rhs.gt.3) then
+ call error(42)
+ return
+ endif
+c
+ il1=iadr(lstk(top+1-rhs))
+ ilr=il1
+ if(istk(il1).lt.0) il1=iadr(istk(il1+1))
+ if(istk(il1).ne.1) then
+ fun=-1
+ call funnam(ids(1,pt+1),'poly',il1)
+ return
+ endif
+ ref=il1.ne.ilr
+c
+ roots=.true.
+
+ if(rhs.eq.3) then
+ il=iadr(lstk(top))
+ if(istk(il).lt.0) il=iadr(istk(il+1))
+ rhs=rhs-1
+ top=top-1
+ if(istk(il).ne.10) then
+ err=rhs
+ call error(55)
+ return
+ endif
+ size = istk(il+5)-1
+ if (size.ne.5 .and. size.ne.1) then
+ w = 1
+ endif
+ il=il+5+istk(il+1)*istk(il+2)
+ if(abs(istk(il)).ne.racine) then
+ roots=.false.
+ if(abs(istk(il)).ne.coeff) then
+ err=rhs
+ call error(36)
+ return
+ endif
+ endif
+ if(w.eq.0) then
+ do 22 i=1,size
+ if(c(i).ne.abs(istk(il+i-1)).and.
+ $ r(i).ne.abs(istk(il+i-1))) then
+ w = 1
+ endif
+ 22 continue
+ endif
+ else
+ roots=.true.
+ endif
+
+ if(w.eq.1) then
+ call msgstxt('Warning:')
+ call msgstxt('This usage of 3rd argument of poly is obsolete.')
+ call msgstxt('It will be more strict in scilab 6.0.0.')
+ call msgstxt('Please use roots, coeff, r or c instead.')
+ endif
+
+c formal variable
+ il=iadr(lstk(top))
+ if(istk(il).lt.0) il=iadr(istk(il+1))
+ if(istk(il).ne.10) then
+ err=2
+ call error(55)
+ return
+ endif
+ if(istk(il+1)*istk(il+2).ne.1) then
+ err=2
+ call error(89)
+ return
+ endif
+ n=istk(il+5)-1
+ if(n.gt.4) call msgs(115,0)
+ if (abs(istk(il+5+1)).lt.10) then
+ err=2
+ call error(248)
+ return
+ endif
+ do 12 i=1,4
+ id(i)=blank
+ if(i.le.n) then
+ if (abs(istk(il+5+i)).ge.blank) then
+ err=2
+ call error(248)
+ return
+ endif
+ id(i)=istk(il+5+i)
+ else
+c . fill with space
+ id(i)=blank
+ endif
+ 12 continue
+
+c
+c first argument
+ top=top-1
+ m1=istk(il1+1)
+ n1=istk(il1+2)
+ it1=istk(il1+3)
+ l1=sadr(il1+4)
+ mn1=m1*n1
+ itr=it1
+
+ if(.not.roots) goto 17
+ if(mn1.eq.1.or.m1.ne.n1) goto 14
+c polynome caracteristique,decomposition spectrale de la matrice
+
+ if(ref) then
+c necessary while matdsr and matdsc cannot be called by reference
+ lr=sadr(ilr+4)
+ err=lr+mn1*(it1+1)-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+ call icopy(4,istk(il1),1,istk(ilr),1)
+ call unsfdcopy(mn1*(it1+1),stk(l1),1,stk(lr),1)
+ lstk(top+1)=lr+mn1*(it1+1)
+ endif
+ rhs=1
+ call intspec('spec')
+ call putlhsvar
+ if(err.gt.0) return
+ il1=iadr(lstk(top))
+ l1=sadr(il1+4)
+ mn1=m1
+ m1=1
+ n1=mn1
+ itr=min(it1,istk(il1+3))
+ it1=istk(il1+3)
+ lw=l1+mn1*(it1+1)
+ ref=.false.
+ ilr=il1
+ goto 14
+c
+c polynome defini par ses racines
+ 14 ild=ilr+8
+ lc=sadr(ild+2)
+ lr=lc+(mn1+1)*(it1+1)
+ if(ref) then
+ err=lr-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+ else
+ err=lr+mn1*(it1+1)-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+ call unsfdcopy(mn1*(it1+1),stk(l1),1,stk(lr),1)
+ l1=lr
+ endif
+ istk(ilr)=2
+ istk(ilr+1)=1
+ istk(ilr+2)=1
+ istk(ilr+3)=itr
+ call icopy(4,id,1,istk(ilr+4),1)
+ istk(ild)=1
+ istk(ild+1)=mn1+2
+ lstk(top+1)=lc+(mn1+1)*(itr+1)
+
+ if(it1.eq.0) then
+ call dprxc(mn1,stk(l1),stk(lc))
+ else
+ call wprxc(mn1,stk(l1),stk(l1+mn1),stk(lc),stk(lc+mn1+1))
+ do 16 i=1,mn1+1
+ l=lc-1+i
+ if( stk(l)+stk(l+mn1+1).ne.stk(l)) goto 999
+ 16 continue
+ istk(ilr+3)=0
+ lstk(top+1)=lc+mn1+1
+ endif
+ goto 999
+c
+c polynome defini par ses coefficients
+ 17 if(istk(il1).ne.1) then
+ err=1
+ call error(53)
+ return
+ endif
+ if(mn1.eq.0) return
+
+ if(n1.ne.1.and.m1.ne.1) then
+ err=1
+ call error(89)
+ return
+ endif
+
+ lr=sadr(ilr+10)
+ err=lr+mn1*(it1+1)-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+ call unsfdcopy(mn1*(it1+1),stk(l1),-1,stk(lr),-1)
+ istk(ilr)=2
+ istk(ilr+1)=1
+ istk(ilr+2)=1
+ istk(ilr+3)=it1
+ call icopy(4,id,1,istk(ilr+4),1)
+ istk(ilr+8)=1
+ istk(ilr+9)=1+mn1
+ lstk(top+1)=lr+mn1*(it1+1)
+ goto 999
+c
+ 999 return
+ end
+c =======================================
diff --git a/modules/polynomials/sci_gateway/fortran/sci_f_poly.lo b/modules/polynomials/sci_gateway/fortran/sci_f_poly.lo
new file mode 100755
index 000000000..eecc829e6
--- /dev/null
+++ b/modules/polynomials/sci_gateway/fortran/sci_f_poly.lo
@@ -0,0 +1,12 @@
+# sci_gateway/fortran/sci_f_poly.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/sci_f_poly.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/polynomials/sci_gateway/fortran/sci_f_prod.f b/modules/polynomials/sci_gateway/fortran/sci_f_prod.f
new file mode 100755
index 000000000..d1380992a
--- /dev/null
+++ b/modules/polynomials/sci_gateway/fortran/sci_f_prod.f
@@ -0,0 +1,96 @@
+c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+c Copyright (C) ????-2008 - INRIA
+c
+c This file must be used under the terms of the CeCILL.
+c This source file is licensed as described in the file COPYING, which
+c you should have received as part of this distribution. The terms
+c are also available at
+c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+ subroutine intpprod(id)
+ INCLUDE 'stack.h'
+ integer iadr, sadr
+ integer id(nsiz)
+ integer vol
+ logical ref
+c
+ iadr(l)=l+l-1
+ sadr(l)=(l/2)+1
+c
+ if(lhs.ne.1) then
+ call error(41)
+ return
+ endif
+ if(rhs.ne.1) then
+ if(rhs.ge.2) then
+ call funnam(ids(1,pt+1),'prod',iadr(lstk(top-rhs+1)))
+ fun=-1
+ return
+ endif
+ call error(42)
+ return
+ endif
+c
+ lw=lstk(top+1)
+c
+ il1=iadr(lstk(top+1-rhs))
+ ilr=il1
+ if(istk(il1).lt.0) il1=iadr(istk(il1+1))
+ ref=il1.ne.ilr
+ if(istk(il1).gt.2) then
+ fun=-1
+ call funnam(ids(1,pt+1),'prod',il1)
+ return
+ endif
+
+c
+ it1=istk(il1+3)
+ l1=sadr(il1+4)
+ mn1=istk(il1+1)*istk(il1+2)
+ id1=il1+8
+ l1=sadr(id1+mn1+1)
+ vol=istk(id1+mn1)-1
+
+ if(ref) then
+ lr=sadr(ilr+10)
+ else
+ lr=lw
+ endif
+
+ maxd=istk(id1+mn1)-mn1
+ err=lr+maxd*(it1+1)-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+c
+ stk(lr)=1.0d+0
+ if(it1.eq.1) stk(lr+maxd)=0.0d+0
+ m=0
+ do 59 i=1,mn1
+ n=istk(id1+i)-istk(id1+i-1)-1
+ li=l1-1+istk(id1+i-1)
+ if(it1.eq.0) call dpmul1(stk(li),n,stk(lr),m,stk(lr))
+ if(it1.eq.1) call wpmul1(stk(li),stk(li+vol),n,stk(lr),
+ 1 stk(lr+maxd),m,stk(lr),stk(lr+maxd))
+ m=m+n
+ 59 continue
+
+ if(ref) then
+ call icopy(9,istk(il1),1,istk(ilr),1)
+ istk(ilr)=2
+ istk(ilr+1)=1
+ istk(ilr+2)=1
+ istk(ilr+9)=1+maxd
+ else
+ istk(ilr+1)=1
+ istk(ilr+2)=1
+ istk(ilr+9)=1+maxd
+ l1=sadr(il1+10)
+ call unsfdcopy(maxd*(it1+1),stk(lr),1,stk(l1),1)
+ lr=l1
+ endif
+ lstk(top+1)=lr+maxd*(it1+1)
+ return
+ end
+c =======================================
diff --git a/modules/polynomials/sci_gateway/fortran/sci_f_prod.lo b/modules/polynomials/sci_gateway/fortran/sci_f_prod.lo
new file mode 100755
index 000000000..d3fbfe022
--- /dev/null
+++ b/modules/polynomials/sci_gateway/fortran/sci_f_prod.lo
@@ -0,0 +1,12 @@
+# sci_gateway/fortran/sci_f_prod.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/sci_f_prod.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/polynomials/sci_gateway/fortran/sci_f_psimp.f b/modules/polynomials/sci_gateway/fortran/sci_f_psimp.f
new file mode 100755
index 000000000..0bab577de
--- /dev/null
+++ b/modules/polynomials/sci_gateway/fortran/sci_f_psimp.f
@@ -0,0 +1,213 @@
+c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+c Copyright (C) ????-2008 - INRIA
+c
+c This file must be used under the terms of the CeCILL.
+c This source file is licensed as described in the file COPYING, which
+c you should have received as part of this distribution. The terms
+c are also available at
+c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ subroutine intpsimp(id)
+ INCLUDE 'stack.h'
+ integer iadr, sadr
+ integer id(nsiz)
+ integer vola,volb
+ logical chkvar
+c
+ iadr(l)=l+l-1
+ sadr(l)=(l/2)+1
+c
+
+c simp(num,den)
+c
+ if(lhs.ne.2) then
+ call error(41)
+ return
+ endif
+c
+ ila=iadr(lstk(top+1-rhs))
+
+ il=ila
+ if(istk(il).lt.0) il=iadr(istk(il+1))
+ if(istk(il).gt.2) then
+ fun=-1
+ call funnam(ids(1,pt+1),'simp',il)
+ return
+ endif
+c
+ ilb=iadr(lstk(top))
+
+ il=ilb
+ if(istk(il).lt.0) il=iadr(istk(il+1))
+ if(istk(il).gt.2) then
+ fun=-1
+ call funnam(ids(1,pt+1),'simp',il)
+ return
+ endif
+c
+ if(istk(ila).lt.0) then
+c move b and copy value of a in place of its reference
+ k=istk(ila+2)
+ vola=lstk(k+1)-lstk(k)
+ volb=lstk(top+1)-lstk(top)
+ err=lstk(top)+vola+volb-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+ call unsfdcopy(volb,stk(lstk(top)),-1,stk(lstk(top-1)+vola),-1)
+ call unsfdcopy(vola,stk(lstk(k)),1,stk(lstk(top-1)),1)
+ lstk(top)=lstk(top-1)+vola
+ ilb=iadr(lstk(top))
+ lstk(top+1)=lstk(top)+volb
+ endif
+
+ if(istk(ilb).lt.0) then
+c copy value of b in place of its reference
+ k=istk(ilb+2)
+ volb=lstk(k+1)-lstk(k)
+ err=lstk(top)+volb-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+ call unsfdcopy(volb,stk(lstk(k)),1,stk(lstk(top)),1)
+ lstk(top+1)=lstk(top)+volb
+ endif
+ lw=lstk(top+1)
+
+c
+ if(istk(ila+3).ne.0.or.istk(ilb+3).ne.0) then
+ fun=-1
+ call funnam(ids(1,pt+1),'simp',ilb)
+ return
+ endif
+c
+ mna=istk(ila+1)*istk(ila+2)
+ id(1)=0
+ if(istk(ila).eq.2) then
+ ida=ila+8
+ la=sadr(ida+mna+1)
+ call icopy(4,istk(ila+4),1,id,1)
+ else
+ la=sadr(ila+4)
+ ida=iadr(lw)
+ lw=sadr(ida+mna+1)
+ err=lw-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+ do 74 i=1,mna+1
+ istk(ida+i-1)=i
+ 74 continue
+ endif
+c
+ mnb=istk(ilb+1)*istk(ilb+2)
+ if(istk(ilb).eq.2) then
+ idb=ilb+8
+ lb=sadr(idb+mnb+1)
+ if(id(1).eq.0) then
+ call icopy(4,istk(ilb+4),1,id,1)
+ else
+ if(.not.chkvar(id,istk(ilb+4))) then
+ call error(43)
+ return
+ endif
+ endif
+ else
+ lb=sadr(ilb+4)
+ idb=iadr(lw)
+ lw=sadr(idb+mna+1)
+ err=lw-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+ do 75 i=1,mna+1
+ istk(idb+i-1)=i
+ 75 continue
+ endif
+
+ if(mnb.ne.mna)then
+ call error(60)
+ return
+ endif
+c
+c determine max of the degrees
+ na=0
+ nb=0
+ do 76 i=1,mna
+ na=max(na,istk(ida+i)-istk(ida-1+i))
+ nb=max(nb,istk(idb+i)-istk(idb-1+i))
+ 76 continue
+c preserve adress of the beginning of a and b coefficients
+
+ lar=la
+ lbr=lb
+c allocate memory for intermediate results
+ law=lw
+ lbw=law+na+1
+ lw=lbw+nb+1
+
+c simplify
+ la1=la
+ lb1=lb
+ do 79 i=1,mna
+ na=istk(ida+i)-istk(ida-1+i)-1
+ nb=istk(idb+i)-istk(idb-1+i)-1
+ ierr=lstk(bot)-lw
+ call dpsimp(stk(la),na,stk(lb),nb,stk(law),nnum,
+ $ stk(lbw),nden,stk(lw),ierr)
+ if(ierr.eq.1) then
+ call error(27)
+ return
+ elseif(ierr.eq.2) then
+ call msgs(43,i)
+ endif
+c . copy overwrite initial polynomials with simplified ones
+ call dcopy(nnum,stk(law),1,stk(la1),1)
+ call dcopy(nden,stk(lbw),1,stk(lb1),1)
+
+ la=la+na+1
+ lb=lb+nb+1
+ la1=la1+nnum
+ lb1=lb1+nden
+ istk(ida-1+i)=nnum
+ istk(idb-1+i)=nden
+ 79 continue
+c
+c form vector of pointers from vector of degrees+1
+ ma=1
+ mb=1
+ do 80 i=1,mna+1
+ na=istk(ida-1+i)
+ nb=istk(idb-1+i)
+ istk(ida-1+i)=ma
+ istk(idb-1+i)=mb
+ ma=ma+na
+ mb=mb+nb
+ 80 continue
+c
+c compute position of the a and b simplified in the result
+ lstk(top)=lar+istk(ida+mna)-1
+ il=iadr(lstk(top))
+c
+c put new b variable in place
+ if(istk(ilb).eq.2) then
+c b matrice de polynome
+ l=sadr(il+9+mna)
+c . move b data up
+ call icopy(9+mna,istk(ilb),1,istk(il),1)
+ call unsfdcopy(istk(il+8+mna),stk(lbr),1,stk(l),1)
+ l=l+istk(il+8+mna)-1
+ else
+c b matrice de scalaires
+ call icopy(4,istk(ilb),1,istk(il),1)
+ l=sadr(il+4)
+ call unsfdcopy(mna,stk(lbr),1,stk(l),1)
+ l=l+mna
+ endif
+ lstk(top+1)=l
+ end
+
+c =======================================
diff --git a/modules/polynomials/sci_gateway/fortran/sci_f_psimp.lo b/modules/polynomials/sci_gateway/fortran/sci_f_psimp.lo
new file mode 100755
index 000000000..59e360eb1
--- /dev/null
+++ b/modules/polynomials/sci_gateway/fortran/sci_f_psimp.lo
@@ -0,0 +1,12 @@
+# sci_gateway/fortran/sci_f_psimp.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/sci_f_psimp.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/polynomials/sci_gateway/fortran/sci_f_roots.f b/modules/polynomials/sci_gateway/fortran/sci_f_roots.f
new file mode 100755
index 000000000..3ef6de770
--- /dev/null
+++ b/modules/polynomials/sci_gateway/fortran/sci_f_roots.f
@@ -0,0 +1,243 @@
+c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+c Copyright (C) ????-2008 - INRIA - Serge Steer
+c Copyright (C) 2011 - DIGITEO - Michael Baudin
+c
+c This file must be used under the terms of the CeCILL.
+c This source file is licensed as described in the file COPYING, which
+c you should have received as part of this distribution. The terms
+c are also available at
+c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+ subroutine introots(id)
+ INCLUDE 'stack.h'
+ integer iadr, sadr
+ integer id(nsiz)
+ double precision t,sr,si
+ integer vol
+ integer fail
+ logical ref,eigen
+ integer algo_eig
+ integer algo_fast
+ data algo_eig/14/
+ data algo_fast/15/
+c
+ iadr(l)=l+l-1
+ sadr(l)=(l/2)+1
+c
+ lw=lstk(top+1)
+ if(lhs.ne.1) then
+ call error(41)
+ return
+ endif
+ if(rhs.ne.1.and.rhs.ne.2) then
+ call error(42)
+ return
+ endif
+c
+c if algo=="e", then eigen = .true.
+c if algo=="f", then eigen = .false.
+c
+ eigen=.true.
+c Read the algo option
+ if (rhs.eq.2) then
+ ilopt=iadr(lstk(top))
+ if(istk(ilopt).lt.0) ilopt=iadr(istk(ilopt+1))
+ if(istk(ilopt).ne.10) then
+ err=2
+ call error(55)
+ return
+ endif
+ if(istk(ilopt+1).ne.1.or.istk(ilopt+2).ne.1) then
+ err=2
+ call error(89)
+ return
+ endif
+ if(istk(ilopt+5).ne.2) then
+ err=2
+ call error(116)
+ return
+ else
+ if (istk(ilopt+6)==algo_eig) then
+ eigen=.true.
+ elseif (istk(ilopt+6)==algo_fast) then
+ eigen=.false.
+ else
+ err=2
+ call error(116)
+ return
+ endif
+ endif
+ rhs=rhs-1
+ top=top-1
+ endif
+
+ il1=iadr(lstk(top+1-rhs))
+ ilr=il1
+ if(istk(il1).lt.0) il1=iadr(istk(il1+1))
+ ref=il1.ne.ilr
+ if(istk(il1).gt.2) then
+ fun=-1
+ call funnam(ids(1,pt+1),'roots',il1)
+ return
+ endif
+c
+ m1=istk(il1+1)
+ n1=istk(il1+2)
+ mn1=m1*n1
+ if(m1*n1.eq.0) then
+ return
+ endif
+
+ it1=istk(il1+3)
+c If "fast" algo was chosen and polynomial is complex,
+c then produce an error.
+ if ( .not.eigen .and. it1 .eq. 1 ) then
+ err=2
+ call error(116)
+ return
+ endif
+
+ if(istk(il1).eq.1) then
+c for Matlab compatibility root of the vector of coefficients
+ vol=mn1
+ l1=sadr(il1+4)
+
+ n=mn1
+ if(.not.ref) then
+ call dtild(n,stk(l1),1)
+ if(it1.eq.1) then
+ call dtild(n,stk(l1+n),1)
+ endif
+ lc=l1
+ else
+ lc=lw
+ lw=lc+n*(it1+1)
+ err=lw-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+ call dcopy(n,stk(l1),1,stk(lc),-1)
+ if(it1.eq.1) call dcopy(n,stk(l1+n),1,stk(lc+n),-1)
+ endif
+ else
+ if(mn1.ne.1) then
+ err=1
+ call error(43)
+ return
+ endif
+
+ if(istk(il1).lt.2) goto 24
+
+ id1=il1+8
+ lc=sadr(id1+mn1+1)
+ vol=istk(id1+mn1)-1
+ call icopy(4,istk(il1+4),1,id,1)
+ n=vol
+ endif
+ l1=sadr(ilr+4)
+ 21 n=n-1
+ if(n.lt.0) then
+ goto 24
+ endif
+ t=abs(stk(lc+n))
+ if(it1.eq.1) then
+ t=t+abs(stk(lc+n+vol))
+ endif
+ if(t.eq.0.0d+0) then
+ goto 21
+ endif
+
+ if ( .not.eigen .and.n.gt.100) then
+c If "fast" algo was chosen and polynomial has degree greater than 100,
+c then produce an error.
+ err=2
+ call error(116)
+ return
+ endif
+
+ if (.not.eigen) then
+c
+c real polynomial: rpoly algorithm
+c this alg is much more speedy, but it may happens that it gives
+C erroneous results without messages : example
+C roots(%s^31-8*%s^30+9*%s^29+0.995) should have two real roots near
+C 1.355 and 6.65 and the other ones inside a circle centered in 0
+C with radius 1
+C
+
+ lp=max(lw,l1+2*n)
+ err=lp+n+1-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+ call unsfdcopy(n+1,stk(lc),1,stk(lp),1)
+ call dtild(n+1,stk(lp),1)
+ call rpoly(stk(lp),n,stk(l1),stk(l1+n),fail)
+ if(fail.eq.1) then
+ call error(24)
+ return
+ elseif(fail.eq.2) then
+ call error(74)
+ return
+ elseif(fail.eq.3) then
+ call error(75)
+ return
+
+ endif
+ istk(ilr)=1
+ istk(ilr+1)=n
+ istk(ilr+2)=1
+ if(n.eq.0) istk(ilr+2)=0
+ istk(ilr+3)=1
+ lstk(top+1)=l1+2*n
+ return
+ else
+c
+c Companion matrix method
+ lw=lw+n*n*(it1+1)
+ err=lw+n*(it1+1)-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+ sr=stk(lc+n)
+ call unsfdcopy(n,stk(lc),-1,stk(lw),1)
+ if(it1.eq.0) then
+ call dscal(n,-1.0d+0/sr,stk(lw),1)
+ else
+ si=stk(lc+vol+n)
+ t=sr*sr+si*si
+ sr=-sr/t
+ si=si/t
+ call unsfdcopy(n,stk(lc+vol),-1,stk(lw+n),1)
+ call wscal(n,sr,si,stk(lw),stk(lw+n),1)
+ endif
+ call dset(n*n*(it1+1),0.0d+0,stk(l1),1)
+ call dset(n-1,1.0d+0,stk(l1+n),n+1)
+ call unsfdcopy(n,stk(lw),1,stk(l1),1)
+ if(it1.eq.1) then
+ call unsfdcopy(n,stk(lw+n),1,stk(l1+n*n),1)
+ endif
+ lstk(top+1)=l1+n*n*(it1+1)
+ istk(ilr)=1
+ istk(ilr+1)=n
+ istk(ilr+2)=n
+ istk(ilr+3)=it1
+ fin=3
+ fun=2
+c *call* matds(r c)
+ return
+ endif
+
+c polynome de degre 0
+ 24 istk(ilr)=1
+ istk(ilr+1)=0
+ istk(ilr+2)=0
+ istk(ilr+3)=0
+ lstk(top+1)=sadr(ilr+4)
+
+ return
+ end
+c =======================================
diff --git a/modules/polynomials/sci_gateway/fortran/sci_f_roots.lo b/modules/polynomials/sci_gateway/fortran/sci_f_roots.lo
new file mode 100755
index 000000000..3fe91314d
--- /dev/null
+++ b/modules/polynomials/sci_gateway/fortran/sci_f_roots.lo
@@ -0,0 +1,12 @@
+# sci_gateway/fortran/sci_f_roots.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/sci_f_roots.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/polynomials/sci_gateway/fortran/sci_f_rsimp.f b/modules/polynomials/sci_gateway/fortran/sci_f_rsimp.f
new file mode 100755
index 000000000..2c44ce5a9
--- /dev/null
+++ b/modules/polynomials/sci_gateway/fortran/sci_f_rsimp.f
@@ -0,0 +1,211 @@
+c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+c Copyright (C) ????-2008 INRIA
+c
+c This file must be used under the terms of the CeCILL.
+c This source file is licensed as described in the file COPYING, which
+c you should have received as part of this distribution. The terms
+c are also available at
+c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ subroutine intrsimp(id)
+ INCLUDE 'stack.h'
+ integer iadr, sadr
+ integer id(nsiz)
+ integer vola,volb,vol
+ logical refr,chkvar,israt,ok
+c
+ iadr(l)=l+l-1
+ sadr(l)=(l/2)+1
+c
+ lw=lstk(top+1)
+
+c simplification of a transfer function
+ if(lhs.ne.1) then
+ call error(41)
+ return
+ endif
+ il1=iadr(lstk(top))
+ ilr=il1
+ if(istk(il1).lt.0) il1=iadr(istk(il1+1))
+ refr=il1.ne.ilr
+ if(.not.israt(il1,ila,ilb,ildom)) then
+ fun=-1
+ call funnam(ids(1,pt+1),'simp',il1)
+ return
+ endif
+c
+ if(istk(ila+3).ne.0.or.istk(ilb+3).ne.0) then
+ fun=-1
+ call funnam(ids(1,pt+1),'simp',il1)
+ return
+ endif
+c
+ if(refr) then
+ k=istk(ilr+2)
+ vol=lstk(k+1)-lstk(k)
+ err=lstk(top)+vol-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+ call unsfdcopy(vol,stk(lstk(k)),1,stk(lstk(top)),1)
+ lstk(top+1)=lstk(top)+vol
+ lw=lstk(top+1)
+ il1=ilr
+ ok=israt(il1,ila,ilb,ildom)
+ endif
+c
+ mna=istk(ila+1)*istk(ila+2)
+ id(1)=0
+ if(istk(ila).eq.2) then
+ ida=ila+8
+ la=sadr(ida+mna+1)
+ call icopy(4,istk(ila+4),1,id,1)
+ else
+ la=sadr(ila+4)
+ ida=iadr(lw)
+ lw=sadr(ida+mna+1)
+ err=lw-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+ do 74 i=1,mna+1
+ istk(ida+i-1)=i
+ 74 continue
+ endif
+c
+ mnb=istk(ilb+1)*istk(ilb+2)
+ if(istk(ilb).eq.2) then
+ idb=ilb+8
+ lb=sadr(idb+mnb+1)
+ if(id(1).eq.0) then
+ call icopy(4,istk(ilb+4),1,id,1)
+ else
+ if(.not.chkvar(id,istk(ilb+4))) then
+ call error(43)
+ return
+ endif
+ endif
+ else
+ lb=sadr(ilb+4)
+ idb=iadr(lw)
+ lw=sadr(idb+mna+1)
+ err=lw-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+ do 75 i=1,mna+1
+ istk(idb+i-1)=i
+ 75 continue
+ endif
+
+ if(mnb.ne.mna)then
+ call error(60)
+ return
+ endif
+c
+c determine max of the degrees
+ na=0
+ nb=0
+ do 76 i=1,mna
+ na=max(na,istk(ida+i)-istk(ida-1+i))
+ nb=max(nb,istk(idb+i)-istk(idb-1+i))
+ 76 continue
+c
+c set adress where to put the results
+ ll=sadr(il1+7)
+ ill=iadr(ll)
+ la1=la
+ lb1=lb
+ ida1=ida
+ idb1=idb
+c
+c allocate memory for intermediate results
+ law=lw
+ lbw=law+na+1
+ lw=lbw+nb+1
+
+c beginning of numerator in resulting structure
+ l0=ll+istk(ilr+4)-1
+
+c
+ lar=la1
+ lbr=lb1
+ nta=istk(ida+mna)
+ ntb=istk(idb+mnb)
+c simplify
+ do 79 i=1,mna
+ na=istk(ida+i)-istk(ida-1+i)-1
+ nb=istk(idb+i)-istk(idb-1+i)-1
+ ierr=lstk(bot)-lw
+ call dpsimp(stk(la),na,stk(lb),nb,stk(law),nnum,
+ $ stk(lbw),nden,stk(lw),ierr)
+ if(ierr.eq.1) then
+ call error(27)
+ return
+ elseif(ierr.eq.2) then
+ call msgs(43,i)
+ endif
+
+c . copy overwrite initial polynomials with simplified ones
+ call dcopy(nnum,stk(law),1,stk(la1),1)
+ call dcopy(nden,stk(lbw),1,stk(lb1),1)
+
+ la=la+na+1
+ lb=lb+nb+1
+ la1=la1+nnum
+ lb1=lb1+nden
+ istk(ida1-1+i)=nnum
+ istk(idb1-1+i)=nden
+ 79 continue
+c
+c form vector of pointers from vector of degrees+1
+ ma=1
+ mb=1
+ do 80 i=1,mna+1
+ na=istk(ida1-1+i)
+ nb=istk(idb1-1+i)
+ istk(ida1-1+i)=ma
+ istk(idb1-1+i)=mb
+ ma=ma+na
+ mb=mb+nb
+ 80 continue
+c
+c update size of numerator
+ vola=istk(ilr+4)-istk(ilr+3)+istk(ida1+mna)-nta
+ istk(ilr+4)=istk(ilr+3)+vola
+
+c compute position of new denominator in the result
+ ll0=ll+istk(ilr+4)-1
+ il=iadr(ll0)
+c
+c put new b variable in place
+ if(istk(ilb).eq.2) then
+c b matrice de polynome
+ call icopy(9+mna,istk(ilb),1,istk(il),1)
+ idb1=il+8
+ l=sadr(il+9+mna)
+ call unsfdcopy(istk(idb1+mna)-1,stk(lbr),1,stk(l),1)
+ l=l+istk(idb1+mna)-1
+ else
+c b matrice de scalaires
+ call icopy(4,istk(ilb),1,istk(il),1)
+ l=sadr(il+4)
+ call unsfdcopy(mna,stk(lbr),1,stk(l),1)
+ l=l+mna
+ endif
+ volb=l-ll0
+
+c copy 4th entry of the list
+ mb=istk(ilr+6)-istk(ilr+5)
+ call unsfdcopy(mb,stk(ll+istk(ilr+5)-1),1,stk(l),1)
+ l=l+mb
+ lstk(top+1)=l
+c adjust components sizes
+ istk(ilr+5)=istk(ilr+4)+volb
+ istk(ilr+6)=istk(ilr+5)+mb
+
+
+ end
+c =======================================
diff --git a/modules/polynomials/sci_gateway/fortran/sci_f_rsimp.lo b/modules/polynomials/sci_gateway/fortran/sci_f_rsimp.lo
new file mode 100755
index 000000000..b729e4c4f
--- /dev/null
+++ b/modules/polynomials/sci_gateway/fortran/sci_f_rsimp.lo
@@ -0,0 +1,12 @@
+# sci_gateway/fortran/sci_f_rsimp.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/sci_f_rsimp.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/polynomials/sci_gateway/fortran/sci_f_sfact.f b/modules/polynomials/sci_gateway/fortran/sci_f_sfact.f
new file mode 100755
index 000000000..76610aeb6
--- /dev/null
+++ b/modules/polynomials/sci_gateway/fortran/sci_f_sfact.f
@@ -0,0 +1,166 @@
+c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+c Copyright (C) ????-2008 - INRIA
+c
+c This file must be used under the terms of the CeCILL.
+c This source file is licensed as described in the file COPYING, which
+c you should have received as part of this distribution. The terms
+c are also available at
+c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+
+ subroutine intsfact(id)
+ INCLUDE 'stack.h'
+ integer iadr, sadr
+ integer id(nsiz)
+ integer vol
+ logical ref
+
+c
+ iadr(l)=l+l-1
+ sadr(l)=(l/2)+1
+c
+ maxit=100
+ lw=lstk(top+1)
+
+ if(lhs.ne.1) then
+ call error(41)
+ return
+ endif
+ if(rhs.ne.1) then
+ call error(42)
+ return
+ endif
+
+ il1=iadr(lstk(top))
+ ilr=il1
+ if(istk(il1).lt.0) il1=iadr(istk(il1+1))
+ ref=ilr.ne.il1
+ if(istk(il1).ne.2) then
+ fun=-1
+ call funnam(ids(1,pt+1),'sfact',il1)
+ return
+ endif
+ m1=istk(il1+1)
+ n1=istk(il1+2)
+ it1=istk(il1+3)
+ if(it1.ne.0) then
+ err=1
+ call error(52)
+ return
+ endif
+ mn1=m1*n1
+ id1=il1+8
+ l1=sadr(id1+mn1+1)
+ lr=l1
+ vol=istk(id1+mn1)-1
+
+ if(mn1.eq.1) then
+c
+c sfact of a polynomial
+ if(ref) then
+c . sfact1 modifies its input argument
+ lr=sadr(ilr+8+mn1+1)
+ lstk(top+1)=lr+vol
+ err=lstk(top+1)-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+ call icopy(8+mn1+1,istk(il1),1,istk(ilr),1)
+ call unsfdcopy(vol,stk(l1),1,stk(lr),1)
+ lstk(top+1)=lr+vol
+ endif
+c
+c . check symmetry
+ n1=istk(id1+1)-2
+ if (2*int(n1/2).ne.n1) then
+ call error(88)
+ return
+ endif
+ n=1+n1/2
+ do 81 i=0,n-1
+ if(stk(lr+i).ne.stk(lr+n1-i)) then
+ call error(88)
+ return
+ endif
+ 81 continue
+c
+ lw=lstk(top+1)
+ err=lw+6*n-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+ call sfact1(stk(lr),n-1,stk(lw),maxit,ierr)
+ if(ierr.eq.2) then
+ call writebufstfacta(buf,n-1)
+ call error(999)
+ return
+ else if(ierr.eq.1) then
+ call error(24)
+ return
+ else if(ierr.lt.0) then
+c convergence incomplete
+ call writebufstfacta(buf,ierr)
+ call msgs(22,0)
+ endif
+ lstk(top+1)=lr+n
+ istk(ilr+8+1)=n+1
+ else
+c multivariable case
+ if(m1.ne.n1) then
+ err=1
+ call error(20)
+ return
+ endif
+c . convert matrix of polynomials to a polynomial matrix
+ n1=0
+ do 87 i=1,mn1
+ n1=max(n1,istk(id1+i)-istk(id1+i-1))
+ 87 continue
+c
+ n1=1+(n1-1)/2
+ l2=lstk(top+1)
+ if(ref) l2=l2+mn1+9+mn1*n1
+ lw=l2+mn1*n1
+ err=lw+sadr((n1+1)*m1*((n1+1)*m1)+1)-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+c
+ call dset(mn1*n1,0.0d+0,stk(l2),1)
+ do 88 i1=0,mn1-1
+ lij=l1-1+istk(id1+i1)
+ mij=2+istk(id1+i1+1)-istk(id1+i1)-1-n1
+ if(mij.gt.0) call unsfdcopy(mij,stk(lij+n1-1),1,
+ $ stk(l2+i1),mn1)
+ 88 continue
+c
+ maxit=maxit+n1
+ call sfact2(stk(l2),m1,n1-1,stk(lw),maxit,ierr)
+ if(ierr.lt.0) then
+ call error(24)
+ return
+ endif
+ if(ierr.gt.0) then
+ call error(88)
+ return
+ endif
+c . convert polynomial matrix to matrix of polynomials
+ id1=ilr+8
+ lr=sadr(id1+mn1+1)
+ l1=lr
+ do 89 i=0,mn1-1
+ call unsfdcopy(n1,stk(l2+i),mn1,stk(l1),1)
+ l1=l1+n1
+ 89 continue
+ do 90 i=0,mn1
+ istk(id1+i)=1+n1*i
+ 90 continue
+ if(ref) call icopy(8,istk(il1),1,istk(ilr),1)
+
+ lstk(top+1)=l1
+ endif
+ return
+ end
+c =======================================
diff --git a/modules/polynomials/sci_gateway/fortran/sci_f_sfact.lo b/modules/polynomials/sci_gateway/fortran/sci_f_sfact.lo
new file mode 100755
index 000000000..e40db441f
--- /dev/null
+++ b/modules/polynomials/sci_gateway/fortran/sci_f_sfact.lo
@@ -0,0 +1,12 @@
+# sci_gateway/fortran/sci_f_sfact.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/sci_f_sfact.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/polynomials/sci_gateway/fortran/sci_f_simp.f b/modules/polynomials/sci_gateway/fortran/sci_f_simp.f
new file mode 100755
index 000000000..e1e0eaed3
--- /dev/null
+++ b/modules/polynomials/sci_gateway/fortran/sci_f_simp.f
@@ -0,0 +1,34 @@
+c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+c Copyright (C) ????-2008 - INRIA
+c
+c This file must be used under the terms of the CeCILL.
+c This source file is licensed as described in the file COPYING, which
+c you should have received as part of this distribution. The terms
+c are also available at
+c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ subroutine intsimp(id)
+ INCLUDE 'stack.h'
+
+Cc (DLL Import Intel Fortran)
+cDEC$ IF DEFINED (FORDLL)
+cDEC$ ATTRIBUTES DLLIMPORT:: /csimp/
+cDEC$ ENDIF
+ integer id(nsiz)
+ integer simpmd
+ common/csimp/ simpmd
+c
+ if(simpmd.eq.0) then
+ call ref2val()
+ return
+ endif
+ if(rhs.eq.1) then
+ call intrsimp(id)
+ elseif(rhs.eq.2) then
+ call intpsimp(id)
+ else
+ call error(39)
+ endif
+c
+ return
+ end
+c =======================================
diff --git a/modules/polynomials/sci_gateway/fortran/sci_f_simp.lo b/modules/polynomials/sci_gateway/fortran/sci_f_simp.lo
new file mode 100755
index 000000000..b3b85bb83
--- /dev/null
+++ b/modules/polynomials/sci_gateway/fortran/sci_f_simp.lo
@@ -0,0 +1,12 @@
+# sci_gateway/fortran/sci_f_simp.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/sci_f_simp.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/polynomials/sci_gateway/fortran/sci_f_simpmd.f b/modules/polynomials/sci_gateway/fortran/sci_f_simpmd.f
new file mode 100755
index 000000000..26c2c5bf3
--- /dev/null
+++ b/modules/polynomials/sci_gateway/fortran/sci_f_simpmd.f
@@ -0,0 +1,57 @@
+c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+c Copyright (C) ????-2008 - INRIA
+c
+c This file must be used under the terms of the CeCILL.
+c This source file is licensed as described in the file COPYING, which
+c you should have received as part of this distribution. The terms
+c are also available at
+c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ subroutine intsimpmd(id)
+ INCLUDE 'stack.h'
+
+Cc (DLL Import Intel Fortran)
+cDEC$ IF DEFINED (FORDLL)
+cDEC$ ATTRIBUTES DLLIMPORT:: /csimp/
+cDEC$ ENDIF
+ integer iadr, sadr
+ integer id(nsiz)
+ integer simpmd
+
+ common/csimp/ simpmd
+c
+ iadr(l)=l+l-1
+ sadr(l)=(l/2)+1
+c
+ if(rhs.gt.1) then
+ call error(39)
+ return
+ endif
+ if(rhs.le.0) then
+ top=top+1
+ il=iadr(lstk(top))
+ istk(il)=4
+ istk(il+1)=1
+ istk(il+2)=1
+ istk(il+3)=simpmd
+ lstk(top+1)=sadr(il+4)
+ else
+ il=iadr(lstk(top))
+ if(istk(il).lt.0) il=iadr(istk(il+1))
+ if(istk(il).ne.4) then
+ err=1
+ call error(208)
+ return
+ endif
+ if(istk(il+1)*istk(il+2).ne.1) then
+ err=1
+ call error(36)
+ return
+ endif
+ simpmd=istk(il+3)
+ il=iadr(lstk(top))
+ istk(il)=0
+ lstk(top+1)=sadr(il+1)
+ endif
+ return
+ end
+c =======================================
diff --git a/modules/polynomials/sci_gateway/fortran/sci_f_simpmd.lo b/modules/polynomials/sci_gateway/fortran/sci_f_simpmd.lo
new file mode 100755
index 000000000..45cd365a1
--- /dev/null
+++ b/modules/polynomials/sci_gateway/fortran/sci_f_simpmd.lo
@@ -0,0 +1,12 @@
+# sci_gateway/fortran/sci_f_simpmd.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/sci_f_simpmd.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/polynomials/sci_gateway/fortran/sci_f_sum.f b/modules/polynomials/sci_gateway/fortran/sci_f_sum.f
new file mode 100755
index 000000000..a6ba90e24
--- /dev/null
+++ b/modules/polynomials/sci_gateway/fortran/sci_f_sum.f
@@ -0,0 +1,94 @@
+c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+c Copyright (C) ????-2008 - INRIA
+c
+c This file must be used under the terms of the CeCILL.
+c This source file is licensed as described in the file COPYING, which
+c you should have received as part of this distribution. The terms
+c are also available at
+c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ subroutine intpsum(id)
+ INCLUDE 'stack.h'
+ integer iadr, sadr
+ integer id(nsiz)
+
+ integer vol
+ logical ref
+c
+ iadr(l)=l+l-1
+ sadr(l)=(l/2)+1
+c
+ if(lhs.ne.1) then
+ call error(41)
+ return
+ endif
+ if(rhs.ne.1) then
+ if(rhs.ge.2) then
+ call funnam(ids(1,pt+1),'sum',iadr(lstk(top-rhs+1)))
+ fun=-1
+ return
+ endif
+ call error(42)
+ return
+ endif
+c
+ lw=lstk(top+1)
+c
+ il1=iadr(lstk(top+1-rhs))
+ ilr=il1
+ if(istk(il1).lt.0) il1=iadr(istk(il1+1))
+ ref=il1.ne.ilr
+ if(istk(il1).ne.2) then
+ fun=-1
+ call funnam(ids(1,pt+1),'sum',il1)
+ return
+ endif
+c
+ it1=istk(il1+3)
+ l1=sadr(il1+4)
+ mn1=istk(il1+1)*istk(il1+2)
+ id1=il1+8
+ l1=sadr(id1+mn1+1)
+ vol=istk(id1+mn1)-1
+c
+ maxd=0
+ do 56 i=1,mn1
+ m=istk(id1+i)-istk(id1-1+i)
+ if(m.gt.maxd) maxd=m
+ 56 continue
+
+ if(ref) then
+ lr=sadr(ilr+10)
+ else
+ lr=lw
+ endif
+
+ err=lw+maxd*(it1+1)-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+ call dset(maxd*(it1+1),0.0d+0,stk(lr),1)
+ do 57 i=1,mn1
+ li=l1-1+istk(id1-1+i)
+ n=istk(id1+i)-istk(id1-1+i)
+ call dadd(n,stk(li),1,stk(lr),1)
+ if(it1.eq.1) call dadd(n,stk(li+vol),1,stk(lr+maxd),1)
+ 57 continue
+ if(ref) then
+ call icopy(9,istk(il1),1,istk(ilr),1)
+ istk(ilr)=2
+ istk(ilr+1)=1
+ istk(ilr+2)=1
+ istk(ilr+9)=1+maxd
+ else
+ istk(ilr+1)=1
+ istk(ilr+2)=1
+ istk(ilr+9)=1+maxd
+ l1=sadr(il1+10)
+ call unsfdcopy(maxd*(it1+1),stk(lr),1,stk(l1),1)
+ lr=l1
+ endif
+ lstk(top+1)=lr+maxd*(it1+1)
+ return
+ end
+c =======================================
diff --git a/modules/polynomials/sci_gateway/fortran/sci_f_sum.lo b/modules/polynomials/sci_gateway/fortran/sci_f_sum.lo
new file mode 100755
index 000000000..a8b23659a
--- /dev/null
+++ b/modules/polynomials/sci_gateway/fortran/sci_f_sum.lo
@@ -0,0 +1,12 @@
+# sci_gateway/fortran/sci_f_sum.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/sci_f_sum.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/polynomials/sci_gateway/fortran/sci_f_triu_tril.f b/modules/polynomials/sci_gateway/fortran/sci_f_triu_tril.f
new file mode 100755
index 000000000..d3e164b25
--- /dev/null
+++ b/modules/polynomials/sci_gateway/fortran/sci_f_triu_tril.f
@@ -0,0 +1,117 @@
+c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+c Copyright (C) ????-2008 - INRIA
+c
+c This file must be used under the terms of the CeCILL.
+c This source file is licensed as described in the file COPYING, which
+c you should have received as part of this distribution. The terms
+c are also available at
+c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ subroutine intptriu(job,id)
+ INCLUDE 'stack.h'
+ integer iadr, sadr
+ integer id(nsiz)
+ integer volr,vol,tops
+ logical ref
+
+c
+ iadr(l)=l+l-1
+ sadr(l)=(l/2)+1
+c
+ tops=top
+c
+ if(lhs.ne.1) then
+ call error(41)
+ return
+ endif
+ if(rhs.ne.1.and.rhs.ne.2) then
+ call error(42)
+ return
+ endif
+c
+ kdiag=0
+ if (rhs .eq. 2) then
+ il=iadr(lstk(top))
+ if(istk(il).lt.0) il=iadr(istk(il+1))
+ if(istk(il).ne.1) then
+ err=1
+ call error(53)
+ return
+ endif
+ if(istk(il+3).ne.0) then
+ err=1
+ call error(52)
+ return
+ endif
+ if(istk(il+1)*istk(il+2).ne.1) then
+ err=1
+ call error(89)
+ return
+ endif
+ kdiag = int(stk(sadr(il+4)))
+ top = top-1
+ endif
+
+ lw=lstk(top+1)
+c
+ il1=iadr(lstk(top))
+ ilr=il1
+ if(istk(il1).lt.0) il1=iadr(istk(il1+1))
+ ref=il1.ne.ilr
+ if(istk(il1).gt.2) then
+ fun=-1
+ top=tops
+ call funnam(ids(1,pt+1),'triu',il1)
+ return
+ endif
+c
+ id1=il1+8
+ m1=istk(il1+1)
+ n1=istk(il1+2)
+ it1=istk(il1+3)
+ mn1=m1*n1
+ l1=sadr(id1+mn1+1)
+ vol=istk(id1+mn1)-1
+
+c
+ if(ref) then
+ idr=ilr+8
+ else
+ idr=iadr(lw)
+ endif
+
+ lr=sadr(idr+mn1+1)
+ err=lr-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+
+ call mptri(istk(id1),m1,n1,kdiag,istk(idr),job)
+ volr=istk(idr)
+ err=lr+volr*(it1+1)-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+ if (it1.eq.0) then
+ call dmpins(stk(l1),istk(id1),m1,n1,stk,1,0,0,
+ 1 stk(lr),istk(idr),m1,n1)
+ else
+ call wmpins(stk(l1),stk(l1+vol),istk(id1),m1,n1,
+ 1 stk,stk,1,0,0,stk(lr),stk(lr+volr),istk(idr),m1,n1)
+ endif
+
+ if(ref) then
+ call icopy(8,istk(il1),1,istk(ilr),1)
+ l1=lr
+ else
+ call icopy(mn1+1,istk(idr),1,istk(id1),1)
+ l1=sadr(id1+mn1+1)
+ call unsfdcopy(volr*(it1+1),stk(lr),1,stk(l1),1)
+ endif
+ istk(ilr+1)=m1
+ istk(ilr+2)=n1
+ lstk(top+1)=l1+volr*(it1+1)
+ 999 return
+ end
+c =======================================
diff --git a/modules/polynomials/sci_gateway/fortran/sci_f_triu_tril.lo b/modules/polynomials/sci_gateway/fortran/sci_f_triu_tril.lo
new file mode 100755
index 000000000..a76ce7cca
--- /dev/null
+++ b/modules/polynomials/sci_gateway/fortran/sci_f_triu_tril.lo
@@ -0,0 +1,12 @@
+# sci_gateway/fortran/sci_f_triu_tril.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/sci_f_triu_tril.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/polynomials/sci_gateway/fortran/sci_f_varn.f b/modules/polynomials/sci_gateway/fortran/sci_f_varn.f
new file mode 100755
index 000000000..64e365456
--- /dev/null
+++ b/modules/polynomials/sci_gateway/fortran/sci_f_varn.f
@@ -0,0 +1,116 @@
+c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+c Copyright (C) ????-2008 - INRIA
+c
+c This file must be used under the terms of the CeCILL.
+c This source file is licensed as described in the file COPYING, which
+c you should have received as part of this distribution. The terms
+c are also available at
+c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
+ subroutine intvarn(id)
+ INCLUDE 'stack.h'
+ integer iadr, sadr
+ integer id(nsiz)
+ integer vol,blank
+ logical ref
+ data blank/40/
+c
+ iadr(l)=l+l-1
+ sadr(l)=(l/2)+1
+c
+ if(lhs.ne.1) then
+ call error(41)
+ return
+ endif
+c
+ il1=iadr(lstk(top+1-rhs))
+ ilr=il1
+ if(istk(il1).lt.0) il1=iadr(istk(il1+1))
+ ref=ilr.ne.il1
+ if(istk(il1).ne.2) then
+ if(rhs.eq.2.and.istk(il1).eq.1) then
+ top=top-1
+ if (ref) then
+ k=istk(ilr+2)
+ vol=lstk(k+1)-lstk(k)
+ err=lstk(top)+vol-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+ call unsfdcopy(vol,stk(lstk(k)),1,stk(lstk(top)),1)
+ lstk(top+1)=lstk(top)+vol
+ endif
+ return
+ endif
+ fun=-1
+ call funnam(ids(1,pt+1),'varn',il1)
+ return
+ endif
+ call icopy(4,istk(il1+4),1,id,1)
+
+ if(rhs.eq.1) then
+c get formal variable name
+ if(ref) then
+ err=sadr(ilr+10)-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+ endif
+c extraction du nom de la variable muette
+ istk(ilr)=10
+ istk(ilr+1)=1
+ istk(ilr+2)=1
+ istk(ilr+3)=0
+ do 10 ii=4,1,-1
+ if(istk(il1+3+ii).ne.blank) then
+ nv=ii
+ goto 11
+ endif
+ 10 continue
+ 11 call icopy(nv,istk(il1+4),-1,istk(ilr+6),-1)
+ istk(ilr+4)=1
+ istk(ilr+5)=nv+1
+ lstk(top+1)=sadr(ilr+10)
+ elseif(rhs.eq.2) then
+c change formal variable name
+c . get new variable name
+ il=iadr(lstk(top))
+ if(istk(il).lt.0) il=iadr(istk(il+1))
+ if(istk(il).ne.10) then
+ err=2
+ call error(55)
+ return
+ endif
+ if(istk(il+1)*istk(il+2).ne.1) then
+ err=2
+ call error(36)
+ return
+ endif
+ nc=istk(il+5)-1
+ if(istk(il1).eq.1) goto 106
+ call icopy(max(4,nc),istk(il+6),1,id,1)
+ if(nc.lt.4) call iset(4-nc,blank,id(nc+1),1)
+ 106 top=top-1
+ if(ref) then
+c . variable is passed by reference copy it on the top of the
+c stack
+ k=istk(ilr+2)
+ vol=lstk(k+1)-lstk(k)
+ err=lstk(top)+vol-lstk(bot)
+ if(err.gt.0) then
+ call error(17)
+ return
+ endif
+ call unsfdcopy(vol,stk(lstk(k)),1,stk(lstk(top)),1)
+ lstk(top+1)=lstk(top)+vol
+ endif
+ ilr=iadr(lstk(top))
+ call icopy(4,id,1,istk(ilr+4),1)
+ else
+ call error(42)
+ return
+ endif
+ return
+ end
+c =======================================
diff --git a/modules/polynomials/sci_gateway/fortran/sci_f_varn.lo b/modules/polynomials/sci_gateway/fortran/sci_f_varn.lo
new file mode 100755
index 000000000..50465962b
--- /dev/null
+++ b/modules/polynomials/sci_gateway/fortran/sci_f_varn.lo
@@ -0,0 +1,12 @@
+# sci_gateway/fortran/sci_f_varn.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/sci_f_varn.o'
+
+# Name of the non-PIC object
+non_pic_object=none
+
diff --git a/modules/polynomials/sci_gateway/polynomials_gateway.xml b/modules/polynomials/sci_gateway/polynomials_gateway.xml
new file mode 100755
index 000000000..ba2f017f0
--- /dev/null
+++ b/modules/polynomials/sci_gateway/polynomials_gateway.xml
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2007-2008 - INRIA - Sylvestre LEDRU
+ * Copyright (C) 2007-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
+ *
+ -->
+
+<!DOCTYPE GATEWAY SYSTEM "../../functions/xml/gateway.dtd">
+<GATEWAY name="polynomials">
+ <!-- =================== -->
+ <!--
+ Scilab
+ Interface description. In this file, we define the list of the function which
+ will be available into Scilab and the link to the "native" function.
+
+ gatewayId is the position in the hashtable 'Interfaces' defined in the
+ file SCI/modules/core/src/c/callinterf.h
+
+ primitiveId is the position in the hashtable '<module>Table Tab[]' defined
+ in the file modules/<module>/sci_gateway/c/gw_<module>.c
+
+ primitiveName is the name of the Scilab function
+
+ ===================
+ Don't touch if you do not know what you are doing
+-->
+ <!-- =================== -->
+
+ <!--
+ Some hardcoded call to interfaces in polynomials gateway :
+ SCI/modules/elementary_functions/sci_gateway/fortran/sci_f_clean.f(34): fun=16 fin=18
+ SCI/modules/elementary_functions/sci_gateway/fortran/sci_f_diag.f(143): fun=16 fin=10
+ SCI/modules/elementary_functions/sci_gateway/fortran/sci_f_prod.f(173): fun=16 fin=9
+ SCI/modules/elementary_functions/sci_gateway/fortran/sci_f_sum.f(127): fun=16 fin=8
+ SCI/modules/elementary_functions/sci_gateway/fortran/sci_f_tril.f(96): fun=16 fin=12
+ SCI/modules/elementary_functions/sci_gateway/fortran/sci_f_triu.f(98): fun=16 fin=11
+ -->
+
+ <PRIMITIVE gatewayId="16" primitiveId="1" primitiveName="poly" />
+ <PRIMITIVE gatewayId="16" primitiveId="2" primitiveName="roots" />
+ <PRIMITIVE gatewayId="16" primitiveId="3" primitiveName="degree" />
+ <PRIMITIVE gatewayId="16" primitiveId="4" primitiveName="coeff" />
+ <PRIMITIVE gatewayId="16" primitiveId="6" primitiveName="pppdiv" />
+ <PRIMITIVE gatewayId="16" primitiveId="7" primitiveName="simp" />
+ <PRIMITIVE gatewayId="16" primitiveId="13" primitiveName="bezout" />
+ <PRIMITIVE gatewayId="16" primitiveId="14" primitiveName="sfact" />
+ <PRIMITIVE gatewayId="16" primitiveId="15" primitiveName="simp_mode" />
+ <PRIMITIVE gatewayId="16" primitiveId="16" primitiveName="varn" />
+</GATEWAY>