diff options
Diffstat (limited to 'modules/polynomials')
617 files changed, 39993 insertions, 0 deletions
diff --git a/modules/polynomials/.libs/libscipolynomials-algo.a b/modules/polynomials/.libs/libscipolynomials-algo.a Binary files differnew file mode 100755 index 000000000..79512c464 --- /dev/null +++ b/modules/polynomials/.libs/libscipolynomials-algo.a diff --git a/modules/polynomials/.libs/libscipolynomials-algo.la b/modules/polynomials/.libs/libscipolynomials-algo.la new file mode 120000 index 000000000..b87c20a88 --- /dev/null +++ b/modules/polynomials/.libs/libscipolynomials-algo.la @@ -0,0 +1 @@ +../libscipolynomials-algo.la
\ No newline at end of file diff --git a/modules/polynomials/.libs/libscipolynomials.a b/modules/polynomials/.libs/libscipolynomials.a Binary files differnew file mode 100755 index 000000000..398fa22a4 --- /dev/null +++ b/modules/polynomials/.libs/libscipolynomials.a diff --git a/modules/polynomials/.libs/libscipolynomials.la b/modules/polynomials/.libs/libscipolynomials.la new file mode 120000 index 000000000..335424736 --- /dev/null +++ b/modules/polynomials/.libs/libscipolynomials.la @@ -0,0 +1 @@ +../libscipolynomials.la
\ No newline at end of file diff --git a/modules/polynomials/Makefile b/modules/polynomials/Makefile new file mode 100755 index 000000000..a49593162 --- /dev/null +++ b/modules/polynomials/Makefile @@ -0,0 +1,1829 @@ +# Makefile.in generated by automake 1.14.1 from Makefile.am. +# modules/polynomials/Makefile. Generated from Makefile.in by configure. + +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + + +# Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +# Copyright (C) 2006 - INRIA - Sylvestre LEDRU +# +# This file is distributed under the same license as the Scilab package. + +# Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +# Copyright (C) 2006-2008 - INRIA - Sylvestre LEDRU <sylvestre.ledru@inria.fr> +# Copyright (C) 2008 - INRIA - Pierre MARECHAL <pierre.marechal@inria.fr> +# +# 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 +# + +########## +### Makefile included stuff +### Target, variable, suffixes which are supposed to be useful in every makefile.am +########## + + + +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/scilab +pkgincludedir = $(includedir)/scilab +pkglibdir = $(libdir)/scilab +pkglibexecdir = $(libexecdir)/scilab +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = x86_64-unknown-linux-gnu +host_triplet = x86_64-unknown-linux-gnu +DIST_COMMON = $(top_srcdir)/Makefile.incl.am $(srcdir)/Makefile.in \ + $(srcdir)/Makefile.am $(top_srcdir)/config/mkinstalldirs \ + $(top_srcdir)/config/depcomp +am__append_1 = java +subdir = modules/polynomials +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/backtrace.m4 \ + $(top_srcdir)/m4/compiler.m4 $(top_srcdir)/m4/curl.m4 \ + $(top_srcdir)/m4/docbook.m4 $(top_srcdir)/m4/doxygen.m4 \ + $(top_srcdir)/m4/fftw.m4 $(top_srcdir)/m4/fortran.m4 \ + $(top_srcdir)/m4/giws.m4 $(top_srcdir)/m4/hdf5.m4 \ + $(top_srcdir)/m4/intel_compiler.m4 \ + $(top_srcdir)/m4/java-thirdparty.m4 $(top_srcdir)/m4/java.m4 \ + $(top_srcdir)/m4/largefile.m4 $(top_srcdir)/m4/lib-ld.m4 \ + $(top_srcdir)/m4/libsmath.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/libxml2.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/macosx.m4 \ + $(top_srcdir)/m4/mpi.m4 $(top_srcdir)/m4/ocaml.m4 \ + $(top_srcdir)/m4/pcre.m4 $(top_srcdir)/m4/pkg.m4 \ + $(top_srcdir)/m4/relocatable.m4 $(top_srcdir)/m4/swig.m4 \ + $(top_srcdir)/m4/symlinks.m4 $(top_srcdir)/m4/tcltk.m4 \ + $(top_srcdir)/m4/umfpack.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/modules/core/includes/machine.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(pkglibdir)" \ + "$(DESTDIR)$(libscipolynomials_la_etcdir)" \ + "$(DESTDIR)$(libscipolynomials_la_rootdir)" \ + "$(DESTDIR)$(libscipolynomials_la_sci_gatewaydir)" +LTLIBRARIES = $(noinst_LTLIBRARIES) $(pkglib_LTLIBRARIES) +libscipolynomials_algo_la_LIBADD = +am__dirstamp = $(am__leading_dot)dirstamp +am__objects_1 = src/fortran/residu.lo src/fortran/imptra.lo \ + src/fortran/dmpadj.lo src/fortran/impins.lo \ + src/fortran/dpmul1.lo src/fortran/wprxc.lo \ + src/fortran/dmpcnc.lo src/fortran/wmpmu.lo \ + src/fortran/mpinsp.lo src/fortran/impext.lo \ + src/fortran/recbez.lo src/fortran/sfact1.lo \ + src/fortran/dpodiv.lo src/fortran/dmptra.lo \ + src/fortran/dmpins.lo src/fortran/dpsimp.lo \ + src/fortran/dmp2pm.lo src/fortran/dmpext.lo \ + src/fortran/wpmul.lo src/fortran/bezstp.lo \ + src/fortran/wmpad.lo src/fortran/dprxc.lo \ + src/fortran/quadsd.lo src/fortran/wmpadj.lo \ + src/fortran/dmpmu.lo src/fortran/wpmul1.lo \ + src/fortran/wmpcnc.lo src/fortran/mptri.lo \ + src/fortran/horner.lo src/fortran/idegre.lo \ + src/fortran/fxshfr.lo src/fortran/mpdiag.lo \ + src/fortran/dmpcle.lo src/fortran/rpoly.lo \ + src/fortran/wpodiv.lo src/fortran/wdmpmu.lo \ + src/fortran/wmptra.lo src/fortran/wmpins.lo \ + src/fortran/mpdegr.lo src/fortran/ddmpev.lo \ + src/fortran/realit.lo src/fortran/dpmul.lo \ + src/fortran/sfact2.lo src/fortran/dmpad.lo \ + src/fortran/nextk.lo src/fortran/blktit.lo \ + src/fortran/dimin.lo src/fortran/newest.lo \ + src/fortran/dwmpmu.lo src/fortran/impcnc.lo \ + src/fortran/wdmpad.lo src/fortran/wmpcle.lo \ + src/fortran/quadit.lo src/fortran/quad.lo \ + src/fortran/calcsc.lo src/fortran/writebufsfact.lo \ + src/fortran/chkvar.lo +am_libscipolynomials_algo_la_OBJECTS = $(am__objects_1) +libscipolynomials_algo_la_OBJECTS = \ + $(am_libscipolynomials_algo_la_OBJECTS) +AM_V_lt = $(am__v_lt_$(V)) +am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +am__v_lt_0 = --silent +am__v_lt_1 = +am_libscipolynomials_algo_la_rpath = +#am_libscipolynomials_algo_la_rpath = +libscipolynomials_la_DEPENDENCIES = libscipolynomials-algo.la +am__objects_2 = sci_gateway/fortran/sci_f_simp.lo \ + sci_gateway/fortran/sci_f_poly.lo \ + sci_gateway/fortran/sci_f_varn.lo \ + sci_gateway/fortran/sci_f_sum.lo \ + sci_gateway/fortran/sci_f_div.lo \ + sci_gateway/fortran/sci_f_diag.lo \ + sci_gateway/fortran/sci_f_prod.lo \ + sci_gateway/fortran/polops.lo \ + sci_gateway/fortran/sci_f_bezout.lo \ + sci_gateway/fortran/sci_f_triu_tril.lo \ + sci_gateway/fortran/sci_f_roots.lo \ + sci_gateway/fortran/sci_f_psimp.lo \ + sci_gateway/fortran/sci_f_rsimp.lo \ + sci_gateway/fortran/sci_f_coeff.lo \ + sci_gateway/fortran/sci_f_degree.lo \ + sci_gateway/fortran/sci_f_pclean.lo \ + sci_gateway/fortran/sci_f_sfact.lo \ + sci_gateway/fortran/sci_f_simpmd.lo +am__objects_3 = sci_gateway/c/libscipolynomials_la-gw_polynomials.lo \ + sci_gateway/c/libscipolynomials_la-sci_sfact.lo \ + sci_gateway/c/libscipolynomials_la-sci_cleanp.lo \ + sci_gateway/c/libscipolynomials_la-sci_sum.lo \ + sci_gateway/c/libscipolynomials_la-sci_prod.lo \ + sci_gateway/c/libscipolynomials_la-sci_diag.lo \ + sci_gateway/c/libscipolynomials_la-sci_simp_mode.lo \ + sci_gateway/c/libscipolynomials_la-sci_roots.lo \ + sci_gateway/c/libscipolynomials_la-sci_varn.lo \ + sci_gateway/c/libscipolynomials_la-sci_simp.lo \ + sci_gateway/c/libscipolynomials_la-sci_bezout.lo \ + sci_gateway/c/libscipolynomials_la-sci_tril.lo \ + sci_gateway/c/libscipolynomials_la-sci_div.lo \ + sci_gateway/c/libscipolynomials_la-sci_coeff.lo \ + sci_gateway/c/libscipolynomials_la-sci_poly.lo \ + sci_gateway/c/libscipolynomials_la-sci_triu.lo \ + sci_gateway/c/libscipolynomials_la-sci_degree.lo +am_libscipolynomials_la_OBJECTS = $(am__objects_2) $(am__objects_3) +libscipolynomials_la_OBJECTS = $(am_libscipolynomials_la_OBJECTS) +am_libscipolynomials_la_rpath = +#am_libscipolynomials_la_rpath = -rpath \ +# $(pkglibdir) +AM_V_P = $(am__v_P_$(V)) +am__v_P_ = $(am__v_P_$(AM_DEFAULT_VERBOSITY)) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I. -I$(top_builddir)/modules/core/includes +depcomp = $(SHELL) $(top_srcdir)/config/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_$(V)) +am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_$(V)) +am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +F77COMPILE = $(F77) $(AM_FFLAGS) $(FFLAGS) +LTF77COMPILE = $(LIBTOOL) $(AM_V_lt) --tag=F77 $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(F77) $(AM_FFLAGS) $(FFLAGS) +AM_V_F77 = $(am__v_F77_$(V)) +am__v_F77_ = $(am__v_F77_$(AM_DEFAULT_VERBOSITY)) +am__v_F77_0 = @echo " F77 " $@; +am__v_F77_1 = +F77LD = $(F77) +F77LINK = $(LIBTOOL) $(AM_V_lt) --tag=F77 $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(F77LD) $(AM_FFLAGS) $(FFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_F77LD = $(am__v_F77LD_$(V)) +am__v_F77LD_ = $(am__v_F77LD_$(AM_DEFAULT_VERBOSITY)) +am__v_F77LD_0 = @echo " F77LD " $@; +am__v_F77LD_1 = +SOURCES = $(libscipolynomials_algo_la_SOURCES) \ + $(libscipolynomials_la_SOURCES) +DIST_SOURCES = $(libscipolynomials_algo_la_SOURCES) \ + $(libscipolynomials_la_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +DATA = $(libscipolynomials_la_etc_DATA) \ + $(libscipolynomials_la_root_DATA) \ + $(libscipolynomials_la_sci_gateway_DATA) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = ${SHELL} /home/shashank/scilab-master_5.5.2/config/missing aclocal-1.14 +ALL_LINGUAS = en_US fr_FR zh_CN zh_TW ru_RU ca_ES de_DE es_ES pt_BR ja_JP it_IT uk_UA pl_PL cs_CZ +ALL_LINGUAS_DOC = en_US fr_FR pt_BR ja_JP ru_RU +AMTAR = $${TAR-tar} +AM_DEFAULT_VERBOSITY = 1 +ANT = /usr/bin/ant +ANTLR = /usr/share/java/antlr.jar +AR = ar +ARPACK_LIBS = -L/home/shashank/scilab-master_5.5.2/usr/lib -larpack +ASM3 = /usr/share/java/asm3-3.3.2.jar +AUTOCONF = ${SHELL} /home/shashank/scilab-master_5.5.2/config/missing autoconf +AUTOHEADER = ${SHELL} /home/shashank/scilab-master_5.5.2/config/missing autoheader +AUTOMAKE = ${SHELL} /home/shashank/scilab-master_5.5.2/config/missing automake-1.14 +AVALON_FRAMEWORK = /home/shashank/scilab-master_5.5.2/thirdparty/avalon-framework.jar +AWK = mawk +BATIK = /home/shashank/scilab-master_5.5.2/thirdparty/batik-all-1.7.jar +BLAS_LIBS = -L/home/shashank/scilab-master_5.5.2/usr/lib -lblas +CC = gcc +CCACHE = +CCDEPMODE = depmode=gcc3 +CFLAGS = -g -O2 +CHECKSTYLE = +COBERTURA = /usr/share/java/cobertura.jar +COMMONS_BEANUTILS = +COMMONS_IO = /home/shashank/scilab-master_5.5.2/thirdparty/commons-io.jar +COMMONS_LOGGING = /home/shashank/scilab-master_5.5.2/thirdparty/commons-logging.jar +CPP = gcc -E +CPPFLAGS = +CURL_CFLAGS = -I/home/shashank/scilab-master_5.5.2/usr/include +CURL_CONFIG = /home/shashank/scilab-master_5.5.2/usr/bin/curl-config +CURL_LIBS = -L/home/shashank/scilab-master_5.5.2/usr/lib -lcurl -L/home/scilab/work/linux-prerequisites-sources/trunk/Dev-Tools/SE/Prerequirements/linux_x64/usr/lib -L/home/scilab/work/linux-prerequisites-sources/trunk/Dev-Tools/SE/Prerequirements/linux_x64/usr/lib -lssl -lcrypto -lrt -lz +CURL_VERSION = libcurl 7.19.7 +CXX = g++ +CXXCPP = g++ -E +CXXDEPMODE = depmode=gcc3 +CXXFLAGS = -g -O2 +CYGPATH_W = echo +DEFS = -DHAVE_CONFIG_H +DEMOTOOLS_ENABLE = yes +DEPDIR = .deps +DLLTOOL = false +DOCBOOK_ROOT = /home/shashank/scilab-master_5.5.2/thirdparty/docbook/ +DOXYGEN_BIN = +DSYMUTIL = +DUMPBIN = +ECHO_C = +ECHO_N = -n +ECHO_T = +ECJ = /home/shashank/scilab-master_5.5.2/thirdparty/ecj.jar +EGREP = /bin/grep -E +EXEEXT = +F77 = gfortran +FFLAGS = -g -O2 +FFTW3_LIB = -L/home/shashank/scilab-master_5.5.2/usr/lib -lfftw3 +FFTW_ENABLE = yes +FGREP = /bin/grep -F +FLEXDOCK = /home/shashank/scilab-master_5.5.2/thirdparty/flexdock-1.2.4.jar +FLIBS = -L/usr/lib/gcc/x86_64-linux-gnu/5 -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/5/../../.. -lpthread -ldl -lcurses -lgfortran -lm -lquadmath +FOP = /home/shashank/scilab-master_5.5.2/thirdparty/fop.jar +FREEHEP_GRAPHICS2D = /home/shashank/scilab-master_5.5.2/thirdparty/freehep-graphics2d.jar +FREEHEP_GRAPHICSIO = /home/shashank/scilab-master_5.5.2/thirdparty/freehep-graphicsio.jar +FREEHEP_GRAPHICSIO_EMF = /home/shashank/scilab-master_5.5.2/thirdparty/freehep-graphicsio-emf.jar +FREEHEP_IO = /home/shashank/scilab-master_5.5.2/thirdparty/freehep-io.jar +FREEHEP_UTIL = /home/shashank/scilab-master_5.5.2/thirdparty/freehep-util.jar +GENHTML = +GETTEXT_MACRO_VERSION = 0.19 +GIWS_BIN = +GLUEGEN2_RT = /home/shashank/scilab-master_5.5.2/thirdparty/gluegen2-rt.jar +GMSGFMT = /usr/bin/msgfmt +GMSGFMT_015 = /usr/bin/msgfmt +GRAPHICS_ENABLE = yes +GREP = /bin/grep +GUI_ENABLE = yes +HDF5_CFLAGS = -I/home/shashank/scilab-master_5.5.2/usr/include +HDF5_LIBS = -L/home/shashank/scilab-master_5.5.2/usr/lib -lhdf5 -lhdf5_hl +HELP_ENABLE = yes +INSTALL = /usr/bin/install -c +INSTALL_DATA = ${INSTALL} -m 644 +INSTALL_PROGRAM = ${INSTALL} +INSTALL_SCRIPT = ${INSTALL} +INSTALL_STRIP_PROGRAM = $(install_sh) -c -s +INTLLIBS = +INTL_MACOSX_LIBS = +JAR = /usr/lib/jvm/java-8-openjdk-amd64/bin/jar +JAVA = /usr/lib/jvm/java-8-openjdk-amd64/bin/java +JAVAC = /usr/lib/jvm/java-8-openjdk-amd64/bin/javac +JAVAC_DEBUG = off +JAVADOC = /usr/lib/jvm/java-8-openjdk-amd64/bin/javadoc +JAVAH = /usr/lib/jvm/java-8-openjdk-amd64/bin/javah +JAVASCI_ENABLE = yes +JAVA_ENABLE = yes +JAVA_G = /usr/lib/jvm/java-8-openjdk-amd64/bin/java +JAVA_HOME = /usr/lib/jvm/java-8-openjdk-amd64 +JAVA_JNI_INCLUDE = -I/usr/lib/jvm/java-8-openjdk-amd64/include -I/usr/lib/jvm/java-8-openjdk-amd64/include/linux +JAVA_JNI_LIBS = -L/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64 -ljava -lverify -L/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server -ljvm +JDB = /usr/lib/jvm/java-8-openjdk-amd64/bin/jdb +JEUCLID_CORE = /home/shashank/scilab-master_5.5.2/thirdparty/jeuclid-core.jar +JGRAPHX = /home/shashank/scilab-master_5.5.2/thirdparty/jgraphx.jar +JHALL = /home/shashank/scilab-master_5.5.2/thirdparty/jhall.jar +JLATEXMATH = /home/shashank/scilab-master_5.5.2/thirdparty/jlatexmath-1.0.3.jar +JLATEXMATH_FOP = /home/shashank/scilab-master_5.5.2/thirdparty/jlatexmath-fop-1.0.3.jar +JOGL2 = /home/shashank/scilab-master_5.5.2/thirdparty/jogl2.jar +JROSETTA_API = /home/shashank/scilab-master_5.5.2/thirdparty/jrosetta-API.jar +JROSETTA_ENGINE = /home/shashank/scilab-master_5.5.2/thirdparty/jrosetta-engine.jar +JUNIT4 = /usr/share/java/junit4.jar +LAPACK_LIBS = -L/home/shashank/scilab-master_5.5.2/usr/lib -llapack +LCOV = +LD = /usr/bin/ld -m elf_x86_64 +LDFLAGS = -Wl,--no-as-needed +LIBICONV = -liconv +LIBINTL = +LIBM = -lm +LIBOBJS = +LIBS = -lpthread -ldl -lcurses -lm +LIBTOOL = $(SHELL) $(top_builddir)/libtool +LIPO = +LN_S = ln -s +LOGGING_LEVEL = SEVERE +LOOKS = /home/shashank/scilab-master_5.5.2/thirdparty/looks-2.1.1.jar +LTLIBICONV = -liconv +LTLIBINTL = +LTLIBOBJS = +MAINT = # +MAKEINFO = ${SHELL} /home/shashank/scilab-master_5.5.2/config/missing makeinfo +MANIFEST_TOOL = : +MATIO_CFLAGS = -I/home/shashank/scilab-master_5.5.2/usr/include +MATIO_ENABLE = yes +MATIO_LIBS = -L/home/shashank/scilab-master_5.5.2/usr/lib -lm -lz -lmatio -lhdf5 +MKDIR_P = /bin/mkdir -p +MPI_ENABLE = no +MSGCAT = /usr/bin/msgcat +MSGFMT = /usr/bin/msgfmt +MSGFMT_015 = /usr/bin/msgfmt +MSGMERGE = /usr/bin/msgmerge +NM = nm +NMEDIT = +OBJDUMP = objdump +OBJEXT = o +OCAMLC = ocamlc +OCAMLDEP = ocamldep +OCAMLLEX = ocamllex +OCAMLOPT = ocamlopt +OCAMLYACC = ocamlyacc +OPENMPI_CC = +OPENMPI_CFLAGS = +OPENMPI_CXX = +OPENMPI_CXXFLAGS = +OPENMPI_LIBS = +OPENMP_CFLAGS = -fopenmp +OPENMP_CXXFLAGS = -fopenmp +OPENMP_ENABLE = yes +OPENMP_LIBS = -lgomp -lstdc++ +OTOOL = +OTOOL64 = +PACKAGE = scilab +PACKAGE_BUGREPORT = http://bugzilla.scilab.org/ +PACKAGE_NAME = Scilab +PACKAGE_STRING = Scilab 5 +PACKAGE_TARNAME = scilab +PACKAGE_URL = +PACKAGE_VERSION = 5 +PATH_SEPARATOR = : +PCRE_CFLAGS = -I/home/shashank/scilab-master_5.5.2/usr/include +PCRE_CONFIG = /home/shashank/scilab-master_5.5.2/usr/bin/pcre-config +PCRE_LIBS = -L/home/shashank/scilab-master_5.5.2/usr/lib -lpcreposix -lpcre +PCRE_VERSION = 8.35 +PKG_CONFIG = /usr/bin/pkg-config +POSUB = po +POW_LIB = +PYTHON = +RANLIB = ranlib +RELOCATABLE = no +RT_LIB = -lrt +SAXON = /home/shashank/scilab-master_5.5.2/thirdparty/saxon9he.jar +SCILAB_BINARY_VERSION = 5.5.2 +SCILAB_LIBRARY_VERSION = 5:5:2 +SCILAB_VERSION_MAINTENANCE = 2 +SCILAB_VERSION_MAJOR = 5 +SCILAB_VERSION_MINOR = 5 +SCIRENDERER = ${modules.dir}/scirenderer/${build.jar.dir}/scirenderer.jar +SCIRENDERER_CP = $SCILAB/modules/scirenderer/jar/scirenderer.jar +SCI_CFLAGS = -D_LARGEFILE64_SOURCE -DNDEBUG -m64 -fno-stack-protector +SCI_CXXFLAGS = -DNDEBUG -fno-stack-protector +SCI_FFLAGS = -DNDEBUG -m64 -fPIC +SCI_LDFLAGS = +SED = /bin/sed +SET_MAKE = +SET_RELOCATABLE = +SHELL = /bin/bash +SKINLF = /home/shashank/scilab-master_5.5.2/thirdparty/skinlf.jar +SPLINT = no +STRIP = strip +SWIG_BIN = +SWIG_JAVA = +SWIG_RUNTIME_LIBS_DIR = +SWIG_SCILAB = +TCLTK_LIBS = -L/home/shashank/scilab-master_5.5.2/usr/lib -ltk8.5 -L/home/shashank/scilab-master_5.5.2/usr/lib -ltcl8.5 -ldl +TCL_INC_PATH = -I/home/shashank/scilab-master_5.5.2/usr/include +TK_INC_PATH = -I/home/shashank/scilab-master_5.5.2/usr/include +UMFPACK_CFLAGS = -I/home/shashank/scilab-master_5.5.2/usr/include +UMFPACK_ENABLE = yes +UMFPACK_LIB = -L/home/shashank/scilab-master_5.5.2/usr/lib -lumfpack -lamd +USE_NLS = yes +VERSION = 5 +WITH_OCAML = +WITH_TKSCI = yes +XCOS_ENABLE = yes +XGETTEXT = /usr/bin/xgettext +XGETTEXT_015 = /usr/bin/xgettext +XGETTEXT_EXTRA_OPTIONS = +XMKMF = +XMLGRAPHICS_COMMONS = /home/shashank/scilab-master_5.5.2/thirdparty/xmlgraphics-commons-1.4.jar +XML_APIS_EXT = /home/shashank/scilab-master_5.5.2/thirdparty/xml-apis-ext.jar +XML_CONFIG = /home/shashank/scilab-master_5.5.2/usr/bin/xml2-config +XML_FLAGS = -I/home/shashank/scilab-master_5.5.2/usr/include/libxml2 +XML_LIBS = -L/home/shashank/scilab-master_5.5.2/usr/lib -lxml2 -L/home/scilab/work/linux-prerequisites-sources/trunk/Dev-Tools/SE/Prerequirements/linux_x64/usr/lib -lz -lm -ldl +XML_VERSION = 2.9.1 +X_CFLAGS = +X_EXTRA_LIBS = +X_LIBS = +X_PRE_LIBS = +abs_builddir = /home/shashank/scilab-master_5.5.2/modules/polynomials +abs_srcdir = /home/shashank/scilab-master_5.5.2/modules/polynomials +abs_top_builddir = /home/shashank/scilab-master_5.5.2 +abs_top_srcdir = /home/shashank/scilab-master_5.5.2 +ac_ct_AR = ar +ac_ct_CC = gcc +ac_ct_CXX = g++ +ac_ct_DUMPBIN = +ac_ct_F77 = gfortran +am__include = include +am__leading_dot = . +am__quote = +am__tar = $${TAR-tar} chof - "$$tardir" +am__untar = $${TAR-tar} xf - +bindir = ${exec_prefix}/bin +build = x86_64-unknown-linux-gnu +build_alias = +build_cpu = x86_64 +build_os = linux-gnu +build_vendor = unknown +builddir = . +cxx_present = yes +datadir = ${datarootdir} +datarootdir = ${prefix}/share +docdir = ${datarootdir}/doc/${PACKAGE_TARNAME} +dvidir = ${docdir} +exec_prefix = ${prefix} +host = x86_64-unknown-linux-gnu +host_alias = +host_cpu = x86_64 +host_os = linux-gnu +host_vendor = unknown +htmldir = ${docdir} +includedir = ${prefix}/include +infodir = ${datarootdir}/info +install_sh = ${SHELL} /home/shashank/scilab-master_5.5.2/config/install-sh +libdir = ${exec_prefix}/lib +libexecdir = ${exec_prefix}/libexec +localedir = ${datarootdir}/locale +localstatedir = ${prefix}/var +mandir = ${datarootdir}/man +mkdir_p = $(MKDIR_P) +oldincludedir = /usr/include +pdfdir = ${docdir} +prefix = /usr/local +program_transform_name = s,x,x, +psdir = ${docdir} +sbindir = ${exec_prefix}/sbin +sharedstatedir = ${prefix}/com +srcdir = . +sysconfdir = ${prefix}/etc +target_alias = +top_build_prefix = ../../ +top_builddir = ../.. +top_srcdir = ../.. +POLYNOMIALS_FORTRAN_SOURCES = src/fortran/residu.f \ +src/fortran/imptra.f \ +src/fortran/dmpadj.f \ +src/fortran/impins.f \ +src/fortran/dpmul1.f \ +src/fortran/wprxc.f \ +src/fortran/dmpcnc.f \ +src/fortran/wmpmu.f \ +src/fortran/mpinsp.f \ +src/fortran/impext.f \ +src/fortran/recbez.f \ +src/fortran/sfact1.f \ +src/fortran/dpodiv.f \ +src/fortran/dmptra.f \ +src/fortran/dmpins.f \ +src/fortran/dpsimp.f \ +src/fortran/dmp2pm.f \ +src/fortran/dmpext.f \ +src/fortran/wpmul.f \ +src/fortran/bezstp.f \ +src/fortran/wmpad.f \ +src/fortran/dprxc.f \ +src/fortran/quadsd.f \ +src/fortran/wmpadj.f \ +src/fortran/dmpmu.f \ +src/fortran/wpmul1.f \ +src/fortran/wmpcnc.f \ +src/fortran/mptri.f \ +src/fortran/horner.f \ +src/fortran/idegre.f \ +src/fortran/fxshfr.f \ +src/fortran/mpdiag.f \ +src/fortran/dmpcle.f \ +src/fortran/rpoly.f \ +src/fortran/wpodiv.f \ +src/fortran/wdmpmu.f \ +src/fortran/wmptra.f \ +src/fortran/wmpins.f \ +src/fortran/mpdegr.f \ +src/fortran/ddmpev.f \ +src/fortran/realit.f \ +src/fortran/dpmul.f \ +src/fortran/sfact2.f \ +src/fortran/dmpad.f \ +src/fortran/nextk.f \ +src/fortran/blktit.f \ +src/fortran/dimin.f \ +src/fortran/newest.f \ +src/fortran/dwmpmu.f \ +src/fortran/impcnc.f \ +src/fortran/wdmpad.f \ +src/fortran/wmpcle.f \ +src/fortran/quadit.f \ +src/fortran/quad.f \ +src/fortran/calcsc.f \ +src/fortran/writebufsfact.f \ +src/fortran/chkvar.f + +GATEWAY_C_SOURCES = sci_gateway/c/gw_polynomials.c \ +sci_gateway/c/sci_sfact.c \ +sci_gateway/c/sci_cleanp.c \ +sci_gateway/c/sci_sum.c \ +sci_gateway/c/sci_prod.c \ +sci_gateway/c/sci_diag.c \ +sci_gateway/c/sci_simp_mode.c \ +sci_gateway/c/sci_roots.c \ +sci_gateway/c/sci_varn.c \ +sci_gateway/c/sci_simp.c \ +sci_gateway/c/sci_bezout.c \ +sci_gateway/c/sci_tril.c \ +sci_gateway/c/sci_div.c \ +sci_gateway/c/sci_coeff.c \ +sci_gateway/c/sci_poly.c \ +sci_gateway/c/sci_triu.c \ +sci_gateway/c/sci_degree.c + +GATEWAY_FORTRAN_SOURCES = sci_gateway/fortran/sci_f_simp.f \ +sci_gateway/fortran/sci_f_poly.f \ +sci_gateway/fortran/sci_f_varn.f \ +sci_gateway/fortran/sci_f_sum.f \ +sci_gateway/fortran/sci_f_div.f \ +sci_gateway/fortran/sci_f_diag.f \ +sci_gateway/fortran/sci_f_prod.f \ +sci_gateway/fortran/polops.f \ +sci_gateway/fortran/sci_f_bezout.f \ +sci_gateway/fortran/sci_f_triu_tril.f \ +sci_gateway/fortran/sci_f_roots.f \ +sci_gateway/fortran/sci_f_psimp.f \ +sci_gateway/fortran/sci_f_rsimp.f \ +sci_gateway/fortran/sci_f_coeff.f \ +sci_gateway/fortran/sci_f_degree.f \ +sci_gateway/fortran/sci_f_pclean.f \ +sci_gateway/fortran/sci_f_sfact.f \ +sci_gateway/fortran/sci_f_simpmd.f + +libscipolynomials_la_CPPFLAGS = -I$(srcdir)/includes/ \ + -I$(top_srcdir)/modules/api_scilab/includes/ \ + -I$(top_srcdir)/modules/output_stream/includes/ \ + -I$(top_srcdir)/modules/localization/includes/ \ + $(AM_CPPFLAGS) + +#pkglib_LTLIBRARIES = libscipolynomials.la +noinst_LTLIBRARIES = libscipolynomials-algo.la libscipolynomials.la +#noinst_LTLIBRARIES = libscipolynomials-algo.la +libscipolynomials_algo_la_SOURCES = $(POLYNOMIALS_FORTRAN_SOURCES) +libscipolynomials_la_SOURCES = $(GATEWAY_FORTRAN_SOURCES) $(GATEWAY_C_SOURCES) +libscipolynomials_algo_la_CPPFLAGS = $(libscipolynomials_la_CPPFLAGS) + +# For the code check (splint) +CHECK_SRC = ) $(GATEWAY_C_SOURCES) +INCLUDE_FLAGS = $(libscipolynomials_la_CPPFLAGS) +libscipolynomials_la_LIBADD = libscipolynomials-algo.la + +#### Target ###### +modulename = polynomials + +#### polynomials : Conf files #### +libscipolynomials_la_rootdir = $(mydatadir) +libscipolynomials_la_root_DATA = license.txt + +#### polynomials : init scripts #### +libscipolynomials_la_etcdir = $(mydatadir)/etc +libscipolynomials_la_etc_DATA = etc/polynomials.quit etc/polynomials.start + +#### polynomials : gateway declaration #### +libscipolynomials_la_sci_gatewaydir = $(mydatadir)/sci_gateway +libscipolynomials_la_sci_gateway_DATA = sci_gateway/polynomials_gateway.xml + +# Where all the Scilab stuff is installed (macros, help, ...) +mydatadir = $(pkgdatadir)/modules/$(modulename) + +# Set AM_* SCI detected settings +AM_CPPFLAGS = $(SCI_CPPFLAGS) +AM_CFLAGS = $(SCI_CFLAGS) +AM_CXXFLAGS = $(SCI_CXXFLAGS) +# append includes to AM_FFLAGS to manage fortran includes +AM_FFLAGS = $(SCI_FFLAGS) -I$(top_srcdir)/modules/core/includes/ + +# Tag shared libraries with the Scilab version +AM_LDFLAGS = $(SCI_LDFLAGS) -version-number $(SCILAB_LIBRARY_VERSION) + +# splint options +SPLINT_OPTIONS = -weak -booltype BOOL + +########################### JAVA ###################################### +#### We are delegating java compilation to ant... Thanks to that +#### the procedure will be the same with Microsoft Windows (C) +#### and Linux/Unix +####################################################################### +TARGETS_ALL = $(am__append_1) + +################ MACROS ###################### +# Rule to build a macro +# NOT USED AT THE MOMENT +SUFFIXES = .sci + +########### INSTALL DOCUMENTATION ################### + +# Install documentation files into the right target +# We do not use the automake mechanism (libxxxx_la_help_fr_DATA) because +# automake needs the html files to be present which is not the case when +# we are building Scilab + +# Where it should be installed +pkgdocdir = $(mydatadir) + +# What is the mask of the help source +DOCMASKXML = *.xml + +# What is the mask of the MathML sources +DOCMASKMML = *.mml + +########### INSTALL DATA ################### +# Install macros, help & demos +# Where it should be installed +pkgmacrosdir = $(mydatadir) +# Which directory we process +MACRODIRS = macros/ +# Mask of the Scilab sources macros +MACROMASK = *.sci +# Mask of the Scilab executable sources macros +MACROBUILDMASK = *.sce +# Mask of the Scilab compiled macros +MACROBINMASK = *.bin +# List of the standard directory for tests +TESTS_DIR = tests/benchmarks tests/nonreg_tests tests/unit_tests tests/java +# Where the demos should be installed +pkgdemosdir = $(mydatadir) +# List of the standard directory for demos +DEMOS_DIR = demos +# List of the standard directory for examples +EXAMPLES_DIR = examples +# Where to export JAVA archives (.jar) +JARDIR = jar/ +# JAR files mask +JARMASK = *.jar +# Chapter file +HELP_CHAPTERDIR = help/ +HELP_CHAPTERFILE = addchapter.sce +HELP_CHAPTERLANG = en_US fr_FR pt_BR +all: all-am + +.SUFFIXES: +.SUFFIXES: .sci .bin .c .f .lo .o .obj +$(srcdir)/Makefile.in: # $(srcdir)/Makefile.am $(top_srcdir)/Makefile.incl.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign modules/polynomials/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign modules/polynomials/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; +$(top_srcdir)/Makefile.incl.am: + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: # $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): # $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +clean-noinstLTLIBRARIES: + -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +install-pkglibLTLIBRARIES: $(pkglib_LTLIBRARIES) + @$(NORMAL_INSTALL) + @list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(MKDIR_P) '$(DESTDIR)$(pkglibdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(pkglibdir)" || exit 1; \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pkglibdir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pkglibdir)"; \ + } + +uninstall-pkglibLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pkglibdir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pkglibdir)/$$f"; \ + done + +clean-pkglibLTLIBRARIES: + -test -z "$(pkglib_LTLIBRARIES)" || rm -f $(pkglib_LTLIBRARIES) + @list='$(pkglib_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } +src/fortran/$(am__dirstamp): + @$(MKDIR_P) src/fortran + @: > src/fortran/$(am__dirstamp) +src/fortran/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) src/fortran/$(DEPDIR) + @: > src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/residu.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/imptra.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/dmpadj.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/impins.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/dpmul1.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/wprxc.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/dmpcnc.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/wmpmu.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/mpinsp.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/impext.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/recbez.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/sfact1.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/dpodiv.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/dmptra.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/dmpins.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/dpsimp.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/dmp2pm.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/dmpext.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/wpmul.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/bezstp.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/wmpad.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/dprxc.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/quadsd.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/wmpadj.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/dmpmu.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/wpmul1.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/wmpcnc.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/mptri.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/horner.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/idegre.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/fxshfr.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/mpdiag.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/dmpcle.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/rpoly.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/wpodiv.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/wdmpmu.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/wmptra.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/wmpins.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/mpdegr.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/ddmpev.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/realit.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/dpmul.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/sfact2.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/dmpad.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/nextk.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/blktit.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/dimin.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/newest.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/dwmpmu.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/impcnc.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/wdmpad.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/wmpcle.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/quadit.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/quad.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/calcsc.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/writebufsfact.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/chkvar.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) + +libscipolynomials-algo.la: $(libscipolynomials_algo_la_OBJECTS) $(libscipolynomials_algo_la_DEPENDENCIES) $(EXTRA_libscipolynomials_algo_la_DEPENDENCIES) + $(AM_V_F77LD)$(F77LINK) $(am_libscipolynomials_algo_la_rpath) $(libscipolynomials_algo_la_OBJECTS) $(libscipolynomials_algo_la_LIBADD) $(LIBS) +sci_gateway/fortran/$(am__dirstamp): + @$(MKDIR_P) sci_gateway/fortran + @: > sci_gateway/fortran/$(am__dirstamp) +sci_gateway/fortran/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) sci_gateway/fortran/$(DEPDIR) + @: > sci_gateway/fortran/$(DEPDIR)/$(am__dirstamp) +sci_gateway/fortran/sci_f_simp.lo: \ + sci_gateway/fortran/$(am__dirstamp) \ + sci_gateway/fortran/$(DEPDIR)/$(am__dirstamp) +sci_gateway/fortran/sci_f_poly.lo: \ + sci_gateway/fortran/$(am__dirstamp) \ + sci_gateway/fortran/$(DEPDIR)/$(am__dirstamp) +sci_gateway/fortran/sci_f_varn.lo: \ + sci_gateway/fortran/$(am__dirstamp) \ + sci_gateway/fortran/$(DEPDIR)/$(am__dirstamp) +sci_gateway/fortran/sci_f_sum.lo: sci_gateway/fortran/$(am__dirstamp) \ + sci_gateway/fortran/$(DEPDIR)/$(am__dirstamp) +sci_gateway/fortran/sci_f_div.lo: sci_gateway/fortran/$(am__dirstamp) \ + sci_gateway/fortran/$(DEPDIR)/$(am__dirstamp) +sci_gateway/fortran/sci_f_diag.lo: \ + sci_gateway/fortran/$(am__dirstamp) \ + sci_gateway/fortran/$(DEPDIR)/$(am__dirstamp) +sci_gateway/fortran/sci_f_prod.lo: \ + sci_gateway/fortran/$(am__dirstamp) \ + sci_gateway/fortran/$(DEPDIR)/$(am__dirstamp) +sci_gateway/fortran/polops.lo: sci_gateway/fortran/$(am__dirstamp) \ + sci_gateway/fortran/$(DEPDIR)/$(am__dirstamp) +sci_gateway/fortran/sci_f_bezout.lo: \ + sci_gateway/fortran/$(am__dirstamp) \ + sci_gateway/fortran/$(DEPDIR)/$(am__dirstamp) +sci_gateway/fortran/sci_f_triu_tril.lo: \ + sci_gateway/fortran/$(am__dirstamp) \ + sci_gateway/fortran/$(DEPDIR)/$(am__dirstamp) +sci_gateway/fortran/sci_f_roots.lo: \ + sci_gateway/fortran/$(am__dirstamp) \ + sci_gateway/fortran/$(DEPDIR)/$(am__dirstamp) +sci_gateway/fortran/sci_f_psimp.lo: \ + sci_gateway/fortran/$(am__dirstamp) \ + sci_gateway/fortran/$(DEPDIR)/$(am__dirstamp) +sci_gateway/fortran/sci_f_rsimp.lo: \ + sci_gateway/fortran/$(am__dirstamp) \ + sci_gateway/fortran/$(DEPDIR)/$(am__dirstamp) +sci_gateway/fortran/sci_f_coeff.lo: \ + sci_gateway/fortran/$(am__dirstamp) \ + sci_gateway/fortran/$(DEPDIR)/$(am__dirstamp) +sci_gateway/fortran/sci_f_degree.lo: \ + sci_gateway/fortran/$(am__dirstamp) \ + sci_gateway/fortran/$(DEPDIR)/$(am__dirstamp) +sci_gateway/fortran/sci_f_pclean.lo: \ + sci_gateway/fortran/$(am__dirstamp) \ + sci_gateway/fortran/$(DEPDIR)/$(am__dirstamp) +sci_gateway/fortran/sci_f_sfact.lo: \ + sci_gateway/fortran/$(am__dirstamp) \ + sci_gateway/fortran/$(DEPDIR)/$(am__dirstamp) +sci_gateway/fortran/sci_f_simpmd.lo: \ + sci_gateway/fortran/$(am__dirstamp) \ + sci_gateway/fortran/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/$(am__dirstamp): + @$(MKDIR_P) sci_gateway/c + @: > sci_gateway/c/$(am__dirstamp) +sci_gateway/c/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) sci_gateway/c/$(DEPDIR) + @: > sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscipolynomials_la-gw_polynomials.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscipolynomials_la-sci_sfact.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscipolynomials_la-sci_cleanp.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscipolynomials_la-sci_sum.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscipolynomials_la-sci_prod.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscipolynomials_la-sci_diag.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscipolynomials_la-sci_simp_mode.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscipolynomials_la-sci_roots.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscipolynomials_la-sci_varn.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscipolynomials_la-sci_simp.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscipolynomials_la-sci_bezout.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscipolynomials_la-sci_tril.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscipolynomials_la-sci_div.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscipolynomials_la-sci_coeff.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscipolynomials_la-sci_poly.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscipolynomials_la-sci_triu.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscipolynomials_la-sci_degree.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) + +libscipolynomials.la: $(libscipolynomials_la_OBJECTS) $(libscipolynomials_la_DEPENDENCIES) $(EXTRA_libscipolynomials_la_DEPENDENCIES) + $(AM_V_F77LD)$(F77LINK) $(am_libscipolynomials_la_rpath) $(libscipolynomials_la_OBJECTS) $(libscipolynomials_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + -rm -f sci_gateway/c/*.$(OBJEXT) + -rm -f sci_gateway/c/*.lo + -rm -f sci_gateway/fortran/*.$(OBJEXT) + -rm -f sci_gateway/fortran/*.lo + -rm -f src/fortran/*.$(OBJEXT) + -rm -f src/fortran/*.lo + +distclean-compile: + -rm -f *.tab.c + +include sci_gateway/c/$(DEPDIR)/libscipolynomials_la-gw_polynomials.Plo +include sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_bezout.Plo +include sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_cleanp.Plo +include sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_coeff.Plo +include sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_degree.Plo +include sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_diag.Plo +include sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_div.Plo +include sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_poly.Plo +include sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_prod.Plo +include sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_roots.Plo +include sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_sfact.Plo +include sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_simp.Plo +include sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_simp_mode.Plo +include sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_sum.Plo +include sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_tril.Plo +include sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_triu.Plo +include sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_varn.Plo + +.c.o: + $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ + $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ + $(am__mv) $$depbase.Tpo $$depbase.Po +# $(AM_V_CC)source='$<' object='$@' libtool=no \ +# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ +# $(AM_V_CC_no)$(COMPILE) -c -o $@ $< + +.c.obj: + $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ + $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ + $(am__mv) $$depbase.Tpo $$depbase.Po +# $(AM_V_CC)source='$<' object='$@' libtool=no \ +# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ +# $(AM_V_CC_no)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: + $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ + $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ + $(am__mv) $$depbase.Tpo $$depbase.Plo +# $(AM_V_CC)source='$<' object='$@' libtool=yes \ +# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ +# $(AM_V_CC_no)$(LTCOMPILE) -c -o $@ $< + +sci_gateway/c/libscipolynomials_la-gw_polynomials.lo: sci_gateway/c/gw_polynomials.c + $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscipolynomials_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscipolynomials_la-gw_polynomials.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscipolynomials_la-gw_polynomials.Tpo -c -o sci_gateway/c/libscipolynomials_la-gw_polynomials.lo `test -f 'sci_gateway/c/gw_polynomials.c' || echo '$(srcdir)/'`sci_gateway/c/gw_polynomials.c + $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscipolynomials_la-gw_polynomials.Tpo sci_gateway/c/$(DEPDIR)/libscipolynomials_la-gw_polynomials.Plo +# $(AM_V_CC)source='sci_gateway/c/gw_polynomials.c' object='sci_gateway/c/libscipolynomials_la-gw_polynomials.lo' libtool=yes \ +# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ +# $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscipolynomials_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscipolynomials_la-gw_polynomials.lo `test -f 'sci_gateway/c/gw_polynomials.c' || echo '$(srcdir)/'`sci_gateway/c/gw_polynomials.c + +sci_gateway/c/libscipolynomials_la-sci_sfact.lo: sci_gateway/c/sci_sfact.c + $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscipolynomials_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscipolynomials_la-sci_sfact.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_sfact.Tpo -c -o sci_gateway/c/libscipolynomials_la-sci_sfact.lo `test -f 'sci_gateway/c/sci_sfact.c' || echo '$(srcdir)/'`sci_gateway/c/sci_sfact.c + $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_sfact.Tpo sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_sfact.Plo +# $(AM_V_CC)source='sci_gateway/c/sci_sfact.c' object='sci_gateway/c/libscipolynomials_la-sci_sfact.lo' libtool=yes \ +# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ +# $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscipolynomials_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscipolynomials_la-sci_sfact.lo `test -f 'sci_gateway/c/sci_sfact.c' || echo '$(srcdir)/'`sci_gateway/c/sci_sfact.c + +sci_gateway/c/libscipolynomials_la-sci_cleanp.lo: sci_gateway/c/sci_cleanp.c + $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscipolynomials_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscipolynomials_la-sci_cleanp.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_cleanp.Tpo -c -o sci_gateway/c/libscipolynomials_la-sci_cleanp.lo `test -f 'sci_gateway/c/sci_cleanp.c' || echo '$(srcdir)/'`sci_gateway/c/sci_cleanp.c + $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_cleanp.Tpo sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_cleanp.Plo +# $(AM_V_CC)source='sci_gateway/c/sci_cleanp.c' object='sci_gateway/c/libscipolynomials_la-sci_cleanp.lo' libtool=yes \ +# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ +# $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscipolynomials_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscipolynomials_la-sci_cleanp.lo `test -f 'sci_gateway/c/sci_cleanp.c' || echo '$(srcdir)/'`sci_gateway/c/sci_cleanp.c + +sci_gateway/c/libscipolynomials_la-sci_sum.lo: sci_gateway/c/sci_sum.c + $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscipolynomials_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscipolynomials_la-sci_sum.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_sum.Tpo -c -o sci_gateway/c/libscipolynomials_la-sci_sum.lo `test -f 'sci_gateway/c/sci_sum.c' || echo '$(srcdir)/'`sci_gateway/c/sci_sum.c + $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_sum.Tpo sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_sum.Plo +# $(AM_V_CC)source='sci_gateway/c/sci_sum.c' object='sci_gateway/c/libscipolynomials_la-sci_sum.lo' libtool=yes \ +# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ +# $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscipolynomials_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscipolynomials_la-sci_sum.lo `test -f 'sci_gateway/c/sci_sum.c' || echo '$(srcdir)/'`sci_gateway/c/sci_sum.c + +sci_gateway/c/libscipolynomials_la-sci_prod.lo: sci_gateway/c/sci_prod.c + $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscipolynomials_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscipolynomials_la-sci_prod.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_prod.Tpo -c -o sci_gateway/c/libscipolynomials_la-sci_prod.lo `test -f 'sci_gateway/c/sci_prod.c' || echo '$(srcdir)/'`sci_gateway/c/sci_prod.c + $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_prod.Tpo sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_prod.Plo +# $(AM_V_CC)source='sci_gateway/c/sci_prod.c' object='sci_gateway/c/libscipolynomials_la-sci_prod.lo' libtool=yes \ +# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ +# $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscipolynomials_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscipolynomials_la-sci_prod.lo `test -f 'sci_gateway/c/sci_prod.c' || echo '$(srcdir)/'`sci_gateway/c/sci_prod.c + +sci_gateway/c/libscipolynomials_la-sci_diag.lo: sci_gateway/c/sci_diag.c + $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscipolynomials_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscipolynomials_la-sci_diag.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_diag.Tpo -c -o sci_gateway/c/libscipolynomials_la-sci_diag.lo `test -f 'sci_gateway/c/sci_diag.c' || echo '$(srcdir)/'`sci_gateway/c/sci_diag.c + $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_diag.Tpo sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_diag.Plo +# $(AM_V_CC)source='sci_gateway/c/sci_diag.c' object='sci_gateway/c/libscipolynomials_la-sci_diag.lo' libtool=yes \ +# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ +# $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscipolynomials_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscipolynomials_la-sci_diag.lo `test -f 'sci_gateway/c/sci_diag.c' || echo '$(srcdir)/'`sci_gateway/c/sci_diag.c + +sci_gateway/c/libscipolynomials_la-sci_simp_mode.lo: sci_gateway/c/sci_simp_mode.c + $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscipolynomials_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscipolynomials_la-sci_simp_mode.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_simp_mode.Tpo -c -o sci_gateway/c/libscipolynomials_la-sci_simp_mode.lo `test -f 'sci_gateway/c/sci_simp_mode.c' || echo '$(srcdir)/'`sci_gateway/c/sci_simp_mode.c + $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_simp_mode.Tpo sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_simp_mode.Plo +# $(AM_V_CC)source='sci_gateway/c/sci_simp_mode.c' object='sci_gateway/c/libscipolynomials_la-sci_simp_mode.lo' libtool=yes \ +# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ +# $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscipolynomials_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscipolynomials_la-sci_simp_mode.lo `test -f 'sci_gateway/c/sci_simp_mode.c' || echo '$(srcdir)/'`sci_gateway/c/sci_simp_mode.c + +sci_gateway/c/libscipolynomials_la-sci_roots.lo: sci_gateway/c/sci_roots.c + $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscipolynomials_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscipolynomials_la-sci_roots.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_roots.Tpo -c -o sci_gateway/c/libscipolynomials_la-sci_roots.lo `test -f 'sci_gateway/c/sci_roots.c' || echo '$(srcdir)/'`sci_gateway/c/sci_roots.c + $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_roots.Tpo sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_roots.Plo +# $(AM_V_CC)source='sci_gateway/c/sci_roots.c' object='sci_gateway/c/libscipolynomials_la-sci_roots.lo' libtool=yes \ +# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ +# $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscipolynomials_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscipolynomials_la-sci_roots.lo `test -f 'sci_gateway/c/sci_roots.c' || echo '$(srcdir)/'`sci_gateway/c/sci_roots.c + +sci_gateway/c/libscipolynomials_la-sci_varn.lo: sci_gateway/c/sci_varn.c + $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscipolynomials_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscipolynomials_la-sci_varn.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_varn.Tpo -c -o sci_gateway/c/libscipolynomials_la-sci_varn.lo `test -f 'sci_gateway/c/sci_varn.c' || echo '$(srcdir)/'`sci_gateway/c/sci_varn.c + $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_varn.Tpo sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_varn.Plo +# $(AM_V_CC)source='sci_gateway/c/sci_varn.c' object='sci_gateway/c/libscipolynomials_la-sci_varn.lo' libtool=yes \ +# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ +# $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscipolynomials_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscipolynomials_la-sci_varn.lo `test -f 'sci_gateway/c/sci_varn.c' || echo '$(srcdir)/'`sci_gateway/c/sci_varn.c + +sci_gateway/c/libscipolynomials_la-sci_simp.lo: sci_gateway/c/sci_simp.c + $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscipolynomials_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscipolynomials_la-sci_simp.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_simp.Tpo -c -o sci_gateway/c/libscipolynomials_la-sci_simp.lo `test -f 'sci_gateway/c/sci_simp.c' || echo '$(srcdir)/'`sci_gateway/c/sci_simp.c + $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_simp.Tpo sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_simp.Plo +# $(AM_V_CC)source='sci_gateway/c/sci_simp.c' object='sci_gateway/c/libscipolynomials_la-sci_simp.lo' libtool=yes \ +# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ +# $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscipolynomials_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscipolynomials_la-sci_simp.lo `test -f 'sci_gateway/c/sci_simp.c' || echo '$(srcdir)/'`sci_gateway/c/sci_simp.c + +sci_gateway/c/libscipolynomials_la-sci_bezout.lo: sci_gateway/c/sci_bezout.c + $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscipolynomials_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscipolynomials_la-sci_bezout.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_bezout.Tpo -c -o sci_gateway/c/libscipolynomials_la-sci_bezout.lo `test -f 'sci_gateway/c/sci_bezout.c' || echo '$(srcdir)/'`sci_gateway/c/sci_bezout.c + $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_bezout.Tpo sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_bezout.Plo +# $(AM_V_CC)source='sci_gateway/c/sci_bezout.c' object='sci_gateway/c/libscipolynomials_la-sci_bezout.lo' libtool=yes \ +# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ +# $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscipolynomials_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscipolynomials_la-sci_bezout.lo `test -f 'sci_gateway/c/sci_bezout.c' || echo '$(srcdir)/'`sci_gateway/c/sci_bezout.c + +sci_gateway/c/libscipolynomials_la-sci_tril.lo: sci_gateway/c/sci_tril.c + $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscipolynomials_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscipolynomials_la-sci_tril.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_tril.Tpo -c -o sci_gateway/c/libscipolynomials_la-sci_tril.lo `test -f 'sci_gateway/c/sci_tril.c' || echo '$(srcdir)/'`sci_gateway/c/sci_tril.c + $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_tril.Tpo sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_tril.Plo +# $(AM_V_CC)source='sci_gateway/c/sci_tril.c' object='sci_gateway/c/libscipolynomials_la-sci_tril.lo' libtool=yes \ +# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ +# $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscipolynomials_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscipolynomials_la-sci_tril.lo `test -f 'sci_gateway/c/sci_tril.c' || echo '$(srcdir)/'`sci_gateway/c/sci_tril.c + +sci_gateway/c/libscipolynomials_la-sci_div.lo: sci_gateway/c/sci_div.c + $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscipolynomials_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscipolynomials_la-sci_div.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_div.Tpo -c -o sci_gateway/c/libscipolynomials_la-sci_div.lo `test -f 'sci_gateway/c/sci_div.c' || echo '$(srcdir)/'`sci_gateway/c/sci_div.c + $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_div.Tpo sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_div.Plo +# $(AM_V_CC)source='sci_gateway/c/sci_div.c' object='sci_gateway/c/libscipolynomials_la-sci_div.lo' libtool=yes \ +# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ +# $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscipolynomials_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscipolynomials_la-sci_div.lo `test -f 'sci_gateway/c/sci_div.c' || echo '$(srcdir)/'`sci_gateway/c/sci_div.c + +sci_gateway/c/libscipolynomials_la-sci_coeff.lo: sci_gateway/c/sci_coeff.c + $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscipolynomials_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscipolynomials_la-sci_coeff.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_coeff.Tpo -c -o sci_gateway/c/libscipolynomials_la-sci_coeff.lo `test -f 'sci_gateway/c/sci_coeff.c' || echo '$(srcdir)/'`sci_gateway/c/sci_coeff.c + $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_coeff.Tpo sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_coeff.Plo +# $(AM_V_CC)source='sci_gateway/c/sci_coeff.c' object='sci_gateway/c/libscipolynomials_la-sci_coeff.lo' libtool=yes \ +# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ +# $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscipolynomials_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscipolynomials_la-sci_coeff.lo `test -f 'sci_gateway/c/sci_coeff.c' || echo '$(srcdir)/'`sci_gateway/c/sci_coeff.c + +sci_gateway/c/libscipolynomials_la-sci_poly.lo: sci_gateway/c/sci_poly.c + $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscipolynomials_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscipolynomials_la-sci_poly.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_poly.Tpo -c -o sci_gateway/c/libscipolynomials_la-sci_poly.lo `test -f 'sci_gateway/c/sci_poly.c' || echo '$(srcdir)/'`sci_gateway/c/sci_poly.c + $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_poly.Tpo sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_poly.Plo +# $(AM_V_CC)source='sci_gateway/c/sci_poly.c' object='sci_gateway/c/libscipolynomials_la-sci_poly.lo' libtool=yes \ +# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ +# $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscipolynomials_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscipolynomials_la-sci_poly.lo `test -f 'sci_gateway/c/sci_poly.c' || echo '$(srcdir)/'`sci_gateway/c/sci_poly.c + +sci_gateway/c/libscipolynomials_la-sci_triu.lo: sci_gateway/c/sci_triu.c + $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscipolynomials_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscipolynomials_la-sci_triu.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_triu.Tpo -c -o sci_gateway/c/libscipolynomials_la-sci_triu.lo `test -f 'sci_gateway/c/sci_triu.c' || echo '$(srcdir)/'`sci_gateway/c/sci_triu.c + $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_triu.Tpo sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_triu.Plo +# $(AM_V_CC)source='sci_gateway/c/sci_triu.c' object='sci_gateway/c/libscipolynomials_la-sci_triu.lo' libtool=yes \ +# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ +# $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscipolynomials_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscipolynomials_la-sci_triu.lo `test -f 'sci_gateway/c/sci_triu.c' || echo '$(srcdir)/'`sci_gateway/c/sci_triu.c + +sci_gateway/c/libscipolynomials_la-sci_degree.lo: sci_gateway/c/sci_degree.c + $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscipolynomials_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscipolynomials_la-sci_degree.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_degree.Tpo -c -o sci_gateway/c/libscipolynomials_la-sci_degree.lo `test -f 'sci_gateway/c/sci_degree.c' || echo '$(srcdir)/'`sci_gateway/c/sci_degree.c + $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_degree.Tpo sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_degree.Plo +# $(AM_V_CC)source='sci_gateway/c/sci_degree.c' object='sci_gateway/c/libscipolynomials_la-sci_degree.lo' libtool=yes \ +# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \ +# $(AM_V_CC_no)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscipolynomials_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscipolynomials_la-sci_degree.lo `test -f 'sci_gateway/c/sci_degree.c' || echo '$(srcdir)/'`sci_gateway/c/sci_degree.c + +.f.o: + $(AM_V_F77)$(F77COMPILE) -c -o $@ $< + +.f.obj: + $(AM_V_F77)$(F77COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.f.lo: + $(AM_V_F77)$(LTF77COMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + -rm -rf sci_gateway/c/.libs sci_gateway/c/_libs + -rm -rf sci_gateway/fortran/.libs sci_gateway/fortran/_libs + -rm -rf src/fortran/.libs src/fortran/_libs +install-libscipolynomials_la_etcDATA: $(libscipolynomials_la_etc_DATA) + @$(NORMAL_INSTALL) + @list='$(libscipolynomials_la_etc_DATA)'; test -n "$(libscipolynomials_la_etcdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(libscipolynomials_la_etcdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(libscipolynomials_la_etcdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(libscipolynomials_la_etcdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(libscipolynomials_la_etcdir)" || exit $$?; \ + done + +uninstall-libscipolynomials_la_etcDATA: + @$(NORMAL_UNINSTALL) + @list='$(libscipolynomials_la_etc_DATA)'; test -n "$(libscipolynomials_la_etcdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(libscipolynomials_la_etcdir)'; $(am__uninstall_files_from_dir) +install-libscipolynomials_la_rootDATA: $(libscipolynomials_la_root_DATA) + @$(NORMAL_INSTALL) + @list='$(libscipolynomials_la_root_DATA)'; test -n "$(libscipolynomials_la_rootdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(libscipolynomials_la_rootdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(libscipolynomials_la_rootdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(libscipolynomials_la_rootdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(libscipolynomials_la_rootdir)" || exit $$?; \ + done + +uninstall-libscipolynomials_la_rootDATA: + @$(NORMAL_UNINSTALL) + @list='$(libscipolynomials_la_root_DATA)'; test -n "$(libscipolynomials_la_rootdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(libscipolynomials_la_rootdir)'; $(am__uninstall_files_from_dir) +install-libscipolynomials_la_sci_gatewayDATA: $(libscipolynomials_la_sci_gateway_DATA) + @$(NORMAL_INSTALL) + @list='$(libscipolynomials_la_sci_gateway_DATA)'; test -n "$(libscipolynomials_la_sci_gatewaydir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(libscipolynomials_la_sci_gatewaydir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(libscipolynomials_la_sci_gatewaydir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(libscipolynomials_la_sci_gatewaydir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(libscipolynomials_la_sci_gatewaydir)" || exit $$?; \ + done + +uninstall-libscipolynomials_la_sci_gatewayDATA: + @$(NORMAL_UNINSTALL) + @list='$(libscipolynomials_la_sci_gateway_DATA)'; test -n "$(libscipolynomials_la_sci_gatewaydir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(libscipolynomials_la_sci_gatewaydir)'; $(am__uninstall_files_from_dir) + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) check-local +check: check-am +all-am: Makefile $(LTLIBRARIES) $(DATA) all-local +installdirs: + for dir in "$(DESTDIR)$(pkglibdir)" "$(DESTDIR)$(libscipolynomials_la_etcdir)" "$(DESTDIR)$(libscipolynomials_la_rootdir)" "$(DESTDIR)$(libscipolynomials_la_sci_gatewaydir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + -rm -f sci_gateway/c/$(DEPDIR)/$(am__dirstamp) + -rm -f sci_gateway/c/$(am__dirstamp) + -rm -f sci_gateway/fortran/$(DEPDIR)/$(am__dirstamp) + -rm -f sci_gateway/fortran/$(am__dirstamp) + -rm -f src/fortran/$(DEPDIR)/$(am__dirstamp) + -rm -f src/fortran/$(am__dirstamp) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-local \ + clean-noinstLTLIBRARIES clean-pkglibLTLIBRARIES mostlyclean-am + +distclean: distclean-am + -rm -rf sci_gateway/c/$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-local distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-data-local \ + install-libscipolynomials_la_etcDATA \ + install-libscipolynomials_la_rootDATA \ + install-libscipolynomials_la_sci_gatewayDATA + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: install-pkglibLTLIBRARIES + +install-html: install-html-am + +install-html-am: install-html-local + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf sci_gateway/c/$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-libscipolynomials_la_etcDATA \ + uninstall-libscipolynomials_la_rootDATA \ + uninstall-libscipolynomials_la_sci_gatewayDATA \ + uninstall-pkglibLTLIBRARIES + +.MAKE: check-am install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am all-local check check-am \ + check-local clean clean-generic clean-libtool clean-local \ + clean-noinstLTLIBRARIES clean-pkglibLTLIBRARIES cscopelist-am \ + ctags ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-local distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-data-local install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-html-local install-info \ + install-info-am install-libscipolynomials_la_etcDATA \ + install-libscipolynomials_la_rootDATA \ + install-libscipolynomials_la_sci_gatewayDATA install-man \ + install-pdf install-pdf-am install-pkglibLTLIBRARIES \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am \ + uninstall-libscipolynomials_la_etcDATA \ + uninstall-libscipolynomials_la_rootDATA \ + uninstall-libscipolynomials_la_sci_gatewayDATA \ + uninstall-pkglibLTLIBRARIES + + +# This target enables tests for Scilab +check-local: $(top_builddir)/scilab-bin test + if test -d $(mydatadir)/tests; then \ + @COMMAND="try test_run('$(modulename)');catch exit(-1);end;exit(0)"; export LANG=C; $(top_builddir)/bin/scilab -nwni -nb -e "$$COMMAND"; \ + fi +check-code: + if test -f build.xml; then \ + $(ANT) checkstyle; \ + fi + if test -x "$(SPLINT)"; then \ + $(SPLINT) $(SPLINT_OPTIONS) -I$(top_srcdir)/modules/core/includes/ -I$(top_srcdir)/libs/MALLOC/includes/ -I$(top_srcdir)/modules/localization/includes/ $(INCLUDE_FLAGS) $(CHECK_SRC); \ + fi +java: +# Some configurations needs to export JAVA_HOME in the current env + @if test "$(JAVA_HOME)"; then export JAVA_HOME=$(JAVA_HOME); fi; \ + if test -z "$(USEANT)"; then USEANT=0; else USEANT=1; fi; \ + if test -f build.xml -a $$USEANT -eq 1; then \ + $(ANT); \ + fi + +clean-java: +# Some configurations needs to export JAVA_HOME in the current env + @if test "$(JAVA_HOME)"; then export JAVA_HOME=$(JAVA_HOME); fi; \ + if test -z "$(USEANT)"; then USEANT=0; else USEANT=1; fi; \ + if test -f build.xml -a $$USEANT -eq 1; then \ + $(ANT) clean; \ + fi; + +# If the user request for the SWIG generation of the wrappers Java => C/C++ +# We call the target swig-build on the variable SWIG_WRAPPERS + +#swig: $(SWIG_WRAPPERS) +# @SWIG_PACKAGENAME=org.scilab.modules.$(modulename); \ +# SWIG_OUTDIR=src/java/org/scilab/modules/$(modulename)/; \ +# if test -n "$(SWIG_WRAPPERS)"; then \ +# for file in $(SWIG_WRAPPERS) ; do \ +# echo "Swig process of $$file (Java) ..."; \ +# $(SWIG_BIN) $(SWIG_JAVA) -package $$SWIG_PACKAGENAME -outdir $$SWIG_OUTDIR $$file; \ +# done; \ +# fi + +#swig-scilab: $(SWIG_SCILAB_WRAPPERS) +# @SWIG_OUTDIR=src/swig/; \ +# if test -n "$(SWIG_SCILAB_WRAPPERS)"; then \ +# for file in $(SWIG_SCILAB_WRAPPERS) ; do \ +# echo "Swig process of $$file (Scilab) ..."; \ +# $(SWIG_BIN) $(SWIG_SCILAB) -outdir $$SWIG_OUTDIR $$file; \ +# done; \ +# fi + +# If the user request for the SWIG generation of the wrappers Java => C/C++ +# We call the target swig-build on the variable SWIG_WRAPPERS + +#giws: $(GIWS_WRAPPERS) +# @GIWS_OUTPUTDIR=src/jni/; \ +# MANDATORY_OPTIONS="--throws-exception-on-error --description-file"; \ +# if test -n "$(GIWS_WRAPPERS)"; then \ +# for file in $(GIWS_WRAPPERS) ; do \ +# echo "GIWS process of $$file ..."; \ +# if test -z "$(GIWS_OPTIONS)"; then \ +# $(GIWS_BIN) --disable-return-size-array --output-dir $$GIWS_OUTPUTDIR $$MANDATORY_OPTIONS $$file; \ +# else \ +# echo "Custom GIWS call with '$$GIWS_OPTIONS'"; \ +# $(GIWS_BIN) $$GIWS_OPTIONS --output-dir $$GIWS_OUTPUTDIR $$MANDATORY_OPTIONS $$file; \ +# fi \ +# done; \ +# fi + +#giws-exception: +# @GIWS_OUTPUTDIR=src/jni/;\ +# echo "GIWS: Generation of exception class ..."; \ +# $(GIWS_BIN) --generate-exception-class --output-dir $$GIWS_OUTPUTDIR + +macros: + -@( if test ! -x $(top_builddir)/scilab-bin; then \ + echo "Error : Cannot build $< : Scilab has not been built"; \ + else \ + $(top_builddir)/bin/scilab -ns -nwni -e "exec('macros/buildmacros.sce');quit;";\ + fi) + +# Removes the macros +clean-macros: +# Removes macros (*.bin generated from .sci) + @for dir in $(MACRODIRS) $(MACROSDIRSEXT) ; do \ + echo "rm -f $(builddir)/$$dir/$(MACROBINMASK)"; \ + rm -f $(builddir)/$$dir/$(MACROBINMASK); \ + done + +test: +# More tests could be added here + @if test -z "$(USEANT)"; then USEANT=0; else USEANT=1; fi; \ + if test -f build.xml -a $$USEANT -eq 1; then \ + $(ANT) test; \ + fi + +all-local: $(TARGETS_ALL) + +.sci.bin: + -@( if test ! -x $(top_builddir)/scilab-bin; then \ + echo "Error : Cannot build $< : Scilab has not been build"; \ + else \ + echo "Creating $@"; \ + $(top_builddir)/bin/scilab -ns -nwni -e "exec('$(abs_srcdir)/$<');save('$(abs_srcdir)/$@');exit;"; \ + fi ) + +install-html-local: + +install-data-local-local: +# Mainly for javasci + @if test -d $(srcdir)/javadoc; then \ + cp -R $(srcdir)/javadoc $(DESTDIR)/$(mydatadir)/; \ + fi +# If the user wants the help sources to be installed + @echo "-------- Install of XML sources of help files --------"; \ + for lang in $(ALL_LINGUAS); do \ + if test -d $(srcdir)/help/$$lang; then \ + $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/help/$$lang && \ + if ls -lLd $(srcdir)/help/$$lang/$(DOCMASKXML) >/dev/null 2>&1; then \ + for file in $(srcdir)/help/$$lang/$(DOCMASKXML) ; do \ + echo "$(INSTALL_DATA) $$file $(DESTDIR)$(pkgdocdir)/help/$$lang" ; \ + $(INSTALL_DATA) "$$file" $(DESTDIR)$(pkgdocdir)/help/$$lang ; \ + done ; \ + fi; \ + fi; \ + done; \ + @echo "-------- Install of MathML sources --------"; \ + if test -d $(srcdir)/help/mml/; then \ + $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/help/mml/ && \ + if ls -lLd $(srcdir)/help/mml/$(DOCMASKMML) >/dev/null 2>&1; then \ + for file in $(srcdir)/help/mml/$(DOCMASKMML) ; do \ + echo "$(INSTALL_DATA) $$file $(DESTDIR)$(pkgdocdir)/help/mml" ; \ + $(INSTALL_DATA) "$$file" $(DESTDIR)$(pkgdocdir)/help/mml ; \ + done ; \ + fi; \ + fi +install-data-local: +# Install the tests + @echo "-------- Install tests (if any) --------"; \ + for dir in $(TESTS_DIR) $(TESTS_DIREXT) ; do \ + if test -d $(srcdir)/$$dir/; then \ + $(mkinstalldirs) $(DESTDIR)$(pkgmacrosdir)/$$dir && \ + for file in `find $(srcdir)/$$dir | sed "s|^$(srcdir)/$$dir||" 2>/dev/null`; do \ + if test -d "$(srcdir)/$$dir/$$file"; then \ + echo $(mkinstalldirs) $(DESTDIR)$(pkgmacrosdir)/$$dir/$$file; \ + $(mkinstalldirs) "$(DESTDIR)$(pkgmacrosdir)/$$dir/$$file"; \ + else \ + echo "$(INSTALL_DATA) $(srcdir)/$$dir/$$file $(DESTDIR)$(pkgmacrosdir)/`dirname $$dir/$$file`" ; \ + $(INSTALL_DATA) "$(srcdir)/$$dir/$$file" "$(DESTDIR)$(pkgmacrosdir)/`dirname $$dir/$$file`" ; \ + fi \ + done; \ + fi; \ + done +# Install the help chapter + @echo "-------- Install the help chapter (if any) --------"; \ + for lang in $(HELP_CHAPTERLANG); do \ + HELPFILE=$(srcdir)/$(HELP_CHAPTERDIR)$$lang/$(HELP_CHAPTERFILE); \ + if test -f $$HELPFILE; then \ + echo $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/$(HELP_CHAPTERDIR)/$$lang/; \ + $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/$(HELP_CHAPTERDIR)/$$lang/; \ + echo $(INSTALL_DATA) $$HELPFILE $(DESTDIR)$(pkgdocdir)/$$HELPFILE; \ + $(INSTALL_DATA) $$HELPFILE $(DESTDIR)$(pkgdocdir)/$$HELPFILE; \ + fi; \ + done +# Install the demos & examples + @echo "-------- Install demos & examples (if any) --------"; \ + for dir in $(DEMOS_DIR) $(DEMOS_DIREXT) $(EXAMPLES_DIR) $(EXAMPLES_DIREXT) ; do \ + if test -d $(srcdir)/$$dir/; then \ + $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/$$dir && \ + for file in `find $(srcdir)/$$dir | sed "s|^$(srcdir)/$$dir||" 2>/dev/null`; do \ + if test -d "$(srcdir)/$$dir/$$file"; then \ + echo $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/$$dir/$$file; \ + $(mkinstalldirs) "$(DESTDIR)$(pkgdocdir)/$$dir/$$file"; \ + else \ + echo "$(INSTALL_DATA) $(srcdir)/$$dir/$$file $(DESTDIR)$(pkgdocdir)/`dirname $$dir/$$file`" ; \ + $(INSTALL_DATA) "$(srcdir)/$$dir/$$file" "$(DESTDIR)$(pkgdocdir)/`dirname $$dir/$$file`" ; \ + fi \ + done; \ + fi; \ + done +# Install the macros + @echo "-------- Install macros (if any) --------"; \ + for dir in $(MACRODIRS) $(MACROSDIRSEXT) ; do \ + $(mkinstalldirs) $(DESTDIR)$(pkgmacrosdir)/$$dir && \ + if test -d $(srcdir)/$$dir/; then \ + FILELIST="$(srcdir)/$$dir/$(MACROMASK) $(srcdir)/$$dir/$(MACROBINMASK) $(srcdir)/$$dir/$(MACROBUILDMASK) $(srcdir)/$$dir/names $(srcdir)/$$dir/lib";\ + if test -n "$(MACROSSPECIALEXT)"; then \ + specialExtDir=""; \ + for specialExt in $(MACROSSPECIALEXT); do \ + specialExtDir="$$specialExtDir $(srcdir)/$$dir/$$specialExt"; \ + done; \ + FILELIST="$$FILELIST $$specialExtDir"; \ + fi; \ + for file in `ls -1 $$FILELIST 2>/dev/null`; do \ + echo "$(INSTALL_DATA) $$file $(DESTDIR)$(pkgmacrosdir)/$$dir" ; \ + $(INSTALL_DATA) "$$file" $(DESTDIR)$(pkgmacrosdir)/$$dir ; \ + done; \ + fi; \ + done +# Install java files (.jar) + @if ls -lLd $(srcdir)/$(JARDIR)$(JARMASK) >/dev/null 2>&1; then \ + echo "-------- Install jar files --------"; \ + $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/$(JARDIR); \ + for file in $(srcdir)/$(JARDIR)$(JARMASK); do\ + echo "$(INSTALL_DATA) $$file $(DESTDIR)$(pkgdocdir)/$(JARDIR)" ; \ + $(INSTALL_DATA) "$$file" $(DESTDIR)$(pkgdocdir)/$(JARDIR) ; \ + done ; \ + fi + +########### CLEAN ################### +# Clean help (generated automatically by Scilab) +# It used to clean the macro (clean-macros) but this was causing +# make clean && make to fail Scilab startup +clean-local: clean-java +#clean-local: + +distclean-local: + rm -f $(builddir)/help/*/.last_successful_build_javaHelp $(builddir)/help/*/.list_* + +.PHONY: macros java swig giws + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/modules/polynomials/Makefile.am b/modules/polynomials/Makefile.am new file mode 100755 index 000000000..40c55144a --- /dev/null +++ b/modules/polynomials/Makefile.am @@ -0,0 +1,147 @@ +# Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +# Copyright (C) 2006 - INRIA - Sylvestre LEDRU +# +# This file is distributed under the same license as the Scilab package. + +POLYNOMIALS_FORTRAN_SOURCES = src/fortran/residu.f \ +src/fortran/imptra.f \ +src/fortran/dmpadj.f \ +src/fortran/impins.f \ +src/fortran/dpmul1.f \ +src/fortran/wprxc.f \ +src/fortran/dmpcnc.f \ +src/fortran/wmpmu.f \ +src/fortran/mpinsp.f \ +src/fortran/impext.f \ +src/fortran/recbez.f \ +src/fortran/sfact1.f \ +src/fortran/dpodiv.f \ +src/fortran/dmptra.f \ +src/fortran/dmpins.f \ +src/fortran/dpsimp.f \ +src/fortran/dmp2pm.f \ +src/fortran/dmpext.f \ +src/fortran/wpmul.f \ +src/fortran/bezstp.f \ +src/fortran/wmpad.f \ +src/fortran/dprxc.f \ +src/fortran/quadsd.f \ +src/fortran/wmpadj.f \ +src/fortran/dmpmu.f \ +src/fortran/wpmul1.f \ +src/fortran/wmpcnc.f \ +src/fortran/mptri.f \ +src/fortran/horner.f \ +src/fortran/idegre.f \ +src/fortran/fxshfr.f \ +src/fortran/mpdiag.f \ +src/fortran/dmpcle.f \ +src/fortran/rpoly.f \ +src/fortran/wpodiv.f \ +src/fortran/wdmpmu.f \ +src/fortran/wmptra.f \ +src/fortran/wmpins.f \ +src/fortran/mpdegr.f \ +src/fortran/ddmpev.f \ +src/fortran/realit.f \ +src/fortran/dpmul.f \ +src/fortran/sfact2.f \ +src/fortran/dmpad.f \ +src/fortran/nextk.f \ +src/fortran/blktit.f \ +src/fortran/dimin.f \ +src/fortran/newest.f \ +src/fortran/dwmpmu.f \ +src/fortran/impcnc.f \ +src/fortran/wdmpad.f \ +src/fortran/wmpcle.f \ +src/fortran/quadit.f \ +src/fortran/quad.f \ +src/fortran/calcsc.f \ +src/fortran/writebufsfact.f \ +src/fortran/chkvar.f + + +GATEWAY_C_SOURCES = sci_gateway/c/gw_polynomials.c \ +sci_gateway/c/sci_sfact.c \ +sci_gateway/c/sci_cleanp.c \ +sci_gateway/c/sci_sum.c \ +sci_gateway/c/sci_prod.c \ +sci_gateway/c/sci_diag.c \ +sci_gateway/c/sci_simp_mode.c \ +sci_gateway/c/sci_roots.c \ +sci_gateway/c/sci_varn.c \ +sci_gateway/c/sci_simp.c \ +sci_gateway/c/sci_bezout.c \ +sci_gateway/c/sci_tril.c \ +sci_gateway/c/sci_div.c \ +sci_gateway/c/sci_coeff.c \ +sci_gateway/c/sci_poly.c \ +sci_gateway/c/sci_triu.c \ +sci_gateway/c/sci_degree.c + +GATEWAY_FORTRAN_SOURCES = sci_gateway/fortran/sci_f_simp.f \ +sci_gateway/fortran/sci_f_poly.f \ +sci_gateway/fortran/sci_f_varn.f \ +sci_gateway/fortran/sci_f_sum.f \ +sci_gateway/fortran/sci_f_div.f \ +sci_gateway/fortran/sci_f_diag.f \ +sci_gateway/fortran/sci_f_prod.f \ +sci_gateway/fortran/polops.f \ +sci_gateway/fortran/sci_f_bezout.f \ +sci_gateway/fortran/sci_f_triu_tril.f \ +sci_gateway/fortran/sci_f_roots.f \ +sci_gateway/fortran/sci_f_psimp.f \ +sci_gateway/fortran/sci_f_rsimp.f \ +sci_gateway/fortran/sci_f_coeff.f \ +sci_gateway/fortran/sci_f_degree.f \ +sci_gateway/fortran/sci_f_pclean.f \ +sci_gateway/fortran/sci_f_sfact.f \ +sci_gateway/fortran/sci_f_simpmd.f + + +libscipolynomials_la_CPPFLAGS = -I$(srcdir)/includes/ \ + -I$(top_srcdir)/modules/api_scilab/includes/ \ + -I$(top_srcdir)/modules/output_stream/includes/ \ + -I$(top_srcdir)/modules/localization/includes/ \ + $(AM_CPPFLAGS) + +if MAINTAINER_MODE +pkglib_LTLIBRARIES = libscipolynomials.la +noinst_LTLIBRARIES = libscipolynomials-algo.la +else +noinst_LTLIBRARIES = libscipolynomials-algo.la libscipolynomials.la +endif + + + +libscipolynomials_algo_la_SOURCES = $(POLYNOMIALS_FORTRAN_SOURCES) +libscipolynomials_la_SOURCES = $(GATEWAY_FORTRAN_SOURCES) $(GATEWAY_C_SOURCES) +libscipolynomials_algo_la_CPPFLAGS = $(libscipolynomials_la_CPPFLAGS) + +# For the code check (splint) +CHECK_SRC= ) $(GATEWAY_C_SOURCES) +INCLUDE_FLAGS = $(libscipolynomials_la_CPPFLAGS) + +libscipolynomials_la_LIBADD = libscipolynomials-algo.la + +#### Target ###### +modulename=polynomials + + +#### polynomials : Conf files #### +libscipolynomials_la_rootdir = $(mydatadir) +libscipolynomials_la_root_DATA = license.txt + + +#### polynomials : init scripts #### +libscipolynomials_la_etcdir = $(mydatadir)/etc +libscipolynomials_la_etc_DATA = etc/polynomials.quit etc/polynomials.start + + +#### polynomials : gateway declaration #### +libscipolynomials_la_sci_gatewaydir = $(mydatadir)/sci_gateway +libscipolynomials_la_sci_gateway_DATA = sci_gateway/polynomials_gateway.xml + + +include $(top_srcdir)/Makefile.incl.am diff --git a/modules/polynomials/Makefile.in b/modules/polynomials/Makefile.in new file mode 100755 index 000000000..ff94ff24a --- /dev/null +++ b/modules/polynomials/Makefile.in @@ -0,0 +1,1829 @@ +# Makefile.in generated by automake 1.14.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2013 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +# Copyright (C) 2006 - INRIA - Sylvestre LEDRU +# +# This file is distributed under the same license as the Scilab package. + +# Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +# Copyright (C) 2006-2008 - INRIA - Sylvestre LEDRU <sylvestre.ledru@inria.fr> +# Copyright (C) 2008 - INRIA - Pierre MARECHAL <pierre.marechal@inria.fr> +# +# 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 +# + +########## +### Makefile included stuff +### Target, variable, suffixes which are supposed to be useful in every makefile.am +########## + + +VPATH = @srcdir@ +am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +DIST_COMMON = $(top_srcdir)/Makefile.incl.am $(srcdir)/Makefile.in \ + $(srcdir)/Makefile.am $(top_srcdir)/config/mkinstalldirs \ + $(top_srcdir)/config/depcomp +@NEED_JAVA_TRUE@am__append_1 = java +subdir = modules/polynomials +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/backtrace.m4 \ + $(top_srcdir)/m4/compiler.m4 $(top_srcdir)/m4/curl.m4 \ + $(top_srcdir)/m4/docbook.m4 $(top_srcdir)/m4/doxygen.m4 \ + $(top_srcdir)/m4/fftw.m4 $(top_srcdir)/m4/fortran.m4 \ + $(top_srcdir)/m4/giws.m4 $(top_srcdir)/m4/hdf5.m4 \ + $(top_srcdir)/m4/intel_compiler.m4 \ + $(top_srcdir)/m4/java-thirdparty.m4 $(top_srcdir)/m4/java.m4 \ + $(top_srcdir)/m4/largefile.m4 $(top_srcdir)/m4/lib-ld.m4 \ + $(top_srcdir)/m4/libsmath.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/libxml2.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/macosx.m4 \ + $(top_srcdir)/m4/mpi.m4 $(top_srcdir)/m4/ocaml.m4 \ + $(top_srcdir)/m4/pcre.m4 $(top_srcdir)/m4/pkg.m4 \ + $(top_srcdir)/m4/relocatable.m4 $(top_srcdir)/m4/swig.m4 \ + $(top_srcdir)/m4/symlinks.m4 $(top_srcdir)/m4/tcltk.m4 \ + $(top_srcdir)/m4/umfpack.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/modules/core/includes/machine.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(pkglibdir)" \ + "$(DESTDIR)$(libscipolynomials_la_etcdir)" \ + "$(DESTDIR)$(libscipolynomials_la_rootdir)" \ + "$(DESTDIR)$(libscipolynomials_la_sci_gatewaydir)" +LTLIBRARIES = $(noinst_LTLIBRARIES) $(pkglib_LTLIBRARIES) +libscipolynomials_algo_la_LIBADD = +am__dirstamp = $(am__leading_dot)dirstamp +am__objects_1 = src/fortran/residu.lo src/fortran/imptra.lo \ + src/fortran/dmpadj.lo src/fortran/impins.lo \ + src/fortran/dpmul1.lo src/fortran/wprxc.lo \ + src/fortran/dmpcnc.lo src/fortran/wmpmu.lo \ + src/fortran/mpinsp.lo src/fortran/impext.lo \ + src/fortran/recbez.lo src/fortran/sfact1.lo \ + src/fortran/dpodiv.lo src/fortran/dmptra.lo \ + src/fortran/dmpins.lo src/fortran/dpsimp.lo \ + src/fortran/dmp2pm.lo src/fortran/dmpext.lo \ + src/fortran/wpmul.lo src/fortran/bezstp.lo \ + src/fortran/wmpad.lo src/fortran/dprxc.lo \ + src/fortran/quadsd.lo src/fortran/wmpadj.lo \ + src/fortran/dmpmu.lo src/fortran/wpmul1.lo \ + src/fortran/wmpcnc.lo src/fortran/mptri.lo \ + src/fortran/horner.lo src/fortran/idegre.lo \ + src/fortran/fxshfr.lo src/fortran/mpdiag.lo \ + src/fortran/dmpcle.lo src/fortran/rpoly.lo \ + src/fortran/wpodiv.lo src/fortran/wdmpmu.lo \ + src/fortran/wmptra.lo src/fortran/wmpins.lo \ + src/fortran/mpdegr.lo src/fortran/ddmpev.lo \ + src/fortran/realit.lo src/fortran/dpmul.lo \ + src/fortran/sfact2.lo src/fortran/dmpad.lo \ + src/fortran/nextk.lo src/fortran/blktit.lo \ + src/fortran/dimin.lo src/fortran/newest.lo \ + src/fortran/dwmpmu.lo src/fortran/impcnc.lo \ + src/fortran/wdmpad.lo src/fortran/wmpcle.lo \ + src/fortran/quadit.lo src/fortran/quad.lo \ + src/fortran/calcsc.lo src/fortran/writebufsfact.lo \ + src/fortran/chkvar.lo +am_libscipolynomials_algo_la_OBJECTS = $(am__objects_1) +libscipolynomials_algo_la_OBJECTS = \ + $(am_libscipolynomials_algo_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +@MAINTAINER_MODE_FALSE@am_libscipolynomials_algo_la_rpath = +@MAINTAINER_MODE_TRUE@am_libscipolynomials_algo_la_rpath = +libscipolynomials_la_DEPENDENCIES = libscipolynomials-algo.la +am__objects_2 = sci_gateway/fortran/sci_f_simp.lo \ + sci_gateway/fortran/sci_f_poly.lo \ + sci_gateway/fortran/sci_f_varn.lo \ + sci_gateway/fortran/sci_f_sum.lo \ + sci_gateway/fortran/sci_f_div.lo \ + sci_gateway/fortran/sci_f_diag.lo \ + sci_gateway/fortran/sci_f_prod.lo \ + sci_gateway/fortran/polops.lo \ + sci_gateway/fortran/sci_f_bezout.lo \ + sci_gateway/fortran/sci_f_triu_tril.lo \ + sci_gateway/fortran/sci_f_roots.lo \ + sci_gateway/fortran/sci_f_psimp.lo \ + sci_gateway/fortran/sci_f_rsimp.lo \ + sci_gateway/fortran/sci_f_coeff.lo \ + sci_gateway/fortran/sci_f_degree.lo \ + sci_gateway/fortran/sci_f_pclean.lo \ + sci_gateway/fortran/sci_f_sfact.lo \ + sci_gateway/fortran/sci_f_simpmd.lo +am__objects_3 = sci_gateway/c/libscipolynomials_la-gw_polynomials.lo \ + sci_gateway/c/libscipolynomials_la-sci_sfact.lo \ + sci_gateway/c/libscipolynomials_la-sci_cleanp.lo \ + sci_gateway/c/libscipolynomials_la-sci_sum.lo \ + sci_gateway/c/libscipolynomials_la-sci_prod.lo \ + sci_gateway/c/libscipolynomials_la-sci_diag.lo \ + sci_gateway/c/libscipolynomials_la-sci_simp_mode.lo \ + sci_gateway/c/libscipolynomials_la-sci_roots.lo \ + sci_gateway/c/libscipolynomials_la-sci_varn.lo \ + sci_gateway/c/libscipolynomials_la-sci_simp.lo \ + sci_gateway/c/libscipolynomials_la-sci_bezout.lo \ + sci_gateway/c/libscipolynomials_la-sci_tril.lo \ + sci_gateway/c/libscipolynomials_la-sci_div.lo \ + sci_gateway/c/libscipolynomials_la-sci_coeff.lo \ + sci_gateway/c/libscipolynomials_la-sci_poly.lo \ + sci_gateway/c/libscipolynomials_la-sci_triu.lo \ + sci_gateway/c/libscipolynomials_la-sci_degree.lo +am_libscipolynomials_la_OBJECTS = $(am__objects_2) $(am__objects_3) +libscipolynomials_la_OBJECTS = $(am_libscipolynomials_la_OBJECTS) +@MAINTAINER_MODE_FALSE@am_libscipolynomials_la_rpath = +@MAINTAINER_MODE_TRUE@am_libscipolynomials_la_rpath = -rpath \ +@MAINTAINER_MODE_TRUE@ $(pkglibdir) +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/modules/core/includes +depcomp = $(SHELL) $(top_srcdir)/config/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +F77COMPILE = $(F77) $(AM_FFLAGS) $(FFLAGS) +LTF77COMPILE = $(LIBTOOL) $(AM_V_lt) --tag=F77 $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(F77) $(AM_FFLAGS) $(FFLAGS) +AM_V_F77 = $(am__v_F77_@AM_V@) +am__v_F77_ = $(am__v_F77_@AM_DEFAULT_V@) +am__v_F77_0 = @echo " F77 " $@; +am__v_F77_1 = +F77LD = $(F77) +F77LINK = $(LIBTOOL) $(AM_V_lt) --tag=F77 $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(F77LD) $(AM_FFLAGS) $(FFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_F77LD = $(am__v_F77LD_@AM_V@) +am__v_F77LD_ = $(am__v_F77LD_@AM_DEFAULT_V@) +am__v_F77LD_0 = @echo " F77LD " $@; +am__v_F77LD_1 = +SOURCES = $(libscipolynomials_algo_la_SOURCES) \ + $(libscipolynomials_la_SOURCES) +DIST_SOURCES = $(libscipolynomials_algo_la_SOURCES) \ + $(libscipolynomials_la_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +DATA = $(libscipolynomials_la_etc_DATA) \ + $(libscipolynomials_la_root_DATA) \ + $(libscipolynomials_la_sci_gateway_DATA) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ALL_LINGUAS = @ALL_LINGUAS@ +ALL_LINGUAS_DOC = @ALL_LINGUAS_DOC@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +ANT = @ANT@ +ANTLR = @ANTLR@ +AR = @AR@ +ARPACK_LIBS = @ARPACK_LIBS@ +ASM3 = @ASM3@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AVALON_FRAMEWORK = @AVALON_FRAMEWORK@ +AWK = @AWK@ +BATIK = @BATIK@ +BLAS_LIBS = @BLAS_LIBS@ +CC = @CC@ +CCACHE = @CCACHE@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CHECKSTYLE = @CHECKSTYLE@ +COBERTURA = @COBERTURA@ +COMMONS_BEANUTILS = @COMMONS_BEANUTILS@ +COMMONS_IO = @COMMONS_IO@ +COMMONS_LOGGING = @COMMONS_LOGGING@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CURL_CFLAGS = @CURL_CFLAGS@ +CURL_CONFIG = @CURL_CONFIG@ +CURL_LIBS = @CURL_LIBS@ +CURL_VERSION = @CURL_VERSION@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEMOTOOLS_ENABLE = @DEMOTOOLS_ENABLE@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DOCBOOK_ROOT = @DOCBOOK_ROOT@ +DOXYGEN_BIN = @DOXYGEN_BIN@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +ECJ = @ECJ@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +FFTW3_LIB = @FFTW3_LIB@ +FFTW_ENABLE = @FFTW_ENABLE@ +FGREP = @FGREP@ +FLEXDOCK = @FLEXDOCK@ +FLIBS = @FLIBS@ +FOP = @FOP@ +FREEHEP_GRAPHICS2D = @FREEHEP_GRAPHICS2D@ +FREEHEP_GRAPHICSIO = @FREEHEP_GRAPHICSIO@ +FREEHEP_GRAPHICSIO_EMF = @FREEHEP_GRAPHICSIO_EMF@ +FREEHEP_IO = @FREEHEP_IO@ +FREEHEP_UTIL = @FREEHEP_UTIL@ +GENHTML = @GENHTML@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GIWS_BIN = @GIWS_BIN@ +GLUEGEN2_RT = @GLUEGEN2_RT@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GRAPHICS_ENABLE = @GRAPHICS_ENABLE@ +GREP = @GREP@ +GUI_ENABLE = @GUI_ENABLE@ +HDF5_CFLAGS = @HDF5_CFLAGS@ +HDF5_LIBS = @HDF5_LIBS@ +HELP_ENABLE = @HELP_ENABLE@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +JAR = @JAR@ +JAVA = @JAVA@ +JAVAC = @JAVAC@ +JAVAC_DEBUG = @JAVAC_DEBUG@ +JAVADOC = @JAVADOC@ +JAVAH = @JAVAH@ +JAVASCI_ENABLE = @JAVASCI_ENABLE@ +JAVA_ENABLE = @JAVA_ENABLE@ +JAVA_G = @JAVA_G@ +JAVA_HOME = @JAVA_HOME@ +JAVA_JNI_INCLUDE = @JAVA_JNI_INCLUDE@ +JAVA_JNI_LIBS = @JAVA_JNI_LIBS@ +JDB = @JDB@ +JEUCLID_CORE = @JEUCLID_CORE@ +JGRAPHX = @JGRAPHX@ +JHALL = @JHALL@ +JLATEXMATH = @JLATEXMATH@ +JLATEXMATH_FOP = @JLATEXMATH_FOP@ +JOGL2 = @JOGL2@ +JROSETTA_API = @JROSETTA_API@ +JROSETTA_ENGINE = @JROSETTA_ENGINE@ +JUNIT4 = @JUNIT4@ +LAPACK_LIBS = @LAPACK_LIBS@ +LCOV = @LCOV@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBM = @LIBM@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LOGGING_LEVEL = @LOGGING_LEVEL@ +LOOKS = @LOOKS@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MATIO_CFLAGS = @MATIO_CFLAGS@ +MATIO_ENABLE = @MATIO_ENABLE@ +MATIO_LIBS = @MATIO_LIBS@ +MKDIR_P = @MKDIR_P@ +MPI_ENABLE = @MPI_ENABLE@ +MSGCAT = @MSGCAT@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OCAMLC = @OCAMLC@ +OCAMLDEP = @OCAMLDEP@ +OCAMLLEX = @OCAMLLEX@ +OCAMLOPT = @OCAMLOPT@ +OCAMLYACC = @OCAMLYACC@ +OPENMPI_CC = @OPENMPI_CC@ +OPENMPI_CFLAGS = @OPENMPI_CFLAGS@ +OPENMPI_CXX = @OPENMPI_CXX@ +OPENMPI_CXXFLAGS = @OPENMPI_CXXFLAGS@ +OPENMPI_LIBS = @OPENMPI_LIBS@ +OPENMP_CFLAGS = @OPENMP_CFLAGS@ +OPENMP_CXXFLAGS = @OPENMP_CXXFLAGS@ +OPENMP_ENABLE = @OPENMP_ENABLE@ +OPENMP_LIBS = @OPENMP_LIBS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PCRE_CFLAGS = @PCRE_CFLAGS@ +PCRE_CONFIG = @PCRE_CONFIG@ +PCRE_LIBS = @PCRE_LIBS@ +PCRE_VERSION = @PCRE_VERSION@ +PKG_CONFIG = @PKG_CONFIG@ +POSUB = @POSUB@ +POW_LIB = @POW_LIB@ +PYTHON = @PYTHON@ +RANLIB = @RANLIB@ +RELOCATABLE = @RELOCATABLE@ +RT_LIB = @RT_LIB@ +SAXON = @SAXON@ +SCILAB_BINARY_VERSION = @SCILAB_BINARY_VERSION@ +SCILAB_LIBRARY_VERSION = @SCILAB_LIBRARY_VERSION@ +SCILAB_VERSION_MAINTENANCE = @SCILAB_VERSION_MAINTENANCE@ +SCILAB_VERSION_MAJOR = @SCILAB_VERSION_MAJOR@ +SCILAB_VERSION_MINOR = @SCILAB_VERSION_MINOR@ +SCIRENDERER = @SCIRENDERER@ +SCIRENDERER_CP = @SCIRENDERER_CP@ +SCI_CFLAGS = @SCI_CFLAGS@ +SCI_CXXFLAGS = @SCI_CXXFLAGS@ +SCI_FFLAGS = @SCI_FFLAGS@ +SCI_LDFLAGS = @SCI_LDFLAGS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SET_RELOCATABLE = @SET_RELOCATABLE@ +SHELL = @SHELL@ +SKINLF = @SKINLF@ +SPLINT = @SPLINT@ +STRIP = @STRIP@ +SWIG_BIN = @SWIG_BIN@ +SWIG_JAVA = @SWIG_JAVA@ +SWIG_RUNTIME_LIBS_DIR = @SWIG_RUNTIME_LIBS_DIR@ +SWIG_SCILAB = @SWIG_SCILAB@ +TCLTK_LIBS = @TCLTK_LIBS@ +TCL_INC_PATH = @TCL_INC_PATH@ +TK_INC_PATH = @TK_INC_PATH@ +UMFPACK_CFLAGS = @UMFPACK_CFLAGS@ +UMFPACK_ENABLE = @UMFPACK_ENABLE@ +UMFPACK_LIB = @UMFPACK_LIB@ +USE_NLS = @USE_NLS@ +VERSION = @VERSION@ +WITH_OCAML = @WITH_OCAML@ +WITH_TKSCI = @WITH_TKSCI@ +XCOS_ENABLE = @XCOS_ENABLE@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +XMKMF = @XMKMF@ +XMLGRAPHICS_COMMONS = @XMLGRAPHICS_COMMONS@ +XML_APIS_EXT = @XML_APIS_EXT@ +XML_CONFIG = @XML_CONFIG@ +XML_FLAGS = @XML_FLAGS@ +XML_LIBS = @XML_LIBS@ +XML_VERSION = @XML_VERSION@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +ac_ct_F77 = @ac_ct_F77@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +cxx_present = @cxx_present@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +POLYNOMIALS_FORTRAN_SOURCES = src/fortran/residu.f \ +src/fortran/imptra.f \ +src/fortran/dmpadj.f \ +src/fortran/impins.f \ +src/fortran/dpmul1.f \ +src/fortran/wprxc.f \ +src/fortran/dmpcnc.f \ +src/fortran/wmpmu.f \ +src/fortran/mpinsp.f \ +src/fortran/impext.f \ +src/fortran/recbez.f \ +src/fortran/sfact1.f \ +src/fortran/dpodiv.f \ +src/fortran/dmptra.f \ +src/fortran/dmpins.f \ +src/fortran/dpsimp.f \ +src/fortran/dmp2pm.f \ +src/fortran/dmpext.f \ +src/fortran/wpmul.f \ +src/fortran/bezstp.f \ +src/fortran/wmpad.f \ +src/fortran/dprxc.f \ +src/fortran/quadsd.f \ +src/fortran/wmpadj.f \ +src/fortran/dmpmu.f \ +src/fortran/wpmul1.f \ +src/fortran/wmpcnc.f \ +src/fortran/mptri.f \ +src/fortran/horner.f \ +src/fortran/idegre.f \ +src/fortran/fxshfr.f \ +src/fortran/mpdiag.f \ +src/fortran/dmpcle.f \ +src/fortran/rpoly.f \ +src/fortran/wpodiv.f \ +src/fortran/wdmpmu.f \ +src/fortran/wmptra.f \ +src/fortran/wmpins.f \ +src/fortran/mpdegr.f \ +src/fortran/ddmpev.f \ +src/fortran/realit.f \ +src/fortran/dpmul.f \ +src/fortran/sfact2.f \ +src/fortran/dmpad.f \ +src/fortran/nextk.f \ +src/fortran/blktit.f \ +src/fortran/dimin.f \ +src/fortran/newest.f \ +src/fortran/dwmpmu.f \ +src/fortran/impcnc.f \ +src/fortran/wdmpad.f \ +src/fortran/wmpcle.f \ +src/fortran/quadit.f \ +src/fortran/quad.f \ +src/fortran/calcsc.f \ +src/fortran/writebufsfact.f \ +src/fortran/chkvar.f + +GATEWAY_C_SOURCES = sci_gateway/c/gw_polynomials.c \ +sci_gateway/c/sci_sfact.c \ +sci_gateway/c/sci_cleanp.c \ +sci_gateway/c/sci_sum.c \ +sci_gateway/c/sci_prod.c \ +sci_gateway/c/sci_diag.c \ +sci_gateway/c/sci_simp_mode.c \ +sci_gateway/c/sci_roots.c \ +sci_gateway/c/sci_varn.c \ +sci_gateway/c/sci_simp.c \ +sci_gateway/c/sci_bezout.c \ +sci_gateway/c/sci_tril.c \ +sci_gateway/c/sci_div.c \ +sci_gateway/c/sci_coeff.c \ +sci_gateway/c/sci_poly.c \ +sci_gateway/c/sci_triu.c \ +sci_gateway/c/sci_degree.c + +GATEWAY_FORTRAN_SOURCES = sci_gateway/fortran/sci_f_simp.f \ +sci_gateway/fortran/sci_f_poly.f \ +sci_gateway/fortran/sci_f_varn.f \ +sci_gateway/fortran/sci_f_sum.f \ +sci_gateway/fortran/sci_f_div.f \ +sci_gateway/fortran/sci_f_diag.f \ +sci_gateway/fortran/sci_f_prod.f \ +sci_gateway/fortran/polops.f \ +sci_gateway/fortran/sci_f_bezout.f \ +sci_gateway/fortran/sci_f_triu_tril.f \ +sci_gateway/fortran/sci_f_roots.f \ +sci_gateway/fortran/sci_f_psimp.f \ +sci_gateway/fortran/sci_f_rsimp.f \ +sci_gateway/fortran/sci_f_coeff.f \ +sci_gateway/fortran/sci_f_degree.f \ +sci_gateway/fortran/sci_f_pclean.f \ +sci_gateway/fortran/sci_f_sfact.f \ +sci_gateway/fortran/sci_f_simpmd.f + +libscipolynomials_la_CPPFLAGS = -I$(srcdir)/includes/ \ + -I$(top_srcdir)/modules/api_scilab/includes/ \ + -I$(top_srcdir)/modules/output_stream/includes/ \ + -I$(top_srcdir)/modules/localization/includes/ \ + $(AM_CPPFLAGS) + +@MAINTAINER_MODE_TRUE@pkglib_LTLIBRARIES = libscipolynomials.la +@MAINTAINER_MODE_FALSE@noinst_LTLIBRARIES = libscipolynomials-algo.la libscipolynomials.la +@MAINTAINER_MODE_TRUE@noinst_LTLIBRARIES = libscipolynomials-algo.la +libscipolynomials_algo_la_SOURCES = $(POLYNOMIALS_FORTRAN_SOURCES) +libscipolynomials_la_SOURCES = $(GATEWAY_FORTRAN_SOURCES) $(GATEWAY_C_SOURCES) +libscipolynomials_algo_la_CPPFLAGS = $(libscipolynomials_la_CPPFLAGS) + +# For the code check (splint) +CHECK_SRC = ) $(GATEWAY_C_SOURCES) +INCLUDE_FLAGS = $(libscipolynomials_la_CPPFLAGS) +libscipolynomials_la_LIBADD = libscipolynomials-algo.la + +#### Target ###### +modulename = polynomials + +#### polynomials : Conf files #### +libscipolynomials_la_rootdir = $(mydatadir) +libscipolynomials_la_root_DATA = license.txt + +#### polynomials : init scripts #### +libscipolynomials_la_etcdir = $(mydatadir)/etc +libscipolynomials_la_etc_DATA = etc/polynomials.quit etc/polynomials.start + +#### polynomials : gateway declaration #### +libscipolynomials_la_sci_gatewaydir = $(mydatadir)/sci_gateway +libscipolynomials_la_sci_gateway_DATA = sci_gateway/polynomials_gateway.xml + +# Where all the Scilab stuff is installed (macros, help, ...) +mydatadir = $(pkgdatadir)/modules/$(modulename) + +# Set AM_* SCI detected settings +AM_CPPFLAGS = $(SCI_CPPFLAGS) +AM_CFLAGS = $(SCI_CFLAGS) +AM_CXXFLAGS = $(SCI_CXXFLAGS) +# append includes to AM_FFLAGS to manage fortran includes +AM_FFLAGS = $(SCI_FFLAGS) -I$(top_srcdir)/modules/core/includes/ + +# Tag shared libraries with the Scilab version +AM_LDFLAGS = $(SCI_LDFLAGS) -version-number $(SCILAB_LIBRARY_VERSION) + +# splint options +SPLINT_OPTIONS = -weak -booltype BOOL + +########################### JAVA ###################################### +#### We are delegating java compilation to ant... Thanks to that +#### the procedure will be the same with Microsoft Windows (C) +#### and Linux/Unix +####################################################################### +TARGETS_ALL = $(am__append_1) + +################ MACROS ###################### +# Rule to build a macro +# NOT USED AT THE MOMENT +SUFFIXES = .sci + +########### INSTALL DOCUMENTATION ################### + +# Install documentation files into the right target +# We do not use the automake mechanism (libxxxx_la_help_fr_DATA) because +# automake needs the html files to be present which is not the case when +# we are building Scilab + +# Where it should be installed +pkgdocdir = $(mydatadir) + +# What is the mask of the help source +DOCMASKXML = *.xml + +# What is the mask of the MathML sources +DOCMASKMML = *.mml + +########### INSTALL DATA ################### +# Install macros, help & demos +# Where it should be installed +pkgmacrosdir = $(mydatadir) +# Which directory we process +MACRODIRS = macros/ +# Mask of the Scilab sources macros +MACROMASK = *.sci +# Mask of the Scilab executable sources macros +MACROBUILDMASK = *.sce +# Mask of the Scilab compiled macros +MACROBINMASK = *.bin +# List of the standard directory for tests +TESTS_DIR = tests/benchmarks tests/nonreg_tests tests/unit_tests tests/java +# Where the demos should be installed +pkgdemosdir = $(mydatadir) +# List of the standard directory for demos +DEMOS_DIR = demos +# List of the standard directory for examples +EXAMPLES_DIR = examples +# Where to export JAVA archives (.jar) +JARDIR = jar/ +# JAR files mask +JARMASK = *.jar +# Chapter file +HELP_CHAPTERDIR = help/ +HELP_CHAPTERFILE = addchapter.sce +HELP_CHAPTERLANG = en_US fr_FR pt_BR +all: all-am + +.SUFFIXES: +.SUFFIXES: .sci .bin .c .f .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/Makefile.incl.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign modules/polynomials/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign modules/polynomials/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; +$(top_srcdir)/Makefile.incl.am: + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +clean-noinstLTLIBRARIES: + -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +install-pkglibLTLIBRARIES: $(pkglib_LTLIBRARIES) + @$(NORMAL_INSTALL) + @list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(MKDIR_P) '$(DESTDIR)$(pkglibdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(pkglibdir)" || exit 1; \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pkglibdir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pkglibdir)"; \ + } + +uninstall-pkglibLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pkglibdir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pkglibdir)/$$f"; \ + done + +clean-pkglibLTLIBRARIES: + -test -z "$(pkglib_LTLIBRARIES)" || rm -f $(pkglib_LTLIBRARIES) + @list='$(pkglib_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } +src/fortran/$(am__dirstamp): + @$(MKDIR_P) src/fortran + @: > src/fortran/$(am__dirstamp) +src/fortran/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) src/fortran/$(DEPDIR) + @: > src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/residu.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/imptra.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/dmpadj.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/impins.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/dpmul1.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/wprxc.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/dmpcnc.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/wmpmu.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/mpinsp.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/impext.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/recbez.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/sfact1.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/dpodiv.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/dmptra.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/dmpins.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/dpsimp.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/dmp2pm.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/dmpext.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/wpmul.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/bezstp.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/wmpad.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/dprxc.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/quadsd.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/wmpadj.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/dmpmu.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/wpmul1.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/wmpcnc.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/mptri.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/horner.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/idegre.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/fxshfr.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/mpdiag.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/dmpcle.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/rpoly.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/wpodiv.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/wdmpmu.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/wmptra.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/wmpins.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/mpdegr.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/ddmpev.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/realit.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/dpmul.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/sfact2.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/dmpad.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/nextk.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/blktit.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/dimin.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/newest.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/dwmpmu.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/impcnc.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/wdmpad.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/wmpcle.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/quadit.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/quad.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/calcsc.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/writebufsfact.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/chkvar.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) + +libscipolynomials-algo.la: $(libscipolynomials_algo_la_OBJECTS) $(libscipolynomials_algo_la_DEPENDENCIES) $(EXTRA_libscipolynomials_algo_la_DEPENDENCIES) + $(AM_V_F77LD)$(F77LINK) $(am_libscipolynomials_algo_la_rpath) $(libscipolynomials_algo_la_OBJECTS) $(libscipolynomials_algo_la_LIBADD) $(LIBS) +sci_gateway/fortran/$(am__dirstamp): + @$(MKDIR_P) sci_gateway/fortran + @: > sci_gateway/fortran/$(am__dirstamp) +sci_gateway/fortran/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) sci_gateway/fortran/$(DEPDIR) + @: > sci_gateway/fortran/$(DEPDIR)/$(am__dirstamp) +sci_gateway/fortran/sci_f_simp.lo: \ + sci_gateway/fortran/$(am__dirstamp) \ + sci_gateway/fortran/$(DEPDIR)/$(am__dirstamp) +sci_gateway/fortran/sci_f_poly.lo: \ + sci_gateway/fortran/$(am__dirstamp) \ + sci_gateway/fortran/$(DEPDIR)/$(am__dirstamp) +sci_gateway/fortran/sci_f_varn.lo: \ + sci_gateway/fortran/$(am__dirstamp) \ + sci_gateway/fortran/$(DEPDIR)/$(am__dirstamp) +sci_gateway/fortran/sci_f_sum.lo: sci_gateway/fortran/$(am__dirstamp) \ + sci_gateway/fortran/$(DEPDIR)/$(am__dirstamp) +sci_gateway/fortran/sci_f_div.lo: sci_gateway/fortran/$(am__dirstamp) \ + sci_gateway/fortran/$(DEPDIR)/$(am__dirstamp) +sci_gateway/fortran/sci_f_diag.lo: \ + sci_gateway/fortran/$(am__dirstamp) \ + sci_gateway/fortran/$(DEPDIR)/$(am__dirstamp) +sci_gateway/fortran/sci_f_prod.lo: \ + sci_gateway/fortran/$(am__dirstamp) \ + sci_gateway/fortran/$(DEPDIR)/$(am__dirstamp) +sci_gateway/fortran/polops.lo: sci_gateway/fortran/$(am__dirstamp) \ + sci_gateway/fortran/$(DEPDIR)/$(am__dirstamp) +sci_gateway/fortran/sci_f_bezout.lo: \ + sci_gateway/fortran/$(am__dirstamp) \ + sci_gateway/fortran/$(DEPDIR)/$(am__dirstamp) +sci_gateway/fortran/sci_f_triu_tril.lo: \ + sci_gateway/fortran/$(am__dirstamp) \ + sci_gateway/fortran/$(DEPDIR)/$(am__dirstamp) +sci_gateway/fortran/sci_f_roots.lo: \ + sci_gateway/fortran/$(am__dirstamp) \ + sci_gateway/fortran/$(DEPDIR)/$(am__dirstamp) +sci_gateway/fortran/sci_f_psimp.lo: \ + sci_gateway/fortran/$(am__dirstamp) \ + sci_gateway/fortran/$(DEPDIR)/$(am__dirstamp) +sci_gateway/fortran/sci_f_rsimp.lo: \ + sci_gateway/fortran/$(am__dirstamp) \ + sci_gateway/fortran/$(DEPDIR)/$(am__dirstamp) +sci_gateway/fortran/sci_f_coeff.lo: \ + sci_gateway/fortran/$(am__dirstamp) \ + sci_gateway/fortran/$(DEPDIR)/$(am__dirstamp) +sci_gateway/fortran/sci_f_degree.lo: \ + sci_gateway/fortran/$(am__dirstamp) \ + sci_gateway/fortran/$(DEPDIR)/$(am__dirstamp) +sci_gateway/fortran/sci_f_pclean.lo: \ + sci_gateway/fortran/$(am__dirstamp) \ + sci_gateway/fortran/$(DEPDIR)/$(am__dirstamp) +sci_gateway/fortran/sci_f_sfact.lo: \ + sci_gateway/fortran/$(am__dirstamp) \ + sci_gateway/fortran/$(DEPDIR)/$(am__dirstamp) +sci_gateway/fortran/sci_f_simpmd.lo: \ + sci_gateway/fortran/$(am__dirstamp) \ + sci_gateway/fortran/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/$(am__dirstamp): + @$(MKDIR_P) sci_gateway/c + @: > sci_gateway/c/$(am__dirstamp) +sci_gateway/c/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) sci_gateway/c/$(DEPDIR) + @: > sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscipolynomials_la-gw_polynomials.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscipolynomials_la-sci_sfact.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscipolynomials_la-sci_cleanp.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscipolynomials_la-sci_sum.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscipolynomials_la-sci_prod.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscipolynomials_la-sci_diag.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscipolynomials_la-sci_simp_mode.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscipolynomials_la-sci_roots.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscipolynomials_la-sci_varn.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscipolynomials_la-sci_simp.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscipolynomials_la-sci_bezout.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscipolynomials_la-sci_tril.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscipolynomials_la-sci_div.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscipolynomials_la-sci_coeff.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscipolynomials_la-sci_poly.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscipolynomials_la-sci_triu.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscipolynomials_la-sci_degree.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) + +libscipolynomials.la: $(libscipolynomials_la_OBJECTS) $(libscipolynomials_la_DEPENDENCIES) $(EXTRA_libscipolynomials_la_DEPENDENCIES) + $(AM_V_F77LD)$(F77LINK) $(am_libscipolynomials_la_rpath) $(libscipolynomials_la_OBJECTS) $(libscipolynomials_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + -rm -f sci_gateway/c/*.$(OBJEXT) + -rm -f sci_gateway/c/*.lo + -rm -f sci_gateway/fortran/*.$(OBJEXT) + -rm -f sci_gateway/fortran/*.lo + -rm -f src/fortran/*.$(OBJEXT) + -rm -f src/fortran/*.lo + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscipolynomials_la-gw_polynomials.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_bezout.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_cleanp.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_coeff.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_degree.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_diag.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_div.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_poly.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_prod.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_roots.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_sfact.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_simp.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_simp_mode.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_sum.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_tril.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_triu.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_varn.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +sci_gateway/c/libscipolynomials_la-gw_polynomials.lo: sci_gateway/c/gw_polynomials.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscipolynomials_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscipolynomials_la-gw_polynomials.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscipolynomials_la-gw_polynomials.Tpo -c -o sci_gateway/c/libscipolynomials_la-gw_polynomials.lo `test -f 'sci_gateway/c/gw_polynomials.c' || echo '$(srcdir)/'`sci_gateway/c/gw_polynomials.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscipolynomials_la-gw_polynomials.Tpo sci_gateway/c/$(DEPDIR)/libscipolynomials_la-gw_polynomials.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/gw_polynomials.c' object='sci_gateway/c/libscipolynomials_la-gw_polynomials.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscipolynomials_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscipolynomials_la-gw_polynomials.lo `test -f 'sci_gateway/c/gw_polynomials.c' || echo '$(srcdir)/'`sci_gateway/c/gw_polynomials.c + +sci_gateway/c/libscipolynomials_la-sci_sfact.lo: sci_gateway/c/sci_sfact.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscipolynomials_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscipolynomials_la-sci_sfact.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_sfact.Tpo -c -o sci_gateway/c/libscipolynomials_la-sci_sfact.lo `test -f 'sci_gateway/c/sci_sfact.c' || echo '$(srcdir)/'`sci_gateway/c/sci_sfact.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_sfact.Tpo sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_sfact.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/sci_sfact.c' object='sci_gateway/c/libscipolynomials_la-sci_sfact.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscipolynomials_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscipolynomials_la-sci_sfact.lo `test -f 'sci_gateway/c/sci_sfact.c' || echo '$(srcdir)/'`sci_gateway/c/sci_sfact.c + +sci_gateway/c/libscipolynomials_la-sci_cleanp.lo: sci_gateway/c/sci_cleanp.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscipolynomials_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscipolynomials_la-sci_cleanp.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_cleanp.Tpo -c -o sci_gateway/c/libscipolynomials_la-sci_cleanp.lo `test -f 'sci_gateway/c/sci_cleanp.c' || echo '$(srcdir)/'`sci_gateway/c/sci_cleanp.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_cleanp.Tpo sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_cleanp.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/sci_cleanp.c' object='sci_gateway/c/libscipolynomials_la-sci_cleanp.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscipolynomials_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscipolynomials_la-sci_cleanp.lo `test -f 'sci_gateway/c/sci_cleanp.c' || echo '$(srcdir)/'`sci_gateway/c/sci_cleanp.c + +sci_gateway/c/libscipolynomials_la-sci_sum.lo: sci_gateway/c/sci_sum.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscipolynomials_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscipolynomials_la-sci_sum.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_sum.Tpo -c -o sci_gateway/c/libscipolynomials_la-sci_sum.lo `test -f 'sci_gateway/c/sci_sum.c' || echo '$(srcdir)/'`sci_gateway/c/sci_sum.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_sum.Tpo sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_sum.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/sci_sum.c' object='sci_gateway/c/libscipolynomials_la-sci_sum.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscipolynomials_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscipolynomials_la-sci_sum.lo `test -f 'sci_gateway/c/sci_sum.c' || echo '$(srcdir)/'`sci_gateway/c/sci_sum.c + +sci_gateway/c/libscipolynomials_la-sci_prod.lo: sci_gateway/c/sci_prod.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscipolynomials_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscipolynomials_la-sci_prod.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_prod.Tpo -c -o sci_gateway/c/libscipolynomials_la-sci_prod.lo `test -f 'sci_gateway/c/sci_prod.c' || echo '$(srcdir)/'`sci_gateway/c/sci_prod.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_prod.Tpo sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_prod.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/sci_prod.c' object='sci_gateway/c/libscipolynomials_la-sci_prod.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscipolynomials_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscipolynomials_la-sci_prod.lo `test -f 'sci_gateway/c/sci_prod.c' || echo '$(srcdir)/'`sci_gateway/c/sci_prod.c + +sci_gateway/c/libscipolynomials_la-sci_diag.lo: sci_gateway/c/sci_diag.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscipolynomials_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscipolynomials_la-sci_diag.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_diag.Tpo -c -o sci_gateway/c/libscipolynomials_la-sci_diag.lo `test -f 'sci_gateway/c/sci_diag.c' || echo '$(srcdir)/'`sci_gateway/c/sci_diag.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_diag.Tpo sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_diag.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/sci_diag.c' object='sci_gateway/c/libscipolynomials_la-sci_diag.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscipolynomials_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscipolynomials_la-sci_diag.lo `test -f 'sci_gateway/c/sci_diag.c' || echo '$(srcdir)/'`sci_gateway/c/sci_diag.c + +sci_gateway/c/libscipolynomials_la-sci_simp_mode.lo: sci_gateway/c/sci_simp_mode.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscipolynomials_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscipolynomials_la-sci_simp_mode.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_simp_mode.Tpo -c -o sci_gateway/c/libscipolynomials_la-sci_simp_mode.lo `test -f 'sci_gateway/c/sci_simp_mode.c' || echo '$(srcdir)/'`sci_gateway/c/sci_simp_mode.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_simp_mode.Tpo sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_simp_mode.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/sci_simp_mode.c' object='sci_gateway/c/libscipolynomials_la-sci_simp_mode.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscipolynomials_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscipolynomials_la-sci_simp_mode.lo `test -f 'sci_gateway/c/sci_simp_mode.c' || echo '$(srcdir)/'`sci_gateway/c/sci_simp_mode.c + +sci_gateway/c/libscipolynomials_la-sci_roots.lo: sci_gateway/c/sci_roots.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscipolynomials_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscipolynomials_la-sci_roots.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_roots.Tpo -c -o sci_gateway/c/libscipolynomials_la-sci_roots.lo `test -f 'sci_gateway/c/sci_roots.c' || echo '$(srcdir)/'`sci_gateway/c/sci_roots.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_roots.Tpo sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_roots.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/sci_roots.c' object='sci_gateway/c/libscipolynomials_la-sci_roots.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscipolynomials_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscipolynomials_la-sci_roots.lo `test -f 'sci_gateway/c/sci_roots.c' || echo '$(srcdir)/'`sci_gateway/c/sci_roots.c + +sci_gateway/c/libscipolynomials_la-sci_varn.lo: sci_gateway/c/sci_varn.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscipolynomials_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscipolynomials_la-sci_varn.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_varn.Tpo -c -o sci_gateway/c/libscipolynomials_la-sci_varn.lo `test -f 'sci_gateway/c/sci_varn.c' || echo '$(srcdir)/'`sci_gateway/c/sci_varn.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_varn.Tpo sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_varn.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/sci_varn.c' object='sci_gateway/c/libscipolynomials_la-sci_varn.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscipolynomials_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscipolynomials_la-sci_varn.lo `test -f 'sci_gateway/c/sci_varn.c' || echo '$(srcdir)/'`sci_gateway/c/sci_varn.c + +sci_gateway/c/libscipolynomials_la-sci_simp.lo: sci_gateway/c/sci_simp.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscipolynomials_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscipolynomials_la-sci_simp.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_simp.Tpo -c -o sci_gateway/c/libscipolynomials_la-sci_simp.lo `test -f 'sci_gateway/c/sci_simp.c' || echo '$(srcdir)/'`sci_gateway/c/sci_simp.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_simp.Tpo sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_simp.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/sci_simp.c' object='sci_gateway/c/libscipolynomials_la-sci_simp.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscipolynomials_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscipolynomials_la-sci_simp.lo `test -f 'sci_gateway/c/sci_simp.c' || echo '$(srcdir)/'`sci_gateway/c/sci_simp.c + +sci_gateway/c/libscipolynomials_la-sci_bezout.lo: sci_gateway/c/sci_bezout.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscipolynomials_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscipolynomials_la-sci_bezout.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_bezout.Tpo -c -o sci_gateway/c/libscipolynomials_la-sci_bezout.lo `test -f 'sci_gateway/c/sci_bezout.c' || echo '$(srcdir)/'`sci_gateway/c/sci_bezout.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_bezout.Tpo sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_bezout.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/sci_bezout.c' object='sci_gateway/c/libscipolynomials_la-sci_bezout.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscipolynomials_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscipolynomials_la-sci_bezout.lo `test -f 'sci_gateway/c/sci_bezout.c' || echo '$(srcdir)/'`sci_gateway/c/sci_bezout.c + +sci_gateway/c/libscipolynomials_la-sci_tril.lo: sci_gateway/c/sci_tril.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscipolynomials_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscipolynomials_la-sci_tril.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_tril.Tpo -c -o sci_gateway/c/libscipolynomials_la-sci_tril.lo `test -f 'sci_gateway/c/sci_tril.c' || echo '$(srcdir)/'`sci_gateway/c/sci_tril.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_tril.Tpo sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_tril.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/sci_tril.c' object='sci_gateway/c/libscipolynomials_la-sci_tril.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscipolynomials_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscipolynomials_la-sci_tril.lo `test -f 'sci_gateway/c/sci_tril.c' || echo '$(srcdir)/'`sci_gateway/c/sci_tril.c + +sci_gateway/c/libscipolynomials_la-sci_div.lo: sci_gateway/c/sci_div.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscipolynomials_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscipolynomials_la-sci_div.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_div.Tpo -c -o sci_gateway/c/libscipolynomials_la-sci_div.lo `test -f 'sci_gateway/c/sci_div.c' || echo '$(srcdir)/'`sci_gateway/c/sci_div.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_div.Tpo sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_div.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/sci_div.c' object='sci_gateway/c/libscipolynomials_la-sci_div.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscipolynomials_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscipolynomials_la-sci_div.lo `test -f 'sci_gateway/c/sci_div.c' || echo '$(srcdir)/'`sci_gateway/c/sci_div.c + +sci_gateway/c/libscipolynomials_la-sci_coeff.lo: sci_gateway/c/sci_coeff.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscipolynomials_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscipolynomials_la-sci_coeff.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_coeff.Tpo -c -o sci_gateway/c/libscipolynomials_la-sci_coeff.lo `test -f 'sci_gateway/c/sci_coeff.c' || echo '$(srcdir)/'`sci_gateway/c/sci_coeff.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_coeff.Tpo sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_coeff.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/sci_coeff.c' object='sci_gateway/c/libscipolynomials_la-sci_coeff.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscipolynomials_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscipolynomials_la-sci_coeff.lo `test -f 'sci_gateway/c/sci_coeff.c' || echo '$(srcdir)/'`sci_gateway/c/sci_coeff.c + +sci_gateway/c/libscipolynomials_la-sci_poly.lo: sci_gateway/c/sci_poly.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscipolynomials_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscipolynomials_la-sci_poly.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_poly.Tpo -c -o sci_gateway/c/libscipolynomials_la-sci_poly.lo `test -f 'sci_gateway/c/sci_poly.c' || echo '$(srcdir)/'`sci_gateway/c/sci_poly.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_poly.Tpo sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_poly.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/sci_poly.c' object='sci_gateway/c/libscipolynomials_la-sci_poly.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscipolynomials_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscipolynomials_la-sci_poly.lo `test -f 'sci_gateway/c/sci_poly.c' || echo '$(srcdir)/'`sci_gateway/c/sci_poly.c + +sci_gateway/c/libscipolynomials_la-sci_triu.lo: sci_gateway/c/sci_triu.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscipolynomials_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscipolynomials_la-sci_triu.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_triu.Tpo -c -o sci_gateway/c/libscipolynomials_la-sci_triu.lo `test -f 'sci_gateway/c/sci_triu.c' || echo '$(srcdir)/'`sci_gateway/c/sci_triu.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_triu.Tpo sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_triu.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/sci_triu.c' object='sci_gateway/c/libscipolynomials_la-sci_triu.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscipolynomials_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscipolynomials_la-sci_triu.lo `test -f 'sci_gateway/c/sci_triu.c' || echo '$(srcdir)/'`sci_gateway/c/sci_triu.c + +sci_gateway/c/libscipolynomials_la-sci_degree.lo: sci_gateway/c/sci_degree.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscipolynomials_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscipolynomials_la-sci_degree.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_degree.Tpo -c -o sci_gateway/c/libscipolynomials_la-sci_degree.lo `test -f 'sci_gateway/c/sci_degree.c' || echo '$(srcdir)/'`sci_gateway/c/sci_degree.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_degree.Tpo sci_gateway/c/$(DEPDIR)/libscipolynomials_la-sci_degree.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/sci_degree.c' object='sci_gateway/c/libscipolynomials_la-sci_degree.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscipolynomials_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscipolynomials_la-sci_degree.lo `test -f 'sci_gateway/c/sci_degree.c' || echo '$(srcdir)/'`sci_gateway/c/sci_degree.c + +.f.o: + $(AM_V_F77)$(F77COMPILE) -c -o $@ $< + +.f.obj: + $(AM_V_F77)$(F77COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.f.lo: + $(AM_V_F77)$(LTF77COMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + -rm -rf sci_gateway/c/.libs sci_gateway/c/_libs + -rm -rf sci_gateway/fortran/.libs sci_gateway/fortran/_libs + -rm -rf src/fortran/.libs src/fortran/_libs +install-libscipolynomials_la_etcDATA: $(libscipolynomials_la_etc_DATA) + @$(NORMAL_INSTALL) + @list='$(libscipolynomials_la_etc_DATA)'; test -n "$(libscipolynomials_la_etcdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(libscipolynomials_la_etcdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(libscipolynomials_la_etcdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(libscipolynomials_la_etcdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(libscipolynomials_la_etcdir)" || exit $$?; \ + done + +uninstall-libscipolynomials_la_etcDATA: + @$(NORMAL_UNINSTALL) + @list='$(libscipolynomials_la_etc_DATA)'; test -n "$(libscipolynomials_la_etcdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(libscipolynomials_la_etcdir)'; $(am__uninstall_files_from_dir) +install-libscipolynomials_la_rootDATA: $(libscipolynomials_la_root_DATA) + @$(NORMAL_INSTALL) + @list='$(libscipolynomials_la_root_DATA)'; test -n "$(libscipolynomials_la_rootdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(libscipolynomials_la_rootdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(libscipolynomials_la_rootdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(libscipolynomials_la_rootdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(libscipolynomials_la_rootdir)" || exit $$?; \ + done + +uninstall-libscipolynomials_la_rootDATA: + @$(NORMAL_UNINSTALL) + @list='$(libscipolynomials_la_root_DATA)'; test -n "$(libscipolynomials_la_rootdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(libscipolynomials_la_rootdir)'; $(am__uninstall_files_from_dir) +install-libscipolynomials_la_sci_gatewayDATA: $(libscipolynomials_la_sci_gateway_DATA) + @$(NORMAL_INSTALL) + @list='$(libscipolynomials_la_sci_gateway_DATA)'; test -n "$(libscipolynomials_la_sci_gatewaydir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(libscipolynomials_la_sci_gatewaydir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(libscipolynomials_la_sci_gatewaydir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(libscipolynomials_la_sci_gatewaydir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(libscipolynomials_la_sci_gatewaydir)" || exit $$?; \ + done + +uninstall-libscipolynomials_la_sci_gatewayDATA: + @$(NORMAL_UNINSTALL) + @list='$(libscipolynomials_la_sci_gateway_DATA)'; test -n "$(libscipolynomials_la_sci_gatewaydir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(libscipolynomials_la_sci_gatewaydir)'; $(am__uninstall_files_from_dir) + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) check-local +check: check-am +all-am: Makefile $(LTLIBRARIES) $(DATA) all-local +installdirs: + for dir in "$(DESTDIR)$(pkglibdir)" "$(DESTDIR)$(libscipolynomials_la_etcdir)" "$(DESTDIR)$(libscipolynomials_la_rootdir)" "$(DESTDIR)$(libscipolynomials_la_sci_gatewaydir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + -rm -f sci_gateway/c/$(DEPDIR)/$(am__dirstamp) + -rm -f sci_gateway/c/$(am__dirstamp) + -rm -f sci_gateway/fortran/$(DEPDIR)/$(am__dirstamp) + -rm -f sci_gateway/fortran/$(am__dirstamp) + -rm -f src/fortran/$(DEPDIR)/$(am__dirstamp) + -rm -f src/fortran/$(am__dirstamp) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-local \ + clean-noinstLTLIBRARIES clean-pkglibLTLIBRARIES mostlyclean-am + +distclean: distclean-am + -rm -rf sci_gateway/c/$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-local distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-data-local \ + install-libscipolynomials_la_etcDATA \ + install-libscipolynomials_la_rootDATA \ + install-libscipolynomials_la_sci_gatewayDATA + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: install-pkglibLTLIBRARIES + +install-html: install-html-am + +install-html-am: install-html-local + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf sci_gateway/c/$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-libscipolynomials_la_etcDATA \ + uninstall-libscipolynomials_la_rootDATA \ + uninstall-libscipolynomials_la_sci_gatewayDATA \ + uninstall-pkglibLTLIBRARIES + +.MAKE: check-am install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am all-local check check-am \ + check-local clean clean-generic clean-libtool clean-local \ + clean-noinstLTLIBRARIES clean-pkglibLTLIBRARIES cscopelist-am \ + ctags ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-local distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-data-local install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-html-local install-info \ + install-info-am install-libscipolynomials_la_etcDATA \ + install-libscipolynomials_la_rootDATA \ + install-libscipolynomials_la_sci_gatewayDATA install-man \ + install-pdf install-pdf-am install-pkglibLTLIBRARIES \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am \ + uninstall-libscipolynomials_la_etcDATA \ + uninstall-libscipolynomials_la_rootDATA \ + uninstall-libscipolynomials_la_sci_gatewayDATA \ + uninstall-pkglibLTLIBRARIES + + +# This target enables tests for Scilab +check-local: $(top_builddir)/scilab-bin test + if test -d $(mydatadir)/tests; then \ + @COMMAND="try test_run('$(modulename)');catch exit(-1);end;exit(0)"; export LANG=C; $(top_builddir)/bin/scilab -nwni -nb -e "$$COMMAND"; \ + fi +check-code: + if test -f build.xml; then \ + $(ANT) checkstyle; \ + fi + if test -x "$(SPLINT)"; then \ + $(SPLINT) $(SPLINT_OPTIONS) -I$(top_srcdir)/modules/core/includes/ -I$(top_srcdir)/libs/MALLOC/includes/ -I$(top_srcdir)/modules/localization/includes/ $(INCLUDE_FLAGS) $(CHECK_SRC); \ + fi +@NEED_JAVA_TRUE@java: +# Some configurations needs to export JAVA_HOME in the current env +@NEED_JAVA_TRUE@ @if test "$(JAVA_HOME)"; then export JAVA_HOME=$(JAVA_HOME); fi; \ +@NEED_JAVA_TRUE@ if test -z "$(USEANT)"; then USEANT=0; else USEANT=1; fi; \ +@NEED_JAVA_TRUE@ if test -f build.xml -a $$USEANT -eq 1; then \ +@NEED_JAVA_TRUE@ $(ANT); \ +@NEED_JAVA_TRUE@ fi + +@NEED_JAVA_TRUE@clean-java: +# Some configurations needs to export JAVA_HOME in the current env +@NEED_JAVA_TRUE@ @if test "$(JAVA_HOME)"; then export JAVA_HOME=$(JAVA_HOME); fi; \ +@NEED_JAVA_TRUE@ if test -z "$(USEANT)"; then USEANT=0; else USEANT=1; fi; \ +@NEED_JAVA_TRUE@ if test -f build.xml -a $$USEANT -eq 1; then \ +@NEED_JAVA_TRUE@ $(ANT) clean; \ +@NEED_JAVA_TRUE@ fi; + +# If the user request for the SWIG generation of the wrappers Java => C/C++ +# We call the target swig-build on the variable SWIG_WRAPPERS + +@SWIG_TRUE@swig: $(SWIG_WRAPPERS) +@SWIG_TRUE@ @SWIG_PACKAGENAME=org.scilab.modules.$(modulename); \ +@SWIG_TRUE@ SWIG_OUTDIR=src/java/org/scilab/modules/$(modulename)/; \ +@SWIG_TRUE@ if test -n "$(SWIG_WRAPPERS)"; then \ +@SWIG_TRUE@ for file in $(SWIG_WRAPPERS) ; do \ +@SWIG_TRUE@ echo "Swig process of $$file (Java) ..."; \ +@SWIG_TRUE@ $(SWIG_BIN) $(SWIG_JAVA) -package $$SWIG_PACKAGENAME -outdir $$SWIG_OUTDIR $$file; \ +@SWIG_TRUE@ done; \ +@SWIG_TRUE@ fi + +@SWIG_TRUE@swig-scilab: $(SWIG_SCILAB_WRAPPERS) +@SWIG_TRUE@ @SWIG_OUTDIR=src/swig/; \ +@SWIG_TRUE@ if test -n "$(SWIG_SCILAB_WRAPPERS)"; then \ +@SWIG_TRUE@ for file in $(SWIG_SCILAB_WRAPPERS) ; do \ +@SWIG_TRUE@ echo "Swig process of $$file (Scilab) ..."; \ +@SWIG_TRUE@ $(SWIG_BIN) $(SWIG_SCILAB) -outdir $$SWIG_OUTDIR $$file; \ +@SWIG_TRUE@ done; \ +@SWIG_TRUE@ fi + +# If the user request for the SWIG generation of the wrappers Java => C/C++ +# We call the target swig-build on the variable SWIG_WRAPPERS + +@GIWS_TRUE@giws: $(GIWS_WRAPPERS) +@GIWS_TRUE@ @GIWS_OUTPUTDIR=src/jni/; \ +@GIWS_TRUE@ MANDATORY_OPTIONS="--throws-exception-on-error --description-file"; \ +@GIWS_TRUE@ if test -n "$(GIWS_WRAPPERS)"; then \ +@GIWS_TRUE@ for file in $(GIWS_WRAPPERS) ; do \ +@GIWS_TRUE@ echo "GIWS process of $$file ..."; \ +@GIWS_TRUE@ if test -z "$(GIWS_OPTIONS)"; then \ +@GIWS_TRUE@ $(GIWS_BIN) --disable-return-size-array --output-dir $$GIWS_OUTPUTDIR $$MANDATORY_OPTIONS $$file; \ +@GIWS_TRUE@ else \ +@GIWS_TRUE@ echo "Custom GIWS call with '$$GIWS_OPTIONS'"; \ +@GIWS_TRUE@ $(GIWS_BIN) $$GIWS_OPTIONS --output-dir $$GIWS_OUTPUTDIR $$MANDATORY_OPTIONS $$file; \ +@GIWS_TRUE@ fi \ +@GIWS_TRUE@ done; \ +@GIWS_TRUE@ fi + +@GIWS_TRUE@giws-exception: +@GIWS_TRUE@ @GIWS_OUTPUTDIR=src/jni/;\ +@GIWS_TRUE@ echo "GIWS: Generation of exception class ..."; \ +@GIWS_TRUE@ $(GIWS_BIN) --generate-exception-class --output-dir $$GIWS_OUTPUTDIR + +macros: + -@( if test ! -x $(top_builddir)/scilab-bin; then \ + echo "Error : Cannot build $< : Scilab has not been built"; \ + else \ + $(top_builddir)/bin/scilab -ns -nwni -e "exec('macros/buildmacros.sce');quit;";\ + fi) + +# Removes the macros +clean-macros: +# Removes macros (*.bin generated from .sci) + @for dir in $(MACRODIRS) $(MACROSDIRSEXT) ; do \ + echo "rm -f $(builddir)/$$dir/$(MACROBINMASK)"; \ + rm -f $(builddir)/$$dir/$(MACROBINMASK); \ + done + +test: +# More tests could be added here + @if test -z "$(USEANT)"; then USEANT=0; else USEANT=1; fi; \ + if test -f build.xml -a $$USEANT -eq 1; then \ + $(ANT) test; \ + fi + +all-local: $(TARGETS_ALL) + +.sci.bin: + -@( if test ! -x $(top_builddir)/scilab-bin; then \ + echo "Error : Cannot build $< : Scilab has not been build"; \ + else \ + echo "Creating $@"; \ + $(top_builddir)/bin/scilab -ns -nwni -e "exec('$(abs_srcdir)/$<');save('$(abs_srcdir)/$@');exit;"; \ + fi ) + +install-html-local: + +install-data-local-local: +# Mainly for javasci + @if test -d $(srcdir)/javadoc; then \ + cp -R $(srcdir)/javadoc $(DESTDIR)/$(mydatadir)/; \ + fi +# If the user wants the help sources to be installed +@INSTALL_HELP_XML_TRUE@ @echo "-------- Install of XML sources of help files --------"; \ +@INSTALL_HELP_XML_TRUE@ for lang in $(ALL_LINGUAS); do \ +@INSTALL_HELP_XML_TRUE@ if test -d $(srcdir)/help/$$lang; then \ +@INSTALL_HELP_XML_TRUE@ $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/help/$$lang && \ +@INSTALL_HELP_XML_TRUE@ if ls -lLd $(srcdir)/help/$$lang/$(DOCMASKXML) >/dev/null 2>&1; then \ +@INSTALL_HELP_XML_TRUE@ for file in $(srcdir)/help/$$lang/$(DOCMASKXML) ; do \ +@INSTALL_HELP_XML_TRUE@ echo "$(INSTALL_DATA) $$file $(DESTDIR)$(pkgdocdir)/help/$$lang" ; \ +@INSTALL_HELP_XML_TRUE@ $(INSTALL_DATA) "$$file" $(DESTDIR)$(pkgdocdir)/help/$$lang ; \ +@INSTALL_HELP_XML_TRUE@ done ; \ +@INSTALL_HELP_XML_TRUE@ fi; \ +@INSTALL_HELP_XML_TRUE@ fi; \ +@INSTALL_HELP_XML_TRUE@ done; \ +@INSTALL_HELP_XML_TRUE@ @echo "-------- Install of MathML sources --------"; \ +@INSTALL_HELP_XML_TRUE@ if test -d $(srcdir)/help/mml/; then \ +@INSTALL_HELP_XML_TRUE@ $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/help/mml/ && \ +@INSTALL_HELP_XML_TRUE@ if ls -lLd $(srcdir)/help/mml/$(DOCMASKMML) >/dev/null 2>&1; then \ +@INSTALL_HELP_XML_TRUE@ for file in $(srcdir)/help/mml/$(DOCMASKMML) ; do \ +@INSTALL_HELP_XML_TRUE@ echo "$(INSTALL_DATA) $$file $(DESTDIR)$(pkgdocdir)/help/mml" ; \ +@INSTALL_HELP_XML_TRUE@ $(INSTALL_DATA) "$$file" $(DESTDIR)$(pkgdocdir)/help/mml ; \ +@INSTALL_HELP_XML_TRUE@ done ; \ +@INSTALL_HELP_XML_TRUE@ fi; \ +@INSTALL_HELP_XML_TRUE@ fi +install-data-local: +# Install the tests + @echo "-------- Install tests (if any) --------"; \ + for dir in $(TESTS_DIR) $(TESTS_DIREXT) ; do \ + if test -d $(srcdir)/$$dir/; then \ + $(mkinstalldirs) $(DESTDIR)$(pkgmacrosdir)/$$dir && \ + for file in `find $(srcdir)/$$dir | sed "s|^$(srcdir)/$$dir||" 2>/dev/null`; do \ + if test -d "$(srcdir)/$$dir/$$file"; then \ + echo $(mkinstalldirs) $(DESTDIR)$(pkgmacrosdir)/$$dir/$$file; \ + $(mkinstalldirs) "$(DESTDIR)$(pkgmacrosdir)/$$dir/$$file"; \ + else \ + echo "$(INSTALL_DATA) $(srcdir)/$$dir/$$file $(DESTDIR)$(pkgmacrosdir)/`dirname $$dir/$$file`" ; \ + $(INSTALL_DATA) "$(srcdir)/$$dir/$$file" "$(DESTDIR)$(pkgmacrosdir)/`dirname $$dir/$$file`" ; \ + fi \ + done; \ + fi; \ + done +# Install the help chapter + @echo "-------- Install the help chapter (if any) --------"; \ + for lang in $(HELP_CHAPTERLANG); do \ + HELPFILE=$(srcdir)/$(HELP_CHAPTERDIR)$$lang/$(HELP_CHAPTERFILE); \ + if test -f $$HELPFILE; then \ + echo $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/$(HELP_CHAPTERDIR)/$$lang/; \ + $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/$(HELP_CHAPTERDIR)/$$lang/; \ + echo $(INSTALL_DATA) $$HELPFILE $(DESTDIR)$(pkgdocdir)/$$HELPFILE; \ + $(INSTALL_DATA) $$HELPFILE $(DESTDIR)$(pkgdocdir)/$$HELPFILE; \ + fi; \ + done +# Install the demos & examples + @echo "-------- Install demos & examples (if any) --------"; \ + for dir in $(DEMOS_DIR) $(DEMOS_DIREXT) $(EXAMPLES_DIR) $(EXAMPLES_DIREXT) ; do \ + if test -d $(srcdir)/$$dir/; then \ + $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/$$dir && \ + for file in `find $(srcdir)/$$dir | sed "s|^$(srcdir)/$$dir||" 2>/dev/null`; do \ + if test -d "$(srcdir)/$$dir/$$file"; then \ + echo $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/$$dir/$$file; \ + $(mkinstalldirs) "$(DESTDIR)$(pkgdocdir)/$$dir/$$file"; \ + else \ + echo "$(INSTALL_DATA) $(srcdir)/$$dir/$$file $(DESTDIR)$(pkgdocdir)/`dirname $$dir/$$file`" ; \ + $(INSTALL_DATA) "$(srcdir)/$$dir/$$file" "$(DESTDIR)$(pkgdocdir)/`dirname $$dir/$$file`" ; \ + fi \ + done; \ + fi; \ + done +# Install the macros + @echo "-------- Install macros (if any) --------"; \ + for dir in $(MACRODIRS) $(MACROSDIRSEXT) ; do \ + $(mkinstalldirs) $(DESTDIR)$(pkgmacrosdir)/$$dir && \ + if test -d $(srcdir)/$$dir/; then \ + FILELIST="$(srcdir)/$$dir/$(MACROMASK) $(srcdir)/$$dir/$(MACROBINMASK) $(srcdir)/$$dir/$(MACROBUILDMASK) $(srcdir)/$$dir/names $(srcdir)/$$dir/lib";\ + if test -n "$(MACROSSPECIALEXT)"; then \ + specialExtDir=""; \ + for specialExt in $(MACROSSPECIALEXT); do \ + specialExtDir="$$specialExtDir $(srcdir)/$$dir/$$specialExt"; \ + done; \ + FILELIST="$$FILELIST $$specialExtDir"; \ + fi; \ + for file in `ls -1 $$FILELIST 2>/dev/null`; do \ + echo "$(INSTALL_DATA) $$file $(DESTDIR)$(pkgmacrosdir)/$$dir" ; \ + $(INSTALL_DATA) "$$file" $(DESTDIR)$(pkgmacrosdir)/$$dir ; \ + done; \ + fi; \ + done +# Install java files (.jar) + @if ls -lLd $(srcdir)/$(JARDIR)$(JARMASK) >/dev/null 2>&1; then \ + echo "-------- Install jar files --------"; \ + $(mkinstalldirs) $(DESTDIR)$(pkgdocdir)/$(JARDIR); \ + for file in $(srcdir)/$(JARDIR)$(JARMASK); do\ + echo "$(INSTALL_DATA) $$file $(DESTDIR)$(pkgdocdir)/$(JARDIR)" ; \ + $(INSTALL_DATA) "$$file" $(DESTDIR)$(pkgdocdir)/$(JARDIR) ; \ + done ; \ + fi + +########### CLEAN ################### +# Clean help (generated automatically by Scilab) +# It used to clean the macro (clean-macros) but this was causing +# make clean && make to fail Scilab startup +@NEED_JAVA_TRUE@clean-local: clean-java +@NEED_JAVA_FALSE@clean-local: + +distclean-local: + rm -f $(builddir)/help/*/.last_successful_build_javaHelp $(builddir)/help/*/.list_* + +.PHONY: macros java swig giws + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/modules/polynomials/demos/intro/poly.intro.dem.sce b/modules/polynomials/demos/intro/poly.intro.dem.sce new file mode 100755 index 000000000..bffa130f1 --- /dev/null +++ b/modules/polynomials/demos/intro/poly.intro.dem.sce @@ -0,0 +1,100 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2008 - INRIA - Michael Baudin +// Copyright (C) 2010 - DIGITEO - Allan CORNET +// +// This file is released under the 3-clause BSD license. See COPYING-BSD. + +m = mode(); +mode(7); + +// This is a small introduction to the polynomials objects in +// Scilab. +// 1. Define the polynomial +// There are several ways to define a polynomial in Scilab. +// The first way is to define a variable and then define the +// "natural" mathematical definition. +// Define x as a variable, that is, a polynomial of degree 0 +x=poly(0,"x") +// Define p as a polynomial of variable x +p1=-6+11*x-6*x^2+x^3 +// The second way is to define the coefficients of the polynomial +// as a vector. +mycoeff=[-6 11 -6 1] +p2=poly(mycoeff,"x","coeff") +// The third way is to define the polynomials by its roots. +myroots=[1 2 3] +p3=poly(myroots,"x","roots") +// The 4th way is to define the polynomial as the characteristic +// polynomial of a given matrix. +// In the following case, we are giving the companion matrix of our +// favorite polynomial. +mymatrix=[6 -11 6;1 0 0;0 1 0] +p4=poly(mymatrix,"x") +// 2. Algebraic manipulations +// We can can process simple algebraic computations +// with the polynomials, considered as basic objects. +p5 = p1+p2 +p6 = p1-p2 +p7 = p1*p2 +p8 = p3-p1*p4 +// We can test the equality of two polynomials +are12equal = (p1==p2) +are12diff = (p1<>p2) + +// 3. Polynomial analysis +// Scilab provides several functions to inquire a specific +// polynomial. +// The "coeff" function returns a vector containing the +// coefficients of a given polynomial. +coeff1=coeff(p1) +// One can compute the derivative of the polynomial with +// the "derivat" function, which returns the derivative +// of the given polynomial or rational polynomial. +p10=derivat(p1) +// One can compute numerically the roots of one given polynomial with the +// "roots" function, which returns the vectors of roots. +theroots=roots(p1) +// The companion matrix is so that its characteristic polynomial +// is p. +comp1=companion(p1) +// One can check that the eigenvalues of the companion matrix of p1 +// are the roots of p1. +roots1=spec(comp1) +// One can factor a given polynomial with the "factor" function. +// Here the p1 polynomial can be written p1=g*(x-1)*(x-2)*(x-3) +// with "g" the gain. +[lnum,g]=factors(p1) + +// 4. Rational polynomial +// Rational polynomials can be defined as well. +p9=(1+2*x+3*x^2)/(4+5*x+6*x^2) +// The derivative can be computed with "derivat", as +// as regular polynomial. +p11=derivat(p9) +// Notice that polynomials and rational polynomials do +// not have the same type. +typeof(p1) +typeof(p9) +// The numerator and denominator polynomials of the rational polynomial +// can be extracted with the "numer" and "denom" functions. +numer(p9) +denom(p9) +// Rational polynomials can be simplified with the "simp" function, +// which returns the numerator and denominator of the given couple +// of polynomials. +[n,d]=simp((x+1)*(x+2),(x+1)*(x-2)) + + +mode(m); + +// clear variables + +clear n; clear d; clear denom; clear numer; +clear typeof; clear p11; clear p9; clear %p_r_p; +clear lnum; clear g; clear factors; clear roots1; +clear comp1; clear companion; clear theroots; clear p10; +clear derivat; clear coeff1; clear are12diff; clear are12equal; +clear p8; clear p7; clear p6; clear p5; +clear p4; clear mymatrix; clear p3; clear myroots; +clear p2; clear mycoeff; clear p1; clear x; +clear m;
\ No newline at end of file diff --git a/modules/polynomials/demos/polynomials.dem.gateway.sce b/modules/polynomials/demos/polynomials.dem.gateway.sce new file mode 100755 index 000000000..a1a3fdade --- /dev/null +++ b/modules/polynomials/demos/polynomials.dem.gateway.sce @@ -0,0 +1,19 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2008 - INRIA - Michael Baudin +// Copyright (C) 2010-2011 - DIGITEO - Allan CORNET +// +// This file is released under the 3-clause BSD license. See COPYING-BSD. + +function subdemolist = demo_gateway() + + demopath = get_absolute_file_path("polynomials.dem.gateway.sce"); + add_demo(gettext("Polynomials"),demopath+"polynomials.dem.gateway.sce"); + + subdemolist = [_("Introduction") , "intro/poly.intro.dem.sce" ]; + + subdemolist(:,2) = demopath + subdemolist(:,2); + +endfunction + +subdemolist = demo_gateway(); +clear demo_gateway;
\ No newline at end of file diff --git a/modules/polynomials/etc/polynomials.quit b/modules/polynomials/etc/polynomials.quit new file mode 100755 index 000000000..ab83f0c89 --- /dev/null +++ b/modules/polynomials/etc/polynomials.quit @@ -0,0 +1,10 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2007-2008 - INRIA +// Copyright (C) 2009 - DIGITEO +// +// 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 + diff --git a/modules/polynomials/etc/polynomials.start b/modules/polynomials/etc/polynomials.start new file mode 100755 index 000000000..7ab6a556a --- /dev/null +++ b/modules/polynomials/etc/polynomials.start @@ -0,0 +1,19 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2006-2008 - INRIA +// Copyright (C) 2011 - DIGITEO +// +// 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 + +//Load functions libraries +// ============================================================================= + load('SCI/modules/polynomials/macros/lib'); + +// Special variables definition +// ============================================================================= + %s = poly(0,'s'); + %z = poly(0,'z'); + $ = poly(0,'$'); diff --git a/modules/polynomials/help/en_US/addchapter.sce b/modules/polynomials/help/en_US/addchapter.sce new file mode 100755 index 000000000..97bf13cc2 --- /dev/null +++ b/modules/polynomials/help/en_US/addchapter.sce @@ -0,0 +1,11 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2009 - DIGITEO +// +// 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 + +add_help_chapter("Polynomials",SCI+"/modules/polynomials/help/en_US",%T); + diff --git a/modules/polynomials/help/en_US/bezout.xml b/modules/polynomials/help/en_US/bezout.xml new file mode 100755 index 000000000..6e01106c9 --- /dev/null +++ b/modules/polynomials/help/en_US/bezout.xml @@ -0,0 +1,121 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA - Serge STEER + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="bezout"> + <refnamediv> + <refname>bezout</refname> + <refpurpose>Bezout equation for polynomials or integers</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>[thegcd,U]=bezout(p1,p2)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>p1, p2</term> + <listitem> + <para>two real polynomials or two integer scalars (type equal to 1, 2 or 8)</para> + </listitem> + </varlistentry> + <varlistentry> + <term>thegcd</term> + <listitem> + <para> + scalar of the same type as <literal>p1</literal> and <literal>p2</literal> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>U</term> + <listitem> + <para> + <literal>2x2</literal> matrix of the same type as <literal>p1</literal> and <literal>p2</literal> + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal>[thegcd, U] = bezout(p1, p2)</literal> computes the GCD <literal>thegcd</literal> of <literal>p1</literal> and <literal>p2</literal>, and in addition a (2x2) + unimodular matrix <literal>U</literal> such that: + </para> + <para> + <literal>[p1 p2]*U = [thegcd 0]</literal> + </para> + <para> + The lcm of <literal>p1</literal> and <literal>p2</literal> is given by: + </para> + <para> + <literal>p1*U(1,2)</literal> (or <literal>-p2*U(2,2)</literal>) + </para> + <para> + If <literal>p1</literal> or <literal>p2</literal> are given as doubles (type 1), then they are treated as + null degree polynomials. + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +// Polynomial case +x = poly(0, 'x'); +p1 = (x+1)*(x-3)^5; +p2 = (x-2)*(x-3)^3; +[thegcd,U] = bezout(p1, p2) +det(U) +clean([p1 p2]*U) +thelcm = p1*U(1,2) +lcm([p1 p2]) + +// Double case +i1 = 2*3^5; +i2 = 2^3*3^2; +[thegcd,U] = bezout(i1, i2) +V = [2^2*3^5 2^3*3^2 2^2*3^4*5]; +[thegcd,U] = gcd(V) +V*U +lcm(V) + +// Integer case +i1 = int32(2*3^5); +i2 = int32(2^3*3^2); +[thegcd,U] = bezout(i1, i2) +V = int32([2^2*3^5 2^3*3^2 2^2*3^4*5]); +[thegcd,U] = gcd(V) +V*U +lcm(V) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="poly">poly</link> + </member> + <member> + <link linkend="roots">roots</link> + </member> + <member> + <link linkend="simp">simp</link> + </member> + <member> + <link linkend="clean">clean</link> + </member> + <member> + <link linkend="lcm">lcm</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/en_US/chepol.xml b/modules/polynomials/help/en_US/chepol.xml new file mode 100755 index 000000000..e7cec8330 --- /dev/null +++ b/modules/polynomials/help/en_US/chepol.xml @@ -0,0 +1,50 @@ +<?xml version="1.0" encoding="UTF-8"?> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="chepol"> + <refnamediv> + <refname>chepol</refname> + <refpurpose>Chebychev polynomial</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>[Tn]=chepol(n,var)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>n</term> + <listitem> + <para>integer : polynomial order</para> + </listitem> + </varlistentry> + <varlistentry> + <term>var</term> + <listitem> + <para>string : polynomial variable</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Tn</term> + <listitem> + <para> + polynomial in the variable <literal>var</literal> + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + Recursive implementation of Chebychev polynomial. + <literal>Tn=2*poly(0,var)*chepol(n-1,var)-chepol(n-2,var)</literal> with + <literal>T0=1</literal> and <literal>T1=poly(0,var)</literal>. + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +chepol(4,'x') + ]]></programlisting> + </refsection> +</refentry> diff --git a/modules/polynomials/help/en_US/cmndred.xml b/modules/polynomials/help/en_US/cmndred.xml new file mode 100755 index 000000000..2d1bd7123 --- /dev/null +++ b/modules/polynomials/help/en_US/cmndred.xml @@ -0,0 +1,58 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="cmndred"> + <refnamediv> + <refname>cmndred</refname> + <refpurpose>common denominator form</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>[n,d]=cmndred(num,den)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>num, den</term> + <listitem> + <para>two polynomial matrices of same dimensions</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal>[n,d]=cmndred(num,den)</literal> computes a polynomial matrix + <literal>n</literal> and a common denominator polynomial <literal>d</literal> + such that: + </para> + <para> + <literal>n/d=num./den</literal> + </para> + <para> + The rational matrix defined by <literal>num./den</literal> is <literal>n/d</literal> + </para> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="simp">simp</link> + </member> + <member> + <link linkend="clean">clean</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/en_US/coeff.xml b/modules/polynomials/help/en_US/coeff.xml new file mode 100755 index 000000000..ec158dc23 --- /dev/null +++ b/modules/polynomials/help/en_US/coeff.xml @@ -0,0 +1,90 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA - Serge STEER + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="coeff"> + <refnamediv> + <refname>coeff</refname> + <refpurpose>coefficients of matrix polynomial</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>[C]=coeff(Mp [,v])</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>Mp</term> + <listitem> + <para>polynomial matrix</para> + </listitem> + </varlistentry> + <varlistentry> + <term>v</term> + <listitem> + <para>integer (row or column) vector of selected degrees</para> + </listitem> + </varlistentry> + <varlistentry> + <term>C</term> + <listitem> + <para>big matrix of the coefficients</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal>C=coeff(Mp)</literal> + returns in a big matrix <literal>C</literal> the coefficients of the + polynomial matrix <literal>Mp</literal> . <literal>C</literal> is partitioned + as <literal>C=[C0,C1,...,Ck]</literal> + where the <literal>Ci</literal> are arranged in increasing order + <literal>k = max(degree(Mp))</literal> + </para> + <para> + <literal>C=coeff(Mp,v)</literal> returns the matrix of coefficients with + degree in <literal>v</literal> . (<literal>v</literal> is a row or column vector). + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +s=poly(0,'s'); +w=s*rand(10,10); +determ(w) +coeff(w,1) + +r = poly([0 -1+%i -1-%i],'s',"roots"); +coeff(r) + +r = poly([-1-%i -1+2*%i 0],'s',"roots"); +coeff(r) + + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="poly">poly</link> + </member> + <member> + <link linkend="degree">degree</link> + </member> + <member> + <link linkend="inv_coeff">inv_coeff</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/en_US/coffg.xml b/modules/polynomials/help/en_US/coffg.xml new file mode 100755 index 000000000..248e00e28 --- /dev/null +++ b/modules/polynomials/help/en_US/coffg.xml @@ -0,0 +1,78 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA - Francois DELBECQUE + * + * 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 + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="coffg"> + <refnamediv> + <refname>coffg</refname> + <refpurpose>inverse of polynomial matrix</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>[Ns,d]=coffg(Fs)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>Fs</term> + <listitem> + <para>square polynomial matrix</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal>coffg</literal> computes <literal>Fs^-1</literal> where <literal>Fs</literal> is a polynomial + matrix by co-factors method. + </para> + <para> + <literal>Fs</literal> inverse = <literal>Ns/d</literal> + </para> + <para> + <literal>d</literal> = common denominator; <literal>Ns</literal> = numerator (a polynomial matrix) + </para> + <para> + (For large matrices,be patient...results are generally reliable) + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +s=poly(0,'s') +a=[ s, s^2+1; s s^2-1]; +[a1,d]=coffg(a); +(a1/d)-inv(a) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="determ">determ</link> + </member> + <member> + <link linkend="detr">detr</link> + </member> + <member> + <link linkend="invr">invr</link> + </member> + <member> + <link linkend="penlaur">penlaur</link> + </member> + <member> + <link linkend="glever">glever</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/en_US/colcompr.xml b/modules/polynomials/help/en_US/colcompr.xml new file mode 100755 index 000000000..937e2ff72 --- /dev/null +++ b/modules/polynomials/help/en_US/colcompr.xml @@ -0,0 +1,78 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="colcompr"> + <refnamediv> + <refname>colcompr</refname> + <refpurpose>column compression of polynomial matrix</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>[Y,rk,ac]=colcompr(A);</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>A</term> + <listitem> + <para>polynomial matrix</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Y</term> + <listitem> + <para>square polynomial matrix (right unimodular basis)</para> + </listitem> + </varlistentry> + <varlistentry> + <term>rk</term> + <listitem> + <para> + normal rank of <literal>A</literal> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Ac</term> + <listitem> + <para> + <literal>Ac=A*Y</literal>, polynomial matrix + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + column compression of polynomial matrix <literal>A</literal> (compression to the left) + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +s=poly(0,'s'); +p=[s;s*(s+1)^2;2*s^2+s^3]; +[Y,rk,ac]=colcompr(p*p'); +p*p'*Y + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="rowcompr">rowcompr</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/en_US/degree.xml b/modules/polynomials/help/en_US/degree.xml new file mode 100755 index 000000000..014888c59 --- /dev/null +++ b/modules/polynomials/help/en_US/degree.xml @@ -0,0 +1,71 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="degree"> + <refnamediv> + <refname>degree</refname> + <refpurpose>degree of polynomial matrix</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>[D]=degree(M)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>M</term> + <listitem> + <para>polynomial matrix</para> + </listitem> + </varlistentry> + <varlistentry> + <term>D</term> + <listitem> + <para>integer matrix</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + returns the matrix of highest degrees of <literal>M</literal>. + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +v=[-2-5*%s+%s^2;-6+11*%s-6*%s^2+%s^3]; +degree(v) // should return 2 and 3 + +s=poly(0,"s"); +p=1+s+2*s^42; +degree(p) // should return 42 + ]]></programlisting> + </refsection> + + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="poly">poly</link> + </member> + <member> + <link linkend="coeff">coeff</link> + </member> + <member> + <link linkend="clean">clean</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/en_US/denom.xml b/modules/polynomials/help/en_US/denom.xml new file mode 100755 index 000000000..e90cee2f6 --- /dev/null +++ b/modules/polynomials/help/en_US/denom.xml @@ -0,0 +1,73 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="denom"> + <refnamediv> + <refname>denom</refname> + <refpurpose>denominator</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>den=denom(r)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>r</term> + <listitem> + <para>rational or polynomial or constant matrix.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>den</term> + <listitem> + <para>polynomial matrix</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal>den=denom(r)</literal> returns the denominator of a rational matrix. + </para> + <para> + Since rationals are internally represented as + <literal>r=list(['r','num','den','dt'],num,den,[])</literal>, + <literal>denom(r</literal>) is the same as <literal>r(3)</literal>, + <literal>r('den')</literal> or <literal>r.den</literal> + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +h=(1+2*%s)/poly(1:4,'s','c'); +denom(h) +numer(h) + +s=poly(0,"s"); +p=1+s+2*s^2; +denom(p) // Should return 1 +numer(p) + ]]></programlisting> + </refsection> + + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="numer">numer</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/en_US/derivat.xml b/modules/polynomials/help/en_US/derivat.xml new file mode 100755 index 000000000..862827aa5 --- /dev/null +++ b/modules/polynomials/help/en_US/derivat.xml @@ -0,0 +1,72 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="derivat"> + <refnamediv> + <refname>derivat</refname> + <refpurpose>Rational matrix derivative</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>pd=derivat(p)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>p</term> + <listitem> + <para>polynomial or rational matrix</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + The derivat() function works with expressions like + <latex>p(z) = \sum \limits_{i = -\infty}^{\infty} A_{i} z^{i}</latex> + which consists of functions of linear combinations with integer exponents of one variable (in the example denoted by z). + </para> + <para> + The function derivat() implements the analytical derivation of p(z), giving the following result. + <latex>\dfrac{d(p(z))}{d z} = \sum \limits_{i = -\infty}^{\infty} i A_{i} z^{i - 1}</latex> + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +s=poly(0,'s'); +derivat(1/s) // -1/s^2; + ]]></programlisting> + <programlisting role="example"><![CDATA[ +p1 = poly([1 -2 1], 'x', 'coeff') +derivat(p1) + ]]></programlisting> + <programlisting role="example"><![CDATA[ +p2 = poly([1 -4 2], 'y', 'coeff') +derivat(p2) + ]]></programlisting> + <programlisting role="example"><![CDATA[ +p3 = poly(ones(1, 10), 'z', 'coeff') +derivat(p3) + ]]></programlisting> + <programlisting role="example"><![CDATA[ +p4 = poly([-1 1], 't', 'roots') +derivat(p4) + ]]></programlisting> + <programlisting role="example"><![CDATA[ +s = %s; p5 = s^{-1} + 2 + 3*s +derivat(p5) + ]]></programlisting> + </refsection> +</refentry> diff --git a/modules/polynomials/help/en_US/determ.xml b/modules/polynomials/help/en_US/determ.xml new file mode 100755 index 000000000..88322216a --- /dev/null +++ b/modules/polynomials/help/en_US/determ.xml @@ -0,0 +1,81 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA - Francois DELBECQUE + * + * 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 + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="determ"> + <refnamediv> + <refname>determ</refname> + <refpurpose>determinant of polynomial matrix</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>res=determ(W [,k])</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>W</term> + <listitem> + <para>real square polynomial matrix</para> + </listitem> + </varlistentry> + <varlistentry> + <term>k</term> + <listitem> + <para>integer (upper bound for the degree of the determinant of W)</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + returns the determinant of a real polynomial matrix + (computation made by FFT if W size is greater than 2*2). + </para> + <para> + <literal>res=determ(W [,k])</literal><literal>k</literal> is an integer larger than the actual degree of the determinant + of <literal>W</literal>. + </para> + <para> + The default value of <literal>k</literal> is the smallest power of 2 which is larger + than <literal>n*max(degree(W))</literal>. + </para> + <para> + Method (Only if W size is greater than 2*2) : evaluate the determinant of <literal>W</literal> for the Fourier frequencies + and apply inverse FFT to the coefficients of the determinant. + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +s=poly(0,'s'); +w=s*rand(10,10); +determ(w) +det(coeff(w,1))*s^10 + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="det">det</link> + </member> + <member> + <link linkend="detr">detr</link> + </member> + <member> + <link linkend="coffg">coffg</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/en_US/detr.xml b/modules/polynomials/help/en_US/detr.xml new file mode 100755 index 000000000..2d34f2f9d --- /dev/null +++ b/modules/polynomials/help/en_US/detr.xml @@ -0,0 +1,74 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="detr"> + <refnamediv> + <refname>detr</refname> + <refpurpose>polynomial determinant</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>d=detr(h)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>h</term> + <listitem> + <para>double or polynomial or rational square matrix</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal>d=detr(h)</literal> returns the determinant <literal>d</literal> of the double + or polynomial or rational function matrix <literal>h</literal>. + Based on Leverrier's algorithm. + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"> + <![CDATA[ +// Matrix of doubles +A = rand(5,5); +detr(A) + +A = A+%i; +detr(A) + +// Matrix of polynomials +x = poly(0, 'x') +A = [1+x 2 5; 3 4-x 3+x; x^2 1 x]; +detr(A) + +// Matrix of rationals +A = [1/x 2 3; 3 4/x 3/x; 1/x^2 1 1/x]; +detr(A) + ]]> + </programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="det">det</link> + </member> + <member> + <link linkend="determ">determ</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/en_US/diophant.xml b/modules/polynomials/help/en_US/diophant.xml new file mode 100755 index 000000000..821a0661f --- /dev/null +++ b/modules/polynomials/help/en_US/diophant.xml @@ -0,0 +1,72 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="diophant"> + <refnamediv> + <refname>diophant</refname> + <refpurpose>diophantine (Bezout) equation</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>[x,err]=diophant(p1p2,b)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>p1p2</term> + <listitem> + <para> + polynomial vector <literal>p1p2 = [p1 p2]</literal> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>b</term> + <listitem> + <para>polynomial</para> + </listitem> + </varlistentry> + <varlistentry> + <term>x</term> + <listitem> + <para>polynomial vector [x1; x2]</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal>diophant</literal> solves the bezout equation: + </para> + <para> + <literal>p1*x1+p2*x2=b</literal> with <literal>p1p2</literal> a polynomial vector. + If the equation is not solvable, <literal>err = ||p1*x1 + p2*x2 - b|| / ||b||</literal> + </para> + <para> + else <literal>err = 0</literal>. + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +s = poly(0, 's'); +p1 = (s+3)^2; +p2 = (1+s); +x1 = s; +x2 = (2+s); +[x,err] = diophant([p1 p2], p1*x1 + p2*x2); +p1*x1 + p2*x2 - p1*x(1) - p2*x(2) + ]]></programlisting> + </refsection> +</refentry> diff --git a/modules/polynomials/help/en_US/factors.xml b/modules/polynomials/help/en_US/factors.xml new file mode 100755 index 000000000..80f97dfb0 --- /dev/null +++ b/modules/polynomials/help/en_US/factors.xml @@ -0,0 +1,126 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="factors"> + <refnamediv> + <refname>factors</refname> + <refpurpose>numeric real factorization</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>[lnum,g]=factors(pol [,'flag']) + [lnum,lden,g]=factors(rat [,'flag']) + rat=factors(rat,'flag') + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>pol</term> + <listitem> + <para>real polynomial</para> + </listitem> + </varlistentry> + <varlistentry> + <term>rat</term> + <listitem> + <para> + real rational polynomial (<literal>rat=pol1/pol2</literal>) + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>lnum</term> + <listitem> + <para>list of polynomials (of degrees 1 or 2)</para> + </listitem> + </varlistentry> + <varlistentry> + <term>lden</term> + <listitem> + <para>list of polynomials (of degrees 1 or 2)</para> + </listitem> + </varlistentry> + <varlistentry> + <term>g</term> + <listitem> + <para>real number</para> + </listitem> + </varlistentry> + <varlistentry> + <term>flag</term> + <listitem> + <para> + character string <literal>'c'</literal> or <literal>'d'</literal> + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + returns the factors of polynomial <literal>pol</literal> in the list <literal>lnum</literal> + and the "gain" g. + </para> + <para> + One has pol= g times product of entries of the list <literal>lnum</literal> + (if <literal>flag</literal> is not given). If <literal>flag='c'</literal> is given, then + one has <literal>|pol(i omega)|</literal> = <literal>|g*prod(lnum_j(i omega)|</literal>. + If <literal>flag='d'</literal> is given, then + one has <literal>|pol(exp(i omega))|</literal> = <literal>|g*prod(lnum_i(exp(i omega))|</literal>. + If argument of <literal>factors</literal> is a 1x1 rational <literal>rat=pol1/pol2</literal>, + the factors of the numerator <literal>pol1</literal> and the denominator <literal>pol2</literal> + are returned in the lists <literal>lnum</literal> and <literal>lden</literal> respectively. + </para> + <para> + The "gain" is returned as <literal>g</literal>,i.e. one has: + rat= g times (product entries in lnum) / (product entries in lden). + </para> + <para> + If <literal>flag</literal> is <literal>'c'</literal> (resp. <literal>'d'</literal>), the roots of <literal>pol</literal> + are refected wrt the imaginary axis (resp. the unit circle), i.e. + the factors in <literal>lnum</literal> are stable polynomials. + </para> + <para> + Same thing if <literal>factors</literal> is invoked with a rational arguments: + the entries in <literal>lnum</literal> and <literal>lden</literal> are stable polynomials if + <literal>flag</literal> is given. <literal>R2=factors(R1,'c')</literal> or <literal>R2=factors(R1,'d')</literal> + with <literal>R1</literal> a rational function or SISO <literal>syslin</literal> list then the + output <literal>R2</literal> is a transfer with stable numerator and denominator and + with same magnitude as <literal>R1</literal> along the imaginary axis (<literal>'c'</literal>) + or unit circle (<literal>'d'</literal>). + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +n=poly([0.2,2,5],'z'); +d=poly([0.1,0.3,7],'z'); +R=syslin('d',n,d); +R1=factors(R,'d') +roots(R1('num')) +roots(R1('den')) +w=exp(2*%i*%pi*[0:0.1:1]); +norm(abs(horner(R1,w))-abs(horner(R,w))) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="simp">simp</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/en_US/hermit.xml b/modules/polynomials/help/en_US/hermit.xml new file mode 100755 index 000000000..4b8b4f695 --- /dev/null +++ b/modules/polynomials/help/en_US/hermit.xml @@ -0,0 +1,80 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="hermit"> + <refnamediv> + <refname>hermit</refname> + <refpurpose>Hermite form</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>[Ar,U]=hermit(A)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>A</term> + <listitem> + <para>polynomial matrix</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Ar</term> + <listitem> + <para>triangular polynomial matrix</para> + </listitem> + </varlistentry> + <varlistentry> + <term>U</term> + <listitem> + <para>unimodolar polynomial matrix</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + Hermite form: <literal>U</literal> is an unimodular matrix such that <literal>A*U</literal> is + in Hermite triangular form: + </para> + <para> + The output variable is <literal>Ar=A*U</literal>. + </para> + <para> + <warning> + Warning: Experimental version + </warning> + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +s=poly(0,'s'); +p=[s, s*(s+1)^2, 2*s^2+s^3]; +[Ar,U]=hermit(p'*p); +clean(p'*p*U), det(U) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="hrmt">hrmt</link> + </member> + <member> + <link linkend="htrianr">htrianr</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/en_US/horner.xml b/modules/polynomials/help/en_US/horner.xml new file mode 100755 index 000000000..d3b7d471b --- /dev/null +++ b/modules/polynomials/help/en_US/horner.xml @@ -0,0 +1,94 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="horner"> + <refnamediv> + <refname>horner</refname> + <refpurpose>polynomial/rational evaluation</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>horner(P,x)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>P</term> + <listitem> + <para>polynomial or rational matrix</para> + </listitem> + </varlistentry> + <varlistentry> + <term>x</term> + <listitem> + <para> array of numbers or polynomials or rationals</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + evaluates the polynomial or rational + matrix <literal>P = P(s)</literal> when the variable <literal>s</literal> of the + polynomial is replaced by <literal>x</literal>: + </para> + <para> + <literal>horner(P,x)</literal>=<literal>P(x)</literal> + </para> + <para> + Example (Bilinear transform): Assume <literal>P = P(s)</literal> is + a rational matrix then the rational matrix + <literal>P((1+s)/(1-s))</literal> is obtained by <literal>horner(P,(1+s)/(1-s))</literal>. + </para> + <para> + To evaluate a rational matrix at given frequencies use + preferably the <literal>freq</literal> primitive. + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +//evaluation of a polynomial for a vector of numbers +P=poly(1:3,'x') +horner(P,[1 2 5]) +horner(P,[1 2 5]+%i) + +//evaluation of a rational +s=poly(0,'s');M=[s,1/s]; +horner(M,1) +horner(M,%i) +horner(M,1/s) + +//evaluation of a polynomial for a matrix of numbers +X= [1 2;3 4] +p=poly(1:3,'x','c') +m=horner(p, X) +1*X.^0+2*X.^1+3*X.^2 + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="freq">freq</link> + </member> + <member> + <link linkend="repfreq">repfreq</link> + </member> + <member> + <link linkend="evstr">evstr</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/en_US/hrmt.xml b/modules/polynomials/help/en_US/hrmt.xml new file mode 100755 index 000000000..2882df4d8 --- /dev/null +++ b/modules/polynomials/help/en_US/hrmt.xml @@ -0,0 +1,74 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="hrmt"> + <refnamediv> + <refname>hrmt</refname> + <refpurpose>gcd of polynomials</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>[pg,U]=hrmt(v)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>v</term> + <listitem> + <para> + row of polynomials i.e. <literal>1</literal>x<literal>k</literal> polynomial matrix + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>pg</term> + <listitem> + <para>polynomial</para> + </listitem> + </varlistentry> + <varlistentry> + <term>U</term> + <listitem> + <para>unimodular matrix polynomial</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal>[pg,U]=hrmt(v)</literal> returns a unimodular matrix <literal>U</literal> and <literal>pg</literal> = gcd of row of + polynomials <literal>v</literal> such that <literal>v*U = [pg,0]</literal>. + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +x=poly(0,'x'); +v=[x*(x+1),x^2*(x+1),(x-2)*(x+1),(3*x^2+2)*(x+1)]; +[pg,U]=hrmt(v);U=clean(U) +det(U) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="gcd">gcd</link> + </member> + <member> + <link linkend="htrianr">htrianr</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/en_US/htrianr.xml b/modules/polynomials/help/en_US/htrianr.xml new file mode 100755 index 000000000..bdb6383cb --- /dev/null +++ b/modules/polynomials/help/en_US/htrianr.xml @@ -0,0 +1,91 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="htrianr"> + <refnamediv> + <refname>htrianr</refname> + <refpurpose>triangularization of polynomial matrix</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>[Ar,U,rk]=htrianr(A)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>A</term> + <listitem> + <para>polynomial matrix</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Ar</term> + <listitem> + <para>polynomial matrix</para> + </listitem> + </varlistentry> + <varlistentry> + <term>U</term> + <listitem> + <para>unimodular polynomial matrix</para> + </listitem> + </varlistentry> + <varlistentry> + <term>rk</term> + <listitem> + <para> + integer, normal rank of <literal>A</literal> + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + triangularization of polynomial matrix <literal>A</literal>. + </para> + <para> + <literal>A</literal> is <literal>[m,n]</literal> , <literal>m <= n</literal>. + </para> + <para> + <literal>Ar=A*U</literal> + </para> + <para> + <warning> + Warning: there is an elimination of "small" terms (see function code). + </warning> + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +x=poly(0,'x'); +M=[x;x^2;2+x^3]*[1,x-2,x^4]; +[Mu,U,rk]=htrianr(M) +det(U) +M*U(:,1:2) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="hrmt">hrmt</link> + </member> + <member> + <link linkend="colcompr">colcompr</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/en_US/inv_coeff.xml b/modules/polynomials/help/en_US/inv_coeff.xml new file mode 100755 index 000000000..d5c98a112 --- /dev/null +++ b/modules/polynomials/help/en_US/inv_coeff.xml @@ -0,0 +1,72 @@ +<?xml version="1.0" encoding="UTF-8"?> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="inv_coeff"> + <refnamediv> + <refname>inv_coeff</refname> + <refpurpose>build a polynomial matrix from its coefficients</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>[P]=inv_coeff(C,[,d,[name])</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>C</term> + <listitem> + <para>a big matrix of the coefficients</para> + </listitem> + </varlistentry> + <varlistentry> + <term>d</term> + <listitem> + <para> + a polynomial matrix degree. The optional parameter with default value <literal>d=-1+size(C,'c')/size(C,'r')</literal> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>name</term> + <listitem> + <para> + a string giving the polynomial variable name (default value <literal>'x'</literal>). + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal>P=inv_coeff(Mp,k)</literal>, when <literal>k</literal> is compatible with <literal>Mp</literal> + size, returns a polynomial matrix of degree <literal>k</literal>. <literal>C=[C0,C1,...,Ck]</literal> and + <literal>P= C0 + C1*x +... +Ck*x^k</literal>. + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +A=int(10*rand(2,6)) +// Building a degree 1 polynomial matrix +P=inv_coeff(A,1) +norm(coeff(P)-A) +// Using default value for degree +P1=inv_coeff(A) +norm(coeff(P1)-A) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="poly">poly</link> + </member> + <member> + <link linkend="degree">degree</link> + </member> + <member> + <link linkend="coeff">coeff</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/en_US/invr.xml b/modules/polynomials/help/en_US/invr.xml new file mode 100755 index 000000000..bf57d29c1 --- /dev/null +++ b/modules/polynomials/help/en_US/invr.xml @@ -0,0 +1,69 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="invr"> + <refnamediv> + <refname>invr</refname> + <refpurpose>inversion of (rational) matrix</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>F = invr(H)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>H</term> + <listitem> + <para>polynomial or rational matrix</para> + </listitem> + </varlistentry> + <varlistentry> + <term>F</term> + <listitem> + <para>polynomial or rational matrix</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + If <literal>H</literal> is a polynomial or rational function matrix, <literal>invr</literal> + computes <literal>H^(-1)</literal> using Leverrier's algorithm (see function code) + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +s=poly(0,'s') +H=[s,s*s+2;1-s,1+s]; invr(H) +[Num,den]=coffg(H);Num/den +H=[1/s,(s+1);1/(s+2),(s+3)/s];invr(H) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="glever">glever</link> + </member> + <member> + <link linkend="coffg">coffg</link> + </member> + <member> + <link linkend="inv">inv</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/en_US/lcmdiag.xml b/modules/polynomials/help/en_US/lcmdiag.xml new file mode 100755 index 000000000..320272633 --- /dev/null +++ b/modules/polynomials/help/en_US/lcmdiag.xml @@ -0,0 +1,90 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="lcmdiag"> + <refnamediv> + <refname>lcmdiag</refname> + <refpurpose>least common multiple diagonal factorization</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>[N,D]=lcmdiag(H) + [N,D]=lcmdiag(H,flag) + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>H</term> + <listitem> + <para>rational matrix</para> + </listitem> + </varlistentry> + <varlistentry> + <term>N</term> + <listitem> + <para>polynomial matrix</para> + </listitem> + </varlistentry> + <varlistentry> + <term>D</term> + <listitem> + <para>diagonal polynomial matrix</para> + </listitem> + </varlistentry> + <varlistentry> + <term>flag</term> + <listitem> + <para> + character string: <literal>'row'</literal> or <literal>'col'</literal> (default) + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal>[N,D]=lcmdiag(H,'row')</literal> computes a factorization <literal>D*H=N</literal>, + i.e. <literal>H=D^(-1)*N</literal> where D is a diagonal matrix with D(k,k)=lcm of + kth row of H('den'). + </para> + <para> + <literal>[N,D]=lcmdiag(H)</literal> or <literal>[N,D]=lcmdiag(H,'col)</literal> returns + <literal>H=N*D^(-1)</literal> with diagonal D and D(k,k)=lcm of kth col of H('den') + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +s=poly(0,'s'); +H=[1/s,(s+2)/s/(s+1)^2;1/(s^2*(s+2)),2/(s+2)]; +[N,D]=lcmdiag(H); +N/D-H + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="lcm">lcm</link> + </member> + <member> + <link linkend="gcd">gcd</link> + </member> + <member> + <link linkend="bezout">bezout</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/en_US/ldiv.xml b/modules/polynomials/help/en_US/ldiv.xml new file mode 100755 index 000000000..fbad2be45 --- /dev/null +++ b/modules/polynomials/help/en_US/ldiv.xml @@ -0,0 +1,77 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="ldiv"> + <refnamediv> + <refname>ldiv</refname> + <refpurpose>polynomial matrix long division</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>[x]=ldiv(n,d,k)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>n,d</term> + <listitem> + <para>two real polynomial matrices</para> + </listitem> + </varlistentry> + <varlistentry> + <term>k</term> + <listitem> + <para>integer</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal>x=ldiv(n,d,k)</literal> gives the <literal>k</literal> first coefficients of the long + division of <literal>n</literal> by <literal>d</literal> i.e. the Taylor expansion of the rational + matrix <literal>[nij(z)/dij(z)]</literal> near infinity. + </para> + <para> + Coefficients of expansion of <literal>nij/dij</literal> are stored in + <literal>x((i-1)*n+k,j) k=1:n</literal> + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +wss=ssrand(1,1,3);[a,b,c,d]=abcd(wss); +wtf=ss2tf(wss); +x1=ldiv(numer(wtf),denom(wtf),5) +x2=[c*b;c*a*b;c*a^2*b;c*a^3*b;c*a^4*b] +wssbis=markp2ss(x1',5,1,1); +wtfbis=clean(ss2tf(wssbis)) +x3=ldiv(numer(wtfbis),denom(wtfbis),5) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="arl2">arl2</link> + </member> + <member> + <link linkend="markp2ss">markp2ss</link> + </member> + <member> + <link linkend="pdiv">pdiv</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/en_US/numer.xml b/modules/polynomials/help/en_US/numer.xml new file mode 100755 index 000000000..06ac349d4 --- /dev/null +++ b/modules/polynomials/help/en_US/numer.xml @@ -0,0 +1,68 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="numer"> + <refnamediv> + <refname>numer</refname> + <refpurpose>numerator</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>num=numer(R)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>R</term> + <listitem> + <para>rational or polynomial or constant matrix.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>num</term> + <listitem> + <para>polynomial matrix</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + Utility fonction. <literal>num=numer(R)</literal> returns the numerator <literal>num</literal> of a rational + function matrix <literal>R</literal> (<literal>R</literal> may be also a constant or polynomial matrix). + <literal>numer(R)</literal> is equivalent to <literal>R(2)</literal>, <literal>R('num')</literal> or <literal>R.num</literal> + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +h=(1+2*%s)/poly(1:4,'s','c'); +denom(h) +numer(h) + +s=poly(0,"s"); +p=1+s+2*s^2; +denom(p) // Should return 1 +numer(p) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="denom">denom</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/en_US/pdiv.xml b/modules/polynomials/help/en_US/pdiv.xml new file mode 100755 index 000000000..d8e07f2c1 --- /dev/null +++ b/modules/polynomials/help/en_US/pdiv.xml @@ -0,0 +1,79 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="pdiv"> + <refnamediv> + <refname>pdiv</refname> + <refpurpose>polynomial division</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>[R,Q]=pdiv(P1,P2) + [Q]=pdiv(P1,P2) + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>P1</term> + <listitem> + <para>polynomial matrix</para> + </listitem> + </varlistentry> + <varlistentry> + <term>P2</term> + <listitem> + <para>polynomial or polynomial matrix</para> + </listitem> + </varlistentry> + <varlistentry> + <term>R,Q</term> + <listitem> + <para>two polynomial matrices</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + Element-wise euclidan division of the polynomial matrix <literal>P1</literal> + by the polynomial <literal>P2</literal> or by the polynomial matrix <literal>P2</literal>. + <literal>Rij</literal> is the matrix of remainders, <literal>Qij</literal> is the matrix + of quotients and <literal>P1ij = Qij*P2 + Rij</literal> or <literal>P1ij = Qij*P2ij + Rij</literal>. + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +x=poly(0,'x'); +p1=(1+x^2)*(1-x);p2=1-x; +[r,q]=pdiv(p1,p2) +p2*q-p1 +p2=1+x; +[r,q]=pdiv(p1,p2) +p2*q+r-p1 + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="ldiv">ldiv</link> + </member> + <member> + <link linkend="gcd">gcd</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/en_US/pol2str.xml b/modules/polynomials/help/en_US/pol2str.xml new file mode 100755 index 000000000..79878bfbe --- /dev/null +++ b/modules/polynomials/help/en_US/pol2str.xml @@ -0,0 +1,88 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * Copyright (C) 2013 - Samuel GOUGEON : upgrade for 5.5.0 + * + * 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 + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="pol2str"> + <refnamediv> + <refname>pol2str</refname> + <refpurpose>polynomial to string conversion</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>strs = pol2str(p)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>p</term> + <listitem> + <para>matrix or hypermatrix of polynomials with real or complex coefficients</para> + </listitem> + </varlistentry> + <varlistentry> + <term>strs</term> + <listitem> + <para>matrix or hypermatrix of strings</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + converts polynomial to character string (utility function). + </para> + <para> + <note> + The output format of coefficients is set through <link linkend="format">format(..)</link>. + </note> + </para> + </refsection> + + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +pol2str(%z) + +p = poly ([1, 2, 3], "x","coeff"); +pol2str(p) + +p = (1+%i+%z)^(1:4) +pol2str(p) + ]]></programlisting> + </refsection> + + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="string">string</link> + </member> + <member> + <link linkend="prettyprint">prettyprint</link> + </member> + <member> + <link linkend="sci2exp">sci2exp</link> + </member> + </simplelist> + </refsection> + <refsection role="history tag"> + <title>History</title> + <revhistory> + <revision> + <revnumber>5.5.0</revnumber> + <revdescription>pol2str() extended to polynomials with complex coefficients and to hypermatrix. Array processing vectorized.</revdescription> + </revision> + </revhistory> + </refsection> +</refentry> diff --git a/modules/polynomials/help/en_US/polfact.xml b/modules/polynomials/help/en_US/polfact.xml new file mode 100755 index 000000000..6b152b9d1 --- /dev/null +++ b/modules/polynomials/help/en_US/polfact.xml @@ -0,0 +1,88 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA - Serge STEER + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="polfact"> + <refnamediv> + <refname>polfact</refname> + <refpurpose>minimal factors</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>[f]=polfact(p)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>p</term> + <listitem> + <para>polynomial</para> + </listitem> + </varlistentry> + <varlistentry> + <term>f</term> + <listitem> + <para> + vector <literal>[f0 f1 ... fn]</literal> such that <literal>p=prod(f)</literal> + </para> + <variablelist> + <varlistentry> + <term>f0</term> + <listitem> + <para>constant</para> + </listitem> + </varlistentry> + <varlistentry> + <term>fi</term> + <listitem> + <para>polynomial</para> + </listitem> + </varlistentry> + </variablelist> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal>f=polfact(p)</literal> returns the minimal factors of p i.e. <literal>f=[f0 f1 ... fn]</literal> such + that <literal>p=prod(f)</literal> + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +x = poly(0,"x") +polfact(x^2-1) + +polfact(x^7-1) + + + ]]></programlisting> + </refsection> + + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="lcm">lcm</link> + </member> + <member> + <link linkend="cmndred">cmndred</link> + </member> + <member> + <link linkend="factors">factors</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/en_US/poly.xml b/modules/polynomials/help/en_US/poly.xml new file mode 100755 index 000000000..5f70c732c --- /dev/null +++ b/modules/polynomials/help/en_US/poly.xml @@ -0,0 +1,136 @@ +<?xml version="1.0" encoding="UTF-8"?> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="poly"> + <refnamediv> + <refname>poly</refname> + <refpurpose>polynomial definition</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>p = poly(a, vname, ["flag"])</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>a</term> + <listitem> + <para>a matrix or real number</para> + </listitem> + </varlistentry> + <varlistentry> + <term>vname</term> + <listitem> + <para>a string, the symbolic variable name. The string must be 4 characters max. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>"flag"</term> + <listitem> + <para> + string (<literal>"roots"</literal>, <literal>"coeff"</literal>), + default value is <literal>"roots"</literal>. + </para> + <para> + Shortcuts can be also used: <literal>"r"</literal> for <literal>"roots"</literal> and <literal>"c"</literal> for <literal>"coeff"</literal>. + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <variablelist> + <varlistentry> + <term> + If <literal>a</literal> is a matrix, + </term> + <listitem> + <para> + <varname>p</varname> is the characteristic + polynomial i.e. <code>determinant(x*eye()-a)</code>, <literal>x</literal> being + the symbolic variable. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term> + If <literal>v</literal> is a vector, + </term> + <listitem> + <itemizedlist> + <listitem> + <para> + <code>poly(v,"x",["roots"])</code> is the polynomial + with <literal>roots</literal> the entries of <varname>v</varname> and + <literal>"x"</literal> as formal variable. (In this case, + <function>roots</function> and <function>poly</function> are inverse functions). + <note> + Note that Infinite roots gives zero highest degree coefficients. + </note> + </para> + </listitem> + <listitem> + <para> + <code>poly(v,"x","coeff")</code> creates the + polynomial with symbol <literal>"x"</literal> and with coefficients + the entries of <varname>v</varname> (<code>v(1)</code> is the constant term + of the polynomial). (Here <function>poly</function> and <function>coeff</function> are inverse functions). + </para> + </listitem> + </itemizedlist> + </listitem> + </varlistentry> + </variablelist> + <para> + <code>s=poly(0,"s")</code> is the seed for defining + polynomials with symbol <literal>"s"</literal>. + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +s=poly(0,"s"); +p=1+s+2*s^2 +A=rand(2,2); +poly(A,"x") +//rational fractions +h=(1+2*%s)/poly(1:4,'s','coeff') + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="coeff">coeff</link> + </member> + <member> + <link linkend="roots">roots</link> + </member> + <member> + <link linkend="varn">varn</link> + </member> + <member> + <link linkend="horner">horner</link> + </member> + <member> + <link linkend="derivat">derivat</link> + </member> + <member> + <link linkend="matrices">matrices</link> + </member> + <member> + <link linkend="rational">rational</link> + </member> + </simplelist> + </refsection> + <refsection> + <title>History</title> + <revhistory> + <revision> + <revnumber>5.5.0</revnumber> + <revremark>The only values allowed for the third argument are "roots", "coeff", "c" and "r".</revremark> + </revision> + </revhistory> + </refsection> +</refentry> diff --git a/modules/polynomials/help/en_US/rational.xml b/modules/polynomials/help/en_US/rational.xml new file mode 100755 index 000000000..fa20b3f49 --- /dev/null +++ b/modules/polynomials/help/en_US/rational.xml @@ -0,0 +1,48 @@ +<?xml version="1.0" encoding="UTF-8"?> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="rational"> + <refnamediv> + <refname>rational</refname> + <refpurpose>Scilab objects, rational in Scilab</refpurpose> + </refnamediv> + <refsection> + <title>Description</title> + <para> + A rational <literal>r</literal> is a quotient of two polynomials <literal>r=num/den</literal>. + The internal representation of a rational is a list. + <literal>r=tlist(['r','num','den','dt'],num,den,[])</literal> is the same as <literal>r=num/den</literal>. + A rational matrix can be defined with the usual syntax + e.g. <literal>[r11,r12;r21,r22]</literal> is a 2x2 matrix where <literal>rij</literal> are + 1x1 rationals. + A rational matrix can also be defined as above as a list + <literal>rlist(num,den,[])</literal> with <literal>num</literal> and <literal>den</literal> polynomial matrices. + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +s=poly(0,'s'); +W=[1/s,1/(s+1)] +W'*W +Num=[s,s+2;1,s];Den=[s*s,s;s,s*s]; +rlist(Num,Den,[]) +H=Num./Den +syslin('c',Num,Den) +syslin('c',H) +[Num1,Den1]=simp(Num,Den) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="poly">poly</link> + </member> + <member> + <link linkend="syslin">syslin</link> + </member> + <member> + <link linkend="simp">simp</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/en_US/residu.xml b/modules/polynomials/help/en_US/residu.xml new file mode 100755 index 000000000..fef55e15d --- /dev/null +++ b/modules/polynomials/help/en_US/residu.xml @@ -0,0 +1,84 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA - Francois DELBECQUE + * + * 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 + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="residu"> + <refnamediv> + <refname>residu</refname> + <refpurpose>residue</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>[V]=residu(P,Q1,Q2)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>P, Q1, Q2</term> + <listitem> + <para>polynomials or matrix polynomials with real or complex coefficients.</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal>V=residu(P,Q1,Q2)</literal> returns the matrix <literal>V</literal> + such that <literal>V(i,j)</literal> is the sum of the residues of the + rational fraction <literal>P(i,j)/(Q1(i,j)*Q2(i,j))</literal> calculated + at the zeros of <literal>Q1(i,j)</literal>. + </para> + <para> + <literal>Q1(i,j)</literal> and <literal>Q2(i,j)</literal> must not have any common root. + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +s=poly(0,'s'); +H=[s/(s+1)^2,1/(s+2)];N=numer(H);D=denom(H); +w=residu(N.*horner(N,-s),D,horner(D,-s)); //N(s) N(-s) / D(s) D(-s) +sqrt(sum(w)) //This is H2 norm +h2norm(tf2ss(H)) + +p=(s-1)*(s+1)*(s+2)*(s+10);a=(s-5)*(s-1)*(s*s)*((s+1/2)**2); +b=(s-3)*(s+2/5)*(s+3); +residu(p,a,b)+531863/4410 //Exact +z=poly(0,'z');a=z^3+0.7*z^2+0.5*z-0.3;b=z^3+0.3*z^2+0.2*z+0.1; +atild=gtild(a,'d');btild=gtild(b,'d'); +residu(b*btild,z*a,atild)-2.9488038 //Exact +a=a+0*%i;b=b+0*%i; +real(residu(b*btild,z*a,atild)-2.9488038) //Complex case + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="pfss">pfss</link> + </member> + <member> + <link linkend="bdiag">bdiag</link> + </member> + <member> + <link linkend="roots">roots</link> + </member> + <member> + <link linkend="poly">poly</link> + </member> + <member> + <link linkend="gtild">gtild</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/en_US/roots.xml b/modules/polynomials/help/en_US/roots.xml new file mode 100755 index 000000000..20d034a79 --- /dev/null +++ b/modules/polynomials/help/en_US/roots.xml @@ -0,0 +1,178 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * Copyright (C) 2011 - DIGITEO - Michael Baudin + * + * 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 + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="roots" xml:lang="en"> + <refnamediv> + <refname>roots</refname> + <refpurpose>roots of polynomials</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis> + x=roots(p) + x=roots(p,algo) + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>p</term> + <listitem> + <para> + a polynomial with real or complex coefficients, or + a m-by-1 or 1-by-m matrix of doubles, the polynomial coefficients in decreasing degree order. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>algo</term> + <listitem> + <para> + a string, the algorithm to be used (default algo="e"). + If algo="e", then the eigenvalues of the companion matrix are returned. + If algo="f", then the Jenkins-Traub method is used (if the polynomial is real and + has degree lower than 100). + If algo="f" and the polynomial is complex, then an error is generated. + If algo="f" and the polynomial has degree greater than 100, then an error is generated. + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + This function returns in the complex vector + <literal>x</literal> the roots of the polynomial <literal>p</literal>. + </para> + <para> + The "e" option corresponds to method based on the eigenvalues of the + companion matrix. + </para> + <para> + The "f" option corresponds to the fast RPOLY algorithm, based on + Jenkins-Traub method. + </para> + <para> + For real polynomials of degree <=100, users may consider the "f" option, + which might be faster in some cases. + On the other hand, some specific polynomials are known to be able to + make this option to fail. + For instance, <literal>p=poly([1.e300,1.e0,1.e-300],'x');</literal> + provokes infinite looping of <literal>roots(p,"f")</literal> + </para> + </refsection> + <refsection> + <title>Examples</title> + <para> + In the following examples, we compute roots of polynomials. + </para> + <programlisting role="example"><![CDATA[ +// Roots given a real polynomial +p = poly([1 2 3],"x") +roots(p) +// Roots, given the real coefficients +p = [3 2 1] +roots(p) +// The roots of a complex polynomial +p=poly([0,10,1+%i,1-%i],'x'); +roots(p) +// The roots of the polynomial of a matrix +A=rand(3,3); +p = poly(A,'x') +roots(p) +spec(A) + ]]></programlisting> + <para> + The polynomial representation can have a significant + impact on the roots. + In the following example, suggested by Wilkinson in the 60s and presented by Moler, + we consider a diagonal matrix with diagonal entries equal to 1, 2, ..., 20. + The eigenvalues are obviously equal to 1, 2, ..., 20. + If we compute the associated characteristic polynomial and compute its roots, + we can see that the eigenvalues are significantly different from the expected + ones. + This implies that just representing the coefficients as IEEE doubles changes the + roots. + </para> + <programlisting role="example"><![CDATA[ +A = diag(1:20); +p = poly(A,'x') +roots(p) + ]]></programlisting> + <para> + The "f" option produces an error if the polynomial is complex or + if the degree is greater than 100. + </para> + <programlisting role="example"><![CDATA[ + // The following case produces an error. + p = %i+%s; + roots(p,"f") + // The following case produces an error. + p = ones(101,1); + roots(p,"f") + ]]></programlisting> + <para> + The following script is a simple way of checking that the companion matrix gives the same result as the "e" option. + It explicitly uses the companion matrix to compute the roots. + There is a small step to reverse the coefficients of the polynomial ; + indeed, "roots" expects the coefficients in decreasing degree order, + while "poly" expects the coefficients in increasing degree order. + </para> + <programlisting role="example"><![CDATA[ +v= [1.12119799 0 3.512D+13 32 3.275D+27 0 1.117D+41 4.952D+27 1.722D+54 0 1.224D+67 0 3.262D+79 ]; +r1 = roots(v,"e"); // With "e" option +dv = size(v,"*"); +p = poly(v(dv:-1:1),"x","coeff"); // Reversing v's coefficients +A = companion(p); +r2 = spec(A); // With the companion matrix +max(abs(r1-r2)) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="poly">poly</link> + </member> + <member> + <link linkend="spec">spec</link> + </member> + <member> + <link linkend="companion">companion</link> + </member> + </simplelist> + </refsection> + <refsection> + <title>References</title> + <para> + The RPOLY algorithm is described in "Algorithm 493: Zeros of a Real + Polynomial", ACM TOMS Volume 1, Issue 2 (June 1975), pp. 178-189 + </para> + <para>Jenkins, M. A. and Traub, J. F. (1970), A Three-Stage Algorithm for + Real Polynomials Using Quadratic Iteration, SIAM J. Numer. Anal., 7(1970), 545-566. + </para> + <para>Jenkins, M. A. and Traub, J. F. (1970), Principles for Testing Polynomial Zerofinding Programs. + ACM TOMS 1, 1 (March 1975), pp. 26-34 + </para> + </refsection> + <refsection> + <title>Used Functions</title> + <para>The rpoly.f source codes can be found in the directory + SCI/modules/polynomials/src/fortran of a Scilab source distribution. In the case where the + companion matrix is used, the eigenvalue computation is perfomed using + DGEEV and ZGEEV LAPACK codes. + </para> + </refsection> +</refentry> diff --git a/modules/polynomials/help/en_US/rowcompr.xml b/modules/polynomials/help/en_US/rowcompr.xml new file mode 100755 index 000000000..06f19379a --- /dev/null +++ b/modules/polynomials/help/en_US/rowcompr.xml @@ -0,0 +1,78 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="rowcompr"> + <refnamediv> + <refname>rowcompr</refname> + <refpurpose>row compression of polynomial matrix</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>[X,rk,Ac]=rowcompr(A)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>A</term> + <listitem> + <para>polynomial matrix</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Y</term> + <listitem> + <para>square polynomial matrix (left unimodular basis)</para> + </listitem> + </varlistentry> + <varlistentry> + <term>rk</term> + <listitem> + <para> + normal rank of <literal>A</literal> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Ac</term> + <listitem> + <para> + <literal>Ac=X*A</literal>, polynomial matrix + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + row compression of polynomial matrix <literal>A</literal>. + </para> + <para> + <literal>X</literal> is a left polynomial unimodular basis which row compressed + thee rows of <literal>A</literal>. <literal>rk</literal> is the normal rank of A. + </para> + <para> + <warning> + Warning: elimination of "small" terms (use with care!). + </warning> + </para> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="colcompr">colcompr</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/en_US/sfact.xml b/modules/polynomials/help/en_US/sfact.xml new file mode 100755 index 000000000..2902e79e8 --- /dev/null +++ b/modules/polynomials/help/en_US/sfact.xml @@ -0,0 +1,94 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="sfact"> + <refnamediv> + <refname>sfact</refname> + <refpurpose>discrete time spectral factorization</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>F=sfact(P)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>P</term> + <listitem> + <para>real polynomial matrix</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + Finds <literal>F</literal>, a spectral factor of + <literal>P</literal>. <literal>P</literal> is a polynomial matrix such that + each root of <literal>P</literal> has a mirror image w.r.t the unit + circle. Problem is singular if a root is on the unit circle. + </para> + <para> + <literal>sfact(P)</literal> returns a polynomial matrix + <literal>F(z)</literal> which is antistable and such that + </para> + <para> + <literal>P = F(z)* F(1/z) *z^n</literal> + </para> + <para> + For scalar polynomials a specific algorithm is implemented. + Algorithms are adapted from Kucera's book. + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +//Simple polynomial example +z=poly(0,'z'); +p=(z-1/2)*(2-z) +w=sfact(p); +w*numer(horner(w,1/z)) + +//matrix example +F1=[z-1/2,z+1/2,z^2+2;1,z,-z;z^3+2*z,z,1/2-z]; +P=F1*gtild(F1,'d'); //P is symmetric +F=sfact(P) +roots(det(P)) +roots(det(gtild(F,'d'))) //The stable roots +roots(det(F)) //The antistable roots +clean(P-F*gtild(F,'d')) + +//Example of continuous time use +s=poly(0,'s'); +p=-3*(s+(1+%i))*(s+(1-%i))*(s+0.5)*(s-0.5)*(s-(1+%i))*(s-(1-%i));p=real(p); +//p(s) = polynomial in s^2 , looks for stable f such that p=f(s)*f(-s) +w=horner(p,(1-s)/(1+s)); // bilinear transform w=p((1-s)/(1+s)) +wn=numer(w); //take the numerator +fn=sfact(wn);f=numer(horner(fn,(1-s)/(s+1))); //Factor and back transform +f=f/sqrt(horner(f*gtild(f,'c'),0));f=f*sqrt(horner(p,0)); //normalization +roots(f) //f is stable +clean(f*gtild(f,'c')-p) //f(s)*f(-s) is p(s) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="gtild">gtild</link> + </member> + <member> + <link linkend="fspecg">fspecg</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/en_US/simp.xml b/modules/polynomials/help/en_US/simp.xml new file mode 100755 index 000000000..5d16c2790 --- /dev/null +++ b/modules/polynomials/help/en_US/simp.xml @@ -0,0 +1,110 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="simp"> + <refnamediv> + <refname>simp</refname> + <refpurpose>rational simplification</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>[N1,D1]=simp(N,D) + H1=simp(H) + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>N,D</term> + <listitem> + <para>real polynomials or real matrix polynomials</para> + </listitem> + </varlistentry> + <varlistentry> + <term>H</term> + <listitem> + <para> + rational matrix (i.e matrix with entries <literal>n/d</literal> ,<literal>n</literal> and <literal>d</literal> real polynomials) + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal>[n1,d1]=simp(n,d)</literal> calculates two polynomials <literal>n1</literal> and <literal>d1</literal> + such that <literal>n1/d1 = n/d</literal>. + </para> + <para> + If <literal>N</literal> and <literal>D</literal> are polynomial matrices the calculation + is performed element-wise. + </para> + <para> + <literal>H1=simp(H)</literal> is also valid (each entry of <literal>H</literal> is + simplified in <literal>H1</literal>). + </para> + <para> + <warning> + Caution: + </warning> + </para> + <para> + -no threshold is given i.e. <literal>simp</literal> cannot forces a + simplification. + </para> + <para> + -For linear dynamic systems which include integrator(s) simplification + changes the static gain. (<literal>H(0)</literal> for continuous systems or <literal>H(1)</literal> for + discrete systems) + </para> + <para> + -for complex data, <literal>simp</literal> returns its input(s). + </para> + <para> + -rational simplification is called after nearly each operations on + rationals. It is possible to toggle simplification on or off using + <literal>simp_mode</literal> function. + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +s=poly(0,'s'); +[n,d]=simp((s+1)*(s+2),(s+1)*(s-2)) + +simp_mode(%F);hns=s/s +simp_mode(%T);hns=s/s + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="roots">roots</link> + </member> + <member> + <link linkend="trfmod">trfmod</link> + </member> + <member> + <link linkend="poly">poly</link> + </member> + <member> + <link linkend="clean">clean</link> + </member> + <member> + <link linkend="simp_mode">simp_mode</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/en_US/simp_mode.xml b/modules/polynomials/help/en_US/simp_mode.xml new file mode 100755 index 000000000..74c8af548 --- /dev/null +++ b/modules/polynomials/help/en_US/simp_mode.xml @@ -0,0 +1,71 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="simp_mode"> + <refnamediv> + <refname>simp_mode</refname> + <refpurpose>toggle rational simplification</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>mod=simp_mode() + simp_mode(mod) + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>mod</term> + <listitem> + <para>a boolean</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + rational simplification is called after nearly each operations on + rationals. It is possible to toggle simplification on or off using + <literal>simp_mode</literal> function. + </para> + <para> + <literal>simp_mode(%t)</literal> set rational simplification mode on + </para> + <para> + <literal>simp_mode(%f)</literal> set rational simplification mode off + </para> + <para> + <literal>mod=simp_mode()</literal> returns in mod the current rational + simplification mode + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +s=poly(0,'s'); +mod=simp_mode() +simp_mode(%f);hns=s/s +simp_mode(%t);hns=s/s +simp_mode(mod); + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="simp">simp</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/en_US/sylm.xml b/modules/polynomials/help/en_US/sylm.xml new file mode 100755 index 000000000..26b7d8425 --- /dev/null +++ b/modules/polynomials/help/en_US/sylm.xml @@ -0,0 +1,78 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="sylm"> + <refnamediv> + <refname>sylm</refname> + <refpurpose>Sylvester matrix</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>[S]=sylm(a,b)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>a,b</term> + <listitem> + <para>two polynomials</para> + </listitem> + </varlistentry> + <varlistentry> + <term>S</term> + <listitem> + <para>matrix</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal>sylm(a,b)</literal> gives the Sylvester matrix associated to polynomials + <literal>a</literal> and <literal>b</literal>, i.e. the matrix <literal>S</literal> such that: + </para> + <para> + <literal>coeff( a*x + b*y )' = S * [coeff(x)';coeff(y)']</literal>. + </para> + <para> + Dimension of <literal>S</literal> is equal to <literal>degree(a)+degree(b)</literal>. + </para> + <para> + If <literal>a</literal> and <literal>b</literal> are coprime polynomials then + </para> + <para> + <literal>rank(sylm(a,b))=degree(a)+degree(b))</literal> and the instructions + </para> + <programlisting role="no-scilab-exec"><![CDATA[ +u = sylm(a,b) \ eye(na+nb,1) +x = poly(u(1:nb),'z','coeff') +y = poly(u(nb+1:na+nb),'z','coeff') + ]]></programlisting> + <para> + compute Bezout factors <literal>x</literal> and <literal>y</literal> of minimal degree + such that <literal>a*x+b*y = 1</literal> + </para> + </refsection> + + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +x = poly(0,"x") +y = poly ([1, 2, 3], "x","coeff"); +sylm(x,y) + + ]]></programlisting> + </refsection> + +</refentry> diff --git a/modules/polynomials/help/en_US/systmat.xml b/modules/polynomials/help/en_US/systmat.xml new file mode 100755 index 000000000..0b15e073d --- /dev/null +++ b/modules/polynomials/help/en_US/systmat.xml @@ -0,0 +1,73 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="systmat"> + <refnamediv> + <refname>systmat</refname> + <refpurpose>system matrix</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>[Sm]=systmat(Sl);</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>Sl</term> + <listitem> + <para> + linear system (<literal>syslin</literal> list) or descriptor system + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Sm</term> + <listitem> + <para>matrix pencil</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + System matrix of the linear system <literal>Sl</literal> (<literal>syslin</literal> list) + in state-space form (utility function). + </para> + <programlisting role=""><![CDATA[ +Sm = [-sI + A B; + [ C D] + ]]></programlisting> + <para> + For a descriptor system (<literal>Sl=list('des',A,B,C,D,E)</literal>), <literal>systmat</literal> returns: + </para> + <programlisting role=""><![CDATA[ +Sm = [-sE + A B; + [ C D] + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="ss2des">ss2des</link> + </member> + <member> + <link linkend="sm2des">sm2des</link> + </member> + <member> + <link linkend="sm2ss">sm2ss</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/en_US/varn.xml b/modules/polynomials/help/en_US/varn.xml new file mode 100755 index 000000000..d1423ff23 --- /dev/null +++ b/modules/polynomials/help/en_US/varn.xml @@ -0,0 +1,92 @@ +<?xml version="1.0" encoding="UTF-8"?> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="varn"> + <refnamediv> + <refname>varn</refname> + <refpurpose>symbolic variable of a polynomial or a rational</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>[symb]=varn(p) + [pm]=varn(p,varname) + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>p</term> + <listitem> + <para>matrix of polynomials or of rationals</para> + </listitem> + </varlistentry> + <varlistentry> + <term>symb</term> + <listitem> + <para>character string: name of the variable</para> + </listitem> + </varlistentry> + <varlistentry> + <term>varname</term> + <listitem> + <para> + character string: the new name of the variable of <literal>p</literal>, set for <literal>pm</literal> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>pm</term> + <listitem> + <para>matrix of polynomials or of rationals</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal>symb=varn(p)</literal> returns in <literal>symb</literal> the symbolic variable of the polynomial <literal>p</literal> + (i.e. <literal>varn(poly(0,'x'))</literal> is <literal>'x'</literal>). + </para> + <para> + <literal>varn(p,'s')</literal> returns a polynomial matrix with same coefficients + as <literal>p</literal> but with <literal>'s'</literal> as symbolic variable (change of variable name). + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +s = poly(0,'s'); p = [s^2+1,s]; +varn(p) +varn(p,'x') + +f = %z / (%z-1); f = [f f^2] +varn(f) +varn(f,"x") + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="poly">poly</link> + </member> + <member> + <link linkend="rlist">rlist</link> + </member> + <member> + <link linkend="horner">horner</link> + </member> + </simplelist> + </refsection> + <refsection> + <title>History</title> + <revhistory> + <revision> + <revnumber>5.5.1</revnumber> + <revdescription> + <para>Extension to rationals</para> + </revdescription> + </revision> + </revhistory> + </refsection> +</refentry> diff --git a/modules/polynomials/help/fr_FR/addchapter.sce b/modules/polynomials/help/fr_FR/addchapter.sce new file mode 100755 index 000000000..ee2913d43 --- /dev/null +++ b/modules/polynomials/help/fr_FR/addchapter.sce @@ -0,0 +1,11 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2009 - DIGITEO +// +// 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 + +add_help_chapter("Polynômes",SCI+"/modules/polynomials/help/fr_FR",%T); + diff --git a/modules/polynomials/help/fr_FR/bezout.xml b/modules/polynomials/help/fr_FR/bezout.xml new file mode 100755 index 000000000..5603c0014 --- /dev/null +++ b/modules/polynomials/help/fr_FR/bezout.xml @@ -0,0 +1,95 @@ +<?xml version="1.0" encoding="UTF-8"?> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="fr" xml:id="bezout"> + <refnamediv> + <refname>bezout</refname> + <refpurpose>équation de Bezout pour les polynômes </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Séquence d'appel</title> + <synopsis>[pgcd,U]=bezout(p1,p2)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Paramètres</title> + <variablelist> + <varlistentry> + <term>p1, p2 </term> + <listitem> + <para>deux polynômes réels ou deux entiers (type égal à 1, 2 ou 8) + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal>[thegcd,U]=bezout(p1,p2)</literal> calcule le PGCD <literal>pgcd</literal> de <literal>p1</literal> et <literal>p2</literal> et de plus une matrice + unimodulaire (2x2) <literal>U</literal> telle que : + </para> + <para> + <literal>[p1,p2]*U = [pgcd,0]</literal> + </para> + <para> + Le PPCM de <literal>p1</literal> et <literal>p2</literal> est donné par + </para> + <para> + <literal>p1*U(1,2)</literal> (ou <literal>-p2*U(2,2)</literal>) + </para> + <para> + Si <literal>p1</literal> ou <literal>p2</literal> sont donnés comme des flottants (type 1), alors ils sont traités + comme des polynômes de degré nul. + </para> + </refsection> + <refsection> + <title>Exemples</title> + <programlisting role="example"><![CDATA[ +// Cas des polynômes +x = poly(0,'x'); +p1 = (x+1)*(x-3)^5; +p2 = (x-2)*(x-3)^3; +[pgcd,U] = bezout(p1,p2) +det(U) +clean([p1,p2]*U) +ppcm = p1*U(1,2) +lcm([p1,p2]) + +// Cas des doubles +i1 = 2*3^5; +i2 = 2^3*3^2; +[thegcd, U] = bezout(i1, i2) +V = [2^2*3^5 2^3*3^2 2^2*3^4*5]; +[thegcd, U] = gcd(V) +V*U +lcm(V) + +// Cas des entiers +i1 = int32(2*3^5); +i2 = int32(2^3*3^2); +[thegcd, U] = bezout(i1, i2) +V = int32([2^2*3^5 2^3*3^2 2^2*3^4*5]); +[thegcd, U] = gcd(V) +V*U +lcm(V) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Voir aussi</title> + <simplelist type="inline"> + <member> + <link linkend="poly">poly</link> + </member> + <member> + <link linkend="roots">roots</link> + </member> + <member> + <link linkend="simp">simp</link> + </member> + <member> + <link linkend="clean">clean</link> + </member> + <member> + <link linkend="lcm">lcm</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/fr_FR/cmndred.xml b/modules/polynomials/help/fr_FR/cmndred.xml new file mode 100755 index 000000000..502eeb02e --- /dev/null +++ b/modules/polynomials/help/fr_FR/cmndred.xml @@ -0,0 +1,47 @@ +<?xml version="1.0" encoding="UTF-8"?> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="fr" xml:id="cmndred"> + <refnamediv> + <refname>cmndred</refname> + <refpurpose>dénominateur commun </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Séquence d'appel</title> + <synopsis>[n,d]=cmndred(num,den)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Paramètres</title> + <variablelist> + <varlistentry> + <term>num, den </term> + <listitem> + <para>2 matrices de polynômes de mêmes dimensions + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal>[n,d]=cmndred(num,den)</literal> calcule une matrice de polynômes <literal>n</literal> et + un dénominateur commun <literal>d</literal> tels que : + </para> + <para> + <literal>n/d=num./den</literal> + </para> + <para> + La matrice de polynômes définie par <literal>num./den</literal> est <literal>n/d</literal>. + </para> + </refsection> + <refsection role="see also"> + <title>Voir aussi</title> + <simplelist type="inline"> + <member> + <link linkend="simp">simp</link> + </member> + <member> + <link linkend="clean">clean</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/fr_FR/coeff.xml b/modules/polynomials/help/fr_FR/coeff.xml new file mode 100755 index 000000000..c7f4a95a5 --- /dev/null +++ b/modules/polynomials/help/fr_FR/coeff.xml @@ -0,0 +1,83 @@ +<?xml version="1.0" encoding="UTF-8"?> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="fr" xml:id="coeff"> + <refnamediv> + <refname>coeff</refname> + <refpurpose>coefficients d'une matrice de polynômes </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Séquence d'appel</title> + <synopsis>[C]=coeff(Mp [,v])</synopsis> + </refsynopsisdiv> + <refsection> + <title>Paramètres</title> + <variablelist> + <varlistentry> + <term>Mp </term> + <listitem> + <para>matrice de polynômes + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>v </term> + <listitem> + <para>vecteur (ligne ou colonne) d'entiers des degrés choisis + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>C </term> + <listitem> + <para>grosse matrice de coefficients + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal>C=coeff(Mp)</literal> + renvoie dans une grosse matrice <literal>C</literal> les coefficients de la + matrice de polynômes <literal>Mp</literal>. <literal>C</literal> est + partitionnée comme <literal>C=[C0,C1,...,Ck]</literal> + où les <literal>Ci</literal> sont arrangés dans l'ordre décroissant . + <literal>k = max(degree(Mp))</literal> + </para> + <para> + <literal>C=coeff(Mp,v)</literal> renvoie la matrice des coefficients avec les + degrés dans <literal>v</literal>. + </para> + </refsection> + <refsection> + <title>Exemples</title> + <programlisting role="example"><![CDATA[ +s=poly(0,'s'); +w=s*rand(10,10); +determ(w) +coeff(w,1) + +r = poly([0 -1+%i -1-%i],'s',"roots"); +coeff(r) + +r = poly([-1-%i -1+2*%i 0],'s',"roots"); +coeff(r) + + ]]></programlisting> + </refsection> + + <refsection role="see also"> + <title>Voir aussi</title> + <simplelist type="inline"> + <member> + <link linkend="poly">poly</link> + </member> + <member> + <link linkend="degree">degree</link> + </member> + <member> + <link linkend="inv_coeff">inv_coeff</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/fr_FR/coffg.xml b/modules/polynomials/help/fr_FR/coffg.xml new file mode 100755 index 000000000..90611570c --- /dev/null +++ b/modules/polynomials/help/fr_FR/coffg.xml @@ -0,0 +1,67 @@ +<?xml version="1.0" encoding="UTF-8"?> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="fr" xml:id="coffg"> + <refnamediv> + <refname>coffg</refname> + <refpurpose>inverse d'une matrice de polynômes </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Séquence d'appel</title> + <synopsis>[Ns,d]=coffg(Fs)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Paramètres</title> + <variablelist> + <varlistentry> + <term>Fs </term> + <listitem> + <para>matrice carrée de polynômes + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal>coffg</literal> calcule <literal>Fs^-1</literal> par la méthode des cofacteurs, où <literal>Fs</literal> est une matrice de polynômes. + </para> + <para> + inverse de <literal>Fs</literal> = <literal>Ns/d</literal> + </para> + <para> + <literal>d</literal> = dénominateur commun; <literal>Ns</literal> = numérateur (une matrice de polynômes). + </para> + <para> + (pour les grandes matrices, s'armer de patience... les résultats sont en général fiables) + </para> + </refsection> + <refsection> + <title>Exemples</title> + <programlisting role="example"><![CDATA[ +s=poly(0,'s') +a=[ s, s^2+1; s s^2-1]; +[a1,d]=coffg(a); +(a1/d)-inv(a) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Voir aussi</title> + <simplelist type="inline"> + <member> + <link linkend="determ">determ</link> + </member> + <member> + <link linkend="detr">detr</link> + </member> + <member> + <link linkend="invr">invr</link> + </member> + <member> + <link linkend="penlaur">penlaur</link> + </member> + <member> + <link linkend="glever">glever</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/fr_FR/colcompr.xml b/modules/polynomials/help/fr_FR/colcompr.xml new file mode 100755 index 000000000..1bc4a6607 --- /dev/null +++ b/modules/polynomials/help/fr_FR/colcompr.xml @@ -0,0 +1,69 @@ +<?xml version="1.0" encoding="UTF-8"?> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="fr" xml:id="colcompr"> + <refnamediv> + <refname>colcompr</refname> + <refpurpose>compression des colonnes d'une matrice de polynômes </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Séquence d'appel</title> + <synopsis>[Y,rk,ac]=colcompr(A);</synopsis> + </refsynopsisdiv> + <refsection> + <title>Paramètres</title> + <variablelist> + <varlistentry> + <term>A </term> + <listitem> + <para>matrice de polynômes + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Y </term> + <listitem> + <para>matrice carrée de polynômes (base unimodulaire à droite) + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>rk </term> + <listitem> + <para> + rang normal de <literal>A</literal> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Ac </term> + <listitem> + <para> + : <literal>Ac=A*Y</literal>, matrice de polynômes + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + Compression de colonnes de la matrice de polynômes <literal>A</literal> (compression à gauche) + </para> + </refsection> + <refsection> + <title>Exemples</title> + <programlisting role="example"><![CDATA[ +s=poly(0,'s'); +p=[s;s*(s+1)^2;2*s^2+s^3]; +[Y,rk,ac]=colcompr(p*p'); +p*p'*Y + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Voir aussi</title> + <simplelist type="inline"> + <member> + <link linkend="rowcompr">rowcompr</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/fr_FR/degree.xml b/modules/polynomials/help/fr_FR/degree.xml new file mode 100755 index 000000000..744ba9b7b --- /dev/null +++ b/modules/polynomials/help/fr_FR/degree.xml @@ -0,0 +1,62 @@ +<?xml version="1.0" encoding="UTF-8"?> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="fr" xml:id="degree"> + <refnamediv> + <refname>degree</refname> + <refpurpose>degrés d'une matrice de polynômes </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Séquence d'appel</title> + <synopsis>[D]=degree(M)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Paramètres</title> + <variablelist> + <varlistentry> + <term>M </term> + <listitem> + <para>matrice de polynômes + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>D </term> + <listitem> + <para>matrice d'entiers + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + renvoie la matrice des plus hauts degrés de <literal>M</literal>. + </para> + </refsection> + <refsection> + <title>Exemples</title> + <programlisting role="example"><![CDATA[ +v=[-2-5*%s+%s^2;-6+11*%s-6*%s^2+%s^3]; +degree(v) // Devrait retourner 2 et 3 + +s=poly(0,"s"); +p=1+s+2*s^42; +degree(p) // Devrait retourner 42 + ]]></programlisting> + </refsection> + + <refsection role="see also"> + <title>Voir aussi</title> + <simplelist type="inline"> + <member> + <link linkend="poly">poly</link> + </member> + <member> + <link linkend="coeff">coeff</link> + </member> + <member> + <link linkend="clean">clean</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/fr_FR/denom.xml b/modules/polynomials/help/fr_FR/denom.xml new file mode 100755 index 000000000..2ae3d1f40 --- /dev/null +++ b/modules/polynomials/help/fr_FR/denom.xml @@ -0,0 +1,67 @@ +<?xml version="1.0" encoding="UTF-8"?> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="fr" xml:id="denom"> + <refnamediv> + <refname>denom</refname> + <refpurpose>dénominateur </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Séquence d'appel</title> + <synopsis>den=denom(r)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Paramètres</title> + <variablelist> + <varlistentry> + <term>r </term> + <listitem> + <para>matrice de fractions rationnelles + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>den </term> + <listitem> + <para>matrice de polynômes + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal>den=denom(r)</literal> renvoie le dénominateur d'une + matrice rationnelle <literal>R</literal> (<literal>R</literal> peut aussi être + une matrice constante ou une matrice de polynômes). + </para> + <para> + Puisque dans Scilab les matrices rationnelles sont représentées + comme + <literal>r=list(['r','num','den','dt'],num,den,[])</literal>, + <literal>denom(r</literal>) est équivalent à <literal>r(3)</literal>, + <literal>r('den')</literal> ou <literal>r.den)</literal>. + </para> + </refsection> + <refsection> + <title>Exemples</title> + <programlisting role="example"><![CDATA[ +h=(1+2*%s)/poly(1:4,'s','c'); +denom(h) +numer(h) + +s=poly(0,"s"); +p=1+s+2*s^2; +denom(p) // Devrait retourner 1 +numer(p) + ]]></programlisting> + </refsection> + + <refsection role="see also"> + <title>Voir aussi</title> + <simplelist type="inline"> + <member> + <link linkend="numer">numer</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/fr_FR/derivat.xml b/modules/polynomials/help/fr_FR/derivat.xml new file mode 100755 index 000000000..fedb6104a --- /dev/null +++ b/modules/polynomials/help/fr_FR/derivat.xml @@ -0,0 +1,57 @@ +<?xml version="1.0" encoding="UTF-8"?> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="fr" xml:id="derivat"> + <refnamediv> + <refname>derivat</refname> + <refpurpose>dérivée d'une matrice de polynômes </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Séquence d'appel</title> + <synopsis>pd=derivat(p)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Paramètres</title> + <variablelist> + <varlistentry> + <term>p </term> + <listitem> + <para>polynôme, matrice de polynômes ou de fractions rationnelles + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + Calcule la dérivée des polynômes ou fractions rationnelles contenus dans les termes de + la matrice p. + </para> + </refsection> + <refsection> + <title>Exemples</title> + <programlisting role="example"><![CDATA[ +s=poly(0,'s'); +derivat(1/s) // -1/s^2; + ]]></programlisting> + <programlisting role="example"><![CDATA[ +p1 = poly([1 -2 1], 'x', 'coeff') +derivat(p1) + ]]></programlisting> + <programlisting role="example"><![CDATA[ +p2 = poly([1 -4 2], 'y', 'coeff') +derivat(p2) + ]]></programlisting> + <programlisting role="example"><![CDATA[ +p3 = poly(ones(1, 10), 'z', 'coeff') +derivat(p3) + ]]></programlisting> + <programlisting role="example"><![CDATA[ +p4 = poly([-1 1], 't', 'roots') +derivat(p4) + ]]></programlisting> + <programlisting role="example"><![CDATA[ +s = %s; p5 = s^{-1} + 2 + 3*s +derivat(p5) + ]]></programlisting> + </refsection> +</refentry> diff --git a/modules/polynomials/help/fr_FR/determ.xml b/modules/polynomials/help/fr_FR/determ.xml new file mode 100755 index 000000000..d44339722 --- /dev/null +++ b/modules/polynomials/help/fr_FR/determ.xml @@ -0,0 +1,74 @@ +<?xml version="1.0" encoding="UTF-8"?> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="fr" xml:id="determ"> + <refnamediv> + <refname>determ</refname> + <refpurpose>déterminant d'une matrice de polynômes </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Séquence d'appel</title> + <synopsis>res=determ(W [,k])</synopsis> + </refsynopsisdiv> + <refsection> + <title>Paramètres</title> + <variablelist> + <varlistentry> + <term>W </term> + <listitem> + <para>matrice réelle de polynômes + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>k </term> + <listitem> + <para>entier (borne supérieure pour le degré du déterminant de W) + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal>res=determ(W [,k])</literal> renvoie le déterminant d'une + matrice réelle de polynômes (calculs fait par FFT si la taille de W + est supérieure à 2*2). + </para> + <para> + <literal>k</literal> est un entier plus grand que le degré effectif du + déterminant. de <literal>W</literal>. + </para> + <para> + La valeur par défaut de <literal>k</literal> est la plus petite + puissance de 2 plus grande que <literal>n*max(degree(W))</literal>. + </para> + <para> + Méthode (pour les matrices dont la taille est supérieure à 2*2) : évaluation du déterminant de <literal>W</literal> aux + fréquences de Fourier et FFT inverse appliquée aux coefficients du + déterminant. + </para> + </refsection> + <refsection> + <title>Exemples</title> + <programlisting role="example"><![CDATA[ +s=poly(0,'s'); +w=s*rand(10,10); +determ(w) +det(coeff(w,1))*s^10 + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Voir aussi</title> + <simplelist type="inline"> + <member> + <link linkend="det">det</link> + </member> + <member> + <link linkend="detr">detr</link> + </member> + <member> + <link linkend="coffg">coffg</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/fr_FR/detr.xml b/modules/polynomials/help/fr_FR/detr.xml new file mode 100755 index 000000000..3d987428a --- /dev/null +++ b/modules/polynomials/help/fr_FR/detr.xml @@ -0,0 +1,64 @@ +<?xml version="1.0" encoding="UTF-8"?> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="fr" xml:id="detr"> + <refnamediv> + <refname>detr</refname> + <refpurpose>déterminant d'un polynôme </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Séquence d'appel</title> + <synopsis>d=detr(h)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Paramètres</title> + <variablelist> + <varlistentry> + <term>h </term> + <listitem> + <para> + matrice carrée de doubles ou de polynômes ou de fractions rationnelles. + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal>d=detr(h)</literal> renvoie le déterminant <literal>d</literal> de la + matrice <literal>h</literal>. Basé sur l'algorithme de Leverrier. + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"> + <![CDATA[ +// Matrice de doubles +A = rand(5,5); +detr(A) + +A = A+%i; +detr(A) + +// Matrice de polynômes +x = poly(0, 'x') +A = [1+x 2 5; 3 4-x 3+x; x^2 1 x]; +detr(A) + +// Matrice de fractions rationnelles +A = [1/x 2 3; 3 4/x 3/x; 1/x^2 1 1/x]; +detr(A) + ]]> + </programlisting> + </refsection> + <refsection role="see also"> + <title>Voir aussi</title> + <simplelist type="inline"> + <member> + <link linkend="det">det</link> + </member> + <member> + <link linkend="determ">determ</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/fr_FR/diophant.xml b/modules/polynomials/help/fr_FR/diophant.xml new file mode 100755 index 000000000..816e26a4d --- /dev/null +++ b/modules/polynomials/help/fr_FR/diophant.xml @@ -0,0 +1,60 @@ +<?xml version="1.0" encoding="UTF-8"?> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="fr" xml:id="diophant"> + <refnamediv> + <refname>diophant</refname> + <refpurpose>équation diophantienne de Bezout </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Séquence d'appel</title> + <synopsis>[x,err]=diophant(p1p2,b)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Paramètres</title> + <variablelist> + <varlistentry> + <term>p1p2 </term> + <listitem> + <para> + vecteur de polynômes <literal>p1p2 = [p1 p2]</literal> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>b </term> + <listitem> + <para>polynôme + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>x </term> + <listitem> + <para>vecteur de polynômes [x1;x2] + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal> diophant</literal> résout l'équation de Bezout : + </para> + <para> + <literal>p1*x1+p2*x2=b</literal> où <literal>p1p2</literal> est un vecteur de polynômes. + Si l'équation n'est pas soluble + </para> + <para> + sinon <literal>err=0</literal> + </para> + </refsection> + <refsection> + <title>Exemples</title> + <programlisting role="example"><![CDATA[ +s=poly(0,'s');p1=(s+3)^2;p2=(1+s); +x1=s;x2=(2+s); +[x,err]=diophant([p1,p2],p1*x1+p2*x2); +p1*x1+p2*x2-p1*x(1)-p2*x(2) + ]]></programlisting> + </refsection> +</refentry> diff --git a/modules/polynomials/help/fr_FR/factors.xml b/modules/polynomials/help/fr_FR/factors.xml new file mode 100755 index 000000000..e5e4a83f0 --- /dev/null +++ b/modules/polynomials/help/fr_FR/factors.xml @@ -0,0 +1,115 @@ +<?xml version="1.0" encoding="UTF-8"?> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="fr" xml:id="factors"> + <refnamediv> + <refname>factors</refname> + <refpurpose>factorisation réelle de polynômes </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Séquence d'appel</title> + <synopsis>[lnum,g]=factors(pol [,'flag']) + [lnum,lden,g]=factors(rat [,'flag']) + rat=factors(rat,'flag') + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Paramètres</title> + <variablelist> + <varlistentry> + <term>pol </term> + <listitem> + <para>polynôme réel + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>rat </term> + <listitem> + <para> + fraction rationnelle (<literal>rat=pol1/pol2</literal>) + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>lnum </term> + <listitem> + <para>liste de polynômes (de degrés 1 ou 2) + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>lden </term> + <listitem> + <para>liste de polynômes (de degrés 1 ou 2) + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>g </term> + <listitem> + <para>nombre réel + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>flag </term> + <listitem> + <para> + chaîne de caractères, <literal>'c'</literal> ou <literal>'d'</literal> + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + renvoie les facteurs du polynôme <literal>pol</literal> dans la liste <literal>lnum</literal> + et le "gain" g. + </para> + <para> + On a pol = g multiplié par le produit des termes de la liste <literal>lnum</literal> + (si <literal>flag</literal> n'est pas donné). Si <literal>flag='c'</literal>, on a <literal>|pol(i omega)|</literal> = <literal>|g*prod(lnum_j(i omega)|</literal>. + Si <literal>flag='d'</literal> alors + on a <literal>|pol(exp(i omega))|</literal> = <literal>|g*prod(lnum_i(exp(i omega))|</literal>. + Si l'argument de <literal>factors</literal> est une fraction rationnelle 1x1 <literal>rat=pol1/pol2</literal>, + les facteurs du numérateur <literal>pol1</literal> et le dénominateur <literal>pol2</literal> + sont renvoyés dans les listes <literal>lnum</literal> et <literal>lden</literal>, respectivement. + </para> + <para> + Le "gain" est renvoyé dans <literal>g</literal>, c'est à dire + rat = g multiplié par (produit des termes dans lnum) / (produit des termes dans lden). + </para> + <para> + Si <literal>flag</literal> vaut <literal>'c'</literal> (resp. <literal>'d'</literal>), les racines de <literal>pol</literal> + sont réfléchies par rapport à l'axe imaginaire (resp. le cercle unité), i.e. + les facteurs dans <literal>lnum</literal> sont des polynômes stables. + Idem si <literal>factors</literal> est appelé avec des arguments rationnels : + les termes dans <literal>lnum</literal> et <literal>lden</literal> sont des polynômes stables si + <literal>flag</literal> est donné. <literal>R2=factors(R1,'c')</literal> ou <literal>R2=factors(R1,'d')</literal> + avec <literal>R1</literal> une fraction rationnelle ou une liste <literal>syslin</literal> SISO : la sortie <literal>R2</literal> est rationnelle avec un numérateur et un dénominateur stables et + de même module que <literal>R1</literal> sur l'axe imaginaire (<literal>'c'</literal>) + ou le cercle unité (<literal>'d'</literal>). + </para> + </refsection> + <refsection> + <title>Exemples</title> + <programlisting role="example"><![CDATA[ +n=poly([0.2,2,5],'z'); +d=poly([0.1,0.3,7],'z'); +R=syslin('d',n,d); +R1=factors(R,'d') +roots(R1('num')) +roots(R1('den')) +w=exp(2*%i*%pi*[0:0.1:1]); +norm(abs(horner(R1,w))-abs(horner(R,w))) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Voir aussi</title> + <simplelist type="inline"> + <member> + <link linkend="simp">simp</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/fr_FR/hermit.xml b/modules/polynomials/help/fr_FR/hermit.xml new file mode 100755 index 000000000..bdc1248ed --- /dev/null +++ b/modules/polynomials/help/fr_FR/hermit.xml @@ -0,0 +1,72 @@ +<?xml version="1.0" encoding="UTF-8"?> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="fr" xml:id="hermit"> + <refnamediv> + <refname>hermit</refname> + <refpurpose>forme d'Hermite </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Séquence d'appel</title> + <synopsis>[Ar,U]=hermit(A)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Paramètres</title> + <variablelist> + <varlistentry> + <term>A </term> + <listitem> + <para>matrice de polynômes + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Ar </term> + <listitem> + <para>matrice triangulaire de polynômes + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>U </term> + <listitem> + <para>matrice unimodulaire de polynômes + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + Forme d'Hermite : <literal>U</literal> est une matrice unimodulaire telle que <literal>A*U</literal> est sous la + forme d'Hermite triangulaire : + </para> + <para> + La variable de sortie est <literal>Ar=A*U</literal>. + </para> + <para> + <warning> + Attention : version expérimentale + </warning> + </para> + </refsection> + <refsection> + <title>Exemples</title> + <programlisting role="example"><![CDATA[ +s=poly(0,'s'); +p=[s, s*(s+1)^2, 2*s^2+s^3]; +[Ar,U]=hermit(p'*p); +clean(p'*p*U), det(U) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Voir aussi</title> + <simplelist type="inline"> + <member> + <link linkend="hrmt">hrmt</link> + </member> + <member> + <link linkend="htrianr">htrianr</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/fr_FR/horner.xml b/modules/polynomials/help/fr_FR/horner.xml new file mode 100755 index 000000000..63ddeee19 --- /dev/null +++ b/modules/polynomials/help/fr_FR/horner.xml @@ -0,0 +1,84 @@ +<?xml version="1.0" encoding="UTF-8"?> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="fr" xml:id="horner"> + <refnamediv> + <refname>horner</refname> + <refpurpose>évaluation d'un polynôme ou d'une fraction rationnelle </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Séquence d'appel</title> + <synopsis>horner(P,x)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Paramètres</title> + <variablelist> + <varlistentry> + <term>P </term> + <listitem> + <para>polynôme ou matrice de polynômes + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>x </term> + <listitem> + <para>vecteur de nombres , de polynômes ou de fractions rationnelles + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + évalue le polynôme ou la fraction rationnelle (ou matrice de fractions rationnelles) + <literal>P = P(s)</literal> quand la variable <literal>s</literal> du polynôme + est remplacée par <literal>x</literal> : + </para> + <para> + <literal>horner(P,x)</literal>=<literal>P(x)</literal> + </para> + <para> + Exemple (transformation bilinéaire) : supposons que <literal>P = P(s)</literal> est + une matrice de polynômes, alors la matrice de polynômes + <literal>P((1+s)/(1-s))</literal> est obtenue par <literal>horner(P,(1+s)/(1-s))</literal>. + </para> + <para> + Pour évaluer une matrice de polynômes à des fréquences données utiliser plutôt la primitive <literal>freq</literal>. + </para> + </refsection> + <refsection> + <title>Exemples</title> + <programlisting role="example"><![CDATA[ +//evaluation d'un polynŽôme pour un vecteur de nombres +P=poly(1:3,'x') +horner(P,[1 2 5]) +horner(P,[1 2 5]+%i) + +//evaluation d'un vecteur de fractions rationnelles +s=poly(0,'s');M=[s,1/s]; +horner(M,1) +horner(M,%i) +horner(M,1/s) + +//evaluation d'un polynŽôme pour une matrice de nombres +X= [1 2;3 4] +p=poly(1:3,'x','c') +m=horner(p, X) +1*X.^0+2*X.^1+3*X.^2 + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Voir aussi</title> + <simplelist type="inline"> + <member> + <link linkend="freq">freq</link> + </member> + <member> + <link linkend="repfreq">repfreq</link> + </member> + <member> + <link linkend="evstr">evstr</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/fr_FR/hrmt.xml b/modules/polynomials/help/fr_FR/hrmt.xml new file mode 100755 index 000000000..af4aae393 --- /dev/null +++ b/modules/polynomials/help/fr_FR/hrmt.xml @@ -0,0 +1,64 @@ +<?xml version="1.0" encoding="UTF-8"?> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="fr" xml:id="hrmt"> + <refnamediv> + <refname>hrmt</refname> + <refpurpose>PGDC de plusieurs polynômes </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Séquence d'appel</title> + <synopsis>[pg,U]=hrmt(v)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Paramètres</title> + <variablelist> + <varlistentry> + <term>v </term> + <listitem> + <para>vecteur ligne de polynômes + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>pg </term> + <listitem> + <para>polynôme + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>U </term> + <listitem> + <para>matrice unimodulaire de polynômes + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal>[pg,U]=hrmt(v)</literal> renvoie une matrice unimodulaire <literal>U</literal> et <literal>pg</literal> = PGDC de la ligne de + polynômes <literal>v</literal> tels que <literal>v*U = [pg,0]</literal>. + </para> + </refsection> + <refsection> + <title>Exemples</title> + <programlisting role="example"><![CDATA[ +x=poly(0,'x'); +v=[x*(x+1),x^2*(x+1),(x-2)*(x+1),(3*x^2+2)*(x+1)]; +[pg,U]=hrmt(v);U=clean(U) +det(U) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Voir aussi</title> + <simplelist type="inline"> + <member> + <link linkend="gcd">gcd</link> + </member> + <member> + <link linkend="htrianr">htrianr</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/fr_FR/htrianr.xml b/modules/polynomials/help/fr_FR/htrianr.xml new file mode 100755 index 000000000..5be1d43ca --- /dev/null +++ b/modules/polynomials/help/fr_FR/htrianr.xml @@ -0,0 +1,83 @@ +<?xml version="1.0" encoding="UTF-8"?> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="fr" xml:id="htrianr"> + <refnamediv> + <refname>htrianr</refname> + <refpurpose>triangularisation d'une matrice de polynômes </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Séquence d'appel</title> + <synopsis>[Ar,U,rk]=htrianr(A)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Paramètres</title> + <variablelist> + <varlistentry> + <term>A </term> + <listitem> + <para>matrice de polynômes + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Ar </term> + <listitem> + <para>matrice de polynômes + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>U </term> + <listitem> + <para>matrice unimodulaire de polynômes + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>rk </term> + <listitem> + <para> + entier, le rang normal de <literal>A</literal> + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + triangularisation de la matrice de polynômes <literal>A</literal>. + </para> + <para> + <literal>A</literal> de taille <literal>[m,n]</literal>, <literal>m <= n</literal>. + </para> + <para> + <literal>Ar=A*U</literal> + </para> + <para> + <warning> + Attention: il y a une élimination des "petits" termes (voir le code la fonction). + </warning> + </para> + </refsection> + <refsection> + <title>Exemples</title> + <programlisting role="example"><![CDATA[ +x=poly(0,'x'); +M=[x;x^2;2+x^3]*[1,x-2,x^4]; +[Mu,U,rk]=htrianr(M) +det(U) +M*U(:,1:2) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Voir aussi</title> + <simplelist type="inline"> + <member> + <link linkend="hrmt">hrmt</link> + </member> + <member> + <link linkend="colcompr">colcompr</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/fr_FR/inv_coeff.xml b/modules/polynomials/help/fr_FR/inv_coeff.xml new file mode 100755 index 000000000..3165c9071 --- /dev/null +++ b/modules/polynomials/help/fr_FR/inv_coeff.xml @@ -0,0 +1,72 @@ +<?xml version="1.0" encoding="UTF-8"?> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="fr" xml:id="inv_coeff"> + <refnamediv> + <refname>inv_coeff</refname> + <refpurpose>construction d'une matrice polynomiale à partir des coefficients </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Séquence d'appel</title> + <synopsis>[P]=inv_coeff(C,[,d,[name])</synopsis> + </refsynopsisdiv> + <refsection> + <title>Paramètres</title> + <variablelist> + <varlistentry> + <term>C </term> + <listitem> + <para>"grosse" matrice des coefficients + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>d </term> + <listitem> + <para> + degré de la matrice polynomiale (paramètre optionnel valant par défaut <literal>d=-1+size(C,'c')/size(C,'r')</literal>) + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>name </term> + <listitem> + <para> + chaîne de caractères (indéterminée du polynôme, <literal>'x'</literal> par défaut). + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal>P=inv_coeff(Mp,k)</literal>, quand <literal>k</literal> est compatible avec la taille de <literal>Mp</literal> renvoie une matrice polynomiale de degré k. <literal>C=[C0,C1,...,Ck]</literal> et + <literal>P= C0 + C1*x +... +Ck*x^k</literal>. + </para> + </refsection> + <refsection> + <title>Exemples</title> + <programlisting role="example"><![CDATA[ +A=int(10*rand(2,6)) +// construction d'une matrice polynomiale de degré 1 +P=inv_coeff(A,1) +norm(coeff(P)-A) +// utilisation de la valeur par défaut du degré +P1=inv_coeff(A) +norm(coeff(P1)-A) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Voir aussi</title> + <simplelist type="inline"> + <member> + <link linkend="poly">poly</link> + </member> + <member> + <link linkend="degree">degree</link> + </member> + <member> + <link linkend="coeff">coeff</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/fr_FR/invr.xml b/modules/polynomials/help/fr_FR/invr.xml new file mode 100755 index 000000000..7cdb58374 --- /dev/null +++ b/modules/polynomials/help/fr_FR/invr.xml @@ -0,0 +1,60 @@ +<?xml version="1.0" encoding="UTF-8"?> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="fr" xml:id="invr"> + <refnamediv> + <refname>invr</refname> + <refpurpose>inversion d'une matrice rationnelle (ou polynomiale) </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Séquence d'appel</title> + <synopsis>F = invr(H)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Paramètres</title> + <variablelist> + <varlistentry> + <term>H </term> + <listitem> + <para>polynôme ou matrice de polynômes + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>F </term> + <listitem> + <para>polynôme ou matrice de polynômes + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + Si <literal>H</literal> est une matrice de polynômes ou de fractions rationnelles, <literal>invr</literal> + calcule <literal>H^(-1)</literal> avec l'algorithme de Leverrier (voir code de la fonction). + </para> + </refsection> + <refsection> + <title>Exemples</title> + <programlisting role="example"><![CDATA[ +s=poly(0,'s') +H=[s,s*s+2;1-s,1+s]; invr(H) +[Num,den]=coffg(H);Num/den +H=[1/s,(s+1);1/(s+2),(s+3)/s];invr(H) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Voir aussi</title> + <simplelist type="inline"> + <member> + <link linkend="glever">glever</link> + </member> + <member> + <link linkend="coffg">coffg</link> + </member> + <member> + <link linkend="inv">inv</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/fr_FR/lcmdiag.xml b/modules/polynomials/help/fr_FR/lcmdiag.xml new file mode 100755 index 000000000..7c767c635 --- /dev/null +++ b/modules/polynomials/help/fr_FR/lcmdiag.xml @@ -0,0 +1,82 @@ +<?xml version="1.0" encoding="UTF-8"?> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="fr" xml:id="lcmdiag"> + <refnamediv> + <refname>lcmdiag</refname> + <refpurpose>factorisation diagonale par le plus petit commun multiple </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Séquence d'appel</title> + <synopsis>[N,D]=lcmdiag(H) + [N,D]=lcmdiag(H,flag) + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Paramètres</title> + <variablelist> + <varlistentry> + <term>H </term> + <listitem> + <para>matrice de polynômes + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>N </term> + <listitem> + <para>matrice de polynômes + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>D </term> + <listitem> + <para>matrice diagonale de polynômes + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>flag </term> + <listitem> + <para> + chaîne de caractères : <literal>'row'</literal> ou <literal>'col'</literal> (par défaut) + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal>[kN,D]=lcmdiag(H,'row')</literal> calcule une factorisation <literal>D*H=N</literal>, + i.e. H=D^(-1)*N où D est une matrice diagonale avec D(k,k)=ppcm de la + k-ième ligne de H.den . + </para> + <para> + <literal>[N,D]=lcmdiag(H)</literal> ou <literal>[N,D]=lcmdiag(H,'col)</literal> renvoie + H=N*D^(-1) avec D diagonale et D(k,k)=ppcm de ma k-ième colonne de H.den . + </para> + </refsection> + <refsection> + <title>Exemples</title> + <programlisting role="example"><![CDATA[ +s=poly(0,'s'); +H=[1/s,(s+2)/s/(s+1)^2;1/(s^2*(s+2)),2/(s+2)]; +[N,D]=lcmdiag(H); +N/D-H + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Voir aussi</title> + <simplelist type="inline"> + <member> + <link linkend="lcm">lcm</link> + </member> + <member> + <link linkend="gcd">gcd</link> + </member> + <member> + <link linkend="bezout">bezout</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/fr_FR/ldiv.xml b/modules/polynomials/help/fr_FR/ldiv.xml new file mode 100755 index 000000000..eed04cba4 --- /dev/null +++ b/modules/polynomials/help/fr_FR/ldiv.xml @@ -0,0 +1,68 @@ +<?xml version="1.0" encoding="UTF-8"?> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="fr" xml:id="ldiv"> + <refnamediv> + <refname>ldiv</refname> + <refpurpose>division longue d'une matrice de polynômes </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Séquence d'appel</title> + <synopsis>[x]=ldiv(n,d,k)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Paramètres</title> + <variablelist> + <varlistentry> + <term>n,d </term> + <listitem> + <para>deux matrices réelles de polynômes + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>k </term> + <listitem> + <para>entier + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal>x=ldiv(n,d,k)</literal> donne les <literal>k</literal> premiers coefficients de la division longue + de <literal>n</literal> par <literal>d</literal> i.e. le développement de Taylor de la matrice rationnelle + <literal>[nij(z)/dij(z)]</literal> à l'infini. + </para> + <para> + Les coefficients du développement de <literal>nij/dij</literal> sont stockés dans + <literal>x((i-1)*n+k,j) k=1:n</literal> + </para> + </refsection> + <refsection> + <title>Exemples</title> + <programlisting role="example"><![CDATA[ +wss=ssrand(1,1,3);[a,b,c,d]=abcd(wss); +wtf=ss2tf(wss); +x1=ldiv(numer(wtf),denom(wtf),5) +x2=[c*b;c*a*b;c*a^2*b;c*a^3*b;c*a^4*b] +wssbis=markp2ss(x1',5,1,1); +wtfbis=clean(ss2tf(wssbis)) +x3=ldiv(numer(wtfbis),denom(wtfbis),5) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Voir aussi</title> + <simplelist type="inline"> + <member> + <link linkend="arl2">arl2</link> + </member> + <member> + <link linkend="markp2ss">markp2ss</link> + </member> + <member> + <link linkend="pdiv">pdiv</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/fr_FR/numer.xml b/modules/polynomials/help/fr_FR/numer.xml new file mode 100755 index 000000000..6375ba807 --- /dev/null +++ b/modules/polynomials/help/fr_FR/numer.xml @@ -0,0 +1,58 @@ +<?xml version="1.0" encoding="UTF-8"?> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="fr" xml:id="numer"> + <refnamediv> + <refname>numer</refname> + <refpurpose>numérateurs d'une matrice rationnelle </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Séquence d'appel</title> + <synopsis>num=numer(R)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Paramètres</title> + <variablelist> + <varlistentry> + <term>R </term> + <listitem> + <para>matrice de fractions rationnelles + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>num </term> + <listitem> + <para>matrice de polynômes + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal>num=numer(R)</literal> renvoie le numérateur <literal>num</literal> d'une matrice rationnelle <literal>R</literal> (<literal>R</literal> peut aussi être une matrice constante ou une matrice de polynômes). + <literal>numer(R)</literal> est équivalent à <literal>R(2)</literal>, <literal>R('num')</literal> ou <literal>R.num</literal> + </para> + </refsection> + <refsection> + <title>Exemples</title> + <programlisting role="example"><![CDATA[ +h=(1+2*%s)/poly(1:4,'s','c'); +denom(h) +numer(h) + +s=poly(0,"s"); +p=1+s+2*s^2; +denom(p) // Devrait retourner 1 +numer(p) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Voir aussi</title> + <simplelist type="inline"> + <member> + <link linkend="denom">denom</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/fr_FR/pdiv.xml b/modules/polynomials/help/fr_FR/pdiv.xml new file mode 100755 index 000000000..e36ec3630 --- /dev/null +++ b/modules/polynomials/help/fr_FR/pdiv.xml @@ -0,0 +1,71 @@ +<?xml version="1.0" encoding="UTF-8"?> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="fr" xml:id="pdiv"> + <refnamediv> + <refname>pdiv</refname> + <refpurpose>division de polynômes </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Séquence d'appel</title> + <synopsis>[R,Q]=pdiv(P1,P2) + [Q]=pdiv(P1,P2) + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Paramètres</title> + <variablelist> + <varlistentry> + <term>P1 </term> + <listitem> + <para>matrice de polynômes + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>P2 </term> + <listitem> + <para>polynôme ou matrice de polynômes + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>R,Q </term> + <listitem> + <para>deux matrices de polynômes + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + Division euclidienne élément par élément de la matrice de polynômes <literal>P1</literal> + par le polynôme <literal>P2</literal> ou par la matrice de polynômes <literal>P2</literal>. + <literal>Rij</literal> est la matrice des restes, <literal>Qij</literal> est la matrice + des quotients et <literal>P1ij = Qij*P2 + Rij</literal> ou <literal>P1ij = Qij*P2ij + Rij</literal>. + </para> + </refsection> + <refsection> + <title>Exemples</title> + <programlisting role="example"><![CDATA[ +x=poly(0,'x'); +p1=(1+x^2)*(1-x);p2=1-x; +[r,q]=pdiv(p1,p2) +p2*q-p1 +p2=1+x; +[r,q]=pdiv(p1,p2) +p2*q+r-p1 + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Voir aussi</title> + <simplelist type="inline"> + <member> + <link linkend="ldiv">ldiv</link> + </member> + <member> + <link linkend="gcd">gcd</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/fr_FR/pol2str.xml b/modules/polynomials/help/fr_FR/pol2str.xml new file mode 100755 index 000000000..4cf6807be --- /dev/null +++ b/modules/polynomials/help/fr_FR/pol2str.xml @@ -0,0 +1,90 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * Copyright (C) 2013 - Samuel GOUGEON : upgrade for 5.5.0 + * + * 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 + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="fr" xml:id="pol2str"> + <refnamediv> + <refname>pol2str</refname> + <refpurpose>conversion polynôme => texte</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Séquence d'appel</title> + <synopsis>strs = pol2str(p)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Paramètres</title> + <variablelist> + <varlistentry> + <term>p </term> + <listitem> + <para>matrice ou hypermatrice de polynômes à coefficients réels ou complexes + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>str </term> + <listitem> + <para>matrice ou hypermatrice texte + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + convertit les polynômes p en textes les représentant (fonction utilitaire). + </para> + <para> + <note> + Le format de sortie des coefficients est fixé par <link linkend="format">format(..)</link>. + </note> + </para> + </refsection> + + <refsection> + <title>Exemples</title> + <programlisting role="example"><![CDATA[ +pol2str(%z) + +p = poly ([1, 2, 3], "x","coeff"); +pol2str(p) + +p = (1+%i+%z)^(1:4) +pol2str(p) + ]]></programlisting> + </refsection> + + <refsection role="see also"> + <title>Voir aussi</title> + <simplelist type="inline"> + <member> + <link linkend="string">string</link> + </member> + <member> + <link linkend="prettyprint">prettyprint</link> + </member> + <member> + <link linkend="sci2exp">sci2exp</link> + </member> + </simplelist> + </refsection> + <refsection role="history tag"> + <title>Historique</title> + <revhistory> + <revision> + <revnumber>5.5.0</revnumber> + <revdescription>Extension aux polynômes à coefficients complexes et aux hypermatrices. Vectorisation du traitement du tableau de polynômes</revdescription> + </revision> + </revhistory> + </refsection> +</refentry> diff --git a/modules/polynomials/help/fr_FR/polfact.xml b/modules/polynomials/help/fr_FR/polfact.xml new file mode 100755 index 000000000..0ce33db2a --- /dev/null +++ b/modules/polynomials/help/fr_FR/polfact.xml @@ -0,0 +1,85 @@ +<?xml version="1.0" encoding="UTF-8"?> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="fr" xml:id="polfact"> + <refnamediv> + <refname>polfact</refname> + <refpurpose>facteurs minimaux </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Séquence d'appel</title> + <synopsis>[f]=polfact(p)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Paramètres</title> + <variablelist> + <varlistentry> + <term>p </term> + <listitem> + <para> + polynôme + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>f </term> + <listitem> + <para> + vecteur <literal>[f0 f1 ... fn]</literal> tel que <literal>p=prod(f)</literal> + </para> + <variablelist> + <varlistentry> + <term>f0 </term> + <listitem> + <para> + constante + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>fi </term> + <listitem> + <para> + polynôme + </para> + </listitem> + </varlistentry> + </variablelist> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal>f=polfact(p)</literal> renvoie les facteurs minimaux de p + i.e. <literal>f=[f0 f1 ... fn]</literal> tel que <literal>p=prod(f)</literal> + </para> + </refsection> + + <refsection> + <title>Exemples</title> + <programlisting role="example"> + <![CDATA[ +x = poly(0, "x") +polfact(x^2-1) + +polfact(x^7-1) + + ]]> + </programlisting> + </refsection> + + <refsection role="see also"> + <title>Voir aussi</title> + <simplelist type="inline"> + <member> + <link linkend="lcm">lcm</link> + </member> + <member> + <link linkend="cmndred">cmndred</link> + </member> + <member> + <link linkend="factors">factors</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/fr_FR/poly.xml b/modules/polynomials/help/fr_FR/poly.xml new file mode 100755 index 000000000..924dc7957 --- /dev/null +++ b/modules/polynomials/help/fr_FR/poly.xml @@ -0,0 +1,125 @@ +<?xml version="1.0" encoding="UTF-8"?> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="fr" xml:id="poly"> + <refnamediv> + <refname>poly</refname> + <refpurpose>définition d'un polynôme </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Séquence d'appel</title> + <synopsis>[p]=poly(a,vname, ["flag"])</synopsis> + </refsynopsisdiv> + <refsection> + <title>Paramètres</title> + <variablelist> + <varlistentry> + <term>a </term> + <listitem> + <para>matrice ou nombre réel.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>vname </term> + <listitem> + <para>chaîne de caractères, nom de l'indéterminée du + polynôme. La châine ne doit pas dépasser les 4 caractères. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>"flag"</term> + <listitem> + <para>chaîne de caractères ("roots" ou "r", "coeff" ou "c"), la + valeur par défaut est "roots". + </para> + <para> + Des raccourcis peuvent être aussi utilisés: <literal>"r"</literal> pour <literal>"roots"</literal> et <literal>"c"</literal> pour <literal>"coeff"</literal>. + </para> + + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <variablelist> + <varlistentry> + <term>Si a est une matrice,</term> + <listitem> + <para> + <literal>p</literal> est le polynôme + caractéristique de a, c'est à dire + <literal>déterminant(x*eye()-a)</literal>, <literal>x</literal> étant + l'indéterminée. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Si v est un vecteur,</term> + <listitem> + <itemizedlist> + <listitem> + <para> + <literal>poly(v,"x",["roots"])</literal> est le polynôme + dont les racines sont égales aux termes de <literal>v</literal> et + <literal>"x"</literal> l'indéterminée. Dans ce cas + <literal>roots</literal> et <literal>poly</literal> sont des fonctions inverses + l'une de l'autre. + <note> + Notez qye les racines infinies produisent des + coefficients de haut degré egaux a zéro. + </note> + </para> + </listitem> + <listitem> + <para> + <literal>poly(v,"x","coeff")</literal> crée le polynôme + d'indéterminée <literal>"x"</literal> dont les coefficients sont + les termes de <literal>v</literal> (v(1) est le terme constant). Dans ce + dernier cas, <literal>poly</literal> et <literal>coeff</literal> sont des fonctions + inverses l'une de l'autre. + </para> + </listitem> + </itemizedlist> + </listitem> + </varlistentry> + </variablelist> + <para> + <literal>s=poly(0,"s")</literal> permet de définir des polynômes en + utilisant les opérations usuelles (+,-,*,^).<literal>"s"</literal>. + </para> + </refsection> + <refsection> + <title>Exemples</title> + <programlisting role="example"><![CDATA[ +s=poly(0,"s"); +p=1+s+2*s^2 +A=rand(2,2); +poly(A,"x") +//fractions rationnelles +h=(1+2*%s)/poly(1:4,'s','coeff') + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Voir aussi</title> + <simplelist type="inline"> + <member> + <link linkend="coeff">coeff</link> + </member> + <member> + <link linkend="matrices">matrices</link> + </member> + <member> + <link linkend="rational">rational</link> + </member> + </simplelist> + </refsection> + <refsection> + <title>Historique</title> + <revhistory> + <revision> + <revnumber>5.5.0</revnumber> + <revremark>Les seules valeurs autorisées pour le troisième argument sont "roots", "coeff", "c" et "r".</revremark> + </revision> + </revhistory> + </refsection> +</refentry> diff --git a/modules/polynomials/help/fr_FR/rational.xml b/modules/polynomials/help/fr_FR/rational.xml new file mode 100755 index 000000000..9f96c3c62 --- /dev/null +++ b/modules/polynomials/help/fr_FR/rational.xml @@ -0,0 +1,46 @@ +<?xml version="1.0" encoding="UTF-8"?> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="fr" xml:id="rational"> + <refnamediv> + <refname>rational</refname> + <refpurpose>Objet Scilab, fraction rationnelle </refpurpose> + </refnamediv> + <refsection> + <title>Description</title> + <para> + Une fraction rationnelle <literal>r</literal> est le quotient de deux polynômes <literal>r=num/den</literal>. + La représentation interne d'une fraction rationnelle est une liste : + <literal>r=rlist(num,den,[])</literal> est identique à <literal>r=num/den</literal>. + Une matrice de fractions rationnelles peut être définie en utilisant la syntaxe habituelle : + <literal>[r11,r12;r21,r22]</literal> est une matrice 2x2 ou les <literal>rij</literal> sont des fractions rationnelles. + Une matrice de fractions rationnelles peut aussi être définie comme précédemment : <literal>tlist(['r','num','den','dt'],num,den,[])</literal> avec <literal>num</literal> et <literal>den</literal> deux matrices polynomiales. + </para> + </refsection> + <refsection> + <title>Exemples</title> + <programlisting role="example"><![CDATA[ +s=poly(0,'s'); +W=[1/s,1/(s+1)] +W'*W +Num=[s,s+2;1,s];Den=[s*s,s;s,s*s]; +rlist(Num,Den,[]) +H=Num./Den +syslin('c',Num,Den) +syslin('c',H) +[Num1,Den1]=simp(Num,Den) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Voir aussi</title> + <simplelist type="inline"> + <member> + <link linkend="poly">poly</link> + </member> + <member> + <link linkend="syslin">syslin</link> + </member> + <member> + <link linkend="simp">simp</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/fr_FR/residu.xml b/modules/polynomials/help/fr_FR/residu.xml new file mode 100755 index 000000000..7e4a7316f --- /dev/null +++ b/modules/polynomials/help/fr_FR/residu.xml @@ -0,0 +1,73 @@ +<?xml version="1.0" encoding="UTF-8"?> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="fr" xml:id="residu"> + <refnamediv> + <refname>residu</refname> + <refpurpose>résidu </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Séquence d'appel</title> + <synopsis>[V]=residu(P,Q1,Q2)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Paramètres</title> + <variablelist> + <varlistentry> + <term>P, Q1, Q2 </term> + <listitem> + <para>polynômes ou matrice de polynômes à coefficients réels ou complexes. + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal>V=residu(P,Q1,Q2)</literal> renvoie la matrice <literal>V</literal> telle que <literal>V(i,j)</literal> + est la somme des résidus de la fraction rationnelle + <literal>P(i,j)/(Q1(i,j)*Q2(i,j))</literal> calculés aux zéros de <literal>Q1(i,j)</literal>. + </para> + <para> + <literal>Q1(i,j)</literal> et <literal>Q2(i,j)</literal> ne doivent pas avoir de racines communes. + </para> + </refsection> + <refsection> + <title>Exemples</title> + <programlisting role="example"><![CDATA[ +s=poly(0,'s'); +H=[s/(s+1)^2,1/(s+2)];N=numer(H);D=denom(H); +w=residu(N.*horner(N,-s),D,horner(D,-s)); //N(s) N(-s) / D(s) D(-s) +sqrt(sum(w)) // La norme H2 +h2norm(tf2ss(H)) + +p=(s-1)*(s+1)*(s+2)*(s+10);a=(s-5)*(s-1)*(s*s)*((s+1/2)**2); +b=(s-3)*(s+2/5)*(s+3); +residu(p,a,b)+531863/4410 // Exact +z=poly(0,'z');a=z^3+0.7*z^2+0.5*z-0.3;b=z^3+0.3*z^2+0.2*z+0.1; +atild=gtild(a,'d');btild=gtild(b,'d'); +residu(b*btild,z*a,atild)-2.9488038 // Exact +a=a+0*%i;b=b+0*%i; +real(residu(b*btild,z*a,atild)-2.9488038) // Cas complexe + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Voir aussi</title> + <simplelist type="inline"> + <member> + <link linkend="pfss">pfss</link> + </member> + <member> + <link linkend="bdiag">bdiag</link> + </member> + <member> + <link linkend="roots">roots</link> + </member> + <member> + <link linkend="poly">poly</link> + </member> + <member> + <link linkend="gtild">gtild</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/fr_FR/roots.xml b/modules/polynomials/help/fr_FR/roots.xml new file mode 100755 index 000000000..ee108a747 --- /dev/null +++ b/modules/polynomials/help/fr_FR/roots.xml @@ -0,0 +1,170 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) ???? - 2008 - INRIA + * Copyright (C) 2011 - DIGITEO - Michael Baudin + * + * 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 + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="roots" xml:lang="fr"> + <refnamediv> + <refname>roots</refname> + <refpurpose>racines d'un polynôme</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Séquence d'appel</title> + <synopsis> + x=roots(p) + x=roots(p,"algo") + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Paramètres</title> + <variablelist> + <varlistentry> + <term>p</term> + <listitem> + <para> + un polynôme réel ou complexe, ou + une m-par-1 or 1-par-m matrice de doubles, les coefficients du polynômes par ordre de puissance décroissante. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>algo</term> + <listitem> + <para> + une chaîne de caractères, l'algorithme à utiliser (défaut algo="e"). + Si algo="e", alors les valeurs propres de la matrice compagnion sont utilisées. + Si algo="f", alors l'algorithme de Jenkins-Traub est utilisé (si les coefficients + du polynôme sont réels et que le degré du polynôme est plus petit que 100). + Si algo="f" et que le polynôme est complexe, alors une erreur est générée. + Si algo="f" et que le polynôme est de degré inférieur à 100, alors une erreur est + générée. + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + Cette fonction retourne dans le vecteur complexe + <literal>x</literal> les racines du polynôme <literal>p</literal>. + </para> + <para> + L'option "f" utilise l'algorithme rapide RPOLY, fondé sur la méthode de Jenkins-Traub. + </para> + <para> + Pour les polynôme réels de degré inférieur à 100, on peut utiliser + l'option "f", qui peut être plus rapide dans certains cas. + Toutefois, certains polynômes sont susceptibles de poser des problèmes + de convergences pour l'algorithme associé à l'option "f". + Par exemple, <literal>p=poly([1.e300,1.e0,1.e-300],'x');</literal> + provoque le bouclage infini de <literal>roots(p,"f")</literal> + </para> + </refsection> + <refsection> + <title>Exemples</title> + <para> + Dans les exemples suivants, on calcule des racines de polynômes. + </para> + <programlisting role="example"><![CDATA[ +// Un polynôme réel. +p = poly([1 2 3],"x") +roots(p) +// Les coefficients du polynôme sont donnés. +p = [3 2 1] +roots(p) +// Les racines d'un polynôme complexe. +p=poly([0,10,1+%i,1-%i],'x'); +roots(p) +// Les racines du polynôme caractéristique d'une matrice. +A=rand(3,3); +p = poly(A,'x') +roots(p) +spec(A) + ]]></programlisting> + <para> + La représentation polynômiale peut avoir un impact significatif sur les + racines. + Dans l'exemple suivant, suggéré par Wilkinson dans les années 60 et présenté + par Moler, on considère une matrice dont les termes diagonaux sont égaux + à 1, 2, ..., 20. + Bien entendu, les racines du polynôme caractéristique sont 1, 2, ..., 20. + Si on calcule le polynôme caractéristique associé et qu'on calcule ses + racines, on peut voir qu'elles sont significativement différentes des + valeurs attendues. + Cela montre que le seul fait de représenter les coefficients dans + des doubles IEEE change les racines. + </para> + <programlisting role="example"><![CDATA[ +A = diag(1:20); +p = poly(A,'x') +roots(p) + ]]></programlisting> + <para> + L'option "f" produit une erreur si le polynôme est complexe + ou que le degré est plus grand que 100. + </para> + <programlisting role="example"><![CDATA[ + // Le cas suivant produit une erreur + p = %i+%s; + roots(p,"f") + // Le cas suivant produit une erreur + p = ones(101,1); + roots(p,"f") + ]]></programlisting> + <para> + Le script suivant est une manière simple de vérifier que la matrice compagnon donne le même résultat que l'option "e". + Il utilise explicitement la matrice compagnon pour calculer les racines. + Il faut néanmoins inverser les coefficients du polynôme ; + en effet, "roots" les attend dans l'ordre de degré décroissant, + alors que "poly" les attend dans l'ordre croissant. + </para> + <programlisting role="example"><![CDATA[ +v= [1.12119799 0 3.512D+13 32 3.275D+27 0 1.117D+41 4.952D+27 1.722D+54 0 1.224D+67 0 3.262D+79 ]; +r1 = roots(v,"e"); // Avec l'option "e" +dv = size(v,"*"); +p = poly(v(dv:-1:1),"x","coeff"); // Inversion des coefficients de v +A = companion(p); +r2 = spec(A); // Avec la matrice compagnon +max(abs(r1-r2)) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Voir aussi</title> + <simplelist type="inline"> + <member> + <link linkend="poly">poly</link> + </member> + <member> + <link linkend="spec">spec</link> + </member> + <member> + <link linkend="companion">companion</link> + </member> + </simplelist> + </refsection> + <refsection> + <title>Bibliographie</title> + <para> + La routine RPOLY est decrite dans "Algorithm 493: Zeros of a Real + Polynomial", ACM TOMS Volume 1, Issue 2 (June 1975), pp. 178-189 + </para> + </refsection> + <refsection> + <title>Fonctions Utilisées</title> + <para> + Le code source de rpoly.f peut être trouvé dans le répertoire + SCI/modules/polynomials/src/fortran/ de la distribution source de Scilab. Dans le cas où la + matrix compagnon est utilisée, le calcul des valeurs propres est effectué + en utilisant les routines DGEEV et ZGEEV de LAPACK. + </para> + </refsection> +</refentry> diff --git a/modules/polynomials/help/fr_FR/rowcompr.xml b/modules/polynomials/help/fr_FR/rowcompr.xml new file mode 100755 index 000000000..d70e94624 --- /dev/null +++ b/modules/polynomials/help/fr_FR/rowcompr.xml @@ -0,0 +1,69 @@ +<?xml version="1.0" encoding="UTF-8"?> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="fr" xml:id="rowcompr"> + <refnamediv> + <refname>rowcompr</refname> + <refpurpose>compression de lignes d'une matrice de polynômes </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Séquence d'appel</title> + <synopsis>[X,rk,Ac]=rowcompr(A)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Paramètres</title> + <variablelist> + <varlistentry> + <term>A </term> + <listitem> + <para>matrice de polynômes + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Y </term> + <listitem> + <para>matrice carrée de polynômes (base unimodulaire à gauche) + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>rk </term> + <listitem> + <para> + rang normal de <literal>A</literal> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Ac </term> + <listitem> + <para> + : <literal>Ac=X*A</literal>, matrice de polynômes + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + Compression de lignes de la matrice de polynômes <literal>A </literal>. + </para> + <para> + <literal>X</literal> est une base de polynômes unimodulaire à gauche qui compresse les lignes + de <literal>A</literal>. <literal>rk</literal> est le rang normal de A. + </para> + <para> + <warning> + Attention : élimination des termes "petits" (à utiliser avec précaution). + </warning> + </para> + </refsection> + <refsection role="see also"> + <title>Voir aussi</title> + <simplelist type="inline"> + <member> + <link linkend="colcompr">colcompr</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/fr_FR/sfact.xml b/modules/polynomials/help/fr_FR/sfact.xml new file mode 100755 index 000000000..711b38093 --- /dev/null +++ b/modules/polynomials/help/fr_FR/sfact.xml @@ -0,0 +1,82 @@ +<?xml version="1.0" encoding="UTF-8"?> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="fr" xml:id="sfact"> + <refnamediv> + <refname>sfact</refname> + <refpurpose>factorisation spectrale en temps discret </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Séquence d'appel</title> + <synopsis>F=sfact(P)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Paramètres</title> + <variablelist> + <varlistentry> + <term>P </term> + <listitem> + <para>matrice de polynômes réels + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + Trouve <literal>F</literal>, un facteur spectral de <literal>P</literal>. <literal>P</literal> est une + matrice de polynômes telle que chaque racine de <literal>P</literal> a une image miroir + par rapport au cercle unité. Le problème est singulier si une racine se trouve sur le cercle unité. + </para> + <para> + <literal>sfact(P)</literal> renvoie une matrice de polynômes <literal>F(z)</literal> antistable et telle que + </para> + <para> + <literal>P = F(z)* F(1/z) *z^n</literal> + </para> + <para> + Pour les polynômes scalaires un algorithme spécifique est utilisé. + Les algorithmes sont tirés du livre de Kucera. + </para> + </refsection> + <refsection> + <title>Exemples</title> + <programlisting role="example"><![CDATA[ +// polynôme simple +z=poly(0,'z'); +p=(z-1/2)*(2-z) +w=sfact(p); +w*numer(horner(w,1/z)) + +// exemple matriciel +F1=[z-1/2,z+1/2,z^2+2;1,z,-z;z^3+2*z,z,1/2-z]; +P=F1*gtild(F1,'d'); // P est symétrique +F=sfact(P) +roots(det(P)) +roots(det(gtild(F,'d'))) // Les racines stables +roots(det(F)) // Les racines antistables +clean(P-F*gtild(F,'d')) + +// Utilisation en temps continu +s=poly(0,'s'); +p=-3*(s+(1+%i))*(s+(1-%i))*(s+0.5)*(s-0.5)*(s-(1+%i))*(s-(1-%i));p=real(p); +// p(s) = polynôme dans s^2, cherche un f stable tel que p=f(s)*f(-s) +w=horner(p,(1-s)/(1+s)); // transformation bilinéaire w=p((1-s)/(1+s)) +wn=numer(w); // prend le numérateur +fn=sfact(wn);f=numer(horner(fn,(1-s)/(s+1))); // Factorisation et transformation inverse +f=f/sqrt(horner(f*gtild(f,'c'),0));f=f*sqrt(horner(p,0)); // normalisation +roots(f) // f est stable +clean(f*gtild(f,'c')-p) //f(s)*f(-s) est égal à p(s) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Voir aussi</title> + <simplelist type="inline"> + <member> + <link linkend="gtild">gtild</link> + </member> + <member> + <link linkend="fspecg">fspecg</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/fr_FR/simp.xml b/modules/polynomials/help/fr_FR/simp.xml new file mode 100755 index 000000000..8998b15ed --- /dev/null +++ b/modules/polynomials/help/fr_FR/simp.xml @@ -0,0 +1,96 @@ +<?xml version="1.0" encoding="UTF-8"?> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="fr" xml:id="simp"> + <refnamediv> + <refname>simp</refname> + <refpurpose>simplification rationnelle </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Séquence d'appel</title> + <synopsis>[N1,D1]=simp(N,D) + H1=simp(H) + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Paramètres</title> + <variablelist> + <varlistentry> + <term>N,D </term> + <listitem> + <para>polynômes réels ou matrices de polynômes réels + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>H </term> + <listitem> + <para> + matrice de fractions rationnelles (i.e matrice avec des termes <literal>n/d</literal>, <literal>n</literal> et <literal>d</literal> polynômes réels) + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal>[n1,d1]=simp(n,d)</literal> calcule deux polynômes <literal>n1</literal> et <literal>d1</literal> + tels que<literal>n1/d1 = n/d</literal>. + </para> + <para> + Si <literal>N</literal> et <literal>D</literal> sont des matrices de polynômes le calcul + est fait élément par élément. + </para> + <para> + <literal>H1=simp(H)</literal> est aussi valide (chaque terme de <literal>H</literal> est simplifié dans <literal>H1</literal>). + </para> + <para> + <warning> + Attention : + </warning> + </para> + <para> + - pas de seuil i.e. <literal>simp</literal> ne peut pas forcer une + simplification. + </para> + <para> + - Pour les systèmes dynamiques linéaires avec un intégrateur la simplification + change le gain statique. (<literal>H(0)</literal> pour les systèmes continus ou <literal>H(1)</literal> pour les systèmes discrets) + </para> + <para> + - Pour les données complexes, <literal>simp</literal> renvoie ses entrées. + </para> + <para> + - Une simplification est effectuée après la plupart des opérations rationnelles. Il est possible de la supprimer en utilisant la fonction <literal>simp_mode</literal>. + </para> + </refsection> + <refsection> + <title>Exemples</title> + <programlisting role="example"><![CDATA[ +s=poly(0,'s'); +[n,d]=simp((s+1)*(s+2),(s+1)*(s-2)) + +simp_mode(%F);hns=s/s +simp_mode(%T);hns=s/s + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Voir aussi</title> + <simplelist type="inline"> + <member> + <link linkend="roots">roots</link> + </member> + <member> + <link linkend="trfmod">trfmod</link> + </member> + <member> + <link linkend="poly">poly</link> + </member> + <member> + <link linkend="clean">clean</link> + </member> + <member> + <link linkend="simp_mode">simp_mode</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/fr_FR/simp_mode.xml b/modules/polynomials/help/fr_FR/simp_mode.xml new file mode 100755 index 000000000..4dd1aa3ed --- /dev/null +++ b/modules/polynomials/help/fr_FR/simp_mode.xml @@ -0,0 +1,58 @@ +<?xml version="1.0" encoding="UTF-8"?> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="fr" xml:id="simp_mode"> + <refnamediv> + <refname>simp_mode</refname> + <refpurpose>mode de simplification des fractions rationnelles </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Séquence d'appel</title> + <synopsis>mod=simp_mode() + simp_mode(mod) + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Paramètres</title> + <variablelist> + <varlistentry> + <term>mod </term> + <listitem> + <para>un booléen + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + Une simplification rationnelle est effectuée après chaque opération sur les fractions rationnelles. Il est possible de changer cela avec la fonction <literal>simp_mode</literal>. + </para> + <para> + <literal>simp_mode(%t)</literal> passe en mode de simplification systématique. + </para> + <para> + <literal>simp_mode(%f)</literal> empêche les simplifications. + </para> + <para> + <literal>mod=simp_mode()</literal> renvoie dans mod le mode de simplification courant. + </para> + </refsection> + <refsection> + <title>Exemples</title> + <programlisting role="example"><![CDATA[ +s=poly(0,'s'); +mod=simp_mode() +simp_mode(%f);hns=s/s +simp_mode(%t);hns=s/s +simp_mode(mod); + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Voir aussi</title> + <simplelist type="inline"> + <member> + <link linkend="simp">simp</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/fr_FR/sylm.xml b/modules/polynomials/help/fr_FR/sylm.xml new file mode 100755 index 000000000..b37fe06e8 --- /dev/null +++ b/modules/polynomials/help/fr_FR/sylm.xml @@ -0,0 +1,68 @@ +<?xml version="1.0" encoding="UTF-8"?> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="fr" xml:id="sylm"> + <refnamediv> + <refname>sylm</refname> + <refpurpose>matrice de Sylvester </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Séquence d'appel</title> + <synopsis>[S]=sylm(a,b)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Paramètres</title> + <variablelist> + <varlistentry> + <term>a,b </term> + <listitem> + <para>deux polynômes + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>S </term> + <listitem> + <para>matrice + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal>sylm(a,b)</literal> renvoie la matrice de Sylvester associée aux polynômes + <literal>a</literal> et <literal>b</literal>, i.e. la matrice <literal>S</literal> telle que : + </para> + <para> + <literal>coeff( a*x + b*y )' = S * [coeff(x)';coeff(y)']</literal>. + </para> + <para> + La dimension de <literal>S</literal> est égale à <literal>degree(a)+degree(b)</literal>. + </para> + <para> + Si <literal>a</literal> et <literal>b</literal> sont premiers entre eux alors + </para> + <para> + <literal>rank(sylm(a,b))=degree(a)+degree(b))</literal> et les instructions + </para> + <programlisting role="no-scilab-exec"><![CDATA[ +u = sylm(a,b) \ eye(na+nb,1) +x = poly(u(1:nb),'z','coeff') +y = poly(u(nb+1:na+nb),'z','coeff') + ]]></programlisting> + <para> + calculent les facteurs de Bezout <literal>x</literal> ainsi que <literal>y</literal> de degré minimum tels que + <literal>a*x+b*y = 1</literal> + </para> + + <refsection> + <title>Exemples</title> + <programlisting role="example"><![CDATA[ +x = poly(0,"x") +y = poly ([1, 2, 3], "x","coeff"); +sylm(x,y) + + ]]></programlisting> + </refsection> + </refsection> +</refentry> diff --git a/modules/polynomials/help/fr_FR/varn.xml b/modules/polynomials/help/fr_FR/varn.xml new file mode 100755 index 000000000..f67068c45 --- /dev/null +++ b/modules/polynomials/help/fr_FR/varn.xml @@ -0,0 +1,96 @@ +<?xml version="1.0" encoding="UTF-8"?> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="fr" xml:id="varn"> + <refnamediv> + <refname>varn</refname> + <refpurpose>variable symbolique d'un polynôme ou d'une fraction rationnelle</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Séquence d'appel</title> + <synopsis>[symb]=varn(p) + [pm]=varn(p,varname) + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Paramètres</title> + <variablelist> + <varlistentry> + <term>p </term> + <listitem> + <para>matrice de polynômes ou de fractions rationelles + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>symb </term> + <listitem> + <para> + chaîne de caractères: nom de l'indéterminée des éléments de <literal>p</literal> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>varname </term> + <listitem> + <para> + chaîne de caractères: nouveau nom à attribuer à la variable des polynômes ou fractions rationnelles de <literal>p</literal> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>pm </term> + <listitem> + <para> + matrice <literal>p</literal> actualisée avec le nouveau nom de variable <literal>varname</literal> + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal>symb=varn(p)</literal> renvoie dans <literal>symb</literal> l'indéterminée du polynôme <literal>p</literal> + (par exemple <literal>varn(poly(0,'x'))</literal> est égal à <literal>'x'</literal>). + </para> + <para> + <literal>varn(p,'s')</literal> renvoie une matrice polynomiale de même taille que <literal>p</literal> mais avec <literal>'s'</literal> comme indéterminée. + </para> + </refsection> + <refsection> + <title>Exemples</title> + <programlisting role="example"><![CDATA[ +s = poly(0,'s'); p = [s^2+1,s]; +varn(p) +varn(p,'x') + +f = %z / (%z-1); f = [f f^2] +varn(f) +varn(f,"x") + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Voir aussi</title> + <simplelist type="inline"> + <member> + <link linkend="poly">poly</link> + </member> + <member> + <link linkend="rlist">rlist</link> + </member> + <member> + <link linkend="horner">horner</link> + </member> + </simplelist> + </refsection> + <refsection> + <title>Historique</title> + <revhistory> + <revision> + <revnumber>5.5.1</revnumber> + <revdescription> + <para>Extension aux fractions rationnelles</para> + </revdescription> + </revision> + </revhistory> + </refsection> +</refentry> diff --git a/modules/polynomials/help/ja_JP/addchapter.sce b/modules/polynomials/help/ja_JP/addchapter.sce new file mode 100755 index 000000000..11643ae1d --- /dev/null +++ b/modules/polynomials/help/ja_JP/addchapter.sce @@ -0,0 +1,11 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2009 - DIGITEO +// +// 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 + +add_help_chapter("Polynomials",SCI+"/modules/polynomials/help/ja_JP",%T); + diff --git a/modules/polynomials/help/ja_JP/bezout.xml b/modules/polynomials/help/ja_JP/bezout.xml new file mode 100755 index 000000000..a664cc253 --- /dev/null +++ b/modules/polynomials/help/ja_JP/bezout.xml @@ -0,0 +1,93 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA - Serge STEER + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="bezout"> + <refnamediv> + <refname>bezout</refname> + <refpurpose>å¤šé …å¼ã¾ãŸï½ˆæ•´æ•°ã®ã¹ã‚ºãƒ¼æ–¹ç¨‹å¼</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>[thegcd,U]=bezout(p1,p2)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Parameters</title> + <variablelist> + <varlistentry> + <term>p1, p2</term> + <listitem> + <para>2ã¤ã®å®Ÿæ•°å¤šé …å¼ã¾ãŸã¯2ã¤ã®æ•´æ•°ã‚¹ã‚«ãƒ©ãƒ¼(8åž‹)</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>説明</title> + <para> + <literal>[thegcd,U]=bezout(p1,p2)</literal> 㯠GCD, + <literal>p1</literal> ãŠã‚ˆã³ <literal>p2</literal>ã® + <literal>thegcd</literal>ãŠã‚ˆã³ + 以下ã®ã‚ˆã†ãª(2x2) ユニモジュラ行列<literal>U</literal> + を計算ã—ã¾ã™: + </para> + <para> + <literal>[p1,p2]*U = [thegcd,0]</literal> + </para> + <para> + <literal>p1</literal>ãŠã‚ˆã³<literal>p2</literal>ã®lcm㯠+ 以下ã®ã‚ˆã†ã«æŒ‡å®šã•ã‚Œã¾ã™: + </para> + <para> + <literal>p1*U(1,2)</literal> (ã¾ãŸã¯ <literal>-p2*U(2,2)</literal>) + </para> + </refsection> + <refsection> + <title>例</title> + <programlisting role="example"><![CDATA[ +// å¤šé …å¼ã®å ´åˆ +x=poly(0,'x'); +p1=(x+1)*(x-3)^5;p2=(x-2)*(x-3)^3; +[thegcd,U]=bezout(p1,p2) +det(U) +clean([p1,p2]*U) +thelcm=p1*U(1,2) +lcm([p1,p2]) +// æ•´æ•°ã®å ´åˆ +i1=int32(2*3^5); i2=int32(2^3*3^2); +[thegcd,U]=bezout(i1,i2) +V=int32([2^2*3^5, 2^3*3^2,2^2*3^4*5]); +[thegcd,U]=gcd(V) +V*U +lcm(V) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>å‚ç…§</title> + <simplelist type="inline"> + <member> + <link linkend="poly">poly</link> + </member> + <member> + <link linkend="roots">roots</link> + </member> + <member> + <link linkend="simp">simp</link> + </member> + <member> + <link linkend="clean">clean</link> + </member> + <member> + <link linkend="lcm">lcm</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/ja_JP/chepol.xml b/modules/polynomials/help/ja_JP/chepol.xml new file mode 100755 index 000000000..a919a365e --- /dev/null +++ b/modules/polynomials/help/ja_JP/chepol.xml @@ -0,0 +1,50 @@ +<?xml version="1.0" encoding="UTF-8"?> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="chepol"> + <refnamediv> + <refname>chepol</refname> + <refpurpose>ãƒã‚§ãƒ“ã‚·ã‚§ãƒ•å¤šé …å¼ </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>呼ã³å‡ºã—æ‰‹é †</title> + <synopsis>[Tn]=chepol(n,var)</synopsis> + </refsynopsisdiv> + <refsection> + <title>パラメータ</title> + <variablelist> + <varlistentry> + <term>n</term> + <listitem> + <para>æ•´æ•° : å¤šé …å¼ã®æ¬¡æ•°</para> + </listitem> + </varlistentry> + <varlistentry> + <term>var</term> + <listitem> + <para>æ–‡å—列 : å¤šé …å¼ã®å¤‰æ•°</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Tn</term> + <listitem> + <para> + 変数 <literal>var</literal>ã®å¤šé …å¼ + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>説明</title> + <para> + ãƒã‚§ãƒ“ã‚·ã‚§ãƒ•å¤šé …å¼ã®å†å¸°çš„実装. + <literal>T0=1</literal> ãŠã‚ˆã³ <literal>T1=poly(0,var)</literal>ã¨ã—㟠+ <literal>Tn=2*poly(0,var)*chepol(n-1,var)-chepol(n-2,var)</literal>. + </para> + </refsection> + <refsection> + <title>例</title> + <programlisting role="example"><![CDATA[ +chepol(4,'x') + ]]></programlisting> + </refsection> +</refentry> diff --git a/modules/polynomials/help/ja_JP/cmndred.xml b/modules/polynomials/help/ja_JP/cmndred.xml new file mode 100755 index 000000000..80b625038 --- /dev/null +++ b/modules/polynomials/help/ja_JP/cmndred.xml @@ -0,0 +1,60 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="cmndred"> + <refnamediv> + <refname>cmndred</refname> + <refpurpose>共通分æ¯å½¢å¼</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>呼ã³å‡ºã—æ‰‹é †</title> + <synopsis>[n,d]=cmndred(num,den)</synopsis> + </refsynopsisdiv> + <refsection> + <title>パラメータ</title> + <variablelist> + <varlistentry> + <term>num, den</term> + <listitem> + <para>åŒã˜æ¬¡å…ƒã®2ã¤ã®å¤šé …å¼è¡Œåˆ—</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>説明</title> + <para> + <literal>[n,d]=cmndred(num,den)</literal>ã¯, + 以下ã®ã‚ˆã†ãª + å¤šé …å¼è¡Œåˆ—<literal>n</literal>ãŠã‚ˆã³ + 共通分æ¯å¤šé …å¼<literal>d</literal>を計算ã—ã¾ã™: + </para> + <para> + <literal>n/d=num./den</literal> + </para> + <para> + <literal>num./den</literal>ã«ã‚ˆã‚Šå®šç¾©ã•ã‚Œã‚‹æœ‰ç†è¡Œåˆ—㯠+ <literal>n/d</literal>ã§ã™. + </para> + </refsection> + <refsection role="see also"> + <title>å‚ç…§</title> + <simplelist type="inline"> + <member> + <link linkend="simp">simp</link> + </member> + <member> + <link linkend="clean">clean</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/ja_JP/coeff.xml b/modules/polynomials/help/ja_JP/coeff.xml new file mode 100755 index 000000000..c1c8d1f54 --- /dev/null +++ b/modules/polynomials/help/ja_JP/coeff.xml @@ -0,0 +1,76 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA - Serge STEER + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="coeff"> + <refnamediv> + <refname>coeff</refname> + <refpurpose>å¤šé …å¼è¡Œåˆ—ã®ä¿‚æ•°</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>呼ã³å‡ºã—æ‰‹é †</title> + <synopsis>[C]=coeff(Mp [,v])</synopsis> + </refsynopsisdiv> + <refsection> + <title>パラメータ</title> + <variablelist> + <varlistentry> + <term>Mp</term> + <listitem> + <para>å¤šé …å¼è¡Œåˆ—</para> + </listitem> + </varlistentry> + <varlistentry> + <term>v</term> + <listitem> + <para>æ•´æ•° (è¡Œã¾ãŸã¯åˆ—), é¸æŠžã—ãŸæ¬¡æ•°ã®ãƒ™ã‚¯ãƒˆãƒ«</para> + </listitem> + </varlistentry> + <varlistentry> + <term>C</term> + <listitem> + <para>大ããªä¿‚æ•°ã®è¡Œåˆ—</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>説明</title> + <para> + <literal>C=coeff(Mp)</literal> + å¤šé …å¼è¡Œåˆ—<literal>Mp</literal>ã®ä¿‚æ•°ã§ã‚る大ã㪠+ 行列<literal>C</literal>ã‚’è¿”ã—ã¾ã™. + <literal>C</literal>ã¯<literal>C=[C0,C1,...,Ck]</literal>ã®ã‚ˆã†ã« + 分割ã•ã‚Œã¾ã™. + ãŸã ã—,<literal>Ci</literal>ã¯æ˜‡é † + <literal>k = max(degree(Mp))</literal>ã«ä¸¦ã¹ã‚‰ã‚Œã¦ã„ã¾ã™. + </para> + <para> + <literal>C=coeff(Mp,v)</literal> 㯠+ <literal>v</literal>ã®æ¬¡æ•°ã®è¡Œåˆ—ã®ä¿‚æ•°ã‚’è¿”ã—ã¾ã™ + (<literal>v</literal> ã¯è¡Œã¾ãŸã¯åˆ—ベクトルã§ã™). + </para> + </refsection> + <refsection role="see also"> + <title>å‚ç…§</title> + <simplelist type="inline"> + <member> + <link linkend="poly">poly</link> + </member> + <member> + <link linkend="degree">degree</link> + </member> + <member> + <link linkend="inv_coeff">inv_coeff</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/ja_JP/coffg.xml b/modules/polynomials/help/ja_JP/coffg.xml new file mode 100755 index 000000000..2826d0db9 --- /dev/null +++ b/modules/polynomials/help/ja_JP/coffg.xml @@ -0,0 +1,78 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA - Francois DELBECQUE + * + * 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 + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="coffg"> + <refnamediv> + <refname>coffg</refname> + <refpurpose>å¤šé …å¼è¡Œåˆ—ã®é€†</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>呼ã³å‡ºã—æ‰‹é †</title> + <synopsis>[Ns,d]=coffg(Fs)</synopsis> + </refsynopsisdiv> + <refsection> + <title>パラメータ</title> + <variablelist> + <varlistentry> + <term>Fs</term> + <listitem> + <para>æ£æ–¹å¤šé …å¼è¡Œåˆ—</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>説明</title> + <para> + <literal>coffg</literal> 㯠<literal>Fs^-1</literal> を計算ã—ã¾ã™. + ãŸã ã—, <literal>Fs</literal> ã¯ä½™å› å法ã«ã‚ˆã‚‹å¤šé …å¼è¡Œåˆ—ã§ã™. + </para> + <para> + <literal>Fs</literal> inverse = <literal>Ns/d</literal> + </para> + <para> + <literal>d</literal> = 共通分æ¯; <literal>Ns</literal> = 分å (å¤šé …å¼è¡Œåˆ—) + </para> + <para> + (大ããªè¡Œåˆ—ã®å ´åˆ,時間ãŒã‹ã‹ã‚Šã¾ã™ãŒ,çµæžœã¯ä¸€èˆ¬ã«ä¿¡é ¼ã§ãã¾ã™) + </para> + </refsection> + <refsection> + <title>例</title> + <programlisting role="example"><![CDATA[ +s=poly(0,'s') +a=[ s, s^2+1; s s^2-1]; +[a1,d]=coffg(a); +(a1/d)-inv(a) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>å‚ç…§</title> + <simplelist type="inline"> + <member> + <link linkend="determ">determ</link> + </member> + <member> + <link linkend="detr">detr</link> + </member> + <member> + <link linkend="invr">invr</link> + </member> + <member> + <link linkend="penlaur">penlaur</link> + </member> + <member> + <link linkend="glever">glever</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/ja_JP/colcompr.xml b/modules/polynomials/help/ja_JP/colcompr.xml new file mode 100755 index 000000000..6968786b5 --- /dev/null +++ b/modules/polynomials/help/ja_JP/colcompr.xml @@ -0,0 +1,78 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="colcompr"> + <refnamediv> + <refname>colcompr</refname> + <refpurpose>å¤šé …å¼è¡Œåˆ—ã®åˆ—圧縮 </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>呼ã³å‡ºã—æ‰‹é †</title> + <synopsis>[Y,rk,ac]=colcompr(A);</synopsis> + </refsynopsisdiv> + <refsection> + <title>パラメータ</title> + <variablelist> + <varlistentry> + <term>A</term> + <listitem> + <para>å¤šé …å¼è¡Œåˆ—</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Y</term> + <listitem> + <para>æ£æ–¹å¤šé …å¼è¡Œåˆ— (å³ãƒ¦ãƒ‹ãƒ¢ã‚¸ãƒ¥ãƒ©åŸºåº•)</para> + </listitem> + </varlistentry> + <varlistentry> + <term>rk</term> + <listitem> + <para> + <literal>A</literal>ã®é€šå¸¸ãƒ©ãƒ³ã‚¯ + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Ac</term> + <listitem> + <para> + <literal>Ac=A*Y</literal>, å¤šé …å¼è¡Œåˆ— + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>説明</title> + <para> + å¤šé …å¼è¡Œåˆ— <literal>A</literal>ã®åˆ—圧縮 (å·¦ã¸ã®åœ§ç¸®) + </para> + </refsection> + <refsection> + <title>例</title> + <programlisting role="example"><![CDATA[ +s=poly(0,'s'); +p=[s;s*(s+1)^2;2*s^2+s^3]; +[Y,rk,ac]=colcompr(p*p'); +p*p'*Y + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>å‚ç…§</title> + <simplelist type="inline"> + <member> + <link linkend="rowcompr">rowcompr</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/ja_JP/degree.xml b/modules/polynomials/help/ja_JP/degree.xml new file mode 100755 index 000000000..b3451fcfe --- /dev/null +++ b/modules/polynomials/help/ja_JP/degree.xml @@ -0,0 +1,59 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="degree"> + <refnamediv> + <refname>degree</refname> + <refpurpose>å¤šé …å¼è¡Œåˆ—ã®æ¬¡æ•°</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>呼ã³å‡ºã—æ‰‹é †</title> + <synopsis>[D]=degree(M)</synopsis> + </refsynopsisdiv> + <refsection> + <title>パラメータ</title> + <variablelist> + <varlistentry> + <term>M</term> + <listitem> + <para>å¤šé …å¼è¡Œåˆ—</para> + </listitem> + </varlistentry> + <varlistentry> + <term>D</term> + <listitem> + <para>整数行列</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>説明</title> + <para> + <literal>M</literal>ã®æœ€é«˜æ¬¡æ•°ã®è¡Œåˆ—ã‚’è¿”ã—ã¾ã™. + </para> + </refsection> + <refsection role="see also"> + <title>å‚ç…§</title> + <simplelist type="inline"> + <member> + <link linkend="poly">poly</link> + </member> + <member> + <link linkend="coeff">coeff</link> + </member> + <member> + <link linkend="clean">clean</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/ja_JP/denom.xml b/modules/polynomials/help/ja_JP/denom.xml new file mode 100755 index 000000000..0aacbe0de --- /dev/null +++ b/modules/polynomials/help/ja_JP/denom.xml @@ -0,0 +1,62 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="denom"> + <refnamediv> + <refname>denom</refname> + <refpurpose>分æ¯</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>呼ã³å‡ºã—æ‰‹é †</title> + <synopsis>den=denom(r)</synopsis> + </refsynopsisdiv> + <refsection> + <title>パラメータ</title> + <variablelist> + <varlistentry> + <term>r</term> + <listitem> + <para>有ç†ã¾ãŸã¯å¤šé …å¼ã¾ãŸã¯å®šæ•°è¡Œåˆ—.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>den</term> + <listitem> + <para>å¤šé …å¼è¡Œåˆ—</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>説明</title> + <para> + <literal>den=denom(r)</literal>㯠+ 有ç†è¡Œåˆ—ã®åˆ†æ¯ã‚’è¿”ã—ã¾ã™. + </para> + <para> + 有ç†æ•°ã¯,内部的㫠+ <literal>r=list(['r','num','den','dt'],num,den,[])</literal>㨠+ 表ã•ã‚Œ, + <literal>denom(r</literal>) 㯠<literal>r(3)</literal>, + <literal>r('den')</literal> ã¾ãŸã¯ <literal>r.den</literal>㨠+ åŒã˜ã«ãªã‚Šã¾ã™. + </para> + </refsection> + <refsection role="see also"> + <title>å‚ç…§</title> + <simplelist type="inline"> + <member> + <link linkend="numer">numer</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/ja_JP/derivat.xml b/modules/polynomials/help/ja_JP/derivat.xml new file mode 100755 index 000000000..fd87a229a --- /dev/null +++ b/modules/polynomials/help/ja_JP/derivat.xml @@ -0,0 +1,66 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="derivat"> + <refnamediv> + <refname>derivat</refname> + <refpurpose>有ç†è¡Œåˆ—ã®å¾®åˆ†</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>呼ã³å‡ºã—æ‰‹é †</title> + <synopsis>pd=derivat(p)</synopsis> + </refsynopsisdiv> + <refsection> + <title>パラメータ</title> + <variablelist> + <varlistentry> + <term>p</term> + <listitem> + <para>å¤šé …å¼ã¾ãŸã¯æœ‰ç†è¡Œåˆ—</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>説明</title> + <para> + å¤šé …å¼ã¾ãŸã¯æœ‰ç†é–¢æ•°è¡Œåˆ—ã®ãƒ€ãƒŸãƒ¼å¤‰æ•°ã«é–¢ã™ã‚‹å¾®åˆ†ã‚’計算ã—ã¾ã™. + </para> + </refsection> + <refsection> + <title>例</title> + <programlisting role="example"><![CDATA[ +s=poly(0,'s'); +derivat(1/s) // -1/s^2; + ]]></programlisting> + <programlisting role="example"><![CDATA[ +p1 = poly([1 -2 1], 'x', 'coeff') +derivat(p1) + ]]></programlisting> + <programlisting role="example"><![CDATA[ +p2 = poly([1 -4 2], 'y', 'coeff') +derivat(p2) + ]]></programlisting> + <programlisting role="example"><![CDATA[ +p3 = poly(ones(1, 10), 'z', 'coeff') +derivat(p3) + ]]></programlisting> + <programlisting role="example"><![CDATA[ +p4 = poly([-1 1], 't', 'roots') +derivat(p4) + ]]></programlisting> + <programlisting role="example"><![CDATA[ +s = %s; p5 = s^{-1} + 2 + 3*s +derivat(p5) + ]]></programlisting> + </refsection> +</refentry> diff --git a/modules/polynomials/help/ja_JP/determ.xml b/modules/polynomials/help/ja_JP/determ.xml new file mode 100755 index 000000000..e02fb48fc --- /dev/null +++ b/modules/polynomials/help/ja_JP/determ.xml @@ -0,0 +1,83 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA - Francois DELBECQUE + * + * 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 + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="determ"> + <refnamediv> + <refname>determ</refname> + <refpurpose>å¤šé …å¼è¡Œåˆ—ã®è¡Œåˆ—å¼</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>呼ã³å‡ºã—æ‰‹é †</title> + <synopsis>res=determ(W [,k])</synopsis> + </refsynopsisdiv> + <refsection> + <title>パラメータ</title> + <variablelist> + <varlistentry> + <term>W</term> + <listitem> + <para>実数æ£æ–¹å¤šé …å¼è¡Œåˆ—</para> + </listitem> + </varlistentry> + <varlistentry> + <term>k</term> + <listitem> + <para>æ•´æ•° (Wã®è¡Œåˆ—å¼ã®æ¬¡æ•°ã®ä¸Šé™</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>説明</title> + <para> + å®Ÿæ•°å¤šé …å¼è¡Œåˆ—ã®è¡Œåˆ—å¼ã‚’è¿”ã—ã¾ã™ + (Wã®å¤§ãã•ãŒ2*2より大ãã„å ´åˆ,FFTã«ã‚ˆã‚Šè¨ˆç®—ã•ã‚Œã¾ã™). + </para> + <para> + <literal>res=determ(W [,k])</literal><literal>k</literal> 㯠+ <literal>W</literal>ã®è¡Œåˆ—å¼ã®å®Ÿéš›ã®æ¬¡æ•°ã‚ˆã‚Šå¤§ããªæ•´æ•°ã§ã™. + </para> + <para> + <literal>k</literal>ã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆå€¤ã¯<literal>n*max(degree(W))</literal> + より大ããª2ã®å†ªä¹—ã®æœ€å°å€¤ã§ã™. + </para> + <para> + 手法 (Wã®å¤§ãã•ãŒ 2*2より大ããªå ´åˆã®ã¿) : + フーリエ周波数ã«é–¢ã—㦠+ <literal>W</literal>ã®è¡Œåˆ—å¼ã‚’評価ã—, + 行列å¼ã®ä¿‚æ•°ã«é€†FFTã‚’é©ç”¨ã—ã¾ã™. + </para> + </refsection> + <refsection> + <title>例</title> + <programlisting role="example"><![CDATA[ +s=poly(0,'s'); +w=s*rand(10,10); +determ(w) +det(coeff(w,1))*s^10 + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>å‚ç…§</title> + <simplelist type="inline"> + <member> + <link linkend="det">det</link> + </member> + <member> + <link linkend="detr">detr</link> + </member> + <member> + <link linkend="coffg">coffg</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/ja_JP/detr.xml b/modules/polynomials/help/ja_JP/detr.xml new file mode 100755 index 000000000..51dcf419f --- /dev/null +++ b/modules/polynomials/help/ja_JP/detr.xml @@ -0,0 +1,53 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="detr"> + <refnamediv> + <refname>detr</refname> + <refpurpose>å¤šé …å¼ã®è¡Œåˆ—å¼</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>呼ã³å‡ºã—æ‰‹é †</title> + <synopsis>d=detr(h)</synopsis> + </refsynopsisdiv> + <refsection> + <title>パラメータ</title> + <variablelist> + <varlistentry> + <term>h</term> + <listitem> + <para>å¤šé …å¼ã¾ãŸã¯æœ‰ç†æ£æ–¹è¡Œåˆ—</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>説明</title> + <para> + <literal>d=detr(h)</literal> 㯠+ å¤šé …å¼ã¾ãŸã¯æœ‰ç†é–¢æ•°è¡Œåˆ—<literal>h</literal>ã® + 行列å¼<literal>d</literal>ã‚’è¿”ã—ã¾ã™. + Leverrierã®ã‚¢ãƒ«ã‚´ãƒªã‚ºãƒ ã«åŸºã¥ãã¾ã™. + </para> + </refsection> + <refsection role="see also"> + <title>å‚ç…§</title> + <simplelist type="inline"> + <member> + <link linkend="det">det</link> + </member> + <member> + <link linkend="determ">determ</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/ja_JP/diophant.xml b/modules/polynomials/help/ja_JP/diophant.xml new file mode 100755 index 000000000..8a04ddc5d --- /dev/null +++ b/modules/polynomials/help/ja_JP/diophant.xml @@ -0,0 +1,69 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="diophant"> + <refnamediv> + <refname>diophant</refname> + <refpurpose>ダイオファンタイン (ã¹ã‚ºãƒ¼) 方程å¼</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>呼ã³å‡ºã—æ‰‹é †</title> + <synopsis>[x,err]=diophant(p1p2,b)</synopsis> + </refsynopsisdiv> + <refsection> + <title>パラメータ</title> + <variablelist> + <varlistentry> + <term>p1p2</term> + <listitem> + <para> + å¤šé …å¼ãƒ™ã‚¯ãƒˆãƒ« <literal>p1p2 = [p1 p2]</literal> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>b</term> + <listitem> + <para>å¤šé …å¼</para> + </listitem> + </varlistentry> + <varlistentry> + <term>x</term> + <listitem> + <para>å¤šé …å¼ãƒ™ã‚¯ãƒˆãƒ« [x1;x2]</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>説明</title> + <para> + <literal> diophant</literal> ã¯ä»¥ä¸‹ã®ã¹ã‚ºãƒ¼æ–¹ç¨‹å¼ã‚’解ãã¾ã™: + </para> + <para> + å¤šé …å¼ãƒ™ã‚¯ãƒˆãƒ«<literal>p1p2</literal>ã§æŒ‡å®šã—㟠+ <literal>p1*x1+p2*x2=b</literal> + </para> + <para>ã“ã®æ–¹ç¨‹å¼ãŒå¯è§£ã®å ´åˆ: + <literal>err=0</literal> + </para> + </refsection> + <refsection> + <title>例</title> + <programlisting role="example"><![CDATA[ +s=poly(0,'s');p1=(s+3)^2;p2=(1+s); +x1=s;x2=(2+s); +[x,err]=diophant([p1,p2],p1*x1+p2*x2); +p1*x1+p2*x2-p1*x(1)-p2*x(2) + ]]></programlisting> + </refsection> +</refentry> diff --git a/modules/polynomials/help/ja_JP/factors.xml b/modules/polynomials/help/ja_JP/factors.xml new file mode 100755 index 000000000..213bdf1e8 --- /dev/null +++ b/modules/polynomials/help/ja_JP/factors.xml @@ -0,0 +1,133 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="factors"> + <refnamediv> + <refname>factors</refname> + <refpurpose>å®Ÿæ•°å› æ•°åˆ†è§£</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>呼ã³å‡ºã—æ‰‹é †</title> + <synopsis>[lnum,g]=factors(pol [,'flag']) + [lnum,lden,g]=factors(rat [,'flag']) + rat=factors(rat,'flag') + </synopsis> + </refsynopsisdiv> + <refsection> + <title>パラメータ</title> + <variablelist> + <varlistentry> + <term>pol</term> + <listitem> + <para>å®Ÿæ•°å¤šé …å¼</para> + </listitem> + </varlistentry> + <varlistentry> + <term>rat</term> + <listitem> + <para> + 実数有ç†å¤šé …å¼ (<literal>rat=pol1/pol2</literal>) + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>lnum</term> + <listitem> + <para>(1 ã¾ãŸã¯ 2次ã®)å¤šé …å¼ã®ãƒªã‚¹ãƒˆ</para> + </listitem> + </varlistentry> + <varlistentry> + <term>lden</term> + <listitem> + <para>(1 ã¾ãŸã¯ 2次ã®)å¤šé …å¼ã®ãƒªã‚¹ãƒˆ</para> + </listitem> + </varlistentry> + <varlistentry> + <term>g</term> + <listitem> + <para>実数</para> + </listitem> + </varlistentry> + <varlistentry> + <term>flag</term> + <listitem> + <para> + æ–‡å—列 <literal>'c'</literal>ã¾ãŸã¯ <literal>'d'</literal> + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>説明</title> + <para> + å¤šé …å¼<literal>pol</literal>ã®å› æ•°ã‚’ + リスト<literal>lnum</literal>ãŠã‚ˆã³"ゲイン" gã«è¿”ã—ã¾ã™. + </para> + <para> + (<literal>flag</literal>ãŒæŒ‡å®šã•ã‚Œãªã„å ´åˆ,) + pol= g ã«ãƒªã‚¹ãƒˆ<literal>lnum</literal>ã®ã‚¨ãƒ³ãƒˆãƒªã®ç©ã‚’ä¹—ã˜ã‚‹ã“ã¨ã«ãªã‚Šã¾ã™. + <literal>flag='c'</literal>ãŒæŒ‡å®šã•ã‚ŒãŸæš´ã„, + <literal>|pol(i omega)|</literal> = <literal>|g*prod(lnum_j(i omega)|</literal> + ã¨ãªã‚Šã¾ã™. + <literal>flag='d'</literal>ãŒæŒ‡å®šã•ã‚ŒãŸå ´åˆ, + <literal>|pol(exp(i omega))|</literal> = <literal>|g*prod(lnum_i(exp(i omega))|</literal> + ã¨ãªã‚Šã¾ã™. + <literal>factors</literal>ã®å¼•æ•°ãŒ 1x1 有ç†æ•° <literal>rat=pol1/pol2</literal>ã®å ´åˆ, + 分å<literal>pol1</literal> ãŠã‚ˆã³åˆ†æ¯ the denominator <literal>pol2</literal>ã®å› æ•° + ãŒãã‚Œãžã‚Œãƒªã‚¹ãƒˆ<literal>lnum</literal> ãŠã‚ˆã³ <literal>lden</literal>ã«è¿”ã•ã‚Œã¾ã™. + </para> + <para> + "gain" 㯠<literal>g</literal>ã«è¿”ã•ã‚Œã¾ã™. + ã™ãªã‚ã¡: + rat= g times (lnumã®ã‚¨ãƒ³ãƒˆãƒªã®ç©) / (ldenã®ã‚¨ãƒ³ãƒˆãƒªã®ç©). + </para> + <para> + <literal>flag</literal> ãŒ<literal>'c'</literal> (ã¾ãŸã¯<literal>'d'</literal>)ã®å ´åˆ, + <literal>pol</literal>ã®æ ¹ã¯è™šè»¸(ã¾ãŸã¯å˜ä½å††)ã«é–¢ã—ã¦æŠ˜ã‚Šè¿”ã•ã‚Œã¾ã™. + ã™ãªã‚ã¡,<literal>lnum</literal>ã®å› æ•°ã¯å®‰å®šãªå¤šé …å¼ã¨ãªã‚Šã¾ã™. + </para> + <para> + 有ç†æ•°ã®å¼•æ•°ã‚’指定ã—ã¦<literal>factors</literal>ãŒã‚³ãƒ¼ãƒ«ã•ã‚ŒãŸå ´åˆ: + <literal>lnum</literal>ãŠã‚ˆã³ <literal>lden</literal>ã®ã‚¨ãƒ³ãƒˆãƒªã¯, + <literal>flag</literal>ãŒæŒ‡å®šã•ã‚ŒãŸå ´åˆã« + 安定ãªå¤šé …å¼ã¨ãªã‚Šã¾ã™. + 有ç†é–¢æ•°<literal>R1</literal>ã¾ãŸã¯SISOリスト<literal>syslin</literal>を指定ã™ã‚‹ + <literal>R2=factors(R1,'c')</literal> ã¾ãŸã¯ <literal>R2=factors(R1,'d')</literal> + ã®å ´åˆ, + 出力<literal>R2</literal>ã¯,安定ãªåˆ†åãŠã‚ˆã³åˆ†æ¯ã‚’有ã—, + 虚軸(<literal>'c'</literal>)ã¾ãŸã¯å˜ä½å††(<literal>'d'</literal>)ã«æ²¿ã£ãŸ + <literal>R1</literal>ã¨åŒã˜å¤§ãã•ã®ä¼é”関数ã¨ãªã‚Šã¾ã™. + </para> + </refsection> + <refsection> + <title>例</title> + <programlisting role="example"><![CDATA[ +n=poly([0.2,2,5],'z'); +d=poly([0.1,0.3,7],'z'); +R=syslin('d',n,d); +R1=factors(R,'d') +roots(R1('num')) +roots(R1('den')) +w=exp(2*%i*%pi*[0:0.1:1]); +norm(abs(horner(R1,w))-abs(horner(R,w))) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>å‚ç…§</title> + <simplelist type="inline"> + <member> + <link linkend="simp">simp</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/ja_JP/hermit.xml b/modules/polynomials/help/ja_JP/hermit.xml new file mode 100755 index 000000000..0c4decbc6 --- /dev/null +++ b/modules/polynomials/help/ja_JP/hermit.xml @@ -0,0 +1,79 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="hermit"> + <refnamediv> + <refname>hermit</refname> + <refpurpose>エルミート形å¼</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>呼ã³å‡ºã—æ‰‹é †</title> + <synopsis>[Ar,U]=hermit(A)</synopsis> + </refsynopsisdiv> + <refsection> + <title>パラメータ</title> + <variablelist> + <varlistentry> + <term>A</term> + <listitem> + <para>å¤šé …å¼è¡Œåˆ—</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Ar</term> + <listitem> + <para>ä¸‰è§’å¤šé …å¼è¡Œåˆ—</para> + </listitem> + </varlistentry> + <varlistentry> + <term>U</term> + <listitem> + <para>ãƒ¦ãƒ‹ãƒ¢ã‚¸ãƒ¥ãƒ©å¤šé …å¼è¡Œåˆ—</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>説明</title> + <para> + エルミート形å¼: <literal>U</literal> ã¯, + <literal>A*U</literal>ãŒã‚¨ãƒ«ãƒŸãƒ¼ãƒˆä¸‰è§’å½¢å¼ã¨ãªã‚‹ã‚ˆã†ãª + ユニモジュラ行列ã§ã™: + </para> + <para> + 出力変数㯠<literal>Ar=A*U</literal>ã§ã™. + </para> + <para> + è¦å‘Š: 実験版 + </para> + </refsection> + <refsection> + <title>例</title> + <programlisting role="example"><![CDATA[ +s=poly(0,'s'); +p=[s, s*(s+1)^2, 2*s^2+s^3]; +[Ar,U]=hermit(p'*p); +clean(p'*p*U), det(U) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>å‚ç…§</title> + <simplelist type="inline"> + <member> + <link linkend="hrmt">hrmt</link> + </member> + <member> + <link linkend="htrianr">htrianr</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/ja_JP/horner.xml b/modules/polynomials/help/ja_JP/horner.xml new file mode 100755 index 000000000..f2dadaf45 --- /dev/null +++ b/modules/polynomials/help/ja_JP/horner.xml @@ -0,0 +1,92 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="horner"> + <refnamediv> + <refname>horner</refname> + <refpurpose>å¤šé …å¼/有ç†æ•°ã®è©•ä¾¡</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>呼ã³å‡ºã—æ‰‹é †</title> + <synopsis>horner(P,x)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Parameters</title> + <variablelist> + <varlistentry> + <term>P</term> + <listitem> + <para>å¤šé …å¼ã¾ãŸã¯æœ‰ç†æ•°ã®è¡Œåˆ—</para> + </listitem> + </varlistentry> + <varlistentry> + <term>x</term> + <listitem> + <para>数値ã¾ãŸã¯å¤šé …å¼ã¾ãŸã¯æœ‰ç†æ•°ã®é…列</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>説明</title> + <para> + å¤šé …å¼ã®å¤‰æ•°<literal>s</literal>ãŒ<literal>x</literal>㧠+ ç½®æ›ã•ã‚Œã‚‹æ™‚, + å¤šé …å¼ã¾ãŸã¯æœ‰ç†æ•°è¡Œåˆ—<literal>P = P(s)</literal>を評価ã—ã¾ã™: + </para> + <para> + <literal>horner(P,x)</literal>=<literal>P(x)</literal> + </para> + <para> + 例 (åŒä¸€æ¬¡å¤‰æ›): <literal>P = P(s)</literal> ãŒæœ‰ç†è¡Œåˆ—ã¨ä»®å®šã™ã‚‹ã¨, + 有ç†è¡Œåˆ—<literal>P((1+s)/(1-s))</literal>㯠+ <literal>horner(P,(1+s)/(1-s))</literal>ã«ã‚ˆã‚Šå¾—られã¾ã™. + </para> + <para> + 指定ã—ãŸå‘¨æ³¢æ•°ã§æœ‰ç†è¡Œåˆ—を評価ã™ã‚‹å ´åˆã¯, + <literal>freq</literal>プリミティブを使用ã™ã‚‹æ–¹ãŒè‰¯ã„ã§ã—ょã†. + </para> + </refsection> + <refsection> + <title>例</title> + <programlisting role="example"><![CDATA[ +//数値ベクトルã«é–¢ã™ã‚‹å¤šé …å¼ã®è©•ä¾¡ +P=poly(1:3,'x') +horner(P,[1 2 5]) +horner(P,[1 2 5]+%i) +//有ç†æ•°ã®è©•ä¾¡ +s=poly(0,'s');M=[s,1/s]; +horner(M,1) +horner(M,%i) +horner(M,1/s) +//数値行列ã«é–¢ã™ã‚‹å¤šé …å¼ã®è©•ä¾¡ +X= [1 2;3 4] +p=poly(1:3,'x','c') +m=horner(p, X) +1*X.^0+2*X.^1+3*X.^2 + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>å‚ç…§</title> + <simplelist type="inline"> + <member> + <link linkend="freq">freq</link> + </member> + <member> + <link linkend="repfreq">repfreq</link> + </member> + <member> + <link linkend="evstr">evstr</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/ja_JP/hrmt.xml b/modules/polynomials/help/ja_JP/hrmt.xml new file mode 100755 index 000000000..08c39d027 --- /dev/null +++ b/modules/polynomials/help/ja_JP/hrmt.xml @@ -0,0 +1,76 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="hrmt"> + <refnamediv> + <refname>hrmt</refname> + <refpurpose>å¤šé …å¼ã®æœ€å¤§å…¬ç´„æ•°</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>呼ã³å‡ºã—æ‰‹é †</title> + <synopsis>[pg,U]=hrmt(v)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Parameters</title> + <variablelist> + <varlistentry> + <term>v</term> + <listitem> + <para> + å¤šé …å¼ã®è¡Œ,ã™ãªã‚ã¡,<literal>1</literal>x<literal>k</literal> å¤šé …å¼è¡Œåˆ— + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>pg</term> + <listitem> + <para>å¤šé …å¼</para> + </listitem> + </varlistentry> + <varlistentry> + <term>U</term> + <listitem> + <para>ãƒ¦ãƒ‹ãƒ¢ã‚¸ãƒ¥ãƒ©å¤šé …å¼è¡Œåˆ—</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>説明</title> + <para> + <literal>[pg,U]=hrmt(v)</literal> ã¯,å¤šé …å¼<literal>v</literal>ã«ã¤ã„㦠+ ユニモジュラ行列<literal>U</literal>ãŠã‚ˆã³ + <literal>v*U = [pg,0]</literal>ã¨ãªã‚‹ã‚ˆã†ãª, + <literal>pg</literal> = å¤šé …å¼ã®è¡Œã®æœ€å¤§å…¬ç´„æ•°ã‚’è¿”ã—ã¾ã™. + </para> + </refsection> + <refsection> + <title>例</title> + <programlisting role="example"><![CDATA[ +x=poly(0,'x'); +v=[x*(x+1),x^2*(x+1),(x-2)*(x+1),(3*x^2+2)*(x+1)]; +[pg,U]=hrmt(v);U=clean(U) +det(U) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>å‚ç…§</title> + <simplelist type="inline"> + <member> + <link linkend="gcd">gcd</link> + </member> + <member> + <link linkend="htrianr">htrianr</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/ja_JP/htrianr.xml b/modules/polynomials/help/ja_JP/htrianr.xml new file mode 100755 index 000000000..28b2c2232 --- /dev/null +++ b/modules/polynomials/help/ja_JP/htrianr.xml @@ -0,0 +1,89 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="htrianr"> + <refnamediv> + <refname>htrianr</refname> + <refpurpose>å¤šé …å¼è¡Œåˆ—ã®ä¸‰è§’化</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>呼ã³å‡ºã—æ‰‹é †</title> + <synopsis>[Ar,U,rk]=htrianr(A)</synopsis> + </refsynopsisdiv> + <refsection> + <title>パラメータ</title> + <variablelist> + <varlistentry> + <term>A</term> + <listitem> + <para>å¤šé …å¼è¡Œåˆ—</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Ar</term> + <listitem> + <para>å¤šé …å¼è¡Œåˆ—</para> + </listitem> + </varlistentry> + <varlistentry> + <term>U</term> + <listitem> + <para>ãƒ¦ãƒ‹ãƒ¢ã‚¸ãƒ¥ãƒ©å¤šé …å¼è¡Œåˆ—</para> + </listitem> + </varlistentry> + <varlistentry> + <term>rk</term> + <listitem> + <para> + æ•´æ•°, <literal>A</literal>ã®é€šå¸¸ãƒ©ãƒ³ã‚¯ + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>説明</title> + <para> + å¤šé …å¼è¡Œåˆ— <literal>A</literal>ã®ä¸‰è§’化. + </para> + <para> + <literal>A</literal> 㯠<literal>[m,n]</literal> , <literal>m <= n</literal>ã§ã™. + </para> + <para> + <literal>Ar=A*U</literal> + </para> + <para> + è¦å‘Š: "å°ã•ã„"é …ã®å‰Šé™¤ãŒè¡Œã‚ã‚Œã¾ã™(関数コードをå‚ç…§). + </para> + </refsection> + <refsection> + <title>例</title> + <programlisting role="example"><![CDATA[ +x=poly(0,'x'); +M=[x;x^2;2+x^3]*[1,x-2,x^4]; +[Mu,U,rk]=htrianr(M) +det(U) +M*U(:,1:2) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>å‚ç…§</title> + <simplelist type="inline"> + <member> + <link linkend="hrmt">hrmt</link> + </member> + <member> + <link linkend="colcompr">colcompr</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/ja_JP/inv_coeff.xml b/modules/polynomials/help/ja_JP/inv_coeff.xml new file mode 100755 index 000000000..5ae293463 --- /dev/null +++ b/modules/polynomials/help/ja_JP/inv_coeff.xml @@ -0,0 +1,73 @@ +<?xml version="1.0" encoding="UTF-8"?> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="inv_coeff"> + <refnamediv> + <refname>inv_coeff</refname> + <refpurpose>係数を指定ã—ã¦å¤šé …å¼è¡Œåˆ—を作æˆ</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>呼ã³å‡ºã—æ‰‹é †</title> + <synopsis>[P]=inv_coeff(C,[,d,[name])</synopsis> + </refsynopsisdiv> + <refsection> + <title>パラメータ</title> + <variablelist> + <varlistentry> + <term>C</term> + <listitem> + <para>ä¿‚æ•°ã®è¡Œåˆ—</para> + </listitem> + </varlistentry> + <varlistentry> + <term>d</term> + <listitem> + <para>å¤šé …å¼è¡Œåˆ—ã®æ¬¡æ•°. + オプションã®ãƒ‘ラメータã§ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆå€¤ã¯ <literal>d=-1+size(C,'c')/size(C,'r')</literal> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>name</term> + <listitem> + <para> + å¤šé …å¼ã®å¤‰æ•°åを指定ã™ã‚‹æ–‡å—列 (デフォルト値: <literal>'x'</literal>). + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>説明</title> + <para> + <literal>P=inv_coeff(Mp,k)</literal>ã¯, <literal>k</literal> ㌠<literal>Mp</literal> ã® + 大ãã•ã¨äº’æ›æ€§ãŒã‚ã‚‹å ´åˆ, k次ã®å¤šé …å¼è¡Œåˆ—ã‚’è¿”ã—ã¾ã™. + <literal>C=[C0,C1,...,Ck]</literal> ã®æ™‚, + <literal>P= C0 + C1*x +... +Ck*x^k</literal>ã¨ãªã‚Šã¾ã™. + </para> + </refsection> + <refsection> + <title>例</title> + <programlisting role="example"><![CDATA[ +A=int(10*rand(2,6)) +// 1次ã®å¤šé …å¼è¡Œåˆ—ã‚’ä½œæˆ +P=inv_coeff(A,1) +norm(coeff(P)-A) +// 次数ã«ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆå€¤ã‚’使用 +P1=inv_coeff(A) +norm(coeff(P1)-A) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>å‚ç…§</title> + <simplelist type="inline"> + <member> + <link linkend="poly">poly</link> + </member> + <member> + <link linkend="degree">degree</link> + </member> + <member> + <link linkend="coeff">coeff</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/ja_JP/invr.xml b/modules/polynomials/help/ja_JP/invr.xml new file mode 100755 index 000000000..41e1d9d28 --- /dev/null +++ b/modules/polynomials/help/ja_JP/invr.xml @@ -0,0 +1,69 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="invr"> + <refnamediv> + <refname>invr</refname> + <refpurpose>(有ç†) 行列ã®é€†</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>呼ã³å‡ºã—æ‰‹é †</title> + <synopsis>F = invr(H)</synopsis> + </refsynopsisdiv> + <refsection> + <title>パラメータ</title> + <variablelist> + <varlistentry> + <term>H</term> + <listitem> + <para>å¤šé …å¼ã¾ãŸã¯æœ‰ç†è¡Œåˆ—</para> + </listitem> + </varlistentry> + <varlistentry> + <term>F</term> + <listitem> + <para>å¤šé …å¼ã¾ãŸã¯æœ‰ç†è¡Œåˆ—</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>説明</title> + <para> + <literal>H</literal> ãŒå¤šé …å¼ã¾ãŸã¯æœ‰ç†é–¢æ•°è¡Œåˆ—ã®å ´åˆ, <literal>invr</literal> + ã¯Leverrierã®ã‚¢ãƒ«ã‚´ãƒªã‚ºãƒ ã«ã‚ˆã‚Š <literal>H^(-1)</literal>を計算ã—ã¾ã™ (関数コードå‚ç…§) + </para> + </refsection> + <refsection> + <title>例</title> + <programlisting role="example"><![CDATA[ +s=poly(0,'s') +H=[s,s*s+2;1-s,1+s]; invr(H) +[Num,den]=coffg(H);Num/den +H=[1/s,(s+1);1/(s+2),(s+3)/s];invr(H) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>å‚ç…§</title> + <simplelist type="inline"> + <member> + <link linkend="glever">glever</link> + </member> + <member> + <link linkend="coffg">coffg</link> + </member> + <member> + <link linkend="inv">inv</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/ja_JP/lcmdiag.xml b/modules/polynomials/help/ja_JP/lcmdiag.xml new file mode 100755 index 000000000..fb6d16e98 --- /dev/null +++ b/modules/polynomials/help/ja_JP/lcmdiag.xml @@ -0,0 +1,92 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="lcmdiag"> + <refnamediv> + <refname>lcmdiag</refname> + <refpurpose>最å°å…¬å€æ•°å¯¾è§’分解</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>呼ã³å‡ºã—æ‰‹é †</title> + <synopsis>[N,D]=lcmdiag(H) + [N,D]=lcmdiag(H,flag) + </synopsis> + </refsynopsisdiv> + <refsection> + <title>パラメータ</title> + <variablelist> + <varlistentry> + <term>H</term> + <listitem> + <para>有ç†è¡Œåˆ—</para> + </listitem> + </varlistentry> + <varlistentry> + <term>N</term> + <listitem> + <para>å¤šé …å¼è¡Œåˆ—</para> + </listitem> + </varlistentry> + <varlistentry> + <term>D</term> + <listitem> + <para>å¯¾è§’å¤šé …å¼è¡Œåˆ—</para> + </listitem> + </varlistentry> + <varlistentry> + <term>flag</term> + <listitem> + <para> + æ–‡å—列: <literal>'row'</literal> ã¾ãŸã¯ <literal>'col'</literal> (デフォルト) + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>説明</title> + <para> + <literal>[N,D]=lcmdiag(H,'row')</literal> ã¯, + 分解<literal>D*H=N</literal>, + ã™ãªã‚ã¡,<literal>H=D^(-1)*N</literal>を計算ã—ã¾ã™ + ãŸã ã—, D 㯠D(k,k)= H('den')ã®k行目ã®æœ€å°å…¬å€æ•°ã¨ãªã‚‹ + 対角行列ã§ã™. + </para> + <para> + <literal>[N,D]=lcmdiag(H)</literal> ã¾ãŸã¯ <literal>[N,D]=lcmdiag(H,'col)</literal> + ã¯,D(k,k)=H('den')ã®k列目ã®æœ€å°å…¬å€æ•°ã¨ãªã‚‹<literal>H=N*D^(-1)</literal>ã‚’è¿”ã—ã¾ã™. + </para> + </refsection> + <refsection> + <title>例</title> + <programlisting role="example"><![CDATA[ +s=poly(0,'s'); +H=[1/s,(s+2)/s/(s+1)^2;1/(s^2*(s+2)),2/(s+2)]; +[N,D]=lcmdiag(H); +N/D-H + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>å‚ç…§</title> + <simplelist type="inline"> + <member> + <link linkend="lcm">lcm</link> + </member> + <member> + <link linkend="gcd">gcd</link> + </member> + <member> + <link linkend="bezout">bezout</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/ja_JP/ldiv.xml b/modules/polynomials/help/ja_JP/ldiv.xml new file mode 100755 index 000000000..792c5cb5f --- /dev/null +++ b/modules/polynomials/help/ja_JP/ldiv.xml @@ -0,0 +1,79 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="ldiv"> + <refnamediv> + <refname>ldiv</refname> + <refpurpose>å¤šé …å¼è¡Œåˆ—ã®é•·é™¤ç®—</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>呼ã³å‡ºã—æ‰‹é †</title> + <synopsis>[x]=ldiv(n,d,k)</synopsis> + </refsynopsisdiv> + <refsection> + <title>パラメータ</title> + <variablelist> + <varlistentry> + <term>n,d</term> + <listitem> + <para>å®Ÿæ•°å¤šé …å¼è¡Œåˆ—</para> + </listitem> + </varlistentry> + <varlistentry> + <term>k</term> + <listitem> + <para>æ•´æ•°</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>説明</title> + <para> + <literal>x=ldiv(n,d,k)</literal> ã¯, + <literal>n</literal>ã®<literal>d</literal>ã«ã‚ˆã‚‹é•·é™¤ç®—ã® + 最åˆã®<literal>k</literal>個ã®ä¿‚数を出力ã—ã¾ã™. + ã™ãªã‚ã¡,有ç†è¡Œåˆ—<literal>[nij(z)/dij(z)]</literal>ã®ç„¡é™å¤§è¿‘å‚ã§ã® + テイラー展開を出力ã—ã¾ã™. + </para> + <para> + <literal>nij/dij</literal>ã®å±•é–‹ã®ä¿‚数㯠+ <literal>x((i-1)*n+k,j) k=1:n</literal>ã«ä¿å˜ã•ã‚Œã¾ã™ + </para> + </refsection> + <refsection> + <title>例</title> + <programlisting role="example"><![CDATA[ +wss=ssrand(1,1,3);[a,b,c,d]=abcd(wss); +wtf=ss2tf(wss); +x1=ldiv(numer(wtf),denom(wtf),5) +x2=[c*b;c*a*b;c*a^2*b;c*a^3*b;c*a^4*b] +wssbis=markp2ss(x1',5,1,1); +wtfbis=clean(ss2tf(wssbis)) +x3=ldiv(numer(wtfbis),denom(wtfbis),5) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>å‚ç…§</title> + <simplelist type="inline"> + <member> + <link linkend="arl2">arl2</link> + </member> + <member> + <link linkend="markp2ss">markp2ss</link> + </member> + <member> + <link linkend="pdiv">pdiv</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/ja_JP/numer.xml b/modules/polynomials/help/ja_JP/numer.xml new file mode 100755 index 000000000..a83ef79f9 --- /dev/null +++ b/modules/polynomials/help/ja_JP/numer.xml @@ -0,0 +1,57 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="numer"> + <refnamediv> + <refname>numer</refname> + <refpurpose>分å</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>呼ã³å‡ºã—æ‰‹é †</title> + <synopsis>num=numer(R)</synopsis> + </refsynopsisdiv> + <refsection> + <title>パラメータ</title> + <variablelist> + <varlistentry> + <term>R</term> + <listitem> + <para>有ç†ã¾ãŸã¯å¤šé …å¼ã¾ãŸã¯å®šæ•°è¡Œåˆ—.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>num</term> + <listitem> + <para>å¤šé …å¼è¡Œåˆ—</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>説明</title> + <para> + ユーティリティ関数. <literal>num=numer(R)</literal> ã¯, + 有ç†é–¢æ•°è¡Œåˆ—<literal>R</literal>ã® + 分å<literal>num</literal>ã‚’è¿”ã—ã¾ã™ + (<literal>R</literal> ã¯å®šæ•°ã¾ãŸã¯å¤šé …å¼è¡Œåˆ—ã¨ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™). + <literal>numer(R)</literal> 㯠<literal>R(2)</literal>, <literal>R('num')</literal> ã¾ãŸã¯ <literal>R.num</literal>ã«ç‰ã—ããªã‚Šã¾ã™ + </para> + </refsection> + <refsection role="see also"> + <title>å‚ç…§</title> + <simplelist type="inline"> + <member> + <link linkend="denom">denom</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/ja_JP/pdiv.xml b/modules/polynomials/help/ja_JP/pdiv.xml new file mode 100755 index 000000000..a9723c766 --- /dev/null +++ b/modules/polynomials/help/ja_JP/pdiv.xml @@ -0,0 +1,82 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="pdiv"> + <refnamediv> + <refname>pdiv</refname> + <refpurpose>å¤šé …å¼ã®é™¤ç®—</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>呼ã³å‡ºã—æ‰‹é †</title> + <synopsis>[R,Q]=pdiv(P1,P2) + [Q]=pdiv(P1,P2) + </synopsis> + </refsynopsisdiv> + <refsection> + <title>パラメータ</title> + <variablelist> + <varlistentry> + <term>P1</term> + <listitem> + <para>å¤šé …å¼ã®è¡Œåˆ—</para> + </listitem> + </varlistentry> + <varlistentry> + <term>P2</term> + <listitem> + <para>å¤šé …å¼ã¾ãŸã¯å¤šé …å¼è¡Œåˆ— </para> + </listitem> + </varlistentry> + <varlistentry> + <term>R,Q</term> + <listitem> + <para>å¤šé …å¼è¡Œåˆ—</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>説明</title> + <para> + å¤šé …å¼è¡Œåˆ—<literal>P1</literal>ã®å¤šé …å¼<literal>P2</literal>ã¾ãŸã¯ + å¤šé …å¼è¡Œåˆ—<literal>P2</literal>ã«ã‚ˆã‚‹ + è¦ç´ 毎ã®ãƒ¦ãƒ¼ã‚¯ãƒªãƒƒãƒ‰é™¤ç®—. + <literal>Rij</literal>ã¯ä½™ã‚Šã®è¡Œåˆ—, + <literal>Qij</literal>ã¯å•†ã®è¡Œåˆ—,ãã—ã¦, + <literal>P1ij = Qij*P2 + Rij</literal> ã¾ãŸã¯ <literal>P1ij = Qij*P2ij + Rij</literal> + ã§ã™. + </para> + </refsection> + <refsection> + <title>例</title> + <programlisting role="example"><![CDATA[ +x=poly(0,'x'); +p1=(1+x^2)*(1-x);p2=1-x; +[r,q]=pdiv(p1,p2) +p2*q-p1 +p2=1+x; +[r,q]=pdiv(p1,p2) +p2*q+r-p1 + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>å‚ç…§</title> + <simplelist type="inline"> + <member> + <link linkend="ldiv">ldiv</link> + </member> + <member> + <link linkend="gcd">gcd</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/ja_JP/pol2str.xml b/modules/polynomials/help/ja_JP/pol2str.xml new file mode 100755 index 000000000..6c2d70e29 --- /dev/null +++ b/modules/polynomials/help/ja_JP/pol2str.xml @@ -0,0 +1,87 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * Copyright (C) 2013 - Samuel GOUGEON : upgrade for 5.5.0 + * + * 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 + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="pol2str"> + <refnamediv> + <refname>pol2str</refname> + <refpurpose>å¤šé …å¼ã‚’æ–‡å—列ã«å¤‰æ›</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>呼ã³å‡ºã—æ‰‹é †</title> + <synopsis>strs = pol2str(p)</synopsis> + </refsynopsisdiv> + <refsection> + <title>引数</title> + <variablelist> + <varlistentry> + <term>p</term> + <listitem> + <para>実数ã¾ãŸã¯è¤‡ç´ ä¿‚æ•°ã®å¤šé …å¼ã®è¡Œåˆ—ã¾ãŸã¯ãƒã‚¤ãƒ‘ー行列</para> + </listitem> + </varlistentry> + <varlistentry> + <term>strs</term> + <listitem> + <para>æ–‡å—列ã®è¡Œåˆ—ã¾ãŸã¯ãƒã‚¤ãƒ‘ー行列</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>説明</title> + <para> + å¤šé …å¼ã‚’æ–‡å—列ã«å¤‰æ›ã—ã¾ã™ (ユーティリティ関数). + </para> + <para> + <note> + ä¿‚æ•°ã®å‡ºåŠ›ãƒ•ã‚©ãƒ¼ãƒžãƒƒãƒˆã¯ã€<link linkend="format">format(..)</link> ã«ã‚ˆã£ã¦è¨å®šã•ã‚Œã¾ã™. + </note> + </para> + </refsection> + <refsection> + <title>例</title> + <programlisting role="example"><![CDATA[ +pol2str(%z) +p = poly ([1, 2, 3], "x","coeff"); +pol2str(p) +p = (1+%i+%z)^(1:4) +pol2str(p) +]]></programlisting> + </refsection> + <refsection role="see also"> + <title>å‚ç…§</title> + <simplelist type="inline"> + <member> + <link linkend="string">string</link> + </member> + <member> + <link linkend="prettyprint">prettyprint</link> + </member> + <member> + <link linkend="sci2exp">sci2exp</link> + </member> + </simplelist> + </refsection> + <refsection role="history tag"> + <title>å±¥æ´</title> + <revhistory> + <revision> + <revnumber>5.5.0</revnumber> + <revdescription> + pol2str() ã¯è¤‡ç´ 係数を有ã™ã‚‹å¤šé …å¼ãŠã‚ˆã³ãƒã‚¤ãƒ‘ー行列ã«æ‹¡å¼µã•ã‚Œã¾ã—ãŸ. + é…列処ç†ãŒãƒ™ã‚¯ãƒˆãƒ«åŒ–ã•ã‚Œã¾ã—ãŸ. + </revdescription> + </revision> + </revhistory> + </refsection> +</refentry> diff --git a/modules/polynomials/help/ja_JP/polfact.xml b/modules/polynomials/help/ja_JP/polfact.xml new file mode 100755 index 000000000..315139cb1 --- /dev/null +++ b/modules/polynomials/help/ja_JP/polfact.xml @@ -0,0 +1,77 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA - Serge STEER + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="polfact"> + <refnamediv> + <refname>polfact</refname> + <refpurpose>最å°å› æ•°</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>呼ã³å‡ºã—æ‰‹é †</title> + <synopsis>[f]=polfact(p)</synopsis> + </refsynopsisdiv> + <refsection> + <title>パラメータ</title> + <variablelist> + <varlistentry> + <term>p</term> + <listitem> + <para>å¤šé …å¼</para> + </listitem> + </varlistentry> + <varlistentry> + <term>f</term> + <listitem> + <para> + <literal>p=prod(f)</literal>ã¨ãªã‚‹ã‚ˆã†ãªãƒ™ã‚¯ãƒˆãƒ« <literal>[f0 f1 ... fn]</literal> + </para> + <variablelist> + <varlistentry> + <term>f0</term> + <listitem> + <para>定数</para> + </listitem> + </varlistentry> + <varlistentry> + <term>fi</term> + <listitem> + <para>å¤šé …å¼</para> + </listitem> + </varlistentry> + </variablelist> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>説明</title> + <para> + <literal>f=polfact(p)</literal> ã¯pã®æœ€å°å› æ•°,ã™ãªã‚ã¡, + <literal>p=prod(f)</literal>ã¨ãªã‚‹ã‚ˆã†ãª<literal>f=[f0 f1 ... fn]</literal> + ã‚’è¿”ã—ã¾ã™. + </para> + </refsection> + <refsection role="see also"> + <title>å‚ç…§</title> + <simplelist type="inline"> + <member> + <link linkend="lcm">lcm</link> + </member> + <member> + <link linkend="cmndred">cmndred</link> + </member> + <member> + <link linkend="factors">factors</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/ja_JP/poly.xml b/modules/polynomials/help/ja_JP/poly.xml new file mode 100755 index 000000000..9150a7b51 --- /dev/null +++ b/modules/polynomials/help/ja_JP/poly.xml @@ -0,0 +1,138 @@ +<?xml version="1.0" encoding="UTF-8"?> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="poly"> + <refnamediv> + <refname>poly</refname> + <refpurpose>å¤šé …å¼ã‚’定義ã™ã‚‹</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>呼ã³å‡ºã—æ‰‹é †</title> + <synopsis>p = poly(a, vname, ["flag"])</synopsis> + </refsynopsisdiv> + <refsection> + <title>引数</title> + <variablelist> + <varlistentry> + <term>a</term> + <listitem> + <para>行列ã¾ãŸã¯å®Ÿæ•°å€¤</para> + </listitem> + </varlistentry> + <varlistentry> + <term>vname</term> + <listitem> + <para>æ–‡å—列, 記å·å¤‰æ•°åを表ã—ã¾ã™. æ–‡å—列ã¯æœ€å¤§4æ–‡å—ã¨ã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>"flag" </term> + <listitem> + <para> + æ–‡å—列 (<literal>"roots"</literal>, <literal>"coeff"</literal>), + デフォルト値ã¯<literal>"roots"</literal>ã§ã™. + </para> + <para> + çŸç¸®å½¢ã‚‚使用ã§ãã¾ã™: + <literal>"roots"</literal> ã«ã¤ã„㦠<literal>"r"</literal>, + <literal>"coeff"</literal> ã«ã¤ã„㦠<literal>"c"</literal> + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>説明</title> + <variablelist> + <varlistentry> + <term> + <literal>a</literal> ãŒè¡Œåˆ—ã®å ´åˆ, + </term> + <listitem> + <para> + <literal>p</literal> ã¯ç‰¹æ€§å¤šé …å¼,ã™ãªã‚ã¡ + <code>determinant(x*eye()-a)</code> ã¨ãªã‚Š, <literal>x</literal>㌠+ 記å·å¤‰æ•°ã¨ãªã‚Šã¾ã™. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term> + <literal>v</literal> ãŒãƒ™ã‚¯ãƒˆãƒ«ã®å ´åˆ, + </term> + <listitem> + <itemizedlist> + <listitem> + <para> + <code>poly(v,"x",["roots"])</code> 㯠+ <literal>v</literal>ã®ã‚¨ãƒ³ãƒˆãƒªã‚’<literal>æ ¹(roots)</literal>ã¨ã—, + <literal>"x"</literal>ã‚’å½¢å¼å¤‰æ•°ã¨ã™ã‚‹å¤šé …å¼ã¨ãªã‚Šã¾ã™ + (ã“ã®å ´åˆ,<literal>roots</literal>ã¨<literal>poly</literal>ã¯é€†é–¢æ•°ã¨ãªã‚Šã¾ã™). + <note> + æ ¹ãŒç„¡é™å¤§ã®å ´åˆ,最高次ã®ä¿‚æ•°ãŒã‚¼ãƒã«ãªã‚‹ã“ã¨ã«æ³¨æ„ã—ã¦ãã ã•ã„. + </note> + </para> + </listitem> + <listitem> + <para> + <literal>poly(v,"x","coeff")</literal> ã¯è¨˜å·ã‚’<literal>"x"</literal> + ã¨ã—,<literal>v</literal>ã®ã‚¨ãƒ³ãƒˆãƒªã‚’ä¿‚æ•°ã¨ã™ã‚‹å¤šé …å¼ã‚’作æˆã—ã¾ã™ + (<code>v(1)</code>ãŒå¤šé …å¼ã®å®šæ•°é …ã¨ãªã‚Šã¾ã™). + (ã“ã®å ´åˆ, <literal>poly</literal> 㨠<literal>coeff</literal> ãŒé€†é–¢æ•°ã¨ãªã‚Šã¾ã™) + </para> + </listitem> + </itemizedlist> + </listitem> + </varlistentry> + </variablelist> + <para> + <literal>s=poly(0,"s")</literal> ã¯è¨˜å·<literal>"s"</literal>ã‚’ + 用ã„ãŸå¤šé …å¼ã‚’定義ã™ã‚‹ãŸã‚ã®æº–備作æ¥ã§ã™. + </para> + </refsection> + <refsection> + <title>例</title> + <programlisting role="example"><![CDATA[ +s=poly(0,"s"); +p=1+s+2*s^2 +A=rand(2,2); +poly(A,"x") +//有ç†åˆ†æ•° +h=(1+2*%s)/poly(1:4,'s','c') + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>å‚ç…§</title> + <simplelist type="inline"> + <member> + <link linkend="coeff">coeff</link> + </member> + <member> + <link linkend="roots">roots</link> + </member> + <member> + <link linkend="varn">varn</link> + </member> + <member> + <link linkend="horner">horner</link> + </member> + <member> + <link linkend="derivat">derivat</link> + </member> + <member> + <link linkend="matrices">matrices</link> + </member> + <member> + <link linkend="rational">rational</link> + </member> + </simplelist> + </refsection> + <refsection> + <title>å±¥æ´</title> + <revhistory> + <revision> + <revnumber>5.5.0</revnumber> + <revremark>第3引数ã«æŒ‡å®šå¯èƒ½ãªå€¤ã¯ "roots", "coeff", "c" ãŠã‚ˆã³ "r"ã®ã¿ã§ã™.</revremark> + </revision> + </revhistory> + </refsection> +</refentry> diff --git a/modules/polynomials/help/ja_JP/rational.xml b/modules/polynomials/help/ja_JP/rational.xml new file mode 100755 index 000000000..2a5a2dd27 --- /dev/null +++ b/modules/polynomials/help/ja_JP/rational.xml @@ -0,0 +1,51 @@ +<?xml version="1.0" encoding="UTF-8"?> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="rational"> + <refnamediv> + <refname>rational</refname> + <refpurpose>Scilab オブジェクト, Scilabã®æœ‰ç†æ•°</refpurpose> + </refnamediv> + <refsection> + <title>説明</title> + <para> + 有ç†æ•° <literal>r</literal> ã¯,2ã¤ã®å¤šé …å¼ã®å•†<literal>r=num/den</literal>ã§ã™. + 有ç†æ•°ã®å†…部表ç¾ã¯ãƒªã‚¹ãƒˆã§ã™. + <literal>r=tlist(['r','num','den','dt'],num,den,[])</literal>㯠+ <literal>r=num/den</literal>ã¨åŒã˜ã§ã™. + 有ç†è¡Œåˆ—ã¯é€šå¸¸ã®æ§‹æ–‡ã§å®šç¾©ã§ãã¾ã™. + 例ãˆã°, <literal>[r11,r12;r21,r22]</literal>㯠2x2 行列ã§ã™. + ãŸã ã—, <literal>rij</literal> 㯠1x1 有ç†æ•°ã§ã™. + 有ç†è¡Œåˆ—ã¯, + <literal>num</literal> ãŠã‚ˆã³ <literal>den</literal>ã‚’å¤šé …å¼è¡Œåˆ—ã¨ã—㦠+ リスト<literal>rlist(num,den,[])</literal>ã«ã‚ˆã‚Š + 定義ã™ã‚‹ã“ã¨ã‚‚å¯èƒ½ã§ã™. + </para> + </refsection> + <refsection> + <title>例</title> + <programlisting role="example"><![CDATA[ +s=poly(0,'s'); +W=[1/s,1/(s+1)] +W'*W +Num=[s,s+2;1,s];Den=[s*s,s;s,s*s]; +rlist(Num,Den,[]) +H=Num./Den +syslin('c',Num,Den) +syslin('c',H) +[Num1,Den1]=simp(Num,Den) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>å‚ç…§</title> + <simplelist type="inline"> + <member> + <link linkend="poly">poly</link> + </member> + <member> + <link linkend="syslin">syslin</link> + </member> + <member> + <link linkend="simp">simp</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/ja_JP/residu.xml b/modules/polynomials/help/ja_JP/residu.xml new file mode 100755 index 000000000..8a859a959 --- /dev/null +++ b/modules/polynomials/help/ja_JP/residu.xml @@ -0,0 +1,85 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA - Francois DELBECQUE + * + * 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 + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="residu"> + <refnamediv> + <refname>residu</refname> + <refpurpose>残差</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>呼ã³å‡ºã—æ‰‹é †</title> + <synopsis>[V]=residu(P,Q1,Q2)</synopsis> + </refsynopsisdiv> + <refsection> + <title>パラメータ</title> + <variablelist> + <varlistentry> + <term>P, Q1, Q2</term> + <listitem> + <para>実数ã¾ãŸã¯è¤‡ç´ æ•°ã®ä¿‚数を有ã™ã‚‹å¤šé …å¼ã¾ãŸã¯å¤šé …å¼ã®è¡Œåˆ—.</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>説明</title> + <para> + <literal>V=residu(P,Q1,Q2)</literal> ã¯, + <literal>V(i,j)</literal>㌠+ <literal>Q1(i,j)</literal>ã®ã‚¼ãƒã§è¨ˆç®—ã•ã‚Œã‚‹ + 有ç†æ•°<literal>P(i,j)/(Q1(i,j)*Q2(i,j))</literal> + ã®æ®‹å·®ã®åˆè¨ˆã¨ãªã‚‹ã‚ˆã†ãªè¡Œåˆ—<literal>V</literal>ã‚’è¿”ã—ã¾ã™. + </para> + <para> + <literal>Q1(i,j)</literal> ãŠã‚ˆã³ <literal>Q2(i,j)</literal> ã¯, + 共通ã®æ ¹ã‚’有ã•ãªã„å¿…è¦ãŒã‚ã‚Šã¾ã™. + </para> + </refsection> + <refsection> + <title>例</title> + <programlisting role="example"><![CDATA[ +s=poly(0,'s'); +H=[s/(s+1)^2,1/(s+2)];N=numer(H);D=denom(H); +w=residu(N.*horner(N,-s),D,horner(D,-s)); //N(s) N(-s) / D(s) D(-s) +sqrt(sum(w)) //H2ノルムã§ã™ +h2norm(tf2ss(H)) +p=(s-1)*(s+1)*(s+2)*(s+10);a=(s-5)*(s-1)*(s*s)*((s+1/2)**2); +b=(s-3)*(s+2/5)*(s+3); +residu(p,a,b)+531863/4410 //æ£ç¢º +z=poly(0,'z');a=z^3+0.7*z^2+0.5*z-0.3;b=z^3+0.3*z^2+0.2*z+0.1; +atild=gtild(a,'d');btild=gtild(b,'d'); +residu(b*btild,z*a,atild)-2.9488038 //æ£ç¢º +a=a+0*%i;b=b+0*%i; +real(residu(b*btild,z*a,atild)-2.9488038) //è¤‡ç´ æ•°ã®å ´åˆ + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>å‚ç…§</title> + <simplelist type="inline"> + <member> + <link linkend="pfss">pfss</link> + </member> + <member> + <link linkend="bdiag">bdiag</link> + </member> + <member> + <link linkend="roots">roots</link> + </member> + <member> + <link linkend="poly">poly</link> + </member> + <member> + <link linkend="gtild">gtild</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/ja_JP/roots.xml b/modules/polynomials/help/ja_JP/roots.xml new file mode 100755 index 000000000..728ae3cd6 --- /dev/null +++ b/modules/polynomials/help/ja_JP/roots.xml @@ -0,0 +1,95 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="roots" xml:lang="ja"> + <refnamediv> + <refname>roots</refname> + <refpurpose>å¤šé …å¼ã®æ ¹</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>呼ã³å‡ºã—æ‰‹é †</title> + <synopsis>[x]=roots(p) + [x]=roots(p,'e') + </synopsis> + </refsynopsisdiv> + <refsection> + <title>パラメータ</title> + <variablelist> + <varlistentry> + <term>p</term> + <listitem> + <para>実数ã¾ãŸã¯è¤‡ç´ ä¿‚æ•°ã®å¤šé …å¼ + ã¾ãŸã¯ + é™é †ã®å¤šé …å¼ä¿‚æ•°ã®ãƒ™ã‚¯ãƒˆãƒ«(MATLAB互æ›ç”¨). + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>説明</title> + <para> + <literal>x=roots(p)</literal> 㯠+ å¤šé …å¼<literal>p</literal>ã®<literal>x</literal>ã§ã‚ã‚‹ + è¤‡ç´ ãƒ™ã‚¯ãƒˆãƒ«ã‚’è¿”ã™. + 100次以下ã®å®Ÿæ•°å¤šé …å¼ã®å ´åˆ,高速ãª(Jenkins-Traub法ã«åŸºã¥ã) + RPOLYアルゴリズムãŒä½¿ç”¨ã•ã‚Œã‚‹. + ãã®ä»–ã®å ´åˆ, ãã®æ ¹ã¯ã‚³ãƒ³ãƒ‘ニオン行列ã®å›ºæœ‰å€¤ã¨ã—ã¦è¨ˆç®—ã•ã‚Œã‚‹. + ã©ã®ã‚ˆã†ãªå ´åˆã§ã‚‚ã“ã®ã‚¢ãƒ«ã‚´ãƒªã‚ºãƒ を強制的ã«ä½¿ç”¨ã—ãŸã„ + å ´åˆ,<literal>x=roots(p,'e')</literal>を使用ã•ã‚ŒãŸã„. + </para> + </refsection> + <refsection> + <title>例</title> + <programlisting role="example"><![CDATA[ +p=poly([0,10,1+%i,1-%i],'x'); +roots(p) +A=rand(3,3);roots(poly(A,'x')) // Evals by characteristic polynomial +spec(A) + ]]></programlisting> + </refsection> + <refsection> + <title>å‚考</title> + <simplelist type="inline"> + <member> + <link linkend="poly">poly</link> + </member> + <member> + <link linkend="spec">spec</link> + </member> + <member> + <link linkend="companion">companion</link> + </member> + </simplelist> + </refsection> + <refsection role="see also"> + <title>å‚ç…§</title> + <para>RPOLYアルゴリズムã¯ä»¥ä¸‹ã®æ–‡çŒ®ã«è¨˜è¿°ã•ã‚Œã¦ã„ã‚‹. + "Algorithm 493: Zeros of a Real + Polynomial", ACM TOMS Volume 1, Issue 2 (June 1975), pp. 178-189 + </para> + <para>Jenkins, M. A. and Traub, J. F. (1970), A Three-Stage Algorithm for + Real Polynomials Using Quadratic Iteration, SIAM J. Numer. Anal., 7(1970), 545-566. + </para> + <para>Jenkins, M. A. and Traub, J. F. (1970), Principles for Testing Polynomial Zerofinding Programs. + ACM TOMS 1, 1 (March 1975), pp. 26-34 + </para> + </refsection> + <refsection> + <title>使用ã•ã‚Œã‚‹é–¢æ•°</title> + <para>ソースコードrpoly.f ã¯Scilabã®é…布ソースã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒª + SCI/modules/polynomials/src/fortran ã«ã‚ã‚‹. + コンパニオン行列ãŒä½¿ç”¨ã•ã‚Œã‚‹å ´åˆ,固有値計算㯠+ Lapackコードã§ã‚ã‚‹DGEEVãŠã‚ˆã³ZGEEVã«ã‚ˆã‚Šè¡Œã‚れる. + </para> + </refsection> +</refentry> diff --git a/modules/polynomials/help/ja_JP/rowcompr.xml b/modules/polynomials/help/ja_JP/rowcompr.xml new file mode 100755 index 000000000..02506f8b5 --- /dev/null +++ b/modules/polynomials/help/ja_JP/rowcompr.xml @@ -0,0 +1,78 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="rowcompr"> + <refnamediv> + <refname>rowcompr</refname> + <refpurpose>å¤šé …å¼è¡Œåˆ—ã®è¡Œåœ§ç¸®</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>呼ã³å‡ºã—æ‰‹é †</title> + <synopsis>[X,rk,Ac]=rowcompr(A)</synopsis> + </refsynopsisdiv> + <refsection> + <title>パラメータ</title> + <variablelist> + <varlistentry> + <term>A</term> + <listitem> + <para>å¤šé …å¼è¡Œåˆ—</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Y</term> + <listitem> + <para>æ£æ–¹å¤šé …å¼è¡Œåˆ— (左ユニモジュラ基底)</para> + </listitem> + </varlistentry> + <varlistentry> + <term>rk</term> + <listitem> + <para> + <literal>A</literal>ã®é€šå¸¸ã®ãƒ©ãƒ³ã‚¯ + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Ac</term> + <listitem> + <para> + <literal>Ac=X*A</literal>, å¤šé …å¼è¡Œåˆ— + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>説明</title> + <para> + å¤šé …å¼è¡Œåˆ—<literal>A</literal>ã®è¡Œåœ§ç¸®. + </para> + <para> + <literal>X</literal> ã¯, + 行圧縮ã•ã‚ŒãŸ<literal>A</literal>ã®è¡Œã§ã‚ã‚‹ + å·¦å¤šé …å¼ãƒ¦ãƒ‹ãƒ¢ã‚¸ãƒ¥ãƒ©åŸºåº•ã§ã™. + <literal>rk</literal> 㯠Aã®é€šå¸¸ãƒ©ãƒ³ã‚¯ã§ã™. + </para> + <para> + è¦å‘Š: "å°ã•ã„"é …ã¯å‰Šé™¤ã•ã‚Œã¾ã™ (注æ„ã—ã¦ä½¿ç”¨ã—ã¦ãã ã•ã„!). + </para> + </refsection> + <refsection role="see also"> + <title>å‚ç…§</title> + <simplelist type="inline"> + <member> + <link linkend="colcompr">colcompr</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/ja_JP/sfact.xml b/modules/polynomials/help/ja_JP/sfact.xml new file mode 100755 index 000000000..f20edca8a --- /dev/null +++ b/modules/polynomials/help/ja_JP/sfact.xml @@ -0,0 +1,92 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="sfact"> + <refnamediv> + <refname>sfact</refname> + <refpurpose>離散時間スペクトル分解</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>呼ã³å‡ºã—æ‰‹é †</title> + <synopsis>F=sfact(P)</synopsis> + </refsynopsisdiv> + <refsection> + <title>パラメータ</title> + <variablelist> + <varlistentry> + <term>P</term> + <listitem> + <para>å®Ÿæ•°å¤šé …å¼è¡Œåˆ—</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>説明</title> + <para> + <literal>P</literal>ã®ã‚¹ãƒšã‚¯ãƒˆãƒ«åˆ†è§£ <literal>F</literal>を求ã‚ã¾ã™. + <literal>P</literal> ã¯<literal>P</literal>ã®å„æ ¹ãŒå˜ä½å††ã«é–¢ã™ã‚‹ + é¡åƒã¨ãªã‚‹ã‚ˆã†ãªå¤šé …å¼è¡Œåˆ—ã§ã™. + å˜ä½å††ä¸Šã«æ ¹ãŒã‚る時,å•é¡Œã¯ç‰¹ç•°ã¨ãªã‚Šã¾ã™. + </para> + <para> + <literal>sfact(P)</literal> ã¯,安定ã§ã¯ãªã„以下ã®ã‚ˆã†ãª + å¤šé …å¼è¡Œåˆ—<literal>F(z)</literal>ã‚’è¿”ã—ã¾ã™. + </para> + <para> + <literal>P = F(z)* F(1/z) *z^n</literal> + </para> + <para> + ã‚¹ã‚«ãƒ©ãƒ¼å¤šé …å¼ã®å ´åˆ,特殊ãªã‚¢ãƒ«ã‚´ãƒªã‚ºãƒ ãŒå®Ÿè£…ã•ã‚Œã¦ã„ã¾ã™. + アルゴリズムã¯Kuceraã®æœ¬ã«ã‚ˆã‚‹ã‚‚ã®ã§ã™. + </para> + </refsection> + <refsection> + <title>例</title> + <programlisting role="example"><![CDATA[ +//Simple polynomial example +z=poly(0,'z'); +p=(z-1/2)*(2-z) +w=sfact(p); +w*numer(horner(w,1/z)) +//matrix example +F1=[z-1/2,z+1/2,z^2+2;1,z,-z;z^3+2*z,z,1/2-z]; +P=F1*gtild(F1,'d'); //P is symmetric +F=sfact(P) +roots(det(P)) +roots(det(gtild(F,'d'))) //The stable roots +roots(det(F)) //The antistable roots +clean(P-F*gtild(F,'d')) +//Example of continuous time use +s=poly(0,'s'); +p=-3*(s+(1+%i))*(s+(1-%i))*(s+0.5)*(s-0.5)*(s-(1+%i))*(s-(1-%i));p=real(p); +//p(s) = polynomial in s^2 , looks for stable f such that p=f(s)*f(-s) +w=horner(p,(1-s)/(1+s)); // bilinear transform w=p((1-s)/(1+s)) +wn=numer(w); //take the numerator +fn=sfact(wn);f=numer(horner(fn,(1-s)/(s+1))); //Factor and back transform +f=f/sqrt(horner(f*gtild(f,'c'),0));f=f*sqrt(horner(p,0)); //normalization +roots(f) //f is stable +clean(f*gtild(f,'c')-p) //f(s)*f(-s) is p(s) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>å‚ç…§</title> + <simplelist type="inline"> + <member> + <link linkend="gtild">gtild</link> + </member> + <member> + <link linkend="fspecg">fspecg</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/ja_JP/simp.xml b/modules/polynomials/help/ja_JP/simp.xml new file mode 100755 index 000000000..3bb4f06b0 --- /dev/null +++ b/modules/polynomials/help/ja_JP/simp.xml @@ -0,0 +1,109 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="simp"> + <refnamediv> + <refname>simp</refname> + <refpurpose>有ç†æ•°ã®ç°¡å˜åŒ–</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>呼ã³å‡ºã—æ‰‹é †</title> + <synopsis>[N1,D1]=simp(N,D) + H1=simp(H) + </synopsis> + </refsynopsisdiv> + <refsection> + <title>パラメータ</title> + <variablelist> + <varlistentry> + <term>N,D</term> + <listitem> + <para>å®Ÿæ•°å¤šé …å¼ã¾ãŸã¯å®Ÿæ•°è¡Œåˆ—å¤šé …å¼</para> + </listitem> + </varlistentry> + <varlistentry> + <term>H</term> + <listitem> + <para>有ç†è¡Œåˆ— (ã™ãªã‚ã¡, + エントリ <literal>n/d</literal>を有ã™ã‚‹è¡Œåˆ— ,å®Ÿæ•°å¤šé …å¼ + <literal>n</literal>ãŠã‚ˆã³ <literal>d</literal>) + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>説明</title> + <para> + <literal>[n1,d1]=simp(n,d)</literal> ã¯,<literal>n1/d1 = n/d</literal> + ã¨ãªã‚‹ã‚ˆã†ãªå¤šé …å¼ + <literal>n1</literal> ãŠã‚ˆã³ <literal>d1</literal>を計算ã—ã¾ã™. + </para> + <para> + <literal>N</literal> ãŠã‚ˆã³ <literal>D</literal> ãŒå¤šé …å¼è¡Œåˆ—ã®å ´åˆ, + 計算ãŒè¦ç´ 毎ã«è¡Œã‚ã‚Œã¾ã™. + </para> + <para> + <literal>H1=simp(H)</literal> も有効ã§ã™ (<literal>H</literal>ã®å„エントリ㯠+ <literal>H1</literal>ã§ç°¡å˜åŒ–ã•ã‚Œã¾ã™). + </para> + <para> + 注æ„: + </para> + <para> + -閾値ã¯æŒ‡å®šã•ã‚Œã¾ã›ã‚“. ã™ãªã‚ã¡,<literal>simp</literal> ã¯å¼·åˆ¶çš„ã«ç°¡å˜ã‹ã‚’ + è¡Œã†ã“ã¨ã¯ã§ãã¾ã›ã‚“. + </para> + <para> + -ç©åˆ†å™¨ã‚’å«ã‚€ç·šå½¢å‹•çš„システムã®å ´åˆ,ç°¡å˜åŒ–ã«ã‚ˆã‚Šå®šå¸¸ã‚²ã‚¤ãƒ³ + (連続系ã®å ´åˆã¯<literal>H(0)</literal>,離散系ã®å ´åˆã¯ <literal>H(1)</literal>) + ãŒå¤‰åŒ–ã—ã¾ã™. + </para> + <para> + -è¤‡ç´ æ•°ã®ãƒ‡ãƒ¼ã‚¿ã®å ´åˆ, <literal>simp</literal> ã¯ãã®å…¥åŠ›ã‚’è¿”ã—ã¾ã™. + </para> + <para> + -有ç†æ•°ã®ç°¡å˜åŒ–ã¯,有ç†æ•°ã«é–¢ã™ã‚‹ã»ã¼æ¯Žå›žã®å‡¦ç†ã®å¾Œã«ã‚³ãƒ¼ãƒ«ã•ã‚Œã¾ã™. + <literal>simp_mode</literal>関数ã«ã‚ˆã‚Šã“ã®ç°¡å˜åŒ–ã®ã‚ªãƒ³/オフを切り替ãˆã‚‹ + ã“ã¨ãŒã§ãã¾ã™. + </para> + </refsection> + <refsection> + <title>例</title> + <programlisting role="example"><![CDATA[ +s=poly(0,'s'); +[n,d]=simp((s+1)*(s+2),(s+1)*(s-2)) +simp_mode(%F);hns=s/s +simp_mode(%T);hns=s/s + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>å‚ç…§</title> + <simplelist type="inline"> + <member> + <link linkend="roots">roots</link> + </member> + <member> + <link linkend="trfmod">trfmod</link> + </member> + <member> + <link linkend="poly">poly</link> + </member> + <member> + <link linkend="clean">clean</link> + </member> + <member> + <link linkend="simp_mode">simp_mode</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/ja_JP/simp_mode.xml b/modules/polynomials/help/ja_JP/simp_mode.xml new file mode 100755 index 000000000..d6941fdce --- /dev/null +++ b/modules/polynomials/help/ja_JP/simp_mode.xml @@ -0,0 +1,71 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="simp_mode"> + <refnamediv> + <refname>simp_mode</refname> + <refpurpose>有ç†æ•°ã®ç°¡å˜åŒ–ã®ã‚ªãƒ³/オフを切り替ãˆã‚‹</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>呼ã³å‡ºã—æ‰‹é †</title> + <synopsis>mod=simp_mode() + simp_mode(mod) + </synopsis> + </refsynopsisdiv> + <refsection> + <title>パラメータ</title> + <variablelist> + <varlistentry> + <term>mod</term> + <listitem> + <para>a boolean</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>説明</title> + <para> + 有ç†æ•°ã«é–¢ã™ã‚‹å‡¦ç†ã®å¾Œã«ã»ã¼æ¯Žå›ž,有ç†æ•°ã®ç°¡å˜åŒ–ãŒè¡Œã‚ã‚Œã¾ã™. + <literal>simp_mode</literal> ã«ã‚ˆã‚Šã“ã®ç°¡å˜åŒ–ã®ã‚ªãƒ³/オフを切り替ãˆã‚‹ã“ã¨ãŒ + ã§ãã¾ã™. + </para> + <para> + <literal>simp_mode(%t)</literal> ã¯,有ç†æ•°ã®ç°¡å˜åŒ–をオンã«ã—ã¾ã™. + </para> + <para> + <literal>simp_mode(%f)</literal> ã¯,有ç†æ•°ã®ç°¡å˜åŒ–をオフã«ã—ã¾ã™. + </para> + <para> + <literal>mod=simp_mode()</literal> ã¯,カレント㮠+ 有ç†æ•°ã®ç°¡å˜åŒ–モードをmodã«è¿”ã—ã¾ã™. + </para> + </refsection> + <refsection> + <title>例</title> + <programlisting role="example"><![CDATA[ +s=poly(0,'s'); +mod=simp_mode() +simp_mode(%f);hns=s/s +simp_mode(%t);hns=s/s +simp_mode(mod); + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>å‚ç…§</title> + <simplelist type="inline"> + <member> + <link linkend="simp">simp</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/ja_JP/sylm.xml b/modules/polynomials/help/ja_JP/sylm.xml new file mode 100755 index 000000000..fe8b05fa3 --- /dev/null +++ b/modules/polynomials/help/ja_JP/sylm.xml @@ -0,0 +1,69 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="sylm"> + <refnamediv> + <refname>sylm</refname> + <refpurpose>シルベスタ行列</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>呼ã³å‡ºã—æ‰‹é †</title> + <synopsis>[S]=sylm(a,b)</synopsis> + </refsynopsisdiv> + <refsection> + <title>パラメータ</title> + <variablelist> + <varlistentry> + <term>a,b</term> + <listitem> + <para>å¤šé …å¼</para> + </listitem> + </varlistentry> + <varlistentry> + <term>S</term> + <listitem> + <para>行列</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>説明</title> + <para> + <literal>sylm(a,b)</literal> ã¯,å¤šé …å¼<literal>a</literal>ãŠã‚ˆã³<literal>b</literal> + ã«é–¢é€£ã™ã‚‹ã‚·ãƒ«ãƒ™ã‚¹ã‚¿è¡Œåˆ—,ã™ãªã‚ã¡, + 以下ã®ã‚ˆã†ãªè¡Œåˆ—<literal>S</literal>を出力ã—ã¾ã™: + </para> + <para> + <literal>coeff( a*x + b*y )' = S * [coeff(x)';coeff(y)']</literal>. + </para> + <para> + <literal>S</literal>ã®æ¬¡å…ƒã¯<literal>degree(a)+degree(b)</literal>ã«ç‰ã—ããªã‚Šã¾ã™. + </para> + <para> + <literal>a</literal> ãŠã‚ˆã³<literal>b</literal>ãŒè¦ç´„åˆ†è§£å¤šé …å¼ã®å ´åˆ, + </para> + <para> + <literal>rank(sylm(a,b))=degree(a)+degree(b))</literal> ã¨ãªã‚Šã¾ã™. + ã¾ãŸ,以下ã®å‘½ä»¤ã¯, + </para> + <programlisting role=""><![CDATA[ +u = sylm(a,b) \ eye(na+nb,1) +x = poly(u(1:nb),'z','coeff') +y = poly(u(nb+1:na+nb),'z','coeff') + ]]></programlisting> + <para>ã¹ã‚ºãƒ¼åˆ†è§£,ã¤ã¾ã‚Š, + <literal>a*x+b*y = 1</literal>ã¨ãªã‚‹ã‚ˆã†ãªæœ€å°æ¬¡æ•°ã® + <literal>x</literal> ãŠã‚ˆã³ <literal>y</literal>を計算ã—ã¾ã™. + </para> + </refsection> +</refentry> diff --git a/modules/polynomials/help/ja_JP/systmat.xml b/modules/polynomials/help/ja_JP/systmat.xml new file mode 100755 index 000000000..d0ac07ab4 --- /dev/null +++ b/modules/polynomials/help/ja_JP/systmat.xml @@ -0,0 +1,74 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="systmat"> + <refnamediv> + <refname>systmat</refname> + <refpurpose>システム行列</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>呼ã³å‡ºã—æ‰‹é †</title> + <synopsis>[Sm]=systmat(Sl);</synopsis> + </refsynopsisdiv> + <refsection> + <title>パラメータ</title> + <variablelist> + <varlistentry> + <term>Sl</term> + <listitem> + <para> + 線形システム(<literal>syslin</literal>リスト) ã¾ãŸã¯ãƒ‡ã‚£ã‚¹ã‚¯ãƒªãƒ—タシステム+ </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Sm</term> + <listitem> + <para>行列ペンシル</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>説明</title> + <para> + 状態空間形å¼ã®ç·šå½¢ã‚·ã‚¹ãƒ†ãƒ ã®ã‚·ã‚¹ãƒ†ãƒ 行列 <literal>Sl</literal> (<literal>syslin</literal> リスト) + (ユーティリティ関数). + </para> + <programlisting role=""><![CDATA[ +Sm = [-sI + A B; + [ C D] + ]]></programlisting> + <para> + 離散系ã®å ´åˆ(<literal>Sl=list('des',A,B,C,D,E)</literal>), <literal>systmat</literal> 㯠+ 以下を返ã—ã¾ã™: + </para> + <programlisting role=""><![CDATA[ +Sm = [-sE + A B; + [ C D] + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>å‚ç…§</title> + <simplelist type="inline"> + <member> + <link linkend="ss2des">ss2des</link> + </member> + <member> + <link linkend="sm2des">sm2des</link> + </member> + <member> + <link linkend="sm2ss">sm2ss</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/ja_JP/varn.xml b/modules/polynomials/help/ja_JP/varn.xml new file mode 100755 index 000000000..df7953105 --- /dev/null +++ b/modules/polynomials/help/ja_JP/varn.xml @@ -0,0 +1,92 @@ +<?xml version="1.0" encoding="UTF-8"?> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="varn"> + <refnamediv> + <refname>varn</refname> + <refpurpose>å¤šé …å¼ã¾ãŸã¯æœ‰ç†åˆ†æ•°ã®ã‚·ãƒ³ãƒœãƒªãƒƒã‚¯å¤‰æ•°</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>呼出ã—æ‰‹é †</title> + <synopsis>[symb]=varn(p) + [pm]=varn(p,varname) + </synopsis> + </refsynopsisdiv> + <refsection> + <title>パラメータ</title> + <variablelist> + <varlistentry> + <term>p</term> + <listitem> + <para>å¤šé …å¼ã®ã‹åˆç†çš„ãªç”»åˆ†ã®è¡Œåˆ—</para> + </listitem> + </varlistentry> + <varlistentry> + <term>symb</term> + <listitem> + <para>æ–‡å—列</para> + </listitem> + </varlistentry> + <varlistentry> + <term>varname</term> + <listitem> + <para>記å·å¤‰æ•° (æ–‡å—列)</para> + </listitem> + </varlistentry> + <varlistentry> + <term>pm</term> + <listitem> + <para>å¤šé …å¼ã®ã‹åˆç†çš„ãªç”»åˆ†ã®è¡Œåˆ—</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>説明</title> + <para> + <literal>symb=varn(p)</literal> ã¯, + å¤šé …å¼<literal>p</literal>ã®è¨˜å·å¤‰æ•° <literal>symb</literal>ã‚’è¿”ã—ã¾ã™ + (ã™ãªã‚ã¡,<literal>varn(poly(0,'x'))</literal> 㯠<literal>'x'</literal> ã§ã™). + </para> + <para> + <literal>varn(p,'s')</literal> ã¯,<literal>p</literal>㨠+ åŒã˜ä¿‚数を有ã—,<literal>'s'</literal>を記å·å¤‰æ•°ã¨ã™ã‚‹ + å¤šé …å¼è¡Œåˆ—ã‚’è¿”ã—ã¾ã™(変数åã®å¤‰æ›´). + </para> + </refsection> + <refsection> + <title>例</title> + <programlisting role="example"><![CDATA[ +s = poly(0,'s'); p = [s^2+1,s]; +varn(p) +varn(p,'x') + +f = %z / (%z-1); f = [f f^2] +varn(f) +varn(f,"x") + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>å‚ç…§</title> + <simplelist type="inline"> + <member> + <link linkend="poly">poly</link> + </member> + <member> + <link linkend="rlist">rlist</link> + </member> + <member> + <link linkend="horner">horner</link> + </member> + </simplelist> + </refsection> + <refsection> + <title>å±¥æ´</title> + <revhistory> + <revision> + <revnumber>5.5.1</revnumber> + <revdescription> + <para>Extension to rationals</para> + </revdescription> + </revision> + </revhistory> + </refsection> +</refentry> diff --git a/modules/polynomials/help/pt_BR/addchapter.sce b/modules/polynomials/help/pt_BR/addchapter.sce new file mode 100755 index 000000000..172ce21be --- /dev/null +++ b/modules/polynomials/help/pt_BR/addchapter.sce @@ -0,0 +1,11 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2009 - DIGITEO +// +// 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 + +add_help_chapter("Polinômios",SCI+"/modules/polynomials/help/pt_BR",%T); + diff --git a/modules/polynomials/help/pt_BR/bezout.xml b/modules/polynomials/help/pt_BR/bezout.xml new file mode 100755 index 000000000..df9477aec --- /dev/null +++ b/modules/polynomials/help/pt_BR/bezout.xml @@ -0,0 +1,95 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA - Serge STEER + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns3="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="bezout" xml:lang="en"> + <refnamediv> + <refname>bezout</refname> + <refpurpose>equação de Bezout para polinômios ou inteiros</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title> Seqüência de Chamamento</title> + <synopsis>[thegcd,U]=bezout(p1,p2)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>p1, p2</term> + <listitem> + <para>dois polinômios reais ou dois escalares inteiros (tipo igual a + 8) + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para> + <literal>[thegcd,U]=bezout(p1,p2)</literal> computa o MDC + <literal>thegcd</literal> de <literal>p1</literal> e <literal>p2</literal> + e também uma matriz (2x2) unimodular <literal>U</literal> tal quet: + </para> + <para> + <literal>[p1,p2]*U = [thegcd,0]</literal> + </para> + <para> + O MMC de <literal>p1</literal> e <literal>p2</literal> é dado + por: + </para> + <para> + <literal>p1*U(1,2)</literal> (or + <literal>-p2*U(2,2)</literal>) + </para> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +// caso polinomial +x=poly(0,'x'); +p1=(x+1)*(x-3)^5;p2=(x-2)*(x-3)^3; +[thegcd,U]=bezout(p1,p2) +det(U) +clean([p1,p2]*U) +thelcm=p1*U(1,2) +lcm([p1,p2]) + +// caso inteiro +i1=int32(2*3^5); i2=int32(2^3*3^2); +[thegcd,U]=bezout(i1,i2) +V=int32([2^2*3^5, 2^3*3^2,2^2*3^4*5]); +[thegcd,U]=gcd(V) +V*U +lcm(V) + ]]></programlisting> + </refsection> + <refsection> + <title> Ver Também</title> + <simplelist type="inline"> + <member> + <link linkend="poly">poly</link> + </member> + <member> + <link linkend="roots">roots</link> + </member> + <member> + <link linkend="simp">simp</link> + </member> + <member> + <link linkend="clean">clean</link> + </member> + <member> + <link linkend="lcm">lcm</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/pt_BR/cmndred.xml b/modules/polynomials/help/pt_BR/cmndred.xml new file mode 100755 index 000000000..0d5296f21 --- /dev/null +++ b/modules/polynomials/help/pt_BR/cmndred.xml @@ -0,0 +1,60 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="cmndred" xml:lang="en"> + <refnamediv> + <refname>cmndred</refname> + <refpurpose>forma de denominador comum</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title> Seqüência de Chamamento </title> + <synopsis>[n,d]=cmndred(num,den)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>num, den</term> + <listitem> + <para>duas matrizes de polinômios de dimensões iguais</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para> + <literal>[n,d]=cmndred(num,den)</literal> computa uma matriz de + polinômios <literal>n</literal> e um polinômio denominador comum<literal> + d + </literal> + tais que: + </para> + <para> + <literal>n/d=num./den</literal> + </para> + <para>A matriz de razões de polinômios definida por + <literal>num./den</literal> é <literal>n/d</literal> + </para> + </refsection> + <refsection> + <title> Ver Também </title> + <simplelist type="inline"> + <member> + <link linkend="simp">simp</link> + </member> + <member> + <link linkend="clean">clean</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/pt_BR/coeff.xml b/modules/polynomials/help/pt_BR/coeff.xml new file mode 100755 index 000000000..7822302f8 --- /dev/null +++ b/modules/polynomials/help/pt_BR/coeff.xml @@ -0,0 +1,77 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA - Serge STEER + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns4="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="coeff" xml:lang="en"> + <refnamediv> + <refname>coeff</refname> + <refpurpose>coeficientes de matrizes de polinômios</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title> Seqüência de Chamamento </title> + <synopsis>[C]=coeff(Mp [,v])</synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>Mp</term> + <listitem> + <para>matriz de polinômios</para> + </listitem> + </varlistentry> + <varlistentry> + <term>v</term> + <listitem> + <para>vetor (linha ou coluna) de inteiros dos graus selecionados + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>C</term> + <listitem> + <para>matriz grande dos coeficientes</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para> + <literal>C=coeff(Mp)</literal> retorna em uma matriz grande + <literal>C</literal> os coeficientes da matriz de polinômios + <literal>Mp</literal> . <literal>C</literal> é particionada como + <literal>C=[C0,C1,...,Ck]</literal> onde os <literal>Ci</literal> estão + dispostos em ordem crescente, <literal>k = + max(degree(Mp)) + </literal> + </para> + <para> + <literal>C=coeff(Mp,v)</literal> retorna a matriz de coeficientes + com graus em <literal>v</literal> . (<literal>v</literal> é um vetor linha + ou coluna). + </para> + </refsection> + <refsection> + <title> Ver Também </title> + <simplelist type="inline"> + <member> + <link linkend="poly">poly</link> + </member> + <member> + <link linkend="degree">degree</link> + </member> + <member> + <link linkend="inv_coeff">inv_coeff</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/pt_BR/coffg.xml b/modules/polynomials/help/pt_BR/coffg.xml new file mode 100755 index 000000000..cd2891473 --- /dev/null +++ b/modules/polynomials/help/pt_BR/coffg.xml @@ -0,0 +1,80 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA - Francois DELBECQUE + * + * 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 + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="coffg" xml:lang="en"> + <refnamediv> + <refname>coffg</refname> + <refpurpose>matriz inversa de polinômios</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title> Seqüência de Chamamento </title> + <synopsis>[Ns,d]=coffg(Fs)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>Fs</term> + <listitem> + <para>matriz quadrada de polinômios</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para> + <literal>coffg</literal> computa <literal>Fs^-1</literal> onde + <literal>Fs</literal> é uma matriz de polinômios, pelo método dos + cofatores. + </para> + <para> + <literal>Fs</literal> inverse = <literal>Ns/d</literal> + </para> + <para> + <literal>d</literal> = denominador comum; <literal>Ns</literal> = + numerador (uma matriz de polinômios) + </para> + <para>(Para matrizes grandes, seja paciente... os resultados geralmente + são confiáveis) + </para> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +s=poly(0,'s') +a=[ s, s^2+1; s s^2-1]; +[a1,d]=coffg(a); +(a1/d)-inv(a) + ]]></programlisting> + </refsection> + <refsection> + <title> Ver Também </title> + <simplelist type="inline"> + <member> + <link linkend="determ">determ</link> + </member> + <member> + <link linkend="detr">detr</link> + </member> + <member> + <link linkend="invr">invr</link> + </member> + <member> + <link linkend="penlaur">penlaur</link> + </member> + <member> + <link linkend="glever">glever</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/pt_BR/colcompr.xml b/modules/polynomials/help/pt_BR/colcompr.xml new file mode 100755 index 000000000..704a1b161 --- /dev/null +++ b/modules/polynomials/help/pt_BR/colcompr.xml @@ -0,0 +1,80 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns3="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="colcompr" xml:lang="en"> + <refnamediv> + <refname>colcompr</refname> + <refpurpose>compressão de colunas de matrizes de polinômios</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title> Seqüência de Chamamento </title> + <synopsis>[Y,rk,ac]=colcompr(A);</synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>A</term> + <listitem> + <para>matriz de polinômios </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Y</term> + <listitem> + <para>matriz de polinômios quadrada (base unimodular direita) + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>rk</term> + <listitem> + <para> + posto normal de <literal>A</literal> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Ac</term> + <listitem> + <para> + <literal>Ac=A*Y</literal>, matriz de polinômios + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para> + Compressão de colunas da matriz de polinômios <literal>A</literal> + (compressão para a esquerda). + </para> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +s=poly(0,'s'); +p=[s;s*(s+1)^2;2*s^2+s^3]; +[Y,rk,ac]=colcompr(p*p'); +p*p'*Y + ]]></programlisting> + </refsection> + <refsection> + <title> Ver Também </title> + <simplelist type="inline"> + <member> + <link linkend="rowcompr">rowcompr</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/pt_BR/degree.xml b/modules/polynomials/help/pt_BR/degree.xml new file mode 100755 index 000000000..d9d0790ce --- /dev/null +++ b/modules/polynomials/help/pt_BR/degree.xml @@ -0,0 +1,59 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns4="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="degree" xml:lang="en"> + <refnamediv> + <refname>degree</refname> + <refpurpose>grau da matriz de polinômios</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title> Seqüência de Chamamento </title> + <synopsis>[D]=degree(M)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>M</term> + <listitem> + <para>matriz de polinômios </para> + </listitem> + </varlistentry> + <varlistentry> + <term>D</term> + <listitem> + <para>matriz de inteiros</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para>Retorna a matriz de graus mais elevados de + <literal>M</literal>. + </para> + </refsection> + <refsection> + <title> Ver Também </title> + <simplelist type="inline"> + <member> + <link linkend="poly">poly</link> + </member> + <member> + <link linkend="coeff">coeff</link> + </member> + <member> + <link linkend="clean">clean</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/pt_BR/denom.xml b/modules/polynomials/help/pt_BR/denom.xml new file mode 100755 index 000000000..a0c07161e --- /dev/null +++ b/modules/polynomials/help/pt_BR/denom.xml @@ -0,0 +1,61 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns3="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="denom" xml:lang="en"> + <refnamediv> + <refname>denom</refname> + <refpurpose>denominador</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title> Seqüência de Chamamento </title> + <synopsis>den=denom(r)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>r</term> + <listitem> + <para>matriz de polinômios, de razões de polinômios ou de + constantes. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>den</term> + <listitem> + <para>matriz de polinômios</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para> + <literal>den=denom(r)</literal> retorna o denominador de uma matriz + de razões de polinômios. + </para> + <para>Desde que razões de polinômios são representadas internamente como + <literal>r=list(['r','num','den','dt'],num,den,[])</literal>, + <literal>denom(r</literal>) é o mesmo que <literal>r(3)</literal>, + <literal>r('den')</literal> ou <literal>r.den</literal> + </para> + </refsection> + <refsection> + <title> Ver Também </title> + <simplelist type="inline"> + <member> + <link linkend="numer">numer</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/pt_BR/derivat.xml b/modules/polynomials/help/pt_BR/derivat.xml new file mode 100755 index 000000000..0595ed529 --- /dev/null +++ b/modules/polynomials/help/pt_BR/derivat.xml @@ -0,0 +1,66 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns4="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="derivat" xml:lang="en"> + <refnamediv> + <refname>derivat</refname> + <refpurpose>derivada de matriz de razões de polinômios</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title> Seqüência de Chamamento </title> + <synopsis>pd=derivat(p)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>p</term> + <listitem> + <para>matriz de polinômios ou de razões de polinômios</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para>Computa a derivada da matriz de polinômios ou de funções racionais + em relação à variável livre. + </para> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +s=poly(0,'s'); +derivat(1/s) // -1/s^2; + ]]></programlisting> + <programlisting role="example"><![CDATA[ +p1 = poly([1 -2 1], 'x', 'coeff') +derivat(p1) + ]]></programlisting> + <programlisting role="example"><![CDATA[ +p2 = poly([1 -4 2], 'y', 'coeff') +derivat(p2) + ]]></programlisting> + <programlisting role="example"><![CDATA[ +p3 = poly(ones(1, 10), 'z', 'coeff') +derivat(p3) + ]]></programlisting> + <programlisting role="example"><![CDATA[ +p4 = poly([-1 1], 't', 'roots') +derivat(p4) + ]]></programlisting> + <programlisting role="example"><![CDATA[ +s = %s; p5 = s^{-1} + 2 + 3*s +derivat(p5) + ]]></programlisting> + </refsection> +</refentry> diff --git a/modules/polynomials/help/pt_BR/determ.xml b/modules/polynomials/help/pt_BR/determ.xml new file mode 100755 index 000000000..1729ecdcc --- /dev/null +++ b/modules/polynomials/help/pt_BR/determ.xml @@ -0,0 +1,84 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA - Francois DELBECQUE + * + * 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 + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns4="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="determ" xml:lang="en"> + <refnamediv> + <refname>determ</refname> + <refpurpose>determinante de matrizes de polinômios</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title> Seqüência de Chamamento </title> + <synopsis>res=determ(W [,k])</synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>W</term> + <listitem> + <para>matriz quadrada de polinômios reais </para> + </listitem> + </varlistentry> + <varlistentry> + <term>k</term> + <listitem> + <para>inteiro (limite superior para o grau do determinante de + W) + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para>Retorna o determinante de uma matriz de polinômios reais (computação + feita por Transformada Rápida de Fourier (TRF) se W possuir tamanho maior + do que 2*2). + </para> + <para> + <literal>res=determ(W [,k])</literal><literal>k</literal> é um + inteiro maior do que o grau verdadeiro do determinante de + <literal>W</literal>. + </para> + <para> + O valor padrão de <literal>k</literal> é a menor potência de 2 que é + maior que <literal>n*max(degree(W))</literal>. + </para> + <para>Método (apenas se o tamanho de W for maior que 2*2) : avalia o + determinante de W para as freqüências de Fourier e aplica a TRF inversa + para os coeficientes do determinante. + </para> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +s=poly(0,'s'); +w=s*rand(10,10); +determ(w) +det(coeff(w,1))*s^10 + ]]></programlisting> + </refsection> + <refsection> + <title> Ver Também </title> + <simplelist type="inline"> + <member> + <link linkend="det">det</link> + </member> + <member> + <link linkend="detr">detr</link> + </member> + <member> + <link linkend="coffg">coffg</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/pt_BR/detr.xml b/modules/polynomials/help/pt_BR/detr.xml new file mode 100755 index 000000000..438afc7e1 --- /dev/null +++ b/modules/polynomials/help/pt_BR/detr.xml @@ -0,0 +1,54 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns3="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="detr" xml:lang="en"> + <refnamediv> + <refname>detr</refname> + <refpurpose>determinante polinomial</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title> Seqüência de Chamamento </title> + <synopsis>d=detr(h)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>h</term> + <listitem> + <para>matriz quadrada de polinômios ou de razões de + polinômios + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para> + <literal>d=detr(h)</literal> retorna o determinante + <literal>d</literal> da matriz de funções polinomiais ou racionais + <literal>h</literal>. É baseado no algoritmo de Leverrier. + </para> + </refsection> + <refsection> + <title> Ver Também </title> + <simplelist type="inline"> + <member> + <link linkend="det">det</link> + </member> + <member> + <link linkend="determ">determ</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/pt_BR/diophant.xml b/modules/polynomials/help/pt_BR/diophant.xml new file mode 100755 index 000000000..8704911fd --- /dev/null +++ b/modules/polynomials/help/pt_BR/diophant.xml @@ -0,0 +1,69 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="diophant" xml:lang="en"> + <refnamediv> + <refname>diophant</refname> + <refpurpose>equação (de Bezout) diofantina</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title> Seqüência de Chamamento </title> + <synopsis>[x,err]=diophant(p1p2,b)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>p1p2</term> + <listitem> + <para> + vetor de polinômios <literal>p1p2 = [p1 p2]</literal> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>b</term> + <listitem> + <para>polinômio</para> + </listitem> + </varlistentry> + <varlistentry> + <term>x</term> + <listitem> + <para>vetor de polinômios [x1;x2]</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para> + <literal> diophant</literal> resolve a equação de Bezout: + </para> + <para> + <literal>p1*x1+p2*x2=b</literal> com <literal>p1p2</literal> um + vetor de polinômios. Se a equação não for solúvel + </para> + <para> + de outro modo <literal>err=0</literal> + </para> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +s=poly(0,'s');p1=(s+3)^2;p2=(1+s); +x1=s;x2=(2+s); +[x,err]=diophant([p1,p2],p1*x1+p2*x2); +p1*x1+p2*x2-p1*x(1)-p2*x(2) + ]]></programlisting> + </refsection> +</refentry> diff --git a/modules/polynomials/help/pt_BR/factors.xml b/modules/polynomials/help/pt_BR/factors.xml new file mode 100755 index 000000000..b61daaa0d --- /dev/null +++ b/modules/polynomials/help/pt_BR/factors.xml @@ -0,0 +1,138 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns3="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="factors" xml:lang="en"> + <refnamediv> + <refname>factors</refname> + <refpurpose>fatoração numérica real</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title> Seqüência de Chamamento </title> + <synopsis>[lnum,g]=factors(pol [,'flag']) + [lnum,lden,g]=factors(rat [,'flag']) + rat=factors(rat,'flag') + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>pol</term> + <listitem> + <para>polinômio real</para> + </listitem> + </varlistentry> + <varlistentry> + <term>rat</term> + <listitem> + <para>razão de polinômios reais + (<literal>rat=pol1/pol2</literal>) + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>lnum</term> + <listitem> + <para>lista de polinômios (de graus 1 ou 2) </para> + </listitem> + </varlistentry> + <varlistentry> + <term>lden</term> + <listitem> + <para>lista de polinômios (de graus 1 ou 2) </para> + </listitem> + </varlistentry> + <varlistentry> + <term>g</term> + <listitem> + <para>número real </para> + </listitem> + </varlistentry> + <varlistentry> + <term>flag</term> + <listitem> + <para> + string <literal>'c'</literal> ou <literal>'d'</literal> + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para> + Retorna os fatores do polinômio <literal>pol</literal> na lista + <literal>lnum</literal> e o "ganho" g. + </para> + <para>Tem-se pol= g vezes o produto das entradas da lista + <literal>lnum</literal> (se <literal>flag</literal> não for fornecido). Se + <literal>flag='c'</literal> for dado, então tem-se <literal>|pol(i + omega)| + </literal> + =<literal>|g*prod(lnum_j(i omega)|</literal>. Se + <literal>flag='d'</literal> for dado, então tem-se <literal>|pol(exp(i + omega))| + </literal> + =<literal>|g*prod(lnum_i(exp(i omega))|</literal>. Se + o argumento de <literal>factors</literal> for uma razão + <literal>rat=pol1/pol2</literal>, os fatores do numerador + <literal>pol1</literal> e do denominador <literal>pol2</literal> são + retornados nas listas <literal>lnum</literal> e <literal>lden</literal> + respectivamente. + </para> + <para> + O "ganho" é retornado como <literal>g</literal>, i.e. tem-se: rat= g + vezes (produto das entradas de lnum) / (produto das entradas de + lden). + </para> + <para> + Se <literal>flag</literal> for <literal>'c'</literal> + (respectivamente, <literal>'d'</literal>), as raízes + <literal>pol</literal> serão refletidas em relação em relação ao eixo + imaginário (respectivamente, ao círculo unitário), i.e. os fatores em + <literal>lnum</literal> são polinômios estáveis. + </para> + <para> + A mesma coisa se <literal>factors</literal> for invocado com + argumentos racionais: as entradas em <literal>lnum</literal> e + <literal>lden</literal> são polinômios estáveis se <literal>flag</literal> + for dado. <literal>R2=factors(R1,'c')</literal> ou + <literal>R2=factors(R1,'d')</literal> com <literal>R1</literal> uma função + racional ou lista <literal>syslin</literal> SISO, então a saída + <literal>R2</literal> é uma transferência com com numerador e denominador + estáveis e com a mesma magnitude de <literal>R1</literal> ao longo do eixo + imaginário (<literal>'c'</literal>) ou do círculo unitário + (<literal>'d'</literal>). + </para> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +n=poly([0.2,2,5],'z'); +d=poly([0.1,0.3,7],'z'); +R=syslin('d',n,d); +R1=factors(R,'d') +roots(R1('num')) +roots(R1('den')) +w=exp(2*%i*%pi*[0:0.1:1]); +norm(abs(horner(R1,w))-abs(horner(R,w))) + ]]></programlisting> + </refsection> + <refsection> + <title> Ver Também </title> + <simplelist type="inline"> + <member> + <link linkend="simp">simp</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/pt_BR/hermit.xml b/modules/polynomials/help/pt_BR/hermit.xml new file mode 100755 index 000000000..e4511c75f --- /dev/null +++ b/modules/polynomials/help/pt_BR/hermit.xml @@ -0,0 +1,76 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns3="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="hermit" xml:lang="en"> + <refnamediv> + <refname>hermit</refname> + <refpurpose>forma hermitiana</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title> Seqüência de Chamamento </title> + <synopsis>[Ar,U]=hermit(A)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>A</term> + <listitem> + <para>matriz de polinômios </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Ar</term> + <listitem> + <para>matriz de polinômios triangular </para> + </listitem> + </varlistentry> + <varlistentry> + <term>U</term> + <listitem> + <para>matriz de polinômios unimodular</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para> + Forma hermitiana: <literal>U</literal> é uma matriz unimodular tal + que <literal>A*U</literal> está na forma triangular de Hermite: + </para> + <para> + A variável de saída é <literal>Ar=A*U</literal>. + </para> + <para>Aviso: versão experimental</para> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +s=poly(0,'s'); +p=[s, s*(s+1)^2, 2*s^2+s^3]; +[Ar,U]=hermit(p'*p); +clean(p'*p*U), det(U) + ]]></programlisting> + </refsection> + <refsection> + <title> Ver Também </title> + <simplelist type="inline"> + <member> + <link linkend="hrmt">hrmt</link> + </member> + <member> + <link linkend="htrianr">htrianr</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/pt_BR/horner.xml b/modules/polynomials/help/pt_BR/horner.xml new file mode 100755 index 000000000..ecdca16e5 --- /dev/null +++ b/modules/polynomials/help/pt_BR/horner.xml @@ -0,0 +1,98 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns4="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="horner" xml:lang="en"> + <refnamediv> + <refname>horner</refname> + <refpurpose>avaliação polinomial/racional</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title> Seqüência de Chamamento </title> + <synopsis>horner(P,x)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>P</term> + <listitem> + <para>matriz de polinômios ou de razões de polinômios</para> + </listitem> + </varlistentry> + <varlistentry> + <term>x</term> + <listitem> + <para>número real, polinômio ou razão de polinômios</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para> + Avalia a matriz de polinômios ou de razões de polinômios <literal>P + = P(s) + </literal> + quando a variável <literal>s</literal> do polinômio é + substituida por <literal>x</literal>: + </para> + <para> + <literal>horner(P,x)</literal>=<literal>P(x)</literal> + </para> + <para> + Exemplo (transformação bilinear): admita que <literal>P= + P(s) + </literal> + uma matriz de razões de polinômios, então a matriz de + razões de polinômios <literal>P((1+s)/(1-s))</literal> é obtida por + <literal>horner(P,(1+s)/(1-s))</literal>. + </para> + <para>Para avaliar uma matriz de razões de polinômios em dadas freqüências + use preferivelmente a primitiva <literal>freq</literal> . + </para> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +//avaliação de um polinômio para um vetor de números +P=poly(1:3,'x') +horner(P,[1 2 5]) +horner(P,[1 2 5]+%i) + +//avaliação de uma razão +s=poly(0,'s');M=[s,1/s]; +horner(M,1) +horner(M,%i) +horner(M,1/s) + +//avaliação de um polinômio para uma matriz de números +X= [1 2;3 4] +p=poly(1:3,'x','c') +m=horner(p, X) +1*X.^0+2*X.^1+3*X.^2 + ]]></programlisting> + </refsection> + <refsection> + <title> Ver Também </title> + <simplelist type="inline"> + <member> + <link linkend="freq">freq</link> + </member> + <member> + <link linkend="repfreq">repfreq</link> + </member> + <member> + <link linkend="evstr">evstr</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/pt_BR/hrmt.xml b/modules/polynomials/help/pt_BR/hrmt.xml new file mode 100755 index 000000000..7e0b2b834 --- /dev/null +++ b/modules/polynomials/help/pt_BR/hrmt.xml @@ -0,0 +1,78 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns4="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="hrmt" xml:lang="en"> + <refnamediv> + <refname>hrmt</refname> + <refpurpose>máximo divisor comum de polinômios</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title> Seqüência de Chamamento </title> + <synopsis>[pg,U]=hrmt(v)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>v</term> + <listitem> + <para>vetor linha de polinômios, i.e. matriz de polinômios + <literal>1</literal>x<literal>k</literal> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>pg</term> + <listitem> + <para>polinômio</para> + </listitem> + </varlistentry> + <varlistentry> + <term>U</term> + <listitem> + <para>matriz de polinômios unimodular</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para> + <literal>[pg,U]=hrmt(v)</literal> retorna uma matriz unimodular + <literal>U</literal> e <literal>pg</literal> = MDC do vetor linha de + polinômios <literal>v</literal> tais que <literal>v*U = + [pg,0] + </literal> + . + </para> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +x=poly(0,'x'); +v=[x*(x+1),x^2*(x+1),(x-2)*(x+1),(3*x^2+2)*(x+1)]; +[pg,U]=hrmt(v);U=clean(U) +det(U) + ]]></programlisting> + </refsection> + <refsection> + <title> Ver Também </title> + <simplelist type="inline"> + <member> + <link linkend="gcd">gcd</link> + </member> + <member> + <link linkend="htrianr">htrianr</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/pt_BR/htrianr.xml b/modules/polynomials/help/pt_BR/htrianr.xml new file mode 100755 index 000000000..f05a268fb --- /dev/null +++ b/modules/polynomials/help/pt_BR/htrianr.xml @@ -0,0 +1,92 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns3="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="htrianr" xml:lang="en"> + <refnamediv> + <refname>htrianr</refname> + <refpurpose>triangularização de matrizes de polinômios</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title> Seqüência de Chamamento </title> + <synopsis>[Ar,U,rk]=htrianr(A)</synopsis> + </refsynopsisdiv> + <refsection> + <title> Parâmetros </title> + <variablelist> + <varlistentry> + <term>A</term> + <listitem> + <para>matriz de polinômios</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Ar</term> + <listitem> + <para>matriz de polinômios</para> + </listitem> + </varlistentry> + <varlistentry> + <term>U</term> + <listitem> + <para>matriz unimodular de polinômios </para> + </listitem> + </varlistentry> + <varlistentry> + <term>rk</term> + <listitem> + <para> + inteiro, posto normal def <literal>A</literal> + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para>Triangularização da matriz de polinômios + <literal>A</literal>. + </para> + <para> + <literal>A</literal> is <literal>[m,n]</literal> , <literal>m <= + n + </literal> + . + </para> + <para> + <literal>Ar=A*U</literal> + </para> + <para>Aviso: há eliminação de termos "pequenos" (ver código da + função). + </para> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +x=poly(0,'x'); +M=[x;x^2;2+x^3]*[1,x-2,x^4]; +[Mu,U,rk]=htrianr(M) +det(U) +M*U(:,1:2) + ]]></programlisting> + </refsection> + <refsection> + <title> Ver Também </title> + <simplelist type="inline"> + <member> + <link linkend="hrmt">hrmt</link> + </member> + <member> + <link linkend="colcompr">colcompr</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/pt_BR/inv_coeff.xml b/modules/polynomials/help/pt_BR/inv_coeff.xml new file mode 100755 index 000000000..50ab8f2f6 --- /dev/null +++ b/modules/polynomials/help/pt_BR/inv_coeff.xml @@ -0,0 +1,75 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns4="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="inv_coeff" xml:lang="en"> + <refnamediv> + <refname>inv_coeff</refname> + <refpurpose>constrói uma matriz de polinômios a partir de seus + coeficientes + </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Seqüência de Chamamento</title> + <synopsis>[P]=inv_coeff(C,[,d,[name])</synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>C</term> + <listitem> + <para>matriz grande de coeficientes</para> + </listitem> + </varlistentry> + <varlistentry> + <term>d</term> + <listitem> + <para>grau da matriz de polinômios. Parâmetro opcional com valor + padrão <literal>d=-1+size(C,'c')/size(C,'r')</literal> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>name</term> + <listitem> + <para>string fornecendo o nome da variável polinomial (valor padrão + <literal>'x'</literal>). + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para> + <literal>P=inv_coeff(Mp,k)</literal>, quando <literal>k</literal> é + compatível com o tamanho de <literal>Mp</literal> size, retorna uma matriz + de polinômios de grau k. <literal>C=[C0,C1,...,Ck]</literal> and + <literal>P= C0 + C1*x +... +Ck*x^k</literal>. + </para> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +A=int(10*rand(2,6)) +// Construindo uma matriz de polinômios de grau 1 +P=inv_coeff(A,1) +norm(coeff(P)-A) +// Usando valor padrão para o grau +P1=inv_coeff(A) +norm(coeff(P1)-A) + ]]></programlisting> + </refsection> + <refsection> + <title> Ver Também </title> + <simplelist type="inline"> + <member> + <link linkend="poly">poly</link> + </member> + <member> + <link linkend="degree">degree</link> + </member> + <member> + <link linkend="coeff">coeff</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/pt_BR/invr.xml b/modules/polynomials/help/pt_BR/invr.xml new file mode 100755 index 000000000..4a6569f61 --- /dev/null +++ b/modules/polynomials/help/pt_BR/invr.xml @@ -0,0 +1,70 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="invr" xml:lang="en"> + <refnamediv> + <refname>invr</refname> + <refpurpose>inversão de matrizes (de razões de polinômios)</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title> Seqüência de Chamamento </title> + <synopsis>F = invr(H)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>H</term> + <listitem> + <para>matriz de polinômios ou de razões de polinômios </para> + </listitem> + </varlistentry> + <varlistentry> + <term>F</term> + <listitem> + <para>matriz de polinômios ou de razões de polinômios</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para> + Se <literal>H</literal> é uma matriz de polinômios ou de razões de + polinômios, <literal>invr</literal> computa <literal>H^(-1)</literal> + utilizando o algoritmo de Leverrier (ver código da função). + </para> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +s=poly(0,'s') +H=[s,s*s+2;1-s,1+s]; invr(H) +[Num,den]=coffg(H);Num/den +H=[1/s,(s+1);1/(s+2),(s+3)/s];invr(H) + ]]></programlisting> + </refsection> + <refsection> + <title> Ver Também </title> + <simplelist type="inline"> + <member> + <link linkend="glever">glever</link> + </member> + <member> + <link linkend="coffg">coffg</link> + </member> + <member> + <link linkend="inv">inv</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/pt_BR/lcmdiag.xml b/modules/polynomials/help/pt_BR/lcmdiag.xml new file mode 100755 index 000000000..c3e2fd12c --- /dev/null +++ b/modules/polynomials/help/pt_BR/lcmdiag.xml @@ -0,0 +1,93 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns4="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="lcmdiag" xml:lang="en"> + <refnamediv> + <refname>lcmdiag</refname> + <refpurpose>fatoração diagonal por MMC</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title> Seqüência de Chamamento </title> + <synopsis>[N,D]=lcmdiag(H) + [N,D]=lcmdiag(H,flag) + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>H</term> + <listitem> + <para>matriz de razões de polinômios </para> + </listitem> + </varlistentry> + <varlistentry> + <term>N</term> + <listitem> + <para>matriz de polinômios </para> + </listitem> + </varlistentry> + <varlistentry> + <term>D</term> + <listitem> + <para>matriz de polinômios diagonal </para> + </listitem> + </varlistentry> + <varlistentry> + <term>flag</term> + <listitem> + <para> + string: <literal>'row'</literal> ou <literal>'col'</literal> + (padrão) + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para> + <literal>[N,D]=lcmdiag(H,'row')</literal> computa uma fatoração + <literal>D*H=N</literal>, i.e. <literal>H=D^(-1)*N</literal> onde D é uma + matriz diagonal com D(k,k)=MMC da k-ésima linha de H('den'). + </para> + <para> + <literal>[N,D]=lcmdiag(H)</literal> ou + <literal>[N,D]=lcmdiag(H,'col)</literal> retorna + <literal>H=N*D^(-1)</literal> com matriz diagonal D e D(k,k)=MMC da + k-ésima coluna de H('den') + </para> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +s=poly(0,'s'); +H=[1/s,(s+2)/s/(s+1)^2;1/(s^2*(s+2)),2/(s+2)]; +[N,D]=lcmdiag(H); +N/D-H + ]]></programlisting> + </refsection> + <refsection> + <title> Ver Também </title> + <simplelist type="inline"> + <member> + <link linkend="lcm">lcm</link> + </member> + <member> + <link linkend="gcd">gcd</link> + </member> + <member> + <link linkend="bezout">bezout</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/pt_BR/ldiv.xml b/modules/polynomials/help/pt_BR/ldiv.xml new file mode 100755 index 000000000..270e51fde --- /dev/null +++ b/modules/polynomials/help/pt_BR/ldiv.xml @@ -0,0 +1,79 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="ldiv" xml:lang="en"> + <refnamediv> + <refname>ldiv</refname> + <refpurpose>divisão longa entre matrizes de polinômios</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title> Seqüência de Chamamento </title> + <synopsis>[x]=ldiv(n,d,k)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>n,d</term> + <listitem> + <para>duas matrizes de polinômios reais </para> + </listitem> + </varlistentry> + <varlistentry> + <term>k</term> + <listitem> + <para>inteiro</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para> + <literal>x=ldiv(n,d,k)</literal> fornece os <literal>k</literal> + primeiros coeficientes da divisão longa de <literal>n</literal> por + <literal>d</literal> i.e. the a expansão de Taylor da matriz de razões de + polinômios <literal>[nij(z)/dij(z)]</literal> aproximando-se do + infinito. + </para> + <para> + Os coeficientes de expansão de <literal>nij/dij</literal> são + armazenados em <literal>x((i-1)*n+k,j) k=1:n</literal> + </para> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +wss=ssrand(1,1,3);[a,b,c,d]=abcd(wss); +wtf=ss2tf(wss); +x1=ldiv(numer(wtf),denom(wtf),5) +x2=[c*b;c*a*b;c*a^2*b;c*a^3*b;c*a^4*b] +wssbis=markp2ss(x1',5,1,1); +wtfbis=clean(ss2tf(wssbis)) +x3=ldiv(numer(wtfbis),denom(wtfbis),5) + ]]></programlisting> + </refsection> + <refsection> + <title> Ver Também </title> + <simplelist type="inline"> + <member> + <link linkend="arl2">arl2</link> + </member> + <member> + <link linkend="markp2ss">markp2ss</link> + </member> + <member> + <link linkend="pdiv">pdiv</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/pt_BR/numer.xml b/modules/polynomials/help/pt_BR/numer.xml new file mode 100755 index 000000000..7a9fa45b9 --- /dev/null +++ b/modules/polynomials/help/pt_BR/numer.xml @@ -0,0 +1,59 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="numer" xml:lang="en"> + <refnamediv> + <refname>numer</refname> + <refpurpose>numerador</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title> Seqüência de Chamamento </title> + <synopsis>num=numer(R)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>R</term> + <listitem> + <para>matriz de polinômios, de razões de polinômios ou de constantes + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>num</term> + <listitem> + <para>matriz de polinômios</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para> + Função utilitária. <literal>num=numer(R)</literal> retorna o + numerador <literal>num</literal> de uma matriz de funções racionais + <literal>R</literal> (<literal>R</literal> também pode ser uma matriz de + polinômios ou de constantes). <literal>numer(R)</literal> é equivalente a + <literal>R(2)</literal>, <literal>R('num')</literal> ou + <literal>R.num</literal> + </para> + </refsection> + <refsection> + <title> Ver Também </title> + <simplelist type="inline"> + <member> + <link linkend="denom">denom</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/pt_BR/pdiv.xml b/modules/polynomials/help/pt_BR/pdiv.xml new file mode 100755 index 000000000..5ccbbf620 --- /dev/null +++ b/modules/polynomials/help/pt_BR/pdiv.xml @@ -0,0 +1,81 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns3="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="pdiv" xml:lang="en"> + <refnamediv> + <refname>pdiv</refname> + <refpurpose>divisão polinomial</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title> Seqüência de Chamamento </title> + <synopsis>[R,Q]=pdiv(P1,P2) + [Q]=pdiv(P1,P2) + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>P1</term> + <listitem> + <para>matriz de polinômios </para> + </listitem> + </varlistentry> + <varlistentry> + <term>P2</term> + <listitem> + <para>polinômio ou matriz de polinômios</para> + </listitem> + </varlistentry> + <varlistentry> + <term>R,Q</term> + <listitem> + <para>duas matrizes de polinômios</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para>Divisão euclidiana elemento a elemento da matriz de polinômios + <literal>P1</literal> pelo polinômio <literal>P2</literal> ou pela matriz + de polinômios <literal>P2</literal>. <literal>Rij</literal> é a matriz de + restos, <literal>Qij</literal> é a matriz de quocientes e <literal>P1ij = + Qij*P2 + Rij + </literal> + ou <literal>P1ij = Qij*P2ij + Rij</literal>. + </para> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +x=poly(0,'x'); +p1=(1+x^2)*(1-x);p2=1-x; +[r,q]=pdiv(p1,p2) +p2*q-p1 +p2=1+x; +[r,q]=pdiv(p1,p2) +p2*q+r-p1 + ]]></programlisting> + </refsection> + <refsection> + <title> Ver Também </title> + <simplelist type="inline"> + <member> + <link linkend="ldiv">ldiv</link> + </member> + <member> + <link linkend="gcd">gcd</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/pt_BR/pol2str.xml b/modules/polynomials/help/pt_BR/pol2str.xml new file mode 100755 index 000000000..07422088d --- /dev/null +++ b/modules/polynomials/help/pt_BR/pol2str.xml @@ -0,0 +1,84 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * Copyright (C) 2013 - Samuel GOUGEON : upgrade for 5.5.0 + * + * 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 + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns4="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="pol2str" xml:lang="en"> +<refnamediv> + <refname>pol2str</refname> + <refpurpose>conversão de polinômio para string</refpurpose> +</refnamediv> +<refsynopsisdiv> + <title> Seqüência de Chamamento </title> + <synopsis>[str] = pol2str(p)</synopsis> +</refsynopsisdiv> +<refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>p</term> + <listitem> + <para>Matriz ou hipermatriz polinômios com coeficientes reais ou complexos</para> + </listitem> + </varlistentry> + <varlistentry> + <term>str</term> + <listitem> + <para>string</para> + </listitem> + </varlistentry> + </variablelist> +</refsection> +<refsection> + <title>Descrição</title> + <para> Converte um polinômio para um string (função utilitária).</para> + <para> + <note> + O formato dos coeficientes de saída é definida através <link linkend="format">format(..)</link>. + </note> + </para> +</refsection> +<refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +pol2str(%z) + +p = poly ([1, 2, 3], "x","coeff"); +pol2str(p) + +p = (1+%i+%z)^(1:4) +pol2str(p) + ]]></programlisting> +</refsection> +<refsection> + <title> Ver Também </title> + <simplelist type="inline"> + <member> + <link linkend="string">string</link> + </member> + <member> + <link linkend="prettyprint">prettyprint</link> + </member> + <member> + <link linkend="sci2exp">sci2exp</link> + </member> + </simplelist> +</refsection> +<refsection role="history tag"> + <title>Histórico</title> + <revhistory> + <revision> + <revnumber>5.5.0</revnumber> + <revdescription>pol2str () estendido para polinômios com coeficientes complexos e para hipermatriz. Processamento de matriz vetorizado.</revdescription> + </revision> + </revhistory> +</refsection> +</refentry> diff --git a/modules/polynomials/help/pt_BR/polfact.xml b/modules/polynomials/help/pt_BR/polfact.xml new file mode 100755 index 000000000..5fc18b36a --- /dev/null +++ b/modules/polynomials/help/pt_BR/polfact.xml @@ -0,0 +1,78 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA - Serge STEER + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns4="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="polfact" xml:lang="en"> + <refnamediv> + <refname>polfact</refname> + <refpurpose>fatores mínimos</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title> Seqüência de Chamamento </title> + <synopsis>[f]=polfact(p)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>p</term> + <listitem> + <para>polinômio </para> + </listitem> + </varlistentry> + <varlistentry> + <term>f</term> + <listitem> + <para> + vetor <literal>[f0 f1 ... fn]</literal> tal que + <literal>p=prod(f)</literal> + </para> + <variablelist> + <varlistentry> + <term>f0</term> + <listitem> + <para>constante</para> + </listitem> + </varlistentry> + <varlistentry> + <term>fi</term> + <listitem> + <para>polinômio</para> + </listitem> + </varlistentry> + </variablelist> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para> + <literal>f=polfact(p)</literal> retorna os valores mínimos de p, + i.e., <literal>f=[f0 f1 ... fn]</literal> tal que + <literal>p=prod(f)</literal> + </para> + </refsection> + <refsection> + <title> Ver Também </title> + <simplelist type="inline"> + <member> + <link linkend="lcm">lcm</link> + </member> + <member> + <link linkend="cmndred">cmndred</link> + </member> + <member> + <link linkend="factors">factors</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/pt_BR/poly.xml b/modules/polynomials/help/pt_BR/poly.xml new file mode 100755 index 000000000..9cdf1a5dd --- /dev/null +++ b/modules/polynomials/help/pt_BR/poly.xml @@ -0,0 +1,119 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns3="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="poly" xml:lang="en"> + <refnamediv> + <refname>poly</refname> + <refpurpose>definição de polinômios</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Seqüência de Chamamento</title> + <synopsis>p=poly(a,x, ["flag"])</synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>a</term> + <listitem> + <para>matriz ou número real </para> + </listitem> + </varlistentry> + <varlistentry> + <term>x</term> + <listitem> + <para>String, o nome da variável simbólica. Se o string tiver mais + de 4 caracteres, apenas os quatro primeiros serão levados em + conta. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>"flag"</term> + <listitem> + <para>string ("roots", "coeff"), valor padrão é "roots".</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <variablelist> + <varlistentry> + <term>Se a é uma matriz,</term> + <listitem> + <para> + <literal>p</literal> é o polinômio característico, i.e., + <literal>determinant(x*eye()-a)</literal>, <literal>x</literal> + sendo a variável simbólica. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Se v é um vetor,</term> + <listitem> + <itemizedlist> + <listitem> + <para> + <literal>poly(v,"x",["roots"])</literal> é o polinômio com + entradas de <literal>v</literal> como raízes e + <literal>"x"</literal> como variável formal (neste caso, + <literal>roots</literal> e <literal>poly</literal> são funções + inversas). Note que infinitas raízes fornecem zero coeficientes + de grau mais elevado. + </para> + </listitem> + <listitem> + <para> + <literal>poly(v,"x","coeff")</literal> cria o polinômio + com símbolo <literal>"x"</literal> e com entradas de + <literal>v</literal> como coeficientes (v(1) é o termo constante + do polinômio). (aqui <literal>poly</literal> e + <literal>coeff</literal> são funções inversas). + </para> + </listitem> + </itemizedlist> + </listitem> + </varlistentry> + </variablelist> + <para> + <literal>s=poly(0,"s")</literal> é a fonte para definir polinômios + com símbolo <literal>"s"</literal>. + </para> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +s=poly(0,"s"); +p=1+s+2*s^2 +A=rand(2,2); +poly(A,"x") +//frações racionais +h=(1+2*%s)/poly(1:4,'s','c') + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="coeff">coeff</link> + </member> + <member> + <link linkend="roots">roots</link> + </member> + <member> + <link linkend="varn">varn</link> + </member> + <member> + <link linkend="horner">horner</link> + </member> + <member> + <link linkend="derivat">derivat</link> + </member> + <member> + <link linkend="matrices">matrices</link> + </member> + <member> + <link linkend="rational">rational</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/pt_BR/rational.xml b/modules/polynomials/help/pt_BR/rational.xml new file mode 100755 index 000000000..6743c4f27 --- /dev/null +++ b/modules/polynomials/help/pt_BR/rational.xml @@ -0,0 +1,52 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="rational" xml:lang="en"> + <refnamediv> + <refname>rational</refname> + <refpurpose>objeto do Scilab, razão de polinômios</refpurpose> + </refnamediv> + <refsection> + <title>Descrição</title> + <para> + Um razão de polinômios <literal>r</literal> é um quociente entre + dois polinômios <literal>r=num/den</literal>. A representação interna de + uma razão de polinômios é uma lista. + <literal>r = rlist(num,den,[])</literal> é o mesmo + que <literal>r=num/den</literal>. Uma matriz de razões de polinômios pode + ser definida pela sintaxe usual, por exemplo: + <literal>[r11,r12;r21,r22]</literal> ié uma matriz 2x2 onde + <literal>rij</literal> são razões 1x1. Uma matriz de razões de polinômios + também pode ser definida como acima como uma lista + <literal>tlist(['r','num','den','dt'],num,den,[])</literal> com + <literal>num</literal> e <literal>den</literal> matrizes de + polinômios. + </para> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +s=poly(0,'s'); +W=[1/s,1/(s+1)] +W'*W +Num=[s,s+2;1,s];Den=[s*s,s;s,s*s]; +rlist(Num,Den,[]) +H=Num./Den +syslin('c',Num,Den) +syslin('c',H) +[Num1,Den1]=simp(Num,Den) + ]]></programlisting> + </refsection> + <refsection> + <title> Ver Também </title> + <simplelist type="inline"> + <member> + <link linkend="poly">poly</link> + </member> + <member> + <link linkend="syslin">syslin</link> + </member> + <member> + <link linkend="simp">simp</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/pt_BR/residu.xml b/modules/polynomials/help/pt_BR/residu.xml new file mode 100755 index 000000000..bbe0c17f5 --- /dev/null +++ b/modules/polynomials/help/pt_BR/residu.xml @@ -0,0 +1,87 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA - Francois DELBECQUE + * + * 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 + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns4="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="residu" xml:lang="en"> + <refnamediv> + <refname>residu</refname> + <refpurpose>resíduo</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title> Seqüência de Chamamento </title> + <synopsis>[V]=residu(P,Q1,Q2)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>P, Q1, Q2</term> + <listitem> + <para>polinômios ou matrizes de polinômios de coeficientes reais ou + complexos. + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para> + <literal>V=residu(P,Q1,Q2)</literal> retorna a matriz + <literal>V</literal> tal que <literal>V(i,j)</literal> é a soma dos + resíduos da fração racional <literal>P(i,j)/(Q1(i,j)*Q2(i,j))</literal> + calculada nos zeros de <literal>Q1(i,j)</literal>. + </para> + <para> + <literal>Q1(i,j)</literal> e <literal>Q2(i,j)</literal> não devem + possuir raízes em comum. + </para> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +s=poly(0,'s'); +H=[s/(s+1)^2,1/(s+2)];N=numer(H);D=denom(H); +w=residu(N.*horner(N,-s),D,horner(D,-s)); //N(s) N(-s) / D(s) D(-s) +sqrt(sum(w)) //This is H2 norm +h2norm(tf2ss(H)) +// +p=(s-1)*(s+1)*(s+2)*(s+10);a=(s-5)*(s-1)*(s*s)*((s+1/2)**2); +b=(s-3)*(s+2/5)*(s+3); +residu(p,a,b)+531863/4410 //Exato +z=poly(0,'z');a=z^3+0.7*z^2+0.5*z-0.3;b=z^3+0.3*z^2+0.2*z+0.1; +atild=gtild(a,'d');btild=gtild(b,'d'); +residu(b*btild,z*a,atild)-2.9488038 //Exato +a=a+0*%i;b=b+0*%i; +real(residu(b*btild,z*a,atild)-2.9488038) //Caso complexo + ]]></programlisting> + </refsection> + <refsection> + <title> Ver Também </title> + <simplelist type="inline"> + <member> + <link linkend="pfss">pfss</link> + </member> + <member> + <link linkend="bdiag">bdiag</link> + </member> + <member> + <link linkend="roots">roots</link> + </member> + <member> + <link linkend="poly">poly</link> + </member> + <member> + <link linkend="gtild">gtild</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/pt_BR/roots.xml b/modules/polynomials/help/pt_BR/roots.xml new file mode 100755 index 000000000..a73585db0 --- /dev/null +++ b/modules/polynomials/help/pt_BR/roots.xml @@ -0,0 +1,93 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="roots" xml:lang="en"> + <refnamediv> + <refname>roots</refname> + <refpurpose>raízes de polinômios</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title> Seqüência de Chamamento </title> + <synopsis>[x]=roots(p) + [x]=roots(p,'e') + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>p</term> + <listitem> + <para>polinômio com coeficientes reais ou complexos ou vetor dos + coeficientes do polinômio em ordem de graus decrescentes (para + compatibilidade com o Matlab). + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para> + <literal>x=roots(p)</literal> retorna no vetor de complexos + <literal>x</literal> as raízes do polinômio <literal>p</literal>. Para + polinômios reais de grau<= 100 o algoritmo rápido RPOLY é utilizado. Em + outros casos, as raízes são computadas como os autovalores da matriz + companheira associada. Use <literal>x=roots(p,'e')</literal> para forçar + este algoritmo em qualquer caso. + </para> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +p=poly([0,10,1+%i,1-%i],'x'); +roots(p) +A=rand(3,3);roots(poly(A,'x')) // avaliações por polinômios característicos +spec(A) + ]]></programlisting> + </refsection> + <refsection> + <title> Ver Também </title> + <simplelist type="inline"> + <member> + <link linkend="poly">poly</link> + </member> + <member> + <link linkend="spec">spec</link> + </member> + <member> + <link linkend="companion">companion</link> + </member> + </simplelist> + </refsection> + <refsection> + <title>References</title> + <para>O algoritmo RPOLY é descrito em "Algorithm 493: Zeros of a Real + Polynomial", ACM TOMS Volume 1, edição 2 (Junho 1975), pp. 178-189 + </para> + <para>Jenkins, M. A. e Traub, J. F. (1970), A Three-Stage Algorithm for + Real Polynomials Using Quadratic Iteration, SIAM J. Numer. Anal., 7(1970), + 545-566. + </para> + <para>Jenkins, M. A. e Traub, J. F. (1970), Principles for Testing + Polynomial Zerofinding Programs. ACM TOMS 1, 1 (Março1975), pp. + 26-34 + </para> + </refsection> + <refsection> + <title> Funções Utilizadas </title> + <para>O código fonte de rpoly.f pode ser achado no diretório + SCI/modules/polynomials/src/fortran de uma distribuição fonte do Scilab. A computação de + autovalores é feita utilizando-se os códigos do LAPACK DGEEV e ZGEEV. + </para> + </refsection> +</refentry> diff --git a/modules/polynomials/help/pt_BR/rowcompr.xml b/modules/polynomials/help/pt_BR/rowcompr.xml new file mode 100755 index 000000000..fb1ed8862 --- /dev/null +++ b/modules/polynomials/help/pt_BR/rowcompr.xml @@ -0,0 +1,78 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="rowcompr" xml:lang="en"> + <refnamediv> + <refname>rowcompr</refname> + <refpurpose>compressão de linhas de uma matriz de polinômios</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title> Seqüência de Chamamento </title> + <synopsis>[X,rk,Ac]=rowcompr(A)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>A</term> + <listitem> + <para>matriz de polinômios </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Y</term> + <listitem> + <para>matriz de polinômios quadrada (base unimodular esquerda) + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>rk</term> + <listitem> + <para> + posto normal de <literal>A</literal> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Ac</term> + <listitem> + <para> + <literal>Ac=X*A</literal>, matriz de polinômios + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para>Compressão de linhas da matriz de polinômios + <literal>A</literal>. + </para> + <para> + <literal>X</literal> é uma base polinomial unimodular esquerda que + comprime as linhas de <literal>A</literal>. <literal>rk</literal> é o + posto normal de A. + </para> + <para> Aviso: há eliminação de termos "pequenos" (utilize com + cuidado!). + </para> + </refsection> + <refsection> + <title> Ver Também </title> + <simplelist type="inline"> + <member> + <link linkend="colcompr">colcompr</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/pt_BR/sfact.xml b/modules/polynomials/help/pt_BR/sfact.xml new file mode 100755 index 000000000..ef86abb07 --- /dev/null +++ b/modules/polynomials/help/pt_BR/sfact.xml @@ -0,0 +1,95 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns4="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="sfact" xml:lang="en"> + <refnamediv> + <refname>sfact</refname> + <refpurpose>fatoração espectral em tempo discreto</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title> Seqüência de Chamamento </title> + <synopsis>F=sfact(P)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>P</term> + <listitem> + <para>matriz de polinômios reais</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para> + Acha <literal>F</literal>, um fator espectral de + <literal>P</literal>. <literal>P</literal> é uma matriz de polinômios tal + que cada raiz de <literal>P</literal> possui uma imagem simétrica em + relação ao círculo unitário. O problema é singular se uma raiz estiver no + círculo unitário. + </para> + <para> + <literal>sfact(P)</literal> retorna uma matriz de polinômios + <literal>F(z)</literal> que é anti-estável e tal que + </para> + <para> + <literal>P = F(z)* F(1/z) *z^n</literal> + </para> + <para> Para polinômios escalares um algorimto específico é implementado. + Os algoritmos são implementados do livro de Kucera. + </para> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +//exemplo polinomial +z=poly(0,'z'); +p=(z-1/2)*(2-z) +w=sfact(p); +w*numer(horner(w,1/z)) + +//exemplo matricial +F1=[z-1/2,z+1/2,z^2+2;1,z,-z;z^3+2*z,z,1/2-z]; +P=F1*gtild(F1,'d'); //P é simétrica +F=sfact(P) +roots(det(P)) +roots(det(gtild(F,'d'))) //as raízes estáveis +roots(det(F)) //as raízes anti-estáveis +clean(P-F*gtild(F,'d')) + +//exemplo de uso de tempo contínuo +s=poly(0,'s'); +p=-3*(s+(1+%i))*(s+(1-%i))*(s+0.5)*(s-0.5)*(s-(1+%i))*(s-(1-%i));p=real(p); + +//p(s) = polinômio em s^2 , procura por f estável tal que p=f(s)*f(-s) +w=horner(p,(1-s)/(1+s)); // transformação bilinear w=p((1-s)/(1+s)) +wn=numer(w); //tomando o numerador +fn=sfact(wn);f=numer(horner(fn,(1-s)/(s+1))); //fator e transformação de volta +f=f/sqrt(horner(f*gtild(f,'c'),0));f=f*sqrt(horner(p,0)); //normalização +roots(f) //f é estável +clean(f*gtild(f,'c')-p) //f(s)*f(-s) é p(s) + ]]></programlisting> + </refsection> + <refsection> + <title> Ver Também </title> + <simplelist type="inline"> + <member> + <link linkend="gtild">gtild</link> + </member> + <member> + <link linkend="fspecg">fspecg</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/pt_BR/simp.xml b/modules/polynomials/help/pt_BR/simp.xml new file mode 100755 index 000000000..11e093fb8 --- /dev/null +++ b/modules/polynomials/help/pt_BR/simp.xml @@ -0,0 +1,110 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns4="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="simp" xml:lang="en"> + <refnamediv> + <refname>simp</refname> + <refpurpose>simplificação racional</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title> Seqüência de Chamamento </title> + <synopsis>[N1,D1]=simp(N,D) + H1=simp(H) + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>N,D</term> + <listitem> + <para>polinômios reais ou matrizes de polinômios reais</para> + </listitem> + </varlistentry> + <varlistentry> + <term>H</term> + <listitem> + <para>matriz de razões de polinômios (i.e matriz com entradas + <literal>n/d</literal> ,<literal>n</literal> e <literal>d</literal> + polinômios reais) + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para> + <literal>[n1,d1]=simp(n,d)</literal> calcula dois polinômios + <literal>n1</literal> e <literal>d1</literal> tais que <literal>n1/d1 = + n/d + </literal> + . + </para> + <para> + Se <literal>N</literal> e <literal>D</literal> são matrizes de + polinômios, os cálculos são feitos elemento a elemento. + </para> + <para> + <literal>H1=simp(H)</literal> também é válido (cada entrada de + <literal>H</literal> é simplificada em <literal>H1</literal>). + </para> + <para>Cuidado:</para> + <para> + -Nenhum limiar é dado i.e. <literal>simp</literal> não pode forçar + uma simplificação. + </para> + <para>-Para sistemas lineares dinâmicos que incluem integrador(es), a + simplificação modifica o ganho estático. (<literal>H(0)</literal> para + sistemas contínuos <literal>H(1)</literal> para sistemas discretos) + </para> + <para> + -Para dados complexos, <literal>simp</literal> retorna sua(s) + entrada(s). + </para> + <para>-Uma simplificação racional é chamada após aproximadamente cada + operação sobre razões de polinômios. É possível alternar o modo de + simplificação entre "on" e "off" (ligado e desligado) utilizando a função + <literal>simp_mode</literal>. + </para> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +s=poly(0,'s'); +[n,d]=simp((s+1)*(s+2),(s+1)*(s-2)) + +simp_mode(%F);hns=s/s +simp_mode(%T);hns=s/s + ]]></programlisting> + </refsection> + <refsection> + <title> Ver Também </title> + <simplelist type="inline"> + <member> + <link linkend="roots">roots</link> + </member> + <member> + <link linkend="trfmod">trfmod</link> + </member> + <member> + <link linkend="poly">poly</link> + </member> + <member> + <link linkend="clean">clean</link> + </member> + <member> + <link linkend="simp_mode">simp_mode</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/pt_BR/simp_mode.xml b/modules/polynomials/help/pt_BR/simp_mode.xml new file mode 100755 index 000000000..89c83e0d2 --- /dev/null +++ b/modules/polynomials/help/pt_BR/simp_mode.xml @@ -0,0 +1,73 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns4="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="simp_mode" xml:lang="en"> + <refnamediv> + <refname>simp_mode</refname> + <refpurpose>modifica o modo de simplificação racional</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title> Seqüência de Chamamento </title> + <synopsis>mod=simp_mode() + simp_mode(mod) + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>mod</term> + <listitem> + <para>um booleano</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para>A simplificação racional é chamada após quase cada operação sobre + razões de polinômios. É possível alternar o modo de simplificação entre + "on" e "off" (ligado e desligado) utilizando a função + <literal>simp_mode</literal>. + </para> + <para> + <literal>simp_mode(%t)</literal> ajusta o modo de simplificação + racional para "on" + </para> + <para> + <literal>simp_mode(%f)</literal> ajusta o modo de simplificação + racional para "off" + </para> + <para> + <literal>mod=simp_mode()</literal> retorna em mod o modo de + simplificação racional corrente + </para> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +s=poly(0,'s'); +mod=simp_mode() +simp_mode(%f);hns=s/s +simp_mode(%t);hns=s/s +simp_mode(mod); + ]]></programlisting> + </refsection> + <refsection> + <title> Ver Também </title> + <simplelist type="inline"> + <member> + <link linkend="simp">simp</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/pt_BR/sylm.xml b/modules/polynomials/help/pt_BR/sylm.xml new file mode 100755 index 000000000..21a48ed8e --- /dev/null +++ b/modules/polynomials/help/pt_BR/sylm.xml @@ -0,0 +1,76 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns4="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="sylm" xml:lang="en"> + <refnamediv> + <refname>sylm</refname> + <refpurpose>matriz de Sylvester</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title> Seqüência de Chamamento </title> + <synopsis>[S]=sylm(a,b)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>a,b</term> + <listitem> + <para>duas matrizes de polinômios </para> + </listitem> + </varlistentry> + <varlistentry> + <term>S</term> + <listitem> + <para>matriz</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para> + <literal>sylm(a,b)</literal> fornece a matriz de Sylvester associada + aos polinômios <literal>a</literal> e <literal>b</literal>, i.e. a matriz + <literal>S</literal> tal que: + </para> + <para> + <literal>coeff( a*x + b*y )' = S * + [coeff(x)';coeff(y)'] + </literal> + . + </para> + <para> + A dimensão de <literal>S</literal> é igual a + <literal>degree(a)+degree(b)</literal>. + </para> + <para> + Se <literal>a</literal> e <literal>b</literal> são polinômios primos + entre si, então + </para> + <para> + <literal>rank(sylm(a,b))=degree(a)+degree(b))</literal> e as + instruções + </para> + <programlisting role=""><![CDATA[ +u = sylm(a,b) \ eye(na+nb,1) +x = poly(u(1:nb),'z','coeff') +y = poly(u(nb+1:na+nb),'z','coeff') + ]]></programlisting> + <para> + computam os fatores de Bezout <literal>x</literal> e + <literal>y</literal> de graus mínimos tais que <literal>a*x+b*y = + 1 + </literal> + </para> + </refsection> +</refentry> diff --git a/modules/polynomials/help/pt_BR/systmat.xml b/modules/polynomials/help/pt_BR/systmat.xml new file mode 100755 index 000000000..a945e3f6c --- /dev/null +++ b/modules/polynomials/help/pt_BR/systmat.xml @@ -0,0 +1,76 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns4="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="systmat" xml:lang="en"> + <refnamediv> + <refname>systmat</refname> + <refpurpose>matriz sistema</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Seqüência de Chamamento</title> + <synopsis>[Sm]=systmat(Sl);</synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>Sl</term> + <listitem> + <para> + sistema linear (lista <literal>syslin</literal> ) ou sistema + descritor + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Sm</term> + <listitem> + <para>feixe de matrizes</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para> + Matriz sistema do sistema linear <literal>Sl</literal> (lista + <literal>syslin</literal>) em forma de espaço de estados (função + utilitária). + </para> + <programlisting role=""><![CDATA[ +Sm = [-sI + A B; + [ C D] + ]]></programlisting> + <para>Para um sistema descritor + (<literal>Sl=list('des',A,B,C,D,E)</literal>), <literal>systmat</literal> + retorna: + </para> + <programlisting role=""><![CDATA[ +Sm = [-sE + A B; + [ C D] + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Ver Também</title> + <simplelist type="inline"> + <member> + <link linkend="ss2des">ss2des</link> + </member> + <member> + <link linkend="sm2des">sm2des</link> + </member> + <member> + <link linkend="sm2ss">sm2ss</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/pt_BR/varn.xml b/modules/polynomials/help/pt_BR/varn.xml new file mode 100755 index 000000000..b4c8266c5 --- /dev/null +++ b/modules/polynomials/help/pt_BR/varn.xml @@ -0,0 +1,93 @@ +<?xml version="1.0" encoding="UTF-8"?> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns4="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="varn" xml:lang="pt"> + <refnamediv> + <refname>varn</refname> + <refpurpose>variável simbólica de polinômios ou de frações racionais</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title> Seqüência de Chamamento </title> + <synopsis>[symb]=varn(p) + [pm]=varn(p,varname) + </synopsis> + </refsynopsisdiv> + <refsection> + <title> Parâmetros </title> + <variablelist> + <varlistentry> + <term>p</term> + <listitem> + <para>matriz de polinômios ou de frações racionais</para> + </listitem> + </varlistentry> + <varlistentry> + <term>symb</term> + <listitem> + <para>string</para> + </listitem> + </varlistentry> + <varlistentry> + <term>var</term> + <listitem> + <para>variável simbólica (string) </para> + </listitem> + </varlistentry> + <varlistentry> + <term>pm</term> + <listitem> + <para>matriz de polinômios ou de frações racionais</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para> + <literal>symb=varn(p)</literal> retorna em <literal>symb</literal> a + variável simbólica de <literal>p</literal> (i.e. + <literal>varn(poly(0,'x'))</literal> is <literal>'x'</literal>). + </para> + <para> + <literal>varn(p,'s')</literal> retorna uma matriz de polinômios com + os mesmos coeficientes que <literal>p</literal> mas com <literal>'s' + </literal> + como variável simbólica (mudança do nome de variável). + </para> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +s = poly(0,'s'); p = [s^2+1,s]; +varn(p) +varn(p,'x') + +f = %z / (%z-1); f = [f f^2] +varn(f) +varn(f,"x") + ]]></programlisting> + </refsection> + <refsection> + <title> Ver Também </title> + <simplelist type="inline"> + <member> + <link linkend="poly">poly</link> + </member> + <member> + <link linkend="rlist">rlist</link> + </member> + <member> + <link linkend="horner">horner</link> + </member> + </simplelist> + </refsection> + <refsection> + <title>Histórico</title> + <revhistory> + <revision> + <revnumber>5.5.1</revnumber> + <revdescription> + <para>Extensão de frações racionais</para> + </revdescription> + </revision> + </revhistory> + </refsection> +</refentry> diff --git a/modules/polynomials/help/ru_RU/addchapter.sce b/modules/polynomials/help/ru_RU/addchapter.sce new file mode 100755 index 000000000..539f015e6 --- /dev/null +++ b/modules/polynomials/help/ru_RU/addchapter.sce @@ -0,0 +1,11 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2009 - DIGITEO +// +// 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 + +add_help_chapter("Polynomials",SCI+"/modules/polynomials/help/ru_RU",%T); + diff --git a/modules/polynomials/help/ru_RU/inv_coeff.xml b/modules/polynomials/help/ru_RU/inv_coeff.xml new file mode 100755 index 000000000..31dcadeb5 --- /dev/null +++ b/modules/polynomials/help/ru_RU/inv_coeff.xml @@ -0,0 +1,73 @@ +<?xml version="1.0" encoding="UTF-8"?> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ru" xml:id="inv_coeff"> + <refnamediv> + <refname>inv_coeff</refname> + <refpurpose>поÑтроение матрицы полиномов по их коÑффициентам</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>ПоÑледовательноÑÑ‚ÑŒ вызова</title> + <synopsis>[P]=inv_coeff(C,[,d,[name])</synopsis> + </refsynopsisdiv> + <refsection> + <title>Ðргументы</title> + <variablelist> + <varlistentry> + <term>C</term> + <listitem> + <para>Ð±Ð¾Ð»ÑŒÑˆÐ°Ñ Ð¼Ð°Ñ‚Ñ€Ð¸Ñ†Ð° коÑффициентов</para> + </listitem> + </varlistentry> + <varlistentry> + <term>d</term> + <listitem> + <para> + Ñтепень матрицы полиномов. Ðто необÑзательный параметр, у которого значение + по умолчанию <literal>d=-1+size(C,'c')/size(C,'r')</literal> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>name</term> + <listitem> + <para> + Ñтроковое значение, указывающее Ð¸Ð¼Ñ Ð¿Ð¾Ð»Ð¸Ð½Ð¾Ð¼Ð¸Ð°Ð»ÑŒÐ½Ð¾Ð¹ переменной (значение по умолчанию <literal>'x'</literal>). + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>ОпиÑание</title> + <para> + <literal>P=inv_coeff(Mp,k)</literal>, когда <literal>k</literal> ÑовмеÑтима Ñ Ñ€Ð°Ð·Ð¼ÐµÑ€Ð¾Ð¼ <literal>Mp</literal>, + возвращает полиномиальную матрицу Ñтепени <literal>k</literal>. <literal>C=[C0,C1,...,Ck]</literal> и + <literal>P= C0 + C1*x +... +Ck*x^k</literal>. + </para> + </refsection> + <refsection> + <title>Примеры</title> + <programlisting role="example"><![CDATA[ +A=int(10*rand(2,6)) +// Building a degree 1 polynomial matrix +P=inv_coeff(A,1) +norm(coeff(P)-A) +// Using default value for degree +P1=inv_coeff(A) +norm(coeff(P1)-A) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Смотрите также</title> + <simplelist type="inline"> + <member> + <link linkend="poly">poly</link> + </member> + <member> + <link linkend="degree">degree</link> + </member> + <member> + <link linkend="coeff">coeff</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/ru_RU/poly.xml b/modules/polynomials/help/ru_RU/poly.xml new file mode 100755 index 000000000..e0d25792c --- /dev/null +++ b/modules/polynomials/help/ru_RU/poly.xml @@ -0,0 +1,131 @@ +<?xml version="1.0" encoding="UTF-8"?> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ru" xml:id="poly"> + <refnamediv> + <refname>poly</refname> + <refpurpose>определение полинома</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>ПоÑледовательноÑÑ‚ÑŒ вызова</title> + <synopsis>p = poly(a, vname, ["flag"])</synopsis> + </refsynopsisdiv> + <refsection> + <title>Ðргументы</title> + <variablelist> + <varlistentry> + <term>a</term> + <listitem> + <para>матрица или вещеÑтвенное чиÑло</para> + </listitem> + </varlistentry> + <varlistentry> + <term>vname</term> + <listitem> + <para> + Строка, Ð¸Ð¼Ñ Ñимвольной переменной. ЕÑли Ñтрока больше 4 Ñимволов, то из них + учитываютÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ 4 первых. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>"flag"</term> + <listitem> + <para> + ÑÐ¸Ð¼Ð²Ð¾Ð»ÑŒÐ½Ð°Ñ Ñтрока ( <literal>"roots"</literal>, + <literal>"coeff"</literal>), значение по + умолчанию <literal>"roots"</literal>. + </para> + <para> + Также могут быть иÑпользованы ÑокращениÑ: + <literal>"r"</literal> Ð´Ð»Ñ <literal>"roots"</literal> + и <literal>"c"</literal> Ð´Ð»Ñ <literal>"coeff"</literal>. + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>ОпиÑание</title> + <variablelist> + <varlistentry> + <term> + ЕÑли <literal>a</literal> - матрица, то + </term> + <listitem> + <para> + <varname>p</varname> ÑвлÑетÑÑ Ñ…Ð°Ñ€Ð°ÐºÑ‚ÐµÑ€Ð¸ÑтичеÑким полиномом, то еÑÑ‚ÑŒ + <code>determinant(x*eye()-a)</code>, где <literal>x</literal> ÑвлÑетÑÑ + Ñимвольной переменной. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term> + ЕÑли <literal>v</literal> - вектор, то + </term> + <listitem> + <itemizedlist> + <listitem> + <para> + <code>poly(v,"x",["roots"])</code> ÑвлÑетÑÑ Ð¿Ð¾Ð»Ð¸Ð½Ð¾Ð¼Ð¾Ð¼ Ñ ÐºÐ¾Ñ€Ð½Ñми, хранÑщимиÑÑ Ð² Ñлементах <varname>v</varname> и + <literal>"x"</literal> в качеÑтве формальной переменной. (Ð’ Ñтом Ñлучае + <function>roots</function> и <function>poly</function> ÑвлÑÑŽÑ‚ÑÑ Ð¾Ð±Ñ€Ð°Ñ‚Ð½Ñ‹Ð¼Ð¸ функциÑми). + <note> + Заметьте, что беÑконечные корни дают нулевые коÑффициенты наивыÑшей Ñтепени. + </note> + </para> + </listitem> + <listitem> + <para> + <code>poly(v,"x","coeff")</code> Ñоздаёт полином Ñ Ñимволом + <literal>"x"</literal> и Ñ ÐºÐ¾Ñффициентами, хранÑщимиÑÑ Ð² Ñлементах + <varname>v</varname> (<code>v(1)</code> - поÑтоÑнный член полинома). ЗдеÑÑŒ + <function>poly</function> и <function>coeff</function> ÑвлÑÑŽÑ‚ÑÑ Ð¾Ð±Ñ€Ð°Ñ‚Ð½Ñ‹Ð¼Ð¸ функциÑми. + </para> + </listitem> + </itemizedlist> + </listitem> + </varlistentry> + </variablelist> + <para> + <code>s=poly(0,"s")</code> ÑвлÑетÑÑ Ñеменем Ð´Ð»Ñ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð»Ð¸Ð½Ð¾Ð¼Ð¾Ð² Ñ Ñимволом + <literal>"s"</literal>. + </para> + </refsection> + <refsection> + <title>Примеры</title> + <programlisting role="example"><![CDATA[ +s=poly(0,"s"); +p=1+s+2*s^2 +A=rand(2,2); +poly(A,"x") +//рациональные дроби +h=(1+2*%s)/poly(1:4,'s','c') + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Смотрите также</title> + <simplelist type="inline"> + <member> + <link linkend="coeff">coeff</link> + </member> + <member> + <link linkend="roots">roots</link> + </member> + <member> + <link linkend="varn">varn</link> + </member> + <member> + <link linkend="horner">horner</link> + </member> + <member> + <link linkend="derivat">derivat</link> + </member> + <member> + <link linkend="matrices">матрицы</link> + </member> + <member> + <link linkend="rational">рациональное чиÑло</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/ru_RU/rational.xml b/modules/polynomials/help/ru_RU/rational.xml new file mode 100755 index 000000000..ef61eecff --- /dev/null +++ b/modules/polynomials/help/ru_RU/rational.xml @@ -0,0 +1,48 @@ +<?xml version="1.0" encoding="UTF-8"?> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ru" xml:id="rational"> + <refnamediv> + <refname>рациональное чиÑло</refname> + <refpurpose>объекты Scilab, рациональное чиÑло в Scilab</refpurpose> + </refnamediv> + <refsection> + <title>ОпиÑание</title> + <para> + Рациональное чиÑло <literal>r</literal> ÑвлÑетÑÑ Ñ‡Ð°Ñтным двух полиномов <literal>r=num/den</literal>. + Внутреннее предÑтавление рационального чиÑло ÑвлÑетÑÑ ÑпиÑком. + <literal>r=rlist(num,den,[])</literal> -- Ñто то же Ñамое, что и <literal>r=num/den</literal>. + Матрица рациональных чиÑел может быть определена обычным ÑинтакÑиÑом, + например, <literal>[r11,r12;r21,r22]</literal> ÑвлÑетÑÑ Ð¼Ð°Ñ‚Ñ€Ð¸Ñ†ÐµÐ¹ размером 2x2, где <literal>rij</literal> -- рациональные + чиÑла размером 1x1. + Матрица рациональных чиÑел может быть, также определена в виде вышеупомÑнутого ÑпиÑка, + <literal>tlist(['r','num','den','dt'],num,den,[])</literal>, где <literal>num</literal> и <literal>den</literal> матрицы полиномов. + </para> + </refsection> + <refsection> + <title>Примеры</title> + <programlisting role="example"><![CDATA[ +s=poly(0,'s'); +W=[1/s,1/(s+1)] +W'*W +Num=[s,s+2;1,s];Den=[s*s,s;s,s*s]; +rlist(Num,Den,[]) +H=Num./Den +syslin('c',Num,Den) +syslin('c',H) +[Num1,Den1]=simp(Num,Den) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Смотрите также</title> + <simplelist type="inline"> + <member> + <link linkend="poly">poly</link> + </member> + <member> + <link linkend="syslin">syslin</link> + </member> + <member> + <link linkend="simp">simp</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/polynomials/help/ru_RU/varn.xml b/modules/polynomials/help/ru_RU/varn.xml new file mode 100755 index 000000000..c1bc84453 --- /dev/null +++ b/modules/polynomials/help/ru_RU/varn.xml @@ -0,0 +1,93 @@ +<?xml version="1.0" encoding="UTF-8"?> +<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ru" xml:id="varn"> + <refnamediv> + <refname>varn</refname> + <refpurpose>СимволичеÑкие переменных полиномами или рациональные дроби</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>ПоÑледовательноÑÑ‚ÑŒ вызова</title> + <synopsis> + [symb]=varn(p) + [pm]=varn(p, varname) + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Ðргументы</title> + <variablelist> + <varlistentry> + <term>p</term> + <listitem> + <para>Матрица полиномов или рациональных дробей</para> + </listitem> + </varlistentry> + <varlistentry> + <term>symb</term> + <listitem> + <para>ÑÐ¸Ð¼Ð²Ð¾Ð»ÑŒÐ½Ð°Ñ Ñтрока</para> + </listitem> + </varlistentry> + <varlistentry> + <term>varname</term> + <listitem> + <para>ÑимволичеÑÐºÐ°Ñ Ð¿ÐµÑ€ÐµÐ¼ÐµÐ½Ð½Ð°Ñ (ÑÐ¸Ð¼Ð²Ð¾Ð»ÑŒÐ½Ð°Ñ Ñтрока)</para> + </listitem> + </varlistentry> + <varlistentry> + <term>pm</term> + <listitem> + <para>Матрица полиномов или рациональных дробей</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>ОпиÑание</title> + <para> + <literal>symb=varn(p)</literal> возвращает в <literal>symb</literal> ÑимволичеÑкую + переменную полинома <literal>p</literal> (Ñ‚. е., еÑли + <literal>varn(poly(0,'x'))</literal>, то <literal>'x'</literal>). + </para> + <para> + <literal>varn(p,'s')</literal> возвращает матрицу полиномов Ñ Ñ‚ÐµÐ¼Ð¸ же коÑффициентами, + что и <literal>p</literal>, но Ñ <literal>'s'</literal> в качеÑтве ÑимволичеÑкой + переменой (Ñмена имени переменной). + </para> + </refsection> + <refsection> + <title>Примеры</title> + <programlisting role="example"><![CDATA[ +s = poly(0,'s'); p = [s^2+1,s]; +varn(p) +varn(p,'x') + +f = %z / (%z-1); f = [f f^2] +varn(f) +varn(f,"x") + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Смотрите также</title> + <simplelist type="inline"> + <member> + <link linkend="poly">poly</link> + </member> + <member> + <link linkend="rlist">rlist</link> + </member> + <member> + <link linkend="horner">horner</link> + </member> + </simplelist> + </refsection> + <refsection> + <title>ИÑториÑ</title> + <revhistory> + <revision> + <revnumber>5.5.1</revnumber> + <revdescription> + <para>РаÑширение Ð´Ð»Ñ Ñ€Ð°Ñ†Ð¸Ð¾Ð½Ð°Ð»ÑŒÐ½Ñ‹Ñ… дробей</para> + </revdescription> + </revision> + </revhistory> + </refsection> +</refentry> diff --git a/modules/polynomials/includes/dynlib_polynomials.h b/modules/polynomials/includes/dynlib_polynomials.h new file mode 100755 index 000000000..06e464642 --- /dev/null +++ b/modules/polynomials/includes/dynlib_polynomials.h @@ -0,0 +1,28 @@ +/* +* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +* Copyright (C) DIGITEO - 2009 - 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 +* +*/ + +/*--------------------------------------------------------------------------*/ +#ifndef __DYNLIB_POLYNOMIALS_H__ +#define __DYNLIB_POLYNOMIALS_H__ + +#ifdef _MSC_VER +#ifdef POLYNOMIALS_EXPORTS +#define POLYNOMIALS_IMPEXP __declspec(dllexport) +#else +#define POLYNOMIALS_IMPEXP __declspec(dllimport) +#endif +#else +#define POLYNOMIALS_IMPEXP +#endif + +#endif /* __DYNLIB_POLYNOMIALS_H__ */ +/*--------------------------------------------------------------------------*/ diff --git a/modules/polynomials/includes/gw_polynomials.h b/modules/polynomials/includes/gw_polynomials.h new file mode 100755 index 000000000..9cc0fd138 --- /dev/null +++ b/modules/polynomials/includes/gw_polynomials.h @@ -0,0 +1,40 @@ +/* + * 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 + * + */ + +/*--------------------------------------------------------------------------*/ +#ifndef __GW_POLYNOMIALS__ +#define __GW_POLYNOMIALS__ +/*--------------------------------------------------------------------------*/ +#include "dynlib_polynomials.h" +/*--------------------------------------------------------------------------*/ +POLYNOMIALS_IMPEXP int gw_polynomials(void); +/*--------------------------------------------------------------------------*/ +POLYNOMIALS_IMPEXP int sci_poly_primitive(char *fname, unsigned long fname_len); +POLYNOMIALS_IMPEXP int sci_roots(char *fname, unsigned long fname_len); +POLYNOMIALS_IMPEXP int sci_degree(char *fname, unsigned long fname_len); +POLYNOMIALS_IMPEXP int sci_coeff(char *fname, unsigned long fname_len); +POLYNOMIALS_IMPEXP int sci_pppdiv(char *fname, unsigned long fname_len); +POLYNOMIALS_IMPEXP int sci_simp(char *fname, unsigned long fname_len); +POLYNOMIALS_IMPEXP int sci_psum(char *fname, unsigned long fname_len); +POLYNOMIALS_IMPEXP int sci_pprod(char *fname, unsigned long fname_len); +POLYNOMIALS_IMPEXP int sci_pdiag(char *fname, unsigned long fname_len); +POLYNOMIALS_IMPEXP int sci_ptriu(char *fname, unsigned long fname_len); +POLYNOMIALS_IMPEXP int sci_ptril(char *fname, unsigned long fname_len); +POLYNOMIALS_IMPEXP int sci_bezout(char *fname, unsigned long fname_len); +POLYNOMIALS_IMPEXP int sci_sfact(char *fname, unsigned long fname_len); +POLYNOMIALS_IMPEXP int sci_simp_mode(char *fname, unsigned long fname_len); +POLYNOMIALS_IMPEXP int sci_varn(char *fname, unsigned long fname_len); +POLYNOMIALS_IMPEXP int sci_cleanp(char *fname, unsigned long fname_len); +/*--------------------------------------------------------------------------*/ +#endif /* __GW_POLYNOMIALS__ */ +/*--------------------------------------------------------------------------*/ + diff --git a/modules/polynomials/libscipolynomials-algo.la b/modules/polynomials/libscipolynomials-algo.la new file mode 100755 index 000000000..21eb8f6af --- /dev/null +++ b/modules/polynomials/libscipolynomials-algo.la @@ -0,0 +1,41 @@ +# libscipolynomials-algo.la - a libtool library file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='' + +# Names of this library. +library_names='' + +# The name of the static archive. +old_library='libscipolynomials-algo.a' + +# Linker flags that can not go in dependency_libs. +inherited_linker_flags='' + +# Libraries that this one depends upon. +dependency_libs=' -lpthread -ldl -lcurses -lm' + +# Names of additional weak libraries provided by this library +weak_library_names='' + +# Version information for libscipolynomials-algo. +current= +age= +revision= + +# Is this an already installed library? +installed=no + +# Should we warn about portability when linking against -modules? +shouldnotlink=no + +# Files to dlopen/dlpreopen +dlopen='' +dlpreopen='' + +# Directory that this library needs to be installed in: +libdir='' diff --git a/modules/polynomials/libscipolynomials.la b/modules/polynomials/libscipolynomials.la new file mode 100755 index 000000000..9254e40aa --- /dev/null +++ b/modules/polynomials/libscipolynomials.la @@ -0,0 +1,41 @@ +# libscipolynomials.la - a libtool library file +# Generated by libtool (GNU libtool) 2.4.2 +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='' + +# Names of this library. +library_names='' + +# The name of the static archive. +old_library='libscipolynomials.a' + +# Linker flags that can not go in dependency_libs. +inherited_linker_flags='' + +# Libraries that this one depends upon. +dependency_libs=' -lpthread -ldl -lcurses -lm' + +# Names of additional weak libraries provided by this library +weak_library_names='' + +# Version information for libscipolynomials. +current= +age= +revision= + +# Is this an already installed library? +installed=no + +# Should we warn about portability when linking against -modules? +shouldnotlink=no + +# Files to dlopen/dlpreopen +dlopen='' +dlpreopen='' + +# Directory that this library needs to be installed in: +libdir='' diff --git a/modules/polynomials/license.txt b/modules/polynomials/license.txt new file mode 100755 index 000000000..300833893 --- /dev/null +++ b/modules/polynomials/license.txt @@ -0,0 +1,22 @@ +Copyright: +Copyright (c) 2008 - DIGITEO +Copyright (c) 1989-2008 - INRIA + +License: +This module must be used under the terms of the CeCILL. +This module 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 + + +Eispack: +======== + +Files: src/fortran/balbak.f + +Copyright: +1983 - Burton s. Garbow + +License: +Public domain diff --git a/modules/polynomials/locales/ca_ES.po b/modules/polynomials/locales/ca_ES.po new file mode 100755 index 000000000..fffe3e92f --- /dev/null +++ b/modules/polynomials/locales/ca_ES.po @@ -0,0 +1,128 @@ +# Catalan translation for scilab +# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 +# This file is distributed under the same license as the scilab package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: scilab\n" +"Report-Msgid-Bugs-To: <localization@lists.scilab.org>\n" +"POT-Creation-Date: 2013-04-16 17:44+0100\n" +"PO-Revision-Date: 2012-04-19 18:11+0000\n" +"Last-Translator: Marc Coll Carrillo <Unknown>\n" +"Language-Team: Catalan <ca@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Launchpad (build 17413)\n" +"Language: ca\n" + +msgid "Polynomials" +msgstr "Polinomis" + +msgid "Introduction" +msgstr "Introducció" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A square matrix expected.\n" +msgstr "" +"%s: L'argument d'entrada #%d té una mida incorrecta: Ha de ser una matriu " +"quadrada.\n" + +#, c-format +msgid "" +"%s: Wrong type for input argument #%d: A floating point number or polynomial " +"or rational fraction array expected.\n" +msgstr "" +"%s: L'argument d'entrada #%d té una mida incorrecta: Ha de ser un nombre " +"decimal amb coma flotant, un polinomi o un vector de fraccions racionals.\n" + +#, c-format +msgid "%s: Wrong number of input argument: %d expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A polynomial expected.\n" +msgstr "" +"%s: L'argument d'entrada #%d té una mida incorrecta: Ha de ser un polinomi.\n" + +#, c-format +msgid "" +"%s: Wrong size for input argument #%d: A rational fraction expected.\n" +msgstr "" +"%s: L'argument d'entrada #%d té una mida incorrecta: Ha de ser una fracció " +"racional.\n" + +#, c-format +msgid "" +"%s: Wrong size for input argument #%d: A single input, single output system " +"expected.\n" +msgstr "" +"%s: L'argument d'entrada #%d té una mida incorrecta: Ha de ser un sistema " +"d'entrada simple i sortida simple.\n" + +#, c-format +msgid "" +"%s: Wrong type for input argument #%d: Linear dynamical system or polynomial " +"array expected.\n" +msgstr "" +"%s: L'argument d'entrada #%d és d'un tipus incorrecte: Ha de ser un sistema " +"dinà mic o un vector de polinomis.\n" + +#, c-format +msgid "" +"%s: Wrong type for argument #%d: Integer array or Polynomial expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument: Polynomial array expected.\n" +msgstr "" +"%s: L'argument d'entrada és d'un tipus incorrecte: Ha de ser un vector de " +"polinomis.\n" + +#, c-format +msgid "%s: Wrong number of input argument(s): %d expected.\n" +msgstr "%s: Nombre incorrecte d'arguments d'entrada: Han de ser %d.\n" + +#, c-format +msgid "%s: Unexpected type for input argument #%d.\n" +msgstr "%s: L'argument d'entrada #%d és d'un tipus inesperat.\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A row vector expected.\n" +msgstr "" +"%s: L'argument d'entrada #%d té una mida incorrecta: Ha de ser un vector " +"fila.\n" + +#, c-format +msgid "%s: incompatible input arguments %d and %d\n" +msgstr "%s: Els arguments d'entrada %d i %d són incompatibles.\n" + +#, c-format +msgid "%s: Wrong value for input argument #%d: Must be in the set {%s}.\n" +msgstr "" +"%s: L'argument d'entrada #%d és d'un tipus incorrecte: Ha de ser un " +"d'aquests {%s}.\n" + +#, c-format +msgid "" +"%s: Wrong type for argument #%d: Real Matrix of Polynomials expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for argument #%d: String expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong value for argument #%d: %s or %s expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: Polynomial expected.\n" +msgstr "" +"%s: tipus de dades del parà metre d'entrada #%d incorrecte: s'esperava un " +"polinomi.\n" + +#, c-format +msgid "%s: Input argument #%d must be real.\n" +msgstr "%s: L'argument d'entrada #%d ha de ser un nombre real.\n" diff --git a/modules/polynomials/locales/cs_CZ.po b/modules/polynomials/locales/cs_CZ.po new file mode 100755 index 000000000..94acfc0f7 --- /dev/null +++ b/modules/polynomials/locales/cs_CZ.po @@ -0,0 +1,118 @@ +# Czech translation for scilab +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the scilab package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: scilab\n" +"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" +"POT-Creation-Date: 2013-04-16 17:44+0100\n" +"PO-Revision-Date: 2013-09-24 19:25+0000\n" +"Last-Translator: ZbynÄ›k Schwarz <Unknown>\n" +"Language-Team: Czech <cs@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Launchpad (build 17413)\n" + +msgid "Polynomials" +msgstr "Polynomy" + +msgid "Introduction" +msgstr "Úvod" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A square matrix expected.\n" +msgstr "" +"%s: Å patná velikost vstupnÃho argumentu #%d: OÄekávána Ätvercová matice.\n" + +#, c-format +msgid "" +"%s: Wrong type for input argument #%d: A floating point number or polynomial " +"or rational fraction array expected.\n" +msgstr "" +"%s: Å patný typ vstupnÃho argumentu #%d: OÄekáváno desetinné ÄÃslo, polynom, " +"nebo pole racionálnÃch zlomků.\n" + +#, c-format +msgid "%s: Wrong number of input argument: %d expected.\n" +msgstr "%s: Å patný poÄet vstupnÃch argumentů: oÄekáváno %d.\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A polynomial expected.\n" +msgstr "%s: Å patná velikost vstupnÃho argumentu #%d: OÄekáván mnohoÄlen.\n" + +#, c-format +msgid "" +"%s: Wrong size for input argument #%d: A rational fraction expected.\n" +msgstr "" +"%s: Å patná velikost vstupnÃho argumentu #%d: OÄekáván racionálnà zlomek.\n" + +#, c-format +msgid "" +"%s: Wrong size for input argument #%d: A single input, single output system " +"expected.\n" +msgstr "" +"%s: Å patná velikost vstupnÃho argumentu #%d: OÄekává systém jednoho vstupu a " +"výstupu.\n" + +#, c-format +msgid "" +"%s: Wrong type for input argument #%d: Linear dynamical system or polynomial " +"array expected.\n" +msgstr "" +"%s: Å patný typ vstupnÃho argumentu #%d: OÄekáván lineárnà dynamický systém, " +"nebo pole polynomů.\n" + +#, c-format +msgid "" +"%s: Wrong type for argument #%d: Integer array or Polynomial expected.\n" +msgstr "" +"%s: Å patný typ argumentu #%d: OÄekáváno pole celých ÄÃsel nebo polynom.\n" + +#, c-format +msgid "%s: Wrong type for input argument: Polynomial array expected.\n" +msgstr "%s: Å patný typ vstupnÃho argumentu: OÄekáváno pole polynomů.\n" + +#, c-format +msgid "%s: Wrong number of input argument(s): %d expected.\n" +msgstr "%s: Å patný poÄet vstupnÃch argumentů: OÄekáván %d.\n" + +#, c-format +msgid "%s: Unexpected type for input argument #%d.\n" +msgstr "%s: NeÄekaný typ vstupnÃho argumentu #%d.\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A row vector expected.\n" +msgstr "%s: Å patná velikost vstupnÃho argumentu #%d: OÄekáván vektor Å™ady.\n" + +#, c-format +msgid "%s: incompatible input arguments %d and %d\n" +msgstr "%s: nekompatibilnà vstupnà argumenty %d a %d\n" + +#, c-format +msgid "%s: Wrong value for input argument #%d: Must be in the set {%s}.\n" +msgstr "%s: Å patná hodnota vstupnÃho argumentu #%d: Musà být v sadÄ› {%s}.\n" + +#, c-format +msgid "" +"%s: Wrong type for argument #%d: Real Matrix of Polynomials expected.\n" +msgstr "" +"%s: Å patný typ argumentu #%d: OÄekávána reálná matice nebo polynomy.\n" + +#, c-format +msgid "%s: Wrong type for argument #%d: String expected.\n" +msgstr "%s: Å patný typ argumentu #%d: OÄekáván Å™etÄ›zec.\n" + +#, c-format +msgid "%s: Wrong value for argument #%d: %s or %s expected.\n" +msgstr "%s: Å patná hodnota argumentu #%d: OÄekáváno %s nebo %s.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: Polynomial expected.\n" +msgstr "%s: Å patný typ vstupnÃho argumentu #%d: OÄekáván polynom.\n" + +#, c-format +msgid "%s: Input argument #%d must be real.\n" +msgstr "%s: Vstupnà argument #%d musà být reálné ÄÃslo.\n" diff --git a/modules/polynomials/locales/de_DE.po b/modules/polynomials/locales/de_DE.po new file mode 100755 index 000000000..384cadb50 --- /dev/null +++ b/modules/polynomials/locales/de_DE.po @@ -0,0 +1,121 @@ +# German translation for scilab +# Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 +# This file is distributed under the same license as the scilab package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: scilab\n" +"Report-Msgid-Bugs-To: <localization@lists.scilab.org>\n" +"POT-Creation-Date: 2013-04-16 17:44+0100\n" +"PO-Revision-Date: 2012-01-31 16:41+0000\n" +"Last-Translator: Niko K <Unknown>\n" +"Language-Team: German <de@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Launchpad (build 17413)\n" +"Language: de\n" + +msgid "Polynomials" +msgstr "Polynome" + +msgid "Introduction" +msgstr "Einführung" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A square matrix expected.\n" +msgstr "" +"%s: falsche Größe für Eingangsargument #%d: eine N x N Matrix erwartet.\n" + +#, c-format +msgid "" +"%s: Wrong type for input argument #%d: A floating point number or polynomial " +"or rational fraction array expected.\n" +msgstr "" +"%s: falsche Größe für Eingangsargument #%d: eine Fließpunkt-Zahl, Polynom " +"oder Datenfeld mit rationalen Brüchen erwartet.\n" + +#, c-format +msgid "%s: Wrong number of input argument: %d expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A polynomial expected.\n" +msgstr "%s: falsche Größe für Eingangsargument #%d: ein Polynom erwartet.\n" + +#, c-format +msgid "" +"%s: Wrong size for input argument #%d: A rational fraction expected.\n" +msgstr "" +"%s: falsche Größe für Eingangsargument #%d: ein reell-wertiger Bruch " +"erwartet.\n" + +#, c-format +msgid "" +"%s: Wrong size for input argument #%d: A single input, single output system " +"expected.\n" +msgstr "" +"%s: falsche Größe für Eingangsargument #%d: ein System mit einzelnem Eingang " +"und Ausgang erwartet.\n" + +#, c-format +msgid "" +"%s: Wrong type for input argument #%d: Linear dynamical system or polynomial " +"array expected.\n" +msgstr "" +"%s: falscher Typ für Eingangsargument #%d: lineares dynamisches System oder " +"Datenfeld mit Polynomen erwartet.\n" + +#, c-format +msgid "" +"%s: Wrong type for argument #%d: Integer array or Polynomial expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument: Polynomial array expected.\n" +msgstr "" +"%s: falscher Typ für Eingangsargument: Datenfeld mit Polynomen erwartet.\n" + +#, c-format +msgid "%s: Wrong number of input argument(s): %d expected.\n" +msgstr "%s: falsche Anzahl von Eingangsargumenten: %d erwartet.\n" + +#, c-format +msgid "%s: Unexpected type for input argument #%d.\n" +msgstr "%s: unerwarteter Typ für Eingangsargument #%d.\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A row vector expected.\n" +msgstr "" +"%s: falsche Größe für Eingangsargument #%d: ein Reihenvektor erwartet.\n" + +#, c-format +msgid "%s: incompatible input arguments %d and %d\n" +msgstr "%s: inkompatible Eingangsargumente %d und %d.\n" + +#, c-format +msgid "%s: Wrong value for input argument #%d: Must be in the set {%s}.\n" +msgstr "" +"%s: falscher Wert für Eingangsargument #%d: muß sich im Satz {%s} befinden.\n" + +#, c-format +msgid "" +"%s: Wrong type for argument #%d: Real Matrix of Polynomials expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for argument #%d: String expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong value for argument #%d: %s or %s expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: Polynomial expected.\n" +msgstr "%s: Falscher Typ des Eingangsarguments #%d: Polynom erwartet.\n" + +#, c-format +msgid "%s: Input argument #%d must be real.\n" +msgstr "%s: Eingangsargument #%d muß reell sein.\n" diff --git a/modules/polynomials/locales/es_ES.po b/modules/polynomials/locales/es_ES.po new file mode 100755 index 000000000..56693f1b2 --- /dev/null +++ b/modules/polynomials/locales/es_ES.po @@ -0,0 +1,128 @@ +# Spanish translation for scilab +# Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 +# This file is distributed under the same license as the scilab package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: scilab\n" +"Report-Msgid-Bugs-To: <localization@lists.scilab.org>\n" +"POT-Creation-Date: 2013-04-16 17:44+0100\n" +"PO-Revision-Date: 2012-09-09 18:11+0000\n" +"Last-Translator: Jorge Catumba <jorgerev90@gmail.com>\n" +"Language-Team: Spanish <es@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Launchpad (build 17413)\n" +"Language: es\n" + +msgid "Polynomials" +msgstr "Polinomios" + +msgid "Introduction" +msgstr "Introducción" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A square matrix expected.\n" +msgstr "" +"%s: Tamaño incorrecto del argumento de entrada #%d: Se esperaba una matriz " +"cuadrada.\n" + +#, c-format +msgid "" +"%s: Wrong type for input argument #%d: A floating point number or polynomial " +"or rational fraction array expected.\n" +msgstr "" +"%s: Tipo incorrecto del argumento de entrada #%d: Se esperaba un arreglo de " +"decimales, polinomios o racionales.\n" + +#, c-format +msgid "%s: Wrong number of input argument: %d expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A polynomial expected.\n" +msgstr "" +"%s: Tamaño incorrecto del argumento de entrada #%d: Se esperaba un " +"polinomio.\n" + +#, c-format +msgid "" +"%s: Wrong size for input argument #%d: A rational fraction expected.\n" +msgstr "" +"%s: Tamaño incorrecto del argumento de entrada #%d: Se esperaba una fracción " +"racional.\n" + +#, c-format +msgid "" +"%s: Wrong size for input argument #%d: A single input, single output system " +"expected.\n" +msgstr "" +"%s: Tamaño incorrecto del argumento de entrada #%d: Se esperaba un sistema " +"de entrada/salida simple.\n" + +#, c-format +msgid "" +"%s: Wrong type for input argument #%d: Linear dynamical system or polynomial " +"array expected.\n" +msgstr "" +"%s: Tipo incorrecto del argumento de entrada #%d: Se esperaba un sistema " +"lineal dinámico o un arreglo polinómico.\n" + +#, c-format +msgid "" +"%s: Wrong type for argument #%d: Integer array or Polynomial expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument: Polynomial array expected.\n" +msgstr "" +"%s: Tipo incorrecto de argumento de entrada: Se esperaba un arreglo " +"polinómico.\n" + +#, c-format +msgid "%s: Wrong number of input argument(s): %d expected.\n" +msgstr "%s: Número incorrecto de argumento(s) de entrada: Se esperaban %d.\n" + +#, c-format +msgid "%s: Unexpected type for input argument #%d.\n" +msgstr "%s: Tipo inesperado para el argumento de entrada #%d.\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A row vector expected.\n" +msgstr "" +"%s: Tamaño incorrecto del argumento de entrada #%d: Se esperaba un vector " +"fila.\n" + +#, c-format +msgid "%s: incompatible input arguments %d and %d\n" +msgstr "%s: Argumentos de entrada %d y %d incompatibles.\n" + +#, c-format +msgid "%s: Wrong value for input argument #%d: Must be in the set {%s}.\n" +msgstr "" +"%s: Valor incorrecto del argumento de entrada #%d: Debe estar en el conjunto " +"{%s}.\n" + +#, c-format +msgid "" +"%s: Wrong type for argument #%d: Real Matrix of Polynomials expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for argument #%d: String expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong value for argument #%d: %s or %s expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: Polynomial expected.\n" +msgstr "" +"%s: Tipo inválido del argumento de entrada #%d: Se esperaba polinomio.\n" + +#, c-format +msgid "%s: Input argument #%d must be real.\n" +msgstr "%s: El argumento de entrada #%d debe ser real.\n" diff --git a/modules/polynomials/locales/fr_FR.po b/modules/polynomials/locales/fr_FR.po new file mode 100755 index 000000000..5b27ee7e0 --- /dev/null +++ b/modules/polynomials/locales/fr_FR.po @@ -0,0 +1,131 @@ +# French translation for scilab +# Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 +# This file is distributed under the same license as the scilab package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: scilab\n" +"Report-Msgid-Bugs-To: <localization@lists.scilab.org>\n" +"POT-Creation-Date: 2013-04-16 17:44+0100\n" +"PO-Revision-Date: 2013-09-16 09:48+0000\n" +"Last-Translator: Julie PAUL <Unknown>\n" +"Language-Team: French <fr@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Launchpad (build 17413)\n" +"Language: fr\n" + +msgid "Polynomials" +msgstr "Polynômes" + +msgid "Introduction" +msgstr "Introduction" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A square matrix expected.\n" +msgstr "" +"%s : Dimension erronée de l'argument d'entrée n°%d : Une matrice carrée " +"attendue.\n" + +#, c-format +msgid "" +"%s: Wrong type for input argument #%d: A floating point number or polynomial " +"or rational fraction array expected.\n" +msgstr "" +"%s : Type erroné de l'argument d'entrée n°%d : Un tableau de flottants, de " +"polynômes ou de fractions rationnelles attendu.\n" + +#, c-format +msgid "%s: Wrong number of input argument: %d expected.\n" +msgstr "%s : Nombre erroné d'arguments d'entrée : %d attendus.\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A polynomial expected.\n" +msgstr "" +"%s : Dimension erronée de l'argument d'entrée n°%d : Un polynôme attendu.\n" + +#, c-format +msgid "" +"%s: Wrong size for input argument #%d: A rational fraction expected.\n" +msgstr "" +"%s : Dimension erronée de l'argument d'entrée n°%d : Une fraction " +"rationnelle attendue.\n" + +#, c-format +msgid "" +"%s: Wrong size for input argument #%d: A single input, single output system " +"expected.\n" +msgstr "" +"%s : Dimension erronée de l'argument d'entrée n°%d : Un système mono-entrée, " +"mono-sortie est attendu.\n" + +#, c-format +msgid "" +"%s: Wrong type for input argument #%d: Linear dynamical system or polynomial " +"array expected.\n" +msgstr "" +"%s : Type erroné de l'argument d'entrée n°%d : Un système dynamique linéaire " +"ou un tableau de polynômes est attendu.\n" + +#, c-format +msgid "" +"%s: Wrong type for argument #%d: Integer array or Polynomial expected.\n" +msgstr "" +"%s : Type erroné de l'argument n°%d : Un tableau d'entiers ou un polynôme " +"attendu.\n" + +#, c-format +msgid "%s: Wrong type for input argument: Polynomial array expected.\n" +msgstr "" +"%s : Type erroné de l'argument d'entrée : Un tableau de polynômes attendu.\n" + +#, c-format +msgid "%s: Wrong number of input argument(s): %d expected.\n" +msgstr "%s : Nombre erroné d'argument(s) d'entrée : %d attendu(s).\n" + +#, c-format +msgid "%s: Unexpected type for input argument #%d.\n" +msgstr "%s : Type inattendu de l'argument d'entrée n°%d\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A row vector expected.\n" +msgstr "" +"%s : Dimension erronée de l'argument d'entrée n°%d : Un vecteur ligne " +"attendu.\n" + +#, c-format +msgid "%s: incompatible input arguments %d and %d\n" +msgstr "%s : Les arguments d'entrée n°%d et n°%d sont incompatibles.\n" + +#, c-format +msgid "%s: Wrong value for input argument #%d: Must be in the set {%s}.\n" +msgstr "" +"%s : Valeur erronée de l'argument d'entrée n°%d : Doit être dans l'ensemble " +"{%s}.\n" + +#, c-format +msgid "" +"%s: Wrong type for argument #%d: Real Matrix of Polynomials expected.\n" +msgstr "" +"%s : Type erroné de l'argument n°%d : Une matrice réelle de polynômes " +"attendue.\n" + +#, c-format +msgid "%s: Wrong type for argument #%d: String expected.\n" +msgstr "" +"%s : Type erroné de l'argument n°%d : Une chaîne de caractères attendue.\n" + +#, c-format +msgid "%s: Wrong value for argument #%d: %s or %s expected.\n" +msgstr "%s : Valeur erronée de l'argument n°%d : %s ou %s attendu.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: Polynomial expected.\n" +msgstr "" +"%s : Type erroné de l'argument d'entrée n°%d : Un polynôme attendu.\n" + +#, c-format +msgid "%s: Input argument #%d must be real.\n" +msgstr "%s : L'argument d'entrée n°%d doit être réel.\n" diff --git a/modules/polynomials/locales/it_IT.po b/modules/polynomials/locales/it_IT.po new file mode 100755 index 000000000..e08d0c6cf --- /dev/null +++ b/modules/polynomials/locales/it_IT.po @@ -0,0 +1,138 @@ +# Italian translation for scilab +# Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 +# This file is distributed under the same license as the scilab package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: scilab\n" +"Report-Msgid-Bugs-To: <localization@lists.scilab.org>\n" +"POT-Creation-Date: 2013-04-16 17:44+0100\n" +"PO-Revision-Date: 2015-02-14 21:44+0000\n" +"Last-Translator: Carml <mighty.carml@gmail.com>\n" +"Language-Team: Italian <it@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Launchpad (build 17413)\n" +"Language: it\n" + +msgid "Polynomials" +msgstr "Polinomi" + +msgid "Introduction" +msgstr "Introduzione" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A square matrix expected.\n" +msgstr "" +"%s: L'argomento in ingresso #%d ha una dimensione sbagliata: era attesa una " +"matrice quadrata.\n" + +#, c-format +msgid "" +"%s: Wrong type for input argument #%d: A floating point number or polynomial " +"or rational fraction array expected.\n" +msgstr "" +"%s: L' argomento in ingresso #%d è di tipo sbagliato: era atteso un numero " +"in virgola mobile o un polinomio o un vettore di frazioni razionali.\n" + +#, c-format +msgid "%s: Wrong number of input argument: %d expected.\n" +msgstr "" +"%s: Il numero degli argomenti in ingresso è sbagliato: ne erano attesi %d.\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A polynomial expected.\n" +msgstr "" +"%s: L'argomento in ingresso #%d ha una dimensione sbagliata: era atteso un " +"polinomio.\n" + +#, c-format +msgid "" +"%s: Wrong size for input argument #%d: A rational fraction expected.\n" +msgstr "" +"%s: L'argomento in ingresso #%d ha una dimensione sbagliata: era attesa una " +"frazione razionale.\n" + +#, c-format +msgid "" +"%s: Wrong size for input argument #%d: A single input, single output system " +"expected.\n" +msgstr "" +"%s: L'argomento in ingresso #%d ha una dimensione sbagliata: era atteso un " +"sistema con input e output singoli.\n" + +#, c-format +msgid "" +"%s: Wrong type for input argument #%d: Linear dynamical system or polynomial " +"array expected.\n" +msgstr "" +"%s: L'argomento in ingresso #%d è di tipo sbagliato: era atteso un sistema " +"lineare dinamico o un vettore di polinomi.\n" + +#, c-format +msgid "" +"%s: Wrong type for argument #%d: Integer array or Polynomial expected.\n" +msgstr "" +"%s: L'argomento in ingresso #%d è di tipo sbagliato: era atteso un vettore " +"di interi o uno polinomiale\n" + +#, c-format +msgid "%s: Wrong type for input argument: Polynomial array expected.\n" +msgstr "" +"%s: L'argomento in ingresso è di tipo sbagliato: era atteso un vettore di " +"polinomi.\n" + +#, c-format +msgid "%s: Wrong number of input argument(s): %d expected.\n" +msgstr "" +"%s: Il numero degli argomenti in ingresso è sbagliato: ne erano attesi %d.\n" + +#, c-format +msgid "%s: Unexpected type for input argument #%d.\n" +msgstr "%s: L'argomento in ingresso #%d è di tipo inatteso.\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A row vector expected.\n" +msgstr "" +"%s: L' argomento in ingresso #%d ha una dimensione sbagliata: era atteso un " +"vettore riga.\n" + +#, c-format +msgid "%s: incompatible input arguments %d and %d\n" +msgstr "%s: gli argomenti in ingresso %d e %d sono incompatibili\n" + +#, c-format +msgid "%s: Wrong value for input argument #%d: Must be in the set {%s}.\n" +msgstr "" +"%s: L'argomento in ingresso #%d ha un valore sbagliato: deve essere " +"nell'insieme {%s}.\n" + +#, c-format +msgid "" +"%s: Wrong type for argument #%d: Real Matrix of Polynomials expected.\n" +msgstr "" +"%s: L'argomento in ingresso #%d è di tipo sbagliato: era attesa una matrice " +"reale o una di polinomi.\n" + +#, c-format +msgid "%s: Wrong type for argument #%d: String expected.\n" +msgstr "" +"%s: L'argomento in ingresso #%d è di tipo sbagliato: era attesa una " +"stringa.\n" + +#, c-format +msgid "%s: Wrong value for argument #%d: %s or %s expected.\n" +msgstr "" +"%s: L'argomento in ingresso #%d ha un valore sbagliato: era atteso %s o %s.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: Polynomial expected.\n" +msgstr "" +"%s: L'argomento in ingresso #%d è di tipo sbagliato: era atteso un " +"polinomio.\n" + +#, c-format +msgid "%s: Input argument #%d must be real.\n" +msgstr "%s: L'argomento in ingresso #%d deve essere reale.\n" diff --git a/modules/polynomials/locales/ja_JP.po b/modules/polynomials/locales/ja_JP.po new file mode 100755 index 000000000..ae2625370 --- /dev/null +++ b/modules/polynomials/locales/ja_JP.po @@ -0,0 +1,114 @@ +# Japanese translation for scilab +# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 +# This file is distributed under the same license as the scilab package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: scilab\n" +"Report-Msgid-Bugs-To: <localization@lists.scilab.org>\n" +"POT-Creation-Date: 2013-04-16 17:44+0100\n" +"PO-Revision-Date: 2013-09-21 05:52+0000\n" +"Last-Translator: Rui Hirokawa <Unknown>\n" +"Language-Team: Japanese <z-saito@guitar.ocn.ne.jp>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Launchpad (build 17413)\n" +"X-Poedit-Country: Japan\n" +"Language: ja\n" +"X-Poedit-Language: Japanese\n" + +# File: etc/polynomials.start, line: 26 +msgid "Polynomials" +msgstr "å¤šé …å¼" + +msgid "Introduction" +msgstr "å°Žå…¥" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A square matrix expected.\n" +msgstr "%s: 入力引数 #%d ã®å¤§ãã•ãŒæ£ã—ãã‚ã‚Šã¾ã›ã‚“: æ£æ–¹è¡Œåˆ—を指定ã—ã¦ãã ã•ã„.\n" + +#, c-format +msgid "" +"%s: Wrong type for input argument #%d: A floating point number or polynomial " +"or rational fraction array expected.\n" +msgstr "%s: 入力引数 #%d ã®åž‹ãŒé–“é•ã£ã¦ã„ã¾ã™: 浮動å°æ•°ç‚¹æ•°ã¾ãŸã¯å¤šé …å¼ã¾ãŸã¯æœ‰ç†åˆ†æ•°é…列を指定ã—ã¦ãã ã•ã„.\n" + +#, c-format +msgid "%s: Wrong number of input argument: %d expected.\n" +msgstr "%s: 入力引数ã®æ•°ãŒé–“é•ã£ã¦ã„ã¾ã™: %d 個ã®å¼•æ•°ã‚’指定ã—ã¦ãã ã•ã„.\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A polynomial expected.\n" +msgstr "%s: 入力引数 #%d ã®å¤§ãã•ãŒé–“é•ã£ã¦ã„ã¾ã™: å¤šé …å¼ã‚’指定ã—ã¦ãã ã•ã„.\n" + +#, c-format +msgid "" +"%s: Wrong size for input argument #%d: A rational fraction expected.\n" +msgstr "%s: 入力引数 #%d ã®å¤§ãã•ãŒé–“é•ã£ã¦ã„ã¾ã™: 有ç†åˆ†æ•°ã‚’指定ã—ã¦ãã ã•ã„.\n" + +#, c-format +msgid "" +"%s: Wrong size for input argument #%d: A single input, single output system " +"expected.\n" +msgstr "%s: 入力引数 #%d ã®å¤§ãã•ãŒé–“é•ã£ã¦ã„ã¾ã™: 1入力1出力システムを指定ã—ã¦ãã ã•ã„.\n" + +#, c-format +msgid "" +"%s: Wrong type for input argument #%d: Linear dynamical system or polynomial " +"array expected.\n" +msgstr "%s: 入力引数 #%d ã®åž‹ãŒé–“é•ã£ã¦ã„ã¾ã™: 線形動的システムã¾ãŸã¯å¤šé …å¼é…列を指定ã—ã¦ãã ã•ã„.\n" + +#, c-format +msgid "" +"%s: Wrong type for argument #%d: Integer array or Polynomial expected.\n" +msgstr "%s: 引数 #%d ã®åž‹ãŒé–“é•ã£ã¦ã„ã¾ã™: æ•´æ•°é…列ã¾ãŸã¯å¤šé …å¼ã‚’指定ã—ã¦ãã ã•ã„.\n" + +#, c-format +msgid "%s: Wrong type for input argument: Polynomial array expected.\n" +msgstr "%s: 入力引数ã®åž‹ãŒé–“é•ã£ã¦ã„ã¾ã™: å¤šé …å¼é…列を指定ã—ã¦ãã ã•ã„.\n" + +#, c-format +msgid "%s: Wrong number of input argument(s): %d expected.\n" +msgstr "%s: 入力引数ã®æ•°ã«èª¤ã‚ŠãŒã‚ã‚Šã¾ã™: %d 個ã®å¼•æ•°ã‚’指定ã—ã¦ãã ã•ã„.\n" + +#, c-format +msgid "%s: Unexpected type for input argument #%d.\n" +msgstr "%s: 入力引数 #%d ã«æƒ³å®šå¤–ã®åž‹ãŒæŒ‡å®šã•ã‚Œã¾ã—ãŸ.\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A row vector expected.\n" +msgstr "%s: 入力引数 #%d ã®å¤§ãã•ãŒé–“é•ã£ã¦ã„ã¾ã™: 行ベクトルを指定ã—ã¦ãã ã•ã„.\n" + +# +# File: macros/inv_coeff.sci, line: 24 +#, c-format +msgid "%s: incompatible input arguments %d and %d\n" +msgstr "%s: 入力引数 %d 㨠%d ã§äº’æ›æ€§ãŒã‚ã‚Šã¾ã›ã‚“。\n" + +#, c-format +msgid "%s: Wrong value for input argument #%d: Must be in the set {%s}.\n" +msgstr "%s: 入力引数 #%d ã®å€¤ãŒæ£ã—ãã‚ã‚Šã¾ã›ã‚“: é›†åˆ {%s} ã«å«ã¾ã‚Œã‚‹å€¤ã‚’指定ã—ã¦ãã ã•ã„.\n" + +#, c-format +msgid "" +"%s: Wrong type for argument #%d: Real Matrix of Polynomials expected.\n" +msgstr "%s: 引数 #%d ã®åž‹ãŒé–“é•ã£ã¦ã„ã¾ã™: 実数行列ã¾ãŸã¯å¤šé …å¼ã‚’指定ã—ã¦ãã ã•ã„.\n" + +#, c-format +msgid "%s: Wrong type for argument #%d: String expected.\n" +msgstr "%s: 引数 #%d ã®åž‹ãŒé–“é•ã£ã¦ã„ã¾ã™: æ–‡å—列を指定ã—ã¦ãã ã•ã„.\n" + +#, c-format +msgid "%s: Wrong value for argument #%d: %s or %s expected.\n" +msgstr "%s: 引数 #%d ã®å€¤ãŒé–“é•ã£ã¦ã„ã¾ã™: %s ã¾ãŸã¯ %s を指定ã—ã¦ãã ã•ã„.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: Polynomial expected.\n" +msgstr "%s: 入力引数 #%dã®åž‹ãŒé–“é•ã£ã¦ã„ã¾ã™: å¤šé …å¼ã‚’指定ã—ã¦ãã ã•ã„.\n" + +#, c-format +msgid "%s: Input argument #%d must be real.\n" +msgstr "%s: 入力引数 #%d ã¯å®Ÿæ•°ã§ãªãã¦ã¯ãªã‚Šã¾ã›ã‚“.\n" diff --git a/modules/polynomials/locales/pl_PL.po b/modules/polynomials/locales/pl_PL.po new file mode 100755 index 000000000..b8d3cc410 --- /dev/null +++ b/modules/polynomials/locales/pl_PL.po @@ -0,0 +1,125 @@ +# Polish translation for scilab +# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 +# This file is distributed under the same license as the scilab package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2010. +# +msgid "" +msgstr "" +"Project-Id-Version: scilab\n" +"Report-Msgid-Bugs-To: <localization@lists.scilab.org>\n" +"POT-Creation-Date: 2013-04-16 17:44+0100\n" +"PO-Revision-Date: 2011-10-20 14:11+0000\n" +"Last-Translator: Grzegorz Szostek <Unknown>\n" +"Language-Team: Polish <pl@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Launchpad (build 17413)\n" +"Language: pl\n" + +msgid "Polynomials" +msgstr "Wielomianów" + +msgid "Introduction" +msgstr "Wprowadzenie" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A square matrix expected.\n" +msgstr "" +"%s: NieprawidÅ‚owy rozmiar parametru wejÅ›ciowego nr %d: oczekiwana macierz " +"kwadratowa.\n" + +#, c-format +msgid "" +"%s: Wrong type for input argument #%d: A floating point number or polynomial " +"or rational fraction array expected.\n" +msgstr "" +"%s: NieprawidÅ‚owy typ argumentu wejÅ›ciowego nr %d: Oczekiwano liczby " +"rzeczywistej, wielomianu lub racjonalnej części tablicy.\n" + +#, c-format +msgid "%s: Wrong number of input argument: %d expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A polynomial expected.\n" +msgstr "" +"%s: NieprawidÅ‚owy rozmiar parametru wejÅ›ciowego nr %d: oczekiwano " +"wielomiany.\n" + +#, c-format +msgid "" +"%s: Wrong size for input argument #%d: A rational fraction expected.\n" +msgstr "" +"%s: ZÅ‚y rozmiar parametru wejÅ›ciowego nr %d: oczekiwana racjonalna część .\n" + +#, c-format +msgid "" +"%s: Wrong size for input argument #%d: A single input, single output system " +"expected.\n" +msgstr "" +"%s: ZÅ‚y rozmiar parametru wejÅ›ciowego nr %d: pojedyncze wejÅ›cie, system " +"oczekuje pojedynczego wyjÅ›cia.\n" + +#, c-format +msgid "" +"%s: Wrong type for input argument #%d: Linear dynamical system or polynomial " +"array expected.\n" +msgstr "" +"%s: NieprawidÅ‚owy typ argumentu wejÅ›ciowego nr %d: Oczekiwano liniowego " +"ukÅ‚adu dynamicznego lub tablicy wielomianów.\n" + +#, c-format +msgid "" +"%s: Wrong type for argument #%d: Integer array or Polynomial expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument: Polynomial array expected.\n" +msgstr "" +"%s: NiewÅ‚aÅ›ciwy typ dla argumentu wejÅ›ciowego: Oczekiwana jest tablica " +"wielomianów.\n" + +#, c-format +msgid "%s: Wrong number of input argument(s): %d expected.\n" +msgstr "%s: NieprawidÅ‚owa liczba argumentów wejÅ›ciowych: oczekiwano %d.\n" + +#, c-format +msgid "%s: Unexpected type for input argument #%d.\n" +msgstr "%s: Nieoczekiwany typ argument wejÅ›ciowy nr %d.\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A row vector expected.\n" +msgstr "" +"%s: ZÅ‚y rozmiar parametru wejÅ›ciowego nr %d: oczekiwany wektor wierszowy.\n" + +#, c-format +msgid "%s: incompatible input arguments %d and %d\n" +msgstr "%s: argumenty wejÅ›ciowe %d oraz % d sÄ… niezgodne.\n" + +#, c-format +msgid "%s: Wrong value for input argument #%d: Must be in the set {%s}.\n" +msgstr "" +"%s: NieprawidÅ‚owa wartość parametru wejÅ›ciowego nr %d: Musi być ze zbioru " +"{%s}.\n" + +#, c-format +msgid "" +"%s: Wrong type for argument #%d: Real Matrix of Polynomials expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for argument #%d: String expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong value for argument #%d: %s or %s expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: Polynomial expected.\n" +msgstr "%s: NieprawidÅ‚owy typ argumentu #%d: Oczekiwano wielomianu.\n" + +#, c-format +msgid "%s: Input argument #%d must be real.\n" +msgstr "%s: Parametr wejÅ›ciowy nr %d musi być wartoÅ›ciÄ… rzeczywistÄ….\n" diff --git a/modules/polynomials/locales/polynomials.pot b/modules/polynomials/locales/polynomials.pot new file mode 100755 index 000000000..b7e3ffd63 --- /dev/null +++ b/modules/polynomials/locales/polynomials.pot @@ -0,0 +1,165 @@ +# Localization of the module polynomials-macros +# Please see in SCI/tools/localization for localization management +# Copyright (C) 2007-2008 - INRIA +# Copyright (C) 2008-2011 - DIGITEO +# Copyright (C) 2012-2014 - Scilab-Enterprises +# This file is distributed under the same license as the Scilab package. +# +msgid "" +msgstr "" +"Project-Id-Version: Scilab\n" +"Report-Msgid-Bugs-To: <localization@lists.scilab.org>\n" +"POT-Creation-Date: 2013-04-16 17:44+0100\n" +"Last-Translator: Vincent COUVERT <vincent.couvert@scilab-enterprises.com>\n" +"Language-Team: Scilab Localization <localization@lists.scilab.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" +"Revision-Date: 2015-03-27 13:54+0100\n" + +# File: demos/polynomials.dem.gateway.sce, line: 10 +msgid "Polynomials" +msgstr "" + +# +# File: demos/polynomials.dem.gateway.sce, line: 12 +msgid "Introduction" +msgstr "" + +# +# File: macros/coffg.sci, line: 23 +# File: macros/coffg.sci, line: 36 +# File: macros/determ.sci, line: 25 +# File: macros/detr.sci, line: 24 +# File: macros/hermit.sci, line: 22 +#, c-format +msgid "%s: Wrong size for input argument #%d: A square matrix expected.\n" +msgstr "" + +# +# File: macros/coffg.sci, line: 47 +# File: macros/denom.sci, line: 27 +# File: macros/derivat.sci, line: 59 +# File: macros/determ.sci, line: 22 +# File: macros/detr.sci, line: 35 +# File: macros/invr.sci, line: 92 +# File: macros/numer.sci, line: 23 +#, c-format +msgid "" +"%s: Wrong type for input argument #%d: A floating point number or polynomial " +"or rational fraction array expected.\n" +msgstr "" + +# +# File: macros/detr.sci, line: 17 +#, c-format +msgid "%s: Wrong number of input argument: %d expected.\n" +msgstr "" + +# +# File: macros/factors.sci, line: 22 +# File: macros/polfact.sci, line: 25 +#, c-format +msgid "%s: Wrong size for input argument #%d: A polynomial expected.\n" +msgstr "" + +# +# File: macros/factors.sci, line: 27 +#, c-format +msgid "%s: Wrong size for input argument #%d: A rational fraction expected.\n" +msgstr "" + +# +# File: macros/factors.sci, line: 41 +#, c-format +msgid "" +"%s: Wrong size for input argument #%d: A single input, single output system " +"expected.\n" +msgstr "" + +# +# File: macros/factors.sci, line: 53 +#, c-format +msgid "" +"%s: Wrong type for input argument #%d: Linear dynamical system or polynomial " +"array expected.\n" +msgstr "" + +# +# File: macros/gcd.sci, line: 18 +# File: macros/gcd.sci, line: 23 +# File: macros/lcm.sci, line: 18 +# File: macros/lcm.sci, line: 23 +#, c-format +msgid "" +"%s: Wrong type for argument #%d: Integer array or Polynomial expected.\n" +msgstr "" + +# +# File: macros/hermit.sci, line: 18 +# File: macros/htrianr.sci, line: 20 +# File: macros/polfact.sci, line: 22 +#, c-format +msgid "%s: Wrong type for input argument: Polynomial array expected.\n" +msgstr "" + +# +# File: macros/horner.sci, line: 29 +#, c-format +msgid "%s: Wrong number of input argument(s): %d expected.\n" +msgstr "" + +# +# File: macros/horner.sci, line: 117 +#, c-format +msgid "%s: Unexpected type for input argument #%d.\n" +msgstr "" + +# +# File: macros/hrmt.sci, line: 18 +#, c-format +msgid "%s: Wrong size for input argument #%d: A row vector expected.\n" +msgstr "" + +# +# File: macros/inv_coeff.sci, line: 24 +#, c-format +msgid "%s: incompatible input arguments %d and %d\n" +msgstr "" + +# +# File: macros/invr.sci, line: 56 +# File: macros/invr.sci, line: 88 +#, c-format +msgid "%s: Wrong value for input argument #%d: Must be in the set {%s}.\n" +msgstr "" + +# +# File: macros/lcmdiag.sci, line: 19 +#, c-format +msgid "%s: Wrong type for argument #%d: Real Matrix of Polynomials expected.\n" +msgstr "" + +# +# File: macros/lcmdiag.sci, line: 30 +#, c-format +msgid "%s: Wrong type for argument #%d: String expected.\n" +msgstr "" + +# +# File: macros/lcmdiag.sci, line: 46 +#, c-format +msgid "%s: Wrong value for argument #%d: %s or %s expected.\n" +msgstr "" + +# +# File: macros/pol2str.sci, line: 12 +#, c-format +msgid "%s: Wrong type for input argument #%d: Polynomial expected.\n" +msgstr "" + +# +# File: macros/polfact.sci, line: 29 +#, c-format +msgid "%s: Input argument #%d must be real.\n" +msgstr "" diff --git a/modules/polynomials/locales/pt_BR.po b/modules/polynomials/locales/pt_BR.po new file mode 100755 index 000000000..c92e6d35e --- /dev/null +++ b/modules/polynomials/locales/pt_BR.po @@ -0,0 +1,129 @@ +# Brazilian Portuguese translation for scilab +# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009 +# This file is distributed under the same license as the scilab package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: scilab\n" +"Report-Msgid-Bugs-To: <localization@lists.scilab.org>\n" +"POT-Creation-Date: 2013-04-16 17:44+0100\n" +"PO-Revision-Date: 2012-01-06 15:25+0000\n" +"Last-Translator: RodolfoRG <rodolforg@gmail.com>\n" +"Language-Team: Brazilian Portuguese <pt_BR@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Launchpad (build 17413)\n" +"Language: pt_BR\n" + +msgid "Polynomials" +msgstr "Polinômios" + +msgid "Introduction" +msgstr "Introdução" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A square matrix expected.\n" +msgstr "" +"%s: Tamanho incorreto para o argumento de entrada #%d: esperava-se uma " +"matriz quadrada.\n" + +#, c-format +msgid "" +"%s: Wrong type for input argument #%d: A floating point number or polynomial " +"or rational fraction array expected.\n" +msgstr "" +"%s: Tipo incorreto para o argumento de entrada #%d: esperava-se uma matriz " +"de números reais, de polinômios ou frações racionais.\n" + +#, c-format +msgid "%s: Wrong number of input argument: %d expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A polynomial expected.\n" +msgstr "" +"%s: Tamanho incorreto para o argumento de entrada #%d: esperava-se um " +"polinômio.\n" + +#, c-format +msgid "" +"%s: Wrong size for input argument #%d: A rational fraction expected.\n" +msgstr "" +"%s: Tamanho incorreto para o argumento de entrada #%d: esperava-se uma " +"fração racional.\n" + +#, c-format +msgid "" +"%s: Wrong size for input argument #%d: A single input, single output system " +"expected.\n" +msgstr "" +"%s: Tamanho incorreto para o argumento de entrada #%d: esperava-se um " +"sistema de única entrada e única saÃda.\n" + +#, c-format +msgid "" +"%s: Wrong type for input argument #%d: Linear dynamical system or polynomial " +"array expected.\n" +msgstr "" +"%s: Tipo incorreto para o argumento de entrada #%d: esperava-se um sistema " +"dinâmico linear ou uma matriz de polinômios.\n" + +#, c-format +msgid "" +"%s: Wrong type for argument #%d: Integer array or Polynomial expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument: Polynomial array expected.\n" +msgstr "" +"%s: Tipo incorreto para o argumento de entrada: esperava-se uma matriz de " +"polinômios.\n" + +#, c-format +msgid "%s: Wrong number of input argument(s): %d expected.\n" +msgstr "%s: Quantidade incorreta de argumentos de entrada: esperava-se %d.\n" + +#, c-format +msgid "%s: Unexpected type for input argument #%d.\n" +msgstr "%s: Tipo inesperado para o argumento de entrada #%d.\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A row vector expected.\n" +msgstr "" +"%s: Tamanho incorreto para o argumento de entrada #%d: esperava-se um vetor " +"linha.\n" + +#, c-format +msgid "%s: incompatible input arguments %d and %d\n" +msgstr "%s: Os argumentos de entrada #%d e #%d estão incompatÃveis\n" + +#, c-format +msgid "%s: Wrong value for input argument #%d: Must be in the set {%s}.\n" +msgstr "" +"%s: Valor incorreto para o argumento de entrada #%d: deve pertencer ao " +"conjunto {%s}.\n" + +#, c-format +msgid "" +"%s: Wrong type for argument #%d: Real Matrix of Polynomials expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for argument #%d: String expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong value for argument #%d: %s or %s expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: Polynomial expected.\n" +msgstr "" +"%s: Tipo incorreto para o argumento de entrada #%d: esperava-se um " +"polinômio.\n" + +#, c-format +msgid "%s: Input argument #%d must be real.\n" +msgstr "%s: O argumento de entrada #%d deve ser um número real.\n" diff --git a/modules/polynomials/locales/ru_RU.po b/modules/polynomials/locales/ru_RU.po new file mode 100755 index 000000000..b9aefa007 --- /dev/null +++ b/modules/polynomials/locales/ru_RU.po @@ -0,0 +1,123 @@ +# Russian translation for scilab +# Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 +# This file is distributed under the same license as the scilab package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: scilab\n" +"Report-Msgid-Bugs-To: <localization@lists.scilab.org>\n" +"POT-Creation-Date: 2013-04-16 17:44+0100\n" +"PO-Revision-Date: 2013-09-17 15:59+0000\n" +"Last-Translator: Stanislav V. Kroter <krotersv@gmail.com>\n" +"Language-Team: Russian <ru@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Launchpad (build 17413)\n" +"Language: ru\n" + +msgid "Polynomials" +msgstr "Полиномы" + +msgid "Introduction" +msgstr "Введение" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A square matrix expected.\n" +msgstr "" +"%s: Ðеверный размер входного параметра â„–%d: ожидалаÑÑŒ ÐºÐ²Ð°Ð´Ñ€Ð°Ñ‚Ð½Ð°Ñ Ð¼Ð°Ñ‚Ñ€Ð¸Ñ†Ð°.\n" + +#, c-format +msgid "" +"%s: Wrong type for input argument #%d: A floating point number or polynomial " +"or rational fraction array expected.\n" +msgstr "" +"%s: Ðеверный тип входного параметра â„–%d: ожидалоÑÑŒ чиÑло Ñ Ð¿Ð»Ð°Ð²Ð°ÑŽÑ‰ÐµÐ¹ точкой, " +"полином или маÑÑив рациональных дробей.\n" + +#, c-format +msgid "%s: Wrong number of input argument: %d expected.\n" +msgstr "%s: Ðеверное количеÑтво входных аргументов: ожидалоÑÑŒ %d.\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A polynomial expected.\n" +msgstr "%s: Ðеверный размер входного параметра â„–%d: ожидалÑÑ Ð¿Ð¾Ð»Ð¸Ð½Ð¾Ð¼.\n" + +#, c-format +msgid "" +"%s: Wrong size for input argument #%d: A rational fraction expected.\n" +msgstr "" +"%s: Ðеверный размер входного параметра â„–%d: ожидалаÑÑŒ Ñ€Ð°Ñ†Ð¸Ð¾Ð½Ð°Ð»ÑŒÐ½Ð°Ñ Ð´Ñ€Ð¾Ð±ÑŒ.\n" + +#, c-format +msgid "" +"%s: Wrong size for input argument #%d: A single input, single output system " +"expected.\n" +msgstr "" +"%s: Ðеверный размер входного параметра â„–%d: ожидалаÑÑŒ ÑиÑтема Ñ Ð¾Ð´Ð½Ð¸Ð¼ входом " +"и одним выходом.\n" + +#, c-format +msgid "" +"%s: Wrong type for input argument #%d: Linear dynamical system or polynomial " +"array expected.\n" +msgstr "" +"%s: Ðеверный тип входного параметра â„–%d: ожидалаÑÑŒ Ð»Ð¸Ð½ÐµÐ¹Ð½Ð°Ñ Ð´Ð¸Ð½Ð°Ð¼Ð¸Ñ‡ÐµÑÐºÐ°Ñ " +"ÑиÑтема или маÑÑив полиномов.\n" + +#, c-format +msgid "" +"%s: Wrong type for argument #%d: Integer array or Polynomial expected.\n" +msgstr "" +"%s: Ðеверный тип аргумента â„–%d: ожидалÑÑ Ð¼Ð°ÑÑив целых чиÑел или полином.\n" + +#, c-format +msgid "%s: Wrong type for input argument: Polynomial array expected.\n" +msgstr "%s: Ðеверный тип входного параметра: ожидалÑÑ Ð¼Ð°ÑÑив полиномов.\n" + +#, c-format +msgid "%s: Wrong number of input argument(s): %d expected.\n" +msgstr "%s: Ðеверное количеÑтво входных параметров: ожидалоÑÑŒ %d.\n" + +#, c-format +msgid "%s: Unexpected type for input argument #%d.\n" +msgstr "%s: Ðеверный тип входного параметра â„–%d.\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A row vector expected.\n" +msgstr "" +"%s: Ðеверный размер входного параметра â„–%d: ожидалÑÑ Ð²ÐµÐºÑ‚Ð¾Ñ€-Ñтрока.\n" + +#, c-format +msgid "%s: incompatible input arguments %d and %d\n" +msgstr "%s: неÑовмеÑтимые входные параметры %d и %d\n" + +#, c-format +msgid "%s: Wrong value for input argument #%d: Must be in the set {%s}.\n" +msgstr "" +"%s: Ðеверное значение входного параметра â„–%d: должно быть из множеÑтва " +"{%s}.\n" + +#, c-format +msgid "" +"%s: Wrong type for argument #%d: Real Matrix of Polynomials expected.\n" +msgstr "" +"%s: Ðеверный тип аргумента â„–%d: ожидалаÑÑŒ вещеÑÑ‚Ð²ÐµÐ½Ð½Ð°Ñ Ð¼Ð°Ñ‚Ñ€Ð¸Ñ†Ð° полиномов.\n" + +#, c-format +msgid "%s: Wrong type for argument #%d: String expected.\n" +msgstr "%s: Ðеверный тип аргумента â„–%d: ожидалоÑÑŒ Ñтроковое значение.\n" + +#, c-format +msgid "%s: Wrong value for argument #%d: %s or %s expected.\n" +msgstr "%s: Ðеверное значение аргумента â„–%d: ожидалоÑÑŒ %s или %s.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: Polynomial expected.\n" +msgstr "" +"%s: Ðеверный тип входного аргумента â„–%d: ожидалÑÑ Ð¿Ð¾Ð»Ð¸Ð½Ð¾Ð¼ (polynomial).\n" + +#, c-format +msgid "%s: Input argument #%d must be real.\n" +msgstr "%s: Входной параметр â„–%d должен быть вещеÑтвенным чиÑлом.\n" diff --git a/modules/polynomials/locales/uk_UA.po b/modules/polynomials/locales/uk_UA.po new file mode 100755 index 000000000..6ac199ad9 --- /dev/null +++ b/modules/polynomials/locales/uk_UA.po @@ -0,0 +1,133 @@ +# Ukrainian translation for scilab +# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010 +# This file is distributed under the same license as the scilab package. +# +# FIRST AUTHOR <EMAIL@ADDRESS>, 2010. +# Yuri Chornoivan <yurchor@gmail.com>, 2010. +msgid "" +msgstr "" +"Project-Id-Version: scilab\n" +"Report-Msgid-Bugs-To: <localization@lists.scilab.org>\n" +"POT-Creation-Date: 2013-04-16 17:44+0100\n" +"PO-Revision-Date: 2013-09-15 06:56+0000\n" +"Last-Translator: Yuri Chornoivan <yurchor@gmail.com>\n" +"Language-Team: Ukrainian <translation@linux.org.ua>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Launchpad (build 17413)\n" +"Language: uk\n" + +msgid "Polynomials" +msgstr "Поліноми" + +msgid "Introduction" +msgstr "Ð’Ñтуп" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A square matrix expected.\n" +msgstr "" +"%s: помилкова розмірніÑÑ‚ÑŒ вхідного параметра â„–%d: Ñлід викориÑтовувати " +"квадратну матрицю.\n" + +#, c-format +msgid "" +"%s: Wrong type for input argument #%d: A floating point number or polynomial " +"or rational fraction array expected.\n" +msgstr "" +"%s: помилковий тип вхідного параметра â„–%d: Ñлід викориÑтовувати чиÑло з " +"рухомою комою, поліном або маÑив з раціональних дробів.\n" + +#, c-format +msgid "%s: Wrong number of input argument: %d expected.\n" +msgstr "%s: помилкова кількіÑÑ‚ÑŒ вхідних параметрів: мало бути %d.\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A polynomial expected.\n" +msgstr "" +"%s: помилкова розмірніÑÑ‚ÑŒ вхідного параметра â„–%d: Ñлід викориÑтовувати " +"поліном.\n" + +#, c-format +msgid "" +"%s: Wrong size for input argument #%d: A rational fraction expected.\n" +msgstr "" +"%s: помилкова розмірніÑÑ‚ÑŒ тип вхідного параметра â„–%d: Ñлід викориÑтовувати " +"раціональний дріб.\n" + +#, c-format +msgid "" +"%s: Wrong size for input argument #%d: A single input, single output system " +"expected.\n" +msgstr "" +"%s: помилкова розмірніÑÑ‚ÑŒ вхідного параметра â„–%d: Ñлід викориÑтовувати " +"ÑиÑтему з одним входом Ñ– одним виходом.\n" + +#, c-format +msgid "" +"%s: Wrong type for input argument #%d: Linear dynamical system or polynomial " +"array expected.\n" +msgstr "" +"%s: помилковий тип вхідного параметра â„–%d: Ñлід викориÑтовувати лінійну " +"динамічну ÑиÑтему або маÑив поліномів.\n" + +#, c-format +msgid "" +"%s: Wrong type for argument #%d: Integer array or Polynomial expected.\n" +msgstr "" +"%s: помилковий тип параметра â„–%d: мало бути викориÑтано маÑив або поліном.\n" + +#, c-format +msgid "%s: Wrong type for input argument: Polynomial array expected.\n" +msgstr "" +"%s: помилковий тип вхідного параметра: Ñлід викориÑтовувати маÑив " +"поліномів.\n" + +#, c-format +msgid "%s: Wrong number of input argument(s): %d expected.\n" +msgstr "%s: помилкова кількіÑÑ‚ÑŒ вхідних параметрів: мало бути %d.\n" + +#, c-format +msgid "%s: Unexpected type for input argument #%d.\n" +msgstr "%s: неочікуваний тип вхідного параметра â„–%d.\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A row vector expected.\n" +msgstr "" +"%s: помилковий розмір вхідного параметра â„–%d: Ñлід викориÑтовувати вектор-" +"Ñ€Ñдок.\n" + +#, c-format +msgid "%s: incompatible input arguments %d and %d\n" +msgstr "%s: вхідні параметри %d Ñ– %d неÑуміÑні\n" + +#, c-format +msgid "%s: Wrong value for input argument #%d: Must be in the set {%s}.\n" +msgstr "" +"%s: помилкове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²Ñ…Ñ–Ð´Ð½Ð¾Ð³Ð¾ параметра â„–%d: Ñлід викориÑтовувати Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ " +"з набору {%s}.\n" + +#, c-format +msgid "" +"%s: Wrong type for argument #%d: Real Matrix of Polynomials expected.\n" +msgstr "" +"%s: помилковий тип параметра â„–%d: мало бути викориÑтано тип матриці з " +"поліномів з дійÑними коефіцієнтами.\n" + +#, c-format +msgid "%s: Wrong type for argument #%d: String expected.\n" +msgstr "%s: помилковий тип параметра â„–%d: мало бути викориÑтано Ñ€Ñдок.\n" + +#, c-format +msgid "%s: Wrong value for argument #%d: %s or %s expected.\n" +msgstr "" +"%s: помилкове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° â„–%d: мало бути викориÑтано %s або %s.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: Polynomial expected.\n" +msgstr "" +"%s: помилковий тип вхідного параметра â„–%d: Ñлід викориÑтовувати поліном.\n" + +#, c-format +msgid "%s: Input argument #%d must be real.\n" +msgstr "%s: вхідний параметр â„–%d має бути дійÑним чиÑлом.\n" diff --git a/modules/polynomials/locales/zh_CN.po b/modules/polynomials/locales/zh_CN.po new file mode 100755 index 000000000..d845e306b --- /dev/null +++ b/modules/polynomials/locales/zh_CN.po @@ -0,0 +1,109 @@ +# Simplified Chinese translation for scilab +# Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 +# This file is distributed under the same license as the scilab package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: scilab\n" +"Report-Msgid-Bugs-To: <localization@lists.scilab.org>\n" +"POT-Creation-Date: 2013-04-16 17:44+0100\n" +"PO-Revision-Date: 2012-03-04 07:45+0000\n" +"Last-Translator: Wesh <Unknown>\n" +"Language-Team: Simplified Chinese <zh_CN@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Launchpad (build 17413)\n" +"Language: \n" + +msgid "Polynomials" +msgstr "多项å¼" + +msgid "Introduction" +msgstr "入门" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A square matrix expected.\n" +msgstr "%s:输入å‚æ•°#%d的大å°é”™è¯¯ï¼šåº”该为一个方阵。\n" + +#, c-format +msgid "" +"%s: Wrong type for input argument #%d: A floating point number or polynomial " +"or rational fraction array expected.\n" +msgstr "%s:输入å‚æ•°#%d的类型错误:应该为一个浮点数ã€å¤šé¡¹å¼æˆ–者有ç†åˆ†æ•°æ•°ç»„。\n" + +#, c-format +msgid "%s: Wrong number of input argument: %d expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A polynomial expected.\n" +msgstr "%s:输入å‚æ•°#%d的大å°é”™è¯¯ï¼šåº”该为一个多项å¼ã€‚\n" + +#, c-format +msgid "" +"%s: Wrong size for input argument #%d: A rational fraction expected.\n" +msgstr "%s:输入å‚æ•°#%d的大å°é”™è¯¯ï¼šåº”该为一个有ç†åˆ†æ•°ã€‚\n" + +#, c-format +msgid "" +"%s: Wrong size for input argument #%d: A single input, single output system " +"expected.\n" +msgstr "%s:输入å‚æ•°#%d的大å°é”™è¯¯ï¼šåº”该为一个å•è¾“å…¥ã€å•è¾“出系统。\n" + +#, c-format +msgid "" +"%s: Wrong type for input argument #%d: Linear dynamical system or polynomial " +"array expected.\n" +msgstr "%s:输入å‚æ•°#%d的类型错误:应该为线性动æ€ç³»ç»Ÿæˆ–多项å¼æ•°ç»„。\n" + +#, c-format +msgid "" +"%s: Wrong type for argument #%d: Integer array or Polynomial expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument: Polynomial array expected.\n" +msgstr "%s:输入å‚数的类型错误:应该为多项å¼æ•°ç»„。\n" + +#, c-format +msgid "%s: Wrong number of input argument(s): %d expected.\n" +msgstr "%s:输入å‚数的数目错误:应该为%d。\n" + +#, c-format +msgid "%s: Unexpected type for input argument #%d.\n" +msgstr "%s:输入å‚æ•°#%d的类型错误。\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A row vector expected.\n" +msgstr "%s:输入å‚æ•°#%d的大å°é”™è¯¯ï¼šåº”该为一个行å‘é‡ã€‚\n" + +#, c-format +msgid "%s: incompatible input arguments %d and %d\n" +msgstr "%s:输入å‚æ•°%då’Œ%dä¸å…¼å®¹\n" + +#, c-format +msgid "%s: Wrong value for input argument #%d: Must be in the set {%s}.\n" +msgstr "%s:输入å‚æ•°#%d的值错误:必须在集åˆ{%s}ä¸ã€‚\n" + +#, c-format +msgid "" +"%s: Wrong type for argument #%d: Real Matrix of Polynomials expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for argument #%d: String expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong value for argument #%d: %s or %s expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: Polynomial expected.\n" +msgstr "%s:第%d个输入å‚数的类型错误:应该为多项å¼ã€‚\n" + +#, c-format +msgid "%s: Input argument #%d must be real.\n" +msgstr "%s:输入å‚æ•°#%d必须为实数。\n" diff --git a/modules/polynomials/locales/zh_TW.po b/modules/polynomials/locales/zh_TW.po new file mode 100755 index 000000000..e2bcb73e7 --- /dev/null +++ b/modules/polynomials/locales/zh_TW.po @@ -0,0 +1,109 @@ +# Traditional Chinese translation for scilab +# Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008 +# This file is distributed under the same license as the scilab package. +# FIRST AUTHOR <EMAIL@ADDRESS>, 2008. +# +msgid "" +msgstr "" +"Project-Id-Version: scilab\n" +"Report-Msgid-Bugs-To: <localization@lists.scilab.org>\n" +"POT-Creation-Date: 2013-04-16 17:44+0100\n" +"PO-Revision-Date: 2011-12-13 07:26+0000\n" +"Last-Translator: TzuYuan Lin <Unknown>\n" +"Language-Team: Traditional Chinese <zh_TW@li.org>\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Launchpad (build 17413)\n" +"Language: \n" + +msgid "Polynomials" +msgstr "å¤šé …å¼" + +msgid "Introduction" +msgstr "簡介" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A square matrix expected.\n" +msgstr "%s: 第 %d 個輸入åƒæ•¸é•·åº¦éŒ¯èª¤: 應為一方陣.\n" + +#, c-format +msgid "" +"%s: Wrong type for input argument #%d: A floating point number or polynomial " +"or rational fraction array expected.\n" +msgstr "%s: 第 %d 輸入åƒæ•¸åž‹æ…‹éŒ¯èª¤: 應為一實數, å¤šé …å¼æˆ–有ç†åˆ†å¼é™£åˆ—.\n" + +#, c-format +msgid "%s: Wrong number of input argument: %d expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A polynomial expected.\n" +msgstr "%s: 第 %d 輸入åƒæ•¸é•·åº¦éŒ¯èª¤: æ‡‰ç‚ºä¸€å¤šé …å¼.\n" + +#, c-format +msgid "" +"%s: Wrong size for input argument #%d: A rational fraction expected.\n" +msgstr "%s: 第 %d 輸入åƒæ•¸é•·åº¦éŒ¯èª¤: 應為一有ç†åˆ†å¼é™£åˆ—.\n" + +#, c-format +msgid "" +"%s: Wrong size for input argument #%d: A single input, single output system " +"expected.\n" +msgstr "%s: 第 %d 輸入åƒæ•¸é•·åº¦éŒ¯èª¤: 應為一 SISO 系統.\n" + +#, c-format +msgid "" +"%s: Wrong type for input argument #%d: Linear dynamical system or polynomial " +"array expected.\n" +msgstr "%s: 第 %d 輸入åƒæ•¸åž‹æ…‹éŒ¯èª¤: 應為一 ç·šæ€§å‹•æ…‹ç³»çµ±æˆ–å¤šé …å¼é™£åˆ—.\n" + +#, c-format +msgid "" +"%s: Wrong type for argument #%d: Integer array or Polynomial expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument: Polynomial array expected.\n" +msgstr "%s: 輸入åƒæ•¸åž‹æ…‹éŒ¯èª¤: æ‡‰ç‚ºä¸€å¤šé …å¼é™£åˆ—.\n" + +#, c-format +msgid "%s: Wrong number of input argument(s): %d expected.\n" +msgstr "%s: 輸入åƒæ•¸æ•¸ç›®éŒ¯èª¤:應為 %d.\n" + +#, c-format +msgid "%s: Unexpected type for input argument #%d.\n" +msgstr "%s: 第 %d 輸入åƒæ•¸ä¹‹åž‹æ…‹éŒ¯èª¤.\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A row vector expected.\n" +msgstr "%s: 第 %d 輸入åƒæ•¸é•·åº¦éŒ¯èª¤: 應為一行å‘é‡.\n" + +#, c-format +msgid "%s: incompatible input arguments %d and %d\n" +msgstr "%s: 第 %d åŠ ç¬¬ %d 輸入åƒæ•¸ä¸ç›¸å®¹.\n" + +#, c-format +msgid "%s: Wrong value for input argument #%d: Must be in the set {%s}.\n" +msgstr "%s: 第 %d 個輸入åƒæ•¸æ•¸å€¼éŒ¯èª¤: æ‡‰åœ¨é›†åˆ {%s} 之內.\n" + +#, c-format +msgid "" +"%s: Wrong type for argument #%d: Real Matrix of Polynomials expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for argument #%d: String expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong value for argument #%d: %s or %s expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: Polynomial expected.\n" +msgstr "%s: 第 #%d 的輸入åƒæ•¸çš„資料型態錯誤: æ‡‰è©²æ˜¯ä¸€å€‹å¤šé …å¼.\n" + +#, c-format +msgid "%s: Input argument #%d must be real.\n" +msgstr "%s: 第 %d 輸入åƒæ•¸æ‡‰ç‚ºå¯¦æ•¸.\n" diff --git a/modules/polynomials/macros/buildmacros.bat b/modules/polynomials/macros/buildmacros.bat new file mode 100755 index 000000000..64bdd6d01 --- /dev/null +++ b/modules/polynomials/macros/buildmacros.bat @@ -0,0 +1,11 @@ +rem Scilab ( http://mwww.scilab.org/ ) - This file is part of Scilab +rem Copyright (C) ????-2008 - INRIA - Allan CORNET +rem +rem This file must be used under the terms of the CeCILL. +rem This source file is licensed as described in the file COPYING, which +rem you should have received as part of this distribution. The terms +rem are also available at +rem http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + + +@..\..\..\bin\scilex -nwni -ns -e exec('buildmacros.sce');quit;
\ No newline at end of file diff --git a/modules/polynomials/macros/buildmacros.sce b/modules/polynomials/macros/buildmacros.sce new file mode 100755 index 000000000..3b3d3c72e --- /dev/null +++ b/modules/polynomials/macros/buildmacros.sce @@ -0,0 +1,17 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2005-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 + + +//------------------------------------ +if (isdef("genlib") == %f) then + exec(SCI+"/modules/functions/scripts/buildmacros/loadgenlib.sce"); +end +//------------------------------------ +genlib("polynomialslib","SCI/modules/polynomials/macros",%f,%t); +//------------------------------------ diff --git a/modules/polynomials/macros/chepol.bin b/modules/polynomials/macros/chepol.bin Binary files differnew file mode 100755 index 000000000..7c573d9f2 --- /dev/null +++ b/modules/polynomials/macros/chepol.bin diff --git a/modules/polynomials/macros/chepol.sci b/modules/polynomials/macros/chepol.sci new file mode 100755 index 000000000..522170482 --- /dev/null +++ b/modules/polynomials/macros/chepol.sci @@ -0,0 +1,30 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) INRIA - F.D +// +// 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 + +function Tn=chepol(n,var) + //Chebychev polynomial + // n :Polynomial order + // var :Polynomial variable (character string) + // Tn :Polynomial in var + // + //! + if n==0 then + Tn=poly(1,var,"coeff"), + elseif n==1 then + Tn=poly(0,var); + else + T0=poly(1,var,"coeff"); + T1=poly(0,var) + for k=2:n + Tn=2*poly(0,var)*T1-T0 + [T1,T0]=(Tn,T1); + end + end + +endfunction diff --git a/modules/polynomials/macros/cleanmacros.bat b/modules/polynomials/macros/cleanmacros.bat new file mode 100755 index 000000000..6294097b5 --- /dev/null +++ b/modules/polynomials/macros/cleanmacros.bat @@ -0,0 +1,13 @@ +rem Scilab ( http://mwww.scilab.org/ ) - This file is part of Scilab +rem Copyright (C) ????-2008 - INRIA - Allan CORNET +rem +rem This file must be used under the terms of the CeCILL. +rem This source file is licensed as described in the file COPYING, which +rem you should have received as part of this distribution. The terms +rem are also available at +rem http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + + +@del *.bin 2>NUL +@del lib 2>NUL +@del names 2>NUL
\ No newline at end of file diff --git a/modules/polynomials/macros/cmndred.bin b/modules/polynomials/macros/cmndred.bin Binary files differnew file mode 100755 index 000000000..84f8da2f8 --- /dev/null +++ b/modules/polynomials/macros/cmndred.bin diff --git a/modules/polynomials/macros/cmndred.sci b/modules/polynomials/macros/cmndred.sci new file mode 100755 index 000000000..ba80d9f82 --- /dev/null +++ b/modules/polynomials/macros/cmndred.sci @@ -0,0 +1,25 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) ????-2008 - INRIA +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + + +function [n,d]=cmndred(num,den) + //Syntax: [num,den]=cmndred(num,den) + // + //Given the transfert matrix defined by num./den, cmndred computes + //polynomial matrix n and a common denominator d such that + //n/d=num./den + //! + [m1,n1]=size(num) + d=1;for dk=matrix(den,1,m1*n1),d=lcm([d,dk]),end + for l=1:m1 + for k=1:n1 + n(l,k)=num(l,k)*pdiv(d,den(l,k)); + end; + end; +endfunction diff --git a/modules/polynomials/macros/coffg.bin b/modules/polynomials/macros/coffg.bin Binary files differnew file mode 100755 index 000000000..c33255677 --- /dev/null +++ b/modules/polynomials/macros/coffg.bin diff --git a/modules/polynomials/macros/coffg.sci b/modules/polynomials/macros/coffg.sci new file mode 100755 index 000000000..edba924a7 --- /dev/null +++ b/modules/polynomials/macros/coffg.sci @@ -0,0 +1,49 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) ????-2008 - INRIA - Francois DELBECQUE +// +// 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 + + +function [Ns,d]=coffg(Fs) + // [Ns,d]=coffg(Fs) computes Fs^-1 where Fs is a polynomial + // or rational matrix by co-factors method. + // d = common denominator; Ns = numerator (matrix polynomial) + // Fs inverse = Ns/d. + // (Be patient...results are generally reliable) + // See also det, detr, invr, penlaur, glever, leverrier + //! + // + if or(typeof(Fs)==["polynomial" "constant"]) then + [n,np]=size(Fs); + if n<>np then + error(msprintf(gettext("%s: Wrong size for input argument #%d: A square matrix expected.\n"),"coffg",1)) + end + d=det(Fs) // common denominator + n1=n; + for kk=1:n1,for l=1:n1, + signe=(-1)^(kk+l); + col=[1:kk-1,kk+1:n1];row=[1:l-1,l+1:n1]; + Ns(kk,l)=-signe*det(Fs(row,col)) + end;end + Ns=-Ns; + elseif typeof(Fs)=="rational" then + [n,np]=size(Fs); + if n<>np then + error(msprintf(gettext("%s: Wrong size for input argument #%d: A square matrix expected.\n"),"coffg",1)) + end + d=det(Fs) // common denominator + n1=n; + for kk=1:n1,for l=1:n1, + signe=(-1)^(kk+l); + col=[1:kk-1,kk+1:n1];row=[1:l-1,l+1:n1]; + Ns(kk,l)=-signe*det(Fs(row,col)) + end;end + Ns=-Ns; + else + error(msprintf(gettext("%s: Wrong type for input argument #%d: A floating point number or polynomial or rational fraction array expected.\n"),"detr",1)) + end +endfunction diff --git a/modules/polynomials/macros/colcompr.bin b/modules/polynomials/macros/colcompr.bin Binary files differnew file mode 100755 index 000000000..4af35776e --- /dev/null +++ b/modules/polynomials/macros/colcompr.bin diff --git a/modules/polynomials/macros/colcompr.sci b/modules/polynomials/macros/colcompr.sci new file mode 100755 index 000000000..4a67d7adf --- /dev/null +++ b/modules/polynomials/macros/colcompr.sci @@ -0,0 +1,22 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) ????-2008 - INRIA +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + + +function [Y,rk,Ac]=colcompr(A); + //[Y,rk,Ac]=colcompr(A); + //column compression of polynomial matrix A + //(left compression) + //Y = right unimodular base + //rk = normal rank of A + //Ac = A*Y + //see rowcompr + //! + [m,n]=size(A); + [Ac,Y,rk]=htrianr(A); +endfunction diff --git a/modules/polynomials/macros/denom.bin b/modules/polynomials/macros/denom.bin Binary files differnew file mode 100755 index 000000000..277b04611 --- /dev/null +++ b/modules/polynomials/macros/denom.bin diff --git a/modules/polynomials/macros/denom.sci b/modules/polynomials/macros/denom.sci new file mode 100755 index 000000000..856b5be14 --- /dev/null +++ b/modules/polynomials/macros/denom.sci @@ -0,0 +1,29 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) ????-2008 - INRIA +// ... +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + + +function den=denom(r) + //returns the denominator of a rational matrix + //%Syntax: den=denom(r) + //with + //r: rational function matrix (may be polynomial or scalar matrix) + //den: polynomial matrix + //! + select typeof(r) + case "constant" then + den=ones(r); + case "polynomial" then + den=ones(r); + case "rational" then + den=r.den + else + error(msprintf(gettext("%s: Wrong type for input argument #%d: A floating point number or polynomial or rational fraction array expected.\n"),"denom",1)) + end +endfunction diff --git a/modules/polynomials/macros/derivat.bin b/modules/polynomials/macros/derivat.bin Binary files differnew file mode 100755 index 000000000..caa4e5f8c --- /dev/null +++ b/modules/polynomials/macros/derivat.bin diff --git a/modules/polynomials/macros/derivat.sci b/modules/polynomials/macros/derivat.sci new file mode 100755 index 000000000..56ca58a66 --- /dev/null +++ b/modules/polynomials/macros/derivat.sci @@ -0,0 +1,63 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) ????-2008 - INRIA +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function [p] = derivat(p) + //pd=derivat(p) computes the derivative of the polynomial or rational + //function marix relative to the dummy variable + // + + select typeof(p) + + case "constant" then + p = 0*p; // includes case p == [] + + case "polynomial" then + var = varn(p); // dummy variable + [m,n]=size(p); + deg = degree(p); + degmax = max(deg); + + if (degmax < n*m) + x = poly(0, var); + pd = zeros(p) * x; + for i = 1:degmax + pd = pd + coeff(p,i) * i * x^(i-1); + end + p = pd; + else + for i=1:m + for j=1:n + pij=p(i,j); + nij=deg(i,j); + if (nij==0) then + p(i,j)=0; + else + pij=coeff(pij).*(0:nij); + p(i,j)=poly(pij(2:nij+1),var,"c"); + end + end + end + end + + case "rational" then + num = p.num; + den = p.den; + + num = derivat(num) .* den - num .* derivat(den); + den = den.^2; + + p.num = num; + p.den = den; + + else + error(msprintf(gettext("%s: Wrong type for input argument #%d: A floating point number or polynomial or rational fraction array expected.\n"),"derivat",1)) + + end + +endfunction diff --git a/modules/polynomials/macros/determ.bin b/modules/polynomials/macros/determ.bin Binary files differnew file mode 100755 index 000000000..e2e663d4b --- /dev/null +++ b/modules/polynomials/macros/determ.bin diff --git a/modules/polynomials/macros/determ.sci b/modules/polynomials/macros/determ.sci new file mode 100755 index 000000000..efa7a90ca --- /dev/null +++ b/modules/polynomials/macros/determ.sci @@ -0,0 +1,106 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) ????-2008 - INRIA - Francois DELBECQUE +// +// 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 + + +function res=determ(W,k) + + // determinant of a polynomial or rational matrix by FFT + // W=square polynomial matrix + // k=``predicted'' degree of the determinant of W i.e. k is + // an integer larger or equal to the actual degree of W. + // Method: evaluate the determinant of W for the Fourier frequencies + // and apply inverse fft to the coefficients of the determinant. + // See also detr + + if and(typeof(W)<>["rational","polynomial","constant"]) then + error(msprintf(gettext("%s: Wrong type for input argument #%d: A floating point number or polynomial or rational fraction array expected.\n"),"determ",1)) + end + if size(W,1)<>size(W,2) then + error(msprintf(gettext("%s: Wrong size for input argument #%d: A square matrix expected.\n"),"determ",1)) + end + + if W==[] then + res=1; + return; + end; + + + n1=size(W,1) + + // small cases + + if n1==1 then + res=W; + return; + elseif n1==2 then + res = W(1,1)*W(2,2) - W(1,2)*W(2,1); + return; + end + + //upper bound of the determinant degree + + maj = n1*max(degree(W))+1; + + if argn(2)==1 then + k=1; + while k < maj, + k=2*k; + end + end + + // Default Values + e=0*ones(k,1); + e(2)=1; + + // Paramètres de clean + epsa=1.d-10; + epsr=0;//no relative rounding + + if k==1 then + ksi=1; + else + ksi=fft(e,-1); + end + + fi=[]; + + if ~isreal(W,0) then + // Cas Complexe + for kk=1:k, + fi=[fi,det(horner(W,ksi(kk)))]; + end + Temp0 = poly(fft(fi,1),varn(W),"c"); + Temp1 = clean(real(Temp0),epsa,epsr)+%i*clean(imag(Temp0),epsa,epsr); + + else + // Cas Réel + for kk=1:k,fi=[fi,det(freq(W,ones(W),ksi(kk)))];end + Temp1 = clean(real(poly(fft(fi,1),varn(W),"c")),epsa,epsr); + end + + if argn(2)==1 then + + // Cas où k est défini dans les paramètres d'entrée. + // On va maintenant annuler tous les coefficients + // dont le degré est supérieur à maj + + Temp2 = coeff(Temp1); + for i=1:maj, + Temp2(i) = 0; + end + res = Temp1 - poly(Temp2,varn(W),"coeff"); + return; + + else + // Cas où k n'est pas défini dans les paramètres d'entrée + res = Temp1; + return; + end + +endfunction diff --git a/modules/polynomials/macros/detr.bin b/modules/polynomials/macros/detr.bin Binary files differnew file mode 100755 index 000000000..94005dbc0 --- /dev/null +++ b/modules/polynomials/macros/detr.bin diff --git a/modules/polynomials/macros/detr.sci b/modules/polynomials/macros/detr.sci new file mode 100755 index 000000000..da7058c11 --- /dev/null +++ b/modules/polynomials/macros/detr.sci @@ -0,0 +1,37 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) ????-2008 - INRIA +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + + +function [d]=detr(h) + //[d]=detr(h) computes the determinant of a polynomial or + //rational function matrix h using Leverrier's method + //! + rhs = argn(2); + if rhs <> 1 then + error(msprintf(gettext("%s: Wrong number of input argument: %d expected.\n"), "detr", 1)); + end + + tof=typeof(h) + if or(tof==["polynomial","constant", "rational"]) then + [m,n]=size(h); + if m<>n then + error(msprintf(gettext("%s: Wrong size for input argument #%d: A square matrix expected.\n"),"detr",1)) + end + f=eye(n,n); + for k=1:n-1, + b=h*f, + d=-sum(diag(b))/k + f=b+eye(n,n)*d, + end + d=-sum(diag(h*f))/n; + if 2*int(n/2)<>n then d=-d;end + else + error(msprintf(gettext("%s: Wrong type for input argument #%d: A floating point number or polynomial or rational fraction array expected.\n"),"detr",1)) + end +endfunction diff --git a/modules/polynomials/macros/diophant.bin b/modules/polynomials/macros/diophant.bin Binary files differnew file mode 100755 index 000000000..a4c1fbd96 --- /dev/null +++ b/modules/polynomials/macros/diophant.bin diff --git a/modules/polynomials/macros/diophant.sci b/modules/polynomials/macros/diophant.sci new file mode 100755 index 000000000..d052415bc --- /dev/null +++ b/modules/polynomials/macros/diophant.sci @@ -0,0 +1,30 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) ????-2008 - INRIA +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + + +function [x,err]=diophant(p1p2,b) + //solves diophantine equation p1*x1+p2*x2=b + //with p1p2 a polynomial vector [p1 p2] + //b polynomial + //x polynomial vector [x1;x2] + //if the equation is uncompatible err=||p1*x1+p2*x2-b||/||b|| + //else err=0 + //! + p1=p1p2(1);p2=p1p2(2) + [x,u]=bezout(p1,p2) + p1=u(2,2);p2=u(1,2)// + if degree(x)==0 then + x=b*u(:,1) + err=0 + else + [r,q]=pdiv(b,x) + err=norm(coeff(b-x*q),2)/norm(coeff(b),2) + x=q*u(:,1) + end +endfunction diff --git a/modules/polynomials/macros/factors.bin b/modules/polynomials/macros/factors.bin Binary files differnew file mode 100755 index 000000000..8974f7871 --- /dev/null +++ b/modules/polynomials/macros/factors.bin diff --git a/modules/polynomials/macros/factors.sci b/modules/polynomials/macros/factors.sci new file mode 100755 index 000000000..76447ba45 --- /dev/null +++ b/modules/polynomials/macros/factors.sci @@ -0,0 +1,55 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) ????-2008 - INRIA +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + + +function [lnum,lden,g]=factors(P,flag) + //Given a polynomial or rational P, returns in list lnum polynomials of + //degree 1 or two which are the factors of numerators of P. + // and in lden the factors of denominator of P. g is the gain. + // if flag=='c' unstable roots are reflected vs the imaginary axis + // if flag=='d' unstable roots are reflected vs unit circle + [LHS,RHS]=argn(0); + if RHS==1 then flag=[];end + select typeof(P) + case "polynomial" then + if size(P,"*")<>1 then + error(msprintf(gettext("%s: Wrong size for input argument #%d: A polynomial expected.\n"),"factors",1)) + end + [lnum,lden]=pfactors(P,flag); + case "rational" then + if size(P,"*")<>1 then + error(msprintf(gettext("%s: Wrong size for input argument #%d: A rational fraction expected.\n"),"factors",1)) + end + [lnum,gn]=pfactors(P.num,flag); + [lden,gd]=pfactors(P.den,flag); + g=gn/gd; + if LHS==1 then + num=g; + for k=lnum;num=num.*k;end + den=1; + for k=lden;den=den.*k;end + lnum=syslin(P.dt,num,den);return + end + case "state-space" then + if size(P,"*")<>1 then + error(msprintf(gettext("%s: Wrong size for input argument #%d: A single input, single output system expected.\n"),"factors",1)) + end + + P=ss2tf(P) + [lnum,gn]=pfactors(P.num,flag); + [lden,gd]=pfactors(P.den,flag);g=gn/gd; + if LHS==1 then + num=g;for k=lnum;num=num.*k;end + den=1;for k=lden;den=den.*k;end + lnum=syslin(P.dt,num,den);return + end + else + error(msprintf(gettext("%s: Wrong type for input argument #%d: Linear dynamical system or polynomial array expected.\n" ),"factors",1)) + end +endfunction diff --git a/modules/polynomials/macros/gcd.bin b/modules/polynomials/macros/gcd.bin Binary files differnew file mode 100755 index 000000000..66145fe9b --- /dev/null +++ b/modules/polynomials/macros/gcd.bin diff --git a/modules/polynomials/macros/gcd.sci b/modules/polynomials/macros/gcd.sci new file mode 100755 index 000000000..ee9f47a80 --- /dev/null +++ b/modules/polynomials/macros/gcd.sci @@ -0,0 +1,58 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) ????-2008 - INRIA +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + + +function [x, uu] = gcd(p) + //Given a polynomial vector p, [pgcd,u]=gcd(p) computes the gcd + //of components and a unimodular matrix (with polynomial inverse) u, + //with minimal degree such that [p1 p2]*u=[0 ... 0 pgcd] + //! + + if type(p)<>1 & type(p)<>2 & type(p)<>8 then + error(msprintf(_("%s: Wrong type for argument #%d: Integer array or Polynomial expected.\n"), "gcd", 1)); + end + + if type(p)==1 then + if floor(p)<>p then + error(msprintf(_("%s: Wrong type for argument #%d: Integer array or Polynomial expected.\n"), "gcd", 1)); + else + p = iconvert(p,4); + end + end + + [lhs,rhs]=argn(0) + if type(p)==8 then + if lhs==2 then [x,uu]=%i_gcd(p), else x=%i_gcd(p), end + return + end + + [m, n] = size(p) + mn = m*n + p = matrix(p, 1, mn) + x = p(1); + uu = 1 + for l = 2:mn, + [x, u] = bezout(x, p(l)), + if lhs==2 then + uu = [uu(:, 1:l-2) uu(:, l-1)*u(1, [2 1])]; uu(l, l-1:l) = u(2, [2 1]); + end + end, + if lhs==1 then return end + for l = mn:-1:2 + pivot = uu(l, l-1); + for k = l:mn + [r, q] = pdiv(uu(l, k), pivot) + if coeff(q)<>0 then + uu(1:l-1, k) = uu(1:l-1, k)-q*uu(1:l-1, l-1) + uu(l, k) = r; + end + end + end + +endfunction diff --git a/modules/polynomials/macros/hermit.bin b/modules/polynomials/macros/hermit.bin Binary files differnew file mode 100755 index 000000000..23a29226c --- /dev/null +++ b/modules/polynomials/macros/hermit.bin diff --git a/modules/polynomials/macros/hermit.sci b/modules/polynomials/macros/hermit.sci new file mode 100755 index 000000000..150f23abe --- /dev/null +++ b/modules/polynomials/macros/hermit.sci @@ -0,0 +1,39 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) ????-2008 - INRIA +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + + +function [a,u]=hermit(a) + //[A,U]=hermit(A) + //Hermite form: U is an unimodular matrix such that A*U is + //triangular. The output value of A is A*U. + //Warning: Experimental version + //! + if type(a)>2 then + error(msprintf(gettext("%s: Wrong type for input argument: Polynomial array expected.\n"),"hermit")) + end + [m,n]=size(a); + if m<>n then + error(msprintf(gettext("%s: Wrong size for input argument #%d: A square matrix expected.\n" ),"hermit",1)) + end + [a,u]=htrianr(a) + for l=n-1:-1:1 + dl(l:n)=degree(a(l,l:n)); + for k=l+1:n + if dl(k)>=dl(l) then + all=a(l,l); + if norm(coeff(all),1) > 1.d-10 then + [r,q]=pdiv(a(l,k),a(l,l)) + if l>1 then a(1:l-1,k)=a(1:l-1,k)-a(1:l-1,l)*q;end + a(l,k)=r + u(:,k)=u(:,k)-u(:,l)*q + end + end + end + end +endfunction diff --git a/modules/polynomials/macros/horner.bin b/modules/polynomials/macros/horner.bin Binary files differnew file mode 100755 index 000000000..a1c927b64 --- /dev/null +++ b/modules/polynomials/macros/horner.bin diff --git a/modules/polynomials/macros/horner.sci b/modules/polynomials/macros/horner.sci new file mode 100755 index 000000000..506ada334 --- /dev/null +++ b/modules/polynomials/macros/horner.sci @@ -0,0 +1,120 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) ????-2008 - INRIA +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + + +function [r] = horner(p,x) + // horner(P,x) evaluates the polynomial or rational matrix P = P(s) + // when the variable s of the polynomial is replaced by x + // x can be a scalar or polynomial or rational matrix. + // Example: bilinear transform; Assume P = P(s) is a rational matrix + // then the rational matrix P((1+s)/(1-s)) is obtained by + // horner(P,(1+s)/(1-s)); + // To evaluate a rational matrix at given frequencies use + // preferably the freq primitive ; + // See also: freq, repfreq. + // Improvements: + // Special cases aded to improve efficiency: + // - p = row vector, x = column vector + // - p = column vector, x = row vector + // - x = scalar + //! + // + if (argn(2) <> 2) then + error(msprintf(gettext("%s: Wrong number of input argument(s): %d expected.\n"),"horner",2)) + end + + if (size(x, "*") == 0 | size(p, "*") == 0) then + r = [] + return + end + + tp = type(p) + + if (tp <= 2) then + // tp <= 2 <=> matrix of reals, complexes or polynomials + [m,n] = size(p) + + if (m == -1) then + indef=%t, m=1, n=1, p=p+0 + else + indef=%f + end + + [mx,nx] = size(x) + + if (m*n == 1) then + // special case: p = 1x1 polynomial, x = matrix + cp = coeff(p) + r = cp($) * ones(x) + for (k = degree(p) : -1 : 1) + r = r .* x + cp(k) + end + + elseif (n*mx == 1) + // p = one column, x = one row + nd = max(degree(p)); + r = zeros(p) * x; + for (k = nd : -1: 0) + c = coeff(p, k); + r = r .* (ones(p) * x) + c * ones(x); + end + + elseif (m*nx == 1) + // p = one row, x = one column + nd = max(degree(p)); + r = x * zeros(p); + for (k = nd : -1: 0) + c = coeff(p, k); + r = r .* (x * ones(p))+ ones(x) * c; + end + + elseif (mx*nx == 1) + // p = matrix, x = scalar + nd = max(degree(p)); + r = zeros(p); + for (k = nd : -1: 0) + c = coeff(p, k); + r = r * x + c; + end + + else + // other cases + r = [] + for (l = 1 : m) + rk = [] + for (k = 1 : n) + plk = p(l,k) + d = degree(plk) + rlk = coeff(plk,d) * ones(x); // for the case horner(1,x) + for (kk = 1 : d) + rlk = rlk .* x + coeff(plk,d-kk) + end + rk = [rk, rlk] + end + r = [r; rk] + end + end + + if (indef) then + r = r * eye() + end + + elseif (typeof(p) == "rational") then + r = horner(p(2),x) ./ horner(p(3),x) + + elseif (tp == 129) then + // implicit polynomial for indexing + r = horner(p(:),x) + r = r(1) : r(2) : r(3) + + else + error(msprintf(gettext("%s: Unexpected type for input argument #%d.\n"),"horner",1)) + end + +endfunction diff --git a/modules/polynomials/macros/hrmt.bin b/modules/polynomials/macros/hrmt.bin Binary files differnew file mode 100755 index 000000000..439eab760 --- /dev/null +++ b/modules/polynomials/macros/hrmt.bin diff --git a/modules/polynomials/macros/hrmt.sci b/modules/polynomials/macros/hrmt.sci new file mode 100755 index 000000000..9cff1de0c --- /dev/null +++ b/modules/polynomials/macros/hrmt.sci @@ -0,0 +1,26 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) ????-2008 - INRIA +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + + +function [pg,U]=hrmt(v) + // Syntax: [pg,U]=hrmt(v) + // Finds unimodular U and pg = gcd of a row of polynomials v + // such that v*U = [pg,0] + //! + [n,m]=size(v) + if n>1 then + error(msprintf(gettext("%s: Wrong size for input argument #%d: A row vector expected.\n"),"hrmt",1)) + end + pg=v(1) + U=eye(m,m) + for k=2:m + [pg,uk]=bezout(pg,v(k)) + U(:,k-1:k)=U(:,k-1:k)*uk(:,[2 1]) + end +endfunction diff --git a/modules/polynomials/macros/htrianr.bin b/modules/polynomials/macros/htrianr.bin Binary files differnew file mode 100755 index 000000000..ba6b58256 --- /dev/null +++ b/modules/polynomials/macros/htrianr.bin diff --git a/modules/polynomials/macros/htrianr.sci b/modules/polynomials/macros/htrianr.sci new file mode 100755 index 000000000..422a1d454 --- /dev/null +++ b/modules/polynomials/macros/htrianr.sci @@ -0,0 +1,55 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) ????-2008 - INRIA +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + + +function [A,U,rk]=htrianr(A) + //[A,U,rk]=htrianr(a) + //triangularization of polynomial matrix A. A is [m,n], m<=n. + //U=right unimodular basis + //the output value of A equals A*U + //rk=normal rank of A + //Warning: there is an elimination of neglectable terms + //! + if type(A)>2 then + error(msprintf(gettext("%s: Wrong type for input argument: Polynomial array expected.\n"),"htrianr")) + end + A=clean(A); + [m,n]=size(A);U=eye(n,n); + l1=n+1; + for l=m:-1:max((m-n),1) + l1=l1-1; + if l1<>0 then + Al=A(l,1:l1); + if norm(coeff(Al),1) > 1.d-10 then + [pg,Ul]=hrmt(Al); + Ul=clean(Ul,1.d-10); + A(l,1:l1)=[0*ones(1,l1-1) pg]; + U(:,1:l1)=U(:,1:l1)*Ul; + if l>1 then + A(1:l-1,1:l1)=A(1:l-1,1:l1)*Ul; + end + else + l1=l1+1 + end + end + end + U=clean(U,1.d-10); + k0=0;k1=0;tol=norm(coeff(A),1); + v=[];w=[]; + for k=1:n + if max(abs(coeff(A(:,k)))) <= sqrt(%eps)*tol then + k0=k0+1;v=[v,k]; + else + k1=k1+1,w=[w,k]; + end + end + ww=[v,w]; + A=A(:,ww);U=U(:,ww); + rk=n-k0; +endfunction diff --git a/modules/polynomials/macros/inv_coeff.bin b/modules/polynomials/macros/inv_coeff.bin Binary files differnew file mode 100755 index 000000000..2455a7546 --- /dev/null +++ b/modules/polynomials/macros/inv_coeff.bin diff --git a/modules/polynomials/macros/inv_coeff.sci b/modules/polynomials/macros/inv_coeff.sci new file mode 100755 index 000000000..f79a1db93 --- /dev/null +++ b/modules/polynomials/macros/inv_coeff.sci @@ -0,0 +1,29 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) ????-2008 - INRIA +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + + +function [P]=inv_coeff(c,d,name) + // inverse function of coeff + rhs=argn(2); + if rhs <= 2 ; name = "x";end + + [n,m]=size(c); + if rhs <= 1 ; d = (m/n-1) ; end + if d==m-1 then + P=[]; + for l=1:n, P=[P;poly(c(l,:),name,"coeff")];end + return, + end + if modulo(m,d+1) <> 0 then + error(msprintf(_("%s: incompatible input arguments %d and %d\n"),"inv_coeff",1,2)) + end + p=poly(0,name); + P=p.^(0:d)'; + P=c*(P.*.eye(m/(d+1),m/(d+1))) +endfunction diff --git a/modules/polynomials/macros/invr.bin b/modules/polynomials/macros/invr.bin Binary files differnew file mode 100755 index 000000000..b26737dc1 --- /dev/null +++ b/modules/polynomials/macros/invr.bin diff --git a/modules/polynomials/macros/invr.sci b/modules/polynomials/macros/invr.sci new file mode 100755 index 000000000..7df115487 --- /dev/null +++ b/modules/polynomials/macros/invr.sci @@ -0,0 +1,94 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) ????-2008 - INRIA +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + + +function [f,d]=invr(h,flag) + //if h is a scalar, polynomial or rational fonction matrix, invr + //computes h^(-1). + //! + if argn(2)==1 then + flag="C"; + end + lhs=argn(1) + select typeof(h) + case "constant" then + f=inv(h); + case "polynomial" then //POLYNOMIAL MATRIX + [m,n]=size(h); + if m<>n then error(20),end + ndeg=max(degree(h)); + if ndeg==1 then //MATRIX PENCIL + E=coeff(h,1);A=-coeff(h,0); + if norm(E-eye(E),1) < 100*%eps then + // sI -A + [num,den]=coff(A,varn(h));f=num/den; + else + [Bfs,Bis,chis]=glever(E,A,varn(h)); + f=Bfs/chis - Bis; + if lhs==2 then + d=lcm(f("den")); + f=f*d;f=f("num"); + end + end + else // GENERAL POLYNOMIAL MATRIX + select flag + case "L" + f=eye(n,n); + for k=1:n-1, + b=h*f, + d=-sum(diag(b))/k + f=b+eye(n,n)*d, + end; + d=sum(diag(h*f))/n, + if degree(d)==0 then d=coeff(d),end, + if lhs==1 then f=f/d;end + case "C" + [f,d]=coffg(h); + if degree(d)==0 then d=coeff(d),end + if lhs==1 then f=f/d;end + else + error(msprintf(gettext("%s: Wrong value for input argument #%d: Must be in the set {%s}.\n"),.. + "invr",2,"''C'',''D''")) + end; + end + case "rational" then + [m,n]=size(h(2)); + if m<>n then error(20),end + select flag + case "L" // Leverrier + f=eye(n,n); + for k=1:n-1, + b=h*f, + d=0;for l=1:n,d=d+b(l,l),end,d=-d/k; + f=b+eye(n,n)*d, + end; + b=h*f;d=0;for l=1:n,d=d+b(l,l),end;d=d/n, + if lhs==1 then f=f/d;end + case "A" // lcm of all denominator entries + denh=lcm(h("den")); + Num=h*denh;Num=Num("num"); + [N,d]=coffg(Num); + f=N*denh; + if lhs==1 then f=f/d;end + case "C"// default method by polynomial inverse + [Nh,Dh]=lcmdiag(h); //h=Nh*inv(Dh); Dh diagonal; + [N,d]=coffg(Nh); + f=Dh*N; + if lhs==1 then f=f/d;end + case "Cof"// cofactors method + [f,d]=coffg(h); + if lhs==1 then f=f/d;end + else + error(msprintf(gettext("%s: Wrong value for input argument #%d: Must be in the set {%s}.\n"),.. + "invr",2,"''L'',''A'',''C'',''Cof''")) + end; + else + error(msprintf(gettext("%s: Wrong type for input argument #%d: A floating point number or polynomial or rational fraction array expected.\n"),"invr",1)) + end; +endfunction diff --git a/modules/polynomials/macros/lcm.bin b/modules/polynomials/macros/lcm.bin Binary files differnew file mode 100755 index 000000000..c6d7405f9 --- /dev/null +++ b/modules/polynomials/macros/lcm.bin diff --git a/modules/polynomials/macros/lcm.sci b/modules/polynomials/macros/lcm.sci new file mode 100755 index 000000000..f07900011 --- /dev/null +++ b/modules/polynomials/macros/lcm.sci @@ -0,0 +1,45 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) ????-2008 - INRIA +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + + +function [p, fact] = lcm(p) + //p=lcm(p) computes the lcm of polynomial vector p + //[pp,fact]=lcm(p) computes besides the vector fact of factors + //such that p.*fact=pp*ones(p) + //! + + if type(p)<>1 & type(p)<>2 & type(p)<>8 then + error(msprintf(_("%s: Wrong type for argument #%d: Integer array or Polynomial expected.\n"), "lcm", 1)); + end + + if type(p)==1 then + if floor(p)<>p then + error(msprintf(_("%s: Wrong type for argument #%d: Integer array or Polynomial expected.\n"), "lcm", 1)); + else + p = iconvert(p,4); + end + end + + if type(p)==8 then + if argn(1)==2 then [p, fact] = %i_lcm(p), else p = %i_lcm(p), end + return + end + + [m, n] = size(p), + p = matrix(p, m*n, 1), + p0 = p(1); fact = 1; + for l = 2:m*n, + [u, v] = simp(p0, p(l)), + p0 = p0*v, + fact = [v*fact, u], + end, + fact = matrix(fact, m, n), + p = p0; + +endfunction diff --git a/modules/polynomials/macros/lcmdiag.bin b/modules/polynomials/macros/lcmdiag.bin Binary files differnew file mode 100755 index 000000000..0a9a822d9 --- /dev/null +++ b/modules/polynomials/macros/lcmdiag.bin diff --git a/modules/polynomials/macros/lcmdiag.sci b/modules/polynomials/macros/lcmdiag.sci new file mode 100755 index 000000000..28d82ed5a --- /dev/null +++ b/modules/polynomials/macros/lcmdiag.sci @@ -0,0 +1,49 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) ????-2008 - INRIA +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + + +function [N,D]=lcmdiag(H,flag) + //returns N and diagonal D + //such that: + // flag='row' => H=D^(-1)*N and D(k,k)=lcm of kth row of H('den') + // flag='col' => H=N*D^(-1) and D(k,k)=lcm of kth col of H('den') + // default flag = 'col' + + if (type(H)<>2 & type(H)<>16) then + error(msprintf(_("%s: Wrong type for argument #%d: Real Matrix of Polynomials expected.\n"), "lcmdiag", 1)); + end + + Num = H("num"); + Den = H("den"); + [m, n] = size(H); + D = []; N = []; + [lhs, rhs] = argn(0); + if rhs==1 then + flag = "col"; + elseif type(flag)<>10 then + error(msprintf(_("%s: Wrong type for argument #%d: String expected.\n"), "lcmdiag", 2)); + end + select flag + case "row" + for k = 1:m + [pgcd, fact] = lcm(Den(k, :)); //H(k,:)=(Num(k,:).*fact)/pgcd + D = diag([diag(D); pgcd]); + N = [N; Num(k, :).*fact]; + end + case "col" + for k = 1:n + [pgcd, fact] = lcm(Den(:, k)); + D = diag([diag(D); pgcd]); + N = [N, Num(:, k).*fact]; + end + else + error(msprintf(_("%s: Wrong value for argument #%d: %s or %s expected.\n"), "lcmdiag", 2, "row", "col")); + end + +endfunction diff --git a/modules/polynomials/macros/lib b/modules/polynomials/macros/lib Binary files differnew file mode 100755 index 000000000..5d6472147 --- /dev/null +++ b/modules/polynomials/macros/lib diff --git a/modules/polynomials/macros/names b/modules/polynomials/macros/names new file mode 100755 index 000000000..a6315f673 --- /dev/null +++ b/modules/polynomials/macros/names @@ -0,0 +1,28 @@ +chepol +cmndred +coffg +colcompr +denom +derivat +determ +detr +diophant +factors +gcd +hermit +horner +hrmt +htrianr +inv_coeff +invr +lcm +lcmdiag +numer +pdiv +pfactors +pol2des +pol2str +polfact +rowcompr +sylm +systmat diff --git a/modules/polynomials/macros/numer.bin b/modules/polynomials/macros/numer.bin Binary files differnew file mode 100755 index 000000000..af0ca3fa6 --- /dev/null +++ b/modules/polynomials/macros/numer.bin diff --git a/modules/polynomials/macros/numer.sci b/modules/polynomials/macros/numer.sci new file mode 100755 index 000000000..299c1cbe7 --- /dev/null +++ b/modules/polynomials/macros/numer.sci @@ -0,0 +1,26 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) ????-2008 - INRIA +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + + +function num=numer(r) + //returns the numerator num of a rational function matrix r (r may be + //also a scalar or polynomial matrix + //! + select typeof(r) + case "constant" then + num=r; + case "polynomial" then + num=r; + case "rational" then + num=r.num + else + error(msprintf(gettext("%s: Wrong type for input argument #%d: A floating point number or polynomial or rational fraction array expected.\n"),"numer",1)) + end + +endfunction diff --git a/modules/polynomials/macros/pdiv.bin b/modules/polynomials/macros/pdiv.bin Binary files differnew file mode 100755 index 000000000..fce62aff6 --- /dev/null +++ b/modules/polynomials/macros/pdiv.bin diff --git a/modules/polynomials/macros/pdiv.sci b/modules/polynomials/macros/pdiv.sci new file mode 100755 index 000000000..2c95716ec --- /dev/null +++ b/modules/polynomials/macros/pdiv.sci @@ -0,0 +1,42 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) ????-2008 - INRIA +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + + +function [R,Q]=pdiv(P1,P2) + // Element wise euclidan division of a polynomial matrix + // by a polynomial + // This is just a loop for the primitive pppdiv + //! + [lhs,rhs]=argn(0); + [n,m]=size(P1); + [n1,m1]=size(P2); + // Special case for constant matrices + if type(P1)==1&type(P2)==1 then + Q=P1./P2;R=0*P1; + if lhs==1 then R=Q; end + return; + end + R=[],Q=[] + if n1==1 & m1==1 then + for l=1:n, + for k=1:m, + [rlk,qlk]=pppdiv(P1(l,k),P2),R(l,k)=rlk;Q(l,k)=qlk; + end; + end + if lhs==1 then R=Q;end + + return; + end + for l=1:n, + for k=1:m, + [rlk,qlk]=pppdiv(P1(l,k),P2(l,k)),R(l,k)=rlk;Q(l,k)=qlk; + end; + end + if lhs==1 then R=Q; end +endfunction diff --git a/modules/polynomials/macros/pfactors.bin b/modules/polynomials/macros/pfactors.bin Binary files differnew file mode 100755 index 000000000..0240ec103 --- /dev/null +++ b/modules/polynomials/macros/pfactors.bin diff --git a/modules/polynomials/macros/pfactors.sci b/modules/polynomials/macros/pfactors.sci new file mode 100755 index 000000000..a807bd940 --- /dev/null +++ b/modules/polynomials/macros/pfactors.sci @@ -0,0 +1,84 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) ????-2008 - INRIA +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + + +function [resn,g]=pfactors(pol,flag) + // Given polynomial pol returns in list resn polynomials of + // degree 1 or two which are the factors of pol. + // One has pol= g times product of entries of resn + // if flag=='c' unstable roots are reflected vs the imaginary axis + // if flag=='d' unstable roots are reflected vs unit circle + w=roots(pol); + n=size(w,"*"); + if n==0 then resn=list();g=coeff(pol);return;end + co=coeff(pol);g=co(n+1); + resn=list(); + [LHS,RHS]=argn(0); + if RHS==1 then flag=[];end + if flag==[] then RHS=1;end + if RHS==1 then + kk=1;k=1; + while %T + if abs(imag(w(kk)))<=%eps then + resn(k)=poly(w(kk),varn(pol)); + kk=kk+1;k=k+1; + if kk>n then return;end + end + if abs(imag(w(kk)))>%eps then + resn(k)=real(poly([w(kk),w(kk+1)],varn(pol))); + kk=kk+2;k=k+1; + if kk>n then return;end + end + end + end //RHS=1 + if RHS==2 then + kk=1;k=1; + if flag=="c" then + while %T + if abs(imag(w(kk)))<=%eps then + resn(k)=poly(-abs(w(kk)),varn(pol)); + kk=kk+1;k=k+1; + if kk>n then return;end + end + if abs(imag(w(kk)))>%eps then + if real(w(kk))<0 then + resn(k)=real(poly([w(kk),w(kk+1)],varn(pol))); + else ; + resn(k)=real(poly([-w(kk),-w(kk+1)],varn(pol))); + end + kk=kk+2;k=k+1; + if kk>n then return;end + end + end + end //'c' + if flag=="d" then + while %T + wkk=w(kk); + if abs(imag(wkk))<=%eps then + [themin,which]=min([abs(wkk),1/(abs(wkk))]); + if which==2 then g=-g*real(wkk);end + resn(k)=poly(sign(real(wkk))*themin,varn(pol)); + kk=kk+1;k=k+1; + if kk>n then return;end + end + if abs(imag(wkk))>%eps then + if abs(wkk)<1 then + resn(k)=real(poly([wkk,w(kk+1)],varn(pol))); + else ; + // g=g*wkk*w(kk+1); w(kk+1)= conj(wkk) + g=g*abs(wkk)^2; + zp=[wkk,w(kk+1)];resn(k)=real(poly(ones(zp)./zp,varn(pol))); + end + kk=kk+2;k=k+1; + if kk>n then return;end + end + end + end //'d' + end //RHS=2 +endfunction diff --git a/modules/polynomials/macros/pol2des.bin b/modules/polynomials/macros/pol2des.bin Binary files differnew file mode 100755 index 000000000..7a46e002f --- /dev/null +++ b/modules/polynomials/macros/pol2des.bin diff --git a/modules/polynomials/macros/pol2des.sci b/modules/polynomials/macros/pol2des.sci new file mode 100755 index 000000000..699f1af1e --- /dev/null +++ b/modules/polynomials/macros/pol2des.sci @@ -0,0 +1,21 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) ????-2008 - INRIA +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + + +function [N,B,C]=pol2des(Ds) + // Given the polynomial matrix Ds= D_0 +D_1 s +D_2 s^2 + ... +D_k s^k, + // pol2des returns three matrices N,B,C (with N nilpotent) such that + // Ds = C (sN-Eye)^-1 B + //! + if type(Ds)==1 then Ds=Ds+0*poly(0,"s")*Ds;end + dg=max(degree(Ds))+1; + [nout,nin]=size(Ds); + [Sl]=markp2ss(coeff(Ds),dg,nout,nin); + N=Sl(2);B=-Sl(3);C=Sl(4) +endfunction diff --git a/modules/polynomials/macros/pol2str.bin b/modules/polynomials/macros/pol2str.bin Binary files differnew file mode 100755 index 000000000..eeeaadc4d --- /dev/null +++ b/modules/polynomials/macros/pol2str.bin diff --git a/modules/polynomials/macros/pol2str.sci b/modules/polynomials/macros/pol2str.sci new file mode 100755 index 000000000..05b47fcd4 --- /dev/null +++ b/modules/polynomials/macros/pol2str.sci @@ -0,0 +1,56 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2013 - Samuel GOUGEON +// +// 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 + +function S = pol2str(p) + if type(p) <> 2 & (typeof(p)~="hypermat" | type(p(:))~=2) then + msg = _("%s: Wrong type for input argument #%d: Polynomial expected.\n") + error(msprintf(msg, "pol2str", 1)); + end + sp = size(p) + p = p(:) + d = max(degree(p)) + c = coeff(p) + cr = real(c) + ci = imag(c) + S = stripblanks(string(c)) + k = find(c==0) + S(k) = "" + k = find(cr~=0 & ci~=0) + k2 = find(k>length(p)) + S(k(k2)) = "+("+S(k(k2))+")" + k = find((cr>0 & ci==0) | (cr==0 & ci>0)) + S(k) = "+"+S(k) + vn = varn(p) + clear ci cr k2 + for j = 2:(d+1) + if j==2 then + e = vn + else + e = vn+msprintf("^%d",j-1) + end + km1 = find(c(:,j)==-1) + if km1~=[] + S(km1,j) = "-"+e + end + kp1 = find(c(:,j)==1) + if kp1~=[] + S(kp1,j) = "+"+e + end + ko = find(c(:,j)~=-1 & c(:,j)~=0 & c(:,j)~=1) + if ko~=[] + S(ko,j) = S(ko,j)+"*"+e + end + end + S = strcat(S,"","c") + k = find(part(S,1)=="+") + S(k) = part(S(k),2:$) + k = find(S=="") + S(k) = "0" + S = matrix(S,sp) +endfunction diff --git a/modules/polynomials/macros/polfact.bin b/modules/polynomials/macros/polfact.bin Binary files differnew file mode 100755 index 000000000..82284998b --- /dev/null +++ b/modules/polynomials/macros/polfact.bin diff --git a/modules/polynomials/macros/polfact.sci b/modules/polynomials/macros/polfact.sci new file mode 100755 index 000000000..225c7e852 --- /dev/null +++ b/modules/polynomials/macros/polfact.sci @@ -0,0 +1,46 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) ????-2008 - INRIA +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + + +function [f]=polfact(p) + // Minmal factors of p + // f=polfact(p) + // + // p : polynomial + // f : vector [f0 f1 ... fn] such that p=prod(f) + // - f0 constant + // - fi polynomial + //! + // + if type(p)>2 then + error(msprintf(gettext("%s: Wrong type for input argument: Polynomial array expected.\n"),"polfact")) + end + if size(p,"*")<>1 then + error(msprintf(gettext("%s: Wrong size for input argument #%d: A polynomial expected.\n"),"polfact",1)) + end + + if norm(imag(coeff(p)))<>0 then + error(msprintf(gettext("%s: Input argument #%d must be real.\n"),"polfact",1)) + end + p=real(p) + n=degree(p);f=coeff(p,n); + if n==0 then return,end + var=varn(p); + r=roots(p);[s,k]=gsort(abs(r));r=r(k) + k=1; + while k<=n do, + if imag(r(k))<>0 then + f=[f,real(poly(r(k:k+1),var))] + k=k+2 + else + f=[f,poly(r(k),var)] + k=k+1 + end + end +endfunction diff --git a/modules/polynomials/macros/rowcompr.bin b/modules/polynomials/macros/rowcompr.bin Binary files differnew file mode 100755 index 000000000..986a5e861 --- /dev/null +++ b/modules/polynomials/macros/rowcompr.bin diff --git a/modules/polynomials/macros/rowcompr.sci b/modules/polynomials/macros/rowcompr.sci new file mode 100755 index 000000000..2acdfd125 --- /dev/null +++ b/modules/polynomials/macros/rowcompr.sci @@ -0,0 +1,25 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) ????-2008 - INRIA +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + + +function [X,rk,Ac]=rowcompr(A) + //[X,rk,Ac]=rowcompr(A) + //row compression of polynomial matrix A (toward the bottom) + //X left polynomial unimodular base + //rk=normal rank of A + //Ac = X*A + //Warning: elimination of neglected terms + //! + [n,m]=size(A); + [Ac,U,rk]=htrianr(A'); + Ac=Ac'; + X=U'; + X=X(n:-1:1,:) + Ac=Ac(n:-1:1,:) +endfunction diff --git a/modules/polynomials/macros/sylm.bin b/modules/polynomials/macros/sylm.bin Binary files differnew file mode 100755 index 000000000..d40fa8643 --- /dev/null +++ b/modules/polynomials/macros/sylm.bin diff --git a/modules/polynomials/macros/sylm.sci b/modules/polynomials/macros/sylm.sci new file mode 100755 index 000000000..69ecc64b0 --- /dev/null +++ b/modules/polynomials/macros/sylm.sci @@ -0,0 +1,29 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) ????-2008 - INRIA +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + + +function [s]=sylm(a,b) + //[s]=sylm(a,b) gives the Sylvester matrix associated to polynomials + //a and b, i.e. the matrix s such that: + // coeff( a*x + b*y )' = s * [coeff(x)';coeff(y)'] + //dimension of s is equal to degree(a)+degree(b) + //If a and b are coprime polynomials + //(rank(sylm(a,b))=degree(a)+degree(b)) the instructions + // u = sylm(a,b) \ eye(na+nb,1) + // x = poly(u(1:nb),'z','coeff') + // y = poly(u(nb+1:na+nb),'z','coeff') + //compute Bezout factors x et y of minimal degree de degre minimal + //such that a*x+b*y=1 + //! + na=degree(a);a=coeff(a)'; + nb=degree(b);b=coeff(b)'; + s(na+nb,na+nb)=0; + for i=1:nb,s(i:na+i,i)=a,end + for i=1:na,s(i:nb+i,nb+i)=b,end +endfunction diff --git a/modules/polynomials/macros/systmat.bin b/modules/polynomials/macros/systmat.bin Binary files differnew file mode 100755 index 000000000..3e1f16562 --- /dev/null +++ b/modules/polynomials/macros/systmat.bin diff --git a/modules/polynomials/macros/systmat.sci b/modules/polynomials/macros/systmat.sci new file mode 100755 index 000000000..123a16b03 --- /dev/null +++ b/modules/polynomials/macros/systmat.sci @@ -0,0 +1,34 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) ????-2008 - INRIA +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + + +function [Sm]=systmat(Sl); + // System matrix of the linear system Sl (syslin list) + // in state-space form. + // Sm = [-sE + A B; + // [ C D] + // To get the zeros use det or detr (for square systems) + //! + ty=Sl(1); + ty=ty(1); + if ty=="lss" then + if Sl(7)=="d" then + s=poly(0,"z"); + else + s=poly(0,"s"); + end + Sm=[-s*eye(Sl(2))+Sl(2),Sl(3);Sl(4),Sl(5)]; + return + end + if part(ty,1)=="d" then + s=poly(0,"s"); + Sm=[-s*Sl(6)+Sl(2),Sl(3);Sl(4),Sl(5)]; + return + end +endfunction diff --git a/modules/polynomials/polynomials.iss b/modules/polynomials/polynomials.iss new file mode 100755 index 000000000..fede264c4 --- /dev/null +++ b/modules/polynomials/polynomials.iss @@ -0,0 +1,45 @@ +; +; Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +; Copyright (C) INRIA - Allan CORNET +; Copyright (C) DIGITEO - 2010 - 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 +; +;-------------------------------------------------------------------------------------------------------------- +; Inno Setup Script (5.3 and more) for Scilab (UNICODE version required) +; +;-------------------------------------------------------------------------------------------------------------- +; polynomials module +;-------------------------------------------------------------------------------------------------------------- +; +#define POLYNOMIALS "polynomials" +; +Source: bin\{#POLYNOMIALS}.dll; DestDir: {app}\bin; Components: {#COMPN_SCILAB} +Source: bin\{#POLYNOMIALS}_f.dll; DestDir: {app}\bin; Components: {#COMPN_SCILAB} +; +Source: modules\{#POLYNOMIALS}\license.txt; DestDir: {app}\modules\{#POLYNOMIALS}; Components: {#COMPN_SCILAB} +; +Source: modules\{#POLYNOMIALS}\sci_gateway\{#POLYNOMIALS}_gateway.xml; DestDir: {app}\modules\{#POLYNOMIALS}\sci_gateway; Components: {#COMPN_SCILAB} +; +Source: modules\{#POLYNOMIALS}\etc\{#POLYNOMIALS}.quit; DestDir: {app}\modules\{#POLYNOMIALS}\etc; Components: {#COMPN_SCILAB} +Source: modules\{#POLYNOMIALS}\etc\{#POLYNOMIALS}.start; DestDir: {app}\modules\{#POLYNOMIALS}\etc; Components: {#COMPN_SCILAB} +; +;Source: modules\{#POLYNOMIALS}\includes\*.h; DestDir: {app}\modules\{#POLYNOMIALS}\includes; Components: {#COMPN_SCILAB} +; +Source: modules\{#POLYNOMIALS}\macros\buildmacros.sce; DestDir: {app}\modules\{#POLYNOMIALS}\macros; Components: {#COMPN_SCILAB} +Source: modules\{#POLYNOMIALS}\macros\buildmacros.bat; DestDir: {app}\modules\{#POLYNOMIALS}\macros; Components: {#COMPN_SCILAB} +Source: modules\{#POLYNOMIALS}\macros\cleanmacros.bat; DestDir: {app}\modules\{#POLYNOMIALS}\macros; Components: {#COMPN_SCILAB} +Source: modules\{#POLYNOMIALS}\macros\lib; DestDir: {app}\modules\{#POLYNOMIALS}\macros; Components: {#COMPN_SCILAB} +Source: modules\{#POLYNOMIALS}\macros\names; DestDir: {app}\modules\{#POLYNOMIALS}\macros; Components: {#COMPN_SCILAB} +Source: modules\{#POLYNOMIALS}\macros\*.bin; DestDir: {app}\modules\{#POLYNOMIALS}\macros; Components: {#COMPN_SCILAB} +Source: modules\{#POLYNOMIALS}\macros\*.sci; DestDir: {app}\modules\{#POLYNOMIALS}\macros; Components: {#COMPN_SCILAB} +; +Source: modules\{#POLYNOMIALS}\demos\*.*; DestDir: {app}\modules\{#POLYNOMIALS}\demos; Flags: recursesubdirs; Components: {#COMPN_SCILAB} +; +Source: modules\{#POLYNOMIALS}\tests\*.*; DestDir: {app}\modules\{#POLYNOMIALS}\tests; Flags: recursesubdirs; Components: {#COMPN_SCILAB} and {#COMPN_TESTS} +; +;-------------------------------------------------------------------------------------------------------------- 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 Binary files differnew file mode 100755 index 000000000..a6bbb051e --- /dev/null +++ b/modules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-gw_polynomials.o 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 Binary files differnew file mode 100755 index 000000000..df9859a0e --- /dev/null +++ b/modules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_bezout.o 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 Binary files differnew file mode 100755 index 000000000..636bb4f89 --- /dev/null +++ b/modules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_cleanp.o 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 Binary files differnew file mode 100755 index 000000000..9e91becb6 --- /dev/null +++ b/modules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_coeff.o 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 Binary files differnew file mode 100755 index 000000000..d904d2122 --- /dev/null +++ b/modules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_degree.o 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 Binary files differnew file mode 100755 index 000000000..77d1920b3 --- /dev/null +++ b/modules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_diag.o 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 Binary files differnew file mode 100755 index 000000000..64d121b08 --- /dev/null +++ b/modules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_div.o 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 Binary files differnew file mode 100755 index 000000000..db4442c66 --- /dev/null +++ b/modules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_poly.o 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 Binary files differnew file mode 100755 index 000000000..c632d150e --- /dev/null +++ b/modules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_prod.o 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 Binary files differnew file mode 100755 index 000000000..6c7b142bc --- /dev/null +++ b/modules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_roots.o 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 Binary files differnew file mode 100755 index 000000000..15085ffa0 --- /dev/null +++ b/modules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_sfact.o 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 Binary files differnew file mode 100755 index 000000000..08300b3e6 --- /dev/null +++ b/modules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_simp.o 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 Binary files differnew file mode 100755 index 000000000..432e10607 --- /dev/null +++ b/modules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_simp_mode.o 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 Binary files differnew file mode 100755 index 000000000..3de28d3d8 --- /dev/null +++ b/modules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_sum.o 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 Binary files differnew file mode 100755 index 000000000..24efec6f9 --- /dev/null +++ b/modules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_tril.o 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 Binary files differnew file mode 100755 index 000000000..84bee6b41 --- /dev/null +++ b/modules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_triu.o 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 Binary files differnew file mode 100755 index 000000000..55bd5b678 --- /dev/null +++ b/modules/polynomials/sci_gateway/c/.libs/libscipolynomials_la-sci_varn.o 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 Binary files differnew file mode 100755 index 000000000..20b83c840 --- /dev/null +++ b/modules/polynomials/sci_gateway/fortran/.libs/polops.o diff --git a/modules/polynomials/sci_gateway/fortran/.libs/sci_f_bezout.o b/modules/polynomials/sci_gateway/fortran/.libs/sci_f_bezout.o Binary files differnew file mode 100755 index 000000000..b76a9ea3b --- /dev/null +++ b/modules/polynomials/sci_gateway/fortran/.libs/sci_f_bezout.o diff --git a/modules/polynomials/sci_gateway/fortran/.libs/sci_f_coeff.o b/modules/polynomials/sci_gateway/fortran/.libs/sci_f_coeff.o Binary files differnew file mode 100755 index 000000000..9309cb75c --- /dev/null +++ b/modules/polynomials/sci_gateway/fortran/.libs/sci_f_coeff.o diff --git a/modules/polynomials/sci_gateway/fortran/.libs/sci_f_degree.o b/modules/polynomials/sci_gateway/fortran/.libs/sci_f_degree.o Binary files differnew file mode 100755 index 000000000..090e85bb1 --- /dev/null +++ b/modules/polynomials/sci_gateway/fortran/.libs/sci_f_degree.o diff --git a/modules/polynomials/sci_gateway/fortran/.libs/sci_f_diag.o b/modules/polynomials/sci_gateway/fortran/.libs/sci_f_diag.o Binary files differnew file mode 100755 index 000000000..cf935c4ba --- /dev/null +++ b/modules/polynomials/sci_gateway/fortran/.libs/sci_f_diag.o diff --git a/modules/polynomials/sci_gateway/fortran/.libs/sci_f_div.o b/modules/polynomials/sci_gateway/fortran/.libs/sci_f_div.o Binary files differnew file mode 100755 index 000000000..b27de7b61 --- /dev/null +++ b/modules/polynomials/sci_gateway/fortran/.libs/sci_f_div.o diff --git a/modules/polynomials/sci_gateway/fortran/.libs/sci_f_pclean.o b/modules/polynomials/sci_gateway/fortran/.libs/sci_f_pclean.o Binary files differnew file mode 100755 index 000000000..a14bba60e --- /dev/null +++ b/modules/polynomials/sci_gateway/fortran/.libs/sci_f_pclean.o diff --git a/modules/polynomials/sci_gateway/fortran/.libs/sci_f_poly.o b/modules/polynomials/sci_gateway/fortran/.libs/sci_f_poly.o Binary files differnew file mode 100755 index 000000000..07b2e6fc3 --- /dev/null +++ b/modules/polynomials/sci_gateway/fortran/.libs/sci_f_poly.o diff --git a/modules/polynomials/sci_gateway/fortran/.libs/sci_f_prod.o b/modules/polynomials/sci_gateway/fortran/.libs/sci_f_prod.o Binary files differnew file mode 100755 index 000000000..b576885f3 --- /dev/null +++ b/modules/polynomials/sci_gateway/fortran/.libs/sci_f_prod.o diff --git a/modules/polynomials/sci_gateway/fortran/.libs/sci_f_psimp.o b/modules/polynomials/sci_gateway/fortran/.libs/sci_f_psimp.o Binary files differnew file mode 100755 index 000000000..ac0039da2 --- /dev/null +++ b/modules/polynomials/sci_gateway/fortran/.libs/sci_f_psimp.o diff --git a/modules/polynomials/sci_gateway/fortran/.libs/sci_f_roots.o b/modules/polynomials/sci_gateway/fortran/.libs/sci_f_roots.o Binary files differnew file mode 100755 index 000000000..12ad51e1f --- /dev/null +++ b/modules/polynomials/sci_gateway/fortran/.libs/sci_f_roots.o diff --git a/modules/polynomials/sci_gateway/fortran/.libs/sci_f_rsimp.o b/modules/polynomials/sci_gateway/fortran/.libs/sci_f_rsimp.o Binary files differnew file mode 100755 index 000000000..66c01579c --- /dev/null +++ b/modules/polynomials/sci_gateway/fortran/.libs/sci_f_rsimp.o diff --git a/modules/polynomials/sci_gateway/fortran/.libs/sci_f_sfact.o b/modules/polynomials/sci_gateway/fortran/.libs/sci_f_sfact.o Binary files differnew file mode 100755 index 000000000..e46e3fdf6 --- /dev/null +++ b/modules/polynomials/sci_gateway/fortran/.libs/sci_f_sfact.o diff --git a/modules/polynomials/sci_gateway/fortran/.libs/sci_f_simp.o b/modules/polynomials/sci_gateway/fortran/.libs/sci_f_simp.o Binary files differnew file mode 100755 index 000000000..5bf790c1f --- /dev/null +++ b/modules/polynomials/sci_gateway/fortran/.libs/sci_f_simp.o diff --git a/modules/polynomials/sci_gateway/fortran/.libs/sci_f_simpmd.o b/modules/polynomials/sci_gateway/fortran/.libs/sci_f_simpmd.o Binary files differnew file mode 100755 index 000000000..f5c936f89 --- /dev/null +++ b/modules/polynomials/sci_gateway/fortran/.libs/sci_f_simpmd.o diff --git a/modules/polynomials/sci_gateway/fortran/.libs/sci_f_sum.o b/modules/polynomials/sci_gateway/fortran/.libs/sci_f_sum.o Binary files differnew file mode 100755 index 000000000..facb58ca4 --- /dev/null +++ b/modules/polynomials/sci_gateway/fortran/.libs/sci_f_sum.o 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 Binary files differnew file mode 100755 index 000000000..a0ea3a888 --- /dev/null +++ b/modules/polynomials/sci_gateway/fortran/.libs/sci_f_triu_tril.o diff --git a/modules/polynomials/sci_gateway/fortran/.libs/sci_f_varn.o b/modules/polynomials/sci_gateway/fortran/.libs/sci_f_varn.o Binary files differnew file mode 100755 index 000000000..2aab1bc59 --- /dev/null +++ b/modules/polynomials/sci_gateway/fortran/.libs/sci_f_varn.o 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> diff --git a/modules/polynomials/src/c/DllmainPolynomial.c b/modules/polynomials/src/c/DllmainPolynomial.c new file mode 100755 index 000000000..0b8f11d05 --- /dev/null +++ b/modules/polynomials/src/c/DllmainPolynomial.c @@ -0,0 +1,46 @@ + +/* +* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +* Copyright (C) 2009 - DIGITEO - Allan CORNET +* +* This file must be used under the terms of the CeCILL. +* This source file is licensed as described in the file COPYING, which +* you should have received as part of this distribution. The terms +* are also available at +* http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +* +*/ + +#include <windows.h> +#include "machine.h" +/*--------------------------------------------------------------------------*/ +#pragma comment(lib,"../../../../bin/libintl.lib") +/*--------------------------------------------------------------------------*/ +/* COMMON used by fortran */ +typedef struct +{ + double p[101], qp[101], k[101], qk[101], svk[101], sr, si, u, v, a, b, + c__, d__, a1, a2, a3, a6, a7, e, f, g, h__, szr, szi, lzr, lzi; + float eta, are, mre; + int n, nn; +} GLOGLO_struct; + +__declspec (dllexport) GLOGLO_struct C2F(gloglo); +/*--------------------------------------------------------------------------*/ +int WINAPI DllMain (HINSTANCE hInstance , DWORD reason, PVOID pvReserved) +{ + switch (reason) + { + case DLL_PROCESS_ATTACH: + break; + case DLL_PROCESS_DETACH: + break; + case DLL_THREAD_ATTACH: + break; + case DLL_THREAD_DETACH: + break; + } + return 1; +} +/*--------------------------------------------------------------------------*/ + diff --git a/modules/polynomials/src/c/core_Import.def b/modules/polynomials/src/c/core_Import.def new file mode 100755 index 000000000..c26f1c5ea --- /dev/null +++ b/modules/polynomials/src/c/core_Import.def @@ -0,0 +1,9 @@ + LIBRARY core.dll + + +EXPORTS +;core +com_ +callFunctionFromGateway +MyHeapAlloc +MyHeapFree diff --git a/modules/polynomials/src/c/polynomials.rc b/modules/polynomials/src/c/polynomials.rc new file mode 100755 index 000000000..420360dfd --- /dev/null +++ b/modules/polynomials/src/c/polynomials.rc @@ -0,0 +1,96 @@ +// Microsoft Visual C++ generated resource script. +// + + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#define APSTUDIO_HIDDEN_SYMBOLS +#include "windows.h" +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// French (France) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_FRA) +#ifdef _WIN32 +LANGUAGE LANG_FRENCH, SUBLANG_FRENCH +#pragma code_page(1252) +#endif //_WIN32 + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE +BEGIN + "resource.h\0" +END + + +3 TEXTINCLUDE +BEGIN + "\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 5,5,2,0 + PRODUCTVERSION 5,5,2,0 + FILEFLAGSMASK 0x17L +#ifdef _DEBUG + FILEFLAGS 0x1L +#else + FILEFLAGS 0x0L +#endif + FILEOS 0x4L + FILETYPE 0x0L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040c04b0" + BEGIN + VALUE "FileDescription", "polynomials module" + VALUE "FileVersion", "5, 5, 2, 0" + VALUE "InternalName", "polynomials module" + VALUE "LegalCopyright", "Copyright (C) 2017" + VALUE "OriginalFilename", "polynomials.dll" + VALUE "ProductName", " polynomials" + VALUE "ProductVersion", "5, 5, 2, 0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x40c, 1200 + END +END + +#endif // French (France) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// + + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/modules/polynomials/src/c/polynomials.vcxproj b/modules/polynomials/src/c/polynomials.vcxproj new file mode 100755 index 000000000..2cf9349c7 --- /dev/null +++ b/modules/polynomials/src/c/polynomials.vcxproj @@ -0,0 +1,243 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Debug|Win32"> + <Configuration>Debug</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug|x64"> + <Configuration>Debug</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{620D8FA7-3704-438E-BB1E-391C84401A2E}</ProjectGuid> + <RootNamespace>polynomials</RootNamespace> + <Keyword>Win32Proj</Keyword> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <CharacterSet>MultiByte</CharacterSet> + <WholeProgramOptimization>false</WholeProgramOptimization> + <PlatformToolset>v110</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>v110</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <CharacterSet>MultiByte</CharacterSet> + <WholeProgramOptimization>false</WholeProgramOptimization> + <PlatformToolset>v110</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>v110</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup> + <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)bin\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)$(Configuration)\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</LinkIncremental> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)bin\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)$(Configuration)\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</LinkIncremental> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)bin\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)$(Configuration)\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)bin\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)$(Configuration)\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <ClCompile> + <Optimization>Disabled</Optimization> + <AdditionalIncludeDirectories>../../includes;../../../output_stream/includes;../../../localization/includes;../../../core/includes;../../../../libs/intl;../../../api_scilab/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;FORDLL;_DEBUG;_WINDOWS;_USRDLL;POLYNOMIALS_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> + <WarningLevel>Level3</WarningLevel> + </ClCompile> + <PreLinkEvent> + <Message>Make dependencies</Message> + <Command>lib /DEF:"$(ProjectDir)core_import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)core.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)polynomials_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)polynomials_f.lib" 1>NUL 2>NUL +</Command> + </PreLinkEvent> + <Link> + <AdditionalDependencies>core.lib;polynomials_f.lib;%(AdditionalDependencies)</AdditionalDependencies> + <OutputFile>$(SolutionDir)bin\$(ProjectName).dll</OutputFile> + <GenerateDebugInformation>true</GenerateDebugInformation> + <SubSystem>Windows</SubSystem> + <ImportLibrary>$(SolutionDir)bin\$(ProjectName).lib</ImportLibrary> + <TargetMachine>MachineX86</TargetMachine> + <CLRUnmanagedCodeCheck>true</CLRUnmanagedCodeCheck> + <RandomizedBaseAddress>false</RandomizedBaseAddress> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <Midl> + <TargetEnvironment>X64</TargetEnvironment> + </Midl> + <ClCompile> + <Optimization>Disabled</Optimization> + <AdditionalIncludeDirectories>../../includes;../../../output_stream/includes;../../../localization/includes;../../../core/includes;../../../../libs/intl;../../../api_scilab/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;FORDLL;_DEBUG;_WINDOWS;_USRDLL;POLYNOMIALS_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> + <WarningLevel>Level3</WarningLevel> + </ClCompile> + <PreLinkEvent> + <Message>Make dependencies</Message> + <Command>lib /DEF:"$(ProjectDir)core_import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)core.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)polynomials_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)polynomials_f.lib" 1>NUL 2>NUL +</Command> + </PreLinkEvent> + <Link> + <AdditionalDependencies>core.lib;polynomials_f.lib;%(AdditionalDependencies)</AdditionalDependencies> + <OutputFile>$(SolutionDir)bin\$(ProjectName).dll</OutputFile> + <GenerateDebugInformation>true</GenerateDebugInformation> + <SubSystem>Windows</SubSystem> + <ImportLibrary>$(SolutionDir)bin\$(ProjectName).lib</ImportLibrary> + <TargetMachine>MachineX64</TargetMachine> + <CLRUnmanagedCodeCheck>true</CLRUnmanagedCodeCheck> + <RandomizedBaseAddress>false</RandomizedBaseAddress> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <ClCompile> + <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed> + <WholeProgramOptimization>false</WholeProgramOptimization> + <AdditionalIncludeDirectories>../../includes;../../../output_stream/includes;../../../localization/includes;../../../core/includes;../../../../libs/intl;../../../api_scilab/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;FORDLL;NDEBUG;_WINDOWS;_USRDLL;POLYNOMIALS_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <StringPooling>true</StringPooling> + <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> + <WarningLevel>Level3</WarningLevel> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + </ClCompile> + <PreLinkEvent> + <Message>Make dependencies</Message> + <Command>lib /DEF:"$(ProjectDir)core_import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)core.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)polynomials_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)polynomials_f.lib" 1>NUL 2>NUL +</Command> + </PreLinkEvent> + <Link> + <AdditionalDependencies>core.lib;polynomials_f.lib;%(AdditionalDependencies)</AdditionalDependencies> + <OutputFile>$(SolutionDir)bin\$(ProjectName).dll</OutputFile> + <GenerateDebugInformation>false</GenerateDebugInformation> + <SubSystem>Windows</SubSystem> + <OptimizeReferences>true</OptimizeReferences> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <ImportLibrary>$(SolutionDir)bin\$(ProjectName).lib</ImportLibrary> + <TargetMachine>MachineX86</TargetMachine> + <CLRUnmanagedCodeCheck>true</CLRUnmanagedCodeCheck> + <RandomizedBaseAddress>false</RandomizedBaseAddress> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <Midl> + <TargetEnvironment>X64</TargetEnvironment> + </Midl> + <ClCompile> + <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed> + <WholeProgramOptimization>false</WholeProgramOptimization> + <AdditionalIncludeDirectories>../../includes;../../../output_stream/includes;../../../localization/includes;../../../core/includes;../../../../libs/intl;../../../api_scilab/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;FORDLL;NDEBUG;_WINDOWS;_USRDLL;POLYNOMIALS_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <StringPooling>true</StringPooling> + <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> + <WarningLevel>Level3</WarningLevel> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + </ClCompile> + <PreLinkEvent> + <Message>Make dependencies</Message> + <Command>lib /DEF:"$(ProjectDir)core_import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)core.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)polynomials_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)polynomials_f.lib" 1>NUL 2>NUL +</Command> + </PreLinkEvent> + <Link> + <AdditionalDependencies>core.lib;polynomials_f.lib;%(AdditionalDependencies)</AdditionalDependencies> + <OutputFile>$(SolutionDir)bin\$(ProjectName).dll</OutputFile> + <GenerateDebugInformation>false</GenerateDebugInformation> + <SubSystem>Windows</SubSystem> + <OptimizeReferences>true</OptimizeReferences> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <ImportLibrary>$(SolutionDir)bin\$(ProjectName).lib</ImportLibrary> + <TargetMachine>MachineX64</TargetMachine> + <CLRUnmanagedCodeCheck>true</CLRUnmanagedCodeCheck> + <RandomizedBaseAddress>false</RandomizedBaseAddress> + </Link> + </ItemDefinitionGroup> + <ItemGroup> + <ClCompile Include="DllmainPolynomial.c" /> + <ClCompile Include="..\..\sci_gateway\c\gw_polynomials.c" /> + <ClCompile Include="..\..\sci_gateway\c\sci_bezout.c" /> + <ClCompile Include="..\..\sci_gateway\c\sci_cleanp.c" /> + <ClCompile Include="..\..\sci_gateway\c\sci_coeff.c" /> + <ClCompile Include="..\..\sci_gateway\c\sci_degree.c" /> + <ClCompile Include="..\..\sci_gateway\c\sci_diag.c" /> + <ClCompile Include="..\..\sci_gateway\c\sci_div.c" /> + <ClCompile Include="..\..\sci_gateway\c\sci_poly.c" /> + <ClCompile Include="..\..\sci_gateway\c\sci_prod.c" /> + <ClCompile Include="..\..\sci_gateway\c\sci_roots.c" /> + <ClCompile Include="..\..\sci_gateway\c\sci_sfact.c" /> + <ClCompile Include="..\..\sci_gateway\c\sci_simp.c" /> + <ClCompile Include="..\..\sci_gateway\c\sci_simp_mode.c" /> + <ClCompile Include="..\..\sci_gateway\c\sci_sum.c" /> + <ClCompile Include="..\..\sci_gateway\c\sci_tril.c" /> + <ClCompile Include="..\..\sci_gateway\c\sci_triu.c" /> + <ClCompile Include="..\..\sci_gateway\c\sci_varn.c" /> + </ItemGroup> + <ItemGroup> + <ClInclude Include="..\..\includes\dynlib_polynomials.h" /> + <ClInclude Include="..\..\includes\gw_polynomials.h" /> + </ItemGroup> + <ItemGroup> + <None Include="..\..\locales\polynomials.pot" /> + <None Include="core_import.def" /> + <None Include="polynomials_f_Import.def" /> + <None Include="..\..\Makefile.am" /> + <None Include="..\..\polynomials.iss" /> + <None Include="..\..\sci_gateway\polynomials_gateway.xml" /> + </ItemGroup> + <ItemGroup> + <ResourceCompile Include="polynomials.rc" /> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="..\..\..\..\tools\Dumpexts\Dumpexts.vcxproj"> + <Project>{3170e4c2-1173-4264-a222-7ee8ccb3ddf7}</Project> + <ReferenceOutputAssembly>false</ReferenceOutputAssembly> + </ProjectReference> + <ProjectReference Include="..\..\..\api_scilab\api_scilab.vcxproj"> + <Project>{43c5bab1-1dca-4743-a183-77e0d42fe7d0}</Project> + </ProjectReference> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project>
\ No newline at end of file diff --git a/modules/polynomials/src/c/polynomials.vcxproj.filters b/modules/polynomials/src/c/polynomials.vcxproj.filters new file mode 100755 index 000000000..b617ed539 --- /dev/null +++ b/modules/polynomials/src/c/polynomials.vcxproj.filters @@ -0,0 +1,108 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Source Files"> + <UniqueIdentifier>{b6c1f1cb-6dfb-4767-876f-55541e8abe20}</UniqueIdentifier> + <Extensions>cpp;c;cxx;rc;def;r;odl;idl;hpj;bat</Extensions> + </Filter> + <Filter Include="Header Files"> + <UniqueIdentifier>{74c06388-16ab-4f65-9238-7b034acce6f3}</UniqueIdentifier> + <Extensions>h;hpp;hxx;hm;inl</Extensions> + </Filter> + <Filter Include="localization"> + <UniqueIdentifier>{ce71d028-79e5-4b19-8762-ccca145331b2}</UniqueIdentifier> + </Filter> + <Filter Include="Libraries Dependencies"> + <UniqueIdentifier>{85bdfa85-786d-42f7-b6d3-9b6a2bc59daa}</UniqueIdentifier> + </Filter> + <Filter Include="Libraries Dependencies\Imports"> + <UniqueIdentifier>{07b53475-72a1-47e9-b864-67aae026d207}</UniqueIdentifier> + </Filter> + <Filter Include="Resource Files"> + <UniqueIdentifier>{e9a37564-3313-430d-a826-9a1272dac567}</UniqueIdentifier> + </Filter> + </ItemGroup> + <ItemGroup> + <ClCompile Include="DllmainPolynomial.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\c\gw_polynomials.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\c\sci_bezout.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\c\sci_cleanp.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\c\sci_coeff.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\c\sci_degree.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\c\sci_diag.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\c\sci_div.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\c\sci_poly.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\c\sci_prod.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\c\sci_roots.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\c\sci_sfact.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\c\sci_simp.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\c\sci_simp_mode.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\c\sci_sum.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\c\sci_tril.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\c\sci_triu.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\c\sci_varn.c"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> + <ItemGroup> + <ClInclude Include="..\..\includes\dynlib_polynomials.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\includes\gw_polynomials.h"> + <Filter>Header Files</Filter> + </ClInclude> + </ItemGroup> + <ItemGroup> + <None Include="core_import.def"> + <Filter>Libraries Dependencies\Imports</Filter> + </None> + <None Include="polynomials_f_Import.def"> + <Filter>Libraries Dependencies\Imports</Filter> + </None> + <None Include="..\..\Makefile.am" /> + <None Include="..\..\polynomials.iss" /> + <None Include="..\..\sci_gateway\polynomials_gateway.xml" /> + <None Include="..\..\locales\polynomials.pot"> + <Filter>localization</Filter> + </None> + </ItemGroup> + <ItemGroup> + <ResourceCompile Include="polynomials.rc"> + <Filter>Resource Files</Filter> + </ResourceCompile> + </ItemGroup> +</Project>
\ No newline at end of file diff --git a/modules/polynomials/src/c/polynomials_f_Import.def b/modules/polynomials/src/c/polynomials_f_Import.def new file mode 100755 index 000000000..ee11de667 --- /dev/null +++ b/modules/polynomials/src/c/polynomials_f_Import.def @@ -0,0 +1,23 @@ +LIBRARY polynomials_f.dll + + +EXPORTS +; --------------------------------------- +; polynomials_f +; --------------------------------------- +intbez_ +intpclean_ +intcoeff_ +intdegree_ +intpdiag_ +intpdiv_ +intpoly_ +intpprod_ +introots_ +intsfact_ +intsimp_ +intsimpmd_ +intpsum_ +intptriu_ +intvarn_ + diff --git a/modules/polynomials/src/fortran/.deps/.dirstamp b/modules/polynomials/src/fortran/.deps/.dirstamp new file mode 100755 index 000000000..e69de29bb --- /dev/null +++ b/modules/polynomials/src/fortran/.deps/.dirstamp diff --git a/modules/polynomials/src/fortran/.dirstamp b/modules/polynomials/src/fortran/.dirstamp new file mode 100755 index 000000000..e69de29bb --- /dev/null +++ b/modules/polynomials/src/fortran/.dirstamp diff --git a/modules/polynomials/src/fortran/.libs/bezstp.o b/modules/polynomials/src/fortran/.libs/bezstp.o Binary files differnew file mode 100755 index 000000000..0672c20bd --- /dev/null +++ b/modules/polynomials/src/fortran/.libs/bezstp.o diff --git a/modules/polynomials/src/fortran/.libs/blktit.o b/modules/polynomials/src/fortran/.libs/blktit.o Binary files differnew file mode 100755 index 000000000..874a4f1e4 --- /dev/null +++ b/modules/polynomials/src/fortran/.libs/blktit.o diff --git a/modules/polynomials/src/fortran/.libs/calcsc.o b/modules/polynomials/src/fortran/.libs/calcsc.o Binary files differnew file mode 100755 index 000000000..e597dd483 --- /dev/null +++ b/modules/polynomials/src/fortran/.libs/calcsc.o diff --git a/modules/polynomials/src/fortran/.libs/chkvar.o b/modules/polynomials/src/fortran/.libs/chkvar.o Binary files differnew file mode 100755 index 000000000..4de02a8e9 --- /dev/null +++ b/modules/polynomials/src/fortran/.libs/chkvar.o diff --git a/modules/polynomials/src/fortran/.libs/ddmpev.o b/modules/polynomials/src/fortran/.libs/ddmpev.o Binary files differnew file mode 100755 index 000000000..d82fa2a85 --- /dev/null +++ b/modules/polynomials/src/fortran/.libs/ddmpev.o diff --git a/modules/polynomials/src/fortran/.libs/dimin.o b/modules/polynomials/src/fortran/.libs/dimin.o Binary files differnew file mode 100755 index 000000000..5d4dabe70 --- /dev/null +++ b/modules/polynomials/src/fortran/.libs/dimin.o diff --git a/modules/polynomials/src/fortran/.libs/dmp2pm.o b/modules/polynomials/src/fortran/.libs/dmp2pm.o Binary files differnew file mode 100755 index 000000000..0f0fb62c4 --- /dev/null +++ b/modules/polynomials/src/fortran/.libs/dmp2pm.o diff --git a/modules/polynomials/src/fortran/.libs/dmpad.o b/modules/polynomials/src/fortran/.libs/dmpad.o Binary files differnew file mode 100755 index 000000000..e4780d72a --- /dev/null +++ b/modules/polynomials/src/fortran/.libs/dmpad.o diff --git a/modules/polynomials/src/fortran/.libs/dmpadj.o b/modules/polynomials/src/fortran/.libs/dmpadj.o Binary files differnew file mode 100755 index 000000000..5a94eeec1 --- /dev/null +++ b/modules/polynomials/src/fortran/.libs/dmpadj.o diff --git a/modules/polynomials/src/fortran/.libs/dmpcle.o b/modules/polynomials/src/fortran/.libs/dmpcle.o Binary files differnew file mode 100755 index 000000000..3bf00a2c0 --- /dev/null +++ b/modules/polynomials/src/fortran/.libs/dmpcle.o diff --git a/modules/polynomials/src/fortran/.libs/dmpcnc.o b/modules/polynomials/src/fortran/.libs/dmpcnc.o Binary files differnew file mode 100755 index 000000000..01c3546b3 --- /dev/null +++ b/modules/polynomials/src/fortran/.libs/dmpcnc.o diff --git a/modules/polynomials/src/fortran/.libs/dmpext.o b/modules/polynomials/src/fortran/.libs/dmpext.o Binary files differnew file mode 100755 index 000000000..30e4b2213 --- /dev/null +++ b/modules/polynomials/src/fortran/.libs/dmpext.o diff --git a/modules/polynomials/src/fortran/.libs/dmpins.o b/modules/polynomials/src/fortran/.libs/dmpins.o Binary files differnew file mode 100755 index 000000000..f423f9090 --- /dev/null +++ b/modules/polynomials/src/fortran/.libs/dmpins.o diff --git a/modules/polynomials/src/fortran/.libs/dmpmu.o b/modules/polynomials/src/fortran/.libs/dmpmu.o Binary files differnew file mode 100755 index 000000000..e4dc1d89a --- /dev/null +++ b/modules/polynomials/src/fortran/.libs/dmpmu.o diff --git a/modules/polynomials/src/fortran/.libs/dmptra.o b/modules/polynomials/src/fortran/.libs/dmptra.o Binary files differnew file mode 100755 index 000000000..623795da9 --- /dev/null +++ b/modules/polynomials/src/fortran/.libs/dmptra.o diff --git a/modules/polynomials/src/fortran/.libs/dpmul.o b/modules/polynomials/src/fortran/.libs/dpmul.o Binary files differnew file mode 100755 index 000000000..c64d5e570 --- /dev/null +++ b/modules/polynomials/src/fortran/.libs/dpmul.o diff --git a/modules/polynomials/src/fortran/.libs/dpmul1.o b/modules/polynomials/src/fortran/.libs/dpmul1.o Binary files differnew file mode 100755 index 000000000..bfe2fbdfd --- /dev/null +++ b/modules/polynomials/src/fortran/.libs/dpmul1.o diff --git a/modules/polynomials/src/fortran/.libs/dpodiv.o b/modules/polynomials/src/fortran/.libs/dpodiv.o Binary files differnew file mode 100755 index 000000000..2c837b14a --- /dev/null +++ b/modules/polynomials/src/fortran/.libs/dpodiv.o diff --git a/modules/polynomials/src/fortran/.libs/dprxc.o b/modules/polynomials/src/fortran/.libs/dprxc.o Binary files differnew file mode 100755 index 000000000..59348cbe4 --- /dev/null +++ b/modules/polynomials/src/fortran/.libs/dprxc.o diff --git a/modules/polynomials/src/fortran/.libs/dpsimp.o b/modules/polynomials/src/fortran/.libs/dpsimp.o Binary files differnew file mode 100755 index 000000000..6773b82a4 --- /dev/null +++ b/modules/polynomials/src/fortran/.libs/dpsimp.o diff --git a/modules/polynomials/src/fortran/.libs/dwmpmu.o b/modules/polynomials/src/fortran/.libs/dwmpmu.o Binary files differnew file mode 100755 index 000000000..95c935bf3 --- /dev/null +++ b/modules/polynomials/src/fortran/.libs/dwmpmu.o diff --git a/modules/polynomials/src/fortran/.libs/fxshfr.o b/modules/polynomials/src/fortran/.libs/fxshfr.o Binary files differnew file mode 100755 index 000000000..0c584691b --- /dev/null +++ b/modules/polynomials/src/fortran/.libs/fxshfr.o diff --git a/modules/polynomials/src/fortran/.libs/horner.o b/modules/polynomials/src/fortran/.libs/horner.o Binary files differnew file mode 100755 index 000000000..e5b7b481a --- /dev/null +++ b/modules/polynomials/src/fortran/.libs/horner.o diff --git a/modules/polynomials/src/fortran/.libs/idegre.o b/modules/polynomials/src/fortran/.libs/idegre.o Binary files differnew file mode 100755 index 000000000..98bc22054 --- /dev/null +++ b/modules/polynomials/src/fortran/.libs/idegre.o diff --git a/modules/polynomials/src/fortran/.libs/impcnc.o b/modules/polynomials/src/fortran/.libs/impcnc.o Binary files differnew file mode 100755 index 000000000..f347694ab --- /dev/null +++ b/modules/polynomials/src/fortran/.libs/impcnc.o diff --git a/modules/polynomials/src/fortran/.libs/impext.o b/modules/polynomials/src/fortran/.libs/impext.o Binary files differnew file mode 100755 index 000000000..da23abd5f --- /dev/null +++ b/modules/polynomials/src/fortran/.libs/impext.o diff --git a/modules/polynomials/src/fortran/.libs/impins.o b/modules/polynomials/src/fortran/.libs/impins.o Binary files differnew file mode 100755 index 000000000..6f3b53b79 --- /dev/null +++ b/modules/polynomials/src/fortran/.libs/impins.o diff --git a/modules/polynomials/src/fortran/.libs/imptra.o b/modules/polynomials/src/fortran/.libs/imptra.o Binary files differnew file mode 100755 index 000000000..365f83e1c --- /dev/null +++ b/modules/polynomials/src/fortran/.libs/imptra.o diff --git a/modules/polynomials/src/fortran/.libs/mpdegr.o b/modules/polynomials/src/fortran/.libs/mpdegr.o Binary files differnew file mode 100755 index 000000000..0119bb603 --- /dev/null +++ b/modules/polynomials/src/fortran/.libs/mpdegr.o diff --git a/modules/polynomials/src/fortran/.libs/mpdiag.o b/modules/polynomials/src/fortran/.libs/mpdiag.o Binary files differnew file mode 100755 index 000000000..e9858e9a3 --- /dev/null +++ b/modules/polynomials/src/fortran/.libs/mpdiag.o diff --git a/modules/polynomials/src/fortran/.libs/mpinsp.o b/modules/polynomials/src/fortran/.libs/mpinsp.o Binary files differnew file mode 100755 index 000000000..d082d8d80 --- /dev/null +++ b/modules/polynomials/src/fortran/.libs/mpinsp.o diff --git a/modules/polynomials/src/fortran/.libs/mptri.o b/modules/polynomials/src/fortran/.libs/mptri.o Binary files differnew file mode 100755 index 000000000..a395e397d --- /dev/null +++ b/modules/polynomials/src/fortran/.libs/mptri.o diff --git a/modules/polynomials/src/fortran/.libs/newest.o b/modules/polynomials/src/fortran/.libs/newest.o Binary files differnew file mode 100755 index 000000000..bb05086c8 --- /dev/null +++ b/modules/polynomials/src/fortran/.libs/newest.o diff --git a/modules/polynomials/src/fortran/.libs/nextk.o b/modules/polynomials/src/fortran/.libs/nextk.o Binary files differnew file mode 100755 index 000000000..5aab0fcee --- /dev/null +++ b/modules/polynomials/src/fortran/.libs/nextk.o diff --git a/modules/polynomials/src/fortran/.libs/quad.o b/modules/polynomials/src/fortran/.libs/quad.o Binary files differnew file mode 100755 index 000000000..506b2fcb2 --- /dev/null +++ b/modules/polynomials/src/fortran/.libs/quad.o diff --git a/modules/polynomials/src/fortran/.libs/quadit.o b/modules/polynomials/src/fortran/.libs/quadit.o Binary files differnew file mode 100755 index 000000000..70bd1d502 --- /dev/null +++ b/modules/polynomials/src/fortran/.libs/quadit.o diff --git a/modules/polynomials/src/fortran/.libs/quadsd.o b/modules/polynomials/src/fortran/.libs/quadsd.o Binary files differnew file mode 100755 index 000000000..aad1c2191 --- /dev/null +++ b/modules/polynomials/src/fortran/.libs/quadsd.o diff --git a/modules/polynomials/src/fortran/.libs/realit.o b/modules/polynomials/src/fortran/.libs/realit.o Binary files differnew file mode 100755 index 000000000..20ba4d29e --- /dev/null +++ b/modules/polynomials/src/fortran/.libs/realit.o diff --git a/modules/polynomials/src/fortran/.libs/recbez.o b/modules/polynomials/src/fortran/.libs/recbez.o Binary files differnew file mode 100755 index 000000000..af6a1de01 --- /dev/null +++ b/modules/polynomials/src/fortran/.libs/recbez.o diff --git a/modules/polynomials/src/fortran/.libs/residu.o b/modules/polynomials/src/fortran/.libs/residu.o Binary files differnew file mode 100755 index 000000000..06553db8c --- /dev/null +++ b/modules/polynomials/src/fortran/.libs/residu.o diff --git a/modules/polynomials/src/fortran/.libs/rpoly.o b/modules/polynomials/src/fortran/.libs/rpoly.o Binary files differnew file mode 100755 index 000000000..58f8dc8f4 --- /dev/null +++ b/modules/polynomials/src/fortran/.libs/rpoly.o diff --git a/modules/polynomials/src/fortran/.libs/sfact1.o b/modules/polynomials/src/fortran/.libs/sfact1.o Binary files differnew file mode 100755 index 000000000..0d4254d91 --- /dev/null +++ b/modules/polynomials/src/fortran/.libs/sfact1.o diff --git a/modules/polynomials/src/fortran/.libs/sfact2.o b/modules/polynomials/src/fortran/.libs/sfact2.o Binary files differnew file mode 100755 index 000000000..e574d88f8 --- /dev/null +++ b/modules/polynomials/src/fortran/.libs/sfact2.o diff --git a/modules/polynomials/src/fortran/.libs/wdmpad.o b/modules/polynomials/src/fortran/.libs/wdmpad.o Binary files differnew file mode 100755 index 000000000..da6ede10c --- /dev/null +++ b/modules/polynomials/src/fortran/.libs/wdmpad.o diff --git a/modules/polynomials/src/fortran/.libs/wdmpmu.o b/modules/polynomials/src/fortran/.libs/wdmpmu.o Binary files differnew file mode 100755 index 000000000..cbfe6b62f --- /dev/null +++ b/modules/polynomials/src/fortran/.libs/wdmpmu.o diff --git a/modules/polynomials/src/fortran/.libs/wmpad.o b/modules/polynomials/src/fortran/.libs/wmpad.o Binary files differnew file mode 100755 index 000000000..49c1650c2 --- /dev/null +++ b/modules/polynomials/src/fortran/.libs/wmpad.o diff --git a/modules/polynomials/src/fortran/.libs/wmpadj.o b/modules/polynomials/src/fortran/.libs/wmpadj.o Binary files differnew file mode 100755 index 000000000..0499d5245 --- /dev/null +++ b/modules/polynomials/src/fortran/.libs/wmpadj.o diff --git a/modules/polynomials/src/fortran/.libs/wmpcle.o b/modules/polynomials/src/fortran/.libs/wmpcle.o Binary files differnew file mode 100755 index 000000000..71971fd67 --- /dev/null +++ b/modules/polynomials/src/fortran/.libs/wmpcle.o diff --git a/modules/polynomials/src/fortran/.libs/wmpcnc.o b/modules/polynomials/src/fortran/.libs/wmpcnc.o Binary files differnew file mode 100755 index 000000000..6bbd0e597 --- /dev/null +++ b/modules/polynomials/src/fortran/.libs/wmpcnc.o diff --git a/modules/polynomials/src/fortran/.libs/wmpins.o b/modules/polynomials/src/fortran/.libs/wmpins.o Binary files differnew file mode 100755 index 000000000..c3ddbcd68 --- /dev/null +++ b/modules/polynomials/src/fortran/.libs/wmpins.o diff --git a/modules/polynomials/src/fortran/.libs/wmpmu.o b/modules/polynomials/src/fortran/.libs/wmpmu.o Binary files differnew file mode 100755 index 000000000..8c02e208f --- /dev/null +++ b/modules/polynomials/src/fortran/.libs/wmpmu.o diff --git a/modules/polynomials/src/fortran/.libs/wmptra.o b/modules/polynomials/src/fortran/.libs/wmptra.o Binary files differnew file mode 100755 index 000000000..73de31851 --- /dev/null +++ b/modules/polynomials/src/fortran/.libs/wmptra.o diff --git a/modules/polynomials/src/fortran/.libs/wpmul.o b/modules/polynomials/src/fortran/.libs/wpmul.o Binary files differnew file mode 100755 index 000000000..20988fa1f --- /dev/null +++ b/modules/polynomials/src/fortran/.libs/wpmul.o diff --git a/modules/polynomials/src/fortran/.libs/wpmul1.o b/modules/polynomials/src/fortran/.libs/wpmul1.o Binary files differnew file mode 100755 index 000000000..bc0306863 --- /dev/null +++ b/modules/polynomials/src/fortran/.libs/wpmul1.o diff --git a/modules/polynomials/src/fortran/.libs/wpodiv.o b/modules/polynomials/src/fortran/.libs/wpodiv.o Binary files differnew file mode 100755 index 000000000..b5a00fc78 --- /dev/null +++ b/modules/polynomials/src/fortran/.libs/wpodiv.o diff --git a/modules/polynomials/src/fortran/.libs/wprxc.o b/modules/polynomials/src/fortran/.libs/wprxc.o Binary files differnew file mode 100755 index 000000000..903584503 --- /dev/null +++ b/modules/polynomials/src/fortran/.libs/wprxc.o diff --git a/modules/polynomials/src/fortran/.libs/writebufsfact.o b/modules/polynomials/src/fortran/.libs/writebufsfact.o Binary files differnew file mode 100755 index 000000000..c01b3cff6 --- /dev/null +++ b/modules/polynomials/src/fortran/.libs/writebufsfact.o diff --git a/modules/polynomials/src/fortran/Core_f_Import.def b/modules/polynomials/src/fortran/Core_f_Import.def new file mode 100755 index 000000000..5590db07a --- /dev/null +++ b/modules/polynomials/src/fortran/Core_f_Import.def @@ -0,0 +1,12 @@ + LIBRARY core_f.dll + + +EXPORTS +; +;core_f +; +funnam_ +indxg_ +indxgc_ +putid_ +ref2val_ diff --git a/modules/polynomials/src/fortran/Elementary_functions_Import.def b/modules/polynomials/src/fortran/Elementary_functions_Import.def new file mode 100755 index 000000000..6653019cc --- /dev/null +++ b/modules/polynomials/src/fortran/Elementary_functions_Import.def @@ -0,0 +1,7 @@ + LIBRARY elementary_functions.dll + + +EXPORTS +; +;elementary_functions +unsfdcopy_ diff --git a/modules/polynomials/src/fortran/Elementary_functions_f_Import.def b/modules/polynomials/src/fortran/Elementary_functions_f_Import.def new file mode 100755 index 000000000..7dd17e0ed --- /dev/null +++ b/modules/polynomials/src/fortran/Elementary_functions_f_Import.def @@ -0,0 +1,17 @@ + LIBRARY elementary_functions_f.dll + + +EXPORTS +; +;elementary_functions_f +dtild_ +wscal_ +dset_ +ivimp_ +iset_ +dadd_ +wwdiv_ +wmul_ +ddif_ +israt_ + diff --git a/modules/polynomials/src/fortran/bezstp.f b/modules/polynomials/src/fortran/bezstp.f new file mode 100755 index 000000000..1c3672b6f --- /dev/null +++ b/modules/polynomials/src/fortran/bezstp.f @@ -0,0 +1,196 @@ +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 bezstp(p1,n1,p2,n2,a,na,u,nu,l,x,v,w,best,ipb,errr) + double precision a(na,*),u(nu,*),x(na,*),v(nu,*),p1(*),p2(*) + integer ipb(6) + double precision w(*),best(*),errr + double precision dt0,z,fact + double precision c,s,errd,mm,eps,erri + double precision dlamch,ddot +c + eps=dlamch('p') + n0=max(n1,n2)+1 + m1=max(n1-n2,0) + m2=max(n2-n1,0) + ll=2*l + iuv=1 + ixy=iuv+ll + iw1=ixy+ll + iw=iw1+n0 + ifree=iw+2*n0 +c The matrix A is an upper triangular matrix catenated with a first full row +c [A(1,1) ... A(1,n0-1) A(1,n0) +c A(2,1) ... A(2,n0-1) A(2,n0) +c A(3,1) ... A(3,n0-1) 0 +c A(4,1) ... 0 0 +c ... ... ... ... ] +c +c make it upper triangular by a sequence of givens rotations + do 10 k=1,l +c . compute rotation that zeros a(k+1,n0+1-k) + call giv(a(k,n0+1-k),a(k+1,n0+1-k),c,s) +c . apply it to the rows k and k+1 of a + call drot(n0,a(k,1),na,a(k+1,1),na,c,s) + a(k+1,n0+1-k)=0.0d+0 +c . accumulate transformation in u + call drot(ll,u(k,1),nu,u(k+1,1),nu,c,s) + if(k.eq.1.and.l.lt.n0) then +c . store second row of a in x (that is right part of row 0 of a) +c . A=[[0 x] +c . At ] + call dcopy(n0-1,a(2,1),na,x,na) +c . store second row of u in v (that is right part of row 0 of u) + call dcopy(ll,u(2,1),nu,v,nu) + endif + 10 continue +c + call dcopy(ll,u(l,1),nu,w(iuv),1) + call dcopy(ll,u(l+1,1),nu,w(ixy),1) + +c + if(l.le.abs(n1-n2)) then +c . The dimension of the image of the linear application is too +c . small, skip the errors computations +c . increase the space dimension + goto 99 + endif +c Get the highest degree coefficient of the CGD candidate + fact=a(l,n0-l+1) + +c decrease the [u,v] degree using a linear combinaison with [x y] + if(l.gt.1) then + mm=w(ixy+2*m1)**2+w(ixy+1+2*m2)**2 + z=w(iuv+2*m1)*w(ixy+2*m1)+w(iuv+1+2*m2)*w(ixy+1+2*m2) + else + mm=w(ixy+2*m1)**2 + z=w(iuv+2*m1)*w(ixy+2*m1) + endif + if (mm.ne.0.0d+0) then +c on abaisse le degre de [u,v] + z=-z/mm + call daxpy(ll,z,w(ixy),1,w(iuv),1) + endif +c + if (fact.eq.0.0d+0) then +c . the highest degree coefficient of the GCD candidate is zero. It is +c . possible to find a lower degree one, increase the space dimension + goto 99 + endif +c normalize the u and v componants of the unimodular matrix to make +c CGD candidate higher degree coefficient equal to 1 + call dscal(ll,1.0d+0/fact,w(iuv),1) +c compute the determinant of the unimodular matrix (the determinant +c of its degree 0 coefficient + dt0=w(ixy+2*(l-1))*w(iuv+2*l-1)-w(ixy+2*l-1)*w(iuv+2*(l-1)) + if(dt0.eq.0.0d+0) then +c . the determinant of the unimodular matrix is 0, +c . increase the space dimension + goto 99 + endif +c normalize the x and y components of the unimodular matrix to make +c it's determinant equal to 1 + call dscal(ll,1.0d+0/dt0,w(ixy),1) + dt0=1.0d0 +c +c Estimate the forward error: +c first compute ||p1*x-p2*y|| +c p1*x + call dcopy(l-m1,w(ixy+2*m1),2,w(iw1),-1) + call dpmul1(p1,n1,w(iw1),l-1-m1,w(iw)) + nw=n1+l-1-m1 +c p1*x+p2*y + call dcopy(l-m2,w(ixy+1+2*m2),2,w(iw1),-1) + call dpmul(p2,n2,w(iw1),l-1-m2,w(iw),nw) + errd=ddot(nw+1,w(iw),1,w(iw),1) +c now compute ||p1*u-p2*v-p|| +c p1*u + if(l-1-m1.gt.0) then + call dcopy(l-1-m1,w(iuv+2+2*m1),2,w(iw1),-1) + call dpmul1(p1,n1,w(iw1),l-2-m1,w(iw)) + nw=n1+l-2-m1 + else + call dpmul1(p1,n1,w(iuv+2*m1),0,w(iw)) + nw=n1 + endif +c p1*u+p2*v + if(l-1-m2.gt.0) then + call dcopy(l-1-m2,w(iuv+3+2*m2),2,w(iw1),-1) + call dpmul(p2,n2,w(iw1),l-2-m2,w(iw),nw) + else + call dpmul(p2,n2,w(iuv+1+2*m2),0,w(iw),nw) + endif +c p + np=n0-l + call dcopy(np+1,a(l,1),na,w(iw1),1) + call daxpy(np,z,a(l+1,1),na,w(iw1),1) + call dscal(np+1,1.0d+0/fact,w(iw1),1) +c p1*u+p2*v-p + call ddif(np+1,w(iw1),1,w(iw),1) + errd=errd+ddot(nw+1,w(iw),1,w(iw),1) +c +c Estimate the backward error +c ------------------------------ +c first ||p*y+p1|| +c y + call dcopy(n1-np+1,w(ixy+1+2*m2),2,w(iw),-1) +c p*y+p1 + call dpmul1(w(iw1),np,w(iw),n1-np,w(iw)) + call dadd(n1+1,p1,1,w(iw),1) + erri=ddot(n1+1,w(iw),1,w(iw),1) +c now ||p*x-p2|| +c x + call dcopy(n2-np+1,w(ixy+2*m1),2,w(iw),-1) +c p*x + call dpmul1(w(iw1),np,w(iw),n2-np,w(iw)) +c p*x-p2 + call ddif(n2+1,p2,1,w(iw),1) + erri=erri+ddot(n2+1,w(iw),1,w(iw),1) + + if(max(erri,errd).lt.errr) then +c . A better solution found + errr=max(erri,errd) + nb=max(0,n0-l) +c . preserve the gcd and unimodular matrix candidates +c best contains [gcd u,v,x,y], +c the ipb array give info to split best. + ipb(1)=1 +c . store gcd candidate into best + call dcopy(nb+1,a(l,1),na,best(ipb(1)),1) + if(l.gt.1) then + call daxpy(nb+1,z,a(l+1,1),na,best(ipb(1)),1) + endif + call dscal(nb+1,1.0d+0/fact,best(ipb(1)),1) + ipb(2)=ipb(1)+nb+1 + +c . store the unimodular matrix candidate into best + if(l.gt.1) then + nn=max(n2-nb,1) + call dcopy(nn,w(iuv+2*(l-nn)),2,best(ipb(2)),-1) + ipb(3)=ipb(2)+nn + nn=max(n1-nb,1) + call dcopy(nn,w(iuv+1+2*(l-nn)),2,best(ipb(3)),-1) + ipb(4)=ipb(3)+nn + else + best(ipb(2))=w(iuv) + ipb(3)=ipb(2)+1 + best(ipb(3))=w(iuv+1) + ipb(4)=ipb(3)+1 + endif + nn=n2+1-nb + call dcopy(nn,w(ixy+2*(l-nn)),2,best(ipb(4)),-1) + ipb(5)=ipb(4)+nn + nn=n1+1-nb + call dcopy(nn,w(ixy+1+2*(l-nn)),2,best(ipb(5)),-1) + ipb(6)=ipb(5)+nn + endif +c + 99 continue +c increase the dimension of the space + return + end diff --git a/modules/polynomials/src/fortran/bezstp.lo b/modules/polynomials/src/fortran/bezstp.lo new file mode 100755 index 000000000..58d5e10f9 --- /dev/null +++ b/modules/polynomials/src/fortran/bezstp.lo @@ -0,0 +1,12 @@ +# src/fortran/bezstp.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/bezstp.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/polynomials/src/fortran/blktit.f b/modules/polynomials/src/fortran/blktit.f new file mode 100755 index 000000000..cd25ac51d --- /dev/null +++ b/modules/polynomials/src/fortran/blktit.f @@ -0,0 +1,40 @@ +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 blktit(lunit,k1,k2,io) +c!purpose +c generates and outputs a matrix bloc title line of the form : +c <empty line> +c column k1 to k2 +c <empty line> +c! + integer k1,k2,io +c + character*4 fmt2 + character*70 fmt1,cw +c +c number of digit necessary to represent k2 + lft=int(log10(dble(k2)+0.4))+1 + write(fmt2,'(''i'',i2)') lft + + call basout(io,lunit,' ') + if(io.eq.-1) return + + if(k1.eq.k2) then + fmt1='('' column '','//fmt2//')' + write(cw(1:16+lft),fmt1) k1 + call basout(io,lunit,cw(1:16+lft)) + else + fmt1='('' column '','//fmt2//','' to '','//fmt2//')' + write(cw(1:(20+2*lft)),fmt1) k1,k2 + call basout(io,lunit,cw(1:(20+2*lft))) + endif + if (io.eq.-1) return + call basout(io,lunit,' ') + if (io.eq.-1) return + end diff --git a/modules/polynomials/src/fortran/blktit.lo b/modules/polynomials/src/fortran/blktit.lo new file mode 100755 index 000000000..24fffc07d --- /dev/null +++ b/modules/polynomials/src/fortran/blktit.lo @@ -0,0 +1,12 @@ +# src/fortran/blktit.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/blktit.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/polynomials/src/fortran/cacsd_f_Import.def b/modules/polynomials/src/fortran/cacsd_f_Import.def new file mode 100755 index 000000000..ff0c7a146 --- /dev/null +++ b/modules/polynomials/src/fortran/cacsd_f_Import.def @@ -0,0 +1,7 @@ + LIBRARY cacsd_f.dll + + +EXPORTS +; +;cacsd_f +giv_
\ No newline at end of file diff --git a/modules/polynomials/src/fortran/calcsc.f b/modules/polynomials/src/fortran/calcsc.f new file mode 100755 index 000000000..0b7c94a84 --- /dev/null +++ b/modules/polynomials/src/fortran/calcsc.f @@ -0,0 +1,55 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) INRIA +c +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + + subroutine calcsc(type) +c this routine calculates scalar quantities used to +c compute the next k polynomial and new estimates of +c the quadratic coefficients. +c type - integer variable set here indicating how the +c calculations are normalized to avoid overflow + common /gloglo/ p, qp, k, qk, svk, sr, si, u, + * v, a, b, c, d, a1, a2, a3, a6, a7, e, f, g, + * h, szr, szi, lzr, lzi, eta, are, mre, n, nn + double precision p(101), qp(101), k(101), + * qk(101), svk(101), sr, si, u, v, a, b, c, d, + * a1, a2, a3, a6, a7, e, f, g, h, szr, szi, + * lzr, lzi + real eta, are, mre + integer n, nn + integer type +c synthetic division of k by the quadratic 1,u,v + call quadsd(n, u, v, k(1), qk(1), c, d) + if (abs(c).gt.abs(k(n))*100.*eta) go to 10 + if (abs(d).gt.abs(k(n-1))*100.*eta) go to 10 + type = 3 +c type=3 indicates the quadratic is almost a factor +c of k + return + 10 if (abs(d).lt.abs(c)) go to 20 + type = 2 +c type=2 indicates that all formulas are divided by d + e = a/d + f = c/d + g = u*b + h = v*b + a3 = (a+g)*e + h*(b/d) + a1 = b*f - a + a7 = (f+u)*a +h + return + 20 type = 1 +c type=1 indicates that all formulas are divided by c + e = a/c + f = d/c + g = u*e + h = v*b + a3 = a*e + (h/c+g)*b + a1 = b - a*(d/c) + a7 = a + g*d + h*f + return + end diff --git a/modules/polynomials/src/fortran/calcsc.lo b/modules/polynomials/src/fortran/calcsc.lo new file mode 100755 index 000000000..ee8bb3214 --- /dev/null +++ b/modules/polynomials/src/fortran/calcsc.lo @@ -0,0 +1,12 @@ +# src/fortran/calcsc.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/calcsc.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/polynomials/src/fortran/chkvar.f b/modules/polynomials/src/fortran/chkvar.f new file mode 100755 index 000000000..822abb841 --- /dev/null +++ b/modules/polynomials/src/fortran/chkvar.f @@ -0,0 +1,29 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) INRIA +c +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + + logical function chkvar(v1,v2) +c compare polynomials formal names + integer v1(4),v2(4) + logical test + + if(v1(1).eq.0.or.v2(1).eq.0) then + test=.true. + else + test=.false. + do 10 i=1,4 + if(v1(i).ne.v2(i)) goto 20 + 10 continue + test=.true. + endif + 20 chkvar=test + return + end + + + diff --git a/modules/polynomials/src/fortran/chkvar.lo b/modules/polynomials/src/fortran/chkvar.lo new file mode 100755 index 000000000..0cdb5a560 --- /dev/null +++ b/modules/polynomials/src/fortran/chkvar.lo @@ -0,0 +1,12 @@ +# src/fortran/chkvar.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/chkvar.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/polynomials/src/fortran/core_Import.def b/modules/polynomials/src/fortran/core_Import.def new file mode 100755 index 000000000..0a515ae40 --- /dev/null +++ b/modules/polynomials/src/fortran/core_Import.def @@ -0,0 +1,21 @@ + LIBRARY core.dll + + +EXPORTS +; +;core_f +vstk_ +com_ +stack_ +recu_ +iop_ +csimp_ +cha1_ +putlhsvar_ +; +; explicit imports (COMMON) to fix warning LNK4049: locally defined symbol +; +errgst_ +adre_ +intersci_ +;
\ No newline at end of file diff --git a/modules/polynomials/src/fortran/ddmpev.f b/modules/polynomials/src/fortran/ddmpev.f new file mode 100755 index 000000000..c12aa0eac --- /dev/null +++ b/modules/polynomials/src/fortran/ddmpev.f @@ -0,0 +1,47 @@ +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 ddmpev(mp1,d1,nl1,x,v,iv,m,n) +c!purpose +c evaluates a real polynomail matrix at a real point +c! calling sequence +c +c mp1 : tableau contenant les coefficients des polynomes, +c le coefficient de degre k du polynome mp1(i,j) est range +c dans mp1( d1(i + (j-1)*nl1 + k) ) +c mp1 doit etre de taille au moins d1(nl1*n+1)-d1(1) +c d1 : tableau entier de taille nl1*n+1, si k=i+(j-1)*nl1 alors +c d1(k)) contient l'adresse dans mp1 du coeff de degre 0 +c du polynome mp1(i,j). Le degre du polynome mp1(i,j) vaut: +c d1(k+1)-d1(k) -1 +c nl1 : entier definissant le rangement dans d1 +c x : valeur du point pour lequel on de amde l'evaluation +c v : tableau resultat +c iv : entier definissant le rangement dans v +c m : nombre de ligne de la matrice de polynome +c n : nombre de colonne de la matrice de polynome +c! + double precision mp1(*),x,v(iv,*) + integer d1(*),nl1,iv,m,n,dp +c + + do 20 j=1,n + do 10 i=1,m + k=i+(j-1)*nl1 + dp=d1(k+1)-d1(k)-1 + lp=d1(k) + ip=lp+dp + v(i,j)=mp1(ip) + if(dp.eq.0) goto 10 + do 01 l=1,dp + v(i,j)=v(i,j)*x+mp1(ip-l) + 01 continue + 10 continue + 20 continue + return + end diff --git a/modules/polynomials/src/fortran/ddmpev.lo b/modules/polynomials/src/fortran/ddmpev.lo new file mode 100755 index 000000000..ceee4f2c1 --- /dev/null +++ b/modules/polynomials/src/fortran/ddmpev.lo @@ -0,0 +1,12 @@ +# src/fortran/ddmpev.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/ddmpev.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/polynomials/src/fortran/dimin.f b/modules/polynomials/src/fortran/dimin.f new file mode 100755 index 000000000..8c38b2bf5 --- /dev/null +++ b/modules/polynomials/src/fortran/dimin.f @@ -0,0 +1,144 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) 1985-2008 - INRIA - Carlos KLIMANN +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 dimin(lig1,col1,v1,d1,v2,d2,lig2,col2,ligr,colr,ierr) +c!but +c +c Cette subroutine donne les dimensions (lignes, colonnes) de +c la matrice qui resulte de l'insertion d'une +c matrice de polynomes mat2 (ou strings) dans une autre mat1 +c d'apres deux vecteurs donnes. +c +c!parametres d'appel +c +c call dimin(lig1,col1,v1,d1,v2,d2,lig2,col2,ligr,colr,ierr) +c +c ou +c +c lig1, col1: entiers, dimensions de mat1 +c +c v1: vecteur entier +c +c d1: longueur du vecteur v1, s'il est positif doit etre egal +c a lig2. +c +c v2, d2: analogues aux anterieurs, si d2 est positif doit etre +c egal a col2. +c +c Note: si d1 (ou d2 ou les deux sont negatifs, ca signifie +c qu'on prendra toutes les colonnes (ou lignes) de +c mat1. +c +c lig2, col2: analogues aux correspondents 1 +c +c ligr, colr: parametres de sortie, matrice r et +c autres valeurs relationnes. +c +c ierr: si 0 terminaison correcte, +c si 1 un des vecteurs v1 ou v2 a une longueur nulle, +c si 2 mauvaises dimensions de mat2 +c +c +c! + integer v1(*),v2(*) + integer lig1,col1,d1,d2,lig2,col2,ligr,colr,ierr + integer noo1,noo2 +c +c ======================================== +c +c cas ou l'un des deux vecteurs v1 ou v2 est +c de dimension nulle +c +c ======================================== +c + if (d1.eq.0.or.d2.eq.0)then +c erreur pour un des vecteurs de dimensions nulles + ierr=1 + return + endif +c +c ======================================== +c +c cas ou d1 ou d2 sont negatifs +c +c ======================================== +c + if(d1.gt.0.and.d2.gt.0)goto 05 + if(d1.lt.0.and.d2.lt.0) then + if(lig1.ne.lig2.or.col1.ne.col2) then +c erreur pour mauvaises dimensions de mat2 + ierr=2 + return + endif + ligr=lig1 + colr=col1 + goto 999 + endif +c +c ======================================== +c +c cas du premier vecteur a dimension negative +c +c ======================================== +c + if(d1.lt.0) then +c determination de noo2 + noo2=0 + do 06 i=1,d2 + if(v2(i).gt.noo2)noo2=v2(i) +06 continue +c dimensions de r + ligr=max(lig1,1) + colr=max(col1,noo2) + go to 999 + endif +c +c ======================================== +c +c cas ou les dimensions du deuxieme vecteur sont negatives +c +c ======================================== +c + if(d2.lt.0) then +c determination de noo1 + noo1=0 + do 09 i=1,d1 + if(v1(i).gt.noo1)noo1=v1(i) +09 continue +c dimensions de r + ligr=max(lig1,noo1) + colr=max(col1,1) + goto 999 + endif +c +c ======================================== +c +c cas general - ou les dimensions de deux vecteurs sont positives +c +c ======================================== +c +c determination des dimensions correctes +05 if(d1.ne.lig2.or.d2.ne.col2)then + ierr=2 + return + endif +c determination de noo1 et noo2 + noo1=0 + do 01 i=1,d1 + if(v1(i).gt.noo1)noo1=v1(i) +01 continue + noo2=0 + do 02 i=1,d2 + if(v2(i).gt.noo2)noo2=v2(i) +02 continue +c dimensions de r + ligr=max(lig1,noo1) + colr=max(col1,noo2) +999 ierr=0 + return + end diff --git a/modules/polynomials/src/fortran/dimin.lo b/modules/polynomials/src/fortran/dimin.lo new file mode 100755 index 000000000..e5f0c1d91 --- /dev/null +++ b/modules/polynomials/src/fortran/dimin.lo @@ -0,0 +1,12 @@ +# src/fortran/dimin.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/dimin.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/polynomials/src/fortran/dmp2pm.f b/modules/polynomials/src/fortran/dmp2pm.f new file mode 100755 index 000000000..03311535d --- /dev/null +++ b/modules/polynomials/src/fortran/dmp2pm.f @@ -0,0 +1,56 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) 1988-2008 - INRIA - Serge STEER +c +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +C/MEMBR ADD NAME=DMP2PM,SSI=0 +c Copyright INRIA + subroutine dmp2pm(mp,d,nl,pm,deg,m,n) +c!but +c Le sous programme dmptopm convertit la matrice de polynomes +c definie par mp,d,nl en un polynome matriciel pm +c!liste d'appel +c double precision mp(*),pm(m,n*(deg+1)) +c integer d(nl*n+1),nl,m,n,deg +c +c mp: tableau contenant les coefficients des polynomes, +c le coefficient de degre k du polynome mp(i,j) est range +c dans mp( d(i + (j-1)*nl + k) ) +c mp doit etre de taille au moins d(nl*n+1)-d(1) +c d : tableau entier de taille nl*n+1, si k=i+(j-1)*nl alors +c d(k)) contient l'adresse dans pm du coeff de degre 0 +c du polynome mp(i,j). Le degre du polynome mp(i,j) vaut: +c d(k+1)-d(k) -1 +c nl : entier definissant le rangement dans d +c pm : tableau contenant les matrices coefficients du polynomes +c matriciel :soit mp_i la matrice formee des coefficients +c de degre i de mp, alors +c pm=[mp_0,.....mp_deg] +c si deg >max(degre(mp(i,j))) les termes non presents dans mp +c sont supposes nuls +c deg: degre maxi des coefficients du polynome matriciel a extraire +c m : nombre de ligne de la matrice polynomiale +c n : nombre de colonnes de la matrice polynomiale +c +c! + double precision mp(*),pm(*) + integer d(*),nl,m,n,deg +c + mn=m*n + call dset(mn*(deg+1),0.0d+0,pm,1) +c + imp=-nl + ipm=-m + do 20 k=1,n + imp=imp+nl + ipm=ipm+m + do 10 l=1,m + kij=min(deg+1,d(imp+l+1)-d(imp+l)) + call dcopy(kij,mp(d(imp+l)),1,pm(l+ipm),mn) + 10 continue + 20 continue + return + end diff --git a/modules/polynomials/src/fortran/dmp2pm.lo b/modules/polynomials/src/fortran/dmp2pm.lo new file mode 100755 index 000000000..e08f92c72 --- /dev/null +++ b/modules/polynomials/src/fortran/dmp2pm.lo @@ -0,0 +1,12 @@ +# src/fortran/dmp2pm.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/dmp2pm.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/polynomials/src/fortran/dmpad.f b/modules/polynomials/src/fortran/dmpad.f new file mode 100755 index 000000000..b802fefda --- /dev/null +++ b/modules/polynomials/src/fortran/dmpad.f @@ -0,0 +1,103 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) ????-2008 - INRIA - Serge STEER +c +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +C/MEMBR ADD NAME=DMPAD,SSI=0 +c Copyright INRIA + subroutine dmpad(pm1,d1,l1,pm2,d2,l2,pm3,d3,m,n) +c!but +c cette subroutine ajoute deux matrices dont les coefficients +c sont des polynomes: pm3=pm1+pm2 +c!listed'appel +c +c subroutine dmpad(pm1,d1,l1,pm2,d2,l2,pm3,d3,m,n) +c double precision pm1(*),pm2(*),pm3(*) +c integer d1(l1*n+1),d2(l2*n+1),d3(m*n+1),m,n,l1,l2 +c +c pm1 : tableau reel contenant les coefficients des polynomes, +c le coefficient de degre k du polynome pm1(i,j) est range +c dans pm1( d1(i + (j-1)*l1 + k) ) +c pm1 doit etre de taille au moins d1(l1*n+1)-d1(1) +c d1 : tableau entier de taille l1*n+1, si k=i+(j-1)*l1 alors +c d1(k)) contient l'adresse dans pm1 du coeff de degre 0 +c du polynome pm1(i,j). Le degre du polynome pm1(i,j) vaut: +c d1(k+1)-d1(k) -1 +c l1 : entier definissant le rangement dans d1 +c +c pm2,d2,l2 : definitions similaires a celles de pm1,d1,l1 +c pm3,d3 : definitions similaires a celles de pm1 et d1, l3 est +c suppose egal a m +c m : nombre de ligne des matrices pm +c n : nombre de colonnes des matrices pm +c! + double precision pm1(*),pm2(*),pm3(*),eps,w + double precision dlamch + integer d1(*),d2(*),d3(*),m,n,l1,l2 +c + integer n1,n2,n3,mn,i,k +c + eps=dlamch('p') + mn=m*n + d3(1)=1 +c + i1=-l1 + i2=-l2 + k3=0 +c boucle sur les polynomes + do 41 j=1,n + i1=i1+l1 + i2=i2+l2 + do 40 i=1,m + k1=d1(i1+i)-1 + k2=d2(i2+i)-1 + n1=d1(i1+i+1)-d1(i1+i) + n2=d2(i2+i+1)-d2(i2+i) + if(n1.gt.n2) goto 30 +c +c n1.lt.n2 +c + 20 do 21 k=1,n1 + w=pm1(k1+k)+pm2(k2+k) + if(abs(w).gt.max(abs(pm1(k1+k)),abs(pm2(k2+k)))*eps) then + pm3(k3+k)=w + else + pm3(k3+k)=0.0d+0 + endif + 21 continue + if(n1.eq.n2) goto 23 + n3=n1+1 + do 22 k=n3,n2 + pm3(k3+k)=pm2(k2+k) + 22 continue + 23 n3=n2 + d3(i+1+(j-1)*m)=d3(i+(j-1)*m)+n3 + goto 38 +c +c n1.gt.n2 +c + 30 do 31 k=1,n2 + w=pm1(k1+k)+pm2(k2+k) + if(abs(w).gt.max(abs(pm1(k1+k)),abs(pm2(k2+k)))*eps) then + pm3(k3+k)=w + else + pm3(k3+k)=0.0d+0 + endif + 31 continue + n3=n2+1 + do 32 k=n3,n1 + pm3(k3+k)=pm1(k1+k) + 32 continue + n3=n1 + d3(i+1+(j-1)*m)=d3(i+(j-1)*m)+n3 +c + 38 k1=k1+n1 + k2=k2+n2 + k3=k3+n3 + 40 continue + 41 continue + return + end diff --git a/modules/polynomials/src/fortran/dmpad.lo b/modules/polynomials/src/fortran/dmpad.lo new file mode 100755 index 000000000..f1ba93c02 --- /dev/null +++ b/modules/polynomials/src/fortran/dmpad.lo @@ -0,0 +1,12 @@ +# src/fortran/dmpad.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/dmpad.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/polynomials/src/fortran/dmpadj.f b/modules/polynomials/src/fortran/dmpadj.f new file mode 100755 index 000000000..68268823c --- /dev/null +++ b/modules/polynomials/src/fortran/dmpadj.f @@ -0,0 +1,53 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) ????-2008 - INRIA - Serge STEER +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 dmpadj(pm1,d1,m,n) +c!but +c cette subroutine determine les degres effectifs (en eliminant les +c monomes nuls de plus haut degre ) des polynomes d'une matrice de +c polynome. +c!liste d'appel +c +c subroutine dmpadj(pm1,d1,m,n) +c pm1 : tableau reel contenant les coefficients des polynomes, +c le coefficient de degre k du polynome pm1(i,j) est range +c dans pm1( d1(i + (j-1)*l1 + k) ) +c pm1 doit etre de taille au moins d1(l1*n+1)-d1(1) +c d1 : tableau entier de taille l1*n+1, si k=i+(j-1)*l1 alors +c d1(k)) contient l'adresse dans pm1 du coeff de degre 0 +c du polynome pm1(i,j). Le degre du polynome pm1(i,j) vaut: +c d1(k+1)-d1(k) -1 +c Pm1 et d1 sont modifies par l'execution +c +c m : nombre de ligne des matrices pm +c n : nombre de colonnes des matrices pm + double precision pm1(*) + integer d1(*),m,n,dj +c + integer n1 +c + kk=1 + dj=1 +c boucle sur les polynomes + do 40 j=1,m*n + k1=dj-1 + n1=d1(j+1)-dj+1 + 10 n1=n1-1 + if(pm1(k1+n1).eq.0.0d+0.and.n1.gt.1) goto 10 + if(kk.ne.k1+1.and.n1.gt.0) then + do 11 i=1,n1 + pm1(kk-1+i)=pm1(k1+i) + 11 continue + endif + kk=kk+n1 + dj=d1(j+1) + d1(j+1)=kk + 40 continue +c + return + end diff --git a/modules/polynomials/src/fortran/dmpadj.lo b/modules/polynomials/src/fortran/dmpadj.lo new file mode 100755 index 000000000..5c6d6cbed --- /dev/null +++ b/modules/polynomials/src/fortran/dmpadj.lo @@ -0,0 +1,12 @@ +# src/fortran/dmpadj.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/dmpadj.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/polynomials/src/fortran/dmpcle.f b/modules/polynomials/src/fortran/dmpcle.f new file mode 100755 index 000000000..4a702a6e9 --- /dev/null +++ b/modules/polynomials/src/fortran/dmpcle.f @@ -0,0 +1,103 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) ????-2008 - INRIA - Serge STEER +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 dmpcle(pm1,d1,m,n,d2,epsr,epsa) +c!but +c Dans une matrice polynomiale mp1 cette routine met (pour +c chaque polynome) a zero les coefficients de polynomes +c de module inferieur a epsa ou epsr*(norme un du vecteur +c des coefficients du polynome) +c +c!listed'appel +c +c subroutine dmpclea(pm1,d1,m,n,d2,epsr,epsa) +c double precision pm1(*),epsr,epsa +c integer d1(*),d2(*),m,n +c +c pm1 : tableau reel contenant les coefficients des polynomes, +c le coefficient de degre k du polynome pm1(i,j) est range +c dans pm1( d1(i + (j-1)*ld1 + k) ) +c pm1 doit etre de taille au moins d1(ld1*n+1)-d1(1) +c d1 : tableau entier de taille ld1*n+1, si k=i+(j-1)*ld1 alors +c d1(k)) contient l'adresse dans pm1 du coeff de degre 0 +c du polynome pm1(i,j). Le degre du polynome pm1(i,j) vaut: +c d1(k+1)-d1(k) -1 +c m : nombre de ligne de la matrice pm1 +c n : nombre de colonne de matrice pm1 +c d2 : tableau de travail meme taille que d1 + double precision pm1(*),norm,epsr,epsa,eps + integer d1(*),d2(*),m,n,count + logical ok +c +c +c + mn=m*n + ld1=mn+1 + if (mn.eq.1) then + lmin=d1(1) + lmax=d1(2)-1 + norm=0.d0 + do 10 l=lmin,lmax + norm=norm+abs(pm1(l)) + 10 continue + eps=max(epsa,epsr*norm) + ll=lmax+1 + count=0 + ok=.false. + do 20 k=lmin,lmax + ll=ll-1 + if (abs(pm1(ll)).le.eps) then + pm1(ll)=0.d0 + if (ll.eq.lmax) ok=.true. + if (ok.eqv..true.) count=count+1 + else + ok=.false. + endif + 20 continue + d1(2)=d1(2)-count + if (d1(2).le.d1(1)) d1(2)=d1(1)+1 + return + endif + do 30 k=1,ld1 + d2(k)=d1(k) + 30 continue + do 70 k=1,mn + lmin=d2(k) + lmax=d2(k+1)-1 + norm=0.d0 + do 40 l=lmin,lmax + norm=norm+abs(pm1(l)) + 40 continue + eps=max(epsa,epsr*norm) + ll=lmax+1 + count=0 + ok=.false. + do 50 l=lmin,lmax + ll=ll-1 + if (abs(pm1(ll)).le.eps) then + if (ll.eq.lmax) ok=.true. + if (ok.eqv..true.) count=count+1 + pm1(ll)=0.d0 + else + ok=.false. + endif + 50 continue + d1(k+1)=d1(k)+d2(k+1)-d2(k)-count + if (d1(k+1).le.d1(k)) d1(k+1)=d1(k)+1 + 70 continue + l1=d1(2) + do 90 k=2,mn + lmin=d2(k) + ivol=d1(k+1)-d1(k) + do 80 l=0,ivol-1 + pm1(l1+l)=pm1(lmin+l) + 80 continue + l1=l1+ivol + 90 continue + return + end diff --git a/modules/polynomials/src/fortran/dmpcle.lo b/modules/polynomials/src/fortran/dmpcle.lo new file mode 100755 index 000000000..ce9b266ec --- /dev/null +++ b/modules/polynomials/src/fortran/dmpcle.lo @@ -0,0 +1,12 @@ +# src/fortran/dmpcle.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/dmpcle.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/polynomials/src/fortran/dmpcnc.f b/modules/polynomials/src/fortran/dmpcnc.f new file mode 100755 index 000000000..efb3fec64 --- /dev/null +++ b/modules/polynomials/src/fortran/dmpcnc.f @@ -0,0 +1,95 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) ????-2008 - INRIA - Serge STEER +c +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +C/MEMBR ADD NAME=DMPCNC,SSI=0 +c Copyright INRIA + subroutine dmpcnc(pm1,d1,ld1,pm2,d2,ld2,pm3,d3,l,m,n,job) +c!but +c cette subroutine concatene deux matrices dont les coefficients +c sont des polynomes: +c pm3=<pm1 pm2> +c ou +c pm3=<pm1' pm2'>' +c!liste d'appel +c +c subroutine dmpcnc(pm1,d1,ld1,pm2,d2,ld2,pm3,d3,l,m,n,job) +c double precision pm1(*),pm2(*),pm3(*) +c integer d1(ld1*n+1),d2(ld2*n+1),d3(m*n+1),l,m,n,ld1,ld2,job +c +c pm1 : tableau contenant les coefficients des polynomes, +c le coefficient de degre k du polynome pm1(i,j) est range +c dans pm1( d1(i + (j-1)*ld1 + k) ) +c pm1 doit etre de taille au moins d1(ld1*n+1)-d1(1) +c d1 : tableau entier de taille ld1*n+1, si k=i+(j-1)*ld1 alors +c d1(k)) contient l'adresse dans pm1 du coeff de degre 0 +c du polynome pm1(i,j). Le degre du polynome pm1(i,j) vaut: +c d1(k+1)-d1(k) -1 +c ld1 : entier definissant le rangement dans d1 +c +c pm2,d2,ld2 : definitions similaires a celles de pm1,d1,ld1 +c pm3,d3 : definitions similaires a celles de pm1 et d1, l3 est +c suppose egal a m +c l : nombre de ligne de pm1 (et de pm2 et pm3 si job>0) +c m : nombre de colonnes de pm1 (job>0) +c nombre de ligne de pm2 (job<0) +c n : nombre de colonnes de pm2 (job>0) +c et nombre de colonnes de pm1 et pm3 si job <0 +c job : indique l'operation a effectuer: +c job >0 pm3=<pm1 pm2> +c job <0 pm3=<pm1' pm2'>' +c! + double precision pm1(*),pm2(*),pm3(*) + integer d1(*),d2(*),d3(*),l,m,n,ld1,ld2 +c + integer i1,i2,i3,np,i,j +c + i3=1 + d3(1)=1 + i1=1-ld1 + i2=1-ld2 +c + if(job.lt.0) goto 30 +c + do 11 j=1,m + i1=i1+ld1 + np=d1(i1+l)-d1(i1) + call dcopy(np,pm1(d1(i1)),1,pm3(d3(i3)),1) + do 10 i=1,l + i3=i3+1 + d3(i3)=d3(i3-1)+d1(i1+i)-d1(i1+i-1) + 10 continue + 11 continue + do 21 j=1,n + i2=i2+ld2 + np=d2(i2+l)-d2(i2) + call dcopy(np,pm2(d2(i2)),1,pm3(d3(i3)),1) + do 20 i=1,l + i3=i3+1 + d3(i3)=d3(i3-1)+d2(i2+i)-d2(i2+i-1) + 20 continue + 21 continue + return +c + 30 do 50 j=1,n + i1=i1+ld1 + i2=i2+ld2 + np=d1(i1+l)-d1(i1) + call dcopy(np,pm1(d1(i1)),1,pm3(d3(i3)),1) + do 40 i=1,l + i3=i3+1 + d3(i3)=d3(i3-1)+d1(i1+i)-d1(i1+i-1) + 40 continue + np=d2(i2+m)-d2(i2) + call dcopy(np,pm2(d2(i2)),1,pm3(d3(i3)),1) + do 45 i=1,m + i3=i3+1 + d3(i3)=d3(i3-1)+d2(i2+i)-d2(i2+i-1) + 45 continue + 50 continue + return + end diff --git a/modules/polynomials/src/fortran/dmpcnc.lo b/modules/polynomials/src/fortran/dmpcnc.lo new file mode 100755 index 000000000..8d45dd8c7 --- /dev/null +++ b/modules/polynomials/src/fortran/dmpcnc.lo @@ -0,0 +1,12 @@ +# src/fortran/dmpcnc.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/dmpcnc.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/polynomials/src/fortran/dmpext.f b/modules/polynomials/src/fortran/dmpext.f new file mode 100755 index 000000000..d4e8d1072 --- /dev/null +++ b/modules/polynomials/src/fortran/dmpext.f @@ -0,0 +1,147 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) 1986-2008 - INRIA - Serge STEER +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 dmpext(mp,d,m,n,row,nr,col,nc,mp1,d1,job,ierr) +c!but +c dmpext extrait une sous matrice definie par un choix de lignes +c et un choix de colonnes,d'une matrice polynomiale donnee. +c!liste d'appel +c subroutine dmpext(mp,d,m,n,row,nr,col,nc,mp1,d1,job,ierr) +c double precision mp(*),mp1(*) +c integer d(*),m,n,row(*),nr,col(*),nc,d1(*),job,ierr +c +c mp:tableau contenant les coefficients des polynomes de la +c matrice polynomiale donnee +c d:tableau des pointeurs sur les premiers coeff de chaque poly +c m: nombre de ligne de la matrice polynomiale +c n: nombre de colonnes +c row:vecteur contenant les indices des lignes choisies +c si nr <=0 row n'est pas reference +c nr:nombre de lignes choisies ,si nr < 0 on choisit toutes +c les lignes +c col:vecteur contenant les indices des colonnes choisies +c si nc <=0 col n'est pas reference. +c nc:nombre de colonnes choisies, si nc < 0 on choisit toutes +c les colonnes +c mp1:tableau contenant les coeff de la matrice polynomiale +c resultat. si job=0 mp1 n'est pas referencee +c d1:matrice des pointeurs de la matrice polynomiale resultat +c d1 est calculee si job.ne.1,si job =1 d1 doit etre fournie +c job:indicateur d'execution +c job=0 seul d1 est calcule +c job=1 mp1 est calcule supposant d1 donnee +c sinon d1 et mp1 sont calcules +c ierr:indicateur d'erreur: +c ierr=0 ok +c ierr>0 une des lignes (colonnes) choisies n'appartient +c pas a la matrice donnee. +c!sous programmes appeles +c dcopy (blas) +c! +c Copyright INRIA + double precision mp(*),mp1(*) + integer d(*),m,n,row(*),nr,col(*),nc,d1(*),job,ierr +c + ierr=0 + if(nr*nc.eq.0) return + if(m.le.0.or.n.le.0) return + if(nr.lt.0) goto 40 + if(nc.lt.0) goto 50 +c +c un choix de lignes et un choix de colonnes +c +c verifications de la validite des vecteurs row et col +c do 10 j=1,nc +c if(col(j).le.0.or.col(j).gt.n) goto 100 +c 10 continue +c do 11 i=1,nr +c if(row(i).le.0.or.row(i).gt.m) goto 100 +c 11 continue +c + if(job.eq.1) goto 25 +c calcul de la matrice deplacement de la matrice polynomiale resultat + d1(1)=1 + id1=1 + do 20 j=1,nc + id=m*(col(j)-1)+1 + do 20 i=1,nr + id1=id1+1 + 20 d1(id1)=d1(id1-1)+d(id+row(i))-d(id+row(i)-1) + if(job.eq.0) return +c + 25 id1=1 + do 26 j=1,nc + id=m*(col(j)-1) + do 26 i=1,nr + id1=id1+1 + call dcopy(d1(id1)-d1(id1-1),mp(d(id+row(i))),1,mp1(d1(id1-1)),1) + 26 continue + return +c + 40 if(nc.lt.0) goto 60 +c toutes les lignes et un choix de colonnes (nr<0) +c do 41 j=1,nc +c if(col(j).le.0.or.col(j).gt.n) goto 100 +c 41 continue + if(job.eq.1) goto 45 + id1=1 + d1(id1)=1 + do 42 j=1,nc + id=m*(col(j)-1)+1 + do 42 i=1,m + id1=id1+1 + d1(id1)=d1(id1-1)+d(id+i)-d(id+i-1) + 42 continue + if(job.eq.0) return + 45 id1=1 + do 46 j=1,nc + id=1+m*(col(j)-1) + call dcopy(d(id+m)-d(id),mp(d(id)),1,mp1(d1(id1)),1) + id1=id1+m + 46 continue + return +c + 50 continue +c toutes les colonnnes et un choix de lignes +c do 51 i=1,nr +c if(row(i).le.0.or.row(i).gt.m) goto 100 +c 51 continue + if(job.eq.1) goto 55 + id1=1 + d1(1)=1 + id=1-m + do 52 j=1,n + id=id+m + do 52 i=1,nr + id1=id1+1 + d1(id1)=d1(id1-1)+d(id+row(i))-d(id+row(i)-1) + 52 continue + if(job.eq.0) return + 55 continue + id1=1 + do 53 j=1,n + id=(j-1)*m + do 53 i=1,nr + idi=id+row(i) + call dcopy(d(idi+1)-d(idi),mp(d(idi)),1,mp1(d1(id1)),1) + id1=id1+1 + 53 continue + return +c + 60 continue +c toutes les lignes et toutes les colonnes + if(job.eq.1) goto 65 + do 61 i=1,m*n+1 + d1(i)=d(i) + 61 continue + if(job.eq.0) return + 65 call dcopy(d(m*n+1)-1,mp,1,mp1,1) + return +c 100 ierr=1 +c return + end diff --git a/modules/polynomials/src/fortran/dmpext.lo b/modules/polynomials/src/fortran/dmpext.lo new file mode 100755 index 000000000..defbb28fd --- /dev/null +++ b/modules/polynomials/src/fortran/dmpext.lo @@ -0,0 +1,12 @@ +# src/fortran/dmpext.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/dmpext.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/polynomials/src/fortran/dmpins.f b/modules/polynomials/src/fortran/dmpins.f new file mode 100755 index 000000000..8bfda3caa --- /dev/null +++ b/modules/polynomials/src/fortran/dmpins.f @@ -0,0 +1,81 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) 1985-2008 - INRIA - Carlos KLIMANN +c +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +C/MEMBR ADD NAME=DMPINS,SSI=0 +c Copyright INRIA + subroutine dmpins(mat1,dep1,lig1,col1,mat2, + & dep2,lig2,col2,matr,depr,ligr,colr) +c!but +c +c Cette subroutine fait l'insertion (ampliation?) d'une matrice +c de polynomes mat2 dans une autre mat1 d'apres deux vecteurs. +c On suppose donnees depr, ligr et colr. +c Le resultat viendra dans une troisieme matrice. +c +c!parametres d'appel +c +c call dmpins(mat1,dep1,lig1,col1,mat2,dep2,lig2, +c 1 col2,matr,depr,ligr,colr) +c +c ou +c +c mat1: matrice double precision de polynomes +c +c dep1: matrice entiere qui donne les deplacements relatifs des +c elements de mat1 +c +c lig1, col1: entiers, dimensions de mat1 +c +c mat2 ,dep2, lig2, col2: analogues aux correspondents 1 +c (correspond a m dans l'example) +c +c matr, depr, ligr, colr: parametres de sortie, matrice matr et +c autres valeurs relationnes. +c +c +c attention!: aucune de matrices mat1, mat2,matr,dep1, dep2 ou depr +c doit coincider. Cas contraire, les resultats seraient +c imprevisibles. +c +c +c +c! + double precision mat1(*),mat2(*),matr(*) + integer dep1(*),dep2(*),depr(*) +c + integer lig1,col1,lig2,col2,ligr,colr + depr(1)=1 + kr=1 +c + do 20 j=1,colr + do 20 i=1,ligr + kr=kr+1 + lr=depr(kr) + if (lr .lt. 0) then + goto 11 + elseif (lr .eq. 0) then + goto 12 + else + goto 13 + endif + 11 l2=-lr + l=dep2(l2+1)-dep2(l2) + call dcopy(l,mat2(dep2(l2)),1,matr(depr(kr-1)),1) + depr(kr)=depr(kr-1)+l + goto 20 + 12 matr(depr(kr-1))=0.0d+0 + depr(kr)=depr(kr-1)+1 + goto 20 + 13 l1=lr + l=dep1(l1+1)-dep1(l1) + call dcopy(l,mat1(dep1(l1)),1,matr(depr(kr-1)),1) + depr(kr)=depr(kr-1)+l +c + 20 continue + return + end diff --git a/modules/polynomials/src/fortran/dmpins.lo b/modules/polynomials/src/fortran/dmpins.lo new file mode 100755 index 000000000..f7e5a9457 --- /dev/null +++ b/modules/polynomials/src/fortran/dmpins.lo @@ -0,0 +1,12 @@ +# src/fortran/dmpins.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/dmpins.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/polynomials/src/fortran/dmpmu.f b/modules/polynomials/src/fortran/dmpmu.f new file mode 100755 index 000000000..e625fb442 --- /dev/null +++ b/modules/polynomials/src/fortran/dmpmu.f @@ -0,0 +1,132 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) 1985-2008 - INRIA - Carlos KLIMANN +c +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +C/MEMBR ADD NAME=DMPMU,SSI=0 +c Copyright INRIA + subroutine dmpmu(mp1,d1,nl1,mp2,d2,nl2,mp3,d3,l,m,n) +c!purpose +c ce sous programme effectue le calcul du produit de matrices +c de polynomes a coefficients reels +c +c mp3 = mp1 * mp2 +c +c! calling sequence +c +c mp1 : tableau contenant les coefficients des polynomes, +c le coefficient de degre k du polynome mp1(i,j) est range +c dans mp1( d1(i + (j-1)*nl1 + k) ) +c mp1 doit etre de taille au moins d1(nl1*n+1)-d1(1) +c d1 : tableau entier de taille nl1*n+1, si k=i+(j-1)*nl1 alors +c d1(k)) contient l'adresse dans mp1 du coeff de degre 0 +c du polynome mp1(i,j). Le degre du polynome mp1(i,j) vaut: +c d1(k+1)-d1(k) -1 +c nl1 : entier definissant le rangement dans d1 +c +c mp2,d2,nl2 : definitions similaires a celles de mp1,d1,nl1 +c mp3,d3 : definitions similaires a celles de mp1 et d1, nl3 est +c suppose egal a l +c l: nombre de lignes de la matrice pm1 +c m : nombre de ligne des matrices pm +c n : nombre de colonnes des matrices pm +c avec les conventions suivantes: +c +c -si l = 0 signifie que mp1 est un polynome, et que la +c multiplication s'entend alors au sens de la multiplication +c de tous les coefficients de mp2 par mp1. +c +c -si n = 0 signifie que mp2 est un polynome, et que la +c multiplication s'entend au sens de la multiplication de tous +c les coefficients de mp1 par mp2. +c +c -si m = 0 la multiplication s'entend element par element, +c il est alors suppose que mp1 et mp2, donc mp3 sont de dimension +c l x n. +c +c! +c +c&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& +c +c + double precision mp1(*), mp2(*), mp3(*) + integer d1(*), d2(*), d3(*) + integer l, m, n + integer nl1, nl2 + integer i, j, k, k1, k2, k3 + integer p1, p2, p3 +c + d3(1)= 1 + if (l .eq. 0 .or. m .eq. 0 .or. n .eq. 0) goto 500 +c + p2 = -nl2 + p3 = -l + do 10 j = 1, n + p2 = p2 + nl2 + p3 = p3 + l + do 11 i = 1, l + mp3(d3(p3+i)) = 0.0d+0 + k3 = 0 + p1 = i - nl1 + do 12 k = 1, m + p1 = p1 + nl1 + k2 = d2(p2+k+1) - d2(p2+k) - 1 + k1 = d1(p1 + 1) - d1(p1) - 1 + call dpmul(mp1(d1(p1)),k1,mp2(d2(p2+k)),k2, + & mp3(d3(p3+i)),k3) + 12 continue + d3(p3 + i + 1) = d3(p3 + i) + k3 + 1 + 11 continue + 10 continue + return + 500 if (l .eq. 0) goto 600 + if (m .eq. 0) goto 700 + p1 = -nl1 + p3 = -l + k2 = d2(2) - d2(1) - 1 + do 510 j = 1, m + p1 = p1 + nl1 + p3 = p3 + l + do 510 i = 1, l + k3 = 0 + k1 = d1(p1 + i + 1) - d1(p1 + i) - 1 + mp3(d3(p3 + i)) = 0.0d+0 + call dpmul(mp1(d1(p1+i)),k1,mp2(1),k2,mp3(d3(p3+i)),k3) + d3(p3 + i + 1) = d3(p3 + i) + k3 + 1 +510 continue + return +600 k1 = d1(2) - d1(1) - 1 + p2 = -nl2 + p3 = -m + do 610 j = 1, n + p2 = p2 + nl2 + p3 = p3 + m + do 610 i = 1, m + k3 = 0 + k2 = d2(p2 + i + 1) - d2(p2 + i) - 1 + mp3(d3(p3+i)) = 0.0d+0 + call dpmul(mp1(1),k1,mp2(d2(p2+i)),k2,mp3(d3(p3+i)),k3) + d3(p3 + i + 1) = d3(p3 + i) + k3 + 1 +610 continue + return + 700 p1 = -nl1 + p2 = -nl2 + p3 = -l + do 710 j = 1, n + p1 = p1 + nl1 + p2 = p2 + nl2 + p3 = p3 + l + do 710 i = 1, l + k1 = d1(p1 + i + 1) - d1(p1 + i) - 1 + k2 = d2(p2 + i + 1) - d2(p2 + i) - 1 + mp3(d3(p3+i)) = 0.0d+0 + k3 = 0 + call dpmul(mp1(d1(p1+i)),k1,mp2(d2(p2+i)),k2,mp3(d3(p3+i)), + & k3) + d3(p3 + i + 1) = d3(p3 + i) + k3 + 1 +710 continue + return + end diff --git a/modules/polynomials/src/fortran/dmpmu.lo b/modules/polynomials/src/fortran/dmpmu.lo new file mode 100755 index 000000000..5395f0e2b --- /dev/null +++ b/modules/polynomials/src/fortran/dmpmu.lo @@ -0,0 +1,12 @@ +# src/fortran/dmpmu.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/dmpmu.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/polynomials/src/fortran/dmptra.f b/modules/polynomials/src/fortran/dmptra.f new file mode 100755 index 000000000..9d69b915f --- /dev/null +++ b/modules/polynomials/src/fortran/dmptra.f @@ -0,0 +1,54 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) ????-2008 - INRIA - Serge STEER +c +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +C/MEMBR ADD NAME=DMPTRA,SSI=0 +c Copyright INRIA + subroutine dmptra(pm1,d1,ld1,pm2,d2,m,n) +c!but +c cette subroutine transpose une matrice dont les coefficients sont +c des polynomes. +c!liste d'appel +c +c subroutine dmptra(pm1,d1,ld1,pm2,d2,m,n) +c double precision pm1(*),pm2(*) +c integer d1(*),d2(n,m),m,n,iw(n) +c +c pm1 : tableau reel contenant les coefficients des polynomes, +c le coefficient de degre k du polynome pm1(i,j) est range +c dans pm1( d1(i + (j-1)*ld1 + k) ) +c pm1 doit etre de taille au moins d1(ld1*n+1)-d1(1) +c d1 : tableau entier de taille ld1*n+1, si k=i+(j-1)*ld1 alors +c d1(k)) contient l'adresse dans pm1 du coeff de degre 0 +c du polynome pm1(i,j). Le degre du polynome pm1(i,j) vaut: +c d1(k+1)-d1(k) -1 +c ld1 : entier definissant le rangement dans d1 +c +c pm2,d2 : definitions similaires a celles de pm1,d1, ld2 +c est suppose egal a n +c m : nombre de ligne de la matrice pm1 +c n : nombre de colonne de matrice pm1 +c! + double precision pm1(*),pm2(*) + integer d1(*),d2(*),m,n + d2(1)=1 + i2=1 + do 20 i=1,m + i1=i + do 10 j=1,n + l1=d1(i1) + n1=d1(i1+1)-l1 + l2=d2(i2) + call dcopy(n1,pm1(l1),1,pm2(l2),1) + i1=i1+ld1 + i2=i2+1 + d2(i2)=l2+n1 + 10 continue + 20 continue +c + return + end diff --git a/modules/polynomials/src/fortran/dmptra.lo b/modules/polynomials/src/fortran/dmptra.lo new file mode 100755 index 000000000..adbd908aa --- /dev/null +++ b/modules/polynomials/src/fortran/dmptra.lo @@ -0,0 +1,12 @@ +# src/fortran/dmptra.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/dmptra.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/polynomials/src/fortran/dpmul.f b/modules/polynomials/src/fortran/dpmul.f new file mode 100755 index 000000000..370f69a95 --- /dev/null +++ b/modules/polynomials/src/fortran/dpmul.f @@ -0,0 +1,149 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) 1985-2008 - INRIA - Carlos KLIMANN +c +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +C/MEMBR ADD NAME=DPMUL,SSI=0 +c Copyright INRIA + subroutine dpmul(p1,d1,p2,d2,p3,d3) +c!purpose +c ce sous programme effectue le calcul: +c +c p3(x) = p3(x) + (p1(x) * p2(x)) +c +c ou p1, p2 et p3 sont des polynomes de degres d1, d2 et d3, +c respectivement. Ils sont classes en ordre croissant. +c Tous les parametres sont d'entree, sauf p3 et d3 qui sont +c d'entree-sortie. +c! +c &&var + implicit double precision (a-h,o-z) + double precision dlamch,ddot + double precision p1(*),p2(*),p3(*) + integer d1,d2,d3 + integer dmax,dmin,dsum + integer i, k, j, l + integer e1, e2 + eps=dlamch('p') +c &&ker + dsum = d1 + d2 +c fixation de dmax et dmin + dmax = d1 + if (d2 .gt. d1) dmax = d2 + dmin = dsum - dmax +c fixation de d3 + if (d3 .ge. dsum) goto 1 + e1 = d3+2 + e2 = dsum +1 + do 2 i = e1 , e2 + p3(i) = 0.0d+0 + 2 continue + d3 = dsum + 1 continue +c cas des degres egaux a zero + if (d1 .eq. 0 .or. d2 .eq. 0) goto 53 +c produit et addition + e1 = 1 + e2 = dmin + 1 + do 10 i = e1, e2 + w=ddot(i,p1(1),1,p2(1),-1) + w1=p3(i)+w + if(abs(w1).gt.eps*max(abs(p3(i)),abs(w))) then + p3(i) = w1 + else + p3(i)=0.0d+0 + endif + 10 continue + k = 1 + if (d1 .eq. d2) goto 21 + e1 = dmin + 2 + e2 = dmax + 1 +c si d1 > d2 + if (d1 .lt. d2) goto 25 + do 20 i = e1, e2 + k = k + 1 + w=ddot(dmin+1, p1(k), 1, p2(1), -1) + w1=p3(i)+w + if(abs(w1).gt.eps*max(abs(p3(i)),abs(w))) then + p3(i) = w1 + else + p3(i)=0.0d+0 + endif + 20 continue + 21 e1 = dmax + 2 + e2 = dsum + 1 + l = 1 + j = dmin + 1 + do 40 i = e1, e2 + j = j -1 + k = k + 1 + l =l + 1 + w=ddot(j, p1(k), 1, p2(l), -1) + w1=p3(i)+w + if(abs(w1).gt.eps*max(abs(p3(i)),abs(w))) then + p3(i) = w1 + else + p3(i)=0.0d+0 + endif + 40 continue + return +c si d2 > d1 + 25 do 30 i = e1, e2 + k = k + 1 + w=ddot(dmin+1, p2(k), -1, p1(1), 1) + w1=p3(i)+w + if(abs(w1).gt.eps*max(abs(p3(i)),abs(w))) then + p3(i) = w1 + else + p3(i)=0.0d+0 + endif + 30 continue + e1 = dmax + 2 + e2 = dsum + 1 + l = 1 + j = dmin + 1 + do 50 i = e1, e2 + j = j -1 + k = k + 1 + l =l + 1 + w=ddot(j, p1(l), 1, p2(k), -1) + w1=p3(i)+w + if(abs(w1).gt.eps*max(abs(p3(i)),abs(w))) then + p3(i) = w1 + else + p3(i)=0.0d+0 + endif + 50 continue + return +c cas des degres egaux a zero + 53 if (d1 .eq. 0 .and. d2 .eq. 0) goto 100 + e1 = 1 + if (d1 .eq.0) goto 60 + e2 = d1 + 1 + do 55 i = e1, e2 + w=p1(i) * p2(1) + w1=p3(i)+w + if(abs(w1).gt.eps*max(abs(p3(i)),abs(w))) then + p3(i) = w1 + else + p3(i)=0.0d+0 + endif + 55 continue + return + 60 e2 = d2 + 1 + do 65 i = e1, e2 + w=p2(i) * p1(1) + w1=p3(i)+w + if(abs(w1).gt.eps*max(abs(p3(i)),abs(w))) then + p3(i) = w1 + else + p3(i)=0.0d+0 + endif + 65 continue + return + 100 p3(1) = p3(1) + p1(1) * p2(1) + return + end diff --git a/modules/polynomials/src/fortran/dpmul.lo b/modules/polynomials/src/fortran/dpmul.lo new file mode 100755 index 000000000..2fac46bde --- /dev/null +++ b/modules/polynomials/src/fortran/dpmul.lo @@ -0,0 +1,12 @@ +# src/fortran/dpmul.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/dpmul.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/polynomials/src/fortran/dpmul1.f b/modules/polynomials/src/fortran/dpmul1.f new file mode 100755 index 000000000..0a05a2d7f --- /dev/null +++ b/modules/polynomials/src/fortran/dpmul1.f @@ -0,0 +1,78 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) ????-2008 - INRIA - Serge STEER +c +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +C/MEMBR ADD NAME=DPMUL1,SSI=0 +c Copyright INRIA + subroutine dpmul1(p1,d1,p2,d2,p3) +c!but +c ce sous programme effectue le produit polynomial: +c +c p3(x) = p1(x) * p2(x) +c +c!liste d'appel +c subroutine dpmul1(p1,d1,p2,d2,p3) +c double precision p1(d1+1),p2(d2+1),p3(d1+d2+1) +c integer d1,d2,d3 +c +c p1 : contient les coefficient du premier polynome ranges +c suivant les puissances croissantes +c p2 : contient les coefficients du second polynome ranges +c suivant les puissances croissantes +c p3 :contient les coefficient du resultats. +c p3 peut designer la meme adresse que p1 ou p2 +c d1,d2 : degre respectifs des polynomesp1 et p2 +c!sous programmes appeles +c ddot (blas) +c min (fortran) +c! +c &&var + double precision p1(*),p2(*),p3(*),ddot + integer d1,d2,d3 + integer k,l1,l2,l3,l,m3 +c &&ker + l=1 + l1=d1+1 + l2=d2+1 + d3=d1+d2 + l3=d3+1 +c + m3=min(l1,l2) + do 10 k=1,m3 + p3(l3)=ddot(l,p1(l1),1,p2(l2),-1) + l=l+1 + l3=l3-1 + l1=l1-1 + l2=l2-1 + 10 continue + l=l-1 +c + if(l1.eq.0) goto 30 + m3=l1 + do 20 k=1,m3 + p3(l3)=ddot(l,p1(l1),1,p2,-1) + l1=l1-1 + l3=l3-1 + 20 continue + goto 40 + 30 if(l2.eq.0) goto 40 + m3=l2 + do 31 k=1,m3 + p3(l3)=ddot(l,p1,1,p2(l2),-1) + l2=l2-1 + l3=l3-1 + 31 continue +c + 40 if(l3.eq.0) return + m3=l3 + do 41 k=1,m3 + l=l-1 + p3(l3)=ddot(l,p1,1,p2,-1) + l3=l3-1 + 41 continue + return + end diff --git a/modules/polynomials/src/fortran/dpmul1.lo b/modules/polynomials/src/fortran/dpmul1.lo new file mode 100755 index 000000000..6eb0076a0 --- /dev/null +++ b/modules/polynomials/src/fortran/dpmul1.lo @@ -0,0 +1,12 @@ +# src/fortran/dpmul1.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/dpmul1.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/polynomials/src/fortran/dpodiv.f b/modules/polynomials/src/fortran/dpodiv.f new file mode 100755 index 000000000..f25e7ebf2 --- /dev/null +++ b/modules/polynomials/src/fortran/dpodiv.f @@ -0,0 +1,44 @@ +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 dpodiv(a,b,na,nb ) + implicit double precision (a-h,o-z) + dimension a(*),b(*) +c +c 1. a: avant execution c'est le tableau des coefficients du +c polynome dividende range suivant les puissances croissantes +c de la variable (ordre na+1). +c apres execution,contient dans les nb premiers elements +c le tableau des coefficients du reste ordonne suivant les +c puissances croissantes, et dans les (na-nb+1) derniers elements, +c le tableau des coefficients du polynome quotient range suivant +c les puissances croissantes de la variable. +c 2. b: tableau des coefficients du polynome diviseur range suivant +c les puissances croissantes de la variable (ordre nb+1). +c 3. na: degre du polynome a. +c 4. nb: degre du polynome b. +c + l=na-nb+1 + 2 if (l .le. 0) then + goto 5 + else + goto 3 + endif + 3 n=l+nb + q=a(n)/b(nb+1) + nb1=nb+1 + do 4 i=1,nb1 + n1=nb-i+2 + n2=n-i+1 + 4 a(n2)=a(n2)-b(n1)*q + a(n)=q + l=l-1 + goto 2 + 5 continue + return + end diff --git a/modules/polynomials/src/fortran/dpodiv.lo b/modules/polynomials/src/fortran/dpodiv.lo new file mode 100755 index 000000000..91d50c900 --- /dev/null +++ b/modules/polynomials/src/fortran/dpodiv.lo @@ -0,0 +1,12 @@ +# src/fortran/dpodiv.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/dpodiv.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/polynomials/src/fortran/dprxc.f b/modules/polynomials/src/fortran/dprxc.f new file mode 100755 index 000000000..839080b1d --- /dev/null +++ b/modules/polynomials/src/fortran/dprxc.f @@ -0,0 +1,56 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) ????-2008 - INRIA - Serge STEER +c +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +C/MEMBR ADD NAME=DPRXC,SSI=0 +c Copyright INRIA + subroutine dprxc(n,roots,coeff) +c!but +c dpxrc calcule les coefficients d'un polynome defini par ses +c racines (reelles) et dont le coefficient de degre maximum est 1 +c +c!liste d'appel +c subroutine dpxrc(n,roots,coeff) +c double precision roots(n),coeff(n+1) +c integer n +c +c n : degre du polynome +c roots : tableau contenant les racines +c coeff : tableau contenant les coefficients du polynome, ranges +c par odre croissant +c!sous programmes appeles +c dset daxpy (blas) +c! + double precision roots(n),coeff(*) + integer n +c + integer j,nj, ninf + double precision dlamch +c + ninf=0 + call dset (n,0.0d+0,coeff,1) + coeff(n+1)=1.0d+0 +c + do 10 j=1,n + if(abs(roots(j)).gt.dlamch('o')) then +c . infinite roots gives zero high degree coeff + ninf=ninf+1 + else + nj=n+1-j +c call daxpy(j,-roots(j),coeff(nj+1),1,coeff(nj),1) + do k=nj,nj+j-1 + coeff(k)=coeff(k)-roots(j)*coeff(1+k) + enddo + endif + 10 continue + if (ninf.gt.0) then + call unsfdcopy(n-ninf+1,coeff(ninf+1),1,coeff(1),1) + call dset(ninf,0.0d0,coeff(n-ninf+2),1) + endif +c + return + end diff --git a/modules/polynomials/src/fortran/dprxc.lo b/modules/polynomials/src/fortran/dprxc.lo new file mode 100755 index 000000000..d11cad1da --- /dev/null +++ b/modules/polynomials/src/fortran/dprxc.lo @@ -0,0 +1,12 @@ +# src/fortran/dprxc.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/dprxc.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/polynomials/src/fortran/dpsimp.f b/modules/polynomials/src/fortran/dpsimp.f new file mode 100755 index 000000000..aab4f27b5 --- /dev/null +++ b/modules/polynomials/src/fortran/dpsimp.f @@ -0,0 +1,192 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) 1990-2008 - INRIA - Serge STEER +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 dpsimp(a,na,b,nb,a1,na1,b1,nb1,w,ierr) +c! but +c Etant donnes une fraction rationnelle donnee par ses polynomes +c numerateur et denominateurs, ce sous programme retourne le numerateur +c et le denominateur de sa representation simplifiee. +c! liste d'appel +c subroutine dpsimp(a,na,b,nb,as,nas,bs,nbs,w,ierr) +c +c double precision a(na+1),b(nb+1),as(*),bs(*),w,er +c integer na,nb,nas,nbs,ierr +c +c a : tableau contenant les coefficients du numerateur range +c par puissance croissante.(entree) +c na : degre du numerateur (entree) +c b : tableau contenant les coefficients du denominateur range +c par puissance croissante. (entree) +c nb : degre du denominateur (entree) +c +c a1 : tableau contenant les coefficients du numerateur range +c par puissance croissante.(sortie) +c na1 : degre+1 du numerateur (sortie) +c b1 : tableau contenant les coefficients du denominateur range +c par puissance croissante. (sortie) +c nb1 : degre+1 du denominateur (sortie) +c +c les implantations de a et a1, b et b1 peuvent etre confondues. +c Dans les cas ou les zones memoires de a (resp b) et a1 (resp b1) se +c chevauchent, l'adresse de a1 (resp b1) doit etre au moins egale a +c l'adresse de a (resp b) +c +c w : tableau de travail de taille: +c 2*(na+nb)+min(na,nb)+10*max(na,nb)+3*max(na,nb)**2+4 +c ierr : +c en entree ierr specifie l'espace memoire disponible dans w +c en sortie: +c ierr=0 : ok +c ierr=1 : denominateur nul +c ierr=2 : espace memoire insuffisant on retourne les polynomes +c! + double precision a(na+1),b(nb+1),w(*),a1(*),b1(*),t,er,t1,t2 + integer na,nb,ierr,ipb(6) +c + lw=1+2*(na+nb)+min(na,nb)+3 +c n0=max(na,nb)+1 +c lfree=lw+10*n0+3*n0*n0 + +c + maxw=ierr + ierr=0 +c +c degre reel des polynomes +c + +c + nnb=nb+1 + 08 nnb=nnb-1 + if(nnb.lt.0) then + ierr=1 + return + endif + if(b(nnb+1).eq.0.0d+0) goto 08 + + nna=na+1 + 09 nna=nna-1 + if(nna.lt.0) goto 20 + if(a(nna+1).eq.0.0d+0) goto 09 +c +c elimination des racines en zero + la0=0 + 10 la0=la0+1 + if(a(la0).eq.0.0d+0) goto 10 + na1=nna-(la0-1) + nz=la0-1 +c + lb0=0 + 11 lb0=lb0+1 + if(b(lb0).eq.0.0d+0) goto 11 + nb1=nnb-(lb0-1) + nz=nz-(lb0-1) +c + + n0=max(na1,nb1)+1 + lfree=lw+10*n0+3*n0*n0 + if(lfree.ge.maxw.and.na1.gt.0.and.nb1.gt.0) ierr=2 + if(lfree.ge.maxw.or.na1.eq.0.or.nb1.eq.0) then + if(nz.eq.0) then + call dcopy(na1+1,a(la0),1,a1,1) + call dcopy(nb1+1,b(lb0),1,b1,1) + elseif(nz.gt.0) then + call dset(nz,0.0d0,a1,1) + call dcopy(na1+1,a(la0),1,a1(nz+1),1) + call dcopy(nb1+1,b(lb0),1,b1,1) + na1=na1+nz + else + call dcopy(na1+1,a(la0),1,a1,1) + call dset(-nz,0.0d0,b1,1) + call dcopy(nb1+1,b(lb0),1,b1(-nz+1),1) + nb1=nb1-nz + endif + na1=na1+1 + nb1=nb1+1 + return + endif +c normalize highest degree coefficients of num and den + t1=a(nna+1) + t2=b(nnb+1) + call dscal(na1+1,1.0d0/t1,a(la0),1) + call dscal(nb1+1,1.0d0/t2,b(lb0),1) +c + call recbez(a(la0),na1,b(lb0),nb1,w,ipb,w(lw),er) + if(er.gt.1d-3) goto 30 + nden=ipb(5)-ipb(4) + nnum=ipb(6)-ipb(5) + if(na1.ne.nnum-1) then + t=w(ipb(5)-1) + t=(1.0d0)/t + if(nz.eq.0) then + call dcopy(nnum,w(ipb(5)),1,a1,1) + call dcopy(nden,w(ipb(4)),1,b1,1) + call dscal(nden,t,b1,1) + else if(nz.gt.0) then + call dcopy(nnum,w(ipb(5)),1,a1(1+nz),1) + call dset(nz,0.0d0,a1,1) + nnum=nnum+nz + call dcopy(nden,w(ipb(4)),1,b1,1) + call dscal(nden,t,b1,1) + else if(nz.lt.0) then + nz=-nz + call dcopy(nnum,w(ipb(5)),1,a1,1) + call dcopy(nden,w(ipb(4)),1,b1(1+nz),1) + call dset(nz,0.0d+0,b1,1) + call dscal(nden,t,b1(1+nz),1) + nden=nden+nz + endif + call dscal(nnum,-t*t1/t2,a1,1) + else + if(nz.eq.0) then + call dcopy(nnum,a(la0),1,a1,1) + call dcopy(nden,b(lb0),1,b1,1) + else if(nz.gt.0) then + call dcopy(nnum,a(la0),1,a1(1+nz),1) + call dset(nz,0.0d+0,a1,1) + nnum=nnum+nz + call dcopy(nden,b(lb0),1,b1,1) + else + nz=-nz + call dcopy(nnum,a(la0),1,a1,1) + call dcopy(nden,b(lb0),1,b1(1+nz),1) + call dset(nz,0.0d+0,b1,1) + nden=nden+nz + endif + call dscal(nnum,t1,a1,1) + call dscal(nden,t2,b1,1) + + endif + na1=nnum + nb1=nden + return + 20 a1(1)=0.0d+0 + b1(1)=1.0d+0 + na1=1 + nb1=1 + return + 30 if(nz.eq.0) then + call dcopy(na1+1,a(la0),1,a1,1) + call dcopy(nb1+1,b(lb0),1,b1,1) + elseif(nz.gt.0) then + call dset(nz,0.0d0,a1,1) + call dcopy(na1+1,a(la0),1,a1(nz+1),1) + call dcopy(nb1+1,b(lb0),1,b1,1) + na1=na1+nz + else + call dcopy(na1+1,a(la0),1,a1,1) + call dset(-nz,0.0d0,b1,1) + call dcopy(nb1+1,b(lb0),1,b1(-nz+1),1) + nb1=nb1-nz + endif + na1=na1+1 + nb1=nb1+1 + call dscal(na1,t1,a1,1) + call dscal(nb1,t2,b1,1) + return + + end diff --git a/modules/polynomials/src/fortran/dpsimp.lo b/modules/polynomials/src/fortran/dpsimp.lo new file mode 100755 index 000000000..0df13b036 --- /dev/null +++ b/modules/polynomials/src/fortran/dpsimp.lo @@ -0,0 +1,12 @@ +# src/fortran/dpsimp.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/dpsimp.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/polynomials/src/fortran/dwmpmu.f b/modules/polynomials/src/fortran/dwmpmu.f new file mode 100755 index 000000000..f8305f5e6 --- /dev/null +++ b/modules/polynomials/src/fortran/dwmpmu.f @@ -0,0 +1,146 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) 1985-2008 - INRIA - Carlos KLIMANN +c +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +C/MEMBR ADD NAME=DWMPMU,SSI=0 + subroutine dwmpmu(mp1r,d1,nl1,mp2r,mp2i,d2,nl2, + & mp3r,mp3i,d3,l,m,n) +c!purpose +c ce sous programme effectue le calcul du produit de matrices +c de polynomes mp1 a coefficients reels et mp2 a coefficients complexes +c +c mp3 = mp1 * mp2 +c +c! calling sequence +c +c pm1 : tableau contenant les coefficients des polynomes, +c le coefficient de degre k du polynome pm1(i,j) est range +c dans pm1( d1(i + (j-1)*nl1 + k) ) +c pm1 doit etre de taille au moins d1(nl1*n+1)-d1(1) +c d1 : tableau entier de taille nl1*n+1, si k=i+(j-1)*nl1 alors +c d1(k)) contient l'adresse dans pm1 du coeff de degre 0 +c du polynome pm1(i,j). Le degre du polynome pm1(i,j) vaut: +c d1(k+1)-d1(k) -1 +c nl1 : entier definissant le rangement dans d1 +c +c pm2,d2,nl2 : definitions similaires a celles de pm1,d1,nl1 +c pm3,d3 : definitions similaires a celles de pm1 et d1, nl3 est +c suppose egal a l +c l : nombre de lignes de mp1 +c m : nombre de ligne des matrices pm +c n : nombre de colonnes des matrices pm +c avec les conventions suivantes: +c +c -si l = 0 signifie que mp1 est un polynome, et que la +c multiplication s'entend alors au sens de la multiplication +c de tous les coefficients de mp2 par mp1. +c +c -si n = 0 signifie que mp2 est un polynome, et que la +c multiplication s'entend au sens de la multiplication de tous +c les coefficients de mp1 par mp2. +c +c -si m = 0 la multiplication s'entend element par element, +c il est alors suppose que mp1 et mp2, donc mp3 sont de dimension +c l x n. +c +c! +c +c&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& +c +c + double precision mp1r(*),mp2r(*),mp2i(*),mp3r(*),mp3i(*) + integer d1(*), d2(*), d3(*) + integer l, m, n + integer nl1, nl2 + integer i, j, k, k1, k2, k3 + integer p1, p2, p3 +c + d3(1)= 1 + if (l .eq. 0 .or. m .eq. 0 .or. n .eq. 0) goto 500 +c + p2 = -nl2 + p3 = -l + do 10 j = 1, n + p2 = p2 + nl2 + p3 = p3 + l + do 11 i = 1, l + mp3r(d3(p3+i)) = 0.0d+0 + mp3i(d3(p3+i)) = 0.0d+0 + k3 = 0 + p1 = i - nl1 + do 12 k = 1, m + p1 = p1 + nl1 + k2 = d2(p2+k+1) - d2(p2+k) - 1 + k1 = d1(p1 + 1) - d1(p1) - 1 + kk=k3 + call dpmul(mp1r(d1(p1)),k1,mp2r(d2(p2+k)),k2, + & mp3r(d3(p3+i)),kk) + call dpmul(mp1r(d1(p1)),k1,mp2i(d2(p2+k)),k2, + & mp3i(d3(p3+i)),k3) + 12 continue + d3(p3 + i + 1) = d3(p3 + i) + k3 + 1 + 11 continue + 10 continue + return + 500 if (l .eq. 0) goto 600 + if (m .eq. 0) goto 700 + p1 = -nl1 + p3 = -l + k2 = d2(2) - d2(1) - 1 + do 510 j = 1, m + p1 = p1 + nl1 + p3 = p3 + l + do 510 i = 1, l + k3 = 0 + k1 = d1(p1 + i + 1) - d1(p1 + i) - 1 + mp3r(d3(p3 + i)) = 0.0d+0 + kk=k3 + call dpmul(mp1r(d1(p1+i)),k1,mp2r(1),k2,mp3r(d3(p3+i)),kk) + mp3i(d3(p3 + i)) = 0.0d+0 + call dpmul(mp1r(d1(p1+i)),k1,mp2i(1),k2,mp3i(d3(p3+i)),k3) + d3(p3 + i + 1) = d3(p3 + i) + k3 + 1 +510 continue + return +600 k1 = d1(2) - d1(1) - 1 + p2 = -nl2 + p3 = -m + do 610 j = 1, n + p2 = p2 + nl2 + p3 = p3 + m + do 610 i = 1, m + k3 = 0 + k2 = d2(p2 + i + 1) - d2(p2 + i) - 1 + mp3r(d3(p3+i)) = 0.0d+0 + kk=k3 + call dpmul(mp1r(1),k1,mp2r(d2(p2+i)),k2,mp3r(d3(p3+i)),kk) + mp3i(d3(p3+i)) = 0.0d+0 + call dpmul(mp1r(1),k1,mp2i(d2(p2+i)),k2,mp3i(d3(p3+i)),k3) + d3(p3 + i + 1) = d3(p3 + i) + k3 + 1 +610 continue + return + 700 p1 = -nl1 + p2 = -nl2 + p3 = -l + do 710 j = 1, n + p1 = p1 + nl1 + p2 = p2 + nl2 + p3 = p3 + l + do 710 i = 1, l + k1 = d1(p1 + i + 1) - d1(p1 + i) - 1 + k2 = d2(p2 + i + 1) - d2(p2 + i) - 1 + mp3r(d3(p3+i)) = 0.0d+0 + k3 = 0 + call dpmul(mp1r(d1(p1+i)),k1,mp2r(d2(p2+i)),k2, + 1 mp3r(d3(p3+i)),k3) + mp3i(d3(p3+i)) = 0.0d+0 + k3 = 0 + call dpmul(mp1r(d1(p1+i)),k1,mp2i(d2(p2+i)),k2, + 1 mp3i(d3(p3+i)),k3) + d3(p3 + i + 1) = d3(p3 + i) + k3 + 1 +710 continue + return + end diff --git a/modules/polynomials/src/fortran/dwmpmu.lo b/modules/polynomials/src/fortran/dwmpmu.lo new file mode 100755 index 000000000..a2be16803 --- /dev/null +++ b/modules/polynomials/src/fortran/dwmpmu.lo @@ -0,0 +1,12 @@ +# src/fortran/dwmpmu.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/dwmpmu.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/polynomials/src/fortran/fxshfr.f b/modules/polynomials/src/fortran/fxshfr.f new file mode 100755 index 000000000..8f04a986c --- /dev/null +++ b/modules/polynomials/src/fortran/fxshfr.f @@ -0,0 +1,122 @@ +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 fxshfr(l2, nz) +c computes up to l2 fixed shift k-polynomials, +c testing for convergence in the linear or quadratic +c case. initiates one of the variable shift +c iterations and returns with the number of zeros +c found. +c l2 - limit of fixed shift steps +c nz - number of zeros found + common /gloglo/ p, qp, k, qk, svk, sr, si, u, + * v, a, b, c, d, a1, a2, a3, a6, a7, e, f, g, + * h, szr, szi, lzr, lzi, eta, are, mre, n, nn + double precision p(101), qp(101), k(101), + * qk(101), svk(101), sr, si, u, v, a, b, c, d, + * a1, a2, a3, a6, a7, e, f, g, h, szr, szi, + * lzr, lzi + real eta, are, mre + integer n, nn + double precision svu, svv, ui, vi, s + real betas, betav, oss, ovv, ss, vv, ts, tv, + * ots, otv, tvv, tss + integer l2, nz, type, i, j, iflag + logical vpass, spass, vtry, stry + nz = 0 + betav = .25 + betas = .25 + oss = sr + ovv = v +c evaluate polynomial by synthetic division + call quadsd(nn, u, v, p(1), qp(1), a, b) + call calcsc(type) + do 80 j=1,l2 +c calculate next k polynomial and estimate v + call nextk(type) + call calcsc(type) + call newest(type, ui, vi) + vv = vi +c estimate s + ss = 0. + if (k(n).ne.0.0d+0) ss = -p(nn)/k(n) + tv = 1. + ts = 1. + if (j.eq.1 .or. type.eq.3) go to 70 +c compute relative measures of convergence of s and v +c sequences + if (vv.ne.0.) tv = abs((vv-ovv)/vv) + if (ss.ne.0.) ts = abs((ss-oss)/ss) +c if decreasing, multiply two most recent +c convergence measures + tvv = 1. + if (tv.lt.otv) tvv = tv*otv + tss = 1. + if (ts.lt.ots) tss = ts*ots +c compare with convergence criteria + vpass = tvv.lt.betav + spass = tss.lt.betas + if (.not.(spass .or. vpass)) go to 70 +c at least one sequence has passed the convergence +c test. store variables before iterating + svu = u + svv = v + do 10 i=1,n + svk(i) = k(i) + 10 continue + s = ss +c choose iteration according to the fastest +c converging sequence + vtry = .false. + stry = .false. + if (spass .and. ((.not.vpass) .or. + * tss.lt.tvv)) go to 40 + 20 call quadit(ui, vi, nz) + if (nz.gt.0) return +c quadratic iteration has failed. flag that it has +c been tried and decrease the convergence criterion. + vtry = .true. + betav = betav*.25 +c try linear iteration if it has not been tried and +c the s sequence is converging + if (stry .or. (.not.spass)) go to 50 + do 30 i=1,n + k(i) = svk(i) + 30 continue + 40 call realit(s, nz, iflag) + if (nz.gt.0) return +c linear iteration has failed. flag that it has been +c tried and decrease the convergence criterion + stry = .true. + betas = betas*.25 + if (iflag.eq.0) go to 50 +c if linear iteration signals an almost double real +c zero attempt quadratic interation + ui = -(s+s) + vi = s*s + go to 20 +c restore variables + 50 u = svu + v = svv + do 60 i=1,n + k(i) = svk(i) + 60 continue +c try quadratic iteration if it has not been tried +c and the v sequence is converging + if (vpass .and. (.not.vtry)) go to 20 +c recompute qp and scalar values to continue the +c second stage + call quadsd(nn, u, v, p(1), qp(1), a, b) + call calcsc(type) + 70 ovv = vv + oss = ss + otv = tv + ots = ts + 80 continue + return + end diff --git a/modules/polynomials/src/fortran/fxshfr.lo b/modules/polynomials/src/fortran/fxshfr.lo new file mode 100755 index 000000000..a9575f1e7 --- /dev/null +++ b/modules/polynomials/src/fortran/fxshfr.lo @@ -0,0 +1,12 @@ +# src/fortran/fxshfr.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/fxshfr.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/polynomials/src/fortran/horner.f b/modules/polynomials/src/fortran/horner.f new file mode 100755 index 000000000..32fb48e84 --- /dev/null +++ b/modules/polynomials/src/fortran/horner.f @@ -0,0 +1,49 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) 1986-2008 - INRIA - Serge STEER +c +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +C/MEMBR ADD NAME=HORNER,SSI=0 + subroutine horner(p,dp,xr,xi,vr,vi) +c!but +c cette subroutine calcule la valeur du polynome p au point x +c suivant la formule de horner +c!liste d'appel +c subroutine horner(p,dp,xr,xi,vr,vi) +c +c double precision p(dp+1),xr,xi,vr,vi +c integer dp +c +c p : tableau contenant les coefficients du polynome ranges +c consecutivement et par puissance croissante +c dp : degre du polynome +c xr,xi : parties reelle et imaginaire de l'argument +c vr,vi : parties reelle et imaginaire du resultat +c! + integer dp,ip,i + double precision p(dp+1),xr,xi,vr,vi,t +c + ip=dp+1 + vr=p(ip) + vi=0.0d+0 + if(dp.eq.0) return + if(xi.ne.0.0d+0) goto 20 +c x reel + do 10 i=1,dp + vr=vr*xr+p(ip-i) + 10 continue + return +c +c x complexe + 20 continue + do 21 i=1,dp + t=vr*xr-vi*xi+p(ip-i) + vi=vi*xr+vr*xi + vr=t + 21 continue + return +c + end diff --git a/modules/polynomials/src/fortran/horner.lo b/modules/polynomials/src/fortran/horner.lo new file mode 100755 index 000000000..357b706d1 --- /dev/null +++ b/modules/polynomials/src/fortran/horner.lo @@ -0,0 +1,12 @@ +# src/fortran/horner.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/horner.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/polynomials/src/fortran/idegre.f b/modules/polynomials/src/fortran/idegre.f new file mode 100755 index 000000000..8304ae418 --- /dev/null +++ b/modules/polynomials/src/fortran/idegre.f @@ -0,0 +1,33 @@ +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 idegre(a,majo,nvrai) +c!but +c calcul du degre d un polynome +c!liste d'appel +c a=coeff par ordre croissant +c majo=majorant +c nvrai=degre calcule +c! + dimension a(*) + double precision a,test,dasum,an +c + an=dasum(majo+1,a,1) + if(an.eq.0.0d+0) goto 20 + if(majo.eq.0) goto 20 + do 10 k=1,majo+1 + kk=majo+2-k + test=abs(a(kk))/an + if(1.0d+0+test.ne.1.0d+0) then + nvrai=kk-1 + return + endif + 10 continue + 20 nvrai=0 + return + end diff --git a/modules/polynomials/src/fortran/idegre.lo b/modules/polynomials/src/fortran/idegre.lo new file mode 100755 index 000000000..8859737bb --- /dev/null +++ b/modules/polynomials/src/fortran/idegre.lo @@ -0,0 +1,12 @@ +# src/fortran/idegre.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/idegre.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/polynomials/src/fortran/impcnc.f b/modules/polynomials/src/fortran/impcnc.f new file mode 100755 index 000000000..f045f2951 --- /dev/null +++ b/modules/polynomials/src/fortran/impcnc.f @@ -0,0 +1,95 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) ????-2008 - INRIA - Serge STEER +c +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +C/MEMBR ADD NAME=IMPCNC,SSI=0 +c Copyright INRIA + subroutine impcnc(pm1,d1,ld1,pm2,d2,ld2,pm3,d3,l,m,n,job) +c!but +c cette subroutine concatene deux matrices dont les coefficients +c sont des polynomes (a coeff entiers) s: +c pm3=<pm1 pm2> +c ou +c pm3=<pm1' pm2'>' +c!liste d'appel +c +c subroutine impcnc(pm1,d1,ld1,pm2,d2,ld2,pm3,d3,l,m,n,job) +c integer pm1(*),pm2(*),pm3(*) +c integer d1(ld1*n+1),d2(ld2*n+1),d3(m*n+1),l,m,n,ld1,ld2,job +c +c pm1 : tableau contenant les coefficients des polynomes, +c le coefficient de degre k du polynome pm1(i,j) est range +c dans pm1( d1(i + (j-1)*ld1 + k) ) +c pm1 doit etre de taille au moins d1(ld1*n+1)-d1(1) +c d1 : tableau entier de taille ld1*n+1, si k=i+(j-1)*ld1 alors +c d1(k)) contient l'adresse dans pm1 du coeff de degre 0 +c du polynome pm1(i,j). Le degre du polynome pm1(i,j) vaut: +c d1(k+1)-d1(k) -1 +c ld1 : entier definissant le rangement dans d1 +c +c pm2,d2,ld2 : definitions similaires a celles de pm1,d1,ld1 +c pm3,d3 : definitions similaires a celles de pm1 et d1, l3 est +c suppose egal a m +c l : nombre de ligne de pm1 (et de pm2 et pm3 si job>0) +c m : nombre de colonnes de pm1 (job>0) +c nombre de ligne de pm2 (job<0) +c n : nombre de colonnes de pm2 (job>0) +c et nombre de colonnes de pm1 et pm3 si job <0 +c job : indique l'operation a effectuer: +c job >0 pm3=<pm1 pm2> +c job <0 pm3=<pm1' pm2'>' +c! + integer pm1(*),pm2(*),pm3(*) + integer d1(*),d2(*),d3(*),l,m,n,ld1,ld2 +c + integer i1,i2,i3,np,i,j +c + i3=1 + d3(1)=1 + i1=1-ld1 + i2=1-ld2 +c + if(job.lt.0) goto 30 +c + do 11 j=1,m + i1=i1+ld1 + np=d1(i1+l)-d1(i1) + call icopy(np,pm1(d1(i1)),1,pm3(d3(i3)),1) + do 10 i=1,l + i3=i3+1 + d3(i3)=d3(i3-1)+d1(i1+i)-d1(i1+i-1) + 10 continue + 11 continue + do 21 j=1,n + i2=i2+ld2 + np=d2(i2+l)-d2(i2) + call icopy(np,pm2(d2(i2)),1,pm3(d3(i3)),1) + do 20 i=1,l + i3=i3+1 + d3(i3)=d3(i3-1)+d2(i2+i)-d2(i2+i-1) + 20 continue + 21 continue + return +c + 30 do 50 j=1,n + i1=i1+ld1 + i2=i2+ld2 + np=d1(i1+l)-d1(i1) + call icopy(np,pm1(d1(i1)),1,pm3(d3(i3)),1) + do 40 i=1,l + i3=i3+1 + d3(i3)=d3(i3-1)+d1(i1+i)-d1(i1+i-1) + 40 continue + np=d2(i2+m)-d2(i2) + call icopy(np,pm2(d2(i2)),1,pm3(d3(i3)),1) + do 45 i=1,m + i3=i3+1 + d3(i3)=d3(i3-1)+d2(i2+i)-d2(i2+i-1) + 45 continue + 50 continue + return + end diff --git a/modules/polynomials/src/fortran/impcnc.lo b/modules/polynomials/src/fortran/impcnc.lo new file mode 100755 index 000000000..1529ac9b5 --- /dev/null +++ b/modules/polynomials/src/fortran/impcnc.lo @@ -0,0 +1,12 @@ +# src/fortran/impcnc.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/impcnc.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/polynomials/src/fortran/impext.f b/modules/polynomials/src/fortran/impext.f new file mode 100755 index 000000000..1e7275502 --- /dev/null +++ b/modules/polynomials/src/fortran/impext.f @@ -0,0 +1,147 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) 1986-2008 - INRIA - Serge STEER +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 impext(mp,d,m,n,row,nr,col,nc,mp1,d1,job,ierr) +c!but +c impext extrait une sous matrice definie par un choix de lignes +c et un choix de colonnes,d'une matrice polynomiale +c a coefficients entiers ,donnee. +c!liste d'appel +c subroutine impext(mp,d,m,n,row,nr,col,nc,mp1,d1,job,ierr) +c integer mp(*),mp1(*) +c integer d(*),m,n,row(*),nr,col(*),nc,d1(*),job,ierr +c +c mp:tableau contenant les coefficients des polynomes de la +c matrice polynomiale donnee +c d:tableau des pointeurs sur les premiers coeff de chaque poly +c m: nombre de ligne de la matrice polynomiale +c n: nombre de colonnes +c row:vecteur contenant les indices des lignes choisies +c si nr <=0 row n'est pas reference +c nr:nombre de lignes choisies ,si nr < 0 on choisit toutes +c les lignes +c col:vecteur contenant les indices des colonnes choisies +c si nc <=0 col n'est pas reference. +c nc:nombre de colonnes choisies, si nc < 0 on choisit toutes +c les colonnes +c mp1:tableau contenant les coeff de la matrice polynomiale +c resultat. si job=0 mp1 n'est pas referencee +c d1:matrice des pointeurs de la matrice polynomiale resultat +c d1 est calculee si job.ne.1,si job =1 d1 doit etre fournie +c job:indicateur d'execution +c job=0 seul d1 est calcule +c job=1 mp1 est calcule supposant d1 donnee +c sinon d1 et mp1 sont calcules +c ierr:indicateur d'erreur: +c ierr=0 ok +c ierr>0 une des lignes (colonnes) choisies n'appartient +c pas a la matrice donnee. +c!sous programmes appeles +c icopy (blas) +c! + integer mp(*),mp1(*) + integer d(*),m,n,row(*),nr,col(*),nc,d1(*),job,ierr +c + ierr=0 + if(nr*nc.eq.0) return + if(m.le.0.or.n.le.0) return + if(nr.lt.0) goto 40 + if(nc.lt.0) goto 50 +c +c un choix de lignes et un choix de colonnes +c +c verifications de la validite des vecteurs row et col +c do 10 j=1,nc +c if(col(j).le.0.or.col(j).gt.n) goto 100 +c 10 continue +c do 11 i=1,nr +c if(row(i).le.0.or.row(i).gt.m) goto 100 +c 11 continue +c + if(job.eq.1) goto 25 +c calcul de la matrice deplacement de la matrice polynomiale resultat + d1(1)=1 + id1=1 + do 20 j=1,nc + id=m*(col(j)-1)+1 + do 20 i=1,nr + id1=id1+1 + 20 d1(id1)=d1(id1-1)+d(id+row(i))-d(id+row(i)-1) + if(job.eq.0) return +c + 25 id1=1 + do 26 j=1,nc + id=m*(col(j)-1) + do 26 i=1,nr + id1=id1+1 + call icopy(d1(id1)-d1(id1-1),mp(d(id+row(i))),1,mp1(d1(id1-1)),1) + 26 continue + return +c + 40 if(nc.lt.0) goto 60 +c toutes les lignes et un choix de colonnes (nr<0) +c do 41 j=1,nc +c if(col(j).le.0.or.col(j).gt.n) goto 100 +c 41 continue + if(job.eq.1) goto 45 + id1=1 + d1(id1)=1 + do 42 j=1,nc + id=m*(col(j)-1)+1 + do 42 i=1,m + id1=id1+1 + d1(id1)=d1(id1-1)+d(id+i)-d(id+i-1) + 42 continue + if(job.eq.0) return + 45 id1=1 + do 46 j=1,nc + id=1+m*(col(j)-1) + call icopy(d(id+m)-d(id),mp(d(id)),1,mp1(d1(id1)),1) + id1=id1+m + 46 continue + return +c + 50 continue +c toutes les colonnnes et un choix de lignes +c do 51 i=1,nr +c if(row(i).le.0.or.row(i).gt.m) goto 100 +c 51 continue + if(job.eq.1) goto 55 + id1=1 + d1(1)=1 + id=1-m + do 52 j=1,n + id=id+m + do 52 i=1,nr + id1=id1+1 + d1(id1)=d1(id1-1)+d(id+row(i))-d(id+row(i)-1) + 52 continue + if(job.eq.0) return + 55 continue + id1=1 + do 53 j=1,n + id=(j-1)*m + do 53 i=1,nr + idi=id+row(i) + call icopy(d(idi+1)-d(idi),mp(d(idi)),1,mp1(d1(id1)),1) + id1=id1+1 + 53 continue + return +c + 60 continue +c toutes les lignes et toutes les colonnes + if(job.eq.1) goto 65 + do 61 i=1,m*n+1 + d1(i)=d(i) + 61 continue + if(job.eq.0) return + 65 call icopy(d(m*n+1)-1,mp,1,mp1,1) + return +c 100 ierr=1 +c return + end diff --git a/modules/polynomials/src/fortran/impext.lo b/modules/polynomials/src/fortran/impext.lo new file mode 100755 index 000000000..e9beabfc2 --- /dev/null +++ b/modules/polynomials/src/fortran/impext.lo @@ -0,0 +1,12 @@ +# src/fortran/impext.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/impext.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/polynomials/src/fortran/impins.f b/modules/polynomials/src/fortran/impins.f new file mode 100755 index 000000000..f6a2db7d5 --- /dev/null +++ b/modules/polynomials/src/fortran/impins.f @@ -0,0 +1,86 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) 1985-2008 - INRIA - Carlos KLIMANN +c Copyright (C) {date_debut_2}-{date_fin_2} - {organisme 2} - +c {auteur 2} +c ... +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 +C /MEMBR ADD NAME=IMPINS,SSI=0 +c Copyright INRIA + subroutine impins(mat1,dep1,lig1,col1,mat2, + & dep2,lig2,col2,matr,depr,ligr,colr) +c !but +c +c Cette subroutine fait l'insertion d'une matrice +c de polynomes mat2 dans une autre mat1 d'apres deux vecteurs. +c On suppose donnees depr, ligr et colr. +c Le resultat viendra dans une troisieme matrice. +c +c !parametres d'appel +c +c call impins(mat1,dep1,lig1,col1,mat2,dep2,lig2, +c 1 col2,matr,depr,ligr,colr) +c +c ou +c +c mat1: matrice integer de polynomes +c +c dep1: matrice integere qui donne les deplacements relatifs des +c elements de mat1 +c +c lig1, col1: integers, dimensions de mat1 +c +c mat2 ,dep2, lig2, col2: analogues aux correspondents 1 +c (correspond a m dans l'example) +c +c matr, depr, ligr, colr: parametres de sortie, matrice matr et +c autres valeurs relationnes. +c +c +c attention!: aucune de matrices mat1, mat2,matr,dep1, dep2 ou depr +c doit coincider. Cas contraire, les resultats seraient +c imprevisibles. +c +c +c ! + integer mat1(*),mat2(*),matr(*) + integer dep1(*),dep2(*),depr(*) +c + integer lig1,col1,lig2,col2,ligr,colr + depr(1)=1 + kr=1 +c + do 21 j=1,colr + do 20 i=1,ligr + kr=kr+1 + lr=depr(kr) + if (lr .lt. 0) then + goto 11 + elseif (lr .eq. 0) then + goto 12 + else + goto 13 + endif + 11 l2=-lr + l=dep2(l2+1)-dep2(l2) + call icopy(l,mat2(dep2(l2)),1,matr(depr(kr-1)),1) + depr(kr)=depr(kr-1)+l + goto 20 + 12 continue +c matr(depr(kr-1))=40 + depr(kr)=depr(kr-1) + goto 20 + 13 l1=lr + l=dep1(l1+1)-dep1(l1) + call icopy(l,mat1(dep1(l1)),1,matr(depr(kr-1)),1) + depr(kr)=depr(kr-1)+l +c + 20 continue + 21 continue + return + end diff --git a/modules/polynomials/src/fortran/impins.lo b/modules/polynomials/src/fortran/impins.lo new file mode 100755 index 000000000..094d88a07 --- /dev/null +++ b/modules/polynomials/src/fortran/impins.lo @@ -0,0 +1,12 @@ +# src/fortran/impins.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/impins.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/polynomials/src/fortran/imptra.f b/modules/polynomials/src/fortran/imptra.f new file mode 100755 index 000000000..769af35f4 --- /dev/null +++ b/modules/polynomials/src/fortran/imptra.f @@ -0,0 +1,52 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) 1985-2008 - INRIA - Serge STEER +c +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +C/MEMBR ADD NAME=IMPTRA,SSI=0 +c Copyright INRIA + subroutine imptra(pm1,d1,ld1,pm2,d2,m,n) +c!but +c cette subroutine transpose une matrice dont les coefficients sont +c des polynomes entiers ou des strings. +c!liste d'appel +c +c subroutine imptra(pm1,d1,ld1,pm2,d2,m,n) +c integer pm1(*),pm2(*) +c integer d1(*),d2(n,m),m,n,iw(n) +c +c pm1 : tableau entier contenant les coefficients des +c polynomes. +c d1 : tableau entier de taille ld1*n+1, si k=i+(j-1)*ld1 alors +c d1(k)) contient l'adresse dans pm1 du coeff de degre 0 +c du polynome pm1(i,j). Le degre du polynome pm1(i,j) vaut: +c d1(k+1)-d1(k) -1 +c ld1 : entier definissant le rangement dans d1 +c +c pm2,d2 : definitions similaires a celles de pm1,d1, ld2 +c est suppose egal a n +c m : nombre de lignes de la matrice pm1 +c n : nombre de colonne de matrice pm1 +c! + integer pm1(*),pm2(*) + integer d1(*),d2(*),m,n + d2(1)=1 + i2=1 + do 20 i=1,m + i1=i + do 10 j=1,n + l1=d1(i1) + n1=d1(i1+1)-l1 + l2=d2(i2) + call icopy(n1,pm1(l1),1,pm2(l2),1) + i1=i1+ld1 + i2=i2+1 + d2(i2)=l2+n1 + 10 continue + 20 continue +c + return + end diff --git a/modules/polynomials/src/fortran/imptra.lo b/modules/polynomials/src/fortran/imptra.lo new file mode 100755 index 000000000..3f0f2a7e6 --- /dev/null +++ b/modules/polynomials/src/fortran/imptra.lo @@ -0,0 +1,12 @@ +# src/fortran/imptra.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/imptra.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/polynomials/src/fortran/linear_algebra_Import.def b/modules/polynomials/src/fortran/linear_algebra_Import.def new file mode 100755 index 000000000..124cec3e5 --- /dev/null +++ b/modules/polynomials/src/fortran/linear_algebra_Import.def @@ -0,0 +1,5 @@ +LIBRARY linear_algebra.dll + + +EXPORTS +intspec_ diff --git a/modules/polynomials/src/fortran/linpack_f_Import.def b/modules/polynomials/src/fortran/linpack_f_Import.def new file mode 100755 index 000000000..7834a06e2 --- /dev/null +++ b/modules/polynomials/src/fortran/linpack_f_Import.def @@ -0,0 +1,7 @@ + LIBRARY linpack_f.dll + + +EXPORTS +; +;linpack_f +icopy_
\ No newline at end of file diff --git a/modules/polynomials/src/fortran/mpdegr.f b/modules/polynomials/src/fortran/mpdegr.f new file mode 100755 index 000000000..21a60b10f --- /dev/null +++ b/modules/polynomials/src/fortran/mpdegr.f @@ -0,0 +1,36 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) 1988-2008 - INRIA - Serge STEER +c +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +C/MEMBR ADD NAME=MPDEGR,SSI=0 +c Copyright INRIA + subroutine mpdegr(d,nl,deg,m,n) +c!but +c mpdegr calcule le degre maximum des elements d'une matrice de polynomes +c!liste d'appel +c integer d(nl*n+1),nl,m,n,deg +c d : tableau entier de taille nl*n+1, si k=i+(j-1)*nl alors +c d(k)) contient l'adresse dans pm du coeff de degre 0 +c du polynome mp(i,j). Le degre du polynome mp(i,j) vaut: +c d(k+1)-d(k) -1 +c nl : entier definissant le rangement dans d +c m : nombre de ligne de la matrice polynomiale +c n : nombre de colonnes de la matrice polynomiale +c +c! + integer d(*),nl,m,n,deg +c +c determination du degre max de mp + deg=0 + ip=-nl + do 10 k=1,n + ip=ip+nl + do 10 i=1,m + deg=max(deg,d(ip+i+1)-d(ip+i)-1) + 10 continue + return + end diff --git a/modules/polynomials/src/fortran/mpdegr.lo b/modules/polynomials/src/fortran/mpdegr.lo new file mode 100755 index 000000000..2426f2ff6 --- /dev/null +++ b/modules/polynomials/src/fortran/mpdegr.lo @@ -0,0 +1,12 @@ +# src/fortran/mpdegr.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/mpdegr.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/polynomials/src/fortran/mpdiag.f b/modules/polynomials/src/fortran/mpdiag.f new file mode 100755 index 000000000..34d8796aa --- /dev/null +++ b/modules/polynomials/src/fortran/mpdiag.f @@ -0,0 +1,54 @@ +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 +C/MEMBR ADD NAME=MPDIAG,SSI=0 + subroutine mpdiag(d,m,n,diag,dd,mr,nr) + integer d(*),dd(*),diag +c + if(n.le.0) goto 20 +c +c extraction d'une diagonale dune matrice +c + nr=1 + mn=min(m,n) + k=-diag+1 + if(diag.ge.0) k=diag*m+1 + mr=diag+m + if(diag+m.ge.mn) mr=mn + if(diag.ge.n-mn) mr=n-diag + l=0 + if(mr.le.0) goto 11 + do 10 kk=2,mr+1 + dd(kk)=k + l=l+d(k+1)-d(k) + 10 k=k+m+1 + 11 dd(1)=l + return +c +c +c creation d'une matrice 'diagonale' +c + 20 mr=m + nr=m + l=0 + if(diag.ge.0) then + nr=nr+diag + else + mr=mr-diag + endif + do 21 k=2,mr*nr+1 + 21 dd(k)=0 + kk=1-diag + if(diag.ge.0) kk=diag*mr+1 + do 22 k=1,m + dd(kk+1)=k + kk=kk+mr+1 + 22 l=d(k+1)-d(k)+l + dd(1)=l+mr*nr-m + return + end diff --git a/modules/polynomials/src/fortran/mpdiag.lo b/modules/polynomials/src/fortran/mpdiag.lo new file mode 100755 index 000000000..30276f9d0 --- /dev/null +++ b/modules/polynomials/src/fortran/mpdiag.lo @@ -0,0 +1,12 @@ +# src/fortran/mpdiag.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/mpdiag.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/polynomials/src/fortran/mpinsp.f b/modules/polynomials/src/fortran/mpinsp.f new file mode 100755 index 000000000..ef1332c38 --- /dev/null +++ b/modules/polynomials/src/fortran/mpinsp.f @@ -0,0 +1,293 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) 1985-2008 - Carlos KLIMANN +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 mpinsp(dep1,lig1,col1,v1,d1,v2,d2,dep2, + & lig2,col2,depr,ligr,colr,defsz,iwork,ierr) +c !but +c +c Cette subroutine pretraite l'insertion d'une +c matrice de polynomes mat2 dans une autre mat1 d'apres deux +c vecteurs.Pour calculer le volume qu'occupera le resultat +c +c !parametres d'appel +c +c call mpinsp(dep1,lig1,col1,v1,d1,v2,d2,dep2,lig2,col2 +c & ,depr,ligr,colr,defsz,iwork,ierr) +c +c ou +c +c dep1: matrice entiere qui donne les deplacements relatifs des +c elements de mat1 +c +c lig1, col1: entiers, dimensions de mat1 +c +c v1: vecteur entier +c +c d1: longueur du vecteur v1 +c +c v2, d2: analogues aux anterieurs +c +c dep2, lig2, col2: analogues aux correspondents 1 +c +c depr: contient les information issues du pretraitement: +c depr(1) contient le volume des coeff de la matrice resultat +c depr(1+i) contient un pointeur vers dep1 si positif +c vers dep2 si negatif +c vers 0 si nul +c +c ligr, colr: entiers dimensions de la matrice de sortie +c depr. S'ils ne sont pas connus au prealable +c peuvent etre calcules par la subroutine dimin. +c defsz: entier: taille de l'element par default +c iwork: tableau entier de taille colr+ligr +c ierr: si 0 terminaison correcte, +c sinon les dimensions de mat2 ne sont pas compatibles +c +c +c attention!: aucune de matrices dep1, dep2 ou depr ne +c doit coincider. Dans le cas contraire, les resultats seraient +c imprevisibles. +c + +c +c +c ! + integer dep1(*),v1(*),v2(*),dep2(*),depr(*),iwork(*) + integer lig1,col1,d1,d2,lig2,col2,ligr,colr,ierr,defsz +c + integer volr +c + ierr=0 + volr=0 + if (d1.eq.0.or.d2.eq.0) return + + if(d1.gt.0.or.d2.gt.0) goto 10 +c +c cas (:,:) +c + if(lig1.ne.lig2.or.col1.ne.col2) then + if(lig2*col2.eq.1) then + ir=lig1*col1+1 + do 04 i=1,ir + depr(i+1)=-1 + 04 continue + volr=(dep2(2)-dep2(1))*lig1*col1 + goto 999 + else + ierr=1 + return + endif + endif +c + ir=lig1*col1+1 + do 05 i=1,ir + depr(i+1)=-i + 05 continue + volr=dep2(ir)-dep2(1) + goto 999 +c + 10 if(d1.lt.0) then +c cas (:,.) + inc2=1 + if(max(1,lig1).ne.lig2) then + if(lig2.eq.1.and.col2.eq.1) then + inc2=0 + else + ierr=1 + return + endif + endif +c +c toutes les lignes pour un choix de colonnes +c + kr=1 + volr=0 +c trouver les colonnes qui sont modifiées + call iset(colr,0,iwork,1) + do i=1,d2 + iwork(v2(i))=i + enddo + do 19 jr=1,colr +c la colonne jr est elle a modifier ? + id2=iwork(jr) + if(id2.eq.0) goto 14 +c oui + if(inc2.eq.1) then + k2=lig2*(id2-1) + do 12 ir=1,ligr + kr=kr+1 + depr(kr)=-1 + 12 continue + volr=volr+ligr*(dep2(2)-dep2(1)) + else + do 13 ir=1,ligr + kr=kr+1 + depr(kr)=-(k2+ir) + 13 continue + volr=volr+dep2(k2+ligr+1)-dep2(k2+1) + endif + go to 19 +c non + 14 if(jr.le.col1) then +c la colonne designee existe dans mat1 + k1=(jr-1)*lig1 + do 17 ir=1,ligr + kr=kr+1 + depr(kr)=(k1+ir) + 17 continue + volr=volr+dep1(k1+ligr+1)-dep1(k1+1) + goto 19 + endif +c si non, inserer un string vide + do 18 ir=1,ligr + kr=kr+1 + depr(kr)=0 + 18 continue + volr=volr+ligr*defsz + 19 continue + goto 999 + endif +c + if(d2.lt.0) then +c cas (.,:) + inc2=1 + if(col1.ne.max(1,col2)) then + if(lig2.eq.1.and.col2.eq.1) then + inc2=0 + else + ierr=1 + return + endif + endif +c +c toutes les colonnes pour un choix de lignes +c + call iset(ligr,0,iwork,1) + do i=1,d1 + iwork(v1(i))=i + enddo + + do 29 ir=1,ligr + kr=ir+1-ligr +c la ligne ir est elle a modifier ? + id1=iwork(ir) + if(id1.eq.0) goto 24 +c oui + if(inc2.eq.1) then + k2=id1-lig2 + do 22 jr=1,colr + kr=kr+ligr + k2=k2+lig2 + depr(kr)=-k2 + volr=volr+dep2(k2+1)-dep2(k2) + 22 continue + else + do 23 jr=1,colr + kr=kr+ligr + depr(kr)=-1 + volr=volr+colr*(dep2(2)-dep2(1)) + 23 continue + endif + go to 29 +c non + 24 if(ir.le.lig1) then +c la ligne designee existe dans mat1 + k1=ir-lig1 + do 27 jr=1,colr + kr=kr+ligr + k1=k1+lig1 + volr=volr+dep1(k1+1)-dep1(k1) + depr(kr)=k1 + 27 continue + goto 29 + endif +c si non, inserer des zeros + do 28 jr=1,colr + kr=kr+ligr + depr(kr)=0 + 28 continue + volr=volr+colr*defsz + 29 continue + goto 999 + endif +c +c cas general +c + kr=2 + inc2=1 + if(lig2.eq.1.and.col2.eq.1) inc2=0 + + call iset(colr+ligr,0,iwork,1) + do i=1,d2 + iwork(v2(i))=i + enddo + + do i=1,d1 + iwork(colr+v1(i))=i + enddo + + do 40 jr=1,colr +c la colonne jr est elle a modifier ? + id2=iwork(jr) + if(id2.eq.0) goto 35 +c + do 34 ir=1,ligr +c la ligne ir est-elle a modifier + id1=iwork(colr+ir) + if(id1.eq.0) goto 32 +c + if(inc2.eq.1) then + k2=id1+lig2*(id2-1) + depr(kr)=-k2 + volr=volr+dep2(k2+1)-dep2(k2) + else + depr(kr)=-1 + volr=volr+dep2(2)-dep2(1) + endif + kr=kr+1 + go to 34 +c + 32 if(ir.gt.lig1.or.jr.gt.col1) goto 33 + k1=ir+lig1*(jr-1) + depr(kr)=k1 + kr=kr+1 + volr=volr+dep1(k1+1)-dep1(k1) + goto 34 +c + 33 depr(kr)=0 + kr=kr+1 + volr=volr+defsz + 34 continue + goto 40 +c non +c toutes les lignes de la colonne designee + 35 if(jr.gt.col1) goto 38 + k1=(jr-1)*lig1 + do 36 ir=1,lig1 + depr(kr)=k1+ir + kr=kr+1 + 36 continue + volr=volr+dep1(k1+lig1+1)-dep1(k1+1) + if(lig1.ge.ligr) goto 40 + do 37 ir=lig1+1,ligr + depr(kr)=0 + kr=kr+1 + 37 continue + volr=volr+(ligr-lig1)*defsz + goto 40 + 38 do 39 ir=1,ligr + depr(kr)=0 + kr=kr+1 + 39 continue + volr=volr+ligr*defsz + 40 continue +c + 999 depr(1)=volr + return + end diff --git a/modules/polynomials/src/fortran/mpinsp.lo b/modules/polynomials/src/fortran/mpinsp.lo new file mode 100755 index 000000000..5c474e3d4 --- /dev/null +++ b/modules/polynomials/src/fortran/mpinsp.lo @@ -0,0 +1,12 @@ +# src/fortran/mpinsp.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/mpinsp.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/polynomials/src/fortran/mptri.f b/modules/polynomials/src/fortran/mptri.f new file mode 100755 index 000000000..3de56c692 --- /dev/null +++ b/modules/polynomials/src/fortran/mptri.f @@ -0,0 +1,65 @@ +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 +C/MEMBR ADD NAME=MPTRI,SSI=0 +c Copyright INRIA + subroutine mptri(d,m,n,diag,dd,job) +c + integer d(*),m,n,dd(*),diag,job +c + do 10 i=2,m*n+1 + 10 dd(i)=i-1 +c + if(job.eq.0) goto 15 +c triangle superieur + if(diag.le.0) goto 11 + call iset(m*diag,0,dd(2),1) + ls=m*diag+2 + nn=n-diag + ll=m-1 + goto 12 + 11 ls=2-diag + nn=n + ll=m-1+diag + 12 do 13 j=1,nn + if(ll.le.0) goto 20 + call iset(ll,0,dd(ls+1),1) + ll=ll-1 + ls=ls+m+1 + 13 continue + goto 20 +c +c triangle inferieur + 15 nn=n + if(diag.lt.0) goto 16 + ls=m*(diag+1)+1 + nn=n-diag-1 + ll=1 + goto 17 + 16 ls=1 + ll=-diag + nn=n + 17 do 19 j=1,nn + if(ll.gt.m) ll=m + call iset(ll,0,dd(ls+1),1) + ls=ls+m + ll=ll+1 + 19 continue +c +c calcul du volume + 20 l=0 + do 21 i=2,m*n+1 + if(dd(i).eq.0) then + l=l+1 + else + l=l+d(dd(i)+1)-d(dd(i)) + endif + 21 continue + dd(1)=l + return + end diff --git a/modules/polynomials/src/fortran/mptri.lo b/modules/polynomials/src/fortran/mptri.lo new file mode 100755 index 000000000..7665b4b04 --- /dev/null +++ b/modules/polynomials/src/fortran/mptri.lo @@ -0,0 +1,12 @@ +# src/fortran/mptri.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/mptri.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/polynomials/src/fortran/newest.f b/modules/polynomials/src/fortran/newest.f new file mode 100755 index 000000000..79b39b6d0 --- /dev/null +++ b/modules/polynomials/src/fortran/newest.f @@ -0,0 +1,48 @@ +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 newest(type, uu, vv) +c compute new estimates of quadratic coefficients +c using the scalars computed in calcsc. + common /gloglo/ p, qp, k, qk, svk, sr, si, u, + * v, a, b, c, d, a1, a2, a3, a6, a7, e, f, g, + * h, szr, szi, lzr, lzi, eta, are, mre, n, nn + double precision p(101), qp(101), k(101), + * qk(101), svk(101), sr, si, u, v, a ,b,c, d, + * a1, a2, a3, a6, a7, e, f, g, h, szr, szi, + * lzr, lzi + real eta, are, mre + integer n, nn + double precision a4, a5, b1, b2, c1, c2, c3, + * c4, temp, uu, vv + integer type +c use formulas appropriate to setting of type. + if (type.eq.3) go to 30 + if (type.eq.2) go to 10 + a4 = a + u*b + h*f + a5 = c + (u+v*f)*d + go to 20 + 10 a4 = (a+g)*f + h + a5 = (f+u)*c + v*d +c evaluate new quadratic coefficients. + 20 b1 = -k(n)/p(nn) + b2 = -(k(n-1)+b1*p(n))/p(nn) + c1 = v*b2*a1 + c2 = b1*a7 + c3 = b1*b1*a3 + c4 = c1 - c2 - c3 + temp = a5 + b1*a4 - c4 + if (temp.eq.0.0d+0) go to 30 + uu = u - (u*(c3+c2)+v*(b1*a1+b2*a7))/temp + vv = v*(1.+c4/temp) + return +c if type=3 the quadratic is zeroed + 30 uu = 0.0d+0 + vv = 0.0d+0 + return + end diff --git a/modules/polynomials/src/fortran/newest.lo b/modules/polynomials/src/fortran/newest.lo new file mode 100755 index 000000000..b5f3ad0f7 --- /dev/null +++ b/modules/polynomials/src/fortran/newest.lo @@ -0,0 +1,12 @@ +# src/fortran/newest.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/newest.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/polynomials/src/fortran/nextk.f b/modules/polynomials/src/fortran/nextk.f new file mode 100755 index 000000000..0ef489058 --- /dev/null +++ b/modules/polynomials/src/fortran/nextk.f @@ -0,0 +1,51 @@ +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 nextk(type) +c computes the next k polynomials using scalars +c computed in calcsc + common /gloglo/ p, qp, k, qk, svk, sr, si, u, + * v, a, b, c, d, a1, a2, a3, a6, a7, e, f, g, + * h, szr, szi, lzr, lzi, eta, are, mre, n, nn + double precision p(101), qp(101), k(101), + * qk(101), svk(101), sr, si, u, v, a, b, c, d, + * a1, a2, a3, a6, a7, e, f, g, h, szr, szi, + * lzr, lzi + real eta, are, mre + integer n, nn + double precision temp + integer type + if (type.eq.3) go to 40 + temp = a + if (type.eq.1) temp = b + if (abs(a1).gt.abs(temp)*eta*10.) go to 20 +c if a1 is nearly zero then use a special form of the +c recurrence + k(1) = 0.0d+0 + k(2) = -a7*qp(1) + do 10 i=3,n + k(i) = a3*qk(i-2) - a7*qp(i-1) + 10 continue + return +c use scaled form of the recurrence + 20 a7 = a7/a1 + a3 = a3/a1 + k(1) = qp(1) + k(2) = qp(2) -a7*qp(1) + do 30 i=3,n + k(i) = a3*qk(i-2) - a7*qp(i-1) + qp(i) + 30 continue + return +c use unscaled form of the recurrence if type is 3 + 40 k(1) = 0.0d+0 + k(2) = 0.0d+0 + do 50 i=3,n + k(i) = qk(i-2) + 50 continue + return + end diff --git a/modules/polynomials/src/fortran/nextk.lo b/modules/polynomials/src/fortran/nextk.lo new file mode 100755 index 000000000..535ac9082 --- /dev/null +++ b/modules/polynomials/src/fortran/nextk.lo @@ -0,0 +1,12 @@ +# src/fortran/nextk.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/nextk.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/polynomials/src/fortran/output_stream_Import.def b/modules/polynomials/src/fortran/output_stream_Import.def new file mode 100755 index 000000000..f46484880 --- /dev/null +++ b/modules/polynomials/src/fortran/output_stream_Import.def @@ -0,0 +1,8 @@ +LIBRARY output_stream.dll + + +EXPORTS +basout_ +msgs_ +error_ +msgstxt_
\ No newline at end of file diff --git a/modules/polynomials/src/fortran/polynomials_Import.def b/modules/polynomials/src/fortran/polynomials_Import.def new file mode 100755 index 000000000..2f7091108 --- /dev/null +++ b/modules/polynomials/src/fortran/polynomials_Import.def @@ -0,0 +1,5 @@ +LIBRARY polynomials.dll + + +EXPORTS +gloglo_
\ No newline at end of file diff --git a/modules/polynomials/src/fortran/polynomials_f.rc b/modules/polynomials/src/fortran/polynomials_f.rc new file mode 100755 index 000000000..05bc99a87 --- /dev/null +++ b/modules/polynomials/src/fortran/polynomials_f.rc @@ -0,0 +1,96 @@ +// Microsoft Visual C++ generated resource script. +// + + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +//#include "afxres.h" +#define APSTUDIO_HIDDEN_SYMBOLS +#include "windows.h" +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// French (France) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_FRA) +#ifdef _WIN32 +LANGUAGE LANG_FRENCH, SUBLANG_FRENCH +#pragma code_page(1252) +#endif //_WIN32 + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE +BEGIN + "resource.h\0" +END + +3 TEXTINCLUDE +BEGIN + "\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 5,5,2,0 + PRODUCTVERSION 5,5,2,0 + FILEFLAGSMASK 0x17L +#ifdef _DEBUG + FILEFLAGS 0x1L +#else + FILEFLAGS 0x0L +#endif + FILEOS 0x4L + FILETYPE 0x2L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040c04b0" + BEGIN + VALUE "FileDescription", "polynomials_f module" + VALUE "FileVersion", "5, 5, 2, 0" + VALUE "InternalName", "polynomials_f module" + VALUE "LegalCopyright", "Copyright (C) 2017" + VALUE "OriginalFilename", "polynomials_f.dll" + VALUE "ProductName", "polynomials_f module" + VALUE "ProductVersion", "5, 5, 2, 0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x40c, 1200 + END +END + +#endif // French (France) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// + + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/modules/polynomials/src/fortran/polynomials_f.vfproj b/modules/polynomials/src/fortran/polynomials_f.vfproj new file mode 100755 index 000000000..e795962b9 --- /dev/null +++ b/modules/polynomials/src/fortran/polynomials_f.vfproj @@ -0,0 +1,203 @@ +<?xml version="1.0" encoding="UTF-8"?> +<VisualStudioProject ProjectType="typeDynamicLibrary" ProjectCreator="Intel Fortran" Keyword="Dll" Version="11.0" ProjectIdGuid="{3A72C3ED-98F7-49C7-B59C-2C6C47FF9390}"> + <Platforms> + <Platform Name="Win32"/> + <Platform Name="x64"/></Platforms> + <Configurations> + <Configuration Name="Debug|Win32" OutputDirectory="$(SolutionDir)bin\" IntermediateDirectory="$(ProjectDir)$(ConfigurationName)" DeleteExtensionsOnClean="*.obj;*.mod;*.pdb;*.asm;*.map;*.dyn;*.dpi;*.tmp;*.log;*.ilk;*.dll;$(TargetPath)" ConfigurationType="typeDynamicLibrary"> + <Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" DebugInformationFormat="debugEnabled" Optimization="optimizeDisabled" AdditionalIncludeDirectories="../../../core/includes" PreprocessorDefinitions="FORDLL" AlternateParameterSyntax="false" F77RuntimeCompatibility="true" FPS4Libs="false" CallingConvention="callConventionCRef" ExternalNameUnderscore="true" ModulePath="$(INTDIR)/" ObjectFile="$(INTDIR)/" RuntimeLibrary="rtMultiThreadedDebugDLL"/> + <Tool Name="VFLinkerTool" OutputFile="$(SolutionDir)bin\$(ProjectName).dll" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" ModuleDefinitionFile="polynomials_f.def" GenerateDebugInformation="true" SubSystem="subSystemWindows" ImportLibrary="$(SolutionDir)bin\$(ProjectName).lib" LinkDLL="true" AdditionalDependencies="../../../../bin/blasplus.lib ../../../../bin/lapack.lib core.lib polynomials.lib output_stream.lib linear_algebra.lib elementary_functions_f.lib elementary_functions.lib cacsd_f.lib linpack_f.lib core_f.lib"/> + <Tool Name="VFResourceCompilerTool"/> + <Tool Name="VFMidlTool" SuppressStartupBanner="true" HeaderFileName="$(InputName).h" TypeLibraryName="$(IntDir)/$(InputName).tlb"/> + <Tool Name="VFCustomBuildTool"/> + <Tool Name="VFPreLinkEventTool" CommandLine="setlocal EnableDelayedExpansion +cd $(ConfigurationName) +set LIST_OBJ= +for %%f in (*.obj) do set LIST_OBJ=!LIST_OBJ! %%f +"$(SolutionDir)bin\dumpexts" -o $(ProjectName).def $(ProjectName).dll %LIST_OBJ% +copy $(ProjectName).def ..\$(ProjectName).def >nul +del *.def >nul +cd .." Description="Build $(ProjectName).def"/> + <Tool Name="VFPreBuildEventTool" CommandLine="lib /DEF:"$(InputDir)core_import.def" /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:"$(InputDir)core.lib" 1>NUL 2>NUL +lib /DEF:"$(InputDir)polynomials_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:"$(InputDir)polynomials.lib" 1>NUL 2>NUL +lib /DEF:"$(InputDir)output_stream_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:"$(InputDir)output_stream.lib" 1>NUL 2>NUL +lib /DEF:"$(InputDir)linear_algebra_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:"$(InputDir)linear_algebra.lib" 1>NUL 2>NUL +lib /DEF:"$(InputDir)Elementary_functions_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:"$(InputDir)elementary_functions_f.lib" 1>NUL 2>NUL +lib /DEF:"$(InputDir)Elementary_functions_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:"$(InputDir)elementary_functions.lib" 1>NUL 2>NUL +lib /DEF:"$(InputDir)cacsd_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:"$(InputDir)cacsd_f.lib" 1>NUL 2>NUL +lib /DEF:"$(InputDir)linpack_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:"$(InputDir)linpack_f.lib" 1>NUL 2>NUL +lib /DEF:"$(InputDir)core_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:"$(InputDir)core_f.lib" 1>NUL 2>NUL" Description="Build Dependencies"/> + <Tool Name="VFPostBuildEventTool"/> + <Tool Name="VFManifestTool" SuppressStartupBanner="true"/></Configuration> + <Configuration Name="Release|Win32" OutputDirectory="$(SolutionDir)bin\" IntermediateDirectory="$(ProjectDir)$(ConfigurationName)" DeleteExtensionsOnClean="*.obj;*.mod;*.pdb;*.asm;*.map;*.dyn;*.dpi;*.tmp;*.log;*.ilk;*.dll;$(TargetPath)" ConfigurationType="typeDynamicLibrary"> + <Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" AdditionalIncludeDirectories="../../../core/includes" PreprocessorDefinitions="FORDLL" AlternateParameterSyntax="false" F77RuntimeCompatibility="true" FPS4Libs="false" CallingConvention="callConventionCRef" ExternalNameUnderscore="true" ModulePath="$(INTDIR)/" ObjectFile="$(INTDIR)/" RuntimeLibrary="rtMultiThreadedDLL"/> + <Tool Name="VFLinkerTool" OutputFile="$(SolutionDir)bin\$(ProjectName).dll" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" ModuleDefinitionFile="polynomials_f.def" SubSystem="subSystemWindows" ImportLibrary="$(SolutionDir)bin\$(ProjectName).lib" LinkDLL="true" AdditionalDependencies="../../../../bin/blasplus.lib ../../../../bin/lapack.lib core.lib polynomials.lib output_stream.lib linear_algebra.lib elementary_functions_f.lib elementary_functions.lib cacsd_f.lib linpack_f.lib core_f.lib"/> + <Tool Name="VFResourceCompilerTool"/> + <Tool Name="VFMidlTool" SuppressStartupBanner="true" HeaderFileName="$(InputName).h" TypeLibraryName="$(IntDir)/$(InputName).tlb"/> + <Tool Name="VFCustomBuildTool"/> + <Tool Name="VFPreLinkEventTool" CommandLine="setlocal EnableDelayedExpansion +cd $(ConfigurationName) +set LIST_OBJ= +for %%f in (*.obj) do set LIST_OBJ=!LIST_OBJ! %%f +"$(SolutionDir)bin\dumpexts" -o $(ProjectName).def $(ProjectName).dll %LIST_OBJ% +copy $(ProjectName).def ..\$(ProjectName).def >nul +del *.def >nul +cd .." Description="Build $(ProjectName).def"/> + <Tool Name="VFPreBuildEventTool" CommandLine="lib /DEF:"$(InputDir)core_import.def" /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:"$(InputDir)core.lib" 1>NUL 2>NUL +lib /DEF:"$(InputDir)polynomials_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:"$(InputDir)polynomials.lib" 1>NUL 2>NUL +lib /DEF:"$(InputDir)output_stream_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:"$(InputDir)output_stream.lib" 1>NUL 2>NUL +lib /DEF:"$(InputDir)linear_algebra_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:"$(InputDir)linear_algebra.lib" 1>NUL 2>NUL +lib /DEF:"$(InputDir)Elementary_functions_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:"$(InputDir)elementary_functions_f.lib" 1>NUL 2>NUL +lib /DEF:"$(InputDir)Elementary_functions_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:"$(InputDir)elementary_functions.lib" 1>NUL 2>NUL +lib /DEF:"$(InputDir)cacsd_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:"$(InputDir)cacsd_f.lib" 1>NUL 2>NUL +lib /DEF:"$(InputDir)linpack_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:"$(InputDir)linpack_f.lib" 1>NUL 2>NUL +lib /DEF:"$(InputDir)core_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:"$(InputDir)core_f.lib" 1>NUL 2>NUL" Description="Build Dependencies"/> + <Tool Name="VFPostBuildEventTool"/> + <Tool Name="VFManifestTool" SuppressStartupBanner="true"/></Configuration> + <Configuration Name="Debug|x64" OutputDirectory="$(SolutionDir)bin\" IntermediateDirectory="$(ProjectDir)$(ConfigurationName)" DeleteExtensionsOnClean="*.obj;*.mod;*.pdb;*.asm;*.map;*.dyn;*.dpi;*.tmp;*.log;*.ilk;*.dll;$(TargetPath)" ConfigurationType="typeDynamicLibrary"> + <Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" DebugInformationFormat="debugEnabled" Optimization="optimizeDisabled" AdditionalIncludeDirectories="../../../core/includes" PreprocessorDefinitions="FORDLL" AlternateParameterSyntax="false" F77RuntimeCompatibility="true" FPS4Libs="false" CallingConvention="callConventionCRef" ExternalNameUnderscore="true" ModulePath="$(INTDIR)/" ObjectFile="$(INTDIR)/" RuntimeLibrary="rtMultiThreadedDebugDLL"/> + <Tool Name="VFLinkerTool" OutputFile="$(SolutionDir)bin\$(ProjectName).dll" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" ModuleDefinitionFile="polynomials_f.def" GenerateDebugInformation="true" SubSystem="subSystemWindows" ImportLibrary="$(SolutionDir)bin\$(ProjectName).lib" LinkDLL="true" AdditionalDependencies="../../../../bin/blasplus.lib ../../../../bin/lapack.lib core.lib polynomials.lib output_stream.lib linear_algebra.lib elementary_functions_f.lib elementary_functions.lib cacsd_f.lib linpack_f.lib core_f.lib"/> + <Tool Name="VFResourceCompilerTool"/> + <Tool Name="VFMidlTool" SuppressStartupBanner="true" HeaderFileName="$(InputName).h" TypeLibraryName="$(IntDir)/$(InputName).tlb"/> + <Tool Name="VFCustomBuildTool"/> + <Tool Name="VFPreLinkEventTool" CommandLine="setlocal EnableDelayedExpansion +cd $(ConfigurationName) +set LIST_OBJ= +for %%f in (*.obj) do set LIST_OBJ=!LIST_OBJ! %%f +"$(SolutionDir)bin\dumpexts" -o $(ProjectName).def $(ProjectName).dll %LIST_OBJ% +copy $(ProjectName).def ..\$(ProjectName).def >nul +del *.def >nul +cd .." Description="Build $(ProjectName).def"/> + <Tool Name="VFPreBuildEventTool" CommandLine="lib /DEF:"$(InputDir)core_import.def" /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:"$(InputDir)core.lib" 1>NUL 2>NUL +lib /DEF:"$(InputDir)polynomials_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:"$(InputDir)polynomials.lib" 1>NUL 2>NUL +lib /DEF:"$(InputDir)output_stream_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:"$(InputDir)output_stream.lib" 1>NUL 2>NUL +lib /DEF:"$(InputDir)linear_algebra_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:"$(InputDir)linear_algebra.lib" 1>NUL 2>NUL +lib /DEF:"$(InputDir)Elementary_functions_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:"$(InputDir)elementary_functions_f.lib" 1>NUL 2>NUL +lib /DEF:"$(InputDir)Elementary_functions_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:"$(InputDir)elementary_functions.lib" 1>NUL 2>NUL +lib /DEF:"$(InputDir)cacsd_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:"$(InputDir)cacsd_f.lib" 1>NUL 2>NUL +lib /DEF:"$(InputDir)linpack_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:"$(InputDir)linpack_f.lib" 1>NUL 2>NUL +lib /DEF:"$(InputDir)core_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:"$(InputDir)core_f.lib" 1>NUL 2>NUL" Description="Build Dependencies"/> + <Tool Name="VFPostBuildEventTool"/> + <Tool Name="VFManifestTool" SuppressStartupBanner="true"/></Configuration> + <Configuration Name="Release|x64" OutputDirectory="$(SolutionDir)bin\" IntermediateDirectory="$(ProjectDir)$(ConfigurationName)" DeleteExtensionsOnClean="*.obj;*.mod;*.pdb;*.asm;*.map;*.dyn;*.dpi;*.tmp;*.log;*.ilk;*.dll;$(TargetPath)" ConfigurationType="typeDynamicLibrary"> + <Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" AdditionalIncludeDirectories="../../../core/includes" PreprocessorDefinitions="FORDLL" AlternateParameterSyntax="false" F77RuntimeCompatibility="true" FPS4Libs="false" CallingConvention="callConventionCRef" ExternalNameUnderscore="true" ModulePath="$(INTDIR)/" ObjectFile="$(INTDIR)/" RuntimeLibrary="rtMultiThreadedDLL"/> + <Tool Name="VFLinkerTool" OutputFile="$(SolutionDir)bin\$(ProjectName).dll" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" ModuleDefinitionFile="polynomials_f.def" SubSystem="subSystemWindows" ImportLibrary="$(SolutionDir)bin\$(ProjectName).lib" LinkDLL="true" AdditionalDependencies="../../../../bin/blasplus.lib ../../../../bin/lapack.lib core.lib polynomials.lib output_stream.lib linear_algebra.lib elementary_functions_f.lib elementary_functions.lib cacsd_f.lib linpack_f.lib core_f.lib"/> + <Tool Name="VFResourceCompilerTool"/> + <Tool Name="VFMidlTool" SuppressStartupBanner="true" HeaderFileName="$(InputName).h" TypeLibraryName="$(IntDir)/$(InputName).tlb"/> + <Tool Name="VFCustomBuildTool"/> + <Tool Name="VFPreLinkEventTool" CommandLine="setlocal EnableDelayedExpansion +cd $(ConfigurationName) +set LIST_OBJ= +for %%f in (*.obj) do set LIST_OBJ=!LIST_OBJ! %%f +"$(SolutionDir)bin\dumpexts" -o $(ProjectName).def $(ProjectName).dll %LIST_OBJ% +copy $(ProjectName).def ..\$(ProjectName).def >nul +del *.def >nul +cd .." Description="Build $(ProjectName).def"/> + <Tool Name="VFPreBuildEventTool" CommandLine="lib /DEF:"$(InputDir)core_import.def" /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:"$(InputDir)core.lib" 1>NUL 2>NUL +lib /DEF:"$(InputDir)polynomials_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:"$(InputDir)polynomials.lib" 1>NUL 2>NUL +lib /DEF:"$(InputDir)output_stream_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:"$(InputDir)output_stream.lib" 1>NUL 2>NUL +lib /DEF:"$(InputDir)linear_algebra_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:"$(InputDir)linear_algebra.lib" 1>NUL 2>NUL +lib /DEF:"$(InputDir)Elementary_functions_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:"$(InputDir)elementary_functions_f.lib" 1>NUL 2>NUL +lib /DEF:"$(InputDir)Elementary_functions_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:"$(InputDir)elementary_functions.lib" 1>NUL 2>NUL +lib /DEF:"$(InputDir)cacsd_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:"$(InputDir)cacsd_f.lib" 1>NUL 2>NUL +lib /DEF:"$(InputDir)linpack_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:"$(InputDir)linpack_f.lib" 1>NUL 2>NUL +lib /DEF:"$(InputDir)core_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:"$(InputDir)core_f.lib" 1>NUL 2>NUL" Description="Build Dependencies"/> + <Tool Name="VFPostBuildEventTool"/> + <Tool Name="VFManifestTool" SuppressStartupBanner="true"/></Configuration></Configurations> + <Files> + <Filter Name="Header Files" Filter="fi;fd"/> + <Filter Name="Library Dependencies"> + <File RelativePath=".\cacsd_f_Import.def"/> + <File RelativePath=".\Core_f_Import.def"/> + <File RelativePath=".\core_import.def"/> + <File RelativePath=".\Elementary_functions_f_Import.def"/> + <File RelativePath=".\Elementary_functions_Import.def"/> + <File RelativePath=".\linear_algebra_Import.def"/> + <File RelativePath=".\linpack_f_Import.def"/> + <File RelativePath=".\output_stream_Import.def"/> + <File RelativePath=".\polynomials_Import.def"/></Filter> + <Filter Name="Resource Files" Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"> + <File RelativePath=".\polynomials_f.rc"/></Filter> + <Filter Name="Source Files" Filter="f90;for;f;fpp;ftn;def;odl;idl"> + <File RelativePath=".\bezstp.f"/> + <File RelativePath=".\blktit.f"/> + <File RelativePath=".\calcsc.f"/> + <File RelativePath=".\chkvar.f"/> + <File RelativePath=".\ddmpev.f"/> + <File RelativePath=".\dimin.f"/> + <File RelativePath=".\dmp2pm.f"/> + <File RelativePath=".\dmpad.f"/> + <File RelativePath=".\dmpadj.f"/> + <File RelativePath=".\dmpcle.f"/> + <File RelativePath=".\dmpcnc.f"/> + <File RelativePath=".\dmpext.f"/> + <File RelativePath=".\dmpins.f"/> + <File RelativePath=".\dmpmu.f"/> + <File RelativePath=".\dmptra.f"/> + <File RelativePath=".\dpmul.f"/> + <File RelativePath=".\dpmul1.f"/> + <File RelativePath=".\dpodiv.f"/> + <File RelativePath=".\dprxc.f"/> + <File RelativePath=".\dpsimp.f"/> + <File RelativePath=".\dwmpmu.f"/> + <File RelativePath=".\fxshfr.f"/> + <File RelativePath=".\horner.f"/> + <File RelativePath=".\idegre.f"/> + <File RelativePath=".\impcnc.f"/> + <File RelativePath=".\impext.f"/> + <File RelativePath=".\impins.f"/> + <File RelativePath=".\imptra.f"/> + <File RelativePath=".\mpdegr.f"/> + <File RelativePath=".\mpdiag.f"/> + <File RelativePath=".\mpinsp.f"/> + <File RelativePath=".\mptri.f"/> + <File RelativePath=".\newest.f"/> + <File RelativePath=".\nextk.f"/> + <File RelativePath="..\..\sci_gateway\fortran\polops.f"/> + <File RelativePath=".\quad.f"/> + <File RelativePath=".\quadit.f"/> + <File RelativePath=".\quadsd.f"/> + <File RelativePath=".\realit.f"/> + <File RelativePath=".\recbez.f"/> + <File RelativePath=".\residu.f"/> + <File RelativePath=".\rpoly.f"/> + <File RelativePath="..\..\sci_gateway\fortran\sci_f_bezout.f"> + <FileConfiguration Name="Release|x64"> + <Tool Name="VFFortranCompilerTool" Optimization="optimizeDisabled"/></FileConfiguration> + <FileConfiguration Name="Release|Win32"> + <Tool Name="VFFortranCompilerTool" Optimization="optimizeDisabled"/></FileConfiguration></File> + <File RelativePath="..\..\sci_gateway\fortran\sci_f_coeff.f"/> + <File RelativePath="..\..\sci_gateway\fortran\sci_f_degree.f"/> + <File RelativePath="..\..\sci_gateway\fortran\sci_f_diag.f"/> + <File RelativePath="..\..\sci_gateway\fortran\sci_f_div.f"/> + <File RelativePath="..\..\sci_gateway\fortran\sci_f_pclean.f"/> + <File RelativePath="..\..\sci_gateway\fortran\sci_f_poly.f"/> + <File RelativePath="..\..\sci_gateway\fortran\sci_f_prod.f"/> + <File RelativePath="..\..\sci_gateway\fortran\sci_f_psimp.f"/> + <File RelativePath="..\..\sci_gateway\fortran\sci_f_roots.f"/> + <File RelativePath="..\..\sci_gateway\fortran\sci_f_rsimp.f"/> + <File RelativePath="..\..\sci_gateway\fortran\sci_f_sfact.f"/> + <File RelativePath="..\..\sci_gateway\fortran\sci_f_simp.f"/> + <File RelativePath="..\..\sci_gateway\fortran\sci_f_simpmd.f"/> + <File RelativePath="..\..\sci_gateway\fortran\sci_f_sum.f"/> + <File RelativePath="..\..\sci_gateway\fortran\sci_f_triu_tril.f"/> + <File RelativePath="..\..\sci_gateway\fortran\sci_f_varn.f"/> + <File RelativePath=".\sfact1.f"/> + <File RelativePath=".\sfact2.f"/> + <File RelativePath=".\wdmpad.f"/> + <File RelativePath=".\wdmpmu.f"/> + <File RelativePath=".\wmpad.f"/> + <File RelativePath=".\wmpadj.f"/> + <File RelativePath=".\wmpcle.f"/> + <File RelativePath=".\wmpcnc.f"/> + <File RelativePath=".\wmpins.f"/> + <File RelativePath=".\wmpmu.f"/> + <File RelativePath=".\wmptra.f"/> + <File RelativePath=".\wpmul.f"/> + <File RelativePath=".\wpmul1.f"/> + <File RelativePath=".\wpodiv.f"/> + <File RelativePath=".\wprxc.f"/> + <File RelativePath=".\writebufsfact.f"/></Filter> + <File RelativePath="..\..\Makefile.am"/> + <File RelativePath="..\..\sci_gateway\polynomials_gateway.xml"/></Files> + <Globals/></VisualStudioProject> diff --git a/modules/polynomials/src/fortran/polynomials_f2c.vcxproj b/modules/polynomials/src/fortran/polynomials_f2c.vcxproj new file mode 100755 index 000000000..bee6fbfb8 --- /dev/null +++ b/modules/polynomials/src/fortran/polynomials_f2c.vcxproj @@ -0,0 +1,456 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Debug|Win32"> + <Configuration>Debug</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Debug|x64"> + <Configuration>Debug</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|Win32"> + <Configuration>Release</Configuration> + <Platform>Win32</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectName>polynomials_f</ProjectName> + <ProjectGuid>{3A72C3ED-98F7-49C7-B59C-2C6C47FF9390}</ProjectGuid> + <RootNamespace>polynomials_f2c</RootNamespace> + <Keyword>Win32Proj</Keyword> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <CharacterSet>Unicode</CharacterSet> + <WholeProgramOptimization>true</WholeProgramOptimization> + <PlatformToolset>v110</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v110</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <CharacterSet>Unicode</CharacterSet> + <WholeProgramOptimization>true</WholeProgramOptimization> + <PlatformToolset>v110</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v110</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + <Import Project="..\..\..\..\Visual-Studio-settings\f2c.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup> + <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)bin\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)$(Configuration)\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)bin\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)$(Configuration)\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)bin\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)$(Configuration)\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)bin\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)$(Configuration)\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental> + <PreLinkEventUseInBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</PreLinkEventUseInBuild> + <PreLinkEventUseInBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</PreLinkEventUseInBuild> + <PreLinkEventUseInBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</PreLinkEventUseInBuild> + <PreLinkEventUseInBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</PreLinkEventUseInBuild> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <PreBuildEvent> + <Message>Build Dependencies</Message> + <Command>lib /DEF:"$(ProjectDir)core_import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)core.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)polynomials_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)polynomials.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)output_stream_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)output_stream.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)linear_algebra_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)linear_algebra.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)Elementary_functions_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)elementary_functions_f.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)Elementary_functions_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)elementary_functions.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)cacsd_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)cacsd_f.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)linpack_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)linpack_f.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)core_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)core_f.lib" 1>NUL 2>NUL</Command> + </PreBuildEvent> + <ClCompile> + <Optimization>Disabled</Optimization> + <AdditionalIncludeDirectories>../../../../libs/f2c;../../../core/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;POLYNOMIALS_F2C_EXPORTS;FORDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> + <WarningLevel>Level3</WarningLevel> + </ClCompile> + <PreLinkEvent> + <Message>Build $(ProjectName).def</Message> + <Command>setlocal EnableDelayedExpansion +cd $(ConfigurationName) +set LIST_OBJ= +for %%f in (*.obj) do set LIST_OBJ=!LIST_OBJ! %%f +"$(SolutionDir)bin\dumpexts" -o $(ProjectName).def $(ProjectName).dll %LIST_OBJ% +copy $(ProjectName).def ..\$(ProjectName).def >nul +del *.def >nul +cd .. +</Command> + </PreLinkEvent> + <Link> + <AdditionalDependencies>core.lib;polynomials.lib;output_stream.lib;linear_algebra.lib;elementary_functions_f.lib;elementary_functions.lib;cacsd_f.lib;linpack_f.lib;core_f.lib;../../../../bin/blasplus.lib;../../../../bin/lapack.lib;../../../../bin/libf2c.lib;%(AdditionalDependencies)</AdditionalDependencies> + <OutputFile>$(SolutionDir)bin\$(ProjectName).dll</OutputFile> + <ModuleDefinitionFile>polynomials_f.def</ModuleDefinitionFile> + <GenerateDebugInformation>true</GenerateDebugInformation> + <SubSystem>Windows</SubSystem> + <ImportLibrary>$(SolutionDir)bin\$(ProjectName).lib</ImportLibrary> + <TargetMachine>MachineX86</TargetMachine> + <CLRUnmanagedCodeCheck>true</CLRUnmanagedCodeCheck> + <RandomizedBaseAddress>false</RandomizedBaseAddress> + <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <PreBuildEvent> + <Message>Build Dependencies</Message> + <Command>lib /DEF:"$(ProjectDir)core_import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)core.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)polynomials_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)polynomials.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)output_stream_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)output_stream.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)linear_algebra_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)linear_algebra.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)Elementary_functions_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)elementary_functions_f.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)Elementary_functions_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)elementary_functions.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)cacsd_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)cacsd_f.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)linpack_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)linpack_f.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)core_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)core_f.lib" 1>NUL 2>NUL</Command> + </PreBuildEvent> + <Midl> + <TargetEnvironment>X64</TargetEnvironment> + </Midl> + <ClCompile> + <Optimization>Disabled</Optimization> + <AdditionalIncludeDirectories>../../../../libs/f2c;../../../core/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;POLYNOMIALS_F2C_EXPORTS;FORDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> + <WarningLevel>Level3</WarningLevel> + </ClCompile> + <PreLinkEvent> + <Message>Build $(ProjectName).def</Message> + <Command>setlocal EnableDelayedExpansion +cd $(ConfigurationName) +set LIST_OBJ= +for %%f in (*.obj) do set LIST_OBJ=!LIST_OBJ! %%f +"$(SolutionDir)bin\dumpexts" -o $(ProjectName).def $(ProjectName).dll %LIST_OBJ% +copy $(ProjectName).def ..\$(ProjectName).def >nul +del *.def >nul +cd .. +</Command> + </PreLinkEvent> + <Link> + <AdditionalDependencies>core.lib;polynomials.lib;output_stream.lib;linear_algebra.lib;elementary_functions_f.lib;elementary_functions.lib;cacsd_f.lib;linpack_f.lib;core_f.lib;../../../../bin/blasplus.lib;../../../../bin/lapack.lib;../../../../bin/libf2c.lib;%(AdditionalDependencies)</AdditionalDependencies> + <OutputFile>$(SolutionDir)bin\$(ProjectName).dll</OutputFile> + <ModuleDefinitionFile>polynomials_f.def</ModuleDefinitionFile> + <GenerateDebugInformation>true</GenerateDebugInformation> + <SubSystem>Windows</SubSystem> + <ImportLibrary>$(SolutionDir)bin\$(ProjectName).lib</ImportLibrary> + <TargetMachine>MachineX64</TargetMachine> + <CLRUnmanagedCodeCheck>true</CLRUnmanagedCodeCheck> + <RandomizedBaseAddress>false</RandomizedBaseAddress> + <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> + <PreBuildEvent> + <Message>Build Dependencies</Message> + <Command>lib /DEF:"$(ProjectDir)core_import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)core.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)polynomials_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)polynomials.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)output_stream_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)output_stream.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)linear_algebra_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)linear_algebra.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)Elementary_functions_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)elementary_functions_f.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)Elementary_functions_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)elementary_functions.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)cacsd_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)cacsd_f.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)linpack_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)linpack_f.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)core_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)core_f.lib" 1>NUL 2>NUL</Command> + </PreBuildEvent> + <ClCompile> + <WholeProgramOptimization>false</WholeProgramOptimization> + <AdditionalIncludeDirectories>../../../../libs/f2c;../../../core/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;POLYNOMIALS_F2C_EXPORTS;FORDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> + <WarningLevel>Level3</WarningLevel> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + </ClCompile> + <PreLinkEvent> + <Message>Build $(ProjectName).def</Message> + <Command>setlocal EnableDelayedExpansion +cd $(ConfigurationName) +set LIST_OBJ= +for %%f in (*.obj) do set LIST_OBJ=!LIST_OBJ! %%f +"$(SolutionDir)bin\dumpexts" -o $(ProjectName).def $(ProjectName).dll %LIST_OBJ% +copy $(ProjectName).def ..\$(ProjectName).def >nul +del *.def >nul +cd .. +</Command> + </PreLinkEvent> + <Link> + <AdditionalDependencies>core.lib;polynomials.lib;output_stream.lib;linear_algebra.lib;elementary_functions_f.lib;elementary_functions.lib;cacsd_f.lib;linpack_f.lib;core_f.lib;../../../../bin/blasplus.lib;../../../../bin/lapack.lib;../../../../bin/libf2c.lib;%(AdditionalDependencies)</AdditionalDependencies> + <OutputFile>$(SolutionDir)bin\$(ProjectName).dll</OutputFile> + <ModuleDefinitionFile>polynomials_f.def</ModuleDefinitionFile> + <GenerateDebugInformation>true</GenerateDebugInformation> + <SubSystem>Windows</SubSystem> + <OptimizeReferences>true</OptimizeReferences> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <ImportLibrary>$(SolutionDir)bin\$(ProjectName).lib</ImportLibrary> + <TargetMachine>MachineX86</TargetMachine> + <CLRUnmanagedCodeCheck>true</CLRUnmanagedCodeCheck> + <RandomizedBaseAddress>false</RandomizedBaseAddress> + <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <PreBuildEvent> + <Message>Build Dependencies</Message> + <Command>lib /DEF:"$(ProjectDir)core_import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)core.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)polynomials_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)polynomials.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)output_stream_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)output_stream.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)linear_algebra_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)linear_algebra.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)Elementary_functions_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)elementary_functions_f.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)Elementary_functions_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)elementary_functions.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)cacsd_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)cacsd_f.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)linpack_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)linpack_f.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)core_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)core_f.lib" 1>NUL 2>NUL</Command> + </PreBuildEvent> + <Midl> + <TargetEnvironment>X64</TargetEnvironment> + </Midl> + <ClCompile> + <WholeProgramOptimization>false</WholeProgramOptimization> + <AdditionalIncludeDirectories>../../../../libs/f2c;../../../core/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;POLYNOMIALS_F2C_EXPORTS;FORDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> + <WarningLevel>Level3</WarningLevel> + <MultiProcessorCompilation>true</MultiProcessorCompilation> + </ClCompile> + <PreLinkEvent> + <Message>Build $(ProjectName).def</Message> + <Command>setlocal EnableDelayedExpansion +cd $(ConfigurationName) +set LIST_OBJ= +for %%f in (*.obj) do set LIST_OBJ=!LIST_OBJ! %%f +"$(SolutionDir)bin\dumpexts" -o $(ProjectName).def $(ProjectName).dll %LIST_OBJ% +copy $(ProjectName).def ..\$(ProjectName).def >nul +del *.def >nul +cd .. +</Command> + </PreLinkEvent> + <Link> + <AdditionalDependencies>core.lib;polynomials.lib;output_stream.lib;linear_algebra.lib;elementary_functions_f.lib;elementary_functions.lib;cacsd_f.lib;linpack_f.lib;core_f.lib;../../../../bin/blasplus.lib;../../../../bin/lapack.lib;../../../../bin/libf2c.lib;%(AdditionalDependencies)</AdditionalDependencies> + <OutputFile>$(SolutionDir)bin\$(ProjectName).dll</OutputFile> + <ModuleDefinitionFile>polynomials_f.def</ModuleDefinitionFile> + <GenerateDebugInformation>true</GenerateDebugInformation> + <SubSystem>Windows</SubSystem> + <OptimizeReferences>true</OptimizeReferences> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <ImportLibrary>$(SolutionDir)bin\$(ProjectName).lib</ImportLibrary> + <TargetMachine>MachineX64</TargetMachine> + <CLRUnmanagedCodeCheck>true</CLRUnmanagedCodeCheck> + <RandomizedBaseAddress>false</RandomizedBaseAddress> + <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration> + </Link> + </ItemDefinitionGroup> + <ItemGroup> + <ClCompile Include="bezstp.c" /> + <ClCompile Include="blktit.c" /> + <ClCompile Include="calcsc.c" /> + <ClCompile Include="chkvar.c" /> + <ClCompile Include="ddmpev.c" /> + <ClCompile Include="dimin.c" /> + <ClCompile Include="dmp2pm.c" /> + <ClCompile Include="dmpad.c" /> + <ClCompile Include="dmpadj.c" /> + <ClCompile Include="dmpcle.c" /> + <ClCompile Include="dmpcnc.c" /> + <ClCompile Include="dmpext.c" /> + <ClCompile Include="dmpins.c" /> + <ClCompile Include="dmpmu.c" /> + <ClCompile Include="dmptra.c" /> + <ClCompile Include="dpmul.c" /> + <ClCompile Include="dpmul1.c" /> + <ClCompile Include="dpodiv.c" /> + <ClCompile Include="dprxc.c" /> + <ClCompile Include="dpsimp.c" /> + <ClCompile Include="dwmpmu.c" /> + <ClCompile Include="..\..\..\elementary_functions\src\c\f2c_workaround.c" /> + <ClCompile Include="fxshfr.c" /> + <ClCompile Include="horner.c" /> + <ClCompile Include="idegre.c" /> + <ClCompile Include="impcnc.c" /> + <ClCompile Include="impext.c" /> + <ClCompile Include="impins.c" /> + <ClCompile Include="imptra.c" /> + <ClCompile Include="mpdegr.c" /> + <ClCompile Include="mpdiag.c" /> + <ClCompile Include="mpinsp.c" /> + <ClCompile Include="mptri.c" /> + <ClCompile Include="newest.c" /> + <ClCompile Include="nextk.c" /> + <ClCompile Include="..\..\sci_gateway\fortran\polops.c" /> + <ClCompile Include="quad.c" /> + <ClCompile Include="quadit.c" /> + <ClCompile Include="quadsd.c" /> + <ClCompile Include="realit.c" /> + <ClCompile Include="recbez.c" /> + <ClCompile Include="residu.c" /> + <ClCompile Include="rpoly.c" /> + <ClCompile Include="..\..\sci_gateway\fortran\sci_f_bezout.c" /> + <ClCompile Include="..\..\sci_gateway\fortran\sci_f_coeff.c" /> + <ClCompile Include="..\..\sci_gateway\fortran\sci_f_degree.c" /> + <ClCompile Include="..\..\sci_gateway\fortran\sci_f_diag.c" /> + <ClCompile Include="..\..\sci_gateway\fortran\sci_f_div.c" /> + <ClCompile Include="..\..\sci_gateway\fortran\sci_f_pclean.c" /> + <ClCompile Include="..\..\sci_gateway\fortran\sci_f_poly.c" /> + <ClCompile Include="..\..\sci_gateway\fortran\sci_f_prod.c" /> + <ClCompile Include="..\..\sci_gateway\fortran\sci_f_psimp.c" /> + <ClCompile Include="..\..\sci_gateway\fortran\sci_f_roots.c" /> + <ClCompile Include="..\..\sci_gateway\fortran\sci_f_rsimp.c" /> + <ClCompile Include="..\..\sci_gateway\fortran\sci_f_sfact.c" /> + <ClCompile Include="..\..\sci_gateway\fortran\sci_f_simp.c" /> + <ClCompile Include="..\..\sci_gateway\fortran\sci_f_simpmd.c" /> + <ClCompile Include="..\..\sci_gateway\fortran\sci_f_sum.c" /> + <ClCompile Include="..\..\sci_gateway\fortran\sci_f_triu_tril.c" /> + <ClCompile Include="..\..\sci_gateway\fortran\sci_f_varn.c" /> + <ClCompile Include="sfact1.c" /> + <ClCompile Include="sfact2.c" /> + <ClCompile Include="wdmpad.c" /> + <ClCompile Include="wdmpmu.c" /> + <ClCompile Include="wmpad.c" /> + <ClCompile Include="wmpadj.c" /> + <ClCompile Include="wmpcle.c" /> + <ClCompile Include="wmpcnc.c" /> + <ClCompile Include="wmpins.c" /> + <ClCompile Include="wmpmu.c" /> + <ClCompile Include="wmptra.c" /> + <ClCompile Include="wpmul.c" /> + <ClCompile Include="wpmul1.c" /> + <ClCompile Include="wpodiv.c" /> + <ClCompile Include="wprxc.c" /> + <ClCompile Include="writebufsfact.c" /> + </ItemGroup> + <ItemGroup> + <f2c_rule Include="bezstp.f" /> + <f2c_rule Include="blktit.f" /> + <f2c_rule Include="calcsc.f" /> + <f2c_rule Include="chkvar.f" /> + <f2c_rule Include="ddmpev.f" /> + <f2c_rule Include="dimin.f" /> + <f2c_rule Include="dmp2pm.f" /> + <f2c_rule Include="dmpad.f" /> + <f2c_rule Include="dmpadj.f" /> + <f2c_rule Include="dmpcle.f" /> + <f2c_rule Include="dmpcnc.f" /> + <f2c_rule Include="dmpext.f" /> + <f2c_rule Include="dmpins.f" /> + <f2c_rule Include="dmpmu.f" /> + <f2c_rule Include="dmptra.f" /> + <f2c_rule Include="dpmul.f" /> + <f2c_rule Include="dpmul1.f" /> + <f2c_rule Include="dpodiv.f" /> + <f2c_rule Include="dprxc.f" /> + <f2c_rule Include="dpsimp.f" /> + <f2c_rule Include="dwmpmu.f" /> + <f2c_rule Include="fxshfr.f" /> + <f2c_rule Include="horner.f" /> + <f2c_rule Include="idegre.f" /> + <f2c_rule Include="impcnc.f" /> + <f2c_rule Include="impext.f" /> + <f2c_rule Include="impins.f" /> + <f2c_rule Include="imptra.f" /> + <f2c_rule Include="mpdegr.f" /> + <f2c_rule Include="mpdiag.f" /> + <f2c_rule Include="mpinsp.f" /> + <f2c_rule Include="mptri.f" /> + <f2c_rule Include="newest.f" /> + <f2c_rule Include="nextk.f" /> + <f2c_rule Include="..\..\sci_gateway\fortran\polops.f" /> + <f2c_rule Include="quad.f" /> + <f2c_rule Include="quadit.f" /> + <f2c_rule Include="quadsd.f" /> + <f2c_rule Include="realit.f" /> + <f2c_rule Include="recbez.f" /> + <f2c_rule Include="residu.f" /> + <f2c_rule Include="rpoly.f" /> + <f2c_rule Include="..\..\sci_gateway\fortran\sci_f_bezout.f" /> + <f2c_rule Include="..\..\sci_gateway\fortran\sci_f_coeff.f" /> + <f2c_rule Include="..\..\sci_gateway\fortran\sci_f_degree.f" /> + <f2c_rule Include="..\..\sci_gateway\fortran\sci_f_diag.f" /> + <f2c_rule Include="..\..\sci_gateway\fortran\sci_f_div.f" /> + <f2c_rule Include="..\..\sci_gateway\fortran\sci_f_pclean.f" /> + <f2c_rule Include="..\..\sci_gateway\fortran\sci_f_poly.f" /> + <f2c_rule Include="..\..\sci_gateway\fortran\sci_f_prod.f" /> + <f2c_rule Include="..\..\sci_gateway\fortran\sci_f_psimp.f" /> + <f2c_rule Include="..\..\sci_gateway\fortran\sci_f_roots.f" /> + <f2c_rule Include="..\..\sci_gateway\fortran\sci_f_rsimp.f" /> + <f2c_rule Include="..\..\sci_gateway\fortran\sci_f_sfact.f" /> + <f2c_rule Include="..\..\sci_gateway\fortran\sci_f_simp.f" /> + <f2c_rule Include="..\..\sci_gateway\fortran\sci_f_simpmd.f" /> + <f2c_rule Include="..\..\sci_gateway\fortran\sci_f_sum.f" /> + <f2c_rule Include="..\..\sci_gateway\fortran\sci_f_triu_tril.f" /> + <f2c_rule Include="..\..\sci_gateway\fortran\sci_f_varn.f" /> + <f2c_rule Include="sfact1.f" /> + <f2c_rule Include="sfact2.f" /> + <f2c_rule Include="wdmpad.f" /> + <f2c_rule Include="wdmpmu.f" /> + <f2c_rule Include="wmpad.f" /> + <f2c_rule Include="wmpadj.f" /> + <f2c_rule Include="wmpcle.f" /> + <f2c_rule Include="wmpcnc.f" /> + <f2c_rule Include="wmpins.f" /> + <f2c_rule Include="wmpmu.f" /> + <f2c_rule Include="wmptra.f" /> + <f2c_rule Include="wpmul.f" /> + <f2c_rule Include="wpmul1.f" /> + <f2c_rule Include="wpodiv.f" /> + <f2c_rule Include="wprxc.f" /> + <f2c_rule Include="writebufsfact.f" /> + </ItemGroup> + <ItemGroup> + <None Include="..\..\Makefile.am" /> + <None Include="..\..\sci_gateway\polynomials_gateway.xml" /> + <None Include="cacsd_f_Import.def" /> + <None Include="Core_f_Import.def" /> + <None Include="Elementary_functions_f_Import.def" /> + <None Include="Elementary_functions_Import.def" /> + <None Include="core_import.def" /> + <None Include="linear_algebra_Import.def" /> + <None Include="linpack_f_Import.def" /> + <None Include="output_stream_Import.def" /> + <None Include="polynomials_Import.def" /> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="..\..\..\..\tools\Dumpexts\Dumpexts.vcxproj"> + <Project>{3170e4c2-1173-4264-a222-7ee8ccb3ddf7}</Project> + <ReferenceOutputAssembly>false</ReferenceOutputAssembly> + </ProjectReference> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + <Import Project="..\..\..\..\Visual-Studio-settings\f2c.targets" /> + </ImportGroup> +</Project>
\ No newline at end of file diff --git a/modules/polynomials/src/fortran/polynomials_f2c.vcxproj.filters b/modules/polynomials/src/fortran/polynomials_f2c.vcxproj.filters new file mode 100755 index 000000000..9439061b3 --- /dev/null +++ b/modules/polynomials/src/fortran/polynomials_f2c.vcxproj.filters @@ -0,0 +1,511 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Source Files"> + <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> + <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions> + </Filter> + <Filter Include="Header Files"> + <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier> + <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> + </Filter> + <Filter Include="Resource Files"> + <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier> + <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions> + </Filter> + <Filter Include="Fortran files"> + <UniqueIdentifier>{e55ddfad-7065-49f2-b140-a387e4569d6e}</UniqueIdentifier> + </Filter> + <Filter Include="Libraries Dependencies"> + <UniqueIdentifier>{6f18cbe4-21b9-43ab-a195-ce1c999af6d2}</UniqueIdentifier> + </Filter> + </ItemGroup> + <ItemGroup> + <ClCompile Include="bezstp.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="blktit.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="calcsc.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="ddmpev.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="dimin.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="dmp2pm.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="dmpad.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="dmpadj.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="dmpcle.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="dmpcnc.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="dmpext.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="dmpins.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="dmpmu.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="dmptra.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="dpmul.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="dpmul1.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="dpodiv.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="dprxc.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="dpsimp.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="dwmpmu.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\..\elementary_functions\src\c\f2c_workaround.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="fxshfr.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="horner.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="idegre.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="impcnc.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="impext.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="impins.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="imptra.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="mpdegr.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="mpdiag.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="mpinsp.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="mptri.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="newest.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="nextk.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\fortran\polops.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="quad.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="quadit.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="quadsd.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="realit.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="recbez.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="residu.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="rpoly.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\fortran\sci_f_bezout.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\fortran\sci_f_coeff.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\fortran\sci_f_degree.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\fortran\sci_f_diag.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\fortran\sci_f_div.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\fortran\sci_f_pclean.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\fortran\sci_f_poly.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\fortran\sci_f_prod.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\fortran\sci_f_psimp.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\fortran\sci_f_roots.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\fortran\sci_f_rsimp.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\fortran\sci_f_sfact.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\fortran\sci_f_simp.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\fortran\sci_f_simpmd.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\fortran\sci_f_sum.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\fortran\sci_f_triu_tril.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\fortran\sci_f_varn.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="sfact1.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="sfact2.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="wdmpad.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="wdmpmu.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="wmpad.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="wmpadj.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="wmpcle.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="wmpcnc.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="wmpins.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="wmpmu.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="wmptra.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="wpmul.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="wpmul1.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="wpodiv.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="wprxc.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="writebufsfact.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="chkvar.c"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> + <ItemGroup> + <f2c_rule Include="bezstp.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="blktit.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="calcsc.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="ddmpev.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="dimin.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="dmp2pm.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="dmpad.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="dmpadj.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="dmpcle.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="dmpcnc.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="dmpext.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="dmpins.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="dmpmu.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="dmptra.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="dpmul.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="dpmul1.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="dpodiv.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="dprxc.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="dpsimp.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="dwmpmu.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="fxshfr.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="horner.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="idegre.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="impcnc.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="impext.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="impins.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="imptra.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="mpdegr.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="mpdiag.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="mpinsp.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="mptri.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="newest.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="nextk.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="..\..\sci_gateway\fortran\polops.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="quad.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="quadit.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="quadsd.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="realit.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="recbez.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="residu.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="rpoly.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="..\..\sci_gateway\fortran\sci_f_bezout.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="..\..\sci_gateway\fortran\sci_f_coeff.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="..\..\sci_gateway\fortran\sci_f_degree.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="..\..\sci_gateway\fortran\sci_f_diag.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="..\..\sci_gateway\fortran\sci_f_div.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="..\..\sci_gateway\fortran\sci_f_pclean.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="..\..\sci_gateway\fortran\sci_f_poly.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="..\..\sci_gateway\fortran\sci_f_prod.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="..\..\sci_gateway\fortran\sci_f_psimp.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="..\..\sci_gateway\fortran\sci_f_roots.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="..\..\sci_gateway\fortran\sci_f_rsimp.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="..\..\sci_gateway\fortran\sci_f_sfact.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="..\..\sci_gateway\fortran\sci_f_simp.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="..\..\sci_gateway\fortran\sci_f_simpmd.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="..\..\sci_gateway\fortran\sci_f_sum.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="..\..\sci_gateway\fortran\sci_f_triu_tril.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="..\..\sci_gateway\fortran\sci_f_varn.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="sfact1.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="sfact2.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="wdmpad.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="wdmpmu.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="wmpad.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="wmpadj.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="wmpcle.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="wmpcnc.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="wmpins.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="wmpmu.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="wmptra.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="wpmul.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="wpmul1.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="wpodiv.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="wprxc.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="writebufsfact.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="chkvar.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + </ItemGroup> + <ItemGroup> + <None Include="..\..\Makefile.am" /> + <None Include="..\..\sci_gateway\polynomials_gateway.xml" /> + <None Include="Elementary_functions_f_Import.def"> + <Filter>Libraries Dependencies</Filter> + </None> + <None Include="Elementary_functions_Import.def"> + <Filter>Libraries Dependencies</Filter> + </None> + <None Include="core_import.def"> + <Filter>Libraries Dependencies</Filter> + </None> + <None Include="linear_algebra_Import.def"> + <Filter>Libraries Dependencies</Filter> + </None> + <None Include="output_stream_Import.def"> + <Filter>Libraries Dependencies</Filter> + </None> + <None Include="polynomials_Import.def"> + <Filter>Libraries Dependencies</Filter> + </None> + <None Include="cacsd_f_Import.def"> + <Filter>Libraries Dependencies</Filter> + </None> + <None Include="linpack_f_Import.def"> + <Filter>Libraries Dependencies</Filter> + </None> + <None Include="Core_f_Import.def"> + <Filter>Libraries Dependencies</Filter> + </None> + </ItemGroup> +</Project>
\ No newline at end of file diff --git a/modules/polynomials/src/fortran/quad.f b/modules/polynomials/src/fortran/quad.f new file mode 100755 index 000000000..71dad9208 --- /dev/null +++ b/modules/polynomials/src/fortran/quad.f @@ -0,0 +1,52 @@ +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 quad(a, b1, c, sr, si, lr, li) +c calculate the zeros of the quadratic a*z**2+b1*z+c. +c the quadratic formula, modified to avoid +c overflow, is used to find the larger zero if the +c zeros are real and both zeros are complex +c the smaller real zero is found directly from the +c product of the zero c/a. + double precision a, b1, c, sr, si, lr, li, b, + * d, e + if (a.ne.0.0d+0) go to 20 + sr = 0.0d+0 + if (b1.ne.0.0d+0) sr = -c/b1 + lr = 0.0d+0 + 10 si = 0.0d+0 + li = 0.0d+0 + return + 20 if (c.ne.0.0d+0) go to 30 + sr = 0.0d+0 + lr = -b1/a + go to 10 +c compute discriminant avoiding overflow + 30 b = b1/2.0d+0 + if (abs(b).lt.abs(c)) go to 40 + e = 1.0d+0 - (a/b)*(c/b) + d = sqrt(abs(e))*abs(b) + go to 50 + 40 e = a + if (c.lt.0.0d+0) e = -a + e = b*(b/abs(c)) - e + d = sqrt(abs(e))*sqrt(abs(c)) + 50 if (e.lt.0.0d+0) go to 60 +c real zeros + if (b.ge.0.0d+0) d = -d + lr = (-b+d)/a + sr = 0.0d+0 + if (lr.ne.0.0d+0) sr = (c/lr)/a + go to 10 +c complex conjugate zeros + 60 sr = -b/a + lr = sr + si = abs(d/a) + li = -si + return + end diff --git a/modules/polynomials/src/fortran/quad.lo b/modules/polynomials/src/fortran/quad.lo new file mode 100755 index 000000000..191c7c7cc --- /dev/null +++ b/modules/polynomials/src/fortran/quad.lo @@ -0,0 +1,12 @@ +# src/fortran/quad.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/quad.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/polynomials/src/fortran/quadit.f b/modules/polynomials/src/fortran/quadit.f new file mode 100755 index 000000000..33b132bc4 --- /dev/null +++ b/modules/polynomials/src/fortran/quadit.f @@ -0,0 +1,92 @@ +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 quadit(uu, vv, nz) +c variable-shift k-polynomial iteration for a +c quadratic factor converges only if the zeros are +c equimodular or nearly so. +c uu,vv - coefficients of starting quadratic +c nz - number of zero found + common /gloglo/ p, qp, k, qk, svk, sr, si, u, + * v, a, b, c, d, a1, a2, a3, a6, a7, e, f, g, + * h, szr, szi, lzr, lzi, eta, are, mre, n, nn + double precision p(101), qp(101), k(101), + * qk(101), svk(101), sr, si, u, v, a, b, c, d, + * a1, a2, a3, a6, a7, e, f, g, h, szr, szi, + * lzr, lzi + real eta, are, mre + integer n, nn + double precision ui, vi, uu, vv + real mp, omp, ee, relstp, t, zm + integer nz, type, i, j + logical tried + nz = 0 + tried = .false. + u = uu + v = vv + j = 0 +c main loop + 10 call quad(1.0d+0, u, v, szr, szi, lzr, lzi) +c return if roots of the quadratic are real and not +c close to multiple or nearly equal and of opposite +c sign + if (abs(abs(szr)-abs(lzr)).gt.0.010d+0* + * abs(lzr)) return +c evaluate polynomial by quadratic synthetic division + call quadsd(nn, u, v, p(1), qp(1), a, b) + mp = abs(a-szr*b) + abs(szi*b) +c compute a rigorous bound on the rounding error in +c evaluting p + zm = sqrt(abs(real(v))) + ee = 2.*abs(real(qp(1))) + t = -szr*b + do 20 i=2,n + ee = ee*zm + abs(real(qp(i))) + 20 continue + ee = ee*zm + abs(real(a)+t) + ee = (5.*mre+4.*are)*ee - (5.*mre+2.*are)* + * (abs(real(a)+t)+abs(real(b))*zm) + + * 2.*are*abs(t) +c iteration has converged sufficienty if the +c polynomial value is less than 20 times this bound + if (mp.gt.20.*ee) go to 30 + nz = 2 + return + 30 j = j + 1 +c stop iteration after 20 steps + if (j.gt.20) return + if (j.lt.2) go to 50 + if (relstp.gt..01 .or. mp.lt.omp .or. tried) + * go to 50 +c a cluster appears to be stalling the convergence. +c five fixed shift steps are taken with a u,v close +c to the cluster + if (relstp.lt.eta) relstp = eta + relstp = sqrt(relstp) + u = u - u*relstp + v = v + v*relstp + call quadsd(nn, u, v, p(1), qp(1), a, b) + do 40 i=1,5 + call calcsc(type) + call nextk(type) + 40 continue + tried = .true. + j = 0 + 50 omp = mp +c calculate next k polynomial and new u and v + call calcsc(type) + call nextk(type) + call calcsc(type) + call newest(type, ui, vi) +c if vi is zero the iteration is not converging + if (vi.eq.0.0d+0) return + relstp = abs((vi-v)/vi) + u = ui + v = vi + go to 10 + end diff --git a/modules/polynomials/src/fortran/quadit.lo b/modules/polynomials/src/fortran/quadit.lo new file mode 100755 index 000000000..34613f5b5 --- /dev/null +++ b/modules/polynomials/src/fortran/quadit.lo @@ -0,0 +1,12 @@ +# src/fortran/quadit.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/quadit.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/polynomials/src/fortran/quadsd.f b/modules/polynomials/src/fortran/quadsd.f new file mode 100755 index 000000000..0f4593cf3 --- /dev/null +++ b/modules/polynomials/src/fortran/quadsd.f @@ -0,0 +1,26 @@ +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 +C/MEMBR ADD NAME=QUADSD,SSI=0 + subroutine quadsd(nn, u, v, p, q, a, b) +c divides p by the quadratic 1,u,v placing the +c quotient in q and the remainder in a,b + double precision p(nn), q(nn), u, v, a, b, c + integer i + b = p(1) + q(1) = b + a = p(2) - u*b + q(2) =a + do 10 i=3,nn + c = p(i) - u*a - v*b + q(i) =c + b = a + a = c + 10 continue + return + end diff --git a/modules/polynomials/src/fortran/quadsd.lo b/modules/polynomials/src/fortran/quadsd.lo new file mode 100755 index 000000000..891ea8617 --- /dev/null +++ b/modules/polynomials/src/fortran/quadsd.lo @@ -0,0 +1,12 @@ +# src/fortran/quadsd.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/quadsd.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/polynomials/src/fortran/realit.f b/modules/polynomials/src/fortran/realit.f new file mode 100755 index 000000000..eecf828f0 --- /dev/null +++ b/modules/polynomials/src/fortran/realit.f @@ -0,0 +1,100 @@ +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 realit(sss, nz, iflag) +c variable-shift h polynomial iteration for a real +c zero. +c sss - starting iterate +c nz - number of zero found +c iflag - flag to indicate a pair of zero near real +c axis. + common /gloglo/ p, qp, k, qk, svk, sr, si, u, + * v, a, b, c, d, a1, a2, a3, a6, a7, e, f, g, + * h, szr, szi, lzr, lzi, eta, are, mre, n, nn + double precision p(101), qp(101), k(101), + * qk(101), svk(101), sr, si, u, v, a, b, c, d, + * a1, a2, a3, a6, a7, e, f, g, h, szr, szi, + * lzr, lzi + real eta, are, mre + integer n, nn + double precision pv, kv, t, s, sss + real ms, mp, omp, ee + integer nz, iflag, i, j, nm1 + nm1 = n - 1 + nz = 0 + s = sss + iflag = 0 + j = 0 +c main loop + 10 pv = p(1) +c evaluate p at s + qp(1) = pv + do 20 i=2,nn + pv = pv*s + p(i) + qp(i) = pv + 20 continue + mp = abs(pv) +c compute a rigorous bound on the error in evaluating +c p + ms = abs(s) + ee = (mre/(are+mre))*abs(real(qp(1))) + do 30 i=2,nn + ee = ee*ms + abs(real(qp(i))) + 30 continue +c iteration has converges sufficiently if the +c polynomial value is less yhan 20 times this bound + if (mp.gt.20.*((are+mre)*ee-mre*mp)) go to 40 + nz = 1 + szr = s + szi = 0.0d+0 + return + 40 j = j +1 +c stop iteration after 10 steps + if (j.gt.10) return + if (j.lt.2) go to 50 + if (abs(t).gt..001*abs(s-t) .or. mp.le.omp) + * go to 50 +c a cluster of zeros near the real axis has been +c encountered return with iflag set to initiate a +c quadratic iteration + iflag = 1 + sss = s + return +c return if the polynomial value has increased +c significantly + 50 omp = mp +c compute t, the next polynomial, and the new iterate + kv = k(1) + qk(1) = kv + do 60 i=2,n + kv = kv*s + k(i) + qk(i) = kv + 60 continue + if (abs(kv).le.abs(k(n))*10.*eta) go to 80 +c use the scaled form of the recurrence if the value +c of k at s is nonzero + t = -pv/kv + k(1) = qp(1) + do 70 i=2,n + k(i) = t*qk(i-1) + qp(i) + 70 continue + go to 100 +c use unscaled form + 80 k(1) = 0.0d+0 + do 90 i=2,n + k(i) = qk(i-1) + 90 continue + 100 kv = k(1) + do 110 i=2,n + kv = kv*s +k(i) + 110 continue + t = 0.0d+0 + if (abs(kv).gt.abs(k(n))*10.*eta) t = -pv/kv + s = s + t + go to 10 + end diff --git a/modules/polynomials/src/fortran/realit.lo b/modules/polynomials/src/fortran/realit.lo new file mode 100755 index 000000000..0705b3abc --- /dev/null +++ b/modules/polynomials/src/fortran/realit.lo @@ -0,0 +1,12 @@ +# src/fortran/realit.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/realit.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/polynomials/src/fortran/recbez.f b/modules/polynomials/src/fortran/recbez.f new file mode 100755 index 000000000..9197508b3 --- /dev/null +++ b/modules/polynomials/src/fortran/recbez.f @@ -0,0 +1,240 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) 1989-2008 - INRIA - Serge STEER +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 recbez(A,n,B,m,best,ipb,w,err) +c!but +c calcule la factorisation de bezout de deux polynomes A,B c'est a dire +c les polynomes x,y,u, v et pgcd de degre minimal et tels que : +c [x u] +c [A B] * [ ] = [0 Pgcd] +c [y v] +c!liste d'appel +c subroutine recbez(A,n,B,m,best,ipb,w,err) +c double precision A(n+1),B(m+1),w(*),best(*),err +c +c A : vector of A polynomial coefficients, in increasing degrees order +c n : degree of A polynomial +c B : vector of B polynomial coefficients, in increasing degrees order +c m : degree of B polynomial +c +c best : Array where the result is stored +c (2*(n+m)+min(n,m)+3) [gcd u,v,x,y] +c gcd=best(1:ipb(2)-1), +c u=best(ipb(2):ipb(3)-1) v=best(ipb(3):ipb(4)-1) +c x=best(ipb(4):ipb(5)-1) y=best(ipb(5):ipb(6)-1) +c ipb : integer array that gives the way gcd u,v,x,y are stored in best +c w: working array w(7*n0+3*n0*n0) ou n0=max(n,m)+1 +c err : estimated equation error +c! method +c If A and B are polynomials of degree m and n : A in R[x] , B in R[x] +c n m +c The application: (P,Q) in R[x] x R[x] --> P*A+Q*B in R[x] +c m-l n-l n+m-l +c +c is linear. It can be represented by a linear application from +c R^(n+m-2*l+2) to R^(n+m-l+1) X--> X*S. Let call S the matrix S +c of this linear application. If l=1 this is the Sylvester matrix. +c example for A of degree 5 (n=5) and B of degree 4 (m=4) and l=2. +c [A_0 A_1 A_2 A_3 A_4 A_5 0 0] +c [ 0 A_0 A_1 A_2 A_3 A_4 A_5 0] +c [ 0 0 A_0 A_1 A_2 A_3 A_4 A_5] +c S = [B_0 B_1 B_2 B_3 B_4 0 0 0] +c [ 0 B_0 B_1 B_2 B_3 B_4 0 0] +c [ 0 0 B_0 B_1 B_2 B_3 B_4 0] +c [ 0 0 0 B_0 B_1 B_2 B_3 B_4] +c +c X = [P_0 P_1 P_2 Q_0 Q_1 Q_2 Q_3] +c The greater l for which S becomes not full rank is the GCD degree. +c The kernel of S then gives the x and y value +c The GCD is the element of the image of S that has the smaller +c degree. +c The determination of the S rank is a difficult problem. To avoid +c the use of a tolerance The algorithm try all l from min(m,n)-1 to +c 1. and keeps the solution that minimise a criterion based on +c forward equation errors ||A*x+B*y|| and ||A*u+B*V-GCD|| and +c backward equation errors ||y*CGD+A|| and ||x*GCD-B|| +c Finally instead of computing QR decomposition of each S matrices a +c recursive method is used that updates previous QR decomposition +c using givens rotations. This algorithm also requires to store only +c a matrix which has max(m,n)+1 columns. +c +c! called routines +c dest dcopy bezstp dlamch + double precision A(n+1),B(m+1),w(*),best(*),err + double precision dlamch + integer ipb(6) +c + integer nn,mm +c + err=dlamch('o') + nn = n + mm = m +c +c compute the true degree for A and B taking care of 0 higer degree +c + nn=n+1 + 01 nn=nn-1 + if(nn.lt.0) goto 30 + if(A(nn+1).eq.0.0d+0) goto 01 +c + mm=m+1 + 02 mm=mm-1 + if(mm.lt.0) goto 30 + if(B(mm+1).eq.0.0d+0) goto 02 +c + n0=max(nn,mm)+1 + n02=n0*(n0+1) +c leading dimension of the S matrix + ldS=n0+1 +c leading dimension of the Q matrix of the QR factorization + ldQ=n0+1 + +c allocate working arrays +c start index of S array in w + iS=1 +c start index of Q array in w + iQ=iS+n02 +c start index of working array for bezstp + iw=iQ+2*n02 + ifree=iw+7*n0 + +c initialize S (n0+1) x n0 matrix array. Take care that it is a +c compact form of the S matrix described in the method part. + + call dset(n02,0.0d+0,w(iS),1) +c the last 2 rows form the current S matrix +c lS points to the beginning of last row +c and lS-1 to the beginning of the previous one + lS=iS-1+ldS +c initialize with x and y of degree 0 +c [0 ] +c S= [coeff(A)] +c [coeff(B)] +c no + + call dcopy(nn+1,A,1,w(lS-1),ldS) + call dcopy(mm+1,B,1,w(lS),ldS) + +c initialize U (n0+1) x (2*n0) array +c [0...0|0...0 0 0] +c U= [0...0|0...0 1 0] +c [0...0|0...0 0 1] +C n0 n0 + call dset(2*n02,0.0d+0,w(iQ),1) + lQ=iQ-1+ldQ+2*n0*ldQ +c the last 2 rows form the current Q matrix + call dset(2,1.0d+0,w(lQ-1-2*ldQ),ldQ+1) + +c loop on GCD degree degree(gcd)=n0+1-l + do 20 l=1,n0 + lS=lS-1 + lQ=lQ-1-2*ldQ + lx=lS-1+ldS + lv=lQ-1-2*ldQ +c . lS : points on the upper left corner of the current A matrix, +c . lQ : points on the upper left corner of the current Q matrix + call bezstp(A,nn,B,mm,w(lS),ldS,w(lQ),ldQ,l,w(lx), + $ w(lv),w(iw),best,ipb,err) + 20 continue + return + + + 30 continue +c Handle special cases at least one polynomial is a scalar + err=0.0d+0 + ipb(1)=1 + if(min(nn,mm).eq.0) goto 70 + CRES=nn-mm + if (CRES .lt. 0) then + goto 40 + elseif (CRES .eq. 0) then + goto 50 + else + goto 60 + endif + 40 continue +c A=0 + np=mm + call dcopy(mm+1,B,1,best(1),1) + ipb(2)=ipb(1)+mm+1 + best(ipb(2))=0.0d+0 + ipb(3)=ipb(2)+1 + best(ipb(3))=1.0d+0 + ipb(4)=ipb(3)+1 + best(ipb(4))=1.0d+0 + ipb(5)=ipb(4)+1 + best(ipb(5))=0.0d+0 + ipb(6)=ipb(5)+1 + return + 50 continue +c A=0,B=0 la decomposition n'est pas definie + np=0 + best(1)=0.0d+0 + ipb(2)=ipb(1)+1 + best(ipb(2))=1.0d+0 + ipb(3)=ipb(2)+1 + best(ipb(3))=0.0d+0 + ipb(4)=ipb(3)+1 + best(ipb(4))=0.0d+0 + ipb(5)=ipb(4)+1 + best(ipb(5))=1.0d+0 + ipb(6)=ipb(5)+1 + return + 60 continue +c B=0 + np=nn + call dcopy(nn+1,A,1,best(1),1) + ipb(2)=ipb(1)+nn+1 + best(ipb(2))=1.0d+0 + ipb(3)=ipb(2)+1 + best(ipb(3))=0.0d+0 + ipb(4)=ipb(3)+1 + best(ipb(4))=0.0d+0 + ipb(5)=ipb(4)+1 + best(ipb(5))=1.0d+0 + ipb(6)=ipb(5)+1 + return +c + 70 best(1)=1.0d+0 + ipb(2)=2 + CRES=nn-mm + if (CRES .lt. 0) then + goto 90 + elseif (CRES .eq. 0) then + goto 95 + else + goto 100 + endif + 90 continue +c A=cte + best(ipb(2))=1.0d+0/A(1) + ipb(3)=ipb(2)+1 + best(ipb(3))=0.0d+0 + ipb(4)=ipb(3)+1 + call dcopy(mm+1,B,1,best(ipb(4)),1) + ipb(5)=ipb(4)+mm+1 + best(ipb(5))=-A(1) + ipb(6)=ipb(5)+1 + return + 95 continue +c A=cte,B=cte + if(abs(A(1)).gt.abs(B(1))) goto 90 +c + 100 continue +c B=cte + best(ipb(2))=0.0d+0 + ipb(3)=ipb(2)+1 + best(ipb(3))=1.0d+0/B(1) + ipb(4)=ipb(3)+1 + best(ipb(4))=-B(1) + ipb(5)=ipb(4)+1 + call dcopy(nn+1,A,1,best(ipb(5)),1) + ipb(6)=ipb(5)+nn+1 + return +c + end diff --git a/modules/polynomials/src/fortran/recbez.lo b/modules/polynomials/src/fortran/recbez.lo new file mode 100755 index 000000000..4203facae --- /dev/null +++ b/modules/polynomials/src/fortran/recbez.lo @@ -0,0 +1,12 @@ +# src/fortran/recbez.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/recbez.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/polynomials/src/fortran/residu.f b/modules/polynomials/src/fortran/residu.f new file mode 100755 index 000000000..77c7e49eb --- /dev/null +++ b/modules/polynomials/src/fortran/residu.f @@ -0,0 +1,137 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) ????-2008 - INRIA - Francois DELBECQUE +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 residu(p,np,a,na,b,nb,v,tol,ierr) +c but! calcul de residus +c calcul de la somme des residus de p/(a.b) +c aux zeros de a +c p=polynome de degre np +c a= na +c b= nb +c +c les zeros de b sont supposes tous differents des +c zeros de a.... +c +c a,b et p dimensionnes au moins a leur degre+1 dans le pgm +c appelant. +c rangement par degres croissants. +c v=resultat +c ierr=0 O.K. +c ierr=1 mauvais appel +c si a et b ont une racine commune +c on teste la division par zero par rapport a tol +c principe du calcul:si a (resp b) est une constante on a +c v=p(nb)/b(nb+1)/a(1) (resp v=p(na)/a(na+1)/b(1) ) +c sinon on remplace p et a par le reste de la division +c euclidienne de p et a par b,puis on inverse les roles +c de a et b en changeant le signe de v. +c on itere jusqu a trouver degre de a ou degre de b=0. +c routines appelees:dpodiv,idegre (bibli blaise Inria) +c + dimension a(*),b(*),p(*) + double precision a,b,p,v,r,b1,tol + v=0.0d+0 + ierr=0 + npp=np + call idegre(a,na,na) + call idegre(b,nb,nb) + if(na.eq.0) return +c +c b=constante v=... et return + if(nb.eq.0) then + b1=b(1) + if(b1.eq.0.0d+0) then + ierr=1 + return + endif + if(npp.ge.na-1) then + v=p(na)/a(na+1)/b1 + return + else + v=0.0d+0 + return + endif + endif +c +c degre de b >= 1 +c + if(na.le.np) then +c p=p/a (reste de la division euclidienne...) + call dpodiv(p,a,np,na) + call idegre(p,na-1,np) + endif + if(na.le.nb) then +c b=b/a (reste de la div euclidienne...) + call dpodiv(b,a,nb,na) + call idegre(b,na-1,nb) + endif +c ici nb=degre de b < na=degre de a +c et np=degre de p < na=degre de a +c si degre de a=1 (b et p =cstes) v=... et return + if(na.eq.1) then + b1=b(1) + if(abs(b1).le.tol) then + ierr=1 + return + endif + v=p(na)/a(na+1)/b1 + return + endif +c +c si degre de b=0 v=... et return + call idegre(b,min(na-1,nb),nb) + if(nb.eq.0) then + b1=b(1) + if(abs(b1).le.tol) then + ierr=1 + return + endif + if(npp.ge.na-1) then + v=p(na)/a(na+1)/b1 + return + else + v=0.0d+0 + return + endif + endif +c si degre de b>0 on itere + nit=0 + 20 continue + if(nit.ge.1) na=nbb + nit=nit+1 + nbb=nb +c a=a/b (reste de la division euclidienne...) +c p=p/b (reste de la division euclidienne...) +c + call dpodiv(a,b,na,nb) + call idegre(a,nb-1,na) + call dpodiv(p,b,np,nb) + call idegre(p,nb-1,np) +c b=-a + do 30 k=1,nb+1 + r=b(k) + b(k)=-a(k) + a(k)=r + 30 continue +c +c si degre de b=0 v=... +c + call idegre(b,na,nb) + if(nb.eq.0) then + b1=b(1) + if(abs(b1).le.tol) then + ierr=1 + v=0.0d+0 + return + endif + v=p(nbb)/a(nbb+1)/b1 + return + endif +c sinon goto 20 + goto 20 + end diff --git a/modules/polynomials/src/fortran/residu.lo b/modules/polynomials/src/fortran/residu.lo new file mode 100755 index 000000000..802a6b8c0 --- /dev/null +++ b/modules/polynomials/src/fortran/residu.lo @@ -0,0 +1,12 @@ +# src/fortran/residu.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/residu.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/polynomials/src/fortran/rpoly.f b/modules/polynomials/src/fortran/rpoly.f new file mode 100755 index 000000000..8fc12514a --- /dev/null +++ b/modules/polynomials/src/fortran/rpoly.f @@ -0,0 +1,276 @@ +c +c From NETLIB : TOMS/493 +c Based on Jenkins-Traub algorithm : +c http://en.wikipedia.org/wiki/Jenkins-Traub_method +c + subroutine rpoly(op, degree, zeror, zeroi, fail) +c!purpose +c finds the zeros of a real polynomial +c!calling sequence +c op - double precision vector of coefficients in +c order of decreasing powers. +c degree - integer degree of polynomial. +c zeror, zeroi - output double precision vectors of +c real and imaginary parts of the +c zeros. +c fail - output parameter, +c 2 if leading coefficient is zero +c 1 for non convergence or if rpoly +c has found fewer than degree zeros. +c in the latter case degree is reset to +c the number of zeros found. +c 3 if degree>100 +c!comments +c to change the size of polynomials which can be +c solved, reset the dimensions of the arrays in the +c common area and in the following declarations. +c the subroutine uses single precision calculations +c for scaling, bounds and error calculations. all +c calculations for the iterations are done in double +c precision. +c! + external dlamch,slamch + double precision dlamch + real slamch +c + common /gloglo/ p, qp, k, qk, svk, sr, si, u, + * v, a, b, c, d, a1, a2, a3, a6, a7, e, f, g, + * h, szr, szi, lzr, lzi, eta, are, mre, n, nn + double precision p(101), qp(101), k(101), + * qk(101), svk(101), sr, si, u, v, a, b, c, d, + * a1, a2, a3, a6, a7, e, f, g, h, szr, szi, + * lzr, lzi + double precision op(*), temp(101), + * zeror(*), zeroi(*), t, aa, bb, cc,factor + real ptt(101), lo, maxi, mini, xx, yy, cosr, + * sinr, xxx, x, sc, bnd, xm, ff, df, dx, infin, + * smalno, base,eta,are,mre + integer degree, cnt, nz, i, j, jj, nm1, n, nn + logical zerok + integer fail +c + real ZERO + parameter (ZERO = 0.0E+0) + + if(degree.gt.100) goto 300 +c the following statements set machine constants used +c in various parts of the program. the meaning of the +c four constants are... +c eta the maximum relative representation error +c which can be described as the smallest +c positive floating point number such that +c 1.do+eta is greater than 1. +c infiny the largest floating-point number. +c smalno the smallest positive floating-point number +c if the exponent range differs in single and +c double precision then smalno and infin +c should indicate the smaller range. +c base the base of the floating-point number +c system used. + +c +c Rely on compiler instead of Lapack +c slamch function does not work under macosX +c replace this by compiler stuffs working on each platform +c http://www.netlib.org/lapack/util/slamch.f +c +c slamch('u') <=> TINY(ZERO) + smalno=TINY(ZERO) +c slamch('o') <=> HUGE(ZERO) + infin=HUGE(ZERO) +c slamch('b') <=> RADIX(ZERO) + base=RADIX(ZERO) + eta=real(dlamch('p')) +c are and mre refer to the unit error in + and * +c respectively. they are assumed to be the same as +c eta. + are = eta + mre = eta + lo = smalno/eta +c initialization of constants for shift rotation + xx = 0.707106780d+0 + yy = -xx + cosr = -0.0697564740d+0 + sinr = 0.997564050d+0 + fail = 0. + n = degree + nn = n + 1 +c algorithm fails if the leading coefficient is zero. + if (op(1).ne.0.0d+0) go to 10 + fail = 2 + degree = 0 + return +c make a copy of the coefficients + 10 do 20 i=1,nn + p(i) = op(i) + 20 continue +c remove the zeros at the origin if any + 30 if (p(nn).ne.0.0d+0) go to 40 + j = degree - n + 1 + zeror(j) = 0.0d+0 + zeroi(j) = 0.0d+0 + nn = nn - 1 + n = n - 1 + go to 30 +c start the algorithm for one zero + 40 if (n.gt.2) go to 60 + if (n.lt.1) return +c calculate the final zero or pair zeros + if (n.eq.2) go to 50 + zeror(degree) = - p(2)/p(1) + zeroi(degree) = 0.0d+0 + return + 50 call quad(p(1), p(2), p(3), zeror(degree-1), + * zeroi(degree-1), zeror(degree), zeroi(degree)) + return +c find largest and smallest moduli of coefficients. + 60 maxi = 0. + mini = infin + do 70 i=1,nn + x = abs(real(p(i))) + if (x.gt.maxi) maxi = x + if (x.ne.0. .and. x.lt.mini) mini = x + 70 continue +C maxi=min(infin,maxi) bug "f77 -mieee-with-inexact" + if (infin.lt.maxi) maxi=infin +c scale if there are large or very small coefficients +c computes a scale factor to multiply the +c coefficients of the polynomial. the scaling is done +c to avoid overflow and to avoid undetected underflow +c interfering with the convergence criterion. +c the factor is a power of the base + sc = lo/mini + if (sc.gt.1.0) go to 80 + if (maxi.lt.10.) go to 110 + if (sc.eq.0.) sc = smalno + go to 90 + 80 if (infin/sc.lt.maxi) go to 110 + 90 l = log(sc)/log(base) + .5 + factor = (base*1.0d+0)**l + if (factor.eq.1.0d+0) go to 110 + do 100 i=1,nn + p(i) = factor*p(i) + 100 continue +c compute lower bound on moduli of zeros. + 110 do 120 i=1,nn +c ptt(i) = min(infin,abs(real(p(i)))) bug "f77 -mieee-with-inexact" + ptt(i) = abs(real(p(i))) + if (infin.lt.abs(real(p(i)))) ptt(i)=infin + 120 continue + ptt(nn) = -ptt(nn) +c compute upper estimate of bound + x = exp((log(-ptt(nn))-log(ptt(1)))/real(n)) + if (ptt(n).eq.0.) go to 130 +c if newton step at the origin is better, use it. + xm = -ptt(nn)/ptt(n) + if (xm.lt.x) x = xm +c chop the interval (0,x) until ff .le. 0 + 130 xm = x*.1 + ff = ptt(1) + do 140 i=2,nn + ff = ff*xm + ptt(i) + 140 continue + if (ff.le.0) go to 150 + if(ff.gt.infin) goto 310 + x = xm + go to 130 + 150 dx = x +c do newton iteration until x converges to two +c decimal places + 160 if (abs(dx/x).le..005) go to 180 + ff = ptt(1) + df = ff + do 170 i=2,n + ff = ff*x + ptt(i) + df = df*x + ff + 170 continue + ff = ff*x + ptt(nn) + if(ff.gt.infin) goto 310 + dx = ff/df + x = x - dx + go to 160 + 180 bnd = x +c compute the derivative as the intial k polynomial +c and do 5 steps with no shift + nm1 = n - 1 + do 190 i=2,n + k(i) = real(nn-i)*p(i)/real(n) + 190 continue + k(1) = p(1) + aa = p(nn) + bb = p(n) + zerok = k(n).eq.0.0d+0 + do 230 jj=1,5 + cc = k(n) + if (zerok) go to 210 +c use scaled form of recurrence if value of k at 0 is +c nonzero + t = -aa/cc + do 200 i=1,nm1 + j = nn - i + k(j) = t*k(j-1) + p(j) + 200 continue + k(1) = p(1) + zerok = abs(k(n)).le.abs(bb)*eta*10. + go to 230 +c use unscaled form form of recurrence + 210 do 220 i=1,nm1 + j = nn - i + k(j) = k(j-1) + 220 continue + k(1) = 0.0d+0 + zerok = k(n).eq.0.0d+0 + 230 continue +c save k for restarts with new shifts + do 240 i=1,n + temp(i) = k(i) + 240 continue +c loop to select the quadratic corresponding to each +c new shift + do 280 cnt=1,20 +c quadratic corresponds to a double shift to a +c non-real point and its complex conjugate. the point +c has modulus bnd and amplitude rotated by 94 degrees +c from the previous shift + xxx = cosr*xx - sinr*yy + yy = sinr*xx + cosr*yy + xx = xxx + sr = bnd*xx + si = bnd*yy + u = -2.0d+0*sr + v = bnd +c second stage calculation, fixed quadratic + call fxshfr(20*cnt, nz) + if (nz.eq.0) go to 260 +c the second stage jumps directly to one of the third +c stage iterations and returns here if successful. +c deflate the polynomial, store the zero or zeros and +c return to the main algorithm. + j = degree - n + 1 + zeror(j) = szr + zeroi(j) = szi + nn = nn - nz + n = nn - 1 + do 250 i=1,nn + p(i) = qp(i) + 250 continue + if (nz.eq.1) go to 40 + zeror(j+1) = lzr + zeroi(j+1) = lzi + go to 40 +c if the iteration is unsuccessful another quadratic +c is chosen after restoring k + 260 do 270 i=1,n + k(i) = temp(i) + 270 continue + 280 continue +c return with failure if no convergence with 20 +c shifts + fail = 1 + degree = degree - n + return + 300 fail=3 + return + 310 fail=1 + return + end diff --git a/modules/polynomials/src/fortran/rpoly.lo b/modules/polynomials/src/fortran/rpoly.lo new file mode 100755 index 000000000..6a55b5012 --- /dev/null +++ b/modules/polynomials/src/fortran/rpoly.lo @@ -0,0 +1,12 @@ +# src/fortran/rpoly.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/rpoly.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/polynomials/src/fortran/sfact1.f b/modules/polynomials/src/fortran/sfact1.f new file mode 100755 index 000000000..4d4da77e2 --- /dev/null +++ b/modules/polynomials/src/fortran/sfact1.f @@ -0,0 +1,132 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) 1986-2008 - INRIA - Francois DELBECQUE +c Copyright (C) 1990-2008 - INRIA - Serge STEER +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 sfact1(b,n,w,maxit,ierr) +c!but +c on cherche une factorisation spectrale d'un polynome a donne +c par : a*(a(1/z) = b(n)*z**-n+....+b(0)+ ... +b(n)*z**n +c!liste d'appel +c subroutine sfact1(b,n,w,maxit,ierr) +c +c double precision b(n+1),w(6*(n+1)) +c integer n,maxit,ierr +c +c b : contient les coeffs b(n),b(n-1),....,b(0) +c apres execution b contient les coeff du resultat +c n : degre de a +c w : tableau de travail de taille 6*(n+1) +c maxit : nombre maxi d'iterations admis +c ierr : indicateur d'erreur +c si ierr=0 : ok +c si ierr<0 : convergence a 10**ierr pres +c si ierr=1 : non convergence +c si ierr=2 : b(0) est negatif ou nul. +c +c!origine +c V Kucera : Discrete Linear control (john Wiley& Sons) 1979 +c! + dimension b(n+1),w(*) + double precision b,b0,w,a0,temp,b00,s,dlamch,eps,best +c + eps=dlamch('p')*10.0d+0 +c + lb=n+1 + ierr=0 +c + lomeg=1 + lalpha=lomeg+lb + lro=lalpha+lb + leta=lro+lb + lbold=leta+lb + lambda=lbold+lb + lsave=lambda+lb +c + call dcopy(lb,b,-1,w(lbold),1) + call dcopy(lb,w(lbold),1,b,1) + b00=w(lbold) + if(b00.le.0.0d+0) goto 91 + b0=sqrt(b00) + do 1 j=1,lb + w(lalpha-1+j)=b(j)/b0 + 1 continue +c + do 40 i=1,maxit +c + call dcopy(lb,w(lbold),1,b,1) + call dcopy(lb,w(lalpha),1,w(lomeg),1) +c premier tableau + do 15 k=1,lb-1 + call dcopy(lb-k+1,w(lalpha),-1,w(lro),1) + w(lambda+k-1)=w(lalpha+lb-k)/w(lro+lb-k) + do 11 j=1,lb-k + w(lalpha-1+j)=w(lalpha-1+j)-w(lambda+k-1)*w(lro+j-1) + 11 continue + a0=w(lalpha) +c calcul de eta + w(leta+lb-k)=2.0d+0*b(lb-k+1)/a0 + if (k.lt.lb-1) then + do 12 j=2,lb-k + b(j)=b(j)-0.50d+0*w(leta+lb-k)*w(lalpha+lb-k-j+1) + 12 continue + endif + 15 continue + w(leta)=b(1)/w(lalpha) +c deuxieme tableau + do 21 k=lb-1,1,-1 + call dcopy(lb-k+1,w(leta),-1,b,1) + do 19 j=1,lb-k+1 + w(leta+j-1)=w(leta+j-1)-w(lambda+k-1)*b(j) + 19 continue + 21 continue + s=0.0d+0 + do 22 j=1,lb + w(lalpha-1+j)=0.50d+0*(w(leta+j-1)+w(lomeg+j-1)) + s=s+w(lalpha-1+j)*w(lalpha-1+j) + 22 continue +c +c test de convergence + +c calcul de l'erreur element par elements +c$$$ call dcopy(lb,w(lbold),-1,b,1) +c$$$ do 900 iii=0,n +c$$$ x=b(iii+1)-ddot(iii+1,w(lalpha),1,w(lalpha+n-iii),1) +c$$$ write(6,'(10x,e10.3,'','',e10.3,'';'')') x,b(1+iii) +c$$$ 900 continue + + temp=abs(s-b00)/b00 + if(temp.le.eps) goto 50 + if(i.eq.1) best=temp + if(temp.lt.best) then + call dcopy(lb,w(lalpha),1,w(lsave),1) + best=temp + endif + 40 continue + goto 90 +c + 50 do 51 i=1,lb + b(i)=w(lalpha-1+i) + 51 continue + return +c +c retours en erreur +c + 90 continue + if(best.le.1.d-3) then + call dcopy(lb,w(lsave),1,b,1) + ierr=nint(log10(best)) + else +c non convergence + ierr=1 + endif + return + 91 continue +c b00 est negatif ou nul + ierr=2 + return + end diff --git a/modules/polynomials/src/fortran/sfact1.lo b/modules/polynomials/src/fortran/sfact1.lo new file mode 100755 index 000000000..a4bf516a1 --- /dev/null +++ b/modules/polynomials/src/fortran/sfact1.lo @@ -0,0 +1,12 @@ +# src/fortran/sfact1.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/sfact1.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/polynomials/src/fortran/sfact2.f b/modules/polynomials/src/fortran/sfact2.f new file mode 100755 index 000000000..f3848b0c8 --- /dev/null +++ b/modules/polynomials/src/fortran/sfact2.f @@ -0,0 +1,197 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) 1985-2008 - INRIA - Carlos KLIMANN +c +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +C/MEMBR ADD NAME=SFACT2,SSI=0 +c Copyright INRIA + subroutine sfact2(b,l,n,matg,maxit,ierr) +c +c!but +c Etant donnee la matrice bloc :[B0, ..., B(n-1), B(n)] +c ou les Bi sont les coefficients (de degre i) du produit +c de la matrice polynomiale A par A'(1/z) +c +c alors cette subroutine produit les coefficients d'une +c matrice polynomiale Hurwitz D, qui est le facteur +c spectrale gauche associe a A, tel que A*A'(1/z)=D*D'(1/z) +c (ou D=D0+D1*d+ ... +Dn*(d**n)). +c +c!methode +c La methode de factorisation spectrale donnee ici est basee +c dans la methode de factorisation de Cholesky. Elle est +c iterative et asuure les convergences monotone et geometrique. +c En plus elle peut etre employee naturellement pour des +c polynomes scalaires, cependant que dans ce cas existent +c des algorithmes plus surs et rapides. +c +c Voir V. KUCERA.- Discrete linear Control (The polynomial +c equation approach), J. Wiley & sons, 1979. Secs 2.10 et 7.13. +c +c!parametres d'appel +c +c call sfact2(b,l,n,matg,maxit,ierr) +c +c double precision b(l,(n+1)*l) ) , matg(n*n*l*l) +c integer n,maxit,ierr +c +c b : contient les coefficients bi : bi=b(1:l,1+(i-1)*l) +c apres execution b contient les di. +c l : nombre de lignes et de colonnes des bi +c n: degre du polynome matriciel A, qui donne origine a b +c matg : tableau de travail de taille q*(q+1)/2 avec q=(n+1)*l +c +c maxit:entier, indique le nombre maximum d'maxitations admis +c +c ierr:entier, si 0 fin normale, +c si -1 fin pour quantite maximum d'iterations +c si 1 probleme singulier ou non symetrique +c atteinte +c +c!auteur +c +c Cette subroutine est la version fortran de l'algorithme +c donne dans la section 7.13 du livre de vladimir kucera: +c "discrete linear control", faite par +c carlos klimann, inria, 16-xii-85. +c +c! +c + double precision b(l,*),matg(*) + integer n,l,ierr,maxit +c + double precision sigma,acu,tr1,tr2 + integer i,j,k0,k,p,r,jj,kk,q,iter,q22 +c + iadr(i,j)=1+(i-j)+(q22-j)*(j-1)/2 +c +c la matrice delta(i-1) est stockee dans matg sous forme compacte +c l'element (i,j) est stocke en iadr(i,j) +c l'element en haut a gauche est repere par id0,id0 +c + p=n*l + q=p+l + q22=2*q+2 +c + nel=q*(q+1)/2 + do 05 j=1,nel + 05 matg(j)=0.0d+0 + do 06 j=p+1,q + do 06 r=j,q +06 matg(iadr(r,j))=b(r-p,j-p) +c + id0=p+1 + k0=p + iter=0 + j=p +c +c calcul de delta(0) - par choleski + goto 20 +c +10 continue +c +c calcul de x=[bi,...,b1]*delta(i-1)'**(-1) +c + do 14 j=id0,p + j1=(j-1)/l + j2=j-j1*l + jj=(n-j1)*l+j2 + if(matg(iadr(j,j)).eq.0.0d+0) goto 60 + do 13 r=p+1,q + sigma=0.0d+0 + if(j.eq.id0)goto 12 + do 11 k=id0,j-1 + sigma=sigma+(matg(iadr(j,k))*matg(iadr(r,k))) +11 continue +12 matg(iadr(r,j))=(b(r-p,jj)-sigma)/matg(iadr(j,j)) +13 continue +14 continue +c +c calcul de b0-x*x' +c + do 18 j=p+1,q + do 17 r=j,q + sigma=0.0d+0 + do 16 k=id0,p +16 sigma=sigma+matg(iadr(r,k))*matg(iadr(j,k)) + matg(iadr(r,j))=b(r-p,j-p)-sigma +17 continue +18 continue +c +20 continue +c +c factorisation de cholesky du bloc en bas a droite +c + do 26 j=p+1,q + sigma=matg(iadr(j,j)) + if(j.eq.p+1)goto 22 + do 21 k=p+1,j-1 + sigma=sigma-(matg(iadr(j,k))*matg(iadr(j,k))) +21 continue +22 if(sigma.le.0.0d+0) goto 60 + matg(iadr(j,j))=sqrt(sigma) + if(j.eq.q)goto 26 +c + do 25 r=j+1,q + sigma=matg(iadr(r,j)) + if(j.eq.p+1)goto 24 + do 23 k=p+1,j-1 + sigma=sigma-(matg(iadr(j,k))*matg(iadr(r,k))) +23 continue +24 matg(iadr(r,j))=sigma/matg(iadr(j,j)) +25 continue +26 continue +c + if(n.eq.0)goto 50 +c +c calcul de la trace du bloc en bas a droite +c + tr2=0.0d+0 + do 30 jj=p+1,q + tr2=tr2+matg(iadr(jj,jj)) +30 continue +c +c test de convergence +c + if(iter.eq.1) goto 40 + acu = abs(tr1-tr2) + if(acu+abs(tr2).le.abs(tr2)) goto 50 + if(iter.ge.maxit)goto 50 +c +c shift +c +40 id0=max(id0-l,1) + do 41 jj=id0,p + do 41 kk=id0,jj + matg(iadr(jj,kk))=matg(iadr(jj+l,kk+l)) +41 continue + tr1=tr2 +c + iter=iter+1 + goto 10 +c +50 continue +c +c fin +c + do 53 r=1,l + do 51 j=r,l + b(r,j)=0.0d+0 +51 b(j,r)=matg(iadr(p+j,p+r)) + if(n.eq.0) goto 53 + do 52 j=l+1,q + j1=(j-1)/l + j2=j-j1*l + jj=(n-j1)*l+j2 +52 b(r,j)=matg(iadr(p+r,jj)) +53 continue + ierr=0 + if(iter.ge.maxit) ierr=-1 + return +60 ierr=1 + return +c + end diff --git a/modules/polynomials/src/fortran/sfact2.lo b/modules/polynomials/src/fortran/sfact2.lo new file mode 100755 index 000000000..27596fdc1 --- /dev/null +++ b/modules/polynomials/src/fortran/sfact2.lo @@ -0,0 +1,12 @@ +# src/fortran/sfact2.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/sfact2.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/polynomials/src/fortran/wdmpad.f b/modules/polynomials/src/fortran/wdmpad.f new file mode 100755 index 000000000..ba1b73e63 --- /dev/null +++ b/modules/polynomials/src/fortran/wdmpad.f @@ -0,0 +1,95 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) ????-2008 - INRIA - Serge STEER +c +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +C/MEMBR ADD NAME=WDMPAD,SSI=0 +c Copyright INRIA + subroutine wdmpad(pm1r,pm1i,d1,l1,pm2r,d2,l2,pm3r,pm3i,d3, + & m,n) +c!but +c cette subroutine ajoute deux matrices dont les coefficients +c sont des polynomes ,les polynomes de pm1 sont a coefficients +c complexes, ceux de pm2 sont a coefficients reels +c pm3=pm1+pm2 +c!liste d'appel +c +c subroutine wdmpad(pm1r,pm1i,d1,l1,pm2r,d2,l2,pm3r,pm3i,d3, +c & m,n) +c double precision pm1r(*),pm1i(*),pm2r(*),pm3r(*),pm3i(*) +c integer d1(l1*n+1),d2(l2*n+1),d3(m*n+1),m,n,l1,l2 +c +c pm1 : tableau reel contenant les coefficients des polynomes, +c le coefficient de degre k du polynome pm1(i,j) est range +c dans pm1( d1(i + (j-1)*l1 + k) ) +c pm1 doit etre de taille au moins d1(l1*n+1)-d1(1) +c d1 : tableau entier de taille l1*n+1, si k=i+(j-1)*l1 alors +c d1(k)) contient l'adresse dans pm1 du coeff de degre 0 +c du polynome pm1(i,j). Le degre du polynome pm1(i,j) vaut: +c d1(k+1)-d1(k) -1 +c l1 : entier definissant le rangement dans d1 +c +c pm2,d2,l2 : definitions similaires a celles de pm1,d1,l1 +c pm3,d3 : definitions similaires a celles de pm1 et d1, l3 est +c suppose egal a m +c m : nombre de ligne des matrices pm +c n : nombre de colonnes des matrices pm +c! + double precision pm1r(*),pm1i(*),pm2r(*),pm3r(*),pm3i(*) + integer d1(*),d2(*),d3(*),m,n,l1,l2 +c + integer n1,n2,n3,mn,i,k +c + mn=m*n +c + d3(1)=1 + i1=-l1 + i2=-l2 + k3=0 +c boucle sur les polynomes + do 20 j=1,n + i1=i1+l1 + i2=i2+l2 + do 20 i=1,m + k1=d1(i1+i)-1 + k2=d2(i2+i)-1 + n1=d1(i1+i+1)-d1(i1+i) + n2=d2(i2+i+1)-d2(i2+i) + if(n1.gt.n2) goto 15 +c +c n1.le.n2 +c + do 12 k=1,n1 + pm3r(k3+k)=pm1r(k1+k)+pm2r(k2+k) + pm3i(k3+k)=pm1i(k1+k) + 12 continue + if(n1.eq.n2) goto 14 + n3=n1+1 + do 13 k=n3,n2 + pm3r(k3+k)=+pm2r(k2+k) + 13 pm3i(k3+k)=0.0d+0 + 14 n3=n2 + d3(i+1+(j-1)*m)=d3(i+(j-1)*m)+n3 + goto 18 +c +c n1.gt.n2 +c + 15 do 16 k=1,n2 + pm3r(k3+k)=pm1r(k1+k)+pm2r(k2+k) + 16 pm3i(k3+k)=pm1i(k1+k) + n3=n2+1 + do 17 k=n3,n1 + pm3r(k3+k)=pm1r(k1+k) + 17 pm3i(k3+k)=pm1i(k1+k) + n3=n1 + d3(i+1+(j-1)*m)=d3(i+(j-1)*m)+n3 +c + 18 k1=k1+n1 + k2=k2+n2 + k3=k3+n3 + 20 continue + return + end diff --git a/modules/polynomials/src/fortran/wdmpad.lo b/modules/polynomials/src/fortran/wdmpad.lo new file mode 100755 index 000000000..a55a640f3 --- /dev/null +++ b/modules/polynomials/src/fortran/wdmpad.lo @@ -0,0 +1,12 @@ +# src/fortran/wdmpad.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/wdmpad.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/polynomials/src/fortran/wdmpmu.f b/modules/polynomials/src/fortran/wdmpmu.f new file mode 100755 index 000000000..083845647 --- /dev/null +++ b/modules/polynomials/src/fortran/wdmpmu.f @@ -0,0 +1,148 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) 1985-2008 - INRIA - Carlos KLIMANN +c +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +C/MEMBR ADD NAME=WDMPMU,SSI=0 + subroutine wdmpmu(mp1r,mp1i,d1,nl1,mp2r,d2,nl2, + & mp3r,mp3i,d3,l,m,n) +c!purpose +c ce sous programme effectue le calcul du produit de matrices +c de polynomes a coefficients complexes +c +c mp3 = mp1 * mp2 +c +c! calling sequence +c +c pm1 : tableau contenant les coefficients des polynomes, +c le coefficient de degre k du polynome pm1(i,j) est range +c dans pm1( d1(i + (j-1)*nl1 + k) ) +c pm1 doit etre de taille au moins d1(nl1*n+1)-d1(1) +c d1 : tableau entier de taille nl1*n+1, si k=i+(j-1)*nl1 alors +c d1(k)) contient l'adresse dans pm1 du coeff de degre 0 +c du polynome pm1(i,j). Le degre du polynome pm1(i,j) vaut: +c d1(k+1)-d1(k) -1 +c nl1 : entier definissant le rangement dans d1 +c +c pm2,d2,nl2 : definitions similaires a celles de pm1,d1,nl1 +c pm3,d3 : definitions similaires a celles de pm1 et d1, nl3 est +c suppose egal a l +c l : nombre de lignes de pm1 +c m : nombre de ligne des matrices pm +c n : nombre de colonnes des matrices pm +c avec les conventions suivantes: +c +c -si l = 0 signifie que mp1 est un polynome, et que la +c multiplication s'entend alors au sens de la multiplication +c de tous les coefficients de mp2 par mp1. +c +c -si n = 0 signifie que mp2 est un polynome, et que la +c multiplication s'entend au sens de la multiplication de tous +c les coefficients de mp1 par mp2. +c +c -si m = 0 la multiplication s'entend element par element, +c il est alors suppose que mp1 et mp2, donc mp3 sont de dimension +c l x n. +c +c! +c +c +c&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& +c +c + double precision mp1r(*),mp1i(*),mp2r(*),mp3r(*),mp3i(*) + integer d1(*), d2(*), d3(*) + integer l, m, n + integer nl1, nl2 + integer i, j, k, k1, k2, k3 + integer p1, p2, p3 +c +c + d3(1)= 1 + if (l .eq. 0 .or. m .eq. 0 .or. n .eq. 0) goto 500 +c + p2 = -nl2 + p3 = -l + do 10 j = 1, n + p2 = p2 + nl2 + p3 = p3 + l + do 11 i = 1, l + mp3r(d3(p3+i)) = 0.0d+0 + mp3i(d3(p3+i)) = 0.0d+0 + k3 = 0 + p1 = i - nl1 + do 12 k = 1, m + p1 = p1 + nl1 + k2 = d2(p2+k+1) - d2(p2+k) - 1 + k1 = d1(p1 + 1) - d1(p1) - 1 + kk=k3 + call dpmul(mp1r(d1(p1)),k1,mp2r(d2(p2+k)),k2, + & mp3r(d3(p3+i)),kk) + call dpmul(mp1i(d1(p1)),k1,mp2r(d2(p2+k)),k2, + & mp3i(d3(p3+i)),k3) + 12 continue + d3(p3 + i + 1) = d3(p3 + i) + k3 + 1 + 11 continue + 10 continue + return + 500 if (l .eq. 0) goto 600 + if (m .eq. 0) goto 700 + p1 = -nl1 + p3 = -l + k2 = d2(2) - d2(1) - 1 + do 510 j = 1, m + p1 = p1 + nl1 + p3 = p3 + l + do 510 i = 1, l + k3 = 0 + k1 = d1(p1 + i + 1) - d1(p1 + i) - 1 + mp3r(d3(p3 + i)) = 0.0d+0 + kk=k3 + call dpmul(mp1r(d1(p1+i)),k1,mp2r(1),k2,mp3r(d3(p3+i)),kk) + mp3i(d3(p3 + i)) = 0.0d+0 + call dpmul(mp1i(d1(p1+i)),k1,mp2r(1),k2,mp3i(d3(p3+i)),k3) + d3(p3 + i + 1) = d3(p3 + i) + k3 + 1 +510 continue + return +600 k1 = d1(2) - d1(1) - 1 + p2 = -nl2 + p3 = -m + do 610 j = 1, n + p2 = p2 + nl2 + p3 = p3 + m + do 610 i = 1, m + k3 = 0 + k2 = d2(p2 + i + 1) - d2(p2 + i) - 1 + mp3r(d3(p3+i)) = 0.0d+0 + kk=k3 + call dpmul(mp1r(1),k1,mp2r(d2(p2+i)),k2,mp3r(d3(p3+i)),kk) + mp3i(d3(p3+i)) = 0.0d+0 + call dpmul(mp1i(1),k1,mp2r(d2(p2+i)),k2,mp3i(d3(p3+i)),k3) + d3(p3 + i + 1) = d3(p3 + i) + k3 + 1 +610 continue + return + 700 p1 = -nl1 + p2 = -nl2 + p3 = -l + do 710 j = 1, n + p1 = p1 + nl1 + p2 = p2 + nl2 + p3 = p3 + l + do 710 i = 1, l + k1 = d1(p1 + i + 1) - d1(p1 + i) - 1 + k2 = d2(p2 + i + 1) - d2(p2 + i) - 1 + mp3r(d3(p3+i)) = 0.0d+0 + k3 = 0 + call dpmul(mp1r(d1(p1+i)),k1,mp2r(d2(p2+i)),k2, + 1 mp3r(d3(p3+i)),k3) + mp3i(d3(p3+i)) = 0.0d+0 + k3 = 0 + call dpmul(mp1i(d1(p1+i)),k1,mp2r(d2(p2+i)),k2, + 1 mp3i(d3(p3+i)),k3) + d3(p3 + i + 1) = d3(p3 + i) + k3 + 1 +710 continue + return + end diff --git a/modules/polynomials/src/fortran/wdmpmu.lo b/modules/polynomials/src/fortran/wdmpmu.lo new file mode 100755 index 000000000..9f6957bce --- /dev/null +++ b/modules/polynomials/src/fortran/wdmpmu.lo @@ -0,0 +1,12 @@ +# src/fortran/wdmpmu.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/wdmpmu.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/polynomials/src/fortran/wmpad.f b/modules/polynomials/src/fortran/wmpad.f new file mode 100755 index 000000000..203660c07 --- /dev/null +++ b/modules/polynomials/src/fortran/wmpad.f @@ -0,0 +1,93 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) ????-2008 - INRIA - Serge STEER +c +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +C/MEMBR ADD NAME=WMPAD,SSI=0 +c Copyright INRIA + subroutine wmpad(pm1r,pm1i,d1,l1,pm2r,pm2i,d2,l2,pm3r,pm3i,d3, + & m,n) +c!but +c cette subroutine ajoute deux matrices dont les coefficients +c sont des polynomes a coefficients complexes : pm3=pm1+pm2 +c!liste d'appel +c +c subroutine wmpad(pm1r,pm1i,d1,l1,pm2r,pm2i,d2,l2,pm3r,pm3i,d3, +c & m,n) +c double precision pm1r(*),pm1i(*),pm2r(*),pm2i(*),pm3r(*),pm3i(*) +c integer d1(l1*n+1),d2(l2*n+1),d3(m*n+1),m,n,l1,l2 +c +c pm1 : tableau reel contenant les coefficients des polynomes, +c le coefficient de degre k du polynome pm1(i,j) est range +c dans pm1( d1(i + (j-1)*l1 + k) ) +c pm1 doit etre de taille au moins d1(l1*n+1)-d1(1) +c d1 : tableau entier de taille l1*n+1, si k=i+(j-1)*l1 alors +c d1(k)) contient l'adresse dans pm1 du coeff de degre 0 +c du polynome pm1(i,j). Le degre du polynome pm1(i,j) vaut: +c d1(k+1)-d1(k) -1 +c l1 : entier definissant le rangement dans d1 +c +c pm2,d2,l2 : definitions similaires a celles de pm1,d1,l1 +c pm3,d3 : definitions similaires a celles de pm1 et d1, l3 est +c suppose egal a m +c m : nombre de ligne des matrices pm +c n : nombre de colonnes des matrices pm +c! + double precision pm1r(*),pm1i(*),pm2r(*),pm2i(*),pm3r(*),pm3i(*) + integer d1(*),d2(*),d3(*),m,n,l1,l2 +c + integer n1,n2,n3,mn,i,k +c + mn=m*n +c + d3(1)=1 + i1=-l1 + i2=-l2 + k3=0 +c boucle sur les polynomes + do 20 j=1,n + i1=i1+l1 + i2=i2+l2 + do 20 i=1,m + k1=d1(i1+i)-1 + k2=d2(i2+i)-1 + n1=d1(i1+i+1)-d1(i1+i) + n2=d2(i2+i+1)-d2(i2+i) + if(n1.gt.n2) goto 15 +c +c n1.le.n2 +c + do 12 k=1,n1 + pm3r(k3+k)=pm1r(k1+k)+pm2r(k2+k) + pm3i(k3+k)=pm1i(k1+k)+pm2i(k2+k) + 12 continue + if(n1.eq.n2) goto 14 + n3=n1+1 + do 13 k=n3,n2 + pm3r(k3+k)=+pm2r(k2+k) + 13 pm3i(k3+k)=pm2i(k2+k) + 14 n3=n2 + d3(i+1+(j-1)*m)=d3(i+(j-1)*m)+n3 + goto 18 +c +c n1.gt.n2 +c + 15 do 16 k=1,n2 + pm3r(k3+k)=pm1r(k1+k)+pm2r(k2+k) + 16 pm3i(k3+k)=pm1i(k1+k)+pm2i(k2+k) + n3=n2+1 + do 17 k=n3,n1 + pm3r(k3+k)=pm1r(k1+k) + 17 pm3i(k3+k)=pm1i(k1+k) + n3=n1 + d3(i+1+(j-1)*m)=d3(i+(j-1)*m)+n3 +c + 18 k1=k1+n1 + k2=k2+n2 + k3=k3+n3 + 20 continue + return + end diff --git a/modules/polynomials/src/fortran/wmpad.lo b/modules/polynomials/src/fortran/wmpad.lo new file mode 100755 index 000000000..c5c4badce --- /dev/null +++ b/modules/polynomials/src/fortran/wmpad.lo @@ -0,0 +1,12 @@ +# src/fortran/wmpad.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/wmpad.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/polynomials/src/fortran/wmpadj.f b/modules/polynomials/src/fortran/wmpadj.f new file mode 100755 index 000000000..c22ea2f63 --- /dev/null +++ b/modules/polynomials/src/fortran/wmpadj.f @@ -0,0 +1,57 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) ????-2008 - INRIA - Serge STEER +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 wmpadj(pm1r,pm1i,d1,m,n) +c!but +c cette subroutine determine les degres effectifs (en eliminant les +c monomes nuls de plus haut degre ) des polynomes d'une matrice de +c polynome a coefficinets compexes +c!liste d'appel +c +c subroutine wmpadj(pm1r,pm1i,d1,m,n) +c +c pm1(r,i) : tableaux reel contenant les parties reelle et complexes +c des coefficients des polynomes, +c le coefficient de degre k du polynome pm1(i,j) est range +c dans pm1( d1(i + (j-1)*l1 + k) ) +c pm1 doit etre de taille au moins d1(l1*n+1)-d1(1) +c d1 : tableau entier de taille l1*n+1, si k=i+(j-1)*l1 alors +c d1(k)) contient l'adresse dans pm1 du coeff de degre 0 +c du polynome pm1(i,j). Le degre du polynome pm1(i,j) vaut: +c d1(k+1)-d1(k) -1 +c Pm1 et d1 sont modifies par l'execution +c +c m : nombre de ligne des matrices pm +c n : nombre de colonnes des matrices pm + double precision pm1r(*),pm1i(*) + integer d1(*),m,n,dj +c + integer n1 +c + kk=1 + dj=1 +c boucle sur les polynomes + do 40 j=1,m*n + k1=dj-1 + n1=d1(j+1)-dj+1 + 10 n1=n1-1 + if(abs(pm1r(k1+n1))+abs(pm1i(k1+n1)).eq.0.0d+0 + $ .and.n1.gt.1) goto 10 + if(kk.ne.k1+1.and.n1.gt.0) then + do 11 i=1,n1 + pm1r(kk-1+i)=pm1r(k1+i) + pm1i(kk-1+i)=pm1i(k1+i) + 11 continue + endif + kk=kk+n1 + dj=d1(j+1) + d1(j+1)=kk + 40 continue +c + return + end diff --git a/modules/polynomials/src/fortran/wmpadj.lo b/modules/polynomials/src/fortran/wmpadj.lo new file mode 100755 index 000000000..aaceed9e8 --- /dev/null +++ b/modules/polynomials/src/fortran/wmpadj.lo @@ -0,0 +1,12 @@ +# src/fortran/wmpadj.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/wmpadj.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/polynomials/src/fortran/wmpcle.f b/modules/polynomials/src/fortran/wmpcle.f new file mode 100755 index 000000000..c0a4d436e --- /dev/null +++ b/modules/polynomials/src/fortran/wmpcle.f @@ -0,0 +1,67 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) ????-2008 - INRIA - Serge STEER +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 wmpcle(pm1r,pm1i,d1,m,n,d2,epsr,epsa) +c!but +c Dans une matrice polynomiale pm1 cette routine met (pour +c chaque polynome) a zero les coefficients de polynomes +c de module inferieur a epsa ou epsr*(norme un du vecteur +c des coefficients du polynome) +c +c!liste d'appel +c +c subroutine wmpclea(pm1r,pm1i,d1,m,n,d2,epsr,epsa) +c double precision pm1r(*),pm1i(*) +c integer d1(*),m,n +c +c pm1r : tableau reel contenant les coefficients des polynomes, +c parties relles +c le coefficient de degre k du polynome pm1(i,j) est range +c dans pm1( d1(i + (j-1)*ld1 + k) ) +c pm1 doit etre de taille au moins d1(ld1*n+1)-d1(1) +c pm1i : tableau reel contenant les coefficients des polynomes, +c parties imaginaires +c le coefficient de degre k du polynome pm1(i,j) est range +c dans pm1( d1(i + (j-1)*ld1 + k) ) +c pm1 doit etre de taille au moins d1(ld1*n+1)-d1(1) +c d1 : tableau entier de taille ld1*n+1, si k=i+(j-1)*ld1 alors +c d1(k)) contient l'adresse dans pm1 du coeff de degre 0 +c du polynome pm1(i,j). Le degre du polynome pm1(i,j) vaut: +c d1(k+1)-d1(k) -1 +c m : nombre de ligne de la matrice pm1 +c n : nombre de colonne de matrice pm1 +c d2 : cf d1 +c + double precision pm1r(*),pm1i(*),norm,normr,normi,epsr,epsa,eps + integer d1(*),d2(*),m,n +c +c +c + mn=m*n + do 1 k=1,mn + lmin=d1(k) + lmax=d1(k+1)-1 + normr=0.d0 + normi=0.d0 + do 2 l=lmin,lmax + normr=normr+abs(pm1r(l)) + normi=normi+abs(pm1i(l)) + norm=normr+normi + 2 continue + eps=max(epsa,epsr*norm) + do 3 l=lmin,lmax + if (abs(pm1r(l)).le.eps) then + pm1r(l)=0.0d0 + endif + if (abs(pm1i(l)).le.eps) then + pm1i(l)=0.0d0 + endif + 3 continue + 1 continue + return + end diff --git a/modules/polynomials/src/fortran/wmpcle.lo b/modules/polynomials/src/fortran/wmpcle.lo new file mode 100755 index 000000000..e2ec3eee4 --- /dev/null +++ b/modules/polynomials/src/fortran/wmpcle.lo @@ -0,0 +1,12 @@ +# src/fortran/wmpcle.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/wmpcle.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/polynomials/src/fortran/wmpcnc.f b/modules/polynomials/src/fortran/wmpcnc.f new file mode 100755 index 000000000..bbd46e000 --- /dev/null +++ b/modules/polynomials/src/fortran/wmpcnc.f @@ -0,0 +1,108 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) ????-2008 - INRIA - Serge STEER +c +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +C/MEMBR ADD NAME=WMPCNC,SSI=0 +c Copyright INRIA + subroutine wmpcnc(mp1r,mp1i,d1,ld1,mp2r,mp2i,d2,ld2,mp3r,mp3i,d3, + & l,m,n,job) +c!but +c cette subroutine concatene deux matrices dont les coefficients +c sont des polynomes a coefficients complexes +c mp3=<mp1 mp2> +c ou +c mp3=<mp1' mp2'>' +c!liste d'appel +c +c subroutine wmpcnc(mp1r,mp1i,d1,ld1,mp2r,mp2i,d2,ld2,mp3r,mp3i,d3, +c & l,m,n,job) +c double precision mp1r(*),mp1i(*),mp2r(*),mp2i(*),mp3r(*),mp3i(*) +c integer d1(ld1*n+1),d2(ld2*n+1),d3(m*n+1),l,m,n,ld1,ld2,job +c +c mp1 : tableau contenant les coefficients des polynomes, +c le coefficient de degre k du polynome mp1(i,j) est range +c dans mp1( d1(i + (j-1)*ld1 + k) ) +c mp1 doit etre de taille au moins d1(ld1*n+1)-d1(1) +c d1 : tableau entier de taille ld1*n+1, si k=i+(j-1)*ld1 alors +c d1(k)) contient l'adresse dans mp1 du coeff de degre 0 +c du polynome mp1(i,j). Le degre du polynome mp1(i,j) vaut: +c d1(k+1)-d1(k) -1 +c ld1 : entier definissant le rangement dans d1 +c +c mp2,d2,ld2 : definitions similaires a celles de mp1,d1,ld1 +c mp3,d3 : definitions similaires a celles de mp1 et d1, l3 est +c suppose egal a m +c l : nombre de ligne de mp1 (et de mp2 et mp3 si job>0) +c m : nombre de colonnes de mp1 (job>0) +c nombre de ligne de mp2 (job<0) +c n : nombre de colonnes de mp2 (job>0) +c et nombre de colonnes de mp1 et mp3 si job <0 +c job : indique l'operation a effectuer: +c job >0 mp3=<mp1 mp2> +c job <0 mp3=<mp1' mp2'>' +c si abs(job)=1 mp1 et mp2 sont complexes +c si abs(job)=2 mp1 est reelle (mp1i vide) et mp2 complexe +c si abs(job)=3 mp1 est complexe,mp2 reelle (mp2i vide) +c! + double precision mp1r(*),mp1i(*),mp2r(*),mp2i(*),mp3r(*),mp3i(*) + integer d1(*),d2(*),d3(*),l,m,n,ld1,ld2 +c + integer i1,i2,i3,np,i,j +c + i3=1 + d3(1)=1 + i1=1-ld1 + i2=1-ld2 +c + if(job.lt.0) goto 30 +c + do 11 j=1,m + i1=i1+ld1 + np=d1(i1+l)-d1(i1) + call dcopy(np,mp1r(d1(i1)),1,mp3r(d3(i3)),1) + if(job.ne.2) call dcopy(np,mp1i(d1(i1)),1,mp3i(d3(i3)),1) + if(job.eq.2) call dset(np,0.0d+0,mp3i(d3(i3)),1) + do 10 i=1,l + i3=i3+1 + d3(i3)=d3(i3-1)+d1(i1+i)-d1(i1+i-1) + 10 continue + 11 continue + do 21 j=1,n + i2=i2+ld2 + np=d2(i2+l)-d2(i2) + call dcopy(np,mp2r(d2(i2)),1,mp3r(d3(i3)),1) + if(job.ne.3) call dcopy(np,mp2i(d2(i2)),1,mp3i(d3(i3)),1) + if(job.eq.3) call dset(np,0.0d+0,mp3i(d3(i3)),1) + do 20 i=1,l + i3=i3+1 + d3(i3)=d3(i3-1)+d2(i2+i)-d2(i2+i-1) + 20 continue + 21 continue + return +c + 30 do 50 j=1,n + i1=i1+ld1 + i2=i2+ld2 + np=d1(i1+l)-d1(i1) + call dcopy(np,mp1r(d1(i1)),1,mp3r(d3(i3)),1) + if(job.ne.-2) call dcopy(np,mp1i(d1(i1)),1,mp3i(d3(i3)),1) + if(job.eq.-2) call dset(np,0.0d+0,mp3i(d3(i3)),1) + do 40 i=1,l + i3=i3+1 + d3(i3)=d3(i3-1)+d1(i1+i)-d1(i1+i-1) + 40 continue + np=d2(i2+m)-d2(i2) + call dcopy(np,mp2r(d2(i2)),1,mp3r(d3(i3)),1) + if(job.ne.-3) call dcopy(np,mp2i(d2(i2)),1,mp3i(d3(i3)),1) + if(job.eq.-3) call dset(np,0.0d+0,mp3i(d3(i3)),1) + do 45 i=1,m + i3=i3+1 + d3(i3)=d3(i3-1)+d2(i2+i)-d2(i2+i-1) + 45 continue + 50 continue + return + end diff --git a/modules/polynomials/src/fortran/wmpcnc.lo b/modules/polynomials/src/fortran/wmpcnc.lo new file mode 100755 index 000000000..97c9d5cce --- /dev/null +++ b/modules/polynomials/src/fortran/wmpcnc.lo @@ -0,0 +1,12 @@ +# src/fortran/wmpcnc.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/wmpcnc.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/polynomials/src/fortran/wmpins.f b/modules/polynomials/src/fortran/wmpins.f new file mode 100755 index 000000000..a8da9cda3 --- /dev/null +++ b/modules/polynomials/src/fortran/wmpins.f @@ -0,0 +1,84 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) 1985-2008 - INRIA - Carlos KLIMANN +c +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +C/MEMBR ADD NAME=WMPINS,SSI=0 + subroutine wmpins(mat1r,mat1i,dep1,lig1,col1,mat2r,mat2i, + & dep2,lig2,col2,matrr,matri,depr,ligr,colr) +c!but +c +c Cette subroutine fait l'insertion (ampliation?) d'une matrice +c de polynomes mat2 dans une autre mat1 d'apres deux vecteurs. +c On suppose donnees depr, ligr et colr. +c Le resultat viendra dans une troisieme matrice. +c +c!parametres d'appel +c +c call wmpins(mat1r,mat1i,dep1,lig1,col1,mat2r,mat2i,dep2,lig2, +c 1 col2,matrr,matri,depr,ligr,colr) +c +c ou +c +c mat1: matrice integer de polynomes +c +c dep1: matrice integere qui donne les deplacements relatifs des +c elements de mat1 +c +c lig1, col1: integers, dimensions de mat1 +c +c mat2 ,dep2, lig2, col2: analogues aux correspondents 1 +c (correspond a m dans l'example) +c +c matr, depr, ligr, colr: parametres de sortie, matrice matr et +c autres valeurs relationnes. +c +c +c attention!: aucune de matrices mat1, mat2,matr,dep1, dep2 ou depr +c doit coincider. Cas contraire, les resultats seraient +c imprevisibles. +c +c +c +c! + double precision mat1r(*),mat1i(*),mat2r(*),mat2i(*), + 1 matrr(*),matri(*) + integer dep1(*),dep2(*),depr(*) +c + integer lig1,col1,lig2,col2,ligr,colr + depr(1)=1 + kr=1 +c + do 20 j=1,colr + do 20 i=1,ligr + kr=kr+1 + lr=depr(kr) + if (lr .lt. 0) then + goto 11 + elseif (lr .eq. 0) then + goto 12 + else + goto 13 + endif + 11 l2=-lr + l=dep2(l2+1)-dep2(l2) + call dcopy(l,mat2r(dep2(l2)),1,matrr(depr(kr-1)),1) + call dcopy(l,mat2i(dep2(l2)),1,matri(depr(kr-1)),1) + depr(kr)=depr(kr-1)+l + goto 20 + 12 matrr(depr(kr-1))=0.0d+0 + matri(depr(kr-1))=0.0d+0 + depr(kr)=depr(kr-1)+1 + goto 20 + 13 l1=lr + l=dep1(l1+1)-dep1(l1) + call dcopy(l,mat1r(dep1(l1)),1,matrr(depr(kr-1)),1) + call dcopy(l,mat1i(dep1(l1)),1,matri(depr(kr-1)),1) + depr(kr)=depr(kr-1)+l +c + 20 continue + return + end diff --git a/modules/polynomials/src/fortran/wmpins.lo b/modules/polynomials/src/fortran/wmpins.lo new file mode 100755 index 000000000..4c149a1b3 --- /dev/null +++ b/modules/polynomials/src/fortran/wmpins.lo @@ -0,0 +1,12 @@ +# src/fortran/wmpins.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/wmpins.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/polynomials/src/fortran/wmpmu.f b/modules/polynomials/src/fortran/wmpmu.f new file mode 100755 index 000000000..619dca08d --- /dev/null +++ b/modules/polynomials/src/fortran/wmpmu.f @@ -0,0 +1,140 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) 1985-2008 - INRIA - Carlos KLIMANN +c +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +C/MEMBR ADD NAME=WMPMU,SSI=0 +c Copyright INRIA + subroutine wmpmu(mp1r,mp1i,d1,nl1,mp2r,mp2i,d2,nl2, + & mp3r,mp3i,d3,l,m,n) +c!purpose +c ce sous programme effectue le calcul du produit de matrices +c de polynomes a coefficients complexes +c +c mp3 = mp1 * mp2 +c +c! calling sequence +c +c pm1 : tableau contenant les coefficients des polynomes, +c le coefficient de degre k du polynome pm1(i,j) est range +c dans pm1( d1(i + (j-1)*nl1 + k) ) +c pm1 doit etre de taille au moins d1(nl1*n+1)-d1(1) +c d1 : tableau entier de taille nl1*n+1, si k=i+(j-1)*nl1 alors +c d1(k)) contient l'adresse dans pm1 du coeff de degre 0 +c du polynome pm1(i,j). Le degre du polynome pm1(i,j) vaut: +c d1(k+1)-d1(k) -1 +c nl1 : entier definissant le rangement dans d1 +c +c pm2,d2,nl2 : definitions similaires a celles de pm1,d1,nl1 +c pm3,d3 : definitions similaires a celles de pm1 et d1, nl3 est +c suppose egal a l +c l : nombre de lignes de pm1 +c m : nombre de ligne des matrices pm +c n : nombre de colonnes des matrices pm +c avec les conventions suivantes: +c +c -si l = 0 signifie que mp1 est un polynome, et que la +c multiplication s'entend alors au sens de la multiplication +c de tous les coefficients de mp2 par mp1. +c +c -si n = 0 signifie que mp2 est un polynome, et que la +c multiplication s'entend au sens de la multiplication de tous +c les coefficients de mp1 par mp2. +c +c -si m = 0 la multiplication s'entend element par element, +c il est alors suppose que mp1 et mp2, donc mp3 sont de dimension +c l x n. +c +c! +c +c&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& +c +c + double precision mp1r(*),mp1i(*),mp2r(*),mp2i(*),mp3r(*),mp3i(*) + integer d1(*), d2(*), d3(*) + integer l, m, n + integer nl1, nl2 + integer i, j, k, k1, k2, k3 + integer p1, p2, p3 +c +c + d3(1)= 1 + if (l .eq. 0 .or. m .eq. 0 .or. n .eq. 0) goto 500 +c + p2 = -nl2 + p3 = -l + do 10 j = 1, n + p2 = p2 + nl2 + p3 = p3 + l + do 11 i = 1, l + mp3r(d3(p3+i)) = 0.0d+0 + mp3i(d3(p3+i)) = 0.0d+0 + k3 = 0 + p1 = i - nl1 + do 12 k = 1, m + p1 = p1 + nl1 + k2 = d2(p2+k+1) - d2(p2+k) - 1 + k1 = d1(p1 + 1) - d1(p1) - 1 + call wpmul(mp1r(d1(p1)),mp1i(d1(p1)),k1,mp2r(d2(p2+k)), + & mp2i(d2(p2+k)),k2,mp3r(d3(p3+i)),mp3i(d3(p3+i)),k3) + 12 continue + d3(p3 + i + 1) = d3(p3 + i) + k3 + 1 + 11 continue + 10 continue + return + 500 if (l .eq. 0) goto 600 + if (m .eq. 0) goto 700 + p1 = -nl1 + p3 = -l + k2 = d2(2) - d2(1) - 1 + do 510 j = 1, m + p1 = p1 + nl1 + p3 = p3 + l + do 510 i = 1, l + k3 = 0 + k1 = d1(p1 + i + 1) - d1(p1 + i) - 1 + mp3r(d3(p3 + i)) = 0.0d+0 + mp3i(d3(p3 + i)) = 0.0d+0 + call wpmul(mp1r(d1(p1+i)),mp1i(d1(p1+i)),k1,mp2r(1), + & mp2i(1),k2,mp3r(d3(p3+i)),mp3i(d3(p3+i)),k3) + d3(p3+i+1)=d3(p3+i) + k3 + 1 +510 continue + return +600 k1 = d1(2) - d1(1) - 1 + p2 = -nl2 + p3 = -m + do 610 j = 1, n + p2 = p2 + nl2 + p3 = p3 + m + do 610 i = 1, m + k3 = 0 + k2 = d2(p2 + i + 1) - d2(p2 + i) - 1 + mp3r(d3(p3+i)) = 0.0d+0 + mp3i(d3(p3+i)) = 0.0d+0 + call wpmul(mp1r(1),mp1i(1),k1,mp2r(d2(p2+i)), + & mp2i(d2(p2+i)),k2,mp3r(d3(p3+i)),mp3i(d3(p3+i)),k3) + d3(p3 + i + 1) = d3(p3 + i) + k3 + 1 +610 continue + return + 700 p1 = -nl1 + p2 = -nl2 + p3 = -l + do 710 j = 1, n + p1 = p1 + nl1 + p2 = p2 + nl2 + p3 = p3 + l + do 710 i = 1, l + k1 = d1(p1 + i + 1) - d1(p1 + i) - 1 + k2 = d2(p2 + i + 1) - d2(p2 + i) - 1 + mp3r(d3(p3+i)) = 0.0d+0 + mp3i(d3(p3+i)) = 0.0d+0 + k3 = 0 + call wpmul(mp1r(d1(p1+i)),mp1i(d1(p1+i)),k1,mp2r(d2(p2+i)), + & mp2i(d2(p2+i)),k2,mp3r(d3(p3+i)),mp3i(d3(p3+i)),k3) + d3(p3 + i + 1) = d3(p3 + i) + k3 + 1 +710 continue + return + end diff --git a/modules/polynomials/src/fortran/wmpmu.lo b/modules/polynomials/src/fortran/wmpmu.lo new file mode 100755 index 000000000..fa64fe5c9 --- /dev/null +++ b/modules/polynomials/src/fortran/wmpmu.lo @@ -0,0 +1,12 @@ +# src/fortran/wmpmu.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/wmpmu.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/polynomials/src/fortran/wmptra.f b/modules/polynomials/src/fortran/wmptra.f new file mode 100755 index 000000000..84d4dbee4 --- /dev/null +++ b/modules/polynomials/src/fortran/wmptra.f @@ -0,0 +1,56 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) ????-2008 - INRIA - Serge STEER +c +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +C/MEMBR ADD NAME=WMPTRA,SSI=0 + subroutine wmptra(pm1r,pm1i,d1,ld1,pm2r,pm2i,d2,m,n) +c!but +c cette subroutine transpose une matrice dont les coefficients +c sont des polynomes a coefficients complexes +c pm2=transpose(pm1) +c!liste d'appel +c +c subroutine wmptra(pm1r,pm1i,d1,ld1,pm2r,pm2i,d2,m,n) +c double precision pm1r(*),pm1i(*),pm2r(*),pm2i(*) +c integer d1(*),d2(n,m),m,n +c +c pm1 : tableau contenant les coefficients des polynomes, +c le coefficient de degre k du polynome pm1(i,j) est range +c dans pm1( d1(i + (j-1)*ld1 + k) ) +c pm1 doit etre de taille au moins d1(ld1*n+1)-d1(1) +c d1 : tableau entier de taille ld1*n+1, si k=i+(j-1)*ld1 alors +c d1(k)) contient l'adresse dans pm1 du coeff de degre 0 +c du polynome pm1(i,j). Le degre du polynome pm1(i,j) vaut: +c d1(k+1)-d1(k) -1 +c ld1 : entier definissant le rangement dans d1 +c +c pm2,d2 : definitions similaires a celles de pm1,d1, ld2 +c est suppose egal a n +c m : nombre de ligne de la matrice pm1 +c n : nombre de colonne de matrice pm1 +c! + double precision pm1r(*),pm1i(*),pm2r(*),pm2i(*) + integer d1(*),d2(*),m,n + d2(1)=1 + i2=1 + do 20 i=1,m + i1=i + do 10 j=1,n + l1=d1(i1) + n1=d1(i1+1)-l1 + l2=d2(i2) + call dcopy(n1,pm1r(l1),1,pm2r(l2),1) + call dcopy(n1,pm1i(l1),1,pm2i(l2),1) + i1=i1+ld1 + i2=i2+1 + d2(i2)=l2+n1 + 10 continue + 20 continue +c call dscal(d2(1+m*n)-1,-1.0d+0,pm2i,1) +c + return + end diff --git a/modules/polynomials/src/fortran/wmptra.lo b/modules/polynomials/src/fortran/wmptra.lo new file mode 100755 index 000000000..8cd324572 --- /dev/null +++ b/modules/polynomials/src/fortran/wmptra.lo @@ -0,0 +1,12 @@ +# src/fortran/wmptra.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/wmptra.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/polynomials/src/fortran/wpmul.f b/modules/polynomials/src/fortran/wpmul.f new file mode 100755 index 000000000..0e209ff0a --- /dev/null +++ b/modules/polynomials/src/fortran/wpmul.f @@ -0,0 +1,126 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) 1985-2008 - INRIA - Carlos KLIMANN +c +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +C/MEMBR ADD NAME=WPMUL,SSI=0 +c Copyright INRIA + subroutine wpmul(p1r,p1i,d1,p2r,p2i,d2,p3r,p3i,d3) +c!purpose +c ce sous programme effectue le calcul: +c +c p3(x) = p3(x) + (p1(x) * p2(x)) +c +c ou p1, p2 et p3 sont des polynomes de degres d1, d2 et d3, +c respectivement, a coefficients complexes +c les coefficients sont ranges consecutivement et par puissance +c croissante +c Tous les parametres sont d'entree, sauf p3 et d3 qui sont +c d'entree-sortie. +c! +c &&var + implicit double precision (a-h,o-z) + double precision p1r(*),p1i(*),p2r(*),p2i(*),p3r(*),p3i(*) + integer d1,d2,d3 + integer dmax,dmin,dsum + integer i, k, j, l + integer e1, e2 +c &&ker + dsum = d1 + d2 +c fixation de dmax et dmin + dmax = d1 + if (d2 .gt. d1) dmax = d2 + dmin = dsum - dmax +c fixation de d3 + if (d3 .ge. dsum) goto 1 + e1 = d3+2 + e2 = dsum +1 + do 2 i = e1 , e2 + p3r(i) = 0.0d+0 + p3i(i) = 0.0d+0 + 2 continue + d3 = dsum + 1 continue +c cas des degres egaux a zero + if (d1 .eq. 0 .or. d2 .eq. 0) goto 53 +c produit et addition + e1 = 1 + e2 = dmin + 1 + do 10 i = e1, e2 + p3r(i) = p3r(i) + ddot(i,p1r(1),1,p2r(1),-1) + & - ddot(i,p1i(1),1,p2i(1),-1) + p3i(i) = p3i(i) + ddot(i,p1r(1),1,p2i(1),-1) + & + ddot(i,p1i(1),1,p2r(1),-1) + 10 continue + k = 1 + if (d1 .eq. d2) goto 21 + e1 = dmin + 2 + e2 = dmax + 1 +c si d1 > d2 + if (d1 .lt. d2) goto 25 + do 20 i = e1, e2 + k = k + 1 + p3r(i) = p3r(i) + ddot(dmin+1, p1r(k), 1, p2r(1), -1) + & - ddot(dmin+1, p1i(k), 1, p2i(1), -1) + p3i(i) = p3i(i) + ddot(dmin+1, p1r(k), 1, p2i(1), -1) + & + ddot(dmin+1, p1i(k), 1, p2r(1), -1) + 20 continue + 21 e1 = dmax + 2 + e2 = dsum + 1 + l = 1 + j = dmin + 1 + do 40 i = e1, e2 + j = j -1 + k = k + 1 + l =l + 1 + p3r(i) = p3r(i) + ddot(j, p1r(k), 1, p2r(l), -1) + & - ddot(j, p1i(k), 1, p2i(l), -1) + p3i(i) = p3i(i) + ddot(j, p1r(k), 1, p2i(l), -1) + & + ddot(j, p1i(k), 1, p2r(l), -1) + 40 continue + return +c si d2 > d1 + 25 do 30 i = e1, e2 + k = k + 1 + p3r(i) = p3r(i) + ddot(dmin+1, p2r(k), -1, p1r(1), 1) + & - ddot(dmin+1, p2i(k), -1, p1i(1), 1) + p3i(i) = p3i(i) + ddot(dmin+1, p2r(k), -1, p1i(1), 1) + & + ddot(dmin+1, p2i(k), -1, p1r(1), 1) + 30 continue + e1 = dmax + 2 + e2 = dsum + 1 + l = 1 + j = dmin + 1 + do 50 i = e1, e2 + j = j -1 + k = k + 1 + l =l + 1 + p3r(i) = p3r(i) + ddot(j, p1r(l), 1, p2r(k), -1) + & - ddot(j, p1i(l), 1, p2i(k), -1) + p3i(i) = p3i(i) + ddot(j, p1r(l), 1, p2i(k), -1) + & + ddot(j, p1i(l), 1, p2r(k), -1) + 50 continue + return +c cas des degres egaux a zero + 53 if (d1 .eq. 0 .and. d2 .eq. 0) goto 100 + e1 = 1 + if (d1 .eq.0) goto 60 + e2 = d1 + 1 + do 55 i = e1, e2 + p3r(i) = p3r(i) + p1r(i) * p2r(1) - p1i(i) * p2i(1) + p3i(i) = p3i(i) + p1r(i) * p2i(1) + p1i(i) * p2r(1) + 55 continue + return + 60 e2 = d2 + 1 + do 65 i = e1, e2 + p3r(i) = p3r(i) + p2r(i) * p1r(1) - p2i(i) * p1i(1) + p3i(i) = p3i(i) + p2r(i) * p1i(1) + p2i(i) * p1r(1) + 65 continue + return + 100 p3r(1) = p3r(1) + p1r(1) * p2r(1) - p1i(1) * p2i(1) + p3i(1) = p3i(1) + p1r(1) * p2i(1) + p1i(1) * p2r(1) + return + end diff --git a/modules/polynomials/src/fortran/wpmul.lo b/modules/polynomials/src/fortran/wpmul.lo new file mode 100755 index 000000000..e5c728d77 --- /dev/null +++ b/modules/polynomials/src/fortran/wpmul.lo @@ -0,0 +1,12 @@ +# src/fortran/wpmul.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/wpmul.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/polynomials/src/fortran/wpmul1.f b/modules/polynomials/src/fortran/wpmul1.f new file mode 100755 index 000000000..1559f4a51 --- /dev/null +++ b/modules/polynomials/src/fortran/wpmul1.f @@ -0,0 +1,93 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) ????-2008 - INRIA - Serge STEER +c +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +C/MEMBR ADD NAME=WPMUL1,SSI=0 +c Copyright INRIA + subroutine wpmul1(p1r,p1i,d1,p2r,p2i,d2,p3r,p3i) +c!but +c ce sous programme effectue le produit polynomial: +c +c p3(x) = p1(x) * p2(x) +c +c ou p1 ,p2, p3 sont des polynomes a coefficients complexes +c!liste d'appel +c subroutine wpmul1(p1r,p1i,d1,p2r,p2i,d2,p3r,p3i) +c double precision p1(d1+1),p2(d2+1),p3(d1+d2+1) +c integer d1,d2,d3 +c +c p1 : contient les coefficient du premier polynome ranges +c suivant les puissances croissantes +c p2 : contient les coefficients du second polynome ranges +c suivant les puissances croissantes +c p3 :contient les coefficient du resultats. +c p3 peut designer la meme adresse que p1 ou p2 +c d1,d2 : degre respectifs des polynomesp1 et p2 +c!sous programmes appeles +c ddot (blas) +c min (fortran) +c! +c var + double precision p1r(*),p1i(*),p2r(*),p2i(*),p3r(*),p3i(*) + integer d1,d2,d3 +c + double precision ddot,sr,si + integer k,l1,l2,l3,l,m3 +c ker + l=1 + l1=d1+1 + l2=d2+1 + d3=d1+d2 + l3=d3+1 +c + m3=min(l1,l2) + do 10 k=1,m3 + sr=ddot(l,p1r(l1),1,p2r(l2),-1)-ddot(l,p1i(l1),1,p2i(l2),-1) + si=ddot(l,p1r(l1),1,p2i(l2),-1)+ddot(l,p1i(l1),1,p2r(l2),-1) + p3r(l3)=sr + p3i(l3)=si + l=l+1 + l3=l3-1 + l1=l1-1 + l2=l2-1 + 10 continue + l=l-1 +c + if(l1.eq.0) goto 30 + m3=l1 + do 20 k=1,m3 + sr=ddot(l,p1r(l1),1,p2r,-1)-ddot(l,p1i(l1),1,p2i,-1) + si=ddot(l,p1r(l1),1,p2i,-1)+ddot(l,p1i(l1),1,p2r,-1) + p3r(l3)=sr + p3i(l3)=si + l1=l1-1 + l3=l3-1 + 20 continue + goto 40 + 30 if(l2.eq.0) goto 40 + m3=l2 + do 31 k=1,m3 + sr=ddot(l,p1r,1,p2r(l2),-1)-ddot(l,p1i,1,p2i(l2),-1) + si=ddot(l,p1r,1,p2i(l2),-1)+ddot(l,p1i,1,p2r(l2),-1) + p3r(l3)=sr + p3i(l3)=si + l2=l2-1 + l3=l3-1 + 31 continue +c + 40 if(l3.eq.0) return + m3=l3 + do 41 k=1,m3 + l=l-1 + sr=ddot(l,p1r,1,p2r,-1)-ddot(l,p1i,1,p2i,-1) + si=ddot(l,p1r,1,p2i,-1)+ddot(l,p1i,1,p2r,-1) + p3r(l3)=sr + p3i(l3)=si + l3=l3-1 + 41 continue + return + end diff --git a/modules/polynomials/src/fortran/wpmul1.lo b/modules/polynomials/src/fortran/wpmul1.lo new file mode 100755 index 000000000..27a53fb93 --- /dev/null +++ b/modules/polynomials/src/fortran/wpmul1.lo @@ -0,0 +1,12 @@ +# src/fortran/wpmul1.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/wpmul1.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/polynomials/src/fortran/wpodiv.f b/modules/polynomials/src/fortran/wpodiv.f new file mode 100755 index 000000000..d20ffcf4c --- /dev/null +++ b/modules/polynomials/src/fortran/wpodiv.f @@ -0,0 +1,56 @@ +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 wpodiv(ar,ai,br,bi,na,nb,ierr) + implicit double precision (a-h,o-z) + dimension ar(*),br(*),ai(*),bi(*) +c division euclidienne de deux polynomes a coefficients complexes +c le suffixe r designe la partie reelle et i la partie imaginaire +c +c 1. a: avant execution c'est le tableau des coefficients du +c polynome dividende range suivant les puissances croissantes +c de la variable (ordre na+1). +c apres execution,contient dans les nb premiers elements +c le tableau des coefficients du reste ordonne suivant les +c puissances croissantes, et dans les (na-nb+1) derniers elements, +c le tableau des coefficients du polynome quotient range suivant +c les puissances croissantes de la variable. +c 2. b: tableau des coefficients du polynome diviseur range suivant +c les puissances croissantes de la variable (ordre nb+1). +c 3. na: degre du polynome a. +c 4. nb: degre du polynome b. +c + ierr=0 + l=na-nb+1 + 2 if (l .le. 0) then + goto 5 + else + goto 3 + endif + 3 n=l+nb +c q=a(n)/b(nb+1) + call wwdiv(ar(n),ai(n),br(nb+1),bi(nb+1),qr,qi,ierr) + if(ierr.ne.0) then + return + endif + nb1=nb+1 + do 4 i=1,nb1 + n1=nb-i+2 + n2=n-i+1 +c 4 a(n2)=a(n2)-b(n1)*q + call wmul(br(n1),bi(n1),qr,qi,wr,wi) + ar(n2)=ar(n2)-wr + ai(n2)=ai(n2)-wi + 4 continue + ar(n)=qr + ai(n)=qi + l=l-1 + goto 2 + 5 continue + return + end diff --git a/modules/polynomials/src/fortran/wpodiv.lo b/modules/polynomials/src/fortran/wpodiv.lo new file mode 100755 index 000000000..147c5113c --- /dev/null +++ b/modules/polynomials/src/fortran/wpodiv.lo @@ -0,0 +1,12 @@ +# src/fortran/wpodiv.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/wpodiv.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/polynomials/src/fortran/wprxc.f b/modules/polynomials/src/fortran/wprxc.f new file mode 100755 index 000000000..651019854 --- /dev/null +++ b/modules/polynomials/src/fortran/wprxc.f @@ -0,0 +1,67 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) ????-2008 - INRIA - Serge STEER +c +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +C/MEMBR ADD NAME=WPRXC,SSI=0 +c Copyright INRIA + subroutine wprxc(n,rootr,rooti,coeffr,coeffi) +c!but +c wprxc calcule les coefficients d'un polynome defini par ses +c racines (complexes) et dont le coefficient de degre maximum est 1 +c +c!liste d'appel +c subroutine wprxc(n,rootr,rooti,coeffr,coeffi) +c double precision rootr(n),rooti(n),coeffr(n+1),coeffi(n+1) +c integer n +c +c n : degre du polynome +c root : tableau contenant les racines +c coeff : tableau contenant les coefficients du polynome, ranges +c par odre croissant +c!sous programmes appeles +c dset waxpy (blas) +c! + double precision rootr(n),rooti(n),coeffr(*),coeffi(*) + integer n +c + integer j,nj,ninf + double precision dlamch +c + ninf=0 +c + call dset (n,0.0d+0,coeffr,1) + call dset (n+1,0.0d+0,coeffi,1) + coeffr(n+1)=1.0d+0 +c + do 10 j=1,n + if(abs(rootr(j)).gt.dlamch('o').or. + $ abs(rooti(j)).gt.dlamch('o')) then +c . infinite roots gives zero high degree coeff + ninf=ninf+1 + else + nj=n+1-j +c call waxpy(j,-rootr(j),-rooti(j),coeffr(nj+1),coeffi(nj+1),1 +c $ ,coeffr(nj),coeffi(nj),1) + do k=nj,nj+j-1 + coeffr(k)=coeffr(k)-rootr(j)*coeffr(1+k)+ + $ rooti(j)*coeffi(1+k) + coeffi(k)=coeffi(k)-rootr(j)*coeffi(1+k)- + $ rooti(j)*coeffr(1+k) + enddo + endif + 10 continue + + if (ninf.gt.0) then + call unsfdcopy(n-ninf+1,coeffr(ninf+1),1,coeffr(1),1) + call dset(ninf,0.0d0,coeffr(n-ninf+2),1) + call unsfdcopy(n-ninf+1,coeffi(ninf+1),1,coeffi(1),1) + call dset(ninf,0.0d0,coeffi(n-ninf+2),1) + + endif +c + return + end diff --git a/modules/polynomials/src/fortran/wprxc.lo b/modules/polynomials/src/fortran/wprxc.lo new file mode 100755 index 000000000..c5ac264a3 --- /dev/null +++ b/modules/polynomials/src/fortran/wprxc.lo @@ -0,0 +1,12 @@ +# src/fortran/wprxc.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/wprxc.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/polynomials/src/fortran/writebufsfact.f b/modules/polynomials/src/fortran/writebufsfact.f new file mode 100755 index 000000000..0d57abad5 --- /dev/null +++ b/modules/polynomials/src/fortran/writebufsfact.f @@ -0,0 +1,26 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) 2009 - DIGITEO - Allan CORNET +c +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +c ==================================== +c requires by f2c :( +c ==================================== + subroutine writebufstfacta(buffer,line) + + character*(*) buffer + integer line + write(buffer,82) line + 82 format('No real solution: degree ',i2,' entry is negative!') + end +c ==================================== + subroutine writebufstfactb(buffer,line) + + character*(*) buffer + integer line + write(buffer(1:4),'(i3)') line + end +c ==================================== diff --git a/modules/polynomials/src/fortran/writebufsfact.lo b/modules/polynomials/src/fortran/writebufsfact.lo new file mode 100755 index 000000000..905d2e362 --- /dev/null +++ b/modules/polynomials/src/fortran/writebufsfact.lo @@ -0,0 +1,12 @@ +# src/fortran/writebufsfact.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/writebufsfact.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/polynomials/tests/nonreg_tests/bug_10611.dia.ref b/modules/polynomials/tests/nonreg_tests/bug_10611.dia.ref new file mode 100755 index 000000000..28599fda9 --- /dev/null +++ b/modules/polynomials/tests/nonreg_tests/bug_10611.dia.ref @@ -0,0 +1,26 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2012 - DIGITEO - Allan CORNET +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// <-- CLI SHELL MODE --> +// <-- Non-regression test for bug 10611 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=10611 +// +// <-- Short Description --> +// poly() function gave different results on 64 and 32-bit Scilab on Windows. +// +bPoles = [-0.3826834+%i*0.9238795 +-0.9238795+%i*0.3826834 +-0.9238795-%i*0.3826834 +-0.3826834-%i*0.9238795]; +sPoly = poly(bPoles, 's', 'roots'); +sRoots = roots(sPoly); +sRoot_REF = [-0.3826834+0.9238795*%i; .. +-0.3826834-0.9238795*%i; .. +-0.9238795+0.3826834*%i; .. +-0.9238795-0.3826834*%i]; +assert_checkalmostequal(sRoots, sRoot_REF); diff --git a/modules/polynomials/tests/nonreg_tests/bug_10611.tst b/modules/polynomials/tests/nonreg_tests/bug_10611.tst new file mode 100755 index 000000000..be35f7f75 --- /dev/null +++ b/modules/polynomials/tests/nonreg_tests/bug_10611.tst @@ -0,0 +1,35 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2012 - DIGITEO - Allan CORNET +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= + +// <-- CLI SHELL MODE --> + +// <-- Non-regression test for bug 10611 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=10611 +// +// <-- Short Description --> +// poly() function gave different results on 64 and 32-bit Scilab on Windows. +// + + +bPoles = [-0.3826834+%i*0.9238795 +-0.9238795+%i*0.3826834 +-0.9238795-%i*0.3826834 +-0.3826834-%i*0.9238795]; + +sPoly = poly(bPoles, 's', 'roots'); + +sRoots = roots(sPoly); + +sRoot_REF = [-0.3826834+0.9238795*%i; .. +-0.3826834-0.9238795*%i; .. +-0.9238795+0.3826834*%i; .. +-0.9238795-0.3826834*%i]; + +assert_checkalmostequal(sRoots, sRoot_REF); + diff --git a/modules/polynomials/tests/nonreg_tests/bug_11064.dia.ref b/modules/polynomials/tests/nonreg_tests/bug_11064.dia.ref new file mode 100755 index 000000000..0cf605bbc --- /dev/null +++ b/modules/polynomials/tests/nonreg_tests/bug_11064.dia.ref @@ -0,0 +1,18 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2012 - DIGITEO - Allan CORNET +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// <-- CLI SHELL MODE --> +// <-- Non-regression test for bug 11064 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=11064 +// +// <-- Short Description --> +// poly returns a wrong result on x64 (windows) +// +r = clean(coeff(poly(roots(poly([1 1 1],"x","c")),"x","r"))); +REF = [1 1 1]; +assert_checkalmostequal(r, REF); diff --git a/modules/polynomials/tests/nonreg_tests/bug_11064.tst b/modules/polynomials/tests/nonreg_tests/bug_11064.tst new file mode 100755 index 000000000..4d9445d7f --- /dev/null +++ b/modules/polynomials/tests/nonreg_tests/bug_11064.tst @@ -0,0 +1,22 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2012 - DIGITEO - Allan CORNET +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= + +// <-- CLI SHELL MODE --> + +// <-- Non-regression test for bug 11064 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=11064 +// +// <-- Short Description --> +// poly returns a wrong result on x64 (windows) +// + +r = clean(coeff(poly(roots(poly([1 1 1],"x","c")),"x","r"))); +REF = [1 1 1]; +assert_checkalmostequal(r, REF); + diff --git a/modules/polynomials/tests/nonreg_tests/bug_11110.dia.ref b/modules/polynomials/tests/nonreg_tests/bug_11110.dia.ref new file mode 100755 index 000000000..9fcc2c799 --- /dev/null +++ b/modules/polynomials/tests/nonreg_tests/bug_11110.dia.ref @@ -0,0 +1,26 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2012 - DIGITEO - Allan CORNET +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// +// <-- JAVA NOT MANDATORY --> +// +// <-- Non-regression test for bug 11110 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=11110 +// +// <-- Short Description --> +// poly() result was wrong on windows x64 +// +REF = [0 2 2 1]; +r = poly([0 -1+%i -1-%i],'s',"roots"); +assert_checkequal(coeff(r), REF); +r = poly([-1+%i 0 -1-%i],'s',"roots"); +assert_checkequal(coeff(r), REF); +r = poly([-1+%i -1-%i 0],'s',"roots"); +assert_checkequal(coeff(r), REF); +r = poly([-1-%i -1+%i 0],'s',"roots"); +assert_checkequal(coeff(r), REF); diff --git a/modules/polynomials/tests/nonreg_tests/bug_11110.tst b/modules/polynomials/tests/nonreg_tests/bug_11110.tst new file mode 100755 index 000000000..c4281b861 --- /dev/null +++ b/modules/polynomials/tests/nonreg_tests/bug_11110.tst @@ -0,0 +1,31 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2012 - DIGITEO - Allan CORNET +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// +// <-- JAVA NOT MANDATORY --> +// +// <-- Non-regression test for bug 11110 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=11110 +// +// <-- Short Description --> +// poly() result was wrong on windows x64 +// + +REF = [0 2 2 1]; + +r = poly([0 -1+%i -1-%i],'s',"roots"); +assert_checkequal(coeff(r), REF); + +r = poly([-1+%i 0 -1-%i],'s',"roots"); +assert_checkequal(coeff(r), REF); + +r = poly([-1+%i -1-%i 0],'s',"roots"); +assert_checkequal(coeff(r), REF); + +r = poly([-1-%i -1+%i 0],'s',"roots"); +assert_checkequal(coeff(r), REF); diff --git a/modules/polynomials/tests/nonreg_tests/bug_12679.dia.ref b/modules/polynomials/tests/nonreg_tests/bug_12679.dia.ref new file mode 100755 index 000000000..1a295ae54 --- /dev/null +++ b/modules/polynomials/tests/nonreg_tests/bug_12679.dia.ref @@ -0,0 +1,55 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2010 - DIGITEO - Allan CORNET +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// +// <-- Non-regression test for bug 12679 --> +// +// <-- CLI SHELL MODE --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=12679 +// +// <-- Short Description --> +// Checks on gcd() and lcm() arguments +// Run with test_run('polynomials', 'bug_12679', ['no_check_error_output']) +////////////////// gcd +// Normal behavior, with polynomials +s = poly(0, "s"); +p = [s, s*(s+1)^2, 2*s^2+s^3]; +[pgcd, u] = gcd(p); +assert_checkequal(p*u, [0 0 s]); +// Complex polynomials should yield an error +// Normal behavior, with integers +V = [2^2*3^5 2^3*3^2 2^2*3^4*5]; +V_int = int32(V); +[thegcd, U] = gcd(V); +[thegcd, U_int] = gcd(V); +assert_checkequal(V*U, int32([0 0 36])); +assert_checkequal(V_int*U_int, int32([0 0 36])); +assert_checkequal(gcd(uint8([15 20])), uint8(5)); +assert_checkequal(gcd([iconvert(15, 4) iconvert(20, 4)]), int32(5)); +assert_checkequal(gcd(iconvert([15 20], 4)), int32(5)); +// Trying to use booleans, strings or decimals should yield an error +refMsg2 = msprintf(_("%s: Wrong type for argument #%d: Integer array or Polynomial expected.\n"), "gcd", 1); +assert_checkerror("gcd(%t);", refMsg2); +assert_checkerror("gcd(1.5);", refMsg2); +assert_checkerror("gcd(""string"");", refMsg2); +////////////////// lcm +// Normal behavior, with polynomials +s = poly(0, "s"); +p = [s, s*(s+1)^2, s^2*(s+2)]; +[pp, fact] = lcm(p); +assert_checkequal(pp, [2*s^2 + 5*s^3 + 4*s^4 + s^5]); +// Normal behavior, with integers +V = [2^2*3^5 2^3*3^2 2^2*3^4*5]; +V_int = int32(V); +assert_checkequal(lcm(V), int32(9720)); +assert_checkequal(lcm(V_int), int32(9720)); +// Trying to use booleans, strings or decimals should yield an error +refMsg4 = msprintf(_("%s: Wrong type for argument #%d: Integer array or Polynomial expected.\n"), "lcm", 1); +assert_checkerror("lcm(%t);", refMsg4); +assert_checkerror("lcm(1.5);", refMsg4); +assert_checkerror("lcm(""string"");", refMsg4); diff --git a/modules/polynomials/tests/nonreg_tests/bug_12679.tst b/modules/polynomials/tests/nonreg_tests/bug_12679.tst new file mode 100755 index 000000000..88f98ddd6 --- /dev/null +++ b/modules/polynomials/tests/nonreg_tests/bug_12679.tst @@ -0,0 +1,61 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2010 - DIGITEO - Allan CORNET +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// +// <-- Non-regression test for bug 12679 --> +// +// <-- CLI SHELL MODE --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=12679 +// +// <-- Short Description --> +// Checks on gcd() and lcm() arguments + +// Run with test_run('polynomials', 'bug_12679', ['no_check_error_output']) + +////////////////// gcd +// Normal behavior, with polynomials +s = poly(0, "s"); +p = [s, s*(s+1)^2, 2*s^2+s^3]; +[pgcd, u] = gcd(p); +assert_checkequal(p*u, [0 0 s]); +// Complex polynomials should yield an error + +// Normal behavior, with integers +V = [2^2*3^5 2^3*3^2 2^2*3^4*5]; +V_int = int32(V); +[thegcd, U] = gcd(V); +[thegcd, U_int] = gcd(V); +assert_checkequal(V*U, int32([0 0 36])); +assert_checkequal(V_int*U_int, int32([0 0 36])); +assert_checkequal(gcd(uint8([15 20])), uint8(5)); +assert_checkequal(gcd([iconvert(15, 4) iconvert(20, 4)]), int32(5)); +assert_checkequal(gcd(iconvert([15 20], 4)), int32(5)); +// Trying to use booleans, strings or decimals should yield an error +refMsg2 = msprintf(_("%s: Wrong type for argument #%d: Integer array or Polynomial expected.\n"), "gcd", 1); +assert_checkerror("gcd(%t);", refMsg2); +assert_checkerror("gcd(1.5);", refMsg2); +assert_checkerror("gcd(""string"");", refMsg2); + + +////////////////// lcm +// Normal behavior, with polynomials +s = poly(0, "s"); +p = [s, s*(s+1)^2, s^2*(s+2)]; +[pp, fact] = lcm(p); +assert_checkequal(pp, [2*s^2 + 5*s^3 + 4*s^4 + s^5]); + +// Normal behavior, with integers +V = [2^2*3^5 2^3*3^2 2^2*3^4*5]; +V_int = int32(V); +assert_checkequal(lcm(V), int32(9720)); +assert_checkequal(lcm(V_int), int32(9720)); +// Trying to use booleans, strings or decimals should yield an error +refMsg4 = msprintf(_("%s: Wrong type for argument #%d: Integer array or Polynomial expected.\n"), "lcm", 1); +assert_checkerror("lcm(%t);", refMsg4); +assert_checkerror("lcm(1.5);", refMsg4); +assert_checkerror("lcm(""string"");", refMsg4); diff --git a/modules/polynomials/tests/nonreg_tests/bug_13192.dia.ref b/modules/polynomials/tests/nonreg_tests/bug_13192.dia.ref new file mode 100755 index 000000000..099b25c2c --- /dev/null +++ b/modules/polynomials/tests/nonreg_tests/bug_13192.dia.ref @@ -0,0 +1,25 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2014 - Scilab Enterprises - Adeline CARNIS +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// +// <-- CLI SHELL MODE --> +// +// <-- Non-regression test for bug 13192 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=13192 +// +// <-- Short Description --> +// Horner function returned an error message when the input arguments did not +// have the same size. +s = %s; +H = [1/s; 1/s; 1/(s+1)]; +f = [1+%i 1/(1-s)]; +expectedN = [1 1-5*s+10*s^2-10*s^3+5*s^4-s^5; 1 1-5*s+10*s^2-10*s^3+5*s^4-s^5; 1 1-5*s+10*s^2-10*s^3+5*s^4-s^5]; +expectedD = [1+%i 1-4*s+6*s^2-4*s^3+s^4; 1+%i 1-4*s+6*s^2-4*s^3+s^4; 2+%i 2-9*s+16*s^2-14*s^3+6*s^4-s^5]; +expected = expectedN./expectedD; +res = horner(H,f); +assert_checkequal(res, expected); diff --git a/modules/polynomials/tests/nonreg_tests/bug_13192.tst b/modules/polynomials/tests/nonreg_tests/bug_13192.tst new file mode 100755 index 000000000..47d177c8d --- /dev/null +++ b/modules/polynomials/tests/nonreg_tests/bug_13192.tst @@ -0,0 +1,26 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2014 - Scilab Enterprises - Adeline CARNIS +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// +// <-- CLI SHELL MODE --> +// +// <-- Non-regression test for bug 13192 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=13192 +// +// <-- Short Description --> +// Horner function returned an error message when the input arguments did not +// have the same size. + +s = %s; +H = [1/s; 1/s; 1/(s+1)]; +f = [1+%i 1/(1-s)]; +expectedN = [1 1-5*s+10*s^2-10*s^3+5*s^4-s^5; 1 1-5*s+10*s^2-10*s^3+5*s^4-s^5; 1 1-5*s+10*s^2-10*s^3+5*s^4-s^5]; +expectedD = [1+%i 1-4*s+6*s^2-4*s^3+s^4; 1+%i 1-4*s+6*s^2-4*s^3+s^4; 2+%i 2-9*s+16*s^2-14*s^3+6*s^4-s^5]; +expected = expectedN./expectedD; +res = horner(H,f); +assert_checkequal(res, expected); diff --git a/modules/polynomials/tests/nonreg_tests/bug_13511.dia.ref b/modules/polynomials/tests/nonreg_tests/bug_13511.dia.ref new file mode 100755 index 000000000..d5828b2f9 --- /dev/null +++ b/modules/polynomials/tests/nonreg_tests/bug_13511.dia.ref @@ -0,0 +1,21 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2014 - Scilab Enterprises - Paul Bignier +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// +// <-- CLI SHELL MODE --> +// +// <-- Non-regression test for bug 13511 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=13511 +// +// <-- Short Description --> +// lcm used with doubles returned wrong type values, +// bezout help did not mention doubles. +assert_checkequal(lcm([96 6250 10000 18700]), int32(56100000)); +[P, U] = bezout(3.5, 4.2); +assert_checkequal(coeff(P), 1); +assert_checkalmostequal(coeff(U), [0 4.2; 1/4.2 -3.5]); diff --git a/modules/polynomials/tests/nonreg_tests/bug_13511.tst b/modules/polynomials/tests/nonreg_tests/bug_13511.tst new file mode 100755 index 000000000..113adf7b0 --- /dev/null +++ b/modules/polynomials/tests/nonreg_tests/bug_13511.tst @@ -0,0 +1,23 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2014 - Scilab Enterprises - Paul Bignier +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// +// <-- CLI SHELL MODE --> +// +// <-- Non-regression test for bug 13511 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=13511 +// +// <-- Short Description --> +// lcm used with doubles returned wrong type values, +// bezout help did not mention doubles. + +assert_checkequal(lcm([96 6250 10000 18700]), int32(56100000)); + +[P, U] = bezout(3.5, 4.2); +assert_checkequal(coeff(P), 1); +assert_checkalmostequal(coeff(U), [0 4.2; 1/4.2 -3.5]); diff --git a/modules/polynomials/tests/nonreg_tests/bug_201.dia.ref b/modules/polynomials/tests/nonreg_tests/bug_201.dia.ref new file mode 100755 index 000000000..58be9f4b9 --- /dev/null +++ b/modules/polynomials/tests/nonreg_tests/bug_201.dia.ref @@ -0,0 +1,17 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2008 - INRIA - Vincent COUVERT +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// <-- CLI SHELL MODE --> +// <-- Non-regression test for bug 201 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=201 +// +// <-- Short Description --> +// modulo function error +x=poly(0,'x'); +q=200001; +if modulo(q*x,q)<>0 then bugmes();quit;end diff --git a/modules/polynomials/tests/nonreg_tests/bug_201.tst b/modules/polynomials/tests/nonreg_tests/bug_201.tst new file mode 100755 index 000000000..49b67ced2 --- /dev/null +++ b/modules/polynomials/tests/nonreg_tests/bug_201.tst @@ -0,0 +1,21 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2008 - INRIA - Vincent COUVERT +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= + +// <-- CLI SHELL MODE --> + +// <-- Non-regression test for bug 201 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=201 +// +// <-- Short Description --> +// modulo function error + + +x=poly(0,'x'); +q=200001; +if modulo(q*x,q)<>0 then pause,end diff --git a/modules/polynomials/tests/nonreg_tests/bug_205.dia.ref b/modules/polynomials/tests/nonreg_tests/bug_205.dia.ref new file mode 100755 index 000000000..112de5b15 --- /dev/null +++ b/modules/polynomials/tests/nonreg_tests/bug_205.dia.ref @@ -0,0 +1,35 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2006-2008 - INRIA - Pierre MARECHAL <pierre.marechal@inria.fr> +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// <-- CLI SHELL MODE --> +// <-- Non-regression test for bug 205 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=205 +// +// <-- Short Description --> +// Bug Report Id: 04062001110115540 +// determ oublie les termes de plus haut degre. +// +// On Scilab 2.5 with " determ " function +// The Error Messages are: +// +// Commands: // scilab dit que le polynome caracteristique de +// // cette matrice de dimension +// // 30 est de degre 21 +// N=30 +// a=rand(N,N) +// s=poly(0,'s') +// p=determ(eye(N,N)*s-a) +// degree(p) +// +// Gaubert on Linux PPC version 2.2.13 distribution with X/kde as window manager +// France February 10, 2001 at 11:55:40 +// <-- ENGLISH IMPOSED --> +N = 30; +A = rand(N,N); +P = determ( eye(N,N)*%s - A ); +if degree(P)<>30 then bugmes();quit;end diff --git a/modules/polynomials/tests/nonreg_tests/bug_205.tst b/modules/polynomials/tests/nonreg_tests/bug_205.tst new file mode 100755 index 000000000..6dbb80f38 --- /dev/null +++ b/modules/polynomials/tests/nonreg_tests/bug_205.tst @@ -0,0 +1,39 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2006-2008 - INRIA - Pierre MARECHAL <pierre.marechal@inria.fr> +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= + +// <-- CLI SHELL MODE --> + +// <-- Non-regression test for bug 205 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=205 +// +// <-- Short Description --> +// Bug Report Id: 04062001110115540 +// determ oublie les termes de plus haut degre. +// +// On Scilab 2.5 with " determ " function +// The Error Messages are: +// +// Commands: // scilab dit que le polynome caracteristique de +// // cette matrice de dimension +// // 30 est de degre 21 +// N=30 +// a=rand(N,N) +// s=poly(0,'s') +// p=determ(eye(N,N)*s-a) +// degree(p) +// +// Gaubert on Linux PPC version 2.2.13 distribution with X/kde as window manager +// France February 10, 2001 at 11:55:40 +// <-- ENGLISH IMPOSED --> + +N = 30; +A = rand(N,N); +P = determ( eye(N,N)*%s - A ); + +if degree(P)<>30 then pause,end diff --git a/modules/polynomials/tests/nonreg_tests/bug_2177.dia.ref b/modules/polynomials/tests/nonreg_tests/bug_2177.dia.ref new file mode 100755 index 000000000..9c61fe0fd --- /dev/null +++ b/modules/polynomials/tests/nonreg_tests/bug_2177.dia.ref @@ -0,0 +1,17 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2010 - DIGITEO - Vincent COUVERT +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// <-- CLI SHELL MODE --> +// <-- Non-regression test for bug 2177 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=2177 +// +// <-- Short Description --> +// When i calculate roots of a simple matrix 2X2, using function ROOTS, Scilab crashes. +A=[1,2;3,4]; +S=poly(A,"x"); +[y]=roots(S); diff --git a/modules/polynomials/tests/nonreg_tests/bug_2177.tst b/modules/polynomials/tests/nonreg_tests/bug_2177.tst new file mode 100755 index 000000000..6893ed4f7 --- /dev/null +++ b/modules/polynomials/tests/nonreg_tests/bug_2177.tst @@ -0,0 +1,22 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2010 - DIGITEO - Vincent COUVERT +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= + +// <-- CLI SHELL MODE --> + +// <-- Non-regression test for bug 2177 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=2177 +// +// <-- Short Description --> +// When i calculate roots of a simple matrix 2X2, using function ROOTS, Scilab crashes. + +A=[1,2;3,4]; +S=poly(A,"x"); +[y]=roots(S); + + diff --git a/modules/polynomials/tests/nonreg_tests/bug_2264.dia.ref b/modules/polynomials/tests/nonreg_tests/bug_2264.dia.ref new file mode 100755 index 000000000..dee4bd146 --- /dev/null +++ b/modules/polynomials/tests/nonreg_tests/bug_2264.dia.ref @@ -0,0 +1,22 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2007-2008 - INRIA - Serge STEER <serge.steer@inria.fr> +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// <-- CLI SHELL MODE --> +// <-- Non-regression test for bug 2264 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=2264 +// +// <-- Short Description --> +// lcm gives wrong value for 3-element vectors(cf bug 666) +[q,fact]=lcm(int32([-6 5 7 12 4])); +if q<>int32(420) then bugmes();quit;end +[q,fact]=lcm(int32([6 5 7 3 4])) ; +if q<>int32(420) then bugmes();quit;end +[q,fact]=lcm(int32([-6 5 1 3 4])); +if q<>int32(60) then bugmes();quit;end +[q,fact]=lcm(int32([-6 5 0 3 4])); +if q<>int32(0) then bugmes();quit;end diff --git a/modules/polynomials/tests/nonreg_tests/bug_2264.tst b/modules/polynomials/tests/nonreg_tests/bug_2264.tst new file mode 100755 index 000000000..e7f7dc2b4 --- /dev/null +++ b/modules/polynomials/tests/nonreg_tests/bug_2264.tst @@ -0,0 +1,28 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2007-2008 - INRIA - Serge STEER <serge.steer@inria.fr> +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= + +// <-- CLI SHELL MODE --> + +// <-- Non-regression test for bug 2264 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=2264 +// +// <-- Short Description --> +// lcm gives wrong value for 3-element vectors(cf bug 666) + +[q,fact]=lcm(int32([-6 5 7 12 4])); +if q<>int32(420) then pause,end + +[q,fact]=lcm(int32([6 5 7 3 4])) ; +if q<>int32(420) then pause,end + +[q,fact]=lcm(int32([-6 5 1 3 4])); +if q<>int32(60) then pause,end + +[q,fact]=lcm(int32([-6 5 0 3 4])); +if q<>int32(0) then pause,end diff --git a/modules/polynomials/tests/nonreg_tests/bug_2391.dia.ref b/modules/polynomials/tests/nonreg_tests/bug_2391.dia.ref new file mode 100755 index 000000000..78b97bf01 --- /dev/null +++ b/modules/polynomials/tests/nonreg_tests/bug_2391.dia.ref @@ -0,0 +1,19 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2008 - INRIA - Vincent COUVERT +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// +// <-- CLI SHELL MODE --> +// +// <-- Non-regression test for bug 2391 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=2391 +// +// <-- Short Description --> +// pol2str produces empty output (instead of '0') for null polynomials +p = poly([0,10,1+%i,1-%i],"x"); +if stripblanks(pol2str(p))<>"-20*x+22*x^2-12*x^3+x^4" then bugmes();quit;end +if pol2str(0*p)<>"0" then bugmes();quit;end diff --git a/modules/polynomials/tests/nonreg_tests/bug_2391.tst b/modules/polynomials/tests/nonreg_tests/bug_2391.tst new file mode 100755 index 000000000..506599fae --- /dev/null +++ b/modules/polynomials/tests/nonreg_tests/bug_2391.tst @@ -0,0 +1,20 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2008 - INRIA - Vincent COUVERT +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// +// <-- CLI SHELL MODE --> +// +// <-- Non-regression test for bug 2391 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=2391 +// +// <-- Short Description --> +// pol2str produces empty output (instead of '0') for null polynomials + +p = poly([0,10,1+%i,1-%i],"x"); +if stripblanks(pol2str(p))<>"-20*x+22*x^2-12*x^3+x^4" then pause,end +if pol2str(0*p)<>"0" then pause,end diff --git a/modules/polynomials/tests/nonreg_tests/bug_2492.dia.ref b/modules/polynomials/tests/nonreg_tests/bug_2492.dia.ref new file mode 100755 index 000000000..78f288841 --- /dev/null +++ b/modules/polynomials/tests/nonreg_tests/bug_2492.dia.ref @@ -0,0 +1,18 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2006-2008 - INRIA - Serge Steer +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// <-- CLI SHELL MODE --> +// <-- Non-regression test for bug 2492 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=2492 +// +// <-- Short Description --> +// missing tests on formal variable name validity +if execstr('poly(1:3,''c+'')','errcatch')==0 then bugmes();quit;end +if execstr('poly(1:3,'' c'')','errcatch')==0 then bugmes();quit;end +if execstr('poly(1:3,''1c'')','errcatch')==0 then bugmes();quit;end +if execstr('poly(1:3,''c*'')','errcatch')==0 then bugmes();quit;end diff --git a/modules/polynomials/tests/nonreg_tests/bug_2492.tst b/modules/polynomials/tests/nonreg_tests/bug_2492.tst new file mode 100755 index 000000000..f636d0e93 --- /dev/null +++ b/modules/polynomials/tests/nonreg_tests/bug_2492.tst @@ -0,0 +1,22 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2006-2008 - INRIA - Serge Steer +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= + +// <-- CLI SHELL MODE --> + +// <-- Non-regression test for bug 2492 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=2492 +// +// <-- Short Description --> +// missing tests on formal variable name validity +if execstr('poly(1:3,''c+'')','errcatch')==0 then pause,end +if execstr('poly(1:3,'' c'')','errcatch')==0 then pause,end +if execstr('poly(1:3,''1c'')','errcatch')==0 then pause,end +if execstr('poly(1:3,''c*'')','errcatch')==0 then pause,end + + diff --git a/modules/polynomials/tests/nonreg_tests/bug_2834.dia.ref b/modules/polynomials/tests/nonreg_tests/bug_2834.dia.ref new file mode 100755 index 000000000..874cc9d4a --- /dev/null +++ b/modules/polynomials/tests/nonreg_tests/bug_2834.dia.ref @@ -0,0 +1,19 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2006-2008 - INRIA - Serge Steer +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// <-- CLI SHELL MODE --> +// <-- Non-regression test for bug 2834 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=2834 +// +// <-- Short Description --> +// strange bug that appeared in scilab-5.0-alpha2 and disapeared then +// the code below produced n=2 instead of 1 +n1=poly([4/3 1-%eps/2],'x','c'); +d1=poly([4/3 1],'x','c'); +[n,d]=simp(n1,d1); +if or(abs(coeff(n)-1)>10*%eps) then bugmes();quit;end diff --git a/modules/polynomials/tests/nonreg_tests/bug_2834.tst b/modules/polynomials/tests/nonreg_tests/bug_2834.tst new file mode 100755 index 000000000..da6946e1d --- /dev/null +++ b/modules/polynomials/tests/nonreg_tests/bug_2834.tst @@ -0,0 +1,22 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2006-2008 - INRIA - Serge Steer +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= + +// <-- CLI SHELL MODE --> + +// <-- Non-regression test for bug 2834 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=2834 +// +// <-- Short Description --> +// strange bug that appeared in scilab-5.0-alpha2 and disapeared then +// the code below produced n=2 instead of 1 + +n1=poly([4/3 1-%eps/2],'x','c'); +d1=poly([4/3 1],'x','c'); +[n,d]=simp(n1,d1); +if or(abs(coeff(n)-1)>10*%eps) then pause,end diff --git a/modules/polynomials/tests/nonreg_tests/bug_3006.dia.ref b/modules/polynomials/tests/nonreg_tests/bug_3006.dia.ref new file mode 100755 index 000000000..6654a345f --- /dev/null +++ b/modules/polynomials/tests/nonreg_tests/bug_3006.dia.ref @@ -0,0 +1,28 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2007-2008 - INRIA - Serge STEER <serge.steer@inria.fr> +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// <-- CLI SHELL MODE --> +// <-- Non-regression test for bug 3006 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=3006 +// +// <-- Short Description --> +// submatrix assignment impossible when the matrix is indexed with a boolean array of falses +s=poly(0,'s'); +a=[1+s 2;3 4*s];a_ref=a; +a(1,[%f %f])=[]; +if or(a<>a_ref) then bugmes();quit;end +a([%f %f],1)=[]; +if or(a<>a_ref) then bugmes();quit;end +a([%f %f],[%f %f])=[]; +if or(a<>a_ref) then bugmes();quit;end +a(1,$:1)=[]; +if or(a<>a_ref) then bugmes();quit;end +a($:1,1)=[]; +if or(a<>a_ref) then bugmes();quit;end +a($:1,$:1)=[]; +if or(a<>a_ref) then bugmes();quit;end diff --git a/modules/polynomials/tests/nonreg_tests/bug_3006.tst b/modules/polynomials/tests/nonreg_tests/bug_3006.tst new file mode 100755 index 000000000..9d7e60b7c --- /dev/null +++ b/modules/polynomials/tests/nonreg_tests/bug_3006.tst @@ -0,0 +1,32 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2007-2008 - INRIA - Serge STEER <serge.steer@inria.fr> +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= + +// <-- CLI SHELL MODE --> + +// <-- Non-regression test for bug 3006 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=3006 +// +// <-- Short Description --> +// submatrix assignment impossible when the matrix is indexed with a boolean array of falses +s=poly(0,'s'); +a=[1+s 2;3 4*s];a_ref=a; + +a(1,[%f %f])=[]; +if or(a<>a_ref) then pause,end +a([%f %f],1)=[]; +if or(a<>a_ref) then pause,end +a([%f %f],[%f %f])=[]; +if or(a<>a_ref) then pause,end + +a(1,$:1)=[]; +if or(a<>a_ref) then pause,end +a($:1,1)=[]; +if or(a<>a_ref) then pause,end +a($:1,$:1)=[]; +if or(a<>a_ref) then pause,end diff --git a/modules/polynomials/tests/nonreg_tests/bug_3810.dia.ref b/modules/polynomials/tests/nonreg_tests/bug_3810.dia.ref new file mode 100755 index 000000000..414d9c873 --- /dev/null +++ b/modules/polynomials/tests/nonreg_tests/bug_3810.dia.ref @@ -0,0 +1,69 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2010 - INRIA - Serge Steer <serge.steer@inria.fr> +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// +// <-- Non-regression test for bug 3810 --> +// +// <-- CLI SHELL MODE --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=3810 +// +// <-- Short Description --> +// Insertion in string array and polynomial array may be very slow +w=warning('query'); +warning('off'); +T=[]; +N=[ (5:9)*10000 (1:9)*100000]; +for n=N + clear t + timer();t(1:n)=%s;T=[T timer()]; +end +//check for quasi linear evolution of T(n) +abc=T/[N^2;N;ones(N)]; +if abc(1)/norm(abc(2:3))>1d-3 then bugmes();quit;end +T=[]; +for n=N + clear t + timer();t(2,1:n)=%s;T=[T timer()]; +end +//check for quasi linear evolution of T(n) +abc=T/[N^2;N;ones(N)]; +if abc(1)/norm(abc(2:3))>1d-3 then bugmes();quit;end +T=[]; +for n=N + clear t + timer();t(1:n,2)=%s;T=[T timer()]; +end +//check for quasi linear evolution of T(n) +abc=T/[N^2;N;ones(N)]; +if abc(1)/norm(abc(2:3))>1d-3 then bugmes();quit;end +T=[]; +N=[ (5:9)*10000 (1:9)*100000]; +for n=N + clear t + timer();t(n)=%s;T=[T timer()]; +end +//check for quasi linear evolution of T(n) +abc=T/[N^2;N;ones(N)]; +if abc(1)/norm(abc(2:3))>1d-3 then bugmes();quit;end +T=[]; +for n=N + clear t + timer();t(2,n)=%s;T=[T timer()]; +end +//check for quasi linear evolution of T(n) +abc=T/[N^2;N;ones(N)]; +if abc(1)/norm(abc(2:3))>1d-3 then bugmes();quit;end +T=[]; +for n=N + clear t + timer();t(n,2)=%s;T=[T timer()]; +end +//check for quasi linear evolution of T(n) +abc=T/[N^2;N;ones(N)]; +if abc(1)/norm(abc(2:3))>1d-3 then bugmes();quit;end +warning(w); diff --git a/modules/polynomials/tests/nonreg_tests/bug_3810.tst b/modules/polynomials/tests/nonreg_tests/bug_3810.tst new file mode 100755 index 000000000..2c11c1dec --- /dev/null +++ b/modules/polynomials/tests/nonreg_tests/bug_3810.tst @@ -0,0 +1,76 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2010 - INRIA - Serge Steer <serge.steer@inria.fr> +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// +// <-- Non-regression test for bug 3810 --> +// +// <-- CLI SHELL MODE --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=3810 +// +// <-- Short Description --> +// Insertion in string array and polynomial array may be very slow +w=warning('query'); +warning('off'); +T=[]; +N=[ (5:9)*10000 (1:9)*100000]; +for n=N + clear t + timer();t(1:n)=%s;T=[T timer()]; +end +//check for quasi linear evolution of T(n) +abc=T/[N^2;N;ones(N)]; +if abc(1)/norm(abc(2:3))>1d-3 then pause,end + +T=[]; +for n=N + clear t + timer();t(2,1:n)=%s;T=[T timer()]; +end +//check for quasi linear evolution of T(n) +abc=T/[N^2;N;ones(N)]; +if abc(1)/norm(abc(2:3))>1d-3 then pause,end + +T=[]; +for n=N + clear t + timer();t(1:n,2)=%s;T=[T timer()]; +end +//check for quasi linear evolution of T(n) +abc=T/[N^2;N;ones(N)]; +if abc(1)/norm(abc(2:3))>1d-3 then pause,end + +T=[]; +N=[ (5:9)*10000 (1:9)*100000]; +for n=N + clear t + timer();t(n)=%s;T=[T timer()]; +end +//check for quasi linear evolution of T(n) +abc=T/[N^2;N;ones(N)]; +if abc(1)/norm(abc(2:3))>1d-3 then pause,end + +T=[]; +for n=N + clear t + timer();t(2,n)=%s;T=[T timer()]; +end +//check for quasi linear evolution of T(n) +abc=T/[N^2;N;ones(N)]; +if abc(1)/norm(abc(2:3))>1d-3 then pause,end + +T=[]; +for n=N + clear t + timer();t(n,2)=%s;T=[T timer()]; +end +//check for quasi linear evolution of T(n) +abc=T/[N^2;N;ones(N)]; +if abc(1)/norm(abc(2:3))>1d-3 then pause,end + + +warning(w); diff --git a/modules/polynomials/tests/nonreg_tests/bug_415.dia.ref b/modules/polynomials/tests/nonreg_tests/bug_415.dia.ref new file mode 100755 index 000000000..4fd5e34da --- /dev/null +++ b/modules/polynomials/tests/nonreg_tests/bug_415.dia.ref @@ -0,0 +1,177 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2008 - INRIA - Michael Baudin +// Copyright (C) 2011 - DIGITEO - Michael Baudin +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// <-- CLI SHELL MODE --> +// <-- NO CHECK REF --> +// <-- Non-regression test for bug 415 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=415 +// +// <-- Short Description --> +//Bug Report Id: 12703200082791817 +// There is no convergence problem, but the roots given by Scilab are false. +// +//With Pari and Maple, I find +// +//-1.991414471058644760261615564 + 0.E-28*I +//-1.895889044296221748848819128 + 0.E-28*I +//-1.692382605570622810325758964 + 0.E-28*I +//-1.481546143424463443623878009 + 0.E-28*I +//-1.130257610083694441233635997 + 0.E-28*I +//1.346891063469017079426003177 + 0.E-28*I +//1.504013628510203282791611562 + 0.E-28*I +//1.846667981457346134709529025 + 0.E-28*I +//0.3354022818049053224733928984 - 0.1602901760665646683439370449*I +//0.3354022818049053224733928984 + 0.1602901760665646683439370449*I +//-0.5652255834927430850816775162 - 0.06550796263368989842265750483*I +//-0.5652255834927430850816775162 + 0.06550796263368989842265750483*I +//1.976781902186378116291566567 - 0.03475891968883585523494112251*I +//1.976781902186378116291566567 + 0.03475891968883585523494112251*I +// +// +//With Scilab, I find +// +//! 0.3354023 + 0.1602902i ! +//! 0.3354023 - 0.1602902i ! +//! - 0.5652256 + 0.0655080i ! +//! - 0.5652256 - 0.0655080i ! +//! - 1.1302576 ! +//! 1.3468911 ! +//! 1.5040136 ! +//! - 1.4815461 ! +//! - 1.6923826 ! +//! 1.846668 ! +//! - 1.895889 ! +//! 1.9736772 ! +//! - 1.9914145 ! +//! 1.9798866 ! +// +// +//So, Scilab forget two roots, and give two others which are not roots of p. +// +// +//On Scilab 2.5-0 with " roots " function +//The Error Messages are: +// No error message, but the roots are false +//Commands: t=poly(0,"t"); +//p=t^14 - 15*t^12 - t^11 + 89*t^10 + 12*t^9 - 263*t^8 - 53*t^7 + 397*t^6 + 103*t^5 - 275*t^4 - 78*t^3 + 62*t^2 + 8*t - 7 +//roots(p) +// +// +//Jean-Marc Sac-Epée on Linux PC version Linux distribution Mandrake 7.1 with KDE as window manager +//France September 27, 2000 at 9:18:17 +// +// sort_merge_comparison -- +// Returns -1 if x < y, +// returns 0 if x==y, +// returns +1 if x > y +// +function order = sort_merge_comparison ( x , y ) + if x < y then + order = -1 + elseif x==y then + order = 0 + else + order = 1 + end +endfunction +// +// sort_merge -- +// Returns the sorted array x. +// Arguments +// x : the array to sort +// compfun : the comparison function +// data : an optional data to pass to the comparison function +// Bruno Pincon +// "quelques tests de rapidité entre différents logiciels matriciels" +// Modified by Michael Baudin to manage a comparison function +// +function [x] = sort_merge ( varargin ) + [lhs,rhs]=argn(); + if ( ( rhs<>1 ) & ( rhs<>2 ) & ( rhs<>3 ) ) then + errmsg = sprintf("Unexpected number of arguments : %d provided while 1, 2 or 3 are expected.",rhs); + error(errmsg) + end + // Get the array x + x = varargin(1); + // Get the comparison function compfun + if rhs==1 then + compfun = sort_merge_comparison; + else + compfun = varargin(2); + if ( rhs == 3 ) then + data = varargin(3); + end + end + // Proceed... + n = length(x) + if n > 1 then + m = floor(n/2); + p = n-m + if ( rhs == 3 ) then + x1 = sort_merge ( x(1:m) , compfun , data ) + x2 = sort_merge ( x(m+1:n) , compfun , data ) + else + x1 = sort_merge ( x(1:m) , compfun ) + x2 = sort_merge ( x(m+1:n) , compfun ) + end + i = 1; + i1 = 1; + i2 = 1; + for i = 1:n + if ( rhs == 3 ) then + order = compfun ( x1(i1) , x2(i2) , data ); + else + order = compfun ( x1(i1) , x2(i2) ); + end + if order<=0 then + x(i) = x1(i1) + i1 = i1+1 + if (i1 > m) then + x(i+1:n) = x2(i2:p) + break + end + else + x(i) = x2(i2) + i2 = i2+1 + if (i2 > p) then + x(i+1:n) = x1(i1:m) + break + end + end + end + end +endfunction +function order = mycomparison ( x , y , data ) + order = assert_comparecomplex(x,y,data(1),data(2)) +endfunction +// There is no problem in this test: only the order of the +// eigenvalues change. +t=poly(0,"t"); +p=t^14 - 15*t^12 - t^11 + 89*t^10 + 12*t^9 - 263*t^8 - 53*t^7 + 397*t^6 + 103*t^5 - 275*t^4 - 78*t^3 + 62*t^2 + 8*t - 7; +myroots=roots(p); +//computedroots = sort(myroots); +computed = sort_merge ( myroots , mycomparison , [%eps,0] ); +expected = [ +- 1.9914144710587742270747 +- 1.89588904429592775003 +- 1.6923826055708985904857 +- 1.4815461434243473171080 +- 1.1302576100836980721454 +- 0.5652255834927423228109 - 0.0655079626336916437390*%i +- 0.5652255834927423228109 + 0.0655079626336916437390*%i +0.3354022818049053333844 - 0.1602901760665648156490*%i +0.3354022818049053333844 + 0.1602901760665648156490*%i +1.346891063468121929603 +1.5040136285121223913563 +1.8466679814523012659322 +1.9767819021883872299128 - 0.0347589196932355307124*%i +1.9767819021883872299128 + 0.0347589196932355307124*%i +]; +// Precision measured with experiments +assert_checkalmostequal ( computed , expected , 10^6*%eps ); diff --git a/modules/polynomials/tests/nonreg_tests/bug_415.tst b/modules/polynomials/tests/nonreg_tests/bug_415.tst new file mode 100755 index 000000000..4dd43ee80 --- /dev/null +++ b/modules/polynomials/tests/nonreg_tests/bug_415.tst @@ -0,0 +1,185 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2008 - INRIA - Michael Baudin +// Copyright (C) 2011 - DIGITEO - Michael Baudin +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= + +// <-- CLI SHELL MODE --> + +// <-- NO CHECK REF --> +// <-- Non-regression test for bug 415 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=415 +// +// <-- Short Description --> +//Bug Report Id: 12703200082791817 +// There is no convergence problem, but the roots given by Scilab are false. +// +//With Pari and Maple, I find +// +//-1.991414471058644760261615564 + 0.E-28*I +//-1.895889044296221748848819128 + 0.E-28*I +//-1.692382605570622810325758964 + 0.E-28*I +//-1.481546143424463443623878009 + 0.E-28*I +//-1.130257610083694441233635997 + 0.E-28*I +//1.346891063469017079426003177 + 0.E-28*I +//1.504013628510203282791611562 + 0.E-28*I +//1.846667981457346134709529025 + 0.E-28*I +//0.3354022818049053224733928984 - 0.1602901760665646683439370449*I +//0.3354022818049053224733928984 + 0.1602901760665646683439370449*I +//-0.5652255834927430850816775162 - 0.06550796263368989842265750483*I +//-0.5652255834927430850816775162 + 0.06550796263368989842265750483*I +//1.976781902186378116291566567 - 0.03475891968883585523494112251*I +//1.976781902186378116291566567 + 0.03475891968883585523494112251*I +// +// +//With Scilab, I find +// +//! 0.3354023 + 0.1602902i ! +//! 0.3354023 - 0.1602902i ! +//! - 0.5652256 + 0.0655080i ! +//! - 0.5652256 - 0.0655080i ! +//! - 1.1302576 ! +//! 1.3468911 ! +//! 1.5040136 ! +//! - 1.4815461 ! +//! - 1.6923826 ! +//! 1.846668 ! +//! - 1.895889 ! +//! 1.9736772 ! +//! - 1.9914145 ! +//! 1.9798866 ! +// +// +//So, Scilab forget two roots, and give two others which are not roots of p. +// +// +//On Scilab 2.5-0 with " roots " function +//The Error Messages are: +// No error message, but the roots are false +//Commands: t=poly(0,"t"); +//p=t^14 - 15*t^12 - t^11 + 89*t^10 + 12*t^9 - 263*t^8 - 53*t^7 + 397*t^6 + 103*t^5 - 275*t^4 - 78*t^3 + 62*t^2 + 8*t - 7 +//roots(p) +// +// +//Jean-Marc Sac-Epée on Linux PC version Linux distribution Mandrake 7.1 with KDE as window manager +//France September 27, 2000 at 9:18:17 + +// +// sort_merge_comparison -- +// Returns -1 if x < y, +// returns 0 if x==y, +// returns +1 if x > y +// +function order = sort_merge_comparison ( x , y ) + if x < y then + order = -1 + elseif x==y then + order = 0 + else + order = 1 + end +endfunction + +// +// sort_merge -- +// Returns the sorted array x. +// Arguments +// x : the array to sort +// compfun : the comparison function +// data : an optional data to pass to the comparison function +// Bruno Pincon +// "quelques tests de rapidité entre différents logiciels matriciels" +// Modified by Michael Baudin to manage a comparison function +// +function [x] = sort_merge ( varargin ) + [lhs,rhs]=argn(); + if ( ( rhs<>1 ) & ( rhs<>2 ) & ( rhs<>3 ) ) then + errmsg = sprintf("Unexpected number of arguments : %d provided while 1, 2 or 3 are expected.",rhs); + error(errmsg) + end + // Get the array x + x = varargin(1); + // Get the comparison function compfun + if rhs==1 then + compfun = sort_merge_comparison; + else + compfun = varargin(2); + if ( rhs == 3 ) then + data = varargin(3); + end + end + // Proceed... + n = length(x) + if n > 1 then + m = floor(n/2); + p = n-m + if ( rhs == 3 ) then + x1 = sort_merge ( x(1:m) , compfun , data ) + x2 = sort_merge ( x(m+1:n) , compfun , data ) + else + x1 = sort_merge ( x(1:m) , compfun ) + x2 = sort_merge ( x(m+1:n) , compfun ) + end + i = 1; + i1 = 1; + i2 = 1; + for i = 1:n + if ( rhs == 3 ) then + order = compfun ( x1(i1) , x2(i2) , data ); + else + order = compfun ( x1(i1) , x2(i2) ); + end + if order<=0 then + x(i) = x1(i1) + i1 = i1+1 + if (i1 > m) then + x(i+1:n) = x2(i2:p) + break + end + else + x(i) = x2(i2) + i2 = i2+1 + if (i2 > p) then + x(i+1:n) = x1(i1:m) + break + end + end + end + end +endfunction + + +function order = mycomparison ( x , y , data ) + order = assert_comparecomplex(x,y,data(1),data(2)) +endfunction + + +// There is no problem in this test: only the order of the +// eigenvalues change. +t=poly(0,"t"); +p=t^14 - 15*t^12 - t^11 + 89*t^10 + 12*t^9 - 263*t^8 - 53*t^7 + 397*t^6 + 103*t^5 - 275*t^4 - 78*t^3 + 62*t^2 + 8*t - 7; +myroots=roots(p); +//computedroots = sort(myroots); +computed = sort_merge ( myroots , mycomparison , [%eps,0] ); +expected = [ +- 1.9914144710587742270747 +- 1.89588904429592775003 +- 1.6923826055708985904857 +- 1.4815461434243473171080 +- 1.1302576100836980721454 +- 0.5652255834927423228109 - 0.0655079626336916437390*%i +- 0.5652255834927423228109 + 0.0655079626336916437390*%i +0.3354022818049053333844 - 0.1602901760665648156490*%i +0.3354022818049053333844 + 0.1602901760665648156490*%i +1.346891063468121929603 +1.5040136285121223913563 +1.8466679814523012659322 +1.9767819021883872299128 - 0.0347589196932355307124*%i +1.9767819021883872299128 + 0.0347589196932355307124*%i +]; +// Precision measured with experiments +assert_checkalmostequal ( computed , expected , 10^6*%eps ); diff --git a/modules/polynomials/tests/nonreg_tests/bug_5686.dia.ref b/modules/polynomials/tests/nonreg_tests/bug_5686.dia.ref new file mode 100755 index 000000000..b44c60073 --- /dev/null +++ b/modules/polynomials/tests/nonreg_tests/bug_5686.dia.ref @@ -0,0 +1,25 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2010 - DIGITEO - Allan CORNET +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// +// <-- Non-regression test for bug 5686 --> +// +// <-- CLI SHELL MODE --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=5686 +// +// <-- Short Description --> +// Complex number manipulation could crash Scilab. +s = poly(0,'s'); +tt = [ - 3.4817634, 0, 0, 0, 0, - 0.8107945, - 0.0311558, 0]; +tt1 = (0*%i+[ - 3.4859813,0, 0, 0, 0, - 0.8157716, - 0.0313009, 0]); +ttt = [-.9, 10.7, 0,0,0,-1.1,-8.7,0]; +a0 = (1 ./(s- tt)) * ttt'; +a1 = (1 ./(s- tt1)) * ttt'; +if execstr("a2 = (1 ./(s- tt1'')) * ttt;", "errcatch") <> 0 then bugmes();quit;end +if execstr("a3 = (1 ./(s- tt'')) * ttt;", "errcatch") <> 0 then bugmes();quit;end +if size(a2, "*") <> size(a3, "*") then bugmes();quit;end diff --git a/modules/polynomials/tests/nonreg_tests/bug_5686.tst b/modules/polynomials/tests/nonreg_tests/bug_5686.tst new file mode 100755 index 000000000..8213d30a1 --- /dev/null +++ b/modules/polynomials/tests/nonreg_tests/bug_5686.tst @@ -0,0 +1,26 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2010 - DIGITEO - Allan CORNET +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// +// <-- Non-regression test for bug 5686 --> +// +// <-- CLI SHELL MODE --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=5686 +// +// <-- Short Description --> +// Complex number manipulation could crash Scilab. + +s = poly(0,'s'); +tt = [ - 3.4817634, 0, 0, 0, 0, - 0.8107945, - 0.0311558, 0]; +tt1 = (0*%i+[ - 3.4859813,0, 0, 0, 0, - 0.8157716, - 0.0313009, 0]); +ttt = [-.9, 10.7, 0,0,0,-1.1,-8.7,0]; +a0 = (1 ./(s- tt)) * ttt'; +a1 = (1 ./(s- tt1)) * ttt'; +if execstr("a2 = (1 ./(s- tt1'')) * ttt;", "errcatch") <> 0 then pause, end +if execstr("a3 = (1 ./(s- tt'')) * ttt;", "errcatch") <> 0 then pause, end +if size(a2, "*") <> size(a3, "*") then pause, end diff --git a/modules/polynomials/tests/nonreg_tests/bug_7101.dia.ref b/modules/polynomials/tests/nonreg_tests/bug_7101.dia.ref new file mode 100755 index 000000000..7fd6320d8 --- /dev/null +++ b/modules/polynomials/tests/nonreg_tests/bug_7101.dia.ref @@ -0,0 +1,272 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2011 - DIGITEO - Michael Baudin +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// <-- CLI SHELL MODE --> +// <-- Non-regression test for bug 7101 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=7101 +// +// <-- Short Description --> +// The roots / Jenkins-Traub algorithm does not produce the roots, sometimes. +// The solution is to use the eigenvalues of the companion matrix. +// +// sort_merge_comparison -- +// Returns -1 if x < y, +// returns 0 if x==y, +// returns +1 if x > y +// +function order = sort_merge_comparison ( x , y ) + if x < y then + order = -1 + elseif x==y then + order = 0 + else + order = 1 + end +endfunction +// +// sort_merge -- +// Returns the sorted array x. +// Arguments +// x : the array to sort +// compfun : the comparison function +// Bruno Pincon +// "quelques tests de rapidit´e entre diff´erents logiciels matriciels" +// Modified by Michael Baudin to manage a comparison function +// +function [x] = sort_merge ( varargin ) + [lhs,rhs]=argn(); + if rhs<>1 & rhs<>2 then + errmsg = sprintf("Unexpected number of arguments : %d provided while 1 or 2 are expected.",rhs); + error(errmsg) + end + // Get the array x + x = varargin(1); + // Get the comparison function compfun + if rhs==1 then + compfun = sort_merge_comparison; + else + compfun = varargin(2); + end + // Proceed... + n = length(x) + if n > 1 then + m = floor(n/2); + p = n-m + x1 = sort_merge ( x(1:m) , compfun ) + x2 = sort_merge ( x(m+1:n) , compfun ) + i = 1; + i1 = 1; + i2 = 1; + for i = 1:n + order = compfun ( x1(i1) , x2(i2) ); + if order<=0 then + x(i) = x1(i1) + i1 = i1+1 + if (i1 > m) then + x(i+1:n) = x2(i2:p) + break + end + else + x(i) = x2(i2) + i2 = i2+1 + if (i2 > p) then + x(i+1:n) = x1(i1:m) + break + end + end + end + end +endfunction +// +// compare_complexrealimag -- +// Returns -1 if a < b, +// returns 0 if a==b, +// returns +1 if a > b +// Compare first by real parts, then by imaginary parts. +// +function order = compare_complexrealimag ( a , b ) + ar = real(a) + br = real(b) + if ar < br then + order = -1 + elseif ar > br then + order = 1 + else + ai = imag(a) + bi = imag(b) + if ai < bi then + order = -1 + elseif ai == bi then + order = 0 + else + order = 1 + end + end +endfunction +// +// assert_close -- +// Returns 1 if the two real matrices computed and expected are close, +// i.e. if the relative distance between computed and expected is lesser than epsilon. +// Arguments +// computed, expected : the two matrices to compare +// epsilon : a small number +// +function flag = assert_close ( computed, expected, epsilon ) + if expected==0.0 then + shift = norm(computed-expected); + else + shift = norm(computed-expected)/norm(expected); + end + if shift < epsilon then + flag = 1; + else + flag = 0; + end + if flag <> 1 then bugmes();quit;end +endfunction +function y = sortmyroots(x) + // Sort the roots of a polynomial with a customized + // complex-aware sorting algorithm. + y = sort_merge ( x , compare_complexrealimag ); +endfunction +// Failed on Windows 32 bits +p = [1,1,-7,-15,1,-4,4,7,4,-53,1,-53,-8,3,3,0,9,-15]; +r = roots(p); +e = [ + 2.9977242 + - 2.0998215 + 1.0381514 * %i + - 2.0998215 - 1.0381514 * %i + - 1.1261224 + 0.7687233 * %i + - 1.1261224 - 0.7687233 * %i + 1.1176579 + 0.5115332 * %i + 1.1176579 - 0.5115332 * %i + - 0.7359417 + 0.3731641 * %i + - 0.7359417 - 0.3731641 * %i + 0.2849638 + 0.9531919 * %i + 0.2849638 - 0.9531919 * %i + 0.0897371 + 1.0370037 * %i + 0.0897371 - 1.0370037 * %i + - 0.1740455 + 0.9263179 * %i + - 0.1740455 - 0.9263179 * %i + 0.6447102 + 0.2914081 * %i + 0.6447102 - 0.2914081 * %i + ]; +e = sortmyroots(e); +r = sortmyroots(r); +assert_close ( r, e, 1.e-6 ); +// Failed on Mac, on Windows +p=[1,1,-7,-35,1,-4,4,7,4,-88,1,-88,-8,3,3,0,9,-35]; +r = roots(p); +e = [ + 3.6133489 + - 2.3323533 + 2.0888127 * %i + - 2.3323533 - 2.0888127 * %i + 1.0856792 + 0.5138318 * %i + 1.0856792 - 0.5138318 * %i + - 1.1030013 + 0.6108696 * %i + - 1.1030013 - 0.6108696 * %i + 0.3226838 + 0.9451270 * %i + 0.3226838 - 0.9451270 * %i + 0.0250044 + 1.0210451 * %i + 0.0250044 - 1.0210451 * %i + - 0.2556563 + 0.9467085 * %i + - 0.2556563 - 0.9467085 * %i + - 0.7512303 + 0.3765797 * %i + - 0.7512303 - 0.3765797 * %i + 0.7021994 + 0.3415821 * %i + 0.7021994 - 0.3415821 * %i +]; +e = sortmyroots(e); +r = sortmyroots(r); +assert_close ( r, e, 1.e-6 ); +// Failed on Linux +p=[1,1,-7,-80,1,-4,4,7,4,-27,1,-27,-8,3,3,0,9,-80]; +r = roots(p); +e = [ + - 2.7595524 + 3.1924496 * %i + - 2.7595524 - 3.1924496 * %i + 4.5006465 + - 0.9689444 + 0.2683252 * %i + - 0.9689444 - 0.2683252 * %i + - 0.8111357 + 0.6166997 * %i + - 0.8111357 - 0.6166997 * %i + - 0.3893539 + 0.9194344 * %i + - 0.3893539 - 0.9194344 * %i + 0.0061369 + 1.0065796 * %i + 0.0061369 - 1.0065796 * %i + 0.4195701 + 0.9089127 * %i + 0.4195701 - 0.9089127 * %i + 0.9590394 + 0.2589039 * %i + 0.9590394 - 0.2589039 * %i + 0.7939168 + 0.5672744 * %i + 0.7939168 - 0.5672744 * %i +]; +e = sortmyroots(e); +r = sortmyroots(r); +assert_close ( r, e, 1.e-6 ); +// Failed on Windows 32 bits +p=[1,0,1,1,1,-1,-1,1,1,0,1,0,-1,-1,1,-2,0,0,1,-1,1]; +r = roots(p); +e = [ + 0.5444059 + 1.3082079 * %i + 0.5444059 - 1.3082079 * %i + - 1.0517348 + 0.2347104 * %i + - 1.0517348 - 0.2347104 * %i + - 0.5893898 + 0.9840032 * %i + - 0.5893898 - 0.9840032 * %i + - 0.8170407 + 0.5459189 * %i + - 0.8170407 - 0.5459189 * %i + - 0.6570402 + 0.7150468 * %i + - 0.6570402 - 0.7150468 * %i + 0.0129780 + 0.9748750 * %i + 0.0129780 - 0.9748750 * %i + 0.9192290 + 0.4894403 * %i + 0.9192290 - 0.4894403 * %i + 0.8691302 + 0.0832523 * %i + 0.8691302 - 0.0832523 * %i + 0.4975871 + 0.6807740 * %i + 0.4975871 - 0.6807740 * %i + 0.2718754 + 0.7528695 * %i + 0.2718754 - 0.7528695 * %i +]; +e = sortmyroots(e); +r = sortmyroots(r); +assert_close ( r, e, 1.e-6 ); +// A loop on several polynomials +for i=-100:100 + if ( modulo(i,20)==0 ) then + mprintf("i=%d\n",i); + end + for j=-100:100 + p=[1 1 -7 j 1 -4 4 7 4 i 1 i -8 3 3 0 9 j]; + roots(p); + end; +end; +i=-100 +i=-80 +i=-60 +i=-40 +i=-20 +i=0 +i=20 +i=40 +i=60 +i=80 +i=100 +// A loop on random polynomials. +// The coefficients are integers +for i = 1:3000 + if ( modulo(i,1000)==0 ) then + mprintf("i=%d\n",i); + end + p = [1 round(4*rand(1,20)-2)]; + roots(p); +end +i=1000 +i=2000 +i=3000 diff --git a/modules/polynomials/tests/nonreg_tests/bug_7101.tst b/modules/polynomials/tests/nonreg_tests/bug_7101.tst new file mode 100755 index 000000000..e9e34a72d --- /dev/null +++ b/modules/polynomials/tests/nonreg_tests/bug_7101.tst @@ -0,0 +1,271 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2011 - DIGITEO - Michael Baudin +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= + +// <-- CLI SHELL MODE --> + +// <-- Non-regression test for bug 7101 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=7101 +// +// <-- Short Description --> +// The roots / Jenkins-Traub algorithm does not produce the roots, sometimes. +// The solution is to use the eigenvalues of the companion matrix. + +// +// sort_merge_comparison -- +// Returns -1 if x < y, +// returns 0 if x==y, +// returns +1 if x > y +// +function order = sort_merge_comparison ( x , y ) + if x < y then + order = -1 + elseif x==y then + order = 0 + else + order = 1 + end +endfunction + +// +// sort_merge -- +// Returns the sorted array x. +// Arguments +// x : the array to sort +// compfun : the comparison function +// Bruno Pincon +// "quelques tests de rapidit´e entre diff´erents logiciels matriciels" +// Modified by Michael Baudin to manage a comparison function +// +function [x] = sort_merge ( varargin ) + [lhs,rhs]=argn(); + if rhs<>1 & rhs<>2 then + errmsg = sprintf("Unexpected number of arguments : %d provided while 1 or 2 are expected.",rhs); + error(errmsg) + end + // Get the array x + x = varargin(1); + // Get the comparison function compfun + if rhs==1 then + compfun = sort_merge_comparison; + else + compfun = varargin(2); + end + // Proceed... + n = length(x) + if n > 1 then + m = floor(n/2); + p = n-m + x1 = sort_merge ( x(1:m) , compfun ) + x2 = sort_merge ( x(m+1:n) , compfun ) + i = 1; + i1 = 1; + i2 = 1; + for i = 1:n + order = compfun ( x1(i1) , x2(i2) ); + if order<=0 then + x(i) = x1(i1) + i1 = i1+1 + if (i1 > m) then + x(i+1:n) = x2(i2:p) + break + end + else + x(i) = x2(i2) + i2 = i2+1 + if (i2 > p) then + x(i+1:n) = x1(i1:m) + break + end + end + end + end +endfunction + +// +// compare_complexrealimag -- +// Returns -1 if a < b, +// returns 0 if a==b, +// returns +1 if a > b +// Compare first by real parts, then by imaginary parts. +// +function order = compare_complexrealimag ( a , b ) + ar = real(a) + br = real(b) + if ar < br then + order = -1 + elseif ar > br then + order = 1 + else + ai = imag(a) + bi = imag(b) + if ai < bi then + order = -1 + elseif ai == bi then + order = 0 + else + order = 1 + end + end +endfunction + +// +// assert_close -- +// Returns 1 if the two real matrices computed and expected are close, +// i.e. if the relative distance between computed and expected is lesser than epsilon. +// Arguments +// computed, expected : the two matrices to compare +// epsilon : a small number +// +function flag = assert_close ( computed, expected, epsilon ) + if expected==0.0 then + shift = norm(computed-expected); + else + shift = norm(computed-expected)/norm(expected); + end + if shift < epsilon then + flag = 1; + else + flag = 0; + end + if flag <> 1 then pause,end +endfunction + +function y = sortmyroots(x) + // Sort the roots of a polynomial with a customized + // complex-aware sorting algorithm. + y = sort_merge ( x , compare_complexrealimag ); +endfunction + +// Failed on Windows 32 bits +p = [1,1,-7,-15,1,-4,4,7,4,-53,1,-53,-8,3,3,0,9,-15]; +r = roots(p); +e = [ + 2.9977242 + - 2.0998215 + 1.0381514 * %i + - 2.0998215 - 1.0381514 * %i + - 1.1261224 + 0.7687233 * %i + - 1.1261224 - 0.7687233 * %i + 1.1176579 + 0.5115332 * %i + 1.1176579 - 0.5115332 * %i + - 0.7359417 + 0.3731641 * %i + - 0.7359417 - 0.3731641 * %i + 0.2849638 + 0.9531919 * %i + 0.2849638 - 0.9531919 * %i + 0.0897371 + 1.0370037 * %i + 0.0897371 - 1.0370037 * %i + - 0.1740455 + 0.9263179 * %i + - 0.1740455 - 0.9263179 * %i + 0.6447102 + 0.2914081 * %i + 0.6447102 - 0.2914081 * %i + ]; +e = sortmyroots(e); +r = sortmyroots(r); +assert_close ( r, e, 1.e-6 ); + +// Failed on Mac, on Windows +p=[1,1,-7,-35,1,-4,4,7,4,-88,1,-88,-8,3,3,0,9,-35]; +r = roots(p); +e = [ + 3.6133489 + - 2.3323533 + 2.0888127 * %i + - 2.3323533 - 2.0888127 * %i + 1.0856792 + 0.5138318 * %i + 1.0856792 - 0.5138318 * %i + - 1.1030013 + 0.6108696 * %i + - 1.1030013 - 0.6108696 * %i + 0.3226838 + 0.9451270 * %i + 0.3226838 - 0.9451270 * %i + 0.0250044 + 1.0210451 * %i + 0.0250044 - 1.0210451 * %i + - 0.2556563 + 0.9467085 * %i + - 0.2556563 - 0.9467085 * %i + - 0.7512303 + 0.3765797 * %i + - 0.7512303 - 0.3765797 * %i + 0.7021994 + 0.3415821 * %i + 0.7021994 - 0.3415821 * %i +]; +e = sortmyroots(e); +r = sortmyroots(r); +assert_close ( r, e, 1.e-6 ); + +// Failed on Linux +p=[1,1,-7,-80,1,-4,4,7,4,-27,1,-27,-8,3,3,0,9,-80]; +r = roots(p); +e = [ + - 2.7595524 + 3.1924496 * %i + - 2.7595524 - 3.1924496 * %i + 4.5006465 + - 0.9689444 + 0.2683252 * %i + - 0.9689444 - 0.2683252 * %i + - 0.8111357 + 0.6166997 * %i + - 0.8111357 - 0.6166997 * %i + - 0.3893539 + 0.9194344 * %i + - 0.3893539 - 0.9194344 * %i + 0.0061369 + 1.0065796 * %i + 0.0061369 - 1.0065796 * %i + 0.4195701 + 0.9089127 * %i + 0.4195701 - 0.9089127 * %i + 0.9590394 + 0.2589039 * %i + 0.9590394 - 0.2589039 * %i + 0.7939168 + 0.5672744 * %i + 0.7939168 - 0.5672744 * %i +]; +e = sortmyroots(e); +r = sortmyroots(r); +assert_close ( r, e, 1.e-6 ); + +// Failed on Windows 32 bits +p=[1,0,1,1,1,-1,-1,1,1,0,1,0,-1,-1,1,-2,0,0,1,-1,1]; +r = roots(p); +e = [ + 0.5444059 + 1.3082079 * %i + 0.5444059 - 1.3082079 * %i + - 1.0517348 + 0.2347104 * %i + - 1.0517348 - 0.2347104 * %i + - 0.5893898 + 0.9840032 * %i + - 0.5893898 - 0.9840032 * %i + - 0.8170407 + 0.5459189 * %i + - 0.8170407 - 0.5459189 * %i + - 0.6570402 + 0.7150468 * %i + - 0.6570402 - 0.7150468 * %i + 0.0129780 + 0.9748750 * %i + 0.0129780 - 0.9748750 * %i + 0.9192290 + 0.4894403 * %i + 0.9192290 - 0.4894403 * %i + 0.8691302 + 0.0832523 * %i + 0.8691302 - 0.0832523 * %i + 0.4975871 + 0.6807740 * %i + 0.4975871 - 0.6807740 * %i + 0.2718754 + 0.7528695 * %i + 0.2718754 - 0.7528695 * %i +]; +e = sortmyroots(e); +r = sortmyroots(r); +assert_close ( r, e, 1.e-6 ); + +// A loop on several polynomials +for i=-100:100 + if ( modulo(i,20)==0 ) then + mprintf("i=%d\n",i); + end + for j=-100:100 + p=[1 1 -7 j 1 -4 4 7 4 i 1 i -8 3 3 0 9 j]; + roots(p); + end; +end; + +// A loop on random polynomials. +// The coefficients are integers +for i = 1:3000 + if ( modulo(i,1000)==0 ) then + mprintf("i=%d\n",i); + end + p = [1 round(4*rand(1,20)-2)]; + roots(p); +end diff --git a/modules/polynomials/tests/unit_tests/derivat.dia.ref b/modules/polynomials/tests/unit_tests/derivat.dia.ref new file mode 100755 index 000000000..1aa1ff6e2 --- /dev/null +++ b/modules/polynomials/tests/unit_tests/derivat.dia.ref @@ -0,0 +1,20 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2013 - S/E - Sylvestre Ledru +// Copyright (C) 2013 - Alex Carneiro +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +s=poly(0,'s'); +assert_checkequal(derivat(1/s), -1/s^2); +p1 = poly([1 -2 1], 'x', 'coeff'); +x=poly(0,'x'); +assert_checkequal(derivat(p1),-2 + 2*x); +p2 = poly([1 -4 2], 'x', 'coeff'); +assert_checkequal(derivat(p2),-4 + 4*x); +p3 = poly(ones(1, 10), 'x', 'coeff'); +assert_checkequal(derivat(p3), 1+2*x+3*x^2+4*x^3+5*x^4+6*x^5+7*x^6+8*x^7+9*x^8); +p4 = poly([-1 1], 'x', 'roots'); +assert_checkequal(derivat(p4), 2*x); +s = %s; p5 = s^{-1} + 2 + 3*s; +assert_checkequal(derivat(p5),(-1+3*s^2)/s^2); diff --git a/modules/polynomials/tests/unit_tests/derivat.tst b/modules/polynomials/tests/unit_tests/derivat.tst new file mode 100755 index 000000000..b395e2db6 --- /dev/null +++ b/modules/polynomials/tests/unit_tests/derivat.tst @@ -0,0 +1,25 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2013 - S/E - Sylvestre Ledru +// Copyright (C) 2013 - Alex Carneiro +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +s=poly(0,'s'); +assert_checkequal(derivat(1/s), -1/s^2); + +p1 = poly([1 -2 1], 'x', 'coeff'); +x=poly(0,'x'); +assert_checkequal(derivat(p1),-2 + 2*x); + +p2 = poly([1 -4 2], 'x', 'coeff'); +assert_checkequal(derivat(p2),-4 + 4*x); + +p3 = poly(ones(1, 10), 'x', 'coeff'); +assert_checkequal(derivat(p3), 1+2*x+3*x^2+4*x^3+5*x^4+6*x^5+7*x^6+8*x^7+9*x^8); + +p4 = poly([-1 1], 'x', 'roots'); +assert_checkequal(derivat(p4), 2*x); + +s = %s; p5 = s^{-1} + 2 + 3*s; +assert_checkequal(derivat(p5),(-1+3*s^2)/s^2); diff --git a/modules/polynomials/tests/unit_tests/detr.dia.ref b/modules/polynomials/tests/unit_tests/detr.dia.ref new file mode 100755 index 000000000..6960835d9 --- /dev/null +++ b/modules/polynomials/tests/unit_tests/detr.dia.ref @@ -0,0 +1,52 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2012 - Scilab Enterprises - Adeline CARNIS +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// <-- CLI SHELL MODE --> +// unit tests for detr function +// ============================================================================= +assert_checkfalse(execstr("detr()" ,"errcatch") == 0); +refMsg = msprintf(_("%s: Wrong number of input argument: %d expected.\n"), "detr", 1); +assert_checkerror("detr()", refMsg); +assert_checkfalse(execstr("detr(""r"")" ,"errcatch") == 0); +refMsg = msprintf(_("%s: Wrong type for input argument #%d: A floating point number or polynomial or rational fraction array expected.\n"), "detr", 1); +assert_checkerror("detr(""r"")", refMsg); +assert_checkfalse(execstr("detr([1;2])" ,"errcatch") == 0); +refMsg = msprintf(_("%s: Wrong size for input argument #%d: A square matrix expected.\n"), "detr", 1); +assert_checkerror("detr([1;2])", refMsg); +A = [1 1;1 2]; +d = detr(A); +assert_checkequal(d, 1); +assert_checkequal(d, det(A)); +A = %i*A; +d = detr(A); +assert_checkequal(d, complex(-1, 0)); +assert_checkequal(d, det(A)); +A = [1 3 5;2 3 4;8 4 9]; +d = detr(A); +assert_checkequal(d, -27); +assert_checkequal(d, det(A)); +A= A-%i; +d = detr(A); +assert_checkequal(d, complex(-27,9)); +assert_checkalmostequal(d, det(A), [], %eps); +A = [1+%s 1; 1 2+%s]; +d = detr(A); +assert_checkequal(d, 1+3*%s+%s^2); +assert_checkequal(d, det(A)); +A = [1*%s 3 5*%s^2;2 3*%s 4; 8*%s^3 4*%s^2 9*%s]; +d = detr(A); +assert_checkequal(d, -54*%s+107*%s^3+40*%s^4-120*%s^6); +assert_checkalmostequal(coeff(d), coeff(det(A)), [], %eps); +A = [1/%s 1; 1 2/%s]; +d = detr(A); +assert_checkequal(d, (2-%s^2)/%s^2); +assert_checkequal(d, det(A)); +A = [1/%s 3 5/%s^2;2 3/%s 4; 8/%s^3 4/%s^2 9/%s]; +d = detr(A); +assert_checkequal(d, (-120 +40*%s^2+107*%s^3-54*%s^5)/%s^6); +d2 = det(A); +assert_checkalmostequal(coeff(d.num), coeff(d2.num), [], %eps); +assert_checkalmostequal(coeff(d.den), coeff(d2.den), [], %eps); diff --git a/modules/polynomials/tests/unit_tests/detr.tst b/modules/polynomials/tests/unit_tests/detr.tst new file mode 100755 index 000000000..7d9599add --- /dev/null +++ b/modules/polynomials/tests/unit_tests/detr.tst @@ -0,0 +1,65 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2012 - Scilab Enterprises - Adeline CARNIS +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= + +// <-- CLI SHELL MODE --> + +// unit tests for detr function +// ============================================================================= + +assert_checkfalse(execstr("detr()" ,"errcatch") == 0); +refMsg = msprintf(_("%s: Wrong number of input argument: %d expected.\n"), "detr", 1); +assert_checkerror("detr()", refMsg); + +assert_checkfalse(execstr("detr(""r"")" ,"errcatch") == 0); +refMsg = msprintf(_("%s: Wrong type for input argument #%d: A floating point number or polynomial or rational fraction array expected.\n"), "detr", 1); +assert_checkerror("detr(""r"")", refMsg); + +assert_checkfalse(execstr("detr([1;2])" ,"errcatch") == 0); +refMsg = msprintf(_("%s: Wrong size for input argument #%d: A square matrix expected.\n"), "detr", 1); +assert_checkerror("detr([1;2])", refMsg); + +A = [1 1;1 2]; +d = detr(A); +assert_checkequal(d, 1); +assert_checkequal(d, det(A)); + +A = %i*A; +d = detr(A); +assert_checkequal(d, complex(-1, 0)); +assert_checkequal(d, det(A)); + +A = [1 3 5;2 3 4;8 4 9]; +d = detr(A); +assert_checkequal(d, -27); +assert_checkequal(d, det(A)); + +A= A-%i; +d = detr(A); +assert_checkequal(d, complex(-27,9)); +assert_checkalmostequal(d, det(A), [], %eps); + +A = [1+%s 1; 1 2+%s]; +d = detr(A); +assert_checkequal(d, 1+3*%s+%s^2); +assert_checkequal(d, det(A)); + +A = [1*%s 3 5*%s^2;2 3*%s 4; 8*%s^3 4*%s^2 9*%s]; +d = detr(A); +assert_checkequal(d, -54*%s+107*%s^3+40*%s^4-120*%s^6); +assert_checkalmostequal(coeff(d), coeff(det(A)), [], %eps); + +A = [1/%s 1; 1 2/%s]; +d = detr(A); +assert_checkequal(d, (2-%s^2)/%s^2); +assert_checkequal(d, det(A)); + +A = [1/%s 3 5/%s^2;2 3/%s 4; 8/%s^3 4/%s^2 9/%s]; +d = detr(A); +assert_checkequal(d, (-120 +40*%s^2+107*%s^3-54*%s^5)/%s^6); +d2 = det(A); +assert_checkalmostequal(coeff(d.num), coeff(d2.num), [], %eps); +assert_checkalmostequal(coeff(d.den), coeff(d2.den), [], %eps); diff --git a/modules/polynomials/tests/unit_tests/horner.dia.ref b/modules/polynomials/tests/unit_tests/horner.dia.ref new file mode 100755 index 000000000..acef3c35d --- /dev/null +++ b/modules/polynomials/tests/unit_tests/horner.dia.ref @@ -0,0 +1,72 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2013 - CNES - Alain Lamy +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// <-- CLI SHELL MODE --> +// -------------------------------- +// p = polynomial +s=poly(0,"s"); +p0 = [1+s+3*s^2]; +p = p0; +r1 = horner(p,[1]); +assert_checkequal(r1, 5); +r1 = horner(p,[2]); +assert_checkequal(r1, 15); +r1 = horner(p,[1,2]); +assert_checkequal(r1, [5 15]); +r1 = horner(p,[3,4]); +assert_checkequal(r1, [31 53]); +r1 = horner(p,[1,2;3,4]); +assert_checkequal(r1, [5,15;31,53]); +// -------------------------------- +// p = row vector +p = [p0,p0^2]; +r1 = horner(p,[1]); +assert_checkequal(r1, [5 25]); +r1 = horner(p,[2]); +assert_checkequal(r1, [15 225]); +r1 = horner(p,[1,2]); +assert_checkequal(r1, [5,15,25,225]); +r1 = horner(p,[3,4]); +assert_checkequal(r1, [31,53,961,2809]); +r1 = horner(p,[1,2;3,4]); +assert_checkequal(r1, [5,15,25,225;31,53,961,2809]); +// -------------------------------- +// p = column vector +p = [p0;p0^2]; +r1 = horner(p,[1]); +assert_checkequal(r1, [5; 25]); +r1 = horner(p,[1,2]); +assert_checkequal(r1, [5,15;25,225]); +r1 = horner(p,[3,4]); +assert_checkequal(r1, [31,53;961,2809]); +r1 = horner(p,[1,2;3,4]); +assert_checkequal(r1, [5,15;31,53;25,225;961,2809]); +// -------------------------------- +// p = matrix +p = [p0,p0^2; p0, p0^3; p0, p0^4]; +r1 = horner(p,[1]); +assert_checkequal(r1, [5,25;5,125;5,625]); +r1 = horner(p,[2]); +assert_checkequal(r1, [15,225;15,3375;15,50625]); +r1 = horner(p,[1,2]); +assert_checkequal(r1, [5,15,25,225;5,15,125,3375;5,15,625,50625]); +r1 = horner(p,[3,4]); +assert_checkequal(r1, [31,53,961,2809;31,53,29791,148877;31,53,923521,7890481]); +r1 = horner(p,[1,2;3,4]); +assert_checkequal(r1, [5,15,25,225;31,53,961,2809;5,15,125,3375;31,53,29791,148877;5,15,625,50625;31,53,923521,7890481]); +// -------------------------------- +// p = rational +p = (1 + p0 ) / (2 + p0^2 + p0^3); +r1 = horner(p,[1]); +assert_checkalmostequal(r1, 0.0394737, 10^-6); +r1 = horner(p,[2]); +assert_checkalmostequal(r1, 0.0044420, 10^-5); +r1 = horner(p,[1,2]); +assert_checkalmostequal(r1, [0.0394737,0.0044420], 10^-5); +r1 = horner(p,[3,4]); +assert_checkalmostequal(r1, [0.0010405,0.0003560], 10^-4); +r1 = horner(p,[1,2;3,4]); +assert_checkalmostequal(r1, [0.0394737,0.0044420;0.0010405,0.0003560], 10^-4); diff --git a/modules/polynomials/tests/unit_tests/horner.tst b/modules/polynomials/tests/unit_tests/horner.tst new file mode 100755 index 000000000..0c8a06cd3 --- /dev/null +++ b/modules/polynomials/tests/unit_tests/horner.tst @@ -0,0 +1,105 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2013 - CNES - Alain Lamy +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= + +// <-- CLI SHELL MODE --> + +// -------------------------------- +// p = polynomial +s=poly(0,"s"); +p0 = [1+s+3*s^2]; +p = p0; + +r1 = horner(p,[1]); +assert_checkequal(r1, 5); + +r1 = horner(p,[2]); +assert_checkequal(r1, 15); + +r1 = horner(p,[1,2]); +assert_checkequal(r1, [5 15]); + +r1 = horner(p,[3,4]); +assert_checkequal(r1, [31 53]); + +r1 = horner(p,[1,2;3,4]); +assert_checkequal(r1, [5,15;31,53]); + + +// -------------------------------- +// p = row vector +p = [p0,p0^2]; + +r1 = horner(p,[1]); +assert_checkequal(r1, [5 25]); + +r1 = horner(p,[2]); +assert_checkequal(r1, [15 225]); + +r1 = horner(p,[1,2]); +assert_checkequal(r1, [5,15,25,225]); + +r1 = horner(p,[3,4]); +assert_checkequal(r1, [31,53,961,2809]); + + +r1 = horner(p,[1,2;3,4]); +assert_checkequal(r1, [5,15,25,225;31,53,961,2809]); + +// -------------------------------- +// p = column vector +p = [p0;p0^2]; + +r1 = horner(p,[1]); +assert_checkequal(r1, [5; 25]); + +r1 = horner(p,[1,2]); +assert_checkequal(r1, [5,15;25,225]); + +r1 = horner(p,[3,4]); +assert_checkequal(r1, [31,53;961,2809]); + +r1 = horner(p,[1,2;3,4]); +assert_checkequal(r1, [5,15;31,53;25,225;961,2809]); + +// -------------------------------- +// p = matrix +p = [p0,p0^2; p0, p0^3; p0, p0^4]; + +r1 = horner(p,[1]); +assert_checkequal(r1, [5,25;5,125;5,625]); + +r1 = horner(p,[2]); +assert_checkequal(r1, [15,225;15,3375;15,50625]); + +r1 = horner(p,[1,2]); +assert_checkequal(r1, [5,15,25,225;5,15,125,3375;5,15,625,50625]); + +r1 = horner(p,[3,4]); +assert_checkequal(r1, [31,53,961,2809;31,53,29791,148877;31,53,923521,7890481]); + +r1 = horner(p,[1,2;3,4]); +assert_checkequal(r1, [5,15,25,225;31,53,961,2809;5,15,125,3375;31,53,29791,148877;5,15,625,50625;31,53,923521,7890481]); + +// -------------------------------- +// p = rational +p = (1 + p0 ) / (2 + p0^2 + p0^3); + +r1 = horner(p,[1]); +assert_checkalmostequal(r1, 0.0394737, 10^-6); + +r1 = horner(p,[2]); +assert_checkalmostequal(r1, 0.0044420, 10^-5); + +r1 = horner(p,[1,2]); +assert_checkalmostequal(r1, [0.0394737,0.0044420], 10^-5); + +r1 = horner(p,[3,4]); +assert_checkalmostequal(r1, [0.0010405,0.0003560], 10^-4); + +r1 = horner(p,[1,2;3,4]); +assert_checkalmostequal(r1, [0.0394737,0.0044420;0.0010405,0.0003560], 10^-4); + diff --git a/modules/polynomials/tests/unit_tests/lcm.dia.ref b/modules/polynomials/tests/unit_tests/lcm.dia.ref new file mode 100755 index 000000000..6a7b4bc2a --- /dev/null +++ b/modules/polynomials/tests/unit_tests/lcm.dia.ref @@ -0,0 +1,19 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2013 - Scilab Enterprises - Bruno JOFRET +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// <-- CLI SHELL MODE --> +s=poly(0,'s'); +p=[s,s*(s+1)^2,s^2*(s+2)]; +[pp,fact]=lcm(p); +assert_checkequal(pp, s^5+4*s^4+5*s^3+2*s^2); +assert_checkequal(fact, [2*s+5*s^2+4*s^3+s^4, 2*s+s^2, 1+2*s+s^2]); +V=int32([2^2*3^5, 2^3*3^2,2^2*3^4*5]); +assert_checkequal(lcm(V), int32(9720)); +// Interger Overflow +V = int32([59356 44517]); +assert_checkequal(lcm(V), int32(178068)); +V = int32([50000 50000]); +assert_checkequal(lcm(V), int32(50000)); diff --git a/modules/polynomials/tests/unit_tests/lcm.tst b/modules/polynomials/tests/unit_tests/lcm.tst new file mode 100755 index 000000000..9c696aeee --- /dev/null +++ b/modules/polynomials/tests/unit_tests/lcm.tst @@ -0,0 +1,26 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2013 - Scilab Enterprises - Bruno JOFRET +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= + +// <-- CLI SHELL MODE --> + + +s=poly(0,'s'); +p=[s,s*(s+1)^2,s^2*(s+2)]; +[pp,fact]=lcm(p); + +assert_checkequal(pp, s^5+4*s^4+5*s^3+2*s^2); +assert_checkequal(fact, [2*s+5*s^2+4*s^3+s^4, 2*s+s^2, 1+2*s+s^2]); + +V=int32([2^2*3^5, 2^3*3^2,2^2*3^4*5]); +assert_checkequal(lcm(V), int32(9720)); + +// Interger Overflow +V = int32([59356 44517]); +assert_checkequal(lcm(V), int32(178068)); + +V = int32([50000 50000]); +assert_checkequal(lcm(V), int32(50000));
\ No newline at end of file diff --git a/modules/polynomials/tests/unit_tests/lcmdiag.dia.ref b/modules/polynomials/tests/unit_tests/lcmdiag.dia.ref new file mode 100755 index 000000000..cdf199b90 --- /dev/null +++ b/modules/polynomials/tests/unit_tests/lcmdiag.dia.ref @@ -0,0 +1,31 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2013 - Scilab Enterprises - Paul Bignier +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// <-- CLI SHELL MODE --> +// <-- ENGLISH IMPOSED --> +// Run with test_run('polynomials', 'lcmdiag', ['no_check_error_output']) +// Normal behavior of the function +s = poly(0, 's'); +H = [1/s, (s+2)/s/(s+1)^2; 1/(s^2*(s+2)), 2/(s+2)]; +[N, D] = lcmdiag(H); +computed = N*D^(-1); +expected = H; +assert_checkalmostequal(coeff(computed.num), coeff(expected.num)); +assert_checkalmostequal(coeff(computed.den), coeff(expected.den)); +// Trying to call lcmdiag with wrong types +H = ["string"]; +refMsg = msprintf(_("%s: Wrong type for argument #%d: Real Matrix of Polynomials expected.\n"), "lcmdiag", 1); +assert_checkerror("[N, D] = lcmdiag(H);", refMsg); +H = [1 2.3]; +refMsg2 = msprintf(_("%s: Wrong type for argument #%d: Real Matrix of Polynomials expected.\n"), "lcmdiag", 1); +assert_checkerror("[N, D] = lcmdiag(H);", refMsg2); +H = [1/s, (s+2)/s/(s+1)^2; 1/(s^2*(s+2)), 2/(s+2)]; +flag = [1 2.3]; +refMsg3 = msprintf(_("%s: Wrong type for argument #%d: String expected.\n"), "lcmdiag", 2); +assert_checkerror("[N, D] = lcmdiag(H, flag);", refMsg3); +flag = "rows"; +refMsg4 = msprintf(_("%s: Wrong value for argument #%d: %s or %s expected.\n"), "lcmdiag", 2, "row", "col"); +assert_checkerror("[N, D] = lcmdiag(H, flag);", refMsg4); diff --git a/modules/polynomials/tests/unit_tests/lcmdiag.tst b/modules/polynomials/tests/unit_tests/lcmdiag.tst new file mode 100755 index 000000000..fd2804902 --- /dev/null +++ b/modules/polynomials/tests/unit_tests/lcmdiag.tst @@ -0,0 +1,37 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2013 - Scilab Enterprises - Paul Bignier +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= + +// <-- CLI SHELL MODE --> +// <-- ENGLISH IMPOSED --> + +// Run with test_run('polynomials', 'lcmdiag', ['no_check_error_output']) + +// Normal behavior of the function +s = poly(0, 's'); +H = [1/s, (s+2)/s/(s+1)^2; 1/(s^2*(s+2)), 2/(s+2)]; +[N, D] = lcmdiag(H); + +computed = N*D^(-1); +expected = H; + +assert_checkalmostequal(coeff(computed.num), coeff(expected.num)); +assert_checkalmostequal(coeff(computed.den), coeff(expected.den)); + +// Trying to call lcmdiag with wrong types +H = ["string"]; +refMsg = msprintf(_("%s: Wrong type for argument #%d: Real Matrix of Polynomials expected.\n"), "lcmdiag", 1); +assert_checkerror("[N, D] = lcmdiag(H);", refMsg); +H = [1 2.3]; +refMsg2 = msprintf(_("%s: Wrong type for argument #%d: Real Matrix of Polynomials expected.\n"), "lcmdiag", 1); +assert_checkerror("[N, D] = lcmdiag(H);", refMsg2); +H = [1/s, (s+2)/s/(s+1)^2; 1/(s^2*(s+2)), 2/(s+2)]; +flag = [1 2.3]; +refMsg3 = msprintf(_("%s: Wrong type for argument #%d: String expected.\n"), "lcmdiag", 2); +assert_checkerror("[N, D] = lcmdiag(H, flag);", refMsg3); +flag = "rows"; +refMsg4 = msprintf(_("%s: Wrong value for argument #%d: %s or %s expected.\n"), "lcmdiag", 2, "row", "col"); +assert_checkerror("[N, D] = lcmdiag(H, flag);", refMsg4); diff --git a/modules/polynomials/tests/unit_tests/pol2str.dia.ref b/modules/polynomials/tests/unit_tests/pol2str.dia.ref new file mode 100755 index 000000000..5bf724c4f --- /dev/null +++ b/modules/polynomials/tests/unit_tests/pol2str.dia.ref @@ -0,0 +1,20 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2011 - DIGITEO - Allan CORNET +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// <-- CLI SHELL MODE --> +assert_checkequal(pol2str(%z), "z"); +assert_checkequal(pol2str([%z %z]), ["z", "z"]); +p = poly ([1, 2, 3], "x","coeff"); +P = [p, p ,p ; p, p, p]; +R = pol2str(P); +REF = ["1+2*x+3*x^2", "1+2*x+3*x^2", "1+2*x+3*x^2"; + "1+2*x+3*x^2", "1+2*x+3*x^2", "1+2*x+3*x^2"]; +assert_checkequal(R, REF); +msgerror = msprintf(gettext("%s: Wrong type for input argument #%d: Polynomial expected.\n"), "pol2str", 1); +assert_checkerror("pol2str(1)", msgerror); +assert_checkequal(pol2str(%i*%z),"%i*z"); +ref = hypermat([1 1 2], ["1+0.8497452*z";"1+0.685731*z"]); +assert_checktrue(and(pol2str(1+hypermat([1 1 2], [0.8497452;0.6857310])*%z) == ref)); diff --git a/modules/polynomials/tests/unit_tests/pol2str.tst b/modules/polynomials/tests/unit_tests/pol2str.tst new file mode 100755 index 000000000..4ac003f25 --- /dev/null +++ b/modules/polynomials/tests/unit_tests/pol2str.tst @@ -0,0 +1,28 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2011 - DIGITEO - Allan CORNET +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= + +// <-- CLI SHELL MODE --> + +assert_checkequal(pol2str(%z), "z"); +assert_checkequal(pol2str([%z %z]), ["z", "z"]); + +p = poly ([1, 2, 3], "x","coeff"); +P = [p, p ,p ; p, p, p]; +R = pol2str(P); +REF = ["1+2*x+3*x^2", "1+2*x+3*x^2", "1+2*x+3*x^2"; +"1+2*x+3*x^2", "1+2*x+3*x^2", "1+2*x+3*x^2"]; + +assert_checkequal(R, REF); + +msgerror = msprintf(gettext("%s: Wrong type for input argument #%d: Polynomial expected.\n"), "pol2str", 1); +assert_checkerror("pol2str(1)", msgerror); + +assert_checkequal(pol2str(%i*%z),"%i*z"); +ref = hypermat([1 1 2], ["1+0.8497452*z";"1+0.685731*z"]); +assert_checktrue(and(pol2str(1+hypermat([1 1 2], [0.8497452;0.6857310])*%z) == ref)); + + diff --git a/modules/polynomials/tests/unit_tests/polelm.dia.ref b/modules/polynomials/tests/unit_tests/polelm.dia.ref new file mode 100755 index 000000000..2d421fc59 --- /dev/null +++ b/modules/polynomials/tests/unit_tests/polelm.dia.ref @@ -0,0 +1,522 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) ????-2008 - INRIA +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// <-- CLI SHELL MODE --> +//poly (coeff) +v=[1 2 3];nam='s';job='c';p=1+2*%s+3*%s^2; +if poly(v,'s','c')<>p then bugmes();quit;end +if poly(v+0,'s','c')<>p then bugmes();quit;end +if poly(v,nam,'c')<>p then bugmes();quit;end +if poly(v+0,nam,'c')<>p then bugmes();quit;end +if poly(v,'s',job)<>p then bugmes();quit;end +if poly(v+0,'s',job)<>p then bugmes();quit;end +if poly(v,nam,job)<>p then bugmes();quit;end +if poly(v+0,nam,job)<>p then bugmes();quit;end +v=[1+%i 2 3];p=1+%i+2*%s+3*%s^2; +if poly(v,'s','c')<>p then bugmes();quit;end +if poly(v+0,'s','c')<>p then bugmes();quit;end +if poly(v,nam,'c')<>p then bugmes();quit;end +if poly(v+0,nam,'c')<>p then bugmes();quit;end +if poly(v,'s',job)<>p then bugmes();quit;end +if poly(v+0,'s',job)<>p then bugmes();quit;end +if poly(v,nam,job)<>p then bugmes();quit;end +if poly(v+0,nam,job)<>p then bugmes();quit;end +//poly (roots) +v=[1 2 3];nam='s';job='r';p=-6+11*%s-6*%s^2+%s^3; +if poly(v,'s','r')<>p then bugmes();quit;end +if poly(v+0,'s','r')<>p then bugmes();quit;end +if poly(v,nam,'r')<>p then bugmes();quit;end +if poly(v+0,nam,'r')<>p then bugmes();quit;end +if poly(v,'s',job)<>p then bugmes();quit;end +if poly(v+0,'s',job)<>p then bugmes();quit;end +if poly(v,nam,job)<>p then bugmes();quit;end +if poly(v+0,nam,job)<>p then bugmes();quit;end +v=[1+%i 2 3];p=-6-%i*6+(11+%i*5)*%s+(-6-%i)*%s^2+%s^3; +if poly(v,'s','r')<>p then bugmes();quit;end +if poly(v+0,'s','r')<>p then bugmes();quit;end +if poly(v,nam,'r')<>p then bugmes();quit;end +if poly(v+0,nam,'r')<>p then bugmes();quit;end +if poly(v,'s',job)<>p then bugmes();quit;end +if poly(v+0,'s',job)<>p then bugmes();quit;end +if poly(v,nam,job)<>p then bugmes();quit;end +if poly(v+0,nam,job)<>p then bugmes();quit;end +v=[];p=poly(1,'s','c'); +if poly(v,'s','r')<>p then bugmes();quit;end +if poly([],'s','r')<>p then bugmes();quit;end +if poly(v,nam,'r')<>p then bugmes();quit;end +if poly([],nam,'r')<>p then bugmes();quit;end +if poly(v,'s',job)<>p then bugmes();quit;end +if poly([],'s',job)<>p then bugmes();quit;end +if poly(v,nam,job)<>p then bugmes();quit;end +if poly([],nam,job)<>p then bugmes();quit;end +//poly (caracteristic) +nam='s';a=[1 2;3 4];p=-2-5*%s+%s^2; +if norm(coeff(poly(a,'s')-p))>100*%eps then bugmes();quit;end +if norm(coeff(poly(a+0,'s')-p))>100*%eps then bugmes();quit;end +if norm(coeff(poly(a,nam)-p))>100*%eps then bugmes();quit;end +if norm(coeff(poly(a+0,nam)-p))>100*%eps then bugmes();quit;end +a=[1+%i 2;3 4];p=-2+%i*4+(-5-%i)*%s+%s^2 ; +if norm(coeff(poly(a,'s')-p))>100*%eps then bugmes();quit;end +if norm(coeff(poly(a+0,'s')-p))>100*%eps then bugmes();quit;end +if norm(coeff(poly(a,nam)-p))>100*%eps then bugmes();quit;end +if norm(coeff(poly(a+0,nam)-p))>100*%eps then bugmes();quit;end +a=[];p=poly(1,'s','c'); +if poly(a,'s')<>p then bugmes();quit;end +if poly([],'s')<>p then bugmes();quit;end +if poly(a,nam)<>p then bugmes();quit;end +if poly([],nam)<>p then bugmes();quit;end +//degree +v=[1 2 3];d=[0 0 0]; +if or(degree(v)<>d) then bugmes();quit;end +if or(degree(v+0)<>d) then bugmes();quit;end +v=[-2-5*%s+%s^2;-6+11*%s-6*%s^2+%s^3];d=[2;3]; +if or(degree(v)<>d) then bugmes();quit;end +if or(degree(v+0)<>d) then bugmes();quit;end +v=[];d=[]; +if or(degree(v)<>d) then bugmes();quit;end +if or(degree([])<>d) then bugmes();quit;end +//coeff +p=[1+2*%s;%s^3];c=[1 2 0 0;0 0 0 1];sel=[0 1 1]; +if or(coeff(p)<>c) then bugmes();quit;end +if or(coeff(p+0)<>c) then bugmes();quit;end +if or(coeff(p,sel)<>c(:,sel+1)) then bugmes();quit;end +if or(coeff(p+0,sel)<>c(:,sel+1)) then bugmes();quit;end +if or(coeff(p,sel+0)<>c(:,sel+1)) then bugmes();quit;end +if or(coeff(p+0,sel+0)<>c(:,sel+1)) then bugmes();quit;end +sel=5; +if or(coeff(p,sel+0)<>zeros(size(p,1),1)) then bugmes();quit;end +p=[1+2*%s, %s^3];c=[1 0 2 0 0 0 0 1]; +if or(coeff(p)<>c) then bugmes();quit;end +if or(coeff(p+0)<>c) then bugmes();quit;end +sel=[0 0];c=[1 0 1 0]; +if or(coeff(p,sel)<>c) then bugmes();quit;end +if or(coeff(p+0,sel)<>c) then bugmes();quit;end +if or(coeff(p,sel+0)<>c) then bugmes();quit;end +if or(coeff(p+0,sel+0)<>c) then bugmes();quit;end +p=[1+%i+2*%s;%s^3];c=[1+%i 2 0 0;0 0 0 1];sel=[0 1 1]; +if or(coeff(p)<>c) then bugmes();quit;end +if or(coeff(p+0)<>c) then bugmes();quit;end +if or(coeff(p,sel)<>c(:,sel+1)) then bugmes();quit;end +if or(coeff(p+0,sel)<>c(:,sel+1)) then bugmes();quit;end +if or(coeff(p,sel+0)<>c(:,sel+1)) then bugmes();quit;end +if or(coeff(p+0,sel+0)<>c(:,sel+1)) then bugmes();quit;end +sel=5; +if or(coeff(p,sel+0)<>zeros(size(p,1),1)) then bugmes();quit;end +p=[1+2*%s, %s^3];c=[1 0 2 0 0 0 0 1]; +if or(coeff(p)<>c) then bugmes();quit;end +if or(coeff(p+0)<>c) then bugmes();quit;end +sel=[0 0];c=[1 0 1 0]; +if or(coeff(p,sel)<>c) then bugmes();quit;end +if or(coeff(p+0,sel)<>c) then bugmes();quit;end +if or(coeff(p,sel+0)<>c) then bugmes();quit;end +if or(coeff(p+0,sel+0)<>c) then bugmes();quit;end +p=[1 2;3 4];sel=0;c=p; +if or(coeff(p)<>c) then bugmes();quit;end +if or(coeff(p+0)<>c) then bugmes();quit;end +if or(coeff(p,sel)<>c) then bugmes();quit;end +if or(coeff(p+0,sel)<>c) then bugmes();quit;end +if or(coeff(p,sel+0)<>c) then bugmes();quit;end +if or(coeff(p+0,sel+0)<>c) then bugmes();quit;end +p=[1 2;3 4];sel=[0 0];c=[p p]; +if or(coeff(p,sel)<>c) then bugmes();quit;end +if or(coeff(p+0,sel)<>c) then bugmes();quit;end +if or(coeff(p,sel+0)<>c) then bugmes();quit;end +if or(coeff(p+0,sel+0)<>c) then bugmes();quit;end +p=[1 2;3 4];sel=[0 1];c=[p 0*p]; +if or(coeff(p,sel)<>c) then bugmes();quit;end +if or(coeff(p+0,sel)<>c) then bugmes();quit;end +if or(coeff(p,sel+0)<>c) then bugmes();quit;end +if or(coeff(p+0,sel+0)<>c) then bugmes();quit;end +p=[1 2;3 4];sel=[];c=[]; +if or(coeff(p,sel)<>c) then bugmes();quit;end +if or(coeff(p+0,sel)<>c) then bugmes();quit;end +if or(coeff(p,[])<>c) then bugmes();quit;end +if or(coeff(p+0,[])<>c) then bugmes();quit;end +p=[],sel=0,c=[]; + p = + + [] + sel = + + 0. +if or(coeff(p)<>c) then bugmes();quit;end +if or(coeff([])<>c) then bugmes();quit;end +if or(coeff(p,sel)<>c) then bugmes();quit;end +if or(coeff([],sel)<>c) then bugmes();quit;end +//sum +a=[1+%s 2;-3 4;5 -6]; +if sum(a)<>3+%s then bugmes();quit;end +if sum(a+0)<>3+%s then bugmes();quit;end +if or(sum(a,1)<>[3+%s 0]) then bugmes();quit;end +if or(sum(a+0,1)<>[3+%s 0]) then bugmes();quit;end +n=1; +if or(sum(a,n)<>[3+%s 0]) then bugmes();quit;end +if or(sum(a+0,n)<>[3+%s 0]) then bugmes();quit;end +if or(sum(a,'r')<>[3+%s 0]) then bugmes();quit;end +if or(sum(a+0,'r')<>[3+%s 0]) then bugmes();quit;end +n='r'; +if or(sum(a,n)<>[3+%s 0]) then bugmes();quit;end +if or(sum(a+0,n)<>[3+%s 0]) then bugmes();quit;end +if or(sum(a,2)<>[3+%s;1;-1]) then bugmes();quit;end +if or(sum(a+0,2)<>[3+%s;1;-1]) then bugmes();quit;end +n=2; +if or(sum(a,n)<>[3+%s;1;-1]) then bugmes();quit;end +if or(sum(a+0,n)<>[3+%s;1;-1]) then bugmes();quit;end +if or(sum(a,'c')<>[3+%s;1;-1]) then bugmes();quit;end +if or(sum(a+0,'c')<>[3+%s;1;-1]) then bugmes();quit;end +n='c'; +if or(sum(a,n)<>[3+%s;1;-1]) then bugmes();quit;end +if or(sum(a+0,n)<>[3+%s;1;-1]) then bugmes();quit;end +a=[1+%s 2;-3 4;5 -6]+0*%i; +if or(sum(a)<>3+%s+0*%i) then bugmes();quit;end +if or(sum(a+0)<>3+%s+0*%i) then bugmes();quit;end +if or(sum(a,1)<>[3+%s 0]+0*%i) then bugmes();quit;end +if or(sum(a+0,1)<>[3+%s 0]+0*%i) then bugmes();quit;end +n=1; +if or(sum(a,n)<>[3+%s 0]+0*%i) then bugmes();quit;end +if or(sum(a+0,n)<>[3+%s 0]+0*%i) then bugmes();quit;end +if or(sum(a,'r')<>[3+%s 0]+0*%i) then bugmes();quit;end +if or(sum(a+0,'r')<>[3+%s 0]+0*%i) then bugmes();quit;end +n='r'; +if or(sum(a,n)<>[3+%s 0]+0*%i) then bugmes();quit;end +if or(sum(a+0,n)<>[3+%s 0]+0*%i) then bugmes();quit;end +if or(sum(a,2)<>[3+%s;1;-1]+0*%i) then bugmes();quit;end +if or(sum(a+0,2)<>[3+%s;1;-1]+0*%i) then bugmes();quit;end +n=2; +if or(sum(a,n)<>[3+%s;1;-1]+0*%i) then bugmes();quit;end +if or(sum(a+0,n)<>[3+%s;1;-1]+0*%i) then bugmes();quit;end +if or(sum(a,'c')<>[3+%s;1;-1]+0*%i) then bugmes();quit;end +if or(sum(a+0,'c')<>[3+%s;1;-1]+0*%i) then bugmes();quit;end +n='c'; +if or(sum(a,n)<>[3+%s;1;-1]+0*%i) then bugmes();quit;end +if or(sum(a+0,n)<>[3+%s;1;-1]+0*%i) then bugmes();quit;end +//prod +a=[1+%s 2;-3 4;5 -6]; +if prod(a)<>720+720*%s then bugmes();quit;end +if prod(a+0)<>720+720*%s then bugmes();quit;end +if or(prod(a,1)<>[-15-15*%s,-48]) then bugmes();quit;end +if or(prod(a+0,1)<>[-15-15*%s,-48]) then bugmes();quit;end +n=1; +if or(prod(a,n)<>[-15-15*%s,-48]) then bugmes();quit;end +if or(prod(a+0,n)<>[-15-15*%s,-48]) then bugmes();quit;end +if or(prod(a,'r')<>[-15-15*%s,-48]) then bugmes();quit;end +if or(prod(a+0,'r')<>[-15-15*%s,-48]) then bugmes();quit;end +n='r'; +if or(prod(a,n)<>[-15-15*%s,-48]) then bugmes();quit;end +if or(prod(a+0,n)<>[-15-15*%s,-48]) then bugmes();quit;end +if or(prod(a,2)<>[2+2*%s;-12;-30]) then bugmes();quit;end +if or(prod(a+0,2)<>[2+2*%s;-12;-30]) then bugmes();quit;end +n=2; +if or(prod(a,n)<>[2+2*%s;-12;-30]) then bugmes();quit;end +if or(prod(a+0,n)<>[2+2*%s;-12;-30]) then bugmes();quit;end +if or(prod(a,'c')<>[2+2*%s;-12;-30]) then bugmes();quit;end +if or(prod(a+0,'c')<>[2+2*%s;-12;-30]) then bugmes();quit;end +n='c'; +if or(prod(a,n)<>[2+2*%s;-12;-30]) then bugmes();quit;end +if or(prod(a+0,n)<>[2+2*%s;-12;-30]) then bugmes();quit;end +a=[1+%s 2;-3 4;5 -6]+0*%i; +if or(prod(a)<>720+720*%s+0*%i) then bugmes();quit;end +if or(prod(a+0)<>720+720*%s+0*%i) then bugmes();quit;end +if or(prod(a,1)<>[-15-15*%s,-48]+0*%i) then bugmes();quit;end +if or(prod(a+0,1)<>[-15-15*%s,-48]+0*%i) then bugmes();quit;end +n=1; +if or(prod(a,n)<>[-15-15*%s,-48]+0*%i) then bugmes();quit;end +if or(prod(a+0,n)<>[-15-15*%s,-48]+0*%i) then bugmes();quit;end +if or(prod(a,'r')<>[-15-15*%s,-48]+0*%i) then bugmes();quit;end +if or(prod(a+0,'r')<>[-15-15*%s,-48]+0*%i) then bugmes();quit;end +n='r'; +if or(prod(a,n)<>[-15-15*%s,-48]+0*%i) then bugmes();quit;end +if or(prod(a+0,n)<>[-15-15*%s,-48]+0*%i) then bugmes();quit;end +if or(prod(a,2)<>[2+2*%s;-12;-30]+0*%i) then bugmes();quit;end +if or(prod(a+0,2)<>[2+2*%s;-12;-30]+0*%i) then bugmes();quit;end +n=2; +if or(prod(a,n)<>[2+2*%s;-12;-30]+0*%i) then bugmes();quit;end +if or(prod(a+0,n)<>[2+2*%s;-12;-30]+0*%i) then bugmes();quit;end +if or(prod(a,'c')<>[2+2*%s;-12;-30]+0*%i) then bugmes();quit;end +if or(prod(a+0,'c')<>[2+2*%s;-12;-30]+0*%i) then bugmes();quit;end +n='c'; +if or(prod(a,n)<>[2+2*%s;-12;-30]+0*%i) then bugmes();quit;end +if or(prod(a+0,n)<>[2+2*%s;-12;-30]+0*%i) then bugmes();quit;end +//diag +a=[1+%s 2 3]; +if or(diag(a+0)<>[1+%s 0 0;0 2 0;0 0 3]) then bugmes();quit;end +if or(diag(a)<>[1+%s 0 0;0 2 0;0 0 3]) then bugmes();quit;end +if or(diag([1+%s %i 2])<>[1+%s 0 0;0 %i 0;0 0 2]) then bugmes();quit;end +a=[1+%s %i 2 ]; +if or(diag(a)<>[1+%s 0 0;0 %i 0;0 0 2]) then bugmes();quit;end +a=[1+%s 2 3 4;5 6 7 8];un=poly(1,'s','c'); +if or(diag(a)<>[1+%s;6]) then bugmes();quit;end +if or(diag(a+0)<>[1+%s;6]) then bugmes();quit;end +if or(diag(a,1)<>[2*un;7]) then bugmes();quit;end +if or(diag(a+0,1)<>[2*un;7]) then bugmes();quit;end +if or(diag(a,-1)<>[5*un]) then bugmes();quit;end +if or(diag(a+0,-1)<>[5*un]) then bugmes();quit;end +if diag(a,4)<>[] then bugmes();quit;end +a(1,1)=%i+%s; +if or(diag(a)<>[%i+%s;6]) then bugmes();quit;end +if or(diag(a+0)<>[%i+%s;6]) then bugmes();quit;end +if or(diag(a,1)<>[2*un;7]) then bugmes();quit;end +if or(diag(a+0,1)<>[2*un;7]) then bugmes();quit;end +if or(diag(a,-1)<>[5*un]) then bugmes();quit;end +if or(diag(a+0,-1)<>[5*un]) then bugmes();quit;end +if diag(a,4)<>[] then bugmes();quit;end +//triu +a=[1+%s 2 3 4;5 6 7 8];un=poly(1,'s','c'); +if or(triu(a)<>[1+%s 2 3 4;0 6 7 8]) then bugmes();quit;end +if or(triu(a+0)<>[1+%s 2 3 4;0 6 7 8]) then bugmes();quit;end +if or(triu(a,1)<>[0 2*un 3 4;0 0 7 8]) then bugmes();quit;end +if or(triu(a+0,1)<>[0 2*un 3 4;0 0 7 8]) then bugmes();quit;end +if or(triu(a,-1)<>a) then bugmes();quit;end +if or(triu(a+0,-1)<>a) then bugmes();quit;end +if or(triu(a,4)<>0*a) then bugmes();quit;end +a(1,1)=%i+%s; +if or(triu(a)<>[%i+%s 2 3 4;0 6 7 8]) then bugmes();quit;end +if or(triu(a+0)<>[%i+%s 2 3 4;0 6 7 8]) then bugmes();quit;end +if or(triu(a,1)<>[0 2*un 3 4;0 0 7 8]) then bugmes();quit;end +if or(triu(a+0,1)<>[0 2*un 3 4;0 0 7 8]) then bugmes();quit;end +if or(triu(a,-1)<>a) then bugmes();quit;end +if or(triu(a+0,-1)<>a) then bugmes();quit;end +if or(triu(a,4)<>0*a) then bugmes();quit;end +//tril +a=[1+%s 2 3 4;5 6 7 8]; +if or(tril(a)<>[1+%s 0 0 0;5 6 0 0]) then bugmes();quit;end +if or(tril(a+0)<>[1+%s 0 0 0;5 6 0 0]) then bugmes();quit;end +if or(tril(a,1)<>[1+%s 2 0 0;5 6 7 0]) then bugmes();quit;end +if or(tril(a+0,1)<>[1+%s 2 0 0;5 6 7 0]) then bugmes();quit;end +if or(tril(a,4)<>a) then bugmes();quit;end +if or(tril(a+0,4)<>a) then bugmes();quit;end +if or(tril(a,-3)<>0*a) then bugmes();quit;end +a(1,1)=%i+%s; +if or(tril(a)<>[%i+%s 0 0 0;5 6 0 0]) then bugmes();quit;end +if or(tril(a+0)<>[%i+%s 0 0 0;5 6 0 0]) then bugmes();quit;end +if or(tril(a,1)<>[%i+%s 2 0 0;5 6 7 0]) then bugmes();quit;end +if or(tril(a+0,1)<>[%i+%s 2 0 0;5 6 7 0]) then bugmes();quit;end +if or(tril(a,4)<>a) then bugmes();quit;end +if or(tril(a+0,4)<>a) then bugmes();quit;end +if or(tril(a,-3)<>0*a) then bugmes();quit;end +//simp_mode +a=%t + a = + + T +simp_mode(%t); +if simp_mode()<>%t then bugmes();quit;end +simp_mode(a); +if simp_mode()<>%t then bugmes();quit;end +[n,d]=simp(%s,%s);if n<>poly(1,'s','c')|d<>poly(1,'s','c') then bugmes();quit;end +a=%f + a = + + F +simp_mode(%f); +if simp_mode()<>%f then bugmes();quit;end +simp_mode(a); +if simp_mode()<>%f then bugmes();quit;end +[n,d]=simp(%s,%s);if n<>%s|d<>%s then bugmes();quit;end +//varn +a=1+%s; +if varn(a)<>'s' then bugmes();quit;end +if varn(a+0)<>'s' then bugmes();quit;end +if varn(a,'z')<>1+%z then bugmes();quit;end +if varn(a+0,'z')<>1+%z then bugmes();quit;end +nam='z'; +if varn(a,nam)<>1+%z then bugmes();quit;end +if varn(a+0,nam)<>1+%z then bugmes();quit;end +a=[]; +if varn(a,nam)<>[] then bugmes();quit;end +if varn([],nam)<>[] then bugmes();quit;end +//clean +a=[1 1.d-12 1.d-5 2d8+%s];un=poly(1,'s','c') + un = + + 1 +b=[1 0 1.d-5 2d8+%s]; +if or(clean(a)<>b) then bugmes();quit;end +if or(clean(a+0)<>b) then bugmes();quit;end +epsa=1.d-10; +if or(clean(a,epsa)<>b) then bugmes();quit;end +if or(clean(a+0,epsa)<>b) then bugmes();quit;end +if or(clean(a,epsa+0)<>b) then bugmes();quit;end +if or(clean(a+0,epsa+0)<>b) then bugmes();quit;end +epsr=1.d-4;b=[1 0 1.d-5 2d8*un]; +if or(clean(a,epsa,epsr)<>b) then bugmes();quit;end +if or(clean(a+0,epsa,epsr)<>b) then bugmes();quit;end +if or(clean(a,epsa+0,epsr)<>b) then bugmes();quit;end +if or(clean(a+0,epsa,epsr+0)<>b) then bugmes();quit;end +if or(clean(a,epsa+0,epsr)<>b) then bugmes();quit;end +if or(clean(a+0,epsa,epsr+0)<>b) then bugmes();quit;end +if or(clean(a,epsa+0,epsr)<>b) then bugmes();quit;end +if or(clean(a+0,epsa+0,epsr+0)<>b) then bugmes();quit;end +a=[1+%i 1.d-12 1.d-5 2d8+%s]; +b=[1+%i 0 1.d-5 2d8+%s]; +if or(clean(a)<>b) then bugmes();quit;end +if or(clean(a+0)<>b) then bugmes();quit;end +epsa=1.d-10; +if or(clean(a,epsa)<>b) then bugmes();quit;end +if or(clean(a+0,epsa)<>b) then bugmes();quit;end +if or(clean(a,epsa+0)<>b) then bugmes();quit;end +if or(clean(a+0,epsa+0)<>b) then bugmes();quit;end +epsr=1.d-5;b=[1+%i 0 1.d-5 poly([2d8,0],'s','c')]; +if or(clean(a,epsa,epsr)<>b) then bugmes();quit;end +if or(clean(a+0,epsa,epsr)<>b) then bugmes();quit;end +if or(clean(a,epsa+0,epsr)<>b) then bugmes();quit;end +if or(clean(a+0,epsa,epsr+0)<>b) then bugmes();quit;end +if or(clean(a,epsa+0,epsr)<>b) then bugmes();quit;end +if or(clean(a+0,epsa,epsr+0)<>b) then bugmes();quit;end +if or(clean(a,epsa+0,epsr)<>b) then bugmes();quit;end +if or(clean(a+0,epsa+0,epsr+0)<>b) then bugmes();quit;end +//simp +simp_mode(%t); +p=[]; +[n,d]=simp(p,p);if n<>[]|p<>[] then bugmes();quit;end +[n,d]=simp([],[]);if n<>[]|p<>[] then bugmes();quit;end +un=poly(1,'s','c');p=%s; +[n,d]=simp(p,p);if n<>un|d<>un then bugmes();quit;end +[n,d]=simp(p+0,p);if n<>un|d<>un then bugmes();quit;end +[n,d]=simp(p,p+0);if n<>un|d<>un then bugmes();quit;end +[n,d]=simp(p+0,p+0);if n<>un|d<>un then bugmes();quit;end +un=1; +[n,d]=simp(p,un);if n<>p|d<>1 then bugmes();quit;end +[n,d]=simp(p,1);if n<>p|d<>1 then bugmes();quit;end +[n,d]=simp(p+0,un);if n<>p|d<>1 then bugmes();quit;end +[n,d]=simp(p+0,1);if n<>p|d<>1 then bugmes();quit;end +[n,d]=simp(un,p);if n<>un|d<>p then bugmes();quit;end +[n,d]=simp(1,p);if n<>un|d<>p then bugmes();quit;end +[n,d]=simp(un,p+0);if n<>un|d<>p then bugmes();quit;end +[n,d]=simp(1,p+0);if n<>un|d<>p then bugmes();quit;end +p=1+%s^10;un=poly(1,'s','c') + un = + + 1 +[n,d]=simp(p,p);if n<>un|d<>un then bugmes();quit;end +[n,d]=simp(p+0,p);if n<>un|d<>un then bugmes();quit;end +[n,d]=simp(p,p+0);if n<>un|d<>un then bugmes();quit;end +[n,d]=simp(p+0,p+0);if n<>un|d<>un then bugmes();quit;end +un=1; +[n,d]=simp(p,un);if n<>p|d<>1 then bugmes();quit;end +[n,d]=simp(p,1);if n<>p|d<>1 then bugmes();quit;end +[n,d]=simp(p+0,un);if n<>p|d<>1 then bugmes();quit;end +[n,d]=simp(p+0,1);if n<>p|d<>1 then bugmes();quit;end +[n,d]=simp(un,p);if n<>un|d<>p then bugmes();quit;end +[n,d]=simp(1,p);if n<>un|d<>p then bugmes();quit;end +[n,d]=simp(un,p+0);if n<>un|d<>p then bugmes();quit;end +[n,d]=simp(1,p+0);if n<>un|d<>p then bugmes();quit;end +un=poly(1,'s','c');p=%s; +h=rlist(p,p,[]);un=rlist(poly(1,'s','c'),poly(1,'s','c'),[]); +if simp(h)<>un then bugmes();quit;end +if simp(rlist(p,p,[]))<>un then bugmes();quit;end +h=rlist(p,1,[]); +if simp(h)<>h then bugmes();quit;end +if simp(rlist(p,1,[]))<>h then bugmes();quit;end +h=rlist(1,p,[]); +if simp(h)<>h then bugmes();quit;end +if simp(rlist(1,p,[]))<>h then bugmes();quit;end +p=1+%s^10; +h=rlist(p,p,[]);un=rlist(poly(1,'s','c'),poly(1,'s','c'),[]); +if simp(h)<>un then bugmes();quit;end +if simp(rlist(p,p,[]))<>un then bugmes();quit;end +h=rlist(p,1,[]); +if simp(h)<>h then bugmes();quit;end +if simp(rlist(p,1,[]))<>h then bugmes();quit;end +h=rlist(1,p,[]); +if simp(h)<>h then bugmes();quit;end +if simp(rlist(1,p,[]))<>h then bugmes();quit;end +//pdiv +p=[]; +[n,d]=pdiv(p,p);if n<>[]|p<>[] then bugmes();quit;end +[n,d]=pdiv([],[]);if n<>[]|p<>[] then bugmes();quit;end +if pdiv(p,p)<>[] then bugmes();quit;end +if pdiv([],[])<>[] then bugmes();quit;end +p1=%s;p2=p1; +[r,q]=pdiv(p1,p2);if p2*q+r<>p1 then bugmes();quit;end +[r,q]=pdiv(p1+0,p2);if p2*q+r<>p1 then bugmes();quit;end +[r,q]=pdiv(p1,p2+0);if p2*q+r<>p1 then bugmes();quit;end +[r,q]=pdiv(p1+0,p2+0);if p2*q+r<>p1 then bugmes();quit;end +p1=%s;p2=1; +[r,q]=pdiv(p1,p2);if p2*q+r<>p1 then bugmes();quit;end +[r,q]=pdiv(p1+0,p2);if p2*q+r<>p1 then bugmes();quit;end +[r,q]=pdiv(p1,p2+0);if p2*q+r<>p1 then bugmes();quit;end +[r,q]=pdiv(p1+0,p2+0);if p2*q+r<>p1 then bugmes();quit;end +p1=1;p2=%s; +[r,q]=pdiv(p1,p2);if p2*q+r<>p1 then bugmes();quit;end +[r,q]=pdiv(p1+0,p2);if p2*q+r<>p1 then bugmes();quit;end +[r,q]=pdiv(p1,p2+0);if p2*q+r<>p1 then bugmes();quit;end +[r,q]=pdiv(p1+0,p2+0);if p2*q+r<>p1 then bugmes();quit;end +p1=%s+%i;p2=p1; +[r,q]=pdiv(p1,p2);if p2*q+r<>p1 then bugmes();quit;end +[r,q]=pdiv(p1+0,p2);if p2*q+r<>p1 then bugmes();quit;end +[r,q]=pdiv(p1,p2+0);if p2*q+r<>p1 then bugmes();quit;end +[r,q]=pdiv(p1+0,p2+0);if p2*q+r<>p1 then bugmes();quit;end +p1=%s;p2=1+%i; +[r,q]=pdiv(p1,p2);if p2*q+r<>p1 then bugmes();quit;end +[r,q]=pdiv(p1+0,p2);if p2*q+r<>p1 then bugmes();quit;end +[r,q]=pdiv(p1,p2+0);if p2*q+r<>p1 then bugmes();quit;end +[r,q]=pdiv(p1+0,p2+0);if p2*q+r<>p1 then bugmes();quit;end +p1=1+%i;p2=%s; +[r,q]=pdiv(p1,p2);if p2*q+r<>p1 then bugmes();quit;end +[r,q]=pdiv(p1+0,p2);if p2*q+r<>p1 then bugmes();quit;end +[r,q]=pdiv(p1,p2+0);if p2*q+r<>p1 then bugmes();quit;end +[r,q]=pdiv(p1+0,p2+0);if p2*q+r<>p1 then bugmes();quit;end +// +p1=%s;p2=p1; +[r,q]=pdiv(p1,p2);if pdiv(p1,p2)<>q then bugmes();quit;end +[r,q]=pdiv(p1+0,p2);if pdiv(p1,p2)<>q then bugmes();quit;end +[r,q]=pdiv(p1,p2+0);if pdiv(p1,p2)<>q then bugmes();quit;end +[r,q]=pdiv(p1+0,p2+0);if pdiv(p1,p2)<>q then bugmes();quit;end +p1=%s;p2=1; +[r,q]=pdiv(p1,p2);if pdiv(p1,p2)<>q then bugmes();quit;end +[r,q]=pdiv(p1+0,p2);if pdiv(p1,p2)<>q then bugmes();quit;end +[r,q]=pdiv(p1,p2+0);if pdiv(p1,p2)<>q then bugmes();quit;end +[r,q]=pdiv(p1+0,p2+0);if pdiv(p1,p2)<>q then bugmes();quit;end +p1=1;p2=%s; +[r,q]=pdiv(p1,p2);if pdiv(p1,p2)<>q then bugmes();quit;end +[r,q]=pdiv(p1+0,p2);if pdiv(p1,p2)<>q then bugmes();quit;end +[r,q]=pdiv(p1,p2+0);if pdiv(p1,p2)<>q then bugmes();quit;end +[r,q]=pdiv(p1+0,p2+0);if pdiv(p1,p2)<>q then bugmes();quit;end +p1=%s+%i;p2=p1; +[r,q]=pdiv(p1,p2);if pdiv(p1,p2)<>q then bugmes();quit;end +[r,q]=pdiv(p1+0,p2);if pdiv(p1,p2)<>q then bugmes();quit;end +[r,q]=pdiv(p1,p2+0);if pdiv(p1,p2)<>q then bugmes();quit;end +[r,q]=pdiv(p1+0,p2+0);if pdiv(p1,p2)<>q then bugmes();quit;end +p1=%s;p2=1+%i; +[r,q]=pdiv(p1,p2);if pdiv(p1,p2)<>q then bugmes();quit;end +[r,q]=pdiv(p1+0,p2);if pdiv(p1,p2)<>q then bugmes();quit;end +[r,q]=pdiv(p1,p2+0);if pdiv(p1,p2)<>q then bugmes();quit;end +[r,q]=pdiv(p1+0,p2+0);if pdiv(p1,p2)<>q then bugmes();quit;end +p1=1+%i;p2=%s; +[r,q]=pdiv(p1,p2);if pdiv(p1,p2)<>q then bugmes();quit;end +[r,q]=pdiv(p1+0,p2);if pdiv(p1,p2)<>q then bugmes();quit;end +[r,q]=pdiv(p1,p2+0);if pdiv(p1,p2)<>q then bugmes();quit;end +[r,q]=pdiv(p1+0,p2+0);if pdiv(p1,p2)<>q then bugmes();quit;end +//bezout +p1=%s;p2=p1; +[p,U]=bezout(p1,p2);if norm(coeff([p1 p2]*U-[p 0]))>10*%eps then bugmes();quit;end +[p,U]=bezout(p1+0,p2);if norm(coeff([p1 p2]*U-[p 0]))>10*%eps then bugmes();quit;end +[p,U]=bezout(p1,p2+0);if norm(coeff([p1 p2]*U-[p 0]))>10*%eps then bugmes();quit;end +[p,U]=bezout(p1+0,p2+0);if norm(coeff([p1 p2]*U-[p 0]))>10*%eps then bugmes();quit;end +p1=%s;p2=1; +[p,U]=bezout(p1,p2);if norm(coeff([p1 p2]*U-[p 0]))>10*%eps then bugmes();quit;end +[p,U]=bezout(p1+0,p2);if norm(coeff([p1 p2]*U-[p 0]))>10*%eps then bugmes();quit;end +[p,U]=bezout(p1,p2+0);if norm(coeff([p1 p2]*U-[p 0]))>10*%eps then bugmes();quit;end +[p,U]=bezout(p1+0,p2+0);if norm(coeff([p1 p2]*U-[p 0]))>10*%eps then bugmes();quit;end +p1=1;p2=%s; +[p,U]=bezout(p1,p2);if norm(coeff([p1 p2]*U-[p 0]))>10*%eps then bugmes();quit;end +[p,U]=bezout(p1+0,p2);if norm(coeff([p1 p2]*U-[p 0]))>10*%eps then bugmes();quit;end +[p,U]=bezout(p1,p2+0);if norm(coeff([p1 p2]*U-[p 0]))>10*%eps then bugmes();quit;end +[p,U]=bezout(p1+0,p2+0);if norm(coeff([p1 p2]*U-[p 0]))>10*%eps then bugmes();quit;end +p1=1;p2=1; +[p,U]=bezout(p1,p2);if norm(coeff([p1 p2]*U-[p 0]))>10*%eps then bugmes();quit;end +[p,U]=bezout(p1+0,p2);if norm(coeff([p1 p2]*U-[p 0]))>10*%eps then bugmes();quit;end +[p,U]=bezout(p1,p2+0);if norm(coeff([p1 p2]*U-[p 0]))>10*%eps then bugmes();quit;end +[p,U]=bezout(p1+0,p2+0);if norm(coeff([p1 p2]*U-[p 0]))>10*%eps then bugmes();quit;end +//sfact +p=(%s-1/2)*(2-%s); +w=sfact(p); if norm(coeff(w*numer(horner(w,1/%s))-p))>10*%eps then bugmes();quit;end +w=sfact(p+0);if norm(coeff(w*numer(horner(w,1/%s))-p))>10*%eps then bugmes();quit;end +F1=[%z-1/2,%z+1/2,%z^2+2;1,%z,-%z;%z^3+2*%z,%z,1/2-%z]; +P=F1*gtild(F1,'d'); +F=sfact(P);if norm(coeff(P-F*gtild(F,'d')))>100*%eps then bugmes();quit;end +F=sfact(P+0);if norm(coeff(P-F*gtild(F,'d')))>100*%eps then bugmes();quit;end diff --git a/modules/polynomials/tests/unit_tests/polelm.tst b/modules/polynomials/tests/unit_tests/polelm.tst new file mode 100755 index 000000000..ce4457649 --- /dev/null +++ b/modules/polynomials/tests/unit_tests/polelm.tst @@ -0,0 +1,573 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) ????-2008 - INRIA +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= + +// <-- CLI SHELL MODE --> + +//poly (coeff) + +v=[1 2 3];nam='s';job='c';p=1+2*%s+3*%s^2; +if poly(v,'s','c')<>p then pause,end +if poly(v+0,'s','c')<>p then pause,end +if poly(v,nam,'c')<>p then pause,end +if poly(v+0,nam,'c')<>p then pause,end +if poly(v,'s',job)<>p then pause,end +if poly(v+0,'s',job)<>p then pause,end +if poly(v,nam,job)<>p then pause,end +if poly(v+0,nam,job)<>p then pause,end +v=[1+%i 2 3];p=1+%i+2*%s+3*%s^2; +if poly(v,'s','c')<>p then pause,end +if poly(v+0,'s','c')<>p then pause,end +if poly(v,nam,'c')<>p then pause,end +if poly(v+0,nam,'c')<>p then pause,end +if poly(v,'s',job)<>p then pause,end +if poly(v+0,'s',job)<>p then pause,end +if poly(v,nam,job)<>p then pause,end +if poly(v+0,nam,job)<>p then pause,end + +//poly (roots) +v=[1 2 3];nam='s';job='r';p=-6+11*%s-6*%s^2+%s^3; +if poly(v,'s','r')<>p then pause,end +if poly(v+0,'s','r')<>p then pause,end +if poly(v,nam,'r')<>p then pause,end +if poly(v+0,nam,'r')<>p then pause,end +if poly(v,'s',job)<>p then pause,end +if poly(v+0,'s',job)<>p then pause,end +if poly(v,nam,job)<>p then pause,end +if poly(v+0,nam,job)<>p then pause,end +v=[1+%i 2 3];p=-6-%i*6+(11+%i*5)*%s+(-6-%i)*%s^2+%s^3; +if poly(v,'s','r')<>p then pause,end +if poly(v+0,'s','r')<>p then pause,end +if poly(v,nam,'r')<>p then pause,end +if poly(v+0,nam,'r')<>p then pause,end +if poly(v,'s',job)<>p then pause,end +if poly(v+0,'s',job)<>p then pause,end +if poly(v,nam,job)<>p then pause,end +if poly(v+0,nam,job)<>p then pause,end + +v=[];p=poly(1,'s','c'); +if poly(v,'s','r')<>p then pause,end +if poly([],'s','r')<>p then pause,end +if poly(v,nam,'r')<>p then pause,end +if poly([],nam,'r')<>p then pause,end +if poly(v,'s',job)<>p then pause,end +if poly([],'s',job)<>p then pause,end +if poly(v,nam,job)<>p then pause,end +if poly([],nam,job)<>p then pause,end + +//poly (caracteristic) +nam='s';a=[1 2;3 4];p=-2-5*%s+%s^2; +if norm(coeff(poly(a,'s')-p))>100*%eps then pause,end +if norm(coeff(poly(a+0,'s')-p))>100*%eps then pause,end +if norm(coeff(poly(a,nam)-p))>100*%eps then pause,end +if norm(coeff(poly(a+0,nam)-p))>100*%eps then pause,end +a=[1+%i 2;3 4];p=-2+%i*4+(-5-%i)*%s+%s^2 ; +if norm(coeff(poly(a,'s')-p))>100*%eps then pause,end +if norm(coeff(poly(a+0,'s')-p))>100*%eps then pause,end +if norm(coeff(poly(a,nam)-p))>100*%eps then pause,end +if norm(coeff(poly(a+0,nam)-p))>100*%eps then pause,end +a=[];p=poly(1,'s','c'); +if poly(a,'s')<>p then pause,end +if poly([],'s')<>p then pause,end +if poly(a,nam)<>p then pause,end +if poly([],nam)<>p then pause,end + +//degree +v=[1 2 3];d=[0 0 0]; +if or(degree(v)<>d) then pause,end +if or(degree(v+0)<>d) then pause,end +v=[-2-5*%s+%s^2;-6+11*%s-6*%s^2+%s^3];d=[2;3]; +if or(degree(v)<>d) then pause,end +if or(degree(v+0)<>d) then pause,end +v=[];d=[]; +if or(degree(v)<>d) then pause,end +if or(degree([])<>d) then pause,end + +//coeff +p=[1+2*%s;%s^3];c=[1 2 0 0;0 0 0 1];sel=[0 1 1]; + +if or(coeff(p)<>c) then pause,end +if or(coeff(p+0)<>c) then pause,end +if or(coeff(p,sel)<>c(:,sel+1)) then pause,end +if or(coeff(p+0,sel)<>c(:,sel+1)) then pause,end +if or(coeff(p,sel+0)<>c(:,sel+1)) then pause,end +if or(coeff(p+0,sel+0)<>c(:,sel+1)) then pause,end +sel=5; +if or(coeff(p,sel+0)<>zeros(size(p,1),1)) then pause,end +p=[1+2*%s, %s^3];c=[1 0 2 0 0 0 0 1]; +if or(coeff(p)<>c) then pause,end +if or(coeff(p+0)<>c) then pause,end +sel=[0 0];c=[1 0 1 0]; +if or(coeff(p,sel)<>c) then pause,end +if or(coeff(p+0,sel)<>c) then pause,end +if or(coeff(p,sel+0)<>c) then pause,end +if or(coeff(p+0,sel+0)<>c) then pause,end + +p=[1+%i+2*%s;%s^3];c=[1+%i 2 0 0;0 0 0 1];sel=[0 1 1]; + +if or(coeff(p)<>c) then pause,end +if or(coeff(p+0)<>c) then pause,end +if or(coeff(p,sel)<>c(:,sel+1)) then pause,end +if or(coeff(p+0,sel)<>c(:,sel+1)) then pause,end +if or(coeff(p,sel+0)<>c(:,sel+1)) then pause,end +if or(coeff(p+0,sel+0)<>c(:,sel+1)) then pause,end +sel=5; +if or(coeff(p,sel+0)<>zeros(size(p,1),1)) then pause,end +p=[1+2*%s, %s^3];c=[1 0 2 0 0 0 0 1]; +if or(coeff(p)<>c) then pause,end +if or(coeff(p+0)<>c) then pause,end +sel=[0 0];c=[1 0 1 0]; +if or(coeff(p,sel)<>c) then pause,end +if or(coeff(p+0,sel)<>c) then pause,end +if or(coeff(p,sel+0)<>c) then pause,end +if or(coeff(p+0,sel+0)<>c) then pause,end + +p=[1 2;3 4];sel=0;c=p; +if or(coeff(p)<>c) then pause,end +if or(coeff(p+0)<>c) then pause,end +if or(coeff(p,sel)<>c) then pause,end +if or(coeff(p+0,sel)<>c) then pause,end +if or(coeff(p,sel+0)<>c) then pause,end +if or(coeff(p+0,sel+0)<>c) then pause,end +p=[1 2;3 4];sel=[0 0];c=[p p]; +if or(coeff(p,sel)<>c) then pause,end +if or(coeff(p+0,sel)<>c) then pause,end +if or(coeff(p,sel+0)<>c) then pause,end +if or(coeff(p+0,sel+0)<>c) then pause,end +p=[1 2;3 4];sel=[0 1];c=[p 0*p]; +if or(coeff(p,sel)<>c) then pause,end +if or(coeff(p+0,sel)<>c) then pause,end +if or(coeff(p,sel+0)<>c) then pause,end +if or(coeff(p+0,sel+0)<>c) then pause,end + +p=[1 2;3 4];sel=[];c=[]; +if or(coeff(p,sel)<>c) then pause,end +if or(coeff(p+0,sel)<>c) then pause,end +if or(coeff(p,[])<>c) then pause,end +if or(coeff(p+0,[])<>c) then pause,end + +p=[],sel=0,c=[]; +if or(coeff(p)<>c) then pause,end +if or(coeff([])<>c) then pause,end +if or(coeff(p,sel)<>c) then pause,end +if or(coeff([],sel)<>c) then pause,end + +//sum +a=[1+%s 2;-3 4;5 -6]; +if sum(a)<>3+%s then pause,end +if sum(a+0)<>3+%s then pause,end +if or(sum(a,1)<>[3+%s 0]) then pause,end +if or(sum(a+0,1)<>[3+%s 0]) then pause,end +n=1; +if or(sum(a,n)<>[3+%s 0]) then pause,end +if or(sum(a+0,n)<>[3+%s 0]) then pause,end +if or(sum(a,'r')<>[3+%s 0]) then pause,end +if or(sum(a+0,'r')<>[3+%s 0]) then pause,end +n='r'; +if or(sum(a,n)<>[3+%s 0]) then pause,end +if or(sum(a+0,n)<>[3+%s 0]) then pause,end + +if or(sum(a,2)<>[3+%s;1;-1]) then pause,end +if or(sum(a+0,2)<>[3+%s;1;-1]) then pause,end +n=2; +if or(sum(a,n)<>[3+%s;1;-1]) then pause,end +if or(sum(a+0,n)<>[3+%s;1;-1]) then pause,end +if or(sum(a,'c')<>[3+%s;1;-1]) then pause,end +if or(sum(a+0,'c')<>[3+%s;1;-1]) then pause,end +n='c'; +if or(sum(a,n)<>[3+%s;1;-1]) then pause,end +if or(sum(a+0,n)<>[3+%s;1;-1]) then pause,end + +a=[1+%s 2;-3 4;5 -6]+0*%i; +if or(sum(a)<>3+%s+0*%i) then pause,end +if or(sum(a+0)<>3+%s+0*%i) then pause,end +if or(sum(a,1)<>[3+%s 0]+0*%i) then pause,end +if or(sum(a+0,1)<>[3+%s 0]+0*%i) then pause,end +n=1; +if or(sum(a,n)<>[3+%s 0]+0*%i) then pause,end +if or(sum(a+0,n)<>[3+%s 0]+0*%i) then pause,end +if or(sum(a,'r')<>[3+%s 0]+0*%i) then pause,end +if or(sum(a+0,'r')<>[3+%s 0]+0*%i) then pause,end +n='r'; +if or(sum(a,n)<>[3+%s 0]+0*%i) then pause,end +if or(sum(a+0,n)<>[3+%s 0]+0*%i) then pause,end + +if or(sum(a,2)<>[3+%s;1;-1]+0*%i) then pause,end +if or(sum(a+0,2)<>[3+%s;1;-1]+0*%i) then pause,end +n=2; +if or(sum(a,n)<>[3+%s;1;-1]+0*%i) then pause,end +if or(sum(a+0,n)<>[3+%s;1;-1]+0*%i) then pause,end +if or(sum(a,'c')<>[3+%s;1;-1]+0*%i) then pause,end +if or(sum(a+0,'c')<>[3+%s;1;-1]+0*%i) then pause,end +n='c'; +if or(sum(a,n)<>[3+%s;1;-1]+0*%i) then pause,end +if or(sum(a+0,n)<>[3+%s;1;-1]+0*%i) then pause,end + +//prod +a=[1+%s 2;-3 4;5 -6]; +if prod(a)<>720+720*%s then pause,end +if prod(a+0)<>720+720*%s then pause,end +if or(prod(a,1)<>[-15-15*%s,-48]) then pause,end +if or(prod(a+0,1)<>[-15-15*%s,-48]) then pause,end +n=1; +if or(prod(a,n)<>[-15-15*%s,-48]) then pause,end +if or(prod(a+0,n)<>[-15-15*%s,-48]) then pause,end +if or(prod(a,'r')<>[-15-15*%s,-48]) then pause,end +if or(prod(a+0,'r')<>[-15-15*%s,-48]) then pause,end +n='r'; +if or(prod(a,n)<>[-15-15*%s,-48]) then pause,end +if or(prod(a+0,n)<>[-15-15*%s,-48]) then pause,end + +if or(prod(a,2)<>[2+2*%s;-12;-30]) then pause,end +if or(prod(a+0,2)<>[2+2*%s;-12;-30]) then pause,end +n=2; +if or(prod(a,n)<>[2+2*%s;-12;-30]) then pause,end +if or(prod(a+0,n)<>[2+2*%s;-12;-30]) then pause,end +if or(prod(a,'c')<>[2+2*%s;-12;-30]) then pause,end +if or(prod(a+0,'c')<>[2+2*%s;-12;-30]) then pause,end +n='c'; +if or(prod(a,n)<>[2+2*%s;-12;-30]) then pause,end +if or(prod(a+0,n)<>[2+2*%s;-12;-30]) then pause,end + +a=[1+%s 2;-3 4;5 -6]+0*%i; +if or(prod(a)<>720+720*%s+0*%i) then pause,end +if or(prod(a+0)<>720+720*%s+0*%i) then pause,end +if or(prod(a,1)<>[-15-15*%s,-48]+0*%i) then pause,end +if or(prod(a+0,1)<>[-15-15*%s,-48]+0*%i) then pause,end +n=1; +if or(prod(a,n)<>[-15-15*%s,-48]+0*%i) then pause,end +if or(prod(a+0,n)<>[-15-15*%s,-48]+0*%i) then pause,end +if or(prod(a,'r')<>[-15-15*%s,-48]+0*%i) then pause,end +if or(prod(a+0,'r')<>[-15-15*%s,-48]+0*%i) then pause,end +n='r'; +if or(prod(a,n)<>[-15-15*%s,-48]+0*%i) then pause,end +if or(prod(a+0,n)<>[-15-15*%s,-48]+0*%i) then pause,end + +if or(prod(a,2)<>[2+2*%s;-12;-30]+0*%i) then pause,end +if or(prod(a+0,2)<>[2+2*%s;-12;-30]+0*%i) then pause,end +n=2; +if or(prod(a,n)<>[2+2*%s;-12;-30]+0*%i) then pause,end +if or(prod(a+0,n)<>[2+2*%s;-12;-30]+0*%i) then pause,end +if or(prod(a,'c')<>[2+2*%s;-12;-30]+0*%i) then pause,end +if or(prod(a+0,'c')<>[2+2*%s;-12;-30]+0*%i) then pause,end +n='c'; +if or(prod(a,n)<>[2+2*%s;-12;-30]+0*%i) then pause,end +if or(prod(a+0,n)<>[2+2*%s;-12;-30]+0*%i) then pause,end + +//diag +a=[1+%s 2 3]; +if or(diag(a+0)<>[1+%s 0 0;0 2 0;0 0 3]) then pause,end +if or(diag(a)<>[1+%s 0 0;0 2 0;0 0 3]) then pause,end + +if or(diag([1+%s %i 2])<>[1+%s 0 0;0 %i 0;0 0 2]) then pause,end +a=[1+%s %i 2 ]; +if or(diag(a)<>[1+%s 0 0;0 %i 0;0 0 2]) then pause,end +a=[1+%s 2 3 4;5 6 7 8];un=poly(1,'s','c'); +if or(diag(a)<>[1+%s;6]) then pause,end +if or(diag(a+0)<>[1+%s;6]) then pause,end +if or(diag(a,1)<>[2*un;7]) then pause,end +if or(diag(a+0,1)<>[2*un;7]) then pause,end +if or(diag(a,-1)<>[5*un]) then pause,end +if or(diag(a+0,-1)<>[5*un]) then pause,end +if diag(a,4)<>[] then pause,end +a(1,1)=%i+%s; +if or(diag(a)<>[%i+%s;6]) then pause,end +if or(diag(a+0)<>[%i+%s;6]) then pause,end +if or(diag(a,1)<>[2*un;7]) then pause,end +if or(diag(a+0,1)<>[2*un;7]) then pause,end +if or(diag(a,-1)<>[5*un]) then pause,end +if or(diag(a+0,-1)<>[5*un]) then pause,end +if diag(a,4)<>[] then pause,end + +//triu +a=[1+%s 2 3 4;5 6 7 8];un=poly(1,'s','c'); +if or(triu(a)<>[1+%s 2 3 4;0 6 7 8]) then pause,end +if or(triu(a+0)<>[1+%s 2 3 4;0 6 7 8]) then pause,end +if or(triu(a,1)<>[0 2*un 3 4;0 0 7 8]) then pause,end +if or(triu(a+0,1)<>[0 2*un 3 4;0 0 7 8]) then pause,end +if or(triu(a,-1)<>a) then pause,end +if or(triu(a+0,-1)<>a) then pause,end +if or(triu(a,4)<>0*a) then pause,end +a(1,1)=%i+%s; +if or(triu(a)<>[%i+%s 2 3 4;0 6 7 8]) then pause,end +if or(triu(a+0)<>[%i+%s 2 3 4;0 6 7 8]) then pause,end +if or(triu(a,1)<>[0 2*un 3 4;0 0 7 8]) then pause,end +if or(triu(a+0,1)<>[0 2*un 3 4;0 0 7 8]) then pause,end +if or(triu(a,-1)<>a) then pause,end +if or(triu(a+0,-1)<>a) then pause,end +if or(triu(a,4)<>0*a) then pause,end + +//tril +a=[1+%s 2 3 4;5 6 7 8]; +if or(tril(a)<>[1+%s 0 0 0;5 6 0 0]) then pause,end +if or(tril(a+0)<>[1+%s 0 0 0;5 6 0 0]) then pause,end +if or(tril(a,1)<>[1+%s 2 0 0;5 6 7 0]) then pause,end +if or(tril(a+0,1)<>[1+%s 2 0 0;5 6 7 0]) then pause,end +if or(tril(a,4)<>a) then pause,end +if or(tril(a+0,4)<>a) then pause,end +if or(tril(a,-3)<>0*a) then pause,end +a(1,1)=%i+%s; +if or(tril(a)<>[%i+%s 0 0 0;5 6 0 0]) then pause,end +if or(tril(a+0)<>[%i+%s 0 0 0;5 6 0 0]) then pause,end +if or(tril(a,1)<>[%i+%s 2 0 0;5 6 7 0]) then pause,end +if or(tril(a+0,1)<>[%i+%s 2 0 0;5 6 7 0]) then pause,end +if or(tril(a,4)<>a) then pause,end +if or(tril(a+0,4)<>a) then pause,end +if or(tril(a,-3)<>0*a) then pause,end + + +//simp_mode +a=%t +simp_mode(%t); +if simp_mode()<>%t then pause,end +simp_mode(a); +if simp_mode()<>%t then pause,end +[n,d]=simp(%s,%s);if n<>poly(1,'s','c')|d<>poly(1,'s','c') then pause,end +a=%f +simp_mode(%f); +if simp_mode()<>%f then pause,end +simp_mode(a); +if simp_mode()<>%f then pause,end +[n,d]=simp(%s,%s);if n<>%s|d<>%s then pause,end + +//varn +a=1+%s; +if varn(a)<>'s' then pause,end +if varn(a+0)<>'s' then pause,end +if varn(a,'z')<>1+%z then pause,end +if varn(a+0,'z')<>1+%z then pause,end +nam='z'; +if varn(a,nam)<>1+%z then pause,end +if varn(a+0,nam)<>1+%z then pause,end +a=[]; +if varn(a,nam)<>[] then pause,end +if varn([],nam)<>[] then pause,end +//clean +a=[1 1.d-12 1.d-5 2d8+%s];un=poly(1,'s','c') +b=[1 0 1.d-5 2d8+%s]; +if or(clean(a)<>b) then pause,end +if or(clean(a+0)<>b) then pause,end +epsa=1.d-10; +if or(clean(a,epsa)<>b) then pause,end +if or(clean(a+0,epsa)<>b) then pause,end +if or(clean(a,epsa+0)<>b) then pause,end +if or(clean(a+0,epsa+0)<>b) then pause,end +epsr=1.d-4;b=[1 0 1.d-5 2d8*un]; +if or(clean(a,epsa,epsr)<>b) then pause,end +if or(clean(a+0,epsa,epsr)<>b) then pause,end +if or(clean(a,epsa+0,epsr)<>b) then pause,end +if or(clean(a+0,epsa,epsr+0)<>b) then pause,end +if or(clean(a,epsa+0,epsr)<>b) then pause,end +if or(clean(a+0,epsa,epsr+0)<>b) then pause,end +if or(clean(a,epsa+0,epsr)<>b) then pause,end +if or(clean(a+0,epsa+0,epsr+0)<>b) then pause,end + +a=[1+%i 1.d-12 1.d-5 2d8+%s]; +b=[1+%i 0 1.d-5 2d8+%s]; +if or(clean(a)<>b) then pause,end +if or(clean(a+0)<>b) then pause,end +epsa=1.d-10; +if or(clean(a,epsa)<>b) then pause,end +if or(clean(a+0,epsa)<>b) then pause,end +if or(clean(a,epsa+0)<>b) then pause,end +if or(clean(a+0,epsa+0)<>b) then pause,end +epsr=1.d-5;b=[1+%i 0 1.d-5 poly([2d8,0],'s','c')]; +if or(clean(a,epsa,epsr)<>b) then pause,end +if or(clean(a+0,epsa,epsr)<>b) then pause,end +if or(clean(a,epsa+0,epsr)<>b) then pause,end +if or(clean(a+0,epsa,epsr+0)<>b) then pause,end +if or(clean(a,epsa+0,epsr)<>b) then pause,end +if or(clean(a+0,epsa,epsr+0)<>b) then pause,end +if or(clean(a,epsa+0,epsr)<>b) then pause,end +if or(clean(a+0,epsa+0,epsr+0)<>b) then pause,end + +//simp +simp_mode(%t); +p=[]; +[n,d]=simp(p,p);if n<>[]|p<>[] then pause,end +[n,d]=simp([],[]);if n<>[]|p<>[] then pause,end + +un=poly(1,'s','c');p=%s; +[n,d]=simp(p,p);if n<>un|d<>un then pause,end +[n,d]=simp(p+0,p);if n<>un|d<>un then pause,end +[n,d]=simp(p,p+0);if n<>un|d<>un then pause,end +[n,d]=simp(p+0,p+0);if n<>un|d<>un then pause,end +un=1; +[n,d]=simp(p,un);if n<>p|d<>1 then pause,end +[n,d]=simp(p,1);if n<>p|d<>1 then pause,end +[n,d]=simp(p+0,un);if n<>p|d<>1 then pause,end +[n,d]=simp(p+0,1);if n<>p|d<>1 then pause,end + +[n,d]=simp(un,p);if n<>un|d<>p then pause,end +[n,d]=simp(1,p);if n<>un|d<>p then pause,end +[n,d]=simp(un,p+0);if n<>un|d<>p then pause,end +[n,d]=simp(1,p+0);if n<>un|d<>p then pause,end + + +p=1+%s^10;un=poly(1,'s','c') + +[n,d]=simp(p,p);if n<>un|d<>un then pause,end +[n,d]=simp(p+0,p);if n<>un|d<>un then pause,end +[n,d]=simp(p,p+0);if n<>un|d<>un then pause,end +[n,d]=simp(p+0,p+0);if n<>un|d<>un then pause,end +un=1; +[n,d]=simp(p,un);if n<>p|d<>1 then pause,end +[n,d]=simp(p,1);if n<>p|d<>1 then pause,end +[n,d]=simp(p+0,un);if n<>p|d<>1 then pause,end +[n,d]=simp(p+0,1);if n<>p|d<>1 then pause,end + +[n,d]=simp(un,p);if n<>un|d<>p then pause,end +[n,d]=simp(1,p);if n<>un|d<>p then pause,end +[n,d]=simp(un,p+0);if n<>un|d<>p then pause,end +[n,d]=simp(1,p+0);if n<>un|d<>p then pause,end + +un=poly(1,'s','c');p=%s; +h=rlist(p,p,[]);un=rlist(poly(1,'s','c'),poly(1,'s','c'),[]); + +if simp(h)<>un then pause,end +if simp(rlist(p,p,[]))<>un then pause,end + +h=rlist(p,1,[]); +if simp(h)<>h then pause,end +if simp(rlist(p,1,[]))<>h then pause,end + +h=rlist(1,p,[]); +if simp(h)<>h then pause,end +if simp(rlist(1,p,[]))<>h then pause,end + +p=1+%s^10; +h=rlist(p,p,[]);un=rlist(poly(1,'s','c'),poly(1,'s','c'),[]); + +if simp(h)<>un then pause,end +if simp(rlist(p,p,[]))<>un then pause,end + +h=rlist(p,1,[]); +if simp(h)<>h then pause,end +if simp(rlist(p,1,[]))<>h then pause,end + +h=rlist(1,p,[]); +if simp(h)<>h then pause,end +if simp(rlist(1,p,[]))<>h then pause,end + +//pdiv +p=[]; +[n,d]=pdiv(p,p);if n<>[]|p<>[] then pause,end +[n,d]=pdiv([],[]);if n<>[]|p<>[] then pause,end +if pdiv(p,p)<>[] then pause,end +if pdiv([],[])<>[] then pause,end + +p1=%s;p2=p1; +[r,q]=pdiv(p1,p2);if p2*q+r<>p1 then pause,end +[r,q]=pdiv(p1+0,p2);if p2*q+r<>p1 then pause,end +[r,q]=pdiv(p1,p2+0);if p2*q+r<>p1 then pause,end +[r,q]=pdiv(p1+0,p2+0);if p2*q+r<>p1 then pause,end + +p1=%s;p2=1; +[r,q]=pdiv(p1,p2);if p2*q+r<>p1 then pause,end +[r,q]=pdiv(p1+0,p2);if p2*q+r<>p1 then pause,end +[r,q]=pdiv(p1,p2+0);if p2*q+r<>p1 then pause,end +[r,q]=pdiv(p1+0,p2+0);if p2*q+r<>p1 then pause,end + +p1=1;p2=%s; +[r,q]=pdiv(p1,p2);if p2*q+r<>p1 then pause,end +[r,q]=pdiv(p1+0,p2);if p2*q+r<>p1 then pause,end +[r,q]=pdiv(p1,p2+0);if p2*q+r<>p1 then pause,end +[r,q]=pdiv(p1+0,p2+0);if p2*q+r<>p1 then pause,end + +p1=%s+%i;p2=p1; +[r,q]=pdiv(p1,p2);if p2*q+r<>p1 then pause,end +[r,q]=pdiv(p1+0,p2);if p2*q+r<>p1 then pause,end +[r,q]=pdiv(p1,p2+0);if p2*q+r<>p1 then pause,end +[r,q]=pdiv(p1+0,p2+0);if p2*q+r<>p1 then pause,end + +p1=%s;p2=1+%i; +[r,q]=pdiv(p1,p2);if p2*q+r<>p1 then pause,end +[r,q]=pdiv(p1+0,p2);if p2*q+r<>p1 then pause,end +[r,q]=pdiv(p1,p2+0);if p2*q+r<>p1 then pause,end +[r,q]=pdiv(p1+0,p2+0);if p2*q+r<>p1 then pause,end + +p1=1+%i;p2=%s; +[r,q]=pdiv(p1,p2);if p2*q+r<>p1 then pause,end +[r,q]=pdiv(p1+0,p2);if p2*q+r<>p1 then pause,end +[r,q]=pdiv(p1,p2+0);if p2*q+r<>p1 then pause,end +[r,q]=pdiv(p1+0,p2+0);if p2*q+r<>p1 then pause,end + +// +p1=%s;p2=p1; +[r,q]=pdiv(p1,p2);if pdiv(p1,p2)<>q then pause,end +[r,q]=pdiv(p1+0,p2);if pdiv(p1,p2)<>q then pause,end +[r,q]=pdiv(p1,p2+0);if pdiv(p1,p2)<>q then pause,end +[r,q]=pdiv(p1+0,p2+0);if pdiv(p1,p2)<>q then pause,end + +p1=%s;p2=1; +[r,q]=pdiv(p1,p2);if pdiv(p1,p2)<>q then pause,end +[r,q]=pdiv(p1+0,p2);if pdiv(p1,p2)<>q then pause,end +[r,q]=pdiv(p1,p2+0);if pdiv(p1,p2)<>q then pause,end +[r,q]=pdiv(p1+0,p2+0);if pdiv(p1,p2)<>q then pause,end + +p1=1;p2=%s; +[r,q]=pdiv(p1,p2);if pdiv(p1,p2)<>q then pause,end +[r,q]=pdiv(p1+0,p2);if pdiv(p1,p2)<>q then pause,end +[r,q]=pdiv(p1,p2+0);if pdiv(p1,p2)<>q then pause,end +[r,q]=pdiv(p1+0,p2+0);if pdiv(p1,p2)<>q then pause,end + +p1=%s+%i;p2=p1; +[r,q]=pdiv(p1,p2);if pdiv(p1,p2)<>q then pause,end +[r,q]=pdiv(p1+0,p2);if pdiv(p1,p2)<>q then pause,end +[r,q]=pdiv(p1,p2+0);if pdiv(p1,p2)<>q then pause,end +[r,q]=pdiv(p1+0,p2+0);if pdiv(p1,p2)<>q then pause,end + +p1=%s;p2=1+%i; +[r,q]=pdiv(p1,p2);if pdiv(p1,p2)<>q then pause,end +[r,q]=pdiv(p1+0,p2);if pdiv(p1,p2)<>q then pause,end +[r,q]=pdiv(p1,p2+0);if pdiv(p1,p2)<>q then pause,end +[r,q]=pdiv(p1+0,p2+0);if pdiv(p1,p2)<>q then pause,end + +p1=1+%i;p2=%s; +[r,q]=pdiv(p1,p2);if pdiv(p1,p2)<>q then pause,end +[r,q]=pdiv(p1+0,p2);if pdiv(p1,p2)<>q then pause,end +[r,q]=pdiv(p1,p2+0);if pdiv(p1,p2)<>q then pause,end +[r,q]=pdiv(p1+0,p2+0);if pdiv(p1,p2)<>q then pause,end + + + + +//bezout +p1=%s;p2=p1; +[p,U]=bezout(p1,p2);if norm(coeff([p1 p2]*U-[p 0]))>10*%eps then pause,end +[p,U]=bezout(p1+0,p2);if norm(coeff([p1 p2]*U-[p 0]))>10*%eps then pause,end +[p,U]=bezout(p1,p2+0);if norm(coeff([p1 p2]*U-[p 0]))>10*%eps then pause,end +[p,U]=bezout(p1+0,p2+0);if norm(coeff([p1 p2]*U-[p 0]))>10*%eps then pause,end + +p1=%s;p2=1; +[p,U]=bezout(p1,p2);if norm(coeff([p1 p2]*U-[p 0]))>10*%eps then pause,end +[p,U]=bezout(p1+0,p2);if norm(coeff([p1 p2]*U-[p 0]))>10*%eps then pause,end +[p,U]=bezout(p1,p2+0);if norm(coeff([p1 p2]*U-[p 0]))>10*%eps then pause,end +[p,U]=bezout(p1+0,p2+0);if norm(coeff([p1 p2]*U-[p 0]))>10*%eps then pause,end + +p1=1;p2=%s; +[p,U]=bezout(p1,p2);if norm(coeff([p1 p2]*U-[p 0]))>10*%eps then pause,end +[p,U]=bezout(p1+0,p2);if norm(coeff([p1 p2]*U-[p 0]))>10*%eps then pause,end +[p,U]=bezout(p1,p2+0);if norm(coeff([p1 p2]*U-[p 0]))>10*%eps then pause,end +[p,U]=bezout(p1+0,p2+0);if norm(coeff([p1 p2]*U-[p 0]))>10*%eps then pause,end + +p1=1;p2=1; +[p,U]=bezout(p1,p2);if norm(coeff([p1 p2]*U-[p 0]))>10*%eps then pause,end +[p,U]=bezout(p1+0,p2);if norm(coeff([p1 p2]*U-[p 0]))>10*%eps then pause,end +[p,U]=bezout(p1,p2+0);if norm(coeff([p1 p2]*U-[p 0]))>10*%eps then pause,end +[p,U]=bezout(p1+0,p2+0);if norm(coeff([p1 p2]*U-[p 0]))>10*%eps then pause,end + + +//sfact +p=(%s-1/2)*(2-%s); +w=sfact(p); if norm(coeff(w*numer(horner(w,1/%s))-p))>10*%eps then pause,end +w=sfact(p+0);if norm(coeff(w*numer(horner(w,1/%s))-p))>10*%eps then pause,end + + +F1=[%z-1/2,%z+1/2,%z^2+2;1,%z,-%z;%z^3+2*%z,%z,1/2-%z]; +P=F1*gtild(F1,'d'); +F=sfact(P);if norm(coeff(P-F*gtild(F,'d')))>100*%eps then pause,end +F=sfact(P+0);if norm(coeff(P-F*gtild(F,'d')))>100*%eps then pause,end diff --git a/modules/polynomials/tests/unit_tests/polops.dia.ref b/modules/polynomials/tests/unit_tests/polops.dia.ref new file mode 100755 index 000000000..a28b78f19 --- /dev/null +++ b/modules/polynomials/tests/unit_tests/polops.dia.ref @@ -0,0 +1,782 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) ????-2008 - INRIA +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// <-- CLI SHELL MODE --> +mode(5) +lines(0) +s=poly(0,'s'); +//polynomial operations +p1=1+1.5*s; +if p1<>poly([1 1.5],'s','c') then bugmes();quit;end +p2=p1*p1; +if norm(coeff(p2-poly([1 3 2.25],'s','c')))>10*%eps then bugmes();quit;end +if norm(coeff(4*p2-poly([4 12 9],'s','c')))>10*%eps then bugmes();quit;end +if norm(coeff(p2*4-poly([4 12 9],'s','c')))>10*%eps then bugmes();quit;end +p2=p2*4; +if norm(coeff(p2/4-poly([1 3 2.25],'s','c')))>10*%eps then bugmes();quit;end +if norm(coeff(4\p2-poly([1 3 2.25],'s','c')))>10*%eps then bugmes();quit;end +p2=p2/4; +if norm(coeff((p2-1)-poly([0 3 2.25],'s','c')))>10*%eps then bugmes();quit;end +if norm(coeff((1-p2)-poly([0 -3 -2.25],'s','c')))>10*%eps then bugmes();quit;end +if norm(coeff(p2-p2))>10*%eps then bugmes();quit;end +//complex +p1=1+1.5*s+0*%i; +if norm(coeff(p1-poly([1 1.5],'s','c')))>10*%eps then bugmes();quit;end +p2=p1*p1; +if norm(coeff(p2-poly([1 3 2.25],'s','c')))>10*%eps then bugmes();quit;end +if norm(coeff(4*p2-poly([4 12 9],'s','c')))>10*%eps then bugmes();quit;end +if norm(coeff(p2*4-poly([4 12 9],'s','c')))>10*%eps then bugmes();quit;end +if norm(coeff((4+0*%i)*p2-poly([4 12 9],'s','c')))>10*%eps then bugmes();quit;end +if norm(coeff(p2*(4+0*%i)-poly([4 12 9],'s','c')))>10*%eps then bugmes();quit;end +p2=p2*4; +if norm(coeff(p2/4-poly([1 3 2.25],'s','c')))>10*%eps then bugmes();quit;end +if norm(coeff(4\p2-poly([1 3 2.25],'s','c')))>10*%eps then bugmes();quit;end +if norm(coeff(p2/(4+0*%i)-poly([1 3 2.25],'s','c')))>10*%eps then bugmes();quit;end +if norm(coeff((4+0*%i)\p2-poly([1 3 2.25],'s','c')))>10*%eps then bugmes();quit;end +p2=p2/4; +if norm(coeff((p2-1)-poly([0 3 2.25],'s','c')))>10*%eps then bugmes();quit;end +if norm(coeff((1-p2)-poly([0 -3 -2.25],'s','c')))>10*%eps then bugmes();quit;end +if norm(coeff((p2-(1+0*%i))-poly([0 3 2.25],'s','c')))>10*%eps then bugmes();quit;end +if norm(coeff(((1+0*%i)-p2)-poly([0 -3 -2.25],'s','c')))>10*%eps then bugmes();quit;end +// +if norm(coeff(p2-p2))>10*%eps then bugmes();quit;end +// +//concatenations extraction +p1=1+1.5*s;p2=1; +p3=[p1 p2]; +if norm(coeff(p3(1)-p1))>%eps then bugmes();quit;end +if norm(coeff(p3(2)-p2))>%eps then bugmes();quit;end +if norm(coeff(p3(1:2)-p3))>%eps then bugmes();quit;end +if norm(coeff(p3([2 1])-[p2 p1]))>%eps then bugmes();quit;end +p2=p1+4*s**2; +p3=[p1 p2]; +if norm(coeff(p3(1)-p1))>%eps then bugmes();quit;end +if norm(coeff(p3(2)-p2))>%eps then bugmes();quit;end +if norm(coeff(p3(1:2)-p3))>%eps then bugmes();quit;end +if norm(coeff(p3([2 1])-[p2 p1]))>%eps then bugmes();quit;end +//en colonne +p1=1+1.5*s;p2=1; +p3=[p1;p2]; +if norm(coeff(p3(1)-p1))>%eps then bugmes();quit;end +if norm(coeff(p3(2)-p2))>%eps then bugmes();quit;end +if norm(coeff(p3(1:2)-p3))>%eps then bugmes();quit;end +if norm(coeff(p3([2 1])-[p2;p1]))>%eps then bugmes();quit;end +p2=p1+4*s**2; +p3=[p1;p2]; +if norm(coeff(p3(1)-p1))>%eps then bugmes();quit;end +if norm(coeff(p3(2)-p2))>%eps then bugmes();quit;end +if norm(coeff(p3(1:2)-p3))>%eps then bugmes();quit;end +if norm(coeff(p3([2 1])-[p2;p1]))>%eps then bugmes();quit;end +// +p1=1+1.5*s;p2=1+%i; +p3=[p1 p2]; +if norm(coeff(p3(1)-p1))>%eps then bugmes();quit;end +if norm(coeff(p3(2)-p2))>%eps then bugmes();quit;end +if norm(coeff(p3(1:2)-p3))>%eps then bugmes();quit;end +if norm(coeff(p3([2 1])-[p2 p1]))>%eps then bugmes();quit;end +p2=p1+4*s**2+%i; +p3=[p1 p2]; +if norm(coeff(p3(1)-p1))>%eps then bugmes();quit;end +if norm(coeff(p3(2)-p2))>%eps then bugmes();quit;end +if norm(coeff(p3(1:2)-p3))>%eps then bugmes();quit;end +if norm(coeff(p3([2 1])-[p2 p1]))>%eps then bugmes();quit;end +//en colonne +p1=1+1.5*s;p2=1+%i; +p3=[p1;p2]; +if norm(coeff(p3(1)-p1))>%eps then bugmes();quit;end +if norm(coeff(p3(2)-p2))>%eps then bugmes();quit;end +if norm(coeff(p3(1:2)-p3))>%eps then bugmes();quit;end +if norm(coeff(p3([2 1])-[p2;p1]))>%eps then bugmes();quit;end +p2=p1+4*s**2+%i; +p3=[p1;p2]; +if norm(coeff(p3(1)-p1))>%eps then bugmes();quit;end +if norm(coeff(p3(2)-p2))>%eps then bugmes();quit;end +if norm(coeff(p3(1:2)-p3))>%eps then bugmes();quit;end +if norm(coeff(p3([2 1])-[p2;p1]))>%eps then bugmes();quit;end +// complex reel +//en ligne +p1=1+1.5*s+%i;p2=1; +p3=[p1 p2]; +if norm(coeff(p3(1)-p1))>%eps then bugmes();quit;end +if norm(coeff(p3(2)-p2))>%eps then bugmes();quit;end +if norm(coeff(p3(1:2)-p3))>%eps then bugmes();quit;end +if norm(coeff(p3([2 1])-[p2 p1]))>%eps then bugmes();quit;end +p2=p1+4*s**2; +p3=[p1 p2]; +if norm(coeff(p3(1)-p1))>%eps then bugmes();quit;end +if norm(coeff(p3(2)-p2))>%eps then bugmes();quit;end +if norm(coeff(p3(1:2)-p3))>%eps then bugmes();quit;end +if norm(coeff(p3([2 1])-[p2 p1]))>%eps then bugmes();quit;end +//en colonne +p1=1+1.5*s+%i;p2=1; +p3=[p1;p2]; +if norm(coeff(p3(1)-p1))>%eps then bugmes();quit;end +if norm(coeff(p3(2)-p2))>%eps then bugmes();quit;end +if norm(coeff(p3(1:2)-p3))>%eps then bugmes();quit;end +if norm(coeff(p3([2 1])-[p2;p1]))>%eps then bugmes();quit;end +p2=p1+4*s**2; +p3=[p1;p2]; +if norm(coeff(p3(1)-p1))>%eps then bugmes();quit;end +if norm(coeff(p3(2)-p2))>%eps then bugmes();quit;end +if norm(coeff(p3(1:2)-p3))>%eps then bugmes();quit;end +if norm(coeff(p3([2 1])-[p2;p1]))>%eps then bugmes();quit;end +//complex complex +//en ligne +p1=1+1.5*s+%i;p2=1+%i; +p3=[p1 p2]; +if norm(coeff(p3(1)-p1))>%eps then bugmes();quit;end +if norm(coeff(p3(2)-p2))>%eps then bugmes();quit;end +if norm(coeff(p3(1:2)-p3))>%eps then bugmes();quit;end +if norm(coeff(p3([2 1])-[p2 p1]))>%eps then bugmes();quit;end +p2=p1+4*s**2+%i; +p3=[p1 p2]; +if norm(coeff(p3(1)-p1))>%eps then bugmes();quit;end +if norm(coeff(p3(2)-p2))>%eps then bugmes();quit;end +if norm(coeff(p3(1:2)-p3))>%eps then bugmes();quit;end +if norm(coeff(p3([2 1])-[p2 p1]))>%eps then bugmes();quit;end +//en colonne +p1=1+1.5*s+%i;p2=1+%i; +p3=[p1;p2]; +if norm(coeff(p3(1)-p1))>%eps then bugmes();quit;end +if norm(coeff(p3(2)-p2))>%eps then bugmes();quit;end +if norm(coeff(p3(1:2)-p3))>%eps then bugmes();quit;end +if norm(coeff(p3([2 1])-[p2;p1]))>%eps then bugmes();quit;end +p2=p1+4*s**2+%i; +p3=[p1;p2]; +if norm(coeff(p3(1)-p1))>%eps then bugmes();quit;end +if norm(coeff(p3(2)-p2))>%eps then bugmes();quit;end +if norm(coeff(p3(1:2)-p3))>%eps then bugmes();quit;end +if norm(coeff(p3([2 1])-[p2;p1]))>%eps then bugmes();quit;end +// +// real real +// +p1=[1+1.5*s;s**2]; +// +if norm(coeff(p1'-[p1(1),p1(2)]))>10*%eps then bugmes();quit;end +if norm(coeff((-p1)+p1))>10*%eps then bugmes();quit;end +if norm(coeff((-p1')+p1'))>10*%eps then bugmes();quit;end +// +x=[1+s**3; 4]; +p3=p1(1)*x(1)+p1(2)*x(2); +if norm(coeff(p1'*x-p3))>10*%eps then bugmes();quit;end +p3=[p1(1)*x(1),p1(1)*x(2);p1(2)*x(1), p1(2)*x(2)]; +if norm(coeff(p1*x'-p3))>10*%eps then bugmes();quit;end +// +x=[1.5;1/3]; +p3=p1(1)*x(1)+p1(2)*x(2); +if norm(coeff(p1'*x-p3))>10*%eps then bugmes();quit;end +if norm(coeff(x'*p1-p3))>10*%eps then bugmes();quit;end +p3=[p1(1)*x(1),p1(1)*x(2);p1(2)*x(1), p1(2)*x(2)]; +if norm(coeff(p1*x'-p3))>10*%eps then bugmes();quit;end +if norm(coeff(x*p1'-p3'))>10*%eps then bugmes();quit;end +// +x=4; +if norm(coeff(x*p1-[x*p1(1);x*p1(2)]))>10*%eps then bugmes();quit;end +if norm(coeff(p1*x-[x*p1(1);x*p1(2)]))>10*%eps then bugmes();quit;end +if norm(coeff(x*p1'-[x*p1(1),x*p1(2)]))>10*%eps then bugmes();quit;end +if norm(coeff(p1'*x-[x*p1(1),x*p1(2)]))>10*%eps then bugmes();quit;end +// +x=[1+s**3; 4]; +p3=[p1(1)*x(1);p1(2)*x(2)]; +if norm(coeff(p1.*x-p3))>10*%eps then bugmes();quit;end +x=[1.5;1/3]; +p3=[p1(1)*x(1);p1(2)*x(2)]; +if norm(coeff(p1.*x-p3))>10*%eps then bugmes();quit;end +if norm(coeff(x.*p1-p3))>10*%eps then bugmes();quit;end +x=[1+s**3,4]; +p3=[p1(1)*x(1),p1(2)*x(2)]; +if norm(coeff(p1'.*x-p3))>10*%eps then bugmes();quit;end +x=[1.5,1/3]; +p3=[p1(1)*x(1),p1(2)*x(2)]; +if norm(coeff(p1'.*x-p3))>10*%eps then bugmes();quit;end +if norm(coeff(x.*p1'-p3))>10*%eps then bugmes();quit;end +// matrices +p1=[1+1.5*s,s**2, 0;1 s s+1]; +// +if norm(coeff((-p1)+p1))>10*%eps then bugmes();quit;end +// +x=[1,s;-1,2*s;2,0]; +p3=[p1(1,1)*x(1,1)+p1(1,2)*x(2,1)+p1(1,3)*x(3,1),... + p1(1,1)*x(1,2)+p1(1,2)*x(2,2)+p1(1,3)*x(3,2); + p1(2,1)*x(1,1)+p1(2,2)*x(2,1)+p1(2,3)*x(3,1),... + p1(2,1)*x(1,2)+p1(2,2)*x(2,2)+p1(2,3)*x(3,2)]; +if norm(coeff(p1*x-p3))>10*%eps then bugmes();quit;end +// +x=[1 1.5;2 1/3;sqrt(7) 8]; +p3=[p1(1,1)*x(1,1)+p1(1,2)*x(2,1)+p1(1,3)*x(3,1),... + p1(1,1)*x(1,2)+p1(1,2)*x(2,2)+p1(1,3)*x(3,2); + p1(2,1)*x(1,1)+p1(2,2)*x(2,1)+p1(2,3)*x(3,1),... + p1(2,1)*x(1,2)+p1(2,2)*x(2,2)+p1(2,3)*x(3,2)]; +if norm(coeff(p1*x-p3))>10*%eps then bugmes();quit;end +// +x=5; +p3=[x*p1(1,1),x*p1(1,2),x*p1(1,3); + x*p1(2,1),x*p1(2,2),x*p1(2,3)]; +if norm(coeff(p1*x-p3))>10*%eps then bugmes();quit;end +if norm(coeff(x*p1-p3))>10*%eps then bugmes();quit;end +// +x=[1+s**3, 4,-s;0,s+1,10*s**4]; +p3=[p1(1,1)*x(1,1),p1(1,2)*x(1,2),p1(1,3)*x(1,3); + p1(2,1)*x(2,1),p1(2,2)*x(2,2),p1(2,3)*x(2,3)]; +if norm(coeff(p1.*x-p3))>10*%eps then bugmes();quit;end +x=[1 1.5;2 1/3;sqrt(7) 8]'; +p3=[p1(1,1)*x(1,1),p1(1,2)*x(1,2),p1(1,3)*x(1,3); + p1(2,1)*x(2,1),p1(2,2)*x(2,2),p1(2,3)*x(2,3)]; +if norm(coeff(p1.*x-p3))>10*%eps then bugmes();quit;end +if norm(coeff(x.*p1-p3))>10*%eps then bugmes();quit;end +// +// real complex +// +p1=[1+1.5*s;s**2]; +// +if norm(coeff(p1'-[p1(1),p1(2)]))>10*%eps then bugmes();quit;end +if norm(coeff((-p1)+p1))>10*%eps then bugmes();quit;end +if norm(coeff((-p1')+p1'))>10*%eps then bugmes();quit;end +// +x=[1+s**3; 4+%i]; +p3=p1(1)*x(1)+p1(2)*x(2); +if norm(coeff(p1'*x-p3))>10*%eps then bugmes();quit;end +p3=[p1(1)*x(1),p1(1)*x(2);p1(2)*x(1), p1(2)*x(2)]; +if norm(coeff(p1*conj(x')-p3))>10*%eps then bugmes();quit;end +// +x=[1.5+%i;1/3]; +p3=p1(1)*x(1)+p1(2)*x(2); +if norm(coeff(p1'*x-p3))>10*%eps then bugmes();quit;end +if norm(coeff(conj(x')*p1-p3))>10*%eps then bugmes();quit;end +p3=[p1(1)*x(1),p1(1)*x(2);p1(2)*x(1), p1(2)*x(2)]; +if norm(coeff(p1*conj(x')-p3))>10*%eps then bugmes();quit;end +if norm(coeff(x*p1'-conj(p3')))>10*%eps then bugmes();quit;end +// +x=4+%i; +if norm(coeff(x*p1-[x*p1(1);x*p1(2)]))>10*%eps then bugmes();quit;end +if norm(coeff(p1*x-[x*p1(1);x*p1(2)]))>10*%eps then bugmes();quit;end +if norm(coeff(x*p1'-[x*p1(1),x*p1(2)]))>10*%eps then bugmes();quit;end +if norm(coeff(p1'*x-[x*p1(1),x*p1(2)]))>10*%eps then bugmes();quit;end +// +x=[1+s**3; 4-3*%i]; +p3=[p1(1)*x(1);p1(2)*x(2)]; +if norm(coeff(p1.*x-p3))>10*%eps then bugmes();quit;end +x=[1.5+%i/5;1/3]; +p3=[p1(1)*x(1);p1(2)*x(2)]; +if norm(coeff(p1.*x-p3))>10*%eps then bugmes();quit;end +if norm(coeff(x.*p1-p3))>10*%eps then bugmes();quit;end +x=[1+s**3,4-%i]; +p3=[p1(1)*x(1),p1(2)*x(2)]; +if norm(coeff(p1'.*x-p3))>10*%eps then bugmes();quit;end +x=[1.5,1/3-3*%i]; +p3=[p1(1)*x(1),p1(2)*x(2)]; +if norm(coeff(p1'.*x-p3))>10*%eps then bugmes();quit;end +if norm(coeff(x.*p1'-p3))>10*%eps then bugmes();quit;end +// matrices +p1=[1+1.5*s,s**2, 0;1 s s+1]; +// +if norm(coeff((-p1)+p1))>10*%eps then bugmes();quit;end +// +x=[1,s+%i ;-1,2*s;2,0]; +p3=[p1(1,1)*x(1,1)+p1(1,2)*x(2,1)+p1(1,3)*x(3,1),... + p1(1,1)*x(1,2)+p1(1,2)*x(2,2)+p1(1,3)*x(3,2); + p1(2,1)*x(1,1)+p1(2,2)*x(2,1)+p1(2,3)*x(3,1),... + p1(2,1)*x(1,2)+p1(2,2)*x(2,2)+p1(2,3)*x(3,2)]; +if norm(coeff(p1*x-p3))>10*%eps then bugmes();quit;end +// +x=[1 1.5;2 1/3;%i-sqrt(7) 8]; +p3=[p1(1,1)*x(1,1)+p1(1,2)*x(2,1)+p1(1,3)*x(3,1),... + p1(1,1)*x(1,2)+p1(1,2)*x(2,2)+p1(1,3)*x(3,2); + p1(2,1)*x(1,1)+p1(2,2)*x(2,1)+p1(2,3)*x(3,1),... + p1(2,1)*x(1,2)+p1(2,2)*x(2,2)+p1(2,3)*x(3,2)]; +if norm(coeff(p1*x-p3))>10*%eps then bugmes();quit;end +// +x=5-2*%i; +p3=[x*p1(1,1),x*p1(1,2),x*p1(1,3); + x*p1(2,1),x*p1(2,2),x*p1(2,3)]; +if norm(coeff(p1*x-p3))>10*%eps then bugmes();quit;end +if norm(coeff(x*p1-p3))>10*%eps then bugmes();quit;end +// +x=[1+s**3, 4-3*%i,-s;0,s+1,10*s**4]; +p3=[p1(1,1)*x(1,1),p1(1,2)*x(1,2),p1(1,3)*x(1,3); + p1(2,1)*x(2,1),p1(2,2)*x(2,2),p1(2,3)*x(2,3)]; +if norm(coeff(p1.*x-p3))>10*%eps then bugmes();quit;end +x=[1 1.5;2-%i/7, 1/3;sqrt(7) 8]'; +p3=[p1(1,1)*x(1,1),p1(1,2)*x(1,2),p1(1,3)*x(1,3); + p1(2,1)*x(2,1),p1(2,2)*x(2,2),p1(2,3)*x(2,3)]; +if norm(coeff(p1.*x-p3))>10*%eps then bugmes();quit;end +if norm(coeff(x.*p1-p3))>10*%eps then bugmes();quit;end +// +// complex real +// +p1=[1+1.5*s;s**2+%i]; +// +if norm(coeff(conj(p1')-[p1(1),p1(2)]))>10*%eps then bugmes();quit;end +if norm(coeff((-p1)+p1))>10*%eps then bugmes();quit;end +if norm(coeff((-conj(p1'))+conj(p1')))>10*%eps then bugmes();quit;end +// +x=[1+s**3; 4]; +p3=p1(1)*x(1)+p1(2)*x(2); +if norm(coeff(conj(p1')*x-p3))>10*%eps then bugmes();quit;end +p3=[p1(1)*x(1),p1(1)*x(2);p1(2)*x(1), p1(2)*x(2)]; +if norm(coeff(p1*x'-p3))>10*%eps then bugmes();quit;end +// +x=[1.5;1/3]; +p3=p1(1)*x(1)+p1(2)*x(2); +if norm(coeff(conj(p1')*x-p3))>10*%eps then bugmes();quit;end +if norm(coeff(x'*p1-p3))>10*%eps then bugmes();quit;end +p3=[p1(1)*x(1),p1(1)*x(2);p1(2)*x(1), p1(2)*x(2)]; +if norm(coeff(p1*x'-p3))>10*%eps then bugmes();quit;end +if norm(coeff(x*conj(p1')-conj(p3')))>10*%eps then bugmes();quit;end +// +x=4; +if norm(coeff(x*p1-[x*p1(1);x*p1(2)]))>10*%eps then bugmes();quit;end +if norm(coeff(p1*x-[x*p1(1);x*p1(2)]))>10*%eps then bugmes();quit;end +if norm(coeff(x*conj(p1')-[x*p1(1),x*p1(2)]))>10*%eps then bugmes();quit;end +if norm(coeff(conj(p1')*x-[x*p1(1),x*p1(2)]))>10*%eps then bugmes();quit;end +// +x=[1+s**3; 4]; +p3=[p1(1)*x(1);p1(2)*x(2)]; +if norm(coeff(p1.*x-p3))>10*%eps then bugmes();quit;end +x=[1.5;1/3]; +p3=[p1(1)*x(1);p1(2)*x(2)]; +if norm(coeff(p1.*x-p3))>10*%eps then bugmes();quit;end +if norm(coeff(x.*p1-p3))>10*%eps then bugmes();quit;end +x=[1+s**3,4]; +p3=[p1(1)*x(1),p1(2)*x(2)]; +if norm(coeff(conj(p1').*x-p3))>10*%eps then bugmes();quit;end +x=[1.5,1/3]; +p3=[p1(1)*x(1),p1(2)*x(2)]; +if norm(coeff(conj(p1').*x-p3))>10*%eps then bugmes();quit;end +if norm(coeff(x.*conj(p1')-p3))>10*%eps then bugmes();quit;end +//matrices +p1=[1+1.5*s,s**2, 0;1 s s+1-%i/3]; +// +if norm(coeff((-p1)+p1))>10*%eps then bugmes();quit;end +// +x=[1,s ;-1,2*s;2,0]; +p3=[p1(1,1)*x(1,1)+p1(1,2)*x(2,1)+p1(1,3)*x(3,1),... + p1(1,1)*x(1,2)+p1(1,2)*x(2,2)+p1(1,3)*x(3,2); + p1(2,1)*x(1,1)+p1(2,2)*x(2,1)+p1(2,3)*x(3,1),... + p1(2,1)*x(1,2)+p1(2,2)*x(2,2)+p1(2,3)*x(3,2)]; +if norm(coeff(p1*x-p3))>10*%eps then bugmes();quit;end +// +x=[1 1.5;2 1/3;sqrt(7) 8]; +p3=[p1(1,1)*x(1,1)+p1(1,2)*x(2,1)+p1(1,3)*x(3,1),... + p1(1,1)*x(1,2)+p1(1,2)*x(2,2)+p1(1,3)*x(3,2); + p1(2,1)*x(1,1)+p1(2,2)*x(2,1)+p1(2,3)*x(3,1),... + p1(2,1)*x(1,2)+p1(2,2)*x(2,2)+p1(2,3)*x(3,2)]; +if norm(coeff(p1*x-p3))>10*%eps then bugmes();quit;end +// +x=5; +p3=[x*p1(1,1),x*p1(1,2),x*p1(1,3); + x*p1(2,1),x*p1(2,2),x*p1(2,3)]; +if norm(coeff(p1*x-p3))>10*%eps then bugmes();quit;end +if norm(coeff(x*p1-p3))>10*%eps then bugmes();quit;end +// +x=[1+s**3,4,-s;0,s+1,10*s**4]; +p3=[p1(1,1)*x(1,1),p1(1,2)*x(1,2),p1(1,3)*x(1,3); + p1(2,1)*x(2,1),p1(2,2)*x(2,2),p1(2,3)*x(2,3)]; +if norm(coeff(p1.*x-p3))>10*%eps then bugmes();quit;end +x=[1 1.5;2, 1/3;sqrt(7) 8]'; +p3=[p1(1,1)*x(1,1),p1(1,2)*x(1,2),p1(1,3)*x(1,3); + p1(2,1)*x(2,1),p1(2,2)*x(2,2),p1(2,3)*x(2,3)]; +if norm(coeff(p1.*x-p3))>10*%eps then bugmes();quit;end +if norm(coeff(x.*p1-p3))>10*%eps then bugmes();quit;end +// +// complex complex +// +p1=[1+1.5*s;s**2+%i]; +// +if norm(coeff(conj(p1')-[p1(1),p1(2)]))>10*%eps then bugmes();quit;end +if norm(coeff((-p1)+p1))>10*%eps then bugmes();quit;end +if norm(coeff((-conj(p1'))+conj(p1')))>10*%eps then bugmes();quit;end +// +x=[1+s**3; 4-%i]; +p3=p1(1)*x(1)+p1(2)*x(2); +if norm(coeff(conj(p1')*x-p3))>10*%eps then bugmes();quit;end +p3=[p1(1)*x(1),p1(1)*x(2);p1(2)*x(1), p1(2)*x(2)]; +if norm(coeff(p1*conj(x')-p3))>10*%eps then bugmes();quit;end +// +x=[1.5+%i/5;1/3]; +p3=p1(1)*x(1)+p1(2)*x(2); +if norm(coeff(conj(p1')*x-p3))>10*%eps then bugmes();quit;end +if norm(coeff(conj(x')*p1-p3))>10*%eps then bugmes();quit;end +p3=[p1(1)*x(1),p1(1)*x(2);p1(2)*x(1), p1(2)*x(2)]; +if norm(coeff(p1*conj(x')-p3))>10*%eps then bugmes();quit;end +if norm(coeff(x*conj(p1')-conj(p3')))>10*%eps then bugmes();quit;end +//produit d'un vecteur de polynome par un scalaire +x=4+%i/7; +if norm(coeff(x*p1-[x*p1(1);x*p1(2)]))>10*%eps then bugmes();quit;end +if norm(coeff(p1*x-[x*p1(1);x*p1(2)]))>10*%eps then bugmes();quit;end +if norm(coeff(x*conj(p1')-[x*p1(1),x*p1(2)]))>10*%eps then bugmes();quit;end +if norm(coeff(conj(p1')*x-[x*p1(1),x*p1(2)]))>10*%eps then bugmes();quit;end +// +x=[1+s**3; 4-%i]; +p3=[p1(1)*x(1);p1(2)*x(2)]; +if norm(coeff(p1.*x-p3))>10*%eps then bugmes();quit;end +x=[1.5+2*%i;1/3]; +p3=[p1(1)*x(1);p1(2)*x(2)]; +if norm(coeff(p1.*x-p3))>10*%eps then bugmes();quit;end +if norm(coeff(x.*p1-p3))>10*%eps then bugmes();quit;end +x=[1+s**3+%i,4-%i]; +p3=[p1(1)*x(1),p1(2)*x(2)]; +if norm(coeff(conj(p1').*x-p3))>10*%eps then bugmes();quit;end +x=[1.5+3*%i,1/3]; +p3=[p1(1)*x(1),p1(2)*x(2)]; +if norm(coeff(conj(p1').*x-p3))>10*%eps then bugmes();quit;end +if norm(coeff(x.*conj(p1')-p3))>10*%eps then bugmes();quit;end +//matrices +p1=[1+1.5*s,s**2, 0;1 s s+1-%i/3]; +// +if norm(coeff((-p1)+p1))>10*%eps then bugmes();quit;end +// +x=[1-%i,s ;-1,2*s;2,0+%i*s**4]; +p3=[p1(1,1)*x(1,1)+p1(1,2)*x(2,1)+p1(1,3)*x(3,1),... + p1(1,1)*x(1,2)+p1(1,2)*x(2,2)+p1(1,3)*x(3,2); + p1(2,1)*x(1,1)+p1(2,2)*x(2,1)+p1(2,3)*x(3,1),... + p1(2,1)*x(1,2)+p1(2,2)*x(2,2)+p1(2,3)*x(3,2)]; +if norm(coeff(p1*x-p3))>10*%eps then bugmes();quit;end +// +x=[1 1.5+5*%i;2 1/3;%i-sqrt(7) 8]; +p3=[p1(1,1)*x(1,1)+p1(1,2)*x(2,1)+p1(1,3)*x(3,1),... + p1(1,1)*x(1,2)+p1(1,2)*x(2,2)+p1(1,3)*x(3,2); + p1(2,1)*x(1,1)+p1(2,2)*x(2,1)+p1(2,3)*x(3,1),... + p1(2,1)*x(1,2)+p1(2,2)*x(2,2)+p1(2,3)*x(3,2)]; +if norm(coeff(p1*x-p3))>10*%eps then bugmes();quit;end +// +x=5+8*%i; +p3=[x*p1(1,1),x*p1(1,2),x*p1(1,3); + x*p1(2,1),x*p1(2,2),x*p1(2,3)]; +if norm(coeff(p1*x-p3))>10*%eps then bugmes();quit;end +if norm(coeff(x*p1-p3))>10*%eps then bugmes();quit;end +// +x=[1+s**3,4+10*%i,-s;0,s+1,10*s**4+%i*s**3]; +p3=[p1(1,1)*x(1,1),p1(1,2)*x(1,2),p1(1,3)*x(1,3); + p1(2,1)*x(2,1),p1(2,2)*x(2,2),p1(2,3)*x(2,3)]; +if norm(coeff(p1.*x-p3))>10*%eps then bugmes();quit;end +x=[1 1.5;2, 1/3;sqrt(7)/%i, 8]'; +p3=[p1(1,1)*x(1,1),p1(1,2)*x(1,2),p1(1,3)*x(1,3); + p1(2,1)*x(2,1),p1(2,2)*x(2,2),p1(2,3)*x(2,3)]; +if norm(coeff(p1.*x-p3))>10*%eps then bugmes();quit;end +if norm(coeff(x.*p1-p3))>10*%eps then bugmes();quit;end +// +// +// +// real real +z=poly(0,'z');p1=[1+3*z;z;2*z;z*4];p2=[0*z 1+z z-1 -z];p3=[p1 p2']; +pp1=p1;pp2=p2;pp3=p3; +pp1(2)=pp2(1);if pp1(2) <> pp2(1) then bugmes();quit;end +pp2(3)=pp1(4);if pp2(3) <> pp1(4) then bugmes();quit;end +pp3(2,1)=pp2(1);pp3(3,2)=pp1(4);if pp3 <> [pp1 pp2'] then bugmes();quit;end +pp1(1:4)=pp2';if pp1<> pp2' then bugmes();quit;end +pp1((1:4)')=pp2';if pp1<> pp2' then bugmes();quit;end +pp1=p1;pp2=p2; +pp1(6)=-8;if pp1 <> [p1;0;-8] then bugmes();quit;end +pp2(7)=+z**3;,if pp2 <> [p2,0,0,+z**3;] then bugmes();quit;end +pp1=p1;pp2=p2; +pp1(5:8)=p1;if pp1 <> [p1;p1] then bugmes();quit;end +pp2(6:9)=p2;if pp2 <> [p2 0 p2] then bugmes();quit;end +pp1=p1;pp2=p2; +pp1(:)=p2';if pp1 <> p2' then bugmes();quit;end +pp2(:)=p1';if pp2 <> p1' then bugmes();quit;end +pp1=p1;pp2=p2; +pp1(8:-1:5)=p1;if pp1 <> [p1;p1(4:-1:1)] then bugmes();quit;end +pp2(8:-1:5)=p2;if pp2 <> [p2 p2(4:-1:1)] then bugmes();quit;end +pp3=p3; +pp3(1:4,1)=p2';if pp3 <> [p2' p2'] then bugmes();quit;end +pp3(1:4,2)=p1;if pp3 <> [p2' p1] then bugmes();quit;end +pp3=p3; +pp3(:,1)=p2';if pp3 <> [p2' p2'] then bugmes();quit;end +pp3(:,2)=p1;if pp3 <> [p2' p1] then bugmes();quit;end +pp3(:,:)=p3;if pp3 <> p3 then bugmes();quit;end +pp3=p3; +pp3(:,4)=p1;if pp3 <> [p3 [0;0;0;0] p1] then bugmes();quit;end +pp3=p3; +pp3(6:9,:)=p3;if pp3 <> [p3;[0 0];p3] then bugmes();quit;end +// +p1=[1+3*s;s;2*s;s*4];p2=[0*s-2.5*%i, 1+s, s-1+3*%i ,-s];p3=[p1 conj(p2')]; +pp1=p1;pp2=p2;pp3=p3; +pp1(2)=pp2(1);if pp1(2) <> pp2(1) then bugmes();quit;end +pp2(3)=pp1(4);if pp2(3) <> pp1(4) then bugmes();quit;end +pp3(2,1)=pp2(1);pp3(3,2)=pp1(4);if pp3 <> [pp1 conj(pp2')] then bugmes();quit;end +pp1(1:4)=conj(pp2');if pp1<> conj(pp2') then bugmes();quit;end +pp1((1:4)')=conj(pp2');if pp1<> conj(pp2') then bugmes();quit;end +pp1=p1;pp2=p2; +pp1(6)=-8;if pp1 <> [p1;0;-8] then bugmes();quit;end +pp2(7)=+s**3;,if pp2 <> [p2,0,0,+s**3;] then bugmes();quit;end +pp1=p1;pp2=p2; +pp1(5:8)=p1;if pp1 <> [p1;p1] then bugmes();quit;end +pp2(6:9)=p2;if pp2 <> [p2 0 p2] then bugmes();quit;end +pp1=p1;pp2=p2; +pp1(:)=conj(p2');if pp1 <> conj(p2') then bugmes();quit;end +pp2(:)=p1';if norm(coeff(pp2-p1'))>10*%eps then bugmes();quit;end +pp1=p1;pp2=p2; +pp1(8:-1:5)=p1;if pp1 <> [p1;p1(4:-1:1)] then bugmes();quit;end +pp2(8:-1:5)=p2;if pp2 <> [p2 p2(4:-1:1)] then bugmes();quit;end +pp3=p3; +pp3(1:4,1)=conj(p2');if pp3 <> [conj(p2') conj(p2')] then bugmes();quit;end +pp3(1:4,2)=p1;if pp3 <> [conj(p2') p1] then bugmes();quit;end +pp3=p3; +pp3(:,1)=conj(p2');if pp3 <> [conj(p2') conj(p2')] then bugmes();quit;end +pp3(:,2)=p1;if pp3 <> [conj(p2') p1] then bugmes();quit;end +pp3(:,:)=p3;if pp3 <> p3 then bugmes();quit;end +pp3=p3; +pp3(:,4)=p1;if pp3 <> [p3 [0;0;0;0] p1] then bugmes();quit;end +pp3=p3; +pp3(6:9,:)=p3;if pp3 <> [p3;[0 0];p3] then bugmes();quit;end +// +p1=[1+3*s;s-%i;2*s;s*4+3*%i*s**2];p2=[0*s 1+s s-1 -s];p3=[p1 p2']; +pp1=p1;pp2=p2;pp3=p3; +pp1(2)=pp2(1);if norm(coeff(pp1(2)-pp2(1)))>10*%eps then bugmes();quit;end +pp2(3)=pp1(4);if norm(coeff(pp2(3)-pp1(4)))>10*%eps then bugmes();quit;end +pp3(2,1)=pp2(1);pp3(3,2)=pp1(4);if pp3 <> [pp1 conj(pp2')] then bugmes();quit;end +pp1(1:4)=pp2';if pp1<> pp2' then bugmes();quit;end +pp1((1:4)')=pp2';if pp1<> pp2' then bugmes();quit;end +pp1=p1;pp2=p2; +pp1(6)=-8;if pp1 <> [p1;0;-8] then bugmes();quit;end +pp2(7)=+s**3;,if pp2 <> [p2,0,0,+s**3] then bugmes();quit;end +pp1=p1;pp2=p2; +pp1(5:8)=p1;if pp1 <> [p1;p1] then bugmes();quit;end +pp2(6:9)=p2;if pp2 <> [p2 0 p2] then bugmes();quit;end +pp1=p1;pp2=p2; +pp1(:)=p2';if norm(coeff(pp1-p2'))>10*%eps then bugmes();quit;end +pp2(:)=p1';if norm(coeff(pp2-p1'))>10*%eps then bugmes();quit;end +pp1=p1;pp2=p2; +pp1(8:-1:5)=p1;if pp1 <> [p1;p1(4:-1:1)] then bugmes();quit;end +pp2(8:-1:5)=p2;if pp2 <> [p2 p2(4:-1:1)] then bugmes();quit;end +pp3=p3; +pp3(1:4,1)=p2';if norm(coeff(pp3-[p2' p2']))>10*%eps then bugmes();quit;end +pp3(1:4,2)=p1;if norm(coeff(pp3-[p2' p1]))>10*%eps then bugmes();quit;end +pp3=p3; +pp3(:,1)=p2';if norm(coeff(pp3-[p2' p2']))>10*%eps then bugmes();quit;end +pp3(:,2)=p1;if norm(coeff(pp3-[p2' p1]))>10*%eps then bugmes();quit;end +pp3(:,:)=p3;if pp3 <> p3 then bugmes();quit;end +pp3=p3; +pp3(:,4)=p1;if pp3 <> [p3 [0;0;0;0] p1] then bugmes();quit;end +pp3=p3; +pp3(6:9,:)=p3;if pp3 <> [p3;[0 0];p3] then bugmes();quit;end +p1=[1+3*s;s;2*s;s*4];p2=[0*s-2.5*%i, 1+s, s-1+3*%i ,-s];p3=[p1 conj(p2')]; +pp1=p1;pp2=p2;pp3=p3; +pp1(2)=pp2(1);if pp1(2) <> pp2(1) then bugmes();quit;end +pp2(3)=pp1(4);if pp2(3) <> pp1(4) then bugmes();quit;end +pp3(2,1)=pp2(1);pp3(3,2)=pp1(4);if pp3 <> [pp1 conj(pp2')] then bugmes();quit;end +pp1(1:4)=conj(pp2');if pp1<> conj(pp2') then bugmes();quit;end +pp1((1:4)')=conj(pp2');if pp1<> conj(pp2') then bugmes();quit;end +pp1=p1;pp2=p2; +pp1(6)=-8;if pp1 <> [p1;0;-8] then bugmes();quit;end +pp2(7)=+s**3;,if pp2 <> [p2,0,0,+s**3] then bugmes();quit;end +pp1=p1;pp2=p2; +pp1(5:8)=p1;if pp1 <> [p1;p1] then bugmes();quit;end +pp2(6:9)=p2;if pp2 <> [p2 0 p2] then bugmes();quit;end +pp1=p1;pp2=p2; +pp1(:)=conj(p2');if pp1 <> conj(p2') then bugmes();quit;end +pp2(:)=p1';if norm(coeff(pp2-p1'))>10*%eps then bugmes();quit;end +pp1=p1;pp2=p2; +pp1(8:-1:5)=p1;if pp1 <> [p1;p1(4:-1:1)] then bugmes();quit;end +pp2(8:-1:5)=p2;if pp2 <> [p2 p2(4:-1:1)] then bugmes();quit;end +pp3=p3; +pp3(1:4,1)=conj(p2');if pp3 <> [conj(p2') conj(p2')] then bugmes();quit;end +pp3(1:4,2)=p1;if pp3 <> [conj(p2') p1] then bugmes();quit;end +pp3=p3; +pp3(:,1)=conj(p2');if pp3 <> [conj(p2') conj(p2')] then bugmes();quit;end +pp3(:,2)=p1;if pp3 <> [conj(p2') p1] then bugmes();quit;end +pp3(:,:)=p3;if pp3 <> p3 then bugmes();quit;end +pp3=p3; +pp3(:,4)=p1;if pp3 <> [p3 [0;0;0;0] p1] then bugmes();quit;end +pp3=p3; +pp3(6:9,:)=p3;if pp3 <> [p3;[0 0];p3] then bugmes();quit;end +// +p1=[1+3*s;s+%i*s**3;2*s;s*4+%i];p2=[0*s-2.5*%i,1+s,s-1+3*%i,-s]; +p3=[p1 conj(p2')]; +pp1=p1;pp2=p2;pp3=p3; +pp1(2)=pp2(1);if pp1(2) <> pp2(1) then bugmes();quit;end +pp2(3)=pp1(4);if pp2(3) <> pp1(4) then bugmes();quit;end +pp3(2,1)=pp2(1);pp3(3,2)=pp1(4);if pp3 <> [pp1 conj(pp2')] then bugmes();quit;end +pp1(1:4)=conj(pp2');if pp1<> conj(pp2') then bugmes();quit;end +pp1((1:4)')=conj(pp2');if pp1<> conj(pp2') then bugmes();quit;end +pp1=p1;pp2=p2; +pp1(6)=-8;if pp1 <> [p1;0;-8] then bugmes();quit;end +pp2(7)=+s**3;,if pp2 <> [p2,0,0,+s**3] then bugmes();quit;end +pp1=p1;pp2=p2; +pp1(5:8)=p1;if pp1 <> [p1;p1] then bugmes();quit;end +pp2(6:9)=p2;if pp2 <> [p2 0 p2] then bugmes();quit;end +pp1=p1;pp2=p2; +pp1(:)=conj(p2');if pp1 <> conj(p2') then bugmes();quit;end +pp2(:)=p1';if norm(coeff(pp2-p1'))>10*%eps then bugmes();quit;end +pp1=p1;pp2=p2; +pp1(8:-1:5)=p1;if pp1 <> [p1;p1(4:-1:1)] then bugmes();quit;end +pp2(8:-1:5)=p2;if pp2 <> [p2 p2(4:-1:1)] then bugmes();quit;end +pp3=p3; +pp3(1:4,1)=conj(p2');if pp3 <> [conj(p2') conj(p2')] then bugmes();quit;end +pp3(1:4,2)=p1;if pp3 <> [conj(p2') p1] then bugmes();quit;end +pp3=p3; +pp3(:,1)=conj(p2');if pp3 <> [conj(p2') conj(p2')] then bugmes();quit;end +pp3(:,2)=p1;if pp3 <> [conj(p2') p1] then bugmes();quit;end +pp3(:,:)=p3;if pp3 <> p3 then bugmes();quit;end +pp3=p3; +pp3(:,4)=p1;if pp3 <> [p3 [0;0;0;0] p1] then bugmes();quit;end +pp3=p3; +pp3(6:9,:)=p3;if pp3 <> [p3;[0 0];p3] then bugmes();quit;end +// +// +//real case +p11=1+3*s;p12=s;p13=2*s;p14=s*4;p1=[p11;p12;p13;p14]; +p21=0*s;p22=1+s;p23=s-1;p24=-s;p2=[p21 p22 p23 p24]; +p3=[p1 p2']; +if p1(1) <> p11 then bugmes();quit;end +if p1(4) <> p14 then bugmes();quit;end +if p2(2) <> p22 then bugmes();quit;end +if p2(3) <> p23 then bugmes();quit;end +if p1([1 3]) <> [p11;p13] then bugmes();quit;end +if p1([1;3]) <> p1([1 3]) then bugmes();quit;end +if p2([2 4]) <> [p22 p24] then bugmes();quit;end +if p2([2;4]) <> p2([2 4]) then bugmes();quit;end +if p1(:) <> p1 then bugmes();quit;end +if p2(:) <> p2' then bugmes();quit;end +if p3(1) <> p1(1) then bugmes();quit;end +if p3(8) <> p2(4) then bugmes();quit;end +if p3(3) <> p1(3) then bugmes();quit;end +if p3(5) <> p2(1) then bugmes();quit;end +if p3(1,1) <> p1(1) then bugmes();quit;end +if p3(4,2) <> p2(4) then bugmes();quit;end +if p3(3,2) <> p2(3) then bugmes();quit;end +if p3([1 3],1) <> p1([1 3]) then bugmes();quit;end +if p3([1;3],1) <> p1([1 3]) then bugmes();quit;end +if p3([2 4],[2 1]) <> [p2([2 4])' p1([2 4])] then bugmes();quit;end +if p3(:,1) <> p1 then bugmes();quit;end +if p3(:,2) <> p2' then bugmes();quit;end +if p3(1,:) <> [p1(1) p2(1)] then bugmes();quit;end +if p3([1 4],:) <> [p1([1 4]) p2([1 4])'] then bugmes();quit;end +if p3(:,:) <> p3 then bugmes();quit;end +// +p11=1+3*s+%i;p12=s+%i*s**3;p13=2*s;p14=s*4;p1=[p11;p12;p13;p14]; +p21=%i+0*s;p22=1+s;p23=s-1;p24=-s+%i*s**2;p2=[p21 p22 p23 p24]; +p3=[p1 conj(p2')]; +if p1(1) <> p11 then bugmes();quit;end +if norm(coeff(p1(4)-p14))>10*%eps then bugmes();quit;end +if norm(coeff(p2(2)- p22 ))>10*%eps then bugmes();quit;end +if norm(coeff(p2(3)- p23 ))>10*%eps then bugmes();quit;end +if norm(coeff(p1([1 3])- [p11;p13] ))>10*%eps then bugmes();quit;end +if norm(coeff(p1([1;3])- p1([1 3]) ))>10*%eps then bugmes();quit;end +if norm(coeff(p2([2 4])- [p22 p24] ))>10*%eps then bugmes();quit;end +if norm(coeff(p2([2;4])- p2([2 4]) ))>10*%eps then bugmes();quit;end +if norm(coeff(p1(:)- p1 ))>10*%eps then bugmes();quit;end +if norm(coeff(p2(:)- conj(p2)' ))>10*%eps then bugmes();quit;end +if norm(coeff(p3(1)- p1(1) ))>10*%eps then bugmes();quit;end +if norm(coeff(p3(8)- p2(4) ))>10*%eps then bugmes();quit;end +if norm(coeff(p3(3)- p1(3) ))>10*%eps then bugmes();quit;end +if norm(coeff(p3(5)- p2(1) ))>10*%eps then bugmes();quit;end +if norm(coeff(p3(1,1)- p1(1) ))>10*%eps then bugmes();quit;end +if norm(coeff(p3(4,2)- p2(4) ))>10*%eps then bugmes();quit;end +if norm(coeff(p3(3,2)- p2(3) ))>10*%eps then bugmes();quit;end +if norm(coeff(p3([1 3],1)- p1([1 3]) ))>10*%eps then bugmes();quit;end +if norm(coeff(p3([1;3],1)- p1([1 3]) ))>10*%eps then bugmes();quit;end +if norm(coeff(p3([2 4],[2 1])-[conj(p2([2 4])') p1([2 4])]))>10*%eps + then bugmes();quit;end +if norm(coeff(p3(:,1)- p1 ))>10*%eps then bugmes();quit;end +if norm(coeff(p3(:,2)- conj(p2') ))>10*%eps then bugmes();quit;end +if norm(coeff(p3(1,:)- [p1(1) p2(1)] ))>10*%eps then bugmes();quit;end +if norm(coeff(p3([1 4],:)- [p1([1 4]) conj(p2([1 4])')] ))>10*%eps + then bugmes();quit;end +if norm(coeff(p3(:,:)- p3 ))>10*%eps then bugmes();quit;end +//hidden empty index in insertion +s=poly(0,'s'); +a=[1+s 2;3 4];a_ref=a; +a(1,[%f %f])=[]; +if or(a<>a_ref) then bugmes();quit;end +a([%f %f],1)=[]; +if or(a<>a_ref) then bugmes();quit;end +a([%f %f],[%f %f])=[]; +if or(a<>a_ref) then bugmes();quit;end +a = [%s, 2*%s]; +a(2) = 1; +assert_checkequal(a, [%s,1]); +-%s; +a=1+%s-%s^2; +b=-a; +assert_checkequal(b,-1-%s+%s^2); +// polynom == double and double == polynom +a = 1; +aa = ones(3,3); +ac = a + %i; +aac = aa + aa * %i; +p = 1 + %s * 0; +pp = ones(3,3) + ones(3,3) * %s * 0; +pc = p + %i; +ppc = pp + pp * %i; +// real +assert_checktrue(a == p); +assert_checktrue(aa == p); +assert_checktrue(a == pp); +assert_checktrue(aa == pp); +assert_checktrue(p == a); +assert_checktrue(pp == a); +assert_checktrue(p == aa); +assert_checktrue(pp == aa); +// real complex +assert_checkfalse(a == pc); +assert_checkfalse(aa == pc); +assert_checkfalse(a == ppc); +assert_checkfalse(aa == ppc); +assert_checkfalse(p == ac); +assert_checkfalse(pp == ac); +assert_checkfalse(p == aac); +assert_checkfalse(pp == aac); +// complex real +assert_checkfalse(ac == p); +assert_checkfalse(aac == p); +assert_checkfalse(ac == pp); +assert_checkfalse(aac == pp); +assert_checkfalse(pc == a); +assert_checkfalse(ppc == a); +assert_checkfalse(pc == aa); +assert_checkfalse(ppc == aa); +//complex +assert_checktrue(ac == pc); +assert_checktrue(aac == pc); +assert_checktrue(ac == ppc); +assert_checktrue(aac == ppc); +assert_checktrue(pc == ac); +assert_checktrue(ppc == ac); +assert_checktrue(pc == aac); +assert_checktrue(ppc == aac); +// not all equal +// real +aa(2) = 2; +expected = ones(3,3) == 1; +expected(2) = %f; +assert_checkequal(expected, aa == p); +assert_checkequal(expected, pp == aa); +assert_checkequal(expected, p == aa); +assert_checkequal(expected, aa == pp); +assert_checkequal(expected, pp == aa); +pp(4) = %s; +pp(6) = 2; +expected = ones(3,3) == 1; +expected(4) = %f; +expected(6) = %f; +expected2 = expected; +expected2(2) = %f; +assert_checkequal(expected, a == pp); +assert_checkequal(expected, pp == a); +assert_checkequal(expected2, aa == pp); +assert_checkequal(expected2, pp == aa); +// complex +aac(2) = 2; +expected = ones(3,3) == 1; +expected(2) = %f; +assert_checkequal(expected, aac == pc); +assert_checkequal(expected, ppc == aac); +assert_checkequal(expected, pc == aac); +assert_checkequal(expected, aac == ppc); +assert_checkequal(expected, ppc == aac); +ppc(4) = %s; +ppc(6) = 2; +expected = ones(3,3) == 1; +expected(4) = %f; +expected(6) = %f; +expected2 = expected; +expected2(2) = %f; +assert_checkequal(expected, ac == ppc); +assert_checkequal(expected, ppc == ac); +assert_checkequal(expected2, aac == ppc); +assert_checkequal(expected2, ppc == aac); diff --git a/modules/polynomials/tests/unit_tests/polops.tst b/modules/polynomials/tests/unit_tests/polops.tst new file mode 100755 index 000000000..b4e65c0bb --- /dev/null +++ b/modules/polynomials/tests/unit_tests/polops.tst @@ -0,0 +1,819 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) ????-2008 - INRIA +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= + +// <-- CLI SHELL MODE --> + +mode(5) +lines(0) +s=poly(0,'s'); +//polynomial operations +p1=1+1.5*s; +if p1<>poly([1 1.5],'s','c') then pause,end +p2=p1*p1; +if norm(coeff(p2-poly([1 3 2.25],'s','c')))>10*%eps then pause,end +if norm(coeff(4*p2-poly([4 12 9],'s','c')))>10*%eps then pause,end +if norm(coeff(p2*4-poly([4 12 9],'s','c')))>10*%eps then pause,end +p2=p2*4; +if norm(coeff(p2/4-poly([1 3 2.25],'s','c')))>10*%eps then pause,end +if norm(coeff(4\p2-poly([1 3 2.25],'s','c')))>10*%eps then pause,end +p2=p2/4; +if norm(coeff((p2-1)-poly([0 3 2.25],'s','c')))>10*%eps then pause,end +if norm(coeff((1-p2)-poly([0 -3 -2.25],'s','c')))>10*%eps then pause,end +if norm(coeff(p2-p2))>10*%eps then pause,end +//complex +p1=1+1.5*s+0*%i; +if norm(coeff(p1-poly([1 1.5],'s','c')))>10*%eps then pause,end +p2=p1*p1; +if norm(coeff(p2-poly([1 3 2.25],'s','c')))>10*%eps then pause,end +if norm(coeff(4*p2-poly([4 12 9],'s','c')))>10*%eps then pause,end +if norm(coeff(p2*4-poly([4 12 9],'s','c')))>10*%eps then pause,end +if norm(coeff((4+0*%i)*p2-poly([4 12 9],'s','c')))>10*%eps then pause,end +if norm(coeff(p2*(4+0*%i)-poly([4 12 9],'s','c')))>10*%eps then pause,end +p2=p2*4; +if norm(coeff(p2/4-poly([1 3 2.25],'s','c')))>10*%eps then pause,end +if norm(coeff(4\p2-poly([1 3 2.25],'s','c')))>10*%eps then pause,end +if norm(coeff(p2/(4+0*%i)-poly([1 3 2.25],'s','c')))>10*%eps then pause,end +if norm(coeff((4+0*%i)\p2-poly([1 3 2.25],'s','c')))>10*%eps then pause,end +p2=p2/4; +if norm(coeff((p2-1)-poly([0 3 2.25],'s','c')))>10*%eps then pause,end +if norm(coeff((1-p2)-poly([0 -3 -2.25],'s','c')))>10*%eps then pause,end +if norm(coeff((p2-(1+0*%i))-poly([0 3 2.25],'s','c')))>10*%eps then pause,end +if norm(coeff(((1+0*%i)-p2)-poly([0 -3 -2.25],'s','c')))>10*%eps then pause,end +// +if norm(coeff(p2-p2))>10*%eps then pause,end +// +//concatenations extraction +p1=1+1.5*s;p2=1; +p3=[p1 p2]; +if norm(coeff(p3(1)-p1))>%eps then pause,end +if norm(coeff(p3(2)-p2))>%eps then pause,end +if norm(coeff(p3(1:2)-p3))>%eps then pause,end +if norm(coeff(p3([2 1])-[p2 p1]))>%eps then pause,end +p2=p1+4*s**2; +p3=[p1 p2]; +if norm(coeff(p3(1)-p1))>%eps then pause,end +if norm(coeff(p3(2)-p2))>%eps then pause,end +if norm(coeff(p3(1:2)-p3))>%eps then pause,end +if norm(coeff(p3([2 1])-[p2 p1]))>%eps then pause,end +//en colonne +p1=1+1.5*s;p2=1; +p3=[p1;p2]; +if norm(coeff(p3(1)-p1))>%eps then pause,end +if norm(coeff(p3(2)-p2))>%eps then pause,end +if norm(coeff(p3(1:2)-p3))>%eps then pause,end +if norm(coeff(p3([2 1])-[p2;p1]))>%eps then pause,end +p2=p1+4*s**2; +p3=[p1;p2]; +if norm(coeff(p3(1)-p1))>%eps then pause,end +if norm(coeff(p3(2)-p2))>%eps then pause,end +if norm(coeff(p3(1:2)-p3))>%eps then pause,end +if norm(coeff(p3([2 1])-[p2;p1]))>%eps then pause,end +// +p1=1+1.5*s;p2=1+%i; +p3=[p1 p2]; +if norm(coeff(p3(1)-p1))>%eps then pause,end +if norm(coeff(p3(2)-p2))>%eps then pause,end +if norm(coeff(p3(1:2)-p3))>%eps then pause,end +if norm(coeff(p3([2 1])-[p2 p1]))>%eps then pause,end +p2=p1+4*s**2+%i; +p3=[p1 p2]; +if norm(coeff(p3(1)-p1))>%eps then pause,end +if norm(coeff(p3(2)-p2))>%eps then pause,end +if norm(coeff(p3(1:2)-p3))>%eps then pause,end +if norm(coeff(p3([2 1])-[p2 p1]))>%eps then pause,end +//en colonne +p1=1+1.5*s;p2=1+%i; +p3=[p1;p2]; +if norm(coeff(p3(1)-p1))>%eps then pause,end +if norm(coeff(p3(2)-p2))>%eps then pause,end +if norm(coeff(p3(1:2)-p3))>%eps then pause,end +if norm(coeff(p3([2 1])-[p2;p1]))>%eps then pause,end +p2=p1+4*s**2+%i; +p3=[p1;p2]; +if norm(coeff(p3(1)-p1))>%eps then pause,end +if norm(coeff(p3(2)-p2))>%eps then pause,end +if norm(coeff(p3(1:2)-p3))>%eps then pause,end +if norm(coeff(p3([2 1])-[p2;p1]))>%eps then pause,end +// complex reel +//en ligne +p1=1+1.5*s+%i;p2=1; +p3=[p1 p2]; +if norm(coeff(p3(1)-p1))>%eps then pause,end +if norm(coeff(p3(2)-p2))>%eps then pause,end +if norm(coeff(p3(1:2)-p3))>%eps then pause,end +if norm(coeff(p3([2 1])-[p2 p1]))>%eps then pause,end +p2=p1+4*s**2; +p3=[p1 p2]; +if norm(coeff(p3(1)-p1))>%eps then pause,end +if norm(coeff(p3(2)-p2))>%eps then pause,end +if norm(coeff(p3(1:2)-p3))>%eps then pause,end +if norm(coeff(p3([2 1])-[p2 p1]))>%eps then pause,end +//en colonne +p1=1+1.5*s+%i;p2=1; +p3=[p1;p2]; +if norm(coeff(p3(1)-p1))>%eps then pause,end +if norm(coeff(p3(2)-p2))>%eps then pause,end +if norm(coeff(p3(1:2)-p3))>%eps then pause,end +if norm(coeff(p3([2 1])-[p2;p1]))>%eps then pause,end +p2=p1+4*s**2; +p3=[p1;p2]; +if norm(coeff(p3(1)-p1))>%eps then pause,end +if norm(coeff(p3(2)-p2))>%eps then pause,end +if norm(coeff(p3(1:2)-p3))>%eps then pause,end +if norm(coeff(p3([2 1])-[p2;p1]))>%eps then pause,end +//complex complex +//en ligne +p1=1+1.5*s+%i;p2=1+%i; +p3=[p1 p2]; +if norm(coeff(p3(1)-p1))>%eps then pause,end +if norm(coeff(p3(2)-p2))>%eps then pause,end +if norm(coeff(p3(1:2)-p3))>%eps then pause,end +if norm(coeff(p3([2 1])-[p2 p1]))>%eps then pause,end +p2=p1+4*s**2+%i; +p3=[p1 p2]; +if norm(coeff(p3(1)-p1))>%eps then pause,end +if norm(coeff(p3(2)-p2))>%eps then pause,end +if norm(coeff(p3(1:2)-p3))>%eps then pause,end +if norm(coeff(p3([2 1])-[p2 p1]))>%eps then pause,end +//en colonne +p1=1+1.5*s+%i;p2=1+%i; +p3=[p1;p2]; +if norm(coeff(p3(1)-p1))>%eps then pause,end +if norm(coeff(p3(2)-p2))>%eps then pause,end +if norm(coeff(p3(1:2)-p3))>%eps then pause,end +if norm(coeff(p3([2 1])-[p2;p1]))>%eps then pause,end +p2=p1+4*s**2+%i; +p3=[p1;p2]; +if norm(coeff(p3(1)-p1))>%eps then pause,end +if norm(coeff(p3(2)-p2))>%eps then pause,end +if norm(coeff(p3(1:2)-p3))>%eps then pause,end +if norm(coeff(p3([2 1])-[p2;p1]))>%eps then pause,end +// +// real real +// +p1=[1+1.5*s;s**2]; +// +if norm(coeff(p1'-[p1(1),p1(2)]))>10*%eps then pause,end +if norm(coeff((-p1)+p1))>10*%eps then pause,end +if norm(coeff((-p1')+p1'))>10*%eps then pause,end +// +x=[1+s**3; 4]; +p3=p1(1)*x(1)+p1(2)*x(2); +if norm(coeff(p1'*x-p3))>10*%eps then pause,end +p3=[p1(1)*x(1),p1(1)*x(2);p1(2)*x(1), p1(2)*x(2)]; +if norm(coeff(p1*x'-p3))>10*%eps then pause,end +// +x=[1.5;1/3]; +p3=p1(1)*x(1)+p1(2)*x(2); +if norm(coeff(p1'*x-p3))>10*%eps then pause,end +if norm(coeff(x'*p1-p3))>10*%eps then pause,end +p3=[p1(1)*x(1),p1(1)*x(2);p1(2)*x(1), p1(2)*x(2)]; +if norm(coeff(p1*x'-p3))>10*%eps then pause,end +if norm(coeff(x*p1'-p3'))>10*%eps then pause,end +// +x=4; +if norm(coeff(x*p1-[x*p1(1);x*p1(2)]))>10*%eps then pause,end +if norm(coeff(p1*x-[x*p1(1);x*p1(2)]))>10*%eps then pause,end +if norm(coeff(x*p1'-[x*p1(1),x*p1(2)]))>10*%eps then pause,end +if norm(coeff(p1'*x-[x*p1(1),x*p1(2)]))>10*%eps then pause,end +// +x=[1+s**3; 4]; +p3=[p1(1)*x(1);p1(2)*x(2)]; +if norm(coeff(p1.*x-p3))>10*%eps then pause,end +x=[1.5;1/3]; +p3=[p1(1)*x(1);p1(2)*x(2)]; +if norm(coeff(p1.*x-p3))>10*%eps then pause,end +if norm(coeff(x.*p1-p3))>10*%eps then pause,end +x=[1+s**3,4]; +p3=[p1(1)*x(1),p1(2)*x(2)]; +if norm(coeff(p1'.*x-p3))>10*%eps then pause,end +x=[1.5,1/3]; +p3=[p1(1)*x(1),p1(2)*x(2)]; +if norm(coeff(p1'.*x-p3))>10*%eps then pause,end +if norm(coeff(x.*p1'-p3))>10*%eps then pause,end + +// matrices +p1=[1+1.5*s,s**2, 0;1 s s+1]; +// +if norm(coeff((-p1)+p1))>10*%eps then pause,end +// +x=[1,s;-1,2*s;2,0]; +p3=[p1(1,1)*x(1,1)+p1(1,2)*x(2,1)+p1(1,3)*x(3,1),... + p1(1,1)*x(1,2)+p1(1,2)*x(2,2)+p1(1,3)*x(3,2); + p1(2,1)*x(1,1)+p1(2,2)*x(2,1)+p1(2,3)*x(3,1),... + p1(2,1)*x(1,2)+p1(2,2)*x(2,2)+p1(2,3)*x(3,2)]; +if norm(coeff(p1*x-p3))>10*%eps then pause,end +// +x=[1 1.5;2 1/3;sqrt(7) 8]; +p3=[p1(1,1)*x(1,1)+p1(1,2)*x(2,1)+p1(1,3)*x(3,1),... + p1(1,1)*x(1,2)+p1(1,2)*x(2,2)+p1(1,3)*x(3,2); + p1(2,1)*x(1,1)+p1(2,2)*x(2,1)+p1(2,3)*x(3,1),... + p1(2,1)*x(1,2)+p1(2,2)*x(2,2)+p1(2,3)*x(3,2)]; +if norm(coeff(p1*x-p3))>10*%eps then pause,end +// +x=5; +p3=[x*p1(1,1),x*p1(1,2),x*p1(1,3); + x*p1(2,1),x*p1(2,2),x*p1(2,3)]; + +if norm(coeff(p1*x-p3))>10*%eps then pause,end +if norm(coeff(x*p1-p3))>10*%eps then pause,end + +// +x=[1+s**3, 4,-s;0,s+1,10*s**4]; +p3=[p1(1,1)*x(1,1),p1(1,2)*x(1,2),p1(1,3)*x(1,3); + p1(2,1)*x(2,1),p1(2,2)*x(2,2),p1(2,3)*x(2,3)]; +if norm(coeff(p1.*x-p3))>10*%eps then pause,end +x=[1 1.5;2 1/3;sqrt(7) 8]'; +p3=[p1(1,1)*x(1,1),p1(1,2)*x(1,2),p1(1,3)*x(1,3); + p1(2,1)*x(2,1),p1(2,2)*x(2,2),p1(2,3)*x(2,3)]; +if norm(coeff(p1.*x-p3))>10*%eps then pause,end +if norm(coeff(x.*p1-p3))>10*%eps then pause,end + +// +// real complex +// +p1=[1+1.5*s;s**2]; +// +if norm(coeff(p1'-[p1(1),p1(2)]))>10*%eps then pause,end +if norm(coeff((-p1)+p1))>10*%eps then pause,end +if norm(coeff((-p1')+p1'))>10*%eps then pause,end +// +x=[1+s**3; 4+%i]; +p3=p1(1)*x(1)+p1(2)*x(2); +if norm(coeff(p1'*x-p3))>10*%eps then pause,end +p3=[p1(1)*x(1),p1(1)*x(2);p1(2)*x(1), p1(2)*x(2)]; +if norm(coeff(p1*conj(x')-p3))>10*%eps then pause,end +// +x=[1.5+%i;1/3]; +p3=p1(1)*x(1)+p1(2)*x(2); +if norm(coeff(p1'*x-p3))>10*%eps then pause,end +if norm(coeff(conj(x')*p1-p3))>10*%eps then pause,end +p3=[p1(1)*x(1),p1(1)*x(2);p1(2)*x(1), p1(2)*x(2)]; +if norm(coeff(p1*conj(x')-p3))>10*%eps then pause,end +if norm(coeff(x*p1'-conj(p3')))>10*%eps then pause,end +// +x=4+%i; +if norm(coeff(x*p1-[x*p1(1);x*p1(2)]))>10*%eps then pause,end +if norm(coeff(p1*x-[x*p1(1);x*p1(2)]))>10*%eps then pause,end +if norm(coeff(x*p1'-[x*p1(1),x*p1(2)]))>10*%eps then pause,end +if norm(coeff(p1'*x-[x*p1(1),x*p1(2)]))>10*%eps then pause,end +// +x=[1+s**3; 4-3*%i]; +p3=[p1(1)*x(1);p1(2)*x(2)]; +if norm(coeff(p1.*x-p3))>10*%eps then pause,end +x=[1.5+%i/5;1/3]; +p3=[p1(1)*x(1);p1(2)*x(2)]; +if norm(coeff(p1.*x-p3))>10*%eps then pause,end +if norm(coeff(x.*p1-p3))>10*%eps then pause,end +x=[1+s**3,4-%i]; +p3=[p1(1)*x(1),p1(2)*x(2)]; +if norm(coeff(p1'.*x-p3))>10*%eps then pause,end +x=[1.5,1/3-3*%i]; +p3=[p1(1)*x(1),p1(2)*x(2)]; +if norm(coeff(p1'.*x-p3))>10*%eps then pause,end +if norm(coeff(x.*p1'-p3))>10*%eps then pause,end + +// matrices +p1=[1+1.5*s,s**2, 0;1 s s+1]; +// +if norm(coeff((-p1)+p1))>10*%eps then pause,end +// +x=[1,s+%i ;-1,2*s;2,0]; +p3=[p1(1,1)*x(1,1)+p1(1,2)*x(2,1)+p1(1,3)*x(3,1),... + p1(1,1)*x(1,2)+p1(1,2)*x(2,2)+p1(1,3)*x(3,2); + p1(2,1)*x(1,1)+p1(2,2)*x(2,1)+p1(2,3)*x(3,1),... + p1(2,1)*x(1,2)+p1(2,2)*x(2,2)+p1(2,3)*x(3,2)]; +if norm(coeff(p1*x-p3))>10*%eps then pause,end +// +x=[1 1.5;2 1/3;%i-sqrt(7) 8]; +p3=[p1(1,1)*x(1,1)+p1(1,2)*x(2,1)+p1(1,3)*x(3,1),... + p1(1,1)*x(1,2)+p1(1,2)*x(2,2)+p1(1,3)*x(3,2); + p1(2,1)*x(1,1)+p1(2,2)*x(2,1)+p1(2,3)*x(3,1),... + p1(2,1)*x(1,2)+p1(2,2)*x(2,2)+p1(2,3)*x(3,2)]; +if norm(coeff(p1*x-p3))>10*%eps then pause,end +// +x=5-2*%i; +p3=[x*p1(1,1),x*p1(1,2),x*p1(1,3); + x*p1(2,1),x*p1(2,2),x*p1(2,3)]; + +if norm(coeff(p1*x-p3))>10*%eps then pause,end +if norm(coeff(x*p1-p3))>10*%eps then pause,end + +// +x=[1+s**3, 4-3*%i,-s;0,s+1,10*s**4]; +p3=[p1(1,1)*x(1,1),p1(1,2)*x(1,2),p1(1,3)*x(1,3); + p1(2,1)*x(2,1),p1(2,2)*x(2,2),p1(2,3)*x(2,3)]; +if norm(coeff(p1.*x-p3))>10*%eps then pause,end +x=[1 1.5;2-%i/7, 1/3;sqrt(7) 8]'; +p3=[p1(1,1)*x(1,1),p1(1,2)*x(1,2),p1(1,3)*x(1,3); + p1(2,1)*x(2,1),p1(2,2)*x(2,2),p1(2,3)*x(2,3)]; +if norm(coeff(p1.*x-p3))>10*%eps then pause,end +if norm(coeff(x.*p1-p3))>10*%eps then pause,end +// +// complex real +// +p1=[1+1.5*s;s**2+%i]; +// +if norm(coeff(conj(p1')-[p1(1),p1(2)]))>10*%eps then pause,end +if norm(coeff((-p1)+p1))>10*%eps then pause,end +if norm(coeff((-conj(p1'))+conj(p1')))>10*%eps then pause,end +// +x=[1+s**3; 4]; +p3=p1(1)*x(1)+p1(2)*x(2); +if norm(coeff(conj(p1')*x-p3))>10*%eps then pause,end +p3=[p1(1)*x(1),p1(1)*x(2);p1(2)*x(1), p1(2)*x(2)]; +if norm(coeff(p1*x'-p3))>10*%eps then pause,end +// +x=[1.5;1/3]; +p3=p1(1)*x(1)+p1(2)*x(2); +if norm(coeff(conj(p1')*x-p3))>10*%eps then pause,end +if norm(coeff(x'*p1-p3))>10*%eps then pause,end +p3=[p1(1)*x(1),p1(1)*x(2);p1(2)*x(1), p1(2)*x(2)]; +if norm(coeff(p1*x'-p3))>10*%eps then pause,end +if norm(coeff(x*conj(p1')-conj(p3')))>10*%eps then pause,end +// +x=4; +if norm(coeff(x*p1-[x*p1(1);x*p1(2)]))>10*%eps then pause,end +if norm(coeff(p1*x-[x*p1(1);x*p1(2)]))>10*%eps then pause,end +if norm(coeff(x*conj(p1')-[x*p1(1),x*p1(2)]))>10*%eps then pause,end +if norm(coeff(conj(p1')*x-[x*p1(1),x*p1(2)]))>10*%eps then pause,end +// +x=[1+s**3; 4]; +p3=[p1(1)*x(1);p1(2)*x(2)]; +if norm(coeff(p1.*x-p3))>10*%eps then pause,end +x=[1.5;1/3]; +p3=[p1(1)*x(1);p1(2)*x(2)]; +if norm(coeff(p1.*x-p3))>10*%eps then pause,end +if norm(coeff(x.*p1-p3))>10*%eps then pause,end +x=[1+s**3,4]; +p3=[p1(1)*x(1),p1(2)*x(2)]; +if norm(coeff(conj(p1').*x-p3))>10*%eps then pause,end +x=[1.5,1/3]; +p3=[p1(1)*x(1),p1(2)*x(2)]; +if norm(coeff(conj(p1').*x-p3))>10*%eps then pause,end +if norm(coeff(x.*conj(p1')-p3))>10*%eps then pause,end + +//matrices +p1=[1+1.5*s,s**2, 0;1 s s+1-%i/3]; +// +if norm(coeff((-p1)+p1))>10*%eps then pause,end +// +x=[1,s ;-1,2*s;2,0]; +p3=[p1(1,1)*x(1,1)+p1(1,2)*x(2,1)+p1(1,3)*x(3,1),... + p1(1,1)*x(1,2)+p1(1,2)*x(2,2)+p1(1,3)*x(3,2); + p1(2,1)*x(1,1)+p1(2,2)*x(2,1)+p1(2,3)*x(3,1),... + p1(2,1)*x(1,2)+p1(2,2)*x(2,2)+p1(2,3)*x(3,2)]; +if norm(coeff(p1*x-p3))>10*%eps then pause,end +// +x=[1 1.5;2 1/3;sqrt(7) 8]; +p3=[p1(1,1)*x(1,1)+p1(1,2)*x(2,1)+p1(1,3)*x(3,1),... + p1(1,1)*x(1,2)+p1(1,2)*x(2,2)+p1(1,3)*x(3,2); + p1(2,1)*x(1,1)+p1(2,2)*x(2,1)+p1(2,3)*x(3,1),... + p1(2,1)*x(1,2)+p1(2,2)*x(2,2)+p1(2,3)*x(3,2)]; +if norm(coeff(p1*x-p3))>10*%eps then pause,end +// +x=5; +p3=[x*p1(1,1),x*p1(1,2),x*p1(1,3); + x*p1(2,1),x*p1(2,2),x*p1(2,3)]; + +if norm(coeff(p1*x-p3))>10*%eps then pause,end +if norm(coeff(x*p1-p3))>10*%eps then pause,end + +// +x=[1+s**3,4,-s;0,s+1,10*s**4]; +p3=[p1(1,1)*x(1,1),p1(1,2)*x(1,2),p1(1,3)*x(1,3); + p1(2,1)*x(2,1),p1(2,2)*x(2,2),p1(2,3)*x(2,3)]; +if norm(coeff(p1.*x-p3))>10*%eps then pause,end +x=[1 1.5;2, 1/3;sqrt(7) 8]'; +p3=[p1(1,1)*x(1,1),p1(1,2)*x(1,2),p1(1,3)*x(1,3); + p1(2,1)*x(2,1),p1(2,2)*x(2,2),p1(2,3)*x(2,3)]; +if norm(coeff(p1.*x-p3))>10*%eps then pause,end +if norm(coeff(x.*p1-p3))>10*%eps then pause,end +// +// complex complex +// +p1=[1+1.5*s;s**2+%i]; +// +if norm(coeff(conj(p1')-[p1(1),p1(2)]))>10*%eps then pause,end +if norm(coeff((-p1)+p1))>10*%eps then pause,end +if norm(coeff((-conj(p1'))+conj(p1')))>10*%eps then pause,end +// +x=[1+s**3; 4-%i]; +p3=p1(1)*x(1)+p1(2)*x(2); +if norm(coeff(conj(p1')*x-p3))>10*%eps then pause,end +p3=[p1(1)*x(1),p1(1)*x(2);p1(2)*x(1), p1(2)*x(2)]; +if norm(coeff(p1*conj(x')-p3))>10*%eps then pause,end +// +x=[1.5+%i/5;1/3]; +p3=p1(1)*x(1)+p1(2)*x(2); +if norm(coeff(conj(p1')*x-p3))>10*%eps then pause,end +if norm(coeff(conj(x')*p1-p3))>10*%eps then pause,end +p3=[p1(1)*x(1),p1(1)*x(2);p1(2)*x(1), p1(2)*x(2)]; +if norm(coeff(p1*conj(x')-p3))>10*%eps then pause,end +if norm(coeff(x*conj(p1')-conj(p3')))>10*%eps then pause,end +//produit d'un vecteur de polynome par un scalaire +x=4+%i/7; +if norm(coeff(x*p1-[x*p1(1);x*p1(2)]))>10*%eps then pause,end +if norm(coeff(p1*x-[x*p1(1);x*p1(2)]))>10*%eps then pause,end +if norm(coeff(x*conj(p1')-[x*p1(1),x*p1(2)]))>10*%eps then pause,end +if norm(coeff(conj(p1')*x-[x*p1(1),x*p1(2)]))>10*%eps then pause,end +// +x=[1+s**3; 4-%i]; +p3=[p1(1)*x(1);p1(2)*x(2)]; +if norm(coeff(p1.*x-p3))>10*%eps then pause,end +x=[1.5+2*%i;1/3]; +p3=[p1(1)*x(1);p1(2)*x(2)]; +if norm(coeff(p1.*x-p3))>10*%eps then pause,end +if norm(coeff(x.*p1-p3))>10*%eps then pause,end +x=[1+s**3+%i,4-%i]; +p3=[p1(1)*x(1),p1(2)*x(2)]; +if norm(coeff(conj(p1').*x-p3))>10*%eps then pause,end +x=[1.5+3*%i,1/3]; +p3=[p1(1)*x(1),p1(2)*x(2)]; +if norm(coeff(conj(p1').*x-p3))>10*%eps then pause,end +if norm(coeff(x.*conj(p1')-p3))>10*%eps then pause,end + +//matrices +p1=[1+1.5*s,s**2, 0;1 s s+1-%i/3]; +// +if norm(coeff((-p1)+p1))>10*%eps then pause,end +// +x=[1-%i,s ;-1,2*s;2,0+%i*s**4]; +p3=[p1(1,1)*x(1,1)+p1(1,2)*x(2,1)+p1(1,3)*x(3,1),... + p1(1,1)*x(1,2)+p1(1,2)*x(2,2)+p1(1,3)*x(3,2); + p1(2,1)*x(1,1)+p1(2,2)*x(2,1)+p1(2,3)*x(3,1),... + p1(2,1)*x(1,2)+p1(2,2)*x(2,2)+p1(2,3)*x(3,2)]; +if norm(coeff(p1*x-p3))>10*%eps then pause,end +// +x=[1 1.5+5*%i;2 1/3;%i-sqrt(7) 8]; +p3=[p1(1,1)*x(1,1)+p1(1,2)*x(2,1)+p1(1,3)*x(3,1),... + p1(1,1)*x(1,2)+p1(1,2)*x(2,2)+p1(1,3)*x(3,2); + p1(2,1)*x(1,1)+p1(2,2)*x(2,1)+p1(2,3)*x(3,1),... + p1(2,1)*x(1,2)+p1(2,2)*x(2,2)+p1(2,3)*x(3,2)]; +if norm(coeff(p1*x-p3))>10*%eps then pause,end +// +x=5+8*%i; +p3=[x*p1(1,1),x*p1(1,2),x*p1(1,3); + x*p1(2,1),x*p1(2,2),x*p1(2,3)]; + +if norm(coeff(p1*x-p3))>10*%eps then pause,end +if norm(coeff(x*p1-p3))>10*%eps then pause,end + +// +x=[1+s**3,4+10*%i,-s;0,s+1,10*s**4+%i*s**3]; +p3=[p1(1,1)*x(1,1),p1(1,2)*x(1,2),p1(1,3)*x(1,3); + p1(2,1)*x(2,1),p1(2,2)*x(2,2),p1(2,3)*x(2,3)]; +if norm(coeff(p1.*x-p3))>10*%eps then pause,end +x=[1 1.5;2, 1/3;sqrt(7)/%i, 8]'; +p3=[p1(1,1)*x(1,1),p1(1,2)*x(1,2),p1(1,3)*x(1,3); + p1(2,1)*x(2,1),p1(2,2)*x(2,2),p1(2,3)*x(2,3)]; +if norm(coeff(p1.*x-p3))>10*%eps then pause,end +if norm(coeff(x.*p1-p3))>10*%eps then pause,end + +// +// +// +// real real +z=poly(0,'z');p1=[1+3*z;z;2*z;z*4];p2=[0*z 1+z z-1 -z];p3=[p1 p2']; +pp1=p1;pp2=p2;pp3=p3; +pp1(2)=pp2(1);if pp1(2) <> pp2(1) then pause,end +pp2(3)=pp1(4);if pp2(3) <> pp1(4) then pause,end +pp3(2,1)=pp2(1);pp3(3,2)=pp1(4);if pp3 <> [pp1 pp2'] then pause,end +pp1(1:4)=pp2';if pp1<> pp2' then pause,end +pp1((1:4)')=pp2';if pp1<> pp2' then pause,end +pp1=p1;pp2=p2; +pp1(6)=-8;if pp1 <> [p1;0;-8] then pause,end +pp2(7)=+z**3;,if pp2 <> [p2,0,0,+z**3;] then pause,end +pp1=p1;pp2=p2; +pp1(5:8)=p1;if pp1 <> [p1;p1] then pause,end +pp2(6:9)=p2;if pp2 <> [p2 0 p2] then pause,end +pp1=p1;pp2=p2; +pp1(:)=p2';if pp1 <> p2' then pause,end +pp2(:)=p1';if pp2 <> p1' then pause,end +pp1=p1;pp2=p2; +pp1(8:-1:5)=p1;if pp1 <> [p1;p1(4:-1:1)] then pause,end +pp2(8:-1:5)=p2;if pp2 <> [p2 p2(4:-1:1)] then pause,end +pp3=p3; +pp3(1:4,1)=p2';if pp3 <> [p2' p2'] then pause,end +pp3(1:4,2)=p1;if pp3 <> [p2' p1] then pause,end +pp3=p3; +pp3(:,1)=p2';if pp3 <> [p2' p2'] then pause,end +pp3(:,2)=p1;if pp3 <> [p2' p1] then pause,end +pp3(:,:)=p3;if pp3 <> p3 then pause,end +pp3=p3; +pp3(:,4)=p1;if pp3 <> [p3 [0;0;0;0] p1] then pause,end +pp3=p3; +pp3(6:9,:)=p3;if pp3 <> [p3;[0 0];p3] then pause,end +// +p1=[1+3*s;s;2*s;s*4];p2=[0*s-2.5*%i, 1+s, s-1+3*%i ,-s];p3=[p1 conj(p2')]; +pp1=p1;pp2=p2;pp3=p3; +pp1(2)=pp2(1);if pp1(2) <> pp2(1) then pause,end +pp2(3)=pp1(4);if pp2(3) <> pp1(4) then pause,end +pp3(2,1)=pp2(1);pp3(3,2)=pp1(4);if pp3 <> [pp1 conj(pp2')] then pause,end +pp1(1:4)=conj(pp2');if pp1<> conj(pp2') then pause,end +pp1((1:4)')=conj(pp2');if pp1<> conj(pp2') then pause,end +pp1=p1;pp2=p2; +pp1(6)=-8;if pp1 <> [p1;0;-8] then pause,end +pp2(7)=+s**3;,if pp2 <> [p2,0,0,+s**3;] then pause,end +pp1=p1;pp2=p2; +pp1(5:8)=p1;if pp1 <> [p1;p1] then pause,end +pp2(6:9)=p2;if pp2 <> [p2 0 p2] then pause,end +pp1=p1;pp2=p2; +pp1(:)=conj(p2');if pp1 <> conj(p2') then pause,end +pp2(:)=p1';if norm(coeff(pp2-p1'))>10*%eps then pause,end +pp1=p1;pp2=p2; +pp1(8:-1:5)=p1;if pp1 <> [p1;p1(4:-1:1)] then pause,end +pp2(8:-1:5)=p2;if pp2 <> [p2 p2(4:-1:1)] then pause,end +pp3=p3; +pp3(1:4,1)=conj(p2');if pp3 <> [conj(p2') conj(p2')] then pause,end +pp3(1:4,2)=p1;if pp3 <> [conj(p2') p1] then pause,end +pp3=p3; +pp3(:,1)=conj(p2');if pp3 <> [conj(p2') conj(p2')] then pause,end +pp3(:,2)=p1;if pp3 <> [conj(p2') p1] then pause,end +pp3(:,:)=p3;if pp3 <> p3 then pause,end +pp3=p3; +pp3(:,4)=p1;if pp3 <> [p3 [0;0;0;0] p1] then pause,end +pp3=p3; +pp3(6:9,:)=p3;if pp3 <> [p3;[0 0];p3] then pause,end + +// +p1=[1+3*s;s-%i;2*s;s*4+3*%i*s**2];p2=[0*s 1+s s-1 -s];p3=[p1 p2']; +pp1=p1;pp2=p2;pp3=p3; +pp1(2)=pp2(1);if norm(coeff(pp1(2)-pp2(1)))>10*%eps then pause,end +pp2(3)=pp1(4);if norm(coeff(pp2(3)-pp1(4)))>10*%eps then pause,end +pp3(2,1)=pp2(1);pp3(3,2)=pp1(4);if pp3 <> [pp1 conj(pp2')] then pause,end +pp1(1:4)=pp2';if pp1<> pp2' then pause,end +pp1((1:4)')=pp2';if pp1<> pp2' then pause,end +pp1=p1;pp2=p2; +pp1(6)=-8;if pp1 <> [p1;0;-8] then pause,end +pp2(7)=+s**3;,if pp2 <> [p2,0,0,+s**3] then pause,end +pp1=p1;pp2=p2; +pp1(5:8)=p1;if pp1 <> [p1;p1] then pause,end +pp2(6:9)=p2;if pp2 <> [p2 0 p2] then pause,end +pp1=p1;pp2=p2; +pp1(:)=p2';if norm(coeff(pp1-p2'))>10*%eps then pause,end +pp2(:)=p1';if norm(coeff(pp2-p1'))>10*%eps then pause,end +pp1=p1;pp2=p2; +pp1(8:-1:5)=p1;if pp1 <> [p1;p1(4:-1:1)] then pause,end +pp2(8:-1:5)=p2;if pp2 <> [p2 p2(4:-1:1)] then pause,end +pp3=p3; +pp3(1:4,1)=p2';if norm(coeff(pp3-[p2' p2']))>10*%eps then pause,end +pp3(1:4,2)=p1;if norm(coeff(pp3-[p2' p1]))>10*%eps then pause,end +pp3=p3; +pp3(:,1)=p2';if norm(coeff(pp3-[p2' p2']))>10*%eps then pause,end +pp3(:,2)=p1;if norm(coeff(pp3-[p2' p1]))>10*%eps then pause,end +pp3(:,:)=p3;if pp3 <> p3 then pause,end +pp3=p3; +pp3(:,4)=p1;if pp3 <> [p3 [0;0;0;0] p1] then pause,end +pp3=p3; +pp3(6:9,:)=p3;if pp3 <> [p3;[0 0];p3] then pause,end +p1=[1+3*s;s;2*s;s*4];p2=[0*s-2.5*%i, 1+s, s-1+3*%i ,-s];p3=[p1 conj(p2')]; +pp1=p1;pp2=p2;pp3=p3; +pp1(2)=pp2(1);if pp1(2) <> pp2(1) then pause,end +pp2(3)=pp1(4);if pp2(3) <> pp1(4) then pause,end +pp3(2,1)=pp2(1);pp3(3,2)=pp1(4);if pp3 <> [pp1 conj(pp2')] then pause,end +pp1(1:4)=conj(pp2');if pp1<> conj(pp2') then pause,end +pp1((1:4)')=conj(pp2');if pp1<> conj(pp2') then pause,end +pp1=p1;pp2=p2; +pp1(6)=-8;if pp1 <> [p1;0;-8] then pause,end +pp2(7)=+s**3;,if pp2 <> [p2,0,0,+s**3] then pause,end +pp1=p1;pp2=p2; +pp1(5:8)=p1;if pp1 <> [p1;p1] then pause,end +pp2(6:9)=p2;if pp2 <> [p2 0 p2] then pause,end +pp1=p1;pp2=p2; +pp1(:)=conj(p2');if pp1 <> conj(p2') then pause,end +pp2(:)=p1';if norm(coeff(pp2-p1'))>10*%eps then pause,end +pp1=p1;pp2=p2; +pp1(8:-1:5)=p1;if pp1 <> [p1;p1(4:-1:1)] then pause,end +pp2(8:-1:5)=p2;if pp2 <> [p2 p2(4:-1:1)] then pause,end +pp3=p3; +pp3(1:4,1)=conj(p2');if pp3 <> [conj(p2') conj(p2')] then pause,end +pp3(1:4,2)=p1;if pp3 <> [conj(p2') p1] then pause,end +pp3=p3; +pp3(:,1)=conj(p2');if pp3 <> [conj(p2') conj(p2')] then pause,end +pp3(:,2)=p1;if pp3 <> [conj(p2') p1] then pause,end +pp3(:,:)=p3;if pp3 <> p3 then pause,end +pp3=p3; +pp3(:,4)=p1;if pp3 <> [p3 [0;0;0;0] p1] then pause,end +pp3=p3; +pp3(6:9,:)=p3;if pp3 <> [p3;[0 0];p3] then pause,end + +// +p1=[1+3*s;s+%i*s**3;2*s;s*4+%i];p2=[0*s-2.5*%i,1+s,s-1+3*%i,-s]; +p3=[p1 conj(p2')]; +pp1=p1;pp2=p2;pp3=p3; +pp1(2)=pp2(1);if pp1(2) <> pp2(1) then pause,end +pp2(3)=pp1(4);if pp2(3) <> pp1(4) then pause,end +pp3(2,1)=pp2(1);pp3(3,2)=pp1(4);if pp3 <> [pp1 conj(pp2')] then pause,end +pp1(1:4)=conj(pp2');if pp1<> conj(pp2') then pause,end +pp1((1:4)')=conj(pp2');if pp1<> conj(pp2') then pause,end +pp1=p1;pp2=p2; +pp1(6)=-8;if pp1 <> [p1;0;-8] then pause,end +pp2(7)=+s**3;,if pp2 <> [p2,0,0,+s**3] then pause,end +pp1=p1;pp2=p2; +pp1(5:8)=p1;if pp1 <> [p1;p1] then pause,end +pp2(6:9)=p2;if pp2 <> [p2 0 p2] then pause,end +pp1=p1;pp2=p2; +pp1(:)=conj(p2');if pp1 <> conj(p2') then pause,end +pp2(:)=p1';if norm(coeff(pp2-p1'))>10*%eps then pause,end +pp1=p1;pp2=p2; +pp1(8:-1:5)=p1;if pp1 <> [p1;p1(4:-1:1)] then pause,end +pp2(8:-1:5)=p2;if pp2 <> [p2 p2(4:-1:1)] then pause,end +pp3=p3; +pp3(1:4,1)=conj(p2');if pp3 <> [conj(p2') conj(p2')] then pause,end +pp3(1:4,2)=p1;if pp3 <> [conj(p2') p1] then pause,end +pp3=p3; +pp3(:,1)=conj(p2');if pp3 <> [conj(p2') conj(p2')] then pause,end +pp3(:,2)=p1;if pp3 <> [conj(p2') p1] then pause,end +pp3(:,:)=p3;if pp3 <> p3 then pause,end +pp3=p3; +pp3(:,4)=p1;if pp3 <> [p3 [0;0;0;0] p1] then pause,end +pp3=p3; +pp3(6:9,:)=p3;if pp3 <> [p3;[0 0];p3] then pause,end +// +// +//real case +p11=1+3*s;p12=s;p13=2*s;p14=s*4;p1=[p11;p12;p13;p14]; +p21=0*s;p22=1+s;p23=s-1;p24=-s;p2=[p21 p22 p23 p24]; +p3=[p1 p2']; +if p1(1) <> p11 then pause,end +if p1(4) <> p14 then pause,end +if p2(2) <> p22 then pause,end +if p2(3) <> p23 then pause,end +if p1([1 3]) <> [p11;p13] then pause,end +if p1([1;3]) <> p1([1 3]) then pause,end +if p2([2 4]) <> [p22 p24] then pause,end +if p2([2;4]) <> p2([2 4]) then pause,end +if p1(:) <> p1 then pause,end +if p2(:) <> p2' then pause,end +if p3(1) <> p1(1) then pause,end +if p3(8) <> p2(4) then pause,end +if p3(3) <> p1(3) then pause,end +if p3(5) <> p2(1) then pause,end +if p3(1,1) <> p1(1) then pause,end +if p3(4,2) <> p2(4) then pause,end +if p3(3,2) <> p2(3) then pause,end +if p3([1 3],1) <> p1([1 3]) then pause,end +if p3([1;3],1) <> p1([1 3]) then pause,end +if p3([2 4],[2 1]) <> [p2([2 4])' p1([2 4])] then pause,end +if p3(:,1) <> p1 then pause,end +if p3(:,2) <> p2' then pause,end +if p3(1,:) <> [p1(1) p2(1)] then pause,end +if p3([1 4],:) <> [p1([1 4]) p2([1 4])'] then pause,end +if p3(:,:) <> p3 then pause,end +// +p11=1+3*s+%i;p12=s+%i*s**3;p13=2*s;p14=s*4;p1=[p11;p12;p13;p14]; +p21=%i+0*s;p22=1+s;p23=s-1;p24=-s+%i*s**2;p2=[p21 p22 p23 p24]; +p3=[p1 conj(p2')]; +if p1(1) <> p11 then pause,end +if norm(coeff(p1(4)-p14))>10*%eps then pause,end +if norm(coeff(p2(2)- p22 ))>10*%eps then pause,end +if norm(coeff(p2(3)- p23 ))>10*%eps then pause,end +if norm(coeff(p1([1 3])- [p11;p13] ))>10*%eps then pause,end +if norm(coeff(p1([1;3])- p1([1 3]) ))>10*%eps then pause,end +if norm(coeff(p2([2 4])- [p22 p24] ))>10*%eps then pause,end +if norm(coeff(p2([2;4])- p2([2 4]) ))>10*%eps then pause,end +if norm(coeff(p1(:)- p1 ))>10*%eps then pause,end +if norm(coeff(p2(:)- conj(p2)' ))>10*%eps then pause,end +if norm(coeff(p3(1)- p1(1) ))>10*%eps then pause,end +if norm(coeff(p3(8)- p2(4) ))>10*%eps then pause,end +if norm(coeff(p3(3)- p1(3) ))>10*%eps then pause,end +if norm(coeff(p3(5)- p2(1) ))>10*%eps then pause,end +if norm(coeff(p3(1,1)- p1(1) ))>10*%eps then pause,end +if norm(coeff(p3(4,2)- p2(4) ))>10*%eps then pause,end +if norm(coeff(p3(3,2)- p2(3) ))>10*%eps then pause,end +if norm(coeff(p3([1 3],1)- p1([1 3]) ))>10*%eps then pause,end +if norm(coeff(p3([1;3],1)- p1([1 3]) ))>10*%eps then pause,end +if norm(coeff(p3([2 4],[2 1])-[conj(p2([2 4])') p1([2 4])]))>10*%eps + then pause,end +if norm(coeff(p3(:,1)- p1 ))>10*%eps then pause,end +if norm(coeff(p3(:,2)- conj(p2') ))>10*%eps then pause,end +if norm(coeff(p3(1,:)- [p1(1) p2(1)] ))>10*%eps then pause,end +if norm(coeff(p3([1 4],:)- [p1([1 4]) conj(p2([1 4])')] ))>10*%eps + then pause,end +if norm(coeff(p3(:,:)- p3 ))>10*%eps then pause,end + + +//hidden empty index in insertion +s=poly(0,'s'); +a=[1+s 2;3 4];a_ref=a; + +a(1,[%f %f])=[]; +if or(a<>a_ref) then pause,end +a([%f %f],1)=[]; +if or(a<>a_ref) then pause,end +a([%f %f],[%f %f])=[]; +if or(a<>a_ref) then pause,end + +a = [%s, 2*%s]; +a(2) = 1; +assert_checkequal(a, [%s,1]); + +-%s; +a=1+%s-%s^2; +b=-a; +assert_checkequal(b,-1-%s+%s^2); + +// polynom == double and double == polynom +a = 1; +aa = ones(3,3); +ac = a + %i; +aac = aa + aa * %i; + +p = 1 + %s * 0; +pp = ones(3,3) + ones(3,3) * %s * 0; +pc = p + %i; +ppc = pp + pp * %i; + +// real +assert_checktrue(a == p); +assert_checktrue(aa == p); +assert_checktrue(a == pp); +assert_checktrue(aa == pp); +assert_checktrue(p == a); +assert_checktrue(pp == a); +assert_checktrue(p == aa); +assert_checktrue(pp == aa); + +// real complex +assert_checkfalse(a == pc); +assert_checkfalse(aa == pc); +assert_checkfalse(a == ppc); +assert_checkfalse(aa == ppc); +assert_checkfalse(p == ac); +assert_checkfalse(pp == ac); +assert_checkfalse(p == aac); +assert_checkfalse(pp == aac); + +// complex real +assert_checkfalse(ac == p); +assert_checkfalse(aac == p); +assert_checkfalse(ac == pp); +assert_checkfalse(aac == pp); +assert_checkfalse(pc == a); +assert_checkfalse(ppc == a); +assert_checkfalse(pc == aa); +assert_checkfalse(ppc == aa); + +//complex +assert_checktrue(ac == pc); +assert_checktrue(aac == pc); +assert_checktrue(ac == ppc); +assert_checktrue(aac == ppc); +assert_checktrue(pc == ac); +assert_checktrue(ppc == ac); +assert_checktrue(pc == aac); +assert_checktrue(ppc == aac); + +// not all equal +// real +aa(2) = 2; +expected = ones(3,3) == 1; +expected(2) = %f; + +assert_checkequal(expected, aa == p); +assert_checkequal(expected, pp == aa); +assert_checkequal(expected, p == aa); +assert_checkequal(expected, aa == pp); +assert_checkequal(expected, pp == aa); + +pp(4) = %s; +pp(6) = 2; +expected = ones(3,3) == 1; +expected(4) = %f; +expected(6) = %f; +expected2 = expected; +expected2(2) = %f; + +assert_checkequal(expected, a == pp); +assert_checkequal(expected, pp == a); +assert_checkequal(expected2, aa == pp); +assert_checkequal(expected2, pp == aa); + +// complex +aac(2) = 2; +expected = ones(3,3) == 1; +expected(2) = %f; + +assert_checkequal(expected, aac == pc); +assert_checkequal(expected, ppc == aac); +assert_checkequal(expected, pc == aac); +assert_checkequal(expected, aac == ppc); +assert_checkequal(expected, ppc == aac); + +ppc(4) = %s; +ppc(6) = 2; +expected = ones(3,3) == 1; +expected(4) = %f; +expected(6) = %f; +expected2 = expected; +expected2(2) = %f; + +assert_checkequal(expected, ac == ppc); +assert_checkequal(expected, ppc == ac); +assert_checkequal(expected2, aac == ppc); +assert_checkequal(expected2, ppc == aac); diff --git a/modules/polynomials/tests/unit_tests/roots.dia.ref b/modules/polynomials/tests/unit_tests/roots.dia.ref new file mode 100755 index 000000000..1b768fc77 --- /dev/null +++ b/modules/polynomials/tests/unit_tests/roots.dia.ref @@ -0,0 +1,300 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2008 - 2009 - INRIA - Michael Baudin +// Copyright (C) 2011 - DIGITEO - Michael Baudin +// Copyright (C) 2012 - INRIA - Serge Steer +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// <-- CLI SHELL MODE --> +function sortedRoots=sortRoots(rootsToSort) + //Sort roots using rounded values to avoid rounding errors + //Here 10000 is ok due to roots values + [tmp,kRoots]=gsort(round(10000*[real(rootsToSort) imag(rootsToSort)]),"lr","i"); + sortedRoots = rootsToSort(kRoots); +endfunction +function checkroots(p,expectedroots,varargin) + // Checks the roots function against given roots. + // + // 1. Check default algorithm + myroots=roots(p); + computedroots = sortRoots(myroots); + expectedroots = sortRoots(expectedroots); + assert_checkalmostequal(computedroots,expectedroots,varargin(:)); + // + // 2. Check "e" algorithm + myroots=roots(p,"e"); + computedroots = sortRoots(myroots); + expectedroots = sortRoots(expectedroots); + assert_checkalmostequal(computedroots,expectedroots,varargin(:)); + // + // 3. Check "f" algorithm + if ( isreal(p) ) then + myroots=roots(p,"f"); + computedroots = sortRoots(myroots); + expectedroots = sortRoots(expectedroots); + assert_checkalmostequal(computedroots,expectedroots,varargin(:)); + end +endfunction +// Check the computation of the roots of a polynomial +// with different kinds of polynomials and different +// kinds of roots : +// - real poly, +// - complex poly, +// - real roots, +// - complex roots. +//roots : 3 real roots +p=-6+11*%s-6*%s^2+%s^3; +expectedroots = [1; 2; 3]; +checkroots(p,expectedroots,100*%eps); +//roots : 3 real roots + polynomials algebra +p=-6+11*%s-6*%s^2+%s^3; +q = p+0; +expectedroots = [1; 2; 3]; +checkroots(q,expectedroots,100*%eps); +//roots : 3 complex roots +p=-6-%i*6+(11+%i*5)*%s+(-6-%i)*%s^2+%s^3; +expectedroots = [1+%i; 2 ; 3]; +checkroots(p,expectedroots,1d-12,20*%eps); +//roots : 3 complex roots + polynomials algebra +p=-6-%i*6+(11+%i*5)*%s+(-6-%i)*%s^2+%s^3; +q = p+0; +expectedroots = [1+%i; 2 ; 3]; +checkroots(p,expectedroots,1d-12,20*%eps); +// roots : no root at all +p=1; +v=[]; +checkroots(p,[]); +q = p+0; +checkroots(q,[]); +//roots : 2 complex roots +p=1+%s+%s^2; +expectedroots = [-0.5 - sqrt(3.)/2.*%i; -0.5 + sqrt(3.)/2.*%i ]; +checkroots(p,expectedroots,10*%eps); +//roots : 2 roots equals 0 +p=%s^2; +expectedroots = [0. ; 0. ]; +checkroots(p,expectedroots,%eps); +// 2 real roots with a zero derivate at the root +p=(%s-%pi)^2; +expectedroots = [%pi;%pi]; +checkroots(p,expectedroots,10*%eps); +// +// Caution ! +// The following are difficult root-finding problems +// with expected precision problems. +// See "Principles for testing polynomial +// zerofinding programs" +// Jenkins, Traub +// 1975 +// p.28 +// "The accuracy which one may expect to achieve in calculating +// zeros is limited by the condition of these zeros. In particular, +// for multiple zeros perturbations of size epsilon in the +// coefficients cause perturbations of size epsilon^(1/m) +// in the zeros." +// +// +// 3 real roots with a zero derivate at the root +// Really difficult problem : only simple precision computed, instead of double precision *** +p=(%s-%pi)^3; +expectedroots = [%pi;%pi;%pi]; +checkroots(p,expectedroots,%eps^(1/3),5*%eps^(1/3)); +// 4 real roots with a zero derivate at the root +// Really difficult problem : only simple precision +p=(%s-%pi)^4; +expectedroots = [%pi;%pi;%pi;%pi]; +checkroots(p,expectedroots,%eps^(1/4),5*%eps^(1/4)) +// 10 real roots with a zero derivate at the root +// Really difficult problem : only one correct digit +p=(%s-%pi)^10; +expectedroots = [%pi;%pi;%pi;%pi;%pi;%pi;%pi;%pi;%pi;%pi]; +checkroots(p,expectedroots,%eps^(1/10),8*%eps^(1/10)) +// "Numerical computing with Matlab", Cleve Moler. +A = diag(1:20); +p = poly(A,'x'); +e = [1:20]'; +checkroots(p,e,%eps,0.2); +// Tests from CPOLY +// M. A. Jenkins and J. F. Traub. 1972. +// Algorithm 419: zeros of a complex polynomial. +// Commun. ACM 15, 2 (February 1972), 97-99. +// +// EXAMPLE 1. POLYNOMIAL WITH ZEROS 1,2,...,10. +P=[]; +PI=[]; +P(1)=1; +P(2)=-55; +P(3)=1320; +P(4)=-18150; +P(5)=157773; +P(6)=-902055; +P(7) = 3416930; +P(8)=-8409500; +P(9)=12753576; +P(10)=-10628640; +P(11)=3628800; +PI(1:11) = 0; +P = complex(P,PI); +E = (1:10)'; +R = roots(P); +E = sortRoots(E); +R = sortRoots(R); +assert_checkalmostequal(R, E, 1.e-10); +// EXAMPLE 2. ZEROS ON IMAGINARY AXIS DEGREE 3. +// x^3-10001.0001*i*x^2-10001.0001*x+i +P = []; +PI=[]; +P(1)=1; +P(2)=0; +P(3)=-10001.0001; +P(4)=0; +PI(1)=0; +PI(2)=-10001.0001; +PI(3)=0; +PI(4)=1; +P = complex(P,PI); +E = [ +0.0001*%i +%i +10000*%i +]; +R = roots(P); +E = sortRoots(E); +R = sortRoots(R); +assert_checkalmostequal(R, E, 1.e-15, 1.e-10); +// plot(real(R),imag(R),"bo") +// xtitle("Roots","Real","Imaginary") +// EXAMPLE 3. ZEROS AT 1+I,1/2*(1+I)....1/(2**-9)*(1+I) +P = []; +PI=[]; +P(1)=1.0; +P(2)=-1.998046875; +P(3)=0.0; +P(4)=.7567065954208374D0; +P(5)=-.2002119533717632D0; +P(6)=1.271507365163416D-2; +P(7)=0; +P(8)=-1.154642632172909D-5; +P(9)=1.584803612786345D-7; +P(10)=-4.652065399568528D-10; +P(11)=0; +PI(1)=0; +PI(2)=P(2); +PI(3)=2.658859252929688D0; +PI(4)=-7.567065954208374D-1; +PI(5)=0; +PI(6)=P(6); +PI(7)=-7.820779428584501D-4; +PI(8)=-P(8); +PI(9)=0; +PI(10)=P(10); +PI(11)=9.094947017729282D-13; +P = complex(P,PI); +R = roots(P); +E = (1+%i)*2.^((0:-1:-9)'); +E = sortRoots(E); +R = sortRoots(R); +assert_checkalmostequal(R, E, 1.e-13, 1.e-14); +// EXAMPLE 4. MULTIPLE ZEROS +// Real part: +// 288 - 1344*x + 2204*x^2 - 920*x^3 - 1587*x^4 + 2374*x^5 - 1293*x^6 + 284*x^7 + 3*x^8 - 10*x^9 + x^10 +// Imaginary part: +// 504*x - 2352*x^2 + 4334*x^3 - 3836*x^4 + 1394*x^5 + 200*x^6 - 334*x^7 + 100*x^8 - 10*x^9 +P = []; +PI=[]; +P(1)=1; +P(2)=-10; +P(3)=3; +P(4)=284; +P(5)=-1293; +P(6)=2374; +P(7)=-1587; +P(8)=-920; +P(9)=2204; +P(10)=-1344; +P(11)=288; +PI(1)=0; +PI(2)=-10; +PI(3)=100; +PI(4)=-334; +PI(5)=200; +PI(6)=1394; +PI(7) =-3836; +PI(8)=4334; +PI(9)=-2352; +PI(10)=504; +PI(11)=0; +P = complex(P,PI); +R = roots(P); +E = [ +1 +1 +1 +1 +2*%i +2*%i +2*%i +3 +3 +4*%i +]; +E = sortRoots(E); +R = sortRoots(R); +assert_checkalmostequal(R, E, 1.e-3, 1.e-3); +// EXAMPLE 5. 12 ZEROS EVENLY DISTRIBUTE ON A CIRCLE OF +// RADIUS 1. CENTERED AT 0+2I +// Real part: +// 4095 - 67584*x^2 + 126720*x^4 - 59136*x^6 + 7920*x^8 - 264*x^10 + x^12 +// Imaginary part: +// 24576*x - 112640x^3 + 101376x^5 - 25344x^7 + 1760x^9 - 24x^11 +P = []; +PI=[]; +P(1)=1; +P(2)=0; +P(3)=-264; +P(4)=0; +P(5)=7920; +P(6)=0; +P(7)=-59136; +P(8)=0; +P(9)=126720; +P(10)=0; +P(11)=-67584; +P(12)=0; +P(13)=4095; +PI(1)=0; +PI(2)=-24; +PI(3)=0; +PI(4)=1760; +PI(5)=0; +PI(6)=-25344; +PI(7)=0; +PI(8)=101376; +PI(9)=0; +PI(10)=-112640; +PI(11)=0; +PI(12)=24576; +PI(13)=0; +P = complex(P,PI); +R = roots(P); +S3=sqrt(3); +E = [ +-1 + 2*%i +%i +3*%i +1+2*%i +(1/2)*(-S3+3*%i) +(1/2)*(-S3+5*%i) +-(1/2)*%i*(S3+(-4-%i)) +(1/2)*((1+4*%i)-%i*S3) +(1/2)*%i*(S3+(4+%i)) +(1/2)*((1+4*%i)+%i*S3) +(1/2)*(S3+3*%i) +(1/2)*(S3+5*%i) +]; +E = sortRoots(E); +R = sortRoots(R); +assert_checkalmostequal(R, E, 1.e-10, 1.e-8); +assert_checkequal(roots([4 3 2 1]), roots(poly([1 2 3 4], 'x', 'coeff'))); +assert_checkequal(roots([4 3 2 1] + [1 2 3 4]*%i), roots(poly([1 2 3 4]+[4 3 2 1]*%i,'x','coeff'))); diff --git a/modules/polynomials/tests/unit_tests/roots.tst b/modules/polynomials/tests/unit_tests/roots.tst new file mode 100755 index 000000000..11a8441c2 --- /dev/null +++ b/modules/polynomials/tests/unit_tests/roots.tst @@ -0,0 +1,316 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2008 - 2009 - INRIA - Michael Baudin +// Copyright (C) 2011 - DIGITEO - Michael Baudin +// Copyright (C) 2012 - INRIA - Serge Steer +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= + +// <-- CLI SHELL MODE --> + + +function sortedRoots=sortRoots(rootsToSort) + //Sort roots using rounded values to avoid rounding errors + //Here 10000 is ok due to roots values + [tmp,kRoots]=gsort(round(10000*[real(rootsToSort) imag(rootsToSort)]),"lr","i"); + sortedRoots = rootsToSort(kRoots); +endfunction + +function checkroots(p,expectedroots,varargin) + // Checks the roots function against given roots. + // + // 1. Check default algorithm + myroots=roots(p); + computedroots = sortRoots(myroots); + expectedroots = sortRoots(expectedroots); + assert_checkalmostequal(computedroots,expectedroots,varargin(:)); + // + // 2. Check "e" algorithm + myroots=roots(p,"e"); + computedroots = sortRoots(myroots); + expectedroots = sortRoots(expectedroots); + assert_checkalmostequal(computedroots,expectedroots,varargin(:)); + // + // 3. Check "f" algorithm + if ( isreal(p) ) then + myroots=roots(p,"f"); + computedroots = sortRoots(myroots); + expectedroots = sortRoots(expectedroots); + assert_checkalmostequal(computedroots,expectedroots,varargin(:)); + end +endfunction + +// Check the computation of the roots of a polynomial +// with different kinds of polynomials and different +// kinds of roots : +// - real poly, +// - complex poly, +// - real roots, +// - complex roots. + +//roots : 3 real roots +p=-6+11*%s-6*%s^2+%s^3; +expectedroots = [1; 2; 3]; +checkroots(p,expectedroots,100*%eps); +//roots : 3 real roots + polynomials algebra +p=-6+11*%s-6*%s^2+%s^3; +q = p+0; +expectedroots = [1; 2; 3]; +checkroots(q,expectedroots,100*%eps); +//roots : 3 complex roots +p=-6-%i*6+(11+%i*5)*%s+(-6-%i)*%s^2+%s^3; +expectedroots = [1+%i; 2 ; 3]; +checkroots(p,expectedroots,1d-12,20*%eps); +//roots : 3 complex roots + polynomials algebra +p=-6-%i*6+(11+%i*5)*%s+(-6-%i)*%s^2+%s^3; +q = p+0; +expectedroots = [1+%i; 2 ; 3]; +checkroots(p,expectedroots,1d-12,20*%eps); +// roots : no root at all +p=1; +v=[]; +checkroots(p,[]); +q = p+0; +checkroots(q,[]); +//roots : 2 complex roots +p=1+%s+%s^2; +expectedroots = [-0.5 - sqrt(3.)/2.*%i; -0.5 + sqrt(3.)/2.*%i ]; +checkroots(p,expectedroots,10*%eps); +//roots : 2 roots equals 0 +p=%s^2; +expectedroots = [0. ; 0. ]; +checkroots(p,expectedroots,%eps); + +// 2 real roots with a zero derivate at the root +p=(%s-%pi)^2; +expectedroots = [%pi;%pi]; +checkroots(p,expectedroots,10*%eps); +// +// Caution ! +// The following are difficult root-finding problems +// with expected precision problems. +// See "Principles for testing polynomial +// zerofinding programs" +// Jenkins, Traub +// 1975 +// p.28 +// "The accuracy which one may expect to achieve in calculating +// zeros is limited by the condition of these zeros. In particular, +// for multiple zeros perturbations of size epsilon in the +// coefficients cause perturbations of size epsilon^(1/m) +// in the zeros." +// +// +// 3 real roots with a zero derivate at the root +// Really difficult problem : only simple precision computed, instead of double precision *** +p=(%s-%pi)^3; +expectedroots = [%pi;%pi;%pi]; +checkroots(p,expectedroots,%eps^(1/3),5*%eps^(1/3)); +// 4 real roots with a zero derivate at the root +// Really difficult problem : only simple precision +p=(%s-%pi)^4; +expectedroots = [%pi;%pi;%pi;%pi]; +checkroots(p,expectedroots,%eps^(1/4),5*%eps^(1/4)) +// 10 real roots with a zero derivate at the root +// Really difficult problem : only one correct digit +p=(%s-%pi)^10; +expectedroots = [%pi;%pi;%pi;%pi;%pi;%pi;%pi;%pi;%pi;%pi]; +checkroots(p,expectedroots,%eps^(1/10),8*%eps^(1/10)) + +// "Numerical computing with Matlab", Cleve Moler. +A = diag(1:20); +p = poly(A,'x'); +e = [1:20]'; +checkroots(p,e,%eps,0.2); + +// Tests from CPOLY +// M. A. Jenkins and J. F. Traub. 1972. +// Algorithm 419: zeros of a complex polynomial. +// Commun. ACM 15, 2 (February 1972), 97-99. +// +// EXAMPLE 1. POLYNOMIAL WITH ZEROS 1,2,...,10. +P=[]; +PI=[]; +P(1)=1; +P(2)=-55; +P(3)=1320; +P(4)=-18150; +P(5)=157773; +P(6)=-902055; +P(7) = 3416930; +P(8)=-8409500; +P(9)=12753576; +P(10)=-10628640; +P(11)=3628800; +PI(1:11) = 0; +P = complex(P,PI); +E = (1:10)'; +R = roots(P); +E = sortRoots(E); +R = sortRoots(R); +assert_checkalmostequal(R, E, 1.e-10); +// EXAMPLE 2. ZEROS ON IMAGINARY AXIS DEGREE 3. +// x^3-10001.0001*i*x^2-10001.0001*x+i +P = []; +PI=[]; +P(1)=1; +P(2)=0; +P(3)=-10001.0001; +P(4)=0; +PI(1)=0; +PI(2)=-10001.0001; +PI(3)=0; +PI(4)=1; +P = complex(P,PI); +E = [ +0.0001*%i +%i +10000*%i +]; +R = roots(P); +E = sortRoots(E); +R = sortRoots(R); +assert_checkalmostequal(R, E, 1.e-15, 1.e-10); + +// plot(real(R),imag(R),"bo") +// xtitle("Roots","Real","Imaginary") + +// EXAMPLE 3. ZEROS AT 1+I,1/2*(1+I)....1/(2**-9)*(1+I) +P = []; +PI=[]; +P(1)=1.0; +P(2)=-1.998046875; +P(3)=0.0; +P(4)=.7567065954208374D0; +P(5)=-.2002119533717632D0; +P(6)=1.271507365163416D-2; +P(7)=0; +P(8)=-1.154642632172909D-5; +P(9)=1.584803612786345D-7; +P(10)=-4.652065399568528D-10; +P(11)=0; +PI(1)=0; +PI(2)=P(2); +PI(3)=2.658859252929688D0; +PI(4)=-7.567065954208374D-1; +PI(5)=0; +PI(6)=P(6); +PI(7)=-7.820779428584501D-4; +PI(8)=-P(8); +PI(9)=0; +PI(10)=P(10); +PI(11)=9.094947017729282D-13; +P = complex(P,PI); +R = roots(P); +E = (1+%i)*2.^((0:-1:-9)'); +E = sortRoots(E); +R = sortRoots(R); +assert_checkalmostequal(R, E, 1.e-13, 1.e-14); + +// EXAMPLE 4. MULTIPLE ZEROS +// Real part: +// 288 - 1344*x + 2204*x^2 - 920*x^3 - 1587*x^4 + 2374*x^5 - 1293*x^6 + 284*x^7 + 3*x^8 - 10*x^9 + x^10 +// Imaginary part: +// 504*x - 2352*x^2 + 4334*x^3 - 3836*x^4 + 1394*x^5 + 200*x^6 - 334*x^7 + 100*x^8 - 10*x^9 +P = []; +PI=[]; +P(1)=1; +P(2)=-10; +P(3)=3; +P(4)=284; +P(5)=-1293; +P(6)=2374; +P(7)=-1587; +P(8)=-920; +P(9)=2204; +P(10)=-1344; +P(11)=288; +PI(1)=0; +PI(2)=-10; +PI(3)=100; +PI(4)=-334; +PI(5)=200; +PI(6)=1394; +PI(7) =-3836; +PI(8)=4334; +PI(9)=-2352; +PI(10)=504; +PI(11)=0; +P = complex(P,PI); +R = roots(P); +E = [ +1 +1 +1 +1 +2*%i +2*%i +2*%i +3 +3 +4*%i +]; +E = sortRoots(E); +R = sortRoots(R); +assert_checkalmostequal(R, E, 1.e-3, 1.e-3); + +// EXAMPLE 5. 12 ZEROS EVENLY DISTRIBUTE ON A CIRCLE OF +// RADIUS 1. CENTERED AT 0+2I +// Real part: +// 4095 - 67584*x^2 + 126720*x^4 - 59136*x^6 + 7920*x^8 - 264*x^10 + x^12 +// Imaginary part: +// 24576*x - 112640x^3 + 101376x^5 - 25344x^7 + 1760x^9 - 24x^11 + +P = []; +PI=[]; +P(1)=1; +P(2)=0; +P(3)=-264; +P(4)=0; +P(5)=7920; +P(6)=0; +P(7)=-59136; +P(8)=0; +P(9)=126720; +P(10)=0; +P(11)=-67584; +P(12)=0; +P(13)=4095; +PI(1)=0; +PI(2)=-24; +PI(3)=0; +PI(4)=1760; +PI(5)=0; +PI(6)=-25344; +PI(7)=0; +PI(8)=101376; +PI(9)=0; +PI(10)=-112640; +PI(11)=0; +PI(12)=24576; +PI(13)=0; +P = complex(P,PI); +R = roots(P); +S3=sqrt(3); +E = [ +-1 + 2*%i +%i +3*%i +1+2*%i +(1/2)*(-S3+3*%i) +(1/2)*(-S3+5*%i) +-(1/2)*%i*(S3+(-4-%i)) +(1/2)*((1+4*%i)-%i*S3) +(1/2)*%i*(S3+(4+%i)) +(1/2)*((1+4*%i)+%i*S3) +(1/2)*(S3+3*%i) +(1/2)*(S3+5*%i) +]; +E = sortRoots(E); +R = sortRoots(R); +assert_checkalmostequal(R, E, 1.e-10, 1.e-8); + +assert_checkequal(roots([4 3 2 1]), roots(poly([1 2 3 4], 'x', 'coeff'))); +assert_checkequal(roots([4 3 2 1] + [1 2 3 4]*%i), roots(poly([1 2 3 4]+[4 3 2 1]*%i,'x','coeff'))); + diff --git a/modules/polynomials/tests/unit_tests/tril.dia.ref b/modules/polynomials/tests/unit_tests/tril.dia.ref new file mode 100755 index 000000000..347b38577 --- /dev/null +++ b/modules/polynomials/tests/unit_tests/tril.dia.ref @@ -0,0 +1,10 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2013 - S/E - Sylvestre Ledru +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// <-- CLI SHELL MODE --> +s=poly(0,'s'); +a=tril([s,s;s,1]); +assert_checkequal(a, [s,0*s;s,1]); diff --git a/modules/polynomials/tests/unit_tests/tril.tst b/modules/polynomials/tests/unit_tests/tril.tst new file mode 100755 index 000000000..d4e7bf39c --- /dev/null +++ b/modules/polynomials/tests/unit_tests/tril.tst @@ -0,0 +1,12 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2013 - S/E - Sylvestre Ledru +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= + +// <-- CLI SHELL MODE --> +s=poly(0,'s'); +a=tril([s,s;s,1]); +assert_checkequal(a, [s,0*s;s,1]); + |