diff options
Diffstat (limited to 'modules/linear_algebra')
798 files changed, 67463 insertions, 0 deletions
diff --git a/modules/linear_algebra/.libs/libscilinear_algebra-algo.a b/modules/linear_algebra/.libs/libscilinear_algebra-algo.a Binary files differnew file mode 100755 index 000000000..538a0e5f7 --- /dev/null +++ b/modules/linear_algebra/.libs/libscilinear_algebra-algo.a diff --git a/modules/linear_algebra/.libs/libscilinear_algebra-algo.la b/modules/linear_algebra/.libs/libscilinear_algebra-algo.la new file mode 120000 index 000000000..335ced933 --- /dev/null +++ b/modules/linear_algebra/.libs/libscilinear_algebra-algo.la @@ -0,0 +1 @@ +../libscilinear_algebra-algo.la
\ No newline at end of file diff --git a/modules/linear_algebra/.libs/libscilinear_algebra.a b/modules/linear_algebra/.libs/libscilinear_algebra.a Binary files differnew file mode 100755 index 000000000..d1de3f8d5 --- /dev/null +++ b/modules/linear_algebra/.libs/libscilinear_algebra.a diff --git a/modules/linear_algebra/.libs/libscilinear_algebra.la b/modules/linear_algebra/.libs/libscilinear_algebra.la new file mode 120000 index 000000000..b32b21f3a --- /dev/null +++ b/modules/linear_algebra/.libs/libscilinear_algebra.la @@ -0,0 +1 @@ +../libscilinear_algebra.la
\ No newline at end of file diff --git a/modules/linear_algebra/Makefile b/modules/linear_algebra/Makefile new file mode 100755 index 000000000..c27a152f9 --- /dev/null +++ b/modules/linear_algebra/Makefile @@ -0,0 +1,1876 @@ +# Makefile.in generated by automake 1.14.1 from Makefile.am. +# modules/linear_algebra/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/linear_algebra +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)$(libscilinear_algebra_la_etcdir)" \ + "$(DESTDIR)$(libscilinear_algebra_la_rootdir)" \ + "$(DESTDIR)$(libscilinear_algebra_la_sci_gatewaydir)" +LTLIBRARIES = $(noinst_LTLIBRARIES) $(pkglib_LTLIBRARIES) +libscilinear_algebra_algo_la_LIBADD = +am__dirstamp = $(am__leading_dot)dirstamp +am__objects_1 = src/fortran/intdggbal.lo src/fortran/intzgeqpf4.lo \ + src/fortran/intzgehrd.lo src/fortran/intzgesvd1.lo \ + src/fortran/intzfschur.lo src/fortran/intzgesvd2.lo \ + src/fortran/intdgges.lo src/fortran/intgschur.lo \ + src/fortran/intdgesv3.lo src/fortran/intdgesv4.lo \ + src/fortran/DGELSY1.lo src/fortran/ZGELSY1.lo \ + src/fortran/intozgschur.lo src/fortran/intdpotrf.lo \ + src/fortran/intdoldsvd.lo src/fortran/intdgecon.lo \ + src/fortran/zoldqr.lo src/fortran/intzgetrf.lo \ + src/fortran/intoschur.lo src/fortran/complexify.lo \ + src/fortran/intzgebal.lo src/fortran/intzgetri.lo \ + src/fortran/intzggbal.lo src/fortran/intdgees0.lo \ + src/fortran/intdgees1.lo src/fortran/intogschur.lo \ + src/fortran/intzgges.lo src/fortran/intddet.lo \ + src/fortran/intzgesv3.lo src/fortran/intzgesv4.lo \ + src/fortran/intzpotrf.lo src/fortran/intzgecon.lo \ + src/fortran/intzgschur.lo src/fortran/intzoldsvd.lo \ + src/fortran/intdgelsy.lo src/fortran/intdgeqpf3.lo \ + src/fortran/intfschur.lo src/fortran/intdgeqpf4.lo \ + src/fortran/intdgesvd1.lo src/fortran/intdgehrd.lo \ + src/fortran/intzgees0.lo src/fortran/intdgesvd2.lo \ + src/fortran/intzgees1.lo src/fortran/intzdet.lo \ + src/fortran/doldqr.lo src/fortran/scischur.lo \ + src/fortran/intdgetrf.lo src/fortran/intzgelsy.lo \ + src/fortran/intdgetri.lo src/fortran/intdgebal.lo \ + src/fortran/intzschur.lo src/fortran/intzgeqpf3.lo \ + src/fortran/writebuf.lo +am__objects_2 = src/c/libscilinear_algebra_algo_la-schurtable.lo \ + src/c/libscilinear_algebra_algo_la-issymmetric.lo \ + src/c/libscilinear_algebra_algo_la-norm.lo +am_libscilinear_algebra_algo_la_OBJECTS = $(am__objects_1) \ + $(am__objects_2) +libscilinear_algebra_algo_la_OBJECTS = \ + $(am_libscilinear_algebra_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_libscilinear_algebra_algo_la_rpath = +#am_libscilinear_algebra_algo_la_rpath = +libscilinear_algebra_la_DEPENDENCIES = libscilinear_algebra-algo.la +am__objects_3 = \ + sci_gateway/c/libscilinear_algebra_la-sci_backslash.lo \ + sci_gateway/c/libscilinear_algebra_la-sci_hess.lo \ + sci_gateway/c/libscilinear_algebra_la-sci_rcond.lo \ + sci_gateway/c/libscilinear_algebra_la-sci_bdiag.lo \ + sci_gateway/c/libscilinear_algebra_la-sci_slash.lo \ + sci_gateway/c/libscilinear_algebra_la-gw_linear_algebra2.lo \ + sci_gateway/c/libscilinear_algebra_la-sci_det.lo \ + sci_gateway/c/libscilinear_algebra_la-sci_lu.lo \ + sci_gateway/c/libscilinear_algebra_la-sci_balanc.lo \ + sci_gateway/c/libscilinear_algebra_la-sci_qr.lo \ + sci_gateway/c/libscilinear_algebra_la-sci_schur.lo \ + sci_gateway/c/libscilinear_algebra_la-sci_chol.lo \ + sci_gateway/c/libscilinear_algebra_la-sci_spec.lo \ + sci_gateway/c/libscilinear_algebra_la-gw_linear_algebra.lo \ + sci_gateway/c/libscilinear_algebra_la-sci_inv.lo \ + sci_gateway/c/libscilinear_algebra_la-sci_svd.lo \ + sci_gateway/c/libscilinear_algebra_la-sci_lsq.lo \ + sci_gateway/c/libscilinear_algebra_la-sci_norm.lo \ + sci_gateway/c/libscilinear_algebra_la-assembleEigenvectors.lo \ + sci_gateway/c/libscilinear_algebra_la-sci_dgeev.lo \ + sci_gateway/c/libscilinear_algebra_la-sci_dggev.lo \ + sci_gateway/c/libscilinear_algebra_la-sci_dsyev.lo \ + sci_gateway/c/libscilinear_algebra_la-sci_zgeev.lo \ + sci_gateway/c/libscilinear_algebra_la-sci_zggev.lo \ + sci_gateway/c/libscilinear_algebra_la-sci_zheev.lo +am__objects_4 = +am_libscilinear_algebra_la_OBJECTS = $(am__objects_3) $(am__objects_4) +libscilinear_algebra_la_OBJECTS = \ + $(am_libscilinear_algebra_la_OBJECTS) +am_libscilinear_algebra_la_rpath = +#am_libscilinear_algebra_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 = $(libscilinear_algebra_algo_la_SOURCES) \ + $(libscilinear_algebra_la_SOURCES) +DIST_SOURCES = $(libscilinear_algebra_algo_la_SOURCES) \ + $(libscilinear_algebra_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 = $(libscilinear_algebra_la_etc_DATA) \ + $(libscilinear_algebra_la_root_DATA) \ + $(libscilinear_algebra_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/linear_algebra +abs_srcdir = /home/shashank/scilab-master_5.5.2/modules/linear_algebra +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 = ../.. +LINEAR_ALGEBRA_C_SOURCES = src/c/schurtable.c \ +src/c/issymmetric.c \ +src/c/norm.c + +LINEAR_ALGEBRA_FORTRAN_SOURCES = src/fortran/intdggbal.f \ +src/fortran/intzgeqpf4.f \ +src/fortran/intzgehrd.f \ +src/fortran/intzgesvd1.f \ +src/fortran/intzfschur.f \ +src/fortran/intzgesvd2.f \ +src/fortran/intdgges.f \ +src/fortran/intgschur.f \ +src/fortran/intdgesv3.f \ +src/fortran/intdgesv4.f \ +src/fortran/DGELSY1.f \ +src/fortran/ZGELSY1.f \ +src/fortran/intozgschur.f \ +src/fortran/intdpotrf.f \ +src/fortran/intdoldsvd.f \ +src/fortran/intdgecon.f \ +src/fortran/zoldqr.f \ +src/fortran/intzgetrf.f \ +src/fortran/intoschur.f \ +src/fortran/complexify.f \ +src/fortran/intzgebal.f \ +src/fortran/intzgetri.f \ +src/fortran/intzggbal.f \ +src/fortran/intdgees0.f \ +src/fortran/intdgees1.f \ +src/fortran/intogschur.f \ +src/fortran/intzgges.f \ +src/fortran/intddet.f \ +src/fortran/intzgesv3.f \ +src/fortran/intzgesv4.f \ +src/fortran/intzpotrf.f \ +src/fortran/intzgecon.f \ +src/fortran/intzgschur.f \ +src/fortran/intzoldsvd.f \ +src/fortran/intdgelsy.f \ +src/fortran/intdgeqpf3.f \ +src/fortran/intfschur.f \ +src/fortran/intdgeqpf4.f \ +src/fortran/intdgesvd1.f \ +src/fortran/intdgehrd.f \ +src/fortran/intzgees0.f \ +src/fortran/intdgesvd2.f \ +src/fortran/intzgees1.f \ +src/fortran/intzdet.f \ +src/fortran/doldqr.f \ +src/fortran/scischur.f \ +src/fortran/intdgetrf.f \ +src/fortran/intzgelsy.f \ +src/fortran/intdgetri.f \ +src/fortran/intdgebal.f \ +src/fortran/intzschur.f \ +src/fortran/intzgeqpf3.f \ +src/fortran/writebuf.f + +#src/fortran/issymmetric.f +GATEWAY_C_SOURCES = sci_gateway/c/sci_backslash.c \ +sci_gateway/c/sci_hess.c \ +sci_gateway/c/sci_rcond.c \ +sci_gateway/c/sci_bdiag.c \ +sci_gateway/c/sci_slash.c \ +sci_gateway/c/gw_linear_algebra2.c \ +sci_gateway/c/sci_det.c \ +sci_gateway/c/sci_lu.c \ +sci_gateway/c/sci_balanc.c \ +sci_gateway/c/sci_qr.c \ +sci_gateway/c/sci_schur.c \ +sci_gateway/c/sci_chol.c \ +sci_gateway/c/sci_spec.c \ +sci_gateway/c/gw_linear_algebra.c \ +sci_gateway/c/sci_inv.c \ +sci_gateway/c/sci_svd.c \ +sci_gateway/c/sci_lsq.c \ +sci_gateway/c/sci_norm.c \ +sci_gateway/c/assembleEigenvectors.c \ +sci_gateway/c/sci_dgeev.c \ +sci_gateway/c/sci_dggev.c \ +sci_gateway/c/sci_dsyev.c \ +sci_gateway/c/sci_zgeev.c \ +sci_gateway/c/sci_zggev.c \ +sci_gateway/c/sci_zheev.c + +GATEWAY_FORTRAN_SOURCES = +libscilinear_algebra_la_CPPFLAGS = -I$(srcdir)/includes/ \ +-I$(srcdir)/src/c/ \ +-I$(top_srcdir)/modules/output_stream/includes/ \ +-I$(top_srcdir)/modules/dynamic_link/includes/ \ +-I$(top_srcdir)/modules/api_scilab/includes/ \ +-I$(top_srcdir)/modules/elementary_functions/includes/ \ +-I$(top_srcdir)/modules/localization/includes/ \ +$(AM_CPPFLAGS) + +#pkglib_LTLIBRARIES = libscilinear_algebra.la +noinst_LTLIBRARIES = libscilinear_algebra-algo.la libscilinear_algebra.la +#noinst_LTLIBRARIES = libscilinear_algebra-algo.la +libscilinear_algebra_algo_la_SOURCES = $(LINEAR_ALGEBRA_FORTRAN_SOURCES) $(LINEAR_ALGEBRA_C_SOURCES) +libscilinear_algebra_la_SOURCES = $(GATEWAY_C_SOURCES) $(GATEWAY_FORTRAN_SOURCES) +libscilinear_algebra_algo_la_CPPFLAGS = $(libscilinear_algebra_la_CPPFLAGS) + +# For the code check (splint) +CHECK_SRC = $(LINEAR_ALGEBRA_C_SOURCES) $(GATEWAY_C_SOURCES) +INCLUDE_FLAGS = $(libscilinear_algebra_la_CPPFLAGS) +libscilinear_algebra_la_LIBADD = libscilinear_algebra-algo.la + +#### Target ###### +modulename = linear_algebra + +#### linear_algebra : Conf files #### +libscilinear_algebra_la_rootdir = $(mydatadir) +libscilinear_algebra_la_root_DATA = license.txt + +#### linear_algebra : init scripts #### +libscilinear_algebra_la_etcdir = $(mydatadir)/etc +libscilinear_algebra_la_etc_DATA = etc/linear_algebra.quit etc/linear_algebra.start +#### linear_algebra : gateway declaration #### +libscilinear_algebra_la_sci_gatewaydir = $(mydatadir)/sci_gateway +libscilinear_algebra_la_sci_gateway_DATA = sci_gateway/linear_algebra_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/linear_algebra/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign modules/linear_algebra/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/intdggbal.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intzgeqpf4.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intzgehrd.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intzgesvd1.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intzfschur.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intzgesvd2.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intdgges.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intgschur.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intdgesv3.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intdgesv4.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/DGELSY1.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/ZGELSY1.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intozgschur.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intdpotrf.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intdoldsvd.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intdgecon.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/zoldqr.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intzgetrf.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intoschur.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/complexify.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intzgebal.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intzgetri.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intzggbal.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intdgees0.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intdgees1.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intogschur.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intzgges.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intddet.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intzgesv3.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intzgesv4.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intzpotrf.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intzgecon.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intzgschur.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intzoldsvd.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intdgelsy.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intdgeqpf3.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intfschur.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intdgeqpf4.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intdgesvd1.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intdgehrd.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intzgees0.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intdgesvd2.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intzgees1.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intzdet.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/doldqr.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/scischur.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intdgetrf.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intzgelsy.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intdgetri.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intdgebal.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intzschur.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intzgeqpf3.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/writebuf.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/c/$(am__dirstamp): + @$(MKDIR_P) src/c + @: > src/c/$(am__dirstamp) +src/c/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) src/c/$(DEPDIR) + @: > src/c/$(DEPDIR)/$(am__dirstamp) +src/c/libscilinear_algebra_algo_la-schurtable.lo: \ + src/c/$(am__dirstamp) src/c/$(DEPDIR)/$(am__dirstamp) +src/c/libscilinear_algebra_algo_la-issymmetric.lo: \ + src/c/$(am__dirstamp) src/c/$(DEPDIR)/$(am__dirstamp) +src/c/libscilinear_algebra_algo_la-norm.lo: src/c/$(am__dirstamp) \ + src/c/$(DEPDIR)/$(am__dirstamp) + +libscilinear_algebra-algo.la: $(libscilinear_algebra_algo_la_OBJECTS) $(libscilinear_algebra_algo_la_DEPENDENCIES) $(EXTRA_libscilinear_algebra_algo_la_DEPENDENCIES) + $(AM_V_F77LD)$(F77LINK) $(am_libscilinear_algebra_algo_la_rpath) $(libscilinear_algebra_algo_la_OBJECTS) $(libscilinear_algebra_algo_la_LIBADD) $(LIBS) +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/libscilinear_algebra_la-sci_backslash.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscilinear_algebra_la-sci_hess.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscilinear_algebra_la-sci_rcond.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscilinear_algebra_la-sci_bdiag.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscilinear_algebra_la-sci_slash.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscilinear_algebra_la-gw_linear_algebra2.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscilinear_algebra_la-sci_det.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscilinear_algebra_la-sci_lu.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscilinear_algebra_la-sci_balanc.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscilinear_algebra_la-sci_qr.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscilinear_algebra_la-sci_schur.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscilinear_algebra_la-sci_chol.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscilinear_algebra_la-sci_spec.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscilinear_algebra_la-gw_linear_algebra.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscilinear_algebra_la-sci_inv.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscilinear_algebra_la-sci_svd.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscilinear_algebra_la-sci_lsq.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscilinear_algebra_la-sci_norm.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscilinear_algebra_la-assembleEigenvectors.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscilinear_algebra_la-sci_dgeev.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscilinear_algebra_la-sci_dggev.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscilinear_algebra_la-sci_dsyev.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscilinear_algebra_la-sci_zgeev.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscilinear_algebra_la-sci_zggev.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscilinear_algebra_la-sci_zheev.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) + +libscilinear_algebra.la: $(libscilinear_algebra_la_OBJECTS) $(libscilinear_algebra_la_DEPENDENCIES) $(EXTRA_libscilinear_algebra_la_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(am_libscilinear_algebra_la_rpath) $(libscilinear_algebra_la_OBJECTS) $(libscilinear_algebra_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + -rm -f sci_gateway/c/*.$(OBJEXT) + -rm -f sci_gateway/c/*.lo + -rm -f src/c/*.$(OBJEXT) + -rm -f src/c/*.lo + -rm -f src/fortran/*.$(OBJEXT) + -rm -f src/fortran/*.lo + +distclean-compile: + -rm -f *.tab.c + +include sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-assembleEigenvectors.Plo +include sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-gw_linear_algebra.Plo +include sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-gw_linear_algebra2.Plo +include sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_backslash.Plo +include sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_balanc.Plo +include sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_bdiag.Plo +include sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_chol.Plo +include sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_det.Plo +include sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_dgeev.Plo +include sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_dggev.Plo +include sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_dsyev.Plo +include sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_hess.Plo +include sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_inv.Plo +include sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_lsq.Plo +include sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_lu.Plo +include sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_norm.Plo +include sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_qr.Plo +include sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_rcond.Plo +include sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_schur.Plo +include sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_slash.Plo +include sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_spec.Plo +include sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_svd.Plo +include sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_zgeev.Plo +include sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_zggev.Plo +include sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_zheev.Plo +include src/c/$(DEPDIR)/libscilinear_algebra_algo_la-issymmetric.Plo +include src/c/$(DEPDIR)/libscilinear_algebra_algo_la-norm.Plo +include src/c/$(DEPDIR)/libscilinear_algebra_algo_la-schurtable.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 $@ $< + +src/c/libscilinear_algebra_algo_la-schurtable.lo: src/c/schurtable.c + $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscilinear_algebra_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/c/libscilinear_algebra_algo_la-schurtable.lo -MD -MP -MF src/c/$(DEPDIR)/libscilinear_algebra_algo_la-schurtable.Tpo -c -o src/c/libscilinear_algebra_algo_la-schurtable.lo `test -f 'src/c/schurtable.c' || echo '$(srcdir)/'`src/c/schurtable.c + $(AM_V_at)$(am__mv) src/c/$(DEPDIR)/libscilinear_algebra_algo_la-schurtable.Tpo src/c/$(DEPDIR)/libscilinear_algebra_algo_la-schurtable.Plo +# $(AM_V_CC)source='src/c/schurtable.c' object='src/c/libscilinear_algebra_algo_la-schurtable.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) $(libscilinear_algebra_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/c/libscilinear_algebra_algo_la-schurtable.lo `test -f 'src/c/schurtable.c' || echo '$(srcdir)/'`src/c/schurtable.c + +src/c/libscilinear_algebra_algo_la-issymmetric.lo: src/c/issymmetric.c + $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscilinear_algebra_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/c/libscilinear_algebra_algo_la-issymmetric.lo -MD -MP -MF src/c/$(DEPDIR)/libscilinear_algebra_algo_la-issymmetric.Tpo -c -o src/c/libscilinear_algebra_algo_la-issymmetric.lo `test -f 'src/c/issymmetric.c' || echo '$(srcdir)/'`src/c/issymmetric.c + $(AM_V_at)$(am__mv) src/c/$(DEPDIR)/libscilinear_algebra_algo_la-issymmetric.Tpo src/c/$(DEPDIR)/libscilinear_algebra_algo_la-issymmetric.Plo +# $(AM_V_CC)source='src/c/issymmetric.c' object='src/c/libscilinear_algebra_algo_la-issymmetric.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) $(libscilinear_algebra_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/c/libscilinear_algebra_algo_la-issymmetric.lo `test -f 'src/c/issymmetric.c' || echo '$(srcdir)/'`src/c/issymmetric.c + +src/c/libscilinear_algebra_algo_la-norm.lo: src/c/norm.c + $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscilinear_algebra_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/c/libscilinear_algebra_algo_la-norm.lo -MD -MP -MF src/c/$(DEPDIR)/libscilinear_algebra_algo_la-norm.Tpo -c -o src/c/libscilinear_algebra_algo_la-norm.lo `test -f 'src/c/norm.c' || echo '$(srcdir)/'`src/c/norm.c + $(AM_V_at)$(am__mv) src/c/$(DEPDIR)/libscilinear_algebra_algo_la-norm.Tpo src/c/$(DEPDIR)/libscilinear_algebra_algo_la-norm.Plo +# $(AM_V_CC)source='src/c/norm.c' object='src/c/libscilinear_algebra_algo_la-norm.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) $(libscilinear_algebra_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/c/libscilinear_algebra_algo_la-norm.lo `test -f 'src/c/norm.c' || echo '$(srcdir)/'`src/c/norm.c + +sci_gateway/c/libscilinear_algebra_la-sci_backslash.lo: sci_gateway/c/sci_backslash.c + $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscilinear_algebra_la-sci_backslash.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_backslash.Tpo -c -o sci_gateway/c/libscilinear_algebra_la-sci_backslash.lo `test -f 'sci_gateway/c/sci_backslash.c' || echo '$(srcdir)/'`sci_gateway/c/sci_backslash.c + $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_backslash.Tpo sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_backslash.Plo +# $(AM_V_CC)source='sci_gateway/c/sci_backslash.c' object='sci_gateway/c/libscilinear_algebra_la-sci_backslash.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) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscilinear_algebra_la-sci_backslash.lo `test -f 'sci_gateway/c/sci_backslash.c' || echo '$(srcdir)/'`sci_gateway/c/sci_backslash.c + +sci_gateway/c/libscilinear_algebra_la-sci_hess.lo: sci_gateway/c/sci_hess.c + $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscilinear_algebra_la-sci_hess.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_hess.Tpo -c -o sci_gateway/c/libscilinear_algebra_la-sci_hess.lo `test -f 'sci_gateway/c/sci_hess.c' || echo '$(srcdir)/'`sci_gateway/c/sci_hess.c + $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_hess.Tpo sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_hess.Plo +# $(AM_V_CC)source='sci_gateway/c/sci_hess.c' object='sci_gateway/c/libscilinear_algebra_la-sci_hess.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) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscilinear_algebra_la-sci_hess.lo `test -f 'sci_gateway/c/sci_hess.c' || echo '$(srcdir)/'`sci_gateway/c/sci_hess.c + +sci_gateway/c/libscilinear_algebra_la-sci_rcond.lo: sci_gateway/c/sci_rcond.c + $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscilinear_algebra_la-sci_rcond.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_rcond.Tpo -c -o sci_gateway/c/libscilinear_algebra_la-sci_rcond.lo `test -f 'sci_gateway/c/sci_rcond.c' || echo '$(srcdir)/'`sci_gateway/c/sci_rcond.c + $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_rcond.Tpo sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_rcond.Plo +# $(AM_V_CC)source='sci_gateway/c/sci_rcond.c' object='sci_gateway/c/libscilinear_algebra_la-sci_rcond.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) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscilinear_algebra_la-sci_rcond.lo `test -f 'sci_gateway/c/sci_rcond.c' || echo '$(srcdir)/'`sci_gateway/c/sci_rcond.c + +sci_gateway/c/libscilinear_algebra_la-sci_bdiag.lo: sci_gateway/c/sci_bdiag.c + $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscilinear_algebra_la-sci_bdiag.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_bdiag.Tpo -c -o sci_gateway/c/libscilinear_algebra_la-sci_bdiag.lo `test -f 'sci_gateway/c/sci_bdiag.c' || echo '$(srcdir)/'`sci_gateway/c/sci_bdiag.c + $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_bdiag.Tpo sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_bdiag.Plo +# $(AM_V_CC)source='sci_gateway/c/sci_bdiag.c' object='sci_gateway/c/libscilinear_algebra_la-sci_bdiag.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) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscilinear_algebra_la-sci_bdiag.lo `test -f 'sci_gateway/c/sci_bdiag.c' || echo '$(srcdir)/'`sci_gateway/c/sci_bdiag.c + +sci_gateway/c/libscilinear_algebra_la-sci_slash.lo: sci_gateway/c/sci_slash.c + $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscilinear_algebra_la-sci_slash.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_slash.Tpo -c -o sci_gateway/c/libscilinear_algebra_la-sci_slash.lo `test -f 'sci_gateway/c/sci_slash.c' || echo '$(srcdir)/'`sci_gateway/c/sci_slash.c + $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_slash.Tpo sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_slash.Plo +# $(AM_V_CC)source='sci_gateway/c/sci_slash.c' object='sci_gateway/c/libscilinear_algebra_la-sci_slash.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) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscilinear_algebra_la-sci_slash.lo `test -f 'sci_gateway/c/sci_slash.c' || echo '$(srcdir)/'`sci_gateway/c/sci_slash.c + +sci_gateway/c/libscilinear_algebra_la-gw_linear_algebra2.lo: sci_gateway/c/gw_linear_algebra2.c + $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscilinear_algebra_la-gw_linear_algebra2.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-gw_linear_algebra2.Tpo -c -o sci_gateway/c/libscilinear_algebra_la-gw_linear_algebra2.lo `test -f 'sci_gateway/c/gw_linear_algebra2.c' || echo '$(srcdir)/'`sci_gateway/c/gw_linear_algebra2.c + $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-gw_linear_algebra2.Tpo sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-gw_linear_algebra2.Plo +# $(AM_V_CC)source='sci_gateway/c/gw_linear_algebra2.c' object='sci_gateway/c/libscilinear_algebra_la-gw_linear_algebra2.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) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscilinear_algebra_la-gw_linear_algebra2.lo `test -f 'sci_gateway/c/gw_linear_algebra2.c' || echo '$(srcdir)/'`sci_gateway/c/gw_linear_algebra2.c + +sci_gateway/c/libscilinear_algebra_la-sci_det.lo: sci_gateway/c/sci_det.c + $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscilinear_algebra_la-sci_det.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_det.Tpo -c -o sci_gateway/c/libscilinear_algebra_la-sci_det.lo `test -f 'sci_gateway/c/sci_det.c' || echo '$(srcdir)/'`sci_gateway/c/sci_det.c + $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_det.Tpo sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_det.Plo +# $(AM_V_CC)source='sci_gateway/c/sci_det.c' object='sci_gateway/c/libscilinear_algebra_la-sci_det.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) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscilinear_algebra_la-sci_det.lo `test -f 'sci_gateway/c/sci_det.c' || echo '$(srcdir)/'`sci_gateway/c/sci_det.c + +sci_gateway/c/libscilinear_algebra_la-sci_lu.lo: sci_gateway/c/sci_lu.c + $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscilinear_algebra_la-sci_lu.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_lu.Tpo -c -o sci_gateway/c/libscilinear_algebra_la-sci_lu.lo `test -f 'sci_gateway/c/sci_lu.c' || echo '$(srcdir)/'`sci_gateway/c/sci_lu.c + $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_lu.Tpo sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_lu.Plo +# $(AM_V_CC)source='sci_gateway/c/sci_lu.c' object='sci_gateway/c/libscilinear_algebra_la-sci_lu.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) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscilinear_algebra_la-sci_lu.lo `test -f 'sci_gateway/c/sci_lu.c' || echo '$(srcdir)/'`sci_gateway/c/sci_lu.c + +sci_gateway/c/libscilinear_algebra_la-sci_balanc.lo: sci_gateway/c/sci_balanc.c + $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscilinear_algebra_la-sci_balanc.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_balanc.Tpo -c -o sci_gateway/c/libscilinear_algebra_la-sci_balanc.lo `test -f 'sci_gateway/c/sci_balanc.c' || echo '$(srcdir)/'`sci_gateway/c/sci_balanc.c + $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_balanc.Tpo sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_balanc.Plo +# $(AM_V_CC)source='sci_gateway/c/sci_balanc.c' object='sci_gateway/c/libscilinear_algebra_la-sci_balanc.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) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscilinear_algebra_la-sci_balanc.lo `test -f 'sci_gateway/c/sci_balanc.c' || echo '$(srcdir)/'`sci_gateway/c/sci_balanc.c + +sci_gateway/c/libscilinear_algebra_la-sci_qr.lo: sci_gateway/c/sci_qr.c + $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscilinear_algebra_la-sci_qr.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_qr.Tpo -c -o sci_gateway/c/libscilinear_algebra_la-sci_qr.lo `test -f 'sci_gateway/c/sci_qr.c' || echo '$(srcdir)/'`sci_gateway/c/sci_qr.c + $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_qr.Tpo sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_qr.Plo +# $(AM_V_CC)source='sci_gateway/c/sci_qr.c' object='sci_gateway/c/libscilinear_algebra_la-sci_qr.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) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscilinear_algebra_la-sci_qr.lo `test -f 'sci_gateway/c/sci_qr.c' || echo '$(srcdir)/'`sci_gateway/c/sci_qr.c + +sci_gateway/c/libscilinear_algebra_la-sci_schur.lo: sci_gateway/c/sci_schur.c + $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscilinear_algebra_la-sci_schur.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_schur.Tpo -c -o sci_gateway/c/libscilinear_algebra_la-sci_schur.lo `test -f 'sci_gateway/c/sci_schur.c' || echo '$(srcdir)/'`sci_gateway/c/sci_schur.c + $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_schur.Tpo sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_schur.Plo +# $(AM_V_CC)source='sci_gateway/c/sci_schur.c' object='sci_gateway/c/libscilinear_algebra_la-sci_schur.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) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscilinear_algebra_la-sci_schur.lo `test -f 'sci_gateway/c/sci_schur.c' || echo '$(srcdir)/'`sci_gateway/c/sci_schur.c + +sci_gateway/c/libscilinear_algebra_la-sci_chol.lo: sci_gateway/c/sci_chol.c + $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscilinear_algebra_la-sci_chol.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_chol.Tpo -c -o sci_gateway/c/libscilinear_algebra_la-sci_chol.lo `test -f 'sci_gateway/c/sci_chol.c' || echo '$(srcdir)/'`sci_gateway/c/sci_chol.c + $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_chol.Tpo sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_chol.Plo +# $(AM_V_CC)source='sci_gateway/c/sci_chol.c' object='sci_gateway/c/libscilinear_algebra_la-sci_chol.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) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscilinear_algebra_la-sci_chol.lo `test -f 'sci_gateway/c/sci_chol.c' || echo '$(srcdir)/'`sci_gateway/c/sci_chol.c + +sci_gateway/c/libscilinear_algebra_la-sci_spec.lo: sci_gateway/c/sci_spec.c + $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscilinear_algebra_la-sci_spec.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_spec.Tpo -c -o sci_gateway/c/libscilinear_algebra_la-sci_spec.lo `test -f 'sci_gateway/c/sci_spec.c' || echo '$(srcdir)/'`sci_gateway/c/sci_spec.c + $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_spec.Tpo sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_spec.Plo +# $(AM_V_CC)source='sci_gateway/c/sci_spec.c' object='sci_gateway/c/libscilinear_algebra_la-sci_spec.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) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscilinear_algebra_la-sci_spec.lo `test -f 'sci_gateway/c/sci_spec.c' || echo '$(srcdir)/'`sci_gateway/c/sci_spec.c + +sci_gateway/c/libscilinear_algebra_la-gw_linear_algebra.lo: sci_gateway/c/gw_linear_algebra.c + $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscilinear_algebra_la-gw_linear_algebra.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-gw_linear_algebra.Tpo -c -o sci_gateway/c/libscilinear_algebra_la-gw_linear_algebra.lo `test -f 'sci_gateway/c/gw_linear_algebra.c' || echo '$(srcdir)/'`sci_gateway/c/gw_linear_algebra.c + $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-gw_linear_algebra.Tpo sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-gw_linear_algebra.Plo +# $(AM_V_CC)source='sci_gateway/c/gw_linear_algebra.c' object='sci_gateway/c/libscilinear_algebra_la-gw_linear_algebra.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) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscilinear_algebra_la-gw_linear_algebra.lo `test -f 'sci_gateway/c/gw_linear_algebra.c' || echo '$(srcdir)/'`sci_gateway/c/gw_linear_algebra.c + +sci_gateway/c/libscilinear_algebra_la-sci_inv.lo: sci_gateway/c/sci_inv.c + $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscilinear_algebra_la-sci_inv.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_inv.Tpo -c -o sci_gateway/c/libscilinear_algebra_la-sci_inv.lo `test -f 'sci_gateway/c/sci_inv.c' || echo '$(srcdir)/'`sci_gateway/c/sci_inv.c + $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_inv.Tpo sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_inv.Plo +# $(AM_V_CC)source='sci_gateway/c/sci_inv.c' object='sci_gateway/c/libscilinear_algebra_la-sci_inv.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) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscilinear_algebra_la-sci_inv.lo `test -f 'sci_gateway/c/sci_inv.c' || echo '$(srcdir)/'`sci_gateway/c/sci_inv.c + +sci_gateway/c/libscilinear_algebra_la-sci_svd.lo: sci_gateway/c/sci_svd.c + $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscilinear_algebra_la-sci_svd.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_svd.Tpo -c -o sci_gateway/c/libscilinear_algebra_la-sci_svd.lo `test -f 'sci_gateway/c/sci_svd.c' || echo '$(srcdir)/'`sci_gateway/c/sci_svd.c + $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_svd.Tpo sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_svd.Plo +# $(AM_V_CC)source='sci_gateway/c/sci_svd.c' object='sci_gateway/c/libscilinear_algebra_la-sci_svd.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) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscilinear_algebra_la-sci_svd.lo `test -f 'sci_gateway/c/sci_svd.c' || echo '$(srcdir)/'`sci_gateway/c/sci_svd.c + +sci_gateway/c/libscilinear_algebra_la-sci_lsq.lo: sci_gateway/c/sci_lsq.c + $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscilinear_algebra_la-sci_lsq.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_lsq.Tpo -c -o sci_gateway/c/libscilinear_algebra_la-sci_lsq.lo `test -f 'sci_gateway/c/sci_lsq.c' || echo '$(srcdir)/'`sci_gateway/c/sci_lsq.c + $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_lsq.Tpo sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_lsq.Plo +# $(AM_V_CC)source='sci_gateway/c/sci_lsq.c' object='sci_gateway/c/libscilinear_algebra_la-sci_lsq.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) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscilinear_algebra_la-sci_lsq.lo `test -f 'sci_gateway/c/sci_lsq.c' || echo '$(srcdir)/'`sci_gateway/c/sci_lsq.c + +sci_gateway/c/libscilinear_algebra_la-sci_norm.lo: sci_gateway/c/sci_norm.c + $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscilinear_algebra_la-sci_norm.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_norm.Tpo -c -o sci_gateway/c/libscilinear_algebra_la-sci_norm.lo `test -f 'sci_gateway/c/sci_norm.c' || echo '$(srcdir)/'`sci_gateway/c/sci_norm.c + $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_norm.Tpo sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_norm.Plo +# $(AM_V_CC)source='sci_gateway/c/sci_norm.c' object='sci_gateway/c/libscilinear_algebra_la-sci_norm.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) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscilinear_algebra_la-sci_norm.lo `test -f 'sci_gateway/c/sci_norm.c' || echo '$(srcdir)/'`sci_gateway/c/sci_norm.c + +sci_gateway/c/libscilinear_algebra_la-assembleEigenvectors.lo: sci_gateway/c/assembleEigenvectors.c + $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscilinear_algebra_la-assembleEigenvectors.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-assembleEigenvectors.Tpo -c -o sci_gateway/c/libscilinear_algebra_la-assembleEigenvectors.lo `test -f 'sci_gateway/c/assembleEigenvectors.c' || echo '$(srcdir)/'`sci_gateway/c/assembleEigenvectors.c + $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-assembleEigenvectors.Tpo sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-assembleEigenvectors.Plo +# $(AM_V_CC)source='sci_gateway/c/assembleEigenvectors.c' object='sci_gateway/c/libscilinear_algebra_la-assembleEigenvectors.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) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscilinear_algebra_la-assembleEigenvectors.lo `test -f 'sci_gateway/c/assembleEigenvectors.c' || echo '$(srcdir)/'`sci_gateway/c/assembleEigenvectors.c + +sci_gateway/c/libscilinear_algebra_la-sci_dgeev.lo: sci_gateway/c/sci_dgeev.c + $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscilinear_algebra_la-sci_dgeev.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_dgeev.Tpo -c -o sci_gateway/c/libscilinear_algebra_la-sci_dgeev.lo `test -f 'sci_gateway/c/sci_dgeev.c' || echo '$(srcdir)/'`sci_gateway/c/sci_dgeev.c + $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_dgeev.Tpo sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_dgeev.Plo +# $(AM_V_CC)source='sci_gateway/c/sci_dgeev.c' object='sci_gateway/c/libscilinear_algebra_la-sci_dgeev.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) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscilinear_algebra_la-sci_dgeev.lo `test -f 'sci_gateway/c/sci_dgeev.c' || echo '$(srcdir)/'`sci_gateway/c/sci_dgeev.c + +sci_gateway/c/libscilinear_algebra_la-sci_dggev.lo: sci_gateway/c/sci_dggev.c + $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscilinear_algebra_la-sci_dggev.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_dggev.Tpo -c -o sci_gateway/c/libscilinear_algebra_la-sci_dggev.lo `test -f 'sci_gateway/c/sci_dggev.c' || echo '$(srcdir)/'`sci_gateway/c/sci_dggev.c + $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_dggev.Tpo sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_dggev.Plo +# $(AM_V_CC)source='sci_gateway/c/sci_dggev.c' object='sci_gateway/c/libscilinear_algebra_la-sci_dggev.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) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscilinear_algebra_la-sci_dggev.lo `test -f 'sci_gateway/c/sci_dggev.c' || echo '$(srcdir)/'`sci_gateway/c/sci_dggev.c + +sci_gateway/c/libscilinear_algebra_la-sci_dsyev.lo: sci_gateway/c/sci_dsyev.c + $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscilinear_algebra_la-sci_dsyev.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_dsyev.Tpo -c -o sci_gateway/c/libscilinear_algebra_la-sci_dsyev.lo `test -f 'sci_gateway/c/sci_dsyev.c' || echo '$(srcdir)/'`sci_gateway/c/sci_dsyev.c + $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_dsyev.Tpo sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_dsyev.Plo +# $(AM_V_CC)source='sci_gateway/c/sci_dsyev.c' object='sci_gateway/c/libscilinear_algebra_la-sci_dsyev.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) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscilinear_algebra_la-sci_dsyev.lo `test -f 'sci_gateway/c/sci_dsyev.c' || echo '$(srcdir)/'`sci_gateway/c/sci_dsyev.c + +sci_gateway/c/libscilinear_algebra_la-sci_zgeev.lo: sci_gateway/c/sci_zgeev.c + $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscilinear_algebra_la-sci_zgeev.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_zgeev.Tpo -c -o sci_gateway/c/libscilinear_algebra_la-sci_zgeev.lo `test -f 'sci_gateway/c/sci_zgeev.c' || echo '$(srcdir)/'`sci_gateway/c/sci_zgeev.c + $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_zgeev.Tpo sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_zgeev.Plo +# $(AM_V_CC)source='sci_gateway/c/sci_zgeev.c' object='sci_gateway/c/libscilinear_algebra_la-sci_zgeev.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) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscilinear_algebra_la-sci_zgeev.lo `test -f 'sci_gateway/c/sci_zgeev.c' || echo '$(srcdir)/'`sci_gateway/c/sci_zgeev.c + +sci_gateway/c/libscilinear_algebra_la-sci_zggev.lo: sci_gateway/c/sci_zggev.c + $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscilinear_algebra_la-sci_zggev.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_zggev.Tpo -c -o sci_gateway/c/libscilinear_algebra_la-sci_zggev.lo `test -f 'sci_gateway/c/sci_zggev.c' || echo '$(srcdir)/'`sci_gateway/c/sci_zggev.c + $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_zggev.Tpo sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_zggev.Plo +# $(AM_V_CC)source='sci_gateway/c/sci_zggev.c' object='sci_gateway/c/libscilinear_algebra_la-sci_zggev.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) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscilinear_algebra_la-sci_zggev.lo `test -f 'sci_gateway/c/sci_zggev.c' || echo '$(srcdir)/'`sci_gateway/c/sci_zggev.c + +sci_gateway/c/libscilinear_algebra_la-sci_zheev.lo: sci_gateway/c/sci_zheev.c + $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscilinear_algebra_la-sci_zheev.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_zheev.Tpo -c -o sci_gateway/c/libscilinear_algebra_la-sci_zheev.lo `test -f 'sci_gateway/c/sci_zheev.c' || echo '$(srcdir)/'`sci_gateway/c/sci_zheev.c + $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_zheev.Tpo sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_zheev.Plo +# $(AM_V_CC)source='sci_gateway/c/sci_zheev.c' object='sci_gateway/c/libscilinear_algebra_la-sci_zheev.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) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscilinear_algebra_la-sci_zheev.lo `test -f 'sci_gateway/c/sci_zheev.c' || echo '$(srcdir)/'`sci_gateway/c/sci_zheev.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 src/c/.libs src/c/_libs + -rm -rf src/fortran/.libs src/fortran/_libs +install-libscilinear_algebra_la_etcDATA: $(libscilinear_algebra_la_etc_DATA) + @$(NORMAL_INSTALL) + @list='$(libscilinear_algebra_la_etc_DATA)'; test -n "$(libscilinear_algebra_la_etcdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(libscilinear_algebra_la_etcdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(libscilinear_algebra_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)$(libscilinear_algebra_la_etcdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(libscilinear_algebra_la_etcdir)" || exit $$?; \ + done + +uninstall-libscilinear_algebra_la_etcDATA: + @$(NORMAL_UNINSTALL) + @list='$(libscilinear_algebra_la_etc_DATA)'; test -n "$(libscilinear_algebra_la_etcdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(libscilinear_algebra_la_etcdir)'; $(am__uninstall_files_from_dir) +install-libscilinear_algebra_la_rootDATA: $(libscilinear_algebra_la_root_DATA) + @$(NORMAL_INSTALL) + @list='$(libscilinear_algebra_la_root_DATA)'; test -n "$(libscilinear_algebra_la_rootdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(libscilinear_algebra_la_rootdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(libscilinear_algebra_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)$(libscilinear_algebra_la_rootdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(libscilinear_algebra_la_rootdir)" || exit $$?; \ + done + +uninstall-libscilinear_algebra_la_rootDATA: + @$(NORMAL_UNINSTALL) + @list='$(libscilinear_algebra_la_root_DATA)'; test -n "$(libscilinear_algebra_la_rootdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(libscilinear_algebra_la_rootdir)'; $(am__uninstall_files_from_dir) +install-libscilinear_algebra_la_sci_gatewayDATA: $(libscilinear_algebra_la_sci_gateway_DATA) + @$(NORMAL_INSTALL) + @list='$(libscilinear_algebra_la_sci_gateway_DATA)'; test -n "$(libscilinear_algebra_la_sci_gatewaydir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(libscilinear_algebra_la_sci_gatewaydir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(libscilinear_algebra_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)$(libscilinear_algebra_la_sci_gatewaydir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(libscilinear_algebra_la_sci_gatewaydir)" || exit $$?; \ + done + +uninstall-libscilinear_algebra_la_sci_gatewayDATA: + @$(NORMAL_UNINSTALL) + @list='$(libscilinear_algebra_la_sci_gateway_DATA)'; test -n "$(libscilinear_algebra_la_sci_gatewaydir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(libscilinear_algebra_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)$(libscilinear_algebra_la_etcdir)" "$(DESTDIR)$(libscilinear_algebra_la_rootdir)" "$(DESTDIR)$(libscilinear_algebra_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 src/c/$(DEPDIR)/$(am__dirstamp) + -rm -f src/c/$(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) src/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-libscilinear_algebra_la_etcDATA \ + install-libscilinear_algebra_la_rootDATA \ + install-libscilinear_algebra_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) src/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-libscilinear_algebra_la_etcDATA \ + uninstall-libscilinear_algebra_la_rootDATA \ + uninstall-libscilinear_algebra_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-libscilinear_algebra_la_etcDATA \ + install-libscilinear_algebra_la_rootDATA \ + install-libscilinear_algebra_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-libscilinear_algebra_la_etcDATA \ + uninstall-libscilinear_algebra_la_rootDATA \ + uninstall-libscilinear_algebra_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/linear_algebra/Makefile.am b/modules/linear_algebra/Makefile.am new file mode 100755 index 000000000..4728d3a30 --- /dev/null +++ b/modules/linear_algebra/Makefile.am @@ -0,0 +1,139 @@ +# 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. + + +LINEAR_ALGEBRA_C_SOURCES = src/c/schurtable.c \ +src/c/issymmetric.c \ +src/c/norm.c + +LINEAR_ALGEBRA_FORTRAN_SOURCES = src/fortran/intdggbal.f \ +src/fortran/intzgeqpf4.f \ +src/fortran/intzgehrd.f \ +src/fortran/intzgesvd1.f \ +src/fortran/intzfschur.f \ +src/fortran/intzgesvd2.f \ +src/fortran/intdgges.f \ +src/fortran/intgschur.f \ +src/fortran/intdgesv3.f \ +src/fortran/intdgesv4.f \ +src/fortran/DGELSY1.f \ +src/fortran/ZGELSY1.f \ +src/fortran/intozgschur.f \ +src/fortran/intdpotrf.f \ +src/fortran/intdoldsvd.f \ +src/fortran/intdgecon.f \ +src/fortran/zoldqr.f \ +src/fortran/intzgetrf.f \ +src/fortran/intoschur.f \ +src/fortran/complexify.f \ +src/fortran/intzgebal.f \ +src/fortran/intzgetri.f \ +src/fortran/intzggbal.f \ +src/fortran/intdgees0.f \ +src/fortran/intdgees1.f \ +src/fortran/intogschur.f \ +src/fortran/intzgges.f \ +src/fortran/intddet.f \ +src/fortran/intzgesv3.f \ +src/fortran/intzgesv4.f \ +src/fortran/intzpotrf.f \ +src/fortran/intzgecon.f \ +src/fortran/intzgschur.f \ +src/fortran/intzoldsvd.f \ +src/fortran/intdgelsy.f \ +src/fortran/intdgeqpf3.f \ +src/fortran/intfschur.f \ +src/fortran/intdgeqpf4.f \ +src/fortran/intdgesvd1.f \ +src/fortran/intdgehrd.f \ +src/fortran/intzgees0.f \ +src/fortran/intdgesvd2.f \ +src/fortran/intzgees1.f \ +src/fortran/intzdet.f \ +src/fortran/doldqr.f \ +src/fortran/scischur.f \ +src/fortran/intdgetrf.f \ +src/fortran/intzgelsy.f \ +src/fortran/intdgetri.f \ +src/fortran/intdgebal.f \ +src/fortran/intzschur.f \ +src/fortran/intzgeqpf3.f \ +src/fortran/writebuf.f +#src/fortran/issymmetric.f + +GATEWAY_C_SOURCES = sci_gateway/c/sci_backslash.c \ +sci_gateway/c/sci_hess.c \ +sci_gateway/c/sci_rcond.c \ +sci_gateway/c/sci_bdiag.c \ +sci_gateway/c/sci_slash.c \ +sci_gateway/c/gw_linear_algebra2.c \ +sci_gateway/c/sci_det.c \ +sci_gateway/c/sci_lu.c \ +sci_gateway/c/sci_balanc.c \ +sci_gateway/c/sci_qr.c \ +sci_gateway/c/sci_schur.c \ +sci_gateway/c/sci_chol.c \ +sci_gateway/c/sci_spec.c \ +sci_gateway/c/gw_linear_algebra.c \ +sci_gateway/c/sci_inv.c \ +sci_gateway/c/sci_svd.c \ +sci_gateway/c/sci_lsq.c \ +sci_gateway/c/sci_norm.c \ +sci_gateway/c/assembleEigenvectors.c \ +sci_gateway/c/sci_dgeev.c \ +sci_gateway/c/sci_dggev.c \ +sci_gateway/c/sci_dsyev.c \ +sci_gateway/c/sci_zgeev.c \ +sci_gateway/c/sci_zggev.c \ +sci_gateway/c/sci_zheev.c + +GATEWAY_FORTRAN_SOURCES = + +libscilinear_algebra_la_CPPFLAGS = -I$(srcdir)/includes/ \ +-I$(srcdir)/src/c/ \ +-I$(top_srcdir)/modules/output_stream/includes/ \ +-I$(top_srcdir)/modules/dynamic_link/includes/ \ +-I$(top_srcdir)/modules/api_scilab/includes/ \ +-I$(top_srcdir)/modules/elementary_functions/includes/ \ +-I$(top_srcdir)/modules/localization/includes/ \ +$(AM_CPPFLAGS) + +if MAINTAINER_MODE +pkglib_LTLIBRARIES = libscilinear_algebra.la +noinst_LTLIBRARIES = libscilinear_algebra-algo.la +else +noinst_LTLIBRARIES = libscilinear_algebra-algo.la libscilinear_algebra.la +endif + + + +libscilinear_algebra_algo_la_SOURCES = $(LINEAR_ALGEBRA_FORTRAN_SOURCES) $(LINEAR_ALGEBRA_C_SOURCES) +libscilinear_algebra_la_SOURCES = $(GATEWAY_C_SOURCES) $(GATEWAY_FORTRAN_SOURCES) +libscilinear_algebra_algo_la_CPPFLAGS = $(libscilinear_algebra_la_CPPFLAGS) + +# For the code check (splint) +CHECK_SRC= $(LINEAR_ALGEBRA_C_SOURCES) $(GATEWAY_C_SOURCES) +INCLUDE_FLAGS = $(libscilinear_algebra_la_CPPFLAGS) + +libscilinear_algebra_la_LIBADD = libscilinear_algebra-algo.la + +#### Target ###### +modulename=linear_algebra + + +#### linear_algebra : Conf files #### +libscilinear_algebra_la_rootdir = $(mydatadir) +libscilinear_algebra_la_root_DATA = license.txt + + +#### linear_algebra : init scripts #### +libscilinear_algebra_la_etcdir = $(mydatadir)/etc +libscilinear_algebra_la_etc_DATA = etc/linear_algebra.quit etc/linear_algebra.start +#### linear_algebra : gateway declaration #### +libscilinear_algebra_la_sci_gatewaydir = $(mydatadir)/sci_gateway +libscilinear_algebra_la_sci_gateway_DATA = sci_gateway/linear_algebra_gateway.xml + + +include $(top_srcdir)/Makefile.incl.am diff --git a/modules/linear_algebra/Makefile.in b/modules/linear_algebra/Makefile.in new file mode 100755 index 000000000..cce2c3c4a --- /dev/null +++ b/modules/linear_algebra/Makefile.in @@ -0,0 +1,1876 @@ +# 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/linear_algebra +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)$(libscilinear_algebra_la_etcdir)" \ + "$(DESTDIR)$(libscilinear_algebra_la_rootdir)" \ + "$(DESTDIR)$(libscilinear_algebra_la_sci_gatewaydir)" +LTLIBRARIES = $(noinst_LTLIBRARIES) $(pkglib_LTLIBRARIES) +libscilinear_algebra_algo_la_LIBADD = +am__dirstamp = $(am__leading_dot)dirstamp +am__objects_1 = src/fortran/intdggbal.lo src/fortran/intzgeqpf4.lo \ + src/fortran/intzgehrd.lo src/fortran/intzgesvd1.lo \ + src/fortran/intzfschur.lo src/fortran/intzgesvd2.lo \ + src/fortran/intdgges.lo src/fortran/intgschur.lo \ + src/fortran/intdgesv3.lo src/fortran/intdgesv4.lo \ + src/fortran/DGELSY1.lo src/fortran/ZGELSY1.lo \ + src/fortran/intozgschur.lo src/fortran/intdpotrf.lo \ + src/fortran/intdoldsvd.lo src/fortran/intdgecon.lo \ + src/fortran/zoldqr.lo src/fortran/intzgetrf.lo \ + src/fortran/intoschur.lo src/fortran/complexify.lo \ + src/fortran/intzgebal.lo src/fortran/intzgetri.lo \ + src/fortran/intzggbal.lo src/fortran/intdgees0.lo \ + src/fortran/intdgees1.lo src/fortran/intogschur.lo \ + src/fortran/intzgges.lo src/fortran/intddet.lo \ + src/fortran/intzgesv3.lo src/fortran/intzgesv4.lo \ + src/fortran/intzpotrf.lo src/fortran/intzgecon.lo \ + src/fortran/intzgschur.lo src/fortran/intzoldsvd.lo \ + src/fortran/intdgelsy.lo src/fortran/intdgeqpf3.lo \ + src/fortran/intfschur.lo src/fortran/intdgeqpf4.lo \ + src/fortran/intdgesvd1.lo src/fortran/intdgehrd.lo \ + src/fortran/intzgees0.lo src/fortran/intdgesvd2.lo \ + src/fortran/intzgees1.lo src/fortran/intzdet.lo \ + src/fortran/doldqr.lo src/fortran/scischur.lo \ + src/fortran/intdgetrf.lo src/fortran/intzgelsy.lo \ + src/fortran/intdgetri.lo src/fortran/intdgebal.lo \ + src/fortran/intzschur.lo src/fortran/intzgeqpf3.lo \ + src/fortran/writebuf.lo +am__objects_2 = src/c/libscilinear_algebra_algo_la-schurtable.lo \ + src/c/libscilinear_algebra_algo_la-issymmetric.lo \ + src/c/libscilinear_algebra_algo_la-norm.lo +am_libscilinear_algebra_algo_la_OBJECTS = $(am__objects_1) \ + $(am__objects_2) +libscilinear_algebra_algo_la_OBJECTS = \ + $(am_libscilinear_algebra_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_libscilinear_algebra_algo_la_rpath = +@MAINTAINER_MODE_TRUE@am_libscilinear_algebra_algo_la_rpath = +libscilinear_algebra_la_DEPENDENCIES = libscilinear_algebra-algo.la +am__objects_3 = \ + sci_gateway/c/libscilinear_algebra_la-sci_backslash.lo \ + sci_gateway/c/libscilinear_algebra_la-sci_hess.lo \ + sci_gateway/c/libscilinear_algebra_la-sci_rcond.lo \ + sci_gateway/c/libscilinear_algebra_la-sci_bdiag.lo \ + sci_gateway/c/libscilinear_algebra_la-sci_slash.lo \ + sci_gateway/c/libscilinear_algebra_la-gw_linear_algebra2.lo \ + sci_gateway/c/libscilinear_algebra_la-sci_det.lo \ + sci_gateway/c/libscilinear_algebra_la-sci_lu.lo \ + sci_gateway/c/libscilinear_algebra_la-sci_balanc.lo \ + sci_gateway/c/libscilinear_algebra_la-sci_qr.lo \ + sci_gateway/c/libscilinear_algebra_la-sci_schur.lo \ + sci_gateway/c/libscilinear_algebra_la-sci_chol.lo \ + sci_gateway/c/libscilinear_algebra_la-sci_spec.lo \ + sci_gateway/c/libscilinear_algebra_la-gw_linear_algebra.lo \ + sci_gateway/c/libscilinear_algebra_la-sci_inv.lo \ + sci_gateway/c/libscilinear_algebra_la-sci_svd.lo \ + sci_gateway/c/libscilinear_algebra_la-sci_lsq.lo \ + sci_gateway/c/libscilinear_algebra_la-sci_norm.lo \ + sci_gateway/c/libscilinear_algebra_la-assembleEigenvectors.lo \ + sci_gateway/c/libscilinear_algebra_la-sci_dgeev.lo \ + sci_gateway/c/libscilinear_algebra_la-sci_dggev.lo \ + sci_gateway/c/libscilinear_algebra_la-sci_dsyev.lo \ + sci_gateway/c/libscilinear_algebra_la-sci_zgeev.lo \ + sci_gateway/c/libscilinear_algebra_la-sci_zggev.lo \ + sci_gateway/c/libscilinear_algebra_la-sci_zheev.lo +am__objects_4 = +am_libscilinear_algebra_la_OBJECTS = $(am__objects_3) $(am__objects_4) +libscilinear_algebra_la_OBJECTS = \ + $(am_libscilinear_algebra_la_OBJECTS) +@MAINTAINER_MODE_FALSE@am_libscilinear_algebra_la_rpath = +@MAINTAINER_MODE_TRUE@am_libscilinear_algebra_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 = $(libscilinear_algebra_algo_la_SOURCES) \ + $(libscilinear_algebra_la_SOURCES) +DIST_SOURCES = $(libscilinear_algebra_algo_la_SOURCES) \ + $(libscilinear_algebra_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 = $(libscilinear_algebra_la_etc_DATA) \ + $(libscilinear_algebra_la_root_DATA) \ + $(libscilinear_algebra_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@ +LINEAR_ALGEBRA_C_SOURCES = src/c/schurtable.c \ +src/c/issymmetric.c \ +src/c/norm.c + +LINEAR_ALGEBRA_FORTRAN_SOURCES = src/fortran/intdggbal.f \ +src/fortran/intzgeqpf4.f \ +src/fortran/intzgehrd.f \ +src/fortran/intzgesvd1.f \ +src/fortran/intzfschur.f \ +src/fortran/intzgesvd2.f \ +src/fortran/intdgges.f \ +src/fortran/intgschur.f \ +src/fortran/intdgesv3.f \ +src/fortran/intdgesv4.f \ +src/fortran/DGELSY1.f \ +src/fortran/ZGELSY1.f \ +src/fortran/intozgschur.f \ +src/fortran/intdpotrf.f \ +src/fortran/intdoldsvd.f \ +src/fortran/intdgecon.f \ +src/fortran/zoldqr.f \ +src/fortran/intzgetrf.f \ +src/fortran/intoschur.f \ +src/fortran/complexify.f \ +src/fortran/intzgebal.f \ +src/fortran/intzgetri.f \ +src/fortran/intzggbal.f \ +src/fortran/intdgees0.f \ +src/fortran/intdgees1.f \ +src/fortran/intogschur.f \ +src/fortran/intzgges.f \ +src/fortran/intddet.f \ +src/fortran/intzgesv3.f \ +src/fortran/intzgesv4.f \ +src/fortran/intzpotrf.f \ +src/fortran/intzgecon.f \ +src/fortran/intzgschur.f \ +src/fortran/intzoldsvd.f \ +src/fortran/intdgelsy.f \ +src/fortran/intdgeqpf3.f \ +src/fortran/intfschur.f \ +src/fortran/intdgeqpf4.f \ +src/fortran/intdgesvd1.f \ +src/fortran/intdgehrd.f \ +src/fortran/intzgees0.f \ +src/fortran/intdgesvd2.f \ +src/fortran/intzgees1.f \ +src/fortran/intzdet.f \ +src/fortran/doldqr.f \ +src/fortran/scischur.f \ +src/fortran/intdgetrf.f \ +src/fortran/intzgelsy.f \ +src/fortran/intdgetri.f \ +src/fortran/intdgebal.f \ +src/fortran/intzschur.f \ +src/fortran/intzgeqpf3.f \ +src/fortran/writebuf.f + +#src/fortran/issymmetric.f +GATEWAY_C_SOURCES = sci_gateway/c/sci_backslash.c \ +sci_gateway/c/sci_hess.c \ +sci_gateway/c/sci_rcond.c \ +sci_gateway/c/sci_bdiag.c \ +sci_gateway/c/sci_slash.c \ +sci_gateway/c/gw_linear_algebra2.c \ +sci_gateway/c/sci_det.c \ +sci_gateway/c/sci_lu.c \ +sci_gateway/c/sci_balanc.c \ +sci_gateway/c/sci_qr.c \ +sci_gateway/c/sci_schur.c \ +sci_gateway/c/sci_chol.c \ +sci_gateway/c/sci_spec.c \ +sci_gateway/c/gw_linear_algebra.c \ +sci_gateway/c/sci_inv.c \ +sci_gateway/c/sci_svd.c \ +sci_gateway/c/sci_lsq.c \ +sci_gateway/c/sci_norm.c \ +sci_gateway/c/assembleEigenvectors.c \ +sci_gateway/c/sci_dgeev.c \ +sci_gateway/c/sci_dggev.c \ +sci_gateway/c/sci_dsyev.c \ +sci_gateway/c/sci_zgeev.c \ +sci_gateway/c/sci_zggev.c \ +sci_gateway/c/sci_zheev.c + +GATEWAY_FORTRAN_SOURCES = +libscilinear_algebra_la_CPPFLAGS = -I$(srcdir)/includes/ \ +-I$(srcdir)/src/c/ \ +-I$(top_srcdir)/modules/output_stream/includes/ \ +-I$(top_srcdir)/modules/dynamic_link/includes/ \ +-I$(top_srcdir)/modules/api_scilab/includes/ \ +-I$(top_srcdir)/modules/elementary_functions/includes/ \ +-I$(top_srcdir)/modules/localization/includes/ \ +$(AM_CPPFLAGS) + +@MAINTAINER_MODE_TRUE@pkglib_LTLIBRARIES = libscilinear_algebra.la +@MAINTAINER_MODE_FALSE@noinst_LTLIBRARIES = libscilinear_algebra-algo.la libscilinear_algebra.la +@MAINTAINER_MODE_TRUE@noinst_LTLIBRARIES = libscilinear_algebra-algo.la +libscilinear_algebra_algo_la_SOURCES = $(LINEAR_ALGEBRA_FORTRAN_SOURCES) $(LINEAR_ALGEBRA_C_SOURCES) +libscilinear_algebra_la_SOURCES = $(GATEWAY_C_SOURCES) $(GATEWAY_FORTRAN_SOURCES) +libscilinear_algebra_algo_la_CPPFLAGS = $(libscilinear_algebra_la_CPPFLAGS) + +# For the code check (splint) +CHECK_SRC = $(LINEAR_ALGEBRA_C_SOURCES) $(GATEWAY_C_SOURCES) +INCLUDE_FLAGS = $(libscilinear_algebra_la_CPPFLAGS) +libscilinear_algebra_la_LIBADD = libscilinear_algebra-algo.la + +#### Target ###### +modulename = linear_algebra + +#### linear_algebra : Conf files #### +libscilinear_algebra_la_rootdir = $(mydatadir) +libscilinear_algebra_la_root_DATA = license.txt + +#### linear_algebra : init scripts #### +libscilinear_algebra_la_etcdir = $(mydatadir)/etc +libscilinear_algebra_la_etc_DATA = etc/linear_algebra.quit etc/linear_algebra.start +#### linear_algebra : gateway declaration #### +libscilinear_algebra_la_sci_gatewaydir = $(mydatadir)/sci_gateway +libscilinear_algebra_la_sci_gateway_DATA = sci_gateway/linear_algebra_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/linear_algebra/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign modules/linear_algebra/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/intdggbal.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intzgeqpf4.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intzgehrd.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intzgesvd1.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intzfschur.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intzgesvd2.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intdgges.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intgschur.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intdgesv3.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intdgesv4.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/DGELSY1.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/ZGELSY1.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intozgschur.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intdpotrf.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intdoldsvd.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intdgecon.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/zoldqr.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intzgetrf.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intoschur.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/complexify.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intzgebal.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intzgetri.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intzggbal.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intdgees0.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intdgees1.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intogschur.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intzgges.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intddet.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intzgesv3.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intzgesv4.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intzpotrf.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intzgecon.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intzgschur.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intzoldsvd.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intdgelsy.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intdgeqpf3.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intfschur.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intdgeqpf4.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intdgesvd1.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intdgehrd.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intzgees0.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intdgesvd2.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intzgees1.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intzdet.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/doldqr.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/scischur.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intdgetrf.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intzgelsy.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intdgetri.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intdgebal.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intzschur.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/intzgeqpf3.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/fortran/writebuf.lo: src/fortran/$(am__dirstamp) \ + src/fortran/$(DEPDIR)/$(am__dirstamp) +src/c/$(am__dirstamp): + @$(MKDIR_P) src/c + @: > src/c/$(am__dirstamp) +src/c/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) src/c/$(DEPDIR) + @: > src/c/$(DEPDIR)/$(am__dirstamp) +src/c/libscilinear_algebra_algo_la-schurtable.lo: \ + src/c/$(am__dirstamp) src/c/$(DEPDIR)/$(am__dirstamp) +src/c/libscilinear_algebra_algo_la-issymmetric.lo: \ + src/c/$(am__dirstamp) src/c/$(DEPDIR)/$(am__dirstamp) +src/c/libscilinear_algebra_algo_la-norm.lo: src/c/$(am__dirstamp) \ + src/c/$(DEPDIR)/$(am__dirstamp) + +libscilinear_algebra-algo.la: $(libscilinear_algebra_algo_la_OBJECTS) $(libscilinear_algebra_algo_la_DEPENDENCIES) $(EXTRA_libscilinear_algebra_algo_la_DEPENDENCIES) + $(AM_V_F77LD)$(F77LINK) $(am_libscilinear_algebra_algo_la_rpath) $(libscilinear_algebra_algo_la_OBJECTS) $(libscilinear_algebra_algo_la_LIBADD) $(LIBS) +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/libscilinear_algebra_la-sci_backslash.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscilinear_algebra_la-sci_hess.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscilinear_algebra_la-sci_rcond.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscilinear_algebra_la-sci_bdiag.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscilinear_algebra_la-sci_slash.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscilinear_algebra_la-gw_linear_algebra2.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscilinear_algebra_la-sci_det.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscilinear_algebra_la-sci_lu.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscilinear_algebra_la-sci_balanc.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscilinear_algebra_la-sci_qr.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscilinear_algebra_la-sci_schur.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscilinear_algebra_la-sci_chol.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscilinear_algebra_la-sci_spec.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscilinear_algebra_la-gw_linear_algebra.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscilinear_algebra_la-sci_inv.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscilinear_algebra_la-sci_svd.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscilinear_algebra_la-sci_lsq.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscilinear_algebra_la-sci_norm.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscilinear_algebra_la-assembleEigenvectors.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscilinear_algebra_la-sci_dgeev.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscilinear_algebra_la-sci_dggev.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscilinear_algebra_la-sci_dsyev.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscilinear_algebra_la-sci_zgeev.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscilinear_algebra_la-sci_zggev.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) +sci_gateway/c/libscilinear_algebra_la-sci_zheev.lo: \ + sci_gateway/c/$(am__dirstamp) \ + sci_gateway/c/$(DEPDIR)/$(am__dirstamp) + +libscilinear_algebra.la: $(libscilinear_algebra_la_OBJECTS) $(libscilinear_algebra_la_DEPENDENCIES) $(EXTRA_libscilinear_algebra_la_DEPENDENCIES) + $(AM_V_CCLD)$(LINK) $(am_libscilinear_algebra_la_rpath) $(libscilinear_algebra_la_OBJECTS) $(libscilinear_algebra_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + -rm -f sci_gateway/c/*.$(OBJEXT) + -rm -f sci_gateway/c/*.lo + -rm -f src/c/*.$(OBJEXT) + -rm -f src/c/*.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)/libscilinear_algebra_la-assembleEigenvectors.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-gw_linear_algebra.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-gw_linear_algebra2.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_backslash.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_balanc.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_bdiag.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_chol.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_det.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_dgeev.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_dggev.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_dsyev.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_hess.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_inv.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_lsq.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_lu.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_norm.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_qr.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_rcond.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_schur.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_slash.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_spec.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_svd.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_zgeev.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_zggev.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_zheev.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@src/c/$(DEPDIR)/libscilinear_algebra_algo_la-issymmetric.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@src/c/$(DEPDIR)/libscilinear_algebra_algo_la-norm.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@src/c/$(DEPDIR)/libscilinear_algebra_algo_la-schurtable.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 $@ $< + +src/c/libscilinear_algebra_algo_la-schurtable.lo: src/c/schurtable.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscilinear_algebra_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/c/libscilinear_algebra_algo_la-schurtable.lo -MD -MP -MF src/c/$(DEPDIR)/libscilinear_algebra_algo_la-schurtable.Tpo -c -o src/c/libscilinear_algebra_algo_la-schurtable.lo `test -f 'src/c/schurtable.c' || echo '$(srcdir)/'`src/c/schurtable.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/c/$(DEPDIR)/libscilinear_algebra_algo_la-schurtable.Tpo src/c/$(DEPDIR)/libscilinear_algebra_algo_la-schurtable.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/c/schurtable.c' object='src/c/libscilinear_algebra_algo_la-schurtable.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) $(libscilinear_algebra_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/c/libscilinear_algebra_algo_la-schurtable.lo `test -f 'src/c/schurtable.c' || echo '$(srcdir)/'`src/c/schurtable.c + +src/c/libscilinear_algebra_algo_la-issymmetric.lo: src/c/issymmetric.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscilinear_algebra_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/c/libscilinear_algebra_algo_la-issymmetric.lo -MD -MP -MF src/c/$(DEPDIR)/libscilinear_algebra_algo_la-issymmetric.Tpo -c -o src/c/libscilinear_algebra_algo_la-issymmetric.lo `test -f 'src/c/issymmetric.c' || echo '$(srcdir)/'`src/c/issymmetric.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/c/$(DEPDIR)/libscilinear_algebra_algo_la-issymmetric.Tpo src/c/$(DEPDIR)/libscilinear_algebra_algo_la-issymmetric.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/c/issymmetric.c' object='src/c/libscilinear_algebra_algo_la-issymmetric.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) $(libscilinear_algebra_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/c/libscilinear_algebra_algo_la-issymmetric.lo `test -f 'src/c/issymmetric.c' || echo '$(srcdir)/'`src/c/issymmetric.c + +src/c/libscilinear_algebra_algo_la-norm.lo: src/c/norm.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscilinear_algebra_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/c/libscilinear_algebra_algo_la-norm.lo -MD -MP -MF src/c/$(DEPDIR)/libscilinear_algebra_algo_la-norm.Tpo -c -o src/c/libscilinear_algebra_algo_la-norm.lo `test -f 'src/c/norm.c' || echo '$(srcdir)/'`src/c/norm.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/c/$(DEPDIR)/libscilinear_algebra_algo_la-norm.Tpo src/c/$(DEPDIR)/libscilinear_algebra_algo_la-norm.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/c/norm.c' object='src/c/libscilinear_algebra_algo_la-norm.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) $(libscilinear_algebra_algo_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/c/libscilinear_algebra_algo_la-norm.lo `test -f 'src/c/norm.c' || echo '$(srcdir)/'`src/c/norm.c + +sci_gateway/c/libscilinear_algebra_la-sci_backslash.lo: sci_gateway/c/sci_backslash.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscilinear_algebra_la-sci_backslash.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_backslash.Tpo -c -o sci_gateway/c/libscilinear_algebra_la-sci_backslash.lo `test -f 'sci_gateway/c/sci_backslash.c' || echo '$(srcdir)/'`sci_gateway/c/sci_backslash.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_backslash.Tpo sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_backslash.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/sci_backslash.c' object='sci_gateway/c/libscilinear_algebra_la-sci_backslash.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) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscilinear_algebra_la-sci_backslash.lo `test -f 'sci_gateway/c/sci_backslash.c' || echo '$(srcdir)/'`sci_gateway/c/sci_backslash.c + +sci_gateway/c/libscilinear_algebra_la-sci_hess.lo: sci_gateway/c/sci_hess.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscilinear_algebra_la-sci_hess.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_hess.Tpo -c -o sci_gateway/c/libscilinear_algebra_la-sci_hess.lo `test -f 'sci_gateway/c/sci_hess.c' || echo '$(srcdir)/'`sci_gateway/c/sci_hess.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_hess.Tpo sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_hess.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/sci_hess.c' object='sci_gateway/c/libscilinear_algebra_la-sci_hess.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) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscilinear_algebra_la-sci_hess.lo `test -f 'sci_gateway/c/sci_hess.c' || echo '$(srcdir)/'`sci_gateway/c/sci_hess.c + +sci_gateway/c/libscilinear_algebra_la-sci_rcond.lo: sci_gateway/c/sci_rcond.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscilinear_algebra_la-sci_rcond.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_rcond.Tpo -c -o sci_gateway/c/libscilinear_algebra_la-sci_rcond.lo `test -f 'sci_gateway/c/sci_rcond.c' || echo '$(srcdir)/'`sci_gateway/c/sci_rcond.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_rcond.Tpo sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_rcond.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/sci_rcond.c' object='sci_gateway/c/libscilinear_algebra_la-sci_rcond.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) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscilinear_algebra_la-sci_rcond.lo `test -f 'sci_gateway/c/sci_rcond.c' || echo '$(srcdir)/'`sci_gateway/c/sci_rcond.c + +sci_gateway/c/libscilinear_algebra_la-sci_bdiag.lo: sci_gateway/c/sci_bdiag.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscilinear_algebra_la-sci_bdiag.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_bdiag.Tpo -c -o sci_gateway/c/libscilinear_algebra_la-sci_bdiag.lo `test -f 'sci_gateway/c/sci_bdiag.c' || echo '$(srcdir)/'`sci_gateway/c/sci_bdiag.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_bdiag.Tpo sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_bdiag.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/sci_bdiag.c' object='sci_gateway/c/libscilinear_algebra_la-sci_bdiag.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) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscilinear_algebra_la-sci_bdiag.lo `test -f 'sci_gateway/c/sci_bdiag.c' || echo '$(srcdir)/'`sci_gateway/c/sci_bdiag.c + +sci_gateway/c/libscilinear_algebra_la-sci_slash.lo: sci_gateway/c/sci_slash.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscilinear_algebra_la-sci_slash.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_slash.Tpo -c -o sci_gateway/c/libscilinear_algebra_la-sci_slash.lo `test -f 'sci_gateway/c/sci_slash.c' || echo '$(srcdir)/'`sci_gateway/c/sci_slash.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_slash.Tpo sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_slash.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/sci_slash.c' object='sci_gateway/c/libscilinear_algebra_la-sci_slash.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) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscilinear_algebra_la-sci_slash.lo `test -f 'sci_gateway/c/sci_slash.c' || echo '$(srcdir)/'`sci_gateway/c/sci_slash.c + +sci_gateway/c/libscilinear_algebra_la-gw_linear_algebra2.lo: sci_gateway/c/gw_linear_algebra2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscilinear_algebra_la-gw_linear_algebra2.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-gw_linear_algebra2.Tpo -c -o sci_gateway/c/libscilinear_algebra_la-gw_linear_algebra2.lo `test -f 'sci_gateway/c/gw_linear_algebra2.c' || echo '$(srcdir)/'`sci_gateway/c/gw_linear_algebra2.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-gw_linear_algebra2.Tpo sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-gw_linear_algebra2.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/gw_linear_algebra2.c' object='sci_gateway/c/libscilinear_algebra_la-gw_linear_algebra2.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) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscilinear_algebra_la-gw_linear_algebra2.lo `test -f 'sci_gateway/c/gw_linear_algebra2.c' || echo '$(srcdir)/'`sci_gateway/c/gw_linear_algebra2.c + +sci_gateway/c/libscilinear_algebra_la-sci_det.lo: sci_gateway/c/sci_det.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscilinear_algebra_la-sci_det.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_det.Tpo -c -o sci_gateway/c/libscilinear_algebra_la-sci_det.lo `test -f 'sci_gateway/c/sci_det.c' || echo '$(srcdir)/'`sci_gateway/c/sci_det.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_det.Tpo sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_det.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/sci_det.c' object='sci_gateway/c/libscilinear_algebra_la-sci_det.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) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscilinear_algebra_la-sci_det.lo `test -f 'sci_gateway/c/sci_det.c' || echo '$(srcdir)/'`sci_gateway/c/sci_det.c + +sci_gateway/c/libscilinear_algebra_la-sci_lu.lo: sci_gateway/c/sci_lu.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscilinear_algebra_la-sci_lu.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_lu.Tpo -c -o sci_gateway/c/libscilinear_algebra_la-sci_lu.lo `test -f 'sci_gateway/c/sci_lu.c' || echo '$(srcdir)/'`sci_gateway/c/sci_lu.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_lu.Tpo sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_lu.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/sci_lu.c' object='sci_gateway/c/libscilinear_algebra_la-sci_lu.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) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscilinear_algebra_la-sci_lu.lo `test -f 'sci_gateway/c/sci_lu.c' || echo '$(srcdir)/'`sci_gateway/c/sci_lu.c + +sci_gateway/c/libscilinear_algebra_la-sci_balanc.lo: sci_gateway/c/sci_balanc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscilinear_algebra_la-sci_balanc.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_balanc.Tpo -c -o sci_gateway/c/libscilinear_algebra_la-sci_balanc.lo `test -f 'sci_gateway/c/sci_balanc.c' || echo '$(srcdir)/'`sci_gateway/c/sci_balanc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_balanc.Tpo sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_balanc.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/sci_balanc.c' object='sci_gateway/c/libscilinear_algebra_la-sci_balanc.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) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscilinear_algebra_la-sci_balanc.lo `test -f 'sci_gateway/c/sci_balanc.c' || echo '$(srcdir)/'`sci_gateway/c/sci_balanc.c + +sci_gateway/c/libscilinear_algebra_la-sci_qr.lo: sci_gateway/c/sci_qr.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscilinear_algebra_la-sci_qr.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_qr.Tpo -c -o sci_gateway/c/libscilinear_algebra_la-sci_qr.lo `test -f 'sci_gateway/c/sci_qr.c' || echo '$(srcdir)/'`sci_gateway/c/sci_qr.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_qr.Tpo sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_qr.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/sci_qr.c' object='sci_gateway/c/libscilinear_algebra_la-sci_qr.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) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscilinear_algebra_la-sci_qr.lo `test -f 'sci_gateway/c/sci_qr.c' || echo '$(srcdir)/'`sci_gateway/c/sci_qr.c + +sci_gateway/c/libscilinear_algebra_la-sci_schur.lo: sci_gateway/c/sci_schur.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscilinear_algebra_la-sci_schur.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_schur.Tpo -c -o sci_gateway/c/libscilinear_algebra_la-sci_schur.lo `test -f 'sci_gateway/c/sci_schur.c' || echo '$(srcdir)/'`sci_gateway/c/sci_schur.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_schur.Tpo sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_schur.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/sci_schur.c' object='sci_gateway/c/libscilinear_algebra_la-sci_schur.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) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscilinear_algebra_la-sci_schur.lo `test -f 'sci_gateway/c/sci_schur.c' || echo '$(srcdir)/'`sci_gateway/c/sci_schur.c + +sci_gateway/c/libscilinear_algebra_la-sci_chol.lo: sci_gateway/c/sci_chol.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscilinear_algebra_la-sci_chol.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_chol.Tpo -c -o sci_gateway/c/libscilinear_algebra_la-sci_chol.lo `test -f 'sci_gateway/c/sci_chol.c' || echo '$(srcdir)/'`sci_gateway/c/sci_chol.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_chol.Tpo sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_chol.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/sci_chol.c' object='sci_gateway/c/libscilinear_algebra_la-sci_chol.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) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscilinear_algebra_la-sci_chol.lo `test -f 'sci_gateway/c/sci_chol.c' || echo '$(srcdir)/'`sci_gateway/c/sci_chol.c + +sci_gateway/c/libscilinear_algebra_la-sci_spec.lo: sci_gateway/c/sci_spec.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscilinear_algebra_la-sci_spec.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_spec.Tpo -c -o sci_gateway/c/libscilinear_algebra_la-sci_spec.lo `test -f 'sci_gateway/c/sci_spec.c' || echo '$(srcdir)/'`sci_gateway/c/sci_spec.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_spec.Tpo sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_spec.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/sci_spec.c' object='sci_gateway/c/libscilinear_algebra_la-sci_spec.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) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscilinear_algebra_la-sci_spec.lo `test -f 'sci_gateway/c/sci_spec.c' || echo '$(srcdir)/'`sci_gateway/c/sci_spec.c + +sci_gateway/c/libscilinear_algebra_la-gw_linear_algebra.lo: sci_gateway/c/gw_linear_algebra.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscilinear_algebra_la-gw_linear_algebra.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-gw_linear_algebra.Tpo -c -o sci_gateway/c/libscilinear_algebra_la-gw_linear_algebra.lo `test -f 'sci_gateway/c/gw_linear_algebra.c' || echo '$(srcdir)/'`sci_gateway/c/gw_linear_algebra.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-gw_linear_algebra.Tpo sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-gw_linear_algebra.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/gw_linear_algebra.c' object='sci_gateway/c/libscilinear_algebra_la-gw_linear_algebra.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) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscilinear_algebra_la-gw_linear_algebra.lo `test -f 'sci_gateway/c/gw_linear_algebra.c' || echo '$(srcdir)/'`sci_gateway/c/gw_linear_algebra.c + +sci_gateway/c/libscilinear_algebra_la-sci_inv.lo: sci_gateway/c/sci_inv.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscilinear_algebra_la-sci_inv.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_inv.Tpo -c -o sci_gateway/c/libscilinear_algebra_la-sci_inv.lo `test -f 'sci_gateway/c/sci_inv.c' || echo '$(srcdir)/'`sci_gateway/c/sci_inv.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_inv.Tpo sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_inv.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/sci_inv.c' object='sci_gateway/c/libscilinear_algebra_la-sci_inv.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) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscilinear_algebra_la-sci_inv.lo `test -f 'sci_gateway/c/sci_inv.c' || echo '$(srcdir)/'`sci_gateway/c/sci_inv.c + +sci_gateway/c/libscilinear_algebra_la-sci_svd.lo: sci_gateway/c/sci_svd.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscilinear_algebra_la-sci_svd.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_svd.Tpo -c -o sci_gateway/c/libscilinear_algebra_la-sci_svd.lo `test -f 'sci_gateway/c/sci_svd.c' || echo '$(srcdir)/'`sci_gateway/c/sci_svd.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_svd.Tpo sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_svd.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/sci_svd.c' object='sci_gateway/c/libscilinear_algebra_la-sci_svd.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) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscilinear_algebra_la-sci_svd.lo `test -f 'sci_gateway/c/sci_svd.c' || echo '$(srcdir)/'`sci_gateway/c/sci_svd.c + +sci_gateway/c/libscilinear_algebra_la-sci_lsq.lo: sci_gateway/c/sci_lsq.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscilinear_algebra_la-sci_lsq.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_lsq.Tpo -c -o sci_gateway/c/libscilinear_algebra_la-sci_lsq.lo `test -f 'sci_gateway/c/sci_lsq.c' || echo '$(srcdir)/'`sci_gateway/c/sci_lsq.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_lsq.Tpo sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_lsq.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/sci_lsq.c' object='sci_gateway/c/libscilinear_algebra_la-sci_lsq.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) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscilinear_algebra_la-sci_lsq.lo `test -f 'sci_gateway/c/sci_lsq.c' || echo '$(srcdir)/'`sci_gateway/c/sci_lsq.c + +sci_gateway/c/libscilinear_algebra_la-sci_norm.lo: sci_gateway/c/sci_norm.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscilinear_algebra_la-sci_norm.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_norm.Tpo -c -o sci_gateway/c/libscilinear_algebra_la-sci_norm.lo `test -f 'sci_gateway/c/sci_norm.c' || echo '$(srcdir)/'`sci_gateway/c/sci_norm.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_norm.Tpo sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_norm.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/sci_norm.c' object='sci_gateway/c/libscilinear_algebra_la-sci_norm.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) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscilinear_algebra_la-sci_norm.lo `test -f 'sci_gateway/c/sci_norm.c' || echo '$(srcdir)/'`sci_gateway/c/sci_norm.c + +sci_gateway/c/libscilinear_algebra_la-assembleEigenvectors.lo: sci_gateway/c/assembleEigenvectors.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscilinear_algebra_la-assembleEigenvectors.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-assembleEigenvectors.Tpo -c -o sci_gateway/c/libscilinear_algebra_la-assembleEigenvectors.lo `test -f 'sci_gateway/c/assembleEigenvectors.c' || echo '$(srcdir)/'`sci_gateway/c/assembleEigenvectors.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-assembleEigenvectors.Tpo sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-assembleEigenvectors.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/assembleEigenvectors.c' object='sci_gateway/c/libscilinear_algebra_la-assembleEigenvectors.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) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscilinear_algebra_la-assembleEigenvectors.lo `test -f 'sci_gateway/c/assembleEigenvectors.c' || echo '$(srcdir)/'`sci_gateway/c/assembleEigenvectors.c + +sci_gateway/c/libscilinear_algebra_la-sci_dgeev.lo: sci_gateway/c/sci_dgeev.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscilinear_algebra_la-sci_dgeev.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_dgeev.Tpo -c -o sci_gateway/c/libscilinear_algebra_la-sci_dgeev.lo `test -f 'sci_gateway/c/sci_dgeev.c' || echo '$(srcdir)/'`sci_gateway/c/sci_dgeev.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_dgeev.Tpo sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_dgeev.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/sci_dgeev.c' object='sci_gateway/c/libscilinear_algebra_la-sci_dgeev.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) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscilinear_algebra_la-sci_dgeev.lo `test -f 'sci_gateway/c/sci_dgeev.c' || echo '$(srcdir)/'`sci_gateway/c/sci_dgeev.c + +sci_gateway/c/libscilinear_algebra_la-sci_dggev.lo: sci_gateway/c/sci_dggev.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscilinear_algebra_la-sci_dggev.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_dggev.Tpo -c -o sci_gateway/c/libscilinear_algebra_la-sci_dggev.lo `test -f 'sci_gateway/c/sci_dggev.c' || echo '$(srcdir)/'`sci_gateway/c/sci_dggev.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_dggev.Tpo sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_dggev.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/sci_dggev.c' object='sci_gateway/c/libscilinear_algebra_la-sci_dggev.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) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscilinear_algebra_la-sci_dggev.lo `test -f 'sci_gateway/c/sci_dggev.c' || echo '$(srcdir)/'`sci_gateway/c/sci_dggev.c + +sci_gateway/c/libscilinear_algebra_la-sci_dsyev.lo: sci_gateway/c/sci_dsyev.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscilinear_algebra_la-sci_dsyev.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_dsyev.Tpo -c -o sci_gateway/c/libscilinear_algebra_la-sci_dsyev.lo `test -f 'sci_gateway/c/sci_dsyev.c' || echo '$(srcdir)/'`sci_gateway/c/sci_dsyev.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_dsyev.Tpo sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_dsyev.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/sci_dsyev.c' object='sci_gateway/c/libscilinear_algebra_la-sci_dsyev.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) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscilinear_algebra_la-sci_dsyev.lo `test -f 'sci_gateway/c/sci_dsyev.c' || echo '$(srcdir)/'`sci_gateway/c/sci_dsyev.c + +sci_gateway/c/libscilinear_algebra_la-sci_zgeev.lo: sci_gateway/c/sci_zgeev.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscilinear_algebra_la-sci_zgeev.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_zgeev.Tpo -c -o sci_gateway/c/libscilinear_algebra_la-sci_zgeev.lo `test -f 'sci_gateway/c/sci_zgeev.c' || echo '$(srcdir)/'`sci_gateway/c/sci_zgeev.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_zgeev.Tpo sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_zgeev.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/sci_zgeev.c' object='sci_gateway/c/libscilinear_algebra_la-sci_zgeev.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) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscilinear_algebra_la-sci_zgeev.lo `test -f 'sci_gateway/c/sci_zgeev.c' || echo '$(srcdir)/'`sci_gateway/c/sci_zgeev.c + +sci_gateway/c/libscilinear_algebra_la-sci_zggev.lo: sci_gateway/c/sci_zggev.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscilinear_algebra_la-sci_zggev.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_zggev.Tpo -c -o sci_gateway/c/libscilinear_algebra_la-sci_zggev.lo `test -f 'sci_gateway/c/sci_zggev.c' || echo '$(srcdir)/'`sci_gateway/c/sci_zggev.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_zggev.Tpo sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_zggev.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/sci_zggev.c' object='sci_gateway/c/libscilinear_algebra_la-sci_zggev.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) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscilinear_algebra_la-sci_zggev.lo `test -f 'sci_gateway/c/sci_zggev.c' || echo '$(srcdir)/'`sci_gateway/c/sci_zggev.c + +sci_gateway/c/libscilinear_algebra_la-sci_zheev.lo: sci_gateway/c/sci_zheev.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT sci_gateway/c/libscilinear_algebra_la-sci_zheev.lo -MD -MP -MF sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_zheev.Tpo -c -o sci_gateway/c/libscilinear_algebra_la-sci_zheev.lo `test -f 'sci_gateway/c/sci_zheev.c' || echo '$(srcdir)/'`sci_gateway/c/sci_zheev.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_zheev.Tpo sci_gateway/c/$(DEPDIR)/libscilinear_algebra_la-sci_zheev.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='sci_gateway/c/sci_zheev.c' object='sci_gateway/c/libscilinear_algebra_la-sci_zheev.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) $(libscilinear_algebra_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o sci_gateway/c/libscilinear_algebra_la-sci_zheev.lo `test -f 'sci_gateway/c/sci_zheev.c' || echo '$(srcdir)/'`sci_gateway/c/sci_zheev.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 src/c/.libs src/c/_libs + -rm -rf src/fortran/.libs src/fortran/_libs +install-libscilinear_algebra_la_etcDATA: $(libscilinear_algebra_la_etc_DATA) + @$(NORMAL_INSTALL) + @list='$(libscilinear_algebra_la_etc_DATA)'; test -n "$(libscilinear_algebra_la_etcdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(libscilinear_algebra_la_etcdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(libscilinear_algebra_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)$(libscilinear_algebra_la_etcdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(libscilinear_algebra_la_etcdir)" || exit $$?; \ + done + +uninstall-libscilinear_algebra_la_etcDATA: + @$(NORMAL_UNINSTALL) + @list='$(libscilinear_algebra_la_etc_DATA)'; test -n "$(libscilinear_algebra_la_etcdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(libscilinear_algebra_la_etcdir)'; $(am__uninstall_files_from_dir) +install-libscilinear_algebra_la_rootDATA: $(libscilinear_algebra_la_root_DATA) + @$(NORMAL_INSTALL) + @list='$(libscilinear_algebra_la_root_DATA)'; test -n "$(libscilinear_algebra_la_rootdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(libscilinear_algebra_la_rootdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(libscilinear_algebra_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)$(libscilinear_algebra_la_rootdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(libscilinear_algebra_la_rootdir)" || exit $$?; \ + done + +uninstall-libscilinear_algebra_la_rootDATA: + @$(NORMAL_UNINSTALL) + @list='$(libscilinear_algebra_la_root_DATA)'; test -n "$(libscilinear_algebra_la_rootdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(libscilinear_algebra_la_rootdir)'; $(am__uninstall_files_from_dir) +install-libscilinear_algebra_la_sci_gatewayDATA: $(libscilinear_algebra_la_sci_gateway_DATA) + @$(NORMAL_INSTALL) + @list='$(libscilinear_algebra_la_sci_gateway_DATA)'; test -n "$(libscilinear_algebra_la_sci_gatewaydir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(libscilinear_algebra_la_sci_gatewaydir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(libscilinear_algebra_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)$(libscilinear_algebra_la_sci_gatewaydir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(libscilinear_algebra_la_sci_gatewaydir)" || exit $$?; \ + done + +uninstall-libscilinear_algebra_la_sci_gatewayDATA: + @$(NORMAL_UNINSTALL) + @list='$(libscilinear_algebra_la_sci_gateway_DATA)'; test -n "$(libscilinear_algebra_la_sci_gatewaydir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(libscilinear_algebra_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)$(libscilinear_algebra_la_etcdir)" "$(DESTDIR)$(libscilinear_algebra_la_rootdir)" "$(DESTDIR)$(libscilinear_algebra_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 src/c/$(DEPDIR)/$(am__dirstamp) + -rm -f src/c/$(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) src/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-libscilinear_algebra_la_etcDATA \ + install-libscilinear_algebra_la_rootDATA \ + install-libscilinear_algebra_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) src/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-libscilinear_algebra_la_etcDATA \ + uninstall-libscilinear_algebra_la_rootDATA \ + uninstall-libscilinear_algebra_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-libscilinear_algebra_la_etcDATA \ + install-libscilinear_algebra_la_rootDATA \ + install-libscilinear_algebra_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-libscilinear_algebra_la_etcDATA \ + uninstall-libscilinear_algebra_la_rootDATA \ + uninstall-libscilinear_algebra_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/linear_algebra/etc/linear_algebra.quit b/modules/linear_algebra/etc/linear_algebra.quit new file mode 100755 index 000000000..ab83f0c89 --- /dev/null +++ b/modules/linear_algebra/etc/linear_algebra.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/linear_algebra/etc/linear_algebra.start b/modules/linear_algebra/etc/linear_algebra.start new file mode 100755 index 000000000..f12730d24 --- /dev/null +++ b/modules/linear_algebra/etc/linear_algebra.start @@ -0,0 +1,13 @@ +// 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 + +//Load functions libraries +// ============================================================================= +load('SCI/modules/linear_algebra/macros/lib'); + diff --git a/modules/linear_algebra/examples/intdgemm.c b/modules/linear_algebra/examples/intdgemm.c new file mode 100755 index 000000000..d2036fc4d --- /dev/null +++ b/modules/linear_algebra/examples/intdgemm.c @@ -0,0 +1,57 @@ +/* +* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +* Copyright (C) INRIA +* Copyright (C) DIGITEO - 2010 - Allan CORNET +* +* This file is released under the 3-clause BSD license. See COPYING-BSD. +*/ +/* -------------------------------------------------------------------------- */ +/* WARNING:this gateway uses old scilab api and it does not work with Scilab 6*/ +/* see help api_scilab for more information. */ +/* -------------------------------------------------------------------------- */ +#include "stack-c.h" +#include "Scierror.h" +/* -------------------------------------------------------------------------- */ +/* Usage: C = dgemm(alfa, A, B, betha, C) */ +/* -------------------------------------------------------------------------- */ +extern int C2F(dgemm)(char *, char *, int *, int *, int *, + double *, double *, int *, double *, int *, + double *, double *, int *); +/* -------------------------------------------------------------------------- */ +int intdgemm(char* fname) +{ + int lalfa = 0, m1 = 0, n1 = 0, m = 0, n = 0, k = 0; + int mA = 0, nA = 0, lA = 0, mB = 0, nB = 0, lB = 0, m4 = 0, n4 = 0, lbeta = 0; + int mC = 0, nC = 0, lC = 0; + + int minlhs = 1, minrhs = 5, maxlhs = 1, maxrhs = 5; + + CheckRhs(minrhs, maxrhs) ; + CheckLhs(minlhs, maxlhs) ; + + GetRhsVar(1, MATRIX_OF_DOUBLE_DATATYPE, &m1, &n1, &lalfa); /* alpha */ + CheckScalar(1, m1, n1); + + GetRhsVar(2, MATRIX_OF_DOUBLE_DATATYPE, &mA, &nA, &lA); /* A */ + GetRhsVar(3, MATRIX_OF_DOUBLE_DATATYPE, &mB, &nB, &lB); /* B */ + + GetRhsVar(4, MATRIX_OF_DOUBLE_DATATYPE, &m4, &n4, &lbeta); /* beta */ + CheckScalar(4, m4, n4); + + GetRhsVar(5, MATRIX_OF_DOUBLE_DATATYPE, &mC, &nC, &lC); /* C */ + + m = mA; + n = nB; + if (nA != mB || mA != mC || nB != nC ) + { + Scierror(999, "%f: invalid matrix dims\n", fname); + } + + k = nA; + C2F(dgemm)("n", "n", &m , &n , &k, stk(lalfa), + stk(lA), &mA , stk(lB), &mB , stk(lbeta) , stk(lC), &mC); + /* Return C (#5) */ + LhsVar(1) = 5; + return(0); +} +/* -------------------------------------------------------------------------- */ diff --git a/modules/linear_algebra/examples/intdsyev.c b/modules/linear_algebra/examples/intdsyev.c new file mode 100755 index 000000000..8a56ee99b --- /dev/null +++ b/modules/linear_algebra/examples/intdsyev.c @@ -0,0 +1,95 @@ +/* +* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +* Copyright (C) INRIA +* Copyright (C) DIGITEO - 2010 - Allan CORNET +* +* This file is released under the 3-clause BSD license. See COPYING-BSD. +*/ +/* -------------------------------------------------------------------------- */ +/* WARNING:this gateway uses old scilab api and it does not work with Scilab 6*/ +/* see help api_scilab for more information. */ +/* -------------------------------------------------------------------------- */ +#include "sciprint.h" +#include "Scierror.h" +#include "stack-c.h" +#include "machine.h" +#include "core_math.h" +/* -------------------------------------------------------------------------- */ +/* SUBROUTINE DSYEV( JOBZ, UPLO, N, A, LDA, W, WORK, LWORK, INFO ) */ +/* [w,U] = dsyev(A) */ +/* w = dsyev(A) */ +/* -------------------------------------------------------------------------- */ +extern int C2F(dsyev)(); +/* -------------------------------------------------------------------------- */ +int intdsyev(char* fname) +{ + int M = 0, N = 0, lA = 0; + int NLHS = 0; + int un = 1; + int WORK = 0, lWORK = 0, LWORKMIN = 0, LWORK = 0, INFO = 0; + int LDA = 0, lw = 0; + int A = 1, W = 2; + + static int minlhs = 1, minrhs = 1, maxlhs = 2, maxrhs = 1; + CheckRhs(minrhs, maxrhs) ; + CheckLhs(minlhs, maxlhs) ; + + /*--------------------A---------------------------*/ + GetRhsVar(A, MATRIX_OF_DOUBLE_DATATYPE, &M, &N, &lA); + /* To be done: Check A symmetric and Real*/ + NLHS = Lhs; + switch ( NLHS ) + { + + case 2: + /* [w,U]=dsyev(A) */ + CreateVar(W, MATRIX_OF_DOUBLE_DATATYPE, &N, &un, &lw); + WORK = 3; + LWORKMIN = Max(1, 3 * N - 1); + LWORK = LWORKMIN; + /* LWORK=C2F(maxvol)(&WORK, "d", 1L); max memory currently available */ + if (LWORK < LWORKMIN) + { + sciprint("not enough memory (use stacksize)"); + SciError(9999); + }; + CreateVar(3, MATRIX_OF_DOUBLE_DATATYPE, &LWORK, &un, &lWORK); + LDA = Max(1, N); + C2F(dsyev)("V", "L", &N, stk(lA), &LDA, stk(lw), stk(lWORK), &LWORK, &INFO); + if (INFO != 0) + { + C2F(errorinfo)("dsyev ", &INFO, 5L); + } + LhsVar(1) = A; + LhsVar(2) = W; + return 0; + break; + + case 1: + /* w=dsyev(A) */ + CreateVar(W, MATRIX_OF_DOUBLE_DATATYPE, &N, &un, &lw); + WORK = 3; + LWORKMIN = Max(1, 3 * N - 1); + LWORK = C2F(maxvol)(&WORK, "d", 1L); /* max memory currently available */ + if (LWORK < LWORKMIN) + { + sciprint("not enough memory (use stacksize)"); + SciError(9999); + }; + CreateVar(3, MATRIX_OF_DOUBLE_DATATYPE, &LWORK, &un, &lWORK); + LDA = Max(1, N); + C2F(dsyev)("N", "L", &N, stk(lA), &LDA, stk(lw), stk(lWORK), &LWORK, &INFO); + if (INFO != 0) + { + C2F(errorinfo)("dsyev ", &INFO, 5L); + } + LhsVar(1) = W; + return 0; + break; + + default: + return 0; + } + return(0); +} +/* -------------------------------------------------------------------------- */ diff --git a/modules/linear_algebra/examples/intzgemm.c b/modules/linear_algebra/examples/intzgemm.c new file mode 100755 index 000000000..82ffce07e --- /dev/null +++ b/modules/linear_algebra/examples/intzgemm.c @@ -0,0 +1,62 @@ +/* +* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +* Copyright (C) INRIA +* Copyright (C) DIGITEO - 2010 - Allan CORNET +* +* This file is released under the 3-clause BSD license. See COPYING-BSD. +*/ +/* -------------------------------------------------------------------------- */ +/* WARNING:this gateway uses old scilab api and it does not work with Scilab 6*/ +/* see help api_scilab for more information. */ +/* -------------------------------------------------------------------------- */ +#include "machine.h" +#include "Scierror.h" +#include "stack-c.h" +/* -------------------------------------------------------------------------- */ +/* Ex: alfa = 1+%i; + betha = alfa; + A = rand(2,2) + %i * rand(2,2); + B = A; + C = A; + Usage: C = zgemm(alfa, A, B, betha, C) +*/ +/* -------------------------------------------------------------------------- */ +extern int C2F(zgemm)(); +/* -------------------------------------------------------------------------- */ +int intzgemm(char* fname) +{ + int lalfa = 0, m1 = 0, n1 = 0, m = 0, n = 0, k = 0; + int mA = 0, nA = 0, lA = 0, mB = 0, nB = 0, lB = 0; + int m4 = 0, n4 = 0, lbeta = 0, mC = 0, nC = 0, lC = 0; + + int minlhs = 1, minrhs = 5, maxlhs = 1, maxrhs = 5; + + CheckRhs(minrhs, maxrhs) ; + CheckLhs(minlhs, maxlhs) ; + + GetRhsVar(1, MATRIX_OF_COMPLEX_DATATYPE, &m1, &n1, &lalfa); /* alpha */ + CheckScalar(1, m1, n1); + + GetRhsVar(2, MATRIX_OF_COMPLEX_DATATYPE, &mA, &nA, &lA); /* A */ + GetRhsVar(3, MATRIX_OF_COMPLEX_DATATYPE, &mB, &nB, &lB); /* B */ + + GetRhsVar(4, MATRIX_OF_COMPLEX_DATATYPE, &m4, &n4, &lbeta); /* betha */ + CheckScalar(4, m4, n4); + + GetRhsVar(5, MATRIX_OF_COMPLEX_DATATYPE, &mC, &nC, &lC); /* C */ + + m = mA; + n = nB; + if (nA != mB || mA != mC || nB != nC ) + { + Scierror(999, "%f: invalid matrix dims\n", fname); + } + + k = nA; + C2F(zgemm)("n", "n", &m , &n , &k, zstk(lalfa), + zstk(lA), &mA , zstk(lB), &mB , zstk(lbeta) , zstk(lC), &mC); + /* Return C (#5) */ + LhsVar(1) = 5; + return(0); +} +/* -------------------------------------------------------------------------- */ diff --git a/modules/linear_algebra/examples/lapackscilab.sce b/modules/linear_algebra/examples/lapackscilab.sce new file mode 100755 index 000000000..11f7a1297 --- /dev/null +++ b/modules/linear_algebra/examples/lapackscilab.sce @@ -0,0 +1,56 @@ +// +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) DIGITEO - 2010 - Allan CORNET +// +// This file is released under the 3-clause BSD license. See COPYING-BSD. +// + +// +// A example to call some lapack routines +// dgemm, zgemm, dsyev + +// WARNING:these gateways use old scilab api and it does not work with Scilab 6*/ +// see help api_scilab for more information. + + +ilib_verbose(0); +setenv("__USE_DEPRECATED_STACK_FUNCTIONS__","YES"); + +curdir = pwd(); +file_path = get_file_path("lapackscilab.sce"); +chdir(file_path); + +files_functions = ["intdgemm.c"; +"intzgemm.c"; +"intdsyev.c"]; + +table_functions = ["dgemm", "intdgemm"; +"zgemm", "intzgemm"; +"dsyev", "intdsyev"]; + +ilib_build("lapackexample", table_functions, files_functions, []); +exec loader.sce; + +Alfa = 2; +Beta = 3; +m = 3; +n = 4; +C = ones(m, n); +k = 2; +A = ones(m, k); +B = ones(k, n); +C1 = dgemm(Alfa, A, B, Beta, C); +if norm(C1 - (Alfa * A * B + Beta * C)) > %eps then pause,end + +A = [1/2^10, 1/2^10; 2^10, 2^10]; +A = rand(3,3); +if norm(max(real(dsyev(A))) - max(real(spec(A))) ) > %eps * 1e15 then pause,end + +alfa = 1 + %i; +betha = alfa; +A = rand(2,2) + %i * rand(2,2); +B = A; +C = A; +C = zgemm(alfa, A, B, betha, C) + +cd(curdir);
\ No newline at end of file diff --git a/modules/linear_algebra/examples/readme.txt b/modules/linear_algebra/examples/readme.txt new file mode 100755 index 000000000..18f048d29 --- /dev/null +++ b/modules/linear_algebra/examples/readme.txt @@ -0,0 +1,10 @@ +Template (example) interface for a few Lapack routines. + +These gateways use old scilab api and it does not work with Scilab 6. +See help api_scilab for more information. + +to test : + + exec SCI/modules/linear_algebra/examples/lapackscilab.sce + +Allan CORNET - DIGITEO - 2010 diff --git a/modules/linear_algebra/help/en_US/addchapter.sce b/modules/linear_algebra/help/en_US/addchapter.sce new file mode 100755 index 000000000..a33120d03 --- /dev/null +++ b/modules/linear_algebra/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("Linear Algebra",SCI+"/modules/linear_algebra/help/en_US",%T); + diff --git a/modules/linear_algebra/help/en_US/eigen/CHAPTER b/modules/linear_algebra/help/en_US/eigen/CHAPTER new file mode 100755 index 000000000..88f8bc42b --- /dev/null +++ b/modules/linear_algebra/help/en_US/eigen/CHAPTER @@ -0,0 +1,2 @@ +title = Eigenvalue and Singular Value + diff --git a/modules/linear_algebra/help/en_US/eigen/balanc.xml b/modules/linear_algebra/help/en_US/eigen/balanc.xml new file mode 100755 index 000000000..3f79b79c8 --- /dev/null +++ b/modules/linear_algebra/help/en_US/eigen/balanc.xml @@ -0,0 +1,106 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * 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 + * + --> +<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="balanc"> + <refnamediv> + <refname>balanc</refname> + <refpurpose>matrix or pencil balancing</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>[Ab,X]=balanc(A) + [Eb,Ab,X,Y]=balanc(E,A) + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>A: </term> + <listitem> + <para>a real square matrix</para> + </listitem> + </varlistentry> + <varlistentry> + <term>X: </term> + <listitem> + <para>a real square invertible matrix</para> + </listitem> + </varlistentry> + <varlistentry> + <term>E: </term> + <listitem> + <para> + a real square matrix (same dimension as <literal>A</literal>) + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Y: </term> + <listitem> + <para>a real square invertible matrix.</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + Balance a square matrix to improve + its condition number. + </para> + <para> + <literal>[Ab,X] = balanc(A)</literal> finds a similarity transformation + <literal>X</literal> such that + </para> + <para> + <literal>Ab = inv(X)*A*X</literal> has approximately equal row and column norms. + </para> + <para> + For matrix pencils,balancing is done for improving the + generalized eigenvalue problem. + </para> + <para> + <literal>[Eb,Ab,X,Y] = balanc(E,A)</literal> returns left and right transformations <literal>X</literal> and <literal>Y</literal> + such that <literal>Eb=inv(X)*E*Y, Ab=inv(X)*A*Y</literal> + </para> + </refsection> + <refsection> + <title>Remark</title> + <para> + Balancing is made in the functions <literal>bdiag</literal> and <literal>spec</literal>. + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +A=[1/2^10,1/2^10;2^10,2^10]; +[Ab,X]=balanc(A); +norm(A(1,:))/norm(A(2,:)) +norm(Ab(1,:))/norm(Ab(2,:)) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="bdiag">bdiag</link> + </member> + <member> + <link linkend="spec">spec</link> + </member> + <member> + <link linkend="schur">schur</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/en_US/eigen/bdiag.xml b/modules/linear_algebra/help/en_US/eigen/bdiag.xml new file mode 100755 index 000000000..4cc6433e8 --- /dev/null +++ b/modules/linear_algebra/help/en_US/eigen/bdiag.xml @@ -0,0 +1,106 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * 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 + * + --> +<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="bdiag"> + <refnamediv> + <refname>bdiag</refname> + <refpurpose>block diagonalization, generalized eigenvectors</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>[Ab [,X [,bs]]]=bdiag(A [,rmax])</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>A</term> + <listitem> + <para>real or complex square matrix</para> + </listitem> + </varlistentry> + <varlistentry> + <term>rmax</term> + <listitem> + <para>real number</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Ab</term> + <listitem> + <para>real or complex square matrix</para> + </listitem> + </varlistentry> + <varlistentry> + <term>X</term> + <listitem> + <para>real or complex non-singular matrix</para> + </listitem> + </varlistentry> + <varlistentry> + <term>bs</term> + <listitem> + <para>vector of integers</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <programlisting role=""><![CDATA[ +[Ab [,X [,bs]]]=bdiag(A [,rmax]) + ]]></programlisting> + <para> + performs the block-diagonalization of matrix <literal>A</literal>. bs + gives the structure of the blocks (respective sizes of the + blocks). <literal>X</literal> is the change of basis i.e + <literal>Ab = inv(X)*A*X</literal>is block diagonal. + </para> + <para> + <literal>rmax</literal> controls the conditioning of <literal>X</literal>; the + default value is the l1 norm of <literal>A</literal>. + </para> + <para> + To get a diagonal form (if it exists) choose a large value for + <literal>rmax</literal> (<literal>rmax=1/%eps</literal> for example). + Generically (for real random A) the blocks are (1x1) and (2x2) and + <literal>X</literal> is the matrix of eigenvectors. + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +//Real case: 1x1 and 2x2 blocks +a=rand(5,5);[ab,x,bs]=bdiag(a);ab + +//Complex case: complex 1x1 blocks +[ab,x,bs]=bdiag(a+%i*0);ab + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="schur">schur</link> + </member> + <member> + <link linkend="sylv">sylv</link> + </member> + <member> + <link linkend="spec">spec</link> + </member> + <member> + <link linkend="sysdiag">sysdiag</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/en_US/eigen/gschur.xml b/modules/linear_algebra/help/en_US/eigen/gschur.xml new file mode 100755 index 000000000..2c9d2ae15 --- /dev/null +++ b/modules/linear_algebra/help/en_US/eigen/gschur.xml @@ -0,0 +1,99 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * 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 + * + --> +<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" scilab:needs-examples="no" xml:id="gschur"> + <refnamediv> + <refname>gschur</refname> + <refpurpose> + generalized Schur form. <emphasis role="bold">This function is obsolete.</emphasis> + </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>[As,Es]=gschur(A,E) + [As,Es,Q,Z]=gschur(A,E) + [As,Es,Z,dim] = gschur(A,E,flag) + [As,Es,Z,dim]= gschur(A,E,extern) + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Description</title> + <para> + This function is obsolete and is now included in the <literal>schur</literal> + function. In most cases the <literal>gschur</literal> function will still work as + before, but it will be removed in the future release. + </para> + <para> + The first three syntaxes can be replaced by + </para> + <programlisting role=""><![CDATA[ +[As,Es]=schur(A,E) +[As,Es,Q,Z]=schur(A,E);Q=Q' //NOTE THE TRANPOSITION HERE +[As,Es,Z,dim] = schur(A,E,flag) + ]]></programlisting> + <para> + The last syntax requires little more adaptations: + </para> + <variablelist> + <varlistentry> + <term>if</term> + <listitem> + <para>extern is a scilab function the new calling sequence + should be <literal>[As,Es,Z,dim]= schur(A,E,Nextern)</literal> with + Nextern defined as follow: + </para> + <programlisting role=""><![CDATA[ +function t=Nextern(R) +if R(2)==0 then + t=extern([1,R(1),R(3)])==1 +else + c=(R(1)+%i*R(2))/R(3) + t=extern([2,real(c+c'),real(c*c')])==1 +end +endfunction + ]]></programlisting> + </listitem> + </varlistentry> + <varlistentry> + <term>if</term> + <listitem> + <para>extern is the name of an external function coded in Fortran or C + the new calling sequence should be <literal>[As,Es,Z,dim]= schur(A,E,'nextern')</literal> with nextern defined as follow: + </para> + </listitem> + </varlistentry> + </variablelist> + <programlisting role=""><![CDATA[ +logical function nextern(ar,ai,beta) +double precision ar,ai,beta +integer r,extern +if (ai.eq.0.0d0) then + r=extern(1,ar,beta,0.0d0,0.0d0) +else + r=extern(2,0.0d0,0.0d0,2.0d0*ar,ar*ar+ai*ai) +endif +nextern=r.eq.1 +end + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="external">external</link> + </member> + <member> + <link linkend="schur">schur</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/en_US/eigen/gspec.xml b/modules/linear_algebra/help/en_US/eigen/gspec.xml new file mode 100755 index 000000000..a5c5043a0 --- /dev/null +++ b/modules/linear_algebra/help/en_US/eigen/gspec.xml @@ -0,0 +1,45 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * 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 + * + --> +<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" scilab:needs-examples="no" xml:id="gspec"> + <refnamediv> + <refname>gspec</refname> + <refpurpose> + eigenvalues of matrix pencil. <emphasis role="bold">This function is obsolete.</emphasis> + </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>[al,be]=gspec(A,E) + [al,be,Z]=gspec(A,E) + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Description</title> + <para> + This function is now included in the <literal>spec</literal> function. + the calling syntax must be replaced by + </para> + <programlisting role=""><![CDATA[ +[al,be]=spec(A,E) +[al,be,Z]=spec(A,E) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="spec">spec</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/en_US/eigen/hess.xml b/modules/linear_algebra/help/en_US/eigen/hess.xml new file mode 100755 index 000000000..5f6add49f --- /dev/null +++ b/modules/linear_algebra/help/en_US/eigen/hess.xml @@ -0,0 +1,97 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * 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 + * + --> +<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="hess"> + <refnamediv> + <refname>hess</refname> + <refpurpose>Hessenberg form</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>H = hess(A) + [U,H] = hess(A) + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>A</term> + <listitem> + <para>real or complex square matrix</para> + </listitem> + </varlistentry> + <varlistentry> + <term>H</term> + <listitem> + <para>real or complex square matrix</para> + </listitem> + </varlistentry> + <varlistentry> + <term>U</term> + <listitem> + <para>orthogonal or unitary square matrix</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal>[U,H] = hess(A)</literal> produces a unitary matrix + <literal>U</literal> and a Hessenberg matrix <literal>H</literal> so that + <literal>A = U*H*U'</literal> and <literal>U'*U</literal> = + Identity. By itself, <literal>hess(A)</literal> returns <literal>H</literal>. + </para> + <para> + The Hessenberg form of a matrix is zero below the first + subdiagonal. If the matrix is symmetric or Hermitian, the form is + tridiagonal. + </para> + </refsection> + <refsection> + <title>References</title> + <para> + hess function is based on the Lapack routines + DGEHRD, DORGHR for real matrices and ZGEHRD, ZORGHR for the complex case. + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +A=rand(3,3);[U,H]=hess(A); +and( abs(U*H*U'-A)<1.d-10 ) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="qr">qr</link> + </member> + <member> + <link linkend="contr">contr</link> + </member> + <member> + <link linkend="schur">schur</link> + </member> + </simplelist> + </refsection> + <refsection> + <title>Used Functions</title> + <para> + <literal>hess</literal> function is based on the Lapack routines + DGEHRD, DORGHR for real matrices and ZGEHRD, ZORGHR for the + complex case. + </para> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/en_US/eigen/pbig.xml b/modules/linear_algebra/help/en_US/eigen/pbig.xml new file mode 100755 index 000000000..0d7f8a772 --- /dev/null +++ b/modules/linear_algebra/help/en_US/eigen/pbig.xml @@ -0,0 +1,125 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * 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 + * + --> +<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="pbig"> + <refnamediv> + <refname>pbig</refname> + <refpurpose>eigen-projection</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>[Q,M]=pbig(A,thres,flag)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>A</term> + <listitem> + <para>real square matrix</para> + </listitem> + </varlistentry> + <varlistentry> + <term>thres</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> + <varlistentry> + <term>Q,M</term> + <listitem> + <para>real matrices</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + Projection on eigen-subspace associated with eigenvalues with real + part >= <literal>thres</literal> (<literal>flag='c'</literal>) or + with magnitude >= <literal>thres</literal> + (<literal>flag='d'</literal>). + </para> + <para> + The projection is defined by <literal>Q*M</literal>, <literal>Q</literal> is + full column rank, <literal>M</literal> is full row rank and + <literal>M*Q=eye</literal>. + </para> + <para> + If <literal>flag='c'</literal>, the eigenvalues of + <literal>M*A*Q</literal> = eigenvalues of <literal>A</literal> with real part + >= <literal>thres</literal>. + </para> + <para> + If <literal>flag='d'</literal>, the eigenvalues of + <literal>M*A*Q</literal> = eigenvalues of <literal>A</literal> with magnitude + >= <literal>thres</literal>. + </para> + <para> + If <literal>flag='c'</literal> and if <literal>[Q1,M1]</literal> = + full rank factorization (<literal>fullrf</literal>) of + <literal>eye()-Q*M</literal> then eigenvalues of <literal>M1*A*Q1</literal> = + eigenvalues of <literal>A</literal> with real part < + <literal>thres</literal>. + </para> + <para> + If <literal>flag='d'</literal> and if <literal>[Q1,M1]</literal> = + full rank factorization (<literal>fullrf</literal>) of + <literal>eye()-Q*M</literal> then eigenvalues of <literal>M1*A*Q1</literal> = + eigenvalues of <literal>A</literal> with magnitude < + <literal>thres</literal>. + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +A=diag([1,2,3]);X=rand(A);A=inv(X)*A*X; +[Q,M]=pbig(A,1.5,'d'); +spec(M*A*Q) +[Q1,M1]=fullrf(eye()-Q*M); +spec(M1*A*Q1) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="psmall">psmall</link> + </member> + <member> + <link linkend="projspec">projspec</link> + </member> + <member> + <link linkend="fullrf">fullrf</link> + </member> + <member> + <link linkend="schur">schur</link> + </member> + </simplelist> + </refsection> + <refsection> + <title>Used Functions</title> + <para> + <literal>pbig</literal> is based on the ordered schur form (scilab + function <literal>schur</literal>). + </para> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/en_US/eigen/projspec.xml b/modules/linear_algebra/help/en_US/eigen/projspec.xml new file mode 100755 index 000000000..d79f4573f --- /dev/null +++ b/modules/linear_algebra/help/en_US/eigen/projspec.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) 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="projspec"> + <refnamediv> + <refname>projspec</refname> + <refpurpose>spectral operators</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>[S,P,D,i]=projspec(A)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>A</term> + <listitem> + <para>square matrix</para> + </listitem> + </varlistentry> + <varlistentry> + <term>S, P, D</term> + <listitem> + <para>square matrices</para> + </listitem> + </varlistentry> + <varlistentry> + <term>i</term> + <listitem> + <para> + integer (index of the zero eigenvalue of <literal>A</literal>). + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + Spectral characteristics of <literal>A</literal> at 0. + </para> + <para> + <literal>S</literal> = reduced resolvent at 0 (<literal>S</literal> = -Drazin_inverse(<literal>A</literal>)). + </para> + <para> + <literal>P</literal> = spectral projection at 0. + </para> + <para> + <literal>D</literal> = nilpotent operator at 0. + </para> + <para> + <literal>index</literal> = index of the 0 eigenvalue. + </para> + <para> + One has <literal>(s*eye()-A)^(-1) = D^(i-1)/s^i +... + D/s^2 + P/s - S - s*S^2 -...</literal> + around the singularity s=0. + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +deff('j=jdrn(n)','j=zeros(n,n);for k=1:n-1;j(k,k+1)=1;end') +A=sysdiag(jdrn(3),jdrn(2),rand(2,2));X=rand(7,7); +A=X*A*inv(X); +[S,P,D,index]=projspec(A); +index //size of J-block +trace(P) //sum of dimensions of J-blocks +A*S-(eye()-P) +norm(D^index,1) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="coff">coff</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/en_US/eigen/psmall.xml b/modules/linear_algebra/help/en_US/eigen/psmall.xml new file mode 100755 index 000000000..c3823df65 --- /dev/null +++ b/modules/linear_algebra/help/en_US/eigen/psmall.xml @@ -0,0 +1,122 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * 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 + * + --> +<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="psmall"> + <refnamediv> + <refname>psmall</refname> + <refpurpose>spectral projection</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>[Q,M]=psmall(A,thres,flag)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>A</term> + <listitem> + <para>real square matrix</para> + </listitem> + </varlistentry> + <varlistentry> + <term>thres</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> + <varlistentry> + <term>Q,M</term> + <listitem> + <para>real matrices</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + Projection on eigen-subspace associated with eigenvalues with real + part < <literal>thres</literal> (<literal>flag='c'</literal>) or + with modulus < <literal>thres</literal> + (<literal>flag='d'</literal>). + </para> + <para> + The projection is defined by <literal>Q*M</literal>, <literal>Q</literal> is + full column rank, <literal>M</literal> is full row rank and + <literal>M*Q=eye</literal>. + </para> + <para> + If <literal>flag='c'</literal>, the eigenvalues of + <literal>M*A*Q</literal> = eigenvalues of <literal>A</literal> with real part + < <literal>thres</literal>. + </para> + <para> + If <literal>flag='d'</literal>, the eigenvalues of + <literal>M*A*Q</literal> = eigenvalues of <literal>A</literal> with magnitude + < <literal>thres</literal>. + </para> + <para> + If <literal>flag='c'</literal> and if <literal>[Q1,M1]</literal> = + full rank factorization (<literal>fullrf</literal>) of + <literal>eye()-Q*M</literal> then eigenvalues of <literal>M1*A*Q1</literal> = + eigenvalues of <literal>A</literal> with real part >= + <literal>thres</literal>. + </para> + <para> + If <literal>flag='d'</literal> and if <literal>[Q1,M1]</literal> = + full rank factorization (<literal>fullrf</literal>) of + <literal>eye()-Q*M</literal> then eigenvalues of <literal>M1*A*Q1</literal> = + eigenvalues of <literal>A</literal> with magnitude >= + <literal>thres</literal>. + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +A=diag([1,2,3]);X=rand(A);A=inv(X)*A*X; +[Q,M]=psmall(A,2.5,'d'); +spec(M*A*Q) +[Q1,M1]=fullrf(eye()-Q*M); +spec(M1*A*Q1) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="pbig">pbig</link> + </member> + <member> + <link linkend="proj">proj</link> + </member> + <member> + <link linkend="projspec">projspec</link> + </member> + </simplelist> + </refsection> + <refsection> + <title>Used Functions</title> + <para> + This function is based on the ordered schur form (scilab + function <literal>schur</literal>). + </para> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/en_US/eigen/schur.xml b/modules/linear_algebra/help/en_US/eigen/schur.xml new file mode 100755 index 000000000..fe17a979c --- /dev/null +++ b/modules/linear_algebra/help/en_US/eigen/schur.xml @@ -0,0 +1,386 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * 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 + * + --> +<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="schur"> + <refnamediv> + <refname>schur</refname> + <refpurpose>[ordered] Schur decomposition of matrix and pencils</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>[U,T] = schur(A) + [U,dim [,T] ]=schur(A,flag) + [U,dim [,T] ]=schur(A,extern1) + + [As,Es [,Q,Z]]=schur(A,E) + [As,Es [,Z,dim]] = schur(A,E,flag) + [Z,dim] = schur(A,E,flag) + [As,Es [,Z,dim]]= schur(A,E,extern2) + [Z,dim]= schur(A,E,extern2) + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>A</term> + <listitem> + <para>real or complex square matrix.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>E</term> + <listitem> + <para> + real or complex square matrix with same dimensions as <literal> A</literal>. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>flag</term> + <listitem> + <para> + character string (<literal>'c'</literal> or <literal>'d'</literal>) + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>extern1</term> + <listitem> + <para>an ``external'', see below</para> + </listitem> + </varlistentry> + <varlistentry> + <term>extern2</term> + <listitem> + <para>an ``external'', see below</para> + </listitem> + </varlistentry> + <varlistentry> + <term>U</term> + <listitem> + <para>orthogonal or unitary square matrix</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Q</term> + <listitem> + <para>orthogonal or unitary square matrix</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Z</term> + <listitem> + <para>orthogonal or unitary square matrix</para> + </listitem> + </varlistentry> + <varlistentry> + <term>T</term> + <listitem> + <para>upper triangular or quasi-triangular square matrix</para> + </listitem> + </varlistentry> + <varlistentry> + <term>As</term> + <listitem> + <para>upper triangular or quasi-triangular square matrix</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Es</term> + <listitem> + <para>upper triangular square matrix</para> + </listitem> + </varlistentry> + <varlistentry> + <term>dim</term> + <listitem> + <para>integer</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + Schur forms, ordered Schur forms of matrices and pencils + </para> + <variablelist> + <varlistentry> + <term>MATRIX SCHUR FORM</term> + <listitem> + <variablelist> + <varlistentry> + <term>Usual schur form:</term> + <listitem> + <para> + <literal>[U,T] = schur(A)</literal> produces a Schur matrix + <literal>T</literal> and a unitary matrix <literal>U</literal> so that + <literal>A = U*T*U'</literal> and <literal>U'*U = eye(U)</literal>. By itself, schur(<literal>A</literal>) returns + <literal>T</literal>. If <literal>A</literal> is complex, the Complex + Schur Form is returned in matrix + <literal>T</literal>. The Complex Schur Form is upper triangular with + the eigenvalues of <literal>A</literal> on the diagonal. If + <literal>A</literal> is real, the Real Schur Form is returned. The Real + Schur Form has the real eigenvalues on the diagonal and the + complex eigenvalues in 2-by-2 blocks on the diagonal. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Ordered Schur forms</term> + <listitem> + <para> + <literal>[U,dim]=schur(A,'c')</literal> returns an unitary + matrix <literal>U</literal> which transforms <literal>A</literal> into schur + form. In addition, the dim first columns of <literal>U</literal> make + a basis of the eigenspace of <literal>A</literal> associated with + eigenvalues with negative real parts (stable "continuous + time" eigenspace). + </para> + <para> + <literal>[U,dim]=schur(A,'d')</literal> returns an unitary + matrix <literal>U</literal> which transforms <literal>A</literal> into schur + form. In addition, the <literal>dim</literal> first columns of + <literal>U</literal> span a basis of the eigenspace of <literal>A</literal> + associated with eigenvalues with magnitude lower than 1 (stable + "discrete time" eigenspace). + </para> + <para> + <literal>[U,dim]=schur(A,extern1)</literal> returns an unitary matrix + <literal>U</literal> which transforms <literal>A</literal> into schur form. + In addition, the <literal>dim</literal> first columns of + <literal>U</literal> span a basis of the eigenspace of <literal>A</literal> + associated with the eigenvalues which are selected by the + external function <literal>extern1</literal> (see external for + details). This external can be described by a Scilab function + or by C or Fortran procedure: + </para> + <variablelist> + <varlistentry> + <term>a Scilab function</term> + <listitem> + <para> + If <literal>extern1</literal> is described by a Scilab function, it + should have the following calling sequence: + <literal>s=extern1(Ev)</literal>, where <literal>Ev</literal> is an eigenvalue and + <literal>s</literal> a boolean. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>a C or Fortran procedure</term> + <listitem> + <para> + If <literal>extern1</literal> is described by a C or Fortran function it + should have the following calling sequence: + <literal>int extern1(double *EvR, double *EvI)</literal> + where <literal>EvR</literal> and <literal>EvI</literal> are eigenvalue real and complex parts. + a true or non zero returned value stands for selected eigenvalue. + </para> + </listitem> + </varlistentry> + </variablelist> + </listitem> + </varlistentry> + </variablelist> + </listitem> + </varlistentry> + <varlistentry> + <term>PENCIL SCHUR FORMS</term> + <listitem> + <variablelist> + <varlistentry> + <term>Usual Pencil Schur form</term> + <listitem> + <para> + <literal>[As,Es] = schur(A,E)</literal> produces a quasi triangular + <literal>As</literal> matrix and a triangular <literal>Es</literal> matrix + which are the generalized Schur form of the pair <literal>A, E</literal>. + </para> + <para> + <literal>[As,Es,Q,Z] = schur(A,E)</literal> + returns in addition two unitary matrices + <literal>Q</literal> and <literal>Z</literal> such that + <literal>As=Q'*A*Z</literal> and <literal>Es=Q'*E*Z</literal>. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Ordered Schur forms:</term> + <listitem> + <para> + <literal>[As,Es,Z,dim] = schur(A,E,'c')</literal> + returns the real generalized + Schur form of the pencil <literal>s*E-A</literal>. In addition, the dim first columns + of <literal>Z</literal> span a basis of the right eigenspace associated with + eigenvalues with negative real parts (stable "continuous + time" generalized eigenspace). + </para> + <para> + <literal>[As,Es,Z,dim] = schur(A,E,'d')</literal> + </para> + <para> + returns the real generalized + Schur form of the pencil <literal>s*E-A</literal>. In addition, the dim first columns + of <literal>Z</literal> make a basis of the right eigenspace associated with + eigenvalues with magnitude lower than 1 (stable "discrete + time" generalized eigenspace). + </para> + <para> + <literal>[As,Es,Z,dim] = schur(A,E,extern2)</literal> + </para> + <para> + returns the real generalized Schur form of the pencil <literal>s*E-A</literal>. + In addition, the dim first columns + of <literal>Z</literal> make a basis of the right eigenspace associated with + eigenvalues of the pencil which are selected according to a + rule which is given by the function <literal>extern2</literal>. (see external + for details). This external can be described by a Scilab + function or by C or Fortran procedure: + </para> + <variablelist> + <varlistentry> + <term>A Scilab function</term> + <listitem> + <para> + If <literal>extern2</literal> is described by a Scilab function, it should + have the following calling sequence: + <literal>s=extern2(Alpha,Beta)</literal>, where <literal>Alpha</literal> and + <literal>Beta</literal> defines a generalized eigenvalue and + <literal>s</literal> a boolean. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>C or Fortran procedure</term> + <listitem> + <para> + if external <literal>extern2</literal> is described by a C or a + Fortran procedure, it should have the following calling + sequence: + </para> + <para> + <literal>int extern2(double *AlphaR, double *AlphaI, double *Beta)</literal> + </para> + <para> + if <literal>A</literal> and <literal>E</literal> are real and + </para> + <para> + <literal>int extern2(double *AlphaR, double *AlphaI, double *BetaR, double *BetaI)</literal> + </para> + <para> + if <literal>A</literal> or <literal>E</literal> are complex. + <literal>Alpha</literal>, and <literal>Beta</literal> defines the generalized eigenvalue. + a true or non zero returned value stands for selected generalized eigenvalue. + </para> + </listitem> + </varlistentry> + </variablelist> + </listitem> + </varlistentry> + </variablelist> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>References</title> + <para> + Matrix schur form computations are based on the Lapack routines DGEES and ZGEES. + </para> + <para> + Pencil schur form computations are based on the Lapack routines DGGES and ZGGES. + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +//SCHUR FORM OF A MATRIX +//---------------------- +A=diag([-0.9,-2,2,0.9]);X=rand(A);A=inv(X)*A*X; +[U,T]=schur(A);T + +[U,dim,T]=schur(A,'c'); +T(1:dim,1:dim) //stable cont. eigenvalues + +function t=mytest(Ev),t=abs(Ev)<0.95,endfunction +[U,dim,T]=schur(A,mytest); +T(1:dim,1:dim) + +// The same function in C (a Compiler is required) +cd TMPDIR; +C=['int mytest(double *EvR, double *EvI) {' //the C code + 'if (*EvR * *EvR + *EvI * *EvI < 0.9025) return 1;' + 'else return 0; }';] +mputl(C,TMPDIR+'/mytest.c') + + +//build and link +lp=ilib_for_link('mytest','mytest.c',[],'c'); +link(lp,'mytest','c'); + +//run it +[U,dim,T]=schur(A,'mytest'); +//SCHUR FORM OF A PENCIL +//---------------------- +F=[-1,%s, 0, 1; + 0,-1,5-%s, 0; + 0, 0,2+%s, 0; + 1, 0, 0, -2+%s]; +A=coeff(F,0);E=coeff(F,1); +[As,Es,Q,Z]=schur(A,E); +Q'*F*Z //It is As+%s*Es + + +[As,Es,Z,dim] = schur(A,E,'c') +function t=mytest(Alpha,Beta),t=real(Alpha)<0,endfunction +[As,Es,Z,dim] = schur(A,E,mytest) + +//the same function in Fortran (a Compiler is required) +ftn=['integer function mytestf(ar,ai,b)' //the fortran code + 'double precision ar,ai,b' + 'mytestf=0' + 'if(ar.lt.0.0d0) mytestf=1' + 'end'] +mputl(' '+ftn,TMPDIR+'/mytestf.f') + +//build and link +lp=ilib_for_link('mytestf','mytestf.f',[],'F'); +link(lp,'mytestf','f'); + +//run it + +[As,Es,Z,dim] = schur(A,E,'mytestf') + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="spec">spec</link> + </member> + <member> + <link linkend="bdiag">bdiag</link> + </member> + <member> + <link linkend="ricc">ricc</link> + </member> + <member> + <link linkend="pbig">pbig</link> + </member> + <member> + <link linkend="psmall">psmall</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/en_US/eigen/spec.xml b/modules/linear_algebra/help/en_US/eigen/spec.xml new file mode 100755 index 000000000..4565a68fd --- /dev/null +++ b/modules/linear_algebra/help/en_US/eigen/spec.xml @@ -0,0 +1,301 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * 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 + * + --> +<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="spec" xml:lang="en"> + <refnamediv> + <refname>spec</refname> + <refpurpose>eigenvalues of matrices and pencils</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>evals=spec(A) + [R,diagevals]=spec(A) + + evals=spec(A,B) + [alpha,beta]=spec(A,B) + [alpha,beta,Z]=spec(A,B) + [alpha,beta,Q,Z]=spec(A,B) + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>A</term> + <listitem> + <para>real or complex square matrix</para> + </listitem> + </varlistentry> + <varlistentry> + <term>B</term> + <listitem> + <para>real or complex square matrix with same dimensions as + <literal> A</literal> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>evals</term> + <listitem> + <para>real or complex vector, the eigenvalues</para> + </listitem> + </varlistentry> + <varlistentry> + <term>diagevals</term> + <listitem> + <para>real or complex diagonal matrix (eigenvalues along the + diagonal) + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>alpha</term> + <listitem> + <para>real or complex vector, al./be gives the eigenvalues</para> + </listitem> + </varlistentry> + <varlistentry> + <term>beta</term> + <listitem> + <para>real vector, al./be gives the eigenvalues</para> + </listitem> + </varlistentry> + <varlistentry> + <term>R</term> + <listitem> + <para>real or complex invertible square matrix, matrix right + eigenvectors. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>L</term> + <listitem> + <para>real or complex invertible square matrix, pencil left + eigenvectors. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>R</term> + <listitem> + <para>real or complex invertible square matrix, pencil right + eigenvectors. + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <variablelist> + <varlistentry> + <term>evals=spec(A)</term> + <listitem> + <para> + returns in vector <literal>evals</literal> the + eigenvalues. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>[R,diagevals] =spec(A)</term> + <listitem> + <para> + returns in the diagonal matrix <literal>evals</literal> the + eigenvalues and in <literal>R</literal> the right + eigenvectors. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>evals=spec(A,B)</term> + <listitem> + <para>returns the spectrum of the matrix pencil A - s B, i.e. the + roots of the polynomial matrix s B - A. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>[alpha,beta] = spec(A,B)</term> + <listitem> + <para> + returns the spectrum of the matrix pencil <literal>A- s + B + </literal> + ,i.e. the roots of the polynomial matrix <literal>A - s + B + </literal> + .Generalized eigenvalues alpha and beta are so that the + matrix <literal>A - alpha./beta B</literal> is a singular matrix. + The eigenvalues are given by <literal>al./be</literal> and if + <literal>beta(i) = 0</literal> the ith eigenvalue is at infinity. + (For <literal>B = eye(A), alpha./beta</literal> is + <literal>spec(A)</literal>). It is usually represented as the pair + (alpha,beta), as there is a reasonable interpretation for beta=0, + and even for both being zero. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>[alpha,beta,R] = spec(A,B)</term> + <listitem> + <para> + returns in addition the matrix <literal>R</literal> of + generalized right eigenvectors of the pencil. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>[al,be,L,R] = spec(A,B)</term> + <listitem> + <para> + returns in addition the matrix <literal>L</literal> and + <literal>R</literal> of generalized left and right eigenvectors of + the pencil. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>[al,be,Z] = spec(A,E)</term> + <listitem> + <para> + returns the matrix <literal>Z</literal> of right + generalized eigen vectors. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>[al,be,Q,Z] = spec(A,E)</term> + <listitem> + <para> + returns the matrices <literal>Q</literal> + and <literal>Z</literal> of right and left generalized + eigen vectors. + </para> + </listitem> + </varlistentry> + </variablelist> + <para>For big full / sparse matrix, you can use the Arnoldi module.</para> + </refsection> + <refsection> + <title>References</title> + <para>Matrix eigenvalues computations are based on the Lapack + routines + </para> + <itemizedlist> + <listitem> + <para>DGEEV and ZGEEV when the matrix are not symmetric,</para> + </listitem> + <listitem> + <para>DSYEV and ZHEEV when the matrix are symmetric.</para> + </listitem> + </itemizedlist> + <para>A complex symmetric matrix has conjugate offdiagonal terms and real + diagonal terms. + </para> + <para>Pencil eigenvalues computations are based on the Lapack routines + DGGEV and ZGGEV. + </para> + </refsection> + <refsection> + <title>Real and complex matrices</title> + <para>It must be noticed that the type of the output variables, such as + evals or R for example, is not necessarily the same as the type of the + input matrices A and B. In the following paragraph, we analyse the type of + the output variables in the case where one computes the eigenvalues and + eigenvectors of one single matrix A. + </para> + <itemizedlist> + <listitem> + <para>Real A matrix</para> + <itemizedlist> + <listitem> + <para>Symetric</para> + <para>The eigenvalues and the eigenvectors are real.</para> + </listitem> + <listitem> + <para>Not symmetric</para> + <para>The eigenvalues and eigenvectors are complex.</para> + </listitem> + </itemizedlist> + </listitem> + <listitem> + <para>Complex A matrix</para> + <itemizedlist> + <listitem> + <para>Symetric</para> + <para>The eigenvalues are real but the eigenvectors are + complex. + </para> + </listitem> + <listitem> + <para>Not symmetric</para> + <para>The eigenvalues and the eigenvectors are complex.</para> + </listitem> + </itemizedlist> + </listitem> + </itemizedlist> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +// MATRIX EIGENVALUES +A=diag([1,2,3]); +X=rand(3,3); +A=inv(X)*A*X; +spec(A) + +x=poly(0,'x'); +pol=det(x*eye()-A) +roots(pol) + +[S,X]=bdiag(A); +clean(inv(X)*A*X) + +// PENCIL EIGENVALUES +A=rand(3,3); +[al,be,R] = spec(A,eye(A)); +al./be +clean(inv(R)*A*R) //displaying the eigenvalues (generic matrix) +A=A+%i*rand(A); +E=rand(A); +roots(det(A-%s*E)) //complex case + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="poly">poly</link> + </member> + <member> + <link linkend="det">det</link> + </member> + <member> + <link linkend="schur">schur</link> + </member> + <member> + <link linkend="bdiag">bdiag</link> + </member> + <member> + <link linkend="colcomp">colcomp</link> + </member> + <member> + <link linkend="dsaupd">dsaupd</link> + </member> + <member> + <link linkend="dnaupd">dnaupd</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/en_US/eigen/sva.xml b/modules/linear_algebra/help/en_US/eigen/sva.xml new file mode 100755 index 000000000..4fd62c45c --- /dev/null +++ b/modules/linear_algebra/help/en_US/eigen/sva.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) 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="sva"> + <refnamediv> + <refname>sva</refname> + <refpurpose>singular value approximation</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>[U,s,V]=sva(A,k) + [U,s,V]=sva(A,tol) + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>A</term> + <listitem> + <para>real or complex matrix</para> + </listitem> + </varlistentry> + <varlistentry> + <term>k</term> + <listitem> + <para>integer</para> + </listitem> + </varlistentry> + <varlistentry> + <term>tol</term> + <listitem> + <para>nonnegative real number</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + Singular value approximation. + </para> + <para> + <literal>[U,S,V]=sva(A,k)</literal> with <literal>k</literal> an integer + >=1, returns <literal>U,S</literal> and <literal>V</literal> such that + <literal>B=U*S*V'</literal> is the best L2 approximation of + <literal>A</literal> with rank(<literal>B</literal>)=<literal>k</literal>. + </para> + <para> + <literal>[U,S,V]=sva(A,tol)</literal> with <literal>tol</literal> a real + number, returns <literal>U,S</literal> and <literal>V</literal> such that + <literal>B=U*S*V'</literal> such that L2-norm of <literal>A-B</literal> + is at most <literal>tol</literal>. + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +A=rand(5,4)*rand(4,5); +[U,s,V]=sva(A,2); +B=U*s*V'; +svd(A) +svd(B) +clean(svd(A-B)) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="svd">svd</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/en_US/eigen/svd.xml b/modules/linear_algebra/help/en_US/eigen/svd.xml new file mode 100755 index 000000000..24c626e38 --- /dev/null +++ b/modules/linear_algebra/help/en_US/eigen/svd.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) 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="svd"> + <refnamediv> + <refname>svd</refname> + <refpurpose>singular value decomposition</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>s=svd(X) + [U,S,V]=svd(X) + [U,S,V]=svd(X,0) (obsolete) + [U,S,V]=svd(X,"e") + [U,S,V,rk]=svd(X [,tol]) + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>X</term> + <listitem> + <para>a real or complex matrix</para> + </listitem> + </varlistentry> + <varlistentry> + <term>s</term> + <listitem> + <para>real vector (singular values)</para> + </listitem> + </varlistentry> + <varlistentry> + <term>S</term> + <listitem> + <para>real diagonal matrix (singular values)</para> + </listitem> + </varlistentry> + <varlistentry> + <term>U,V</term> + <listitem> + <para>orthogonal or unitary square matrices (singular vectors).</para> + </listitem> + </varlistentry> + <varlistentry> + <term>tol</term> + <listitem> + <para>real number</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal>[U,S,V] = svd(X)</literal> produces a diagonal matrix + <literal>S</literal> , of the same dimension as <literal>X</literal> and with + nonnegative diagonal elements in decreasing order, and unitary + matrices <literal>U</literal> and <literal>V</literal> so that <literal>X = U*S*V'</literal>. + </para> + <para> + <literal>[U,S,V] = svd(X,0)</literal> produces the "economy + size" decomposition. If <literal>X</literal> is m-by-n with m > + n, then only the first n columns of <literal>U</literal> are computed + and <literal>S</literal> is n-by-n. + </para> + <para> + <literal>s= svd(X)</literal> by itself, returns a vector <literal>s</literal> + containing the singular values. + </para> + <para> + <literal>[U,S,V,rk]=svd(X,tol)</literal> gives in addition <literal>rk</literal>, the numerical rank of <literal>X</literal> i.e. the number of + singular values larger than <literal>tol</literal>. + </para> + <para> + The default value of <literal>tol</literal> is the same as in <literal>rank</literal>. + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +X=rand(4,2)*rand(2,4) +svd(X) +sqrt(spec(X*X')) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="rank">rank</link> + </member> + <member> + <link linkend="qr">qr</link> + </member> + <member> + <link linkend="colcomp">colcomp</link> + </member> + <member> + <link linkend="rowcomp">rowcomp</link> + </member> + <member> + <link linkend="sva">sva</link> + </member> + <member> + <link linkend="spec">spec</link> + </member> + </simplelist> + </refsection> + <refsection> + <title>Used Functions</title> + <para> + svd decompositions are based on the Lapack routines DGESVD for + real matrices and ZGESVD for the complex case. + </para> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/en_US/factorization/CHAPTER b/modules/linear_algebra/help/en_US/factorization/CHAPTER new file mode 100755 index 000000000..e6daeb8eb --- /dev/null +++ b/modules/linear_algebra/help/en_US/factorization/CHAPTER @@ -0,0 +1,2 @@ +title = Factorization + diff --git a/modules/linear_algebra/help/en_US/factorization/givens.xml b/modules/linear_algebra/help/en_US/factorization/givens.xml new file mode 100755 index 000000000..355899ae0 --- /dev/null +++ b/modules/linear_algebra/help/en_US/factorization/givens.xml @@ -0,0 +1,86 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * 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 + * + --> +<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="givens"> + <refnamediv> + <refname>givens</refname> + <refpurpose>Givens transformation</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>U=givens(xy) + U=givens(x,y) + [U,c]=givens(xy) + [U,c]=givens(x,y) + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>x,y</term> + <listitem> + <para>two real or complex numbers</para> + </listitem> + </varlistentry> + <varlistentry> + <term>xy</term> + <listitem> + <para> real or complex size 2 column vector</para> + </listitem> + </varlistentry> + <varlistentry> + <term>U</term> + <listitem> + <para>2x2 unitary matrix</para> + </listitem> + </varlistentry> + <varlistentry> + <term>c</term> + <listitem> + <para> real or complex size 2 column vector</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal>U= givens(x, y)</literal> or <literal>U = givens(xy)</literal> with <literal>xy = [x;y]</literal> + returns a <literal>2</literal>x<literal>2</literal> unitary matrix <literal>U</literal> such that: + </para> + <para> + <literal>U*xy=[r;0]=c</literal>. + </para> + <para> + <note> + Note that <literal>givens(x,y)</literal> and <literal>givens([x;y])</literal> are equivalent. + </note> + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +A=[3,4;5,6]; +U=givens(A(:,1)); +U*A + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="qr">qr</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/en_US/factorization/householder.xml b/modules/linear_algebra/help/en_US/factorization/householder.xml new file mode 100755 index 000000000..c664395a9 --- /dev/null +++ b/modules/linear_algebra/help/en_US/factorization/householder.xml @@ -0,0 +1,70 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * 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 + * + --> +<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="householder"> + <refnamediv> + <refname>householder</refname> + <refpurpose>Householder orthogonal reflexion matrix</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>u=householder(v [,w])</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>v</term> + <listitem> + <para>real or complex column vector</para> + </listitem> + </varlistentry> + <varlistentry> + <term>w</term> + <listitem> + <para> + real or complex column vector with same size as <literal>v</literal>. Default value is <literal>eye(v)</literal> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>u</term> + <listitem> + <para>real or complex column vector</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + given 2 column vectors <literal>v</literal>, <literal> w</literal> of same size, <literal>householder(v,w)</literal> returns a unitary + column vector <literal>u</literal>, such that <literal> (eye()-2*u*u')*v</literal> is proportional to <literal>w</literal>. + <literal>(eye()-2*u*u')</literal> is the orthogonal Householder reflexion matrix . + </para> + <para> + <literal>w</literal> default value is <literal> eye(v)</literal>. In this case vector <literal> (eye()-2*u*u')*v</literal> is the + vector <literal> eye(v)*norm(v)</literal>. + </para> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="qr">qr</link> + </member> + <member> + <link linkend="givens">givens</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/en_US/factorization/sqroot.xml b/modules/linear_algebra/help/en_US/factorization/sqroot.xml new file mode 100755 index 000000000..e248970f3 --- /dev/null +++ b/modules/linear_algebra/help/en_US/factorization/sqroot.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) 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="sqroot"> + <refnamediv> + <refname>sqroot</refname> + <refpurpose>W*W' hermitian factorization</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>sqroot(X)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>X</term> + <listitem> + <para>symmetric non negative definite real or complex matrix</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + returns W such that <literal>X=W*W'</literal> (uses SVD). + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +X=rand(5,2)*rand(2,5);X=X*X'; +W=sqroot(X) +norm(W*W'-X,1) + +X=rand(5,2)+%i*rand(5,2);X=X*X'; +W=sqroot(X) +norm(W*W'-X,1) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="chol">chol</link> + </member> + <member> + <link linkend="svd">svd</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/en_US/kernel/CHAPTER b/modules/linear_algebra/help/en_US/kernel/CHAPTER new file mode 100755 index 000000000..be67920e1 --- /dev/null +++ b/modules/linear_algebra/help/en_US/kernel/CHAPTER @@ -0,0 +1,2 @@ +title = Kernel + diff --git a/modules/linear_algebra/help/en_US/kernel/colcomp.xml b/modules/linear_algebra/help/en_US/kernel/colcomp.xml new file mode 100755 index 000000000..7d658352e --- /dev/null +++ b/modules/linear_algebra/help/en_US/kernel/colcomp.xml @@ -0,0 +1,106 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * 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 + * + --> +<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="colcomp"> + <refnamediv> + <refname>colcomp</refname> + <refpurpose>column compression, kernel, nullspace</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>[W,rk]=colcomp(A [,flag] [,tol])</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>A</term> + <listitem> + <para>real or complex matrix</para> + </listitem> + </varlistentry> + <varlistentry> + <term>flag</term> + <listitem> + <para>character string</para> + </listitem> + </varlistentry> + <varlistentry> + <term>tol</term> + <listitem> + <para>real number</para> + </listitem> + </varlistentry> + <varlistentry> + <term>W</term> + <listitem> + <para>square non-singular matrix (change of basis)</para> + </listitem> + </varlistentry> + <varlistentry> + <term>rk</term> + <listitem> + <para> + integer (rank of <literal>A</literal>) + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + Column compression of <literal>A</literal>: <literal>Ac = A*W</literal> is + column compressed i.e + </para> + <para> + <literal>Ac=[0,Af]</literal> with <literal>Af</literal> full column rank, + rank(<literal>Af</literal>) = rank(<literal>A</literal>) = <literal>rk</literal>. + </para> + <para> + <literal>flag</literal> and <literal>tol</literal> are optional parameters: <literal>flag = 'qr'</literal> + or <literal>'svd'</literal> (default is <literal>'svd'</literal>). + </para> + <para> + <literal>tol</literal> = tolerance parameter (of order <literal>%eps</literal> as default value). + </para> + <para> + The <literal>ma-rk</literal> first columns of <literal>W</literal> span the kernel of <literal>A</literal> + when <literal>size(A)=(na,ma)</literal> + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +A=rand(5,2)*rand(2,5); +[X,r]=colcomp(A); +norm(A*X(:,1:$-r),1) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="rowcomp">rowcomp</link> + </member> + <member> + <link linkend="fullrf">fullrf</link> + </member> + <member> + <link linkend="fullrfk">fullrfk</link> + </member> + <member> + <link linkend="kernel">kernel</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/en_US/kernel/fullrf.xml b/modules/linear_algebra/help/en_US/kernel/fullrf.xml new file mode 100755 index 000000000..0343f81dc --- /dev/null +++ b/modules/linear_algebra/help/en_US/kernel/fullrf.xml @@ -0,0 +1,101 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * 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 + * + --> +<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="fullrf"> + <refnamediv> + <refname>fullrf</refname> + <refpurpose>full rank factorization</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>[Q,M,rk]=fullrf(A,[tol])</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>A</term> + <listitem> + <para>real or complex matrix</para> + </listitem> + </varlistentry> + <varlistentry> + <term>tol</term> + <listitem> + <para>real number (threshold for rank determination)</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Q,M</term> + <listitem> + <para>real or complex matrix</para> + </listitem> + </varlistentry> + <varlistentry> + <term>rk</term> + <listitem> + <para> + integer (rank of <literal>A</literal>) + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + Full rank factorization : <literal>fullrf</literal> returns <literal>Q</literal> and <literal>M</literal> such + that <literal>A = Q*M</literal> + with range(<literal>Q</literal>)=range(<literal>A</literal>) and ker(<literal>M</literal>)=ker(<literal>A</literal>), + <literal>Q</literal> full column rank , <literal>M</literal> full row rank, + <literal>rk = rank(A) = #columns(Q) = #rows(M)</literal>. + </para> + <para> + <literal>tol</literal> is an optional real parameter (default value is <literal>sqrt(%eps)</literal>). + The rank <literal>rk</literal> of <literal>A</literal> is defined as the number of singular values + larger than <literal>norm(A)*tol</literal>. + </para> + <para> + If A is symmetric, <literal>fullrf</literal> returns <literal>M=Q'</literal>. + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +A=rand(5,2)*rand(2,5); +[Q,M]=fullrf(A); +norm(Q*M-A,1) +[X,d]=rowcomp(A);Y=X'; +svd([A,Y(:,1:d),Q]) //span(Q) = span(A) = span(Y(:,1:2)) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="svd">svd</link> + </member> + <member> + <link linkend="qr">qr</link> + </member> + <member> + <link linkend="fullrfk">fullrfk</link> + </member> + <member> + <link linkend="rowcomp">rowcomp</link> + </member> + <member> + <link linkend="colcomp">colcomp</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/en_US/kernel/fullrfk.xml b/modules/linear_algebra/help/en_US/kernel/fullrfk.xml new file mode 100755 index 000000000..f060add2e --- /dev/null +++ b/modules/linear_algebra/help/en_US/kernel/fullrfk.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) 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="fullrfk"> + <refnamediv> + <refname>fullrfk</refname> + <refpurpose>full rank factorization of A^k</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>[Bk,Ck]=fullrfk(A,k)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>A</term> + <listitem> + <para>real or complex matrix</para> + </listitem> + </varlistentry> + <varlistentry> + <term>k</term> + <listitem> + <para>integer</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Bk,Ck</term> + <listitem> + <para>real or complex matrices</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + This function computes the full rank factorization of <literal>A^k</literal> i.e. + <literal>Bk*Ck=A^k</literal> where <literal>Bk</literal> is full column rank and <literal>Ck</literal> full row rank. + One has range(<literal>Bk</literal>)=range(<literal>A^k</literal>) and ker(<literal>Ck</literal>)=ker(<literal>A^k</literal>). + </para> + <para> + For <literal>k=1</literal>, <literal>fullrfk</literal> is equivalent to <literal>fullrf</literal>. + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +A=rand(5,2)*rand(2,5);[Bk,Ck]=fullrfk(A,3); +norm(Bk*Ck-A^3,1) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="fullrf">fullrf</link> + </member> + <member> + <link linkend="range">range</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/en_US/kernel/im_inv.xml b/modules/linear_algebra/help/en_US/kernel/im_inv.xml new file mode 100755 index 000000000..2e288855e --- /dev/null +++ b/modules/linear_algebra/help/en_US/kernel/im_inv.xml @@ -0,0 +1,107 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * 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 + * + --> +<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="im_inv"> + <refnamediv> + <refname>im_inv</refname> + <refpurpose>inverse image</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>[X,dim]=im_inv(A,B [,tol]) + [X,dim,Y]=im_inv(A,B, [,tol]) + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>A,B</term> + <listitem> + <para>two real or complex matrices with equal number of columns</para> + </listitem> + </varlistentry> + <varlistentry> + <term>X</term> + <listitem> + <para> + orthogonal or unitary square matrix of order equal to the number of columns of <literal>A</literal> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>dim</term> + <listitem> + <para>integer (dimension of subspace)</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Y</term> + <listitem> + <para> + orthogonal matrix of order equal to the number of rows of <literal>A</literal> and <literal>B</literal>. + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal>[X,dim]=im_inv(A,B)</literal> computes <literal>(A^-1)(B)</literal> + i.e vectors whose image through <literal>A</literal> are in + range(<literal>B</literal>) + </para> + <para> + The <literal>dim</literal> first columns of <literal>X</literal> span + <literal>(A^-1)(B)</literal> + </para> + <para> + <literal>tol</literal> is a threshold used to test if subspace inclusion; + default value is <literal>tol = 100*%eps</literal>. + If <literal>Y</literal> is returned, then <literal>[Y*A*X,Y*B]</literal> is partitioned as follows: + <literal>[A11,A12;0,A22]</literal>,<literal>[B1;0]</literal> + </para> + <para> + where <literal>B1</literal> has full row rank (equals + <literal>rank(B)</literal>) and <literal>A22</literal> has full column rank + and has <literal>dim</literal> columns. + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +A=[rand(2,5);[zeros(3,4),rand(3,1)]];B=[[1,1;1,1];zeros(3,2)]; +W=rand(5,5);A=W*A;B=W*B; +[X,dim]=im_inv(A,B) +svd([A*X(:,1:dim),B]) //vectors A*X(:,1:dim) belong to range(B) +[X,dim,Y]=im_inv(A,B);[Y*A*X,Y*B] + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="rowcomp">rowcomp</link> + </member> + <member> + <link linkend="spaninter">spaninter</link> + </member> + <member> + <link linkend="spanplus">spanplus</link> + </member> + <member> + <link linkend="linsolve">linsolve</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/en_US/kernel/kernel.xml b/modules/linear_algebra/help/en_US/kernel/kernel.xml new file mode 100755 index 000000000..f891512d1 --- /dev/null +++ b/modules/linear_algebra/help/en_US/kernel/kernel.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) 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="kernel"> + <refnamediv> + <refname>kernel</refname> + <refpurpose>kernel, null space</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>W=kernel(A [,tol,[,flag])</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>A</term> + <listitem> + <para>full real or complex matrix or real sparse matrix</para> + </listitem> + </varlistentry> + <varlistentry> + <term>flag</term> + <listitem> + <para> + character string <literal>'svd'</literal> (default) or <literal>'qr'</literal> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>tol</term> + <listitem> + <para>real number</para> + </listitem> + </varlistentry> + <varlistentry> + <term>W</term> + <listitem> + <para>full column rank matrix</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal>W=kernel(A)</literal> returns the kernel (null space) of <literal>A</literal>, and <literal>size(W,2)</literal> is the nullity of A. + If A has full column rank then an empty matrix [] is returned. + </para> + <para> + <literal>flag</literal> and <literal>tol</literal> are optional parameters: <literal>flag = 'qr'</literal> + or <literal>'svd'</literal> (default is <literal>'svd'</literal>). + </para> + <para> + <literal>tol</literal> = tolerance parameter (of order <literal>%eps</literal> as default value). + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +A=rand(3,1)*rand(1,3); +A*kernel(A) +A=sparse(A); +clean(A*kernel(A)) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="colcomp">colcomp</link> + </member> + <member> + <link linkend="fullrf">fullrf</link> + </member> + <member> + <link linkend="fullrfk">fullrfk</link> + </member> + <member> + <link linkend="linsolve">linsolve</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/en_US/kernel/range.xml b/modules/linear_algebra/help/en_US/kernel/range.xml new file mode 100755 index 000000000..b8def609f --- /dev/null +++ b/modules/linear_algebra/help/en_US/kernel/range.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) 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="range"> + <refnamediv> + <refname>range</refname> + <refpurpose>range (span) of A^k</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>[X,dim]=range(A,k)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>A</term> + <listitem> + <para>real square matrix</para> + </listitem> + </varlistentry> + <varlistentry> + <term>k</term> + <listitem> + <para>integer</para> + </listitem> + </varlistentry> + <varlistentry> + <term>X</term> + <listitem> + <para>orthonormal real matrix</para> + </listitem> + </varlistentry> + <varlistentry> + <term>dim</term> + <listitem> + <para>integer (dimension of subspace)</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + Computation of Range <literal>A^k</literal> ; the first dim rows of <literal>X</literal> span the + range of <literal>A^k</literal>. The last rows of <literal>X</literal> span the + orthogonal complement of the range. <literal>X*X'</literal> is the Identity matrix + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +A=rand(4,2)*rand(2,4); // 4 column vectors, 2 independent. +[X,dim]=range(A,1);dim // compute the range + +y1=A*rand(4,1); //a vector which is in the range of A +y2=rand(4,1); //a vector which is not in the range of A +norm(X(dim+1:$,:)*y1) //the last entries are zeros, y1 is in the range of A +norm(X(dim+1:$,:)*y2) //the last entries are not zeros + +I=X(1:dim,:)' //I is a basis of the range +coeffs=X(1:dim,:)*y1 // components of y1 relative to the I basis + +norm(I*coeffs-y1) //check + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="fullrfk">fullrfk</link> + </member> + <member> + <link linkend="rowcomp">rowcomp</link> + </member> + </simplelist> + </refsection> + <refsection> + <title>Used Functions</title> + <para> + The <literal>range</literal> function is based on the <link linkend="rowcomp">rowcomp</link> function + which uses the <link linkend="svd">svd</link> decomposition. + </para> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/en_US/kernel/rowcomp.xml b/modules/linear_algebra/help/en_US/kernel/rowcomp.xml new file mode 100755 index 000000000..f012c21f6 --- /dev/null +++ b/modules/linear_algebra/help/en_US/kernel/rowcomp.xml @@ -0,0 +1,123 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * 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 + * + --> +<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="rowcomp"> + <refnamediv> + <refname>rowcomp</refname> + <refpurpose>row compression, range</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>[W,rk]=rowcomp(A [,flag [,tol]])</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>A</term> + <listitem> + <para>real or complex matrix</para> + </listitem> + </varlistentry> + <varlistentry> + <term>flag</term> + <listitem> + <para>optional character string, with possible values + <literal>'svd'</literal> or <literal>'qr'</literal>. The default value is <literal>'svd'</literal>. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>tol</term> + <listitem> + <para>optional real non negative number. The default value is + <literal>sqrt(%eps)*norm(A,1)</literal>. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>W</term> + <listitem> + <para>square non-singular matrix (change of basis)</para> + </listitem> + </varlistentry> + <varlistentry> + <term>rk</term> + <listitem> + <para> + integer (rank of <literal>A</literal>) + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + Row compression of <literal>A</literal>. <literal>Ac = W*A</literal> is a row compressed matrix: i.e. + <literal>Ac=[Af;0]</literal> with <literal>Af</literal> full row rank. + </para> + <para> + <literal>flag</literal> and <literal>tol</literal> are optional parameters: <literal>flag='qr'</literal> + or <literal>'svd'</literal> (default <literal>'svd'</literal>). + </para> + <para> + <literal>tol</literal> is a tolerance parameter. + </para> + <para> + The <literal>rk</literal> first columns of <literal>W'</literal> span the range of + <literal>A</literal>. + </para> + <para> + The <literal>rk</literal> first (top) rows of <literal>W</literal> span the row + range of <literal>A</literal>. + </para> + <para> + A non zero vector <literal>x</literal> belongs to range(<literal>A</literal>) iff + <literal>W*x</literal> is row compressed in accordance with <literal>Ac</literal> + i.e the norm of its last components is small w.r.t its first + components. + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +A=rand(5,2)*rand(2,4); // 4 col. vectors, 2 independent. +[X,dim]=rowcomp(A);Xp=X'; +svd([Xp(:,1:dim),A]) //span(A) = span(Xp(:,1:dim) +x=A*rand(4,1); //x belongs to span(A) +y=X*x +norm(y(dim+1:$))/norm(y(1:dim)) // small + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="colcomp">colcomp</link> + </member> + <member> + <link linkend="fullrf">fullrf</link> + </member> + <member> + <link linkend="fullrfk">fullrfk</link> + </member> + </simplelist> + </refsection> + <refsection> + <title>Used Functions</title> + <para> + The <literal>rowcomp</literal> function is based on the <link linkend="svd">svd</link> or + <link linkend="qr">qr</link> decompositions. + </para> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/en_US/linear/CHAPTER b/modules/linear_algebra/help/en_US/linear/CHAPTER new file mode 100755 index 000000000..7d9d9cf49 --- /dev/null +++ b/modules/linear_algebra/help/en_US/linear/CHAPTER @@ -0,0 +1,2 @@ +title = Linear Equations + diff --git a/modules/linear_algebra/help/en_US/linear/aff2ab.xml b/modules/linear_algebra/help/en_US/linear/aff2ab.xml new file mode 100755 index 000000000..756469256 --- /dev/null +++ b/modules/linear_algebra/help/en_US/linear/aff2ab.xml @@ -0,0 +1,150 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * 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 + * + --> +<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="aff2ab"> + <refnamediv> + <refname>aff2ab</refname> + <refpurpose>linear (affine) function to A,b conversion</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>[A,b]=aff2ab(afunction,dimX,D [,flag])</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>afunction</term> + <listitem> + <para> + a scilab function <literal> Y =fct(X,D) </literal> where <literal>X, D, Y</literal> are <literal>list</literal> of matrices + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>dimX</term> + <listitem> + <para> + a p x 2 integer matrix (<literal>p</literal> is the number of matrices in <literal>X</literal>) + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>D</term> + <listitem> + <para> + a <literal>list</literal> of real matrices (or any other valid Scilab object). + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>flag</term> + <listitem> + <para> + optional parameter (<literal>flag='f'</literal> or <literal>flag='sp'</literal>) + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>A</term> + <listitem> + <para>a real matrix</para> + </listitem> + </varlistentry> + <varlistentry> + <term>b</term> + <listitem> + <para> + a real vector having same row dimension as <literal>A</literal> + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal>aff2ab</literal> returns the matrix representation of an affine + function (in the canonical basis). + </para> + <para> + <literal>afunction</literal> is a function with imposed syntax: + <literal> Y=afunction(X,D) </literal> where <literal> X=list(X1,X2,...,Xp) </literal> is + a list of p real matrices, and <literal> Y=list(Y1,...,Yq) </literal> is + a list of q real real matrices which depend linearly of + the <literal> Xi</literal>'s. The (optional) input <literal> D</literal> contains + parameters needed to compute Y as a function of X. + (It is generally a list of matrices). + </para> + <para> + <literal> dimX</literal> is a p x 2 matrix: <literal>dimX(i)=[nri,nci]</literal> + is the actual number of rows and columns of matrix <literal>Xi</literal>. + These dimensions determine <literal>na</literal>, the column dimension of + the resulting matrix <literal>A</literal>: <literal>na=nr1*nc1 +...+ nrp*ncp</literal>. + </para> + <para> + If the optional parameter <literal>flag='sp'</literal> the resulting <literal>A</literal> + matrix is returned as a sparse matrix. + </para> + <para> + This function is useful to solve a system of linear equations + where the unknown variables are matrices. + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +// Lyapunov equation solver (one unknown variable, one constraint) +deff('Y=lyapunov(X,D)','[A,Q]=D(:);Xm=X(:); Y=list(A''*Xm+Xm*A-Q)') +A=rand(3,3);Q=rand(3,3);Q=Q+Q';D=list(A,Q);dimX=[3,3]; +[Aly,bly]=aff2ab(lyapunov,dimX,D); +[Xl,kerA]=linsolve(Aly,bly); Xv=vec2list(Xl,dimX); lyapunov(Xv,D) +Xm=Xv(:); A'*Xm+Xm*A-Q + +// Lyapunov equation solver with redundant constraint X=X' +// (one variable, two constraints) D is global variable +deff('Y=ly2(X,D)','[A,Q]=D(:);Xm=X(:); Y=list(A''*Xm+Xm*A-Q,Xm''-Xm)') +A=rand(3,3);Q=rand(3,3);Q=Q+Q';D=list(A,Q);dimX=[3,3]; +[Aly,bly]=aff2ab(ly2,dimX,D); +[Xl,kerA]=linsolve(Aly,bly); Xv=vec2list(Xl,dimX); ly2(Xv,D) + +// Francis equations +// Find matrices X1 and X2 such that: +// A1*X1 - X1*A2 + B*X2 -A3 = 0 +// D1*X1 -D2 = 0 +deff('Y=bruce(X,D)','[A1,A2,A3,B,D1,D2]=D(:),... +[X1,X2]=X(:);Y=list(A1*X1-X1*A2+B*X2-A3,D1*X1-D2)') +A1=[-4,10;-1,2];A3=[1;2];B=[0;1];A2=1;D1=[0,1];D2=1; +D=list(A1,A2,A3,B,D1,D2); +[n1,m1]=size(A1);[n2,m2]=size(A2);[n3,m3]=size(B); +dimX=[[m1,n2];[m3,m2]]; +[Af,bf]=aff2ab(bruce,dimX,D); +[Xf,KerAf]=linsolve(Af,bf);Xsol=vec2list(Xf,dimX) +bruce(Xsol,D) + +// Find all X which commute with A +deff('y=f(X,D)','y=list(D(:)*X(:)-X(:)*D(:))') +A=rand(3,3);dimX=[3,3];[Af,bf]=aff2ab(f,dimX,list(A)); +[Xf,KerAf]=linsolve(Af,bf);[p,q]=size(KerAf); +Xsol=vec2list(Xf+KerAf*rand(q,1),dimX); +C=Xsol(:); A*C-C*A + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="linsolve">linsolve</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/en_US/linear/chol.xml b/modules/linear_algebra/help/en_US/linear/chol.xml new file mode 100755 index 000000000..a0a37f1de --- /dev/null +++ b/modules/linear_algebra/help/en_US/linear/chol.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) 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="chol"> + <refnamediv> + <refname>chol</refname> + <refpurpose>Cholesky factorization</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>[R]=chol(X)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>X</term> + <listitem> + <para>a symmetric positive definite real or complex matrix.</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + If <literal>X</literal> is positive definite, then <literal>R = chol(X)</literal> produces an upper + triangular matrix <literal>R</literal> such that <literal>R'*R = X</literal>. + </para> + <para> + <literal>chol(X)</literal> uses only the diagonal and upper triangle of <literal>X</literal>. + The lower triangular is assumed to be the (complex conjugate) + transpose of the upper. + </para> + </refsection> + <refsection> + <title>References</title> + <para> + Cholesky decomposition is based on the Lapack routines + DPOTRF for real matrices and ZPOTRF for the complex case. + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +W=rand(5,5)+%i*rand(5,5); +X=W*W'; +R=chol(X); +norm(R'*R-X) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="spchol">spchol</link> + </member> + <member> + <link linkend="qr">qr</link> + </member> + <member> + <link linkend="svd">svd</link> + </member> + <member> + <link linkend="bdiag">bdiag</link> + </member> + <member> + <link linkend="fullrf">fullrf</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/en_US/linear/inv.xml b/modules/linear_algebra/help/en_US/linear/inv.xml new file mode 100755 index 000000000..1589972e7 --- /dev/null +++ b/modules/linear_algebra/help/en_US/linear/inv.xml @@ -0,0 +1,105 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * 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 + * + --> +<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"> + <refnamediv> + <refname>inv</refname> + <refpurpose>matrix inverse</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>inv(X)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>X</term> + <listitem> + <para>real or complex square matrix, polynomial matrix, rational matrix in transfer or state-space representation.</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal>inv(X)</literal> is the inverse of the square matrix <literal>X</literal>. A warning + message is printed if <literal>X</literal> is badly scaled or nearly singular. + </para> + <para> + For polynomial matrices or rational matrices in transfer representation, + <literal>inv(X)</literal> is equivalent to <literal>invr(X)</literal>. + </para> + <para> + For linear systems in state-space representation (<literal>syslin</literal> list), + <literal>invr(X)</literal> is equivalent to <literal>invsyslin(X)</literal>. + </para> + </refsection> + <refsection> + <title>References</title> + <para> + <literal>inv</literal> function for matrices of numbers is based on the Lapack routines + DGETRF, DGETRI for real matrices and ZGETRF, ZGETRI for the complex case. + For polynomial matrix and rational function matrix <literal>inv</literal> is based on the <literal>invr</literal> + Scilab function. + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +A=rand(3,3);inv(A)*A + +x=poly(0,'x'); +A=[x,1,x;x^2,2,1+x;1,2,3];inv(A)*A + +A=[1/x,2;2+x,2/(1+x)] +inv(A)*A + +A=ssrand(2,2,3); +W=inv(A)*A +clean(ss2tf(W)) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="slash">slash</link> + </member> + <member> + <link linkend="backslash">backslash</link> + </member> + <member> + <link linkend="pinv">pinv</link> + </member> + <member> + <link linkend="qr">qr</link> + </member> + <member> + <link linkend="lufact">lufact</link> + </member> + <member> + <link linkend="lusolve">lusolve</link> + </member> + <member> + <link linkend="invr">invr</link> + </member> + <member> + <link linkend="coff">coff</link> + </member> + <member> + <link linkend="coffg">coffg</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/en_US/linear/linsolve.xml b/modules/linear_algebra/help/en_US/linear/linsolve.xml new file mode 100755 index 000000000..01df2dc47 --- /dev/null +++ b/modules/linear_algebra/help/en_US/linear/linsolve.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) 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="linsolve"> + <refnamediv> + <refname>linsolve</refname> + <refpurpose>linear equation solver</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>[x0,kerA]=linsolve(A,b [,x0])</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>A</term> + <listitem> + <para> + a <literal>na x ma</literal> real matrix (possibly sparse) + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>b</term> + <listitem> + <para> + a <literal>na x 1</literal> vector (same row dimension as <literal>A</literal>) + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>x0</term> + <listitem> + <para>a real vector</para> + </listitem> + </varlistentry> + <varlistentry> + <term>kerA</term> + <listitem> + <para> + a <literal>ma x k</literal> real matrix + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal>linsolve</literal> computes all the solutions to <literal> A*x+b=0</literal>. + </para> + <para> + <literal>x0</literal> is a particular solution (if any) and <literal> kerA= </literal>nullspace + of <literal>A</literal>. Any <literal>x=x0+kerA*w</literal> with arbitrary <literal>w</literal> satisfies + <literal> A*x+b=0</literal>. + </para> + <para> + If compatible <literal>x0</literal> is given on entry, <literal>x0</literal> is returned. If not + a compatible <literal>x0</literal>, if any, is returned. + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +A=rand(5,3)*rand(3,8); +b=A*ones(8,1);[x,kerA]=linsolve(A,b);A*x+b //compatible b +b=ones(5,1);[x,kerA]=linsolve(A,b);A*x+b //uncompatible b +A=rand(5,5);[x,kerA]=linsolve(A,b), -inv(A)*b //x is unique + +// Benchmark with other linear sparse solver: +[A,descr,ref,mtype] = ReadHBSparse(SCI+"/modules/umfpack/examples/bcsstk24.rsa"); + +b = zeros(size(A,1),1); + +tic(); +res = umfpack(A,'\',b); +mprintf('\ntime needed to solve the system with umfpack: %.3f\n',toc()); + +tic(); +res = linsolve(A,b); +mprintf('\ntime needed to solve the system with linsolve: %.3f\n',toc()); + +tic(); +res = A\b; +mprintf('\ntime needed to solve the system with the backslash operator: %.3f\n',toc()); + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="inv">inv</link> + </member> + <member> + <link linkend="pinv">pinv</link> + </member> + <member> + <link linkend="colcomp">colcomp</link> + </member> + <member> + <link linkend="im_inv">im_inv</link> + </member> + <member> + <link linkend="umfpack">umfpack</link> + </member> + <member> + <link linkend="backslash">backslash</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/en_US/linear/lsq.xml b/modules/linear_algebra/help/en_US/linear/lsq.xml new file mode 100755 index 000000000..1060d605b --- /dev/null +++ b/modules/linear_algebra/help/en_US/linear/lsq.xml @@ -0,0 +1,113 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * 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 + * + --> +<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="lsq"> + <refnamediv> + <refname>lsq</refname> + <refpurpose>linear least square problems. </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>X=lsq(A,B [,tol])</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>A</term> + <listitem> + <para>Real or complex (m x n) matrix</para> + </listitem> + </varlistentry> + <varlistentry> + <term>B</term> + <listitem> + <para>real or complex (m x p) matrix</para> + </listitem> + </varlistentry> + <varlistentry> + <term>tol</term> + <listitem> + <para>positive scalar, used to determine the effective rank of A + (defined as the order of the largest leading triangular + submatrix R11 in the QR factorization with pivoting of A, + whose estimated condition number <= 1/tol. The tol default value is + set to <literal>sqrt(%eps)</literal>. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>X</term> + <listitem> + <para>real or complex (n x p) matrix</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal>X=lsq(A,B)</literal> computes the minimum norm least square solution of + the equation <literal>A*X=B</literal>, while <literal>X=A \ B</literal> compute a least square + solution with at at most <literal>rank(A)</literal> nonzero components per column. + </para> + </refsection> + <refsection> + <title>References</title> + <para> + <literal>lsq</literal> function is based on the LApack functions DGELSY for + real matrices and ZGELSY for complex matrices. + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +//Build the data +x=(1:10)'; + +y1=3*x+4.5+3*rand(x,'normal'); +y2=1.8*x+0.5+2*rand(x,'normal'); +plot2d(x,[y1,y2],[-2,-3]) +//Find the linear regression +A=[x,ones(x)];B=[y1,y2]; +X=lsq(A,B); + +y1e=X(1,1)*x+X(2,1); +y2e=X(1,2)*x+X(2,2); +plot2d(x,[y1e,y2e],[2,3]) + +//Difference between lsq(A,b) and A\b +A=rand(4,2)*rand(2,3);//a rank 2 matrix +b=rand(4,1); +X1=lsq(A,b) +X2=A\b +[A*X1-b, A*X2-b] //the residuals are the same + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="backslash">backslash</link> + </member> + <member> + <link linkend="inv">inv</link> + </member> + <member> + <link linkend="pinv">pinv</link> + </member> + <member> + <link linkend="rank">rank</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/en_US/linear/lu.xml b/modules/linear_algebra/help/en_US/linear/lu.xml new file mode 100755 index 000000000..2da9ad568 --- /dev/null +++ b/modules/linear_algebra/help/en_US/linear/lu.xml @@ -0,0 +1,154 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2008 - INRIA + * Copyright (C) 2009 - 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: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="lu"> + <refnamediv> + <refname>lu</refname> + <refpurpose>LU factorization with pivoting</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>[L,U]= lu(A) + [L,U,E]= lu(A) + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>A</term> + <listitem> + <para>real or complex matrix (m x n).</para> + </listitem> + </varlistentry> + <varlistentry> + <term>L</term> + <listitem> + <para> real or complex matrices (m x min(m,n)).</para> + </listitem> + </varlistentry> + <varlistentry> + <term>U</term> + <listitem> + <para>real or complex matrices (min(m,n) x n ).</para> + </listitem> + </varlistentry> + <varlistentry> + <term>E</term> + <listitem> + <para>a (n x n) permutation matrix.</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal>[L,U]= lu(A)</literal> produces two matrices <literal>L</literal> and + <literal>U</literal> such that <literal>A = L*U</literal> with <literal>U</literal> + upper triangular and <literal>L</literal> a general matrix without any particular + structure. In fact, the matrix <literal>A</literal> is factored as <literal>E*A=B*U</literal> + where the matrix <literal>B</literal> is lower triangular + and the matrix <literal>L</literal> is computed from <literal>L=E'*B</literal>. + </para> + <para> + If <literal>A</literal> has rank <literal>k</literal>, rows <literal>k+1</literal> to + <literal>n</literal> of <literal>U</literal> are zero. + </para> + <para> + <literal>[L,U,E]= lu(A)</literal> produces three matrices <literal>L</literal>, <literal>U</literal> and + <literal>E</literal> such that <literal>E*A = L*U</literal> with + <literal>U</literal> upper triangular and <literal>E*L</literal> lower + triangular for a permutation matrix <literal>E</literal>. + </para> + <para> + If <literal>A</literal> is a real matrix, using the function + <literal>lufact</literal> and <literal>luget</literal> it is possible to obtain + the permutation matrices and also when <literal>A</literal> is not full + rank the column compression of the matrix <literal>L</literal>. + </para> + </refsection> + <refsection> + <title>Example #1</title> + <para> + In the following example, we create the Hilbert matrix of size 4 and + factor it with A=LU. Notice that the matrix L is not lower triangular. + To get a lower triangular L matrix, we should have given the + output argument E to Scilab. + </para> + <programlisting role="example"><![CDATA[ +a = testmatrix("hilb",4); +[l,u]=lu(a) +norm(l*u-a) + ]]></programlisting> + </refsection> + <refsection> + <title>Example #2</title> + <para> + In the following example, we create the Hilbert matrix of size 4 and + factor it with EA=LU. Notice that the matrix L is lower triangular. + </para> + <programlisting role="example"><![CDATA[ +a = testmatrix("hilb",4); +[l,u,e]=lu(a) +norm(l*u-e*a) + ]]></programlisting> + </refsection> + <refsection> + <title>Example #3</title> + <para> + The following example shows how to use the lufact and luget functions. + </para> + <programlisting role="example"><![CDATA[ +a=rand(4,4); +[l,u]=lu(a) +norm(l*u-a) + +[h,rk]=lufact(sparse(a)) +[P,L,U,Q]=luget(h); +ludel(h) +P=full(P); +L=full(L); +U=full(U); +Q=full(Q); +norm(P*L*U*Q-a) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="lufact">lufact</link> + </member> + <member> + <link linkend="luget">luget</link> + </member> + <member> + <link linkend="lusolve">lusolve</link> + </member> + <member> + <link linkend="qr">qr</link> + </member> + <member> + <link linkend="svd">svd</link> + </member> + </simplelist> + </refsection> + <refsection> + <title>Used Functions</title> + <para> + lu decompositions are based on the Lapack routines DGETRF for real + matrices and ZGETRF for the complex case. + </para> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/en_US/linear/pinv.xml b/modules/linear_algebra/help/en_US/linear/pinv.xml new file mode 100755 index 000000000..af87b920b --- /dev/null +++ b/modules/linear_algebra/help/en_US/linear/pinv.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) 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="pinv"> + <refnamediv> + <refname>pinv</refname> + <refpurpose>pseudoinverse</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>pinv(A,[tol])</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>A</term> + <listitem> + <para>real or complex matrix</para> + </listitem> + </varlistentry> + <varlistentry> + <term>tol</term> + <listitem> + <para>real number</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal>X= pinv(A)</literal> produces a matrix <literal>X</literal> of the + same dimensions as <literal>A'</literal> such that: + </para> + <para> + <literal>A*X*A = A, X*A*X = X</literal> and both + <literal>A*X</literal> and <literal>X*A</literal> are Hermitian . + </para> + <para> + The computation is based on SVD and any singular values + lower than a tolerance are treated as zero: this tolerance + is accessed by <literal>X=pinv(A,tol)</literal>. + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +A=rand(5,2)*rand(2,4); +norm(A*pinv(A)*A-A,1) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="rank">rank</link> + </member> + <member> + <link linkend="svd">svd</link> + </member> + <member> + <link linkend="qr">qr</link> + </member> + </simplelist> + </refsection> + <refsection> + <title>Used Functions</title> + <para> + <literal>pinv</literal> function is based on the singular value decomposition + (Scilab function <literal>svd</literal>). + </para> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/en_US/linear/qr.xml b/modules/linear_algebra/help/en_US/linear/qr.xml new file mode 100755 index 000000000..52b3bb433 --- /dev/null +++ b/modules/linear_algebra/help/en_US/linear/qr.xml @@ -0,0 +1,184 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * 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 + * + --> +<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="qr"> + <refnamediv> + <refname>qr</refname> + <refpurpose>QR decomposition</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>[Q,R]=qr(X [,"e"]) + [Q,R,E]=qr(X [,"e"]) + [Q,R,rk,E]=qr(X [,tol]) + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>X</term> + <listitem> + <para>real or complex matrix</para> + </listitem> + </varlistentry> + <varlistentry> + <term>tol</term> + <listitem> + <para>nonnegative real number</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Q</term> + <listitem> + <para>square orthogonal or unitary matrix</para> + </listitem> + </varlistentry> + <varlistentry> + <term>R</term> + <listitem> + <para> + matrix with same dimensions as <literal>X</literal> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>E</term> + <listitem> + <para>permutation matrix</para> + </listitem> + </varlistentry> + <varlistentry> + <term>rk</term> + <listitem> + <para> + integer (QR-rank of <literal>X</literal>) + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <variablelist> + <varlistentry> + <term>[Q,R] = qr(X)</term> + <listitem> + <para> + produces an upper triangular matrix <literal>R</literal> of the same dimension as <literal>X</literal> and an orthogonal (unitary in the complex case) matrix <literal>Q</literal> so that <literal>X = Q*R</literal>. <literal>[Q,R] = qr(X,"e")</literal> produces an "economy size": If <literal>X</literal> is m-by-n with m > n, then only the first n columns of <literal>Q</literal> are computed as well as the first n rows of <literal>R</literal>. + </para> + <para> + From <literal>Q*R = X</literal> , it follows that + the kth column of the matrix <literal>X</literal>, is expressed as a linear combination + of the k first columns of <literal>Q</literal> (with coefficients <literal> R(1,k), ..., R(k,k) </literal>). The k first columns of <literal>Q</literal> make an orthogonal basis + of the subspace spanned by the k first comumns of <literal>X</literal>. If column <literal>k</literal> + of <literal>X</literal> (i.e. <literal>X(:,k)</literal> ) is a linear combination of the first + <literal>p</literal> columns of <literal>X</literal>, then the entries <literal>R(p+1,k), ..., R(k,k)</literal> + are zero. It this situation, <literal>R</literal> is upper trapezoidal. If <literal>X</literal> has + rank <literal>rk</literal>, rows <literal>R(rk+1,:), R(rk+2,:), ...</literal> are zeros. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>[Q,R,E] = qr(X)</term> + <listitem> + <para> + produces a (column) permutation matrix <literal>E</literal>, an upper + triangular <literal>R</literal> with decreasing diagonal elements and an + orthogonal (or unitary) <literal>Q</literal> so that <literal>X*E = Q*R</literal>. + If <literal>rk</literal> is the rank of <literal>X</literal>, the + <literal>rk</literal> first entries along the main diagonal of + <literal>R</literal>, i.e. <literal>R(1,1), R(2,2), ..., R(rk,rk)</literal> + are all different from zero. <literal>[Q,R,E] = qr(X,"e")</literal> + produces an "economy size": + If <literal>X</literal> is m-by-n with m > n, then only the first n + columns of <literal>Q</literal> are computed as well as the first n + rows of <literal>R</literal>. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>[Q,R,rk,E] = qr(X ,tol)</term> + <listitem> + <para> + returns <literal>rk</literal> = rank estimate of <literal>X</literal> i.e. <literal>rk</literal> is the number of diagonal elements in <literal>R</literal> which are larger than a given threshold <literal>tol</literal>. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>[Q,R,rk,E] = qr(X) </term> + <listitem> + <para> + returns <literal>rk</literal> = rank estimate of <literal>X</literal> + i.e. <literal>rk</literal> is the number of diagonal elements in + <literal>R</literal> which are larger than + <literal>tol=R(1,1)*%eps*max(size(R))</literal>. See <literal>rankqr</literal> + for a rank revealing QR factorization, using the condition number + of <literal>R</literal>. + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +// QR factorization, generic case +// X is tall (full rank) +X=rand(5,2);[Q,R]=qr(X); [Q'*X R] + +//X is fat (full rank) +X=rand(2,3);[Q,R]=qr(X); [Q'*X R] + +//Column 4 of X is a linear combination of columns 1 and 2: +X=rand(8,5);X(:,4)=X(:,1)+X(:,2); [Q,R]=qr(X); R, R(:,4) + +//X has rank 2, rows 3 to $ of R are zero: +X=rand(8,2)*rand(2,5);[Q,R]=qr(X); R + +//Evaluating the rank rk: column pivoting ==> rk first +//diagonal entries of R are non zero : +A=rand(5,2)*rand(2,5); +[Q,R,rk,E] = qr(A,1.d-10); +norm(Q'*A-R) +svd([A,Q(:,1:rk)]) //span(A) =span(Q(:,1:rk)) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="rankqr">rankqr</link> + </member> + <member> + <link linkend="rank">rank</link> + </member> + <member> + <link linkend="svd">svd</link> + </member> + <member> + <link linkend="rowcomp">rowcomp</link> + </member> + <member> + <link linkend="colcomp">colcomp</link> + </member> + </simplelist> + </refsection> + <refsection> + <title>Used Functions</title> + <para> + qr decomposition is based the Lapack routines DGEQRF, DGEQPF, + DORGQR for the real matrices and ZGEQRF, ZGEQPF, ZORGQR for the + complex case. + </para> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/en_US/linear/rankqr.xml b/modules/linear_algebra/help/en_US/linear/rankqr.xml new file mode 100755 index 000000000..3532b3daa --- /dev/null +++ b/modules/linear_algebra/help/en_US/linear/rankqr.xml @@ -0,0 +1,150 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * 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 + * + --> +<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="rankqr"> + <refnamediv> + <refname>rankqr</refname> + <refpurpose>rank revealing QR factorization</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>[Q,R,JPVT,RANK,SVAL]=rankqr(A, [RCOND,JPVT])</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>A</term> + <listitem> + <para>real or complex matrix</para> + </listitem> + </varlistentry> + <varlistentry> + <term>RCOND</term> + <listitem> + <para>real number used to determine the effective rank of + <literal>A</literal>, which is defined as the order of the largest leading + triangular submatrix <literal>R11</literal> in the QR factorization with + pivoting of<literal>A</literal>, whose estimated condition number < + <literal>1/RCOND</literal>. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>JPVT</term> + <listitem> + <para> + integer vector on entry, if <literal>JPVT(i)</literal> is not 0, the + <literal>i</literal>-th column of <literal> A</literal> is permuted to the front + of <literal>AP</literal>, otherwise column <literal>i</literal> is a free + column. On exit, if <literal>JPVT(i) = k</literal>, then the + <literal>i</literal>-th column of <literal>A*P</literal> was the + <literal>k</literal>-th column of <literal>A</literal>. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>RANK</term> + <listitem> + <para> + the effective rank of <literal>A</literal>, i.e., the order of the + submatrix <literal>R11</literal>. This is the same as the order of the + submatrix <literal>T1</literal> in the complete orthogonal factorization + of <literal>A</literal>. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>SVAL</term> + <listitem> + <para>real vector with 3 components; The estimates of some of the + singular values of the triangular factor <literal>R</literal>. + </para> + <para> + <literal>SVAL(1)</literal> is the largest singular value of + <literal>R(1:RANK,1:RANK)</literal>; + </para> + <para> + <literal>SVAL(2)</literal> is the + smallest singular value of <literal>R(1:RANK,1:RANK)</literal>; + </para> + <para> + <literal>SVAL(3)</literal> is the smallest singular value of + <literal>R(1:RANK+1,1:RANK+1)</literal>, if <literal>RANK</literal> < <literal>MIN(M,N)</literal>, + or of <literal>R(1:RANK,1:RANK)</literal>, otherwise. + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + To compute (optionally) a rank-revealing QR factorization of a real + general M-by-N real or complex matrix <literal>A</literal>, which may be + rank-deficient, and estimate its effective rank using incremental + condition estimation. + </para> + <para> + The routine uses a QR factorization with column pivoting: + </para> + <programlisting role=""><![CDATA[ +A * P = Q * R, where R = [ R11 R12 ], + [ 0 R22 ] + ]]></programlisting> + <para> + with <literal>R11</literal> defined as the largest leading submatrix whose + estimated condition number is less than <literal>1/RCOND</literal>. The + order of <literal>R11</literal>, <literal>RANK</literal>, is the effective rank of + <literal>A</literal>. + </para> + <para> + If the triangular factorization is a rank-revealing one (which will be + the case if the leading columns were well- conditioned), then + <literal>SVAL(1)</literal> will also be an estimate for the largest singular + value of <literal>A</literal>, and <literal>SVAL(2)</literal> and + <literal>SVAL(3)</literal> will be estimates for the <literal>RANK</literal>-th + and <literal>(RANK+1)</literal>-st singular values of <literal>A</literal>, + respectively. + </para> + <para> + By examining these values, one can confirm that the + rank is well defined with respect to the chosen value of + <literal>RCOND</literal>. The ratio <literal>SVAL(1)/SVAL(2)</literal> is an + estimate of the condition number of <literal>R(1:RANK,1:RANK)</literal>. + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +A=rand(5,3)*rand(3,7); +[Q,R,JPVT,RANK,SVAL]=rankqr(A,%eps) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="qr">qr</link> + </member> + <member> + <link linkend="rank">rank</link> + </member> + </simplelist> + </refsection> + <refsection> + <title>Used Functions</title> + <para> + Slicot library routines MB03OD, ZB03OD. + </para> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/en_US/markov/CHAPTER b/modules/linear_algebra/help/en_US/markov/CHAPTER new file mode 100755 index 000000000..c29eb913c --- /dev/null +++ b/modules/linear_algebra/help/en_US/markov/CHAPTER @@ -0,0 +1,2 @@ +title = Markov Matrices + diff --git a/modules/linear_algebra/help/en_US/markov/classmarkov.xml b/modules/linear_algebra/help/en_US/markov/classmarkov.xml new file mode 100755 index 000000000..a80312508 --- /dev/null +++ b/modules/linear_algebra/help/en_US/markov/classmarkov.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) 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="classmarkov"> + <refnamediv> + <refname>classmarkov</refname> + <refpurpose>recurrent and transient classes of Markov matrix</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>[perm,rec,tr,indsRec,indsT]=classmarkov(M)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>M</term> + <listitem> + <para>real N x N Markov matrix. Sum of entries in each row should add to one.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>perm</term> + <listitem> + <para>integer permutation vector.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>rec, tr</term> + <listitem> + <para>integer vector, number (number of states in each recurrent classes, number of transient states).</para> + </listitem> + </varlistentry> + <varlistentry> + <term>indsRec,indsT</term> + <listitem> + <para>integer vectors. (Indexes of recurrent and transient states).</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + Returns a permutation vector <literal>perm</literal> such that + </para> + <programlisting role=""><![CDATA[ +M(perm,perm) = [M11 0 0 0 0 0] + [0 M22 0 0 0] + [0 0 M33 0] + [ ... ] + [0 0 Mrr 0] + [* * * Q] + ]]></programlisting> + <para> + Each <literal>Mii</literal> is a Markov matrix of dimension <literal>rec(i) i=1,..,r</literal>. + <literal>Q</literal> is sub-Markov matrix of dimension <literal>tr</literal>. + States 1 to sum(rec) are recurrent and states from r+1 to n + are transient. + One has <literal>perm=[indsRec,indsT]</literal> where indsRec is a vector of size sum(rec) + and indsT is a vector of size tr. + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +//P has two recurrent classes (with 2 and 1 states) 2 transient states +P=genmarkov([2,1],2,'perm') +[perm,rec,tr,indsRec,indsT]=classmarkov(P); +P(perm,perm) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="genmarkov">genmarkov</link> + </member> + <member> + <link linkend="eigenmarkov">eigenmarkov</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/en_US/markov/eigenmarkov.xml b/modules/linear_algebra/help/en_US/markov/eigenmarkov.xml new file mode 100755 index 000000000..950937188 --- /dev/null +++ b/modules/linear_algebra/help/en_US/markov/eigenmarkov.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) 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="eigenmarkov"> + <refnamediv> + <refname>eigenmarkov</refname> + <refpurpose>normalized left and right Markov eigenvectors</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>[M,Q]=eigenmarkov(P)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>P</term> + <listitem> + <para>real N x N Markov matrix. Sum of entries in each row should add to one.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>M</term> + <listitem> + <para>real matrix with N columns.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Q</term> + <listitem> + <para>real matrix with N rows.</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + Returns normalized left and right eigenvectors + associated with the eigenvalue 1 of the Markov transition matrix P. + If the multiplicity of this eigenvalue is m and P + is N x N, M is a m x N matrix and Q a N x m matrix. + M(k,:) is the probability distribution vector associated with the kth + ergodic set (recurrent class). M(k,x) is zero if x is not in the + k-th recurrent class. + Q(x,k) is the probability to end in the k-th recurrent class starting + from x. If <literal>P^k</literal> converges for large <literal>k</literal> (no eigenvalues on the + unit circle except 1), then the limit is <literal>Q*M</literal> (eigenprojection). + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +//P has two recurrent classes (with 2 and 1 states) 2 transient states +P=genmarkov([2,1],2) +[M,Q]=eigenmarkov(P); +P*Q-Q +Q*M-P^20 + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="genmarkov">genmarkov</link> + </member> + <member> + <link linkend="classmarkov">classmarkov</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/en_US/markov/genmarkov.xml b/modules/linear_algebra/help/en_US/markov/genmarkov.xml new file mode 100755 index 000000000..edf5baeeb --- /dev/null +++ b/modules/linear_algebra/help/en_US/markov/genmarkov.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) 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="genmarkov"> + <refnamediv> + <refname>genmarkov</refname> + <refpurpose>generates random markov matrix with recurrent and transient classes</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>M=genmarkov(rec,tr) + M=genmarkov(rec,tr,flag) + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>rec</term> + <listitem> + <para>integer row vector (its dimension is the number of recurrent classes).</para> + </listitem> + </varlistentry> + <varlistentry> + <term>tr</term> + <listitem> + <para>integer (number of transient states)</para> + </listitem> + </varlistentry> + <varlistentry> + <term>M</term> + <listitem> + <para>real Markov matrix. Sum of entries in each row should add to one.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>flag</term> + <listitem> + <para> + string <literal>'perm'</literal>. If given, a random permutation of the states is done. + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + Returns in M a random Markov transition probability matrix + with <literal>size(rec,1)</literal> recurrent classes with <literal>rec(1),...rec($)</literal> + entries respectively and tr transient states. + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +//P has two recurrent classes (with 2 and 1 states) 2 transient states +P=genmarkov([2,1],2,'perm') +[perm,rec,tr,indsRec,indsT]=classmarkov(P); +P(perm,perm) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="classmarkov">classmarkov</link> + </member> + <member> + <link linkend="eigenmarkov">eigenmarkov</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/en_US/matrix/CHAPTER b/modules/linear_algebra/help/en_US/matrix/CHAPTER new file mode 100755 index 000000000..bb89125cd --- /dev/null +++ b/modules/linear_algebra/help/en_US/matrix/CHAPTER @@ -0,0 +1,2 @@ +title = Matrix Analysis + diff --git a/modules/linear_algebra/help/en_US/matrix/cond.xml b/modules/linear_algebra/help/en_US/matrix/cond.xml new file mode 100755 index 000000000..4c85c76c1 --- /dev/null +++ b/modules/linear_algebra/help/en_US/matrix/cond.xml @@ -0,0 +1,158 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2008 - INRIA + * Copyright (C) 2012 - Scilab Enterprises - Adeline CARNIS + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<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="cond"> + <refnamediv> + <refname>cond</refname> + <refpurpose>condition number</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis> + c = cond(X) + c = cond(X, p) + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>X</term> + <listitem> + <para>real or complex matrix. If c = cond(X, p), X must be real or complex square matrix.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>p</term> + <listitem> + <para>scalar or string (type of norm) (default value = 2).</para> + </listitem> + </varlistentry> + <varlistentry> + <term>c</term> + <listitem> + <para>real scalar, the condition number.</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <variablelist> + <varlistentry> + <term>c = cond(X)</term> + <listitem> + <para> + returns condition number in 2-norm.<literal>cond(X)</literal> is the ratio of the + largest singular value of <literal>X</literal> to the smallest. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>c = cond(X, p)</term> + <listitem> + <para> + returns condition number in p-norm : <literal>norm(X, p) * norm(inv(X), p)</literal>. + If <literal>p</literal> is specified, <literal>p</literal> can be equal to : + </para> + <itemizedlist> + <listitem> + <para> + p = 1. <literal>cond(X, p)</literal> returns condition number in 1-norm. + </para> + </listitem> + <listitem> + <para> + p = 2. <literal>cond(X, p)</literal> returns condition number in 2-norm. + </para> + </listitem> + <listitem> + <para> + p = %inf or 'inf'. <literal>cond(X, p)</literal> returns condition number in infinity norm. + </para> + </listitem> + <listitem> + <para> + p = 'fro'. <literal>cond(X, p)</literal> returns condition number in Frobenius norm. + </para> + </listitem> + </itemizedlist> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"> + <![CDATA[ +A=testmatrix('hilb',6); +// condition number in 2-norm +cond(A) +cond(A, 2) + +// condition number in 1-norm +cond(A, 1) + +// condition number in infinity norm +cond(A, %inf) + +// condition number in Frobenius norm +cond(A, 'fro') + ]]> + </programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="rcond">rcond</link> + </member> + <member> + <link linkend="svd">svd</link> + </member> + <member> + <link linkend="norm">norm</link> + </member> + </simplelist> + </refsection> + <refsection> + <title>History</title> + <revhistory> + <revision> + <revnumber>5.4.0</revnumber> + <revdescription> + <para> + Calling <literal>cond(X)</literal>, where <literal>X</literal> is + non square matrix, is now managed. For example: + </para> + <programlisting role=""> + <![CDATA[ +X = [1 0; 1 -1; 0 1]; +cond(X) + ]]> + </programlisting> + <para> + Calling <literal>cond(X, p)</literal> allows to calculate p-norm + condition number. For example: + </para> + <programlisting role=""> + <![CDATA[ +X = [1 -6 0; 1 0 -4;1 0 2]; +cond(X, 1) // condition number in 1-norm (p = 1) + ]]> + </programlisting> + </revdescription> + </revision> + </revhistory> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/en_US/matrix/det.xml b/modules/linear_algebra/help/en_US/matrix/det.xml new file mode 100755 index 000000000..10d6965a0 --- /dev/null +++ b/modules/linear_algebra/help/en_US/matrix/det.xml @@ -0,0 +1,104 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * 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 + * + --> +<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="det"> + <refnamediv> + <refname>det</refname> + <refpurpose>determinant</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>det(X) + [e,m]=det(X) + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>X</term> + <listitem> + <para>real or complex square matrix, polynomial or rational matrix.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>m</term> + <listitem> + <para>real or complex number, the determinant base 10 mantissae</para> + </listitem> + </varlistentry> + <varlistentry> + <term>e</term> + <listitem> + <para>integer, the determinant base 10 exponent</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal>det(X)</literal> ( <literal>m*10^e</literal> is the determinant of the square matrix <literal>X</literal>. + </para> + <para> + For polynomial matrix <literal>det(X)</literal> is equivalent to <literal>determ(X)</literal>. + </para> + <para> + For rational matrices <literal>det(X)</literal> is equivalent to <literal>detr(X)</literal>. + </para> + <para> + <important> + The <literal>det</literal> and <literal>detr</literal> functions don't use the same algorithm. + For a rational fraction, <literal>det(X)</literal> is overloaded by <literal>%r_det(X)</literal> which is based on the <literal>determ</literal> function. + <literal>detr()</literal> uses the Leverrier method. + </important> + <warning> + Sometimes the <literal>det</literal> and <literal>detr</literal> functions may return different values for rational matrices. + In such cases you should set rational simplification mode off by using <code>simp_mode(%f)</code> to get the same result. + </warning> + </para> + </refsection> + <refsection> + <title>References</title> + <para> + det computations are based on the Lapack routines + DGETRF for real matrices and ZGETRF for the complex case. + </para> + <para> + Concerning sparse matrices, the determinant is obtained from LU factorization of umfpack library. + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +x=poly(0,'x'); +det([x,1+x;2-x,x^2]) +w=ssrand(2,2,4);roots(det(systmat(w))),trzeros(w) //zeros of linear system +A=rand(3,3); +det(A), prod(spec(A)) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="detr">detr</link> + </member> + <member> + <link linkend="determ">determ</link> + </member> + <member> + <link linkend="simp_mode">simp_mode</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/en_US/matrix/orth.xml b/modules/linear_algebra/help/en_US/matrix/orth.xml new file mode 100755 index 000000000..a0c7c36eb --- /dev/null +++ b/modules/linear_algebra/help/en_US/matrix/orth.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) 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="orth"> + <refnamediv> + <refname>orth</refname> + <refpurpose>orthogonal basis</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>Q=orth(A)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>A</term> + <listitem> + <para>real or complex matrix</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Q</term> + <listitem> + <para>real or complex matrix</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal>Q=orth(A)</literal> returns <literal>Q</literal>, an orthogonal + basis for the span of <literal>A</literal>. Range(<literal>Q</literal>) = + Range(<literal>A</literal>) and <literal>Q'*Q=eye</literal>. + </para> + <para> + The number of columns of <literal>Q</literal> is the rank of + <literal>A</literal> as determined by the QR algorithm. + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +A=rand(5,3)*rand(3,4); +[X,dim]=rowcomp(A);X=X'; +svd([orth(A),X(:,1:dim)]) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="qr">qr</link> + </member> + <member> + <link linkend="rowcomp">rowcomp</link> + </member> + <member> + <link linkend="colcomp">colcomp</link> + </member> + <member> + <link linkend="range">range</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/en_US/matrix/rank.xml b/modules/linear_algebra/help/en_US/matrix/rank.xml new file mode 100755 index 000000000..ec651a774 --- /dev/null +++ b/modules/linear_algebra/help/en_US/matrix/rank.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) 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="rank"> + <refnamediv> + <refname>rank</refname> + <refpurpose>rank</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>[i]=rank(X) + [i]=rank(X,tol) + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>X</term> + <listitem> + <para>real or complex matrix</para> + </listitem> + </varlistentry> + <varlistentry> + <term>tol</term> + <listitem> + <para>nonnegative real number</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal>rank(X)</literal> is the numerical rank of <literal>X</literal> + i.e. the number of singular values of X that are larger than + <literal>norm(size(X),'inf') * norm(X) * %eps</literal>. + </para> + <para> + <literal>rank(X,tol)</literal> is the number of singular values of + <literal>X</literal> that are larger than <literal>tol</literal>. + </para> + <para> + <note> + Note that the default value of <literal>tol</literal> is proportional to + <literal>norm(X)</literal>. As a consequence + <literal>rank([1.d-80,0;0,1.d-80])</literal> is 2 !. + </note> + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +rank([1.d-80,0;0,1.d-80]) +rank([1,0;0,1.d-80]) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="svd">svd</link> + </member> + <member> + <link linkend="qr">qr</link> + </member> + <member> + <link linkend="rowcomp">rowcomp</link> + </member> + <member> + <link linkend="colcomp">colcomp</link> + </member> + <member> + <link linkend="lu">lu</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/en_US/matrix/rcond.xml b/modules/linear_algebra/help/en_US/matrix/rcond.xml new file mode 100755 index 000000000..4d95cb28d --- /dev/null +++ b/modules/linear_algebra/help/en_US/matrix/rcond.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) 2008 - INRIA + * Copyright (C) 2010 - 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: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="rcond"> + <refnamediv> + <refname>rcond</refname> + <refpurpose>inverse condition number</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>rcond(X)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>X</term> + <listitem> + <para>real or complex square matrix</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal>rcond(X)</literal> is an estimate for the reciprocal of the + condition of <literal>X</literal> in the 1-norm. + </para> + <para> + If <literal>X</literal> is well conditioned, <literal>rcond(X)</literal> is close to 1. + If not, <literal>rcond(X)</literal> is close to 0. + </para> + <para> + We compute the 1-norm of A with Lapack/DLANGE, compute its LU decomposition with Lapack/DGETRF + and finally estimate the condition with Lapack/DGECON. + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +A=diag([1:10]); +rcond(A) +A(1,1)=0.000001; +rcond(A) + ]]></programlisting> + <para> + Estimating the 1-norm inverse condition number with <literal>rcond</literal> is + much faster than computing the 2-norm condition number with <literal>cond</literal>. + As a trade-off, <literal>rcond</literal> may be less reliable. + </para> + <programlisting role="example"><![CDATA[ + A=ones(1000,1000); + timer();cond(A);timer() + timer();1/rcond(A);timer() + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="svd">svd</link> + </member> + <member> + <link linkend="cond">cond</link> + </member> + <member> + <link linkend="inv">inv</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/en_US/matrix/rref.xml b/modules/linear_algebra/help/en_US/matrix/rref.xml new file mode 100755 index 000000000..d2d1f7774 --- /dev/null +++ b/modules/linear_algebra/help/en_US/matrix/rref.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) 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="rref"> + <refnamediv> + <refname>rref</refname> + <refpurpose>computes matrix row echelon form by lu transformations</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>R=rref(A)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>A</term> + <listitem> + <para> m x n matrix with scalar entries</para> + </listitem> + </varlistentry> + <varlistentry> + <term>R</term> + <listitem> + <para> m x n matrix,row echelon form of a</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal>rref</literal> computes the row echelon form of the given matrix by left lu + decomposition. If ones need the transformation used just call + <literal>X=rref([A,eye(m,m)])</literal> the row echelon form <literal>R</literal> is <literal>X(:,1:n)</literal> and + the left transformation <literal>L</literal> is given by <literal>X(:,n+1:n+m)</literal> such as <literal>L*A=R</literal> + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +A=[1 2;3 4;5 6]; +X=rref([A,eye(3,3)]); +R=X(:,1:2) +L=X(:,3:5);L*A + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="lu">lu</link> + </member> + <member> + <link linkend="qr">qr</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/en_US/matrix/trace.xml b/modules/linear_algebra/help/en_US/matrix/trace.xml new file mode 100755 index 000000000..84ba1e20c --- /dev/null +++ b/modules/linear_algebra/help/en_US/matrix/trace.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) 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="trace"> + <refnamediv> + <refname>trace</refname> + <refpurpose>trace</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>trace(X)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>X</term> + <listitem> + <para>real or complex square matrix, polynomial or rational matrix.</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal>trace(X)</literal> is the trace of the matrix <literal>X</literal>. + </para> + <para> + Same as <literal>sum(diag(X))</literal>. + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +A=rand(3,3); +trace(A)-sum(spec(A)) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="det">det</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/en_US/pencil/CHAPTER b/modules/linear_algebra/help/en_US/pencil/CHAPTER new file mode 100755 index 000000000..86d1da116 --- /dev/null +++ b/modules/linear_algebra/help/en_US/pencil/CHAPTER @@ -0,0 +1,2 @@ +title = Matrix Pencil + diff --git a/modules/linear_algebra/help/en_US/pencil/companion.xml b/modules/linear_algebra/help/en_US/pencil/companion.xml new file mode 100755 index 000000000..0509be671 --- /dev/null +++ b/modules/linear_algebra/help/en_US/pencil/companion.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) 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="companion"> + <refnamediv> + <refname>companion</refname> + <refpurpose>companion matrix</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>A=companion(p)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>p</term> + <listitem> + <para>polynomial or vector of polynomials</para> + </listitem> + </varlistentry> + <varlistentry> + <term>A</term> + <listitem> + <para>square matrix</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + Returns a matrix <literal>A</literal> with characteristic polynomial equal + to <literal>p</literal> if <literal>p</literal> is monic. If <literal>p</literal> is not monic + the characteristic polynomial of <literal>A</literal> is equal to + <literal>p/c</literal> where <literal>c</literal> is the coefficient of largest degree + in <literal>p</literal>. + </para> + <para> + If <literal>p</literal> is a vector of monic polynomials, <literal>A</literal> is block diagonal, + and the characteristic polynomial of the ith block is <literal>p(i)</literal>. + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +s=poly(0,'s'); +p=poly([1,2,3,4,1],'s','c') +det(s*eye()-companion(p)) +roots(p) +spec(companion(p)) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="spec">spec</link> + </member> + <member> + <link linkend="poly">poly</link> + </member> + <member> + <link linkend="randpencil">randpencil</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/en_US/pencil/ereduc.xml b/modules/linear_algebra/help/en_US/pencil/ereduc.xml new file mode 100755 index 000000000..40a83b693 --- /dev/null +++ b/modules/linear_algebra/help/en_US/pencil/ereduc.xml @@ -0,0 +1,114 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * 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 + * + --> +<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="ereduc"> + <refnamediv> + <refname>ereduc</refname> + <refpurpose>computes matrix column echelon form by qz transformations</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>[E,Q,Z [,stair [,rk]]]=ereduc(X,tol)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>X</term> + <listitem> + <para>m x n matrix with real entries.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>tol</term> + <listitem> + <para>real positive scalar.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>E</term> + <listitem> + <para>column echelon form matrix</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Q</term> + <listitem> + <para>m x m unitary matrix</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Z</term> + <listitem> + <para>n x n unitary matrix</para> + </listitem> + </varlistentry> + <varlistentry> + <term>stair</term> + <listitem> + <para>vector of indexes,</para> + <variablelist> + <varlistentry> + <term>* </term> + <listitem> + <para> + <literal>ISTAIR(i) = + j</literal> if the boundary element <literal>E(i,j)</literal> is a corner point. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>* </term> + <listitem> + <para> + <literal>ISTAIR(i) = - j</literal> if the boundary element <literal>E(i,j)</literal> is not a corner point. + </para> + </listitem> + </varlistentry> + </variablelist> + <para> + <literal>(i=1,...,M)</literal> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>rk</term> + <listitem> + <para>integer, estimated rank of the matrix</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + Given an <literal>m x n</literal> matrix <literal>X</literal> (not necessarily regular) the function + ereduc computes a unitary transformed matrix <literal>E=Q*X*Z</literal> which is in + column echelon form (trapezoidal form). Furthermore the rank of + matrix <literal>X</literal> is determined. + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +X=[1 2 3;4 5 6] +[E,Q,Z ,stair ,rk]=ereduc(X,1.d-15) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="fstair">fstair</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/en_US/pencil/fstair.xml b/modules/linear_algebra/help/en_US/pencil/fstair.xml new file mode 100755 index 000000000..9d43f915b --- /dev/null +++ b/modules/linear_algebra/help/en_US/pencil/fstair.xml @@ -0,0 +1,157 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * 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 + * + --> +<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="fstair"> + <refnamediv> + <refname>fstair</refname> + <refpurpose>computes pencil column echelon form by qz transformations</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>[AE,EE,QE,ZE,blcks,muk,nuk,muk0,nuk0,mnei]=fstair(A,E,Q,Z,stair,rk,tol)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>A</term> + <listitem> + <para>m x n matrix with real entries.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>tol</term> + <listitem> + <para>real positive scalar.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>E</term> + <listitem> + <para>column echelon form matrix</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Q</term> + <listitem> + <para>m x m unitary matrix</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Z</term> + <listitem> + <para>n x n unitary matrix</para> + </listitem> + </varlistentry> + <varlistentry> + <term>stair</term> + <listitem> + <para>vector of indexes (see ereduc)</para> + </listitem> + </varlistentry> + <varlistentry> + <term>rk</term> + <listitem> + <para>integer, estimated rank of the matrix</para> + </listitem> + </varlistentry> + <varlistentry> + <term>AE</term> + <listitem> + <para>m x n matrix with real entries.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>EE</term> + <listitem> + <para>column echelon form matrix</para> + </listitem> + </varlistentry> + <varlistentry> + <term>QE</term> + <listitem> + <para>m x m unitary matrix</para> + </listitem> + </varlistentry> + <varlistentry> + <term>ZE</term> + <listitem> + <para>n x n unitary matrix</para> + </listitem> + </varlistentry> + <varlistentry> + <term>nblcks</term> + <listitem> + <para> + is the number of submatrices having full row rank >= 0 detected in matrix <literal>A</literal>. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>muk: </term> + <listitem> + <para>integer array of dimension (n). Contains the column dimensions mu(k) (k=1,...,nblcks) of the submatrices having full column rank in the pencil sE(eps)-A(eps)</para> + </listitem> + </varlistentry> + <varlistentry> + <term>nuk: </term> + <listitem> + <para>integer array of dimension (m+1). Contains the row dimensions nu(k) (k=1,...,nblcks) of the submatrices having full row rank in the pencil sE(eps)-A(eps)</para> + </listitem> + </varlistentry> + <varlistentry> + <term>muk0: </term> + <listitem> + <para>integer array of dimension (n). Contains the column dimensions mu(k) (k=1,...,nblcks) of the submatrices having full column rank in the pencil sE(eps,inf)-A(eps,inf)</para> + </listitem> + </varlistentry> + <varlistentry> + <term>nuk: </term> + <listitem> + <para>integer array of dimension (m+1). Contains the row dimensions nu(k) (k=1,...,nblcks) of the submatrices having full row rank in the pencil sE(eps,inf)-A(eps,inf)</para> + </listitem> + </varlistentry> + <varlistentry> + <term>mnei: </term> + <listitem> + <para>integer array of dimension (4). mnei(1) = row dimension of sE(eps)-A(eps)</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + Given a pencil <literal>sE-A</literal> where matrix <literal>E</literal> is in column echelon form the + function <literal>fstair</literal> computes according to the wishes of the user a + unitary transformed pencil <literal>QE(sEE-AE)ZE</literal> which is more or less similar + to the generalized Schur form of the pencil <literal>sE-A</literal>. + The function yields also part of the Kronecker structure of + the given pencil. + </para> + <para> + <literal>Q,Z</literal> are the unitary matrices used to compute the pencil where E + is in column echelon form (see ereduc) + </para> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="quaskro">quaskro</link> + </member> + <member> + <link linkend="ereduc">ereduc</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/en_US/pencil/glever.xml b/modules/linear_algebra/help/en_US/pencil/glever.xml new file mode 100755 index 000000000..cd3d577df --- /dev/null +++ b/modules/linear_algebra/help/en_US/pencil/glever.xml @@ -0,0 +1,118 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * 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 + * + --> +<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="glever"> + <refnamediv> + <refname>glever</refname> + <refpurpose>inverse of matrix pencil</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>[Bfs,Bis,chis]=glever(E,A [,s])</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>E, A</term> + <listitem> + <para>two real square matrices of same dimensions</para> + </listitem> + </varlistentry> + <varlistentry> + <term>s</term> + <listitem> + <para> + character string (default value '<literal>s</literal>') + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Bfs,Bis</term> + <listitem> + <para>two polynomial matrices</para> + </listitem> + </varlistentry> + <varlistentry> + <term>chis</term> + <listitem> + <para>polynomial</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + Computation of + </para> + <para> + <literal>(s*E-A)^-1</literal> + </para> + <para> + by generalized Leverrier's algorithm for a matrix pencil. + </para> + <programlisting role=""><![CDATA[ +(s*E-A)^-1 = (Bfs/chis) - Bis. + ]]></programlisting> + <para> + <literal>chis</literal> = characteristic polynomial (up to a multiplicative constant). + </para> + <para> + <literal>Bfs</literal> = numerator polynomial matrix. + </para> + <para> + <literal>Bis</literal> + = polynomial matrix ( - expansion of <literal>(s*E-A)^-1</literal> at infinity). + </para> + <para> + Note the - sign before <literal>Bis</literal>. + </para> + </refsection> + <refsection> + <title>Caution</title> + <para> + This function uses <literal>cleanp</literal> to simplify <literal>Bfs,Bis</literal> and <literal>chis</literal>. + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +s=%s;F=[-1,s,0,0;0,-1,0,0;0,0,s-2,0;0,0,0,s-1]; +[Bfs,Bis,chis]=glever(F) +inv(F)-((Bfs/chis) - Bis) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="rowshuff">rowshuff</link> + </member> + <member> + <link linkend="det">det</link> + </member> + <member> + <link linkend="invr">invr</link> + </member> + <member> + <link linkend="coffg">coffg</link> + </member> + <member> + <link linkend="pencan">pencan</link> + </member> + <member> + <link linkend="penlaur">penlaur</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/en_US/pencil/kroneck.xml b/modules/linear_algebra/help/en_US/pencil/kroneck.xml new file mode 100755 index 000000000..68488e0e7 --- /dev/null +++ b/modules/linear_algebra/help/en_US/pencil/kroneck.xml @@ -0,0 +1,159 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * 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 + * + --> +<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="kroneck"> + <refnamediv> + <refname>kroneck</refname> + <refpurpose>Kronecker form of matrix pencil</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>[Q,Z,Qd,Zd,numbeps,numbeta]=kroneck(F) + [Q,Z,Qd,Zd,numbeps,numbeta]=kroneck(E,A) + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>F</term> + <listitem> + <para> + real matrix pencil <literal>F=s*E-A</literal> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>E,A</term> + <listitem> + <para>two real matrices of same dimensions</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Q,Z</term> + <listitem> + <para>two square orthogonal matrices</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Qd,Zd</term> + <listitem> + <para>two vectors of integers</para> + </listitem> + </varlistentry> + <varlistentry> + <term>numbeps,numeta</term> + <listitem> + <para>two vectors of integers</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + Kronecker form of matrix pencil: <literal>kroneck</literal> computes two + orthogonal matrices <literal>Q, Z</literal> which put the pencil <literal>F=s*E -A</literal> into + upper-triangular form: + </para> + <programlisting role=""><![CDATA[ + | sE(eps)-A(eps) | X | X | X | + |----------------|----------------|------------|---------------| + | O | sE(inf)-A(inf) | X | X | +Q(sE-A)Z = |---------------------------------|----------------------------| + | | | | | + | 0 | 0 | sE(f)-A(f) | X | + |--------------------------------------------------------------| + | | | | | + | 0 | 0 | 0 | sE(eta)-A(eta)| + ]]></programlisting> + <para> + The dimensions of the four blocks are given by: + </para> + <para> + <literal>eps=Qd(1) x Zd(1)</literal>, <literal>inf=Qd(2) x Zd(2)</literal>, + <literal>f = Qd(3) x Zd(3)</literal>, <literal>eta=Qd(4)xZd(4)</literal> + </para> + <para> + The <literal>inf</literal> block contains the infinite modes of + the pencil. + </para> + <para> + The <literal>f</literal> block contains the finite modes of + the pencil + </para> + <para> + The structure of epsilon and eta blocks are given by: + </para> + <para> + <literal>numbeps(1)</literal> = <literal>#</literal> of eps blocks of size 0 x 1 + </para> + <para> + <literal>numbeps(2)</literal> = <literal>#</literal> of eps blocks of size 1 x 2 + </para> + <para> + <literal>numbeps(3)</literal> = <literal>#</literal> of eps blocks of size 2 x 3 etc... + </para> + <para> + <literal>numbeta(1)</literal> = <literal>#</literal> of eta blocks of size 1 x 0 + </para> + <para> + <literal>numbeta(2)</literal> = <literal>#</literal> of eta blocks of size 2 x 1 + </para> + <para> + <literal>numbeta(3)</literal> = <literal>#</literal> of eta blocks of size 3 x 2 etc... + </para> + <para> + The code is taken from T. Beelen (Slicot-WGS group). + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +F=randpencil([1,1,2],[2,3],[-1,3,1],[0,3]); +Q=rand(17,17);Z=rand(18,18);F=Q*F*Z; +//random pencil with eps1=1,eps2=1,eps3=1; 2 J-blocks @ infty +//with dimensions 2 and 3 +//3 finite eigenvalues at -1,3,1 and eta1=0,eta2=3 +[Q,Z,Qd,Zd,numbeps,numbeta]=kroneck(F); +[Qd(1),Zd(1)] //eps. part is sum(epsi) x (sum(epsi) + number of epsi) +[Qd(2),Zd(2)] //infinity part +[Qd(3),Zd(3)] //finite part +[Qd(4),Zd(4)] //eta part is (sum(etai) + number(eta1)) x sum(etai) +numbeps +numbeta + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="gschur">gschur</link> + </member> + <member> + <link linkend="gspec">gspec</link> + </member> + <member> + <link linkend="systmat">systmat</link> + </member> + <member> + <link linkend="pencan">pencan</link> + </member> + <member> + <link linkend="randpencil">randpencil</link> + </member> + <member> + <link linkend="trzeros">trzeros</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/en_US/pencil/lyap.xml b/modules/linear_algebra/help/en_US/pencil/lyap.xml new file mode 100755 index 000000000..46874bc8e --- /dev/null +++ b/modules/linear_algebra/help/en_US/pencil/lyap.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) 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="lyap"> + <refnamediv> + <refname>lyap</refname> + <refpurpose>Lyapunov equation</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>[X]=lyap(A,C,'c') + [X]=lyap(A,C,'d') + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>A, C</term> + <listitem> + <para> + real square matrices, <literal>C</literal> must be symmetric + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal>X= lyap(A,C,flag)</literal> solves the continuous time or + discrete time matrix Lyapunov matrix equation: + </para> + <programlisting role=""><![CDATA[ +A'*X + X*A = C ( flag='c' ) +A'*X*A - X = C ( flag='d' ) + ]]></programlisting> + <para> + <note> + Note that a unique solution exist if and only if an eigenvalue of <literal>A</literal> is + not an eigenvalue of <literal>-A</literal> (<literal>flag='c'</literal>) or 1 over an eigenvalue of <literal>A</literal> + (<literal>flag='d'</literal>). + </note> + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +A=rand(4,4);C=rand(A);C=C+C'; +X=lyap(A,C,'c'); +A'*X + X*A -C +X=lyap(A,C,'d'); +A'*X*A - X -C + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="sylv">sylv</link> + </member> + <member> + <link linkend="ctr_gram">ctr_gram</link> + </member> + <member> + <link linkend="obs_gram">obs_gram</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/en_US/pencil/pencan.xml b/modules/linear_algebra/help/en_US/pencil/pencan.xml new file mode 100755 index 000000000..77a19a64e --- /dev/null +++ b/modules/linear_algebra/help/en_US/pencil/pencan.xml @@ -0,0 +1,105 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * 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 + * + --> +<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="pencan"> + <refnamediv> + <refname>pencan</refname> + <refpurpose>canonical form of matrix pencil</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>[Q,M,i1]=pencan(Fs) + [Q,M,i1]=pencan(E,A) + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>Fs</term> + <listitem> + <para> + a regular pencil <literal>s*E-A</literal> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>E,A</term> + <listitem> + <para>two real square matrices</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Q,M</term> + <listitem> + <para>two non-singular real matrices</para> + </listitem> + </varlistentry> + <varlistentry> + <term>i1</term> + <listitem> + <para>integer</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + Given the regular pencil <literal>Fs=s*E-A</literal>, <literal>pencan</literal> returns matrices <literal>Q</literal> + and <literal>M</literal> + such than <literal>M*(s*E-A)*Q</literal> is in "canonical" form. + </para> + <para> + <literal>M*E*Q</literal> is a block matrix + </para> + <programlisting role=""><![CDATA[ +[I,0; + 0,N] + ]]></programlisting> + <para> + with <literal>N</literal> nilpotent and <literal>i1</literal> = size of the <literal>I</literal> matrix above. + </para> + <para> + <literal>M*A*Q</literal> is a block matrix: + </para> + <programlisting role=""><![CDATA[ +[Ar,0; + 0,I] + ]]></programlisting> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +F=randpencil([],[1,2],[1,2,3],[]); +F=rand(6,6)*F*rand(6,6); +[Q,M,i1]=pencan(F); +W=clean(M*F*Q) +roots(det(W(1:i1,1:i1))) +det(W($-2:$,$-2:$)) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="glever">glever</link> + </member> + <member> + <link linkend="penlaur">penlaur</link> + </member> + <member> + <link linkend="rowshuff">rowshuff</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/en_US/pencil/penlaur.xml b/modules/linear_algebra/help/en_US/pencil/penlaur.xml new file mode 100755 index 000000000..00392641b --- /dev/null +++ b/modules/linear_algebra/help/en_US/pencil/penlaur.xml @@ -0,0 +1,114 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * 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 + * + --> +<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="penlaur"> + <refnamediv> + <refname>penlaur</refname> + <refpurpose>Laurent coefficients of matrix pencil</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>[Si,Pi,Di,order]=penlaur(Fs) + [Si,Pi,Di,order]=penlaur(E,A) + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>Fs</term> + <listitem> + <para> + a regular pencil <literal>s*E-A</literal> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>E, A</term> + <listitem> + <para>two real square matrices</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Si,Pi,Di</term> + <listitem> + <para>three real square matrices</para> + </listitem> + </varlistentry> + <varlistentry> + <term>order</term> + <listitem> + <para>integer</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal>penlaur</literal> computes the first Laurent coefficients of <literal>(s*E-A)^-1</literal> at + infinity. + </para> + <para> + <literal>(s*E-A)^-1 = ... + Si/s - Pi - s*Di + ...</literal> at <literal>s</literal> = infinity. + </para> + <para> + <literal>order</literal> = order of the singularity (order=index-1). + </para> + <para> + The matrix pencil <literal>Fs=s*E-A</literal> should be invertible. + </para> + <para> + For a index-zero pencil, <literal>Pi, Di,...</literal> are zero and <literal>Si=inv(E)</literal>. + </para> + <para> + For a index-one pencil (order=0),<literal>Di</literal> =0. + </para> + <para> + For higher-index pencils, the terms <literal> -s^2 Di(2), -s^3 Di(3),... </literal> are given by: + </para> + <para> + <literal> Di(2)=Di*A*Di</literal>, <literal> Di(3)=Di*A*Di*A*Di</literal> (up + to <literal>Di(order)</literal>). + </para> + </refsection> + <refsection> + <title>Remark</title> + <para> + Experimental version: troubles when bad conditioning of <literal>so*E-A</literal> + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +F=randpencil([],[1,2],[1,2,3],[]); +F=rand(6,6)*F*rand(6,6);[E,A]=pen2ea(F); +[Si,Pi,Di]=penlaur(F); +[Bfs,Bis,chis]=glever(F); +norm(coeff(Bis,1)-Di,1) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="glever">glever</link> + </member> + <member> + <link linkend="pencan">pencan</link> + </member> + <member> + <link linkend="rowshuff">rowshuff</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/en_US/pencil/quaskro.xml b/modules/linear_algebra/help/en_US/pencil/quaskro.xml new file mode 100755 index 000000000..d16e81dcd --- /dev/null +++ b/modules/linear_algebra/help/en_US/pencil/quaskro.xml @@ -0,0 +1,134 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * 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 + * + --> +<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="quaskro"> + <refnamediv> + <refname>quaskro</refname> + <refpurpose>quasi-Kronecker form</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>[Q,Z,Qd,Zd,numbeps,numbeta]=quaskro(F) + [Q,Z,Qd,Zd,numbeps,numbeta]=quaskro(E,A) + [Q,Z,Qd,Zd,numbeps,numbeta]=quaskro(F,tol) + [Q,Z,Qd,Zd,numbeps,numbeta]=quaskro(E,A,tol) + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>F</term> + <listitem> + <para> + real matrix pencil <literal>F=s*E-A</literal> (<literal>s=poly(0,'s')</literal>) + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>E,A</term> + <listitem> + <para>two real matrices of same dimensions</para> + </listitem> + </varlistentry> + <varlistentry> + <term>tol</term> + <listitem> + <para>a real number (tolerance, default value=1.d-10)</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Q,Z</term> + <listitem> + <para>two square orthogonal matrices</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Qd,Zd</term> + <listitem> + <para>two vectors of integers</para> + </listitem> + </varlistentry> + <varlistentry> + <term>numbeps</term> + <listitem> + <para>vector of integers</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + Quasi-Kronecker form of matrix pencil: <literal>quaskro</literal> computes two + orthogonal matrices <literal>Q, Z</literal> which put the pencil <literal>F=s*E -A</literal> into + upper-triangular form: + </para> + <programlisting role=""><![CDATA[ + | sE(eps)-A(eps) | X | X | + |----------------|----------------|------------| + | O | sE(inf)-A(inf) | X | +Q(sE-A)Z = |=================================|============| + | | | + | O | sE(r)-A(r) | + ]]></programlisting> + <para> + The dimensions of the blocks are given by: + </para> + <para> + <literal>eps=Qd(1) x Zd(1)</literal>, <literal>inf=Qd(2) x Zd(2)</literal>, + <literal>r = Qd(3) x Zd(3)</literal> + </para> + <para> + The <literal>inf</literal> block contains the infinite modes of + the pencil. + </para> + <para> + The <literal>f</literal> block contains the finite modes of + the pencil + </para> + <para> + The structure of epsilon blocks are given by: + </para> + <para> + <literal>numbeps(1)</literal> = <literal>#</literal> of eps blocks of size 0 x 1 + </para> + <para> + <literal>numbeps(2)</literal> = <literal>#</literal> of eps blocks of size 1 x 2 + </para> + <para> + <literal>numbeps(3)</literal> = <literal>#</literal> of eps blocks of size 2 x 3 etc... + </para> + <para> + The complete (four blocks) Kronecker form is given by + the function <literal>kroneck</literal> which calls <literal>quaskro</literal> on + the (pertransposed) pencil <literal>sE(r)-A(r)</literal>. + </para> + <para> + The code is taken from T. Beelen + </para> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="kroneck">kroneck</link> + </member> + <member> + <link linkend="gschur">gschur</link> + </member> + <member> + <link linkend="gspec">gspec</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/en_US/pencil/randpencil.xml b/modules/linear_algebra/help/en_US/pencil/randpencil.xml new file mode 100755 index 000000000..c60dd7a9a --- /dev/null +++ b/modules/linear_algebra/help/en_US/pencil/randpencil.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) 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="randpencil"> + <refnamediv> + <refname>randpencil</refname> + <refpurpose>random pencil</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>F=randpencil(eps,infi,fin,eta)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>eps</term> + <listitem> + <para>vector of integers</para> + </listitem> + </varlistentry> + <varlistentry> + <term>infi</term> + <listitem> + <para>vector of integers</para> + </listitem> + </varlistentry> + <varlistentry> + <term>fin</term> + <listitem> + <para>real vector, or monic polynomial, or vector of monic polynomial</para> + </listitem> + </varlistentry> + <varlistentry> + <term>eta</term> + <listitem> + <para>vector of integers</para> + </listitem> + </varlistentry> + <varlistentry> + <term>F</term> + <listitem> + <para> + real matrix pencil <literal>F=s*E-A</literal> (<literal>s=poly(0,'s')</literal>) + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + Utility function. + <literal>F=randpencil(eps,infi,fin,eta)</literal> returns a random pencil <literal>F</literal> + with given Kronecker structure. The structure is given by: + <literal>eps=[eps1,...,epsk]</literal>: structure of epsilon blocks (size eps1x(eps1+1),....) + <literal>fin=[l1,...,ln]</literal> set of finite eigenvalues (assumed real) (possibly []) + <literal>infi=[k1,...,kp]</literal> size of J-blocks at infinity + <literal>ki>=1</literal> (infi=[] if no J blocks). + <literal>eta=[eta1,...,etap]</literal>: structure ofeta blocks (size eta1+1)xeta1,...) + </para> + <para> + <literal>epsi</literal>'s should be >=0, <literal>etai</literal>'s should be >=0, <literal>infi</literal>'s should + be >=1. + </para> + <para> + If <literal>fin</literal> is a (monic) polynomial, the finite block admits the roots of + <literal>fin</literal> as eigenvalues. + </para> + <para> + If <literal>fin</literal> is a vector of polynomial, they are the finite elementary + divisors of <literal>F</literal> i.e. the roots of <literal>p(i)</literal> are finite + eigenvalues of <literal>F</literal>. + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +F=randpencil([0,1],[2],[-1,0,1],[3]); +[Q,Z,Qd,Zd,numbeps,numbeta]=kroneck(F); +Qd, Zd +s=poly(0,'s'); +F=randpencil([],[1,2],s^3-2,[]); //regular pencil +det(F) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="kroneck">kroneck</link> + </member> + <member> + <link linkend="pencan">pencan</link> + </member> + <member> + <link linkend="penlaur">penlaur</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/en_US/pencil/rowshuff.xml b/modules/linear_algebra/help/en_US/pencil/rowshuff.xml new file mode 100755 index 000000000..713c0a70f --- /dev/null +++ b/modules/linear_algebra/help/en_US/pencil/rowshuff.xml @@ -0,0 +1,103 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * 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 + * + --> +<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="rowshuff"> + <refnamediv> + <refname>rowshuff</refname> + <refpurpose>shuffle algorithm</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>[Ws,Fs1]=rowshuff(Fs, [alfa])</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>Fs</term> + <listitem> + <para> + square real pencil <literal>Fs = s*E-A</literal> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Ws</term> + <listitem> + <para>polynomial matrix</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Fs1</term> + <listitem> + <para> + square real pencil <literal>F1s = s*E1 -A1</literal> with <literal>E1</literal> non-singular + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>alfa</term> + <listitem> + <para> + real number (<literal>alfa = 0</literal> is the default value) + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + Shuffle algorithm: Given the pencil <literal>Fs=s*E-A</literal>, returns Ws=W(s) + (square polynomial matrix) such that: + </para> + <para> + <literal> Fs1 = s*E1-A1 = W(s)*(s*E-A) </literal> is a pencil with non singular <literal>E1</literal> matrix. + </para> + <para> + This is possible iff the pencil <literal>Fs = s*E-A</literal> is regular (i.e. invertible). + The degree of <literal>Ws</literal> is equal to the index of the pencil. + </para> + <para> + The poles at infinity of <literal>Fs</literal> are put to <literal>alfa</literal> and the zeros of <literal>Ws</literal> are at <literal>alfa</literal>. + </para> + <para> + Note that <literal>(s*E-A)^-1 = (s*E1-A1)^-1 * W(s) = (W(s)*(s*E-A))^-1 *W(s)</literal> + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +F=randpencil([],[2],[1,2,3],[]); +F=rand(5,5)*F*rand(5,5); // 5 x 5 regular pencil with 3 evals at 1,2,3 +[Ws,F1]=rowshuff(F,-1); +[E1,A1]=pen2ea(F1); +svd(E1) //E1 non singular +roots(det(Ws)) +clean(inv(F)-inv(F1)*Ws,1.d-7) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="pencan">pencan</link> + </member> + <member> + <link linkend="glever">glever</link> + </member> + <member> + <link linkend="penlaur">penlaur</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/en_US/pencil/sylv.xml b/modules/linear_algebra/help/en_US/pencil/sylv.xml new file mode 100755 index 000000000..4b6d85939 --- /dev/null +++ b/modules/linear_algebra/help/en_US/pencil/sylv.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) 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="sylv"> + <refnamediv> + <refname>sylv</refname> + <refpurpose>Sylvester equation.</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>sylv(A, B, C, flag)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>A,B,C</term> + <listitem> + <para>three real matrices of appropriate dimensions.</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> + <literal>X= sylv(A, B, C, 'c')</literal> computes <literal>X</literal>, solution + of the "continuous time" Sylvester equation + </para> + <programlisting role=""><![CDATA[ +A*X+X*B = C + ]]></programlisting> + <para> + <literal>X=sylv(A, B, C, 'd')</literal> computes <literal>X</literal>, solution + of the modified "discrete time" Sylvester equation + </para> + <programlisting role=""><![CDATA[ +A*X*B+X = C + ]]></programlisting> + <para> + <literal>X=-sylv(-A, B, C, 'd')</literal> computes <literal>X</literal>, solution + of the real "discrete time" Sylvester equation + </para> + <programlisting role=""><![CDATA[ +A*X*B-X = C + ]]></programlisting> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +// Continuous time Sylvester equation: +A = rand(4, 4); C = rand(4, 3); B = rand(3, 3); +X = sylv(A, B, C, 'c'); +norm(A*X+X*B-C) + +// Modified Discrete time Sylvester equation: +X = sylv(A, B, C, 'd'); +norm(A*X*B+X-C) + +// Real Discrete time Sylvester equation: +X = -sylv(-A, B, C, 'd'); +norm(A*X*B-X-C) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="lyap">lyap</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/en_US/proj.xml b/modules/linear_algebra/help/en_US/proj.xml new file mode 100755 index 000000000..0797774a1 --- /dev/null +++ b/modules/linear_algebra/help/en_US/proj.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) 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="proj"> + <refnamediv> + <refname>proj</refname> + <refpurpose>projection</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>P = proj(X1,X2)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>X1,X2</term> + <listitem> + <para>two real matrices with equal number of columns</para> + </listitem> + </varlistentry> + <varlistentry> + <term>P</term> + <listitem> + <para> + real projection matrix (<literal>P^2=P</literal>) + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal>P</literal> is the projection on <literal>X2</literal> parallel to <literal>X1</literal>. + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +X1=rand(5,2);X2=rand(5,3); +P=proj(X1,X2); +norm(P^2-P,1) +trace(P) // This is dim(X2) +[Q,M]=fullrf(P); +svd([Q,X2]) // span(Q) = span(X2) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="projspec">projspec</link> + </member> + <member> + <link linkend="orth">orth</link> + </member> + <member> + <link linkend="fullrf">fullrf</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/en_US/state_space/CHAPTER b/modules/linear_algebra/help/en_US/state_space/CHAPTER new file mode 100755 index 000000000..a0b62cdee --- /dev/null +++ b/modules/linear_algebra/help/en_US/state_space/CHAPTER @@ -0,0 +1,2 @@ +title = State-Space Matrices + diff --git a/modules/linear_algebra/help/en_US/state_space/coff.xml b/modules/linear_algebra/help/en_US/state_space/coff.xml new file mode 100755 index 000000000..2944ddac1 --- /dev/null +++ b/modules/linear_algebra/help/en_US/state_space/coff.xml @@ -0,0 +1,97 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * 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 + * + --> +<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="coff"> + <refnamediv> + <refname>coff</refname> + <refpurpose>resolvent (cofactor method) </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>[N,d]=coff(M [,var])</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>M</term> + <listitem> + <para>square real matrix</para> + </listitem> + </varlistentry> + <varlistentry> + <term>var</term> + <listitem> + <para>character string</para> + </listitem> + </varlistentry> + <varlistentry> + <term>N</term> + <listitem> + <para> + polynomial matrix (same size as <literal>M</literal>) + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>d</term> + <listitem> + <para> + polynomial (characteristic polynomial <literal>poly(A,'s')</literal>) + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal>coff</literal> computes R=<literal>(s*eye()-M)^-1</literal> for <literal>M</literal> a real matrix. + R is given by <literal>N/d</literal>. + </para> + <para> + <literal>N</literal> = numerator polynomial matrix. + </para> + <para> + <literal>d</literal> = common denominator. + </para> + <para> + <literal>var</literal> character string ('<literal>s</literal>' if omitted) + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +M=[1,2;0,3]; +[N,d]=coff(M) +N/d +inv(%s*eye()-M) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="coffg">coffg</link> + </member> + <member> + <link linkend="ss2tf">ss2tf</link> + </member> + <member> + <link linkend="nlev">nlev</link> + </member> + <member> + <link linkend="poly">poly</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/en_US/state_space/nlev.xml b/modules/linear_algebra/help/en_US/state_space/nlev.xml new file mode 100755 index 000000000..5d8bd89ad --- /dev/null +++ b/modules/linear_algebra/help/en_US/state_space/nlev.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) 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="nlev"> + <refnamediv> + <refname>nlev</refname> + <refpurpose>Leverrier's algorithm</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>[num,den]=nlev(A,z [,rmax])</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>A</term> + <listitem> + <para>real square matrix</para> + </listitem> + </varlistentry> + <varlistentry> + <term>z</term> + <listitem> + <para>character string</para> + </listitem> + </varlistentry> + <varlistentry> + <term>rmax</term> + <listitem> + <para> + optional parameter (see <literal>bdiag</literal>) + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal>[num,den]=nlev(A,z [,rmax])</literal> computes + <literal>(z*eye()-A)^(-1)</literal> + </para> + <para> + by block diagonalization of A followed by Leverrier's algorithm + on each block. + </para> + <para> + This algorithm is better than the usual leverrier algorithm but + still not perfect! + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +A=rand(3,3);x=poly(0,'x'); +[NUM,den]=nlev(A,'x') +clean(den-poly(A,'x')) +clean(NUM/den-inv(x*eye()-A)) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="coff">coff</link> + </member> + <member> + <link linkend="coffg">coffg</link> + </member> + <member> + <link linkend="glever">glever</link> + </member> + <member> + <link linkend="ss2tf">ss2tf</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/en_US/subspaces/CHAPTER b/modules/linear_algebra/help/en_US/subspaces/CHAPTER new file mode 100755 index 000000000..d87d9ca5e --- /dev/null +++ b/modules/linear_algebra/help/en_US/subspaces/CHAPTER @@ -0,0 +1,3 @@ +title = Subspaces + + diff --git a/modules/linear_algebra/help/en_US/subspaces/spaninter.xml b/modules/linear_algebra/help/en_US/subspaces/spaninter.xml new file mode 100755 index 000000000..650b9dba2 --- /dev/null +++ b/modules/linear_algebra/help/en_US/subspaces/spaninter.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) 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="spaninter"> + <refnamediv> + <refname>spaninter</refname> + <refpurpose>subspace intersection</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>[X,dim]=spaninter(A,B [,tol])</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>A, B</term> + <listitem> + <para>two real or complex matrices with equal number of rows</para> + </listitem> + </varlistentry> + <varlistentry> + <term>X</term> + <listitem> + <para>orthogonal or unitary square matrix</para> + </listitem> + </varlistentry> + <varlistentry> + <term>dim</term> + <listitem> + <para> + integer, dimension of subspace range(<literal>A</literal>) inter range(<literal>B</literal>) + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + computes the intersection of range(<literal>A</literal>) and range(<literal>B</literal>). + </para> + <para> + The first <literal>dim</literal> columns of <literal>X</literal> span this intersection i.e. + <literal>X(:,1:dim)</literal> is an orthogonal basis for + </para> + <para> + range(<literal>A</literal>) inter range(<literal>B</literal>) + </para> + <para> + In the <literal>X</literal> basis <literal>A</literal> and <literal>B</literal> are respectively represented by: + </para> + <para> + <literal>X'*A</literal> and <literal>X'*B</literal>. + </para> + <para> + <literal>tol</literal> is a threshold (<literal>sqrt(%eps)</literal> is the default value). + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +A=rand(5,3)*rand(3,4); // A is 5 x 4, rank=3 +B=[A(:,2),rand(5,1)]*rand(2,2); +[X,dim]=spaninter(A,B); +X1=X(:,1:dim); //The intersection +svd(A),svd([X1,A]) // X1 in span(A) +svd(B),svd([B,X1]) // X1 in span(B) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="spanplus">spanplus</link> + </member> + <member> + <link linkend="spantwo">spantwo</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/en_US/subspaces/spanplus.xml b/modules/linear_algebra/help/en_US/subspaces/spanplus.xml new file mode 100755 index 000000000..276ccdb50 --- /dev/null +++ b/modules/linear_algebra/help/en_US/subspaces/spanplus.xml @@ -0,0 +1,100 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * 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 + * + --> +<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="spanplus"> + <refnamediv> + <refname>spanplus</refname> + <refpurpose>sum of subspaces</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>[X,dim,dima]=spanplus(A,B[,tol])</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>A, B</term> + <listitem> + <para>two real or complex matrices with equal number of rows</para> + </listitem> + </varlistentry> + <varlistentry> + <term>X</term> + <listitem> + <para>orthogonal or unitary square matrix</para> + </listitem> + </varlistentry> + <varlistentry> + <term>dim, dima</term> + <listitem> + <para>integers, dimension of subspaces</para> + </listitem> + </varlistentry> + <varlistentry> + <term>tol</term> + <listitem> + <para>nonnegative real number</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + computes a basis X such that: + </para> + <para> + the first <literal>dima</literal> columns of <literal>X</literal> span Range(<literal>A</literal>) + and the following (<literal>dim-dima</literal>) columns make a basis of <literal>A+B</literal> + relative to <literal>A</literal>. + </para> + <para> + The <literal>dim</literal> first columns of <literal>X</literal> make a basis for <literal>A+B</literal>. + </para> + <para> + One has the following canonical form for <literal>[A,B]</literal>: + </para> + <programlisting role=""><![CDATA[ + [*,*] (dima rows) +X'*[A,B]=[0,*] (dim-dima rows) + [0,0] + ]]></programlisting> + <para> + <literal>tol</literal> is an optional argument (see function code). + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +A=rand(6,2)*rand(2,5); // rank(A)=2 +B=[A(:,1),rand(6,2)]*rand(3,3); //two additional independent vectors +[X,dim,dimA]=spanplus(A,B); +dimA +dim + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="spaninter">spaninter</link> + </member> + <member> + <link linkend="im_inv">im_inv</link> + </member> + <member> + <link linkend="spantwo">spantwo</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/en_US/subspaces/spantwo.xml b/modules/linear_algebra/help/en_US/subspaces/spantwo.xml new file mode 100755 index 000000000..7be745d6d --- /dev/null +++ b/modules/linear_algebra/help/en_US/subspaces/spantwo.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) 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="spantwo"> + <refnamediv> + <refname>spantwo</refname> + <refpurpose>sum and intersection of subspaces</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>[Xp,dima,dimb,dim]=spantwo(A,B, [tol])</synopsis> + </refsynopsisdiv> + <refsection> + <title>Arguments</title> + <variablelist> + <varlistentry> + <term>A, B</term> + <listitem> + <para>two real or complex matrices with equal number of rows</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Xp</term> + <listitem> + <para>square non-singular matrix</para> + </listitem> + </varlistentry> + <varlistentry> + <term>dima, dimb, dim</term> + <listitem> + <para>integers, dimension of subspaces</para> + </listitem> + </varlistentry> + <varlistentry> + <term>tol</term> + <listitem> + <para>nonnegative real number</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + Given two matrices <literal>A</literal> and <literal>B</literal> with same number of rows, + returns a square matrix <literal>Xp</literal> (non singular but not necessarily orthogonal) + such that : + </para> + <programlisting role=""><![CDATA[ + [A1, 0] (dim-dimb rows) +Xp*[A,B]=[A2,B2] (dima+dimb-dim rows) + [0, B3] (dim-dima rows) + [0 , 0] + ]]></programlisting> + <para> + The first <literal>dima</literal> columns of <literal>inv(Xp)</literal> span range(<literal>A</literal>). + </para> + <para> + Columns <literal>dim-dimb+1</literal> to <literal>dima</literal> of <literal>inv(Xp)</literal> span the + intersection of range(A) and range(B). + </para> + <para> + The <literal>dim</literal> first columns of <literal>inv(Xp)</literal> span + range(<literal>A</literal>)+range(<literal>B</literal>). + </para> + <para> + Columns <literal>dim-dimb+1</literal> to <literal>dim</literal> of <literal>inv(Xp)</literal> span + range(<literal>B</literal>). + </para> + <para> + Matrix <literal>[A1;A2]</literal> has full row rank (=rank(A)). Matrix <literal>[B2;B3]</literal> has + full row rank (=rank(B)). Matrix <literal>[A2,B2]</literal> has full row rank (=rank(A inter B)). Matrix <literal>[A1,0;A2,B2;0,B3]</literal> has full row rank (=rank(A+B)). + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +A=[1,0,0,4; + 5,6,7,8; + 0,0,11,12; + 0,0,0,16]; +B=[1,2,0,0]';C=[4,0,0,1]; +Sl=ss2ss(syslin('c',A,B,C),rand(A)); +[no,X]=contr(Sl('A'),Sl('B'));CO=X(:,1:no); //Controllable part +[uo,Y]=unobs(Sl('A'),Sl('C'));UO=Y(:,1:uo); //Unobservable part +[Xp,dimc,dimu,dim]=spantwo(CO,UO); //Kalman decomposition +Slcan=ss2ss(Sl,inv(Xp)); + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="spanplus">spanplus</link> + </member> + <member> + <link linkend="spaninter">spaninter</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/fr_FR/addchapter.sce b/modules/linear_algebra/help/fr_FR/addchapter.sce new file mode 100755 index 000000000..6da99e965 --- /dev/null +++ b/modules/linear_algebra/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("Algèbre Lineaire",SCI+"/modules/linear_algebra/help/fr_FR",%T); + diff --git a/modules/linear_algebra/help/fr_FR/eigen/CHAPTER b/modules/linear_algebra/help/fr_FR/eigen/CHAPTER new file mode 100755 index 000000000..88f8bc42b --- /dev/null +++ b/modules/linear_algebra/help/fr_FR/eigen/CHAPTER @@ -0,0 +1,2 @@ +title = Eigenvalue and Singular Value + diff --git a/modules/linear_algebra/help/fr_FR/eigen/bdiag.xml b/modules/linear_algebra/help/fr_FR/eigen/bdiag.xml new file mode 100755 index 000000000..a7dc9f342 --- /dev/null +++ b/modules/linear_algebra/help/fr_FR/eigen/bdiag.xml @@ -0,0 +1,111 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * 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 + * + --> +<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="bdiag"> + <refnamediv> + <refname>bdiag</refname> + <refpurpose>bloc-diagonalisation, vecteurs propres généralisés </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Séquence d'appel</title> + <synopsis>[Ab [,X [,bs]]]=bdiag(A [,rmax])</synopsis> + </refsynopsisdiv> + <refsection> + <title>Paramètres</title> + <variablelist> + <varlistentry> + <term>A </term> + <listitem> + <para>matrice carrée réelle ou complexe + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>rmax </term> + <listitem> + <para>nombre réel + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Ab </term> + <listitem> + <para>matrice carrée réelle ou complexe + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>X </term> + <listitem> + <para>matrice régulière, réelle ou complexe + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>bs </term> + <listitem> + <para>vecteur d'entiers + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <programlisting role=""><![CDATA[ +[Ab [,X [,bs]]]=bdiag(A [,rmax]) + ]]></programlisting> + <para> + <literal>[Ab [,X [,bs]]]=bdiag(A [,rmax])</literal> calcule la forme + bloc-diagonale de <literal>A</literal>. bs précise la structure des + blocs (tailles respectives des blocs). <literal>X</literal> est la + matrice de changement de base, c'est à dire que <literal>Ab = + inv(X)*A*X + </literal> + est bloc-diagonale. + </para> + <para> + <literal>rmax</literal> contrôle le conditionnement de <literal>X</literal>; + la valeur par défaut est la norme l1 de <literal>A</literal>. + </para> + <para> + Pour obtenir une forme diagonale (si celle-ci existe) choisissez + une valeur élevée de <literal>rmax</literal> (<literal>rmax=1/%eps</literal> + par exemple). Pour une matrice réelle quelconque, les blocs sont + de taille (1x1) ou (2x2) et <literal>X</literal> est la matrice des + vecteurs propres. + </para> + </refsection> + <refsection> + <title>Exemples</title> + <programlisting role="example"><![CDATA[ +// Cas réel: blocs 1x1 et 2x2 +a=rand(5,5);[ab,x,bs]=bdiag(a);ab +// Cas complexe : blocs complexes 1x1 +[ab,x,bs]=bdiag(a+%i*0);ab + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Voir aussi</title> + <simplelist type="inline"> + <member> + <link linkend="schur">schur</link> + </member> + <member> + <link linkend="sylv">sylv</link> + </member> + <member> + <link linkend="spec">spec</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/fr_FR/eigen/gspec.xml b/modules/linear_algebra/help/fr_FR/eigen/gspec.xml new file mode 100755 index 000000000..d7e856080 --- /dev/null +++ b/modules/linear_algebra/help/fr_FR/eigen/gspec.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) 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="fr" xml:id="gspec"> + <refnamediv> + <refname>gspec</refname> + <refpurpose>valeurs propres d'un faisceau de matrices (obsolete) </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Séquence d'appel</title> + <synopsis>[al,be]=gspec(A,E) + [al,be,Z]=gspec(A,E) + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Paramètres</title> + <variablelist> + <varlistentry> + <term>A, E </term> + <listitem> + <para>matrices carrées réelles de mêmes dimensions + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>al, be </term> + <listitem> + <para>vecteurs réels + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Z </term> + <listitem> + <para>matrice carrée régulière + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + Cette fonction est maintenant un cas particulier de la fonction + <literal>spec</literal>. La syntaxe d'appel doit être remplacée par + </para> + <programlisting role=""><![CDATA[ +[al,be]=spec(A,E) +[al,be,Z]=spec(A,E) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Voir aussi</title> + <simplelist type="inline"> + <member> + <link linkend="spec">spec</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/fr_FR/eigen/hess.xml b/modules/linear_algebra/help/fr_FR/eigen/hess.xml new file mode 100755 index 000000000..6ae439c64 --- /dev/null +++ b/modules/linear_algebra/help/fr_FR/eigen/hess.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) 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="fr" xml:id="hess"> + <refnamediv> + <refname>hess</refname> + <refpurpose>Forme de Hessenberg </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Séquence d'appel</title> + <synopsis>H = hess(A) + [U,H] = hess(A) + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Paramètres</title> + <variablelist> + <varlistentry> + <term>A </term> + <listitem> + <para>matrice carrée réelle ou complexe + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>H </term> + <listitem> + <para>matrice carrée réelle ou complexe + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>U </term> + <listitem> + <para>matrice carrée unitaire + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal>[U,H] = hess(A)</literal> Calcule une matrice unitaire <literal>U</literal> + et une matrice de Hessenberg <literal>H</literal> telles que <literal>A = + U*H*U' + </literal> + et <literal>U'*U</literal> = Identité. La syntaxe + <literal>H=hess(A)</literal> ne renvoie que la matrice de Hessenberg. + </para> + <para> + Les coefficients d'une matrice sous forme de Hessenberg sont nuls + sous la première sous-diagonale. Si la matrice est symétrique ou + hermitienne, la forme est tridiagonale. + </para> + </refsection> + <refsection> + <title>Exemples</title> + <programlisting role="example"><![CDATA[ +A=rand(3,3);[U,H]=hess(A); +and( abs(U*H*U'-A)<1.d-10 ) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Voir aussi</title> + <simplelist type="inline"> + <member> + <link linkend="qr">qr</link> + </member> + <member> + <link linkend="contr">contr</link> + </member> + <member> + <link linkend="schur">schur</link> + </member> + </simplelist> + </refsection> + <refsection> + <title>Fonctions Utilisées</title> + <para> + Le calcul de la forme de Hessenberg determinant est basé sur les routines Lapack : + DGEHRD, DORGHR pour les matrices réelles et ZGEHRD, ZORGHR pour le cas complexe. + </para> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/fr_FR/eigen/pbig.xml b/modules/linear_algebra/help/fr_FR/eigen/pbig.xml new file mode 100755 index 000000000..724cf59f4 --- /dev/null +++ b/modules/linear_algebra/help/fr_FR/eigen/pbig.xml @@ -0,0 +1,128 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * 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 + * + --> +<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="pbig"> + <refnamediv> + <refname>pbig</refname> + <refpurpose>projection sur des sous-espaces propres </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Séquence d'appel</title> + <synopsis>[Q,M]=pbig(A,thres,flag)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Paramètres</title> + <variablelist> + <varlistentry> + <term>A </term> + <listitem> + <para>matrice réelle carrée + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>thres </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> + <varlistentry> + <term>Q,M </term> + <listitem> + <para>matrices réelles + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + Projection sur des sous-espaces propres de A associés aux valeurs + propres avec partie réelle >= <literal>thres</literal> + (<literal>flag='c'</literal>) ou avec module >= + <literal>thres</literal> (<literal>flag='d'</literal>). + </para> + <para> + La projection est définie par <literal>Q*M</literal>, où <literal>Q</literal> + est de rang maximal, les lignes de <literal>M</literal> sont + linéairement indépendantes et <literal>M*Q=eye</literal>. + </para> + <para> + Si <literal>flag='c'</literal>, les valeurs propres de + <literal>M*A*Q</literal> = valeurs propres de <literal>A</literal> avec partie + réelle >= <literal>thres</literal>. + </para> + <para> + Si <literal>flag='d'</literal>, les valeurs propres de + <literal>M*A*Q</literal> = valeurs propres de <literal>A</literal> avec module + >= <literal>thres</literal>. + </para> + <para> + Si <literal>flag='c'</literal> et si <literal>[Q1,M1]</literal> = + factorisation de rang maximal (<literal>fullrf</literal>) de + <literal>eye()-Q*M</literal> alors les valeurs propres de + <literal>M1*A*Q1</literal> = valeurs propres de <literal>A</literal> avec + partie réelle < <literal>thres</literal>. + </para> + <para> + Si <literal>flag='d'</literal> et si <literal>[Q1,M1]</literal> = + factorisation de rang maximal (<literal>fullrf</literal>) de + <literal>eye()-Q*M</literal> alors les valeurs propres de + <literal>M1*A*Q1</literal> = valeurs propres de <literal>A</literal> avec + module < <literal>thres</literal>. + </para> + </refsection> + <refsection> + <title>Exemples</title> + <programlisting role="example"><![CDATA[ +A=diag([1,2,3]);X=rand(A);A=inv(X)*A*X; +[Q,M]=pbig(A,1.5,'d'); +spec(M*A*Q) +[Q1,M1]=fullrf(eye()-Q*M); +spec(M1*A*Q1) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Voir aussi</title> + <simplelist type="inline"> + <member> + <link linkend="psmall">psmall</link> + </member> + <member> + <link linkend="projspec">projspec</link> + </member> + <member> + <link linkend="fullrf">fullrf</link> + </member> + <member> + <link linkend="schur">schur</link> + </member> + </simplelist> + </refsection> + <refsection> + <title>Fonctions Utilisées</title> + <para> + <literal>pbig</literal> est basée sur la forme de Schur ordonnée + (fonction Scilab <literal>schur</literal>). + </para> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/fr_FR/eigen/spec.xml b/modules/linear_algebra/help/fr_FR/eigen/spec.xml new file mode 100755 index 000000000..de3027bc2 --- /dev/null +++ b/modules/linear_algebra/help/fr_FR/eigen/spec.xml @@ -0,0 +1,211 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * 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 + * + --> +<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="spec"> + <refnamediv> + <refname>spec</refname> + <refpurpose>valeurs propres d'une matrice </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Séquence d'appel</title> + <synopsis>evals=spec(A) + [X,diagevals]=spec(A) + + evals=spec(A,E) + [al,be]=spec(A,E) + [al,be,Z]=spec(A,E) + [al,be]=spec(A,E) + [al,be,Q,Z]=spec(A,E) + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Paramètres</title> + <variablelist> + <varlistentry> + <term>A </term> + <listitem> + <para>matrice carrée réelle ou complexe + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>E </term> + <listitem> + <para> + matrice carrée réelle ou complexe de même dimensions que <literal> A</literal> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>evals </term> + <listitem> + <para>vecteur réel ou complexe + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>diagevals </term> + <listitem> + <para> matrice carrée diagonale réelle ou complexe (les éléments + diagonaux sont les valeurs propres) + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>al </term> + <listitem> + <para>vecteur réel ou complexe, al./be donnes les valeurs propres + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>be </term> + <listitem> + <para>vecteur réel ou complexe, al./be donnes les valeurs propres + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>X </term> + <listitem> + <para>matrice carrée inversible réelle ou complexe, matrices des + vecteurs propres. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Q </term> + <listitem> + <para>matrice carrée inversible réelle ou complexe, matrices des + vecteurs propres à gauche. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Z </term> + <listitem> + <para>atrice carrée inversible réelle ou complexe, matrices des + vecteurs propres à droite. + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <variablelist> + <varlistentry> + <term>spec(A)</term> + <listitem> + <para> + <literal> evals=spec(A)</literal> retourne dans le vecteur + <literal>evals</literal> les valeurs propres de <literal>A</literal>. + </para> + <para> + <literal> [evals,X] =spec(A)</literal> retourne de plus les vecteurs + propres (s'ils existent). Voir Aussi <literal>bdiag</literal> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>spec(A,B)</term> + <listitem> + <para> + <literal>evals=spec(A,E)</literal> retourne le spectre du faisceau + <literal>s E - A</literal>, c'est à dire les racines du déterminant de + la matrice de polynômes <literal>s E - A</literal>. + </para> + <para> + <literal>[al,be] = spec(A,E)</literal> retourne le spectre du faisceau + <literal>s E - A</literal>, c'est à dire les racines du déterminant de + la matrice de polynômes <literal>s E - A</literal>. Les valeurs propres + sont données par <literal>al./be</literal>. Si <literal>be(i) = 0</literal> la + <literal>i</literal>ième valeur propres est à l'infini. (Pour <literal>E = + eye(A), al./be + </literal> + est <literal>spec(A)</literal>). + </para> + <para> + <literal> [al,be,Z] = spec(A,E)</literal> retourne de plus la matrice + <literal>Z</literal> des vecteurs propres généralisés à droite. + </para> + <para> + <literal> [al,be,Q,Z] = spec(A,E)</literal> retourne de plus les matrices + <literal>Q</literal> et <literal>Z</literal> des vecteurs propres généralisés à + droite et à gauche. + </para> + <para>Pour les grosses matrices pleines / creuses, vous + pouvez utiliser le module Arnoldi. + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Exemples</title> + <programlisting role="example"><![CDATA[ +// MATRIX EIGENVALUES +A=diag([1,2,3]);X=rand(3,3);A=inv(X)*A*X; +spec(A) + +x=poly(0,'x'); +pol=det(x*eye()-A) +roots(pol) + +[S,X]=bdiag(A); +clean(inv(X)*A*X) + +// PENCIL EIGENVALUES +A=rand(3,3); +[al,be,Z] = spec(A,eye(A));al./be +clean(inv(Z)*A*Z) //displaying the eigenvalues (generic matrix) +A=A+%i*rand(A);E=rand(A); +roots(det(%s*E-A)) //complex case + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Voir aussi</title> + <simplelist type="inline"> + <member> + <link linkend="poly">poly</link> + </member> + <member> + <link linkend="det">det</link> + </member> + <member> + <link linkend="gspec">gspec</link> + </member> + <member> + <link linkend="schur">schur</link> + </member> + <member> + <link linkend="bdiag">bdiag</link> + </member> + <member> + <link linkend="colcomp">colcomp</link> + </member> + <member> + <link linkend="dsaupd">dsaupd</link> + </member> + <member> + <link linkend="dnaupd">dnaupd</link> + </member> + </simplelist> + </refsection> + <refsection> + <title>Fonctions Utilisées</title> + <para> + Le calcul des valeurs propres des matrices est basé sur les + routines Lapack DGEEV and ZGEEV. + </para> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/fr_FR/eigen/sva.xml b/modules/linear_algebra/help/fr_FR/eigen/sva.xml new file mode 100755 index 000000000..91c66ed91 --- /dev/null +++ b/modules/linear_algebra/help/fr_FR/eigen/sva.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) 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="fr" xml:id="sva"> + <refnamediv> + <refname>sva</refname> + <refpurpose>approximation de valeurs singulières </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Séquence d'appel</title> + <synopsis>[U,s,V]=sva(A,k) + [U,s,V]=sva(A,tol) + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Paramètres</title> + <variablelist> + <varlistentry> + <term>A </term> + <listitem> + <para>matrice réelle ou complexe + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>k </term> + <listitem> + <para>entier + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>tol </term> + <listitem> + <para>nombre réel positif + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + Approximation de valeurs singulières. + </para> + <para> + <literal>[U,S,V]=sva(A,k)</literal> avec <literal>k</literal> un entier + >=1, renvoie <literal>U,S</literal> et <literal>V</literal> telles que + <literal>B=U*S*V'</literal> est la meilleure approximation au sens + l_2 de <literal>A</literal> avec rang(<literal>B</literal>)=<literal>k</literal>. + </para> + <para> + <literal>[U,S,V]=sva(A,tol)</literal> où <literal>tol</literal> est un réel + positif, renvoie <literal>U,S</literal> et <literal>V</literal> tels que + <literal>B=U*S*V'</literal> et la norme l_2 de <literal>A-B</literal> est + inférieure à <literal>tol</literal>. + </para> + </refsection> + <refsection> + <title>Exemples</title> + <programlisting role="example"><![CDATA[ +A=rand(5,4)*rand(4,5); +[U,s,V]=sva(A,2); +B=U*s*V'; +svd(A) +svd(B) +clean(svd(A-B)) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Voir aussi</title> + <simplelist type="inline"> + <member> + <link linkend="svd">svd</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/fr_FR/eigen/svd.xml b/modules/linear_algebra/help/fr_FR/eigen/svd.xml new file mode 100755 index 000000000..a78b9dda0 --- /dev/null +++ b/modules/linear_algebra/help/fr_FR/eigen/svd.xml @@ -0,0 +1,132 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * 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 + * + --> +<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="svd"> + <refnamediv> + <refname>svd </refname> + <refpurpose>décomposition en valeurs singulières </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Séquence d'appel</title> + <synopsis>s=svd(X) + [U,S,V]=svd(X) + [U,S,V]=svd(X,0) (obsolete) + [U,S,V]=svd(X,"e") + [U,S,V,rk]=svd(X [,tol]) + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Paramètres</title> + <variablelist> + <varlistentry> + <term>X </term> + <listitem> + <para>matrice réelle ou complexe + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>s </term> + <listitem> + <para>vecteur réel (valeurs singulières) + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>S </term> + <listitem> + <para>matrice réelle diagonale (valeurs singulières sur la diagonale) + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>U,V </term> + <listitem> + <para>matrices carrées unitaires (vecteurs singuliers). + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>tol </term> + <listitem> + <para>nombre réel positif + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal>[U,S,V]=svd(X)</literal> renvoie une matrice diagonale <literal>S</literal>, de même + dimension que <literal>X</literal> avec des éléments diagonaux positifs classés + par ordre décroissant, ainsi que deux matrices unitaires <literal>U</literal> + et <literal>V</literal> telles que + <literal>X = U*S*V'</literal>.<literal>[U,S,V]=svd(X,"e")</literal> + renvoie la décomposition réduite : si <literal>X</literal> est une + matrice <literal>m x n </literal> et que <literal>m > n </literal> alors + seulement les n premières colonnes de <literal>U</literal> sont + calculées et <literal>S</literal> est <literal>n x n </literal>. + </para> + <para> + <literal>s=svd(X)</literal> renvoie un vecteur <literal>s</literal> contenant + les valeurs singulières. + </para> + <para> + <literal>[U,S,V,rk]=svd(X [,tol])</literal> renvoie de plus + <literal>rk</literal>, le rang "numérique" de <literal>X</literal> + c'est à dire le nombre de valeurs singulières plus grandes + que <literal>tol</literal>. + </para> + <para> + La valeur par défaut de <literal>tol</literal> est la même que pour la fonction <literal>rank</literal>. + </para> + </refsection> + <refsection> + <title>Exemples</title> + <programlisting role="example"><![CDATA[ +X=rand(4,2)*rand(2,4) +svd(X) +sqrt(spec(X*X')) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Voir aussi</title> + <simplelist type="inline"> + <member> + <link linkend="rank">rank</link> + </member> + <member> + <link linkend="qr">qr</link> + </member> + <member> + <link linkend="colcomp">colcomp</link> + </member> + <member> + <link linkend="rowcomp">rowcomp</link> + </member> + <member> + <link linkend="sva">sva</link> + </member> + <member> + <link linkend="spec">spec</link> + </member> + </simplelist> + </refsection> + <refsection> + <title>Fonctions Utilisées</title> + <para> + la décomposition svd est basée sur les routines DGESVD pour les + matrices réelles et ZGESVD pour le cas complexe. + </para> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/fr_FR/factorization/CHAPTER b/modules/linear_algebra/help/fr_FR/factorization/CHAPTER new file mode 100755 index 000000000..e6daeb8eb --- /dev/null +++ b/modules/linear_algebra/help/fr_FR/factorization/CHAPTER @@ -0,0 +1,2 @@ +title = Factorization + diff --git a/modules/linear_algebra/help/fr_FR/factorization/givens.xml b/modules/linear_algebra/help/fr_FR/factorization/givens.xml new file mode 100755 index 000000000..233d0cd94 --- /dev/null +++ b/modules/linear_algebra/help/fr_FR/factorization/givens.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) 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="fr" xml:id="givens"> + <refnamediv> + <refname>givens</refname> + <refpurpose>Transformation de Givens </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Séquence d'appel</title> + <synopsis>U=givens(xy) + U=givens(x,y) + [U,c]=givens(xy) + [U,c]=givens(x,y) + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Paramètres</title> + <variablelist> + <varlistentry> + <term>x,y </term> + <listitem> + <para>deux nombres réels ou complexes + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>xy </term> + <listitem> + <para> vecteur colonne réel ou complexe à deux composantes + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>U </term> + <listitem> + <para>matrice unitaire 2 x 2 + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>c </term> + <listitem> + <para> vecteur colonne réel ou complexe à deux composantes + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal>U= givens(x, y)</literal> ou <literal>U = givens(xy)</literal> avec <literal>xy = [x;y]</literal> + renvoie <literal>U</literal> une matrice unitaire <literal>2</literal>x<literal>2</literal> telle que : + </para> + <para> + <literal>U*xy=[r;0]=c</literal>. + </para> + <para> + <note> + Notez que <literal>givens(x,y)</literal> et <literal>givens([x;y])</literal> sont équivalents. + </note> + </para> + </refsection> + <refsection> + <title>Exemples</title> + <programlisting role="example"><![CDATA[ +A=[3,4;5,6]; +U=givens(A(:,1)); +U*A + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Voir aussi</title> + <simplelist type="inline"> + <member> + <link linkend="qr">qr</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/fr_FR/factorization/householder.xml b/modules/linear_algebra/help/fr_FR/factorization/householder.xml new file mode 100755 index 000000000..f81b8b9ad --- /dev/null +++ b/modules/linear_algebra/help/fr_FR/factorization/householder.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) 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="fr" xml:id="householder"> + <refnamediv> + <refname>householder</refname> + <refpurpose>Matrice de Householder </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Séquence d'appel</title> + <synopsis>u=householder(v [,w])</synopsis> + </refsynopsisdiv> + <refsection> + <title>Paramètres</title> + <variablelist> + <varlistentry> + <term>v </term> + <listitem> + <para>vecteur colonne réel ou complexe + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>w </term> + <listitem> + <para> + vecteur colonne réel ou complexe de même taille que <literal>v</literal> (la valeur par défaut est <literal>eye(v)</literal>) + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>u </term> + <listitem> + <para>vecteur colonne réel ou complexe + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + Etant donnés deux vecteurs colonnes <literal>v</literal> et <literal>w</literal> de même taille, <literal>householder(v,w)</literal> renvoie un vecteur normé <literal>u</literal>, tel que + <literal>(eye()-2*u*u')*v</literal> est colinéaire à <literal>w</literal>. + <literal>(eye()-2*u*u')</literal> est la matrice de la transformation de Householder correspondante. + </para> + <para> + La valeur par défaut de <literal>w</literal> est <literal> eye(v)</literal>. Dans ce cas le vecteur <literal> (eye()-2*u*u')*v</literal> est égal à <literal> eye(v)*norm(v)</literal>. + </para> + </refsection> + <refsection role="see also"> + <title>Voir aussi</title> + <simplelist type="inline"> + <member> + <link linkend="qr">qr</link> + </member> + <member> + <link linkend="givens">givens</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/fr_FR/factorization/sqroot.xml b/modules/linear_algebra/help/fr_FR/factorization/sqroot.xml new file mode 100755 index 000000000..55f751b12 --- /dev/null +++ b/modules/linear_algebra/help/fr_FR/factorization/sqroot.xml @@ -0,0 +1,63 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * 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 + * + --> +<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="sqroot"> + <refnamediv> + <refname>sqroot</refname> + <refpurpose>factorisation hermitienne W*W' </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Séquence d'appel</title> + <synopsis>sqroot(X)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Paramètres</title> + <variablelist> + <varlistentry> + <term>X </term> + <listitem> + <para>matrice complexe ou réelle, symétrique définie non-négative + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + renvoie W telle que <literal>X=W*W'</literal> (en utilisant svd). + </para> + </refsection> + <refsection> + <title>Exemples</title> + <programlisting role="example"><![CDATA[ +X=rand(5,2)*rand(2,5);X=X*X'; +W=sqroot(X) +norm(W*W'-X,1) + +X=rand(5,2)+%i*rand(5,2);X=X*X'; +W=sqroot(X) +norm(W*W'-X,1) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Voir aussi</title> + <simplelist type="inline"> + <member> + <link linkend="chol">chol</link> + </member> + <member> + <link linkend="svd">svd</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/fr_FR/kernel/CHAPTER b/modules/linear_algebra/help/fr_FR/kernel/CHAPTER new file mode 100755 index 000000000..be67920e1 --- /dev/null +++ b/modules/linear_algebra/help/fr_FR/kernel/CHAPTER @@ -0,0 +1,2 @@ +title = Kernel + diff --git a/modules/linear_algebra/help/fr_FR/kernel/colcomp.xml b/modules/linear_algebra/help/fr_FR/kernel/colcomp.xml new file mode 100755 index 000000000..4f674ac87 --- /dev/null +++ b/modules/linear_algebra/help/fr_FR/kernel/colcomp.xml @@ -0,0 +1,108 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * 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 + * + --> +<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="colcomp"> + <refnamediv> + <refname>colcomp</refname> + <refpurpose>compression de colonnes, noyau </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Séquence d'appel</title> + <synopsis>[W,rk]=colcomp(A [,flag] [,tol])</synopsis> + </refsynopsisdiv> + <refsection> + <title>Paramètres</title> + <variablelist> + <varlistentry> + <term>A </term> + <listitem> + <para>matrice réelle ou complexe + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>flag </term> + <listitem> + <para>chaîne de caractères + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>tol </term> + <listitem> + <para>nombre réel + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>W </term> + <listitem> + <para>matrice carré régulière (matrice de changement de base) + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>rk </term> + <listitem> + <para> + entier (rang de"<literal>A</literal>) + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + Compression des colonnes de <literal>A</literal> : <literal>Ac = A*W</literal> est à colonnes compressées, c'est à dire + </para> + <para> + <literal>Ac=[0,Af]</literal> et <literal>Af</literal> est de rang maximal + rank(<literal>Af</literal>) = rank(<literal>A</literal>) = <literal>rk</literal>. + </para> + <para> + <literal>flag</literal> et <literal>tol</literal> sont des paramètres optionnels : <literal>flag = 'qr'</literal> + ou <literal>'svd'</literal> (<literal>'svd'</literal> par défaut). + </para> + <para> + <literal>tol</literal> = paramètre de tolérance (de l'ordre de <literal>%eps</literal> par défaut). + </para> + <para> + Les <literal>ma-rk</literal> premières colonnes de <literal>W</literal> forment une base du noyau de <literal>A</literal> quand <literal>size(A)=[na,ma]</literal>. + </para> + </refsection> + <refsection> + <title>Exemples</title> + <programlisting role="example"><![CDATA[ +A=rand(5,2)*rand(2,5); +[X,r]=colcomp(A); +norm(A*X(:,1:$-r),1) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Voir aussi</title> + <simplelist type="inline"> + <member> + <link linkend="rowcomp">rowcomp</link> + </member> + <member> + <link linkend="fullrf">fullrf</link> + </member> + <member> + <link linkend="fullrfk">fullrfk</link> + </member> + <member> + <link linkend="kernel">kernel</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/fr_FR/kernel/fullrf.xml b/modules/linear_algebra/help/fr_FR/kernel/fullrf.xml new file mode 100755 index 000000000..07b037630 --- /dev/null +++ b/modules/linear_algebra/help/fr_FR/kernel/fullrf.xml @@ -0,0 +1,102 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * 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 + * + --> +<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="fullrf"> + <refnamediv> + <refname>fullrf</refname> + <refpurpose>factorisation de rang plein </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Séquence d'appel</title> + <synopsis>[Q,M,rk]=fullrf(A,[tol])</synopsis> + </refsynopsisdiv> + <refsection> + <title>Paramètres</title> + <variablelist> + <varlistentry> + <term>A </term> + <listitem> + <para>matrice réelle ou complexe + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>tol </term> + <listitem> + <para>nombre réel (tolérance pour le calcul du rang) + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Q,M </term> + <listitem> + <para>matrices réelles ou complexes + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>rk </term> + <listitem> + <para> + entier (rang de <literal>A</literal>) + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + Cette fonction calcule la factorisation de rang plein de <literal>A</literal> : <literal>fullrf</literal> renvoie <literal>Q</literal> et <literal>M</literal> telles que <literal>A = Q*M</literal> + avec Im(<literal>Q</literal>)=Im(<literal>A</literal>) et ker(<literal>M</literal>)=ker(<literal>A</literal>), + <literal>Q</literal> de rang maximal, et les lignes de <literal>M</literal> sont linéairement indépendantes, + <literal>rk</literal> = rank(<literal>A</literal>) = nombre de colonnes de <literal>Q</literal> = nombre de lignes de <literal>M</literal>. + </para> + <para> + <literal>tol</literal> = paramètre de tolérance (de l'ordre de <literal>%eps</literal> par défaut). + Le rang <literal>rk</literal> de <literal>A</literal> est considéré égal au nombre de ses valeurs singulières plus grandes que <literal>norm(A)*tol</literal>. + </para> + <para> + Si A est symétrique, <literal>fullrf</literal> renvoie <literal>M=Q'</literal>. + </para> + </refsection> + <refsection> + <title>Exemples</title> + <programlisting role="example"><![CDATA[ +A=rand(5,2)*rand(2,5); +[Q,M]=fullrf(A); +norm(Q*M-A,1) +[X,d]=rowcomp(A);Y=X'; +svd([A,Y(:,1:d),Q]) // Im(Q) = Im(A) = Im(Y(:,1:2)) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Voir aussi</title> + <simplelist type="inline"> + <member> + <link linkend="svd">svd</link> + </member> + <member> + <link linkend="qr">qr</link> + </member> + <member> + <link linkend="fullrfk">fullrfk</link> + </member> + <member> + <link linkend="rowcomp">rowcomp</link> + </member> + <member> + <link linkend="colcomp">colcomp</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/fr_FR/kernel/fullrfk.xml b/modules/linear_algebra/help/fr_FR/kernel/fullrfk.xml new file mode 100755 index 000000000..12336d7bb --- /dev/null +++ b/modules/linear_algebra/help/fr_FR/kernel/fullrfk.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) 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="fr" xml:id="fullrfk"> + <refnamediv> + <refname>fullrfk</refname> + <refpurpose>factorisation de rang plein de A^k </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Séquence d'appel</title> + <synopsis>[Q,M]=fullrfk(A,k)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Paramètres</title> + <variablelist> + <varlistentry> + <term>A </term> + <listitem> + <para>matrice réelle ou complexe + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>k </term> + <listitem> + <para>entier + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Q,M </term> + <listitem> + <para>matrices réelles ou complexes + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + Cette fonction calcule la factorisation de rang plein de <literal>A^k</literal> : <literal>fullrfk</literal> renvoie <literal>Q</literal> et <literal>M</literal> telles que <literal>A^k = Q*M</literal> + avec Im(<literal>Q</literal>)=Im(<literal>A^k</literal>) et ker(<literal>M</literal>)=ker(<literal>A^k</literal>), + <literal>Q</literal> de rang maximal, et les lignes de <literal>M</literal> sont linéairement indépendantes, + </para> + <para> + Pour <literal>k=1</literal>, <literal>fullrfk</literal> est équivalent à <literal>fullrf</literal>. + </para> + </refsection> + <refsection> + <title>Exemples</title> + <programlisting role="example"><![CDATA[ +A=rand(5,2)*rand(2,5);[Bk,Ck]=fullrfk(A,3); +norm(Bk*Ck-A^3,1) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Voir aussi</title> + <simplelist type="inline"> + <member> + <link linkend="fullrf">fullrf</link> + </member> + <member> + <link linkend="range">range</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/fr_FR/kernel/kernel.xml b/modules/linear_algebra/help/fr_FR/kernel/kernel.xml new file mode 100755 index 000000000..9cf413739 --- /dev/null +++ b/modules/linear_algebra/help/fr_FR/kernel/kernel.xml @@ -0,0 +1,96 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * 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 + * + --> +<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="kernel"> + <refnamediv> + <refname>kernel</refname> + <refpurpose>noyau</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Séquence d'appel</title> + <synopsis>W=kernel(A [,tol,[,flag])</synopsis> + </refsynopsisdiv> + <refsection> + <title>Paramètres</title> + <variablelist> + <varlistentry> + <term>A </term> + <listitem> + <para>matrice réelle ou complexe (pleine ou creuse) + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>flag </term> + <listitem> + <para>chaîne de caractères + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>tol </term> + <listitem> + <para>nombre réel + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>W </term> + <listitem> + <para>matrice régulière + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal>W=kernel(A)</literal> calcule le noyau de <literal>A</literal>, et <literal>size(W,2)</literal> est la nullité de A. + Les colonnes de <literal>W</literal> forment une base du noyau de <literal>A</literal>. + Si A est régulière, alors W=[]. + </para> + <para> + <literal>flag</literal> et <literal>tol</literal> sont des paramètres optionnels : <literal>flag = 'qr'</literal> + or <literal>'svd'</literal> (<literal>'svd'</literal> par défaut). + </para> + <para> + <literal>tol</literal> = paramètre de tolérance (de l'ordre de <literal>%eps</literal> par défaut). + </para> + </refsection> + <refsection> + <title>Exemples</title> + <programlisting role="example"><![CDATA[ +A=rand(3,1)*rand(1,3); +A*kernel(A) +A=sparse(A); +clean(A*kernel(A)) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Voir aussi</title> + <simplelist type="inline"> + <member> + <link linkend="colcomp">colcomp</link> + </member> + <member> + <link linkend="fullrf">fullrf</link> + </member> + <member> + <link linkend="fullrfk">fullrfk</link> + </member> + <member> + <link linkend="linsolve">linsolve</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/fr_FR/kernel/range.xml b/modules/linear_algebra/help/fr_FR/kernel/range.xml new file mode 100755 index 000000000..e7b6aa6ef --- /dev/null +++ b/modules/linear_algebra/help/fr_FR/kernel/range.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) 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="fr" xml:id="range"> + <refnamediv> + <refname>range</refname> + <refpurpose>Image de A^k </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Séquence d'appel</title> + <synopsis>[X,dim]=range(A,k)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Paramètres</title> + <variablelist> + <varlistentry> + <term>A </term> + <listitem> + <para>matrice réelle carrée</para> + </listitem> + </varlistentry> + <varlistentry> + <term>k </term> + <listitem> + <para>entier non négatif, La valeur par défaut est 1</para> + </listitem> + </varlistentry> + <varlistentry> + <term>X </term> + <listitem> + <para>matrice réelle orthonormale.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>dim</term> + <listitem> + <para>entier (dimension du sous-espace image)</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + Calcul de l'image de <literal>A^k</literal>; les <literal>dim</literal> + premières colonnes de <literal>X</literal> forment une base de + <literal>A^k</literal>. Les dernières lignes de <literal>X</literal> forment une + base de l'orthogonal de l'image. + </para> + </refsection> + <refsection> + <title>Exemples</title> + <programlisting role="example"><![CDATA[ +A=rand(4,2)*rand(2,4); // Matrice de rang 2. +[X,dim]=range(A,1);dim // Calcul de l'image + +y1=A*rand(4,1); // un vecteur dans l'image de A +y2=rand(4,1); // un vecteur qui n'est pas dans l'image +norm(X(dim+1:$,:)*y1) // les derniéres composante sont nulles, y1 est dans l'image +norm(X(dim+1:$,:)*y2) // Les dernieres composantes ne sont pas nulles + +I=X(1:dim,:)' // I une base de l'image +coeffs=X(1:dim,:)*y1 // les composante de y1 dans la base I + +norm(I*coeffs-y1) // test + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Voir aussi</title> + <simplelist type="inline"> + <member> + <link linkend="fullrfk">fullrfk</link> + </member> + <member> + <link linkend="rowcomp">rowcomp</link> + </member> + </simplelist> + </refsection> + <refsection> + <title>Fonctions Utilisées</title> + <para> + La fonction <literal>range</literal> est basée sue la fonction <link linkend="rowcomp">rowcomp</link> + qui utilise la décomposition <link linkend="svd">svd</link>. + </para> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/fr_FR/kernel/rowcomp.xml b/modules/linear_algebra/help/fr_FR/kernel/rowcomp.xml new file mode 100755 index 000000000..bb071feae --- /dev/null +++ b/modules/linear_algebra/help/fr_FR/kernel/rowcomp.xml @@ -0,0 +1,124 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * 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 + * + --> +<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="rowcomp"> + <refnamediv> + <refname>rowcomp</refname> + <refpurpose>compression de lignes, image </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Séquence d'appel</title> + <synopsis>[W,rk]=colcomp(A [,flag [,tol]])</synopsis> + </refsynopsisdiv> + <refsection> + <title>Paramètres</title> + <variablelist> + <varlistentry> + <term>A </term> + <listitem> + <para>matrice réelle ou complexe</para> + </listitem> + </varlistentry> + <varlistentry> + <term>flag </term> + <listitem> + <para>chaîne de caractères optionnelle qui peut prendre les valeurs + <literal>'svd'</literal> ou <literal>'qr'</literal>. La valeur par + défaut est <literal>sqrt(%eps)*norm(A,1)</literal>. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>tol </term> + <listitem> + <para>nombre réel non négatif. La valeur par + défaut est <literal>sqrt(%eps)*norm(A,1)</literal>. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>W </term> + <listitem> + <para>matrice carrée régulière (matrice de changement de base) </para> + </listitem> + </varlistentry> + <varlistentry> + <term>rk </term> + <listitem> + <para> + entier (rang de"<literal>A</literal>). + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + Compression des colonnes de <literal>A</literal>. <literal>Ac = W*A</literal> est à + lignes compressées, c'est à dire + <literal>Ac=[Af;0]</literal> et les lignes de <literal>Af</literal> sont linéairement + indépendantes. + </para> + <para> + <literal>flag</literal> et <literal>tol</literal> sont des paramètres optionnels : + <literal>flag = 'qr'</literal> ou <literal>'svd'</literal> + (<literal>'svd'</literal> par défaut). + </para> + <para> + <literal>tol</literal> = paramètre de tolérance (de l'ordre de + <literal>%eps</literal> par défaut). + </para> + <para> + Les <literal>rk</literal> premières colonnes de <literal>W'</literal> forment + une base de l'image de <literal>A</literal>. + </para> + <para> + Un vecteur non nul <literal>x</literal> appartient à Im(<literal>A</literal>) si + <literal>W*x</literal> est à lignes compressées en accord avec <literal>Ac</literal> + c'est à dire que la norme de ses dernières composantes est nulle (à + la précision machine) par rapport à ses rk premières composantes. + </para> + </refsection> + <refsection> + <title>Exemples</title> + <programlisting role="example"><![CDATA[ +A=rand(5,2)*rand(2,4); // 4 vecteurs colonne dont 2 indépendants +[X,dim]=rowcomp(A);Xp=X'; +svd([Xp(:,1:dim),A]) // Im(A) = Im(Xp(:,1:dim) +x=A*rand(4,1); // x appartient à Im(A) +y=X*x +norm(y(dim+1:$))/norm(y(1:dim)) // la norme est petite + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Voir aussi</title> + <simplelist type="inline"> + <member> + <link linkend="colcomp">colcomp</link> + </member> + <member> + <link linkend="fullrf">fullrf</link> + </member> + <member> + <link linkend="fullrfk">fullrfk</link> + </member> + </simplelist> + </refsection> + <refsection> + <title>Fonctions Utilisées</title> + <para> + La fonction <literal>rowcomp</literal> est basée sur les décompositions + <link linkend="svd">svd</link> ou <link linkend="qr">qr</link>. + </para> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/fr_FR/linear/CHAPTER b/modules/linear_algebra/help/fr_FR/linear/CHAPTER new file mode 100755 index 000000000..7d9d9cf49 --- /dev/null +++ b/modules/linear_algebra/help/fr_FR/linear/CHAPTER @@ -0,0 +1,2 @@ +title = Linear Equations + diff --git a/modules/linear_algebra/help/fr_FR/linear/chol.xml b/modules/linear_algebra/help/fr_FR/linear/chol.xml new file mode 100755 index 000000000..f155bb42c --- /dev/null +++ b/modules/linear_algebra/help/fr_FR/linear/chol.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) 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="fr" xml:id="chol"> + <refnamediv> + <refname>chol</refname> + <refpurpose>Factorisation de Cholesky </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Séquence d'appel</title> + <synopsis>[R]=chol(X)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Paramètres</title> + <variablelist> + <varlistentry> + <term>X </term> + <listitem> + <para>matrice réelle ou complexe + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + Si <literal>X</literal> est hermitienne (symétrique dans le cas réel) définie positive, alors <literal>R = chol(X)</literal> renvoie une matrice triangulaire supérieure <literal>R</literal> telle que <literal>R'*R = X</literal>. + </para> + <para> + <literal>chol(X)</literal> utilise uniquement la partie triangulaire supérieure de <literal>X</literal> dont la + partie triangulaire inférieure est supposée être la transposée (transposée conjuguée dans le cas complexe). + </para> + </refsection> + <refsection> + <title>Exemples</title> + <programlisting role="example"><![CDATA[ +W=rand(5,5)+%i*rand(5,5); +X=W*W'; +R=chol(X); +norm(R'*R-X) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Voir aussi</title> + <simplelist type="inline"> + <member> + <link linkend="spchol">spchol</link> + </member> + <member> + <link linkend="qr">qr</link> + </member> + <member> + <link linkend="svd">svd</link> + </member> + <member> + <link linkend="bdiag">bdiag</link> + </member> + <member> + <link linkend="fullrf">fullrf</link> + </member> + </simplelist> + </refsection> + <refsection> + <title>Fonctions Utilisées</title> + <para> + La décomposition de Cholesky est basée sur les routines Lapack + DPOTRF pour les matrices réelles et ZPOTRF pour le cas complexe. + </para> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/fr_FR/linear/inv.xml b/modules/linear_algebra/help/fr_FR/linear/inv.xml new file mode 100755 index 000000000..2441ede3a --- /dev/null +++ b/modules/linear_algebra/help/fr_FR/linear/inv.xml @@ -0,0 +1,112 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * 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 + * + --> +<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"> + <refnamediv> + <refname>inv</refname> + <refpurpose>inverse d'une matrice </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Séquence d'appel</title> + <synopsis>inv(X)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Paramètres</title> + <variablelist> + <varlistentry> + <term>X </term> + <listitem> + <para>matrice carrée réelle, complexe, polynomiale ou rationnelle, + liste de type "syslin" + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal>inv(X)</literal> est l'inverse de la matrice carrée + <literal>X</literal>. Un message de mise en garde est affiché si <literal>X</literal> + est mal équilibrée (termes très petits et termes très grands) ou + singulière à la précision machine. + </para> + <para> + Pour les matrices polynomiales ou rationnelles, <literal>inv(X)</literal> est + équivalent à <literal>invr(X)</literal>. + </para> + <para> + Pour les systèmes dynamiques linéaires sous forme de leur représentation + d'état (liste de type <literal>syslin</literal>), <literal>inv(X)</literal> est + équivalent à <literal>invsyslin(X)</literal>. + </para> + </refsection> + <refsection> + <title>Exemples</title> + <programlisting role="example"><![CDATA[ +A=rand(3,3);inv(A)*A + +x=poly(0,'x'); +A=[x,1,x;x^2,2,1+x;1,2,3];inv(A)*A + +A=[1/x,2;2+x,2/(1+x)] +inv(A)*A + +A=ssrand(2,2,3); +W=inv(A)*A +clean(ss2tf(W)) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Voir aussi</title> + <simplelist type="inline"> + <member> + <link linkend="slash">slash</link> + </member> + <member> + <link linkend="backslash">backslash</link> + </member> + <member> + <link linkend="pinv">pinv</link> + </member> + <member> + <link linkend="qr">qr</link> + </member> + <member> + <link linkend="lufact">lufact</link> + </member> + <member> + <link linkend="lusolve">lusolve</link> + </member> + <member> + <link linkend="invr">invr</link> + </member> + <member> + <link linkend="coff">coff</link> + </member> + <member> + <link linkend="coffg">coffg</link> + </member> + </simplelist> + </refsection> + <refsection> + <title>Fonctions Utilisées</title> + <para> + La fonction <literal>inv</literal> pour les matrices de nombres est basée + sur les routines Lapack : + DGETRF, DGETRI pour les matrices réelles et ZGETRF, ZGETRI pour le + cas complexe. + Pour les matrices de polynomes et de fractions rationnelles + <literal>inv</literal> est basée sur la fonction Scilab <literal>invr</literal>. + </para> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/fr_FR/linear/linsolve.xml b/modules/linear_algebra/help/fr_FR/linear/linsolve.xml new file mode 100755 index 000000000..d7d5c3bc2 --- /dev/null +++ b/modules/linear_algebra/help/fr_FR/linear/linsolve.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) 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="fr" xml:id="linsolve"> + <refnamediv> + <refname>linsolve</refname> + <refpurpose>solveur d'équation linéaire </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Séquence d'appel</title> + <synopsis>[x0,kerA]=linsolve(A,b [,x0])</synopsis> + </refsynopsisdiv> + <refsection> + <title>Paramètres</title> + <variablelist> + <varlistentry> + <term>A </term> + <listitem> + <para> + une matrice réelle <literal>na x ma</literal> (éventuellement creuse) + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>b </term> + <listitem> + <para> + un vecteur <literal>na x 1</literal> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>x0 </term> + <listitem> + <para>un vecteur réel + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>kerA </term> + <listitem> + <para> + une matrice réelle <literal>ma x k </literal> + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal>linsolve</literal> donne toutes les solutions de <literal> A*x+b=0</literal>. + </para> + <para> + <literal>x0</literal> est une solution particulière (s'il en existe une) et <literal>kerA</literal> est le noyau de <literal>A</literal>. Tout vecteur de la forme <literal>x=x0+kerA*w</literal> avec <literal>w</literal> quelconque vérifie + <literal> A*x+b=0</literal>. + </para> + <para> + Si un <literal>x0</literal> compatible est donné en entrée, <literal>x0</literal> est renvoyé. Dans le cas contraire un <literal>x0</literal> compatible, s'il en existe un, est renvoyé. + </para> + </refsection> + <refsection> + <title>Exemples</title> + <programlisting role="example"><![CDATA[ +A=rand(5,3)*rand(3,8); +b=A*ones(8,1);[x,kerA]=linsolve(A,b);A*x+b // b compatible +b=ones(5,1);[x,kerA]=linsolve(A,b);A*x+b // b incompatible +A=rand(5,5);[x,kerA]=linsolve(A,b), -inv(A)*b // x est unique + +// Une comparaison des différentes méthode de résolution de systèmes linéaire creux + +[A,descr,ref,mtype] = ReadHBSparse(SCI+"/modules/umfpack/examples/bcsstk24.rsa"); + +b = zeros(size(A,1),1); + +tic(); +res = umfpack(A,'\',b); +mprintf('\ntemps nécessaire à la résolution du système avec umfpack: %.3f\n',toc()); + +tic(); +res = linsolve(A,b); +mprintf('\ntemps nécessaire à la résolution du système avec linsolve: %.3f\n',toc()); + +tic(); +res = A\b; +mprintf('\ntemps nécessaire à la résolution du système avec l''opérateur backslash: %.3f\n',toc()); + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Voir aussi</title> + <simplelist type="inline"> + <member> + <link linkend="inv">inv</link> + </member> + <member> + <link linkend="pinv">pinv</link> + </member> + <member> + <link linkend="colcomp">colcomp</link> + </member> + <member> + <link linkend="im_inv">im_inv</link> + </member> + <member> + <link linkend="umfpack">umfpack</link> + </member> + <member> + <link linkend="backslash">backslash</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/fr_FR/linear/lu.xml b/modules/linear_algebra/help/fr_FR/linear/lu.xml new file mode 100755 index 000000000..498ac9713 --- /dev/null +++ b/modules/linear_algebra/help/fr_FR/linear/lu.xml @@ -0,0 +1,119 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * 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 + * + --> +<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="lu"> + <refnamediv> + <refname>lu</refname> + <refpurpose>factorisation LU </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Séquence d'appel</title> + <synopsis>[L,U]= lu(A) + [L,U,E]= lu(A) + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Paramètres</title> + <variablelist> + <varlistentry> + <term>A </term> + <listitem> + <para>matrice carrée réelle ou complexe (m x n). + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>L,U </term> + <listitem> + <para>matrices carrées réelles ou complexes (n x n). + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>E </term> + <listitem> + <para>une matrice de permutation. + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal>[L,U]= lu(A)</literal> calcule deux matrices <literal>L</literal> et + <literal>U</literal> telles que <literal>A = L*U</literal> avec <literal>U</literal> + triangulaire supérieure et <literal>L</literal> triangulaire inférieure + à une permutation des lignes près. + </para> + <para> + Si <literal>A</literal> est de rang <literal>k</literal>, les lignes + <literal>k+1</literal> à <literal>n</literal> de <literal>U</literal> sont nulles. + </para> + <para> + </para> + <para> + <literal>[L,U,E]= lu(A)</literal> calcule trois matrices <literal>L</literal>, + <literal>U</literal> et <literal>E</literal> telles que <literal>E*A = L*U</literal> + avec <literal>U</literal> triangulaire supérieure, <literal>L</literal> + triangulaire inférieure et <literal>E</literal> une matrice de + permutation. + </para> + <para> + Si <literal>A</literal> est une matrice réelle, il est possible en + utilisant <literal>lufact</literal> et <literal>luget</literal> + d'obtenir les matrices de permutations et quand + <literal>A</literal> n'est pas inversible la compression des + colonnes de la matrice <literal>L</literal>. + </para> + </refsection> + <refsection> + <title>Exemples</title> + <programlisting role="example"><![CDATA[ +a=rand(4,4); +[l,u]=lu(a) +norm(l*u-a) + +[h,rk]=lufact(sparse(a)) // lufact fonctionne avec des matrices creuses +[P,L,U,Q]=luget(h); +ludel(h) +P=full(P);L=full(L);U=full(U);Q=full(Q); +norm(P*L*U*Q-a) // P,Q sont des matrices de permutation + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Voir aussi</title> + <simplelist type="inline"> + <member> + <link linkend="lufact">lufact</link> + </member> + <member> + <link linkend="luget">luget</link> + </member> + <member> + <link linkend="lusolve">lusolve</link> + </member> + <member> + <link linkend="qr">qr</link> + </member> + <member> + <link linkend="svd">svd</link> + </member> + </simplelist> + </refsection> + <refsection> + <title>Fonctions Utilisées</title> + <para>La décomposition LU est basée sur les routines Lapack DGETRF pour + les matrices réelles et ZGETRF pour le cas complexe. + </para> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/fr_FR/linear/pinv.xml b/modules/linear_algebra/help/fr_FR/linear/pinv.xml new file mode 100755 index 000000000..70b1d11ec --- /dev/null +++ b/modules/linear_algebra/help/fr_FR/linear/pinv.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) 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="fr" xml:id="pinv"> + <refnamediv> + <refname>pinv</refname> + <refpurpose>pseudo-inverse </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Séquence d'appel</title> + <synopsis>pinv(A,[tol])</synopsis> + </refsynopsisdiv> + <refsection> + <title>Paramètres</title> + <variablelist> + <varlistentry> + <term>A </term> + <listitem> + <para>matrice réelle ou complexe + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>tol </term> + <listitem> + <para>nombre réel + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal>X= pinv(A)</literal> renvoie une matrice <literal>X</literal> de mêmes dimensions que <literal>A'</literal> telle que : + </para> + <para> + <literal>A*X*A = A, X*A*X = X</literal> avec + <literal>A*X</literal> et <literal>X*A</literal> Hermitiennes. + </para> + <para> + Le calcul est basé sur une décomposition en valeurs singulières et + les valeurs singulières plus petites qu'une tolérance donnée + sont considérées comme nulles : pour cela utiliser la syntaxe + <literal>X=pinv(A,tol)</literal>. + </para> + </refsection> + <refsection> + <title>Exemples</title> + <programlisting role="example"><![CDATA[ +A=rand(5,2)*rand(2,4); +norm(A*pinv(A)*A-A,1) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Voir aussi</title> + <simplelist type="inline"> + <member> + <link linkend="rank">rank</link> + </member> + <member> + <link linkend="svd">svd</link> + </member> + <member> + <link linkend="qr">qr</link> + </member> + </simplelist> + </refsection> + <refsection> + <title>Fonctions Utilisées</title> + <para> + La fonction <literal>pinv</literal> est basée sur la decomposition en valeurs + singulières (fonction Scilab <literal>svd</literal>). + </para> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/fr_FR/linear/qr.xml b/modules/linear_algebra/help/fr_FR/linear/qr.xml new file mode 100755 index 000000000..3cb813d07 --- /dev/null +++ b/modules/linear_algebra/help/fr_FR/linear/qr.xml @@ -0,0 +1,194 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * 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 + * + --> +<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="qr"> + <refnamediv> + <refname>qr</refname> + <refpurpose>factorisation QR </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Séquence d'appel</title> + <synopsis>[Q,R]=qr(X [,"e"]) + [Q,R,E]=qr(X [,"e"]) + [Q,R,rk,E]=qr(X [,tol]) + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Paramètres</title> + <variablelist> + <varlistentry> + <term>X </term> + <listitem> + <para>matrice réelle ou complexe + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>tol </term> + <listitem> + <para>nombre réel positif + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Q </term> + <listitem> + <para>matrice carrée unitaire + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>R </term> + <listitem> + <para> + matrice de même dimensions que <literal>X</literal> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>E </term> + <listitem> + <para>matrice de permutation + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>rk </term> + <listitem> + <para> + entier (rang de <literal>X</literal>) + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal>[Q,R] = qr(X)</literal> renvoie une matrice triangulaire supérieure + <literal>R</literal> de même + dimensions que <literal>X</literal> et une matrice carrée othogonale + (unitaire dans le cas complexe) <literal>Q</literal> telles que + <literal>X = Q*R</literal>. + + <literal>[Q,R] = qr(X,"e")</literal> renvoie une decomposition de + taille réduite: si <literal>X</literal> est une matrice <literal>m x + n + </literal> + avec <literal>m > n</literal> alors seulement les + <literal>n</literal> premières colonnes de <literal>Q</literal> sont calculées + ainsi que les <literal>n</literal> premières lignes de + <literal>R</literal>. + </para> + <para> + Il découle de <literal>Q*R = X</literal> que la + <literal>k</literal>ième colonne de <literal>X</literal> peut s'exprimer comme + une combinaison linéaire des <literal>k</literal> premieres colonnes de + <literal>Q</literal> (avec les coefficients <literal>R(1,k), ..., + R(k,k) + </literal> + .Les <literal>k</literal> premieres colonnes de + <literal>Q</literal> forment une base orthogonale du sous espace généré + par les Les <literal>k</literal> premieres colonnes de + <literal>X</literal>. Si la colonne <literal>k</literal> de <literal>X</literal> est + une combinaison linéaire des <literal>p</literal> premiéres colonnes de + <literal>X</literal> alors les éléments <literal>R(p+1,k), ..., + R(k,k) + </literal> + sont nuls. Dans cette situation <literal>R</literal> est + une matrice trapézoidale supérieure. Si <literal>X</literal> est de rang + <literal>rk</literal> alors les lignes <literal>R(rk+1,:), R(rk+2,:), + ... + </literal> + sont nulles. + + </para> + <para> + <literal>[Q,R,E] = qr(X)</literal> renvoie une matrice de permutations (de + colonnes) <literal>E</literal>, + une matrice triangulaire supérieure <literal>R</literal> dont les + éléments diagonaux sont classés par ordre décroissant et une + matrice unitaire <literal>Q</literal> telles que <literal>X*E = Q*R</literal>. + si <literal>rk</literal> est le rang de <literal>X</literal> les + <literal>rk</literal> premiers éléménts diagonaux de <literal>R</literal> sont + tous non nuls. <literal>[Q,R,E] = qr(X,"e")</literal> renvoie une decomposition de + taille réduite: si <literal>X</literal> est une matrice <literal>m x + n + </literal> + avec <literal>m > n</literal> alors seulement les + <literal>n</literal> premières colonnes de <literal>Q</literal> sont calculées + ainsi que les <literal>n</literal> premières lignes de + <literal>R</literal>. + </para> + <para> + <literal>[Q,R,rk,E] = qr(X [,tol])</literal>renvoie de plus + <literal>rk</literal> =rang estimé de <literal>X</literal>. + Plus précisément, + <literal>rk</literal> est le nombre d'éléments diagonaux de + <literal>R</literal> supérieurs à <literal>tol</literal>. La valeur par défaut + de <literal>tol</literal> est <literal>R(1,1)*%eps*max(size(R))</literal> + </para> + <para> + renvoie <literal>rk</literal> = rang estimé de <literal>X</literal>. Ici, + <literal>rk</literal> est le nombre d'éléments diagonaux de <literal>R</literal> + supérieurs à <literal>R(1,1)*%eps*max(size(R)</literal>. + </para> + </refsection> + <refsection> + <title>Exemples</title> + <programlisting role="example"><![CDATA[ +// QR factorization, generic case +// X is tall (full rank) +X=rand(5,2);[Q,R]=qr(X); [Q'*X R] + +//X is fat (full rank) +X=rand(2,3);[Q,R]=qr(X); [Q'*X R] + +//Column 4 of X is a linear combination of columns 1 and 2: +X=rand(8,5);X(:,4)=X(:,1)+X(:,2); [Q,R]=qr(X); R, R(:,4) + +//X has rank 2, rows 3 to $ of R are zero: +X=rand(8,2)*rand(2,5);[Q,R]=qr(X); R + +//Evaluating the rank rk: column pivoting ==> rk first +//diagonal entries of R are non zero : +A=rand(5,2)*rand(2,5); +[Q,R,rk,E] = qr(A,1.d-10); +norm(Q'*A-R) +svd([A,Q(:,1:rk)]) //span(A) =span(Q(:,1:rk)) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Voir aussi</title> + <simplelist type="inline"> + <member> + <link linkend="rank">rank</link> + </member> + <member> + <link linkend="svd">svd</link> + </member> + <member> + <link linkend="rowcomp">rowcomp</link> + </member> + <member> + <link linkend="colcomp">colcomp</link> + </member> + </simplelist> + </refsection> + <refsection> + <title>Fonctions Utilisées</title> + <para>La décomposition QR est basée sur les routines Lapack DGEQRF, DGEQPF, + DORGQR pour les matrices réelles et ZGEQRF, ZGEQPF, ZORGQR pour le cas + complexe. + </para> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/fr_FR/markov/CHAPTER b/modules/linear_algebra/help/fr_FR/markov/CHAPTER new file mode 100755 index 000000000..deb78b04a --- /dev/null +++ b/modules/linear_algebra/help/fr_FR/markov/CHAPTER @@ -0,0 +1,2 @@ +title = Matrices de Markov + diff --git a/modules/linear_algebra/help/fr_FR/matrix/CHAPTER b/modules/linear_algebra/help/fr_FR/matrix/CHAPTER new file mode 100755 index 000000000..bb89125cd --- /dev/null +++ b/modules/linear_algebra/help/fr_FR/matrix/CHAPTER @@ -0,0 +1,2 @@ +title = Matrix Analysis + diff --git a/modules/linear_algebra/help/fr_FR/matrix/cond.xml b/modules/linear_algebra/help/fr_FR/matrix/cond.xml new file mode 100755 index 000000000..7c53f27ac --- /dev/null +++ b/modules/linear_algebra/help/fr_FR/matrix/cond.xml @@ -0,0 +1,160 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2008 - INRIA + * Copyright (C) 2012 - Scilab Enterprises - Adeline CARNIS + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + --> +<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="cond"> + <refnamediv> + <refname>cond</refname> + <refpurpose>conditionnement </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Séquence d'appel</title> + <synopsis> + c = cond(X) + c = cond(X, p) + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Paramètres</title> + <variablelist> + <varlistentry> + <term>X </term> + <listitem> + <para> + matrice réelle ou complexe. Si c = cond(X, p), X doit être une matrice carrée réelle ou complexe. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>p</term> + <listitem> + <para>scalaire ou chaine de caractères (valeur par défaut p = 2).</para> + </listitem> + </varlistentry> + <varlistentry> + <term>c</term> + <listitem> + <para>scalaire réel.</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <variablelist> + <varlistentry> + <term>c = cond(X)</term> + <listitem> + <para> + retourne le conditionnement en norme 2.<literal>cond(X)</literal> est le quotient entre + la plus grande et la plus petite valeur singulière de <literal>X</literal>. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>c = cond(X, p)</term> + <listitem> + <para> + retourne le conditionnement en norme p : <literal>norm(X, p) * norm(inv(X), p)</literal>. + Si <literal>p</literal> est spécifié, <literal>p</literal> est égal soit à : + </para> + <itemizedlist> + <listitem> + <para> + p = 1. <literal>cond(X, p)</literal> retourne le conditionnement en norme 1. + </para> + </listitem> + <listitem> + <para> + p = 2. <literal>cond(X, p)</literal> retourne le conditionnement en norme 2. + </para> + </listitem> + <listitem> + <para> + p = %inf or 'inf'. <literal>cond(X, p)</literal> retourne le conditionnement en norme infinie. + </para> + </listitem> + <listitem> + <para> + p = 'fro'. <literal>cond(X, p)</literal> retourne le conditionnement en norme de Frobenius. + </para> + </listitem> + </itemizedlist> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Exemples</title> + <programlisting role="example"> + <![CDATA[ +A=testmatrix('hilb',6); +// conditionnement en norme 2 +cond(A) +cond(A, 2) + +// conditionnement en norme 1 +cond(A, 1) + +// conditionnement en norme infinie +cond(A, %inf) + +// conditionnement en norme de Frobenius +cond(A, 'fro') + ]]> + </programlisting> + </refsection> + <refsection role="see also"> + <title>Voir aussi</title> + <simplelist type="inline"> + <member> + <link linkend="rcond">rcond</link> + </member> + <member> + <link linkend="svd">svd</link> + </member> + <member> + <link linkend="norm">norm</link> + </member> + </simplelist> + </refsection> + <refsection> + <title>Historique</title> + <revhistory> + <revision> + <revnumber>5.4.0</revnumber> + <revdescription> + <para> + Appel de <literal>cond(X)</literal>, où <literal>X</literal> est une matrice non + carrée, est maintenant gérée. Par exemple : + </para> + <programlisting role=""> + <![CDATA[ +X = [1 0; 1 -1; 0 1]; +cond(X) + ]]> + </programlisting> + <para> + Appel de <literal>cond(X, p)</literal> permet de calculer le contionnement + en norme p. Par exemple : + </para> + <programlisting role=""> + <![CDATA[ +X = [1 -6 0; 1 0 -4;1 0 2]; +cond(X, 1) // conditionnement en norme 1 (p = 1) + ]]> + </programlisting> + </revdescription> + </revision> + </revhistory> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/fr_FR/matrix/det.xml b/modules/linear_algebra/help/fr_FR/matrix/det.xml new file mode 100755 index 000000000..441b723c5 --- /dev/null +++ b/modules/linear_algebra/help/fr_FR/matrix/det.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) 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="fr" xml:id="det"> + <refnamediv> + <refname>det </refname> + <refpurpose>déterminant </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Séquence d'appel</title> + <synopsis>det(X) + [e,m]=det(X) + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Paramètres</title> + <variablelist> + <varlistentry> + <term>X </term> + <listitem> + <para>matrice carrée réelle ou complexe (creuse ou pleine), polynomiale ou rationnelle + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>m </term> + <listitem> + <para>nombre réel ou complexe, mantisse du déterminant en base 10 + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>e </term> + <listitem> + <para>entier, exposant du déterminant en base 10 + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal>det(X)</literal> ( <literal>m*10^e</literal> ) est le déterminant de la matrice carrée <literal>X</literal>. + </para> + <para> + Pour les matrices polynomiales <literal>det(X)</literal> est équivalent à <literal>determ(X)</literal>. + </para> + <para> + Pour les matrices rationnelles <literal>det(X)</literal> est équivalent à <literal>detr(X)</literal>. + </para> + </refsection> + <refsection> + <title>Exemples</title> + <programlisting role="example"><![CDATA[ +x=poly(0,'x'); +det([x,1+x;2-x,x^2]) +w=ssrand(2,2,4);roots(det(systmat(w))),trzeros(w) // zéros du système linéaire +A=rand(3,3); +det(A), prod(spec(A)) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Voir aussi</title> + <simplelist type="inline"> + <member> + <link linkend="detr">detr</link> + </member> + <member> + <link linkend="determ">determ</link> + </member> + </simplelist> + </refsection> + <refsection> + <title>Fonctions Utilisées</title> + <para> + Le calcul du determinant est basé sur les routines Lapack : + DGETRF pour les matrices réelles et ZGETRF pour le cas complexe. + </para> + <para> + Concernant le cas des matrices creuses, le calcul du déterminant est effectué + à partir de la décomposition LU de la librairie umfpack. + </para> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/fr_FR/matrix/orth.xml b/modules/linear_algebra/help/fr_FR/matrix/orth.xml new file mode 100755 index 000000000..1c190bc72 --- /dev/null +++ b/modules/linear_algebra/help/fr_FR/matrix/orth.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) 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="fr" xml:id="orth"> + <refnamediv> + <refname>orth</refname> + <refpurpose>calcul d'une base orthogonale </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Séquence d'appel</title> + <synopsis>Q=orth(A)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Paramètres</title> + <variablelist> + <varlistentry> + <term>A </term> + <listitem> + <para>matrice réelle ou complexe + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Q </term> + <listitem> + <para>matrice réelle ou complexe + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal>Q=orth(A)</literal> renvoie <literal>Q</literal>, une base + orthogonale de l'image de <literal>A</literal>. Im(<literal>Q</literal>) + = Im(<literal>A</literal>) et <literal>Q'*Q = I</literal>. + </para> + <para> + Le nombre de colonnes de <literal>Q</literal> est égal au rang de + <literal>A</literal>, comme déterminé par l'algorithme QR. + </para> + </refsection> + <refsection> + <title>Exemples</title> + <programlisting role="example"><![CDATA[ +A=rand(5,3)*rand(3,4); +[X,dim]=rowcomp(A);X=X'; +svd([orth(A),X(:,1:dim)]) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Voir aussi</title> + <simplelist type="inline"> + <member> + <link linkend="qr">qr</link> + </member> + <member> + <link linkend="rowcomp">rowcomp</link> + </member> + <member> + <link linkend="colcomp">colcomp</link> + </member> + <member> + <link linkend="range">range</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/fr_FR/matrix/rank.xml b/modules/linear_algebra/help/fr_FR/matrix/rank.xml new file mode 100755 index 000000000..06761fea1 --- /dev/null +++ b/modules/linear_algebra/help/fr_FR/matrix/rank.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) 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="fr" xml:id="rank"> + <refnamediv> + <refname>rank</refname> + <refpurpose>rang </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Séquence d'appel</title> + <synopsis>[i]=rank(X) + [i]=rank(X,tol) + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Paramètres</title> + <variablelist> + <varlistentry> + <term>X </term> + <listitem> + <para>matrice réelle ou complexe + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>tol </term> + <listitem> + <para>nombre réel positif + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal> rank(X)</literal> calcule le rang "numérique" de + <literal>X</literal> c'est à dire le nombre de ses valeurs + singulières supérieures à <literal>norm(size(X),'inf') * + norm(X) * %eps + </literal> + . + </para> + <para> + <literal>rank(X,tol)</literal> est le nombre de valeurs singulières de + <literal>X</literal> supérieures à <literal>tol</literal>. + </para> + <para> + <note> + Notez que la valeur par défaut de <literal>tol</literal> est + proportionnelle à <literal>norm(X)</literal>. Par exemple + </note> + </para> + <para> + <literal>rank([1.d-80,0;0,1.d-80])</literal> vaut 2 !. + </para> + </refsection> + <refsection> + <title>Exemples</title> + <programlisting role="example"><![CDATA[ +rank([1.d-80,0;0,1.d-80]) +rank([1,0;0,1.d-80]) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Voir aussi</title> + <simplelist type="inline"> + <member> + <link linkend="svd">svd</link> + </member> + <member> + <link linkend="qr">qr</link> + </member> + <member> + <link linkend="rowcomp">rowcomp</link> + </member> + <member> + <link linkend="colcomp">colcomp</link> + </member> + <member> + <link linkend="lu">lu</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/fr_FR/matrix/rcond.xml b/modules/linear_algebra/help/fr_FR/matrix/rcond.xml new file mode 100755 index 000000000..40f871b7f --- /dev/null +++ b/modules/linear_algebra/help/fr_FR/matrix/rcond.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) 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="fr" xml:id="rcond"> + <refnamediv> + <refname>rcond</refname> + <refpurpose>estimation de l'inverse du conditionnement </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Séquence d'appel</title> + <synopsis>rcond(X)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Paramètres</title> + <variablelist> + <varlistentry> + <term>X </term> + <listitem> + <para>matrice carrée réelle ou complexe + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal>rcond(X)</literal> est une estimation de l'inverse du conditionnement de <literal>X</literal> pour la norme l_1. + </para> + <para> + Si <literal>X</literal> est bien conditionnée, <literal>rcond(X)</literal> est proche 1. + Sinon, <literal>rcond(X)</literal> est proche de 0. + </para> + <para> + <literal>[r,z]=rcond(X)</literal> renvoie <literal>rcond(X)</literal> dans + <literal>r</literal> et renvoie aussi <literal>z</literal> tel que <literal>norm(X*z,1) = r*norm(X,1)*norm(z,1)</literal> + </para> + <para> + Ainsi, si <literal>rcond</literal> est très petit <literal>z</literal> est un vecteur se trouvant dans le noyau de X. + </para> + </refsection> + <refsection> + <title>Exemples</title> + <programlisting role="example"><![CDATA[ +A=diag([1:10]); +rcond(A) +A(1,1)=0.000001; +rcond(A) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Voir aussi</title> + <simplelist type="inline"> + <member> + <link linkend="svd">svd</link> + </member> + <member> + <link linkend="cond">cond</link> + </member> + <member> + <link linkend="inv">inv</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/fr_FR/matrix/trace.xml b/modules/linear_algebra/help/fr_FR/matrix/trace.xml new file mode 100755 index 000000000..f37190fa4 --- /dev/null +++ b/modules/linear_algebra/help/fr_FR/matrix/trace.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) 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="fr" xml:id="trace"> + <refnamediv> + <refname>trace </refname> + <refpurpose>trace d'une matrice </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Séquence d'appel</title> + <synopsis>trace(X)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Paramètres</title> + <variablelist> + <varlistentry> + <term>X </term> + <listitem> + <para>matrice carrée, réelle, complexe, polynomiale ou rationnelle. + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal>trace(X)</literal> calcule la trace de <literal>X</literal>. + </para> + <para> + Identique à <literal>sum(diag(X))</literal>. + </para> + </refsection> + <refsection> + <title>Exemples</title> + <programlisting role="example"><![CDATA[ +A=rand(3,3); +trace(A)-sum(spec(A)) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Voir aussi</title> + <simplelist type="inline"> + <member> + <link linkend="det">det</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/fr_FR/pencil/CHAPTER b/modules/linear_algebra/help/fr_FR/pencil/CHAPTER new file mode 100755 index 000000000..2c9344edc --- /dev/null +++ b/modules/linear_algebra/help/fr_FR/pencil/CHAPTER @@ -0,0 +1,2 @@ +title = Matrice compagnon + diff --git a/modules/linear_algebra/help/fr_FR/pencil/companion.xml b/modules/linear_algebra/help/fr_FR/pencil/companion.xml new file mode 100755 index 000000000..80fc6d410 --- /dev/null +++ b/modules/linear_algebra/help/fr_FR/pencil/companion.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) 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="fr" xml:id="companion"> + <refnamediv> + <refname>companion</refname> + <refpurpose>matrice compagnon </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Séquence d'appel</title> + <synopsis>A=companion(p)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Paramètres</title> + <variablelist> + <varlistentry> + <term>p </term> + <listitem> + <para>polynôme ou vecteur de polynômes + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>A </term> + <listitem> + <para>matrice carrée + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + Renvoie une matrice <literal>A</literal> dont le polynôme caractéristique est + <literal>p</literal> si <literal>p</literal> est unitaire (le coefficient de plus haut degré est égal à un). Si <literal>p</literal> n'est pas unitaire + le polynôme caractéristique de <literal>A</literal> est égal à + <literal>p/c</literal> où <literal>c</literal> est le coefficient de plus haut degré de <literal>p</literal>. + </para> + <para> + Si <literal>p</literal> est un vecteur de polynômes unitaires, <literal>A</literal> est bloc-diagonale, + et le polynôme caractéristique du i-ème bloc est égal à <literal>p(i)</literal>. + </para> + </refsection> + <refsection> + <title>Exemples</title> + <programlisting role="example"><![CDATA[ +s=poly(0,'s'); +p=poly([1,2,3,4,1],'s','c') +det(s*eye()-companion(p)) +roots(p) +spec(companion(p)) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Voir aussi</title> + <simplelist type="inline"> + <member> + <link linkend="spec">spec</link> + </member> + <member> + <link linkend="poly">poly</link> + </member> + <member> + <link linkend="randpencil">randpencil</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/fr_FR/pencil/glever.xml b/modules/linear_algebra/help/fr_FR/pencil/glever.xml new file mode 100755 index 000000000..784429a4f --- /dev/null +++ b/modules/linear_algebra/help/fr_FR/pencil/glever.xml @@ -0,0 +1,123 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * 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 + * + --> +<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="glever"> + <refnamediv> + <refname>glever</refname> + <refpurpose>inverse d'un faisceau de matrices </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Séquence d'appel</title> + <synopsis>[Bfs,Bis,chis]=glever(E,A [,s])</synopsis> + </refsynopsisdiv> + <refsection> + <title>Paramètres</title> + <variablelist> + <varlistentry> + <term>E, A </term> + <listitem> + <para>matrices carrées réelles de même dimensions + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>s </term> + <listitem> + <para> + chaîne de caractères (indéterminée des polynômes, '<literal>s</literal>' par défaut ) + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Bfs,Bis </term> + <listitem> + <para>deux matrices polynomiales + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>chis </term> + <listitem> + <para>polynôme + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + Calcul de + </para> + <para> + (s*E-A)^-1 + </para> + <para> + par l'algorithme généralisé de Leverrier pour un faisceau de matrices. + </para> + <programlisting role=""><![CDATA[ +(s*E-A)^-1 = (Bfs/chis) - Bis. + ]]></programlisting> + <para> + <literal>chis</literal> = polynôme caractéristique (à une constante multiplicative près). + </para> + <para> + <literal>Bfs</literal> = matrice polynomiale de numérateurs + </para> + <para> + <literal>Bis</literal> + = matrice polynomiale ( - développement de <literal>(s*E-A)^-1</literal> à l'infini). + </para> + <para> + Noter le signe - devant <literal>Bis</literal>. + </para> + <para> + </para> + </refsection> + <refsection> + <title>Attention</title> + <para> + Cette fonction utilise <literal>cleanp</literal> pour simplifier <literal>Bfs,Bis</literal> et <literal>chis</literal>. + </para> + </refsection> + <refsection> + <title>Exemples</title> + <programlisting role="example"><![CDATA[ +s=%s;F=[-1,s,0,0;0,-1,0,0;0,0,s-2,0;0,0,0,s-1]; +[Bfs,Bis,chis]=glever(F) +inv(F)-((Bfs/chis) - Bis) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Voir aussi</title> + <simplelist type="inline"> + <member> + <link linkend="rowshuff">rowshuff</link> + </member> + <member> + <link linkend="det">det</link> + </member> + <member> + <link linkend="invr">invr</link> + </member> + <member> + <link linkend="coffg">coffg</link> + </member> + <member> + <link linkend="pencan">pencan</link> + </member> + <member> + <link linkend="penlaur">penlaur</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/fr_FR/pencil/lyap.xml b/modules/linear_algebra/help/fr_FR/pencil/lyap.xml new file mode 100755 index 000000000..68e7a0eca --- /dev/null +++ b/modules/linear_algebra/help/fr_FR/pencil/lyap.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) 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="fr" xml:id="lyap"> + <refnamediv> + <refname>lyap </refname> + <refpurpose>Equation de Lyapunov </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Séquence d'appel</title> + <synopsis>[X]=lyap(A,C,flag)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Paramètres</title> + <variablelist> + <varlistentry> + <term>A, C </term> + <listitem> + <para> + matrices réelles, <literal>C</literal> doit être symétrique + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>flag </term> + <listitem> + <para>chaîne de caractères, 'c' ou 'd' + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal>X= lyap(A,C,flag)</literal> résout l'équation matricielle de + Lyapunov en temps continu ou discret + </para> + <programlisting role=""><![CDATA[ +A'*X + X*A = C ( flag = 'c' ) +A'*X*A - X = C ( flag = 'd' ) + ]]></programlisting> + <para> + Une solution unique existe si <literal>A</literal> n'a pas de valeur propre + sur l'axe imaginaire (<literal>flag='c'</literal>) ou si 1 n'est pas + valeur propre de <literal>A</literal> (<literal>flag='d'</literal>). + </para> + </refsection> + <refsection> + <title>Exemples</title> + <programlisting role="example"><![CDATA[ +A=rand(4,4);C=rand(A);C=C+C'; +X=lyap(A,C,'c'); +A'*X + X*A -C +X=lyap(A,C,'d'); +A'*X*A - X -C + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Voir aussi</title> + <simplelist type="inline"> + <member> + <link linkend="sylv">sylv</link> + </member> + <member> + <link linkend="ctr_gram">ctr_gram</link> + </member> + <member> + <link linkend="obs_gram">obs_gram</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/fr_FR/proj.xml b/modules/linear_algebra/help/fr_FR/proj.xml new file mode 100755 index 000000000..5bd02b507 --- /dev/null +++ b/modules/linear_algebra/help/fr_FR/proj.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) 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="fr" xml:id="proj"> + <refnamediv> + <refname>proj</refname> + <refpurpose>projection </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Séquence d'appel</title> + <synopsis>P = proj(X1,X2)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Paramètres</title> + <variablelist> + <varlistentry> + <term>X1,X2 </term> + <listitem> + <para>deux matrices réelles avec un nombre identique de colonnes. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>P </term> + <listitem> + <para> + matrice réelle de projection (<literal>P^2=P</literal>) + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal>P</literal> est la projection sur <literal>X2</literal> parallèlement à <literal>X1</literal>. + </para> + </refsection> + <refsection> + <title>Exemples</title> + <programlisting role="example"><![CDATA[ +X1=rand(5,2);X2=rand(5,3); +P=proj(X1,X2); +norm(P^2-P,1) +trace(P) // il s'agit de dim(X2) +[Q,M]=fullrf(P); +svd([Q,X2]) // Im(Q) = Im(X2) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Voir aussi</title> + <simplelist type="inline"> + <member> + <link linkend="projspec">projspec</link> + </member> + <member> + <link linkend="orth">orth</link> + </member> + <member> + <link linkend="fullrf">fullrf</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/fr_FR/state_space/CHAPTER b/modules/linear_algebra/help/fr_FR/state_space/CHAPTER new file mode 100755 index 000000000..9f51d7351 --- /dev/null +++ b/modules/linear_algebra/help/fr_FR/state_space/CHAPTER @@ -0,0 +1 @@ +title = State-Space Matrices diff --git a/modules/linear_algebra/help/fr_FR/state_space/coff.xml b/modules/linear_algebra/help/fr_FR/state_space/coff.xml new file mode 100755 index 000000000..e69a389ef --- /dev/null +++ b/modules/linear_algebra/help/fr_FR/state_space/coff.xml @@ -0,0 +1,99 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * 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 + * + --> +<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="coff"> + <refnamediv> + <refname>coff</refname> + <refpurpose>résolvante (méthode des cofacteurs) </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Séquence d'appel</title> + <synopsis>[N,d]=coff(M [,var])</synopsis> + </refsynopsisdiv> + <refsection> + <title>Paramètres</title> + <variablelist> + <varlistentry> + <term>M </term> + <listitem> + <para>matrice carrée réelle + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>var </term> + <listitem> + <para>chaîne de caractères (indéterminée des polynômes) + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>N </term> + <listitem> + <para> + matrice de polynômes (de même taille que <literal>M</literal>) + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>d </term> + <listitem> + <para> + polynôme (polynôme caractéristique de M : <literal>poly(M,var)</literal>) + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal>coff</literal> calcule R=<literal>(s*eye()-M)^-1</literal> pour <literal>M</literal> une matrice réelle. + R est donnée par <literal>N/d</literal>. + </para> + <para> + <literal>N</literal> = matrice des numérateurs (polynômes). + </para> + <para> + <literal>d</literal> = dénominateur commun. + </para> + <para> + <literal>var</literal> chaîne de caractères (indéterminée des polynômes, '<literal>s</literal>' par défaut) + </para> + </refsection> + <refsection> + <title>Exemples</title> + <programlisting role="example"><![CDATA[ +M=[1,2;0,3]; +[N,d]=coff(M) +N/d +inv(%s*eye()-M) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Voir aussi</title> + <simplelist type="inline"> + <member> + <link linkend="coffg">coffg</link> + </member> + <member> + <link linkend="ss2tf">ss2tf</link> + </member> + <member> + <link linkend="nlev">nlev</link> + </member> + <member> + <link linkend="poly">poly</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/fr_FR/state_space/nlev.xml b/modules/linear_algebra/help/fr_FR/state_space/nlev.xml new file mode 100755 index 000000000..f309b8233 --- /dev/null +++ b/modules/linear_algebra/help/fr_FR/state_space/nlev.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) 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="fr" xml:id="nlev"> + <refnamediv> + <refname>nlev</refname> + <refpurpose>Algorithme de Leverrier </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Séquence d'appel</title> + <synopsis>[num,den]=nlev(A,z [,rmax])</synopsis> + </refsynopsisdiv> + <refsection> + <title>Paramètres</title> + <variablelist> + <varlistentry> + <term>A </term> + <listitem> + <para>matrice réelle carrée + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>z </term> + <listitem> + <para>chaîne de caractères + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>rmax </term> + <listitem> + <para> + paramètre optionnel (voir <literal>bdiag</literal>) + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para> + <literal>[num,den]=nlev(A,z [,rmax])</literal> calcule + <literal>(z*eye()-A)^(-1)</literal> par bloc diagonalisation de + <literal>A</literal> suivie de l'algorithme de Leverrier sur chaque + bloc. + </para> + <para> + Cet algorithme est plus efficace que l'algorithme de + Leverrier seul, mais il n'est toujours pas parfait ! + </para> + </refsection> + <refsection> + <title>Exemples</title> + <programlisting role="example"><![CDATA[ +A=rand(3,3);x=poly(0,'x'); +[NUM,den]=nlev(A,'x') +clean(den-poly(A,'x')) +clean(NUM/den-inv(x*eye()-A)) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Voir aussi</title> + <simplelist type="inline"> + <member> + <link linkend="coff">coff</link> + </member> + <member> + <link linkend="coffg">coffg</link> + </member> + <member> + <link linkend="glever">glever</link> + </member> + <member> + <link linkend="ss2tf">ss2tf</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/fr_FR/subspaces/CHAPTER b/modules/linear_algebra/help/fr_FR/subspaces/CHAPTER new file mode 100755 index 000000000..90541a88e --- /dev/null +++ b/modules/linear_algebra/help/fr_FR/subspaces/CHAPTER @@ -0,0 +1,2 @@ +title = Sous-espaces + diff --git a/modules/linear_algebra/help/ja_JP/addchapter.sce b/modules/linear_algebra/help/ja_JP/addchapter.sce new file mode 100755 index 000000000..4b62a3ac7 --- /dev/null +++ b/modules/linear_algebra/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("Linear Algebra",SCI+"/modules/linear_algebra/help/ja_JP",%T); + diff --git a/modules/linear_algebra/help/ja_JP/eigen/CHAPTER b/modules/linear_algebra/help/ja_JP/eigen/CHAPTER new file mode 100755 index 000000000..88f8bc42b --- /dev/null +++ b/modules/linear_algebra/help/ja_JP/eigen/CHAPTER @@ -0,0 +1,2 @@ +title = Eigenvalue and Singular Value + diff --git a/modules/linear_algebra/help/ja_JP/eigen/balanc.xml b/modules/linear_algebra/help/ja_JP/eigen/balanc.xml new file mode 100755 index 000000000..b150c2ea6 --- /dev/null +++ b/modules/linear_algebra/help/ja_JP/eigen/balanc.xml @@ -0,0 +1,203 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + * 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 + * + --> + +<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="balanc"> + + <refnamediv> + + <refname>balanc</refname> + + <refpurpose>行列ã¾ãŸã¯ãƒšãƒ³ã‚·ãƒ«ã®å¹³è¡¡åŒ–</refpurpose> + + </refnamediv> + + <refsynopsisdiv> + + <title>呼ã³å‡ºã—æ‰‹é †</title> + + <synopsis>[Ab,X]=balanc(A) + + [Eb,Ab,X,Y]=balanc(E,A) + + </synopsis> + + </refsynopsisdiv> + + <refsection> + + <title>引数</title> + + <variablelist> + + <varlistentry> + + <term>A: </term> + + <listitem> + + <para>実数æ£æ–¹è¡Œåˆ—</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>X: </term> + + <listitem> + + <para>å¯é€†ãªå®Ÿæ•°æ£æ–¹è¡Œåˆ—</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>E: </term> + + <listitem> + + <para> + + 実数æ£æ–¹è¡Œåˆ— (<literal>A</literal>ã¨åŒã˜æ¬¡å…ƒ) + + </para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>Y: </term> + + <listitem> + + <para>å¯é€†ãªå®Ÿæ•°æ£æ–¹è¡Œåˆ—.</para> + + </listitem> + + </varlistentry> + + </variablelist> + + </refsection> + + <refsection> + + <title>説明</title> + + <para> + + æ£æ–¹è¡Œåˆ—ã®æ¡ä»¶æ•°ã‚’改善ã™ã‚‹ãŸã‚ã«å¹³è¡¡åŒ–ã—ã¾ã™. + + </para> + + <para> + + <literal>[Ab,X] = balanc(A)</literal> ã¯, + + 以下ã®ã‚ˆã†ãªç›¸ä¼¼å¤‰æ›<literal>X</literal>を見ã¤ã‘ã¾ã™: + + </para> + + <para> + + <literal>Ab = inv(X)*A*X</literal>ãŒè¿‘似的ã«ç‰ã—ã„ + + 行ノルムãŠã‚ˆã³åˆ—ノルムを有ã™ã‚‹. + + </para> + + <para> + + 行列ペンシルã®å ´åˆ,平衡化ã¯ä¸€èˆ¬åŒ–固有値å•é¡Œã‚’改善ã™ã‚‹ã“ã¨ã«ã‚ˆã‚Š + + è¡Œã‚ã‚Œã¾ã™. + + </para> + + <para> + + <literal>[Eb,Ab,X,Y] = balanc(E,A)</literal> ã¯, + + <literal>Eb=inv(X)*E*Y, Ab=inv(X)*A*Y</literal> ã¨ãªã‚‹ã‚ˆã†ãª + + å·¦ãŠã‚ˆã³å³å¤‰æ› + + <literal>X</literal> ãŠã‚ˆã³ <literal>Y</literal> ã‚’è¿”ã—ã¾ã™. + + </para> + + </refsection> + + <refsection> + + <title>注æ„</title> + + <para> + + 平衡化ã¯é–¢æ•°<literal>bdiag</literal> ãŠã‚ˆã³ <literal>spec</literal> + + ã§è¡Œã‚ã‚Œã¾ã™. + + </para> + + </refsection> + + <refsection> + + <title>例</title> + + <programlisting role="example"><![CDATA[ +A=[1/2^10,1/2^10;2^10,2^10]; +[Ab,X]=balanc(A); +norm(A(1,:))/norm(A(2,:)) +norm(Ab(1,:))/norm(Ab(2,:)) + ]]></programlisting> + + </refsection> + + <refsection role="see also"> + + <title>å‚ç…§</title> + + <simplelist type="inline"> + + <member> + + <link linkend="bdiag">bdiag</link> + + </member> + + <member> + + <link linkend="spec">spec</link> + + </member> + + <member> + + <link linkend="schur">schur</link> + + </member> + + </simplelist> + + </refsection> + +</refentry> + diff --git a/modules/linear_algebra/help/ja_JP/eigen/bdiag.xml b/modules/linear_algebra/help/ja_JP/eigen/bdiag.xml new file mode 100755 index 000000000..ba3a9117c --- /dev/null +++ b/modules/linear_algebra/help/ja_JP/eigen/bdiag.xml @@ -0,0 +1,189 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + * 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 + * + --> + +<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="bdiag"> + + <refnamediv> + + <refname>bdiag</refname> + + <refpurpose>ブãƒãƒƒã‚¯å¯¾è§’化, 一般化固有ベクトル</refpurpose> + + </refnamediv> + + <refsynopsisdiv> + + <title>呼ã³å‡ºã—æ‰‹é †</title> + + <synopsis>[Ab [,X [,bs]]]=bdiag(A [,rmax])</synopsis> + + </refsynopsisdiv> + + <refsection> + + <title>引数</title> + + <variablelist> + + <varlistentry> + + <term>A</term> + + <listitem> + + <para>実数ã¾ãŸã¯è¤‡ç´ æ•°ã®æ£æ–¹è¡Œåˆ—</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>rmax</term> + + <listitem> + + <para>実数</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>Ab</term> + + <listitem> + + <para>実数ã¾ãŸã¯è¤‡ç´ æ•°ã®æ£æ–¹è¡Œåˆ—</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>X</term> + + <listitem> + + <para>実数ã¾ãŸã¯è¤‡ç´ æ•°ã®æ£å‰‡è¡Œåˆ—</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>bs</term> + + <listitem> + + <para>整数ベクトル</para> + + </listitem> + + </varlistentry> + + </variablelist> + + </refsection> + + <refsection> + + <title>説明</title> + + <programlisting role=""><![CDATA[ +[Ab [,X [,bs]]]=bdiag(A [,rmax]) + ]]></programlisting> + + <para> + + ã¯,行列<literal>A</literal>ã®ãƒ–ãƒãƒƒã‚¯å¯¾è§’化を行ãªã„ã¾ã™. + + bs ã¯ãƒ–ãƒãƒƒã‚¯ã®æ§‹é€ (個々ã®ãƒ–ãƒãƒƒã‚¯ã®å¤§ãã•)を出力ã—ã¾ã™. + + <literal>X</literal> ã¯åŸºåº•å¤‰æ›ã§ã™. + + ã™ãªã‚ã¡, <literal>Ab = inv(X)*A*X</literal> ã¯ãƒ–ãƒãƒƒã‚¯å¯¾è§’ã§ã™. + + </para> + + <para> + + <literal>rmax</literal> ã¯<literal>X</literal>ã® + + æ¡ä»¶æ•°ã‚’制御ã—ã¾ã™; + + デフォルト値㯠<literal>A</literal> ã® l1ノルムã§ã™. + + </para> + + <para> + + (å˜åœ¨ã™ã‚‹å ´åˆ,)対角形å¼ã‚’å¾—ã‚‹ã«ã¯<literal>rmax</literal>ã« + + 大ããªå€¤ã‚’指定ã—ã¾ã™(例ãˆã°,<literal>rmax=1/%eps</literal>). + + 一般ã«(ランダムãªå®Ÿæ•°ã® Aã®å ´åˆ) ブãƒãƒƒã‚¯ã¯ (1x1) ãŠã‚ˆã³ (2x2) ã§, + + <literal>X</literal> ã¯å›ºæœ‰å€¤ã®è¡Œåˆ—ã§ã™. + + </para> + + </refsection> + + <refsection> + + <title>例</title> + + <programlisting role="example"><![CDATA[ +//実数ã®å ´åˆ: 1x1 ãŠã‚ˆã³ 2x2 ブãƒãƒƒã‚¯ +a=rand(5,5);[ab,x,bs]=bdiag(a);ab +//è¤‡ç´ æ•°ã®å ´åˆ: è¤‡ç´ æ•° 1x1 ブãƒãƒƒã‚¯ +[ab,x,bs]=bdiag(a+%i*0);ab + ]]></programlisting> + + </refsection> + + <refsection role="see also"> + + <title>å‚ç…§</title> + + <simplelist type="inline"> + + <member> + + <link linkend="schur">schur</link> + + </member> + + <member> + + <link linkend="sylv">sylv</link> + + </member> + + <member> + + <link linkend="spec">spec</link> + + </member> + + </simplelist> + + </refsection> + +</refentry> + diff --git a/modules/linear_algebra/help/ja_JP/eigen/gschur.xml b/modules/linear_algebra/help/ja_JP/eigen/gschur.xml new file mode 100755 index 000000000..2f42eb262 --- /dev/null +++ b/modules/linear_algebra/help/ja_JP/eigen/gschur.xml @@ -0,0 +1,180 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + * 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 + * + --> + +<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="gschur"> + + <refnamediv> + + <refname>gschur</refname> + + <refpurpose> + + 一般化Schur分解. + + <emphasis role="bold">ã“ã®é–¢æ•°ã¯å»ƒæ¢ã•ã‚Œã¾ã—ãŸ.</emphasis> + + </refpurpose> + + </refnamediv> + + <refsynopsisdiv> + + <title>呼ã³å‡ºã—æ‰‹é †</title> + + <synopsis>[As,Es]=gschur(A,E) + + [As,Es,Q,Z]=gschur(A,E) + + [As,Es,Z,dim] = gschur(A,E,flag) + + [As,Es,Z,dim]= gschur(A,E,extern) + + </synopsis> + + </refsynopsisdiv> + + <refsection> + + <title>説明</title> + + <para> + + ã“ã®é–¢æ•°ã¯å»ƒæ¢ã•ã‚Œã¦ãŠã‚Š, <literal>schur</literal>関数ã«çµ±åˆã•ã‚Œã¦ã„ã¾ã™. + + 多ãã®å ´åˆ, <literal>gschur</literal>関数ã¯ä»¥å‰ã¨åŒæ§˜ã«å‹•ä½œã—ã¾ã™ãŒ, + + å°†æ¥ã®ãƒªãƒªãƒ¼ã‚¹ã§ã¯å‰Šé™¤ã•ã‚Œã‚‹äºˆå®šã§ã™. + + </para> + + <para> + + 最åˆã®3ã¤ã®æ§‹æ–‡ã¯ä»¥ä¸‹ã®ã‚ˆã†ã«ç½®ãæ›ãˆã‚‹ã“ã¨ãŒã§ãã¾ã™ + + </para> + + <programlisting role=""><![CDATA[ +[As,Es]=schur(A,E) +[As,Es,Q,Z]=schur(A,E);Q=Q' //NOTE THE TRANPOSITION HERE +[As,Es,Z,dim] = schur(A,E,flag) + ]]></programlisting> + + <para> + + 最後ã®æ§‹æ–‡ã¯ã•ã‚‰ã«è‹¥å¹²ã®èª¿æ•´ãŒå¿…è¦ã§ã™: + + </para> + + <variablelist> + + <varlistentry> + + <term>ã‚‚ã—,</term> + + <listitem> + + <para> + + extern ãŒã€€Scilab関数ã®å ´åˆ, + + Nextern を以下ã®ã‚ˆã†ã«å®šç¾©ã™ã‚‹ã¨, + + æ–°ã—ã„呼ã³å‡ºã—æ‰‹é †ã¯, + + <literal>[As,Es,Z,dim]= schur(A,E,Nextern)</literal> + + ã¨ãªã‚Šã¾ã™: + + </para> + + <programlisting role=""><![CDATA[ +function t=Nextern(R) +if R(2)==0 then + t=extern([1,R(1),R(3)])==1 +else + c=(R(1)+%i*R(2))/R(3) + t=extern([2,real(c+c'),real(c*c')])==1 +end +endfunction + ]]></programlisting> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>ã‚‚ã—,</term> + + <listitem> + + <para> + + extern ã¯,Fortran ã¾ãŸã¯ Cã§è¨˜è¿°ã•ã‚ŒãŸå¤–部関数ã®åå‰ã®å ´åˆ, + + nextern を以下ã®ã‚ˆã†ã«å®šç¾©ã™ã‚‹ã¨ + + æ–°ã—ã„呼ã³å‡ºã—æ‰‹é †ã¯, + + <literal>[As,Es,Z,dim]= schur(A,E,'nextern')</literal> + + ã®ã‚ˆã†ã«ãªã‚Šã¾ã™: + + </para> + + </listitem> + + </varlistentry> + + </variablelist> + + <programlisting role=""><![CDATA[ +logical function nextern(ar,ai,beta) +double precision ar,ai,beta +integer r,extern +if (ai.eq.0.0d0) then + r=extern(1,ar,beta,0.0d0,0.0d0) +else + r=extern(2,0.0d0,0.0d0,2.0d0*ar,ar*ar+ai*ai) +endif +nextern=r.eq.1 +end + ]]></programlisting> + + </refsection> + + <refsection role="see also"> + + <title>å‚ç…§</title> + + <simplelist type="inline"> + + <member> + + <link linkend="external">external</link> + + </member> + + <member> + + <link linkend="schur">schur</link> + + </member> + + </simplelist> + + </refsection> + +</refentry> + diff --git a/modules/linear_algebra/help/ja_JP/eigen/gspec.xml b/modules/linear_algebra/help/ja_JP/eigen/gspec.xml new file mode 100755 index 000000000..fffb2f624 --- /dev/null +++ b/modules/linear_algebra/help/ja_JP/eigen/gspec.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) 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="gspec"> + + <refnamediv> + + <refname>gspec</refname> + + <refpurpose> + + 行列ペンシルã®å›ºæœ‰å€¤. + + <emphasis role="bold">ã“ã®é–¢æ•°ã¯å»ƒæ¢ã•ã‚Œã¾ã—ãŸ.</emphasis> + + </refpurpose> + + </refnamediv> + + <refsynopsisdiv> + + <title>呼ã³å‡ºã—æ‰‹é †</title> + + <synopsis>[al,be]=gspec(A,E) + + [al,be,Z]=gspec(A,E) + + </synopsis> + + </refsynopsisdiv> + + <refsection> + + <title>説明</title> + + <para> + + ã“ã®é–¢æ•°ã¯ç¾åœ¨ã§ã¯ <literal>spec</literal> 関数ã«çµ±åˆã•ã‚Œã¦ã„ã¾ã™. + + 呼ã³å‡ºã—æ‰‹é †ã¯ä»¥ä¸‹ã®ã‚ˆã†ã«ç½®ãæ›ã‚‰ã‚Œã¦ã„ã¾ã™ + + </para> + + <programlisting role=""><![CDATA[ +[al,be]=spec(A,E) +[al,be,Z]=spec(A,E) + ]]></programlisting> + + </refsection> + + <refsection role="see also"> + + <title>å‚ç…§</title> + + <simplelist type="inline"> + + <member> + + <link linkend="spec">spec</link> + + </member> + + </simplelist> + + </refsection> + +</refentry> + diff --git a/modules/linear_algebra/help/ja_JP/eigen/hess.xml b/modules/linear_algebra/help/ja_JP/eigen/hess.xml new file mode 100755 index 000000000..9ffb1de41 --- /dev/null +++ b/modules/linear_algebra/help/ja_JP/eigen/hess.xml @@ -0,0 +1,179 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + * 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 + * + --> + +<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="hess"> + + <refnamediv> + + <refname>hess</refname> + + <refpurpose>ヘッセンベルク形å¼</refpurpose> + + </refnamediv> + + <refsynopsisdiv> + + <title>呼ã³å‡ºã—æ‰‹é †</title> + + <synopsis>H = hess(A) + + [U,H] = hess(A) + + </synopsis> + + </refsynopsisdiv> + + <refsection> + + <title>引数</title> + + <variablelist> + + <varlistentry> + + <term>A</term> + + <listitem> + + <para>実数ã¾ãŸã¯è¤‡ç´ æ•°ã®æ£æ–¹è¡Œåˆ—</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>H</term> + + <listitem> + + <para>実数ã¾ãŸã¯è¤‡ç´ æ•°ã®æ£æ–¹è¡Œåˆ—</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>U</term> + + <listitem> + + <para>直交ã¾ãŸã¯ãƒ¦ãƒ‹ã‚¿ãƒªæ£æ–¹è¡Œåˆ—</para> + + </listitem> + + </varlistentry> + + </variablelist> + + </refsection> + + <refsection> + + <title>説明</title> + + <para> + + <literal>[U,H] = hess(A)</literal> ã¯, + + <literal>A = U*H*U'</literal> ãŠã‚ˆã³ <literal>U'*U</literal> =å˜ä½è¡Œåˆ— ã¨ãªã‚‹ã‚ˆã†ãª + + ユニタリ行列<literal>U</literal> ãŠã‚ˆã³ãƒ˜ãƒƒã‚»ãƒ³ãƒ™ãƒ«ã‚¯è¡Œåˆ—<literal>H</literal>を出力ã—ã¾ã™. + + ã“ã‚Œã«ã‚ˆã‚Š, <literal>hess(A)</literal> 㯠<literal>H</literal>ã‚’è¿”ã—ã¾ã™. + + </para> + + <para>行列ã®ãƒ˜ãƒƒã‚»ãƒ³ãƒ™ãƒ«ã‚¯å½¢å¼ã¯æœ€åˆã®å‰¯å¯¾è§’線以下ã§ã¯ 0ã¨ãªã‚Šã¾ã™. + + ã“ã®è¡Œåˆ—ãŒå¯¾ç§°ã¾ãŸã¯ã‚¨ãƒ«ãƒŸãƒ¼ãƒˆè¡Œåˆ—ã®å ´åˆ, + + å½¢ã¯3é‡å¯¾è§’ã¨ãªã‚Šã¾ã™. + + </para> + + </refsection> + + <refsection> + + <title>リファレンス</title> + + <para> + + hess 関数㯠Lapack ルーãƒãƒ³ + + DGEHRD, DORGHR (実数行列ã®å ´åˆ) ãŠã‚ˆã³ ZGEHRD, ZORGHR (è¤‡ç´ æ•°è¡Œåˆ—ã®å ´åˆ)ã«åŸºã¥ã„ã¦ã„ã¾ã™. + + </para> + + </refsection> + + <refsection> + + <title>例</title> + + <programlisting role="example"><![CDATA[ +A=rand(3,3);[U,H]=hess(A); +and( abs(U*H*U'-A)<1.d-10 ) + ]]></programlisting> + + </refsection> + + <refsection role="see also"> + + <title>å‚ç…§</title> + + <simplelist type="inline"> + + <member> + + <link linkend="qr">qr</link> + + </member> + + <member> + + <link linkend="contr">contr</link> + + </member> + + <member> + + <link linkend="schur">schur</link> + + </member> + + </simplelist> + + </refsection> + + <refsection> + + <title>使用ã•ã‚Œã‚‹é–¢æ•°</title> + + <para> + + <literal>hess</literal> 関数ã¯Lapack ルーãƒãƒ³ + + DGEHRD, DORGHR (実数行列ã®å ´åˆ) ãŠã‚ˆã³ ZGEHRD, ZORGHR (è¤‡ç´ æ•°è¡Œåˆ—ã®å ´åˆ)ã« + + 基ã¥ã„ã¦ã„ã¾ã™. + + </para> + + </refsection> + +</refentry> + diff --git a/modules/linear_algebra/help/ja_JP/eigen/pbig.xml b/modules/linear_algebra/help/ja_JP/eigen/pbig.xml new file mode 100755 index 000000000..feaaa4c4c --- /dev/null +++ b/modules/linear_algebra/help/ja_JP/eigen/pbig.xml @@ -0,0 +1,234 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + * 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 + * + --> + +<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="pbig"> + + <refnamediv> + + <refname>pbig</refname> + + <refpurpose>固有投影</refpurpose> + + </refnamediv> + + <refsynopsisdiv> + + <title>呼ã³å‡ºã—æ‰‹é †</title> + + <synopsis>[Q,M]=pbig(A,thres,flag)</synopsis> + + </refsynopsisdiv> + + <refsection> + + <title>引数</title> + + <variablelist> + + <varlistentry> + + <term>A</term> + + <listitem> + + <para>実数æ£æ–¹è¡Œåˆ—</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>thres</term> + + <listitem> + + <para>実数</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>flag</term> + + <listitem> + + <para> + + æ–‡å—列 (<literal>'c'</literal> ã¾ãŸã¯ <literal>'d'</literal>) + + </para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>Q,M</term> + + <listitem> + + <para>実数行列</para> + + </listitem> + + </varlistentry> + + </variablelist> + + </refsection> + + <refsection> + + <title>説明</title> + + <para> + + 実部>= <literal>thres</literal> (<literal>flag='c'</literal>) + + ã¾ãŸã¯ + + 大ãã•>= <literal>thres</literal>(<literal>flag='d'</literal>) + + ã®å›ºæœ‰å€¤ã‚’有ã™ã‚‹å›ºæœ‰å€¤-部分空間ã¸ã®æŠ•å½±. + + </para> + + <para> + + 投影ã¯<literal>Q*M</literal>ã«ã‚ˆã‚Šå®šç¾©ã•ã‚Œ,<literal>Q</literal> + + ã¯åˆ—フルランク, <literal>M</literal>ã¯è¡Œãƒ•ãƒ«ãƒ©ãƒ³ã‚¯ãŠã‚ˆã³ + + <literal>M*Q=eye</literal>. + + </para> + + <para> + + <literal>flag='c'</literal>ã®å ´åˆ, + + <literal>M*A*Q</literal>ã®å›ºæœ‰å€¤ = 実部>= <literal>thres</literal> + + ã®<literal>A</literal>ã®å›ºæœ‰å€¤ã¨ãªã‚Šã¾ã™. + + </para> + + <para> + + <literal>flag='d'</literal>ã®å ´åˆ, + + <literal>M*A*Q</literal>ã®å›ºæœ‰å€¤ = 大ãã•>= <literal>thres</literal>ã® + + <literal>A</literal>ã®å›ºæœ‰å€¤ã¨ãªã‚Šã¾ã™. + + </para> + + <para> + + <literal>flag='c'</literal> ã®å ´åˆ,ãã—㦠+ + <literal>[Q1,M1]</literal> = <literal>eye()-Q*M</literal>ã® + + フルランク分解 (<literal>fullrf</literal>)ã®å ´åˆ, + + <literal>M1*A*Q1</literal>ã®å›ºæœ‰å€¤ = + + 実部 < <literal>thres</literal>ã®<literal>A</literal>ã®å›ºæœ‰å€¤ã¨ãªã‚Šã¾ã™. + + </para> + + <para> + + <literal>flag='d'</literal>ã®å ´åˆ,ãã—㦠<literal>[Q1,M1]</literal> = + + <literal>eye()-Q*M</literal>ã®ãƒ•ãƒ«ãƒ©ãƒ³ã‚¯åˆ†è§£ (<literal>fullrf</literal>)ã®å ´åˆ, + + <literal>M1*A*Q1</literal>ã®å›ºæœ‰å€¤ =大ãã• <<literal>thres</literal>ã® + + <literal>A</literal>ã®å›ºæœ‰å€¤ã¨ãªã‚Šã¾ã™. + + </para> + + </refsection> + + <refsection> + + <title>例</title> + + <programlisting role="example"><![CDATA[ +A=diag([1,2,3]);X=rand(A);A=inv(X)*A*X; +[Q,M]=pbig(A,1.5,'d'); +spec(M*A*Q) +[Q1,M1]=fullrf(eye()-Q*M); +spec(M1*A*Q1) + ]]></programlisting> + + </refsection> + + <refsection role="see also"> + + <title>å‚ç…§</title> + + <simplelist type="inline"> + + <member> + + <link linkend="psmall">psmall</link> + + </member> + + <member> + + <link linkend="projspec">projspec</link> + + </member> + + <member> + + <link linkend="fullrf">fullrf</link> + + </member> + + <member> + + <link linkend="schur">schur</link> + + </member> + + </simplelist> + + </refsection> + + <refsection> + + <title>使用ã•ã‚Œã‚‹é–¢æ•°</title> + + <para> + + <literal>pbig</literal> 㯠+ + ソートã•ã‚ŒãŸ Schur å½¢å¼ã«åŸºã¥ã„ã¦ã„ã¾ã™ + + (Scilab関数 <literal>schur</literal>). + + </para> + + </refsection> + +</refentry> + diff --git a/modules/linear_algebra/help/ja_JP/eigen/projspec.xml b/modules/linear_algebra/help/ja_JP/eigen/projspec.xml new file mode 100755 index 000000000..351331f8e --- /dev/null +++ b/modules/linear_algebra/help/ja_JP/eigen/projspec.xml @@ -0,0 +1,165 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + * 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 + * + --> + +<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="projspec"> + + <refnamediv> + + <refname>projspec</refname> + + <refpurpose>スペクトル演算å</refpurpose> + + </refnamediv> + + <refsynopsisdiv> + + <title>呼ã³å‡ºã—æ‰‹é †</title> + + <synopsis>[S,P,D,i]=projspec(A)</synopsis> + + </refsynopsisdiv> + + <refsection> + + <title>引数</title> + + <variablelist> + + <varlistentry> + + <term>A</term> + + <listitem> + + <para>æ£æ–¹è¡Œåˆ—</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>S, P, D</term> + + <listitem> + + <para>sæ£æ–¹è¡Œåˆ—</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>i</term> + + <listitem> + + <para> + + æ•´æ•° (<literal>A</literal>ã®ã‚¼ãƒå›ºæœ‰å€¤ã®æ·»å—). + + </para> + + </listitem> + + </varlistentry> + + </variablelist> + + </refsection> + + <refsection> + + <title>説明</title> + + <para> + + <literal>A</literal>ã®0ã«ãŠã‘るスペクトル特性. + + </para> + + <para> + + <literal>S</literal> = 0ã«ãŠã‘る縮å°ãƒ¬ã‚¾ãƒ«ãƒ™ãƒ³ãƒˆ + + (<literal>S</literal> = -Drazin_inverse(<literal>A</literal>)). + + </para> + + <para> + + <literal>P</literal> = 0ã«ãŠã‘るスペクトル投影. + + </para> + + <para> + + <literal>D</literal> = 0ã«ãŠã‘る冪零演算å. + + </para> + + <para> + + <literal>index</literal> = 0固有値ã®æ·»å—. + + </para> + + <para> + + 特異点s=0ã®å‘¨ã‚Šã§ã® + + <literal>(s*eye()-A)^(-1) = D^(i-1)/s^i +... + D/s^2 + P/s - S - s*S^2 -...</literal> + + ãŒå‡ºåŠ›ã•ã‚Œã¾ã™. + + </para> + + </refsection> + + <refsection> + + <title>例</title> + + <programlisting role="example"><![CDATA[ +deff('j=jdrn(n)','j=zeros(n,n);for k=1:n-1;j(k,k+1)=1;end') +A=sysdiag(jdrn(3),jdrn(2),rand(2,2));X=rand(7,7); +A=X*A*inv(X); +[S,P,D,index]=projspec(A); +index //J-ブãƒãƒƒã‚¯ã®å¤§ãã• +trace(P) //J-ブãƒãƒƒã‚¯ã®æ¬¡å…ƒã®åˆè¨ˆ +A*S-(eye()-P) +norm(D^index,1) + ]]></programlisting> + + </refsection> + + <refsection role="see also"> + + <title>å‚ç…§</title> + + <simplelist type="inline"> + + <member> + + <link linkend="coff">coff</link> + + </member> + + </simplelist> + + </refsection> + +</refentry> + diff --git a/modules/linear_algebra/help/ja_JP/eigen/psmall.xml b/modules/linear_algebra/help/ja_JP/eigen/psmall.xml new file mode 100755 index 000000000..e67b13bdf --- /dev/null +++ b/modules/linear_algebra/help/ja_JP/eigen/psmall.xml @@ -0,0 +1,232 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + * 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 + * + --> + +<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="psmall"> + + <refnamediv> + + <refname>psmall</refname> + + <refpurpose>スペクトル投影</refpurpose> + + </refnamediv> + + <refsynopsisdiv> + + <title>呼ã³å‡ºã—æ‰‹é †</title> + + <synopsis>[Q,M]=psmall(A,thres,flag)</synopsis> + + </refsynopsisdiv> + + <refsection> + + <title>引数</title> + + <variablelist> + + <varlistentry> + + <term>A</term> + + <listitem> + + <para>実数ã®æ£æ–¹è¡Œåˆ—</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>thres</term> + + <listitem> + + <para>実数</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>flag</term> + + <listitem> + + <para> + + æ–‡å—列 (<literal>'c'</literal> ã¾ãŸã¯ <literal>'d'</literal>) + + </para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>Q,M</term> + + <listitem> + + <para>実数行列</para> + + </listitem> + + </varlistentry> + + </variablelist> + + </refsection> + + <refsection> + + <title>説明</title> + + <para> + + 実部 < <literal>thres</literal> (<literal>flag='c'</literal>) + + ã¾ãŸã¯çµ¶å¯¾å€¤ < <literal>thres</literal>(<literal>flag='d'</literal>) + + ã¨ãªã‚‹å›ºæœ‰å€¤-部分空間ã¸ã®æŠ•å½±. + + </para> + + <para> + + ã“ã®æŠ•å½±ã¯<literal>Q*M</literal>ã«ã‚ˆã‚Šå®šç¾©ã•ã‚Œã¾ã™. + + ã“ã“ã§, + + <literal>Q</literal>ã¯åˆ—フルランク,<literal>M</literal>ã¯è¡Œãƒ•ãƒ«ãƒ©ãƒ³ã‚¯, + + ãã—ã¦<literal>M*Q=eye</literal>ã§ã™. + + </para> + + <para> + + <literal>flag='c'</literal>ã®å ´åˆ, + + <literal>M*A*Q</literal>ã®å›ºæœ‰å€¤ = + + 実部< <literal>thres</literal>ã®<literal>A</literal>ã®å›ºæœ‰å€¤. + + </para> + + <para> + + <literal>flag='d'</literal>ã®å ´åˆ, + + <literal>M*A*Q</literal>ã®å›ºæœ‰å€¤ = + + 大ãã• < <literal>thres</literal>ã®<literal>A</literal>ã®å›ºæœ‰å€¤. + + </para> + + <para> + + <literal>flag='c'</literal>ã®å ´åˆ, + + <literal>[Q1,M1]</literal> = <literal>eye()-Q*M</literal>ã® + + フルランク分解(<literal>fullrf</literal>)ã®å ´åˆ, + + <literal>M1*A*Q1</literal>ã®å›ºæœ‰å€¤ =実部>= + + <literal>thres</literal>ã® + + <literal>A</literal>ã®å›ºæœ‰å€¤ã¨ãªã‚Šã¾ã™. + + </para> + + <para> + + <literal>flag='d'</literal>ã®å ´åˆ, + + <literal>[Q1,M1]</literal> =<literal>eye()-Q*M</literal> + + ã®ãƒ•ãƒ«ãƒ©ãƒ³ã‚¯åˆ†è§£(<literal>fullrf</literal>)ã®å ´åˆ, + + <literal>M1*A*Q1</literal>ã®å›ºæœ‰å€¤ = + + 大ãã•>=<literal>thres</literal>ã® + + <literal>A</literal>ã®å›ºæœ‰å€¤. + + </para> + + </refsection> + + <refsection> + + <title>例</title> + + <programlisting role="example"><![CDATA[ +A=diag([1,2,3]);X=rand(A);A=inv(X)*A*X; +[Q,M]=psmall(A,2.5,'d'); +spec(M*A*Q) +[Q1,M1]=fullrf(eye()-Q*M); +spec(M1*A*Q1) + ]]></programlisting> + + </refsection> + + <refsection role="see also"> + + <title>å‚ç…§</title> + + <simplelist type="inline"> + + <member> + + <link linkend="pbig">pbig</link> + + </member> + + <member> + + <link linkend="proj">proj</link> + + </member> + + <member> + + <link linkend="projspec">projspec</link> + + </member> + + </simplelist> + + </refsection> + + <refsection> + + <title>使用ã•ã‚Œã‚‹é–¢æ•°</title> + + <para> + + ã“ã®é–¢æ•°ã¯ã‚½ãƒ¼ãƒˆã•ã‚ŒãŸ Schurå½¢å¼(scilab + + 関数 <literal>schur</literal>)ã«åŸºã¥ã„ã¦ã„ã¾ã™. + + </para> + + </refsection> + +</refentry> + diff --git a/modules/linear_algebra/help/ja_JP/eigen/schur.xml b/modules/linear_algebra/help/ja_JP/eigen/schur.xml new file mode 100755 index 000000000..be68d6eed --- /dev/null +++ b/modules/linear_algebra/help/ja_JP/eigen/schur.xml @@ -0,0 +1,711 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + * 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 + * + --> + +<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="schur"> + + <refnamediv> + + <refname>schur</refname> + + <refpurpose>行列ãŠã‚ˆã³ãƒšãƒ³ã‚·ãƒ«ã®[ソートã•ã‚ŒãŸ] Schur 分解</refpurpose> + + </refnamediv> + + <refsynopsisdiv> + + <title>呼ã³å‡ºã—æ‰‹é †</title> + + <synopsis>[U,T] = schur(A) + + [U,dim [,T] ]=schur(A,flag) + + [U,dim [,T] ]=schur(A,extern1) + + + + [As,Es [,Q,Z]]=schur(A,E) + + [As,Es [,Q],Z,dim] = schur(A,E,flag) + + [Z,dim] = schur(A,E,flag) + + [As,Es [,Q],Z,dim]= schur(A,E,extern2) + + [Z,dim]= schur(A,E,extern2) + + </synopsis> + + </refsynopsisdiv> + + <refsection> + + <title>引数</title> + + <variablelist> + + <varlistentry> + + <term>A</term> + + <listitem> + + <para>実数ã¾ãŸã¯è¤‡ç´ æ•°ã®æ£æ–¹è¡Œåˆ—.</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>E</term> + + <listitem> + + <para> + + <literal>A</literal>ã¨åŒã˜æ¬¡å…ƒã®å®Ÿæ•°ã¾ãŸã¯è¤‡ç´ æ•°ã®æ£æ–¹è¡Œåˆ—. + + </para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>flag</term> + + <listitem> + + <para> + + æ–‡å—列 (<literal>'c'</literal> ã¾ãŸã¯ <literal>'d'</literal>) + + </para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>extern1</term> + + <listitem> + + <para>an ``external'', 以下ã®å‚ç…§</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>extern2</term> + + <listitem> + + <para>an ``external'', 以下ã®å‚ç…§</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>U</term> + + <listitem> + + <para>直交ã¾ãŸã¯ãƒ¦ãƒ‹ã‚¿ãƒªæ£æ–¹è¡Œåˆ—</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>Q</term> + + <listitem> + + <para>直交ã¾ãŸã¯ãƒ¦ãƒ‹ã‚¿ãƒªæ£æ–¹è¡Œåˆ—</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>Z</term> + + <listitem> + + <para>o直交ã¾ãŸã¯ãƒ¦ãƒ‹ã‚¿ãƒªæ£æ–¹è¡Œåˆ—</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>T</term> + + <listitem> + + <para>上三角ã¾ãŸã¯æº–三角æ£æ–¹è¡Œåˆ—</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>As</term> + + <listitem> + + <para>上三角ã¾ãŸã¯æº–三角æ£æ–¹è¡Œåˆ—</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>Es</term> + + <listitem> + + <para>上三角æ£æ–¹è¡Œåˆ—</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>dim</term> + + <listitem> + + <para>æ•´æ•°</para> + + </listitem> + + </varlistentry> + + </variablelist> + + </refsection> + + <refsection> + + <title>説明</title> + + <para> + + Schur å½¢å¼, 行列ãŠã‚ˆã³ãƒšãƒ³ã‚·ãƒ«ã®ã‚½ãƒ¼ãƒˆã•ã‚ŒãŸ Schur å½¢å¼ + + </para> + + <variablelist> + + <varlistentry> + + <term>行列Schurå½¢å¼</term> + + <listitem> + + <variablelist> + + <varlistentry> + + <term>通常ã®Schurå½¢å¼:</term> + + <listitem> + + <para> + + <literal>[U,T] = schur(A)</literal> ã¯, + + <literal>A = U*T*U'</literal> ãŠã‚ˆã³ <literal>U'*U = eye(U)</literal>ã¨ãªã‚‹ã‚ˆã†ãª + + Schur行列<literal>T</literal> ãŠã‚ˆã³ãƒ¦ãƒ‹ã‚¿ãƒªè¡Œåˆ— <literal>U</literal> + + を出力ã—ã¾ã™. + + Schur(<literal>A</literal>)ã¯,<literal>T</literal>ã‚’è¿”ã—ã¾ã™. + + <literal>A</literal> ãŒè¤‡ç´ æ•°ã®å ´åˆ, è¤‡ç´ Schurå½¢å¼ã¯,行列<literal>T</literal>ã«è¿”ã—ã¾ã™. + + è¤‡ç´ Schurå½¢å¼ã¯,<literal>A</literal>ã®å›ºæœ‰å€¤ã‚’å¯¾è§’é …ã«æœ‰ã™ã‚‹ä¸Šä¸‰è§’行列ã§ã™. + + <literal>A</literal> ãŒå®Ÿæ•°ã®å ´åˆ, 実数Schurå½¢å¼ãŒè¿”ã•ã‚Œã¾ã™. + + 実数Schurå½¢å¼ã¯,å¯¾è§’é …ã«å®Ÿæ•°å›ºæœ‰å€¤ã€è¤‡ç´ æ•°å›ºæœ‰å€¤ã‚’å¯¾è§’é …ã®2x2ブãƒãƒƒã‚¯ã« + + 有ã—ã¾ã™. + + </para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>ソートã•ã‚ŒãŸSchurå½¢å¼</term> + + <listitem> + + <para> + + <literal>[U,dim]=schur(A,'c')</literal> ã¯, + + <literal>A</literal>ã‚’ Schur å½¢å¼ã«å¤‰æ›ã™ã‚‹ + + ユニタリ行列 <literal>U</literal> ã‚’è¿”ã—ã¾ã™. + + æ›´ã«,<literal>U</literal>ã®æœ€åˆã®åˆ— dim ã¯, + + 実部ãŒè² ã®å›ºæœ‰å€¤(安定ãª"連続時間"固有値空間) + + ã«é–¢é€£ã™ã‚‹<literal>A</literal>ã®å›ºæœ‰å€¤ç©ºé–“ + + ã®åŸºåº•ã‚’構æˆã—ã¾ã™. + + </para> + + <para> + + <literal>[U,dim]=schur(A,'d')</literal> ã¯, + + <literal>A</literal>ã‚’ Schur å½¢å¼ã«å¤‰æ›ã™ã‚‹ + + ユニタリ行列 <literal>U</literal> ã‚’è¿”ã—ã¾ã™. + + æ›´ã«,<literal>U</literal>ã®æœ€åˆã®åˆ— dim ã¯, + + 大ãã•ãŒ1未満ã®å›ºæœ‰å€¤(安定ãª"離散時間"固有値空間) + + ã«é–¢é€£ã™ã‚‹<literal>A</literal>ã®å›ºæœ‰å€¤ç©ºé–“ + + ã®åŸºåº•ã‚’構æˆã—ã¾ã™. + + </para> + + <para> + + <literal>[U,dim]=schur(A,extern1)</literal> ã¯, + + <literal>A</literal>ã‚’ Schur å½¢å¼ã«å¤‰æ›ã™ã‚‹ + + ユニタリ行列<literal>U</literal>ã‚’è¿”ã—ã¾ã™. + + æ›´ã«,<literal>U</literal>ã®æœ€åˆã®åˆ— dim ã¯, + + 外部関数 <literal>extern1</literal> (詳細㯠external å‚ç…§) + + ã«ã‚ˆã‚Šé¸æŠžã•ã‚ŒãŸå›ºæœ‰å€¤ã«é–¢é€£ã™ã‚‹<literal>A</literal>ã®å›ºæœ‰å€¤ç©ºé–“ + + ã®åŸºåº•ã‚’構æˆã—ã¾ã™. + + ã“ã® external ã¯Scilab関数ã¾ãŸã¯Cã¾ãŸã¯Fortranプãƒã‚·ãƒ¼ã‚¸ãƒ£ã«ã‚ˆã‚Š + + 次ã®ã‚ˆã†ã«è¨˜è¿°ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™: + + </para> + + <variablelist> + + <varlistentry> + + <term>Scilab関数</term> + + <listitem> + + <para> + + <literal>extern1</literal>㌠+ + Scilab関数ã«ã‚ˆã‚Šè¨˜è¿°ã•ã‚Œã‚‹å ´åˆ, + + 以下ã®å‘¼ã³å‡ºã—æ‰‹é †ã‚’æœ‰ã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™: + + <literal>s=extern1(Ev)</literal>, ãŸã ã— <literal>Ev</literal> ã¯å›ºæœ‰å€¤, + + <literal>s</literal> ã¯è«–ç†å€¤ã§ã™. + + </para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>C ã¾ãŸã¯ Fortran プãƒã‚·ãƒ¼ã‚¸ãƒ£</term> + + <listitem> + + <para> + + <literal>extern1</literal> ãŒCã¾ãŸã¯Fortran関数ã«ã‚ˆã‚Š + + 記述ã•ã‚Œã‚‹å ´åˆ,以下ã®å‘¼ã³å‡ºã—æ‰‹é †ã‚’æœ‰ã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™: + + <literal>int extern1(double *EvR, double *EvI)</literal> + + ãŸã ã— <literal>EvR</literal> ãŠã‚ˆã³ <literal>EvI</literal> 㯠+ + 固有値ã®å®Ÿéƒ¨ãŠã‚ˆã³è™šéƒ¨ã§ã™. + + trueã¾ãŸã¯ã‚¼ãƒã§ãªã„戻り値ã¯,é¸æŠžã•ã‚ŒãŸå›ºæœ‰å€¤ã‚’æ„味ã—ã¾ã™. + + </para> + + </listitem> + + </varlistentry> + + </variablelist> + + </listitem> + + </varlistentry> + + </variablelist> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>ペンシルSchurå½¢å¼</term> + + <listitem> + + <variablelist> + + <varlistentry> + + <term>通常ã®ãƒšãƒ³ã‚·ãƒ«Schurå½¢å¼</term> + + <listitem> + + <para> + + <literal>[As,Es] = schur(A,E)</literal> ã¯, + + 対<literal>A, E</literal>ã®ä¸€èˆ¬åŒ–Schurå½¢å¼ã§ã‚ã‚‹ + + 準三角行列<literal>As</literal>行列ãŠã‚ˆã³ä¸‰è§’行列<literal>Es</literal> + + を出力ã—ã¾ã™. + + </para> + + <para> + + <literal>[As,Es,Q,Z] = schur(A,E)</literal>ã¯,æ›´ã« + + <literal>As=Q'*A*Z</literal> ãŠã‚ˆã³ <literal>Es=Q'*E*Z</literal>ã¨ãªã‚‹ã‚ˆã†ãª + + 2ã¤ã®ãƒ¦ãƒ‹ã‚¿ãƒªè¡Œåˆ—<literal>Q</literal> ãŠã‚ˆã³ <literal>Z</literal>ã‚’è¿”ã—ã¾ã™. + + </para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>ソートã•ã‚ŒãŸSchurå½¢å¼:</term> + + <listitem> + + <para> + + <literal>[As,Es,Z,dim] = schur(A,E,'c')</literal>ã¯, + + ペンシル<literal>s*E-A</literal>ã®å®Ÿæ•°ä¸€èˆ¬åŒ–Schurå½¢å¼ã‚’è¿”ã—ã¾ã™. + + æ›´ã«, <literal>Z</literal>ã®æœ€åˆã®åˆ— dim ã¯, + + 実部ãŒè² ã®å›ºæœ‰å€¤ (安定ãª"連続時間"一般化固有値空間)ã«é–¢é€£ã™ã‚‹ + + 固有値空間ã®åŸºåº•ã‚’構æˆã—ã¾ã™. + + </para> + + <para> + + <literal>[As,Es,Z,dim] = schur(A,E,'d')</literal> + + </para> + + <para> + + ã¯,ペンシル<literal>s*E-A</literal>ã® + + 実数一般化Schurå½¢å¼ã‚’è¿”ã—ã¾ã™. + + æ›´ã«, <literal>Z</literal>ã®æœ€åˆã®åˆ— dim ã¯, + + 大ãã•1未満ã®å›ºæœ‰å€¤ (安定ãª"離散時間"一般化固有値空間)ã«é–¢é€£ã™ã‚‹ + + 固有値空間ã®åŸºåº•ã‚’構æˆã—ã¾ã™. + + </para> + + <para> + + <literal>[As,Es,Z,dim] = schur(A,E,extern2)</literal> + + </para> + + <para> + + ã¯,ペンシル<literal>s*E-A</literal>ã®å®Ÿä¸€èˆ¬åŒ–Schurå½¢å¼ã‚’è¿”ã—ã¾ã™. + + æ›´ã«, <literal>Z</literal>ã®æœ€åˆã®åˆ— dim ã¯, + + 関数<literal>extern2</literal>ã«ã‚ˆã‚ŠæŒ‡å®šã•ã‚ŒãŸè¦å‰‡ã«åŸºã¥ãé¸æŠžã•ã‚ŒãŸ + + ペンシルã®å›ºæœ‰å€¤ã«é–¢ã™ã‚‹å›ºæœ‰å€¤ç©ºé–“ã®åŸºåº•ã‚’構æˆã—ã¾ã™. + + (詳細㯠external å‚ç…§) + + ã“ã® external 㯠Scilab 関数ã¾ãŸã¯Cã¾ãŸã¯Fortranプãƒã‚·ãƒ¼ã‚¸ãƒ£ + + ã«ã‚ˆã‚Šæ¬¡ã®ã‚ˆã†ã«è¨˜è¿°ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™: + + </para> + + <variablelist> + + <varlistentry> + + <term>Scilab関数</term> + + <listitem> + + <para> + + <literal>extern2</literal>ãŒScilab関数ã«ã‚ˆã‚Šè¨˜è¿°ã•ã‚Œã‚‹å ´åˆ, + + 以下ã®å‘¼ã³å‡ºã—æ‰‹é †ã‚’æœ‰ã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™: + + <literal>s=extern2(Alpha,Beta)</literal>, ãŸã ã— <literal>Alpha</literal> ãŠã‚ˆã³ + + <literal>Beta</literal> ã¯ä¸€èˆ¬åŒ–固有値ãŠã‚ˆã³è«–ç†å€¤ <literal>s</literal> + + を定義ã—ã¾ã™. + + </para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>C ã¾ãŸã¯Fortranプãƒã‚·ãƒ¼ã‚¸ãƒ£</term> + + <listitem> + + <para> + + if external <literal>extern2</literal> ãŒCã¾ãŸã¯Fortran関数ã«ã‚ˆã‚Š + + 記述ã•ã‚Œã‚‹å ´åˆ,以下ã®å‘¼ã³å‡ºã—æ‰‹é †ã‚’æœ‰ã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™: + + </para> + + <para> + + <literal>int extern2(double *AlphaR, double *AlphaI, double *Beta)</literal> + + </para> + + <para> + + : <literal>A</literal> ãŠã‚ˆã³ <literal>E</literal> ãŒå®Ÿæ•°ã®å ´åˆ. + + </para> + + <para> + + <literal>int extern2(double *AlphaR, double *AlphaI, double *BetaR, double *BetaI)</literal> + + </para> + + <para> + + : <literal>A</literal> ãŠã‚ˆã³ <literal>E</literal> ãŒè¤‡ç´ æ•°ã®å ´åˆ. + + <literal>Alpha</literal>, ãŠã‚ˆã³ <literal>Beta</literal> ã¯ä¸€èˆ¬åŒ–固有値を定義ã—ã¾ã™. + + trueã¾ãŸã¯éžã‚¼ãƒã®æˆ»ã‚Šå€¤ã¯,é¸æŠžã•ã‚ŒãŸä¸€èˆ¬åŒ–固有値をæ„味ã—ã¾ã™. + + </para> + + </listitem> + + </varlistentry> + + </variablelist> + + </listitem> + + </varlistentry> + + </variablelist> + + </listitem> + + </varlistentry> + + </variablelist> + + </refsection> + + <refsection> + + <title>å‚考</title> + + <para> + + 行列Schurå½¢å¼ã®è¨ˆç®—ã¯Lapackルーãƒãƒ³DGEES ãŠã‚ˆã³ ZGEESã«åŸºã¥ã„ã¦ã„ã¾ã™. + + </para> + + <para> + + ペンシルSchurå½¢å¼ã®è¨ˆç®—ã¯Lapackルーãƒãƒ³DGGES ãŠã‚ˆã³ ZGGESã«åŸºã¥ã„ã¦ã„ã¾ã™. + + </para> + + </refsection> + + <refsection> + + <title>例</title> + + <programlisting role="example"><![CDATA[ +//行列Schurå½¢å¼ +//---------------------- +A=diag([-0.9,-2,2,0.9]);X=rand(A);A=inv(X)*A*X; +[U,T]=schur(A);T + +[U,dim,T]=schur(A,'c'); +T(1:dim,1:dim) //安定ãªé€£ç¶šæ™‚間固有値 + +function t=mytest(Ev),t=abs(Ev)<0.95,endfunction +[U,dim,T]=schur(A,mytest); +T(1:dim,1:dim) + +// Cã®åŒã˜é–¢æ•° (コンパイラãŒå¿…è¦) +cd TMPDIR; +C=['int mytest(double *EvR, double *EvI) {' //the C code + 'if (*EvR * *EvR + *EvI * *EvI < 0.9025) return 1;' + 'else return 0; }';] +mputl(C,TMPDIR+'/mytest.c') + + +//構築/リンク +lp=ilib_for_link('mytest','mytest.c',[],'c'); +link(lp,'mytest','c'); + +//実行 +[U,dim,T]=schur(A,'mytest'); +//ペンシルã®Schurå½¢å¼ +//---------------------- +F=[-1,%s, 0, 1; + 0,-1,5-%s, 0; + 0, 0,2+%s, 0; + 1, 0, 0, -2+%s]; +A=coeff(F,0);E=coeff(F,1); +[As,Es,Q,Z]=schur(A,E); +Q'*F*Z //ã“ã‚Œã¯As+%s*Esã§ã™ + + +[As,Es,Z,dim] = schur(A,E,'c') +function t=mytest(Alpha,Beta),t=real(Alpha)<0,endfunction +[As,Es,Z,dim] = schur(A,E,mytest) + +//Fortranã®åŒã˜é–¢æ•° (コンパイラãŒå¿…è¦) +ftn=['integer function mytestf(ar,ai,b)' //fortranコード + 'double precision ar,ai,b' + 'mytestf=0' + 'if(ar.lt.0.0d0) mytestf=1' + 'end'] +mputl(' '+ftn,TMPDIR+'/mytestf.f') + +//build and link +lp=ilib_for_link('mytestf','mytestf.f',[],'F'); +link(lp,'mytestf','f'); + +//実行 + +[As,Es,Z,dim] = schur(A,E,'mytestf') + ]]></programlisting> + + </refsection> + + <refsection role="see also"> + + <title>å‚ç…§</title> + + <simplelist type="inline"> + + <member> + + <link linkend="spec">spec</link> + + </member> + + <member> + + <link linkend="bdiag">bdiag</link> + + </member> + + <member> + + <link linkend="ricc">ricc</link> + + </member> + + <member> + + <link linkend="pbig">pbig</link> + + </member> + + <member> + + <link linkend="psmall">psmall</link> + + </member> + + </simplelist> + + </refsection> + +</refentry> + diff --git a/modules/linear_algebra/help/ja_JP/eigen/spec.xml b/modules/linear_algebra/help/ja_JP/eigen/spec.xml new file mode 100755 index 000000000..ad29f187a --- /dev/null +++ b/modules/linear_algebra/help/ja_JP/eigen/spec.xml @@ -0,0 +1,522 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + * 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 + * + --> + +<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="spec" xml:lang="ja"> + + <refnamediv> + + <refname>spec</refname> + + <refpurpose>行列ã¨ãƒšãƒ³ã‚·ãƒ«ã®å›ºæœ‰å€¤</refpurpose> + + </refnamediv> + + <refsynopsisdiv> + + <title>呼ã³å‡ºã—æ‰‹é †</title> + + <synopsis>evals=spec(A) + + [R,diagevals]=spec(A) + + + + evals=spec(A,B) + + [alpha,beta]=spec(A,B) + + [alpha,beta,Z]=spec(A,B) + + [alpha,beta,Q,Z]=spec(A,B) + + </synopsis> + + </refsynopsisdiv> + + <refsection> + + <title>引数</title> + + <variablelist> + + <varlistentry> + + <term>A</term> + + <listitem> + + <para>実数ã¾ãŸã¯è¤‡ç´ æ£æ–¹è¡Œåˆ—</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>B</term> + + <listitem> + + <para> + + <literal> A</literal>ã¨åŒã˜æ¬¡å…ƒã®å®Ÿæ•°ã¾ãŸã¯è¤‡ç´ æ£æ–¹è¡Œåˆ— + + </para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>evals</term> + + <listitem> + + <para>実数ã¾ãŸã¯è¤‡ç´ ベクトル, 固有値</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>diagevals</term> + + <listitem> + + <para>実数ã¾ãŸã¯(å¯¾è§’é …ã«å›ºæœ‰å€¤ã‚’有ã™ã‚‹)è¤‡ç´ å¯¾è§’è¡Œåˆ— </para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>alpha</term> + + <listitem> + + <para>実数ã¾ãŸã¯è¤‡ç´ ベクトル, al./be ã«ã‚ˆã‚Šå›ºæœ‰å€¤ãŒå¾—られã¾ã™</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>beta</term> + + <listitem> + + <para>実数ベクトル, al./be ã«ã‚ˆã‚Šå›ºæœ‰å€¤ãŒå¾—られã¾ã™</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>R</term> + + <listitem> + + <para>å¯é€†ãªå®Ÿæ•°ã¾ãŸã¯è¤‡ç´ æ£æ–¹è¡Œåˆ—, 行列å³å›ºæœ‰ãƒ™ã‚¯ãƒˆãƒ«.</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>L</term> + + <listitem> + + <para>å¯é€†ãªå®Ÿæ•°ã¾ãŸã¯è¤‡ç´ æ£æ–¹è¡Œåˆ—, ペンシル左固有ベクトル.</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>R</term> + + <listitem> + + <para>å¯é€†ãªå®Ÿæ•°ã¾ãŸã¯è¤‡ç´ æ£æ–¹è¡Œåˆ—, ペンシルå³å›ºæœ‰ãƒ™ã‚¯ãƒˆãƒ«.</para> + + </listitem> + + </varlistentry> + + </variablelist> + + </refsection> + + <refsection> + + <title>説明</title> + + <variablelist> + + <varlistentry> + + <term>evals=spec(A)</term> + + <listitem> + + <para> + + ベクトル<literal>evals</literal> ã«å›ºæœ‰å€¤ã‚’è¿”ã—ã¾ã™. + + </para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>[R,diagevals] =spec(A)</term> + + <listitem> + + <para> + + 対角行列r <literal>evals</literal> ã«å›ºæœ‰å€¤, + + <literal>R</literal>ã«å›ºæœ‰ãƒ™ã‚¯ãƒˆãƒ«ã‚’è¿”ã—ã¾ã™. + + </para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>evals=spec(A,B)</term> + + <listitem> + + <para>行列ペンシル A - s B ã®ã‚¹ãƒšã‚¯ãƒˆãƒ«,ã™ãªã‚ã¡, + + å¤šé …å¼è¡Œåˆ— s B - Aã®æ ¹,ã‚’è¿”ã—ã¾ã™. + + </para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>[alpha,beta] = spec(A,B)</term> + + <listitem> + + <para> + + 行列ペンシル<literal>A- s B</literal>ã®ã‚¹ãƒšã‚¯ãƒˆãƒ«, + + ã™ãªã‚ã¡,å¤šé …å¼è¡Œåˆ— <literal>A - s B</literal>ã®æ ¹ã‚’è¿”ã—ã¾ã™. + + 一般化固有値 alpha 㨠beta ã¯è¡Œåˆ— + + <literal>A - alpha./beta B</literal> ãŒç‰¹ç•°è¡Œåˆ—ã¨ãªã‚‹å€¤ã§ã™. + + 固有値㯠<literal>al./be</literal> ã«ã‚ˆã‚ŠæŒ‡å®šã•ã‚Œ, + + <literal>beta(i) = 0</literal>ã®å ´åˆ,i番目ã®å›ºæœ‰å€¤ã¯ç„¡é™å¤§ã¨ãªã‚Šã¾ã™. + + (<literal>B = eye(A)</literal>ã®å ´åˆ, <literal>alpha./beta</literal>㯠+ + <literal>spec(A)</literal>ã¨ãªã‚Šã¾ã™). + + 通常,beta=0や両方ãŒã‚¼ãƒã®å ´åˆã«é–¢ã—ã¦éƒ½åˆãŒè‰¯ã„解釈ãŒå˜åœ¨ã™ã‚‹ãŸã‚, + + (alpha,beta)ã®çµ„ã¿åˆã‚ã›ã§è¡¨ã•ã‚Œã¾ã™. + + </para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>[alpha,beta,R] = spec(A,B)</term> + + <listitem> + + <para>上記ã«åŠ ãˆã¦ãƒšãƒ³ã‚·ãƒ«ã®ä¸€èˆ¬åŒ–å³å›ºæœ‰ãƒ™ã‚¯ãƒˆãƒ«ã¨ãªã‚‹ + + 行列 <literal>R</literal>ã‚’è¿”ã—ã¾ã™. + + </para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>[al,be,L,R] = spec(A,B)</term> + + <listitem> + + <para> + + 上記ã«åŠ ãˆã¦ãƒšãƒ³ã‚·ãƒ«ã®ä¸€èˆ¬åŒ–å³ãŠã‚ˆã³å·¦å›ºæœ‰ãƒ™ã‚¯ãƒˆãƒ«ã§ã‚る行列 + + <literal>L</literal> ãŠã‚ˆã³<literal>R</literal>ã‚’è¿”ã—ã¾ã™. + + </para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>[al,be,Z] = spec(A,E)</term> + + <listitem> + + <para> + + 一般化å³å›ºæœ‰ãƒ™ã‚¯ãƒˆãƒ«ã§ã‚る行列 <literal>Z</literal> ã‚’è¿”ã—ã¾ã™. + + </para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>[al,be,Q,Z] = spec(A,E)</term> + + <listitem> + + <para> + + 一般化å³ãŠã‚ˆã³å·¦å›ºæœ‰ãƒ™ã‚¯ãƒˆãƒ«ã§ã‚る行列 <literal>Q</literal> + + ãŠã‚ˆã³ <literal>Z</literal>ã‚’è¿”ã—ã¾ã™. + + </para> + + </listitem> + + </varlistentry> + + </variablelist> + + <para>大ããªå®Œå…¨ / 疎行列ã®å ´åˆ, Arnoldi モジュールを使用ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™.</para> + + </refsection> + + <refsection role="see also"> + + <title>å‚ç…§</title> + + <para>行列ã®å›ºæœ‰å€¤è¨ˆç®—㯠Lapack ルーãƒãƒ³ã«åŸºã¥ã„ã¦ã„ã¾ã™</para> + + <itemizedlist> + + <listitem> + + <para>行列ãŒå¯¾ç§°ã§ãªã„å ´åˆ, DGEEV ãŠã‚ˆã³ ZGEEV.</para> + + </listitem> + + <listitem> + + <para>行列ãŒå¯¾ç§°ã®å ´åˆ, DSYEV ãŠã‚ˆã³ ZHEEV.</para> + + </listitem> + + </itemizedlist> + + <para>è¤‡ç´ å¯¾è±¡è¡Œåˆ—ã¯è¤‡ç´ 共役ã®éžå¯¾è§’é …ã¨å®Ÿæ•°ã®å¯¾è§’é …ã‚’æœ‰ã—ã¾ã™.</para> + + <para>ペンシル固有値計算㯠Lapack ルーãƒãƒ³ + + DGGEV ãŠã‚ˆã³ ZGGEVã«åŸºã¥ã„ã¦ã„ã¾ã™. + + </para> + + </refsection> + + <refsection> + + <title>実数ãŠã‚ˆã³è¤‡ç´ 行列</title> + + <para> + + 例ãˆã° evals ã‚„ R ã®ã‚ˆã†ãªå‡ºåŠ›å¤‰æ•°ã®åž‹ã¯å…¥åŠ›è¡Œåˆ— A ãŠã‚ˆã³ B ã®åž‹ã¨ + + åŒã˜ã§ã‚ã‚‹å¿…è¦ã¯ãªã„ã“ã¨ã«æ³¨æ„ã—ã¦ãã ã•ã„. + + 以下ã®ãƒ‘ラグラフã§ã¯ã€è¡Œåˆ— A ã®å›ºæœ‰å€¤ãŠã‚ˆã³å›ºæœ‰ãƒ™ã‚¯ãƒˆãƒ«ã‚’ + + 計算ã™ã‚‹éš›ã®å‡ºåŠ›å¤‰æ•°ã®åž‹ã‚’解æžã—ã¾ã™. + + </para> + + <itemizedlist> + + <listitem> + + <para>実数 A 行列</para> + + <itemizedlist> + + <listitem> + + <para>対称</para> + + <para>固有値ã¨å›ºæœ‰ãƒ™ã‚¯ãƒˆãƒ«ã¯å®Ÿæ•°.</para> + + </listitem> + + <listitem> + + <para>éžå¯¾ç§°</para> + + <para>固有値ã¨å›ºæœ‰ãƒ™ã‚¯ãƒˆãƒ«ã¯è¤‡ç´ æ•°.</para> + + </listitem> + + </itemizedlist> + + </listitem> + + <listitem> + + <para>è¤‡ç´ A 行列</para> + + <itemizedlist> + + <listitem> + + <para>対称</para> + + <para>固有値ã¯å®Ÿæ•°ã ãŒå›ºæœ‰ãƒ™ã‚¯ãƒˆãƒ«ã¯è¤‡ç´ æ•°.</para> + + </listitem> + + <listitem> + + <para>éžå¯¾ç§°</para> + + <para>固有値,固有ベクトルã¯è¤‡ç´ æ•°.</para> + + </listitem> + + </itemizedlist> + + </listitem> + + </itemizedlist> + + </refsection> + + <refsection> + + <title>例</title> + + <programlisting role="example"><![CDATA[ +// MATRIX EIGENVALUES +A=diag([1,2,3]); +X=rand(3,3); +A=inv(X)*A*X; +spec(A) + +x=poly(0,'x'); +pol=det(x*eye()-A) +roots(pol) + +[S,X]=bdiag(A); +clean(inv(X)*A*X) + +// PENCIL EIGENVALUES +A=rand(3,3); +[al,be,R] = spec(A,eye(A)); +al./be +clean(inv(R)*A*R) //displaying the eigenvalues (generic matrix) +A=A+%i*rand(A); +E=rand(A); +roots(det(A-%s*E)) //complex case + ]]></programlisting> + + </refsection> + + <refsection role="see also"> + + <title>å‚ç…§</title> + + <simplelist type="inline"> + + <member> + + <link linkend="poly">poly</link> + + </member> + + <member> + + <link linkend="det">det</link> + + </member> + + <member> + + <link linkend="schur">schur</link> + + </member> + + <member> + + <link linkend="bdiag">bdiag</link> + + </member> + + <member> + + <link linkend="colcomp">colcomp</link> + + </member> + + <member> + + <link linkend="dsaupd">dsaupd</link> + + </member> + + <member> + + <link linkend="dnaupd">dnaupd</link> + + </member> + + </simplelist> + + </refsection> + +</refentry> + diff --git a/modules/linear_algebra/help/ja_JP/eigen/sva.xml b/modules/linear_algebra/help/ja_JP/eigen/sva.xml new file mode 100755 index 000000000..64e9f801f --- /dev/null +++ b/modules/linear_algebra/help/ja_JP/eigen/sva.xml @@ -0,0 +1,155 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + * 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 + * + --> + +<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="sva"> + + <refnamediv> + + <refname>sva</refname> + + <refpurpose>特異値近似</refpurpose> + + </refnamediv> + + <refsynopsisdiv> + + <title>呼ã³å‡ºã—æ‰‹é †</title> + + <synopsis>[U,s,V]=sva(A,k) + + [U,s,V]=sva(A,tol) + + </synopsis> + + </refsynopsisdiv> + + <refsection> + + <title>引数</title> + + <variablelist> + + <varlistentry> + + <term>A</term> + + <listitem> + + <para>実数ã¾ãŸã¯è¤‡ç´ æ•°ã®è¡Œåˆ—</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>k</term> + + <listitem> + + <para>æ•´æ•°</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>tol</term> + + <listitem> + + <para>éžè² ã®å®Ÿæ•°</para> + + </listitem> + + </varlistentry> + + </variablelist> + + </refsection> + + <refsection> + + <title>説明</title> + + <para> + + 特異値近似. + + </para> + + <para> + + <literal>k</literal>ã‚’>=1ã®æ•´æ•°ã¨ã™ã‚‹ã¨ã, + + <literal>[U,S,V]=sva(A,k)</literal> ã¯, + + rank(<literal>B</literal>)=<literal>k</literal>ã¨ã—㦠+ + <literal>B=U*S*V'</literal>ãŒ<literal>A</literal>ã®æœ€è‰¯ã®L2è¿‘ä¼¼ã¨ãªã‚‹ + + よã†ãª + + <literal>U,S</literal> ãŠã‚ˆã³<literal>V</literal>ã‚’è¿”ã—ã¾ã™. + + </para> + + <para> + + 実数<literal>tol</literal>を指定ã—ãŸ<literal>[U,S,V]=sva(A,tol)</literal>ã¯, + + <literal>A-B</literal>ã®L2ノルムã§ã‚ã‚‹<literal>B=U*S*V'</literal>ã® + + 最大値ãŒ<literal>tol</literal>ã¨ãªã‚‹ã‚ˆã†ãª + + <literal>U,S</literal> ãŠã‚ˆã³ <literal>V</literal> ã‚’è¿”ã—ã¾ã™. + + </para> + + </refsection> + + <refsection> + + <title>例</title> + + <programlisting role="example"><![CDATA[ +A=rand(5,4)*rand(4,5); +[U,s,V]=sva(A,2); +B=U*s*V'; +svd(A) +svd(B) +clean(svd(A-B)) + ]]></programlisting> + + </refsection> + + <refsection role="see also"> + + <title>å‚ç…§</title> + + <simplelist type="inline"> + + <member> + + <link linkend="svd">svd</link> + + </member> + + </simplelist> + + </refsection> + +</refentry> + diff --git a/modules/linear_algebra/help/ja_JP/eigen/svd.xml b/modules/linear_algebra/help/ja_JP/eigen/svd.xml new file mode 100755 index 000000000..d5e536a04 --- /dev/null +++ b/modules/linear_algebra/help/ja_JP/eigen/svd.xml @@ -0,0 +1,252 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + * 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 + * + --> + +<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="svd"> + + <refnamediv> + + <refname>svd</refname> + + <refpurpose>特異値分解</refpurpose> + + </refnamediv> + + <refsynopsisdiv> + + <title>呼ã³å‡ºã—æ‰‹é †</title> + + <synopsis>s=svd(X) + + [U,S,V]=svd(X) + + [U,S,V]=svd(X,0) (obsolete) + + [U,S,V]=svd(X,"e") + + [U,S,V,rk]=svd(X [,tol]) + + </synopsis> + + </refsynopsisdiv> + + <refsection> + + <title>引数</title> + + <variablelist> + + <varlistentry> + + <term>X</term> + + <listitem> + + <para>実数ã¾ãŸã¯è¤‡ç´ 行列</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>s</term> + + <listitem> + + <para>実数ベクトル (特異値)</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>S</term> + + <listitem> + + <para>実数対角行列 (特異値)</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>U,V</term> + + <listitem> + + <para>直交ã¾ãŸã¯ãƒ¦ãƒ‹ã‚¿ãƒªæ£æ–¹è¡Œåˆ—(特異値).</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>tol</term> + + <listitem> + + <para>実数</para> + + </listitem> + + </varlistentry> + + </variablelist> + + </refsection> + + <refsection> + + <title>説明</title> + + <para> + + <literal>[U,S,V] = svd(X)</literal> 㯠+ + <literal>X</literal> ã¨åŒæ¬¡å…ƒã§ + + é™é †ã«éžè² ã®å¯¾è§’è¦ç´ を有ã™ã‚‹ + + 対角行列 <literal>S</literal>ãŠã‚ˆã³ + + <literal>X = U*S*V'</literal>ã¨ãªã‚‹ + + ユニタリ行列 <literal>U</literal> 㨠<literal>V</literal> + + を出力ã—ã¾ã™. + + </para> + + <para> + + <literal>[U,S,V] = svd(X,0)</literal> 㯠+ + "エコノミーサイズ"分解を出力ã—ã¾ã™. + + <literal>X</literal> ãŒmè¡Œn列 (m > n)ã®å ´åˆ, + + <literal>U</literal> ã®æœ€åˆã®n列ã®ã¿ãŒè¨ˆç®—ã•ã‚Œ, + + <literal>S</literal>㯠nè¡Œn列ã¨ãªã‚Šã¾ã™. + + </para> + + <para> + + <literal>s= svd(X)</literal> 㯠+ + 特異値をå«ã‚€ãƒ™ã‚¯ãƒˆãƒ«<literal>s</literal>ã‚’è¿”ã—ã¾ã™. + + </para> + + <para> + + <literal>[U,S,V,rk]=svd(X,tol)</literal> 㯠+ + <literal>rk</literal>ã«åŠ ãˆã¦, + + <literal>X</literal> ã®æ•°å€¤ãƒ©ãƒ³ã‚¯,ã™ãªã‚ã¡ + + <literal>tol</literal>より大ããªç‰¹ç•°å€¤ã®æ•°ã‚’出力ã—ã¾ã™. + + </para> + + <para> + + <literal>tol</literal>ã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆå€¤ã¯ + + <literal>rank</literal>ã¨åŒã˜ã§ã™. + + </para> + + </refsection> + + <refsection> + + <title>例</title> + + <programlisting role="example"><![CDATA[ +X=rand(4,2)*rand(2,4) +svd(X) +sqrt(spec(X*X')) + ]]></programlisting> + + </refsection> + + <refsection> + + <title>å‚考</title> + + <simplelist type="inline"> + + <member> + + <link linkend="rank">rank</link> + + </member> + + <member> + + <link linkend="qr">qr</link> + + </member> + + <member> + + <link linkend="colcomp">colcomp</link> + + </member> + + <member> + + <link linkend="rowcomp">rowcomp</link> + + </member> + + <member> + + <link linkend="sva">sva</link> + + </member> + + <member> + + <link linkend="spec">spec</link> + + </member> + + </simplelist> + + </refsection> + + <refsection> + + <title>使用ã•ã‚Œã‚‹é–¢æ•°</title> + + <para> + + svd 分解ã¯Lapackã®ãƒ«ãƒ¼ãƒãƒ³ DGESVD (実数行列ã®å ´åˆ)ãŠã‚ˆã³ + + ZGESVD (è¤‡ç´ æ•°ã®å ´åˆ)ã«åŸºã¥ã„ã¦ã„ã‚‹. + + </para> + + </refsection> + +</refentry> + diff --git a/modules/linear_algebra/help/ja_JP/factorization/CHAPTER b/modules/linear_algebra/help/ja_JP/factorization/CHAPTER new file mode 100755 index 000000000..e6daeb8eb --- /dev/null +++ b/modules/linear_algebra/help/ja_JP/factorization/CHAPTER @@ -0,0 +1,2 @@ +title = Factorization + diff --git a/modules/linear_algebra/help/ja_JP/factorization/givens.xml b/modules/linear_algebra/help/ja_JP/factorization/givens.xml new file mode 100755 index 000000000..7eae55a1e --- /dev/null +++ b/modules/linear_algebra/help/ja_JP/factorization/givens.xml @@ -0,0 +1,162 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + * 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 + * + --> + +<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="givens"> + + <refnamediv> + + <refname>givens</refname> + + <refpurpose>ギブンス変æ›</refpurpose> + + </refnamediv> + + <refsynopsisdiv> + + <title>呼ã³å‡ºã—æ‰‹é †</title> + + <synopsis>U=givens(xy) + + U=givens(x,y) + + [U,c]=givens(xy) + + [U,c]=givens(x,y) + + </synopsis> + + </refsynopsisdiv> + + <refsection> + + <title>引数</title> + + <variablelist> + + <varlistentry> + + <term>x,y</term> + + <listitem> + + <para>実数ã¾ãŸã¯è¤‡ç´ æ•°</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>xy</term> + + <listitem> + + <para>実数ã¾ãŸã¯è¤‡ç´ æ•°ã®è¦ç´ æ•°2ã®åˆ—ベクトル</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>U</term> + + <listitem> + + <para>2x2 ユニタリ行列</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>c</term> + + <listitem> + + <para>実数ã¾ãŸã¯è¤‡ç´ æ•°ã®è¦ç´ æ•°2ã®åˆ—ベクトル</para> + + </listitem> + + </varlistentry> + + </variablelist> + + </refsection> + + <refsection> + + <title>説明</title><literal>xy = [x;y]</literal>ã¨ã—㦠+ + <para> + + <literal>U= givens(x, y)</literal> ã¾ãŸã¯ <literal>U = givens(xy)</literal> + + ã¯,次ã®ã‚ˆã†ãª<literal>2</literal>x<literal>2</literal> ã® + + ユニタリ行列 <literal>U</literal> ã‚’è¿”ã—ã¾ã™: + + </para> + + <para> + + <literal>U*xy=[r;0]=c</literal>. + + </para> + + <para> + + <note> + + <literal>givens(x,y)</literal> ãŠã‚ˆã³ <literal>givens([x;y])</literal> ã¯ç‰ä¾¡ã§ã‚ã‚‹ã“ã¨ã« + + 注æ„ã—ã¦ãã ã•ã„. + + </note> + + </para> + + </refsection> + + <refsection> + + <title>例</title> + + <programlisting role="example"><![CDATA[ +A=[3,4;5,6]; +U=givens(A(:,1)); +U*A + ]]></programlisting> + + </refsection> + + <refsection role="see also"> + + <title>å‚ç…§</title> + + <simplelist type="inline"> + + <member> + + <link linkend="qr">qr</link> + + </member> + + </simplelist> + + </refsection> + +</refentry> + diff --git a/modules/linear_algebra/help/ja_JP/factorization/householder.xml b/modules/linear_algebra/help/ja_JP/factorization/householder.xml new file mode 100755 index 000000000..9643f73ee --- /dev/null +++ b/modules/linear_algebra/help/ja_JP/factorization/householder.xml @@ -0,0 +1,140 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + * 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 + * + --> + +<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="householder"> + + <refnamediv> + + <refname>householder</refname> + + <refpurpose>ãƒã‚¦ã‚¹ãƒ›ãƒ«ãƒ€ãƒ¼ç›´äº¤é¡æ˜ 行列</refpurpose> + + </refnamediv> + + <refsynopsisdiv> + + <title>呼ã³å‡ºã—æ‰‹é †</title> + + <synopsis>u=householder(v [,w])</synopsis> + + </refsynopsisdiv> + + <refsection> + + <title>引数</title> + + <variablelist> + + <varlistentry> + + <term>v</term> + + <listitem> + + <para>実数ã¾ãŸã¯è¤‡ç´ æ•°ã®åˆ—ベクトル</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>w</term> + + <listitem> + + <para> + + <literal>v</literal>ã¨åŒã˜å¤§ãã•ã®å®Ÿæ•°ã¾ãŸã¯è¤‡ç´ æ•°ã®åˆ—ベクトル. + + デフォルト値ã¯<literal>eye(v)</literal> + + </para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>u</term> + + <listitem> + + <para>実数ã¾ãŸã¯è¤‡ç´ æ•°ã®åˆ—ベクトル</para> + + </listitem> + + </varlistentry> + + </variablelist> + + </refsection> + + <refsection> + + <title>説明</title> + + <para> + + åŒã˜å¤§ãã•ã®åˆ—ベクトル + + <literal>v</literal>, <literal> w</literal> を指定ã™ã‚‹ã¨, + + <literal>householder(v,w)</literal> ã¯, + + <literal> (eye()-2*u*u')*v</literal>ãŒ<literal>w</literal>ã«æ¯”例ã™ã‚‹ã‚ˆã†ãª + + ユニタリ列ベクトル<literal>u</literal>ã‚’è¿”ã—ã¾ã™. + + <literal>(eye()-2*u*u')</literal> ã¯ãƒã‚¦ã‚¹ãƒ›ãƒ«ãƒ€ãƒ¼ç›´äº¤é¡æ˜ 行列ã§ã™. + + </para> + + <para> + + <literal>w</literal> ã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆå€¤ã¯ <literal> eye(v)</literal>ã§ã™. + + ã“ã®å ´åˆ,ベクトル<literal> (eye()-2*u*u')*v</literal> ã¯ãƒ™ã‚¯ãƒˆãƒ« + + <literal> eye(v)*norm(v)</literal>ã§ã™. + + </para> + + </refsection> + + <refsection role="see also"> + + <title>å‚ç…§</title> + + <simplelist type="inline"> + + <member> + + <link linkend="qr">qr</link> + + </member> + + <member> + + <link linkend="givens">givens</link> + + </member> + + </simplelist> + + </refsection> + +</refentry> + diff --git a/modules/linear_algebra/help/ja_JP/factorization/sqroot.xml b/modules/linear_algebra/help/ja_JP/factorization/sqroot.xml new file mode 100755 index 000000000..0498d89f5 --- /dev/null +++ b/modules/linear_algebra/help/ja_JP/factorization/sqroot.xml @@ -0,0 +1,105 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + * 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 + * + --> + +<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="sqroot"> + + <refnamediv> + + <refname>sqroot</refname> + + <refpurpose>W*W' エルミート分解</refpurpose> + + </refnamediv> + + <refsynopsisdiv> + + <title>呼ã³å‡ºã—æ‰‹é †</title> + + <synopsis>sqroot(X)</synopsis> + + </refsynopsisdiv> + + <refsection> + + <title>引数</title> + + <variablelist> + + <varlistentry> + + <term>X</term> + + <listitem> + + <para>対称éžè² 定実ã¾ãŸã¯è¤‡ç´ 行列</para> + + </listitem> + + </varlistentry> + + </variablelist> + + </refsection> + + <refsection> + + <title>説明</title> + + <para> + + <literal>X=W*W'</literal> ã¨ãªã‚‹ã‚ˆã†ãªWã‚’è¿”ã—ã¾ã™(SVDを使用). + + </para> + + </refsection> + + <refsection> + + <title>例</title> + + <programlisting role="example"><![CDATA[ +X=rand(5,2)*rand(2,5);X=X*X'; +W=sqroot(X) +norm(W*W'-X,1) +X=rand(5,2)+%i*rand(5,2);X=X*X'; +W=sqroot(X) +norm(W*W'-X,1) + ]]></programlisting> + + </refsection> + + <refsection role="see also"> + + <title>å‚ç…§</title> + + <simplelist type="inline"> + + <member> + + <link linkend="chol">chol</link> + + </member> + + <member> + + <link linkend="svd">svd</link> + + </member> + + </simplelist> + + </refsection> + +</refentry> + diff --git a/modules/linear_algebra/help/ja_JP/kernel/CHAPTER b/modules/linear_algebra/help/ja_JP/kernel/CHAPTER new file mode 100755 index 000000000..be67920e1 --- /dev/null +++ b/modules/linear_algebra/help/ja_JP/kernel/CHAPTER @@ -0,0 +1,2 @@ +title = Kernel + diff --git a/modules/linear_algebra/help/ja_JP/kernel/colcomp.xml b/modules/linear_algebra/help/ja_JP/kernel/colcomp.xml new file mode 100755 index 000000000..31a6a6ba2 --- /dev/null +++ b/modules/linear_algebra/help/ja_JP/kernel/colcomp.xml @@ -0,0 +1,206 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + * 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 + * + --> + +<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="colcomp"> + + <refnamediv> + + <refname>colcomp</refname> + + <refpurpose>列圧縮,カーãƒãƒ«,ヌル空間</refpurpose> + + </refnamediv> + + <refsynopsisdiv> + + <title>呼ã³å‡ºã—æ‰‹é †</title> + + <synopsis>[W,rk]=colcomp(A [,flag] [,tol])</synopsis> + + </refsynopsisdiv> + + <refsection> + + <title>引数</title> + + <variablelist> + + <varlistentry> + + <term>A</term> + + <listitem> + + <para>実数ã¾ãŸã¯è¤‡ç´ æ•°ã®è¡Œåˆ—</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>flag</term> + + <listitem> + + <para>æ–‡å—列</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>tol</term> + + <listitem> + + <para>実数</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>W</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>ã®åˆ—圧縮: <literal>Ac = A*W</literal> 㯠+ + 列圧縮,ã™ãªã‚ã¡ <literal>Ac=[0,Af]</literal> ã¨ãªã‚Šã¾ã™. + + </para> + + <para> + + ãŸã ã—, <literal>Af</literal> ã¯ãƒ•ãƒ«åˆ—ランクを有ã—ã¾ã™: + + rank(<literal>Af</literal>) = rank(<literal>A</literal>) = <literal>rk</literal>. + + </para> + + <para> + + <literal>flag</literal> ãŠã‚ˆã³ <literal>tol</literal> 㯠+ + オプションã®ãƒ‘ラメータ: <literal>flag = 'qr'</literal> + + ã¾ãŸã¯ <literal>'svd'</literal> (デフォルト㯠+ + <literal>'svd'</literal>)ã§ã™. + + </para> + + <para> + + <literal>tol</literal> = 許容誤差パラメータ (デフォルト値㯠+ + <literal>%eps</literal>ã®ã‚ªãƒ¼ãƒ€ãƒ¼). + + </para> + + <para> + + <literal>W</literal>ã®æœ€åˆã®<literal>ma-rk</literal>列ã¯, + + <literal>size(A)=(na,ma)</literal>ã¨ã™ã‚‹ã¨ã, + + <literal>A</literal>ã®ã‚«ãƒ¼ãƒãƒ«ã«åºƒãŒã‚Šã¾ã™. + + </para> + + </refsection> + + <refsection> + + <title>例</title> + + <programlisting role="example"><![CDATA[ +A=rand(5,2)*rand(2,5); +[X,r]=colcomp(A); +norm(A*X(:,1:$-r),1) + ]]></programlisting> + + </refsection> + + <refsection role="see also"> + + <title>å‚ç…§</title> + + <simplelist type="inline"> + + <member> + + <link linkend="rowcomp">rowcomp</link> + + </member> + + <member> + + <link linkend="fullrf">fullrf</link> + + </member> + + <member> + + <link linkend="fullrfk">fullrfk</link> + + </member> + + <member> + + <link linkend="kernel">kernel</link> + + </member> + + </simplelist> + + </refsection> + +</refentry> + diff --git a/modules/linear_algebra/help/ja_JP/kernel/fullrf.xml b/modules/linear_algebra/help/ja_JP/kernel/fullrf.xml new file mode 100755 index 000000000..6085443bb --- /dev/null +++ b/modules/linear_algebra/help/ja_JP/kernel/fullrf.xml @@ -0,0 +1,198 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + * 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 + * + --> + +<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="fullrf"> + + <refnamediv> + + <refname>fullrf</refname> + + <refpurpose>フルランク分解</refpurpose> + + </refnamediv> + + <refsynopsisdiv> + + <title>呼ã³å‡ºã—æ‰‹é †</title> + + <synopsis>[Q,M,rk]=fullrf(A,[tol])</synopsis> + + </refsynopsisdiv> + + <refsection> + + <title>引数</title> + + <variablelist> + + <varlistentry> + + <term>A</term> + + <listitem> + + <para>実数ã¾ãŸã¯è¤‡ç´ æ•°ã®è¡Œåˆ—</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>tol</term> + + <listitem> + + <para>実数 (ランク定義時ã®é–¾å€¤)</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>Q,M</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>fullrf</literal> ã¯, + + <literal>A = Q*M</literal>ã¨ãªã‚‹ã‚ˆã†ãª + + <literal>Q</literal> ãŠã‚ˆã³ <literal>M</literal>ã‚’è¿”ã—ã¾ã™. + + ãŸã ã—, + + range(<literal>Q</literal>)=range(<literal>A</literal>) ãŠã‚ˆã³ + + ker(<literal>M</literal>)=ker(<literal>A</literal>), + + <literal>Q</literal> フル列ランク , <literal>M</literal> フル行ランク, + + <literal>rk = rank(A) = #columns(Q) = #rows(M)</literal>ã§ã™. + + </para> + + <para> + + <literal>tol</literal> ã¯ã‚ªãƒ—ションã®å®Ÿæ•°ãƒ‘ラメータã§ã™ + + (デフォルト値㯠<literal>sqrt(%eps)</literal>ã§ã™). + + <literal>A</literal>ã®ãƒ©ãƒ³ã‚¯<literal>rk</literal>㯠+ + <literal>norm(A)*tol</literal>より大ã㪠+ + 特異値ã®æ•°ã¨ã—ã¦å®šç¾©ã•ã‚Œã¾ã™. + + </para> + + <para> + + AãŒå¯¾ç§°ã®å ´åˆ, + + <literal>fullrf</literal> 㯠<literal>M=Q'</literal>ã‚’è¿”ã—ã¾ã™. + + </para> + + </refsection> + + <refsection> + + <title>例</title> + + <programlisting role="example"><![CDATA[ +A=rand(5,2)*rand(2,5); +[Q,M]=fullrf(A); +norm(Q*M-A,1) +[X,d]=rowcomp(A);Y=X'; +svd([A,Y(:,1:d),Q]) //span(Q) = span(A) = span(Y(:,1:2)) + ]]></programlisting> + + </refsection> + + <refsection role="see also"> + + <title>å‚ç…§</title> + + <simplelist type="inline"> + + <member> + + <link linkend="svd">svd</link> + + </member> + + <member> + + <link linkend="qr">qr</link> + + </member> + + <member> + + <link linkend="fullrfk">fullrfk</link> + + </member> + + <member> + + <link linkend="rowcomp">rowcomp</link> + + </member> + + <member> + + <link linkend="colcomp">colcomp</link> + + </member> + + </simplelist> + + </refsection> + +</refentry> + diff --git a/modules/linear_algebra/help/ja_JP/kernel/fullrfk.xml b/modules/linear_algebra/help/ja_JP/kernel/fullrfk.xml new file mode 100755 index 000000000..8ce763a2c --- /dev/null +++ b/modules/linear_algebra/help/ja_JP/kernel/fullrfk.xml @@ -0,0 +1,143 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + * 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 + * + --> + +<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="fullrfk"> + + <refnamediv> + + <refname>fullrfk</refname> + + <refpurpose>A^kã®ãƒ•ãƒ«ãƒ©ãƒ³ã‚¯åˆ†è§£</refpurpose> + + </refnamediv> + + <refsynopsisdiv> + + <title>呼ã³å‡ºã—æ‰‹é †</title> + + <synopsis>[Bk,Ck]=fullrfk(A,k)</synopsis> + + </refsynopsisdiv> + + <refsection> + + <title>引数</title> + + <variablelist> + + <varlistentry> + + <term>A</term> + + <listitem> + + <para>実数ã¾ãŸã¯è¤‡ç´ æ•°ã®è¡Œåˆ—</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>k</term> + + <listitem> + + <para>æ•´æ•°</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>Bk,Ck</term> + + <listitem> + + <para>実数ã¾ãŸã¯è¤‡ç´ æ•°ã®è¡Œåˆ—</para> + + </listitem> + + </varlistentry> + + </variablelist> + + </refsection> + + <refsection> + + <title>説明</title> + + <para> + + ã“ã®é–¢æ•°ã¯,<literal>A^k</literal>ã®ãƒ•ãƒ«ãƒ©ãƒ³ã‚¯åˆ†è§£, + + ã™ãªã‚ã¡, <literal>Bk*Ck=A^k</literal> を計算ã—ã¾ã™. + + ãŸã ã—, <literal>Bk</literal> ã¯åˆ—フルランク, + + <literal>Ck</literal>ã¯è¡Œãƒ•ãƒ«ãƒ©ãƒ³ã‚¯ã§ã™. + + range(<literal>Bk</literal>)=range(<literal>A^k</literal>) + + ãŠã‚ˆã³ ker(<literal>Ck</literal>)=ker(<literal>A^k</literal>)ã¨ãªã‚Šã¾ã™. + + </para> + + <para> + + <literal>k=1</literal>ã®å ´åˆ, <literal>fullrfk</literal> 㯠+ + <literal>fullrf</literal>ã¨ç‰ä¾¡ã«ãªã‚Šã¾ã™. + + </para> + + </refsection> + + <refsection> + + <title>例</title> + + <programlisting role="example"><![CDATA[ +A=rand(5,2)*rand(2,5);[Bk,Ck]=fullrfk(A,3); +norm(Bk*Ck-A^3,1) + ]]></programlisting> + + </refsection> + + <refsection role="see also"> + + <title>å‚ç…§</title> + + <simplelist type="inline"> + + <member> + + <link linkend="fullrf">fullrf</link> + + </member> + + <member> + + <link linkend="range">range</link> + + </member> + + </simplelist> + + </refsection> + +</refentry> + diff --git a/modules/linear_algebra/help/ja_JP/kernel/im_inv.xml b/modules/linear_algebra/help/ja_JP/kernel/im_inv.xml new file mode 100755 index 000000000..de6c340d7 --- /dev/null +++ b/modules/linear_algebra/help/ja_JP/kernel/im_inv.xml @@ -0,0 +1,202 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + * 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 + * + --> + +<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="im_inv"> + + <refnamediv> + + <refname>im_inv</refname> + + <refpurpose>原åƒ</refpurpose> + + </refnamediv> + + <refsynopsisdiv> + + <title>呼ã³å‡ºã—æ‰‹é †</title> + + <synopsis>[X,dim]=im_inv(A,B [,tol]) + + [X,dim,Y]=im_inv(A,B, [,tol]) + + </synopsis> + + </refsynopsisdiv> + + <refsection> + + <title>引数</title> + + <variablelist> + + <varlistentry> + + <term>A,B</term> + + <listitem> + + <para>åŒã˜åˆ—ã®æ•°ã‚’有ã™ã‚‹å®Ÿæ•°ã¾ãŸã¯è¤‡ç´ 数行列</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>X</term> + + <listitem> + + <para> + + 次数ãŒ<literal>A</literal>ã®åˆ—ã®æ•°ã«ç‰ã—ã„直交ã¾ãŸã¯ãƒ¦ãƒ‹ã‚¿ãƒªæ£æ–¹è¡Œåˆ— + + </para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>dim</term> + + <listitem> + + <para>æ•´æ•° (部分空間ã®æ¬¡å…ƒ)</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>Y</term> + + <listitem> + + <para> + + 次数ãŒ<literal>A</literal>ãŠã‚ˆã³<literal>B</literal>ã®è¡Œã®æ•°ã«ç‰ã—ã„直交行列. + + </para> + + </listitem> + + </varlistentry> + + </variablelist> + + </refsection> + + <refsection> + + <title>説明</title> + + <para> + + <literal>[X,dim]=im_inv(A,B)</literal> 㯠<literal>(A^-1)(B)</literal>, + + ã™ãªã‚ã¡, <literal>A</literal>ã¸ã®åƒãŒ range(<literal>B</literal>) ã« + + ã‚るベクトルを計算ã—ã¾ã™. + + </para> + + <para> + + <literal>X</literal>ã®æœ€åˆã®åˆ— <literal>dim</literal> 㯠+ + <literal>(A^-1)(B)</literal>ã«åºƒãŒã£ã¦ã„ã¾ã™. + + </para> + + <para> + + <literal>tol</literal> ã¯éƒ¨åˆ†ç©ºé–“ã®å–ã‚Šè¾¼ã¿ã‚’確èªã™ã‚‹ãŸã‚ã« + + 閾値ãŒä½¿ç”¨ã•ã‚Œã¦ãŠã‚Š, + + ãã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆå€¤ã¯ <literal>tol = 100*%eps</literal> ã§ã™. + + <literal>Y</literal> ãŒè¿”ã•ã‚Œã‚‹æ™‚, + + <literal>[Y*A*X,Y*B]</literal> ã¯ä»¥ä¸‹ã®ã‚ˆã†ã«åˆ†å‰²ã•ã‚Œã¾ã™: + + <literal>[A11,A12;0,A22]</literal>,<literal>[B1;0]</literal> + + </para> + + <para> + + ãŸã ã—, <literal>B1</literal>ã¯è¡Œãƒ•ãƒ«ãƒ©ãƒ³ã‚¯ ( + + <literal>rank(B)</literal>ã«ç‰ã—ã„) ãã—㦠<literal>A22</literal> 㯠+ + 列フルランク㧠<literal>dim</literal> 列ã¨ãªã‚Šã¾ã™. + + </para> + + </refsection> + + <refsection> + + <title>例</title> + + <programlisting role="example"><![CDATA[ +A=[rand(2,5);[zeros(3,4),rand(3,1)]];B=[[1,1;1,1];zeros(3,2)]; +W=rand(5,5);A=W*A;B=W*B; +[X,dim]=im_inv(A,B) +svd([A*X(:,1:dim),B]) //vectors A*X(:,1:dim) belong to range(B) +[X,dim,Y]=im_inv(A,B);[Y*A*X,Y*B] + ]]></programlisting> + + </refsection> + + <refsection role="see also"> + + <title>å‚ç…§</title> + + <simplelist type="inline"> + + <member> + + <link linkend="rowcomp">rowcomp</link> + + </member> + + <member> + + <link linkend="spaninter">spaninter</link> + + </member> + + <member> + + <link linkend="spanplus">spanplus</link> + + </member> + + <member> + + <link linkend="linsolve">linsolve</link> + + </member> + + </simplelist> + + </refsection> + +</refentry> + diff --git a/modules/linear_algebra/help/ja_JP/kernel/kernel.xml b/modules/linear_algebra/help/ja_JP/kernel/kernel.xml new file mode 100755 index 000000000..f46881733 --- /dev/null +++ b/modules/linear_algebra/help/ja_JP/kernel/kernel.xml @@ -0,0 +1,173 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + * 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 + * + --> + +<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="kernel"> + + <refnamediv> + + <refname>kernel</refname> + + <refpurpose>カーãƒãƒ«, ヌル空間</refpurpose> + + </refnamediv> + + <refsynopsisdiv> + + <title>呼ã³å‡ºã—æ‰‹é †</title> + + <synopsis>W=kernel(A [,tol,[,flag])</synopsis> + + </refsynopsisdiv> + + <refsection> + + <title>引数</title> + + <variablelist> + + <varlistentry> + + <term>A</term> + + <listitem> + + <para>実数ã¾ãŸã¯è¤‡ç´ æ•°ã®ãƒ•ãƒ«è¡Œåˆ—ã¾ãŸã¯å®Ÿæ•°ç–Žè¡Œåˆ—</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>flag</term> + + <listitem> + + <para> + + æ–‡å—列 <literal>'svd'</literal> (デフォルト) ã¾ãŸã¯ <literal>'qr'</literal> + + </para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>tol</term> + + <listitem> + + <para>実数</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>W</term> + + <listitem> + + <para>列フルランク行列</para> + + </listitem> + + </varlistentry> + + </variablelist> + + </refsection> + + <refsection> + + <title>説明</title> + + <para> + + <literal>W=kernel(A)</literal> ã¯<literal>A</literal>ã®ã‚«ãƒ¼ãƒãƒ« (ヌル空間)ã‚’è¿”ã—ã¾ã™. + + A ãŒåˆ—フルランクã®å ´åˆ, 空ã®è¡Œåˆ— [] ãŒè¿”ã•ã‚Œã¾ã™. + + </para> + + <para> + + <literal>flag</literal> ãŠã‚ˆã³ <literal>tol</literal> 㯠+ + オプションã®ãƒ‘ラメータã§ã™: <literal>flag = 'qr'</literal> + + ã¾ãŸã¯ <literal>'svd'</literal> (デフォルト㯠<literal>'svd'</literal>). + + </para> + + <para> + + <literal>tol</literal> = 許容誤差パラメータ (デフォルト値㯠<literal>%eps</literal> ã®ã‚ªãƒ¼ãƒ€). + + </para> + + </refsection> + + <refsection> + + <title>例</title> + + <programlisting role="example"><![CDATA[ +A=rand(3,1)*rand(1,3); +A*kernel(A) +A=sparse(A); +clean(A*kernel(A)) + ]]></programlisting> + + </refsection> + + <refsection role="see also"> + + <title>å‚ç…§</title> + + <simplelist type="inline"> + + <member> + + <link linkend="colcomp">colcomp</link> + + </member> + + <member> + + <link linkend="fullrf">fullrf</link> + + </member> + + <member> + + <link linkend="fullrfk">fullrfk</link> + + </member> + + <member> + + <link linkend="linsolve">linsolve</link> + + </member> + + </simplelist> + + </refsection> + +</refentry> + diff --git a/modules/linear_algebra/help/ja_JP/kernel/range.xml b/modules/linear_algebra/help/ja_JP/kernel/range.xml new file mode 100755 index 000000000..30905174c --- /dev/null +++ b/modules/linear_algebra/help/ja_JP/kernel/range.xml @@ -0,0 +1,173 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + * 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 + * + --> + +<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="range"> + + <refnamediv> + + <refname>range</refname> + + <refpurpose>A^kã®ç¯„囲</refpurpose> + + </refnamediv> + + <refsynopsisdiv> + + <title>呼ã³å‡ºã—æ‰‹é †</title> + + <synopsis>[X,dim]=range(A,k)</synopsis> + + </refsynopsisdiv> + + <refsection> + + <title>引数</title> + + <variablelist> + + <varlistentry> + + <term>A</term> + + <listitem> + + <para>実数æ£æ–¹è¡Œåˆ—</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>k</term> + + <listitem> + + <para>æ•´æ•°</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>X</term> + + <listitem> + + <para>直交実数行列</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>dim</term> + + <listitem> + + <para>æ•´æ•° (部分空間ã®æ¬¡å…ƒ)</para> + + </listitem> + + </varlistentry> + + </variablelist> + + </refsection> + + <refsection> + + <title>説明</title> + + <para> + + 範囲 <literal>A^k</literal>を計算ã—ã¾ã™ ; <literal>X</literal> ã® + + 最åˆã® dim è¡Œã¯, <literal>A^k</literal>ã®ç¯„囲ã«åºƒãŒã‚Šã¾ã™. + + <literal>X</literal>ã®æœ€å¾Œã®è¡Œã¯, + + ã“ã®ç›´äº¤ç›¸è£œãªç¯„囲ã«åºƒãŒã‚Šã¾ã™. + + <literal>X*X'</literal> ã¯å˜ä½è¡Œåˆ—ã§ã™. + + </para> + + </refsection> + + <refsection> + + <title>例</title> + + <programlisting role="example"><![CDATA[ +A=rand(4,2)*rand(2,4); // 4 列ベクトル, 2 独立. +[X,dim]=range(A,1);dim // 範囲を計算 + +y1=A*rand(4,1); //Aã®ç¯„囲ã®ãƒ™ã‚¯ãƒˆãƒ« +y2=rand(4,1); //Aã®ç¯„囲ã«ãªã„ベクトル +norm(X(dim+1:$,:)*y1) //最後ã®ã‚¨ãƒ³ãƒˆãƒªã¯ã‚¼ãƒ, y1 ã¯Aã®ç¯„囲 +norm(X(dim+1:$,:)*y2) //最後ã®ã‚¨ãƒ³ãƒˆãƒªã¯éžã‚¼ãƒ + +I=X(1:dim,:)' //I ãŒç¯„囲ã®åŸºåº• +coeffs=X(1:dim,:)*y1 // 基底Iã«é–¢é€£ã™ã‚‹y1ã®è¦ç´ + +norm(I*coeffs-y1) //check + ]]></programlisting> + + </refsection> + + <refsection role="see also"> + + <title>å‚ç…§</title> + + <simplelist type="inline"> + + <member> + + <link linkend="fullrfk">fullrfk</link> + + </member> + + <member> + + <link linkend="rowcomp">rowcomp</link> + + </member> + + </simplelist> + + </refsection> + + <refsection> + + <title>使用ã•ã‚Œã‚‹é–¢æ•°</title> + + <para> + + <literal>range</literal> 関数ã¯, + + <link linkend="svd">svd</link>分解を使用ã™ã‚‹ + + <link linkend="rowcomp">rowcomp</link> 関数 + + ã«åŸºã¥ã„ã¦ã„ã¾ã™. + + </para> + + </refsection> + +</refentry> + diff --git a/modules/linear_algebra/help/ja_JP/kernel/rowcomp.xml b/modules/linear_algebra/help/ja_JP/kernel/rowcomp.xml new file mode 100755 index 000000000..dc29889fb --- /dev/null +++ b/modules/linear_algebra/help/ja_JP/kernel/rowcomp.xml @@ -0,0 +1,233 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + * 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 + * + --> + +<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="rowcomp"> + + <refnamediv> + + <refname>rowcomp</refname> + + <refpurpose>行圧縮, 範囲</refpurpose> + + </refnamediv> + + <refsynopsisdiv> + + <title>呼ã³å‡ºã—æ‰‹é †</title> + + <synopsis>[W,rk]=rowcomp(A [,flag [,tol]])</synopsis> + + </refsynopsisdiv> + + <refsection> + + <title>引数</title> + + <variablelist> + + <varlistentry> + + <term>A</term> + + <listitem> + + <para>実数ã¾ãŸã¯è¤‡ç´ æ•°ã®è¡Œåˆ—</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>flag</term> + + <listitem> + + <para>オプションã®æ–‡å—列, 指定å¯èƒ½ãªå€¤ã¯ + + <literal>'svd'</literal> ã¾ãŸã¯ <literal>'qr'</literal>ã§ã™. + + デフォルト値 <literal>'svd'</literal>ã¯ã§ã™. + + </para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>tol</term> + + <listitem> + + <para>オプションã®éžè² ã®å®Ÿæ•°. デフォルト値㯠+ + <literal>sqrt(%eps)*norm(A,1)</literal>. + + </para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>W</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>ã®è¡Œåœ§ç¸®. <literal>Ac = W*A</literal> ã¯è¡Œåœ§ç¸®ã•ã‚ŒãŸè¡Œåˆ—ã§ã™: ã™ãªã‚ã¡, + + <literal>Af</literal>を行フルランクã¨ã—㦠+ + <literal>Ac=[Af;0]</literal> ã¨ãªã‚Šã¾ã™. + + </para> + + <para> + + <literal>flag</literal> ãŠã‚ˆã³ <literal>tol</literal> ã¯ã‚ªãƒ—ションã®ãƒ‘ラメータã§ã™: <literal>flag='qr'</literal> + + ã¾ãŸã¯ <literal>'svd'</literal> (デフォルト <literal>'svd'</literal>). + + </para> + + <para> + + <literal>tol</literal> ã¯è¨±å®¹èª¤å·®ãƒ‘ラメータã§ã™. + + </para> + + <para> + + <literal>W'</literal>ã®æœ€åˆã®<literal>rk</literal> 列ã«ã¯, + + <literal>A</literal>ã®ç¯„囲ãŒåºƒãŒã‚Šã¾ã™. + + </para> + + <para> + + <literal>W</literal>ã®æœ€åˆã®(上å´ã®)<literal>rk</literal> è¡Œã«ã¯, + + <literal>A</literal>ã®è¡Œç¯„囲ãŒåºƒãŒã‚Šã¾ã™. + + </para> + + <para> + + éžã‚¼ãƒãƒ™ã‚¯ãƒˆãƒ« <literal>x</literal> ã¯, + + <literal>W*x</literal>ãŒ<literal>Ac</literal>ã«åŸºã¥ã行圧縮ã•ã‚ŒãŸå ´åˆ, + + ã™ãªã‚ã¡,ãã®æœ€å¾Œã®è¦ç´ ã®ãƒŽãƒ«ãƒ ãŒæœ€åˆã®è¦ç´ ã«å¯¾ã—ã¦å°ã•ã„å ´åˆã«é™ã‚Š, + + range(<literal>A</literal>)ã«å±žã—ã¾ã™. + + </para> + + </refsection> + + <refsection> + + <title>例</title> + + <programlisting role="example"><![CDATA[ +A=rand(5,2)*rand(2,4); // 4 列ベクトル, 2 ã¤ã¯ç‹¬ç«‹. +[X,dim]=rowcomp(A);Xp=X'; +svd([Xp(:,1:dim),A]) //span(A) = span(Xp(:,1:dim) +x=A*rand(4,1); //x 㯠span(A)ã«å±žã—ã¾ã™ +y=X*x +norm(y(dim+1:$))/norm(y(1:dim)) // å°ã•ã„ + ]]></programlisting> + + </refsection> + + <refsection role="see also"> + + <title>å‚ç…§</title> + + <simplelist type="inline"> + + <member> + + <link linkend="colcomp">colcomp</link> + + </member> + + <member> + + <link linkend="fullrf">fullrf</link> + + </member> + + <member> + + <link linkend="fullrfk">fullrfk</link> + + </member> + + </simplelist> + + </refsection> + + <refsection> + + <title>使用ã•ã‚Œã‚‹é–¢æ•°</title> + + <para> + + <literal>rowcomp</literal> 関数ã¯<link linkend="svd">svd</link> ã¾ãŸã¯ + + <link linkend="qr">qr</link> 分解d. + + </para> + + </refsection> + +</refentry> + diff --git a/modules/linear_algebra/help/ja_JP/linear/CHAPTER b/modules/linear_algebra/help/ja_JP/linear/CHAPTER new file mode 100755 index 000000000..7d9d9cf49 --- /dev/null +++ b/modules/linear_algebra/help/ja_JP/linear/CHAPTER @@ -0,0 +1,2 @@ +title = Linear Equations + diff --git a/modules/linear_algebra/help/ja_JP/linear/aff2ab.xml b/modules/linear_algebra/help/ja_JP/linear/aff2ab.xml new file mode 100755 index 000000000..f15783cf4 --- /dev/null +++ b/modules/linear_algebra/help/ja_JP/linear/aff2ab.xml @@ -0,0 +1,258 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + * 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 + * + --> + +<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="aff2ab"> + + <refnamediv> + + <refname>aff2ab</refname> + + <refpurpose>ç·šå½¢ (アフィン)関数を A,b ã«å¤‰æ›</refpurpose> + + </refnamediv> + + <refsynopsisdiv> + + <title>呼ã³å‡ºã—æ‰‹é †</title> + + <synopsis>[A,b]=aff2ab(afunction,dimX,D [,flag])</synopsis> + + </refsynopsisdiv> + + <refsection> + + <title>引数</title> + + <variablelist> + + <varlistentry> + + <term>afunction</term> + + <listitem> + + <para> + + scilab 関数 <literal> Y =fct(X,D) </literal> + + ãŸã ã—, <literal>X, D, Y</literal> ã¯è¡Œåˆ—ã®<literal>リスト</literal> + + </para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>dimX</term> + + <listitem> + + <para> + + p x 2 整数行列 (<literal>p</literal> 㯠+ + <literal>X</literal>ã®è¡Œåˆ—ã®æ•°) + + </para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>D</term> + + <listitem> + + <para> + + 実数行列ã®<literal>list</literal> (ã¾ãŸã¯ä»»æ„ã®æœ‰åŠ¹ãªScilab オブジェクト). + + </para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>flag</term> + + <listitem> + + <para> + + オプションã®ãƒ‘ラメータ (<literal>flag='f'</literal> + + ã¾ãŸã¯ <literal>flag='sp'</literal>) + + </para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>A</term> + + <listitem> + + <para>実数行列</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>b</term> + + <listitem> + + <para> + + <literal>A</literal>ã¨åŒã˜è¡Œæ¬¡å…ƒã‚’有ã™ã‚‹å®Ÿæ•°ãƒ™ã‚¯ãƒˆãƒ« + + </para> + + </listitem> + + </varlistentry> + + </variablelist> + + </refsection> + + <refsection> + + <title>説明</title> + + <para> + + <literal>aff2ab</literal>ã¯,アフィン関数ã®(æ£æº–å½¢å¼ã®)行列表ç¾ã‚’è¿”ã—ã¾ã™. + + </para> + + <para> + + <literal>afunction</literal> ã¯ä»¥ä¸‹ã®è¦å®šã®æ§‹æ–‡ã‚’有ã™ã‚‹é–¢æ•°ã§ã™: + + <literal> Y=afunction(X,D) </literal> + + ãŸã ã—, <literal> X=list(X1,X2,...,Xp) </literal> 㯠+ + p 個ã®å®Ÿæ•°è¡Œåˆ—ã®ãƒªã‚¹ãƒˆ,<literal> Y=list(Y1,...,Yq) </literal> 㯠+ + <literal> Xi</literal>ã«ç·šå½¢ã«ä¾å˜ã™ã‚‹q 個ã®å®Ÿæ•°è¡Œåˆ—ã®ãƒªã‚¹ãƒˆã§ã™. + + (オプションã®) 入力 <literal> D</literal> ã¯, X ã®é–¢æ•°ã¨ã—㦠+ + Yを計算ã™ã‚‹ãŸã‚ã«å¿…è¦ãªãƒ‘ラメータを有ã—ã¦ã„ã¾ã™. + + </para> + + <para> + + <literal> dimX</literal> 㯠p x 2 行列ã§ã™: <literal>dimX(i)=[nri,nci]</literal> + + ã¯è¡Œåˆ—<literal>Xi</literal>ã®è¡Œã¨åˆ—ã®å®Ÿéš›ã®æ•°ã§ã™. + + ã“れらã®æ¬¡å…ƒã¯,çµæžœã®è¡Œåˆ—<literal>A</literal>ã®åˆ—ã®æ¬¡å…ƒã§ã‚ã‚‹ + + <literal>na</literal> を以下ã®ã‚ˆã†ã«å®šç¾©ã—ã¾ã™: + + <literal>na=nr1*nc1 +...+ nrp*ncp</literal>. + + </para> + + <para> + + オプションã®ãƒ‘ラメータ <literal>flag='sp'</literal> ãŒæŒ‡å®šã•ã‚ŒãŸå ´åˆ, + + çµæžœã®è¡Œåˆ— <literal>A</literal>ã¯ç–Žè¡Œåˆ—ã¨ã—ã¦è¿”ã•ã‚Œã¾ã™. + + </para> + + <para> + + ã“ã®é–¢æ•°ã¯,未知変数ãŒè¡Œåˆ—ã§ã‚るよã†ãª + + 線形方程å¼ã®ã‚·ã‚¹ãƒ†ãƒ を解ããŸã‚ã«æœ‰ç”¨ã§ã™. + + </para> + + </refsection> + + <refsection> + + <title>例</title> + + <programlisting role="example"><![CDATA[ +// リアプノフ方程å¼ã‚½ãƒ«ãƒ (未知変数1ã¤, 拘æŸæ¡ä»¶1ã¤) +deff('Y=lyapunov(X,D)','[A,Q]=D(:);Xm=X(:); Y=list(A''*Xm+Xm*A-Q)') +A=rand(3,3);Q=rand(3,3);Q=Q+Q';D=list(A,Q);dimX=[3,3]; +[Aly,bly]=aff2ab(lyapunov,dimX,D); +[Xl,kerA]=linsolve(Aly,bly); Xv=vec2list(Xl,dimX); lyapunov(Xv,D) +Xm=Xv(:); A'*Xm+Xm*A-Q +// 冗長ãªæ‹˜æŸ t X=X'を有ã™ã‚‹ãƒªã‚¢ãƒ—ノフ方程å¼ã‚½ãƒ«ãƒ +// (変数1ã¤, 拘æŸæ¡ä»¶2ã¤t) D ã¯ã‚°ãƒãƒ¼ãƒãƒ«å¤‰æ•° +deff('Y=ly2(X,D)','[A,Q]=D(:);Xm=X(:); Y=list(A''*Xm+Xm*A-Q,Xm''-Xm)') +A=rand(3,3);Q=rand(3,3);Q=Q+Q';D=list(A,Q);dimX=[3,3]; +[Aly,bly]=aff2ab(ly2,dimX,D); +[Xl,kerA]=linsolve(Aly,bly); Xv=vec2list(Xl,dimX); ly2(Xv,D) +// ãƒ•ãƒ©ãƒ³ã‚·ã‚¹æ–¹ç¨‹å¼ +// 以下ã®ã‚ˆã†ãªè¡Œåˆ— X1 ãŠã‚ˆã³ X2 を見ã¤ã‘ã‚‹: +// A1*X1 - X1*A2 + B*X2 -A3 = 0 +// D1*X1 -D2 = 0 +deff('Y=bruce(X,D)','[A1,A2,A3,B,D1,D2]=D(:),... +[X1,X2]=X(:);Y=list(A1*X1-X1*A2+B*X2-A3,D1*X1-D2)') +A1=[-4,10;-1,2];A3=[1;2];B=[0;1];A2=1;D1=[0,1];D2=1; +D=list(A1,A2,A3,B,D1,D2); +[n1,m1]=size(A1);[n2,m2]=size(A2);[n3,m3]=size(B); +dimX=[[m1,n2];[m3,m2]]; +[Af,bf]=aff2ab(bruce,dimX,D); +[Xf,KerAf]=linsolve(Af,bf);Xsol=vec2list(Xf,dimX) +bruce(Xsol,D) +// Aを変æ›ã™ã‚‹å…¨ã¦ã®Xを見ã¤ã‘ã‚‹ +deff('y=f(X,D)','y=list(D(:)*X(:)-X(:)*D(:))') +A=rand(3,3);dimX=[3,3];[Af,bf]=aff2ab(f,dimX,list(A)); +[Xf,KerAf]=linsolve(Af,bf);[p,q]=size(KerAf); +Xsol=vec2list(Xf+KerAf*rand(q,1),dimX); +C=Xsol(:); A*C-C*A + ]]></programlisting> + + </refsection> + + <refsection role="see also"> + + <title>å‚ç…§</title> + + <simplelist type="inline"> + + <member> + + <link linkend="linsolve">linsolve</link> + + </member> + + </simplelist> + + </refsection> + +</refentry> + diff --git a/modules/linear_algebra/help/ja_JP/linear/chol.xml b/modules/linear_algebra/help/ja_JP/linear/chol.xml new file mode 100755 index 000000000..3838ddb87 --- /dev/null +++ b/modules/linear_algebra/help/ja_JP/linear/chol.xml @@ -0,0 +1,149 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + * 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 + * + --> + +<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="chol"> + + <refnamediv> + + <refname>chol</refname> + + <refpurpose>コレスã‚ー分解</refpurpose> + + </refnamediv> + + <refsynopsisdiv> + + <title>呼ã³å‡ºã—æ‰‹é †</title> + + <synopsis>[R]=chol(X)</synopsis> + + </refsynopsisdiv> + + <refsection> + + <title>引数</title> + + <variablelist> + + <varlistentry> + + <term>X</term> + + <listitem> + + <para>実数ã¾ãŸã¯è¤‡ç´ æ•°ã®æ£å®šå¯¾ç§°è¡Œåˆ—.</para> + + </listitem> + + </varlistentry> + + </variablelist> + + </refsection> + + <refsection> + + <title>説明</title> + + <para> + + <literal>X</literal> ãŒæ£å®šã®å ´åˆ, <literal>R = chol(X)</literal> ã¯, + + <literal>R'*R = X</literal>ã¨ãªã‚‹ã‚ˆã†ãª + + 上三角行列<literal>R</literal>を出力ã—ã¾ã™. + + </para> + + <para> + + <literal>chol(X)</literal> ã¯<literal>X</literal>ã®å¯¾è§’é … + + ã¨ä¸Šä¸‰è§’部ã®ã¿ã‚’使用ã—ã¾ã™. + + 下三角部ã¯ä¸Šä¸‰è§’部ã®è»¢ç½®(è¤‡ç´ å…±å½¹)ã¨ã¿ãªã•ã‚Œã¾ã™. + + </para> + + </refsection> + + <refsection> + + <title>å‚考文献</title> + + <para> + + コレスã‚ー分解ã¯Lapackルーãƒãƒ³ DPOTRF (実数行列ã®å ´åˆ)ãŠã‚ˆã³ ZPOTRF (è¤‡ç´ è¡Œåˆ—ã®å ´åˆ) + + ã«åŸºã¥ãã¾ã™. + + </para> + + </refsection> + + <refsection> + + <title>例</title> + + <programlisting role="example"><![CDATA[ +W=rand(5,5)+%i*rand(5,5); +X=W*W'; +R=chol(X); +norm(R'*R-X) + ]]></programlisting> + + </refsection> + + <refsection role="see also"> + + <title>å‚ç…§</title> + + <simplelist type="inline"> + + <member> + + <link linkend="spchol">spchol</link> + + </member> + + <member> + + <link linkend="qr">qr</link> + + </member> + + <member> + + <link linkend="svd">svd</link> + + </member> + + <member> + + <link linkend="bdiag">bdiag</link> + + </member> + + <member> + + <link linkend="fullrf">fullrf</link> + + </member> + + </simplelist> + + </refsection> + +</refentry> + diff --git a/modules/linear_algebra/help/ja_JP/linear/inv.xml b/modules/linear_algebra/help/ja_JP/linear/inv.xml new file mode 100755 index 000000000..64e289d34 --- /dev/null +++ b/modules/linear_algebra/help/ja_JP/linear/inv.xml @@ -0,0 +1,195 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + * 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 + * + --> + +<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"> + + <refnamediv> + + <refname>inv</refname> + + <refpurpose>逆行列</refpurpose> + + </refnamediv> + + <refsynopsisdiv> + + <title>呼ã³å‡ºã—æ‰‹é †</title> + + <synopsis>inv(X)</synopsis> + + </refsynopsisdiv> + + <refsection> + + <title>引数</title> + + <variablelist> + + <varlistentry> + + <term>X</term> + + <listitem> + + <para>実数ã¾ãŸã¯è¤‡ç´ æ•°ã®æ£æ–¹è¡Œåˆ—, å¤šé …å¼è¡Œåˆ—ãŠã‚ˆã³ + + ä¼é”関数ã¾ãŸã¯çŠ¶æ…‹ç©ºé–“表ç¾ã®æœ‰ç†è¡Œåˆ—. + + </para> + + </listitem> + + </varlistentry> + + </variablelist> + + </refsection> + + <refsection> + + <title>説明</title> + + <para> + + <literal>inv(X)</literal> ã¯,æ£æ–¹è¡Œåˆ— <literal>X</literal>ã®é€†è¡Œåˆ— + + ã¨ãªã‚Šã¾ã™. + + <literal>X</literal> ã®ã‚¹ã‚±ãƒ¼ãƒªãƒ³ã‚°ãŒ + + 悪ã„å ´åˆã‚„特異行列ã«è¿‘ã„å ´åˆã«ã¯è¦å‘Šã‚’出力ã—ã¾ã™. + + </para> + + <para> + + å¤šé …å¼è¡Œåˆ—ã¾ãŸã¯ä¼é”関数表ç¾ã®æœ‰ç†è¡Œåˆ—ã®å ´åˆ, + + <literal>inv(X)</literal> 㯠<literal>invr(X)</literal>ã«ç‰ã—ããªã‚Šã¾ã™. + + </para> + + <para> + + 状態空間表ç¾ã®ç·šå½¢ã‚·ã‚¹ãƒ†ãƒ (<literal>syslin</literal> リスト)ã®å ´åˆ, + + <literal>invr(X)</literal> 㯠<literal>invsyslin(X)</literal>ã«ç‰ã—ããªã‚Šã¾ã™. + + </para> + + </refsection> + + <refsection role="see also"> + + <title>å‚ç…§</title> + + <para> + + 数値行列用ã®<literal>inv</literal> 関数㯠Lapack ルーãƒãƒ³ + + DGETRF, DGETRI (実数行列ã®å ´åˆ)ãŠã‚ˆã³ ZGETRF, ZGETRI + + (è¤‡ç´ æ•°ã®å ´åˆ)ã«åŸºã¥ã„ã¦ã„ã¾ã™. + + å¤šé …å¼ãŠã‚ˆã³æœ‰ç†è¡Œåˆ—ã«é–¢ã™ã‚‹ <literal>inv</literal> 㯠+ + Scilab関数<literal>invr</literal>ã«åŸºã¥ã„ã¦ã„ã¾ã™. + + </para> + + </refsection> + + <refsection> + + <title>例</title> + + <programlisting role="example"><![CDATA[ +A=rand(3,3);inv(A)*A +x=poly(0,'x'); +A=[x,1,x;x^2,2,1+x;1,2,3];inv(A)*A +A=[1/x,2;2+x,2/(1+x)] +inv(A)*A +A=ssrand(2,2,3); +W=inv(A)*A +clean(ss2tf(W)) + ]]></programlisting> + + </refsection> + + <refsection> + + <title>å‚考</title> + + <simplelist type="inline"> + + <member> + + <link linkend="slash">slash</link> + + </member> + + <member> + + <link linkend="backslash">backslash</link> + + </member> + + <member> + + <link linkend="pinv">pinv</link> + + </member> + + <member> + + <link linkend="qr">qr</link> + + </member> + + <member> + + <link linkend="lufact">lufact</link> + + </member> + + <member> + + <link linkend="lusolve">lusolve</link> + + </member> + + <member> + + <link linkend="invr">invr</link> + + </member> + + <member> + + <link linkend="coff">coff</link> + + </member> + + <member> + + <link linkend="coffg">coffg</link> + + </member> + + </simplelist> + + </refsection> + +</refentry> + diff --git a/modules/linear_algebra/help/ja_JP/linear/linsolve.xml b/modules/linear_algebra/help/ja_JP/linear/linsolve.xml new file mode 100755 index 000000000..f34d07ead --- /dev/null +++ b/modules/linear_algebra/help/ja_JP/linear/linsolve.xml @@ -0,0 +1,211 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + * 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 + * + --> + +<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="linsolve"> + + <refnamediv> + + <refname>linsolve</refname> + + <refpurpose>線形方程å¼ã‚½ãƒ«ãƒ</refpurpose> + + </refnamediv> + + <refsynopsisdiv> + + <title>呼ã³å‡ºã—æ‰‹é †</title> + + <synopsis>[x0,kerA]=linsolve(A,b [,x0])</synopsis> + + </refsynopsisdiv> + + <refsection> + + <title>引数</title> + + <variablelist> + + <varlistentry> + + <term>A</term> + + <listitem> + + <para> + + a <literal>na x ma</literal> 実数行列 (疎行列ã®å ´åˆã‚‚ã‚ã‚Š) + + </para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>b</term> + + <listitem> + + <para> + + <literal>na x 1</literal>ベクトル (<literal>A</literal>ã®è¡Œã¨åŒã˜æ¬¡å…ƒ) + + </para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>x0</term> + + <listitem> + + <para>実数ベクトル</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>kerA</term> + + <listitem> + + <para> + + <literal>ma x k</literal> 実数行列 + + </para> + + </listitem> + + </varlistentry> + + </variablelist> + + </refsection> + + <refsection> + + <title>説明</title> + + <para> + + <literal>linsolve</literal> ã¯, + + <literal> A*x+b=0</literal>ã®è§£ã‚’å…¨ã¦è¨ˆç®—ã—ã¾ã™. + + </para> + + <para> + + <literal>x0</literal> ã¯ç‰¹è§£ (å˜åœ¨ã™ã‚‹å ´åˆ), + + <literal> kerA </literal> ã¯<literal>A</literal>ã®ãƒŒãƒ«ç©ºé–“ã§ã™. + + ä»»æ„ã®<literal>w</literal>ã«ã¤ã„ã¦<literal>x=x0+kerA*w</literal>ã¯, + + <literal> A*x+b=0</literal>を満ãŸã—ã¾ã™. + + </para> + + <para> + + 互æ›æ€§ã®ã‚ã‚‹ <literal>x0</literal> ãŒã‚¨ãƒ³ãƒˆãƒªã«æŒ‡å®šã•ã‚ŒãŸå ´åˆ, + + <literal>x0</literal>ãŒè¿”ã•ã‚Œã¾ã™. + + ãã†ã§ãªã„å ´åˆ,<literal>x0</literal>ã¨äº’æ›æ€§ã®ã‚ã‚‹ã‚‚ã®(å˜åœ¨ã™ã‚‹å ´åˆ)ãŒè¿”ã•ã‚Œã¾ã™. + + </para> + + </refsection> + + <refsection> + + <title>例</title> + + <programlisting role="example"><![CDATA[ +A=rand(5,3)*rand(3,8); +b=A*ones(8,1);[x,kerA]=linsolve(A,b);A*x+b //compatible b +b=ones(5,1);[x,kerA]=linsolve(A,b);A*x+b //uncompatible b +A=rand(5,5);[x,kerA]=linsolve(A,b), -inv(A)*b //x is unique +// Benchmark with other linear sparse solver: +[A,descr,ref,mtype] = ReadHBSparse(SCI+"/modules/umfpack/examples/bcsstk24.rsa"); +b = zeros(size(A,1),1); +tic(); +res = umfpack(A,'\',b); +mprintf('\ntime needed to solve the system with umfpack: %.3f\n',toc()); +tic(); +res = linsolve(A,b); +mprintf('\ntime needed to solve the system with linsolve: %.3f\n',toc()); +tic(); +res = A\b; +mprintf('\ntime needed to solve the system with the backslash operator: %.3f\n',toc()); + ]]></programlisting> + + </refsection> + + <refsection role="see also"> + + <title>å‚ç…§</title> + + <simplelist type="inline"> + + <member> + + <link linkend="inv">inv</link> + + </member> + + <member> + + <link linkend="pinv">pinv</link> + + </member> + + <member> + + <link linkend="colcomp">colcomp</link> + + </member> + + <member> + + <link linkend="im_inv">im_inv</link> + + </member> + + <member> + + <link linkend="umfpack">umfpack</link> + + </member> + + <member> + + <link linkend="backslash">backslash</link> + + </member> + + </simplelist> + + </refsection> + +</refentry> + diff --git a/modules/linear_algebra/help/ja_JP/linear/lsq.xml b/modules/linear_algebra/help/ja_JP/linear/lsq.xml new file mode 100755 index 000000000..51c55183d --- /dev/null +++ b/modules/linear_algebra/help/ja_JP/linear/lsq.xml @@ -0,0 +1,192 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + * 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 + * + --> + +<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="lsq"> + + <refnamediv> + + <refname>lsq</refname> + + <refpurpose>線形最å°äºŒä¹—å•é¡Œ. </refpurpose> + + </refnamediv> + + <refsynopsisdiv> + + <title>呼ã³å‡ºã—æ‰‹é †</title> + + <synopsis>X=lsq(A,B [,tol])</synopsis> + + </refsynopsisdiv> + + <refsection> + + <title>引数</title> + + <variablelist> + + <varlistentry> + + <term>A</term> + + <listitem> + + <para>実数ã¾ãŸã¯è¤‡ç´ æ•°ã® (m x n) 行列</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>B</term> + + <listitem> + + <para>実数ã¾ãŸã¯è¤‡ç´ æ•°ã® (m x p) 行列</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>tol</term> + + <listitem> + + <para>Aã®å®ŸåŠ¹ãƒ©ãƒ³ã‚¯ã‚’定義ã™ã‚‹ãŸã‚ã«ä½¿ç”¨ã•ã‚Œã‚‹æ£ã®ã‚¹ã‚«ãƒ©ãƒ¼ + + (Aã®ãƒ”ボットæ“作付ãQR分解ã«ãŠã‘る最å‰éƒ¨ã«ã‚る部分三角行列R11ã®æ¬¡æ•°ã¨ã—㦠+ + 定義ã•ã‚Œ,æ¡ä»¶æ•°ã®æŽ¨å®šå€¤ã¯<= 1/tolã¨ãªã‚Šã¾ã™. + + tolã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆå€¤ã¯ <literal>sqrt(%eps)</literal>ã«è¨å®šã•ã‚Œã¾ã™ ) + + </para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>X</term> + + <listitem> + + <para>実数ã¾ãŸã¯è¤‡ç´ æ•°ã® (n x p) 行列</para> + + </listitem> + + </varlistentry> + + </variablelist> + + </refsection> + + <refsection> + + <title>説明</title> + + <para> + + <literal>X=lsq(A,B)</literal> ã¯æ–¹ç¨‹å¼ <literal>A*X=B</literal>ã® + + 最å°äºŒä¹—解ã®æœ€å°ãƒŽãƒ«ãƒ を計算ã—ã¾ã™. + + 一方, <literal>X=A \ B</literal>㯠+ + å„列ã«æœ€å¤§<literal>rank(A)</literal>個ã®éžã‚¼ãƒè¦ç´ を有ã™ã‚‹æœ€å°äºŒä¹—解を計算ã—ã¾ã™. + + </para> + + </refsection> + + <refsection> + + <title>å‚考文献</title> + + <para> + + <literal>lsq</literal> 関数ã¯LApack 関数 DGELSY (実行列ã®å ´åˆ)ãŠã‚ˆã³ + + ZGELSY (è¤‡ç´ è¡Œåˆ—ã®å ´åˆ)ã«åŸºã¥ã„ã¦ã„ã¾ã™. + + </para> + + </refsection> + + <refsection> + + <title>例</title> + + <programlisting role="example"><![CDATA[ +//Build the data +x=(1:10)'; +y1=3*x+4.5+3*rand(x,'normal'); +y2=1.8*x+0.5+2*rand(x,'normal'); +plot2d(x,[y1,y2],[-2,-3]) +//Find the linear regression +A=[x,ones(x)];B=[y1,y2]; +X=lsq(A,B); +y1e=X(1,1)*x+X(2,1); +y2e=X(1,2)*x+X(2,2); +plot2d(x,[y1e,y2e],[2,3]) +//Difference between lsq(A,b) and A\b +A=rand(4,2)*rand(2,3);//a rank 2 matrix +b=rand(4,1); +X1=lsq(A,b) +X2=A\b +[A*X1-b, A*X2-b] //the residuals are the same + ]]></programlisting> + + </refsection> + + <refsection role="see also"> + + <title>å‚ç…§</title> + + <simplelist type="inline"> + + <member> + + <link linkend="backslash">backslash</link> + + </member> + + <member> + + <link linkend="inv">inv</link> + + </member> + + <member> + + <link linkend="pinv">pinv</link> + + </member> + + <member> + + <link linkend="rank">rank</link> + + </member> + + </simplelist> + + </refsection> + +</refentry> + diff --git a/modules/linear_algebra/help/ja_JP/linear/lu.xml b/modules/linear_algebra/help/ja_JP/linear/lu.xml new file mode 100755 index 000000000..6ce19d0e3 --- /dev/null +++ b/modules/linear_algebra/help/ja_JP/linear/lu.xml @@ -0,0 +1,299 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2008 - INRIA + * Copyright (C) 2009 - 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: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="lu"> + + <refnamediv> + + <refname>lu</refname> + + <refpurpose>ピボットé¸æŠžä»˜ãã®LU 分解</refpurpose> + + </refnamediv> + + <refsynopsisdiv> + + <title>呼ã³å‡ºã—æ‰‹é †</title> + + <synopsis>[L,U]= lu(A) + + [L,U,E]= lu(A) + + </synopsis> + + </refsynopsisdiv> + + <refsection> + + <title>引数</title> + + <variablelist> + + <varlistentry> + + <term>A</term> + + <listitem> + + <para>実数ã¾ãŸã¯è¤‡ç´ æ•°ã®è¡Œåˆ— (m x n).</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>L</term> + + <listitem> + + <para> 実数ã¾ãŸã¯è¤‡ç´ æ•°ã®è¡Œåˆ— (m x min(m,n)).</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>U</term> + + <listitem> + + <para>実数ã¾ãŸã¯è¤‡ç´ æ•°ã®è¡Œåˆ— (min(m,n) x n ).</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>E</term> + + <listitem> + + <para>a (n x n) ç½®æ›è¡Œåˆ—.</para> + + </listitem> + + </varlistentry> + + </variablelist> + + </refsection> + + <refsection> + + <title>説明</title> + + <para> + + <literal>[L,U]= lu(A)</literal> ã¯, + + <literal>U</literal>を上三角行列, + + <literal>L</literal>を何らã‹ã®ç‰¹åˆ¥ãªæ§‹é€ ã‚’æŒãŸãªã„一般的ãªè¡Œåˆ—ã¨ã—ã¦, + + <literal>A = L*U</literal> ã¨ãªã‚‹ã‚ˆã†ãª + + 2ã¤ã®è¡Œåˆ— <literal>L</literal> ãŠã‚ˆã³ + + <literal>U</literal> を出力ã—ã¾ã™. + + 実際ã¯,行列<literal>A</literal>ã¯<literal>E*A=B*U</literal> + + ã®ã‚ˆã†ã«åˆ†è§£ã•ã‚Œã¾ã™. + + ãŸã ã—, 行列<literal>B</literal>ã¯ä¸‹ä¸‰è§’行列, + + 行列<literal>L</literal>ã¯<literal>L=E'*B</literal>ã‹ã‚‰è¨ˆç®—ã•ã‚Œã¾ã™. + + </para> + + <para> + + <literal>A</literal> ãŒãƒ©ãƒ³ã‚¯ <literal>k</literal>を有ã—ã¦ã„ã‚‹å ´åˆ, + + <literal>U</literal>ã®è¡Œ <literal>k+1</literal> ã‹ã‚‰ + + <literal>n</literal> ã¾ã§ã¯ 0 ã¨ãªã‚Šã¾ã™. + + </para> + + <para> + + <literal>[L,U,E]= lu(A)</literal> ã¯, + + 上三角行列<literal>U</literal>ãŠã‚ˆã³ + + ç½®æ›è¡Œåˆ—ã‚’ <literal>E</literal>ã¨ã—ãŸä¸‹ä¸‰è§’行列 <literal>E*L</literal>, + + ã«ã‚ˆã‚Š<literal>E*A = L*U</literal>ã¨ãªã‚‹ã‚ˆã†ãª + + 3ã¤ã®è¡Œåˆ— <literal>L</literal>, <literal>U</literal> ãŠã‚ˆã³ + + <literal>E</literal>を出力ã—ã¾ã™. + + </para> + + <para> + + <literal>A</literal> ãŒå®Ÿæ•°è¡Œåˆ—ã®å ´åˆ, + + 関数<literal>lufact</literal> ãŠã‚ˆã³ <literal>luget</literal>ã‚’ + + 用ã„ã‚‹ã“ã¨ã«ã‚ˆã‚Š, + + ç½®æ›è¡Œåˆ—ã‚’å¾—ã‚‹ã“ã¨ãŒã§ãã¾ã™. + + <literal>A</literal>ãŒãƒ•ãƒ«ãƒ©ãƒ³ã‚¯ã§ãªã„å ´åˆ,行列 <literal>L</literal> + + ã®åˆ—圧縮も得るã“ã¨ãŒã§ãã‚‹. + + </para> + + </refsection> + + <refsection> + + <title>例 #1</title> + + <para> + + 以下ã®ä¾‹ã§ã¯,大ãã•4ã®ãƒ’ルãƒãƒ¼ãƒˆè¡Œåˆ—を作æˆã—, + + A=LU ã¨åˆ†è§£ã—ã¾ã™. + + 行列 L ã¯ä¸‹ä¸‰è§’行列ã§ã¯ãªã„ã“ã¨ã«æ³¨æ„ã—ã¦ãã ã•ã„. + + 下三角行列Lã‚’å–å¾—ã™ã‚‹ã«ã¯, + + 出力引数 E ã‚’ Scilab ã«æŒ‡å®šã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™. + + </para> + + <programlisting role="example"><![CDATA[ +a = testmatrix("hilb",4); +[l,u]=lu(a) +norm(l*u-a) + ]]></programlisting> + + </refsection> + + <refsection> + + <title>例 #2</title> + + <para> + + 以下ã®ä¾‹ã§ã¯,大ãã•4ã®ãƒ’ルãƒãƒ¼ãƒˆè¡Œåˆ—を作æˆã—, + + EA=LU ã¨åˆ†è§£ã—ã¾ã™. + + 行列 L ã¯ä¸‹ä¸‰è§’行列ã§ã‚ã‚‹ã“ã¨ã«æ³¨æ„ã—ã¦ãã ã•ã„. + + </para> + + <programlisting role="example"><![CDATA[ +a = testmatrix("hilb",4); +[l,u,e]=lu(a) +norm(l*u-e*a) + ]]></programlisting> + + </refsection> + + <refsection> + + <title>例 #3</title> + + <para> + + 以下ã®ä¾‹ã§ã¯, lufact ãŠã‚ˆã³ luget 関数を使用ã™ã‚‹ + + 方法を示ã—ã¦ã„ã¾ã™. + + </para> + + <programlisting role="example"><![CDATA[ +a=rand(4,4); +[l,u]=lu(a) +norm(l*u-a) +[h,rk]=lufact(sparse(a)) +[P,L,U,Q]=luget(h); +ludel(h) +P=full(P); +L=full(L); +U=full(U); +Q=full(Q); +norm(P*L*U*Q-a) + ]]></programlisting> + + </refsection> + + <refsection role="see also"> + + <title>å‚ç…§</title> + + <simplelist type="inline"> + + <member> + + <link linkend="lufact">lufact</link> + + </member> + + <member> + + <link linkend="luget">luget</link> + + </member> + + <member> + + <link linkend="lusolve">lusolve</link> + + </member> + + <member> + + <link linkend="qr">qr</link> + + </member> + + <member> + + <link linkend="svd">svd</link> + + </member> + + </simplelist> + + </refsection> + + <refsection> + + <title>使用ã™ã‚‹é–¢æ•°</title> + + <para> + + lu 分解 Lapack ルーãƒãƒ³ DGETRF (実数行列ã®å ´åˆ) + + ãŠã‚ˆã³ ZGETRF (è¤‡ç´ æ•°ã®å ´åˆ) ã«åŸºã¥ã„ã¦ã„ã¾ã™. + + </para> + + </refsection> + +</refentry> + diff --git a/modules/linear_algebra/help/ja_JP/linear/pinv.xml b/modules/linear_algebra/help/ja_JP/linear/pinv.xml new file mode 100755 index 000000000..1b59ae16c --- /dev/null +++ b/modules/linear_algebra/help/ja_JP/linear/pinv.xml @@ -0,0 +1,159 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + * 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 + * + --> + +<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="pinv"> + + <refnamediv> + + <refname>pinv</refname> + + <refpurpose>擬似逆行列</refpurpose> + + </refnamediv> + + <refsynopsisdiv> + + <title>呼ã³å‡ºã—æ‰‹é †</title> + + <synopsis>pinv(A,[tol])</synopsis> + + </refsynopsisdiv> + + <refsection> + + <title>引数</title> + + <variablelist> + + <varlistentry> + + <term>A</term> + + <listitem> + + <para>実数ã¾ãŸã¯è¤‡ç´ æ•°ã®è¡Œåˆ—</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>tol</term> + + <listitem> + + <para>実数</para> + + </listitem> + + </varlistentry> + + </variablelist> + + </refsection> + + <refsection> + + <title>説明</title> + + <para> + + <literal>X= pinv(A)</literal> ã¯, + + <literal>A'</literal>ã¨åŒã˜æ¬¡å…ƒã®ä»¥ä¸‹ã®ã‚ˆã†ãª + + 行列<literal>X</literal>を出力ã—ã¾ã™: + + </para> + + <para> + + <literal>A*X*A = A, X*A*X = X</literal> ãã—㦠+ + <literal>A*X</literal> ãŠã‚ˆã³ <literal>X*A</literal> + + ã¯å…±ã«ã‚¨ãƒ«ãƒŸãƒ¼ãƒˆè¡Œåˆ—ã§ã™. + + </para> + + <para> + + 計算ã¯ç‰¹ç•°å€¤åˆ†è§£ã«åŸºã¥ã„ã¦ãŠã‚Š, + + 許容値よりもå°ã•ã„特異値㯠0 ã¨ã—ã¦æ‰±ã‚ã‚Œã¾ã™: + + ã“ã®è¨±å®¹èª¤å·®ã¯ <literal>X=pinv(A,tol)</literal> + + ã§ã‚¢ã‚¯ã‚»ã‚¹ã•ã‚Œã¾ã™. + + </para> + + </refsection> + + <refsection> + + <title>例</title> + + <programlisting role="example"><![CDATA[ +A=rand(5,2)*rand(2,4); +norm(A*pinv(A)*A-A,1) + ]]></programlisting> + + </refsection> + + <refsection role="see also"> + + <title>å‚ç…§</title> + + <simplelist type="inline"> + + <member> + + <link linkend="rank">rank</link> + + </member> + + <member> + + <link linkend="svd">svd</link> + + </member> + + <member> + + <link linkend="qr">qr</link> + + </member> + + </simplelist> + + </refsection> + + <refsection> + + <title>使用ã•ã‚Œã‚‹é–¢æ•°</title> + + <para> + + <literal>pinv</literal> 関数ã¯ç‰¹ç•°å€¤åˆ†è§£ã«åŸºã¥ã„ã¦ã„ã¾ã™ + + (Scilab関数 <literal>svd</literal>). + + </para> + + </refsection> + +</refentry> + diff --git a/modules/linear_algebra/help/ja_JP/linear/qr.xml b/modules/linear_algebra/help/ja_JP/linear/qr.xml new file mode 100755 index 000000000..d1b1acdad --- /dev/null +++ b/modules/linear_algebra/help/ja_JP/linear/qr.xml @@ -0,0 +1,378 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + * 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 + * + --> + +<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="qr"> + + <refnamediv> + + <refname>qr</refname> + + <refpurpose>QR 分解</refpurpose> + + </refnamediv> + + <refsynopsisdiv> + + <title>呼ã³å‡ºã—æ‰‹é †</title> + + <synopsis>[Q,R]=qr(X [,"e"]) + + [Q,R,E]=qr(X [,"e"]) + + [Q,R,rk,E]=qr(X [,tol]) + + </synopsis> + + </refsynopsisdiv> + + <refsection> + + <title>引数</title> + + <variablelist> + + <varlistentry> + + <term>X</term> + + <listitem> + + <para>実数ã¾ãŸã¯è¤‡ç´ æ•°ã®è¡Œåˆ—</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>tol</term> + + <listitem> + + <para>éžè² ã®å®Ÿæ•°</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>Q</term> + + <listitem> + + <para>æ£æ–¹ç›´äº¤ã¾ãŸã¯ãƒ¦ãƒ‹ã‚¿ãƒªè¡Œåˆ—</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>R</term> + + <listitem> + + <para> + + <literal>X</literal>ã¨åŒã˜æ¬¡å…ƒã®è¡Œåˆ— + + </para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>E</term> + + <listitem> + + <para>ç½®æ›è¡Œåˆ—</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>rk</term> + + <listitem> + + <para> + + æ•´æ•° (<literal>X</literal>ã®QRランク) + + </para> + + </listitem> + + </varlistentry> + + </variablelist> + + </refsection> + + <refsection> + + <title>説明</title> + + <variablelist> + + <varlistentry> + + <term>[Q,R] = qr(X)</term> + + <listitem> + + <para> + + <literal>X= Q*R</literal>ã¨ãªã‚‹ã‚ˆã†ãª + + <literal>X</literal>ã¨åŒã˜æ¬¡å…ƒã® + + 上三角行列<literal>R</literal>ãŠã‚ˆã³ç›´äº¤(è¤‡ç´ æ•°ã®å ´åˆã¯ãƒ¦ãƒ‹ã‚¿ãƒª)行列 + + <literal>Q</literal>を出力ã—ã¾ã™. + + <literal>[Q,R] = qr(X,"e")</literal>ã¯æ¬¡ã«ã‚ˆã†ã« + + "エコノミーサイズ"ã§å‡ºåŠ›ã—ã¾ã™: + + <literal>X</literal> ㌠mè¡Œn列 (m > n)ã®å ´åˆ, + + <literal>Q</literal>ã®æœ€åˆã®n列ã®ã¿ãŒ + + <literal>R</literal>ã®æœ€åˆã®nè¡Œã¨åŒæ™‚ã«è¨ˆç®—ã•ã‚Œã¾ã™. + + </para> + + <para> + + <literal>Q*R = X</literal> ã‹ã‚‰, + + 行列 <literal>X</literal>ã®k番目ã®åˆ—ã¯, + + (ä¿‚æ•° <literal> R(1,k), ..., R(k,k) </literal>を用ã„ã¦) + + <literal>Q</literal>ã®æœ€åˆã®k列ã®ç·šå½¢çµåˆã§è¡¨ã•ã‚Œã¾ã™. + + <literal>Q</literal>ã®æœ€åˆã®k列ã¯,<literal>X</literal>ã®æœ€åˆã®k列 + + ã«åºƒãŒã‚‹éƒ¨åˆ†ç©ºé–“ã®ç›´äº¤åŸºåº•ã‚’作æˆã—ã¾ã™. + + <literal>X</literal>ã®åˆ—<literal>k</literal>(ã™ãªã‚ã¡, <literal>X(:,k)</literal> ) + + ãŒ<literal>X</literal>ã®æœ€åˆã®<literal>p</literal>列ã®ç·šå½¢çµåˆã®å ´åˆ, + + エントリ<literal>R(p+1,k), ..., R(k,k)</literal>㯠0 ã¨ãªã‚Šã¾ã™. + + ã“ã®å ´åˆ,<literal>R</literal>ã¯ä¸Šå°å½¢ã¨ãªã‚Šã¾ã™. + + <literal>X</literal> ãŒãƒ©ãƒ³ã‚¯<literal>rk</literal>を有ã™ã‚‹å ´åˆ, + + è¡Œ <literal>R(rk+1,:), R(rk+2,:), ...</literal> 㯠0 ã¨ãªã‚Šã¾ã™. + + </para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>[Q,R,E] = qr(X)</term> + + <listitem> + + <para> + + <literal>X*E = Q*R</literal>ã¨ãªã‚‹ã‚ˆã†ãª + + (列)ç½®æ›è¡Œåˆ—<literal>E</literal>, + + é™é †ã®å¯¾è§’è¦ç´ を有ã™ã‚‹ä¸Šä¸‰è§’行列 <literal>R</literal>, + + 直交(ã¾ãŸã¯ãƒ¦ãƒ‹ã‚¿ãƒª)<literal>Q</literal> + + を出力ã—ã¾ã™. + + <literal>rk</literal>ãŒ<literal>X</literal>ã®ãƒ©ãƒ³ã‚¯ã®å ´åˆ, + + <literal>R</literal>ã®ä¸»å¯¾è§’é …ã«æ²¿ã£ãŸ + + 最åˆã®<literal>rk</literal>個ã®ã‚¨ãƒ³ãƒˆãƒª, + + ã™ãªã‚ã¡,<literal>R(1,1), R(2,2), ..., R(rk,rk)</literal>㯠+ + å…¨ã¦0以外ã¨ãªã‚Šã¾ã™. + + <literal>[Q,R,E] = qr(X,"e")</literal> 㯠+ + "エコノミーサイズ"ã§å‡ºåŠ›ã—ã¾ã™: + + <literal>X</literal> ㌠mè¡Œn列 (m > n)ã®å ´åˆ, + + <literal>Q</literal>ã®æœ€åˆã®n列ã®ã¿ãŒ + + <literal>R</literal>ã®æœ€åˆã®nè¡Œã¨åŒæ™‚ã«è¨ˆç®—ã•ã‚Œã¾ã™. + + </para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>[Q,R,rk,E] = qr(X ,tol)</term> + + <listitem> + + <para> + + <literal>rk</literal> = <literal>X</literal>ã®ãƒ©ãƒ³ã‚¯ã®æŽ¨å®šå€¤ + + ã‚’è¿”ã—ã¾ã™. + + ã™ãªã‚ã¡, <literal>rk</literal>ã¯, + + 指定ã—ãŸé–¾å€¤<literal>tol</literal>より大ã㪠+ + <literal>R</literal>ã®å¯¾è§’è¦ç´ ã®æ•°ã¨ãªã‚Šã¾ã™. + + </para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>[Q,R,rk,E] = qr(X) </term> + + <listitem> + + <para> + + <literal>rk</literal> = <literal>X</literal>ã®ãƒ©ãƒ³ã‚¯ã®æŽ¨å®šå€¤ + + ã‚’è¿”ã—ã¾ã™. + + ã™ãªã‚ã¡,<literal>rk</literal> 㯠+ + <literal>tol=R(1,1)*%eps*max(size(R))</literal>より大ã㪠+ + <literal>R</literal>ã®å¯¾è§’è¦ç´ ã®æ•°ã¨ãªã‚Šã¾ã™. + + <literal>R</literal>ã®æ¡ä»¶æ•°ã‚’用ã„ã‚‹ + + ランク計算型ã®QR分解ã«ã¤ã„ã¦ã¯,<literal>rankqr</literal>ã‚’ + + å‚ç…§ã—ã¦ãã ã•ã„. + + </para> + + </listitem> + + </varlistentry> + + </variablelist> + + </refsection> + + <refsection> + + <title>例</title> + + <programlisting role="example"><![CDATA[ +// QR factorization, generic case +// X is tall (full rank) +X=rand(5,2);[Q,R]=qr(X); [Q'*X R] +//X is fat (full rank) +X=rand(2,3);[Q,R]=qr(X); [Q'*X R] +//Column 4 of X is a linear combination of columns 1 and 2: +X=rand(8,5);X(:,4)=X(:,1)+X(:,2); [Q,R]=qr(X); R, R(:,4) +//X has rank 2, rows 3 to $ of R are zero: +X=rand(8,2)*rand(2,5);[Q,R]=qr(X); R +//Evaluating the rank rk: column pivoting ==> rk first +//diagonal entries of R are non zero : +A=rand(5,2)*rand(2,5); +[Q,R,rk,E] = qr(A,1.d-10); +norm(Q'*A-R) +svd([A,Q(:,1:rk)]) //span(A) =span(Q(:,1:rk)) + ]]></programlisting> + + </refsection> + + <refsection role="see also"> + + <title>å‚ç…§</title> + + <simplelist type="inline"> + + <member> + + <link linkend="rankqr">rankqr</link> + + </member> + + <member> + + <link linkend="rank">rank</link> + + </member> + + <member> + + <link linkend="svd">svd</link> + + </member> + + <member> + + <link linkend="rowcomp">rowcomp</link> + + </member> + + <member> + + <link linkend="colcomp">colcomp</link> + + </member> + + </simplelist> + + </refsection> + + <refsection> + + <title>使用ã™ã‚‹é–¢æ•°</title> + + <para> + + qr 分解ã¯Lapack ルーãƒãƒ³ DGEQRF, DGEQPF, + + DORGQR (実数行列)ãŠã‚ˆã³ ZGEQRF, ZGEQPF, ZORGQR (è¤‡ç´ æ•°ã®å ´åˆ) + + ã«åŸºã¥ã„ã¦ã„ã¾ã™. + + </para> + + </refsection> + +</refentry> + diff --git a/modules/linear_algebra/help/ja_JP/linear/rankqr.xml b/modules/linear_algebra/help/ja_JP/linear/rankqr.xml new file mode 100755 index 000000000..b6013b2fa --- /dev/null +++ b/modules/linear_algebra/help/ja_JP/linear/rankqr.xml @@ -0,0 +1,290 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + * 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 + * + --> + +<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="rankqr"> + + <refnamediv> + + <refname>rankqr</refname> + + <refpurpose>QR分解ã«åŸºã¥ã階数</refpurpose> + + </refnamediv> + + <refsynopsisdiv> + + <title>呼ã³å‡ºã—æ‰‹é †</title> + + <synopsis>[Q,R,JPVT,RANK,SVAL]=rankqr(A, [RCOND,JPVT])</synopsis> + + </refsynopsisdiv> + + <refsection> + + <title>引数</title> + + <variablelist> + + <varlistentry> + + <term>A</term> + + <listitem> + + <para>実数ã¾ãŸã¯è¤‡ç´ æ•°ã®è¡Œåˆ—</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>RCOND</term> + + <listitem> + + <para> + + <literal>A</literal>ã®å®ŸåŠ¹éšŽæ•°(ランク)を定義ã™ã‚‹ãŸã‚ã«ä½¿ç”¨ã•ã‚Œã‚‹å®Ÿæ•°ã§ã™. + + ã“ã®éšŽæ•°ã¯, + + <literal>A</literal>ã®ãƒ”ボットé¸æŠžä»˜ãã®QR分解ã®ä¸ã® + + 最大ã®å…ˆé ã®éƒ¨åˆ†ä¸‰è§’行列<literal>R11</literal>ã®æ¬¡æ•°ã¨ã—ã¦å®šç¾©ã•ã‚Œã¾ã™. + + ãã®æŽ¨å®šã•ã‚ŒãŸæ¡ä»¶æ•°ã¯ < <literal>1/RCOND</literal> ã¨ãªã‚Šã¾ã™. + + </para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>JPVT</term> + + <listitem> + + <para> + + エントリã®æ•´æ•°ãƒ™ã‚¯ãƒˆãƒ«, <literal>JPVT(i)</literal> ㌠0ã§ãªã„å ´åˆ, + + <literal> A</literal>ã®<literal>i</literal>列目㯠+ + <literal>AP</literal>ã®å…ˆé ã¨äº¤æ›ã•ã‚Œ, + + ãれ以外ã®å ´åˆ,<literal>i</literal>ã¯è‡ªç”±ãªåˆ—ã¨ãªã‚Šã¾ã™. + + 処ç†çµ‚了時ã«<literal>JPVT(i) = k</literal>ã®å ´åˆ, + + <literal>A*P</literal>ã®<literal>i</literal>列目ã¯, + + <literal>A</literal>ã®<literal>k</literal>列目ã¨ãªã£ã¦ã„ã¾ã™. + + </para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>RANK</term> + + <listitem> + + <para> + + <literal>A</literal>ã®å®ŸåŠ¹ãƒ©ãƒ³ã‚¯,ã™ãªã‚ã¡, + + 部分行列<literal>R11</literal>ã®æ¬¡æ•°. + + ã“ã‚Œã¯,<literal>A</literal>ã®å®Œå…¨ãªç›´äº¤åˆ†è§£ã«ãŠã‘ã‚‹ + + 部分行列<literal>T1</literal>ã®æ¬¡æ•°ã¨åŒã˜ã§ã™. + + </para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>SVAL</term> + + <listitem> + + <para> + + 3ã¤ã®è¦ç´ を有ã™ã‚‹å®Ÿæ•°ãƒ™ã‚¯ãƒˆãƒ«;三角分解<literal>R</literal>ã® + + 特異値ã®æŽ¨å®šå€¤. + + </para> + + <para> + + <literal>SVAL(1)</literal> ã¯, + + <literal>R(1:RANK,1:RANK)</literal>ã®æœ€å¤§ç‰¹ç•°å€¤ã§ã™; + + </para> + + <para> + + <literal>SVAL(2)</literal> ã¯, + + <literal>R(1:RANK,1:RANK)</literal>ã®æœ€å°ç‰¹ç•°å€¤ã§ã™; + + </para> + + <para> + + <literal>SVAL(3)</literal> ã¯, + + <literal>RANK</literal> < <literal>MIN(M,N)</literal>ã®å ´åˆ, + + <literal>R(1:RANK+1,1:RANK+1)</literal>, + + ãã†ã§ãªã„å ´åˆ, <literal>R(1:RANK,1:RANK)</literal>ã®æœ€å°ç‰¹ç•°å€¤ã§ã™. + + </para> + + </listitem> + + </varlistentry> + + </variablelist> + + </refsection> + + <refsection> + + <title>説明</title> + + <para> + + 実数ã¾ãŸã¯è¤‡ç´ æ•°ã®Mè¡ŒN列一般行列<literal>A</literal>ã®(オプションã§) + + ランク出力を伴ãªã†QR分解を計算ã—ã¾ã™. + + ランクãŒä¸å®Œå…¨ã«ãªã‚‹å¯èƒ½æ€§ãŒã‚ã‚Š,実効ランクをæ¡ä»¶æ•°ã®ã‚¤ãƒ³ã‚¯ãƒªãƒ¡ãƒ³ã‚¿ãƒ«æŽ¨å®šã«ã‚ˆã‚Š + + 推定ã—ã¾ã™. + + </para> + + <para> + + ã“ã®ãƒ«ãƒ¼ãƒãƒ³ã¯åˆ—ピボットé¸æŠžä»˜ãã®QR分解を使用ã—ã¾ã™: + + </para> + + <programlisting role=""><![CDATA[ +A * P = Q * R, where R = [ R11 R12 ], + [ 0 R22 ] + ]]></programlisting> + + <para> + + <literal>R11</literal>ã¯,æ¡ä»¶æ•°ã®æŽ¨å®šå€¤ãŒ<literal>1/RCOND</literal>未満ã¨ãªã‚‹ + + 最大ã®éƒ¨åˆ†è¡Œåˆ—ã¨ã—ã¦å®šç¾©ã•ã‚Œã¾ã™. + + <literal>R11</literal>, <literal>RANK</literal>ã®æ¬¡æ•°ã¯, + + <literal>A</literal>ã®å®ŸåŠ¹éšŽæ•°ã§ã™. + + </para> + + <para> + + 三角分解ãŒéšŽæ•°å‡ºåŠ›ã‚’ä¼´ãªã†å ´åˆ (ã“ã‚Œã¯å…ˆé ã®åˆ—ãŒå¥å…¨(well-conditioned)ãªå ´åˆã§ã™), + + <literal>SVAL(1)</literal>ã¯<literal>A</literal>ã®æœ€å¤§ç‰¹ç•°å€¤ã® + + 推定値ã¨ãªã‚Š,<literal>SVAL(2)</literal> ãŠã‚ˆã³ + + <literal>SVAL(3)</literal>ã¯,ãã‚Œãžã‚Œ <literal>A</literal>ã® + + <literal>RANK</literal>番目ãŠã‚ˆã³<literal>(RANK+1)</literal>番目㮠+ + 特異値ã®æŽ¨å®šå€¤ã¨ãªã‚Šã¾ã™. + + </para> + + <para> + + ã“れらã®å€¤ã‚’評価ã™ã‚‹ã“ã¨ã«ã‚ˆã‚Š,é¸æŠžã—ãŸ<literal>RCOND</literal>ã® + + 値ã«ã‚ˆã‚ŠéšŽæ•°ãŒè‰¯å¥½ã«å®šç¾©ã•ã‚Œã‚‹ã“ã¨ã‚’確èªã™ã‚‹ã“ã¨ãŒã§ãã¾ã™. + + 比 <literal>SVAL(1)/SVAL(2)</literal> ã¯, + + <literal>R(1:RANK,1:RANK)</literal>ã®æ¡ä»¶æ•°ã®æŽ¨å®šå€¤ã§ã™. + + </para> + + </refsection> + + <refsection> + + <title>例</title> + + <programlisting role="example"><![CDATA[ +A=rand(5,3)*rand(3,7); +[Q,R,JPVT,RANK,SVAL]=rankqr(A,%eps) + ]]></programlisting> + + </refsection> + + <refsection role="see also"> + + <title>å‚ç…§</title> + + <simplelist type="inline"> + + <member> + + <link linkend="qr">qr</link> + + </member> + + <member> + + <link linkend="rank">rank</link> + + </member> + + </simplelist> + + </refsection> + + <refsection> + + <title>使用ã•ã‚Œã‚‹é–¢æ•°</title> + + <para> + + Slicot library routines MB03OD, ZB03OD. + + </para> + + </refsection> + +</refentry> + diff --git a/modules/linear_algebra/help/ja_JP/markov/CHAPTER b/modules/linear_algebra/help/ja_JP/markov/CHAPTER new file mode 100755 index 000000000..c29eb913c --- /dev/null +++ b/modules/linear_algebra/help/ja_JP/markov/CHAPTER @@ -0,0 +1,2 @@ +title = Markov Matrices + diff --git a/modules/linear_algebra/help/ja_JP/markov/classmarkov.xml b/modules/linear_algebra/help/ja_JP/markov/classmarkov.xml new file mode 100755 index 000000000..48055e45c --- /dev/null +++ b/modules/linear_algebra/help/ja_JP/markov/classmarkov.xml @@ -0,0 +1,176 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + * 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 + * + --> + +<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="classmarkov"> + + <refnamediv> + + <refname>classmarkov</refname> + + <refpurpose>マルコフ行列ã®å†å¸°çš„ã‹ã¤ä¸€æ™‚çš„ãªã‚¯ãƒ©ã‚¹</refpurpose> + + </refnamediv> + + <refsynopsisdiv> + + <title>呼ã³å‡ºã—æ‰‹é †</title> + + <synopsis>[perm,rec,tr,indsRec,indsT]=classmarkov(M)</synopsis> + + </refsynopsisdiv> + + <refsection> + + <title>引数</title> + + <variablelist> + + <varlistentry> + + <term>M</term> + + <listitem> + + <para>実数 N x N マルコフ行列. å„è¡Œã®ã‚¨ãƒ³ãƒˆãƒªã®åˆè¨ˆã‚’ + + 1ã«åŠ ãˆãŸã‚‚ã® + + </para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>perm</term> + + <listitem> + + <para>整数交æ›ãƒ™ã‚¯ãƒˆãƒ«.</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>rec, tr</term> + + <listitem> + + <para>整数ベクトル, 数値 (å„å†å¸°çš„クラスã«ãŠã‘る状態é‡ã®æ•°, + + 一時的ãªçŠ¶æ…‹é‡ã®æ•°). + + </para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>indsRec,indsT</term> + + <listitem> + + <para>整数ベクトル. (å†å¸°çš„ãŠã‚ˆã³ä¸€æ™‚çš„ãªçŠ¶æ…‹é‡ã®æ·»å—).</para> + + </listitem> + + </varlistentry> + + </variablelist> + + </refsection> + + <refsection> + + <title>説明</title> + + <para> + + 以下ã®ã‚ˆã†ãªç½®æ›ãƒ™ã‚¯ãƒˆãƒ«<literal>perm</literal>ã‚’è¿”ã—ã¾ã™ + + </para> + + <programlisting role=""><![CDATA[ +M(perm,perm) = [M11 0 0 0 0 0] + [0 M22 0 0 0] + [0 0 M33 0] + [ ... ] + [0 0 Mrr 0] + [* * * Q] + ]]></programlisting> + + <para> + + å„ <literal>Mii</literal> ã¯<literal>rec(i) i=1,..,r</literal>次㮠+ + マルコフ行列ã§ã™. + + <literal>Q</literal>ã¯,<literal>tr</literal>次ã®ã‚µãƒ–マルコフ行列ã§ã™. + + 1 ã‹ã‚‰ sum(rec)ã®çŠ¶æ…‹é‡ã¯å†å¸°çš„ã§, + + r+1ã‹ã‚‰nã¯ä¸€æ™‚çš„ãªçŠ¶æ…‹é‡ã§ã™. + + <literal>perm=[indsRec,indsT]</literal>ã¨ãªã‚Šã¾ã™. + + ãŸã ã—, indsRec ã¯å¤§ãã• sum(rec)ã®ãƒ™ã‚¯ãƒˆãƒ«, + + indsT ã¯å¤§ãã• trã®ãƒ™ã‚¯ãƒˆãƒ«ã§ã™. + + </para> + + </refsection> + + <refsection> + + <title>例</title> + + <programlisting role="example"><![CDATA[ +//P ã¯2ã¤ã®å†å¸°çš„ãªã‚¯ãƒ©ã‚¹ (2ãŠã‚ˆã³1個ã®çŠ¶æ…‹é‡ã‚’有ã™ã‚‹) 2ã¤ã®ä¸€æ™‚çš„ãªçŠ¶æ…‹é‡ +P=genmarkov([2,1],2,'perm') +[perm,rec,tr,indsRec,indsT]=classmarkov(P); +P(perm,perm) + ]]></programlisting> + + </refsection> + + <refsection role="see also"> + + <title>å‚ç…§</title> + + <simplelist type="inline"> + + <member> + + <link linkend="genmarkov">genmarkov</link> + + </member> + + <member> + + <link linkend="eigenmarkov">eigenmarkov</link> + + </member> + + </simplelist> + + </refsection> + +</refentry> + diff --git a/modules/linear_algebra/help/ja_JP/markov/eigenmarkov.xml b/modules/linear_algebra/help/ja_JP/markov/eigenmarkov.xml new file mode 100755 index 000000000..11762fb51 --- /dev/null +++ b/modules/linear_algebra/help/ja_JP/markov/eigenmarkov.xml @@ -0,0 +1,150 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + * 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 + * + --> + +<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="eigenmarkov"> + + <refnamediv> + + <refname>eigenmarkov</refname> + + <refpurpose>æ£è¦åŒ–ã•ã‚ŒãŸå·¦ãŠã‚ˆã³å³ãƒžãƒ«ã‚³ãƒ•å›ºæœ‰ãƒ™ã‚¯ãƒˆãƒ«</refpurpose> + + </refnamediv> + + <refsynopsisdiv> + + <title>呼ã³å‡ºã—æ‰‹é †</title> + + <synopsis>[M,Q]=eigenmarkov(P)</synopsis> + + </refsynopsisdiv> + + <refsection> + + <title>引数</title> + + <variablelist> + + <varlistentry> + + <term>P</term> + + <listitem> + + <para>実数 N x N マルコフ行列. 1ã«åŠ ãˆã‚‹å„è¡Œã®ã‚¨ãƒ³ãƒˆãƒªã®åˆè¨ˆ.</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>M</term> + + <listitem> + + <para>N個ã®åˆ—を有ã™ã‚‹å®Ÿæ•°è¡Œåˆ—.</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>Q</term> + + <listitem> + + <para>N個ã®è¡Œã‚’有ã™ã‚‹å®Ÿæ•°è¡Œåˆ—.</para> + + </listitem> + + </varlistentry> + + </variablelist> + + </refsection> + + <refsection> + + <title>説明</title> + + <para> + + マルコフ推移行列 P ã®å›ºæœ‰å€¤ 1 ã«é–¢é€£ã™ã‚‹ + + æ£è¦åŒ–ã•ã‚ŒãŸå·¦ãŠã‚ˆã³å³å›ºæœ‰ãƒ™ã‚¯ãƒˆãƒ«ã‚’è¿”ã—ã¾ã™. + + ã“ã®å›ºæœ‰å€¤ã®å¤šé‡åº¦ãŒ m ã§, P㌠N x N ã®å ´åˆ, + + M 㯠m x N 行列㧠Q 㯠N x m 行列ã¨ãªã‚Šã¾ã™. + + M(k,:) ã¯k番目ã®ã‚¨ãƒ«ã‚´ãƒ¼ãƒ‰é›†åˆ(å†å¸°çš„クラス)ã«é–¢é€£ã™ã‚‹ + + 確率分布ベクトルã§ã™. + + M(k,x) ã¯ã€€x ㌠k番目ã®å†å¸°çš„クラスã«ãªã„å ´åˆã«ã¯ + + 0ã¨ãªã‚Šã¾ã™. + + Q(x,k) ã¯x ã‹ã‚‰å§‹ã¾ã‚‹ k 番目ã®å†å¸°çš„クラスã«æœ€çµ‚çš„ã«ã‚る確率ã§ã™. + + 大ããª<literal>k</literal>ã«é–¢ã—ã¦<literal>P^k</literal> ㌠+ + åŽæŸã™ã‚‹å ´åˆ(1以外ã«å˜ä½å††ä¸Šã«å›ºæœ‰å€¤ãŒãªã„), + + 極é™ã¯<literal>Q*M</literal>ã¨ãªã‚Šã¾ã™(固有投影). + + </para> + + </refsection> + + <refsection> + + <title>例</title> + + <programlisting role="example"><![CDATA[ +//P ã¯2ã¤ã®å†å¸°çš„ãªã‚¯ãƒ©ã‚¹ (2ãŠã‚ˆã³1個ã®çŠ¶æ…‹é‡ã‚’有ã™ã‚‹) 2ã¤ã®ä¸€æ™‚çš„ãªçŠ¶æ…‹é‡ +P=genmarkov([2,1],2) +[M,Q]=eigenmarkov(P); +P*Q-Q +Q*M-P^20 + ]]></programlisting> + + </refsection> + + <refsection role="see also"> + + <title>å‚ç…§</title> + + <simplelist type="inline"> + + <member> + + <link linkend="genmarkov">genmarkov</link> + + </member> + + <member> + + <link linkend="classmarkov">classmarkov</link> + + </member> + + </simplelist> + + </refsection> + +</refentry> + diff --git a/modules/linear_algebra/help/ja_JP/markov/genmarkov.xml b/modules/linear_algebra/help/ja_JP/markov/genmarkov.xml new file mode 100755 index 000000000..287e19b83 --- /dev/null +++ b/modules/linear_algebra/help/ja_JP/markov/genmarkov.xml @@ -0,0 +1,161 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + * 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 + * + --> + +<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="genmarkov"> + + <refnamediv> + + <refname>genmarkov</refname> + + <refpurpose> + + å†å¸°çš„ãŠã‚ˆã³ä¸€æ™‚çš„ãªã‚¯ãƒ©ã‚¹ã‚’有ã™ã‚‹ãƒ©ãƒ³ãƒ€ãƒ ãªãƒžãƒ«ã‚³ãƒ•è¡Œåˆ—を生æˆã™ã‚‹ + + </refpurpose> + + </refnamediv> + + <refsynopsisdiv> + + <title>呼ã³å‡ºã—æ‰‹é †</title> + + <synopsis>M=genmarkov(rec,tr) + + M=genmarkov(rec,tr,flag) + + </synopsis> + + </refsynopsisdiv> + + <refsection> + + <title>引数</title> + + <variablelist> + + <varlistentry> + + <term>rec</term> + + <listitem> + + <para>整数行ベクトル (次元ã¯å†å¸°çš„クラスã®æ•°).</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>tr</term> + + <listitem> + + <para>æ•´æ•° (一時的ãªçŠ¶æ…‹é‡ã®æ•°)</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>M</term> + + <listitem> + + <para>実数ã®ãƒžãƒ«ã‚³ãƒ•è¡Œåˆ—. + + 1ã«è¿½åŠ ã™ã‚‹å„è¡Œã®ã‚¨ãƒ³ãƒˆãƒªã®åˆè¨ˆ. + + </para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>flag</term> + + <listitem> + + <para> + + æ–‡å—列 <literal>'perm'</literal>. 指定ã—ãŸå ´åˆ, + + 状態é‡ã®ãƒ©ãƒ³ãƒ€ãƒ ãªç½®æ›ãŒè¡Œã‚ã‚Œã¾ã™. + + </para> + + </listitem> + + </varlistentry> + + </variablelist> + + </refsection> + + <refsection> + + <title>説明</title> + + <para> + + ãã‚Œãžã‚Œ<literal>rec(1),...rec($)</literal>個ã®ã‚¨ãƒ³ãƒˆãƒªã‚’有ã™ã‚‹ + + <literal>size(rec,1)</literal>個ã®å†å¸°çš„ãªã‚¯ãƒ©ã‚¹ã¨tr個ã®ä¸€æ™‚çš„ãªçŠ¶æ…‹é‡ã‚’有ã™ã‚‹ + + ランダムãªãƒžãƒ«ã‚³ãƒ•æŽ¨ç§»ç¢ºçŽ‡è¡Œåˆ—ã‚’Mã«è¿”ã—ã¾ã™. + + </para> + + </refsection> + + <refsection> + + <title>例</title> + + <programlisting role="example"><![CDATA[ +//P has two recurrent classes (with 2 and 1 states) 2 transient states +P=genmarkov([2,1],2,'perm') +[perm,rec,tr,indsRec,indsT]=classmarkov(P); +P(perm,perm) + ]]></programlisting> + + </refsection> + + <refsection role="see also"> + + <title>å‚ç…§</title> + + <simplelist type="inline"> + + <member> + + <link linkend="classmarkov">classmarkov</link> + + </member> + + <member> + + <link linkend="eigenmarkov">eigenmarkov</link> + + </member> + + </simplelist> + + </refsection> + +</refentry> + diff --git a/modules/linear_algebra/help/ja_JP/matrix/CHAPTER b/modules/linear_algebra/help/ja_JP/matrix/CHAPTER new file mode 100755 index 000000000..bb89125cd --- /dev/null +++ b/modules/linear_algebra/help/ja_JP/matrix/CHAPTER @@ -0,0 +1,2 @@ +title = Matrix Analysis + diff --git a/modules/linear_algebra/help/ja_JP/matrix/cond.xml b/modules/linear_algebra/help/ja_JP/matrix/cond.xml new file mode 100755 index 000000000..874d2fd98 --- /dev/null +++ b/modules/linear_algebra/help/ja_JP/matrix/cond.xml @@ -0,0 +1,292 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + * 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 + * + --> + +<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="cond"> + + <refnamediv> + + <refname>cond</refname> + + <refpurpose>æ¡ä»¶æ•°</refpurpose> + + </refnamediv> + + <refsynopsisdiv> + + <title>呼ã³å‡ºã—æ‰‹é †</title> + + <synopsis> + + c = cond(X) + + c = cond(X, p) + + </synopsis> + + </refsynopsisdiv> + + <refsection> + + <title>引数</title> + + <variablelist> + + <varlistentry> + + <term>X</term> + + <listitem> + + <para> + + 実数ã¾ãŸã¯è¤‡ç´ æ•°ã®è¡Œåˆ—. c = cond(X, p)ã®å ´åˆ, Xã¯å®Ÿæ•°ã¾ãŸã¯è¤‡ç´ æ•°ã® + + æ£æ–¹è¡Œåˆ—ã¨ã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™. + + </para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>c</term> + + <listitem> + + <para>実数スカラー, æ¡ä»¶æ•°.</para> + + </listitem> + + </varlistentry> + + </variablelist> + + </refsection> + + <refsection> + + <title>説明</title> + + <variablelist> + + <varlistentry> + + <term>c = cond(X)</term> + + <listitem> + + <para> + + ã¯,2-ノルムã®æ¡ä»¶æ•°ã‚’è¿”ã—ã¾ã™. + + <literal>cond(X)</literal>ã¯<literal>X</literal>ã® + + 最大特異値ã¨æœ€å°ç‰¹ç•°å€¤ã®æ¯”ã§ã™. + + </para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>c = cond(X, p)</term> + + <listitem> + + <para> + + ã¯,p-ノルムã®æ¡ä»¶æ•°ã‚’è¿”ã—ã¾ã™ : + + <literal>norm(X, p) * norm(inv(X), p)</literal>. + + <literal>p</literal> ãŒæŒ‡å®šã•ã‚ŒãŸå ´åˆ, + + <literal>p</literal> ã¯ä»¥ä¸‹ã«ç‰ã—ããªã‚Šã¾ã™ : + + </para> + + <itemizedlist> + + <listitem> + + <para> + + p = 1. <literal>cond(X, p)</literal> ã¯,1-ノルムã®æ¡ä»¶æ•°ã‚’è¿”ã—ã¾ã™. + + </para> + + </listitem> + + <listitem> + + <para> + + p = 2. <literal>cond(X, p)</literal> ã¯,1-ノルムã®æ¡ä»¶æ•°ã‚’è¿”ã—ã¾ã™. + + </para> + + </listitem> + + <listitem> + + <para> + + p = %inf ã¾ãŸã¯ 'inf'. <literal>cond(X, p)</literal> + + ã¯,ç„¡é™å¤§ãƒŽãƒ«ãƒ ã®æ¡ä»¶æ•°ã‚’è¿”ã—ã¾ã™. + + </para> + + </listitem> + + <listitem> + + <para> + + p = 'fro'. <literal>cond(X, p)</literal> + + ã¯ãƒ•ãƒãƒ™ãƒ‹ã‚¦ã‚¹ãƒŽãƒ«ãƒ ã®æ¡ä»¶æ•°ã‚’è¿”ã—ã¾ã™. + + </para> + + </listitem> + + </itemizedlist> + + </listitem> + + </varlistentry> + + </variablelist> + + </refsection> + + <refsection> + + <title>例</title> + + <programlisting role="example"> + + <![CDATA[ +A=testmatrix('hilb',6); +// 2-ノルムã®æ¡ä»¶æ•° +cond(A) +cond(A, 2) + +// 1-ノルムã®æ¡ä»¶æ•° +cond(A, 1) + +// ç„¡é™å¤§ãƒŽãƒ«ãƒ ã®æ¡ä»¶æ•° +cond(A, %inf) + +// フãƒãƒ™ãƒ‹ã‚¦ã‚¹ãƒŽãƒ«ãƒ ã®æ¡ä»¶æ•° +cond(A, 'fro') + ]]> + + </programlisting> + + </refsection> + + <refsection> + + <title>å‚考</title> + + <simplelist type="inline"> + + <member> + + <link linkend="rcond">rcond</link> + + </member> + + <member> + + <link linkend="svd">svd</link> + + </member> + + <member> + + <link linkend="norm">norm</link> + + </member> + + </simplelist> + + </refsection> + + <refsection> + + <title>å±¥æ´</title> + + <revhistory> + + <revision> + + <revnumber>5.4.0</revnumber> + + <revdescription> + + <para> + + éžæ£æ–¹è¡Œåˆ—ã®<literal>X</literal>を指定ã—ã¦, + + <literal>cond(X)</literal>をコールã—ã¦ã‚‚管ç†ã•ã‚Œã‚‹ã‚ˆã†ã«ãªã‚Šã¾ã—ãŸ. + + 例ãˆã°: + + </para> + + <programlisting role=""> + + <![CDATA[ +X = [1 0; 1 -1; 0 1]; +cond(X) + ]]> + + </programlisting> + + <para> + + <literal>cond(X, p)</literal>をコールã™ã‚‹ã“ã¨ã§ã€ + + p-ノルムæ¡ä»¶æ•°ã‚’計算ã§ãるよã†ã«ãªã‚Šã¾ã—ãŸ. + + 例ãˆã°: + + </para> + + <programlisting role=""> + + <![CDATA[ +X = [1 -6 0; 1 0 -4;1 0 2]; +cond(X, 1) // 1-ノルム(p = 1)ã®æ¡ä»¶æ•° + ]]> + + </programlisting> + + </revdescription> + + </revision> + + </revhistory> + + </refsection> + +</refentry> + diff --git a/modules/linear_algebra/help/ja_JP/matrix/det.xml b/modules/linear_algebra/help/ja_JP/matrix/det.xml new file mode 100755 index 000000000..c7ea8f509 --- /dev/null +++ b/modules/linear_algebra/help/ja_JP/matrix/det.xml @@ -0,0 +1,212 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + * 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 + * + --> + +<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="det"> + + <refnamediv> + + <refname>det</refname> + + <refpurpose>行列å¼</refpurpose> + + </refnamediv> + + <refsynopsisdiv> + + <title>呼出ã—æ‰‹é †</title> + + <synopsis>det(X) + + [e,m]=det(X) + + </synopsis> + + </refsynopsisdiv> + + <refsection> + + <title>引数</title> + + <variablelist> + + <varlistentry> + + <term>X</term> + + <listitem> + + <para>実数ã¾ãŸã¯è¤‡ç´ æ£æ–¹è¡Œåˆ—, å¤šé …å¼ã¾ãŸã¯æœ‰ç†è¡Œåˆ—.</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>m</term> + + <listitem> + + <para>実数ã¾ãŸã¯è¤‡ç´ æ•°, 行列å¼ã® 10 を基底ã¨ã™ã‚‹ä»®æ•°</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>e</term> + + <listitem> + + <para>æ•´æ•°, 行列å¼ã® 10 を基底ã¨ã™ã‚‹æŒ‡æ•°</para> + + </listitem> + + </varlistentry> + + </variablelist> + + </refsection> + + <refsection> + + <title>説明</title> + + <para> + + <literal>det(X)</literal> (<literal>m*10^e</literal>)ã¯, + + æ£æ–¹è¡Œåˆ—<literal>X</literal>ã®è¡Œåˆ—å¼ã§ã™. + + </para> + + <para> + + å¤šé …å¼è¡Œåˆ—ã®å ´åˆ,<literal>det(X)</literal> 㯠+ + <literal>determ(X)</literal>ã¨ç‰ã—ããªã‚Šã¾ã™. + + </para> + + <para> + + 有ç†æ•°è¡Œåˆ—ã®å ´åˆ, <literal>det(X)</literal> 㯠+ + <literal>detr(X)</literal>ã¨ç‰ã—ããªã‚Šã¾ã™. + + </para> + + <para> + + <important> + + <literal>det</literal> ãŠã‚ˆã³ <literal>detr</literal> 関数㯠+ + åŒã˜ã‚¢ãƒ«ã‚´ãƒªã‚ºãƒ を使用ã—ã¾ã›ã‚“. + + 有ç†æ•°é–¢æ•°ã®å ´åˆ, <literal>det(X)</literal> 㯠+ + <literal>determ</literal>関数ã«åŸºã¥ã + + <literal>%r_det(X)</literal> ã§ã‚ªãƒ¼ãƒãƒ¼ãƒãƒ¼ãƒ‰ã•ã‚Œã¾ã™. + + <literal>detr()</literal> ã¯, Leverrier法を使用ã—ã¾ã™. + + </important> + + <warning> + + 時々, + + <literal>det</literal> ãŠã‚ˆã³ <literal>detr</literal> 関数㯠+ + 有ç†æ•°é–¢æ•°ã¨ç•°ãªã‚‹å€¤ã‚’è¿”ã™å¯èƒ½æ€§ãŒã‚ã‚Šã¾ã™. + + ã“ã®ã‚ˆã†ãªå ´åˆ,åŒã˜çµæžœã‚’å¾—ã‚‹ãŸã‚ã«, + + 有ç†æ•°ã¯<code>simp_mode(%f)</code>を使用ã™ã‚‹ã“ã¨ã«ã‚ˆã‚Š + + 有ç†æ•°ã‚’ç°¡å˜åŒ–ã™ã‚‹ãƒ¢ãƒ¼ãƒ‰ã‚’無効ã«ã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™. + + </warning> + + </para> + + </refsection> + + <refsection role="see also"> + + <title>å‚ç…§</title> + + <para> + + det ã®è¨ˆç®—㯠Lapack ルーãƒãƒ³ DGETRF (実数行列ã®å ´åˆ) ãŠã‚ˆã³ + + ZGETRF (è¤‡ç´ æ•°ã®å ´åˆ)ã«åŸºã¥ã„ã¦ã„ã¾ã™. + + </para> + + <para> + + 疎行列ã®å ´åˆ, 行列å¼ã¯ umfpack ライブラリã®LU分解ã«ã‚ˆã‚Šå¾—られã¾ã™. + + </para> + + </refsection> + + <refsection> + + <title>例</title> + + <programlisting role="example"><![CDATA[ +x=poly(0,'x'); +det([x,1+x;2-x,x^2]) +w=ssrand(2,2,4);roots(det(systmat(w))),trzeros(w) //線形システムã®ã‚¼ãƒ +A=rand(3,3); +det(A), prod(spec(A)) + ]]></programlisting> + + </refsection> + + <refsection> + + <title>å‚ç…§</title> + + <simplelist type="inline"> + + <member> + + <link linkend="detr">detr</link> + + </member> + + <member> + + <link linkend="determ">determ</link> + + </member> + + <member> + + <link linkend="simp_mode">simp_mode</link> + + </member> + + </simplelist> + + </refsection> + +</refentry> + diff --git a/modules/linear_algebra/help/ja_JP/matrix/orth.xml b/modules/linear_algebra/help/ja_JP/matrix/orth.xml new file mode 100755 index 000000000..c66862e31 --- /dev/null +++ b/modules/linear_algebra/help/ja_JP/matrix/orth.xml @@ -0,0 +1,144 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + * 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 + * + --> + +<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="orth"> + + <refnamediv> + + <refname>orth</refname> + + <refpurpose>直交基底</refpurpose> + + </refnamediv> + + <refsynopsisdiv> + + <title>呼ã³å‡ºã—æ‰‹é †</title> + + <synopsis>Q=orth(A)</synopsis> + + </refsynopsisdiv> + + <refsection> + + <title>引数</title> + + <variablelist> + + <varlistentry> + + <term>A</term> + + <listitem> + + <para>実数ã¾ãŸã¯è¤‡ç´ æ•°ã®è¡Œåˆ—</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>Q</term> + + <listitem> + + <para>実数ã¾ãŸã¯è¤‡ç´ æ•°ã®è¡Œåˆ—</para> + + </listitem> + + </varlistentry> + + </variablelist> + + </refsection> + + <refsection> + + <title>説明</title> + + <para> + + <literal>Q=orth(A)</literal> ã¯, + + <literal>A</literal>ã®ç¯„囲ã§ã®ç›´äº¤åŸºåº•ã§ã‚ã‚‹ + + <literal>Q</literal>ã‚’è¿”ã—ã¾ã™. + + Range(<literal>Q</literal>) = + + Range(<literal>A</literal>) ãŠã‚ˆã³ <literal>Q'*Q=eye</literal>. + + </para> + + <para> + + <literal>Q</literal>ã®åˆ—ã®æ•°ã¯, + + QRアルゴリズムã§å®šç¾©ã•ã‚ŒãŸ + + <literal>A</literal>ã®ãƒ©ãƒ³ã‚¯ã§ã™. + + </para> + + </refsection> + + <refsection> + + <title>例</title> + + <programlisting role="example"><![CDATA[ +A=rand(5,3)*rand(3,4); +[X,dim]=rowcomp(A);X=X'; +svd([orth(A),X(:,1:dim)]) + ]]></programlisting> + + </refsection> + + <refsection role="see also"> + + <title>å‚ç…§</title> + + <simplelist type="inline"> + + <member> + + <link linkend="qr">qr</link> + + </member> + + <member> + + <link linkend="rowcomp">rowcomp</link> + + </member> + + <member> + + <link linkend="colcomp">colcomp</link> + + </member> + + <member> + + <link linkend="range">range</link> + + </member> + + </simplelist> + + </refsection> + +</refentry> + diff --git a/modules/linear_algebra/help/ja_JP/matrix/rank.xml b/modules/linear_algebra/help/ja_JP/matrix/rank.xml new file mode 100755 index 000000000..cdbd5aee6 --- /dev/null +++ b/modules/linear_algebra/help/ja_JP/matrix/rank.xml @@ -0,0 +1,157 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + * 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 + * + --> + +<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="rank"> + + <refnamediv> + + <refname>rank</refname> + + <refpurpose>階数</refpurpose> + + </refnamediv> + + <refsynopsisdiv> + + <title>呼ã³å‡ºã—æ‰‹é †</title> + + <synopsis>[i]=rank(X) + + [i]=rank(X,tol) + + </synopsis> + + </refsynopsisdiv> + + <refsection> + + <title>引数</title> + + <variablelist> + + <varlistentry> + + <term>X</term> + + <listitem> + + <para>実数ã¾ãŸã¯è¤‡ç´ æ•°ã®è¡Œåˆ—</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>tol</term> + + <listitem> + + <para>éžè² 実数</para> + + </listitem> + + </varlistentry> + + </variablelist> + + </refsection> + + <refsection> + + <title>説明</title> + + <para> + + <literal>rank(X)</literal> ã¯, <literal>X</literal>ã®æ•°å€¤çš„ãªéšŽæ•°(ランク), + + ã™ãªã‚ã¡, <literal>norm(size(X),'inf') * norm(X) * %eps</literal> より大ã㪠+ + X ã®ç‰¹ç•°å€¤ã®æ•°ã§ã™. + + </para> + + <para> + + <literal>rank(X,tol)</literal> ã¯,<literal>tol</literal> + + より大ããª<literal>X</literal>ã®ç‰¹ç•°å€¤ã®æ•°ã§ã™. + + </para> + + <para> + + <literal>tol</literal> ã®ãƒ‡ãƒ•ã‚©ãƒ«ãƒˆå€¤ã¯ + + <literal>norm(X)</literal>ã«æ¯”例ã™ã‚‹ã“ã¨ã«æ³¨æ„ã—ã¦ãã ã•ã„. + + çµæžœã¨ã—ã¦,<literal>rank([1.d-80,0;0,1.d-80])</literal> 㯠2 ã«ãªã‚Šã¾ã™!. + + </para> + + </refsection> + + <refsection> + + <title>例</title> + + <programlisting role="example"><![CDATA[ +rank([1.d-80,0;0,1.d-80]) +rank([1,0;0,1.d-80]) + ]]></programlisting> + + </refsection> + + <refsection role="see also"> + + <title>å‚ç…§</title> + + <simplelist type="inline"> + + <member> + + <link linkend="svd">svd</link> + + </member> + + <member> + + <link linkend="qr">qr</link> + + </member> + + <member> + + <link linkend="rowcomp">rowcomp</link> + + </member> + + <member> + + <link linkend="colcomp">colcomp</link> + + </member> + + <member> + + <link linkend="lu">lu</link> + + </member> + + </simplelist> + + </refsection> + +</refentry> + diff --git a/modules/linear_algebra/help/ja_JP/matrix/rcond.xml b/modules/linear_algebra/help/ja_JP/matrix/rcond.xml new file mode 100755 index 000000000..e12e728b5 --- /dev/null +++ b/modules/linear_algebra/help/ja_JP/matrix/rcond.xml @@ -0,0 +1,145 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + * 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 + * + --> + +<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="rcond"> + + <refnamediv> + + <refname>rcond</refname> + + <refpurpose>æ¡ä»¶æ•°ã®é€†æ•°</refpurpose> + + </refnamediv> + + <refsynopsisdiv> + + <title>呼ã³å‡ºã—æ‰‹é †</title> + + <synopsis>rcond(X)</synopsis> + + </refsynopsisdiv> + + <refsection> + + <title>引数</title> + + <variablelist> + + <varlistentry> + + <term>X</term> + + <listitem> + + <para>実数ã¾ãŸã¯è¤‡ç´ æ•°ã®æ£æ–¹è¡Œåˆ—</para> + + </listitem> + + </varlistentry> + + </variablelist> + + </refsection> + + <refsection> + + <title>説明</title> + + <para> + + <literal>rcond(X)</literal> ã¯,1-ノルムã«ãŠã‘ã‚‹ + + <literal>X</literal>ã®æ¡ä»¶ã®é€†æ•°ã®æŽ¨å®šå€¤ã§ã™. + + </para> + + <para> + + <literal>X</literal>ãŒå¥å…¨ãªå ´åˆ, + + <literal>rcond(X)</literal> 㯠1 ã«è¿‘ããªã‚Šã¾ã™. + + ãã†ã§ãªã„å ´åˆ, <literal>rcond(X)</literal> 㯠0ã«è¿‘ããªã‚Šã¾ã™. + + </para> + + <para> + + Aã®1-ノルムを Lapack/DLANGEã§è¨ˆç®—, ãã®LU分解をLapack/DGETRFã§è¨ˆç®—, + + 最後ã«æ¡ä»¶ã‚’Lapack/DGECONã§æŽ¨å®šã—ã¾ã™. + + </para> + + </refsection> + + <refsection> + + <title>例</title> + + <programlisting role="example"><![CDATA[ +A=diag([1:10]); +rcond(A) +A(1,1)=0.000001; +rcond(A) + ]]></programlisting> + + <para> + + <literal>rcond</literal>ã«ã‚ˆã‚‹1-ノルム逆æ¡ä»¶æ•°ã®æŽ¨å®šã¯, + + <literal>cond</literal>ã«ã‚ˆã‚‹2-ノルムæ¡ä»¶æ•°ã®è¨ˆç®—よりã¯ã‚‹ã‹ã«é«˜é€Ÿã§ã™. + + トレードオフã¨ã—ã¦,<literal>rcond</literal> ã¯è‹¥å¹²ä¿¡é ¼æ€§ãŒä½Žä¸‹ã™ã‚‹å¯èƒ½æ€§ãŒã‚ã‚Šã¾ã™. + + </para> + + <programlisting role="example"><![CDATA[ + A=ones(1000,1000); + timer();cond(A);timer() + timer();1/rcond(A);timer() + ]]></programlisting> + + </refsection> + + <refsection role="see also"> + + <title>å‚ç…§</title> + + <simplelist type="inline"> + + <member> + + <link linkend="svd">svd</link> + + </member> + + <member> + + <link linkend="cond">cond</link> + + </member> + + <member> + + <link linkend="inv">inv</link> + + </member> + + </simplelist> + + </refsection> + +</refentry> + diff --git a/modules/linear_algebra/help/ja_JP/matrix/rref.xml b/modules/linear_algebra/help/ja_JP/matrix/rref.xml new file mode 100755 index 000000000..cf47e7b89 --- /dev/null +++ b/modules/linear_algebra/help/ja_JP/matrix/rref.xml @@ -0,0 +1,127 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + * 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 + * + --> + +<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="rref"> + + <refnamediv> + + <refname>rref</refname> + + <refpurpose>LU分解ã«ã‚ˆã‚Šè¡Œã‚¨ã‚·ãƒ¥ãƒãƒ³å½¢å¼ã®è¡Œåˆ—を計算</refpurpose> + + </refnamediv> + + <refsynopsisdiv> + + <title>呼ã³å‡ºã—æ‰‹é †</title> + + <synopsis>R=rref(A)</synopsis> + + </refsynopsisdiv> + + <refsection> + + <title>引数</title> + + <variablelist> + + <varlistentry> + + <term>A</term> + + <listitem> + + <para>スカラーã®ã‚¨ãƒ³ãƒˆãƒªã‚’有ã™ã‚‹m x n 行列</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>R</term> + + <listitem> + + <para> Aã®è¡Œã‚¨ã‚·ãƒ¥ãƒãƒ³å½¢å¼ã®m x n行列</para> + + </listitem> + + </varlistentry> + + </variablelist> + + </refsection> + + <refsection> + + <title>説明</title> + + <para> + + <literal>rref</literal> ã¯,å·¦LU分解ã«ã‚ˆã‚ŠæŒ‡å®šã—ãŸè¡Œåˆ— + + ã®è¡Œã‚¨ã‚·ãƒ¥ãƒãƒ³å½¢å¼ã‚’計算ã—ã¾ã™. + + <literal>X=rref([A,eye(m,m)])</literal>をコールã™ã‚‹éš›ã«ä½¿ç”¨ã—㟠+ + 変æ›ã ã‘ãŒå¿…è¦ãªå ´åˆ,行エシュãƒãƒ³å½¢å¼<literal>R</literal>㯠+ + <literal>X(:,1:n)</literal>ã¨ãªã‚Šã¾ã™. + + 左変æ›<literal>L</literal>ã¯,<literal>L*A=R</literal>ã¨ãªã‚‹ã‚ˆã†ãª + + <literal>X(:,n+1:n+m)</literal> ã«ã‚ˆã‚Šå¾—ã‚‹ã“ã¨ãŒã§ãã¾ã™. + + </para> + + </refsection> + + <refsection> + + <title>例</title> + + <programlisting role="example"><![CDATA[ +A=[1 2;3 4;5 6]; +X=rref([A,eye(3,3)]); +R=X(:,1:2) +L=X(:,3:5);L*A + ]]></programlisting> + + </refsection> + + <refsection role="see also"> + + <title>å‚ç…§</title> + + <simplelist type="inline"> + + <member> + + <link linkend="lu">lu</link> + + </member> + + <member> + + <link linkend="qr">qr</link> + + </member> + + </simplelist> + + </refsection> + +</refentry> + diff --git a/modules/linear_algebra/help/ja_JP/matrix/trace.xml b/modules/linear_algebra/help/ja_JP/matrix/trace.xml new file mode 100755 index 000000000..c3b6fd4ba --- /dev/null +++ b/modules/linear_algebra/help/ja_JP/matrix/trace.xml @@ -0,0 +1,103 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + * 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 + * + --> + +<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="trace"> + + <refnamediv> + + <refname>trace</refname> + + <refpurpose>トレース</refpurpose> + + </refnamediv> + + <refsynopsisdiv> + + <title>呼ã³å‡ºã—æ‰‹é †</title> + + <synopsis>trace(X)</synopsis> + + </refsynopsisdiv> + + <refsection> + + <title>引数</title> + + <variablelist> + + <varlistentry> + + <term>X</term> + + <listitem> + + <para>実数ã¾ãŸã¯è¤‡ç´ æ•°ã®æ£æ–¹è¡Œåˆ—, å¤šé …å¼ã¾ãŸã¯æœ‰ç†è¡Œåˆ—.</para> + + </listitem> + + </varlistentry> + + </variablelist> + + </refsection> + + <refsection> + + <title>説明</title> + + <para> + + <literal>trace(X)</literal>ã¯,行列<literal>X</literal>ã® + + トレースã§ã™. + + </para> + + <para> + + <literal>sum(diag(X))</literal>ã¨åŒã˜ã§ã™. + + </para> + + </refsection> + + <refsection> + + <title>例</title> + + <programlisting role="example"><![CDATA[ +A=rand(3,3); +trace(A)-sum(spec(A)) + ]]></programlisting> + + </refsection> + + <refsection> + + <title>å‚考</title> + + <simplelist type="inline"> + + <member> + + <link linkend="det">det</link> + + </member> + + </simplelist> + + </refsection> + +</refentry> + diff --git a/modules/linear_algebra/help/ja_JP/pencil/CHAPTER b/modules/linear_algebra/help/ja_JP/pencil/CHAPTER new file mode 100755 index 000000000..86d1da116 --- /dev/null +++ b/modules/linear_algebra/help/ja_JP/pencil/CHAPTER @@ -0,0 +1,2 @@ +title = Matrix Pencil + diff --git a/modules/linear_algebra/help/ja_JP/pencil/companion.xml b/modules/linear_algebra/help/ja_JP/pencil/companion.xml new file mode 100755 index 000000000..93a9adcec --- /dev/null +++ b/modules/linear_algebra/help/ja_JP/pencil/companion.xml @@ -0,0 +1,150 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + * 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 + * + --> + +<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="companion"> + + <refnamediv> + + <refname>companion</refname> + + <refpurpose>コンパニオン行列 </refpurpose> + + </refnamediv> + + <refsynopsisdiv> + + <title>呼ã³å‡ºã—æ‰‹é †</title> + + <synopsis>A=companion(p)</synopsis> + + </refsynopsisdiv> + + <refsection> + + <title>引数</title> + + <variablelist> + + <varlistentry> + + <term>p</term> + + <listitem> + + <para>å¤šé …å¼ã¾ãŸã¯å¤šé …å¼ã®ãƒ™ã‚¯ãƒˆãƒ«</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>A</term> + + <listitem> + + <para>æ£æ–¹è¡Œåˆ—</para> + + </listitem> + + </varlistentry> + + </variablelist> + + </refsection> + + <refsection> + + <title>説明</title> + + <para> + + ç‰¹æ€§å¤šé …å¼ã‚’有ã™ã‚‹ + + 行列<literal>A</literal>ã‚’è¿”ã—ã¾ã™. + + <literal>p</literal>ãŒãƒ¢ãƒ‹ãƒƒã‚¯ãªå ´åˆ,ç‰¹æ€§å¤šé …å¼ã¯ + + <literal>p</literal>ã«ç‰ã—ããªã‚Šã¾ã™. + + <literal>p</literal>ãŒãƒ¢ãƒ‹ãƒƒã‚¯ã§ãªã„å ´åˆ, + + <literal>A</literal>ã®ç‰¹æ€§æ–¹ç¨‹å¼ã¯ + + <literal>p/c</literal>ã«ç‰ã—ããªã‚Šã¾ã™. + + ãŸã ã—,<literal>c</literal>ã¯<literal>p</literal> + + ã®æœ€å¤§æ¬¡æ•°ã®ä¿‚æ•°ã§ã™. + + </para> + + <para> + + <literal>p</literal> ãŒãƒ¢ãƒ‹ãƒƒã‚¯ãªå¤šé …å¼ã®ãƒ™ã‚¯ãƒˆãƒ«ã®å ´åˆ, + + <literal>A</literal> ã¯ãƒ–ãƒãƒƒã‚¯å¯¾è§’ã¨ãªã‚Š, + + i番目ã®ç‰¹æ€§å¤šé …å¼ã¯ + + <literal>p(i)</literal>ã¨ãªã‚Šã¾ã™. + + </para> + + </refsection> + + <refsection> + + <title>例</title> + + <programlisting role="example"><![CDATA[ +s=poly(0,'s'); +p=poly([1,2,3,4,1],'s','c') +det(s*eye()-companion(p)) +roots(p) +spec(companion(p)) + ]]></programlisting> + + </refsection> + + <refsection role="see also"> + + <title>å‚ç…§</title> + + <simplelist type="inline"> + + <member> + + <link linkend="spec">spec</link> + + </member> + + <member> + + <link linkend="poly">poly</link> + + </member> + + <member> + + <link linkend="randpencil">randpencil</link> + + </member> + + </simplelist> + + </refsection> + +</refentry> + diff --git a/modules/linear_algebra/help/ja_JP/pencil/ereduc.xml b/modules/linear_algebra/help/ja_JP/pencil/ereduc.xml new file mode 100755 index 000000000..b1d93ff64 --- /dev/null +++ b/modules/linear_algebra/help/ja_JP/pencil/ereduc.xml @@ -0,0 +1,223 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + * 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 + * + --> + +<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="ereduc"> + + <refnamediv> + + <refname>ereduc</refname> + + <refpurpose>QZ変æ›ã«ã‚ˆã‚Šåˆ—階段型行列を計算</refpurpose> + + </refnamediv> + + <refsynopsisdiv> + + <title>呼ã³å‡ºã—æ‰‹é †</title> + + <synopsis>[E,Q,Z [,stair [,rk]]]=ereduc(X,tol)</synopsis> + + </refsynopsisdiv> + + <refsection> + + <title>引数</title> + + <variablelist> + + <varlistentry> + + <term>X</term> + + <listitem> + + <para>実数エントリを有ã™ã‚‹m x n 行列.</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>tol</term> + + <listitem> + + <para>実数ã®æ£ã®ã‚¹ã‚«ãƒ©ãƒ¼.</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>E</term> + + <listitem> + + <para>列階段型行列</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>Q</term> + + <listitem> + + <para>m x m ユニタリ行列</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>Z</term> + + <listitem> + + <para>n x n ユニタリ行列</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>stair</term> + + <listitem> + + <para>æ·»å—ベクトル,</para> + + <variablelist> + + <varlistentry> + + <term>* </term> + + <listitem> + + <para> + + 境界è¦ç´ <literal>E(i,j)</literal>ãŒç«¯ç‚¹ã®å ´åˆ, + + <literal>ISTAIR(i) = + j</literal>. + + </para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>* </term> + + <listitem> + + <para> + + 境界è¦ç´ <literal>E(i,j)</literal>ãŒç«¯ç‚¹ã§ãªã„å ´åˆ, + + <literal>ISTAIR(i) = - j</literal>. + + </para> + + </listitem> + + </varlistentry> + + </variablelist> + + <para> + + <literal>(i=1,...,M)</literal> + + </para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>rk</term> + + <listitem> + + <para>æ•´æ•°, 行列ã®ãƒ©ãƒ³ã‚¯ã®æŽ¨å®šå€¤</para> + + </listitem> + + </varlistentry> + + </variablelist> + + </refsection> + + <refsection> + + <title>説明</title> + + <para> + + <literal>mx n</literal>行列<literal>X</literal> (æ£å‰‡ã§ã‚ã‚‹ + + å¿…è¦ã¯ãªã„)を指定ã™ã‚‹ã¨, + + 関数ereducã¯,列階段型(å°å½¢)ã® + + ユニタリ変æ›è¡Œåˆ—<literal>E=Q*X*Z</literal> + + を計算ã—ã¾ã™. + + æ›´ã«è¡Œåˆ—<literal>X</literal>ã®ãƒ©ãƒ³ã‚¯ãŒå®šç¾©ã•ã‚Œã¾ã™. + + </para> + + </refsection> + + <refsection> + + <title>例</title> + + <programlisting role="example"><![CDATA[ +X=[1 2 3;4 5 6] +[E,Q,Z ,stair ,rk]=ereduc(X,1.d-15) + ]]></programlisting> + + </refsection> + + <refsection role="see also"> + + <title>å‚ç…§</title> + + <simplelist type="inline"> + + <member> + + <link linkend="fstair">fstair</link> + + </member> + + </simplelist> + + </refsection> + +</refentry> + diff --git a/modules/linear_algebra/help/ja_JP/pencil/fstair.xml b/modules/linear_algebra/help/ja_JP/pencil/fstair.xml new file mode 100755 index 000000000..7f82fe30d --- /dev/null +++ b/modules/linear_algebra/help/ja_JP/pencil/fstair.xml @@ -0,0 +1,354 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + * 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 + * + --> + +<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="fstair"> + + <refnamediv> + + <refname>fstair</refname> + + <refpurpose>QZ変æ›ã«ã‚ˆã‚Šåˆ—階段型ペンシルを計算ã™ã‚‹</refpurpose> + + </refnamediv> + + <refsynopsisdiv> + + <title>呼ã³å‡ºã—æ‰‹é †</title> + + <synopsis>[AE,EE,QE,ZE,blcks,muk,nuk,muk0,nuk0,mnei]=fstair(A,E,Q,Z,stair,rk,tol)</synopsis> + + </refsynopsisdiv> + + <refsection> + + <title>引数</title> + + <variablelist> + + <varlistentry> + + <term>A</term> + + <listitem> + + <para>実数エントリを有ã™ã‚‹m x n行列.</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>tol</term> + + <listitem> + + <para>実数ã®æ£ã®ã‚¹ã‚«ãƒ©ãƒ¼.</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>E</term> + + <listitem> + + <para>列階段型行列</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>Q</term> + + <listitem> + + <para>m x m ユニタリ行列</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>Z</term> + + <listitem> + + <para>n x n ユニタリ行列</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>stair</term> + + <listitem> + + <para>æ·»å—ベクトル (ereducå‚ç…§)</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>rk</term> + + <listitem> + + <para>æ•´æ•°, 行列ランクã®æŽ¨å®šå€¤</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>AE</term> + + <listitem> + + <para>実数エントリを有ã™ã‚‹m x n行列.</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>EE</term> + + <listitem> + + <para>列階段型行列</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>QE</term> + + <listitem> + + <para>m x m ユニタリ行列</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>ZE</term> + + <listitem> + + <para>n x n ユニタリ行列</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>nblcks</term> + + <listitem> + + <para> + + 行列<literal>A</literal>ã§æ¤œå‡ºã•ã‚ŒãŸ + + フル行ランクを有ã™ã‚‹ã‚µãƒ–行列ã®æ•°(>= 0). + + </para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>muk: </term> + + <listitem> + + <para>次元 (n) ã®æ•´æ•°é…列. + + ペンシルsE(eps)-A(eps)ã«ãŠã„㦠+ + 列フルランクを有ã™ã‚‹ã‚µãƒ–行列ã®åˆ—次元 mu(k) (k=1,...,nblcks) ã‚’å«ã¿ã¾ã™. + + </para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>nuk: </term> + + <listitem> + + <para> + + 次元 (m+1) ã®æ•´æ•°é…列. + + ペンシルsE(eps)-A(eps)ã«ãŠã„㦠+ + 行フルランクを有ã™ã‚‹ã‚µãƒ–行列ã®è¡Œæ¬¡å…ƒ nu(k) (k=1,...,nblcks) + + ã‚’å«ã¿ã¾ã™. + + </para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>muk0: </term> + + <listitem> + + <para> + + 次元 (n) ã®æ•´æ•°é…列. + + ペンシルsE(eps,inf)-A(eps,inf)ã«ãŠã„㦠+ + 列フルランクを有ã™ã‚‹ã‚µãƒ–行列ã®åˆ—次元 mu(k) (k=1,...,nblcks) ã‚’å«ã¿ã¾ã™. + + </para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>nuk: </term> + + <listitem> + + <para> + + 次元 (m+1) ã®æ•´æ•°é…列. + + ペンシルsE(eps,inf)-A(eps,inf)ã«ãŠã„㦠+ + 行フルランクを有ã™ã‚‹ã‚µãƒ–行列ã®è¡Œæ¬¡å…ƒ nu(k) (k=1,...,nblcks) + + ã‚’å«ã¿ã¾ã™. + + </para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>mnei: </term> + + <listitem> + + <para>次元 (4) ã®æ•´æ•°é…列. + + mnei(1) = sE(eps)-A(eps)ã®è¡Œã®æ¬¡å…ƒ + + </para> + + </listitem> + + </varlistentry> + + </variablelist> + + </refsection> + + <refsection> + + <title>説明</title> + + <para> + + 行列 <literal>E</literal> を列階段形ã¨ã—ã¦, + + ペンシル <literal>sE-A</literal> を指定ã™ã‚‹ã¨, + + 関数<literal>fstair</literal>㯠+ + ユーザã®æŒ‡å®šã«åŸºã¥ã + + ユニタリ変æ›ã•ã‚ŒãŸãƒšãƒ³ã‚·ãƒ«<literal>QE(sEE-AE)ZE</literal>ã‚’ + + 計算ã—ã¾ã™. + + ã“ã®ãƒšãƒ³ã‚·ãƒ«ã¯, ã»ã¼ãƒšãƒ³ã‚·ãƒ«<literal>sE-A</literal> + + ã®ä¸€èˆ¬åŒ–Schurå½¢å¼ã§ã™. + + ã“ã®é–¢æ•°ã¯,指定ã—ãŸãƒšãƒ³ã‚·ãƒ«ã® + + クãƒãƒãƒƒã‚«ãƒ¼æ§‹é€ ã®éƒ¨åˆ†ã‚‚出力ã—ã¾ã™. + + </para> + + <para> + + <literal>Q,Z</literal> ã¯ãƒ¦ãƒ‹ã‚¿ãƒªè¡Œåˆ—ã§, + + ペンシルを計算ã™ã‚‹éš›ã«ä½¿ç”¨ã•ã‚Œã¾ã™. + + ãŸã ã—, E ã¯åˆ—階段形ã§ã™ (ereducå‚ç…§) + + </para> + + </refsection> + + <refsection role="see also"> + + <title>å‚ç…§</title> + + <simplelist type="inline"> + + <member> + + <link linkend="quaskro">quaskro</link> + + </member> + + <member> + + <link linkend="ereduc">ereduc</link> + + </member> + + </simplelist> + + </refsection> + +</refentry> + diff --git a/modules/linear_algebra/help/ja_JP/pencil/glever.xml b/modules/linear_algebra/help/ja_JP/pencil/glever.xml new file mode 100755 index 000000000..b51eac00e --- /dev/null +++ b/modules/linear_algebra/help/ja_JP/pencil/glever.xml @@ -0,0 +1,220 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + * 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 + * + --> + +<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="glever"> + + <refnamediv> + + <refname>glever</refname> + + <refpurpose>行列ペンシルã®é€†</refpurpose> + + </refnamediv> + + <refsynopsisdiv> + + <title>呼ã³å‡ºã—æ‰‹é †</title> + + <synopsis>[Bfs,Bis,chis]=glever(E,A [,s])</synopsis> + + </refsynopsisdiv> + + <refsection> + + <title>引数</title> + + <variablelist> + + <varlistentry> + + <term>E, A</term> + + <listitem> + + <para>åŒã˜æ¬¡å…ƒã®æ£æ–¹å®Ÿè¡Œåˆ—</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>s</term> + + <listitem> + + <para> + + æ–‡å—列 (デフォルト値 '<literal>s</literal>') + + </para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>Bfs,Bis</term> + + <listitem> + + <para>å¤šé …å¼è¡Œåˆ—</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>chis</term> + + <listitem> + + <para>å¤šé …å¼</para> + + </listitem> + + </varlistentry> + + </variablelist> + + </refsection> + + <refsection> + + <title>説明</title> + + <para>一般化ã—ãŸLeverrierã®ã‚¢ãƒ«ã‚´ãƒªã‚ºãƒ ã«ã‚ˆã‚Šã‚る行列ペンシルã«ã¤ã„㦠+ + </para> + + <para> + + <literal>(s*E-A)^-1</literal> + + </para> + + <para> + + を計算ã—ã¾ã™. + + </para> + + <programlisting role=""><![CDATA[ +(s*E-A)^-1 = (Bfs/chis) - Bis. + ]]></programlisting> + + <para> + + <literal>chis</literal> = ç‰¹æ€§å¤šé …å¼ (乗法定数ã¾ã§). + + </para> + + <para> + + <literal>Bfs</literal> = 分åã®ç‰¹æ€§å¤šé …å¼è¡Œåˆ—. + + </para> + + <para> + + <literal>Bis</literal> + + = å¤šé …å¼è¡Œåˆ— ( - <literal>(s*E-A)^-1</literal> ã®ç„¡é™å¤§ã¾ã§ã®ç´šæ•°å±•é–‹). + + </para> + + <para> + + <literal>Bis</literal>ã®å‰ã« - 符å·ãŒã‚ã‚‹ã“ã¨ã«æ³¨æ„ã—ã¦ãã ã•ã„. + + </para> + + </refsection> + + <refsection> + + <title>注æ„</title> + + <para> + + ã“ã®é–¢æ•°ã¯,<literal>Bfs,Bis</literal> ãŠã‚ˆã³ <literal>chis</literal>ã‚’ + + ç°¡å˜åŒ–ã™ã‚‹ãŸã‚ã« <literal>cleanp</literal>を使用ã—ã¾ã™. + + </para> + + </refsection> + + <refsection> + + <title>例</title> + + <programlisting role="example"><![CDATA[ +s=%s;F=[-1,s,0,0;0,-1,0,0;0,0,s-2,0;0,0,0,s-1]; +[Bfs,Bis,chis]=glever(F) +inv(F)-((Bfs/chis) - Bis) + ]]></programlisting> + + </refsection> + + <refsection role="see also"> + + <title>å‚ç…§</title> + + <simplelist type="inline"> + + <member> + + <link linkend="rowshuff">rowshuff</link> + + </member> + + <member> + + <link linkend="det">det</link> + + </member> + + <member> + + <link linkend="invr">invr</link> + + </member> + + <member> + + <link linkend="coffg">coffg</link> + + </member> + + <member> + + <link linkend="pencan">pencan</link> + + </member> + + <member> + + <link linkend="penlaur">penlaur</link> + + </member> + + </simplelist> + + </refsection> + +</refentry> + diff --git a/modules/linear_algebra/help/ja_JP/pencil/kroneck.xml b/modules/linear_algebra/help/ja_JP/pencil/kroneck.xml new file mode 100755 index 000000000..73cd277ef --- /dev/null +++ b/modules/linear_algebra/help/ja_JP/pencil/kroneck.xml @@ -0,0 +1,281 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + * 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 + * + --> + +<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="kroneck"> + + <refnamediv> + + <refname>kroneck</refname> + + <refpurpose>行列ペンシルã®ã‚¯ãƒãƒãƒƒã‚«ãƒ¼å½¢å¼</refpurpose> + + </refnamediv> + + <refsynopsisdiv> + + <title>呼ã³å‡ºã—æ‰‹é †</title> + + <synopsis>[Q,Z,Qd,Zd,numbeps,numbeta]=kroneck(F) + + [Q,Z,Qd,Zd,numbeps,numbeta]=kroneck(E,A) + + </synopsis> + + </refsynopsisdiv> + + <refsection> + + <title>引数</title> + + <variablelist> + + <varlistentry> + + <term>F</term> + + <listitem> + + <para> + + 実数行列ペンシル <literal>F=s*E-A</literal> + + </para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>E,A</term> + + <listitem> + + <para>åŒã˜æ¬¡å…ƒã®å®Ÿæ•°è¡Œåˆ—</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>Q,Z</term> + + <listitem> + + <para>æ£æ–¹ç›´äº¤è¡Œåˆ—</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>Qd,Zd</term> + + <listitem> + + <para>整数ベクトル</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>numbeps,numeta</term> + + <listitem> + + <para>整数ベクトル</para> + + </listitem> + + </varlistentry> + + </variablelist> + + </refsection> + + <refsection> + + <title>説明</title> + + <para> + + 行列ペンシルã®ã‚¯ãƒãƒãƒƒã‚«ãƒ¼å½¢å¼: <literal>kroneck</literal> ã¯, + + ペンシル<literal>F=s*E -A</literal>を以下ã®ã‚ˆã†ãªä¸Šä¸‰è§’å½¢å¼ã«å¤‰æ›ã™ã‚‹ + + 2ã¤ã®ç›´äº¤è¡Œåˆ—<literal>Q, Z</literal>を計算ã—ã¾ã™: + + </para> + + <programlisting role=""><![CDATA[ + | sE(eps)-A(eps) | X | X | X | + |----------------|----------------|------------|---------------| + | O | sE(inf)-A(inf) | X | X | +Q(sE-A)Z = |---------------------------------|----------------------------| + | | | | | + | 0 | 0 | sE(f)-A(f) | X | + |--------------------------------------------------------------| + | | | | | + | 0 | 0 | 0 | sE(eta)-A(eta)| + ]]></programlisting> + + <para> + + 4個ã®ãƒ–ãƒãƒƒã‚¯ã®æ¬¡å…ƒã¯ä»¥ä¸‹ã®ã‚ˆã†ã«æŒ‡å®šã•ã‚Œã¾ã™: + + </para> + + <para> + + <literal>eps=Qd(1) x Zd(1)</literal>, <literal>inf=Qd(2) x Zd(2)</literal>, + + <literal>f = Qd(3) x Zd(3)</literal>, <literal>eta=Qd(4)xZd(4)</literal> + + </para> + + <para> + + <literal>inf</literal>ブãƒãƒƒã‚¯ã«ã¯ãƒšãƒ³ã‚·ãƒ«ã®ç„¡é™å¤§ãƒ¢ãƒ¼ãƒ‰ãŒå«ã¾ã‚Œã¾ã™. + + </para> + + <para> + + <literal>f</literal> ブãƒãƒƒã‚¯ã«ã¯ãƒšãƒ³ã‚·ãƒ«ã®æœ‰é™ãƒ¢ãƒ¼ãƒ‰ãŒå«ã¾ã‚Œã¾ã™. + + </para> + + <para> + + イプシãƒãƒ³ã¨etaブãƒãƒƒã‚¯ã®æ§‹é€ ã¯ä»¥ä¸‹ã®ã‚ˆã†ã«æŒ‡å®šã•ã‚Œã¾ã™: + + </para> + + <para> + + <literal>numbeps(1)</literal> = 大ãã• 0 x 1ã®epsブãƒãƒƒã‚¯ã®ç•ªå· + + </para> + + <para> + + <literal>numbeps(2)</literal> = 大ãã• 1 x 2ã®epsブãƒãƒƒã‚¯ã®ç•ªå· + + </para> + + <para> + + <literal>numbeps(3)</literal> = 大ãã• 2 x 3ã®epsブãƒãƒƒã‚¯ã®ç•ªå· etc... + + </para> + + <para> + + <literal>numbeta(1)</literal> = 大ãã• 1 x 0ã®etaブãƒãƒƒã‚¯ã®ç•ªå· + + </para> + + <para> + + <literal>numbeta(2)</literal> = 大ãã• 2 x 1ã®etaブãƒãƒƒã‚¯ã®ç•ªå· + + </para> + + <para> + + <literal>numbeta(3)</literal> = 大ãã• 3 x 2ã®etaブãƒãƒƒã‚¯ã®ç•ªå· etc... + + </para> + + <para> + + ã“ã®ã‚³ãƒ¼ãƒ‰ã¯T. Beelen (Slicot-WGS group)ã«ã‚ˆã‚‹ã‚‚ã®ã§ã™. + + </para> + + </refsection> + + <refsection> + + <title>例</title> + + <programlisting role="example"><![CDATA[ +F=randpencil([1,1,2],[2,3],[-1,3,1],[0,3]); +Q=rand(17,17);Z=rand(18,18);F=Q*F*Z; +//random pencil with eps1=1,eps2=1,eps3=1; 2 J-blocks @ infty +//with dimensions 2 and 3 +//3 finite eigenvalues at -1,3,1 and eta1=0,eta2=3 +[Q,Z,Qd,Zd,numbeps,numbeta]=kroneck(F); +[Qd(1),Zd(1)] //eps. part is sum(epsi) x (sum(epsi) + number of epsi) +[Qd(2),Zd(2)] //infinity part +[Qd(3),Zd(3)] //finite part +[Qd(4),Zd(4)] //eta part is (sum(etai) + number(eta1)) x sum(etai) +numbeps +numbeta + ]]></programlisting> + + </refsection> + + <refsection role="see also"> + + <title>å‚ç…§</title> + + <simplelist type="inline"> + + <member> + + <link linkend="gschur">gschur</link> + + </member> + + <member> + + <link linkend="gspec">gspec</link> + + </member> + + <member> + + <link linkend="systmat">systmat</link> + + </member> + + <member> + + <link linkend="pencan">pencan</link> + + </member> + + <member> + + <link linkend="randpencil">randpencil</link> + + </member> + + <member> + + <link linkend="trzeros">trzeros</link> + + </member> + + </simplelist> + + </refsection> + +</refentry> + diff --git a/modules/linear_algebra/help/ja_JP/pencil/lyap.xml b/modules/linear_algebra/help/ja_JP/pencil/lyap.xml new file mode 100755 index 000000000..206c3f209 --- /dev/null +++ b/modules/linear_algebra/help/ja_JP/pencil/lyap.xml @@ -0,0 +1,143 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + * 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 + * + --> + +<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="lyap"> + + <refnamediv> + + <refname>lyap</refname> + + <refpurpose>リアプノフ方程å¼</refpurpose> + + </refnamediv> + + <refsynopsisdiv> + + <title>呼ã³å‡ºã—æ‰‹é †</title> + + <synopsis>[X]=lyap(A,C,'c') + + [X]=lyap(A,C,'d') + + </synopsis> + + </refsynopsisdiv> + + <refsection> + + <title>引数</title> + + <variablelist> + + <varlistentry> + + <term>A, C</term> + + <listitem> + + <para> + + 実数æ£æ–¹è¡Œåˆ—, <literal>C</literal> ã¯å¯¾ç§°ã§ã‚ã‚‹ã“ã¨ãŒå¿…è¦ + + </para> + + </listitem> + + </varlistentry> + + </variablelist> + + </refsection> + + <refsection> + + <title>説明</title> + + <para> + + <literal>X= lyap(A,C,flag)</literal> ã¯é€£ç¶šæ™‚é–“ã¾ãŸã¯é›¢æ•£æ™‚間行列 + + リアプノフ方程å¼ã‚’解ãã¾ã™: + + </para> + + <programlisting role=""><![CDATA[ +A'*X + X*A = C ( flag='c' ) +A'*X*A - X = C ( flag='d' ) + ]]></programlisting> + + <para> + + <note> + + <literal>A</literal>ã®å›ºæœ‰å€¤ãŒ<literal>-A</literal>ã® + + 固有値ã§ãªã„å ´åˆ(<literal>flag='c'</literal>) + + ã¾ãŸã¯<literal>A</literal>ã®å›ºæœ‰å€¤åˆ†ã®1ã®å ´åˆ + + (<literal>flag='d'</literal>)ã«ã®ã¿ãƒ¦ãƒ‹ãƒ¼ã‚¯ãª + + 解ãŒå¾—られるã“ã¨ã«æ³¨æ„ã—ã¦ãã ã•ã„. + + </note> + + </para> + + </refsection> + + <refsection> + + <title>例</title> + + <programlisting role="example"><![CDATA[ +A=rand(4,4);C=rand(A);C=C+C'; +X=lyap(A,C,'c'); +A'*X + X*A -C +X=lyap(A,C,'d'); +A'*X*A - X -C + ]]></programlisting> + + </refsection> + + <refsection role="see also"> + + <title>å‚ç…§</title> + + <simplelist type="inline"> + + <member> + + <link linkend="sylv">sylv</link> + + </member> + + <member> + + <link linkend="ctr_gram">ctr_gram</link> + + </member> + + <member> + + <link linkend="obs_gram">obs_gram</link> + + </member> + + </simplelist> + + </refsection> + +</refentry> + diff --git a/modules/linear_algebra/help/ja_JP/pencil/pencan.xml b/modules/linear_algebra/help/ja_JP/pencil/pencan.xml new file mode 100755 index 000000000..842d32110 --- /dev/null +++ b/modules/linear_algebra/help/ja_JP/pencil/pencan.xml @@ -0,0 +1,191 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + * 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 + * + --> + +<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="pencan"> + + <refnamediv> + + <refname>pencan</refname> + + <refpurpose>行列ペンシルã®æ£æº–å½¢</refpurpose> + + </refnamediv> + + <refsynopsisdiv> + + <title>呼ã³å‡ºã—æ‰‹é †</title> + + <synopsis>[Q,M,i1]=pencan(Fs) + + [Q,M,i1]=pencan(E,A) + + </synopsis> + + </refsynopsisdiv> + + <refsection> + + <title>引数</title> + + <variablelist> + + <varlistentry> + + <term>Fs</term> + + <listitem> + + <para> + + 標準ペンシル <literal>s*E-A</literal> + + </para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>E,A</term> + + <listitem> + + <para>実数æ£æ–¹è¡Œåˆ—</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>Q,M</term> + + <listitem> + + <para>æ£å‰‡å®Ÿæ•°è¡Œåˆ—</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>i1</term> + + <listitem> + + <para>æ•´æ•°</para> + + </listitem> + + </varlistentry> + + </variablelist> + + </refsection> + + <refsection> + + <title>説明</title> + + <para> + + 標準ペンシル <literal>Fs=s*E-A</literal>を指定ã™ã‚‹ã¨, + + <literal>pencan</literal> ã¯, + + <literal>M*(s*E-A)*Q</literal>ãŒ"æ£æº–"å½¢ã¨ãªã‚‹ã‚ˆã†ãª + + 行列<literal>Q</literal> ãŠã‚ˆã³<literal>M</literal>ã‚’è¿”ã—ã¾ã™. + + </para> + + <para> + + <literal>M*E*Q</literal> ã¯ãƒ–ãƒãƒƒã‚¯è¡Œåˆ—ã§ã™. + + </para> + + <programlisting role=""><![CDATA[ +[I,0; + 0,N] + ]]></programlisting> + + <para> + + ãŸã ã—,<literal>N</literal>ã¯å†ªé›¶è¡Œåˆ—<literal>N</literal>, + + <literal>i1</literal> = 行列<literal>I</literal>ã®å¤§ãã•ã§ã™. + + </para> + + <para> + + <literal>M*A*Q</literal> ã¯ä»¥ä¸‹ã®ã‚ˆã†ãªãƒ–ãƒãƒƒã‚¯è¡Œåˆ—ã§ã™: + + </para> + + <programlisting role=""><![CDATA[ +[Ar,0; + 0,I] + ]]></programlisting> + + </refsection> + + <refsection> + + <title>例</title> + + <programlisting role="example"><![CDATA[ +F=randpencil([],[1,2],[1,2,3],[]); +F=rand(6,6)*F*rand(6,6); +[Q,M,i1]=pencan(F); +W=clean(M*F*Q) +roots(det(W(1:i1,1:i1))) +det(W($-2:$,$-2:$)) + ]]></programlisting> + + </refsection> + + <refsection role="see also"> + + <title>å‚ç…§</title> + + <simplelist type="inline"> + + <member> + + <link linkend="glever">glever</link> + + </member> + + <member> + + <link linkend="penlaur">penlaur</link> + + </member> + + <member> + + <link linkend="rowshuff">rowshuff</link> + + </member> + + </simplelist> + + </refsection> + +</refentry> + diff --git a/modules/linear_algebra/help/ja_JP/pencil/penlaur.xml b/modules/linear_algebra/help/ja_JP/pencil/penlaur.xml new file mode 100755 index 000000000..33556c0e8 --- /dev/null +++ b/modules/linear_algebra/help/ja_JP/pencil/penlaur.xml @@ -0,0 +1,224 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + * 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 + * + --> + +<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="penlaur"> + + <refnamediv> + + <refname>penlaur</refname> + + <refpurpose>行列ペンシルã®ãƒãƒ¼ãƒ©ãƒ³ä¿‚æ•°</refpurpose> + + </refnamediv> + + <refsynopsisdiv> + + <title>呼ã³å‡ºã—æ‰‹é †</title> + + <synopsis>[Si,Pi,Di,order]=penlaur(Fs) + + [Si,Pi,Di,order]=penlaur(E,A) + + </synopsis> + + </refsynopsisdiv> + + <refsection> + + <title>引数</title> + + <variablelist> + + <varlistentry> + + <term>Fs</term> + + <listitem> + + <para> + + 標準ペンシル <literal>s*E-A</literal> + + </para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>E, A</term> + + <listitem> + + <para>実数æ£æ–¹è¡Œåˆ—</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>Si,Pi,Di</term> + + <listitem> + + <para>実数æ£æ–¹è¡Œåˆ—</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>order</term> + + <listitem> + + <para>æ•´æ•°</para> + + </listitem> + + </varlistentry> + + </variablelist> + + </refsection> + + <refsection> + + <title>説明</title> + + <para> + + <literal>penlaur</literal> ã¯,ç„¡é™å¤§ã«ãŠã‘ã‚‹ + + <literal>(s*E-A)^-1</literal>ã®ç¬¬ä¸€ãƒãƒ¼ãƒ©ãƒ³ä¿‚æ•°ã‚’ + + 計算ã—ã¾ã™. + + </para> + + <para> + + <literal>s</literal> = ç„¡é™å¤§ ã«ãŠã„ã¦, + + <literal>(s*E-A)^-1 = ... + Si/s - Pi - s*Di + ...</literal> + + </para> + + <para> + + <literal>order</literal> = 特異点ã®æ¬¡æ•° (order=index-1). + + </para> + + <para> + + 行列ペンシル <literal>Fs=s*E-A</literal> ã¯å¯é€†ã§ã‚ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™. + + </para> + + <para> + + æ·»å—0ã®ãƒšãƒ³ã‚·ãƒ«ã®å ´åˆ, + + <literal>Pi, Di,...</literal> 㯠0,ãŠã‚ˆã³ <literal>Si=inv(E)</literal> + + ã¨ãªã‚Šã¾ã™. + + </para> + + <para> + + æ·»å—1ã®ãƒšãƒ³ã‚·ãƒ«(order=0)ã®å ´åˆ, + + <literal>Di</literal> =0 ã¨ãªã‚Šã¾ã™. + + </para> + + <para> + + より大ããªæ·»å—ã®ãƒšãƒ³ã‚·ãƒ«ã®å ´åˆ, + + é … <literal> -s^2 Di(2), -s^3 Di(3),... </literal> ã¯æ¬¡ã®ã‚ˆã†ã«æŒ‡å®šã•ã‚Œã¾ã™: + + </para> + + <para> + + <literal> Di(2)=Di*A*Di</literal>, <literal> Di(3)=Di*A*Di*A*Di</literal> (最大 <literal>Di(order)</literal>). + + </para> + + </refsection> + + <refsection> + + <title>注æ„</title> + + <para> + + 実験的ãªãƒãƒ¼ã‚¸ãƒ§ãƒ³: <literal>so*E-A</literal>ã®æ¡ä»¶æ•°ãŒæ‚ªã„å ´åˆã« + + å•é¡Œã‚’発生ã—ã¾ã™ + + </para> + + </refsection> + + <refsection> + + <title>例</title> + + <programlisting role="example"><![CDATA[ +F=randpencil([],[1,2],[1,2,3],[]); +F=rand(6,6)*F*rand(6,6);[E,A]=pen2ea(F); +[Si,Pi,Di]=penlaur(F); +[Bfs,Bis,chis]=glever(F); +norm(coeff(Bis,1)-Di,1) + ]]></programlisting> + + </refsection> + + <refsection role="see also"> + + <title>å‚ç…§</title> + + <simplelist type="inline"> + + <member> + + <link linkend="glever">glever</link> + + </member> + + <member> + + <link linkend="pencan">pencan</link> + + </member> + + <member> + + <link linkend="rowshuff">rowshuff</link> + + </member> + + </simplelist> + + </refsection> + +</refentry> + diff --git a/modules/linear_algebra/help/ja_JP/pencil/quaskro.xml b/modules/linear_algebra/help/ja_JP/pencil/quaskro.xml new file mode 100755 index 000000000..cee463831 --- /dev/null +++ b/modules/linear_algebra/help/ja_JP/pencil/quaskro.xml @@ -0,0 +1,249 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + * 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 + * + --> + +<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="quaskro"> + + <refnamediv> + + <refname>quaskro</refname> + + <refpurpose>準クãƒãƒãƒƒã‚«ãƒ¼å½¢å¼</refpurpose> + + </refnamediv> + + <refsynopsisdiv> + + <title>呼ã³å‡ºã—æ‰‹é †</title> + + <synopsis>[Q,Z,Qd,Zd,numbeps,numbeta]=quaskro(F) + + [Q,Z,Qd,Zd,numbeps,numbeta]=quaskro(E,A) + + [Q,Z,Qd,Zd,numbeps,numbeta]=quaskro(F,tol) + + [Q,Z,Qd,Zd,numbeps,numbeta]=quaskro(E,A,tol) + + </synopsis> + + </refsynopsisdiv> + + <refsection> + + <title>引数</title> + + <variablelist> + + <varlistentry> + + <term>F</term> + + <listitem> + + <para> + + 実数行列ペンシル <literal>F=s*E-A</literal> (<literal>s=poly(0,'s')</literal>) + + </para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>E,A</term> + + <listitem> + + <para>åŒã˜æ¬¡å…ƒã®å®Ÿæ•°è¡Œåˆ—</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>tol</term> + + <listitem> + + <para>実数 (許容誤差,デフォルト値=1.d-10)</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>Q,Z</term> + + <listitem> + + <para>æ£æ–¹ç›´äº¤è¡Œåˆ—</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>Qd,Zd</term> + + <listitem> + + <para>整数ベクトル</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>numbeps</term> + + <listitem> + + <para>整数ベクトル</para> + + </listitem> + + </varlistentry> + + </variablelist> + + </refsection> + + <refsection> + + <title>説明</title> + + <para> + + 行列ペンシルã®æº–クãƒãƒãƒƒã‚«ãƒ¼å½¢å¼: + + <literal>quaskro</literal>ã¯,ペンシル<literal>F=s*E -A</literal>を上三角行列形å¼ã«å¤‰æ›ã™ã‚‹ + + 直交行列 <literal>Q, Z</literal>を計算ã—ã¾ã™: + + </para> + + <programlisting role=""><![CDATA[ + | sE(eps)-A(eps) | X | X | + |----------------|----------------|------------| + | O | sE(inf)-A(inf) | X | +Q(sE-A)Z = |=================================|============| + | | | + | O | sE(r)-A(r) | + ]]></programlisting> + + <para> + + ブãƒãƒƒã‚¯ã®æ¬¡å…ƒã¯æ¬¡ã®ã‚ˆã†ã«æŒ‡å®šã•ã‚Œã¾ã™: + + </para> + + <para> + + <literal>eps=Qd(1) x Zd(1)</literal>, <literal>inf=Qd(2) x Zd(2)</literal>, + + <literal>r = Qd(3) x Zd(3)</literal> + + </para> + + <para> + + <literal>inf</literal> ブãƒãƒƒã‚¯ã«ã¯, ペンシルã®ç„¡é™å¤§ãƒ¢ãƒ¼ãƒ‰ãŒå«ã¾ã‚Œã¾ã™. + + </para> + + <para> + + <literal>f</literal> ブãƒãƒƒã‚¯ã«ã¯, ペンシルã®æœ‰é™ãƒ¢ãƒ¼ãƒ‰ãŒå«ã¾ã‚Œã¾ã™. + + </para> + + <para> + + epsilonブãƒãƒƒã‚¯ã®æ§‹é€ ã¯æ¬¡ã®ã‚ˆã†ã«æŒ‡å®šã•ã‚Œã¾ã™: + + </para> + + <para> + + <literal>numbeps(1)</literal> = 大ãã• 0 x 1ã®epsブãƒãƒƒã‚¯ã®æ•° + + </para> + + <para> + + <literal>numbeps(2)</literal> = 大ãã• 1 x 2ã®epsブãƒãƒƒã‚¯ã®æ•° + + </para> + + <para> + + <literal>numbeps(3)</literal> = 大ãã• 2 x 3ã®epsブãƒãƒƒã‚¯ã®æ•° etc... + + </para> + + <para> + + 完全ãª(4ブãƒãƒƒã‚¯ã®)クãƒãƒãƒƒã‚«ãƒ¼å½¢å¼ã¯, + + (pertransposed)ペンシル<literal>sE(r)-A(r)</literal>を指定ã—㦠+ + <literal>quaskro</literal>をコールã™ã‚‹ + + 関数<literal>kroneck</literal>ã«ã‚ˆã‚ŠæŒ‡å®šã•ã‚Œã¾ã™. + + </para> + + <para> + + ã“ã®ã‚³ãƒ¼ãƒ‰ T. Beelenã«ã‚ˆã‚‹ã‚‚ã®ã§ã™. + + </para> + + </refsection> + + <refsection role="see also"> + + <title>å‚ç…§</title> + + <simplelist type="inline"> + + <member> + + <link linkend="kroneck">kroneck</link> + + </member> + + <member> + + <link linkend="gschur">gschur</link> + + </member> + + <member> + + <link linkend="gspec">gspec</link> + + </member> + + </simplelist> + + </refsection> + +</refentry> + diff --git a/modules/linear_algebra/help/ja_JP/pencil/randpencil.xml b/modules/linear_algebra/help/ja_JP/pencil/randpencil.xml new file mode 100755 index 000000000..e83731339 --- /dev/null +++ b/modules/linear_algebra/help/ja_JP/pencil/randpencil.xml @@ -0,0 +1,207 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + * 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 + * + --> + +<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="randpencil"> + + <refnamediv> + + <refname>randpencil</refname> + + <refpurpose>ランダムãªãƒšãƒ³ã‚·ãƒ«</refpurpose> + + </refnamediv> + + <refsynopsisdiv> + + <title>呼ã³å‡ºã—æ‰‹é †</title> + + <synopsis>F=randpencil(eps,infi,fin,eta)</synopsis> + + </refsynopsisdiv> + + <refsection> + + <title>引数</title> + + <variablelist> + + <varlistentry> + + <term>eps</term> + + <listitem> + + <para>整数ベクトル</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>infi</term> + + <listitem> + + <para>整数ベクトル</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>fin</term> + + <listitem> + + <para>実数ベクトル, ã¾ãŸã¯ãƒ¢ãƒ‹ãƒƒã‚¯ãªå¤šé …å¼, ã¾ãŸã¯ãƒ¢ãƒ‹ãƒƒã‚¯ãªå¤šé …å¼ã®ãƒ™ã‚¯ãƒˆãƒ«</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>eta</term> + + <listitem> + + <para>整数ベクトル</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>F</term> + + <listitem> + + <para> + + 実数行列ペンシル <literal>F=s*E-A</literal> (<literal>s=poly(0,'s')</literal>) + + </para> + + </listitem> + + </varlistentry> + + </variablelist> + + </refsection> + + <refsection> + + <title>説明</title> + + <para> + + ユーティリティ関数. + + <literal>F=randpencil(eps,infi,fin,eta)</literal> ã¯,指定ã—ãŸã‚¯ãƒãƒãƒƒã‚«ãƒ¼æ§‹é€ を有ã™ã‚‹ + + ランダムãªãƒšãƒ³ã‚·ãƒ« <literal>F</literal>ã‚’è¿”ã—ã¾ã™. + + æ§‹é€ ã¯ä»¥ä¸‹ã®ã‚ˆã†ã«æŒ‡å®šã•ã‚Œã¾ã™: + + <literal>eps=[eps1,...,epsk]</literal>: epsilon ブãƒãƒƒã‚¯ã®æ§‹é€ (大ãã• eps1 x(eps1+1),....) + + <literal>fin=[l1,...,ln]</literal> 有é™ã®å›ºæœ‰å€¤ã®é›†åˆ (実数ã¨ä»®å®š)( []ã®å ´åˆã‚‚ã‚ã‚Šã¾ã™) + + <literal>infi=[k1,...,kp]</literal> ç„¡é™å¤§ã«ãŠã‘ã‚‹J-ブãƒãƒƒã‚¯ã®å¤§ãã• + + <literal>ki>=1</literal> (J ブãƒãƒƒã‚¯ãŒãªã„å ´åˆ: infi=[] ). + + <literal>eta=[eta1,...,etap]</literal>: ofeta ブãƒãƒƒã‚¯æ§‹é€ (大ãã• (eta1+1)x eta1,...) + + </para> + + <para> + + <literal>epsi</literal> >=0ã§ã‚ã‚‹å¿…è¦ãŒã‚ã‚Š, + + <literal>etai</literal> >=0ã§ã‚ã‚‹å¿…è¦ãŒã‚ã‚Š, <literal>infi</literal> + + >=1ã§ã‚ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™. + + </para> + + <para> + + <literal>fin</literal> ㌠(モニックãª) å¤šé …å¼ã®å ´åˆ, + + 有é™ã®ãƒ–ãƒãƒƒã‚¯ã¯<literal>fin</literal>ã®æ ¹ã‚’固有値ã¨ã—ã¦è¨±å®¹ã—ã¾ã™. + + </para> + + <para> + + <literal>fin</literal> ãŒå¤šé …å¼ã®ãƒ™ã‚¯ãƒˆãƒ«ã®å ´åˆ, + + ã“れらã¯<literal>F</literal>ã®æœ‰é™å˜å› å,ã™ãªã‚ã¡,<literal>p(i)</literal>ã®æ ¹ã¯ + + <literal>F</literal>ã®æœ‰é™ãªå›ºæœ‰å€¤ã¨ãªã‚Šã¾ã™. + + </para> + + </refsection> + + <refsection> + + <title>例</title> + + <programlisting role="example"><![CDATA[ +F=randpencil([0,1],[2],[-1,0,1],[3]); +[Q,Z,Qd,Zd,numbeps,numbeta]=kroneck(F); +Qd, Zd +s=poly(0,'s'); +F=randpencil([],[1,2],s^3-2,[]); //通常ã®ãƒšãƒ³ã‚·ãƒ« +det(F) + ]]></programlisting> + + </refsection> + + <refsection role="see also"> + + <title>å‚ç…§</title> + + <simplelist type="inline"> + + <member> + + <link linkend="kroneck">kroneck</link> + + </member> + + <member> + + <link linkend="pencan">pencan</link> + + </member> + + <member> + + <link linkend="penlaur">penlaur</link> + + </member> + + </simplelist> + + </refsection> + +</refentry> + diff --git a/modules/linear_algebra/help/ja_JP/pencil/rowshuff.xml b/modules/linear_algebra/help/ja_JP/pencil/rowshuff.xml new file mode 100755 index 000000000..3f6b66c49 --- /dev/null +++ b/modules/linear_algebra/help/ja_JP/pencil/rowshuff.xml @@ -0,0 +1,196 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + * 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 + * + --> + +<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="rowshuff"> + + <refnamediv> + + <refname>rowshuff</refname> + + <refpurpose>シャッフルアルゴリズム</refpurpose> + + </refnamediv> + + <refsynopsisdiv> + + <title>呼ã³å‡ºã—æ‰‹é †</title> + + <synopsis>[Ws,Fs1]=rowshuff(Fs, [alfa])</synopsis> + + </refsynopsisdiv> + + <refsection> + + <title>引数</title> + + <variablelist> + + <varlistentry> + + <term>Fs</term> + + <listitem> + + <para> + + æ£æ–¹å®Ÿæ•°ãƒšãƒ³ã‚·ãƒ« <literal>Fs = s*E-A</literal> + + </para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>Ws</term> + + <listitem> + + <para>å¤šé …å¼è¡Œåˆ—</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>Fs1</term> + + <listitem> + + <para> + + æ£æ–¹å®Ÿæ•°ãƒšãƒ³ã‚·ãƒ« <literal>F1s = s*E1 -A1</literal>, + + ãŸã ã— <literal>E1</literal> ã¯æ£å‰‡ + + </para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>alfa</term> + + <listitem> + + <para> + + 実数 (<literal>alfa = 0</literal> ãŒãƒ‡ãƒ•ã‚©ãƒ«ãƒˆå€¤) + + </para> + + </listitem> + + </varlistentry> + + </variablelist> + + </refsection> + + <refsection> + + <title>説明</title> + + <para> + + シャッフルアルゴリズム: ペンシル <literal>Fs=s*E-A</literal>を指定ã™ã‚‹ã¨, + + 以下ã®ã‚ˆã†ãª(æ£æ–¹å¤šé …å¼è¡Œåˆ—) Ws=W(s) ã‚’è¿”ã—ã¾ã™: + + </para> + + <para> + + <literal> Fs1 = s*E1-A1 = W(s)*(s*E-A) </literal> ã¯, + + æ£å‰‡ãªãƒšãƒ³ã‚·ãƒ«è¡Œåˆ— <literal>E1</literal> ã§ã™. + + </para> + + <para> + + ã“ã‚Œã¯,ペンシル<literal>Fs = s*E-A</literal>ãŒæ£å‰‡ (ã™ãªã‚ã¡,å¯é€†)ã®å ´åˆã«é™ã‚Šå¯èƒ½ã§ã™. + + <literal>Ws</literal> ã®æ¬¡æ•°ã¯ãƒšãƒ³ã‚·ãƒ«ã®æ·»å—ã«ç‰ã—ããªã‚Šã¾ã™. + + </para> + + <para> + + <literal>Fs</literal>ã®ç„¡é™å¤§ã«ã‚る極ã¯<literal>alfa</literal>ã«é…ç½®ã•ã‚Œ, + + <literal>Ws</literal>ã®ã‚¼ãƒã¯<literal>alfa</literal>ã«é…ç½®ã•ã‚Œã¾ã™. + + </para> + + <para> + + <literal>(s*E-A)^-1 = (s*E1-A1)^-1 * W(s) = (W(s)*(s*E-A))^-1 *W(s)</literal> + + ã¨ãªã‚‹ã“ã¨ã«æ³¨æ„ã—ã¦ãã ã•ã„. + + </para> + + </refsection> + + <refsection> + + <title>例</title> + + <programlisting role="example"><![CDATA[ +F=randpencil([],[2],[1,2,3],[]); +F=rand(5,5)*F*rand(5,5); // 3ã¤ã®è©•ä¾¡ç‚¹ã‚’1,2,3ã«æœ‰ã™ã‚‹5 x 5 ã®æ£å‰‡ãƒšãƒ³ã‚·ãƒ« +[Ws,F1]=rowshuff(F,-1); +[E1,A1]=pen2ea(F1); +svd(E1) //E1 æ£å‰‡ +roots(det(Ws)) +clean(inv(F)-inv(F1)*Ws,1.d-7) + ]]></programlisting> + + </refsection> + + <refsection role="see also"> + + <title>å‚ç…§</title> + + <simplelist type="inline"> + + <member> + + <link linkend="pencan">pencan</link> + + </member> + + <member> + + <link linkend="glever">glever</link> + + </member> + + <member> + + <link linkend="penlaur">penlaur</link> + + </member> + + </simplelist> + + </refsection> + +</refentry> + diff --git a/modules/linear_algebra/help/ja_JP/pencil/sylv.xml b/modules/linear_algebra/help/ja_JP/pencil/sylv.xml new file mode 100755 index 000000000..185456e74 --- /dev/null +++ b/modules/linear_algebra/help/ja_JP/pencil/sylv.xml @@ -0,0 +1,132 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + * 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 + * + --> + +<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="sylv"> + + <refnamediv> + + <refname>sylv</refname> + + <refpurpose>シルベスタ方程å¼. </refpurpose> + + </refnamediv> + + <refsynopsisdiv> + + <title>呼ã³å‡ºã—æ‰‹é †</title> + + <synopsis>sylv(A, B, C, flag)</synopsis> + + </refsynopsisdiv> + + <refsection> + + <title>引数</title> + + <variablelist> + + <varlistentry> + + <term>A,B,C</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>X= sylv(A,B,C,'c')</literal> ã¯ä»¥ä¸‹ã® + + "連続時間" シルベスタ方程å¼ã®è§£<literal>X</literal>を計算ã—ã¾ã™, + + </para> + + <programlisting role=""><![CDATA[ +A*X+X*B=C + ]]></programlisting> + + <para> + + <literal>X=sylv(A,B,C,'d')</literal> ã¯ä»¥ä¸‹ã® + + "離散時間" シルベスタ方程å¼ã®è§£<literal>X</literal>を計算ã—ã¾ã™, + + </para> + + <programlisting role=""><![CDATA[ +A*X*B-X=C + ]]></programlisting> + + </refsection> + + <refsection> + + <title>例</title> + + <programlisting role="example"><![CDATA[ +A = rand(4, 4); C = rand(4, 3); B = rand(3, 3); +X = sylv(A, B, C, 'c'); +norm(A*X+X*B-C) +X = sylv(A, B, C, 'd'); +norm(A*X*B-X-C) + ]]></programlisting> + + </refsection> + + <refsection> + + <title>å‚考</title> + + <simplelist type="inline"> + + <member> + + <link linkend="lyap">lyap</link> + + </member> + + </simplelist> + + </refsection> + +</refentry> + diff --git a/modules/linear_algebra/help/ja_JP/proj.xml b/modules/linear_algebra/help/ja_JP/proj.xml new file mode 100755 index 000000000..6346f8afd --- /dev/null +++ b/modules/linear_algebra/help/ja_JP/proj.xml @@ -0,0 +1,129 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + * 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 + * + --> + +<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="proj"> + + <refnamediv> + + <refname>proj</refname> + + <refpurpose>投影</refpurpose> + + </refnamediv> + + <refsynopsisdiv> + + <title>呼ã³å‡ºã—æ‰‹é †</title> + + <synopsis>P = proj(X1,X2)</synopsis> + + </refsynopsisdiv> + + <refsection> + + <title>引数</title> + + <variablelist> + + <varlistentry> + + <term>X1,X2</term> + + <listitem> + + <para>åŒã˜åˆ—ã®æ•°ã‚’有ã™ã‚‹å®Ÿæ•°ã®è¡Œåˆ—</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>P</term> + + <listitem> + + <para> + + 実数ã®æŠ•å½±è¡Œåˆ— (<literal>P^2=P</literal>) + + </para> + + </listitem> + + </varlistentry> + + </variablelist> + + </refsection> + + <refsection> + + <title>説明</title> + + <para> + + <literal>P</literal> ã¯<literal>X1</literal>ã«å¹³è¡Œãª + + <literal>X2</literal>ã¸ã®æŠ•å½±ã§ã™. + + </para> + + </refsection> + + <refsection> + + <title>例</title> + + <programlisting role="example"><![CDATA[ +X1=rand(5,2);X2=rand(5,3); +P=proj(X1,X2); +norm(P^2-P,1) +trace(P) // This is dim(X2) +[Q,M]=fullrf(P); +svd([Q,X2]) // span(Q) = span(X2) + ]]></programlisting> + + </refsection> + + <refsection role="see also"> + + <title>å‚ç…§</title> + + <simplelist type="inline"> + + <member> + + <link linkend="projspec">projspec</link> + + </member> + + <member> + + <link linkend="orth">orth</link> + + </member> + + <member> + + <link linkend="fullrf">fullrf</link> + + </member> + + </simplelist> + + </refsection> + +</refentry> + diff --git a/modules/linear_algebra/help/ja_JP/state_space/CHAPTER b/modules/linear_algebra/help/ja_JP/state_space/CHAPTER new file mode 100755 index 000000000..a0b62cdee --- /dev/null +++ b/modules/linear_algebra/help/ja_JP/state_space/CHAPTER @@ -0,0 +1,2 @@ +title = State-Space Matrices + diff --git a/modules/linear_algebra/help/ja_JP/state_space/coff.xml b/modules/linear_algebra/help/ja_JP/state_space/coff.xml new file mode 100755 index 000000000..ebf5b06cc --- /dev/null +++ b/modules/linear_algebra/help/ja_JP/state_space/coff.xml @@ -0,0 +1,183 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + * 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 + * + --> + +<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="coff"> + + <refnamediv> + + <refname>coff</refname> + + <refpurpose>レゾルベント (ä½™å› å法) </refpurpose> + + </refnamediv> + + <refsynopsisdiv> + + <title>呼ã³å‡ºã—æ‰‹é †</title> + + <synopsis>[N,d]=coff(M [,var])</synopsis> + + </refsynopsisdiv> + + <refsection> + + <title>引数</title> + + <variablelist> + + <varlistentry> + + <term>M</term> + + <listitem> + + <para>æ£æ–¹å®Ÿæ•°è¡Œåˆ—</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>var</term> + + <listitem> + + <para>æ–‡å—列</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>N</term> + + <listitem> + + <para> + + å¤šé …å¼è¡Œåˆ— (<literal>M</literal>ã¨åŒã˜å¤§ãã•) + + </para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>d</term> + + <listitem> + + <para> + + å¤šé …å¼ (ç‰¹æ€§å¤šé …å¼ <literal>poly(A,'s')</literal>) + + </para> + + </listitem> + + </varlistentry> + + </variablelist> + + </refsection> + + <refsection> + + <title>説明</title> + + <para> + + <literal>coff</literal> ã¯, + + 実数行列 <literal>M</literal>ã«ã¤ã„㦠R=<literal>(s*eye()-M)^-1</literal> + + を計算ã—ã¾ã™. + + R 㯠<literal>N/d</literal>ã§æŒ‡å®šã•ã‚Œã¾ã™. + + </para> + + <para> + + <literal>N</literal> = å¤šé …å¼è¡Œåˆ—ã®åˆ†å. + + </para> + + <para> + + <literal>d</literal> = 共通分æ¯. + + </para> + + <para> + + <literal>var</literal> æ–‡å—列 (çœç•¥æ™‚ã¯'<literal>s</literal>') + + </para> + + </refsection> + + <refsection> + + <title>例</title> + + <programlisting role="example"><![CDATA[ +M=[1,2;0,3]; +[N,d]=coff(M) +N/d +inv(%s*eye()-M) + ]]></programlisting> + + </refsection> + + <refsection role="see also"> + + <title>å‚ç…§</title> + + <simplelist type="inline"> + + <member> + + <link linkend="coffg">coffg</link> + + </member> + + <member> + + <link linkend="ss2tf">ss2tf</link> + + </member> + + <member> + + <link linkend="nlev">nlev</link> + + </member> + + <member> + + <link linkend="poly">poly</link> + + </member> + + </simplelist> + + </refsection> + +</refentry> + diff --git a/modules/linear_algebra/help/ja_JP/state_space/nlev.xml b/modules/linear_algebra/help/ja_JP/state_space/nlev.xml new file mode 100755 index 000000000..996d6e566 --- /dev/null +++ b/modules/linear_algebra/help/ja_JP/state_space/nlev.xml @@ -0,0 +1,161 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + * 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 + * + --> + +<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="nlev"> + + <refnamediv> + + <refname>nlev</refname> + + <refpurpose>Leverrierã®ã‚¢ãƒ«ã‚´ãƒªã‚ºãƒ </refpurpose> + + </refnamediv> + + <refsynopsisdiv> + + <title>呼ã³å‡ºã—æ‰‹é †</title> + + <synopsis>[num,den]=nlev(A,z [,rmax])</synopsis> + + </refsynopsisdiv> + + <refsection> + + <title>引数</title> + + <variablelist> + + <varlistentry> + + <term>A</term> + + <listitem> + + <para>実数æ£æ–¹è¡Œåˆ—</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>z</term> + + <listitem> + + <para>æ–‡å—列</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>rmax</term> + + <listitem> + + <para> + + オプションã®ãƒ‘ラメータ (<literal>bdiag</literal>å‚ç…§) + + </para> + + </listitem> + + </varlistentry> + + </variablelist> + + </refsection> + + <refsection> + + <title>説明</title> + + <para> + + <literal>[num,den]=nlev(A,z [,rmax])</literal> ã¯, + + <literal>(z*eye()-A)^(-1)</literal>を計算ã—ã¾ã™. + + </para> + + <para> + + 計算ã®éš›ã«ã¯,Aã®ãƒ–ãƒãƒƒã‚¯å¯¾è§’化ã®å¾Œã« + + Leverrierアルゴリズムをå„ブãƒãƒƒã‚¯ã«é©ç”¨ã—ã¾ã™. + + </para> + + <para> + + ã“ã®ã‚¢ãƒ«ã‚´ãƒªã‚ºãƒ ã¯é€šå¸¸ã® Leverrierアルゴリズム+ + より優れã¦ã„ã¾ã™ãŒ,ã¾ã 完全ã§ã¯ã‚ã‚Šã¾ã›ã‚“! + + </para> + + </refsection> + + <refsection> + + <title>例</title> + + <programlisting role="example"><![CDATA[ +A=rand(3,3);x=poly(0,'x'); +[NUM,den]=nlev(A,'x') +clean(den-poly(A,'x')) +clean(NUM/den-inv(x*eye()-A)) + ]]></programlisting> + + </refsection> + + <refsection role="see also"> + + <title>å‚ç…§</title> + + <simplelist type="inline"> + + <member> + + <link linkend="coff">coff</link> + + </member> + + <member> + + <link linkend="coffg">coffg</link> + + </member> + + <member> + + <link linkend="glever">glever</link> + + </member> + + <member> + + <link linkend="ss2tf">ss2tf</link> + + </member> + + </simplelist> + + </refsection> + +</refentry> + diff --git a/modules/linear_algebra/help/ja_JP/subspaces/CHAPTER b/modules/linear_algebra/help/ja_JP/subspaces/CHAPTER new file mode 100755 index 000000000..d87d9ca5e --- /dev/null +++ b/modules/linear_algebra/help/ja_JP/subspaces/CHAPTER @@ -0,0 +1,3 @@ +title = Subspaces + + diff --git a/modules/linear_algebra/help/ja_JP/subspaces/spaninter.xml b/modules/linear_algebra/help/ja_JP/subspaces/spaninter.xml new file mode 100755 index 000000000..0ec8c806c --- /dev/null +++ b/modules/linear_algebra/help/ja_JP/subspaces/spaninter.xml @@ -0,0 +1,169 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + * 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 + * + --> + +<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="spaninter"> + + <refnamediv> + + <refname>spaninter</refname> + + <refpurpose>共通部分空間</refpurpose> + + </refnamediv> + + <refsynopsisdiv> + + <title>呼ã³å‡ºã—æ‰‹é †</title> + + <synopsis>[X,dim]=spaninter(A,B [,tol])</synopsis> + + </refsynopsisdiv> + + <refsection> + + <title>引数</title> + + <variablelist> + + <varlistentry> + + <term>A, B</term> + + <listitem> + + <para>åŒæ•°ã®è¡Œã‚’有ã™ã‚‹å®Ÿæ•°ã¾ãŸã¯è¤‡ç´ æ•°ã®è¡Œåˆ—</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>X</term> + + <listitem> + + <para>直交ã¾ãŸã¯ãƒ¦ãƒ‹ã‚¿ãƒªæ£æ–¹è¡Œåˆ—</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>dim</term> + + <listitem> + + <para> + + æ•´æ•°, range(<literal>A</literal>) ãŠã‚ˆã³ + + range(<literal>B</literal>)é–“ã®å…±é€šéƒ¨åˆ†ç©ºé–“ã®æ¬¡å…ƒ + + </para> + + </listitem> + + </varlistentry> + + </variablelist> + + </refsection> + + <refsection> + + <title>説明</title> + + <para> + + range(<literal>A</literal>) ãŠã‚ˆã³ range(<literal>B</literal>)ã® + + 共通部分を計算ã—ã¾ã™. + + </para> + + <para> + + <literal>X</literal>ã®æœ€åˆã®<literal>dim</literal>列ã¯,ã“ã®å…±é€šéƒ¨åˆ†ã«å±•é–‹ã—ã¾ã™. + + ã™ãªã‚ã¡,<literal>X(:,1:dim)</literal>ã¯, + + range(<literal>A</literal>) 㨠range(<literal>B</literal>)ã®é–“ã®ç›´äº¤åŸºåº•ã§ã™. + + </para> + + <para> + + <literal>X</literal>ã®åŸºåº•ã§ã¯, + + <literal>A</literal> ãŠã‚ˆã³ <literal>B</literal>ãŒãã‚Œãžã‚Œæ¬¡ã®ã‚ˆã†ã« + + 表ã•ã‚Œã¾ã™: + + </para> + + <para> + + <literal>X'*A</literal> ãŠã‚ˆã³ <literal>X'*B</literal>. + + </para> + + <para> + + <literal>tol</literal> ã¯é–¾å€¤ã§ã™ (<literal>sqrt(%eps)</literal> ãŒãƒ‡ãƒ•ã‚©ãƒ«ãƒˆå€¤ã§ã™). + + </para> + + </refsection> + + <refsection> + + <title>例</title> + + <programlisting role="example"><![CDATA[ +A=rand(5,3)*rand(3,4); // A 㯠5 x 4, rank=3ã§ã™. +B=[A(:,2),rand(5,1)]*rand(2,2); +[X,dim]=spaninter(A,B); +X1=X(:,1:dim); //共通部分 +svd(A),svd([X1,A]) // span(A) ã® X1 +svd(B),svd([B,X1]) // span(B) ã® X1 + ]]></programlisting> + + </refsection> + + <refsection role="see also"> + + <title>å‚ç…§</title> + + <simplelist type="inline"> + + <member> + + <link linkend="spanplus">spanplus</link> + + </member> + + <member> + + <link linkend="spantwo">spantwo</link> + + </member> + + </simplelist> + + </refsection> + +</refentry> + diff --git a/modules/linear_algebra/help/ja_JP/subspaces/spanplus.xml b/modules/linear_algebra/help/ja_JP/subspaces/spanplus.xml new file mode 100755 index 000000000..b8717b88e --- /dev/null +++ b/modules/linear_algebra/help/ja_JP/subspaces/spanplus.xml @@ -0,0 +1,184 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + * 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 + * + --> + +<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="spanplus"> + + <refnamediv> + + <refname>spanplus</refname> + + <refpurpose>部分空間ã®åˆè¨ˆ</refpurpose> + + </refnamediv> + + <refsynopsisdiv> + + <title>呼ã³å‡ºã—æ‰‹é †</title> + + <synopsis>[X,dim,dima]=spanplus(A,B[,tol])</synopsis> + + </refsynopsisdiv> + + <refsection> + + <title>引数</title> + + <variablelist> + + <varlistentry> + + <term>A, B</term> + + <listitem> + + <para>åŒæ•°ã®è¡Œã‚’有ã™ã‚‹å®Ÿæ•°ã¾ãŸã¯è¤‡ç´ æ•°ã®è¡Œåˆ—</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>X</term> + + <listitem> + + <para>直交ã¾ãŸã¯ãƒ¦ãƒ‹ã‚¿ãƒªæ£æ–¹è¡Œåˆ—</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>dim, dima</term> + + <listitem> + + <para>æ•´æ•°, 部分空間ã®æ¬¡å…ƒ</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>tol</term> + + <listitem> + + <para>éžè² ã®å®Ÿæ•°</para> + + </listitem> + + </varlistentry> + + </variablelist> + + </refsection> + + <refsection> + + <title>説明</title> + + <para> + + 以下ã®æ§˜ãªåŸºåº•Xを計算ã—ã¾ã™: + + </para> + + <para> + + <literal>X</literal>ã®æœ€åˆã®<literal>dima</literal>列㌠+ + range(<literal>A</literal>)ã«å±•é–‹ã—, + + ã“れ以é™ã®(<literal>dim-dima</literal>)列ãŒ, + + <literal>A+B</literal> ã®<literal>A</literal>ã«é–¢ã™ã‚‹åŸºåº•ã‚’構æˆ. + + </para> + + <para> + + <literal>X</literal>ã®æœ€åˆã®<literal>dim</literal>列ã¯, + + <literal>A+B</literal>ã®åŸºåº•ã‚’構æˆã—ã¾ã™. + + </para> + + <para> + + <literal>[A,B]</literal>ã«é–¢ã™ã‚‹ä»¥ä¸‹ã®æ£æº–å½¢å¼ãŒå®šç¾©ã•ã‚Œã¾ã™: + + </para> + + <programlisting role=""><![CDATA[ + [*,*] (dima è¡Œ) +X'*[A,B]=[0,*] (dim-dima è¡Œ) + [0,0] + ]]></programlisting> + + <para> + + <literal>tol</literal> ã¯ã‚ªãƒ—ションã®å¼•æ•°ã§ã™(関数ã®ã‚³ãƒ¼ãƒ‰ã‚’å‚ç…§). + + </para> + + </refsection> + + <refsection> + + <title>例</title> + + <programlisting role="example"><![CDATA[ +A=rand(6,2)*rand(2,5); // rank(A)=2 +B=[A(:,1),rand(6,2)]*rand(3,3); //独立ãªãƒ™ã‚¯ãƒˆãƒ«2ã¤ã‚’è¿½åŠ +[X,dim,dimA]=spanplus(A,B); +dimA +dim + ]]></programlisting> + + </refsection> + + <refsection role="see also"> + + <title>å‚ç…§</title> + + <simplelist type="inline"> + + <member> + + <link linkend="spaninter">spaninter</link> + + </member> + + <member> + + <link linkend="im_inv">im_inv</link> + + </member> + + <member> + + <link linkend="spantwo">spantwo</link> + + </member> + + </simplelist> + + </refsection> + +</refentry> + diff --git a/modules/linear_algebra/help/ja_JP/subspaces/spantwo.xml b/modules/linear_algebra/help/ja_JP/subspaces/spantwo.xml new file mode 100755 index 000000000..cca713c63 --- /dev/null +++ b/modules/linear_algebra/help/ja_JP/subspaces/spantwo.xml @@ -0,0 +1,202 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + * 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 + * + --> + +<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="spantwo"> + + <refnamediv> + + <refname>spantwo</refname> + + <refpurpose>部分空間ã®åˆè¨ˆãŠã‚ˆã³å…±é€šéƒ¨åˆ†</refpurpose> + + </refnamediv> + + <refsynopsisdiv> + + <title>呼ã³å‡ºã—æ‰‹é †</title> + + <synopsis>[Xp,dima,dimb,dim]=spantwo(A,B, [tol])</synopsis> + + </refsynopsisdiv> + + <refsection> + + <title>引数</title> + + <variablelist> + + <varlistentry> + + <term>A, B</term> + + <listitem> + + <para>åŒæ•°ã®è¡Œã‚’有ã™ã‚‹å®Ÿæ•°ã¾ãŸã¯è¤‡ç´ æ•°ã®è¡Œåˆ—</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>Xp</term> + + <listitem> + + <para>æ£æ–¹æ£å‰‡è¡Œåˆ—</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>dima, dimb, dim</term> + + <listitem> + + <para>æ•´æ•°, 部分空間ã®æ¬¡å…ƒ</para> + + </listitem> + + </varlistentry> + + <varlistentry> + + <term>tol</term> + + <listitem> + + <para>éžè² ã®å®Ÿæ•°</para> + + </listitem> + + </varlistentry> + + </variablelist> + + </refsection> + + <refsection> + + <title>説明</title> + + <para> + + åŒã˜è¡Œæ•°ã‚’有ã™ã‚‹è¡Œåˆ— <literal>A</literal> ãŠã‚ˆã³ <literal>B</literal> を指定ã™ã‚‹ã¨, + + 以下ã®ã‚ˆã†ãªæ£æ–¹è¡Œåˆ—<literal>Xp</literal> (æ£å‰‡ã ãŒç›´äº¤ã§ã‚ã‚‹å¿…è¦ã¯ã‚ã‚Šã¾ã›ã‚“) + + ã‚’è¿”ã—ã¾ã™: + + </para> + + <programlisting role=""><![CDATA[ + [A1, 0] (dim-dimb è¡Œ) +Xp*[A,B]=[A2,B2] (dima+dimb-dim 々) + [0, B3] (dim-dima æ¥) + [0 , 0] + ]]></programlisting> + + <para> + + <literal>inv(Xp)</literal>ã®æœ€åˆã®<literal>dima</literal>列㯠+ + range(<literal>A</literal>)ã«å±•é–‹ã•ã‚Œã¾ã™. + + </para> + + <para> + + <literal>inv(Xp)</literal>ã® + + 列 <literal>dim-dimb+1</literal> ã‹ã‚‰ <literal>dima</literal> 㯠+ + range(A) 㨠range(B)ã®å…±é€šéƒ¨åˆ†ã«å±•é–‹ã•ã‚Œã¾ã™. + + </para> + + <para> + + <literal>inv(Xp)</literal>ã®æœ€åˆã®<literal>dim</literal>列ã¯, + + range(<literal>A</literal>)+range(<literal>B</literal>)ã«å±•é–‹ã•ã‚Œã¾ã™. + + </para> + + <para> + + <literal>inv(Xp)</literal>ã®åˆ—<literal>dim-dimb+1</literal>ã‹ã‚‰<literal>dim</literal> + + ã¯range(<literal>B</literal>)ã«å±•é–‹ã•ã‚Œã¾ã™. + + </para> + + <para> + + 行列 <literal>[A1;A2]</literal> ã¯è¡Œãƒ•ãƒ«ãƒ©ãƒ³ã‚¯(=rank(A))ã§ã™. + + 行列<literal>[B2;B3]</literal>ã¯è¡Œãƒ•ãƒ«ãƒ©ãƒ³ã‚¯(=rank(B))ã§ã™. + + 行列<literal>[A2,B2]</literal>ã¯è¡Œãƒ•ãƒ«ãƒ©ãƒ³ã‚¯(=rank(A inter B))ã§ã™. + + è¡Œ<literal>[A1,0;A2,B2;0,B3]</literal> ã¯è¡Œãƒ•ãƒ«ãƒ©ãƒ³ã‚¯(=rank(A+B))ã§ã™. + + </para> + + </refsection> + + <refsection> + + <title>例</title> + + <programlisting role="example"><![CDATA[ +A=[1,0,0,4; + 5,6,7,8; + 0,0,11,12; + 0,0,0,16]; +B=[1,2,0,0]';C=[4,0,0,1]; +Sl=ss2ss(syslin('c',A,B,C),rand(A)); +[no,X]=contr(Sl('A'),Sl('B'));CO=X(:,1:no); //å¯åˆ¶å¾¡éƒ¨ +[uo,Y]=unobs(Sl('A'),Sl('C'));UO=Y(:,1:uo); //ä¸å¯è¦³æ¸¬éƒ¨ +[Xp,dimc,dimu,dim]=spantwo(CO,UO); //カルマン分解 +Slcan=ss2ss(Sl,inv(Xp)); + ]]></programlisting> + + </refsection> + + <refsection role="see also"> + + <title>å‚ç…§</title> + + <simplelist type="inline"> + + <member> + + <link linkend="spanplus">spanplus</link> + + </member> + + <member> + + <link linkend="spaninter">spaninter</link> + + </member> + + </simplelist> + + </refsection> + +</refentry> + diff --git a/modules/linear_algebra/help/pt_BR/addchapter.sce b/modules/linear_algebra/help/pt_BR/addchapter.sce new file mode 100755 index 000000000..99f821fe3 --- /dev/null +++ b/modules/linear_algebra/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("Linear Algebra",SCI+"/modules/linear_algebra/help/pt_BR",%T); + diff --git a/modules/linear_algebra/help/pt_BR/eigen/CHAPTER b/modules/linear_algebra/help/pt_BR/eigen/CHAPTER new file mode 100755 index 000000000..88f8bc42b --- /dev/null +++ b/modules/linear_algebra/help/pt_BR/eigen/CHAPTER @@ -0,0 +1,2 @@ +title = Eigenvalue and Singular Value + diff --git a/modules/linear_algebra/help/pt_BR/eigen/balanc.xml b/modules/linear_algebra/help/pt_BR/eigen/balanc.xml new file mode 100755 index 000000000..670af0f56 --- /dev/null +++ b/modules/linear_algebra/help/pt_BR/eigen/balanc.xml @@ -0,0 +1,109 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * 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 + * + --> +<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="balanc" xml:lang="en"> + <refnamediv> + <refname>balanc</refname> + <refpurpose>balanceamento de uma matriz ou de um feixe de + matrizes + </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title> Seqüência de Chamamento </title> + <synopsis>[Ab,X]=balanc(A) + [Eb,Ab,X,Y]=balanc(E,A) + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>A:</term> + <listitem> + <para>matriz quadrada de reais </para> + </listitem> + </varlistentry> + <varlistentry> + <term>X:</term> + <listitem> + <para>matriz quadrada de reais invertível</para> + </listitem> + </varlistentry> + <varlistentry> + <term>E:</term> + <listitem> + <para>matriz quadrada de reais (com mesma dimensão que + <literal>A</literal>) + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Y:</term> + <listitem> + <para>uma matriz quadrada de reais invertível</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para>Balanceia uma matriz quadrada para melhorar seu número de + condicionamento. + </para> + <para> + <literal>[Ab,X] = balanc(A)</literal> acha uma transformação de + similaridade <literal>X</literal> tal que + </para> + <para> + <literal>Ab = inv(X)*A*X</literal> tem aproximadamente normas iguais + de linha e de coluna. + </para> + <para>Para feixes de matrizes, o balancemento é feito para melhorar o + problema do autovalor generalizado. + </para> + <para> + <literal>[Eb,Ab,X,Y] = balanc(E,A)</literal> retorna transformações + esquerda e direita <literal>X</literal> e <literal>Y</literal> tais que + <literal>Eb=inv(X)*E*Y, Ab=inv(X)*A*Y</literal> + </para> + </refsection> + <refsection> + <title>Observação</title> + <para> + O balanceamento é feito nas funções <literal>bdiag</literal> e + <literal>spec</literal>. + </para> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +A=[1/2^10,1/2^10;2^10,2^10]; +[Ab,X]=balanc(A); +norm(A(1,:))/norm(A(2,:)) +norm(Ab(1,:))/norm(Ab(2,:)) + ]]></programlisting> + </refsection> + <refsection> + <title> Ver Também</title> + <simplelist type="inline"> + <member> + <link linkend="bdiag">bdiag</link> + </member> + <member> + <link linkend="spec">spec</link> + </member> + <member> + <link linkend="schur">schur</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/pt_BR/eigen/bdiag.xml b/modules/linear_algebra/help/pt_BR/eigen/bdiag.xml new file mode 100755 index 000000000..94f586ba1 --- /dev/null +++ b/modules/linear_algebra/help/pt_BR/eigen/bdiag.xml @@ -0,0 +1,108 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * 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 + * + --> +<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="bdiag" xml:lang="en"> + <refnamediv> + <refname>bdiag</refname> + <refpurpose>diagonalização em blocos, autovetores + generalizados + </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title> Seqüência de Chamamento </title> + <synopsis>[Ab [,X [,bs]]]=bdiag(A [,rmax])</synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>A</term> + <listitem> + <para>matriz quadrada de reais ou complexos </para> + </listitem> + </varlistentry> + <varlistentry> + <term>rmax</term> + <listitem> + <para>número real</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Ab</term> + <listitem> + <para>matriz quadrada de reais ou complexos</para> + </listitem> + </varlistentry> + <varlistentry> + <term>X</term> + <listitem> + <para>matriz de reais ou complexos não-singular</para> + </listitem> + </varlistentry> + <varlistentry> + <term>bs</term> + <listitem> + <para>vetor de inteiros</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <programlisting role=""><![CDATA[ +[Ab [,X [,bs]]]=bdiag(A [,rmax]) + ]]></programlisting> + <para> + realiza a diagonalização em blocos da matriz <literal>A</literal>. + bs fornece a estrutura dos blocos (respectivos tamanhos dos blocos). + <literal>X</literal> é a matriz mudança de base i.e <literal>Ab = + inv(X)*A*X + </literal> + édiagonal em blocos. + </para> + <para> + <literal>rmax</literal> controla o condicionamento de + <literal>X</literal>; o valor padrão é a norma L1 de + <literal>A</literal>. + </para> + <para>Para encontrar a forma diagonal (se existir) escolha um valor + suficientemente grande para <literal>rmax</literal> + (<literal>rmax=1/%eps</literal> , por exemplo). Genericamente, (para uma + matriz A de reais aleatória) os blocos são (1x1) e (2x2) e + <literal>X</literal> é a matriz de autovetores. + </para> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +//No caso de reais: blocos 1x1 e 2x2 +a=rand(5,5);[ab,x,bs]=bdiag(a);ab + +//No caso de complexos: blocos 1x1 complexos +[ab,x,bs]=bdiag(a+%i*0);ab + ]]></programlisting> + </refsection> + <refsection> + <title> Ver Também </title> + <simplelist type="inline"> + <member> + <link linkend="schur">schur</link> + </member> + <member> + <link linkend="sylv">sylv</link> + </member> + <member> + <link linkend="spec">spec</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/pt_BR/eigen/gschur.xml b/modules/linear_algebra/help/pt_BR/eigen/gschur.xml new file mode 100755 index 000000000..2b3515dad --- /dev/null +++ b/modules/linear_algebra/help/pt_BR/eigen/gschur.xml @@ -0,0 +1,97 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * 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 + * + --> +<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="gschur" xml:lang="en"> + <refnamediv> + <refname>gschur</refname> + <refpurpose>forma de Schur generalizada (função obsoleta) </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title> Seqüência de Chamamento</title> + <synopsis>[As,Es]=gschur(A,E) + [As,Es,Q,Z]=gschur(A,E) + [As,Es,Z,dim] = gschur(A,E,flag) + [As,Es,Z,dim]= gschur(A,E,extern) + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Descrição</title> + <para>Esta função é obsoleta e agora está inclusa na função + <literal>schur</literal> function. Na maior parte dos casos, a função + <literal>gschur</literal> irá ainda trabalhar como antes, mas será + removida em um lançamento futuro do Scilab. + </para> + <para>As três sintaxes podem ser substituídas por</para> + <programlisting role=""><![CDATA[ +[As,Es]=schur(A,E) +[As,Es,Q,Z]=schur(A,E);Q=Q' //NOTE A TRANSPOSIÇÃO AQUI +[As,Es,Z,dim] = schur(A,E,flag) + ]]></programlisting> + <para>A última sintaxe requer algumas adaptações a mais: </para> + <variablelist> + <varlistentry> + <term>if</term> + <listitem> + <para>é uma função do Scilab, a nova seqüência de chamamento deve + ser <literal>[As,Es,Z,dim]= schur(A,E,Nextern)</literal> com Nextern + definido como segue: + </para> + <programlisting role=""><![CDATA[ +function t=Nextern(R) +if R(2)==0 then + t=extern([1,R(1),R(3)])==1 +else + c=(R(1)+%i*R(2))/R(3) + t=extern([2,real(c+c'),real(c*c')])==1 +end +endfunction + ]]></programlisting> + </listitem> + </varlistentry> + <varlistentry> + <term>if</term> + <listitem> + <para>é o nome de uma função externa codificada em FORTRAN ou C, a + nova seqüência de chamamento deve ser <literal>[As,Es,Z,dim]= + schur(A,E,'nextern') + </literal> + com nextern definido como + segue: + </para> + </listitem> + </varlistentry> + </variablelist> + <programlisting role=""><![CDATA[ +logical function nextern(ar,ai,beta) +double precision ar,ai,beta +integer r,extern +if (ai.eq.0.0d0) then + r=extern(1,ar,beta,0.0d0,0.0d0) +else + r=extern(2,0.0d0,0.0d0,2.0d0*ar,ar*ar+ai*ai) +endif +nextern=r.eq.1 +end + ]]></programlisting> + </refsection> + <refsection> + <title> Ver Também</title> + <simplelist type="inline"> + <member> + <link linkend="external">external</link> + </member> + <member> + <link linkend="schur">schur</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/pt_BR/eigen/gspec.xml b/modules/linear_algebra/help/pt_BR/eigen/gspec.xml new file mode 100755 index 000000000..ae0f5b92f --- /dev/null +++ b/modules/linear_algebra/help/pt_BR/eigen/gspec.xml @@ -0,0 +1,45 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * 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 + * + --> +<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="gspec" xml:lang="en"> + <refnamediv> + <refname>gspec</refname> + <refpurpose>autovalores de feixe de matrizes (função + obsoleta) + </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Seqüência de Chamamento</title> + <synopsis>[al,be]=gspec(A,E) + [al,be,Z]=gspec(A,E) + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Descrição</title> + <para> + Esta função está agora inclusa na função <literal>spec</literal> . A + seqüência de chamamento deve ser substituida por + </para> + <programlisting role=""><![CDATA[ +[al,be]=spec(A,E) +[al,be,Z]=spec(A,E) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Ver Também</title> + <simplelist type="inline"> + <member> + <link linkend="spec">spec</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/pt_BR/eigen/hess.xml b/modules/linear_algebra/help/pt_BR/eigen/hess.xml new file mode 100755 index 000000000..b9daf0150 --- /dev/null +++ b/modules/linear_algebra/help/pt_BR/eigen/hess.xml @@ -0,0 +1,91 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * 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 + * + --> +<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="hess" xml:lang="en"> + <refnamediv> + <refname>hess</refname> + <refpurpose>forma de Hessenberg</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title> Seqüência de Chamamento </title> + <synopsis>H = hess(A) + [U,H] = hess(A) + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>A</term> + <listitem> + <para>matriz quadrada de reais ou complexos </para> + </listitem> + </varlistentry> + <varlistentry> + <term>H</term> + <listitem> + <para>matriz quadrada de reais ou complexos </para> + </listitem> + </varlistentry> + <varlistentry> + <term>U</term> + <listitem> + <para>matriz quadrada ortogonal ou unitária</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para> + <literal>[U,H] = hess(A)</literal> produz uma matriz unitária + <literal>U</literal> e uma matriz de Hessenberg <literal>H</literal> tais + que <literal>A = U*H*U'</literal> e <literal>U'*U</literal> = Identidade. + Por si só, <literal>hess(A) </literal>retorna <literal>H</literal>. + </para> + <para>A forma de Hessenberg de uma matriz é zero abaixo da primeira + subdiagonal. Se a matriz é simetrica ou Hermitiana, a forma é + tridiagonal. + </para> + </refsection> + <refsection> + <title>Referências</title> + <para>A função hess é baseada nas rotinas Lapack DGEHRD, DORGHR para + matrizes de e ZGEHRD, ZORGHR para matrizes de complexos. + </para> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +A=rand(3,3);[U,H]=hess(A); +and( abs(U*H*U'-A)<1.d-10 ) + ]]></programlisting> + </refsection> + <refsection> + <title> Ver Também </title> + <simplelist type="inline"> + <member> + <link linkend="qr">qr</link> + </member> + <member> + <link linkend="contr">contr</link> + </member> + <member> + <link linkend="schur">schur</link> + </member> + </simplelist> + </refsection> + <refsection> + <title/> + <para/> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/pt_BR/eigen/pbig.xml b/modules/linear_algebra/help/pt_BR/eigen/pbig.xml new file mode 100755 index 000000000..15b493fac --- /dev/null +++ b/modules/linear_algebra/help/pt_BR/eigen/pbig.xml @@ -0,0 +1,125 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * 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 + * + --> +<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="pbig" xml:lang="en"> + <refnamediv> + <refname>pbig</refname> + <refpurpose>autoprojeção</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title> Seqüência de Chamamento </title> + <synopsis>[Q,M]=pbig(A,thres,flag)</synopsis> + </refsynopsisdiv> + <refsection> + <title> Parâmetros </title> + <variablelist> + <varlistentry> + <term>A</term> + <listitem> + <para>matriz quadrada de reais </para> + </listitem> + </varlistentry> + <varlistentry> + <term>thres</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> + <varlistentry> + <term>Q,M</term> + <listitem> + <para>matrizes de reais</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para>Projeção sobre um auto-subespaço associado aos autovalores de parte + real>= <literal>thres</literal> (<literal>flag='c'</literal>) ou com + magnitude >= <literal>thres</literal> + (<literal>flag='d'</literal>). + </para> + <para> + A projeção é definida por <literal>Q*M</literal>, + <literal>Q</literal> tem posto-coluna cheio, <literal>M</literal> tem + posto-linha cheio e <literal>M*Q=eye</literal>. + </para> + <para> + Se <literal>flag='c'</literal>, os autovalores de + <literal>M*A*Q</literal> = autovalores de <literal>A</literal> com parte + real >= <literal>thres</literal>. + </para> + <para> + Se <literal>flag='d'</literal>, os autovalores de + <literal>M*A*Q</literal> = autovalores de <literal>A</literal> com + magnitude >= <literal>thres</literal>. + </para> + <para> + Se <literal>flag='c'</literal> e se <literal>[Q1,M1]</literal> = + fatoração em posto cheio (<literal>fullrf</literal>) de + <literal>eye()-Q*M</literal> então os autovalores de + <literal>M1*A*Q1</literal> = autovalores de <literal>A</literal> com parte + real < <literal>thres</literal>. + </para> + <para> + Se <literal>flag='d'</literal> e se <literal>[Q1,M1]</literal> + =fatoração em posto cheio (<literal>fullrf</literal>) de + <literal>eye()-Q*M</literal> então os autovalores de + <literal>M1*A*Q1</literal> = autovalores de <literal>A</literal> com + magnitude < <literal>thres</literal>. + </para> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +A=diag([1,2,3]);X=rand(A);A=inv(X)*A*X; +[Q,M]=pbig(A,1.5,'d'); +spec(M*A*Q) +[Q1,M1]=fullrf(eye()-Q*M); +spec(M1*A*Q1) + ]]></programlisting> + </refsection> + <refsection> + <title> Ver Também </title> + <simplelist type="inline"> + <member> + <link linkend="psmall">psmall</link> + </member> + <member> + <link linkend="projspec">projspec</link> + </member> + <member> + <link linkend="fullrf">fullrf</link> + </member> + <member> + <link linkend="schur">schur</link> + </member> + </simplelist> + </refsection> + <refsection> + <title> Função Usada </title> + <para> + <literal>pbig</literal> é baseada na forma ordenada de Schur (função + do Scilab <literal>schur</literal>). + </para> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/pt_BR/eigen/projspec.xml b/modules/linear_algebra/help/pt_BR/eigen/projspec.xml new file mode 100755 index 000000000..a24fac61f --- /dev/null +++ b/modules/linear_algebra/help/pt_BR/eigen/projspec.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) 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="projspec" xml:lang="en"> + <refnamediv> + <refname>projspec</refname> + <refpurpose>operadores espectrais</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title> Seqüência de Chamamento</title> + <synopsis>[S,P,D,i]=projspec(A)</synopsis> + </refsynopsisdiv> + <refsection> + <title> Parâmetros </title> + <variablelist> + <varlistentry> + <term>A</term> + <listitem> + <para>matriz quadrada</para> + </listitem> + </varlistentry> + <varlistentry> + <term>S, P, D</term> + <listitem> + <para>matrizes quadradas </para> + </listitem> + </varlistentry> + <varlistentry> + <term>i</term> + <listitem> + <para>inteiro (índice do autovalor zero de + <literal>A</literal>). + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para> + Características espectrais de <literal>A</literal> em 0. + </para> + <para> + <literal>S</literal> = resolvente reduzido em 0 + (<literal>S</literal> = -Inverso_de_Drazin(<literal>A</literal>)). + </para> + <para> + <literal>P</literal> = projeção espectral em 0. + </para> + <para> + <literal>D</literal> = operador nilpotente em 0. + </para> + <para> + <literal>index</literal> = índice do autovalor 0. + </para> + <para> + Tem-se <literal>(s*eye()-A)^(-1) = D^(i-1)/s^i +... + D/s^2 + P/s - + S - s*S^2 -... + </literal> + ao redor da singularidade s=0. + </para> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +deff('j=jdrn(n)','j=zeros(n,n);for k=1:n-1;j(k,k+1)=1;end') +A=sysdiag(jdrn(3),jdrn(2),rand(2,2));X=rand(7,7); +A=X*A*inv(X); +[S,P,D,index]=projspec(A); +index //tamanho do bloco J +trace(P) //soma das dimensões dos blocos J +A*S-(eye()-P) +norm(D^index,1) + ]]></programlisting> + </refsection> + <refsection> + <title> Ver Também</title> + <simplelist type="inline"> + <member> + <link linkend="coff">coff</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/pt_BR/eigen/psmall.xml b/modules/linear_algebra/help/pt_BR/eigen/psmall.xml new file mode 100755 index 000000000..e187285bc --- /dev/null +++ b/modules/linear_algebra/help/pt_BR/eigen/psmall.xml @@ -0,0 +1,120 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * 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 + * + --> +<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="psmall" xml:lang="en"> + <refnamediv> + <refname>psmall</refname> + <refpurpose>projeção espectral</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Calling Sequence</title> + <synopsis>[Q,M]=psmall(A,thres,flag)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Parameters</title> + <variablelist> + <varlistentry> + <term>A</term> + <listitem> + <para>matriz quadrada de reais </para> + </listitem> + </varlistentry> + <varlistentry> + <term>thres</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> + <varlistentry> + <term>Q,M</term> + <listitem> + <para>matrizes de reais</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Description</title> + <para>Projeção sobre auto-subespaço associado com autovalores com parte + real < <literal>thres</literal> (<literal>flag='c'</literal>) ou com + módulo < <literal>thres</literal> (<literal>flag='d'</literal>). + </para> + <para> + A projeção é definda por <literal>Q*M</literal>, + <literal>Q</literal> é de posto-coluna cheio, <literal>M</literal> é de + posto-linha cheio e <literal>M*Q=eye</literal>. + </para> + <para> + Se <literal>flag='c'</literal>, os autovalores de + <literal>M*A*Q</literal> = autovalores de <literal>A</literal> com parte + real < <literal>thres</literal>. + </para> + <para> + Se <literal>flag='d'</literal>, os autovalores de + <literal>M*A*Q</literal> = autovalores de <literal>A</literal> com + magnitude < <literal>thres</literal>. + </para> + <para> + Se <literal>flag='c'</literal> e se <literal>[Q1,M1]</literal> = + fatoração em posto cheio (<literal>fullrf</literal>) de + <literal>eye()-Q*M</literal>então os autovalores de + <literal>M1*A*Q1</literal> = autovalores de<literal> A</literal> com parte + real >= <literal>thres</literal>. + </para> + <para> + Se <literal>flag='d'</literal> e se <literal>[Q1,M1]</literal> = + fatoração em posto cheio (<literal>fullrf</literal>) de + <literal>eye()-Q*M</literal> então os autovalores de + <literal>M1*A*Q1</literal> = autovalores de <literal>A</literal> com + magnitude >= <literal>thres</literal>. + </para> + </refsection> + <refsection> + <title>Examples</title> + <programlisting role="example"><![CDATA[ +A=diag([1,2,3]);X=rand(A);A=inv(X)*A*X; +[Q,M]=psmall(A,2.5,'d'); +spec(M*A*Q) +[Q1,M1]=fullrf(eye()-Q*M); +spec(M1*A*Q1) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="pbig">pbig</link> + </member> + <member> + <link linkend="proj">proj</link> + </member> + <member> + <link linkend="projspec">projspec</link> + </member> + </simplelist> + </refsection> + <refsection> + <title>Used Functions</title> + <para>Esta função é baseada na forma de Schur ordenada (Função do + Scilab<literal> schur</literal>). + </para> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/pt_BR/eigen/schur.xml b/modules/linear_algebra/help/pt_BR/eigen/schur.xml new file mode 100755 index 000000000..f89dd7791 --- /dev/null +++ b/modules/linear_algebra/help/pt_BR/eigen/schur.xml @@ -0,0 +1,411 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * 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 + * + --> +<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="schur" xml:lang="en"> + <refnamediv> + <refname>schur</refname> + <refpurpose>decomposição (ordenada) de Schur de matrizes e + feixes + </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title> Seqüência de Chamamento </title> + <synopsis>[U,T] = schur(A) + [U,dim [,T] ]=schur(A,flag) + [U,dim [,T] ]=schur(A,extern1) + + [As,Es [,Q,Z]]=schur(A,E) + [As,Es [,Q],Z,dim] = schur(A,E,flag) + [Z,dim] = schur(A,E,flag) + [As,Es [,Q],Z,dim]= schur(A,E,extern2) + [Z,dim]= schur(A,E,extern2) + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>A</term> + <listitem> + <para> matriz quadrada de reais ou complexos </para> + </listitem> + </varlistentry> + <varlistentry> + <term>E</term> + <listitem> + <para>matriz quadrada de reais ou complexos com as mesmas dimensões + de<literal> A</literal>. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>flag</term> + <listitem> + <para> + string (<literal>'c'</literal> + ou<literal>'d'</literal>) + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>extern1</term> + <listitem> + <para>uma ``external'' (função externa), veja abaixo</para> + </listitem> + </varlistentry> + <varlistentry> + <term>extern2</term> + <listitem> + <para>uma ``external'', veja abaixo </para> + </listitem> + </varlistentry> + <varlistentry> + <term>U</term> + <listitem> + <para>matriz quadrada ortogonal ou unitária </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Q</term> + <listitem> + <para>matriz quadrada ortogonal ou unitária </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Z</term> + <listitem> + <para>matriz quadrada ortogonal ou unitária </para> + </listitem> + </varlistentry> + <varlistentry> + <term>T</term> + <listitem> + <para>matriz quadrada triangular superior ou quasi-triangular + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>As</term> + <listitem> + <para>matriz quadrada triangular superior ou quasi-triangular + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Es</term> + <listitem> + <para>matriz quadrada triangular superior </para> + </listitem> + </varlistentry> + <varlistentry> + <term>dim</term> + <listitem> + <para>inteiro</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para>Formas de Schur, formas ordenadas de Schur de matrizes e feixes + </para> + <variablelist> + <varlistentry> + <term>FORMA DE SCHUR MATRICIAL</term> + <listitem> + <variablelist> + <varlistentry> + <term>Forma de Schur usual:</term> + <listitem> + <para> + <literal>[U,T] = schur(A)</literal> produz uma matriz de + Schur <literal>T</literal> e uma matriz unitária + <literal>U</literal> tais que <literal>A = U*T*U'</literal> e + <literal>U'*U = eye(U)</literal>. Por si mesmo, + schur(<literal>A</literal>) retorna <literal>T</literal>. Se + <literal>A</literal> é de complexos, a Forma de Schur Complexa + é retornada na matriz <literal>T</literal>. A Forma de Schur + Complexa é triangular superior com os autovalores de + <literal>A</literal> na diagonal. Se <literal>A</literal> é de + reais, a Forma de Schur Real é retornada. A Forma de Schur + Real tem autovalores reais na diagonal e os autovalores + complexos em blocos 2-por-2 na diagonal. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Formas de Schur ordenadas</term> + <listitem> + <para> + <literal>[U,dim]=schur(A,'c')</literal> rretorna uma + matriz unitária <literal>U</literal> que transforma + <literal>A</literal> em uma forma de Schur. Ainda, as + primeiras dim colunas de <literal>U</literal> formam uma base + para o autoespaço de <literal>A</literal> associado aos + autovalores com partes reais negativas (autoespaço de "tempo + contínuo" estável). + </para> + <para> + <literal>[U,dim]=schur(A,'d')</literal> retorna uma + matriz unitária <literal>U</literal> que transforma + <literal>A</literal> em uma forma de Schur. Ainda, as + primeiras <literal>dim</literal> colunas de + <literal>U</literal> geram uma base do autoespaço de + <literal>A</literal> associado aos autovalores de magnitude + menor que 1 (autoespaço de "tempo discreto" estável). + </para> + <para> + <literal>[U,dim]=schur(A,extern1)</literal> retorna uma + matriz unitária <literal>U</literal> que transforma + <literal>A</literal> em uma forma de Schur. Ainda, as + <literal>dim</literal> primeiras colunas de + <literal>U</literal> geram uma base para o autoespaço de + <literal>A</literal> associado aos autovalores que são + selecionados pela "external" <literal>extern1</literal> (veja + "external" para detalhes). Esta "external" pode ser descrita + por uma função do Scilab ou por um "procedure" de C ou + FORTRAN: + </para> + <variablelist> + <varlistentry> + <term>Uma Função do Scilab</term> + <listitem> + <para> + Se <literal>extern1</literal> é descrita por uma + função do Scilab, deve ter a seguinte seqüência de + chamamento: <literal>s=extern1(Ev)</literal>, onde + <literal>Ev</literal> é um autovalor e + <literal>s</literal> um booleano. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Um "Procedure" C ou FORTRAN</term> + <listitem> + <para> + Se <literal>extern1</literal> é descrita por uma + função de C ou FORTRAN, deve ter a seguinte seqüência de + chamamento: <literal>int extern1(double *EvR, double + *EvI) + </literal> + onde <literal>EvR</literal> e + <literal>EvI</literal> são partes real e complexa de + autovalor. Valor verdadeiro ou diferente de zero + retornado significa autovalor selecionado. + </para> + </listitem> + </varlistentry> + </variablelist> + </listitem> + </varlistentry> + </variablelist> + </listitem> + </varlistentry> + <varlistentry> + <term>FORMAS DE SCHUR DE FEIXES</term> + <listitem> + <variablelist> + <varlistentry> + <term>Forma de Schur de Feixe Usual</term> + <listitem> + <para> + <literal>[As,Es] = schur(A,E)</literal> produz uma + matriz <literal>As</literal> quasi-triangular e uma matriz + triangular <literal>Es</literal> que são a forma generalizada + de Schur do par <literal>A, E</literal>. + </para> + <para> + <literal>[As,Es,Q,Z] = schur(A,E)</literal> retorna, + ainda, duas matrizes unitárias <literal>Q</literal> e + <literal>Z</literal> tais que <literal>As=Q'*A*Z</literal> e + <literal>Es=Q'*E*Z</literal>. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Formas de Schur Ordenadas:</term> + <listitem> + <para> + <literal>[As,Es,Z,dim] = schur(A,E,'c')</literal> + retorna a forma real generalizada de Schur do feixe + <literal>s*E-A</literal>. Ainda, as primeiras dim colunas de + <literal>Z</literal> geram uma base para o autoespaço direito + associado aos autovalores com partes reais negativas + (autoespaço de "tempo contínuo" generalizado). + </para> + <para> + <literal>[As,Es,Z,dim] = schur(A,E,'d')</literal> + </para> + <para>retorna a forma real generalizada de Schur do feixe + <literal>s*E-A</literal>. Ainda, as dim primeiras colunas de + <literal>Z</literal> formam uma base para o autoespaço direito + associado aos autovalores de magnitude menor que 1 (autoespaço + de "tempo discreto" generalizado). + </para> + <para> + <literal>[As,Es,Z,dim] = + schur(A,E,extern2) + </literal> + </para> + <para>retorna a forma real generalizada de Schur do feixe + <literal>s*E-A</literal>. Ainda, as dim primeiras colunas de + <literal>Z</literal> formam uma base para o autoespaço direito + associado aos autovalores do feixe que são selecionados de + acordo com a regra que é dada pela "external" + <literal>extern2</literal>. (veja "external" para detalhes). + Esta external pode ser descrita por uma função do Scilab ou + por um "procedure" de C ou FORTRAN. + </para> + <variablelist> + <varlistentry> + <term>Função do Scilab</term> + <listitem> + <para> + Se <literal>extern2</literal> é descrita por uma + função do Scilab, deve ter a seqüência de chamamento: + <literal>s=extern2(Alpha,Beta)</literal>, onde + <literal>Alpha</literal> e <literal>Beta</literal> + definem um autovalor generalizado e <literal>s</literal> + um booleano. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Um "Procedure" C ou FORTRAN</term> + <listitem> + <para> + Se a "external" <literal>extern2</literal> é + descrita por um "procedure" C ou FORTRAN, deve ter a + seqüência de chamamento: + </para> + <para> + <literal>int extern2(double *AlphaR, double + *AlphaI, double *Beta) + </literal> + </para> + <para> + se <literal>A</literal> e <literal>E</literal> são + matrizes de reais e + </para> + <para> + <literal>int extern2(double *AlphaR, double + *AlphaI, double *BetaR, double *BetaI) + </literal> + </para> + <para> + se <literal>A</literal> ou <literal>E</literal> é + matriz de complexos. <literal>Alpha</literal>, e + <literal>Beta</literal> definem o autovalor + generalizado. Um valor verdadeiro ou diferente de zero + siginfica autovalor generalizado selecionado. + </para> + </listitem> + </varlistentry> + </variablelist> + </listitem> + </varlistentry> + </variablelist> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Referências</title> + <para>As computações da forma de Schur matricial são baseadas nas rotinas + de Lapack DGEES e ZGEES. + </para> + <para>As computações da forma de Schur de feixes são baseadas nas rotinas + de Lapack DGGES e ZGGES. + </para> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +//SCHUR FORM OF A MATRIX +//---------------------- +A=diag([-0.9,-2,2,0.9]);X=rand(A);A=inv(X)*A*X; +[U,T]=schur(A);T + +[U,dim,T]=schur(A,'c'); +T(1:dim,1:dim) //stable cont. eigenvalues + +function t=mytest(Ev),t=abs(Ev)<0.95,endfunction +[U,dim,T]=schur(A,mytest); +T(1:dim,1:dim) + +// The same function in C (a Compiler is required) +cd TMPDIR; +C=['int mytest(double *EvR, double *EvI) {' //the C code + 'if (*EvR * *EvR + *EvI * *EvI < 0.9025) return 1;' + 'else return 0; }';] +mputl(C,TMPDIR+'/mytest.c') + + +//build and link +lp=ilib_for_link('mytest','mytest.c',[],'c'); +link(lp,'mytest','c'); + +//run it +[U,dim,T]=schur(A,'mytest'); +//SCHUR FORM OF A PENCIL +//---------------------- +F=[-1,%s, 0, 1; + 0,-1,5-%s, 0; + 0, 0,2+%s, 0; + 1, 0, 0, -2+%s]; +A=coeff(F,0);E=coeff(F,1); +[As,Es,Q,Z]=schur(A,E); +Q'*F*Z //It is As+%s*Es + + +[As,Es,Z,dim] = schur(A,E,'c') +function t=mytest(Alpha,Beta),t=real(Alpha)<0,endfunction +[As,Es,Z,dim] = schur(A,E,mytest) + +//the same function in Fortran (a Compiler is required) +ftn=['integer function mytestf(ar,ai,b)' //the fortran code + 'double precision ar,ai,b' + 'mytestf=0' + 'if(ar.lt.0.0d0) mytestf=1' + 'end'] +mputl(' '+ftn,TMPDIR+'/mytestf.f') + +//build and link +lp=ilib_for_link('mytestf','mytestf.f',[],'F'); +link(lp,'mytestf','f'); + +//run it + +[As,Es,Z,dim] = schur(A,E,'mytestf') + ]]></programlisting> + </refsection> + <refsection> + <title> Ver Também</title> + <simplelist type="inline"> + <member> + <link linkend="spec">spec</link> + </member> + <member> + <link linkend="bdiag">bdiag</link> + </member> + <member> + <link linkend="ricc">ricc</link> + </member> + <member> + <link linkend="pbig">pbig</link> + </member> + <member> + <link linkend="psmall">psmall</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/pt_BR/eigen/spec.xml b/modules/linear_algebra/help/pt_BR/eigen/spec.xml new file mode 100755 index 000000000..00be379ad --- /dev/null +++ b/modules/linear_algebra/help/pt_BR/eigen/spec.xml @@ -0,0 +1,277 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * 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 + * + --> +<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="spec" xml:lang="en"> + <refnamediv> + <refname>spec</refname> + <refpurpose>autovalores de matrizes e feixes</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Seqüência de Chamamento</title> + <synopsis>evals=spec(A) + [R,diagevals]=spec(A) + + evals=spec(A,B) + [alpha,beta]=spec(A,B) + [alpha,beta,Z]=spec(A,B) + [alpha,beta,Q,Z]=spec(A,B) + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>A</term> + <listitem> + <para>matriz quadrada de reais ou complexos </para> + </listitem> + </varlistentry> + <varlistentry> + <term>B</term> + <listitem> + <para>matriz quadrada de reais ou complexos com as mesmas dimensões + que<literal> A</literal> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>evals</term> + <listitem> + <para>vetor de reais ou complexos, os autovalores</para> + </listitem> + </varlistentry> + <varlistentry> + <term>diagevals</term> + <listitem> + <para>matriz diagonal de reais ou complexos (autovalores ao longo da + diagonal) + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>alpha</term> + <listitem> + <para>vetor de reais ou complexos, al./be fornece os + autovalores + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>beta</term> + <listitem> + <para>vetor de reais, al./be fornece os autovalores</para> + </listitem> + </varlistentry> + <varlistentry> + <term>R</term> + <listitem> + <para>matriz quadrada de reais ou complexos invertível, autovetores + direitos da matriz + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Q</term> + <listitem> + <para>matriz quadrada de reais ou complexos invertível, autovetores + esquerdos do feixe + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Z</term> + <listitem> + <para>matriz quadrada de reais ou complexos invertível, autovetores + direitos do feixe + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <variablelist> + <varlistentry> + <term>evals=spec(A)</term> + <listitem> + <para> + retorna no vetor <literal>evals</literal> os + autovalores. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>[R,diagevals] =spec(A)</term> + <listitem> + <para> + retorna na matriz diagonal <literal>evals</literal> os + autovalores e em <literal>R</literal> os autovetores + direitos. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>evals=spec(A,B)</term> + <listitem> + <para> retorna o espectro do feixe de matrizes A - s B, i.e. as + raízes da matriz de polinômios s B - A. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>[alpha,beta] = spec(A,B)</term> + <listitem> + <para> + retorna o espectro do feixe de matrizes <literal>A- s + B + </literal> + ,i.e. as raízes da matriz de polinômios <literal>A - s + B + </literal> + .Auto valores generalizados alpha e beta são tais que a + matriz <literal>A - alpha./beta B</literal> é uma matriz singular. + Os autovalores são dados por <literal>al./be</literal> e se + <literal>beta(i) = 0</literal> o i-ésimo autovalor está no infinito. + (Para <literal>B = eye(A), alpha./beta</literal> é + <literal>spec(A)</literal>). É usualmente representado pelo par + (alpha,beta), já que há uma interpretação razoável para beta=0, e + até mesmo para os dois sendo zero. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>[alpha,beta,R] = spec(A,B)</term> + <listitem> + <para> + retorna, ainda, a matriz <literal>R</literal> de autovetores + direitos generalizados do feixe. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>[al,be,Q,Z] = spec(A,B)</term> + <listitem> + <para> + rretorna ainda a matriz <literal>Q</literal> e + <literal>Z</literal> de autovetores esquerdos e direitos + generalizados do feixe. + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Referências</title> + <para>As computações de autovalores de matrizes são baseadas nas rotinas + Lapack + </para> + <itemizedlist> + <listitem> + <para>DGEEV e ZGEEV quando as matrizes não são simétricas,</para> + </listitem> + <listitem> + <para>DSYEV e ZHEEV quando as matrizes são simétricas.</para> + </listitem> + </itemizedlist> + <para>Uma matriz de complexos simétrica tem termos fora da diagonal + conjugados e termos diagonais reais. + </para> + <para>As computações de autovalores de feixes são baseadas nas rotinas + Lapack DGGEV e ZGGEV. + </para> + </refsection> + <refsection> + <title>Matrizes de reais e de complexos</title> + <para>Deve-se notar que o tipo das variáveis de saída, tais como evals ou + R por exemplo, não é necessariamente o mesmo das que das matrizes de + entrada A e B. No parágrafo seguinte, análisamos o tipo das variáveis de + saída no caso onde nos casos onde se computa os autovalores e autovetores + de uma única matriz A. + </para> + <itemizedlist> + <listitem> + <para>Matriz A de reais</para> + <itemizedlist> + <listitem> + <para>Simétrica</para> + <para>Os autovetores e autovalores são reais.</para> + </listitem> + <listitem> + <para>Não simétrica</para> + <para>Os autovetores e autovalores são complexos.</para> + </listitem> + </itemizedlist> + </listitem> + <listitem> + <para>Matriz A de complexos</para> + <itemizedlist> + <listitem> + <para>Simétrica</para> + <para>Os autovalores são reais, mas os autovetores são + complexos. + </para> + </listitem> + <listitem> + <para>Não simétrica</para> + <para>Os autovetores e autovalores são complexos.</para> + </listitem> + </itemizedlist> + </listitem> + </itemizedlist> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +// AUTOVALORES DA MATRIZ +A=diag([1,2,3]); +X=rand(3,3); +A=inv(X)*A*X; +spec(A) +// +x=poly(0,'x'); +pol=det(x*eye()-A) +roots(pol) +// +[S,X]=bdiag(A); +clean(inv(X)*A*X) + +// AUTOVALORES DO FEIXE +A=rand(3,3); +[al,be,R] = spec(A,eye(A)); +al./be +clean(inv(R)*A*R) //exibindo os autovalores (matriz genérica) +A=A+%i*rand(A); +E=rand(A); +roots(det(A-%s*E)) //caso de complexos + ]]></programlisting> + </refsection> + <refsection> + <title> Ver Também</title> + <simplelist type="inline"> + <member> + <link linkend="poly">poly</link> + </member> + <member> + <link linkend="det">det</link> + </member> + <member> + <link linkend="schur">schur</link> + </member> + <member> + <link linkend="bdiag">bdiag</link> + </member> + <member> + <link linkend="colcomp">colcomp</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/pt_BR/eigen/sva.xml b/modules/linear_algebra/help/pt_BR/eigen/sva.xml new file mode 100755 index 000000000..0a88f269d --- /dev/null +++ b/modules/linear_algebra/help/pt_BR/eigen/sva.xml @@ -0,0 +1,83 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * 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 + * + --> +<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="sva" xml:lang="en"> + <refnamediv> + <refname>sva</refname> + <refpurpose>aproximação em valores singulares</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Seqüência de Chamamento </title> + <synopsis>[U,s,V]=sva(A,k) + [U,s,V]=sva(A,tol) + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>A</term> + <listitem> + <para>matriz de reais ou complexos</para> + </listitem> + </varlistentry> + <varlistentry> + <term>k</term> + <listitem> + <para>inteiro</para> + </listitem> + </varlistentry> + <varlistentry> + <term>tol</term> + <listitem> + <para>número real não-negativo</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para>Aproximação em valores singulares.</para> + <para> + <literal>[U,S,V]=sva(A,k)</literal> com <literal>k</literal> inteiro + >=1, retorna <literal>U,S</literal> e <literal>V</literal> tais que + <literal>B=U*S*V'</literal> é a melhor aproximação L2 de + <literal>A</literal> com + posto(<literal>B</literal>)=<literal>k</literal>. + </para> + <para> + <literal>[U,S,V]=sva(A,tol)</literal> com <literal>tol</literal> + real retorna <literal>U,S</literal> e <literal>V</literal> tais que + <literal>B=U*S*V'</literal> e a norma-L2 de <literal>A-B</literal> é, no + máximo, <literal>tol</literal>. + </para> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +A=rand(5,4)*rand(4,5); +[U,s,V]=sva(A,2); +B=U*s*V'; +svd(A) +svd(B) +clean(svd(A-B)) + ]]></programlisting> + </refsection> + <refsection> + <title> Ver Também </title> + <simplelist type="inline"> + <member> + <link linkend="svd">svd</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/pt_BR/eigen/svd.xml b/modules/linear_algebra/help/pt_BR/eigen/svd.xml new file mode 100755 index 000000000..71998511e --- /dev/null +++ b/modules/linear_algebra/help/pt_BR/eigen/svd.xml @@ -0,0 +1,132 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * 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 + * + --> +<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="svd" xml:lang="en"> + <refnamediv> + <refname>svd</refname> + <refpurpose>decomposição em valores singulares</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title> Seqüência de Chamamento </title> + <synopsis>s=svd(X) + [U,S,V]=svd(X) + [U,S,V]=svd(X,0) (obsolete) + [U,S,V]=svd(X,"e") + [U,S,V,rk]=svd(X [,tol]) + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>X</term> + <listitem> + <para>matriz de reais ou complexos </para> + </listitem> + </varlistentry> + <varlistentry> + <term>s</term> + <listitem> + <para>vetor de reais (valores singulares)</para> + </listitem> + </varlistentry> + <varlistentry> + <term>S</term> + <listitem> + <para>matriz diagonal de reais (valores singulares)</para> + </listitem> + </varlistentry> + <varlistentry> + <term>U,V</term> + <listitem> + <para>matrizes quadradas ortogonais ou unitárias (vetores + singulares) + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>tol</term> + <listitem> + <para>número real</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para> + <literal>[U,S,V] = svd(X)</literal> produz uma matriz diagonal + <literal>S</literal> , com dimensão igual a de <literal>X</literal> e com + elementos da diagonal não-negativos em ordem decrescente, e matrizes + unitárias <literal>U</literal> e <literal>V</literal> tais que <literal>X + = U*S*V' + </literal> + . + </para> + <para> + <literal>[U,S,V] = svd(X,0)</literal> produz a decomposição com + "economia de tamanho". Se <literal>X</literal> é m-por-n com m > n, + então apenas as primeiras n colunas de <literal>U</literal> são computadas + e <literal>S</literal> é n-por-n. + </para> + <para> + <literal>s= svd(X)</literal> por si mesmo retorna um vetor + <literal>s</literal> contendo os valores singulares. + </para> + <para> + <literal>[U,S,V,rk]=svd(X,tol)</literal> fornece também + <literal>rk</literal>, o posto numérico de <literal>X</literal> i.e. i.e. + o número de valores singulares maiores que <literal>tol</literal>. + </para> + <para> + O valor default de <literal>tol</literal> é o mesmo que em + <literal>rank</literal>. + </para> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +X=rand(4,2)*rand(2,4) +svd(X) +sqrt(spec(X*X')) + ]]></programlisting> + </refsection> + <refsection> + <title> Ver Também</title> + <simplelist type="inline"> + <member> + <link linkend="rank">rank</link> + </member> + <member> + <link linkend="qr">qr</link> + </member> + <member> + <link linkend="colcomp">colcomp</link> + </member> + <member> + <link linkend="rowcomp">rowcomp</link> + </member> + <member> + <link linkend="sva">sva</link> + </member> + <member> + <link linkend="spec">spec</link> + </member> + </simplelist> + </refsection> + <refsection> + <title> Função Usada </title> + <para>Decomposições svd são baseadas nas rotinas Lapack DGESVD para + matrizes de reais e ZGESVD no caso de matrizes de complexos. + </para> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/pt_BR/factorization/CHAPTER b/modules/linear_algebra/help/pt_BR/factorization/CHAPTER new file mode 100755 index 000000000..e6daeb8eb --- /dev/null +++ b/modules/linear_algebra/help/pt_BR/factorization/CHAPTER @@ -0,0 +1,2 @@ +title = Factorization + diff --git a/modules/linear_algebra/help/pt_BR/factorization/givens.xml b/modules/linear_algebra/help/pt_BR/factorization/givens.xml new file mode 100755 index 000000000..66b9e5a73 --- /dev/null +++ b/modules/linear_algebra/help/pt_BR/factorization/givens.xml @@ -0,0 +1,91 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * 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 + * + --> +<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="givens" xml:lang="en"> + <refnamediv> + <refname>givens</refname> + <refpurpose>transformação de Givens</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Seqüência de Chamamento</title> + <synopsis>U=givens(xy) + U=givens(x,y) + [U,c]=givens(xy) + [U,c]=givens(x,y) + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>x,y</term> + <listitem> + <para>dois números reais ou complexos</para> + </listitem> + </varlistentry> + <varlistentry> + <term>xy</term> + <listitem> + <para>vetor coluna de reais ou complexos de tamanho 2</para> + </listitem> + </varlistentry> + <varlistentry> + <term>U</term> + <listitem> + <para>matriz 2x2 unitária</para> + </listitem> + </varlistentry> + <varlistentry> + <term>c</term> + <listitem> + <para>vetor coluna de reais ou complexos de tamanho 2</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para> + <literal>U= givens(x, y)</literal> ou <literal>U = + givens(xy) + </literal> + com <literal>xy = [x;y]</literal> retorna uma matriz + unitária <literal>2</literal>x<literal>2</literal> <literal>U</literal> + tal que: + </para> + <para> + <literal>U*xy=[r;0]=c</literal>. + </para> + <para> + <note> + Note que <literal>givens(x,y)</literal> e + <literal>givens([x;y])</literal> são equivalentes. + </note> + </para> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +A=[3,4;5,6]; +U=givens(A(:,1)); +U*A + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Ver Também</title> + <simplelist type="inline"> + <member> + <link linkend="qr">qr</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/pt_BR/factorization/householder.xml b/modules/linear_algebra/help/pt_BR/factorization/householder.xml new file mode 100755 index 000000000..8faaa7029 --- /dev/null +++ b/modules/linear_algebra/help/pt_BR/factorization/householder.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) 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="householder" xml:lang="en"> + <refnamediv> + <refname>householder</refname> + <refpurpose>matriz de reflexão ortogonal de Householder</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Seqüência de Chamamento</title> + <synopsis>u=householder(v [,w])</synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>v</term> + <listitem> + <para>vetor coluna de reais ou complexos</para> + </listitem> + </varlistentry> + <varlistentry> + <term>w</term> + <listitem> + <para>vetor coluna de reais ou complexos com o mesmo tamanho que + <literal>v</literal>. Valor padrão é + <literal>eye(v)</literal> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>u</term> + <listitem> + <para>vetor coluna de reais ou complexos</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para> + Dados dois vetores coluna <literal>v</literal>, <literal> + w + </literal> + de mesmo tamanho, <literal>householder(v,w)</literal> retorna + um vetor coluna unitário <literal>u</literal>, tal que<literal> + (eye()-2*u*u')*v + </literal> + éproporcional a <literal>w</literal>. + <literal>(eye()-2*u*u')</literal> é a matriz de reflexão ortogonal de + Householder . + </para> + <para> + O valor padrão de<literal> w</literal> é<literal> eye(v)</literal>. + Neste caso, o vetor <literal> (eye()-2*u*u')*v</literal> é o + vetor<literal> eye(v)*norm(v)</literal>. + </para> + </refsection> + <refsection role="see also"> + <title>Ver Também</title> + <simplelist type="inline"> + <member> + <link linkend="qr">qr</link> + </member> + <member> + <link linkend="givens">givens</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/pt_BR/factorization/sqroot.xml b/modules/linear_algebra/help/pt_BR/factorization/sqroot.xml new file mode 100755 index 000000000..4c5eab66e --- /dev/null +++ b/modules/linear_algebra/help/pt_BR/factorization/sqroot.xml @@ -0,0 +1,64 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * 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 + * + --> +<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="sqroot" xml:lang="en"> + <refnamediv> + <refname>sqroot</refname> + <refpurpose>fatoração hermitiana W*W'</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Seqüência de Chamamento</title> + <synopsis>sqroot(X)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>X</term> + <listitem> + <para>matriz simétrica, não-negativa definida de reais ou + complexos + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para> + Retorna W tal que <literal>X=W*W'</literal> (usa SVD). + </para> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +X=rand(5,2)*rand(2,5);X=X*X'; +W=sqroot(X) +norm(W*W'-X,1) +// +X=rand(5,2)+%i*rand(5,2);X=X*X'; +W=sqroot(X) +norm(W*W'-X,1) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Ver Também</title> + <simplelist type="inline"> + <member> + <link linkend="chol">chol</link> + </member> + <member> + <link linkend="svd">svd</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/pt_BR/kernel/CHAPTER b/modules/linear_algebra/help/pt_BR/kernel/CHAPTER new file mode 100755 index 000000000..be67920e1 --- /dev/null +++ b/modules/linear_algebra/help/pt_BR/kernel/CHAPTER @@ -0,0 +1,2 @@ +title = Kernel + diff --git a/modules/linear_algebra/help/pt_BR/kernel/colcomp.xml b/modules/linear_algebra/help/pt_BR/kernel/colcomp.xml new file mode 100755 index 000000000..5a281554c --- /dev/null +++ b/modules/linear_algebra/help/pt_BR/kernel/colcomp.xml @@ -0,0 +1,112 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * 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 + * + --> +<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="colcomp" xml:lang="en"> + <refnamediv> + <refname>colcomp</refname> + <refpurpose>compressão de colunas, núcleo</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title> Seqüência de Chamamento </title> + <synopsis>[W,rk]=colcomp(A [,flag] [,tol])</synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>A</term> + <listitem> + <para>matriz de reais ou complexos</para> + </listitem> + </varlistentry> + <varlistentry> + <term>flag</term> + <listitem> + <para>string</para> + </listitem> + </varlistentry> + <varlistentry> + <term>tol</term> + <listitem> + <para>número real</para> + </listitem> + </varlistentry> + <varlistentry> + <term>W</term> + <listitem> + <para>matriz quadrada não-singular (mudança de base) </para> + </listitem> + </varlistentry> + <varlistentry> + <term>rk</term> + <listitem> + <para> + inteiro (posto de <literal>A</literal>) + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para> + Compressão de colunas de <literal>A</literal>: <literal>Ac = + A*W + </literal> + éde colunas comprimidas ,i.e., + </para> + <para> + <literal>Ac=[0,Af]</literal> com o posto-coluna de + <literal>Af</literal> cheio, posto(<literal>Af</literal>) = + posto(<literal>A</literal>) = <literal>rk</literal>. + </para> + <para> + <literal>flag</literal> e <literal>tol</literal> são parâmetros + opcionais: <literal>flag = 'qr'</literal> ou <literal>'svd'</literal> (o + padrão é <literal>'svd'</literal>). + </para> + <para> + <literal>tol</literal> = parâmetro de tolerância (de ordem + <literal>%eps</literal> como valor padrão). + </para> + <para> + As <literal>ma-rk</literal> primeiras colunas de + <literal>W</literal> geram o núcleo de <literal>A</literal> quando + <literal>size(A)=(na,ma)</literal> + </para> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +A=rand(5,2)*rand(2,5); +[X,r]=colcomp(A); +norm(A*X(:,1:$-r),1) + ]]></programlisting> + </refsection> + <refsection> + <title> Ver Também </title> + <simplelist type="inline"> + <member> + <link linkend="rowcomp">rowcomp</link> + </member> + <member> + <link linkend="fullrf">fullrf</link> + </member> + <member> + <link linkend="fullrfk">fullrfk</link> + </member> + <member> + <link linkend="kernel">kernel</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/pt_BR/kernel/fullrf.xml b/modules/linear_algebra/help/pt_BR/kernel/fullrf.xml new file mode 100755 index 000000000..5bf4e8220 --- /dev/null +++ b/modules/linear_algebra/help/pt_BR/kernel/fullrf.xml @@ -0,0 +1,106 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * 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 + * + --> +<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="fullrf" xml:lang="en"> + <refnamediv> + <refname>fullrf</refname> + <refpurpose>fatoração de posto completo (ou cheio)</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title> Seqüência de Chamamento </title> + <synopsis>[Q,M,rk]=fullrf(A,[tol])</synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>A</term> + <listitem> + <para>matriz de reais ou complexos </para> + </listitem> + </varlistentry> + <varlistentry> + <term>tol</term> + <listitem> + <para>número real (limiar para determinação do posto) </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Q,M</term> + <listitem> + <para>matriz de reais ou complexos </para> + </listitem> + </varlistentry> + <varlistentry> + <term>rk</term> + <listitem> + <para> + inteiro(posto de <literal>A</literal>) + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para> + Fatoração de posto cheio : <literal>fullrf</literal> retorna + <literal>Q</literal> e <literal>M</literal> tais que <literal>A = + Q*M + </literal> + com Im(<literal>Q</literal>)=Im(<literal>A</literal>) e + Nuc(<literal>M</literal>)=Nuc(<literal>A</literal>), <literal>Q</literal> + de posto-coluna cheio, <literal>M</literal> de posto-linha cheio e + <literal>rk = rank(A) = #columns(Q) = #rows(M)</literal>. + </para> + <para> + <literal>tol</literal> é um parâmetro real opcional (valor real + padrão é <literal>sqrt(%eps)</literal>). O posto <literal>rk</literal> de + <literal>A</literal> é definido como o número de valores singulares + maiores que <literal>norm(A)*tol</literal>. + </para> + <para> + Se A é simétrica, <literal>fullrf</literal> retorna + <literal>M=Q'</literal>. + </para> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +A=rand(5,2)*rand(2,5); +[Q,M]=fullrf(A); +norm(Q*M-A,1) +[X,d]=rowcomp(A);Y=X'; +svd([A,Y(:,1:d),Q]) //span(Q) = span(A) = span(Y(:,1:2)) (span = "gerado") + ]]></programlisting> + </refsection> + <refsection> + <title> Ver Também </title> + <simplelist type="inline"> + <member> + <link linkend="svd">svd</link> + </member> + <member> + <link linkend="qr">qr</link> + </member> + <member> + <link linkend="fullrfk">fullrfk</link> + </member> + <member> + <link linkend="rowcomp">rowcomp</link> + </member> + <member> + <link linkend="colcomp">colcomp</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/pt_BR/kernel/fullrfk.xml b/modules/linear_algebra/help/pt_BR/kernel/fullrfk.xml new file mode 100755 index 000000000..9f7ba85f3 --- /dev/null +++ b/modules/linear_algebra/help/pt_BR/kernel/fullrfk.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) 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="fullrfk" xml:lang="en"> + <refnamediv> + <refname>fullrfk</refname> + <refpurpose>fatoração de posto completo de A^k</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Seqüência de Chamamento </title> + <synopsis>[Bk,Ck]=fullrfk(A,k)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>A</term> + <listitem> + <para>matriz de reais ou de complexos</para> + </listitem> + </varlistentry> + <varlistentry> + <term>k</term> + <listitem> + <para>inteiro</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Bk,Ck</term> + <listitem> + <para>matrizes de reais ou de complexos</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para>Esta função calcula a fatoração de posto completo (ou cheio) de + <literal>A^k</literal> i.e. <literal>Bk*Ck=A^k</literal> onde + <literal>Bk</literal> é de posto-coluna cheio e <literal>Ck</literal> de + posto-linha cheio. Tem-se + Im(<literal>Bk</literal>)=Im(<literal>A^k</literal>) e + Nuc(<literal>Ck</literal>)=Nuc(<literal>A^k</literal>). + </para> + <para> + Para <literal>k=1</literal>, <literal>fullrfk</literal> é + equivalente a <literal>fullrf</literal>. + </para> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +A=rand(5,2)*rand(2,5);[Bk,Ck]=fullrfk(A,3); +norm(Bk*Ck-A^3,1) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Ver Também</title> + <simplelist type="inline"> + <member> + <link linkend="fullrf">fullrf</link> + </member> + <member> + <link linkend="range">range</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/pt_BR/kernel/im_inv.xml b/modules/linear_algebra/help/pt_BR/kernel/im_inv.xml new file mode 100755 index 000000000..07f69c4b8 --- /dev/null +++ b/modules/linear_algebra/help/pt_BR/kernel/im_inv.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) 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="im_inv" xml:lang="en"> + <refnamediv> + <refname>im_inv</refname> + <refpurpose>imagem inversa</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title> Seqüência de Chamamento </title> + <synopsis>[X,dim]=im_inv(A,B [,tol]) + [X,dim,Y]=im_inv(A,B, [,tol]) + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>A,B</term> + <listitem> + <para>duas matirzes de reais ou complexos com igual número de + colunas + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>X</term> + <listitem> + <para>matriz quadrada ortogonal ou unitária de ordem igual ao número + de colunas de <literal>A</literal> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>dim</term> + <listitem> + <para>inteiro (dimensão do subespaço) </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Y</term> + <listitem> + <para>matriz ortogonal de ordem igual ao número de linhas de + <literal>A</literal> e <literal>B</literal>. + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para> + <literal>[X,dim]=im_inv(A,B)</literal> + computa<literal>(A^-1)(B)</literal> ,i.e, vetores cujas imagens através de + <literal>A</literal> estão em Im(<literal>B</literal>) + </para> + <para> + As <literal>dim</literal> primeiras colunas de <literal>X</literal> + geram<literal> (A^-1)(B)</literal> + </para> + <para> + <literal>tol</literal> é um limiar usado para testar a inclusão de + subespaço ; o valor padrão é <literal>tol = 100*%eps</literal>. Se + <literal>Y</literal> é retornado, então <literal>[Y*A*X,Y*B]</literal> é + particionado como segue: + <literal>[A11,A12;0,A22]</literal>,<literal>[B1;0]</literal> + </para> + <para> + onde <literal>B1</literal> tem posto-linha cheio (igual a + posto<literal>(B)</literal>) e <literal>A22</literal> tem posto-coluna + cheio e tem <literal>dim</literal> colunas. + </para> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +A=[rand(2,5);[zeros(3,4),rand(3,1)]];B=[[1,1;1,1];zeros(3,2)]; +W=rand(5,5);A=W*A;B=W*B; +[X,dim]=im_inv(A,B) +svd([A*X(:,1:dim),B]) //vetores A*X(:,1:dim) pertencem a range(B) (Imagem de B: Im(B)) +[X,dim,Y]=im_inv(A,B);[Y*A*X,Y*B] + ]]></programlisting> + </refsection> + <refsection> + <title> Ver Também</title> + <simplelist type="inline"> + <member> + <link linkend="rowcomp">rowcomp</link> + </member> + <member> + <link linkend="spaninter">spaninter</link> + </member> + <member> + <link linkend="spanplus">spanplus</link> + </member> + <member> + <link linkend="linsolve">linsolve</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/pt_BR/kernel/kernel.xml b/modules/linear_algebra/help/pt_BR/kernel/kernel.xml new file mode 100755 index 000000000..93f8e850e --- /dev/null +++ b/modules/linear_algebra/help/pt_BR/kernel/kernel.xml @@ -0,0 +1,99 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * 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 + * + --> +<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="kernel" xml:lang="en"> + <refnamediv> + <refname>kernel</refname> + <refpurpose>núcleo de uma matriz</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title> Seqüência de Chamamento </title> + <synopsis>W=kernel(A [,tol,[,flag])</synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>A</term> + <listitem> + <para>matriz de reais ou complexos completa ou matriz de reais + esparsa + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>flag</term> + <listitem> + <para> + string <literal>'svd'</literal> (padrão) ou + <literal>'qr'</literal> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>tol</term> + <listitem> + <para>número real </para> + </listitem> + </varlistentry> + <varlistentry> + <term>W</term> + <listitem> + <para>matriz de posto-coluna completo</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para> + <literal>W=kernel(A)</literal> retorna o núcleo (espaço nulo) de + <literal>A</literal>. Se A tem posto-coluna completo, então uma matriz + vazia [] é retornada. + </para> + <para> + <literal>flag</literal> e <literal>tol</literal> são parâmetros + opcionais: <literal>flag = 'qr'</literal> ou<literal>'svd'</literal> (o + padrão é <literal>'svd'</literal>). + </para> + <para> + <literal>tol</literal> = parâmetro de tolerância (de ordem + <literal>%eps</literal> como valor padrão). + </para> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +A=rand(3,1)*rand(1,3); +A*kernel(A) +A=sparse(A); +clean(A*kernel(A)) + ]]></programlisting> + </refsection> + <refsection> + <title> Ver Também</title> + <simplelist type="inline"> + <member> + <link linkend="colcomp">colcomp</link> + </member> + <member> + <link linkend="fullrf">fullrf</link> + </member> + <member> + <link linkend="fullrfk">fullrfk</link> + </member> + <member> + <link linkend="linsolve">linsolve</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/pt_BR/kernel/range.xml b/modules/linear_algebra/help/pt_BR/kernel/range.xml new file mode 100755 index 000000000..a82b20aa8 --- /dev/null +++ b/modules/linear_algebra/help/pt_BR/kernel/range.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) 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="range" xml:lang="en"> + <refnamediv> + <refname>range</refname> + <refpurpose>Imagem (gerado) de A^k</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title> Seqüência de Chamamento</title> + <synopsis>[X,dim]=range(A,k)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>A</term> + <listitem> + <para>matriz de reais ou complexos que se assume quadrada se k>1 + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>k</term> + <listitem> + <para>inteiro</para> + </listitem> + </varlistentry> + <varlistentry> + <term>X</term> + <listitem> + <para>matriz ortonormal </para> + </listitem> + </varlistentry> + <varlistentry> + <term>dim</term> + <listitem> + <para>inteiro (dimensão de subespaço)</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para> + Computação da imagem de <literal>A^k</literal> ; as primeiras dim + colunas de <literal>X</literal> geram a imagem de <literal>A^k</literal>. + As últimas linhas de <literal>X</literal> geram o complemento ortogonal da + imagem. <literal>X*X'</literal> é a matriz identidade. + </para> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +A=rand(4,2)*rand(2,4); // 4 vetores colunas, 2 independentes. +[X,dim]=range(A,1);dim // computando a imagem + +y1=A*rand(4,1); //um vetor que está na imagem de A +y2=rand(4,1); //um vetor que não está na imagem de A +norm(X(dim+1:$,:)*y1) //as últimas entradas são zeros, y1 está na imagem de A +norm(X(dim+1:$,:)*y2) //as últimas entradas não são zeros + +I=X(1:dim,:)' //I é uma base para a imagem +coeffs=X(1:dim,:)*y1 //componentes de y1 relativos à base I + +norm(I*coeffs-y1) //verificando + ]]></programlisting> + </refsection> + <refsection> + <title> Ver Também </title> + <simplelist type="inline"> + <member> + <link linkend="fullrfk">fullrfk</link> + </member> + <member> + <link linkend="rowcomp">rowcomp</link> + </member> + </simplelist> + </refsection> + <refsection> + <title> Função Usada</title> + <para> + A função <literal>range</literal> é baseada na função <link linkend="rowcomp">rowcomp</link> que usa decomposição <link linkend="svd">svd</link> (decomposição em valores singulares). + </para> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/pt_BR/kernel/rowcomp.xml b/modules/linear_algebra/help/pt_BR/kernel/rowcomp.xml new file mode 100755 index 000000000..a01b2c735 --- /dev/null +++ b/modules/linear_algebra/help/pt_BR/kernel/rowcomp.xml @@ -0,0 +1,132 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * 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 + * + --> +<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="rowcomp" xml:lang="en"> + <refnamediv> + <refname>rowcomp</refname> + <refpurpose>compressão de linhas, imagem</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title> Seqüência de Chamamento</title> + <synopsis>[W,rk]=rowcomp(A [,flag [,tol]])</synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>A</term> + <listitem> + <para>matriz de reais ou de complexos </para> + </listitem> + </varlistentry> + <varlistentry> + <term>flag</term> + <listitem> + <para>string opcional, com valores possíveis + <literal>'svd'</literal> ou <literal>'qr'</literal>. O valor padrão + é <literal>'svd'</literal>. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>tol</term> + <listitem> + <para>número real não-negativo opcional. O valor padrão é + <literal>sqrt(%eps)*norm(A,1)</literal>. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>W</term> + <listitem> + <para>matriz quadrada não-singular (matriz mudança de base)</para> + </listitem> + </varlistentry> + <varlistentry> + <term>rk</term> + <listitem> + <para> + inteiro (posto de <literal>A</literal>) + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para> + Compressão de linhas de <literal>A</literal>. <literal>Ac = + W*A + </literal> + éuma matriz de linhas comprimidas, i.e. + <literal>Ac=[Af;0]</literal> com <literal>Af</literal> de posto-linha + cheio. + </para> + <para> + <literal>flag</literal> e <literal>tol</literal> são parâmetros + opcionais: <literal>flag='qr'</literal> ou <literal>'svd'</literal> (o + padrão é <literal>'svd'</literal>). + </para> + <para> + <literal>tol</literal> é um parâmetro de tolerância. + </para> + <para> + As <literal>rk</literal> primeiras colunas de <literal>W'</literal> + geram a imagem de <literal>A</literal>. + </para> + <para> + As <literal>rk</literal> primeiras linhas (do topo) de + <literal>W</literal> geram a imagem de linha de + <literal>A</literal>. + </para> + <para> + Um vetor não nulo <literal>x</literal> pertence à + Im(<literal>A</literal>) se,e só se, <literal>W*x</literal> é de linhas + comprimidas de acordo com <literal>Ac</literal> i.e, a norma de seus + últimos componentes é pequena com relação a dos seus primeiros + componentes. + </para> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +A=rand(5,2)*rand(2,4); // 4 vetores colunas, 2 independentes +[X,dim]=rowcomp(A);Xp=X'; +svd([Xp(:,1:dim),A]) //span(A) = span(Xp(:,1:dim) (span="gerado") +x=A*rand(4,1); //x pertence a span(A) +y=X*x +norm(y(dim+1:$))/norm(y(1:dim)) // pequeno + ]]></programlisting> + </refsection> + <refsection> + <title> Ver Também </title> + <simplelist type="inline"> + <member> + <link linkend="colcomp">colcomp</link> + </member> + <member> + <link linkend="fullrf">fullrf</link> + </member> + <member> + <link linkend="fullrfk">fullrfk</link> + </member> + </simplelist> + </refsection> + <refsection> + <title>Função Usada </title> + <para> + A função <literal>rowcomp</literal> é baseada nas decomposições + <link linkend="svd">svd</link> (decomposição em valores singulares) ou + <link linkend="qr">qr</link> . + </para> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/pt_BR/linear/CHAPTER b/modules/linear_algebra/help/pt_BR/linear/CHAPTER new file mode 100755 index 000000000..7d9d9cf49 --- /dev/null +++ b/modules/linear_algebra/help/pt_BR/linear/CHAPTER @@ -0,0 +1,2 @@ +title = Linear Equations + diff --git a/modules/linear_algebra/help/pt_BR/linear/aff2ab.xml b/modules/linear_algebra/help/pt_BR/linear/aff2ab.xml new file mode 100755 index 000000000..8aa01b88e --- /dev/null +++ b/modules/linear_algebra/help/pt_BR/linear/aff2ab.xml @@ -0,0 +1,162 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * 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 + * + --> +<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="aff2ab" xml:lang="en"> + <refnamediv> + <refname>aff2ab</refname> + <refpurpose>Conversão de uma função linear (afim) para forma + A,b + </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Seqüência de Chamamento</title> + <synopsis>[A,b]=aff2ab(afunction,dimX,D [,flag])</synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>afunction</term> + <listitem> + <para> + uma função do Scilab <literal> Y =fct(X,D) </literal> onde + <literal>X, D, Y</literal> são <literal>lists</literal> de + matrizes + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>dimX</term> + <listitem> + <para> + uma matriz de inteiros p x 2 (<literal>p</literal> é o número + de matrizes em X) + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>D</term> + <listitem> + <para> + uma <literal>list</literal> de matrizes de reais (ou qualquer + outro objeto Scilab válido). + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>flag</term> + <listitem> + <para> + parâmetro opcional (<literal>flag='f'</literal> ou + <literal>flag='sp'</literal>) + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>A</term> + <listitem> + <para>uma matriz de reais</para> + </listitem> + </varlistentry> + <varlistentry> + <term>b</term> + <listitem> + <para>um vetor de reais tendo a mesma dimensão de linha que + <literal>A</literal> + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para> + <literal>aff2ab</literal> retorna a representação matricial de uma + função afim (na base canônica). + </para> + <para> + <literal>afunction</literal> é uma função com sintaxe imposta: + <literal> Y=afunction(X,D) </literal> onde <literal> X=list(X1,X2,...,Xp) + </literal> + é uma lista de p matrizes de reais, e <literal> + Y=list(Y1,...,Yq) + </literal> + éuma lista de q matrizes reais que dependem + linearmente das <literal> Xi</literal>'s. A entrada (opcional) <literal> + D + </literal> + contém parâmetros necessários para computar Y como uma função + de X (geralmente é uma lista de matrizes). + </para> + <para> + <literal> dimX</literal> é uma matriz p x 2: + <literal>dimX(i)=[nri,nci]</literal> é o número real de linhas e colunas + da matriz <literal>Xi</literal>. Estas dimensões determinam + <literal>na</literal>, a dimensão de coluna da matriz resultante + <literal>A</literal>: <literal>na=nr1*nc1 +...+ nrp*ncp</literal>. + </para> + <para> + Se o parâmetro opcional <literal>flag='sp'</literal> a matriz + resultante A é retornada como uma esparsa. + </para> + <para>Esta função é útil para resolver um sistema de equações lineares + onde as incógnitas são matrizes. + </para> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +// solucionador de equação de Lyapunov (uma incógnita, uma restrição) +deff('Y=lyapunov(X,D)','[A,Q]=D(:);Xm=X(:); Y=list(A''*Xm+Xm*A-Q)') +A=rand(3,3);Q=rand(3,3);Q=Q+Q';D=list(A,Q);dimX=[3,3]; +[Aly,bly]=aff2ab(lyapunov,dimX,D); +[Xl,kerA]=linsolve(Aly,bly); Xv=vec2list(Xl,dimX); lyapunov(Xv,D) +Xm=Xv(:); A'*Xm+Xm*A-Q + +// solucionador de equação de Lyapunov com restrição redundante X=X' +// (uma variável, uma restrição) D é variável global +deff('Y=ly2(X,D)','[A,Q]=D(:);Xm=X(:); Y=list(A''*Xm+Xm*A-Q,Xm''-Xm)') +A=rand(3,3);Q=rand(3,3);Q=Q+Q';D=list(A,Q);dimX=[3,3]; +[Aly,bly]=aff2ab(ly2,dimX,D); +[Xl,kerA]=linsolve(Aly,bly); Xv=vec2list(Xl,dimX); ly2(Xv,D) + +// equações de Francis +// Achando matrizes X1 e X2 tais que: +// A1*X1 - X1*A2 + B*X2 -A3 = 0 +// D1*X1 -D2 = 0 +deff('Y=bruce(X,D)','[A1,A2,A3,B,D1,D2]=D(:),... +[X1,X2]=X(:);Y=list(A1*X1-X1*A2+B*X2-A3,D1*X1-D2)') +A1=[-4,10;-1,2];A3=[1;2];B=[0;1];A2=1;D1=[0,1];D2=1; +D=list(A1,A2,A3,B,D1,D2); +[n1,m1]=size(A1);[n2,m2]=size(A2);[n3,m3]=size(B); +dimX=[[m1,n2];[m3,m2]]; +[Af,bf]=aff2ab(bruce,dimX,D); +[Xf,KerAf]=linsolve(Af,bf);Xsol=vec2list(Xf,dimX) +bruce(Xsol,D) + +// Achando todas as X que comutam com A +deff('y=f(X,D)','y=list(D(:)*X(:)-X(:)*D(:))') +A=rand(3,3);dimX=[3,3];[Af,bf]=aff2ab(f,dimX,list(A)); +[Xf,KerAf]=linsolve(Af,bf);[p,q]=size(KerAf); +Xsol=vec2list(Xf+KerAf*rand(q,1),dimX); +C=Xsol(:); A*C-C*A + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Ver Também</title> + <simplelist type="inline"> + <member> + <link linkend="linsolve">linsolve</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/pt_BR/linear/chol.xml b/modules/linear_algebra/help/pt_BR/linear/chol.xml new file mode 100755 index 000000000..33b11e42f --- /dev/null +++ b/modules/linear_algebra/help/pt_BR/linear/chol.xml @@ -0,0 +1,85 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * 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 + * + --> +<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="chol" xml:lang="en"> + <refnamediv> + <refname>chol</refname> + <refpurpose>Cholesky factorization</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Seqüência de Chamamento</title> + <synopsis>[R]=chol(X)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>X</term> + <listitem> + <para>uma matriz simétrica e positiva definida de reais ou + complexos. + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para> + Se <literal>X</literal> é positiva definida, então <literal>R = + chol(X) + </literal> + produz uma matriz triangular superior + <literal>R</literal> tal que <literal>R'*R = X</literal>. + </para> + <para> + <literal>chol(X)</literal> usa apenas a diagonal e o triângulo + superior de <literal>X</literal>. O triângulo inferior é assumido como + sendo a transposta (ou complexo conjugado) da superior. + </para> + </refsection> + <refsection> + <title>Referências</title> + <para>A decomposição de Cholesky é baseada nas rotinas de Lapack DPOTRF + para matrizes de reais e ZPOTRF no caso de matrizes de complexos. + </para> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +W=rand(5,5)+%i*rand(5,5); +X=W*W'; +R=chol(X); +norm(R'*R-X) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Ver Também</title> + <simplelist type="inline"> + <member> + <link linkend="spchol">spchol</link> + </member> + <member> + <link linkend="qr">qr</link> + </member> + <member> + <link linkend="svd">svd</link> + </member> + <member> + <link linkend="bdiag">bdiag</link> + </member> + <member> + <link linkend="fullrf">fullrf</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/pt_BR/linear/inv.xml b/modules/linear_algebra/help/pt_BR/linear/inv.xml new file mode 100755 index 000000000..6eaa5f99d --- /dev/null +++ b/modules/linear_algebra/help/pt_BR/linear/inv.xml @@ -0,0 +1,109 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * 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 + * + --> +<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="inv" xml:lang="en"> + <refnamediv> + <refname>inv</refname> + <refpurpose>inversa de uma matriz</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Seqüência de Chamamento</title> + <synopsis>inv(X)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>X</term> + <listitem> + <para>matriz quadrada de reais ou complexos, matriz de polinômios, + matriz de razões de polinômios em representação de transferência ou + espaço de estados + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para> + <literal>inv(X)</literal> é a inversa da matriz quadrada + <literal>X</literal>. Uma aviso é impresso na tela se <literal>X</literal> + possui má escala ou é quase singular. + </para> + <para>Para matrizes de polinômios ou matrizes razões de polinômios em + representação de transferência, <literal>inv(X)</literal> é equivalente a + <literal>invr(X)</literal>. + </para> + <para>Para sistemas lineares na representação de espaço de estados (lista + <literal>syslin</literal>), <literal>invr(X)</literal> é equivalente a + <literal>invsyslin(X)</literal>. + </para> + </refsection> + <refsection> + <title>Referências</title> + <para>A função inv para matrizes de números é baseada nas rotinas de + Lapack DGETRF, DGETRI para matrizes de reais e ZGETRF, ZGETRI para o caso + de matrizes de complexos. Para matrizes de polinômios e matrizes de + funções racionais, <literal>inv</literal> é baseado na função + <literal>invr</literal> do Scilab. + </para> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +A=rand(3,3);inv(A)*A + +x=poly(0,'x'); +A=[x,1,x;x^2,2,1+x;1,2,3];inv(A)*A + +A=[1/x,2;2+x,2/(1+x)] +inv(A)*A + +A=ssrand(2,2,3); +W=inv(A)*A +clean(ss2tf(W)) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Ver Também</title> + <simplelist type="inline"> + <member> + <link linkend="slash">slash</link> + </member> + <member> + <link linkend="backslash">backslash</link> + </member> + <member> + <link linkend="pinv">pinv</link> + </member> + <member> + <link linkend="qr">qr</link> + </member> + <member> + <link linkend="lufact">lufact</link> + </member> + <member> + <link linkend="lusolve">lusolve</link> + </member> + <member> + <link linkend="invr">invr</link> + </member> + <member> + <link linkend="coff">coff</link> + </member> + <member> + <link linkend="coffg">coffg</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/pt_BR/linear/linsolve.xml b/modules/linear_algebra/help/pt_BR/linear/linsolve.xml new file mode 100755 index 000000000..dffda99b7 --- /dev/null +++ b/modules/linear_algebra/help/pt_BR/linear/linsolve.xml @@ -0,0 +1,129 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * 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 + * + --> +<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="linsolve" xml:lang="en"> + <refnamediv> + <refname>linsolve</refname> + <refpurpose>solucionador de equações lineares</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Seqüência de Chamamento</title> + <synopsis>[x0,kerA]=linsolve(A,b [,x0])</synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>A</term> + <listitem> + <para> + uma matriz <literal>na x ma</literal> de reais (possivelmente + esparsa) + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>b</term> + <listitem> + <para> + um vetor <literal>na x 1</literal> (mesma dimensão de linha de + <literal>A</literal>) + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>x0</term> + <listitem> + <para>um vetor de reais </para> + </listitem> + </varlistentry> + <varlistentry> + <term>kerA</term> + <listitem> + <para> + uma matriz <literal>ma x k</literal> de reais + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para> + <literal>linsolve</literal> computa todas as soluções para <literal> + A*x+b=0 + </literal> + . + </para> + <para> + <literal>x0</literal> é uma solução particular (se houver) e + <literal> kerA= </literal>núcleo de <literal>A</literal>. Qualquer + <literal>x=x0+kerA*w</literal> com <literal>w</literal> arbitrário + satisfaz <literal> A*x+b=0</literal>. + </para> + <para> + Se um compatible <literal>x0</literal> compatível é dado na entrada, + <literal>x0</literal> é retornado. Senão, um <literal>x0</literal>, + compatível é retornado, se houver. + </para> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +A=rand(5,3)*rand(3,8); +b=A*ones(8,1);[x,kerA]=linsolve(A,b);A*x+b //b comatível +b=ones(5,1);[x,kerA]=linsolve(A,b);A*x+b //b incompatível +A=rand(5,5);[x,kerA]=linsolve(A,b), -inv(A)*b //x é único + +// A benchmark of sparse linear solver + +[A,descr,ref,mtype] = ReadHBSparse(SCI+"/modules/umfpack/examples/bcsstk24.rsa"); + +b = zeros(size(A,1),1); + +tic(); +res = umfpack(A,'\',b); +mprintf('\ntime needed to solve the system with umfpack: %.3f\n',toc()); + +tic(); +res = linsolve(A,b); +mprintf('\ntime needed to solve the system with linsolve: %.3f\n',toc()); + +tic(); +res = A\b; +mprintf('\ntime needed to solve the system with the backslash operator: %.3f\n',toc()); + ]]></programlisting> + </refsection> + <refsection> + <title> Ver Também</title> + <simplelist type="inline"> + <member> + <link linkend="inv">inv</link> + </member> + <member> + <link linkend="pinv">pinv</link> + </member> + <member> + <link linkend="colcomp">colcomp</link> + </member> + <member> + <link linkend="im_inv">im_inv</link> + </member> + <member> + <link linkend="backslash">backslash</link> + </member> + <member> + <link linkend="umfpack">umfpack</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/pt_BR/linear/lsq.xml b/modules/linear_algebra/help/pt_BR/linear/lsq.xml new file mode 100755 index 000000000..b3f9fc62f --- /dev/null +++ b/modules/linear_algebra/help/pt_BR/linear/lsq.xml @@ -0,0 +1,116 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * 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 + * + --> +<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="lsq" xml:lang="en"> + <refnamediv> + <refname>lsq</refname> + <refpurpose>problemas de mínimos quadrados lineares</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title> Seqüência de Chamamento </title> + <synopsis>X=lsq(A,B [,tol])</synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>A</term> + <listitem> + <para>matriz de reais ou de complexos (m x n) </para> + </listitem> + </varlistentry> + <varlistentry> + <term>B</term> + <listitem> + <para>matriz de reais ou de complexos (m x p)</para> + </listitem> + </varlistentry> + <varlistentry> + <term>tol</term> + <listitem> + <para>escalar positivo, usado para determinar o posto efetivo de A + (definido como sendo a ordem da maior submatriz triangular R11 + regente na fatoração QR com pivoteamento de A, cujo número de + condicionamento estimado <= 1/tol. O valor padrão de tol é + <literal>sqrt(%eps)</literal>. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>X</term> + <listitem> + <para>matriz de reais ou complexos (n x p)</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para> + <literal>X=lsq(A,B)</literal> computa a solução de mínimo quadrado + de menor norma da equação <literal>A*X=B</literal>, enquanto <literal>X=A + \ B + </literal> + computa uma solução de mínimo quadrado com no máximo + <literal>posto(A)</literal> componentes não-nulos por coluna. + </para> + </refsection> + <refsection> + <title>Referências</title> + <para> + <literal>lsq</literal> é baseado nas funções Lapack DGELSY para + matrizes de reais e ZGELSY para matrizes de complexos. + </para> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +//Construindo os dados +x=(1:10)'; + +y1=3*x+4.5+3*rand(x,'normal'); +y2=1.8*x+0.5+2*rand(x,'normal'); +plot2d(x,[y1,y2],[-2,-3]) +//Achando a regressão linear +A=[x,ones(x)];B=[y1,y2]; +X=lsq(A,B); + +y1e=X(1,1)*x+X(2,1); +y2e=X(1,2)*x+X(2,2); +plot2d(x,[y1e,y2e],[2,3]) + +//Diferença entre lsq(A,b) e A\b +A=rand(4,2)*rand(2,3);//uma matriz de posto 2 +b=rand(4,1); +X1=lsq(A,b) +X2=A\b +[A*X1-b, A*X2-b] //os resíduos são os mesmos + ]]></programlisting> + </refsection> + <refsection> + <title> Ver Também </title> + <simplelist type="inline"> + <member> + <link linkend="backslash">backslash</link> + </member> + <member> + <link linkend="inv">inv</link> + </member> + <member> + <link linkend="pinv">pinv</link> + </member> + <member> + <link linkend="rank">rank</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/pt_BR/linear/lu.xml b/modules/linear_algebra/help/pt_BR/linear/lu.xml new file mode 100755 index 000000000..d2418e3f7 --- /dev/null +++ b/modules/linear_algebra/help/pt_BR/linear/lu.xml @@ -0,0 +1,124 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * 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 + * + --> +<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="lu" xml:lang="en"> + <refnamediv> + <refname>lu</refname> + <refpurpose>fatores LU de eliminação Gaussiana</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title> Seqüência de Chamamento </title> + <synopsis>[L,U]= lu(A) + [L,U,E]= lu(A) + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>A</term> + <listitem> + <para>matriz de reais ou complexos (m x n) </para> + </listitem> + </varlistentry> + <varlistentry> + <term>L</term> + <listitem> + <para>matriz de reais ou complexos (m x min(m,n))</para> + </listitem> + </varlistentry> + <varlistentry> + <term>U</term> + <listitem> + <para>matriz de reais ou complexos (min(m,n) x n ) </para> + </listitem> + </varlistentry> + <varlistentry> + <term>E</term> + <listitem> + <para>uma matriz de permutação (n x n)</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para> + <literal>[L,U]= lu(A)</literal> produz duas matrizes + <literal>L</literal> e <literal>U</literal> tais que <literal>A = + L*U + </literal> + com <literal>U</literal> triangular superior e + <literal>E*L</literal> triangular infeiror para uma matriz de permutação + <literal>E</literal>. + </para> + <para> + Se <literal>A</literal> tem posto <literal>k</literal>, as linhas de + <literal>k+1</literal> a <literal>n</literal> de <literal>U</literal> são + zeros. + </para> + <para> + <literal>[L,U,E]= lu(A)</literal> produz três matrizes + <literal>L</literal>, <literal>U</literal> e <literal>E</literal> tais que + <literal>E*A = L*U</literal> com <literal>U</literal> triangular superior + e <literal>E*L</literal> l triangular inferior para uma matriz de + permutação <literal>E</literal>. + </para> + <para> + Se <literal>A</literal> é uma matriz de reais, usando as funções + <literal>lufact</literal> e <literal>luget</literal> é possível obter as + matrizes de permutação e, também, quando <literal>A</literal> não é de + posto cheio, a compressão de colunas da matriz + <literal>L</literal>. + </para> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +a=rand(4,4); +[l,u]=lu(a) +norm(l*u-a) + +[h,rk]=lufact(sparse(a)) // função lufact com matrizes esparsas +[P,L,U,Q]=luget(h); +ludel(h) +P=full(P);L=full(L);U=full(U);Q=full(Q); +norm(P*L*U*Q-a) // P e Q são as matrizes de permutação + ]]></programlisting> + </refsection> + <refsection> + <title> Ver Também </title> + <simplelist type="inline"> + <member> + <link linkend="lufact">lufact</link> + </member> + <member> + <link linkend="luget">luget</link> + </member> + <member> + <link linkend="lusolve">lusolve</link> + </member> + <member> + <link linkend="qr">qr</link> + </member> + <member> + <link linkend="svd">svd</link> + </member> + </simplelist> + </refsection> + <refsection> + <title> Função Usada</title> + <para>As decomposições de lu são baseadas nas rotinas de Lapack DGETRF + para matrizes reais e ZGETRF para o caso de matrizes complexas. + </para> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/pt_BR/linear/pinv.xml b/modules/linear_algebra/help/pt_BR/linear/pinv.xml new file mode 100755 index 000000000..9d1a5f795 --- /dev/null +++ b/modules/linear_algebra/help/pt_BR/linear/pinv.xml @@ -0,0 +1,83 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * 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 + * + --> +<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="pinv" xml:lang="en"> + <refnamediv> + <refname>pinv</refname> + <refpurpose>pseudo-inversa</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Seqüência de Chamamento</title> + <synopsis>pinv(A,[tol])</synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>A</term> + <listitem> + <para>matriz de reais ou complexos</para> + </listitem> + </varlistentry> + <varlistentry> + <term>tol</term> + <listitem> + <para>número real</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para> + <literal>X= pinv(A)</literal> produz uma matriz + <literal>X</literal> de mesma dimensão que <literal>A'</literal> tal + que: + </para> + <para> + <literal>A*X*A = A, X*A*X = X</literal> e ambas + <literal>A*X</literal> e <literal>X*A</literal> são Hermitianas. + </para> + <para>A computação é baseada em SVD e qualquer valor singular abaixo da + tolerância é tratado como zero: esta tolerância é acessada por + <literal>X=pinv(A,tol)</literal>. + </para> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +A=rand(5,2)*rand(2,4); +norm(A*pinv(A)*A-A,1) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Ver Também</title> + <simplelist type="inline"> + <member> + <link linkend="rank">rank</link> + </member> + <member> + <link linkend="svd">svd</link> + </member> + <member> + <link linkend="qr">qr</link> + </member> + </simplelist> + </refsection> + <refsection> + <title>Função Usada</title> + <para> + <literal>pinv</literal> é baseada na decomposição em valores + singulares (função do Scilab <literal>svd</literal>). + </para> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/pt_BR/linear/qr.xml b/modules/linear_algebra/help/pt_BR/linear/qr.xml new file mode 100755 index 000000000..bf20c82ce --- /dev/null +++ b/modules/linear_algebra/help/pt_BR/linear/qr.xml @@ -0,0 +1,200 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * 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 + * + --> +<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="qr" xml:lang="en"> + <refnamediv> + <refname>qr</refname> + <refpurpose>QR decomposição</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title> Seqüência de Chamamento </title> + <synopsis>[Q,R]=qr(X [,"e"]) + [Q,R,E]=qr(X [,"e"]) + [Q,R,rk,E]=qr(X [,tol]) + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros </title> + <variablelist> + <varlistentry> + <term>X</term> + <listitem> + <para>matriz de reais ou complexos</para> + </listitem> + </varlistentry> + <varlistentry> + <term>tol</term> + <listitem> + <para>número real não-negativo</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Q</term> + <listitem> + <para>matriz quadrada ortogonal ou unitária</para> + </listitem> + </varlistentry> + <varlistentry> + <term>R</term> + <listitem> + <para> + matriz com as mesmas dimensões de <literal>X</literal> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>E</term> + <listitem> + <para>matriz de permutação </para> + </listitem> + </varlistentry> + <varlistentry> + <term>rk</term> + <listitem> + <para> + inteiro (posto QR de <literal>X</literal>) + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <variablelist> + <varlistentry> + <term>[Q,R] = qr(X)</term> + <listitem> + <para> + pproduz uma matriz triangular superior <literal>R</literal> de + mesma dimensão que <literal>X</literal> e uma matriz ortogonal + (unitária no caso de matriz de complexos) <literal>Q</literal> tais + que <literal>X = Q*R</literal>. <literal>[Q,R] = qr(X,"e")</literal> + produz um "economia de tamanho": Se <literal>X</literal> é m-por-n + com m > n, então, apenas as primeiras n colunas de + <literal>Q</literal> são computadas assim como as primeiras n linhas + de <literal>R</literal>. + </para> + <para> + De <literal>Q*R = X</literal> , segue que a k-ésima coluna da + matriz <literal>X</literal>, é expressa como combinação linear das k + primeiras colunas de <literal>Q</literal> (com coeficientes + <literal> R(1,k), ..., R(k,k) </literal>). As k primeiras colunas de + <literal>Q</literal> formam uma base ortogonal para o subespaço + gerado pelas k priemiras colunas de <literal>X</literal>. Se a + coluna <literal>k</literal> de <literal>X</literal> (i.e. + <literal>X(:,k)</literal> ) é uma combinação linear das + <literal>p</literal> primeiras colunas de <literal>X</literal>, + então, as entradas de <literal>R(p+1,k), ..., R(k,k)</literal> são + zeros. Neste caso, <literal>R</literal> é trapezoidal superior. Se + <literal>X</literal> tem posto <literal>rk</literal>, as linhas + <literal>R(rk+1,:), R(rk+2,:), ...</literal> são zeros. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>[Q,R,E] = qr(X)</term> + <listitem> + <para>produz uma matriz de permutação (de colunas) + <literal>E</literal>, uma matriz triangular superior + <literal>R</literal> com elementos na diagonal decrescentes e uma + matriz ortogonal (ou unitaria) <literal>Q</literal> tais que + <literal>X*E = Q*R</literal>. Se <literal>rk</literal> é o posto de + <literal>X</literal>, as <literal>rk</literal> primeiras entradas ao + longo da diagonal de <literal>R</literal>, i.e. <literal>R(1,1), + R(2,2), ..., R(rk,rk) + </literal> + são todas diferentes de zero. + <literal>[Q,R,E] = qr(X,"e")</literal> produz uma "economia de + tamanho": Se <literal>X</literal> ié m-por-n com m > n, então, + apenas as n primeiras colunas de <literal>Q</literal> são computadas + tanto quanto as n priemiras linhas de <literal>R</literal>. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>[Q,R,rk,E] = qr(X ,tol)</term> + <listitem> + <para> + retorna <literal>rk</literal> = estimativa do posto de + <literal>X</literal> i.e. <literal>rk</literal> é o número elementos + da diagonal de <literal>R</literal> que são maiores que um dado + limiar <literal>tol</literal>. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>[Q,R,rk,E] = qr(X)</term> + <listitem> + <para> + retorna <literal>rk</literal> = estimativa do posto de + <literal>X</literal> i.e. <literal>rk</literal> é o número de + elementos da diagonal de <literal>R</literal> que são maiores que + <literal>tol=R(1,1)*%eps*max(size(R))</literal>. Veja + <literal>rankqr</literal> para uma fatoração QR que revela o posto + usando o número de condicionamento de <literal>R</literal>. + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +// fatoração QR, caso genérico +// X é alta (posto cheio) +X=rand(5,2);[Q,R]=qr(X); [Q'*X R] + +//X é gorda (posto cheio) +X=rand(2,3);[Q,R]=qr(X); [Q'*X R] + +//coluna 4 de X é uma combinação linear das colunas 1 e 2: +X=rand(8,5);X(:,4)=X(:,1)+X(:,2); [Q,R]=qr(X); R, R(:,4) + +//X tem posto 2, linhas 3 a $ de R são zero: +X=rand(8,2)*rand(2,5);[Q,R]=qr(X); R + +//Avaliando o posto rk: pivotação por colunas ==> rk primeiras +//As entradas diagonais de R são não-nulas: +A=rand(5,2)*rand(2,5); +[Q,R,rk,E] = qr(A,1.d-10); +norm(Q'*A-R) +svd([A,Q(:,1:rk)]) //span(A) =span(Q(:,1:rk)) (span="gerado") + ]]></programlisting> + </refsection> + <refsection> + <title> Ver Também</title> + <simplelist type="inline"> + <member> + <link linkend="rankqr">rankqr</link> + </member> + <member> + <link linkend="rank">rank</link> + </member> + <member> + <link linkend="svd">svd</link> + </member> + <member> + <link linkend="rowcomp">rowcomp</link> + </member> + <member> + <link linkend="colcomp">colcomp</link> + </member> + </simplelist> + </refsection> + <refsection> + <title> Funções Usadas</title> + <para>A decomposição qr é baseada nas rotinas de Lapack DGEQRF, DGEQPF, + DORGQR para as matrizes de reais ZGEQRF, ZGEQPF, ZORGQR para as matrizes + de complexos. + </para> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/pt_BR/linear/rankqr.xml b/modules/linear_algebra/help/pt_BR/linear/rankqr.xml new file mode 100755 index 000000000..a09aa75b1 --- /dev/null +++ b/modules/linear_algebra/help/pt_BR/linear/rankqr.xml @@ -0,0 +1,147 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * 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 + * + --> +<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="rankqr" xml:lang="en"> + <refnamediv> + <refname>rankqr</refname> + <refpurpose>fatoração QR com revelação do posto</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title> Seqüência de Chamamento </title> + <synopsis>[Q,R,JPVT,RANK,SVAL]=rankqr(A, [RCOND,JPVT])</synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>A</term> + <listitem> + <para>matriz de reais ou complexos</para> + </listitem> + </varlistentry> + <varlistentry> + <term>RCOND</term> + <listitem> + <para> número real usado para determinar o posto efetivo de + <literal>A</literal>, que é definido como sendo a ordem da maior + submatriz regente triangular <literal>R11</literal> na fatoração QR + com pivoteamento de <literal>A</literal>, cujo número de + condicionamento estimado é < <literal>1/RCOND</literal>. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>JPVT</term> + <listitem> + <para> + vetor de inteiros nas entradas, se <literal>JPVT(i)</literal> + não é 0, a <literal>i</literal>-ésimo coluna de <literal> + A + </literal> + épermtutada para a frente de <literal>AP</literal>, + senão, a coluna <literal>i</literal> é uma coluna livre. Na saída, + se <literal>JPVT(i) = k</literal>, então a + <literal>i</literal>-ésima coluna de <literal>A*P</literal> era a + <literal>k</literal>-ésima coluna de <literal>A</literal>. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>RANK</term> + <listitem> + <para> + posto efetivo de <literal>A</literal>, i.e., a ordem da + submatriz <literal>R11</literal>. É o mesmo que a ordem da submatriz + <literal>T1</literal> na fatoração ortogonal completa de + <literal>A</literal>. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>SVAL</term> + <listitem> + <para>vetor de reais com 3 componentes; as estimativas de alguns dos + valores singulares do fator triangular <literal>R</literal>. + </para> + <para> + <literal>SVAL(1)</literal> é o maior valor singular de + <literal>R(1:RANK,1:RANK)</literal>; + </para> + <para> + <literal>SVAL(2)</literal> é o menor valor singular de + <literal>R(1:RANK,1:RANK)</literal>; + </para> + <para> + <literal>SVAL(3) </literal>é o menor valor singular de + <literal>R(1:RANK+1,1:RANK+1)</literal>, se <literal>RANK</literal> + < <literal>MIN(M,N)</literal>, ou de + <literal>R(1:RANK,1:RANK)</literal>, caso contrário. + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para>Computa (opcionalmente) uma fatoração QR com revelação do posto de + uma matriz de reais geral M-por-N, ou de complexos <literal>A</literal>, + que pode ser deficiente de posto, e estima seu posto efetivo usando + estimativa de condição incremental. + </para> + <para>A rotina usa uma fatoração QR com pivoteamento de colunas:</para> + <programlisting role=""><![CDATA[ +A * P = Q * R, onde R = [ R11 R12 ], + [ 0 R22 ] + ]]></programlisting> + <para> + com <literal>R11</literal> definida como a maior submatriz regente + cujo número de condição estimado é menor que <literal>1/RCOND</literal>. A + ordem de <literal>R11</literal>, <literal>RANK</literal>, é o posto + efetivo de<literal>A</literal>. + </para> + <para>Se a fatoração triangular revela o posto (que será o caso se as + colunas regentes forem bem condicionadas), então + <literal>SVAL(1)</literal> também será uma estimativa para o maior valor + singular de <literal>A</literal>, e <literal>SVAL(2)</literal> e + <literal>SVAL(3)</literal> serão estimativas para o + <literal>RANK</literal>-ésimo e <literal>(RANK+1)</literal>-ésimo valores + singulares de <literal>A</literal>, respectivamente. + </para> + <para>Examinando-se estes valores, pode-se confirmar que o posto é bem + definido a respeito do valor escolhido de <literal>RCOND</literal>. A + razão <literal>SVAL(1)/SVAL(2)</literal> é uma estimativa do número de + condicionamento de <literal>R(1:RANK,1:RANK)</literal>. + </para> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +A=rand(5,3)*rand(3,7); +[Q,R,JPVT,RANK,SVAL]=rankqr(A,%eps) + ]]></programlisting> + </refsection> + <refsection> + <title> Ver Também </title> + <simplelist type="inline"> + <member> + <link linkend="qr">qr</link> + </member> + <member> + <link linkend="rank">rank</link> + </member> + </simplelist> + </refsection> + <refsection> + <title> Funções Usadas</title> + <para>Rotinas da biblioteca Slicot MB03OD, ZB03OD.</para> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/pt_BR/markov/CHAPTER b/modules/linear_algebra/help/pt_BR/markov/CHAPTER new file mode 100755 index 000000000..c29eb913c --- /dev/null +++ b/modules/linear_algebra/help/pt_BR/markov/CHAPTER @@ -0,0 +1,2 @@ +title = Markov Matrices + diff --git a/modules/linear_algebra/help/pt_BR/markov/classmarkov.xml b/modules/linear_algebra/help/pt_BR/markov/classmarkov.xml new file mode 100755 index 000000000..affa1f588 --- /dev/null +++ b/modules/linear_algebra/help/pt_BR/markov/classmarkov.xml @@ -0,0 +1,102 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * 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 + * + --> +<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="classmarkov" xml:lang="en"> + <refnamediv> + <refname>classmarkov</refname> + <refpurpose>classes transientes e recorrentes da matriz de + Markov + </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title> Seqüência de Chamamento</title> + <synopsis>[perm,rec,tr,indsRec,indsT]=classmarkov(M)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>M</term> + <listitem> + <para>matriz de Markov N x N de reais. A soma das entradas em cada + linha deve ser acrescida em uma unidade + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>perm</term> + <listitem> + <para>vetor de permutação de inteiros</para> + </listitem> + </varlistentry> + <varlistentry> + <term>rec, tr</term> + <listitem> + <para>vetor de inteiros, número (número de estados em cada classe + recorrente, número de estados transientes) + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>indsRec,indsT</term> + <listitem> + <para>vetor de inteiros (índices dos estados recorrentes e + transientes) + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para> + Retorna um vetor de permutação <literal>perm</literal> tal + que + </para> + <programlisting role=""><![CDATA[ +M(perm,perm) = [M11 0 0 0 0 0] + [0 M22 0 0 0] + [0 0 M33 0] + [ ... ] + [0 0 Mrr 0] + [* * * Q] + ]]></programlisting> + <para> + Cada <literal>Mii</literal> é uma matriz de Markov de dimensão + <literal>rec(i) i=1,..,r</literal>. <literal>Q</literal> é uma submatriz + de Markov de dimensão <literal>tr</literal>. Estados de 1 a sum(rec) são + recorrentes e estados de r+1 a n são transientes. Tem-se + <literal>perm=[indsRec,indsT]</literal> onde indsRec é um vetor de tamanho + sum(rec) e indsT é um vetor de tamanho tr. + </para> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +//P tem 2 classes recorrentes (com 2 e 1 estados) e 2 estados transientes +P=genmarkov([2,1],2,'perm') +[perm,rec,tr,indsRec,indsT]=classmarkov(P); +P(perm,perm) + ]]></programlisting> + </refsection> + <refsection> + <title> Ver Também</title> + <simplelist type="inline"> + <member> + <link linkend="genmarkov">genmarkov</link> + </member> + <member> + <link linkend="eigenmarkov">eigenmarkov</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/pt_BR/markov/eigenmarkov.xml b/modules/linear_algebra/help/pt_BR/markov/eigenmarkov.xml new file mode 100755 index 000000000..8926b8738 --- /dev/null +++ b/modules/linear_algebra/help/pt_BR/markov/eigenmarkov.xml @@ -0,0 +1,83 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * 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 + * + --> +<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="eigenmarkov" xml:lang="en"> + <refnamediv> + <refname>eigenmarkov</refname> + <refpurpose>Autovetores esquerdo e direito normalizados de + Markov + </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title> Seqüência de Chamamento</title> + <synopsis>[M,Q]=eigenmarkov(P)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>P</term> + <listitem> + <para>matriz de Markov N x N de reais. A soma das entradas de cada + linha deve ser acrescida de uma unidade + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>M</term> + <listitem> + <para>matriz de reais de N colunas</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Q</term> + <listitem> + <para>matriz de reais de N linhas </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para>Retorna os autovetores esquerdo e direito normalizados associados ao + autovalor 1 da matriz P de transição de Markov. Se a multiplicidade deste + autovalor é m e P é N x N, M é uma matriz m x N e Q é uma matriz N x m. + M(k,:) é o vetor de distribuição de probabilidade associado ao k-ésimo + conjunto ergódico (classe recorrente). M(k,x) é zero se x não está na + k-ésima classe recorrente. Q(x,k) é a probabilidade de se terminar na + k-ésima classe recorrente começando de x. Se <literal>P^k</literal> + converge para <literal>k</literal> (sem autovalores no círculo unitário, + exceto 1), então o limite é <literal>Q*M</literal> (auto-projeção). + </para> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +//P tem duas classes recorrentes (com 2 e 1 estados) e 2 estados transientes +P=genmarkov([2,1],2) +[M,Q]=eigenmarkov(P); +P*Q-Q +Q*M-P^20 + ]]></programlisting> + </refsection> + <refsection> + <title> Ver Também</title> + <simplelist type="inline"> + <member> + <link linkend="genmarkov">genmarkov</link> + </member> + <member> + <link linkend="classmarkov">classmarkov</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/pt_BR/markov/genmarkov.xml b/modules/linear_algebra/help/pt_BR/markov/genmarkov.xml new file mode 100755 index 000000000..a8da3164d --- /dev/null +++ b/modules/linear_algebra/help/pt_BR/markov/genmarkov.xml @@ -0,0 +1,89 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * 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 + * + --> +<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="genmarkov" xml:lang="en"> + <refnamediv> + <refname>genmarkov</refname> + <refpurpose>gera uma matriz de Markov aleatória com classes recorrentes e + transientes + </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title> Seqüência de Chamamento </title> + <synopsis>M=genmarkov(rec,tr) + M=genmarkov(rec,tr,flag) + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>rec</term> + <listitem> + <para>vetor linha de inteiros (sua dimensão é o número de classes + recorrentes) + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>tr</term> + <listitem> + <para>inteiro (número de estados transientes)</para> + </listitem> + </varlistentry> + <varlistentry> + <term>M</term> + <listitem> + <para>matriz de Markov de reais. A soma das entradas de cada linha + deve ser acrecsida de uma unidade + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>flag</term> + <listitem> + <para> + string <literal>'perm'</literal>. Se fornecido, uma permutação + dos estados é feita. + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title> Descrição </title> + <para>Retorna em M uma matriz de probabilidade de transição de Markov + aleatória com <literal>rec(1),...rec($)</literal> entradas respectivamente + e tr estados transientes. + </para> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +//P tem duas classes recorrentes (com 2 e 1 states) e 2 estados transientes +P=genmarkov([2,1],2,'perm') +[perm,rec,tr,indsRec,indsT]=classmarkov(P); +P(perm,perm) + ]]></programlisting> + </refsection> + <refsection> + <title> Ver Também</title> + <simplelist type="inline"> + <member> + <link linkend="classmarkov">classmarkov</link> + </member> + <member> + <link linkend="eigenmarkov">eigenmarkov</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/pt_BR/matrix/CHAPTER b/modules/linear_algebra/help/pt_BR/matrix/CHAPTER new file mode 100755 index 000000000..bb89125cd --- /dev/null +++ b/modules/linear_algebra/help/pt_BR/matrix/CHAPTER @@ -0,0 +1,2 @@ +title = Matrix Analysis + diff --git a/modules/linear_algebra/help/pt_BR/matrix/cond.xml b/modules/linear_algebra/help/pt_BR/matrix/cond.xml new file mode 100755 index 000000000..78d153da3 --- /dev/null +++ b/modules/linear_algebra/help/pt_BR/matrix/cond.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) 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="cond" xml:lang="en"> + <refnamediv> + <refname>cond</refname> + <refpurpose>número de condicionamento de uma matriz</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Seqüência de Chamamento</title> + <synopsis>cond(X)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>X</term> + <listitem> + <para>rmatriz quadrada de reais ou complexos </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para> + Número de condicionamento em norma-2. <literal>cond(X)</literal> é a + razão entre o maior e o menor valor singular de + <literal>X</literal>. + </para> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +A=testmatrix('hilb',6); +cond(A) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Ver Também</title> + <simplelist type="inline"> + <member> + <link linkend="rcond">rcond</link> + </member> + <member> + <link linkend="svd">svd</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/pt_BR/matrix/det.xml b/modules/linear_algebra/help/pt_BR/matrix/det.xml new file mode 100755 index 000000000..d294693e7 --- /dev/null +++ b/modules/linear_algebra/help/pt_BR/matrix/det.xml @@ -0,0 +1,94 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * 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 + * + --> +<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="det" xml:lang="en"> + <refnamediv> + <refname>det</refname> + <refpurpose>determinante</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Seqüência de Chamamento</title> + <synopsis>det(X) + [e,m]=det(X) + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>X</term> + <listitem> + <para>matriz quadrada de reais ou complexos, matriz de polinômios ou + de razões de polinômios + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>m</term> + <listitem> + <para>número real ou complexo, a mantissa de base 10 do + determinante + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>e</term> + <listitem> + <para>inteiro, o expoente de base 10 do determinante</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para> + <literal>det(X)</literal> ( <literal>m*10^e</literal> é o + determinante da matriz quadrada <literal>X)</literal>. + </para> + <para> + Para uma matriz de polinômios, <literal>det(X)</literal> é + equivalente a <literal>determ(X)</literal>. + </para> + <para> + Para matrizes de razões de polinômios <literal>det(X)</literal> é + equivalente a <literal>detr(X)</literal>. + </para> + </refsection> + <refsection> + <title>Referências</title> + <para>As computações da função det são baseadas nas rotinas do LAPACK + DGETRF para matrizes de reais e ZGETRF para o caso de matrizes de + complexos. + </para> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +x=poly(0,'x'); +det([x,1+x;2-x,x^2]) +w=ssrand(2,2,4);roots(det(systmat(w))),trzeros(w) //zeros do sistema linear +A=rand(3,3); +det(A), prod(spec(A)) + ]]></programlisting> + </refsection> + <refsection> + <title> Ver Também</title> + <simplelist type="inline"> + <member> + <link linkend="detr">detr</link> + </member> + <member> + <link linkend="determ">determ</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/pt_BR/matrix/orth.xml b/modules/linear_algebra/help/pt_BR/matrix/orth.xml new file mode 100755 index 000000000..d352ff212 --- /dev/null +++ b/modules/linear_algebra/help/pt_BR/matrix/orth.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) 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="orth" xml:lang="en"> + <refnamediv> + <refname>orth</refname> + <refpurpose>base ortogonal</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Seqüência de Chamamento</title> + <synopsis>Q=orth(A)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>A</term> + <listitem> + <para>matriz de reais ou complexos</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Q</term> + <listitem> + <para>matriz de reais ou complexos</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para> + <literal>Q=orth(A)</literal> retorna <literal>Q</literal>, uma base + ortogonal para o gerado de <literal>A</literal>. Im(<literal>Q</literal>) + = Im(<literal>A</literal>) e <literal>Q'*Q=eye</literal>. + </para> + <para> + O número de colunas de <literal>Q</literal> é o posto de + <literal>A</literal> como determinado pelo algoritmo QR. + </para> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +A=rand(5,3)*rand(3,4); +[X,dim]=rowcomp(A);X=X'; +svd([orth(A),X(:,1:dim)]) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Ver Também</title> + <simplelist type="inline"> + <member> + <link linkend="qr">qr</link> + </member> + <member> + <link linkend="rowcomp">rowcomp</link> + </member> + <member> + <link linkend="colcomp">colcomp</link> + </member> + <member> + <link linkend="range">range</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/pt_BR/matrix/rank.xml b/modules/linear_algebra/help/pt_BR/matrix/rank.xml new file mode 100755 index 000000000..3cff123f5 --- /dev/null +++ b/modules/linear_algebra/help/pt_BR/matrix/rank.xml @@ -0,0 +1,88 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * 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 + * + --> +<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="rank" xml:lang="en"> + <refnamediv> + <refname>rank</refname> + <refpurpose>posto</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title> Seqüência de Chamamento </title> + <synopsis>[i]=rank(X) + [i]=rank(X,tol) + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>X</term> + <listitem> + <para>matriz de reais ou complexos </para> + </listitem> + </varlistentry> + <varlistentry> + <term>tol</term> + <listitem> + <para>número real não-negativo</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para> + <literal>rank(X)</literal> é o posto numérico de + <literal>X</literal> i.e. o número de valores singulares de X que são + maiores que <literal>norm(size(X),'inf') * norm(X) * + %eps + </literal> + . + </para> + <para> + <literal>rank(X,tol)</literal> é o número de valores singulares de + <literal>X</literal> que são maiores que <literal>tol</literal>. + </para> + <para> + Note que o valor padrão de <literal>tol</literal> é proporcional a + <literal>norm(X)</literal>. Como conseqüência, + <literal>rank([1.d-80,0;0,1.d-80])</literal> é 2 !. + </para> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +rank([1.d-80,0;0,1.d-80]) +rank([1,0;0,1.d-80]) + ]]></programlisting> + </refsection> + <refsection> + <title> Ver Também</title> + <simplelist type="inline"> + <member> + <link linkend="svd">svd</link> + </member> + <member> + <link linkend="qr">qr</link> + </member> + <member> + <link linkend="rowcomp">rowcomp</link> + </member> + <member> + <link linkend="colcomp">colcomp</link> + </member> + <member> + <link linkend="lu">lu</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/pt_BR/matrix/rcond.xml b/modules/linear_algebra/help/pt_BR/matrix/rcond.xml new file mode 100755 index 000000000..0fe708628 --- /dev/null +++ b/modules/linear_algebra/help/pt_BR/matrix/rcond.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) 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="rcond" xml:lang="en"> + <refnamediv> + <refname>rcond</refname> + <refpurpose>número de condicionamento inverso</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Seqüência de Chamamento</title> + <synopsis>rcond(X)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>X</term> + <listitem> + <para>matriz quadrada de reais ou complexos</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para> + <literal>rcond(X)</literal> é uma estimativa para a recíproca da + condição de <literal>X</literal> na norma-1. + </para> + <para> + Se <literal>X</literal> é bem condicionada, + <literal>rcond(X)</literal> é próximo a 1. Senão, + <literal>rcond(X)</literal> é próximo a 0. + </para> + <para> + <literal>[r,z]=rcond(X)</literal> ajusta <literal>r</literal> a + <literal>rcond(X)</literal> e retorna <literal>z</literal> tal que + <literal>norm(X*z,1) = r*norm(X,1)*norm(z,1)</literal> + </para> + <para> + Portanto, se <literal>rcond</literal> é pequeno, + <literal>z</literal> é um vetor do núcleo. + </para> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +A=diag([1:10]); +rcond(A) +A(1,1)=0.000001; +rcond(A) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Ver Também</title> + <simplelist type="inline"> + <member> + <link linkend="svd">svd</link> + </member> + <member> + <link linkend="cond">cond</link> + </member> + <member> + <link linkend="inv">inv</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/pt_BR/matrix/rref.xml b/modules/linear_algebra/help/pt_BR/matrix/rref.xml new file mode 100755 index 000000000..c785ce98e --- /dev/null +++ b/modules/linear_algebra/help/pt_BR/matrix/rref.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) 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="rref" xml:lang="en"> + <refnamediv> + <refname>rref</refname> + <refpurpose>computa a matriz-linha reduzida a forma escada por + transformações de LU + </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Seqüência de Chamamento</title> + <synopsis>R=rref(A)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>A</term> + <listitem> + <para>matriz m x n com entradas escalares </para> + </listitem> + </varlistentry> + <varlistentry> + <term>R</term> + <listitem> + <para>matriz m x n, forma escada de A</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para> + <literal>rref</literal> computa a forma escada de linhas reduzidas + da matriz dada pela decomposição esquerda LU. Se for necessária a + transformação usada, basta chamar <literal>X=rref([A,eye(m,m)])</literal> + A forma escada de linhas reduzidas <literal>R</literal> é + <literal>X(:,1:n)</literal> e a transformação esquerda + <literal>L</literal> ié dada por <literal>X(:,n+1:n+m)</literal> tal como + <literal>L*A=R</literal> + </para> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +A=[1 2;3 4;5 6]; +X=rref([A,eye(3,3)]); +R=X(:,1:2) +L=X(:,3:5);L*A + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Ver Também</title> + <simplelist type="inline"> + <member> + <link linkend="lu">lu</link> + </member> + <member> + <link linkend="qr">qr</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/pt_BR/matrix/trace.xml b/modules/linear_algebra/help/pt_BR/matrix/trace.xml new file mode 100755 index 000000000..4e168bcc2 --- /dev/null +++ b/modules/linear_algebra/help/pt_BR/matrix/trace.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) 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="trace" xml:lang="en"> + <refnamediv> + <refname>trace</refname> + <refpurpose>traço de uma matriz</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Seqüência de Chamamento</title> + <synopsis>trace(X)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>X</term> + <listitem> + <para>matriz de reais ou complexos, matriz de polinômios ou de + razões de polinômios. + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para> + <literal>trace(X)</literal> é o traço da matriz + <literal>X</literal>. + </para> + <para> + É o mesmo que <literal>sum(diag(X))</literal>. + </para> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +A=rand(3,3); +trace(A)-sum(spec(A)) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Ver Também</title> + <simplelist type="inline"> + <member> + <link linkend="det">det</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/pt_BR/pencil/CHAPTER b/modules/linear_algebra/help/pt_BR/pencil/CHAPTER new file mode 100755 index 000000000..86d1da116 --- /dev/null +++ b/modules/linear_algebra/help/pt_BR/pencil/CHAPTER @@ -0,0 +1,2 @@ +title = Matrix Pencil + diff --git a/modules/linear_algebra/help/pt_BR/pencil/companion.xml b/modules/linear_algebra/help/pt_BR/pencil/companion.xml new file mode 100755 index 000000000..1778f00ce --- /dev/null +++ b/modules/linear_algebra/help/pt_BR/pencil/companion.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) 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="companion" xml:lang="en"> + <refnamediv> + <refname>companion</refname> + <refpurpose>matriz companheira</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title> Seqüência de Chamamento </title> + <synopsis>A=companion(p)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>p</term> + <listitem> + <para>polinômio ou vetor de polinômios </para> + </listitem> + </varlistentry> + <varlistentry> + <term>A</term> + <listitem> + <para>matriz quadrada</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para> + Retorna uma matriz quadrada <literal>A</literal> com o polinômio + característico igual a <literal>p</literal> se <literal>p</literal> é + mônico. Se <literal>p</literal> não é mônico, o polinômio característico + de <literal>A</literal> é igual a <literal>p/c</literal> onde + <literal>c</literal> é o coeficiente do termo de maior grau em + <literal>p</literal>. + </para> + <para> + Se <literal>p</literal> é um vetor de polinômios mônicos, + <literal>A</literal> é diagonal em blocos, e o polinômio característico do + i-ésimo bloco é <literal>p(i)</literal>. + </para> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +s=poly(0,'s'); +p=poly([1,2,3,4,1],'s','c') +det(s*eye()-companion(p)) +roots(p) +spec(companion(p)) + ]]></programlisting> + </refsection> + <refsection> + <title> Ver Também</title> + <simplelist type="inline"> + <member> + <link linkend="spec">spec</link> + </member> + <member> + <link linkend="poly">poly</link> + </member> + <member> + <link linkend="randpencil">randpencil</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/pt_BR/pencil/ereduc.xml b/modules/linear_algebra/help/pt_BR/pencil/ereduc.xml new file mode 100755 index 000000000..92a68a905 --- /dev/null +++ b/modules/linear_algebra/help/pt_BR/pencil/ereduc.xml @@ -0,0 +1,123 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * 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 + * + --> +<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="ereduc" xml:lang="en"> + <refnamediv> + <refname>ereduc</refname> + <refpurpose>computa de forma escada de colunas da matriz por + transformações qz + </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title> Seqüência de Chamamento </title> + <synopsis>[E,Q,Z [,stair [,rk]]]=ereduc(X,tol)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>X</term> + <listitem> + <para>matriz m x n de entradas reais </para> + </listitem> + </varlistentry> + <varlistentry> + <term>tol</term> + <listitem> + <para>escalar real positivo </para> + </listitem> + </varlistentry> + <varlistentry> + <term>E</term> + <listitem> + <para>matriz em forma escada de colunas </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Q</term> + <listitem> + <para>matriz unitária m x m </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Z</term> + <listitem> + <para>matriz unitária n x n </para> + </listitem> + </varlistentry> + <varlistentry> + <term>stair</term> + <listitem> + <para>vetor de índices,</para> + <variablelist> + <varlistentry> + <term>*</term> + <listitem> + <para> + <literal>ISTAIR(i) = + j</literal> se o elemento da + borda <literal>E(i,j)</literal> é uma quina. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>*</term> + <listitem> + <para> + <literal>ISTAIR(i) = - j</literal> se o elemento da + borda <literal>E(i,j)</literal> não é uma quina. + </para> + </listitem> + </varlistentry> + </variablelist> + <para> + <literal>(i=1,...,M)</literal> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>rk</term> + <listitem> + <para>inteiro, posto estimado da matriz</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para> + Dada uma matriz X <literal>mx n</literal> (não necessariamente + regular), a função ereduc calcula a matriz unitária transformada + <literal>E=Q*X*Z</literal> que está na forma escada de colunas (forma + trapezoidal). Ainda, o posto da matriz <literal>X</literal> é + determinado. + </para> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +X=[1 2 3;4 5 6] +[E,Q,Z ,stair ,rk]=ereduc(X,1.d-15) + ]]></programlisting> + </refsection> + <refsection> + <title> Ver Também </title> + <simplelist type="inline"> + <member> + <link linkend="fstair">fstair</link> + </member> + </simplelist> + </refsection> + <refsection> + <title>Autores</title> + <para>Th.G.J. Beelen (Philips Glass Eindhoven). SLICOT</para> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/pt_BR/pencil/fstair.xml b/modules/linear_algebra/help/pt_BR/pencil/fstair.xml new file mode 100755 index 000000000..e78b6eae9 --- /dev/null +++ b/modules/linear_algebra/help/pt_BR/pencil/fstair.xml @@ -0,0 +1,175 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * 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 + * + --> +<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="fstair" xml:lang="en"> + <refnamediv> + <refname>fstair</refname> + <refpurpose>computa a forma escada de feixe de colunas por transformações + qz + </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title> Seqüência de Chamamento </title> + <synopsis>[AE,EE,QE,ZE,blcks,muk,nuk,muk0,nuk0,mnei]=fstair(A,E,Q,Z,stair,rk,tol)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>A</term> + <listitem> + <para>matriz m x n com entradas reais </para> + </listitem> + </varlistentry> + <varlistentry> + <term>tol</term> + <listitem> + <para>escalar real positivo</para> + </listitem> + </varlistentry> + <varlistentry> + <term>E</term> + <listitem> + <para>matriz de forma escada de colunas </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Q</term> + <listitem> + <para>matriz unitária m x m </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Z</term> + <listitem> + <para>matriz unitária n x n </para> + </listitem> + </varlistentry> + <varlistentry> + <term>stair</term> + <listitem> + <para>vetor de índices (ver ereduc)</para> + </listitem> + </varlistentry> + <varlistentry> + <term>rk</term> + <listitem> + <para> inteiro, posto estimado da matriz </para> + </listitem> + </varlistentry> + <varlistentry> + <term>AE</term> + <listitem> + <para>matriz m x n com entradas reais</para> + </listitem> + </varlistentry> + <varlistentry> + <term>EE</term> + <listitem> + <para>matriz de forma escada de colunas</para> + </listitem> + </varlistentry> + <varlistentry> + <term>QE</term> + <listitem> + <para>matriz unitária m x m </para> + </listitem> + </varlistentry> + <varlistentry> + <term>ZE</term> + <listitem> + <para>matriz unitária n x n </para> + </listitem> + </varlistentry> + <varlistentry> + <term>nblcks</term> + <listitem> + <para>é o número de submatrizes com posto linha completo >= 0 + detectado na matriz <literal>A</literal> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>muk:</term> + <listitem> + <para> array (vetor ou matriz) de inteiros de dimensão (n). Contém + as dimensões de coluna mu(k) (k=1,...,nblcks) das submatrizes com + posto coluna cheio no feixe sE(eps)-A(eps) + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>nuk:</term> + <listitem> + <para>array de inteiros de dimensão (m+1). Contém as dimensões de + linha nu(k) (k=1,...,nblcks) das submatrizes com posto linha cheio + no feixe sE(eps)-A(eps) + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>muk0:</term> + <listitem> + <para>array de inteiros de dimensão (n). Contém as dimensões de + coluna mu(k) (k=1,...,nblcks) das submatrizes com o posto-coluna + cheio no feixe sE(eps,inf)-A(eps,inf) + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>nuk:</term> + <listitem> + <para> array de inteiros de dimensão (m+1). Contém as dimensões de + linha nu(k) (k=1,...,nblcks) das submatrizes com posto-linha cheio + no feixe sE(eps,inf)-A(eps,inf) + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>mnei:</term> + <listitem> + <para> array de inteiros dimensão (4). mnei(1) = dimensão de linha + de sE(eps)-A(eps) + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para> + Dado o feixe <literal>sE-A</literal> onde a matriz + <literal>E</literal> está na forma escada de colunas, a função + <literal>fstair</literal> computa, de acordo com as necessidades do + usuário, um feixe unitário transformado <literal>QE(sEE-AE)ZE</literal> + que é mais ou menos similar à forma generalizada de Schur do feixe + <literal>sE-A</literal>. A função também produz parte da estrutura de + Kronecker para um dado feixe. + </para> + <para> + <literal>Q,Z</literal> são as matrizes unitárias usadas para + computar o feixe onde E está na forma escada de colunas (ver + ereduc) + </para> + </refsection> + <refsection> + <title> Ver Também</title> + <simplelist type="inline"> + <member> + <link linkend="quaskro">quaskro</link> + </member> + <member> + <link linkend="ereduc">ereduc</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/pt_BR/pencil/glever.xml b/modules/linear_algebra/help/pt_BR/pencil/glever.xml new file mode 100755 index 000000000..1a4b7f839 --- /dev/null +++ b/modules/linear_algebra/help/pt_BR/pencil/glever.xml @@ -0,0 +1,119 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * 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 + * + --> +<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="glever" xml:lang="en"> + <refnamediv> + <refname>glever</refname> + <refpurpose>inverso do feixe de matrizes</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title> Seqüência de Chamamento </title> + <synopsis>[Bfs,Bis,chis]=glever(E,A [,s])</synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>E, A</term> + <listitem> + <para>duas matrizes de reais quadradas de igual dimensão</para> + </listitem> + </varlistentry> + <varlistentry> + <term>s</term> + <listitem> + <para> + string (o valor padrão é '<literal>s</literal>') + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Bfs,Bis</term> + <listitem> + <para>duas matrizes de polinômios </para> + </listitem> + </varlistentry> + <varlistentry> + <term>chis</term> + <listitem> + <para>polinômio</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para>Computação de</para> + <para> + <literal>(s*E-A)^-1</literal> + </para> + <para>pelo algoritmo generalizado de Leverrier para um feixe de + matrizes. + </para> + <programlisting role=""><![CDATA[ +(s*E-A)^-1 = (Bfs/chis) - Bis. + ]]></programlisting> + <para> + <literal>chis</literal> = polinômio característico (até uma + constante multiplicativa). + </para> + <para> + <literal>Bfs</literal> = nmatriz de polinômios como + numerador. + </para> + <para> + <literal>Bis</literal> = matriz de polinômios ( - expansão de + <literal>(s*E-A)^-1</literal> ao infinito). + </para> + <para> + Note o sinal - antes de <literal>Bis</literal>. + </para> + </refsection> + <refsection> + <title>Cuidado </title> + <para> + Esta função usa <literal>cleanp</literal> para simplificar + <literal>Bfs,Bis</literal> e <literal>chis</literal>. + </para> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +s=%s;F=[-1,s,0,0;0,-1,0,0;0,0,s-2,0;0,0,0,s-1]; +[Bfs,Bis,chis]=glever(F) +inv(F)-((Bfs/chis) - Bis) + ]]></programlisting> + </refsection> + <refsection> + <title> Ver Também </title> + <simplelist type="inline"> + <member> + <link linkend="rowshuff">rowshuff</link> + </member> + <member> + <link linkend="det">det</link> + </member> + <member> + <link linkend="invr">invr</link> + </member> + <member> + <link linkend="coffg">coffg</link> + </member> + <member> + <link linkend="pencan">pencan</link> + </member> + <member> + <link linkend="penlaur">penlaur</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/pt_BR/pencil/kroneck.xml b/modules/linear_algebra/help/pt_BR/pencil/kroneck.xml new file mode 100755 index 000000000..2ca6a403d --- /dev/null +++ b/modules/linear_algebra/help/pt_BR/pencil/kroneck.xml @@ -0,0 +1,161 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * 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 + * + --> +<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="kroneck" xml:lang="en"> + <refnamediv> + <refname>kroneck</refname> + <refpurpose>forma de Kronecker de feixe de matrizes</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title> Seqüência de Chamamento </title> + <synopsis>[Q,Z,Qd,Zd,numbeps,numbeta]=kroneck(F) + [Q,Z,Qd,Zd,numbeps,numbeta]=kroneck(E,A) + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>F</term> + <listitem> + <para> + feixe de matrizes de reais <literal>F=s*E-A</literal> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>E,A</term> + <listitem> + <para>duas matrizes de reais de mesma dimensão</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Q,Z</term> + <listitem> + <para>duas matrizes quadradas ortogonais </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Qd,Zd</term> + <listitem> + <para>dois vetores de inteiros </para> + </listitem> + </varlistentry> + <varlistentry> + <term>numbeps,numeta</term> + <listitem> + <para>dois vetores de inteiros</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para> + Forma de Kronecker de feixe de matrizes: <literal>kroneck</literal> + computa duas matrizes ortogonais <literal>Q, Z</literal> que põem o feixe + <literal>F=s*E -A</literal> na forma triangular superior: + </para> + <programlisting role=""><![CDATA[ + | sE(eps)-A(eps) | X | X | X | + |----------------|----------------|------------|---------------| + | O | sE(inf)-A(inf) | X | X | +Q(sE-A)Z = |---------------------------------|----------------------------| + | | | | | + | 0 | 0 | sE(f)-A(f) | X | + |--------------------------------------------------------------| + | | | | | + | 0 | 0 | 0 | sE(eta)-A(eta)| + ]]></programlisting> + <para>As dimensões dos quatro blocos são dadas por:</para> + <para> + <literal>eps=Qd(1) x Zd(1)</literal>, <literal>inf=Qd(2) x + Zd(2) + </literal> + ,<literal>f = Qd(3) x Zd(3)</literal>, + <literal>eta=Qd(4)xZd(4)</literal> + </para> + <para> + O bloco <literal>inf</literal> contém modos infinitos de + feixes. + </para> + <para> + O bloco <literal>f</literal> contém modos finitos de feixes. + </para> + <para>A estrutura dos blocos epsilon e eta é dada por </para> + <para> + <literal>numbeps(1)</literal> = <literal>#</literal> de blocos eps + de tamanho 0 x 1 + </para> + <para> + <literal>numbeps(2)</literal> = <literal>#</literal> de blocos eps + de tamanho 1 x 2 + </para> + <para> + <literal>numbeps(3)</literal> = <literal>#</literal> de blocos eps + de tamanho 2 x 3 etc... + </para> + <para> + <literal>numbeta(1)</literal> = <literal>#</literal> de blocos eta + de tamanho 1 x 0 + </para> + <para> + <literal>numbeta(2)</literal> = <literal>#</literal> de blocos eta + de tamanho 2 x 1 + </para> + <para> + <literal>numbeta(3)</literal> = <literal>#</literal> de blocos eta + de tamanho 3 x 2 etc... + </para> + <para>O código foi retirado de T. Beelen (Slicot-WGS group).</para> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +F=randpencil([1,1,2],[2,3],[-1,3,1],[0,3]); +Q=rand(17,17);Z=rand(18,18);F=Q*F*Z; +//feixe aleatório com eps1=1,eps2=1,eps3=1; 2 blocos J @ infty (infinito) +//com dimensões 2 e +//3 autovalores finitos em -1,3,1 e eta1=0,eta2=3 +[Q,Z,Qd,Zd,numbeps,numbeta]=kroneck(F); +[Qd(1),Zd(1)] //parte eps. é sum(epsi) x (sum(epsi) + número de epsi) (sum="soma") +[Qd(2),Zd(2)] //parte infinita +[Qd(3),Zd(3)] //parte finita +[Qd(4),Zd(4)] //parte eta é (sum(etai) + number(eta1)) x sum(etai) (number=número) +numbeps +numbeta + ]]></programlisting> + </refsection> + <refsection> + <title> Ver Também</title> + <simplelist type="inline"> + <member> + <link linkend="gschur">gschur</link> + </member> + <member> + <link linkend="gspec">gspec</link> + </member> + <member> + <link linkend="systmat">systmat</link> + </member> + <member> + <link linkend="pencan">pencan</link> + </member> + <member> + <link linkend="randpencil">randpencil</link> + </member> + <member> + <link linkend="trzeros">trzeros</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/pt_BR/pencil/lyap.xml b/modules/linear_algebra/help/pt_BR/pencil/lyap.xml new file mode 100755 index 000000000..2d51a056c --- /dev/null +++ b/modules/linear_algebra/help/pt_BR/pencil/lyap.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) 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="lyap" xml:lang="en"> + <refnamediv> + <refname>lyap</refname> + <refpurpose>equação de Lyapunov</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Seqüência de Chamamento</title> + <synopsis>[X]=lyap(A,C,'c') + [X]=lyap(A,C,'d') + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>A, C</term> + <listitem> + <para> + matrizes quadradas de reais, <literal>C</literal> deve ser + simétrica + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para> + <literal>X= lyap(A,C,flag)</literal> resolve as equações matriciais + de tempo contínuo ou de tempo discreto de Lyapunov: + </para> + <programlisting role=""><![CDATA[ +A'*X + X*A = C ( flag='c' ) +A'*X*A - X = C ( flag='d' ) + ]]></programlisting> + <para>Perceba que existe uma única solução se e só se um autovalor de + <literal>A</literal> não é um autovalor de <literal>-A</literal> + (<literal>flag='c'</literal>) ou 1 sobre um autovalor de + <literal>A</literal> (<literal>flag='d'</literal>). + </para> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +A=rand(4,4);C=rand(A);C=C+C'; +X=lyap(A,C,'c'); +A'*X + X*A -C +X=lyap(A,C,'d'); +A'*X*A - X -C + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Ver Também</title> + <simplelist type="inline"> + <member> + <link linkend="sylv">sylv</link> + </member> + <member> + <link linkend="ctr_gram">ctr_gram</link> + </member> + <member> + <link linkend="obs_gram">obs_gram</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/pt_BR/pencil/pencan.xml b/modules/linear_algebra/help/pt_BR/pencil/pencan.xml new file mode 100755 index 000000000..fba81a530 --- /dev/null +++ b/modules/linear_algebra/help/pt_BR/pencil/pencan.xml @@ -0,0 +1,107 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * 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 + * + --> +<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="pencan" xml:lang="en"> + <refnamediv> + <refname>pencan</refname> + <refpurpose>forma canônica de feixe de matrizes</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title> Seqüência de Chamamento</title> + <synopsis>[Q,M,i1]=pencan(Fs) + [Q,M,i1]=pencan(E,A) + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>Fs</term> + <listitem> + <para> + um feixe regular <literal>s*E-A</literal> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>E,A</term> + <listitem> + <para>duas matrizes quadradas de reais</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Q,M</term> + <listitem> + <para>duas matrizes não-singulares de reais</para> + </listitem> + </varlistentry> + <varlistentry> + <term>i1</term> + <listitem> + <para>inteiro</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para> + Dado o feixe regular <literal>Fs=s*E-A</literal>, + <literal>pencan</literal> retorna as matrizes <literal>Q</literal> e + <literal>M</literal> tais que <literal>M*(s*E-A)*Q</literal> está na forma + "canônica". + </para> + <para> + <literal>M*E*Q</literal> é uma matriz de blocos + </para> + <programlisting role=""><![CDATA[ +[I,0; + 0,N] + ]]></programlisting> + <para> + com <literal>N</literal> nilpotente e <literal>i1</literal> = + tamanho da matriz acima <literal>I</literal>. + </para> + <para> + <literal>M*A*Q</literal> é uma matriz de blocos: + </para> + <programlisting role=""><![CDATA[ +[Ar,0; + 0,I] + ]]></programlisting> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +F=randpencil([],[1,2],[1,2,3],[]); +F=rand(6,6)*F*rand(6,6); +[Q,M,i1]=pencan(F); +W=clean(M*F*Q) +roots(det(W(1:i1,1:i1))) +det(W($-2:$,$-2:$)) + ]]></programlisting> + </refsection> + <refsection> + <title> Ver Também </title> + <simplelist type="inline"> + <member> + <link linkend="glever">glever</link> + </member> + <member> + <link linkend="penlaur">penlaur</link> + </member> + <member> + <link linkend="rowshuff">rowshuff</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/pt_BR/pencil/penlaur.xml b/modules/linear_algebra/help/pt_BR/pencil/penlaur.xml new file mode 100755 index 000000000..62f4c7757 --- /dev/null +++ b/modules/linear_algebra/help/pt_BR/pencil/penlaur.xml @@ -0,0 +1,123 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * 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 + * + --> +<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="penlaur" xml:lang="en"> + <refnamediv> + <refname>penlaur</refname> + <refpurpose>Laurent coefficients of matrix pencil</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title> Seqüência de Chamamento </title> + <synopsis>[Si,Pi,Di,order]=penlaur(Fs) + [Si,Pi,Di,order]=penlaur(E,A) + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>Fs</term> + <listitem> + <para> + um feixe regular <literal>s*E-A</literal> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>E, A</term> + <listitem> + <para>duas matrizes quadradas de reais</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Si,Pi,Di</term> + <listitem> + <para>três matrizes quadradas de reais </para> + </listitem> + </varlistentry> + <varlistentry> + <term>order</term> + <listitem> + <para>inteiro</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para> + <literal>penlaur</literal> computa os primeiros coeficientes de + Laurent de <literal>(s*E-A)^-1</literal> no infinito. + </para> + <para> + <literal>(s*E-A)^-1 = ... + Si/s - Pi - s*Di + ...</literal> em + <literal>s</literal> = infinito. + </para> + <para> + <literal>order</literal> = ordem da singularidade + (ordem=índice-1). + </para> + <para> + O feixe de matrizes <literal>Fs=s*E-A</literal> deve ser + invertível. + </para> + <para> + Para um feixe de índice 0, <literal>Pi, Di,...</literal> são zero e + <literal>Si=inv(E)</literal>. + </para> + <para> + Para um feixe de índice 1 (order=0),<literal>Di</literal> =0. + </para> + <para> + Para feixes de índices maiores, os termos <literal> -s^2 Di(2), -s^3 + Di(3),... + </literal> + são dados por: + </para> + <para> + <literal> Di(2)=Di*A*Di</literal>, <literal> + Di(3)=Di*A*Di*A*Di + </literal> + (até <literal>Di(order)</literal>). + </para> + </refsection> + <refsection> + <title>Observação</title> + <para>Versão experimental: há problemas quando se tem mal-condicionamento + de<literal>so*E-A</literal> + </para> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +F=randpencil([],[1,2],[1,2,3],[]); +F=rand(6,6)*F*rand(6,6);[E,A]=pen2ea(F); +[Si,Pi,Di]=penlaur(F); +[Bfs,Bis,chis]=glever(F); +norm(coeff(Bis,1)-Di,1) + ]]></programlisting> + </refsection> + <refsection> + <title> Ver Também </title> + <simplelist type="inline"> + <member> + <link linkend="glever">glever</link> + </member> + <member> + <link linkend="pencan">pencan</link> + </member> + <member> + <link linkend="rowshuff">rowshuff</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/pt_BR/pencil/quaskro.xml b/modules/linear_algebra/help/pt_BR/pencil/quaskro.xml new file mode 100755 index 000000000..beb65fb07 --- /dev/null +++ b/modules/linear_algebra/help/pt_BR/pencil/quaskro.xml @@ -0,0 +1,134 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * 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 + * + --> +<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="quaskro" xml:lang="en"> + <refnamediv> + <refname>quaskro</refname> + <refpurpose>forma quasi-Kronecker</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title> Seqüência de Chamamento </title> + <synopsis>[Q,Z,Qd,Zd,numbeps,numbeta]=quaskro(F) + [Q,Z,Qd,Zd,numbeps,numbeta]=quaskro(E,A) + [Q,Z,Qd,Zd,numbeps,numbeta]=quaskro(F,tol) + [Q,Z,Qd,Zd,numbeps,numbeta]=quaskro(E,A,tol) + </synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>F</term> + <listitem> + <para> + feixe de matrizes de reais <literal>F=s*E-A</literal> + (<literal>s=poly(0,'s')</literal>) + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>E,A</term> + <listitem> + <para>duas matrizes reais de iguais dimensões </para> + </listitem> + </varlistentry> + <varlistentry> + <term>tol</term> + <listitem> + <para> número real (tolerância, valor padrão=1.d-10) </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Q,Z</term> + <listitem> + <para>duas matrizes quadradas ortogonais </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Qd,Zd</term> + <listitem> + <para>dois vetores de inteiros </para> + </listitem> + </varlistentry> + <varlistentry> + <term>numbeps</term> + <listitem> + <para>vetor de inteiros</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para>Forma quasi-Kronecker de um feixe de matrizes: + <literal>quaskro</literal> computa duas matrizes ortogonais <literal>Q, + Z + </literal> + que põem o feixe <literal>F=s*E -A</literal> na forma + triangular superior: + </para> + <programlisting role=""><![CDATA[ + | sE(eps)-A(eps) | X | X | + |----------------|----------------|------------| + | O | sE(inf)-A(inf) | X | +Q(sE-A)Z = |=================================|============| + | | | + | O | sE(r)-A(r) | + ]]></programlisting> + <para>As dimensões dos blocos são dadas por:</para> + <para> + <literal>eps=Qd(1) x Zd(1)</literal>, <literal>inf=Qd(2) x + Zd(2) + </literal> + ,<literal>r = Qd(3) x Zd(3)</literal> + </para> + <para> + O bloco <literal>inf</literal> contém os modos infinitos do + feixe. + </para> + <para> + O bloco <literal>f</literal> contém os modos finitos do feixe + </para> + <para>A estrutura dos blocos epsilon é dada por:</para> + <para> + <literal>numbeps(1)</literal> = <literal>#</literal> de blocos eps + de tamanho 0 x 1 + </para> + <para> + <literal>numbeps(2)</literal> = <literal>#</literal> de blocos eps + de tamanho 1 x 2 + </para> + <para> + <literal>numbeps(3)</literal> = <literal>#</literal> de blocos eps + de tamanho 2 x 3 etc... + </para> + <para>A forma completa (de quatro blocos) de Kronecker é dada pela função + <literal>kroneck</literal> que chama a função <literal>quaskro</literal> + sobre o feixe (pertransposto) <literal>sE(r)-A(r)</literal>. + </para> + <para>O código é retirado de T. Beelen.</para> + </refsection> + <refsection> + <title> Ver Também</title> + <simplelist type="inline"> + <member> + <link linkend="kroneck">kroneck</link> + </member> + <member> + <link linkend="gschur">gschur</link> + </member> + <member> + <link linkend="gspec">gspec</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/pt_BR/pencil/randpencil.xml b/modules/linear_algebra/help/pt_BR/pencil/randpencil.xml new file mode 100755 index 000000000..3d0fe44e6 --- /dev/null +++ b/modules/linear_algebra/help/pt_BR/pencil/randpencil.xml @@ -0,0 +1,117 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * 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 + * + --> +<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="randpencil" xml:lang="en"> + <refnamediv> + <refname>randpencil</refname> + <refpurpose>feixe aleatório</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title> Seqüência de Chamamento </title> + <synopsis>F=randpencil(eps,infi,fin,eta)</synopsis> + </refsynopsisdiv> + <refsection> + <title> Parâmetros </title> + <variablelist> + <varlistentry> + <term>eps</term> + <listitem> + <para>vetor de inteiros </para> + </listitem> + </varlistentry> + <varlistentry> + <term>infi</term> + <listitem> + <para>vetor de inteiros </para> + </listitem> + </varlistentry> + <varlistentry> + <term>fin</term> + <listitem> + <para>vetor de reais, ou polinômio mônico, ou vetor de polinômios + mônicos + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>eta</term> + <listitem> + <para>vetor de inteiros </para> + </listitem> + </varlistentry> + <varlistentry> + <term>F</term> + <listitem> + <para> + feixe de matrizes de reais <literal>F=s*E-A</literal> + (<literal>s=poly(0,'s')</literal>) + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para> + Função utilitária. <literal>F=randpencil(eps,infi,fin,eta)</literal> + retorna um feixe aleatório <literal>F</literal> com dada estrutura de + Kronecker. A estrutura é dada por: <literal>eps=[eps1,...,epsk]</literal>: + estrutura de blocos epsilon (tamanho eps1x(eps1+1),....) + <literal>fin=[l1,...,ln]</literal> conjunto de autovalores finitos + (assumidos como reais) (possivelmente []) + <literal>infi=[k1,...,kp]</literal> tamanho de blocos J no infinito + <literal>ki>=1</literal> (infi=[] se não há blocos J). + <literal>eta=[eta1,...,etap]</literal>: estrutura dos blocos eta (size + eta1+1)xeta1,...) + </para> + <para> + <literal>epsi</literal>'s devem ser >=0, + <literal>etai</literal>'s devem ser >=0, <literal>infi</literal>'s + devem ser >=1. + </para> + <para> + Se <literal>fin</literal> é um polinômio (mônico), o bloco finito + admite raízes de <literal>fin</literal> como autovalores. + </para> + <para> + Se <literal>fin</literal> é um vetor de polinômios, eles são os + divisores elementares finitos de <literal>F</literal> ,i.e., as raízes de + <literal>p(i)</literal> são autovalores finitos de + <literal>F</literal>. + </para> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +F=randpencil([0,1],[2],[-1,0,1],[3]); +[Q,Z,Qd,Zd,numbeps,numbeta]=kroneck(F); +Qd, Zd +s=poly(0,'s'); +F=randpencil([],[1,2],s^3-2,[]); //feixe regular +det(F) + ]]></programlisting> + </refsection> + <refsection> + <title> Ver Também </title> + <simplelist type="inline"> + <member> + <link linkend="kroneck">kroneck</link> + </member> + <member> + <link linkend="pencan">pencan</link> + </member> + <member> + <link linkend="penlaur">penlaur</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/pt_BR/pencil/rowshuff.xml b/modules/linear_algebra/help/pt_BR/pencil/rowshuff.xml new file mode 100755 index 000000000..ff28a40ce --- /dev/null +++ b/modules/linear_algebra/help/pt_BR/pencil/rowshuff.xml @@ -0,0 +1,111 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * 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 + * + --> +<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="rowshuff" xml:lang="en"> + <refnamediv> + <refname>rowshuff</refname> + <refpurpose>algoritmo de embaralhamento</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title> Seqüência de Chamamento </title> + <synopsis>[Ws,Fs1]=rowshuff(Fs, [alfa])</synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>Fs</term> + <listitem> + <para> + feixe quadrado de reais <literal>Fs = s*E-A</literal> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Ws</term> + <listitem> + <para>matriz de polinômios </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Fs1</term> + <listitem> + <para> + feixe quadrado de reais <literal>F1s = s*E1 -A1</literal> com + <literal>E1</literal> não-singular + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>alfa</term> + <listitem> + <para> + número real (<literal>alfa = 0</literal> é o valor + padrão) + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para>Algoritmo de embaralhamento: dado o feixe + <literal>Fs=s*E-A</literal>, retorna Ws=W(s) (matriz quadrada de + polinômios) tal que: + </para> + <para> + <literal> Fs1 = s*E1-A1 = W(s)*(s*E-A) </literal> é um feixe com + matriz <literal>E1</literal> não-singular. + </para> + <para> + Isto é possível se, e só se, o feixe <literal>Fs = s*E-A</literal> é + regular (i.e., invertível). O grau de <literal>Ws</literal> é igual ao + índice do feixe. + </para> + <para> + Os pólos no infinito de<literal> Fs</literal> asão colocados para + <literal>alfa</literal> e os zeros de <literal>Ws</literal> estão em + <literal>alfa</literal>. + </para> + <para> + Note que <literal>(s*E-A)^-1 = (s*E1-A1)^-1 * W(s) = + (W(s)*(s*E-A))^-1 *W(s) + </literal> + </para> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +F=randpencil([],[2],[1,2,3],[]); +F=rand(5,5)*F*rand(5,5); // feixe regular 5 x 5 com três avaliações em 1,2,3 +[Ws,F1]=rowshuff(F,-1); +[E1,A1]=pen2ea(F1); +svd(E1) //E1 não-singular +roots(det(Ws)) +clean(inv(F)-inv(F1)*Ws,1.d-7) + ]]></programlisting> + </refsection> + <refsection> + <title> Ver Também </title> + <simplelist type="inline"> + <member> + <link linkend="pencan">pencan</link> + </member> + <member> + <link linkend="glever">glever</link> + </member> + <member> + <link linkend="penlaur">penlaur</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/pt_BR/pencil/sylv.xml b/modules/linear_algebra/help/pt_BR/pencil/sylv.xml new file mode 100755 index 000000000..fcba9fc28 --- /dev/null +++ b/modules/linear_algebra/help/pt_BR/pencil/sylv.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) 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="sylv" xml:lang="en"> + <refnamediv> + <refname>sylv</refname> + <refpurpose>equação de Sylvester </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Seqüência de Chamamento</title> + <synopsis>sylv(A,B,C,flag)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>A,B,C</term> + <listitem> + <para>três matrizes de reais de dimensões apropriadas</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> + <literal>X= sylv(A,B,C,'c')</literal> computa <literal>X</literal>, + solução da equação de "tempo contínuo" de Sylvester. + </para> + <programlisting role=""><![CDATA[ +A*X+X*B=C + ]]></programlisting> + <para> + <literal>X=sylv(A,B,C,'d')</literal> computa <literal>X</literal>, + solução da equação de "tempo discreto" de Sylvester. + </para> + <programlisting role=""><![CDATA[ +A*X*B-X=C + ]]></programlisting> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +A=rand(4,4);C=rand(4,3);B=rand(3,3); +X = sylv(A,B,C,'c'); +norm(A*X+X*B-C) +X=sylv(A,B,C,'d') +norm(A*X*B-X-C) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Ver Também</title> + <simplelist type="inline"> + <member> + <link linkend="lyap">lyap</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/pt_BR/proj.xml b/modules/linear_algebra/help/pt_BR/proj.xml new file mode 100755 index 000000000..cef345ed3 --- /dev/null +++ b/modules/linear_algebra/help/pt_BR/proj.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) 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="proj" xml:lang="en"> + <refnamediv> + <refname>proj</refname> + <refpurpose>projeção</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Seqüência de Chamamento</title> + <synopsis>P = proj(X1,X2)</synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>X1,X2</term> + <listitem> + <para>duas matrizes reais com igual número de colunas</para> + </listitem> + </varlistentry> + <varlistentry> + <term>P</term> + <listitem> + <para> + matriz de projeção de real (<literal>P^2=P</literal>) + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para> + <literal>P</literal> é a projeção sobre <literal>X2</literal> + paralela a <literal>X1</literal>. + </para> + </refsection> + <refsection role="see also"> + <title>Ver Também</title> + <programlisting role="example"><![CDATA[ +X1=rand(5,2);X2=rand(5,3); +P=proj(X1,X2); +norm(P^2-P,1) +trace(P) // Este é dim(X2) +[Q,M]=fullrf(P); +svd([Q,X2]) // span(Q) = span(X2) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>See Also</title> + <simplelist type="inline"> + <member> + <link linkend="projspec">projspec</link> + </member> + <member> + <link linkend="orth">orth</link> + </member> + <member> + <link linkend="fullrf">fullrf</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/pt_BR/state_space/CHAPTER b/modules/linear_algebra/help/pt_BR/state_space/CHAPTER new file mode 100755 index 000000000..a0b62cdee --- /dev/null +++ b/modules/linear_algebra/help/pt_BR/state_space/CHAPTER @@ -0,0 +1,2 @@ +title = State-Space Matrices + diff --git a/modules/linear_algebra/help/pt_BR/state_space/coff.xml b/modules/linear_algebra/help/pt_BR/state_space/coff.xml new file mode 100755 index 000000000..f75f38f77 --- /dev/null +++ b/modules/linear_algebra/help/pt_BR/state_space/coff.xml @@ -0,0 +1,99 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * 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 + * + --> +<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="coff" xml:lang="en"> + <refnamediv> + <refname>coff</refname> + <refpurpose>resolvente (método do cofator) </refpurpose> + </refnamediv> + <refsynopsisdiv> + <title> Seqüência de Chamamento </title> + <synopsis>[N,d]=coff(M [,var])</synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>M</term> + <listitem> + <para>matriz quadrada de reais</para> + </listitem> + </varlistentry> + <varlistentry> + <term>var</term> + <listitem> + <para>string</para> + </listitem> + </varlistentry> + <varlistentry> + <term>N</term> + <listitem> + <para> matriz de polinômios (com o mesmo tamanho que + <literal>M</literal>) + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>d</term> + <listitem> + <para>polinômio ( polinômio característico + <literal>poly(A,'s')</literal>) + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para> + <literal>coff</literal> computa R=<literal>(s*eye()-M)^-1</literal> + para <literal>M</literal> uma matriz de reais. R é dado por + <literal>N/d</literal>. + </para> + <para> + <literal>N</literal> = matriz de polinômios como numerador. + </para> + <para> + <literal>d</literal> = denominador comum. + </para> + <para> + <literal>var</literal> string ( ('<literal>s</literal>' se + omitido) + </para> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +M=[1,2;0,3]; +[N,d]=coff(M) +N/d +inv(%s*eye()-M) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Ver Também</title> + <simplelist type="inline"> + <member> + <link linkend="coffg">coffg</link> + </member> + <member> + <link linkend="ss2tf">ss2tf</link> + </member> + <member> + <link linkend="nlev">nlev</link> + </member> + <member> + <link linkend="poly">poly</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/pt_BR/state_space/nlev.xml b/modules/linear_algebra/help/pt_BR/state_space/nlev.xml new file mode 100755 index 000000000..90ddd6dd2 --- /dev/null +++ b/modules/linear_algebra/help/pt_BR/state_space/nlev.xml @@ -0,0 +1,90 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * 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 + * + --> +<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="nlev" xml:lang="en"> + <refnamediv> + <refname>nlev</refname> + <refpurpose>algoritmo de Leverrier</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title> Seqüência de Chamamento </title> + <synopsis>[num,den]=nlev(A,z [,rmax])</synopsis> + </refsynopsisdiv> + <refsection> + <title> Parâmetros</title> + <variablelist> + <varlistentry> + <term>A</term> + <listitem> + <para>matriz quadrada de reais</para> + </listitem> + </varlistentry> + <varlistentry> + <term>z</term> + <listitem> + <para>string</para> + </listitem> + </varlistentry> + <varlistentry> + <term>rmax</term> + <listitem> + <para> + parâmetro opcional (ver <literal>bdiag</literal>) + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para> + <literal>[num,den]=nlev(A,z [,rmax])</literal> computa + <literal>(z*eye()-A)^(-1)</literal> + </para> + <para>por diagonalização por blocos de A seguido pelo algoritmo de + Leverrier em cada bloco. + </para> + <para>Este algoritmo é melhor que o algoritmo usual de Leverrier, mas + ainda não está perfeito! + </para> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +A=rand(3,3);x=poly(0,'x'); +[NUM,den]=nlev(A,'x') +clean(den-poly(A,'x')) +clean(NUM/den-inv(x*eye()-A)) + ]]></programlisting> + </refsection> + <refsection> + <title> Ver Também</title> + <simplelist type="inline"> + <member> + <link linkend="coff">coff</link> + </member> + <member> + <link linkend="coffg">coffg</link> + </member> + <member> + <link linkend="glever">glever</link> + </member> + <member> + <link linkend="ss2tf">ss2tf</link> + </member> + </simplelist> + </refsection> + <refsection> + <title>Autores</title> + <para>F. Delebecque., S. Steer INRIA;</para> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/pt_BR/subspaces/CHAPTER b/modules/linear_algebra/help/pt_BR/subspaces/CHAPTER new file mode 100755 index 000000000..d87d9ca5e --- /dev/null +++ b/modules/linear_algebra/help/pt_BR/subspaces/CHAPTER @@ -0,0 +1,3 @@ +title = Subspaces + + diff --git a/modules/linear_algebra/help/pt_BR/subspaces/spaninter.xml b/modules/linear_algebra/help/pt_BR/subspaces/spaninter.xml new file mode 100755 index 000000000..894f73b4b --- /dev/null +++ b/modules/linear_algebra/help/pt_BR/subspaces/spaninter.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) 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="spaninter" xml:lang="en"> + <refnamediv> + <refname>spaninter</refname> + <refpurpose>interseção de subespaços</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title> Seqüência de Chamamento</title> + <synopsis>[X,dim]=spaninter(A,B [,tol])</synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>A, B</term> + <listitem> + <para>duas matrizes de reais ou de complexos com igual número de + linhas + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>X</term> + <listitem> + <para>matriz quadrada ortogonal ou unitária</para> + </listitem> + </varlistentry> + <varlistentry> + <term>dim</term> + <listitem> + <para> + inteiro, dimensão do subesbaço Im(<literal>A</literal>) inter + Im(<literal>B</literal>) + </para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para> + Computa a intereseção de Im(<literal>A</literal>) e + Im(<literal>B</literal>). + </para> + <para> + As primeiras <literal>dim</literal> colunas de <literal>X</literal> + geram esta interseção i.e. <literal>X(:,1:dim)</literal> é uma base + ortogonal para + </para> + <para> + Im(<literal>A</literal>) inter Im(<literal>B</literal>) + </para> + <para> + Na base <literal>X</literal>, <literal>A</literal> e + <literal>B</literal> são respectivamente representados por: + </para> + <para> + <literal>X'*A</literal> e <literal>X'*B</literal>. + </para> + <para> + <literal>tol</literal> é um limiar (<literal>sqrt(%eps)</literal> é + o valor padrão). + </para> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +A=rand(5,3)*rand(3,4); // A é 5 x 4, rank=3 +B=[A(:,2),rand(5,1)]*rand(2,2); +[X,dim]=spaninter(A,B); +X1=X(:,1:dim); //A interseção +svd(A),svd([X1,A]) // X1 no gerado(A) (span(A)) +svd(B),svd([B,X1]) // X1 no gerado(B) (span(B)) + ]]></programlisting> + </refsection> + <refsection role="see also"> + <title>Ver Também</title> + <simplelist type="inline"> + <member> + <link linkend="spanplus">spanplus</link> + </member> + <member> + <link linkend="spantwo">spantwo</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/pt_BR/subspaces/spanplus.xml b/modules/linear_algebra/help/pt_BR/subspaces/spanplus.xml new file mode 100755 index 000000000..3bed11264 --- /dev/null +++ b/modules/linear_algebra/help/pt_BR/subspaces/spanplus.xml @@ -0,0 +1,103 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * 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 + * + --> +<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="spanplus" xml:lang="en"> + <refnamediv> + <refname>spanplus</refname> + <refpurpose>soma de subespaços</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title>Seqüência de Chamamento</title> + <synopsis>[X,dim,dima]=spanplus(A,B[,tol])</synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>A, B</term> + <listitem> + <para>duas matrizes de reais ou complexos com igual número de + linhas + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>X</term> + <listitem> + <para>matriz quadrada ortogonal ou unitária </para> + </listitem> + </varlistentry> + <varlistentry> + <term>dim, dima</term> + <listitem> + <para>inteiros, dimensões de subespaços </para> + </listitem> + </varlistentry> + <varlistentry> + <term>tol</term> + <listitem> + <para>número real não-negativo</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para>Computa a base X tal que:</para> + <para> + as primeiras <literal>dima</literal> colunas de <literal>X</literal> + geram Im(<literal>A</literal>) e as (<literal>dim-dima</literal>) colunas + seguintes formam uma base de <literal>A+B</literal> em relação a + <literal>A</literal>. + </para> + <para> + As <literal>dim</literal> primeiras colunas de <literal>X</literal> + formam uma base para <literal>A+B</literal>. + </para> + <para>Tem-se a seguinte forma canônica para + <literal>[A,B]</literal>: + </para> + <programlisting role=""><![CDATA[ + [*,*] (dima rows) +X'*[A,B]=[0,*] (dim-dima rows) + [0,0] + ]]></programlisting> + <para> + <literal>tol</literal> é um argumento opcional (ver código da + função). + </para> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +A=rand(6,2)*rand(2,5); // rank(A)=2 (posto(A)=2) +B=[A(:,1),rand(6,2)]*rand(3,3); //dois vetores adicionais independentes +[X,dim,dimA]=spanplus(A,B); +dimA +dim + ]]></programlisting> + </refsection> + <refsection> + <title> Ver Também</title> + <simplelist type="inline"> + <member> + <link linkend="spaninter">spaninter</link> + </member> + <member> + <link linkend="im_inv">im_inv</link> + </member> + <member> + <link linkend="spantwo">spantwo</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/pt_BR/subspaces/spantwo.xml b/modules/linear_algebra/help/pt_BR/subspaces/spantwo.xml new file mode 100755 index 000000000..96278172b --- /dev/null +++ b/modules/linear_algebra/help/pt_BR/subspaces/spantwo.xml @@ -0,0 +1,119 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- + * 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 + * + --> +<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="spantwo" xml:lang="en"> + <refnamediv> + <refname>spantwo</refname> + <refpurpose>soma e interseção de subespaços</refpurpose> + </refnamediv> + <refsynopsisdiv> + <title> Seqüência de Chamamento </title> + <synopsis>[Xp,dima,dimb,dim]=spantwo(A,B, [tol])</synopsis> + </refsynopsisdiv> + <refsection> + <title>Parâmetros</title> + <variablelist> + <varlistentry> + <term>A, B</term> + <listitem> + <para>duas matrizes de reais ou complexos com igual número de linhas + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Xp</term> + <listitem> + <para>matriz quadrada não-singular </para> + </listitem> + </varlistentry> + <varlistentry> + <term>dima, dimb, dim</term> + <listitem> + <para>inteiros, dimensões dos subespaços </para> + </listitem> + </varlistentry> + <varlistentry> + <term>tol</term> + <listitem> + <para>número real não-negativo</para> + </listitem> + </varlistentry> + </variablelist> + </refsection> + <refsection> + <title>Descrição</title> + <para> + Dadas duas matrizes <literal>A</literal> e <literal>B</literal> com + o mesmo número de linhas, retorna uma matriz quadrada + <literal>Xp</literal> (não-singular, mas não necessariamente ortogonal) + tal que : + </para> + <programlisting role=""><![CDATA[ + [A1, 0] (dim-dimb linhas) +Xp*[A,B]=[A2,B2] (dima+dimb-dim linhas) + [0, B3] (dim-dima linha) + [0 , 0] + ]]></programlisting> + <para> + As primeiras <literal>dima</literal> colunas de + <literal>inv(Xp)</literal> geram Im(<literal>A</literal>). + </para> + <para> + As colunas de <literal>dim-dimb+1</literal> até + <literal>dima</literal> de <literal>inv(Xp)</literal> geram a interseção + de Im(A) e Im(B). + </para> + <para> + As primeiras <literal>dim</literal> colunas de + <literal>inv(Xp)</literal> geram + Im(<literal>A</literal>)+Im(<literal>B</literal>). + </para> + <para> + As colunas de <literal>dim-dimb+1</literal> até + <literal>dim</literal> de <literal>inv(Xp)</literal> geram + Im(<literal>B</literal>). + </para> + <para> + A matrix <literal>[A1;A2]</literal> tem posto-linha cheio (= + posto(A)), a matrix <literal>[B2;B3]</literal> tem posto-linha cheio + (=posto(B)), a matriz <literal>[A2,B2]</literal> tem posto-linha (=posto(A + inter B)) e a matriz <literal>[A1,0;A2,B2;0,B3]</literal> tem posto-linha + cheio (=posto(A+B)). + </para> + </refsection> + <refsection> + <title>Exemplos</title> + <programlisting role="example"><![CDATA[ +A=[1,0,0,4; + 5,6,7,8; + 0,0,11,12; + 0,0,0,16]; +B=[1,2,0,0]';C=[4,0,0,1]; +Sl=ss2ss(syslin('c',A,B,C),rand(A)); +[no,X]=contr(Sl('A'),Sl('B'));CO=X(:,1:no); //Parte controlável +[uo,Y]=unobs(Sl('A'),Sl('C'));UO=Y(:,1:uo); //Parte inobservável +[Xp,dimc,dimu,dim]=spantwo(CO,UO); //Decomposição de Kalman +Slcan=ss2ss(Sl,inv(Xp)); + ]]></programlisting> + </refsection> + <refsection> + <title> Ver Também </title> + <simplelist type="inline"> + <member> + <link linkend="spanplus">spanplus</link> + </member> + <member> + <link linkend="spaninter">spaninter</link> + </member> + </simplelist> + </refsection> +</refentry> diff --git a/modules/linear_algebra/help/ru_RU/addchapter.sce b/modules/linear_algebra/help/ru_RU/addchapter.sce new file mode 100755 index 000000000..9c126ad92 --- /dev/null +++ b/modules/linear_algebra/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("Linear Algebra",SCI+"/modules/linear_algebra/help/ru_RU",%T); + diff --git a/modules/linear_algebra/includes/dynlib_linear_algebra.h b/modules/linear_algebra/includes/dynlib_linear_algebra.h new file mode 100755 index 000000000..50aec544b --- /dev/null +++ b/modules/linear_algebra/includes/dynlib_linear_algebra.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_LINEAR_ALGEBRA_H__ +#define __DYNLIB_LINEAR_ALGEBRA_H__ + +#ifdef _MSC_VER +#ifdef LINEAR_ALGEBRA_EXPORTS +#define LINEAR_ALGEBRA_IMPEXP __declspec(dllexport) +#else +#define LINEAR_ALGEBRA_IMPEXP __declspec(dllimport) +#endif +#else +#define LINEAR_ALGEBRA_IMPEXP +#endif + +#endif /* __DYNLIB_LINEAR_ALGEBRA_H__ */ +/*--------------------------------------------------------------------------*/ diff --git a/modules/linear_algebra/includes/gschur.h b/modules/linear_algebra/includes/gschur.h new file mode 100755 index 000000000..828b795aa --- /dev/null +++ b/modules/linear_algebra/includes/gschur.h @@ -0,0 +1,60 @@ + +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2007-2008 - INRIA - Sylvestre LEDRU <sylvestre.ledru@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 + * + */ + +#ifndef __GSCHUR_H__ +#define __GSCHUR_H__ + +#include "dynlib_linear_algebra.h" +#include "GetFunctionByName.h" +#include "linear_FTables.h" + + +/*********************************** + * Search Table for gzhsel + ***********************************/ + +#define ARGS_gzhsel doublecmplx *,doublecmplx * +typedef int * (*gzhself)(ARGS_gzhsel); + +/**************** gzhsel ***************/ +LINEAR_ALGEBRA_IMPEXP void C2F(zb02ow)(ARGS_gzhsel); +LINEAR_ALGEBRA_IMPEXP void C2F(zb02ox)(ARGS_gzhsel); + +FTAB FTab_gzhsel[] = +{ + {"zb02ow", (voidf) C2F(zb02ow)}, + {"zb02ox", (voidf) C2F(zb02ox)}, + {(char *) 0, (voidf) 0} +}; + + +/*********************************** + * Search Table for gshsel + ***********************************/ + +#define ARGS_gshsel double *,double*,double* +typedef int * (*gshself)(ARGS_gshsel); + + +/**************** gshsel ***************/ +LINEAR_ALGEBRA_IMPEXP void C2F(sb02ow)(ARGS_gshsel); +LINEAR_ALGEBRA_IMPEXP void C2F(sb02ox)(ARGS_gshsel); + +FTAB FTab_gshsel[] = +{ + {"sb02ow", (voidf) C2F(sb02ow)}, + {"sb02ox", (voidf) C2F(sb02ox)}, + {(char *) 0, (voidf) 0} +}; + +#endif /* __GSCHUR_H__ */ diff --git a/modules/linear_algebra/includes/gw_linear_algebra.h b/modules/linear_algebra/includes/gw_linear_algebra.h new file mode 100755 index 000000000..275ad0d50 --- /dev/null +++ b/modules/linear_algebra/includes/gw_linear_algebra.h @@ -0,0 +1,59 @@ + +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA - Allan CORNET - <allan.cornet@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 + * + */ + +#ifndef __GW_LINEAR_ALGEBRA__ +#define __GW_LINEAR_ALGEBRA__ +#include "dynlib_linear_algebra.h" +#include "machine.h" +/*--------------------------------------------------------------------------*/ +#define SCI_DOUBLE 1 +#define STRING 10 +#define REAL 0 +#define COMPLEX 1 +#define FUNCTION 13 +#define STRINGREAL 27 +#define STRINGCOMPLEX 12 +#define YES 1 +#define NO 0 +/*--------------------------------------------------------------------------*/ +LINEAR_ALGEBRA_IMPEXP int gw_linear_algebra(void); +/*--------------------------------------------------------------------------*/ +LINEAR_ALGEBRA_IMPEXP int C2F(inthess)(char *fname, unsigned long fname_len); +LINEAR_ALGEBRA_IMPEXP int C2F(intqr)(char *fname, unsigned long fname_len); +LINEAR_ALGEBRA_IMPEXP int C2F(intbackslash)(char *fname, unsigned long fname_len); +LINEAR_ALGEBRA_IMPEXP int C2F(intbdiagr)(char *fname, long unsigned int fname_len); +LINEAR_ALGEBRA_IMPEXP int C2F(intdet)(char *fname, unsigned long fname_len); +LINEAR_ALGEBRA_IMPEXP int C2F(intinv)(char *fname, unsigned long fname_len); +LINEAR_ALGEBRA_IMPEXP int C2F(intlu)(char *fname, unsigned long fname_len); +LINEAR_ALGEBRA_IMPEXP int C2F(intrcond)(char *fname, unsigned long fname_len); +LINEAR_ALGEBRA_IMPEXP int C2F(intslash)(char *fname, unsigned long fname_len); +LINEAR_ALGEBRA_IMPEXP int C2F(intsvd)(char *fname, unsigned long fname_len); +LINEAR_ALGEBRA_IMPEXP int C2F(intlsq)(char *fname, unsigned long fname_len); +LINEAR_ALGEBRA_IMPEXP int C2F(intchol)(char *fname, unsigned long fname_len); +LINEAR_ALGEBRA_IMPEXP int C2F(intspec) (char *fname, unsigned long fname_len); +/*--------------------------------------------------------------------------*/ +/* used in 'eig' */ +LINEAR_ALGEBRA_IMPEXP int sci_dsyev(char *fname, unsigned long fname_len); +LINEAR_ALGEBRA_IMPEXP int sci_dgeev(char *fname, unsigned long fname_len); +LINEAR_ALGEBRA_IMPEXP int sci_zgeev(char *fname, unsigned long fname_len); +LINEAR_ALGEBRA_IMPEXP int sci_zheev(char *fname, unsigned long fname_len); +LINEAR_ALGEBRA_IMPEXP int sci_dggev(char *fname, unsigned long fname_len); +LINEAR_ALGEBRA_IMPEXP int sci_zggev(char *fname, unsigned long fname_len); +/*--------------------------------------------------------------------------*/ +LINEAR_ALGEBRA_IMPEXP int C2F(intbalanc)(char *fname, unsigned long fname_len); +LINEAR_ALGEBRA_IMPEXP int C2F(intschur)(char *fname, unsigned long fname_len); +LINEAR_ALGEBRA_IMPEXP int C2F(intnorm) (char *fname,unsigned long fname_len); +/*--------------------------------------------------------------------------*/ +#endif /* __GW_LINEAR_ALGEBRA__ */ +/*--------------------------------------------------------------------------*/ + diff --git a/modules/linear_algebra/includes/gw_linear_algebra2.h b/modules/linear_algebra/includes/gw_linear_algebra2.h new file mode 100755 index 000000000..db5a50107 --- /dev/null +++ b/modules/linear_algebra/includes/gw_linear_algebra2.h @@ -0,0 +1,23 @@ + +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA - Allan CORNET - <allan.cornet@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 + * + */ + +#ifndef __GW_LINEAR_ALGEBRA2__ +#define __GW_LINEAR_ALGEBRA2__ +/*--------------------------------------------------------------------------*/ +#include "dynlib_linear_algebra.h" +/*--------------------------------------------------------------------------*/ +LINEAR_ALGEBRA_IMPEXP int gw_linear_algebra2(void); +/*--------------------------------------------------------------------------*/ +#endif /* __GW_LINEAR_ALGEBRA2__ */ +/*--------------------------------------------------------------------------*/ + diff --git a/modules/linear_algebra/includes/issymmetric.h b/modules/linear_algebra/includes/issymmetric.h new file mode 100755 index 000000000..f6922a647 --- /dev/null +++ b/modules/linear_algebra/includes/issymmetric.h @@ -0,0 +1,38 @@ + +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2007-2008 - INRIA - Bruno JOFRET <bruno.jofret@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 + * + */ + +/* +** -*- C -*- +** +** issymmetric.h +** +** Started on Thu Sep 13 09:48:03 2007 bruno +** Last update Thu Sep 13 10:05:59 2007 bruno +*/ + +#ifndef __ISSYMMETRIC__ +#define __ISSYMMETRIC__ +#include "dynlib_linear_algebra.h" + + + +#define SYMMETRIC 1 +#define NOT_SYMMETRIC 0 + +/* +** Check wether or not a Matrix is Symmetric. +*/ + +LINEAR_ALGEBRA_IMPEXP int C2F(issymmetric)(int *stackPosition); + +#endif /* !__ISSYMMETRIC__ */ diff --git a/modules/linear_algebra/includes/schur.h b/modules/linear_algebra/includes/schur.h new file mode 100755 index 000000000..91ee56092 --- /dev/null +++ b/modules/linear_algebra/includes/schur.h @@ -0,0 +1,188 @@ + +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2007-2008 - INRIA - Sylvestre LEDRU <sylvestre.ledru@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 + * + */ + +#ifndef __SCHUR_H__ +#define __SCHUR_H__ + +#include "dynlib_linear_algebra.h" +#include "machine.h" +#include "linear_FTables.h" + +/*********************************** + * Search Table for schsel + ***********************************/ + +#define ARGS_schsel double *,double* +typedef int * (*schself)(ARGS_schsel); + +/** + * function call : schsel + * @param alpha + * @param beta + * @return + */ +LINEAR_ALGEBRA_IMPEXP int *C2F(schsel)(double *alpha, double *beta); + +/** + * fixes the function associated to name + * @param len + * @param name + * @param rep + */ +LINEAR_ALGEBRA_IMPEXP void C2F(setschsel)(int *len, char *name, int *rep); + +/**************** schsel ***************/ +LINEAR_ALGEBRA_IMPEXP void C2F(sb02mv)(ARGS_schsel); +LINEAR_ALGEBRA_IMPEXP void C2F(sb02mw)(ARGS_schsel); + +FTAB FTab_schsel[] = +{ + {"sb02mv", (voidf) C2F(sb02mv)}, + {"sb02mw", (voidf) C2F(sb02mw)}, + {(char *) 0, (voidf) 0} +}; + + +/*********************************** +* Search Table for gschur uses : gshsel +***********************************/ +/** + * @TODO : add comment + * + * @param alphar + * @param alphai + * @param beta + * @return <ReturnValue> + */ +LINEAR_ALGEBRA_IMPEXP int *C2F(gshsel)(double *alphar, double *alphai, double *beta); + +/** + * fixes the function associated to name + * + * @param len + * @param name + * @param rep + */ +LINEAR_ALGEBRA_IMPEXP void C2F(setgshsel)(int *len, char *name, int *rep); + + +/*********************************** +* Search Table for schur uses : fschur +***********************************/ + +/** + * @TODO : add comment + * + * @param alpha + * @param beta + * @return <ReturnValue> + */ +LINEAR_ALGEBRA_IMPEXP int *C2F(gzhsel)(doublecmplx *alpha, doublecmplx *beta); + +/** + * fixes the function associated to name + * + * @param len + * @param name + * @param rep + */ +LINEAR_ALGEBRA_IMPEXP void C2F(setgzhsel)(int *len, char *name, int *rep); + +/*********************************** +* Search Table for gschur uses : gzhsel +***********************************/ +/** + * @TODO : add comment + * + * @param alpha + * @param beta + * @return <ReturnValue> + */ +LINEAR_ALGEBRA_IMPEXP int *C2F(gzhsel)(doublecmplx *alpha, doublecmplx *beta); + +/** + * fixes the function associated to name + * + * @param len + * @param name + * @param rep + */ +LINEAR_ALGEBRA_IMPEXP void C2F(setgzhsel)(int *len, char *name, int *rep); + + +/*********************************** +* Search Table for schur uses : zchsel +***********************************/ +/** + * @TODO : add comment + * + * @param alpha + * @return <ReturnValue> + */ +LINEAR_ALGEBRA_IMPEXP int *C2F(zchsel)(doublecmplx *alpha); + +/** + * fixes the function associated to name + * + * @param len + * @param name + * @param rep + */ +LINEAR_ALGEBRA_IMPEXP void C2F(setzchsel)(int *len, char *name, int *rep); + +/*********************************** +* Search Table for schur uses : fschur +***********************************/ + +/** + * @TODO add comment + * + * @param lsize + * @param alpha + * @param beta + * @param s + * @param p + * @return <ReturnValue> + */ +LINEAR_ALGEBRA_IMPEXP int *C2F(fschur)(int *lsize, double *alpha, double *beta, double *s, double *p); + +/** + * fixes the function associated to name + * + * @param name + * @param rep + */ +LINEAR_ALGEBRA_IMPEXP void C2F(setfschur)(char *name, int *rep); + + + +/*********************************** + * Search Table for zchsel + ***********************************/ + +#define ARGS_zchsel doublecmplx * +typedef int * (*zchself)(ARGS_zchsel); + + +/**************** zchsel ***************/ +LINEAR_ALGEBRA_IMPEXP void C2F(zb02mv)(ARGS_zchsel); +LINEAR_ALGEBRA_IMPEXP void C2F(zb02mw)(ARGS_zchsel); + +FTAB FTab_zchsel[] = +{ + {"zb02mv", (voidf) C2F(zb02mv)}, + {"zb02mw", (voidf) C2F(zb02mw)}, + {(char *) 0, (voidf) 0} +}; + +#endif /* __SCHUR_H__ */ diff --git a/modules/linear_algebra/libscilinear_algebra-algo.la b/modules/linear_algebra/libscilinear_algebra-algo.la new file mode 100755 index 000000000..4e39f0e11 --- /dev/null +++ b/modules/linear_algebra/libscilinear_algebra-algo.la @@ -0,0 +1,41 @@ +# libscilinear_algebra-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='libscilinear_algebra-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 libscilinear_algebra-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/linear_algebra/libscilinear_algebra.la b/modules/linear_algebra/libscilinear_algebra.la new file mode 100755 index 000000000..52f78c3bd --- /dev/null +++ b/modules/linear_algebra/libscilinear_algebra.la @@ -0,0 +1,41 @@ +# libscilinear_algebra.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='libscilinear_algebra.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 libscilinear_algebra. +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/linear_algebra/license.txt b/modules/linear_algebra/license.txt new file mode 100755 index 000000000..4254a67fd --- /dev/null +++ b/modules/linear_algebra/license.txt @@ -0,0 +1,65 @@ +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 + + +Slicot: +======= + +Files: +src/slicot/* + +sci_gateway/fortran/{sci_f_sident.f,sci_f_sorder.f,sci_f_findbd.f} + +Copyright: +WGS (Working Group on Software) - Slicot project + +License: +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software Foundation, +Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. + +Lapack: +======= + +Files: +src/fortran/DGELSY1.f +src/fortran/ZGELSY1.f + +Copyright: +Univ. of Tennessee, Univ. of California Berkeley, Univ. of Colorado Denver, NAG Ltd., +Courant Institute, Argonne National Lab, and Rice University +June 30, 1999 + +License: +LAPACK is a freely-available software package. It is available from +netlib via anonymous ftp and the World Wide Web. Thus, it can be +included in commercial software packages (and has been). We only ask +that proper credit be given to the authors. + +Like all software, it is copyrighted. It is not trademarked, but we do +ask the following: + +If you modify the source for these routines we ask that you change the +name of the routine and comment the changes made to the original. + +We will gladly answer any questions regarding the software. If a +modification is done, however, it is the responsibility of the person +who modified the routine to provide support. diff --git a/modules/linear_algebra/linear_algebra.iss b/modules/linear_algebra/linear_algebra.iss new file mode 100755 index 000000000..5eed69697 --- /dev/null +++ b/modules/linear_algebra/linear_algebra.iss @@ -0,0 +1,47 @@ +; +; 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) +; +;-------------------------------------------------------------------------------------------------------------- +; linear_algebra module +;-------------------------------------------------------------------------------------------------------------- +; +#define LINEAR_ALGEBRA "linear_algebra" +; +Source: bin\{#LINEAR_ALGEBRA}.dll; DestDir: {app}\bin; Components: {#COMPN_SCILAB} +Source: bin\{#LINEAR_ALGEBRA}_f.dll; DestDir: {app}\bin; Components: {#COMPN_SCILAB} +; +Source: modules\{#LINEAR_ALGEBRA}\license.txt; DestDir: {app}\modules\{#LINEAR_ALGEBRA}; Components: {#COMPN_SCILAB} +; +Source: modules\{#LINEAR_ALGEBRA}\sci_gateway\{#LINEAR_ALGEBRA}_gateway.xml; DestDir: {app}\modules\{#LINEAR_ALGEBRA}\sci_gateway; Components: {#COMPN_SCILAB} +; +Source: modules\{#LINEAR_ALGEBRA}\etc\{#LINEAR_ALGEBRA}.quit; DestDir: {app}\modules\{#LINEAR_ALGEBRA}\etc; Components: {#COMPN_SCILAB} +Source: modules\{#LINEAR_ALGEBRA}\etc\{#LINEAR_ALGEBRA}.start; DestDir: {app}\modules\{#LINEAR_ALGEBRA}\etc; Components: {#COMPN_SCILAB} +; +;Source: modules\{#LINEAR_ALGEBRA}\includes\*.h; DestDir: {app}\modules\{#LINEAR_ALGEBRA}\includes; Components: {#COMPN_SCILAB} +; +Source: modules\{#LINEAR_ALGEBRA}\macros\buildmacros.sce; DestDir: {app}\modules\{#LINEAR_ALGEBRA}\macros; Components: {#COMPN_SCILAB} +Source: modules\{#LINEAR_ALGEBRA}\macros\buildmacros.bat; DestDir: {app}\modules\{#LINEAR_ALGEBRA}\macros; Components: {#COMPN_SCILAB} +Source: modules\{#LINEAR_ALGEBRA}\macros\cleanmacros.bat; DestDir: {app}\modules\{#LINEAR_ALGEBRA}\macros; Components: {#COMPN_SCILAB} +Source: modules\{#LINEAR_ALGEBRA}\macros\lib; DestDir: {app}\modules\{#LINEAR_ALGEBRA}\macros; Components: {#COMPN_SCILAB} +Source: modules\{#LINEAR_ALGEBRA}\macros\names; DestDir: {app}\modules\{#LINEAR_ALGEBRA}\macros; Components: {#COMPN_SCILAB} +Source: modules\{#LINEAR_ALGEBRA}\macros\*.bin; DestDir: {app}\modules\{#LINEAR_ALGEBRA}\macros; Components: {#COMPN_SCILAB} +Source: modules\{#LINEAR_ALGEBRA}\macros\*.sci; DestDir: {app}\modules\{#LINEAR_ALGEBRA}\macros; Components: {#COMPN_SCILAB} +; +;Source: modules\{#LINEAR_ALGEBRA}\demos\*.*; DestDir: {app}\modules\{#LINEAR_ALGEBRA}\demos; Flags: recursesubdirs; Components: {#COMPN_SCILAB} +; +Source: modules\{#LINEAR_ALGEBRA}\examples\*.*; DestDir: {app}\modules\{#LINEAR_ALGEBRA}\examples; Flags: recursesubdirs; Components: {#COMPN_SCILAB} +; +Source: modules\{#LINEAR_ALGEBRA}\tests\*.*; DestDir: {app}\modules\{#LINEAR_ALGEBRA}\tests; Flags: recursesubdirs; Components: {#COMPN_SCILAB} and {#COMPN_TESTS} +; +;-------------------------------------------------------------------------------------------------------------- diff --git a/modules/linear_algebra/locales/ca_ES.po b/modules/linear_algebra/locales/ca_ES.po new file mode 100755 index 000000000..967114b10 --- /dev/null +++ b/modules/linear_algebra/locales/ca_ES.po @@ -0,0 +1,227 @@ +# 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: 2011-09-01 09:33+0000\n" +"Last-Translator: oriolsbd <oriolsbd@yahoo.es>\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" + +#, c-format +msgid "" +"%s: Wrong type for input argument #%d: Real or Complex matrix expected.\n" +msgstr "" +"%s: L'argument d'entrada #%d és d'un tipus incorrecte: Ha de ser una matriu " +"de nombres reals o complexos.\n" + +#, c-format +msgid "%s: Non convergence in QR steps.\n" +msgstr "%s: Els passos QR no convergeixen.\n" + +#, c-format +msgid "%s: Can not read input argument #%d.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for argument #%d: Real or complex matrix expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong value for argument #%d: Must not contain NaN or Inf.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: String or integer expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A string expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong value for input argument #%d: %s, %s, %s, or %s expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong value for input argument #%d: %s, %s, %s or %s expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A real expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A real scalar expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: Real scalar expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: Real matrix expected.\n" +msgstr "" +"%s: L'argument d'entrada #%d és d'un tipus incorrecte: Ha de ser una matriu " +"real.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: Polynomial expected." +msgstr "" + +#, c-format +msgid "%s: Wrong value for input argument #%d: must not contain %s or %s.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A matrix expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A square matrix expected.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Wrong type for input argument #%d: A scalar or a string expected.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: must be %d, %d, %s, '%s' or '%s'.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong number of input argument(s): %d to %d expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong number of input arguments: %d to %d expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A scalar expected.\n" +msgstr "" +"%s: L'argument d'entrada #%d té una mida incorrecta. Ha de ser un escalar.\n" + +#, c-format +msgid "" +"%s: Wrong values for input argument #%d: Non-negative integers expected.\n" +msgstr "" +"%s: L'argument d'entrada #%d té valors incorrectes: Han de ser nombres " +"enters no-negatius.\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A column vector expected.\n" +msgstr "" +"%s: L'argument d'entrada #%d té una mida incorrecta: Ha de ser un vector " +"columna.\n" + +#, c-format +msgid "%s: Obsolete function. Please replace '%s' by '%s'." +msgstr "" + +#, c-format +msgid "" +"%s: Obsolete function. Former external functions cannot be used anymore." +msgstr "" + +#, c-format +msgid "%s: Incompatible input arguments #%d and #%d: Same sizes expected.\n" +msgstr "" +"%s: Els arguments d'entrada #%d i #%d són incompatibles: Han de tenir la " +"mateixa mida.\n" + +#, c-format +msgid "%s: SVD and QR not implemented in sparse.\n" +msgstr "%s: No s'ha implementat SVD i QR per a matrius disperses.\n" + +#, c-format +msgid "%s: This feature has not been implemented.\n" +msgstr "%s: Aquesta caracterÃstica no està implementada.\n" + +msgid "Conflicting linear constraints." +msgstr "" + +msgid "Recomputing initial guess" +msgstr "" + +#, c-format +msgid "Possible Conflicting linear constraints, error in the order of %s" +msgstr "" + +#, c-format +msgid "%s: Wrong number of input arguments: %d or %d expected.\n" +msgstr "" +"%s: Nombre incorrecte d'arguments d'entrada: Se'n necessiten %d o %d.\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: Singular pencil." +msgstr "" + +#, c-format +msgid "" +"%s: Function not defined for type '%s'. Check argument or define function %s." +msgstr "" + +#, 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: Wrong value for input argument #%d: Non-negative integer expected.\n" +msgstr "" +"%s: L'argument d'entrada #%d té un valor incorrecte: Ha de ser un nombre " +"enter no-negatiu.\n" + +#, 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 values for input argument #%d: Non-negative scalar expected.\n" +msgstr "" +"%s: L'argument d'entrada #%d té valors incorrectes: Ha de ser un escalar no-" +"negatiu.\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d: Symmetric expected" +msgstr "" +"%s: L'argument d'entrada #%d té una mida incorrecta: Ha de ser simètrica" + +#, c-format +msgid "%s: Wrong value for input argument #%d: Not semi-definite positive" +msgstr "" +"%s: L'argument d'entrada #%d té un valor incorrecte: No és semi-definit " +"positiu." + +#, c-format +msgid "%s: Wrong type for input argument #%d.\n" +msgstr "%s: L'argument d'entrada #%d és d'un tipus incorrecte.\n" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: Requested rank is greater than " +"matrix dimension." +msgstr "" +"%s: L'argument d'entrada #%d té un valor incorrecte: El rang indicat és " +"major que la dimensió de la matriu." diff --git a/modules/linear_algebra/locales/cs_CZ.po b/modules/linear_algebra/locales/cs_CZ.po new file mode 100755 index 000000000..c026cc92f --- /dev/null +++ b/modules/linear_algebra/locales/cs_CZ.po @@ -0,0 +1,221 @@ +# 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" + +#, c-format +msgid "" +"%s: Wrong type for input argument #%d: Real or Complex matrix expected.\n" +msgstr "" +"%s: Chybný typ vstupnÃho argumentu #%d: OÄekávána matice reálných nebo " +"komplexnÃch ÄÃsel.\n" + +#, c-format +msgid "%s: Non convergence in QR steps.\n" +msgstr "%s: QR kroky nekonvergujÃ.\n" + +#, c-format +msgid "%s: Can not read input argument #%d.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for argument #%d: Real or complex matrix expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong value for argument #%d: Must not contain NaN or Inf.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: String or integer expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A string expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong value for input argument #%d: %s, %s, %s, or %s expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong value for input argument #%d: %s, %s, %s or %s expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A real expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A real scalar expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: Real scalar expected.\n" +msgstr "%s: Å patný typ vstupnÃho argumentu #%d: OÄekáván reálný skalár.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: Real matrix expected.\n" +msgstr "" +"%s: Chybný typ vstupnÃho argumentu #%d: OÄekávána matice reálných ÄÃsel.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: Polynomial expected." +msgstr "%s: Å patný typ vstupnÃho argumentu #%d: OÄekáván polynom." + +#, c-format +msgid "%s: Wrong value for input argument #%d: must not contain %s or %s.\n" +msgstr "" +"%s: Å patná hodnota vstupnÃho argumentu #%d: nesmà obsahovat %s nebo %s.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A matrix expected.\n" +msgstr "%s: Å patný typ vstupnÃho argumentu #%d: OÄekávána matice.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A square matrix expected.\n" +msgstr "" +"%s: Å patný typ vstupnÃho argumentu #%d: OÄekávána Ätvercová matice.\n" + +#, c-format +msgid "" +"%s: Wrong type for input argument #%d: A scalar or a string expected.\n" +msgstr "" +"%s: Å patný typ vstupnÃho argumentu #%d: OÄekáván skalár, nebo Å™etÄ›zec.\n" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: must be %d, %d, %s, '%s' or '%s'.\n" +msgstr "" +"%s: Å patná hodnota vstupnÃho argumentu #%d: Musà být %d, %d, %s, '%s' nebo " +"'%s'.\n" + +#, c-format +msgid "%s: Wrong number of input argument(s): %d to %d expected.\n" +msgstr "%s: Å patný poÄet vstupnÃch argumentů: oÄekáváno %d až %d.\n" + +#, c-format +msgid "%s: Wrong number of input arguments: %d to %d expected.\n" +msgstr "%s: Å patný poÄet vstupnÃch argumentů: oÄekáváno %d až %d.\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A scalar expected.\n" +msgstr "%s: Å patná velikost vstupnÃho argumentu #%d: OÄekáván skalár.\n" + +#, c-format +msgid "" +"%s: Wrong values for input argument #%d: Non-negative integers expected.\n" +msgstr "" +"%s: Å patné hodnoty vstupnÃho argumentu #%d: OÄekávána nezáporná celá ÄÃsla.\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A column vector expected.\n" +msgstr "" +"%s: Å patná velikost vstupnÃho argumentu #%d: OÄekáván sloupcový vektor.\n" + +#, c-format +msgid "%s: Obsolete function. Please replace '%s' by '%s'." +msgstr "%s: Zastaralá funkce. ProsÃm použijte '%s' krát '%s'." + +#, c-format +msgid "" +"%s: Obsolete function. Former external functions cannot be used anymore." +msgstr "" +"%s: Zastaralá funkce. Bývalé externà funkce již nemohou být použÃvány." + +#, c-format +msgid "%s: Incompatible input arguments #%d and #%d: Same sizes expected.\n" +msgstr "" +"%s: Nekompatibilnà vstupnà argumenty #%d a #%d: OÄekávány stejné velikosti.\n" + +#, c-format +msgid "%s: SVD and QR not implemented in sparse.\n" +msgstr "%s: SVD a QR nejsou v rozptýlenà zavedeni.\n" + +#, c-format +msgid "%s: This feature has not been implemented.\n" +msgstr "%s: Tato funkce nebyla zavedena.\n" + +msgid "Conflicting linear constraints." +msgstr "Sporná lineárnà omezenÃ." + +msgid "Recomputing initial guess" +msgstr "Znovu poÄÃtánà úvodnÃho odhadu" + +#, c-format +msgid "Possible Conflicting linear constraints, error in the order of %s" +msgstr "Možné sporné lineárnà omezenÃ, chyba v řádu %s" + +#, c-format +msgid "%s: Wrong number of input arguments: %d or %d expected.\n" +msgstr "%s: Å patný poÄet vstupnÃch argumentů: OÄekávány %d nebo %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: Singular pencil." +msgstr "%s: Jednotná tužka." + +#, c-format +msgid "" +"%s: Function not defined for type '%s'. Check argument or define function %s." +msgstr "" +"%s: Funkce nenà pro typ '%s' definována. Zkontrolujte argument nebo zadejte " +"funkci %s." + +#, c-format +msgid "%s: Wrong number of input argument(s): %d expected.\n" +msgstr "%s: Å patný poÄet vstupnÃch argumentů: OÄekáváno %d.\n" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: Non-negative integer expected.\n" +msgstr "" +"%s: Å patná hodnota vstupnÃho argumentu #%d: OÄekáváno nezáporné celé ÄÃslo.\n" + +#, 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 values for input argument #%d: Non-negative scalar expected.\n" +msgstr "" +"%s: Å patné hodnoty vstupnÃho argumentu #%d: OÄekáván nezáporný skalár.\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d: Symmetric expected" +msgstr "%s: Å patná velikost vstupnÃho argumentu #%d: OÄekávána soumÄ›rnost" + +#, c-format +msgid "%s: Wrong value for input argument #%d: Not semi-definite positive" +msgstr "" +"%s: Å patná hodnota vstupnÃho argumentu #%d: Nenà kladnÄ› semidefinitnÃ" + +#, c-format +msgid "%s: Wrong type for input argument #%d.\n" +msgstr "%s: Å patný typ vstupnÃho argumentu #%d.\n" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: Requested rank is greater than " +"matrix dimension." +msgstr "" +"%s: Å patná hodnota vstupnÃho argumentu #%d: Požadovaná hodnost vÄ›tÅ¡Ã než " +"rozmÄ›ry matice." diff --git a/modules/linear_algebra/locales/de_DE.po b/modules/linear_algebra/locales/de_DE.po new file mode 100755 index 000000000..9365386f4 --- /dev/null +++ b/modules/linear_algebra/locales/de_DE.po @@ -0,0 +1,224 @@ +# 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-10-30 18:24+0000\n" +"Last-Translator: Dennis Baudys <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" + +#, c-format +msgid "" +"%s: Wrong type for input argument #%d: Real or Complex matrix expected.\n" +msgstr "" +"%s: Falscher Typ für Eingangsargument #%d: Reale oder komplexe Matrix " +"erwartet.\n" + +#, c-format +msgid "%s: Non convergence in QR steps.\n" +msgstr "%s: keine Konvergenz in QR Stufen.\n" + +#, c-format +msgid "%s: Can not read input argument #%d.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for argument #%d: Real or complex matrix expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong value for argument #%d: Must not contain NaN or Inf.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: String or integer expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A string expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong value for input argument #%d: %s, %s, %s, or %s expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong value for input argument #%d: %s, %s, %s or %s expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A real expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A real scalar expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: Real scalar expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: Real matrix expected.\n" +msgstr "%s: Falscher Typ für Eingangsargument #%d: Reale Matrix erwartet.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: Polynomial expected." +msgstr "" + +#, c-format +msgid "%s: Wrong value for input argument #%d: must not contain %s or %s.\n" +msgstr "" +"%s: Falscher Wert für Eingangsargument #%d: Es muss %s oder %s enthalten " +"sein.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A matrix expected.\n" +msgstr "" +"%s: Falscher Typ für Eingangsargument #%d: Eine Matrix wird erwartet.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A square matrix expected.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Wrong type for input argument #%d: A scalar or a string expected.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: must be %d, %d, %s, '%s' or '%s'.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong number of input argument(s): %d to %d expected.\n" +msgstr "" +"%s: Falsche Anzahl von Eingangsargumenten: Zwischen %d und %d werden " +"erwartet.\n" + +#, c-format +msgid "%s: Wrong number of input arguments: %d to %d expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A scalar expected.\n" +msgstr "%s: Falsche Größe des Eingangsarguments #%d: Skalar wird erwartet.\n" + +#, c-format +msgid "" +"%s: Wrong values for input argument #%d: Non-negative integers expected.\n" +msgstr "" +"%s: falscher Wert für Eingangsargument #%d: nicht-negative Integer " +"erwartet.\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A column vector expected.\n" +msgstr "" +"%s: falsche Größe für Eingangsargument #%d: ein Spaltenvektor erwartet.\n" + +#, c-format +msgid "%s: Obsolete function. Please replace '%s' by '%s'." +msgstr "" + +#, c-format +msgid "" +"%s: Obsolete function. Former external functions cannot be used anymore." +msgstr "" + +#, c-format +msgid "%s: Incompatible input arguments #%d and #%d: Same sizes expected.\n" +msgstr "" +"%s: Inkompatible Eingangsargumente #%d und #%d: Gleiche Größen werden " +"erwartet.\n" + +#, c-format +msgid "%s: SVD and QR not implemented in sparse.\n" +msgstr "%s: SVD und QR nicht implementiert.\n" + +#, c-format +msgid "%s: This feature has not been implemented.\n" +msgstr "%s: diese Funktion wurde nicht implementiert.\n" + +msgid "Conflicting linear constraints." +msgstr "" + +msgid "Recomputing initial guess" +msgstr "" + +#, c-format +msgid "Possible Conflicting linear constraints, error in the order of %s" +msgstr "" + +#, c-format +msgid "%s: Wrong number of input arguments: %d or %d expected.\n" +msgstr "" +"%s: Unerwartete Anzahl von Eingangsargumenten: %d oder %d erwartet.\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: Singular pencil." +msgstr "" + +#, c-format +msgid "" +"%s: Function not defined for type '%s'. Check argument or define function %s." +msgstr "" + +#, 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: Wrong value for input argument #%d: Non-negative integer expected.\n" +msgstr "" +"%s: falscher Wert für Eingabeargument #%d: nicht-negativer Integer " +"erwartet.\n" + +#, 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 values for input argument #%d: Non-negative scalar expected.\n" +msgstr "" +"%s: falscher Wert für Eingangsargument #%d: nicht-negativer Skalar " +"erwartet.\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d: Symmetric expected" +msgstr "%s: falsche Größe für Eingangsargument #%d: Symetrie erwartet" + +#, c-format +msgid "%s: Wrong value for input argument #%d: Not semi-definite positive" +msgstr "" +"%s: falscher Wert für Eingangsargument '%d: nicht semi-definite positive Zahl" + +#, c-format +msgid "%s: Wrong type for input argument #%d.\n" +msgstr "%s: falscher Typ für Eingangsargument #%d.\n" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: Requested rank is greater than " +"matrix dimension." +msgstr "" +"%s: falscher Wert für Eingabeargument #%d: angefragter Rang ist größer als " +"die Dimension der Matrix." diff --git a/modules/linear_algebra/locales/es_ES.po b/modules/linear_algebra/locales/es_ES.po new file mode 100755 index 000000000..2589801cd --- /dev/null +++ b/modules/linear_algebra/locales/es_ES.po @@ -0,0 +1,226 @@ +# 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: 2011-09-01 09:53+0000\n" +"Last-Translator: Scilab.team <Unknown>\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" + +#, c-format +msgid "" +"%s: Wrong type for input argument #%d: Real or Complex matrix expected.\n" +msgstr "" +"%s: Tipo incorrecto del argumento de entrada #%d: Se esperaba una matriz " +"Real o Compleja.\n" + +#, c-format +msgid "%s: Non convergence in QR steps.\n" +msgstr "%s: No hay convergencia en los pasos QR.\n" + +#, c-format +msgid "%s: Can not read input argument #%d.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for argument #%d: Real or complex matrix expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong value for argument #%d: Must not contain NaN or Inf.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: String or integer expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A string expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong value for input argument #%d: %s, %s, %s, or %s expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong value for input argument #%d: %s, %s, %s or %s expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A real expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A real scalar expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: Real scalar expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: Real matrix expected.\n" +msgstr "" +"%s:Tipo incorrecto del argumento de entrada #%d: Se esperaba una matriz " +"real.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: Polynomial expected." +msgstr "" + +#, c-format +msgid "%s: Wrong value for input argument #%d: must not contain %s or %s.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A matrix expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A square matrix expected.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Wrong type for input argument #%d: A scalar or a string expected.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: must be %d, %d, %s, '%s' or '%s'.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong number of input argument(s): %d to %d expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong number of input arguments: %d to %d expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A scalar expected.\n" +msgstr "" +"%s: Tamaño incorrecto del argumento de entrada #%d: Se esperaba un escalar.\n" + +#, c-format +msgid "" +"%s: Wrong values for input argument #%d: Non-negative integers expected.\n" +msgstr "" +"%s: Valores incorrectos del argumento de entrada #%d: Se esperaban enteros " +"no-negativos.\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A column vector expected.\n" +msgstr "" +"%s: Tamaño incorrecto del argumento de entrada #%d: Se esperaba un vector " +"columna.\n" + +#, c-format +msgid "%s: Obsolete function. Please replace '%s' by '%s'." +msgstr "" + +#, c-format +msgid "" +"%s: Obsolete function. Former external functions cannot be used anymore." +msgstr "" + +#, c-format +msgid "%s: Incompatible input arguments #%d and #%d: Same sizes expected.\n" +msgstr "" +"%s: Argumentos de entrada #%d y #%d incompatibles: Se los esperaba del mismo " +"tamaño.\n" + +#, c-format +msgid "%s: SVD and QR not implemented in sparse.\n" +msgstr "%s: SVD y QR no implementadas en dispersión.\n" + +#, c-format +msgid "%s: This feature has not been implemented.\n" +msgstr "%s: Esta función aun no ha sido implementada.\n" + +msgid "Conflicting linear constraints." +msgstr "" + +msgid "Recomputing initial guess" +msgstr "" + +#, c-format +msgid "Possible Conflicting linear constraints, error in the order of %s" +msgstr "" + +#, c-format +msgid "%s: Wrong number of input arguments: %d or %d expected.\n" +msgstr "" +"%s: Número incorrecto de argumentos de entrada: Se esperaban %d ó %d.\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: Singular pencil." +msgstr "" + +#, c-format +msgid "" +"%s: Function not defined for type '%s'. Check argument or define function %s." +msgstr "" + +#, 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: Wrong value for input argument #%d: Non-negative integer expected.\n" +msgstr "" +"%s: Valor incorrecto del argumento de entrada #%d: Se esperaban enteros " +"positivos.\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 values for input argument #%d: Non-negative scalar expected.\n" +msgstr "" +"%s: Valores incorrectos del argumentos de entrada #%d: Se esperaban " +"escalares no-negativos.\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d: Symmetric expected" +msgstr "" +"%s: Tamaño incorrecto del argumento de entrada #%d: Se esperaba uno simétrico" + +#, c-format +msgid "%s: Wrong value for input argument #%d: Not semi-definite positive" +msgstr "" +"%s: Valor incorrecto del argumento de entrada #%d: No positivo semi-definido" + +#, c-format +msgid "%s: Wrong type for input argument #%d.\n" +msgstr "%s: Tipo incorrecto del argumento de entrada #%d.\n" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: Requested rank is greater than " +"matrix dimension." +msgstr "" +"%s: Valor incorrecto del argumento de entrada #%d: El rango pedido es mayor " +"que la dimensión de la matriz." diff --git a/modules/linear_algebra/locales/fr_FR.po b/modules/linear_algebra/locales/fr_FR.po new file mode 100755 index 000000000..83494ceed --- /dev/null +++ b/modules/linear_algebra/locales/fr_FR.po @@ -0,0 +1,249 @@ +# 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: 2014-04-01 10:47+0000\n" +"Last-Translator: Vincent Couvert <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" + +#, c-format +msgid "" +"%s: Wrong type for input argument #%d: Real or Complex matrix expected.\n" +msgstr "" +"%s : Type erroné de l'argument d'entrée n°%d : Une matrice réelle ou " +"complexe attendue.\n" + +#, c-format +msgid "%s: Non convergence in QR steps.\n" +msgstr "%s : Non convergence des itérations QR.\n" + +#, c-format +msgid "%s: Can not read input argument #%d.\n" +msgstr "%s : Impossible de lire l'argument d'entrée n°%d.\n" + +#, c-format +msgid "%s: Wrong type for argument #%d: Real or complex matrix expected.\n" +msgstr "" +"%s : Type erroné de l'argument n°%d : Une matrice réelle ou complexe " +"attendue.\n" + +#, c-format +msgid "%s: Wrong value for argument #%d: Must not contain NaN or Inf.\n" +msgstr "" +"%s : Valeur erronée de l'argument n°%d : Ne doit pas contenir Nan ou Inf.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: String or integer expected.\n" +msgstr "" +"%s : Type erroné de l'argument d'entrée n°%d : Une chaîne de caractères ou " +"un entier attendu.\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A string expected.\n" +msgstr "" +"%s : Dimension erronée de l'argument d'entrée n°%d : Une chaîne de " +"caractères attendue.\n" + +#, c-format +msgid "%s: Wrong value for input argument #%d: %s, %s, %s, or %s expected.\n" +msgstr "" +"%s : Valeur erronée de l'argument d'entrée n°%d : %s, %s, %s, ou %s " +"attendu.\n" + +#, c-format +msgid "%s: Wrong value for input argument #%d: %s, %s, %s or %s expected.\n" +msgstr "" +"%s : Valeur erronée de l'argument d'entrée n°%d : %s, %s, %s ou %s attendu.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A real expected.\n" +msgstr "%s : Type erroné de l'argument d'entrée n°%d : Un réel attendu.\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A real scalar expected.\n" +msgstr "" +"%s : Dimension erronée de l'argument d'entrée n°%d : Un scalaire réel " +"attendu.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: Real scalar expected.\n" +msgstr "" +"%s : Type erroné de l'argument d'entrée n°%d : Un scalaire réel attendu.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: Real matrix expected.\n" +msgstr "" +"%s : Type erroné de l'argument d'entrée n°%d : Une matrice réelle attendue.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: Polynomial expected." +msgstr "%s : Type erroné de l'argument d'entrée n°%d : Un polynôme attendu." + +#, c-format +msgid "%s: Wrong value for input argument #%d: must not contain %s or %s.\n" +msgstr "" +"%s : Valeur erronée de l'argument d'entrée n°%d : Doit contenir %s ou %s.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A matrix expected.\n" +msgstr "" +"%s : Type erroné de l'argument d'entrée n°%d : Une matrice attendue.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A square matrix expected.\n" +msgstr "" +"%s : Type erroné 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 scalar or a string expected.\n" +msgstr "" +"%s : Type erroné de l'argument d'entrée n°%d : Un scalaire ou une chaîne de " +"caractères attendu.\n" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: must be %d, %d, %s, '%s' or '%s'.\n" +msgstr "" +"%s : Valeur erronée de l'argument d'entrée n°%d : Doit être %d, %d, %s, '%s' " +"ou '%s'.\n" + +#, c-format +msgid "%s: Wrong number of input argument(s): %d to %d expected.\n" +msgstr "%s : Nombre erroné d'argument(s) d'entrée : %d à %d attendu(s).\n" + +#, c-format +msgid "%s: Wrong number of input arguments: %d to %d expected.\n" +msgstr "%s : Nombre erroné d'arguments d'entrée : %d à %d attendus.\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A scalar expected.\n" +msgstr "" +"%s : Dimension erronée de l'argument d'entrée n°%d : Un scalaire attendu.\n" + +#, c-format +msgid "" +"%s: Wrong values for input argument #%d: Non-negative integers expected.\n" +msgstr "" +"%s : Valeurs erronées de l'argument d'entrée n°%d : Un entier positif " +"attendu.\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A column vector expected.\n" +msgstr "" +"%s : Dimension erronée de l'argument d'entrée n°%d : Un vecteur colonne " +"attendu.\n" + +#, c-format +msgid "%s: Obsolete function. Please replace '%s' by '%s'." +msgstr "%s : Fonction obsolète. Veuillez remplacer '%s' par '%s'." + +#, c-format +msgid "" +"%s: Obsolete function. Former external functions cannot be used anymore." +msgstr "" +"%s : Fonction obsolète. Les anciennes fonctions externes ne peuvent plus " +"être utilisées dorénavant." + +#, c-format +msgid "%s: Incompatible input arguments #%d and #%d: Same sizes expected.\n" +msgstr "" +"%s : Arguments d'entrée n°%d et n°%d incompatibles : Mêmes dimensions " +"attendues.\n" + +#, c-format +msgid "%s: SVD and QR not implemented in sparse.\n" +msgstr "%s : SVD et QR ne sont pas implémentés pour sparse.\n" + +#, c-format +msgid "%s: This feature has not been implemented.\n" +msgstr "%s : Cette fonction n'a pas été implémentée.\n" + +msgid "Conflicting linear constraints." +msgstr "Contraintes linéaires en conflit." + +msgid "Recomputing initial guess" +msgstr "Recalcul de l'estimation initiale" + +#, c-format +msgid "Possible Conflicting linear constraints, error in the order of %s" +msgstr "" +"Possibilité de contraintes linéaires en conflit, erreur de l'ordre de %s" + +#, c-format +msgid "%s: Wrong number of input arguments: %d or %d expected.\n" +msgstr "%s : Nombre erroné d'arguments d'entrée : %d ou %d attendus.\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: Singular pencil." +msgstr "%s : Faisceau singulier." + +#, c-format +msgid "" +"%s: Function not defined for type '%s'. Check argument or define function %s." +msgstr "" +"%s : Fonction non définie pour le type '%s'. Veuillez vérifier l'argument ou " +"définissez la fonction %s." + +#, 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: Wrong value for input argument #%d: Non-negative integer expected.\n" +msgstr "" +"%s : Valeur erronée de l'argument d'entrée n°%d : Un entier positif " +"attendu.\n" + +#, 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 values for input argument #%d: Non-negative scalar expected.\n" +msgstr "" +"%s : Valeurs erronées de l'argument d'entrée n°%d : Un scalaire positif " +"attendu.\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d: Symmetric expected" +msgstr "" +"%s : Dimension erronée de l'argument d'entrée n°%d : Une symétrique attendue" + +#, c-format +msgid "%s: Wrong value for input argument #%d: Not semi-definite positive" +msgstr "" +"%s : Valeur erronée de l'argument d'entrée n°%d : Non positive semi-définie" + +#, c-format +msgid "%s: Wrong type for input argument #%d.\n" +msgstr "%s : Type erroné de l'argument d'entrée n°%d.\n" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: Requested rank is greater than " +"matrix dimension." +msgstr "" +"%s : Valeur erronée de l'argument d'entrée n°%d : Le rang demandé est plus " +"grand que la dimension de la matrice." diff --git a/modules/linear_algebra/locales/it_IT.po b/modules/linear_algebra/locales/it_IT.po new file mode 100755 index 000000000..5ddc65b83 --- /dev/null +++ b/modules/linear_algebra/locales/it_IT.po @@ -0,0 +1,268 @@ +# Italian 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: 2015-02-15 21:50+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" + +#, c-format +msgid "" +"%s: Wrong type for input argument #%d: Real or Complex matrix expected.\n" +msgstr "" +"%s: L'argomento in ingresso #%d è di tipo sbagliato: era attesa una matrice " +"reale o complessa.\n" + +#, c-format +msgid "%s: Non convergence in QR steps.\n" +msgstr "%s: Non c'è convergenza nei passi di QR.\n" + +#, c-format +msgid "%s: Can not read input argument #%d.\n" +msgstr "%s: Impossibile leggere l'argomento in ingresso #%d.\n" + +#, c-format +msgid "%s: Wrong type for argument #%d: Real or complex matrix expected.\n" +msgstr "" +"%s: L'argomento in ingresso #%d è di tipo sbagliato: era attesa una matrice " +"reale o complessa.\n" + +#, c-format +msgid "%s: Wrong value for argument #%d: Must not contain NaN or Inf.\n" +msgstr "" +"%s: L'argomento in ingresso #%d ha un valore sbagliato: non deve contenere " +"un NaN o un Inf.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: String or integer expected.\n" +msgstr "" +"%s: L'argomento in ingresso #%d è di tipo sbagliato: era attesa una stringa " +"o un intero.\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A string expected.\n" +msgstr "" +"%s: L'argomento in ingresso #%d ha una dimensione sbagliata: era attesa una " +"stringa.\n" + +#, c-format +msgid "%s: Wrong value for input argument #%d: %s, %s, %s, or %s expected.\n" +msgstr "" +"%s: L'argomento in ingresso #%d ha un valore sbagliato: era atteso %s, %s, " +"%s, o %s.\n" + +#, c-format +msgid "%s: Wrong value for input argument #%d: %s, %s, %s or %s expected.\n" +msgstr "" +"%s: L' argomento in ingresso #%d ha un valore sbagliato: era atteso %s, %s, " +"%s o %s.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A real expected.\n" +msgstr "" +"%s: L'argomento in ingresso #%d è di tipo sbagliato: era atteso un numero " +"reale.\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A real scalar expected.\n" +msgstr "" +"%s: L'argomento in ingresso #%d ha una dimensione sbagliata: era atteso uno " +"scalare reale.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: Real scalar expected.\n" +msgstr "" +"%s: L'argomento in ingresso #%d è di tipo sbagliato: era atteso uno scalare " +"reale.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: Real matrix expected.\n" +msgstr "" +"%s: L'argomento in ingresso #%d è di tipo sbagliato: era attesa una matrice " +"reale.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: Polynomial expected." +msgstr "" +"%s: L'argomento in ingresso #%d è di tipo sbagliato: era atteso un polinomio." + +#, c-format +msgid "%s: Wrong value for input argument #%d: must not contain %s or %s.\n" +msgstr "" +"%s: L'argomento in ingresso #%d ha un valore sbagliato: non deve contenere " +"%s o %s.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A matrix expected.\n" +msgstr "" +"%s: L'argomento in ingresso #%d è di tipo sbagliato: era attesa una " +"matrice.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A square matrix expected.\n" +msgstr "" +"%s: L'argomento in ingresso #%d è di tipo sbagliato: era attesa una matrice " +"quadrata.\n" + +#, c-format +msgid "" +"%s: Wrong type for input argument #%d: A scalar or a string expected.\n" +msgstr "" +"%s: L'argomento in ingresso #%d è di tipo sbagliato: era atteso uno scalare " +"o una stringa.\n" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: must be %d, %d, %s, '%s' or '%s'.\n" +msgstr "" +"%s: L'argomento in ingresso #%d ha un valore sbagliato: deve essere %d, %d, " +"%s, ''%s'' o ''%s''.\n" + +#, c-format +msgid "%s: Wrong number of input argument(s): %d to %d expected.\n" +msgstr "" +"%s: Il numero degli argomenti in ingresso è sbagliato: era atteso da %d a " +"%d.\n" + +#, c-format +msgid "%s: Wrong number of input arguments: %d to %d expected.\n" +msgstr "" +"%s: Il numero degli argomenti in ingresso è sbagliato: era atteso da %d a " +"%d.\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A scalar expected.\n" +msgstr "" +"%s: L'argomento in ingresso #%d ha una dimensione sbagliata: era atteso uno " +"scalare.\n" + +#, c-format +msgid "" +"%s: Wrong values for input argument #%d: Non-negative integers expected.\n" +msgstr "" +"%s: L'argomento in ingresso #%d ha dei valori sbagliati: erano attesi degli " +"interi non-negativi.\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A column vector expected.\n" +msgstr "" +"%s: L'argomento in ingresso #%d ha una dimensione sbagliata: era atteso un " +"vettore colonna.\n" + +#, c-format +msgid "%s: Obsolete function. Please replace '%s' by '%s'." +msgstr "%s: Funzione obsoleta. Rimpiazzare \"%s\" con \"%s\"." + +#, c-format +msgid "" +"%s: Obsolete function. Former external functions cannot be used anymore." +msgstr "" +"%s: Funzione obsoleta. Le precedenti funzioni esterne non si possono più " +"usare." + +#, c-format +msgid "%s: Incompatible input arguments #%d and #%d: Same sizes expected.\n" +msgstr "" +"%s: Gli argomenti in ingresso #%d e #%d sono incompatibili: erano attese le " +"stesse dimensioni.\n" + +#, c-format +msgid "%s: SVD and QR not implemented in sparse.\n" +msgstr "%s: SVD e QR non implementati nel modulo sparse.\n" + +#, c-format +msgid "%s: This feature has not been implemented.\n" +msgstr "%s: Questa caratteristica non è stata sviluppata.\n" + +msgid "Conflicting linear constraints." +msgstr "Vincoli lineari contrastanti." + +msgid "Recomputing initial guess" +msgstr "Ricalcolo del tentativo iniziale" + +#, c-format +msgid "Possible Conflicting linear constraints, error in the order of %s" +msgstr "Possibili vincoli lineari contrastanti, errore nell'ordine di %s" + +#, c-format +msgid "%s: Wrong number of input arguments: %d or %d expected.\n" +msgstr "" +"%s: Il numero degli argomenti in ingresso è sbagliato: ne erano attesi %d o " +"%d.\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: Singular pencil." +msgstr "" + +#, c-format +msgid "" +"%s: Function not defined for type '%s'. Check argument or define function %s." +msgstr "" +"%s: Funzione non definita per il tipo \"%s\". Controllare l'argomento o " +"definire la funzione %s." + +#, 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: Wrong value for input argument #%d: Non-negative integer expected.\n" +msgstr "" +"%s: L'argomento in ingresso #%d ha un valore sbagliato: erano attesi degli " +"interi non-negativi.\n" + +#, 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 values for input argument #%d: Non-negative scalar expected.\n" +msgstr "" +"%s:L'argomento in ingresso #%d ha dei valori sbagliati: era atteso uno " +"scalare non-negativo.\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d: Symmetric expected" +msgstr "" +"%s: L'argomento in ingresso #%d ha una dimensione sbagliata: era atteso " +"simmetrico" + +#, c-format +msgid "%s: Wrong value for input argument #%d: Not semi-definite positive" +msgstr "" +"%s: L'argomento in ingresso #%d ha una dimensione sbagliata: non è un " +"positivo semi-definito" + +#, c-format +msgid "%s: Wrong type for input argument #%d.\n" +msgstr "%s: L'argomento in ingresso #%d è di tipo sbagliato.\n" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: Requested rank is greater than " +"matrix dimension." +msgstr "" +"%s: L'argomento in ingresso #%d ha un valore sbagliato: il rango richiesto è " +"maggiore della dimensione della matrice." diff --git a/modules/linear_algebra/locales/ja_JP.po b/modules/linear_algebra/locales/ja_JP.po new file mode 100755 index 000000000..46940d273 --- /dev/null +++ b/modules/linear_algebra/locales/ja_JP.po @@ -0,0 +1,206 @@ +# 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: 2014-04-05 01:54+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" + +#, c-format +msgid "" +"%s: Wrong type for input argument #%d: Real or Complex matrix expected.\n" +msgstr "%s: 入力引数 #%d ã®åž‹ã«èª¤ã‚ŠãŒã‚ã‚Šã¾ã™: 実数ã¾ãŸã¯è¤‡ç´ æ•°ã®è¡Œåˆ—を指定ã—ã¦ãã ã•ã„.\n" + +# +# File: sci_gateway/c/sci_bdiag.c, line: 97 +#, c-format +msgid "%s: Non convergence in QR steps.\n" +msgstr "%s: QRå復ãŒåŽæŸã—ã¾ã›ã‚“。\n" + +#, c-format +msgid "%s: Can not read input argument #%d.\n" +msgstr "%s: 入力引数 #%d ã‚’èªã¿è¾¼ã‚ã¾ã›ã‚“.\n" + +#, c-format +msgid "%s: Wrong type for argument #%d: Real or complex matrix expected.\n" +msgstr "%s: 引数 #%d ã®åž‹ãŒé–“é•ã£ã¦ã„ã¾ã™: 実数ã¾ãŸã¯è¤‡ç´ æ•°ã®è¡Œåˆ—を指定ã—ã¦ãã ã•ã„.\n" + +#, c-format +msgid "%s: Wrong value for argument #%d: Must not contain NaN or Inf.\n" +msgstr "%s: 引数 #%d ã®å€¤ãŒé–“é•ã£ã¦ã„ã¾ã™: NaN ã¾ãŸã¯ Inf ã‚’å«ã‚ã¦ã¯ã„ã‘ã¾ã›ã‚“.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: String or integer expected.\n" +msgstr "%s: 入力引数 #%d ã®åž‹ãŒé–“é•ã£ã¦ã„ã¾ã™: æ–‡å—列ã¾ãŸã¯æ•´æ•°ã‚’指定ã—ã¦ãã ã•ã„.\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A string expected.\n" +msgstr "%s: 入力引数 #%d ã®å¤§ãã•ãŒé–“é•ã£ã¦ã„ã¾ã™: æ–‡å—列を指定ã—ã¦ãã ã•ã„.\n" + +#, c-format +msgid "%s: Wrong value for input argument #%d: %s, %s, %s, or %s expected.\n" +msgstr "%s: 入力引数 #%d ã®å€¤ãŒé–“é•ã£ã¦ã„ã¾ã™: %s, %s, %s, ã¾ãŸã¯ %s を指定ã—ã¦ãã ã•ã„.\n" + +#, c-format +msgid "%s: Wrong value for input argument #%d: %s, %s, %s or %s expected.\n" +msgstr "%s: 入力引数 #%d ã®å€¤ãŒé–“é•ã£ã¦ã„ã¾ã™: %s, %s, %s ã¾ãŸã¯ %s を指定ã—ã¦ãã ã•ã„.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A real expected.\n" +msgstr "%s: 入力引数 #%d ã®åž‹ãŒé–“é•ã£ã¦ã„ã¾ã™: 実数を指定ã—ã¦ãã ã•ã„.\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A real scalar expected.\n" +msgstr "%s: 入力引数 #%d ã®å¤§ãã•ãŒé–“é•ã£ã¦ã„ã¾ã™: 実数ã®ã‚¹ã‚«ãƒ©ãƒ¼ã‚’1ã¤æŒ‡å®šã—ã¦ãã ã•ã„.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: Real scalar expected.\n" +msgstr "%s: 入力引数 #%d ã®åž‹ãŒé–“é•ã£ã¦ã„ã¾ã™: 実スカラーを指定ã—ã¦ãã ã•ã„.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: Real matrix expected.\n" +msgstr "%s: 入力引数 #%d ã®åž‹ã«èª¤ã‚ŠãŒã‚ã‚Šã¾ã™: 実数行列を指定ã—ã¦ãã ã•ã„.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: Polynomial expected." +msgstr "%s: 入力引数 #%d ã®åž‹ãŒé–“é•ã£ã¦ã„ã¾ã™: å¤šé …å¼ã‚’指定ã—ã¦ãã ã•ã„." + +#, c-format +msgid "%s: Wrong value for input argument #%d: must not contain %s or %s.\n" +msgstr "%s: 入力引数 #%d ã®å€¤ãŒé–“é•ã£ã¦ã„ã¾ã™: %s ã¾ãŸã¯ %s ã‚’å«ã‚€ã“ã¨ã¯ã§ãã¾ã›ã‚“.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A matrix expected.\n" +msgstr "%s: 入力引数 #%d ã®åž‹ãŒé–“é•ã£ã¦ã„ã¾ã™: 行列を指定ã—ã¦ãã ã•ã„.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A square matrix expected.\n" +msgstr "%s: 入力引数 #%d ã®åž‹ãŒé–“é•ã£ã¦ã„ã¾ã™: æ£æ–¹è¡Œåˆ—を指定ã—ã¦ãã ã•ã„.\n" + +#, c-format +msgid "" +"%s: Wrong type for input argument #%d: A scalar or a string expected.\n" +msgstr "%s: 入力引数 #%d ã®åž‹ãŒé–“é•ã£ã¦ã„ã¾ã™: スカラーã¾ãŸã¯æ–‡å—列を指定ã—ã¦ãã ã•ã„.\n" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: must be %d, %d, %s, '%s' or '%s'.\n" +msgstr "%s: 入力引数 #%d ã®å€¤ãŒé–“é•ã£ã¦ã„ã¾ã™: %d, %d, %s, '%s' ã¾ãŸã¯ '%s'ã¨ã—ã¦ãã ã•ã„.\n" + +#, c-format +msgid "%s: Wrong number of input argument(s): %d to %d expected.\n" +msgstr "%s: 入力引数ã®æ•°ãŒèª¤ã£ã¦ã„ã¾ã™: %d ã‹ã‚‰ %d を指定ã—ã¦ãã ã•ã„.\n" + +#, c-format +msgid "%s: Wrong number of input arguments: %d to %d expected.\n" +msgstr "%s: 入力引数ã®æ•°ãŒé–“é•ã£ã¦ã„ã¾ã™: %d ã‹ã‚‰ %d 個ã®å¼•æ•°ã‚’指定ã—ã¦ãã ã•ã„.\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A scalar expected.\n" +msgstr "%s: 入力引数 #%d ã®å¤§ãã•ãŒæ£ã—ãã‚ã‚Šã¾ã›ã‚“: スカラーを1ã¤æŒ‡å®šã—ã¦ãã ã•ã„.\n" + +#, c-format +msgid "" +"%s: Wrong values for input argument #%d: Non-negative integers expected.\n" +msgstr "%s: 入力引数 #%d ã®å€¤ãŒæ£ã—ãã‚ã‚Šã¾ã›ã‚“: éžè² ã®æ•´æ•°ã‚’指定ã—ã¦ãã ã•ã„.\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A column vector expected.\n" +msgstr "%s: 入力引数 #%d ã®å¤§ãã•ãŒé–“é•ã£ã¦ã„ã¾ã™: 列ベクトルを指定ã—ã¦ãã ã•ã„.\n" + +#, c-format +msgid "%s: Obsolete function. Please replace '%s' by '%s'." +msgstr "%s: 廃æ¢ã•ã‚ŒãŸé–¢æ•°ã§ã™. '%s' ã‚’ '%s' ã§ç½®ãæ›ãˆã¦ãã ã•ã„." + +#, c-format +msgid "" +"%s: Obsolete function. Former external functions cannot be used anymore." +msgstr "%s: 廃æ¢ã•ã‚ŒãŸé–¢æ•°. 以å‰ã®å¤–部関数ã¯ã‚‚ã†ä½¿ç”¨å‡ºæ¥ã¾ã›ã‚“." + +#, c-format +msgid "%s: Incompatible input arguments #%d and #%d: Same sizes expected.\n" +msgstr "%s: 入力引数 #%d 㨠#%d ã§äº’æ›æ€§ãŒã‚ã‚Šã¾ã›ã‚“: 大ãã•ã‚’åŒã˜ã«ã—ã¦ãã ã•ã„.\n" + +#, c-format +msgid "%s: SVD and QR not implemented in sparse.\n" +msgstr "%s: 疎行列用ã®SVDã¨QRã¯å®Ÿè£…ã•ã‚Œã¦ã„ã¾ã›ã‚“.\n" + +#, c-format +msgid "%s: This feature has not been implemented.\n" +msgstr "%s: ã“ã®æ©Ÿèƒ½ã¯å®Ÿè£…ã•ã‚Œã¦ã„ã¾ã›ã‚“.\n" + +msgid "Conflicting linear constraints." +msgstr "線形拘æŸã«ã‹ã‹ã£ã¦ã„ã¾ã™." + +msgid "Recomputing initial guess" +msgstr "åˆæœŸæŽ¨å®šå€¤ã‚’å†è¨ˆç®—ä¸" + +#, c-format +msgid "Possible Conflicting linear constraints, error in the order of %s" +msgstr "線形拘æŸãŒè¡çªã—, %s 次ã®èª¤å·®ãŒç™ºç”Ÿã—ãŸå¯èƒ½æ€§ãŒã‚ã‚Šã¾ã™" + +#, c-format +msgid "%s: Wrong number of input arguments: %d or %d expected.\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: Singular pencil." +msgstr "%s: 特異ãªãƒšãƒ³ã‚·ãƒ«." + +#, c-format +msgid "" +"%s: Function not defined for type '%s'. Check argument or define function %s." +msgstr "%s: 関数ãŒåž‹ '%s' ã«ã¤ã„ã¦æœªå®šç¾©ã§ã™. 引数を確èªã¾ãŸã¯é–¢æ•° %s を定義ã—ã¦ãã ã•ã„." + +#, c-format +msgid "%s: Wrong number of input argument(s): %d expected.\n" +msgstr "%s: 入力引数ã®æ•°ã«èª¤ã‚ŠãŒã‚ã‚Šã¾ã™: %d 個ã®å¼•æ•°ã‚’指定ã—ã¦ãã ã•ã„.\n" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: Non-negative integer expected.\n" +msgstr "%s: 入力引数 #%d ã®å€¤ãŒæ£ã—ãã‚ã‚Šã¾ã›ã‚“: éžè² ã®æ•´æ•°ã‚’指定ã—ã¦ãã ã•ã„.\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A square matrix expected.\n" +msgstr "%s: 入力引数 #%d ã®å¤§ãã•ãŒæ£ã—ãã‚ã‚Šã¾ã›ã‚“: æ£æ–¹è¡Œåˆ—を指定ã—ã¦ãã ã•ã„.\n" + +#, c-format +msgid "" +"%s: Wrong values for input argument #%d: Non-negative scalar expected.\n" +msgstr "%s: 入力引数 #%d ã®å€¤ãŒæ£ã—ãã‚ã‚Šã¾ã›ã‚“: éžè² ã®ã‚¹ã‚«ãƒ©ãƒ¼ã‚’指定ã—ã¦ãã ã•ã„.\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d: Symmetric expected" +msgstr "%s: 入力引数 #%d ã®å¤§ãã•ãŒæ£ã—ãã‚ã‚Šã¾ã›ã‚“:対称行列を指定ã—ã¦ãã ã•ã„." + +#, c-format +msgid "%s: Wrong value for input argument #%d: Not semi-definite positive" +msgstr "%s: 入力引数 #%d ã®å€¤ãŒæ£ã—ãã‚ã‚Šã¾ã›ã‚“: åŠæ£å®šå€¤ã§ã¯ã‚ã‚Šã¾ã›ã‚“" + +#, c-format +msgid "%s: Wrong type for input argument #%d.\n" +msgstr "%s: 入力引数 #%d ã®åž‹ãŒé–“é•ã£ã¦ã„ã¾ã™.\n" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: Requested rank is greater than " +"matrix dimension." +msgstr "%s: 入力引数 #%d ã®å€¤ãŒæ£ã—ãã‚ã‚Šã¾ã›ã‚“: 指定ã•ã‚ŒãŸéšŽæ•°ã¯è¡Œåˆ—ã®æ¬¡å…ƒã‚’超ãˆã¦ã„ã¾ã™." diff --git a/modules/linear_algebra/locales/linear_algebra.pot b/modules/linear_algebra/locales/linear_algebra.pot new file mode 100755 index 000000000..fa27fabff --- /dev/null +++ b/modules/linear_algebra/locales/linear_algebra.pot @@ -0,0 +1,341 @@ +# Localization of the module linear_algebra +# 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: sci_gateway/c/sci_backslash.c, line: 66 +# File: sci_gateway/c/sci_backslash.c, line: 87 +# File: sci_gateway/c/sci_backslash.c, line: 94 +# File: sci_gateway/c/sci_balanc.c, line: 55 +# File: sci_gateway/c/sci_balanc.c, line: 93 +# File: sci_gateway/c/sci_balanc.c, line: 116 +# File: sci_gateway/c/sci_balanc.c, line: 123 +# File: sci_gateway/c/sci_chol.c, line: 49 +# File: sci_gateway/c/sci_det.c, line: 48 +# File: sci_gateway/c/sci_hess.c, line: 47 +# File: sci_gateway/c/sci_inv.c, line: 49 +# File: sci_gateway/c/sci_lsq.c, line: 86 +# File: sci_gateway/c/sci_lsq.c, line: 94 +# File: sci_gateway/c/sci_lu.c, line: 49 +# File: sci_gateway/c/sci_qr.c, line: 83 +# File: sci_gateway/c/sci_qr.c, line: 102 +# File: sci_gateway/c/sci_qr.c, line: 125 +# File: sci_gateway/c/sci_qr.c, line: 132 +# File: sci_gateway/c/sci_qr.c, line: 138 +# File: sci_gateway/c/sci_rcond.c, line: 51 +# File: sci_gateway/c/sci_schur.c, line: 74 +# File: sci_gateway/c/sci_schur.c, line: 95 +# File: sci_gateway/c/sci_schur.c, line: 184 +# File: sci_gateway/c/sci_schur.c, line: 235 +# File: sci_gateway/c/sci_schur.c, line: 250 +# File: sci_gateway/c/sci_schur.c, line: 261 +# File: sci_gateway/c/sci_slash.c, line: 64 +# File: sci_gateway/c/sci_slash.c, line: 85 +# File: sci_gateway/c/sci_slash.c, line: 92 +# File: sci_gateway/c/sci_spec.c, line: 72 +# File: sci_gateway/c/sci_spec.c, line: 109 +# File: sci_gateway/c/sci_spec.c, line: 128 +# File: sci_gateway/c/sci_spec.c, line: 134 +#, c-format +msgid "" +"%s: Wrong type for input argument #%d: Real or Complex matrix expected.\n" +msgstr "" + +# +# File: sci_gateway/c/sci_bdiag.c, line: 109 +#, c-format +msgid "%s: Non convergence in QR steps.\n" +msgstr "" + +# +# File: sci_gateway/c/sci_norm.c, line: 52 +#, c-format +msgid "%s: Can not read input argument #%d.\n" +msgstr "" + +# +# File: sci_gateway/c/sci_norm.c, line: 70 +# File: sci_gateway/c/sci_norm.c, line: 90 +#, c-format +msgid "%s: Wrong type for argument #%d: Real or complex matrix expected.\n" +msgstr "" + +# +# File: sci_gateway/c/sci_norm.c, line: 79 +# File: sci_gateway/c/sci_norm.c, line: 98 +#, c-format +msgid "%s: Wrong value for argument #%d: Must not contain NaN or Inf.\n" +msgstr "" + +# +# File: sci_gateway/c/sci_norm.c, line: 150 +#, c-format +msgid "%s: Wrong type for input argument #%d: String or integer expected.\n" +msgstr "" + +# +# File: sci_gateway/c/sci_norm.c, line: 158 +#, c-format +msgid "%s: Wrong size for input argument #%d: A string expected.\n" +msgstr "" + +# +# File: sci_gateway/c/sci_norm.c, line: 165 +#, c-format +msgid "%s: Wrong value for input argument #%d: %s, %s, %s, or %s expected.\n" +msgstr "" + +# +# File: sci_gateway/c/sci_norm.c, line: 173 +# File: sci_gateway/c/sci_norm.c, line: 226 +#, c-format +msgid "%s: Wrong value for input argument #%d: %s, %s, %s or %s expected.\n" +msgstr "" + +# +# File: sci_gateway/c/sci_norm.c, line: 196 +#, c-format +msgid "%s: Wrong type for input argument #%d: A real expected.\n" +msgstr "" + +# +# File: sci_gateway/c/sci_norm.c, line: 202 +#, c-format +msgid "%s: Wrong size for input argument #%d: A real scalar expected.\n" +msgstr "" + +# +# File: sci_gateway/c/sci_qr.c, line: 63 +#, c-format +msgid "%s: Wrong type for input argument #%d: Real scalar expected.\n" +msgstr "" + +# +# File: sci_gateway/c/sci_schur.c, line: 114 +#, c-format +msgid "%s: Wrong type for input argument #%d: Real matrix expected.\n" +msgstr "" + +# File: macros/companion.sci, line: 20 +#, c-format +msgid "%s: Wrong type for input argument #%d: Polynomial expected." +msgstr "" + +# +# File: macros/cond.sci, line: 22 +#, c-format +msgid "%s: Wrong value for input argument #%d: must not contain %s or %s.\n" +msgstr "" + +# +# File: macros/cond.sci, line: 35 +#, c-format +msgid "%s: Wrong type for input argument #%d: A matrix expected.\n" +msgstr "" + +# +# File: macros/cond.sci, line: 45 +#, c-format +msgid "%s: Wrong type for input argument #%d: A square matrix expected.\n" +msgstr "" + +# +# File: macros/cond.sci, line: 48 +#, c-format +msgid "%s: Wrong type for input argument #%d: A scalar or a string expected.\n" +msgstr "" + +# +# File: macros/cond.sci, line: 51 +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: must be %d, %d, %s, '%s' or '%s'.\n" +msgstr "" + +# +# File: macros/cond.sci, line: 56 +#, c-format +msgid "%s: Wrong number of input argument(s): %d to %d expected.\n" +msgstr "" + +# +# File: macros/diff.sci, line: 13 +#, c-format +msgid "%s: Wrong number of input arguments: %d to %d expected.\n" +msgstr "" + +# +# File: macros/diff.sci, line: 22 +# File: macros/diff.sci, line: 31 +#, c-format +msgid "%s: Wrong size for input argument #%d: A scalar expected.\n" +msgstr "" + +# +# File: macros/diff.sci, line: 26 +# File: macros/diff.sci, line: 35 +#, c-format +msgid "" +"%s: Wrong values for input argument #%d: Non-negative integers expected.\n" +msgstr "" + +# +# File: macros/givens.sci, line: 24 +#, c-format +msgid "%s: Wrong size for input argument #%d: A column vector expected.\n" +msgstr "" + +# +# File: macros/gschur.sci, line: 21 +# File: macros/gschur.sci, line: 37 +# File: macros/gspec.sci, line: 13 +#, c-format +msgid "%s: Obsolete function. Please replace '%s' by '%s'." +msgstr "" + +# +# File: macros/gschur.sci, line: 29 +#, c-format +msgid "" +"%s: Obsolete function. Former external functions cannot be used anymore." +msgstr "" + +# +# File: macros/im_inv.sci, line: 22 +# File: macros/spaninter.sci, line: 26 +# File: macros/spanplus.sci, line: 26 +#, c-format +msgid "%s: Incompatible input arguments #%d and #%d: Same sizes expected.\n" +msgstr "" + +# +# File: macros/kernel.sci, line: 31 +#, c-format +msgid "%s: SVD and QR not implemented in sparse.\n" +msgstr "" + +# +# File: macros/kernel.sci, line: 61 +#, c-format +msgid "%s: This feature has not been implemented.\n" +msgstr "" + +# +# File: macros/linsolve.sci, line: 24 +msgid "Conflicting linear constraints." +msgstr "" + +# +# File: macros/linsolve.sci, line: 33 +msgid "Recomputing initial guess" +msgstr "" + +# +# File: macros/linsolve.sci, line: 72 +#, c-format +msgid "Possible Conflicting linear constraints, error in the order of %s" +msgstr "" + +# +# File: macros/nlev.sci, line: 23 +#, c-format +msgid "%s: Wrong number of input arguments: %d or %d expected.\n" +msgstr "" + +# +# File: macros/pbig.sci, line: 30 +# File: macros/psmall.sci, line: 31 +# File: macros/rowcomp.sci, line: 42 +#, c-format +msgid "%s: Wrong value for input argument #%d: Must be in the set {%s}.\n" +msgstr "" + +# +# File: macros/penlaur.sci, line: 30 +# File: macros/rowshuff.sci, line: 33 +#, c-format +msgid "%s: Singular pencil." +msgstr "" + +# +# File: macros/pinv.sci, line: 38 +# File: macros/rank.sci, line: 30 +# File: macros/rref.sci, line: 42 +#, c-format +msgid "" +"%s: Function not defined for type '%s'. Check argument or define function %s." +msgstr "" + +# +# File: macros/randpencil.sci, line: 30 +#, c-format +msgid "%s: Wrong number of input argument(s): %d expected.\n" +msgstr "" + +# +# File: macros/range.sci, line: 18 +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: Non-negative integer expected.\n" +msgstr "" + +# +# File: macros/range.sci, line: 21 +# File: macros/trace.sci, line: 17 +# File: macros/trace.sci, line: 23 +# File: macros/trace.sci, line: 31 +# File: macros/trace.sci, line: 41 +# File: macros/trace.sci, line: 50 +#, c-format +msgid "%s: Wrong size for input argument #%d: A square matrix expected.\n" +msgstr "" + +# +# File: macros/rowcomp.sci, line: 33 +#, c-format +msgid "" +"%s: Wrong values for input argument #%d: Non-negative scalar expected.\n" +msgstr "" + +# +# File: macros/sqroot.sci, line: 14 +#, c-format +msgid "%s: Wrong size for input argument #%d: Symmetric expected" +msgstr "" + +# +# File: macros/sqroot.sci, line: 18 +#, c-format +msgid "%s: Wrong value for input argument #%d: Not semi-definite positive" +msgstr "" + +# +# File: macros/squeeze.sci, line: 34 +# File: macros/trace.sci, line: 35 +# File: macros/trace.sci, line: 45 +# File: macros/trace.sci, line: 54 +#, c-format +msgid "%s: Wrong type for input argument #%d.\n" +msgstr "" + +# +# File: macros/sva.sci, line: 22 +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: Requested rank is greater than " +"matrix dimension." +msgstr "" diff --git a/modules/linear_algebra/locales/pl_PL.po b/modules/linear_algebra/locales/pl_PL.po new file mode 100755 index 000000000..6c59fff94 --- /dev/null +++ b/modules/linear_algebra/locales/pl_PL.po @@ -0,0 +1,233 @@ +# 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: 2012-10-25 20:48+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" + +#, c-format +msgid "" +"%s: Wrong type for input argument #%d: Real or Complex matrix expected.\n" +msgstr "" +"%s: NieprawidÅ‚owy typ dla argumentu wejÅ›ciowego nr %d: Oczekiwano macierzy " +"liczb rzeczywistych lub zespolonych.\n" + +#, c-format +msgid "%s: Non convergence in QR steps.\n" +msgstr "%s: Brak zbieżnoÅ›ci iteracji QR.\n" + +#, c-format +msgid "%s: Can not read input argument #%d.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for argument #%d: Real or complex matrix expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong value for argument #%d: Must not contain NaN or Inf.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: String or integer expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A string expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong value for input argument #%d: %s, %s, %s, or %s expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong value for input argument #%d: %s, %s, %s or %s expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A real expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A real scalar expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: Real scalar expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: Real matrix expected.\n" +msgstr "" +"%s: NiewÅ‚aÅ›ciwy typ argumentu wejÅ›ciowego nr %d: oczekiwana macierz wartoÅ›ci " +"typu real.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: Polynomial expected." +msgstr "" + +#, c-format +msgid "%s: Wrong value for input argument #%d: must not contain %s or %s.\n" +msgstr "" +"%s: NieprawidÅ‚owa wartość argumentu wejÅ›ciowego #%d: nie może zawerać %s ani " +"%s.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A matrix expected.\n" +msgstr "" +"%s: NieprawidÅ‚owy typ dla argumentu wejÅ›ciowego nr %d: oczekiwana macierz.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A square matrix expected.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Wrong type for input argument #%d: A scalar or a string expected.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: must be %d, %d, %s, '%s' or '%s'.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong number of input argument(s): %d to %d expected.\n" +msgstr "" +"%s: NieprawidÅ‚owa liczba argumentów wejÅ›ciowych: oczekiwano od %d do %d.\n" + +#, c-format +msgid "%s: Wrong number of input arguments: %d to %d expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A scalar expected.\n" +msgstr "" +"%s: NieprawidÅ‚owy rozmiar dla argumentu wejÅ›ciowego nr %d: Oczekiwany " +"skalar.\n" + +#, c-format +msgid "" +"%s: Wrong values for input argument #%d: Non-negative integers expected.\n" +msgstr "" +"%s: NieprawidÅ‚owe wartoÅ›ci argumentu wejÅ›ciowego nr %d: oczekiwano " +"nieujemnych wartoÅ›ci caÅ‚kowitych.\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A column vector expected.\n" +msgstr "" +"%s: NieprawidÅ‚owy rozmiar argumentu wejÅ›ciowego nr %d: oczekiwany wektor " +"kolumnowy.\n" + +#, c-format +msgid "%s: Obsolete function. Please replace '%s' by '%s'." +msgstr "" + +#, c-format +msgid "" +"%s: Obsolete function. Former external functions cannot be used anymore." +msgstr "" + +#, c-format +msgid "%s: Incompatible input arguments #%d and #%d: Same sizes expected.\n" +msgstr "" +"%s: Niezgodne argumenty wejÅ›ciowe nr %d oraz nr %d: Oczekiwany taki sam " +"rozmiar.\n" + +#, c-format +msgid "%s: SVD and QR not implemented in sparse.\n" +msgstr "%s: SVD i QR nie zostanie zaimplementowane dla macierzy rzadkich.\n" + +#, c-format +msgid "%s: This feature has not been implemented.\n" +msgstr "%s: Ta funkcja nie zostaÅ‚a zrealizowana.\n" + +msgid "Conflicting linear constraints." +msgstr "" + +msgid "Recomputing initial guess" +msgstr "" + +#, c-format +msgid "Possible Conflicting linear constraints, error in the order of %s" +msgstr "" + +#, c-format +msgid "%s: Wrong number of input arguments: %d or %d expected.\n" +msgstr "" +"%s: NieprawidÅ‚owa liczba argumentów wejÅ›ciowych: oczekiwano %d lub %d.\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: Singular pencil." +msgstr "" + +#, c-format +msgid "" +"%s: Function not defined for type '%s'. Check argument or define function %s." +msgstr "" + +#, c-format +msgid "%s: Wrong number of input argument(s): %d expected.\n" +msgstr "%s: NieprawidÅ‚owa liczba parametrów wejÅ›ciowych: oczekiwano %d.\n" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: Non-negative integer expected.\n" +msgstr "" +"%s: NieprawidÅ‚owa wartość dla parametru wejÅ›ciowego nr %d: Oczekiwano " +"nieujemnej wartość integer.\n" + +#, 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 values for input argument #%d: Non-negative scalar expected.\n" +msgstr "" +"%s: NieprawidÅ‚owe wartoÅ›ci argumentu wejÅ›ciowego nr %d: spodziewana wartość " +"skalarna.\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d: Symmetric expected" +msgstr "" +"%s: NieprawidÅ‚owy rozmiar dla argumentu wejÅ›ciowego nr %d: Oczekiwano " +"symetrycznej wielkoÅ›ci" + +#, c-format +msgid "%s: Wrong value for input argument #%d: Not semi-definite positive" +msgstr "" +"%s: NieprawidÅ‚owa wartość parametru wejÅ›ciowego nr %d: nie jest nieujemnie " +"(półdodatnio) okreÅ›lony." + +#, c-format +msgid "%s: Wrong type for input argument #%d.\n" +msgstr "%s: NieprawidÅ‚owy typ dla argumentu wejÅ›ciowego nr %d.\n" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: Requested rank is greater than " +"matrix dimension." +msgstr "" +"%s: NieprawidÅ‚owa wartość argumentu wejÅ›ciowego nr %d: Wymagany rzÄ…d " +"macierzy jest wiÄ™kszy niż jej wymiar." diff --git a/modules/linear_algebra/locales/pt_BR.po b/modules/linear_algebra/locales/pt_BR.po new file mode 100755 index 000000000..6c0e2d2f4 --- /dev/null +++ b/modules/linear_algebra/locales/pt_BR.po @@ -0,0 +1,229 @@ +# Brazilian Portuguese 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-09-01 09:28+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" + +#, c-format +msgid "" +"%s: Wrong type for input argument #%d: Real or Complex matrix expected.\n" +msgstr "" +"%s: Tipo incorreto para o argumento de entrada #%d: esperava-se uma matriz " +"de números reais ou complexos.\n" + +#, c-format +msgid "%s: Non convergence in QR steps.\n" +msgstr "%s: Sem convergência das iterações QR.\n" + +#, c-format +msgid "%s: Can not read input argument #%d.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for argument #%d: Real or complex matrix expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong value for argument #%d: Must not contain NaN or Inf.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: String or integer expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A string expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong value for input argument #%d: %s, %s, %s, or %s expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong value for input argument #%d: %s, %s, %s or %s expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A real expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A real scalar expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: Real scalar expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: Real matrix expected.\n" +msgstr "" +"%s: Tipo incorreto para o argumento de entrada #%d: esperava-se uma matriz " +"de números reais.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: Polynomial expected." +msgstr "" + +#, c-format +msgid "%s: Wrong value for input argument #%d: must not contain %s or %s.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A matrix expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A square matrix expected.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Wrong type for input argument #%d: A scalar or a string expected.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: must be %d, %d, %s, '%s' or '%s'.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong number of input argument(s): %d to %d expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong number of input arguments: %d to %d expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A scalar expected.\n" +msgstr "" +"%s: Tamanho incorreto para o argumento de entrada #%d: esperava-se um " +"escalar.\n" + +#, c-format +msgid "" +"%s: Wrong values for input argument #%d: Non-negative integers expected.\n" +msgstr "" +"%s: Valores incorretos para o argumento de entrada #%d: esperava-se números " +"inteiros não negativos.\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A column vector expected.\n" +msgstr "" +"%s: Tamanho incorreto para o argumento de entrada #%d: esperava-se um vetor " +"coluna.\n" + +#, c-format +msgid "%s: Obsolete function. Please replace '%s' by '%s'." +msgstr "" + +#, c-format +msgid "" +"%s: Obsolete function. Former external functions cannot be used anymore." +msgstr "" + +#, c-format +msgid "%s: Incompatible input arguments #%d and #%d: Same sizes expected.\n" +msgstr "" +"%s: Argumentos de entrada incompatÃveis #%d e #%d: esperava-se as mesmas " +"dimensões.\n" + +#, c-format +msgid "%s: SVD and QR not implemented in sparse.\n" +msgstr "%s: SVD e QR não implementados para matrizes esparsas.\n" + +#, c-format +msgid "%s: This feature has not been implemented.\n" +msgstr "%s: Este recurso não foi implementado.\n" + +msgid "Conflicting linear constraints." +msgstr "" + +msgid "Recomputing initial guess" +msgstr "" + +#, c-format +msgid "Possible Conflicting linear constraints, error in the order of %s" +msgstr "" + +#, c-format +msgid "%s: Wrong number of input arguments: %d or %d expected.\n" +msgstr "" +"%s: Quantidade incorreta de argumentos de entrada: esperava-se %d ou %d.\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: Singular pencil." +msgstr "" + +#, c-format +msgid "" +"%s: Function not defined for type '%s'. Check argument or define function %s." +msgstr "" + +#, 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: Wrong value for input argument #%d: Non-negative integer expected.\n" +msgstr "" +"%s: Valor incorreto para o argumento de entrada #%d: esperava-se um número " +"inteiro não negativo.\n" + +#, 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 values for input argument #%d: Non-negative scalar expected.\n" +msgstr "" +"%s: Valor incorreto para o argumento de entrada #%d: esperava-se um escalar " +"não negativo.\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d: Symmetric expected" +msgstr "" +"%s: Tamanho incorreto para o argumento de entrada #%d: esperava-se uma " +"matriz simétrica." + +#, c-format +msgid "%s: Wrong value for input argument #%d: Not semi-definite positive" +msgstr "" +"%s: Valor incorreto para o argumento de entrada #%d: não é um positivo semi-" +"definido." + +#, c-format +msgid "%s: Wrong type for input argument #%d.\n" +msgstr "%s: Tipo incorreto para o argumento de entrada #%d.\n" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: Requested rank is greater than " +"matrix dimension." +msgstr "" +"%s: Valor incorreto para o argumento de entrada #%d: o posto exigido é maior " +"que a dimensão da matriz." diff --git a/modules/linear_algebra/locales/ru_RU.po b/modules/linear_algebra/locales/ru_RU.po new file mode 100755 index 000000000..96b0b12c6 --- /dev/null +++ b/modules/linear_algebra/locales/ru_RU.po @@ -0,0 +1,241 @@ +# 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: 2014-05-31 15:45+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" + +#, c-format +msgid "" +"%s: Wrong type for input argument #%d: Real or Complex matrix expected.\n" +msgstr "" +"%s: Ðеверный тип входного параметра â„–%d: ожидалаÑÑŒ вещеÑÑ‚Ð²ÐµÐ½Ð½Ð°Ñ Ð¸Ð»Ð¸ " +"комплекÑÐ½Ð°Ñ Ð¼Ð°Ñ‚Ñ€Ð¸Ñ†Ð°.\n" + +#, c-format +msgid "%s: Non convergence in QR steps.\n" +msgstr "%s: Ðет ÑходимоÑти в шагах QR.\n" + +#, c-format +msgid "%s: Can not read input argument #%d.\n" +msgstr "%s: Ðе могу прочитать входной аргумент â„–%d.\n" + +#, c-format +msgid "%s: Wrong type for argument #%d: Real or complex matrix expected.\n" +msgstr "" +"%s: Ðеверный тип аргумента â„–%d: ожидалаÑÑŒ вещеÑÑ‚Ð²ÐµÐ½Ð½Ð°Ñ Ð¸Ð»Ð¸ комплекÑÐ½Ð°Ñ " +"матрица.\n" + +#, c-format +msgid "%s: Wrong value for argument #%d: Must not contain NaN or Inf.\n" +msgstr "" +"%s: Ðеверное значение аргумента â„–%d: не должно Ñодержать NaN или Inf.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: String or integer expected.\n" +msgstr "" +"%s: Ðеверный тип входного аргумента â„–%d: ожидалоÑÑŒ Ñтроковое или " +"целочиÑленное значение.\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A string expected.\n" +msgstr "%s: Ðеверный размер входного параметра â„–%d: ожидалаÑÑŒ Ñтрока.\n" + +#, c-format +msgid "%s: Wrong value for input argument #%d: %s, %s, %s, or %s expected.\n" +msgstr "" +"%s: Ðеверное значение входного аргумента â„–%d: ожидалоÑÑŒ %s, %s, %s или %s.\n" + +#, c-format +msgid "%s: Wrong value for input argument #%d: %s, %s, %s or %s expected.\n" +msgstr "" +"%s: Ðеверное значение входного аргумента â„–%d: ожидалоÑÑŒ %s, %s, %s или %s.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A real expected.\n" +msgstr "" +"%s: Ðеверный тип входного аргумента â„–%d: ожидалоÑÑŒ вещеÑтвенное чиÑло.\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A real scalar expected.\n" +msgstr "" +"%s: Ðеверный размер входного аргумента â„–%d: ожидаетÑÑ Ð²ÐµÑ‰ÐµÑтвенный ÑкалÑÑ€.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: Real scalar expected.\n" +msgstr "" +"%s: Ðеверный тип входного аргумента â„–%d: ожидалÑÑ Ð²ÐµÑ‰ÐµÑтвенный ÑкалÑÑ€.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: Real matrix expected.\n" +msgstr "" +"%s: Ðеверный тип входного параметра â„–%d: ожидалаÑÑŒ матрица вещеÑтвенных " +"чиÑел.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: Polynomial expected." +msgstr "%s: Ðеверный тип входного аргумента â„–%d: ожидалÑÑ Ñ‚Ð¸Ð¿ polynomial." + +#, c-format +msgid "%s: Wrong value for input argument #%d: must not contain %s or %s.\n" +msgstr "" +"%s: Ðеверное значение входного аргумента â„–%d: не должно Ñодержать %s или " +"%s.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A matrix expected.\n" +msgstr "%s: Ðеверный тип входного аргумента â„–%d: ожидалаÑÑŒ матрица.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A square matrix expected.\n" +msgstr "" +"%s: Ðеверный тип входного аргумента â„–%d: ожидалаÑÑŒ ÐºÐ²Ð°Ð´Ñ€Ð°Ñ‚Ð½Ð°Ñ Ð¼Ð°Ñ‚Ñ€Ð¸Ñ†Ð°.\n" + +#, c-format +msgid "" +"%s: Wrong type for input argument #%d: A scalar or a string expected.\n" +msgstr "" +"%s: Ðеверный тип входного параметра â„–%d: ожидалÑÑ ÑкалÑÑ€ или Ñтрока.\n" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: must be %d, %d, %s, '%s' or '%s'.\n" +msgstr "" +"%s: Ðеверное значение входного аргумента â„–%d: должно быть %d, %d, %s, '%s' " +"или '%s'.\n" + +#, c-format +msgid "%s: Wrong number of input argument(s): %d to %d expected.\n" +msgstr "%s: Ðеверное количеÑтво входных аргументов: ОжидалоÑÑŒ от %d до %d.\n" + +#, c-format +msgid "%s: Wrong number of input arguments: %d to %d expected.\n" +msgstr "%s: Ðеверное количеÑтво входных аргументов: ожидалоÑÑŒ от %d до %d.\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A scalar expected.\n" +msgstr "%s: Ðеверный размер входного параметра â„–%d: ожидалÑÑ ÑкалÑÑ€.\n" + +#, c-format +msgid "" +"%s: Wrong values for input argument #%d: Non-negative integers expected.\n" +msgstr "" +"%s: Ðеверные Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð²Ñ…Ð¾Ð´Ð½Ð¾Ð³Ð¾ параметра â„–%d: ожидалиÑÑŒ неотрицательные " +"целые чиÑла.\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A column vector expected.\n" +msgstr "" +"%s: Ðеверный размер входного параметра â„–%d: ожидалÑÑ Ð²ÐµÐºÑ‚Ð¾Ñ€-Ñтолбец.\n" + +#, c-format +msgid "%s: Obsolete function. Please replace '%s' by '%s'." +msgstr "%s: УÑÑ‚Ð°Ñ€ÐµÐ²ÑˆÐ°Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ. ПожалуйÑта, замените '%s' на '%s'." + +#, c-format +msgid "" +"%s: Obsolete function. Former external functions cannot be used anymore." +msgstr "" +"%s: УÑÑ‚Ð°Ñ€ÐµÐ²ÑˆÐ°Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ. Прежние внешние функции больше Ð½ÐµÐ»ÑŒÐ·Ñ Ð¸Ñпользовать." + +#, c-format +msgid "%s: Incompatible input arguments #%d and #%d: Same sizes expected.\n" +msgstr "" +"%s: ÐеÑовмеÑтимые входные параметры â„–%d и â„–%d: ожидалиÑÑŒ одинаковые " +"размеры.\n" + +#, c-format +msgid "%s: SVD and QR not implemented in sparse.\n" +msgstr "%s: Ðлгоритмы SVD и QR не реализованы Ð´Ð»Ñ Ñ€Ð°Ð·Ñ€ÐµÐ¶ÐµÐ½Ð½Ñ‹Ñ… матриц.\n" + +#, c-format +msgid "%s: This feature has not been implemented.\n" +msgstr "%s: Ðта функциональноÑÑ‚ÑŒ не реализована.\n" + +msgid "Conflicting linear constraints." +msgstr "Конфликтующие линейные ограничениÑ." + +msgid "Recomputing initial guess" +msgstr "ПереÑчёт иÑходного предположениÑ" + +#, c-format +msgid "Possible Conflicting linear constraints, error in the order of %s" +msgstr "Возможно конфликтующие линейные ограничениÑ, ошибка в порÑдке %s" + +#, c-format +msgid "%s: Wrong number of input arguments: %d or %d expected.\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: Singular pencil." +msgstr "%s: СингулÑрный пучок." + +#, c-format +msgid "" +"%s: Function not defined for type '%s'. Check argument or define function %s." +msgstr "" +"%s: Ð¤ÑƒÐ½ÐºÑ†Ð¸Ñ Ð½Ðµ определена Ð´Ð»Ñ Ñ‚Ð¸Ð¿Ð° '%s'. Проверьте аргумент или определите " +"функцию %s." + +#, c-format +msgid "%s: Wrong number of input argument(s): %d expected.\n" +msgstr "%s: Ðеверное количеÑтво входных параметров: ожидалоÑÑŒ %d.\n" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: Non-negative integer expected.\n" +msgstr "" +"%s: Ðеверное значение входного параметра â„–%d: ожидалоÑÑŒ неотрицательное " +"целое.\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A square matrix expected.\n" +msgstr "" +"%s: Ðеверный размер входного параметра â„–%d: ожидалаÑÑŒ ÐºÐ²Ð°Ð´Ñ€Ð°Ñ‚Ð½Ð°Ñ Ð¼Ð°Ñ‚Ñ€Ð¸Ñ†Ð°.\n" + +#, c-format +msgid "" +"%s: Wrong values for input argument #%d: Non-negative scalar expected.\n" +msgstr "" +"%s: Ðеверные Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð²Ñ…Ð¾Ð´Ð½Ð¾Ð³Ð¾ параметра â„–%d: ожидалÑÑ Ð½ÐµÐ¾Ñ‚Ñ€Ð¸Ñ†Ð°Ñ‚ÐµÐ»ÑŒÐ½Ñ‹Ð¹ " +"ÑкалÑÑ€.\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d: Symmetric expected" +msgstr "%s: Ðеверный размер входного параметра â„–%d: ожидалÑÑ Ñимметричный" + +#, c-format +msgid "%s: Wrong value for input argument #%d: Not semi-definite positive" +msgstr "" +"%s: Ðеверное значение входного параметра â„–%d: ожидалоÑÑŒ неотрицательно " +"определённое" + +#, c-format +msgid "%s: Wrong type for input argument #%d.\n" +msgstr "%s: Ðеверный тип входного параметра â„–%d.\n" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: Requested rank is greater than " +"matrix dimension." +msgstr "" +"%s: Ðеверное значение входного параметра â„–%d: запрошенный ранг больше " +"размерноÑти матрицы." diff --git a/modules/linear_algebra/locales/uk_UA.po b/modules/linear_algebra/locales/uk_UA.po new file mode 100755 index 000000000..ed7733bd4 --- /dev/null +++ b/modules/linear_algebra/locales/uk_UA.po @@ -0,0 +1,266 @@ +# 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, 2013. +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: 2014-09-30 16:53+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" + +#, c-format +msgid "" +"%s: Wrong type for input argument #%d: Real or Complex matrix expected.\n" +msgstr "" +"%s: помилковий тип вхідного параметра â„–%d: Ñлід викориÑтовувати матрицю з " +"дійÑних або комплекÑних значень.\n" + +#, c-format +msgid "%s: Non convergence in QR steps.\n" +msgstr "%s: розбіжніÑÑ‚ÑŒ під Ñ‡Ð°Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ ÐºÑ€Ð¾ÐºÑ–Ð² QR.\n" + +#, c-format +msgid "%s: Can not read input argument #%d.\n" +msgstr "%s: не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ вхідний параметр â„–%d.\n" + +#, c-format +msgid "%s: Wrong type for argument #%d: Real or complex matrix expected.\n" +msgstr "" +"%s: помилковий тип параметра â„–%d: Ñлід викориÑтовувати матрицю з дійÑних або " +"комплекÑних значень.\n" + +#, c-format +msgid "%s: Wrong value for argument #%d: Must not contain NaN or Inf.\n" +msgstr "" +"%s: помилкове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° â„–%d: у значенні не повинно міÑтитиÑÑ " +"запиÑів NaN або Inf.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: String or integer expected.\n" +msgstr "" +"%s: помилковий тип вхідного параметра â„–%d: мало бути викориÑтано Ñ€Ñдок або " +"ціле значеннÑ.\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A string expected.\n" +msgstr "" +"%s: помилковий розмір вхідного параметра â„–%d: Ñлід викориÑтовувати Ñ€Ñдок.\n" + +#, c-format +msgid "%s: Wrong value for input argument #%d: %s, %s, %s, or %s expected.\n" +msgstr "" +"%s: помилкове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²Ñ…Ñ–Ð´Ð½Ð¾Ð³Ð¾ параметра â„–%d: мало бути вказано %s, %s, %s " +"або %s.\n" + +#, c-format +msgid "%s: Wrong value for input argument #%d: %s, %s, %s or %s expected.\n" +msgstr "" +"%s: помилкове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²Ñ…Ñ–Ð´Ð½Ð¾Ð³Ð¾ параметра â„–%d: мало бути вказано %s, %s, %s " +"або %s.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A real expected.\n" +msgstr "" +"%s: помилковий тип вхідного параметра â„–%d: Ñлід викориÑтовувати тип дійÑних " +"значень.\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A real scalar expected.\n" +msgstr "" +"%s: помилкова розмірніÑÑ‚ÑŒ вхідного параметра â„–%d: Ñлід викориÑтовувати " +"дійÑне чиÑло.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: Real scalar expected.\n" +msgstr "" +"%s: помилковий тип вхідного параметра â„–%d: Ñлід викориÑтовувати дійÑне " +"чиÑло.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: Real matrix expected.\n" +msgstr "" +"%s: помилковий тип вхідного параметра â„–%d: Ñлід викориÑтовувати матрицю " +"дійÑних значень.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: Polynomial expected." +msgstr "" +"%s: помилковий тип вхідного параметра â„–%d: Ñлід викориÑтовувати поліном." + +#, c-format +msgid "%s: Wrong value for input argument #%d: must not contain %s or %s.\n" +msgstr "" +"%s: помилкове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²Ñ…Ñ–Ð´Ð½Ð¾Ð³Ð¾ параметра â„–%d: Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð½Ðµ повинне міÑтити " +"%s або %s.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A matrix expected.\n" +msgstr "" +"%s: помилковий тип вхідного параметра â„–%d: мало бути викориÑтано матрицю.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A square matrix expected.\n" +msgstr "" +"%s: помилковий тип вхідного параметра â„–%d: Ñлід викориÑтовувати квадратну " +"матрицю.\n" + +#, c-format +msgid "" +"%s: Wrong type for input argument #%d: A scalar or a string expected.\n" +msgstr "" +"%s: помилковий тип вхідного параметра â„–%d: Ñлід викориÑтовувати тип «string» " +"або ÑкалÑрний тип.\n" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: must be %d, %d, %s, '%s' or '%s'.\n" +msgstr "" +"%s: помилкове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²Ñ…Ñ–Ð´Ð½Ð¾Ð³Ð¾ параметра â„–%d: Ñлід викориÑтовувати %d, %d, " +"%s, «%s» або «%s».\n" + +#, c-format +msgid "%s: Wrong number of input argument(s): %d to %d expected.\n" +msgstr "" +"%s: помилкова кількіÑÑ‚ÑŒ вхідних параметрів: Ñлід викориÑтовувати від %d до " +"%d параметрів.\n" + +#, c-format +msgid "%s: Wrong number of input arguments: %d to %d expected.\n" +msgstr "" +"%s: помилкова кількіÑÑ‚ÑŒ вхідних параметрів: Ñлід викориÑтовувати від %d до " +"%d.\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A scalar expected.\n" +msgstr "" +"%s: помилкова розмірніÑÑ‚ÑŒ вхідного параметра â„–%d: Ñлід викориÑтовувати " +"дійÑне чиÑло.\n" + +#, c-format +msgid "" +"%s: Wrong values for input argument #%d: Non-negative integers expected.\n" +msgstr "" +"%s: помилкові Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²Ñ…Ñ–Ð´Ð½Ð¾Ð³Ð¾ параметра â„–%d: Ñлід викориÑтовувати " +"невід’ємні цілі чиÑла\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A column vector expected.\n" +msgstr "" +"%s: помилковий розмір вхідного параметра â„–%d: Ñлід викориÑтовувати вектор-" +"Ñтовпчик.\n" + +#, c-format +msgid "%s: Obsolete function. Please replace '%s' by '%s'." +msgstr "%s: заÑтаріла функціÑ. Будь лаÑка, замініть «%s» на «%s»." + +#, c-format +msgid "" +"%s: Obsolete function. Former external functions cannot be used anymore." +msgstr "" +"%s: заÑтаріла функціÑ. Зовнішні функції попередніх верÑій більше не можна " +"викориÑтовувати." + +#, c-format +msgid "%s: Incompatible input arguments #%d and #%d: Same sizes expected.\n" +msgstr "" +"%s: неÑуміÑні вхідні параметри â„–%d Ñ– â„–%d: Ñлід викориÑтовувати однакову " +"розмірніÑÑ‚ÑŒ.\n" + +#, c-format +msgid "%s: SVD and QR not implemented in sparse.\n" +msgstr "%s: SVD Ñ– QR не реалізовано Ð´Ð»Ñ Ñ€Ð¾Ð·Ñ€Ñ–Ð´Ð¶ÐµÐ½Ð¸Ñ… матриць.\n" + +#, c-format +msgid "%s: This feature has not been implemented.\n" +msgstr "%s: цю можливіÑÑ‚ÑŒ ще не реалізовано.\n" + +msgid "Conflicting linear constraints." +msgstr "Конфлікт лінійних обмежень." + +msgid "Recomputing initial guess" +msgstr "ПереобчиÑлюємо початкове припущеннÑ" + +#, c-format +msgid "Possible Conflicting linear constraints, error in the order of %s" +msgstr "Можливий конфлікт лінійних обмежень, помилка у порÑдку %s" + +#, c-format +msgid "%s: Wrong number of input arguments: %d or %d expected.\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: Singular pencil." +msgstr "%s: вироджений жмуток матриць." + +#, c-format +msgid "" +"%s: Function not defined for type '%s'. Check argument or define function %s." +msgstr "" +"%s: Ð´Ð»Ñ Ñ‚Ð¸Ð¿Ñƒ «%s» функцію не визначено. Перевірте параметр або визначте " +"функцію %s." + +#, c-format +msgid "%s: Wrong number of input argument(s): %d expected.\n" +msgstr "%s: помилкова кількіÑÑ‚ÑŒ вхідних параметрів: мало бути %d.\n" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: Non-negative integer expected.\n" +msgstr "" +"%s: помилковий тип вхідного параметра â„–%d: Ñлід було вказувати невід’ємне " +"ціле чиÑло.\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A square matrix expected.\n" +msgstr "" +"%s: помилкова розмірніÑÑ‚ÑŒ вхідного параметра â„–%d: Ñлід викориÑтовувати " +"квадратну матрицю.\n" + +#, c-format +msgid "" +"%s: Wrong values for input argument #%d: Non-negative scalar expected.\n" +msgstr "" +"%s: помилкові Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²Ñ…Ñ–Ð´Ð½Ð¾Ð³Ð¾ параметра â„–%d: Ñлід викориÑтовувати " +"невід’ємні ÑкалÑрні дані.\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d: Symmetric expected" +msgstr "" +"%s: помилкова розмірніÑÑ‚ÑŒ вхідного параметра â„–%d: мала бути Ñиметрична " +"матрицÑ" + +#, c-format +msgid "%s: Wrong value for input argument #%d: Not semi-definite positive" +msgstr "" +"%s: помилкове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²Ñ…Ñ–Ð´Ð½Ð¾Ð³Ð¾ параметра â„–%d: вказано не напіввизначену " +"додатно матрицю" + +#, c-format +msgid "%s: Wrong type for input argument #%d.\n" +msgstr "%s: помилковий тип вхідного параметра â„–%d.\n" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: Requested rank is greater than " +"matrix dimension." +msgstr "" +"%s: помилкове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²Ñ…Ñ–Ð´Ð½Ð¾Ð³Ð¾ параметра â„–%d: потрібний ранг перевищує " +"розмірніÑÑ‚ÑŒ матриці.\n" +"." diff --git a/modules/linear_algebra/locales/zh_CN.po b/modules/linear_algebra/locales/zh_CN.po new file mode 100755 index 000000000..3c236190f --- /dev/null +++ b/modules/linear_algebra/locales/zh_CN.po @@ -0,0 +1,202 @@ +# 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: 2013-05-02 14:26+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" + +#, c-format +msgid "" +"%s: Wrong type for input argument #%d: Real or Complex matrix expected.\n" +msgstr "%s:输入å‚æ•°#%d的类型错误:应该为实数或å¤æ•°çŸ©é˜µã€‚\n" + +#, c-format +msgid "%s: Non convergence in QR steps.\n" +msgstr "%s:QR分解的è¿ä»£ä¸ä¸æ”¶æ•›ã€‚\n" + +#, c-format +msgid "%s: Can not read input argument #%d.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for argument #%d: Real or complex matrix expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong value for argument #%d: Must not contain NaN or Inf.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: String or integer expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A string expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong value for input argument #%d: %s, %s, %s, or %s expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong value for input argument #%d: %s, %s, %s or %s expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A real expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A real scalar expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: Real scalar expected.\n" +msgstr "%s:第%d个输入å‚æ•°çš„ç±»åž‹é”™è¯¯ï¼šåº”è¯¥ä¸ºå®žæ•°æ ‡é‡ã€‚\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: Real matrix expected.\n" +msgstr "%s:输入å‚æ•°#%d的类型错误:应该为实数矩阵。\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: Polynomial expected." +msgstr "" + +#, c-format +msgid "%s: Wrong value for input argument #%d: must not contain %s or %s.\n" +msgstr "%s:第%d个输入å‚数的值错误:ä¸èƒ½åŒ…å«%s或%s。\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A matrix expected.\n" +msgstr "%s:第%d个输入å‚数的类型错误:应该为矩阵。\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A square matrix expected.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Wrong type for input argument #%d: A scalar or a string expected.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: must be %d, %d, %s, '%s' or '%s'.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong number of input argument(s): %d to %d expected.\n" +msgstr "%s:输入å‚数的数目出错:应该为%d到%d个。\n" + +#, c-format +msgid "%s: Wrong number of input arguments: %d to %d expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A scalar expected.\n" +msgstr "%s:输入å‚æ•°#%d的大å°é”™è¯¯ï¼šåº”è¯¥ä¸ºä¸€ä¸ªæ ‡é‡ã€‚\n" + +#, c-format +msgid "" +"%s: Wrong values for input argument #%d: Non-negative integers expected.\n" +msgstr "%s:输入å‚æ•°#%d的值错误:应该为éžè´Ÿæ•´æ•°çŸ©é˜µã€‚\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A column vector expected.\n" +msgstr "%s:输入å‚æ•°#%d的大å°é”™è¯¯ï¼šåº”该为一个列å‘é‡ã€‚\n" + +#, c-format +msgid "%s: Obsolete function. Please replace '%s' by '%s'." +msgstr "" + +#, c-format +msgid "" +"%s: Obsolete function. Former external functions cannot be used anymore." +msgstr "" + +#, c-format +msgid "%s: Incompatible input arguments #%d and #%d: Same sizes expected.\n" +msgstr "%s:输入å‚æ•°#%då’Œ#%dä¸å…¼å®¹ï¼šåº”该为åŒæ ·å¤§å°ã€‚\n" + +#, c-format +msgid "%s: SVD and QR not implemented in sparse.\n" +msgstr "%s:稀ç–矩阵的SVDå’ŒQR分解尚未实现。\n" + +#, c-format +msgid "%s: This feature has not been implemented.\n" +msgstr "%s:该功能尚未实现。\n" + +msgid "Conflicting linear constraints." +msgstr "" + +msgid "Recomputing initial guess" +msgstr "" + +#, c-format +msgid "Possible Conflicting linear constraints, error in the order of %s" +msgstr "" + +#, c-format +msgid "%s: Wrong number of input arguments: %d or %d expected.\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: Singular pencil." +msgstr "" + +#, c-format +msgid "" +"%s: Function not defined for type '%s'. Check argument or define function %s." +msgstr "" + +#, c-format +msgid "%s: Wrong number of input argument(s): %d expected.\n" +msgstr "%s:输入å‚数的数目错误:应该为%d。\n" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: Non-negative integer expected.\n" +msgstr "%s:输入å‚æ•°#%d的值错误:应该为éžè´Ÿæ•´æ•°ã€‚\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A square matrix expected.\n" +msgstr "%s:输入å‚æ•°#%d的大å°é”™è¯¯ï¼šåº”该为一个方阵。\n" + +#, c-format +msgid "" +"%s: Wrong values for input argument #%d: Non-negative scalar expected.\n" +msgstr "%s:输入å‚æ•°#%d的值错误:应该为éžè´Ÿæ ‡é‡ã€‚\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d: Symmetric expected" +msgstr "%s:输入å‚æ•°#%d的大å°é”™è¯¯ï¼šåº”该为对称阵。" + +#, c-format +msgid "%s: Wrong value for input argument #%d: Not semi-definite positive" +msgstr "%s:输入å‚æ•°#%d的值错误:应该为是åŠæ£å®šé˜µã€‚" + +#, c-format +msgid "%s: Wrong type for input argument #%d.\n" +msgstr "%s:输入å‚æ•°#%d的类型错误。\n" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: Requested rank is greater than " +"matrix dimension." +msgstr "%s:输入å‚æ•°#%d的值错误:需è¦çš„秩大于矩阵的维数。" diff --git a/modules/linear_algebra/locales/zh_TW.po b/modules/linear_algebra/locales/zh_TW.po new file mode 100755 index 000000000..c1e4032ae --- /dev/null +++ b/modules/linear_algebra/locales/zh_TW.po @@ -0,0 +1,269 @@ +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-09-01 09:29+0000\n" +"Last-Translator: Scilab.team <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" +"Revision-Date: 2011-04-04 22:09+0100\n" + +# +# File: sci_gateway/c/sci_qr.c, line: 65 +# File: sci_gateway/c/sci_qr.c, line: 84 +# File: sci_gateway/c/sci_qr.c, line: 107 +# File: sci_gateway/c/sci_qr.c, line: 114 +# File: sci_gateway/c/sci_qr.c, line: 120 +# File: sci_gateway/c/sci_backslash.c, line: 63 +# File: sci_gateway/c/sci_backslash.c, line: 84 +# File: sci_gateway/c/sci_backslash.c, line: 91 +# File: sci_gateway/c/sci_eig.c, line: 79 +# File: sci_gateway/c/sci_eig.c, line: 115 +# File: sci_gateway/c/sci_eig.c, line: 133 +# File: sci_gateway/c/sci_eig.c, line: 139 +# File: sci_gateway/c/sci_hess.c, line: 47 +# File: sci_gateway/c/sci_lu.c, line: 49 +# File: sci_gateway/c/sci_det.c, line: 47 +# File: sci_gateway/c/sci_balanc.c, line: 54 +# File: sci_gateway/c/sci_balanc.c, line: 92 +# File: sci_gateway/c/sci_balanc.c, line: 115 +# File: sci_gateway/c/sci_balanc.c, line: 122 +# File: sci_gateway/c/sci_rcond.c, line: 50 +# File: sci_gateway/c/sci_schur.c, line: 70 +# File: sci_gateway/c/sci_schur.c, line: 90 +# File: sci_gateway/c/sci_schur.c, line: 173 +# File: sci_gateway/c/sci_schur.c, line: 216 +# File: sci_gateway/c/sci_schur.c, line: 231 +# File: sci_gateway/c/sci_schur.c, line: 242 +# File: sci_gateway/c/sci_chol.c, line: 48 +# File: sci_gateway/c/sci_lsq.c, line: 80 +# File: sci_gateway/c/sci_lsq.c, line: 88 +# File: sci_gateway/c/sci_slash.c, line: 59 +# File: sci_gateway/c/sci_slash.c, line: 80 +# File: sci_gateway/c/sci_slash.c, line: 87 +# File: sci_gateway/c/sci_inv.c, line: 49 +#, c-format +msgid "" +"%s: Wrong type for input argument #%d: Real or Complex matrix expected.\n" +msgstr "%s: 第 %d 個輸入åƒæ•¸åž‹æ…‹éŒ¯èª¤: 應為實數或複數矩陣.\n" + +# +# File: sci_gateway/c/sci_bdiag.c, line: 97 +#, c-format +msgid "%s: Non convergence in QR steps.\n" +msgstr "%s: 在 QR 計算æ¥é©Ÿä¸æœªæ”¶æ–‚.\n" + +#, c-format +msgid "%s: Can not read input argument #%d.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for argument #%d: Real or complex matrix expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong value for argument #%d: Must not contain NaN or Inf.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: String or integer expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A string expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong value for input argument #%d: %s, %s, %s, or %s expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong value for input argument #%d: %s, %s, %s or %s expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A real expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong size for input argument #%d: A real scalar expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: Real scalar expected.\n" +msgstr "" + +# +# File: sci_gateway/c/sci_schur.c, line: 109 +#, c-format +msgid "%s: Wrong type for input argument #%d: Real matrix expected.\n" +msgstr "%s: 第 %d 個輸入åƒæ•¸åž‹æ…‹éŒ¯èª¤: 應為實數矩陣.\n" + +#, c-format +msgid "%s: Wrong type for input argument #%d: Polynomial expected." +msgstr "" + +#, c-format +msgid "%s: Wrong value for input argument #%d: must not contain %s or %s.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A matrix expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong type for input argument #%d: A square matrix expected.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Wrong type for input argument #%d: A scalar or a string expected.\n" +msgstr "" + +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: must be %d, %d, %s, '%s' or '%s'.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong number of input argument(s): %d to %d expected.\n" +msgstr "" + +#, c-format +msgid "%s: Wrong number of input arguments: %d to %d expected.\n" +msgstr "" + +# +# File: macros/diff.sci, line: 20 +# File: macros/diff.sci, line: 29 +#, c-format +msgid "%s: Wrong size for input argument #%d: A scalar expected.\n" +msgstr "%s: 第 %d 個輸入åƒæ•¸é•·åº¦éŒ¯èª¤: 應為純é‡.\n" + +# +# File: macros/diff.sci, line: 24 +# File: macros/diff.sci, line: 33 +#, c-format +msgid "" +"%s: Wrong values for input argument #%d: Non-negative integers expected.\n" +msgstr "%s: 第 %d 個輸入åƒæ•¸æ•¸å€¼éŒ¯èª¤: 應為éžè² 整數.\n" + +# +# File: macros/givens.sci, line: 24 +#, c-format +msgid "%s: Wrong size for input argument #%d: A column vector expected.\n" +msgstr "%s: 第 %d 個輸入åƒæ•¸é•·åº¦éŒ¯èª¤: 應為列å‘é‡.\n" + +#, c-format +msgid "%s: Obsolete function. Please replace '%s' by '%s'." +msgstr "" + +#, c-format +msgid "" +"%s: Obsolete function. Former external functions cannot be used anymore." +msgstr "" + +#, c-format +msgid "%s: Incompatible input arguments #%d and #%d: Same sizes expected.\n" +msgstr "%s: 第 %d åŠ ç¬¬ %d 輸入åƒæ•¸ä¸ç›¸å®¹ : 應為相åŒå¤§å°.\n" + +# +# File: macros/kernel.sci, line: 31 +#, c-format +msgid "%s: SVD and QR not implemented in sparse.\n" +msgstr "%s: 尚未實作稀ç–矩陣之 SVD åŠ QR 演算法.\n" + +# +# File: macros/kernel.sci, line: 61 +#, c-format +msgid "%s: This feature has not been implemented.\n" +msgstr "%s: æ¤ç‰¹æ€§å°šæœªå¯¦ä½œ.\n" + +msgid "Conflicting linear constraints." +msgstr "" + +msgid "Recomputing initial guess" +msgstr "" + +#, c-format +msgid "Possible Conflicting linear constraints, error in the order of %s" +msgstr "" + +#, c-format +msgid "%s: Wrong number of input arguments: %d or %d expected.\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: Singular pencil." +msgstr "" + +#, c-format +msgid "" +"%s: Function not defined for type '%s'. Check argument or define function %s." +msgstr "" + +#, c-format +msgid "%s: Wrong number of input argument(s): %d expected.\n" +msgstr "%s: 輸入åƒæ•¸æ•¸ç›®éŒ¯èª¤:應為 %d.\n" + +# +# File: macros/range.sci, line: 18 +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: Non-negative integer expected.\n" +msgstr "%s: 第 %d 個輸入åƒæ•¸æ•¸å€¼éŒ¯èª¤: 應為éžè² 整數.\n" + +# +# File: macros/range.sci, line: 21 +# File: macros/cond.sci, line: 16 +# File: macros/trace.sci, line: 17 +# File: macros/trace.sci, line: 23 +# File: macros/trace.sci, line: 31 +# File: macros/trace.sci, line: 41 +# File: macros/trace.sci, line: 50 +#, c-format +msgid "%s: Wrong size for input argument #%d: A square matrix expected.\n" +msgstr "%s: 第 %d 個輸入åƒæ•¸é•·åº¦éŒ¯èª¤: 應為方陣.\n" + +# +# File: macros/rowcomp.sci, line: 33 +#, c-format +msgid "" +"%s: Wrong values for input argument #%d: Non-negative scalar expected.\n" +msgstr "%s: 第 %d 個輸入åƒæ•¸æ•¸å€¼éŒ¯èª¤: 應為éžè² ç´”é‡.\n" + +#, c-format +msgid "%s: Wrong size for input argument #%d: Symmetric expected" +msgstr "%s: 第 %d 個輸入åƒæ•¸é•·åº¦éŒ¯èª¤: 應為å°ç¨±" + +# +# File: macros/sqroot.sci, line: 18 +#, c-format +msgid "%s: Wrong value for input argument #%d: Not semi-definite positive" +msgstr "%s: 第 %d 個輸入åƒæ•¸æ•¸å€¼éŒ¯èª¤: éžåŠæ£å®š (semi-definite positive)" + +# +# File: macros/trace.sci, line: 35 +# File: macros/trace.sci, line: 45 +# File: macros/trace.sci, line: 54 +# File: macros/squeeze.sci, line: 30 +#, c-format +msgid "%s: Wrong type for input argument #%d.\n" +msgstr "%s: 第 %d 個輸入åƒæ•¸åž‹æ…‹éŒ¯èª¤.\n" + +# +# File: macros/sva.sci, line: 22 +#, c-format +msgid "" +"%s: Wrong value for input argument #%d: Requested rank is greater than " +"matrix dimension." +msgstr "%s: 第 %d 個輸入åƒæ•¸æ•¸å€¼éŒ¯èª¤: è¦æ±‚之秩大於矩陣之ç¶åº¦." diff --git a/modules/linear_algebra/macros/aff2ab.bin b/modules/linear_algebra/macros/aff2ab.bin Binary files differnew file mode 100755 index 000000000..1d0de8e97 --- /dev/null +++ b/modules/linear_algebra/macros/aff2ab.bin diff --git a/modules/linear_algebra/macros/aff2ab.sci b/modules/linear_algebra/macros/aff2ab.sci new file mode 100755 index 000000000..2d86b20e9 --- /dev/null +++ b/modules/linear_algebra/macros/aff2ab.sci @@ -0,0 +1,44 @@ + +// 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,b]=aff2ab(lme,dimX,D,flag) + //Y,X,D are lists of matrices. + //Y=lme(X,D)= affine fct of Xi's; + //[A,b]=matrix representation of lme in canonical basis. + // if flag=='sp' A matrix is return in sparse storage. + [LHS,RHS]=argn(0) + if RHS==3 then flag="f";end + + nvars=0; + for k=dimX' + nvars=nvars+prod(k); + end + if part(flag,1)=="f" then + x0=zeros(nvars,1); + b=list2vec(lme(vec2list(x0,dimX),D)); + [p,un]=size(b); + A=zeros(p,nvars); + for k=1:nvars + xi=x0;xi(k)=1; + A(:,k)=list2vec(lme(vec2list(xi,dimX),D))-b; + // A=[A,sparse(list2vec(lme(vec2list(xi,dimX),D))-b)]; + end + end + + if part(flag,1)=="s" then + x0=zeros(nvars,1); + b=list2vec(lme(vec2list(x0,dimX),D)); + A=[]; + for k=1:nvars + xi=x0;xi(k)=1; + A=[A,sparse(list2vec(lme(vec2list(xi,dimX),D))-b)]; + end + end +endfunction diff --git a/modules/linear_algebra/macros/buildmacros.bat b/modules/linear_algebra/macros/buildmacros.bat new file mode 100755 index 000000000..a73ca67f8 --- /dev/null +++ b/modules/linear_algebra/macros/buildmacros.bat @@ -0,0 +1,11 @@ + +rem Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +rem Copyright (C) 2008 - INRIA +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; diff --git a/modules/linear_algebra/macros/buildmacros.sce b/modules/linear_algebra/macros/buildmacros.sce new file mode 100755 index 000000000..9799263d9 --- /dev/null +++ b/modules/linear_algebra/macros/buildmacros.sce @@ -0,0 +1,15 @@ + +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2006-2008 - INRIA - Allan CORNET <allan.cornet@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 + +if (isdef("genlib") == %f) then + exec(SCI+"/modules/functions/scripts/buildmacros/loadgenlib.sce"); +end + +genlib("linear_algebralib","SCI/modules/linear_algebra/macros",%f,%t); diff --git a/modules/linear_algebra/macros/classmarkov.bin b/modules/linear_algebra/macros/classmarkov.bin Binary files differnew file mode 100755 index 000000000..4bbf3ec5c --- /dev/null +++ b/modules/linear_algebra/macros/classmarkov.bin diff --git a/modules/linear_algebra/macros/classmarkov.sci b/modules/linear_algebra/macros/classmarkov.sci new file mode 100755 index 000000000..c68b01b1d --- /dev/null +++ b/modules/linear_algebra/macros/classmarkov.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 [perm,rec,tr,indsRec,indsT]=classmarkov(M) + //returns a permutation vector perm such that + //M(perm,perm) = [M11 0 0 0 0 0] + // [0 M22 0 0 0] + // [0 0 M33 0] + // [ ... ] + // [0 0 Mrr 0] + // [* * * Q] + //Each Mii is a Markov matrix of dimension rec(i) i=1,..,r + //Q is sub-Markov matrix of dimension tr + //States 1 to sum(rec) are recurrent and states from r+1 to n + //are transient. + //perm=[indsRec,indsT] where indsRec is a vector of size sum(rec) + //and indsT is a vector of size indsT. + if type(M)==1 + Mb=sparse(M<>0); + else Mb=M<>0; + end + g=mat_2_graph(bool2s(Mb),1,"node-node"); + [nc,ncomp]=strong_connex(g); + indsRec=[];indsT=[];rec=[];tr=0; + for i=1:nc + inds=find(ncomp==i); + nb=size(inds,"*"); + M1=M(inds,:); M1(:,inds)=[]; + if sum(M1)==0 then + indsRec=[indsRec,inds]; + rec=[rec,nb]; + else + indsT=[indsT,inds]; + tr=tr+nb; + end + end + perm=[indsRec,indsT]; +endfunction + diff --git a/modules/linear_algebra/macros/cleanmacros.bat b/modules/linear_algebra/macros/cleanmacros.bat new file mode 100755 index 000000000..4ad1bbae2 --- /dev/null +++ b/modules/linear_algebra/macros/cleanmacros.bat @@ -0,0 +1,13 @@ + +rem Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +rem Copyright (C) 2008 - INRIA +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 diff --git a/modules/linear_algebra/macros/cmb_lin.bin b/modules/linear_algebra/macros/cmb_lin.bin Binary files differnew file mode 100755 index 000000000..f6c6b3e69 --- /dev/null +++ b/modules/linear_algebra/macros/cmb_lin.bin diff --git a/modules/linear_algebra/macros/cmb_lin.sci b/modules/linear_algebra/macros/cmb_lin.sci new file mode 100755 index 000000000..812589992 --- /dev/null +++ b/modules/linear_algebra/macros/cmb_lin.sci @@ -0,0 +1,19 @@ + +// 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]=cmb_lin(alfa,x,Beta,y) + // x =cmb_lin(alfa,x,Beta,y) evaluates alfa*x-Beta*y + // (low-level routine) + //! + n=prod(size(x)); + for j=1:n, + x(j)=addf(mulf(alfa,x(j)),mulf(mulf("-1",Beta),y(j))); + end +endfunction diff --git a/modules/linear_algebra/macros/coff.bin b/modules/linear_algebra/macros/coff.bin Binary files differnew file mode 100755 index 000000000..9e9ea29ff --- /dev/null +++ b/modules/linear_algebra/macros/coff.bin diff --git a/modules/linear_algebra/macros/coff.sci b/modules/linear_algebra/macros/coff.sci new file mode 100755 index 000000000..41f6edd01 --- /dev/null +++ b/modules/linear_algebra/macros/coff.sci @@ -0,0 +1,33 @@ + +// 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]=coff(m,var) + //[N,d]=coff(M [,var]) computes (s*eye-M)^-1 + // N = numerator polynomial matrix + // d = common denominator + // var character string ('s' if omitted) + // See also : coffg + //! + // + if type(m)<>1 then error(53,1),end + if m==[] then n=[];d=1;end + [lhs,rhs]=argn(0);if rhs==1 then var="s",end + d=clean(poly(m,var)); // denominator + [n1,n1]=size(m); + for k=1:n1,for l=1:n1, + mlk=-m(l,k); + if abs(mlk)<1 then mlk=1,end + m(l,k)=m(l,k)+mlk; + n(k,l)=-(poly(m,var)-d)/mlk; + m(l,k)=m(l,k)-mlk + end;end + if norm(imag(m),1)==0 then n=real(n);d=real(d);end + n=clean(n); +endfunction diff --git a/modules/linear_algebra/macros/colcomp.bin b/modules/linear_algebra/macros/colcomp.bin Binary files differnew file mode 100755 index 000000000..16dc4c4b3 --- /dev/null +++ b/modules/linear_algebra/macros/colcomp.bin diff --git a/modules/linear_algebra/macros/colcomp.sci b/modules/linear_algebra/macros/colcomp.sci new file mode 100755 index 000000000..a4dbec36a --- /dev/null +++ b/modules/linear_algebra/macros/colcomp.sci @@ -0,0 +1,36 @@ + +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) ????-2008 - INRIA - François DELEBECQUE +// +// 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 [w,rk]=colcomp(a,flag,tol) + //Syntaxes : [w,rk]=colcomp(a) + // [w,rk]=colcomp(a,flag) + // [w,rk]=colcomp(a,flag,tol) + // + //column compression of a i.e. comput. of ker(a) + //flag and tol are optional parameters + //flag='qr' or 'svd' (defaut 'svd') + //tol tolerance parameter (of order %eps as defaut value) + //the ma-rk first columns of w span the kernel of a when size(a)=(na,ma) + + [ma,na]=size(a) + [lhs,rhs]=argn(0) + if a==[] then w=[];rk=0;return;end + if norm(a,1) < sqrt(%eps)/10 then rk=0,w=eye(na,na),return,end + if rhs ==2 then tol=sqrt(%eps)*norm(a,1)*max(ma,na),end + if rhs==1 then flag="svd",tol=sqrt(%eps)*norm(a,1)*max(ma,na);end + select flag + case "qr" then [q,r,rk,e]=qr(a',tol); + //w=[q(:,rk+1:ma),q(:,1:rk)]; <-- le ma me parait suspect je met na + w=q(:,na:-1:1) + case "svd" then [u,s,v,rk]=svd(a',tol); + //w=[u(:,rk+1:na),u(:,1:rk)]; + w=u(:,na:-1:1) + end +endfunction diff --git a/modules/linear_algebra/macros/companion.bin b/modules/linear_algebra/macros/companion.bin Binary files differnew file mode 100755 index 000000000..20f4026d4 --- /dev/null +++ b/modules/linear_algebra/macros/companion.bin diff --git a/modules/linear_algebra/macros/companion.sci b/modules/linear_algebra/macros/companion.sci new file mode 100755 index 000000000..8934c60da --- /dev/null +++ b/modules/linear_algebra/macros/companion.sci @@ -0,0 +1,50 @@ + +// 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 = companion(p) + // Companion matrix. + // A=companion(p) is a companion matrix with + // characteristic polynomial equal to (or proportional to) + // p. If p is a row or column vector of polynomials, the A matrix is block + // diagonal and block number i has characteristic polynomial + // equal to p(i). + + if type(p) ~= 2 + error(msprintf(gettext("%s: Wrong type for input argument #%d: Polynomial expected."),"companion",1)); + end + // Tranform the row or column vector of poly into a column vector of polynomials + p=p(:); + // Transpose the vector from column in to row vector, + // so that the "for" loop can work properly for each poly. + // Caution : ".'", NOT "'" + p=p.'; + A=[]; + //for pp=p; + polynumber = length(p); + for polyindex=1:polynumber; + pp=p(polyindex); + c=coeff(pp); + // Reverse the order of the coefficients, so that the coefficient associated with s^n + // comes first. + c=c($:-1:1); + n = length(c); + if n <= 1 + B=[]; + elseif n == 2 + B=-c(2)/c(1); + else + // Caution : ".'", NOT "'" + c=c(:).'; + B=diag(ones(1,n-2),-1); + B(1,:) = -c(2:n)/c(1); + end + A=sysdiag(A,B); + end +endfunction diff --git a/modules/linear_algebra/macros/cond.bin b/modules/linear_algebra/macros/cond.bin Binary files differnew file mode 100755 index 000000000..7cc980880 --- /dev/null +++ b/modules/linear_algebra/macros/cond.bin diff --git a/modules/linear_algebra/macros/cond.sci b/modules/linear_algebra/macros/cond.sci new file mode 100755 index 000000000..98f6b8536 --- /dev/null +++ b/modules/linear_algebra/macros/cond.sci @@ -0,0 +1,58 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) ????-2008 - INRIA +// Copyright (C) 2012- Scilab Enterprises - Adeline CARNIS +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function c = cond(varargin) + rhs = argn(2); + + select rhs + case 1 + // c=cond(A) condition number for 2-norm + // cond(A) is the ratio of the largest singular of x to the smallest + // Warning: the svd function doesn't manage sparse matrices + A = varargin(1); + if type(A) == 1 then + if or(isnan(A)) | or (isinf(A)) then + error(msprintf(gettext("%s: Wrong value for input argument #%d: must not contain %s or %s.\n"), "cond", 1, "%nan", "%inf")); + end + if A == [] then + c = 1; + return + end + s = svd(A); + if s($) == 0 then + c = %inf; + else + c = s(1)/s($); + end + else + error(msprintf(gettext("%s: Wrong type for input argument #%d: A matrix expected.\n"), "cond", 1)); + end + case 2 + // c = cond(A, p) where p = 1, %inf, fro, .. + // norm(A, p) * norm(inv(A), p) + // Warning inv doesn't manage no square and sparse matrices + A = varargin(1); + p = varargin(2); + [m,n] = size(A); + if type(A) <> 1 | m <> n then + error(msprintf(gettext("%s: Wrong type for input argument #%d: A square matrix expected.\n"),"cond", 1)); + end + if and(type(p) <> [1, 10]) then + error(msprintf(gettext("%s: Wrong type for input argument #%d: A scalar or a string expected.\n"),"cond", 2)); + end + if and(p <> [1 2 %inf] & p <> ["inf","fro"]) then + error(msprintf(gettext("%s: Wrong value for input argument #%d: must be %d, %d, %s, ''%s'' or ''%s''.\n"), "cond", 2, 1, 2, "%inf", "inf", "fro")); + end + + c = norm(A, p) * norm(inv(A), p); + else + error(msprintf(gettext("%s: Wrong number of input argument(s): %d to %d expected.\n"), "cond", 1, 2)); + end +endfunction diff --git a/modules/linear_algebra/macros/diff.bin b/modules/linear_algebra/macros/diff.bin Binary files differnew file mode 100755 index 000000000..2c403705b --- /dev/null +++ b/modules/linear_algebra/macros/diff.bin diff --git a/modules/linear_algebra/macros/diff.sci b/modules/linear_algebra/macros/diff.sci new file mode 100755 index 000000000..a28f1c7ec --- /dev/null +++ b/modules/linear_algebra/macros/diff.sci @@ -0,0 +1,51 @@ +// 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=diff(x,N,DIM) + rhs=argn(2) + if rhs<1 then + error(msprintf(gettext("%s: Wrong number of input arguments: %d to %d expected.\n"),"diff",1,3)); + end + dims=size(x),nd=prod(size(dims)) + if rhs<3 then DIM="*",end + if rhs<2 then N=1,end + if DIM=="r" then DIM=1,end + if DIM=="c" then DIM=2,end + if DIM=="*" then DIM=-1,end + if size(DIM,"*")<>1 then + error(msprintf(gettext("%s: Wrong size for input argument #%d: A scalar expected.\n"),"diff",1)); + end + DIM=round(DIM) + if DIM<>-1&DIM<1 then + error(msprintf(gettext("%s: Wrong values for input argument #%d: Non-negative integers expected.\n"),"diff",3)); + end + if DIM>nd then x=[],return,end + + if type(N)<>1|size(N,"*")<>1 then + error(msprintf(gettext("%s: Wrong size for input argument #%d: A scalar expected.\n"),"diff",2)); + end + N=round(N) + if N<0 then + error(msprintf(gettext("%s: Wrong values for input argument #%d: Non-negative integers expected.\n"),"diff",3)); + end + + + if N==1 then + if DIM==-1 then + x=x(2:$)-x(1:$-1) + else + args=emptystr(1,nd)+":" + arg1=args;arg1(DIM)="2:$"; + arg2=args;arg2(DIM)="1:$-1"; + execstr("x=x("+strcat(arg1,",")+")-x("+strcat(arg2,",")+")") + end + else + for i=1:N, x=diff(x,1,DIM),end + end +endfunction diff --git a/modules/linear_algebra/macros/eigenmarkov.bin b/modules/linear_algebra/macros/eigenmarkov.bin Binary files differnew file mode 100755 index 000000000..b07e125c6 --- /dev/null +++ b/modules/linear_algebra/macros/eigenmarkov.bin diff --git a/modules/linear_algebra/macros/eigenmarkov.sci b/modules/linear_algebra/macros/eigenmarkov.sci new file mode 100755 index 000000000..eb0e831ca --- /dev/null +++ b/modules/linear_algebra/macros/eigenmarkov.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 [M,Q]=eigenmarkov(P) + //Returns normalized left and right eigenvectors + //for the eigenvalue 1 of the Markov transition matrix P. + //If the multiplicity of this eigenvalue is m and P + //is N x N, M is a m x N matrix and Q a N x m matrix. + //M(k,:) is the probability distribution vector associated with the kth + //ergodic set (recurrent class). M(k,x) is zero if x is not in the + //k-th recurrent class. + //Q(x,k) is the probability to end in the k-th recurrent class starting + //from x. + [perm,rec1,tr1,indsRec,indsT]=classmarkov(P) + Mn=P(perm,perm); + [junk,perminv]=-gsort(-perm);perminv=-perminv; + nr=sum(rec1); + T=Mn(nr+1:$,nr+1:$);L=Mn(nr+1:$,1:nr); + p=0;V=[]; + for k=rec1 + v=L(:,p+1:p+k);V=[V,sum(v,"c")]; + p=p+k; + end + LL=zeros(nr,size(rec1,"*")); + p=0; + for k=1:size(rec1,"*") + LL(p+1:p+rec1(k),k)=1; + p=p+rec1(k); + end + Q=[LL;inv(eye()-T)*V]; + Q=Q(perminv,:); + p=0;M=[]; + for kk=1:size(rec1,"*") + classe=p+1:p+rec1(kk); + p=p+rec1(kk); + Mres=Mn(classe,classe); + w=kernel((Mres-eye())')'; + M=sysdiag(M,w./sum(w)); + end + M=[M,zeros(size(M,1),size(P,1)-size(M,2))]; + M=M(:,perminv); +endfunction diff --git a/modules/linear_algebra/macros/fullrf.bin b/modules/linear_algebra/macros/fullrf.bin Binary files differnew file mode 100755 index 000000000..fa79933b9 --- /dev/null +++ b/modules/linear_algebra/macros/fullrf.bin diff --git a/modules/linear_algebra/macros/fullrf.sci b/modules/linear_algebra/macros/fullrf.sci new file mode 100755 index 000000000..023461142 --- /dev/null +++ b/modules/linear_algebra/macros/fullrf.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 [Q,M,rk]=fullrf(A,tol) + //[Q,M,rk]=fullrf(A) + //Full rank factorization : A=Q.M + //with range(Q)=range(A) and ker(M)=ker(A), + //Q full column rank , M full row rank + // rk = rank(A) = #columns(Q) = #rows(M) + //F.D. + //! + [lhs,rhs]=argn(0) + na1=norm(A,1); + if rhs==1 then tol=sqrt(%eps);end + if na1 < 1.d-10 then Q=[];M=[];rk=0;return;end + tol1=tol*na1; + [U,s,V,rk]=svd(A,tol1); + sq=sqrt(s); + Q=U*sq;M=sq*V'; + Q=Q(:,1:rk);M=M(1:rk,:); +endfunction + + diff --git a/modules/linear_algebra/macros/fullrfk.bin b/modules/linear_algebra/macros/fullrfk.bin Binary files differnew file mode 100755 index 000000000..2290c78a8 --- /dev/null +++ b/modules/linear_algebra/macros/fullrfk.bin diff --git a/modules/linear_algebra/macros/fullrfk.sci b/modules/linear_algebra/macros/fullrfk.sci new file mode 100755 index 000000000..4ae71ec9d --- /dev/null +++ b/modules/linear_algebra/macros/fullrfk.sci @@ -0,0 +1,38 @@ + +// 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 [Bk,Ck]=fullrfk(A,k) + // This macro computes the full rank factorization of A^k i.e. + // Bk*Ck=A^k where Bk is full column rank and Ck full row rank. + // One has Range(Bk)=Range(A^k) and ker(Ck)=ker(A^k). + // For k=1 fullrfk is the same as fullrf. + // F.D (1990) + //! + [lhs,rhs]=argn(0); + if rhs==1, + k=1; + end + [n,n]=size(A); + //k=0 + if k==0, + Bk=eye(n,n);Ck=Bk; + return; + end + //k=1 + if k==1, + [Bk,Ck]=fullrf(A); + return; + end + [Bk,Ck]=fullrf(A);B=Bk;C=Ck; + for l=2:k + [B,C,dim]=fullrf(C*B); + Bk=Bk*B;Ck=C*Ck; // Bk*Ck = A^k (Full rank factorization) + end; +endfunction diff --git a/modules/linear_algebra/macros/genmarkov.bin b/modules/linear_algebra/macros/genmarkov.bin Binary files differnew file mode 100755 index 000000000..65072b774 --- /dev/null +++ b/modules/linear_algebra/macros/genmarkov.bin diff --git a/modules/linear_algebra/macros/genmarkov.sci b/modules/linear_algebra/macros/genmarkov.sci new file mode 100755 index 000000000..cecb7797c --- /dev/null +++ b/modules/linear_algebra/macros/genmarkov.sci @@ -0,0 +1,62 @@ + +// 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 M=genmarkov(rec,tr,flag) + //Returns in M a random Markov transition probability matrix + //with size(rec,1) recurrent classes with rec(1),...rec($) + //entries respectively and tr transient states. + // If the optional parameter flag='perm' is entered a random + //permutation of the states is performed. + [lhs,rhs]=argn(0); + if rhs==2 then flag="noperm";end + M=[];r=sum(rec); + for k=rec + m=rand(k,k,"u"); + m=m./(sum(m,"c")*ones(1,k)); + M=sysdiag(M,m); + end + if type(tr) ~= 15 then + n=r+tr; + MT=rand(tr,n,"u");MT=MT./(sum(MT,"c")*ones(1,n)); + M=[[M,zeros(r,tr)];MT]; + if flag=="perm" then [p,q]=gsort(rand(n,1,"u"));M=M(q,q);end + else + // tr=list(n1,[a1,a2,...ar],n2,[b1,...br],...) + l=size(tr)/2; //2*size(rec,2) + Q=[]; + for kk=1:l + nt=tr(1+2*(kk-1)); + Q=sysdiag(Q,rand(nt,nt)); + end + Nt=size(Q,1); + L=[]; + nclrec=size(rec,"*"); + for kk=1:l + L1=[];indi=tr(2+2*(kk-1));nt=tr(1+2*(kk-1)); + for i=1:nclrec + if indi(i)==0 then L1=[L1,zeros(nt,rec(i))]; else L1=[L1,rand(nt,rec(i))];end + end + L=[L;L1] + end + LQ=[L,Q]; + LQ=LQ./(sum(LQ,"c")*ones(1,size(LQ,2))); + M=[[M,zeros(size(M,1),size(Q,2))];LQ]; + end + if flag=="perm" then [p,q]=gsort(rand(size(M,1),1,"u"));M=M(q,q);end + + //n=size(M,1);[p,q]=gsort(rand(n,1));M1=M(q,q);M=M1 + + //Ms=sparse(M);Ms(find(Ms~=0))=1; + //G=mat_2_graph(Ms,1,'node-node');show_graph(G); + //[nc,ncomp]=strong_connex(G) + //[pp,qq]=gsort(ncomp);Mg=M(qq,qq) + //Mgs=sparse(Mg); + //Mgs(find(Mgs~=0))=1;Gg=mat_2_graph(Mgs,1,'node-node');show_graph(Gg); +endfunction diff --git a/modules/linear_algebra/macros/givens.bin b/modules/linear_algebra/macros/givens.bin Binary files differnew file mode 100755 index 000000000..cd4a6ed93 --- /dev/null +++ b/modules/linear_algebra/macros/givens.bin diff --git a/modules/linear_algebra/macros/givens.sci b/modules/linear_algebra/macros/givens.sci new file mode 100755 index 000000000..8c0441f15 --- /dev/null +++ b/modules/linear_algebra/macros/givens.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 [u,c]=givens(x,y) + //Syntax : u=givens(xy) + // u=givens(x,y) + // + // xy = [x;y], u=givens(xy) + // returns a 2*2 matrix u such that u*xy=[r;0]. + // c is equal to u*xy + // givens(x,y)=givens([x;y]) + // + //! + [lhs,rhs]=argn(0); + if rhs==2 then x=[x;y];end + if or(size(x)<>[2 1]) then + error(msprintf(gettext("%s: Wrong size for input argument #%d: A column vector expected.\n"),"givens",1)); + end + if x(2)<>0 then + r = norm(x); + u = [x'; -x(2) x(1)]/r; + c = [r; 0]; + else + u=eye(2,2) + c=x + end +endfunction diff --git a/modules/linear_algebra/macros/glever.bin b/modules/linear_algebra/macros/glever.bin Binary files differnew file mode 100755 index 000000000..8c8299d0d --- /dev/null +++ b/modules/linear_algebra/macros/glever.bin diff --git a/modules/linear_algebra/macros/glever.sci b/modules/linear_algebra/macros/glever.sci new file mode 100755 index 000000000..135d96f31 --- /dev/null +++ b/modules/linear_algebra/macros/glever.sci @@ -0,0 +1,52 @@ + +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 1988-2008 - INRIA - François DELEBECQUE +// +// 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 [Bfs,Bis,chis]=glever(E,A,s) + // [Bfs,Bis,chis]=glever(E,A,'s') + // Computation of (s*E-A)^-1 ('s'=character string with default value 's') + // Generelized Leverrier's algorithm for a matrix pencil ; + // (s*E-A)^-1 = (Bfs/chis) - Bis + // chis = characteristic polynomial (up to a multiplicative constant) + // Bfs = polynomial matrix + // Bis = polynomial matrix ( - expansion of (s*E-A)^-1 at infinity). + // Caveat: uses clean to simplify Bfs,Bis and chis ! + // See also shuffle, determ, invr, coffg + + [LHS,RHS]=argn(0); + if RHS==1 then [E,A]=pen2ea(E),s=poly(0,"s");end + if RHS==2 then s=poly(0,"s"),end; + if RHS==3 then s=poly(0,s);end + [Si,Pi,Di,index]=penlaur(E,A); + k=round(sum(diag(Si*E))); + + a0=1; + B=Si; + SiASi=Si*A*Si; + chis=a0+0*s; + Bfs=Si+0*s*Si; + + for i=1:k, + B=SiASi*E*B; + alfa=-sum(diag(E*B))/i; + B=B+alfa*Si; + chis=s*chis+alfa; + if i<k then Bfs=s*Bfs+B;end + end + Bis=Pi; + AAD=s*A*Di; + P=eye(A); + + for nu=1:index+1, + P=AAD*P; + Bis=clean(Bis+Pi*P,1.d-10); + end + Bfs=clean(Bfs,1.d-10); + chis=clean(chis,1.d-10); +endfunction diff --git a/modules/linear_algebra/macros/gschur.bin b/modules/linear_algebra/macros/gschur.bin Binary files differnew file mode 100755 index 000000000..d3bfa8286 --- /dev/null +++ b/modules/linear_algebra/macros/gschur.bin diff --git a/modules/linear_algebra/macros/gschur.sci b/modules/linear_algebra/macros/gschur.sci new file mode 100755 index 000000000..25c23b79e --- /dev/null +++ b/modules/linear_algebra/macros/gschur.sci @@ -0,0 +1,47 @@ +// 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 [As,Es,Z,dim]= gschur(A,E,extern) + + if argn(2)<=2 then + warning("Obsolete function. Please use schur instead.") + if argn(1)==2 then + [As,Es]= schur(A,E) + else + [As,Es,Q,Z]= schur(A,E);Q=Q' + end + elseif type(extern)==10 then + if convstr(extern)=="c"|convstr(extern)=="d" then + warning(msprintf(gettext("%s: Obsolete function. Please replace ''%s'' by ''%s''."),"gschur","gschur","schur")); + if argn(1)==4 then + [As,Es,Z,dim]= schur(A,E,extern) + elseif argn(1)==2 then + [As,Es,Z,dim]= schur(A,E,extern) + Es=dim;As=Z; + end + else // hard coded + warning(msprintf(gettext("%s: Obsolete function. Former external functions cannot be used anymore."),"gschur")); + //impossible to redefine + end + else //coded by a scilab function + //---- old------------------ + //flag=extern(x) + //x(1) ==1 ==> x(2:3)=[al,be] + //x(1) ==2 ==> x(2:3)=[s,p] + warning(msprintf(gettext("%s: Obsolete function. Please replace ''%s'' by ''%s''."),"gschur","gschur","schur")); + deff("t=%_rule(Alpha,Beta)",["if imag(Alpha)==0 then" + " t=extern([1,real(Alpha),Beta])==1" + "else" + " c=Alpha/Beta" + " t=extern([2,real(c+c''),real(c*c'')])==1" + "end;"]) + [As,Es,Z,dim]= schur(A,E,%_rule) + end +endfunction + diff --git a/modules/linear_algebra/macros/gspec.bin b/modules/linear_algebra/macros/gspec.bin Binary files differnew file mode 100755 index 000000000..743b453f9 --- /dev/null +++ b/modules/linear_algebra/macros/gspec.bin diff --git a/modules/linear_algebra/macros/gspec.sci b/modules/linear_algebra/macros/gspec.sci new file mode 100755 index 000000000..275109ef4 --- /dev/null +++ b/modules/linear_algebra/macros/gspec.sci @@ -0,0 +1,15 @@ + +// 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 [al,be,Z]=gspec(A,B) + //For backward compatibility + warning(msprintf(gettext("%s: Obsolete function. Please replace ''%s'' by ''%s''."),"gspec","gspec","spec")); + [al,be,Z]=spec(A,B) +endfunction diff --git a/modules/linear_algebra/macros/householder.bin b/modules/linear_algebra/macros/householder.bin Binary files differnew file mode 100755 index 000000000..1ffbdbb80 --- /dev/null +++ b/modules/linear_algebra/macros/householder.bin diff --git a/modules/linear_algebra/macros/householder.sci b/modules/linear_algebra/macros/householder.sci new file mode 100755 index 000000000..f25e05832 --- /dev/null +++ b/modules/linear_algebra/macros/householder.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 u=householder(v,w) + //Syntax + //u=householder(v [,w]) + //Description + //given 2 column vectors v w of same size householder(v,w) returns a unitary + //column vector u, such that (eye-2*u*u')*v is proportional to w. + //(eye-2*u*u') is the orthogonal Householder reflexion matrix + // + // w default value is eye(v). In this case vector (eye-2*u*u')*v is the + // vector eye(v)*(+-norm(v)) + [lhs,rhs]=argn(0) + if rhs<2 then w=eye(v),end + a=-sqrt((v'*v)/(w'*w)) + u=v+a*w + u=u/norm(u) +endfunction diff --git a/modules/linear_algebra/macros/im_inv.bin b/modules/linear_algebra/macros/im_inv.bin Binary files differnew file mode 100755 index 000000000..56924abac --- /dev/null +++ b/modules/linear_algebra/macros/im_inv.bin diff --git a/modules/linear_algebra/macros/im_inv.sci b/modules/linear_algebra/macros/im_inv.sci new file mode 100755 index 000000000..99ea513d2 --- /dev/null +++ b/modules/linear_algebra/macros/im_inv.sci @@ -0,0 +1,45 @@ + +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) ????-2008 - INRIA - François DELEBECQUE +// +// 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,dim,Y]=im_inv(A,B,tol) + //[X,dim]=im_inv(A,B [,tol]) computes (A^-1)(B) i.e vectors whose + // image through A are in range(B). + // The dim first columns de X span (A^-1) (B) + // tol is a threshold to test if a subspace is included in an other + // default value tol = 100*%eps; + + [lhs,rhs]=argn(0); + [nA,mA]=size(A);[nB,mB]=size(B); + if rhs==2 then tol=100*%eps*mA*nA*nB*mB,end; + if nA<>nB then + error(msprintf(gettext("%s: Incompatible input arguments #%d and #%d: Same sizes expected.\n"),"im_inv",1,2)) + return + end + // basis for im(B) + [Y,rB]=rowcomp(B);//u=Y' + + //Trivial cases + if rB >= nA then X=eye(mA,mA);dim=mA,return;end; + if rB ==0 then [X,k1]=colcomp(A);dim=mA-k1,return,end + // + up=1:rB;low=rB+1:nA; + A=Y*A; //update + + //vectors with image in B + [X,r1]=colcomp(A(low,:)) + A1=A*X; //update + Aup=A1(up,:); + Alow=A1(low,:); //Alow(:,1:ma-r1)=0 by construction + if norm(Alow,1) <= tol*norm(Aup,1) then dim=mA,return,end + dim=mA-r1; +endfunction + + + diff --git a/modules/linear_algebra/macros/kernel.bin b/modules/linear_algebra/macros/kernel.bin Binary files differnew file mode 100755 index 000000000..9b4a7110f --- /dev/null +++ b/modules/linear_algebra/macros/kernel.bin diff --git a/modules/linear_algebra/macros/kernel.sci b/modules/linear_algebra/macros/kernel.sci new file mode 100755 index 000000000..931492acc --- /dev/null +++ b/modules/linear_algebra/macros/kernel.sci @@ -0,0 +1,65 @@ + +// 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 kerA=kernel(A,tol,flag) + //Syntax : [x]=kernel(A [,tol [,flag]]) + // flag = 'svd' or 'sqr' no flag if A sparse + if type(A)==1 then + [lhs,rhs]=argn(0); + [n,m]=size(A); + select rhs + case 1 then + [kerA,rk]=colcomp(A); + case 2 then + [kerA,rk]=colcomp(A,"svd",tol) + case 3 then + [kerA,rk]=colcomp(A,flag,tol) + end + kerA=kerA(:,1:m-rk);return; + end + if type(A)==5 then + [lhs,rhs]=argn(0); + [ma,na]=size(A); + if rhs==3 then + error(msprintf(gettext("%s: SVD and QR not implemented in sparse.\n"),"kernel")); + end + if rhs==2 then tol=1.d-10;else tol=%eps;end + %tol=tol*max(abs(A))*max(ma,na); + if ma<na then + A=[A;sparse([],[],[na-ma,na])]; + end + if ma>na then + A=A'*A;ma=na; + end + [ptr,rkA]=lufact(A,[%tol,0.001]); + [P,L,U,Q]=luget(ptr); + ludel(ptr); + U=clean(U); + [ptrU,rk]=lufact(U,[%tol,.001]); + nma=max(na,ma); + Y=[sparse([],[],[rkA,nma-rkA]);speye(nma-rkA,nma-rkA)]; + kerA=[]; + for k=1:na-rkA + bb=full(Y(:,k)); + ww=sparse(lusolve(ptrU,bb)); + kerA=[kerA,ww]; + end + ludel(ptrU); + if na<>rkA then + kerA=clean(Q'*kerA); + end + if ma>na then kerA=kerA(1:na,:); + end + else + error(msprintf(gettext("%s: This feature has not been implemented.\n"),"kernel")); + end +endfunction + + diff --git a/modules/linear_algebra/macros/kroneck.bin b/modules/linear_algebra/macros/kroneck.bin Binary files differnew file mode 100755 index 000000000..d2dbe9440 --- /dev/null +++ b/modules/linear_algebra/macros/kroneck.bin diff --git a/modules/linear_algebra/macros/kroneck.sci b/modules/linear_algebra/macros/kroneck.sci new file mode 100755 index 000000000..472afb479 --- /dev/null +++ b/modules/linear_algebra/macros/kroneck.sci @@ -0,0 +1,67 @@ + +// 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 [Q,Z,Qd,Zd,numbeps,numbeta]=kroneck(E,A) + // Kronecker form: + // + // | sE(eps)-A(eps) | X | X | X | + // |----------------|----------------|------------|---------------| + // | O | sE(inf)-A(inf) | X | X | + // Q(sE-A)Z = |---------------------------------|----------------------------| + // | | | | | + // | 0 | 0 | sE(f)-A(f) | X | + // |--------------------------------------------------------------| + // | | | | | + // | 0 | 0 | 0 | sE(eta)-A(eta)| + // + // Ec=Q*E*Z, Ac=Q*A*Z, eps=Qd(1) x Zd(1) ,inf=Qd(2) x Zd(2) + // f = Qd(3) x Zd(3), eta=Qd(4)xZd(4) + // + // numbeps(1) = # of eps blocks of size 0 x 1 + // numbeps(2) = # of eps blocks of size 1 x 2 + // numbeps(3) = # of eps blocks of size 2 x 3 etc... + // + // numbeta(1) = # of eta blocks of size 1 x 0 + // numbeta(2) = # of eta blocks of size 2 x 1 + // numbeta(3) = # of eta blocks of size 3 x 2 etc... + // + // interface F.D. from Slicot-fstair + // T. Beelen's routines + [LHS,RHS]=argn(0); + if RHS==1 then [E,A]=pen2ea(E);end + [Q,Z,Ec,Ac,Qd,Zd,numbeps]=quaskro(E,A); + rows=Qd(1)+Qd(2)+1:Qd(1)+Qd(2)+Qd(3); + cols=Zd(1)+Zd(2)+1:Zd(1)+Zd(2)+Zd(3); + if cols==[] then + Zd(4)=Zd(3);Qd(4)=Qd(3);Qd(3)=0; + numbeta=Qd(4)-Zd(4); + return; + end; + if rows==[] then Qd(4)=0;Zd(4)=0;numbeta=0;return;end; + Er=Ec(rows,cols); + Ar=Ac(rows,cols); + E1=pertrans(Er); + A1=pertrans(Ar); + [Q2,Z2,Ec2,Ac2,Qd2,Zd2,numbeta]=quaskro(E1,A1); + // Here check that... + //Zd2(2)=0 Qd2(2)=0; + //Zd2(1)+Zd2(3)=Zd(3) + //Qd2(1)+Qd2(3)=Qd(3) + Z1=pertrans(Q2); + Q1=pertrans(Z2); + Zd1=[Qd2(3),Qd2(1)]; + Qd1=[Zd2(3),Zd2(1)]; + Zd=[Zd(1),Zd(2),Zd1]; + Qd=[Qd(1),Qd(2),Qd1]; + Z(:,cols)=Z(:,cols)*Z1; + Q(rows,:)=Q1*Q(rows,:); +endfunction + + diff --git a/modules/linear_algebra/macros/lib b/modules/linear_algebra/macros/lib Binary files differnew file mode 100755 index 000000000..7160a333c --- /dev/null +++ b/modules/linear_algebra/macros/lib diff --git a/modules/linear_algebra/macros/linsolve.bin b/modules/linear_algebra/macros/linsolve.bin Binary files differnew file mode 100755 index 000000000..031d88f81 --- /dev/null +++ b/modules/linear_algebra/macros/linsolve.bin diff --git a/modules/linear_algebra/macros/linsolve.sci b/modules/linear_algebra/macros/linsolve.sci new file mode 100755 index 000000000..1e9a11cf3 --- /dev/null +++ b/modules/linear_algebra/macros/linsolve.sci @@ -0,0 +1,77 @@ + +// 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 [x0,kerA]=linsolve(A,b,x0) + %tol=1.D-10; + // Finds all x solution to Ax+b=0; + // x0=particular solution; kerA=nullspace of A + // Any x=x0+kerA*w with arbitrary w solves A*x+b=0 + [LHS,RHS]=argn(0); + select type(A) + case 1 then //full matrix + Ab=[A,b];[ma,na]=size(Ab); + [W,rk]=colcomp(Ab); + W=W(:,1:na-rk);last=W(na,:); + [W2,rk1]=colcomp(last); + if rk1==0 then + warning(gettext("Conflicting linear constraints.")); + x0=[];kerA=[];return; + end + W=W*W2; + kerA=W(1:na-1,1:na-rk-1); + if RHS==3 then + if norm(A*x0+b,1)<%tol then + return; + end + disp(gettext("Recomputing initial guess")); + end + piv=W(na,na-rk);x0=W(1:na-1,na-rk)/piv; + case 5 then //sparse matrix + + [ma,na]=size(A); + %tol=1.D-10*max(abs(A))*max(ma,na); + if ma<na then + A=[A;sparse([],[],[na-ma,na])];b=[b;zeros(na-ma,1)];end + if ma>na then + //A=[A,sparse([],[],[ma,ma-na])];x0=[x0;zeros(ma-na,1)]; + b=A'*b;A=A'*A;ma=na; + end + [ptr,rkA]=lufact(A,[%tol,0.001]); + [P,L,U,Q]=luget(ptr); + if RHS==3 then + if norm(A*x0+b,1)>%tol then + x0=lusolve(ptr,-b); + disp("recomputing initial guess"); + end + end + if RHS==2 then + x0=lusolve(ptr,-b); + end + ludel(ptr); + U=clean(U); + [ptrU,rk]=lufact(U,[%tol,.001]); + nma=max(na,ma); + Y=[sparse([],[],[rkA,nma-rkA]);speye(nma-rkA,nma-rkA)]; + kerA=[]; + for k=1:na-rkA + bb=full(Y(:,k)); + ww=sparse(lusolve(ptrU,bb)); + kerA=[kerA,ww]; + end + if na<>rkA then + kerA=clean(Q'*kerA); + end + if norm(A*x0+b,1)>%tol then + warning(msprintf(gettext("Possible Conflicting linear constraints, error in the order of %s"),string(norm(A*x0+b,1)) )); + end + if ma>na then kerA=kerA(1:na,:);x0=x0(1:na,1);end + ludel(ptrU); + end +endfunction diff --git a/modules/linear_algebra/macros/names b/modules/linear_algebra/macros/names new file mode 100755 index 000000000..fdee597e3 --- /dev/null +++ b/modules/linear_algebra/macros/names @@ -0,0 +1,46 @@ +aff2ab +classmarkov +cmb_lin +coff +colcomp +companion +cond +diff +eigenmarkov +fullrf +fullrfk +genmarkov +givens +glever +gschur +gspec +householder +im_inv +kernel +kroneck +linsolve +nlev +orth +pbig +pen2ea +pencan +penlaur +pinv +polar +proj +projspec +psmall +quaskro +randpencil +range +rank +rowcomp +rowshuff +rref +spaninter +spanplus +spantwo +sqroot +squeeze +sva +trace diff --git a/modules/linear_algebra/macros/nlev.bin b/modules/linear_algebra/macros/nlev.bin Binary files differnew file mode 100755 index 000000000..5c6824cac --- /dev/null +++ b/modules/linear_algebra/macros/nlev.bin diff --git a/modules/linear_algebra/macros/nlev.sci b/modules/linear_algebra/macros/nlev.sci new file mode 100755 index 000000000..9a2fe3921 --- /dev/null +++ b/modules/linear_algebra/macros/nlev.sci @@ -0,0 +1,65 @@ + +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 1987-2008 - INRIA - Serge STEER <serge.steer@inria.fr> +// Copyright (C) 1987-2008 - INRIA - François DELEBECQUE +// +// 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[m,den]=nlev(a,z,rmax) + //[num,den]=nlev(a,z [,rmax]) calcule (z*eye-a)**(-1) par une version + //modifiee de l'algorithme de leverrier numeriquement plus stable. + // + //z chaine de caracteres donnant le nom de la variable formelle + //rmax parametre optionnel utilise pour bloc diagonaliser a (voir la + // fonction bdiag) + // + + rhs=argn(2); + if rhs < 2 then + error(msprintf(gettext("%s: Wrong number of input arguments: %d or %d expected.\n"),"nlev",2,3)); + end + + z=poly(0,z); + + if rhs==3 then + [a,x,bs]=bdiag(a,rmax), + else + [a,x,bs]=bdiag(a), + end + + [m1 n1]=size(a) + if m1<>n1 then + error(20,1); + end + k=1; + m=[]; + v=ones(1,n1); + den=1; + for n=bs';k1=k:k-1+n; + // algorithme de leverrier + h=z*eye(n,n)-a(k1,k1) + f=eye(n,n) + for kl=1:n-1, + b=h*f, + d=-sum(diag(b))/kl, + f=b+eye()*d, + end + d=sum(diag(h*f))/n + // + den=den*d; + l=[1:k-1,k+n:n1] , + if l<>[] then + v(l)=v(l)*d; + end + m=[m,x(:,k1)*f]; + k=k+n; + end; + m=m*diag(v)*inv(x); +endfunction + + + diff --git a/modules/linear_algebra/macros/orth.bin b/modules/linear_algebra/macros/orth.bin Binary files differnew file mode 100755 index 000000000..eb58dab1f --- /dev/null +++ b/modules/linear_algebra/macros/orth.bin diff --git a/modules/linear_algebra/macros/orth.sci b/modules/linear_algebra/macros/orth.sci new file mode 100755 index 000000000..9fd49fd40 --- /dev/null +++ b/modules/linear_algebra/macros/orth.sci @@ -0,0 +1,18 @@ + +// 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 [Q]=orth(A) + // Orthogonal basis for the span of A. + // Range(Q) = Range(A) and Q'*Q=eye + //! + [X,n]=rowcomp(A);X=X'; + Q=X(:,1:n); +endfunction + diff --git a/modules/linear_algebra/macros/pbig.bin b/modules/linear_algebra/macros/pbig.bin Binary files differnew file mode 100755 index 000000000..9ae7d96c3 --- /dev/null +++ b/modules/linear_algebra/macros/pbig.bin diff --git a/modules/linear_algebra/macros/pbig.sci b/modules/linear_algebra/macros/pbig.sci new file mode 100755 index 000000000..a9e78fca3 --- /dev/null +++ b/modules/linear_algebra/macros/pbig.sci @@ -0,0 +1,49 @@ + +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) ????-2008 - INRIA - François DELEBECQUE +// +// 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 [Q,M]=pbig(A,thres,flag) + //Projection on eigensubspace associated with eigenvalues + //with real part >= thres (flag='c') or with modulus >= thres (flag='d') + //Projection is defined by Q*M. Eigenvalues of M*A*Q = eigenvalues + //of A with real part >= thres (case 'c',...). + //If [Q1,M1]== full rank factorization (fullrf) of eye-Q*M then evals of + // M1*A*Q1 = evals of A with real part < thres (case 'c',...). + // See also psmall. + //! + + [n,n]=size(A); + thres=real(thres); + if flag=="c" then + deff("[flag]=%smallei(x)","flag=real(x) >= thres") + deff("[flag]=%bigeig(x)","flag=real(x) < thres") + elseif flag=="d" then + deff("[flag]=%smallei(x)","flag=abs(x) >= thres") + deff("[flag]=%bigeig(x)","flag=abs(x) < thres") + else + error(msprintf(gettext("%s: Wrong value for input argument #%d: Must be in the set {%s}.\n"),"pbig",3,"''c'',''d''")); + end + // + [X,dsmall] = schur(A,%smallei); + [Y,dbig] = schur(A,%bigeig); + Q=X(:,1:dsmall); + if Q==[] then M=[];return;end + Y1=Y'; + M1=Y1(dbig+1:n,:); + E=M1*Q; + if rcond(E)>1.d-7 then + M=E\M1; + else + [Ab,X0]=balanc(A); + [X,dsmall] = schur(Ab,%smallei);X1=X*X0;Q=X1(:,1:dsmall); + [Y,dbig] = schur(Ab,%bigeig);Y1=inv(X0)*Y';M=Y1(dbig+1:n,:); + E=M*Q; + M=E\M; + end +endfunction diff --git a/modules/linear_algebra/macros/pen2ea.bin b/modules/linear_algebra/macros/pen2ea.bin Binary files differnew file mode 100755 index 000000000..a4bf4499e --- /dev/null +++ b/modules/linear_algebra/macros/pen2ea.bin diff --git a/modules/linear_algebra/macros/pen2ea.sci b/modules/linear_algebra/macros/pen2ea.sci new file mode 100755 index 000000000..17dbf0ede --- /dev/null +++ b/modules/linear_algebra/macros/pen2ea.sci @@ -0,0 +1,14 @@ + +// 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 [e,a]=pen2ea(f) + e=coeff(f,1); + a=-coeff(f,0); +endfunction diff --git a/modules/linear_algebra/macros/pencan.bin b/modules/linear_algebra/macros/pencan.bin Binary files differnew file mode 100755 index 000000000..0431f3dc5 --- /dev/null +++ b/modules/linear_algebra/macros/pencan.bin diff --git a/modules/linear_algebra/macros/pencan.sci b/modules/linear_algebra/macros/pencan.sci new file mode 100755 index 000000000..77b551000 --- /dev/null +++ b/modules/linear_algebra/macros/pencan.sci @@ -0,0 +1,30 @@ + +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) ????-2008 - INRIA - François DELEBECQUE +// +// 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 [Q,M,i1]=pencan(E,A) + // [Q,M,i1]=pencan(E,A) + // Given the pencil s*E-A pencan returns matrices Q and M + // such than M*(s*E-A)*Q is in "canonical" form i.e. + // M*E*Q is a block matrix [I,0; + // 0,N] with N nilpotent + // and i1 = size of the I matrix above (# of finite zeros of (sE-A)). + // M*A*Q is a block matrix [Ar,0; + // 0,I ] + //See glever, penlaur + //! + [LHS,RHS]=argn(0); + if RHS==1 then [E,A]=pen2ea(E);end + [Si,Pi,Di,index]=penlaur(E,A); + [Q1,M1]=fullrf(Si); + [Q2,M2]=fullrf(Pi); + [i1,i2]=size(M1); + M=[M1;M2]; + Q=[Q1,Q2]; +endfunction diff --git a/modules/linear_algebra/macros/penlaur.bin b/modules/linear_algebra/macros/penlaur.bin Binary files differnew file mode 100755 index 000000000..9d24cf952 --- /dev/null +++ b/modules/linear_algebra/macros/penlaur.bin diff --git a/modules/linear_algebra/macros/penlaur.sci b/modules/linear_algebra/macros/penlaur.sci new file mode 100755 index 000000000..27d57d372 --- /dev/null +++ b/modules/linear_algebra/macros/penlaur.sci @@ -0,0 +1,43 @@ + +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 1988-2008 - INRIA - François DELEBECQUE +// +// 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 [Si,Pi,Di,order]=penlaur(E,A) + //[Si,Pi,Di,order]=penlaur(E,A) + // First Laurent coefficients of (s*E-A)^-1; + // (s*E-A)^-1 = ... + Si/s - (Pi + s*Di + ... +s^order Ni) at s = infinity + // order = order of the singularity + // The matrix s*E-A should be invertible. + // Experimental version: troubles when bad conditioning of + // (so*E-A)...) + //! + [LHS,RHS]=argn(0); + if RHS==1 then [E,A]=pen2ea(E);end + seed=rand("seed");typ=rand("info"); + rand("normal");rand("seed",0); + tests=rand(1,10); + conditions=0*tests;k=1; + for s0=tests, conditions(k)=cond(s0*E-A);k=k+1;end + [w,k1]=min(conditions); + rand(typ);rand("seed",seed) + if w>1.d+20 then + error(msprintf(gettext("%s: Singular pencil."),"penlaur")); + return; + end + s0=tests(k1); + J=inv(s0*E-A); + [Se,Pe,De,i1]=projspec(J*E); + [Sa,Pa,Da,i2]=projspec(J*A); + order=i1-1; + Si=Se*J; + Pi=Pe*Sa*J; + Di=Pi*E*Pi; + if order==0 then Di=0*Di;end + //[S,P,D,index]=projspec(Di*E); +endfunction diff --git a/modules/linear_algebra/macros/pinv.bin b/modules/linear_algebra/macros/pinv.bin Binary files differnew file mode 100755 index 000000000..81b456f14 --- /dev/null +++ b/modules/linear_algebra/macros/pinv.bin diff --git a/modules/linear_algebra/macros/pinv.sci b/modules/linear_algebra/macros/pinv.sci new file mode 100755 index 000000000..056ad2f66 --- /dev/null +++ b/modules/linear_algebra/macros/pinv.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 X=pinv(A,tol) + //Pseudo inverse + if type(A)==1 then + if A==[] then X=[],return,end + + [U,S,V] = svd(A,"e"); + S = diag(S) + if argn(2) < 2 + tol = max(size(A)) * S(1) * %eps; + end + r=size(find(S>tol),"*") //Rank + if r == 0 then + X = zeros(A'); + else + //X=V1*inv(S1)*U1' + X = V(:,1:r)* diag(ones(r,1)./S(1:r)) *U(:,1:r)'; + end + else + [t,n]=typename();n=stripblanks(n(find(t==type(A)))) + fun="%"+n+"_pinv" + if exists(fun)==1 then + if argn(2)==1 then + execstr("X="+fun+"(A)") + else + execstr("X="+fun+"(A,tol)") + end + else + error(msprintf(gettext("%s: Function not defined for type ''%s''. Check argument or define function %s."),"pinv",n,fun)); + end + end +endfunction + diff --git a/modules/linear_algebra/macros/polar.bin b/modules/linear_algebra/macros/polar.bin Binary files differnew file mode 100755 index 000000000..228b528e1 --- /dev/null +++ b/modules/linear_algebra/macros/polar.bin diff --git a/modules/linear_algebra/macros/polar.sci b/modules/linear_algebra/macros/polar.sci new file mode 100755 index 000000000..0d416625a --- /dev/null +++ b/modules/linear_algebra/macros/polar.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 [ro,teta]=polar(a); + //[ro,Teta]=polar(A); + // Polar form of A + // A=Ro*exp(%i*Teta) Ro symmetric >=0 + // Teta hermitian >=0 + //F.D. + //! + [U,s,V]=svd(a); + ro1=U*sqrt(s); + ro=ro1*ro1'; + W=U*V'; + // A = Ro*W (Ro sdp ; W unit) + // W=exp(%i*Teta) + // + [ab,x,bs]=bdiag(W+0*%i*W); + z=log(diag(ab)); + lw=x*diag(z)*inv(x); + teta=-%i*lw; +endfunction diff --git a/modules/linear_algebra/macros/proj.bin b/modules/linear_algebra/macros/proj.bin Binary files differnew file mode 100755 index 000000000..aff7c53d2 --- /dev/null +++ b/modules/linear_algebra/macros/proj.bin diff --git a/modules/linear_algebra/macros/proj.sci b/modules/linear_algebra/macros/proj.sci new file mode 100755 index 000000000..ccb93f635 --- /dev/null +++ b/modules/linear_algebra/macros/proj.sci @@ -0,0 +1,19 @@ + +// 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]=proj(x1,x2) + //[y]=proj(x1,x2) projection on x2 parallel to x1 + //F.D. + //! + [l,k]=size(x1); + [w,n]=rowcomp(x1);w1=w(:,1:n); + x1t=w(n+1:l,:); + y=x2/(x1t*x2)*x1t +endfunction diff --git a/modules/linear_algebra/macros/projspec.bin b/modules/linear_algebra/macros/projspec.bin Binary files differnew file mode 100755 index 000000000..424f4573e --- /dev/null +++ b/modules/linear_algebra/macros/projspec.bin diff --git a/modules/linear_algebra/macros/projspec.sci b/modules/linear_algebra/macros/projspec.sci new file mode 100755 index 000000000..f3080787c --- /dev/null +++ b/modules/linear_algebra/macros/projspec.sci @@ -0,0 +1,61 @@ + +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) ????-2008 - INRIA - François DELEBECQUE +// +// 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,P,D,index]=projspec(A,tol) + //[S,P,D,index]=projspec(A) + //Spectral characteristics of A at 0 + //S = reduced resolvent at 0 (S=-Drazin_inverse(A)) + //P = spectral projection at 0 + //D = Nilpotent operator at 0 + //index = index of the 0 eigenvalue + //! + [LHS,RHS]=argn(0) + [n,n]=size(A); + if RHS==1 then tol=1.d-6;end; + // A=0 ? + if norm(A,1) < %eps*n*n + P=eye(A),D=A,S=0*P;index=1; + end + // nonsingular A: index 0 + if rcond(A) > tol + S=inv(A),P=0*eye(A);D=P;index=0;return; + end; + //write(%io(2),' rank A^k rcond') + // index 1 + index=1; + [B,C,dim]=fullrf(A); + if dim==0 + P=eye(n,n);S=0*P;D=A;return + end; + Ck=C;Bk=B;//write(%io(2),[dim,rcond(C*B)],'(7x,f3.0,6x,e9.3)'); + tst=rcond(Ck*Bk); + if size(Ck,1)==1 then tst=norm(Ck*Bk,1);end + if tst > tol then + M=inv(C*B);P=eye(A)-B*M*C;S=B*M*M*C;D=0*A;return + end + // Higher index + for k=2:n + [B,C,dim]=fullrf(C*B); + if dim==0 + P=eye(n,n);S=0*P;D=A;index=k;return; + end; + Bk=Bk*B;Ck=C*Ck; // Bk*Ck = A^k (Full rank factorization) + index=k; + //write(%io(2),[dim,rcond(C*B)],'(7x,f3.0,6x,e9.3)'); + if norm(C*B)*rcond(C*B) > tol, + M=inv((C*B)**index); // M=inv(Ck*Bk); (Alternative computation) + P=eye(n,n)-Bk*M*Ck; // P=eye(n,n)-Bk*inv(Ck*Bk)*Ck; + S=Bk*M*inv(C*B)*Ck; // S=inv(A-P-D)+P + D=0.5*(A*P+P*A);return; + end + end; + P=eye(n,n);S=0*P;D=A;index=k;return; +endfunction + diff --git a/modules/linear_algebra/macros/psmall.bin b/modules/linear_algebra/macros/psmall.bin Binary files differnew file mode 100755 index 000000000..a48865079 --- /dev/null +++ b/modules/linear_algebra/macros/psmall.bin diff --git a/modules/linear_algebra/macros/psmall.sci b/modules/linear_algebra/macros/psmall.sci new file mode 100755 index 000000000..1002dee0f --- /dev/null +++ b/modules/linear_algebra/macros/psmall.sci @@ -0,0 +1,50 @@ + +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) ????-2008 - INRIA - François DELEBECQUE +// +// 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 [Q,M]=psmall(A,thres,flag) + // [Q,M]=psmall(A,thres,flag) + //Projection on eigensubspace associated with eigenvalues + //with real part < thres (case flag='c') or with modulus <thres (flag='d') + //Projection is defined by Q*M. Eigenvalues of M*A*Q = eigenvalues + //of A with real part < thres (case flag='c',...). + //If [Q1,M1]== full rank factorization (fullrf) of eye-Q*M then evals of + // M1*A*Q1 =evals of A with real part >= thres (case flag='d',...). + // See also pbig + //! + [n,n]=size(A); + thres=real(thres); + if flag=="c" then + deff("[flag]=%smallei(x)","flag=real(x) < thres") + deff("[flag]=%bigeig(x)","flag=real(x) >= thres") + + elseif flag=="d" then + deff("[flag]=%smallei(x)","flag=abs(x) < thres") + deff("[flag]=%bigeig(x)","flag=abs(x) >= thres") + else + error(msprintf(gettext("%s: Wrong value for input argument #%d: Must be in the set {%s}.\n"),"psmall",3,"''c'',''d''")); + end + // + [X,dsmall] = schur(A,%smallei); + [Y,dbig] = schur(A,%bigeig); + Q=X(:,1:dsmall); + if Q==[] then M=[];return;end + Y1=Y'; + M1=Y1(dbig+1:n,:); + E=M1*Q; + if rcond(E)>1.d-6 then + M=E\M1; + else + [Ab,X0]=balanc(A); + [X,dsmall] = schur(Ab,%smallei);X1=X*X0;Q=X1(:,1:dsmall); + [Y,dbig] = schur(Ab,%bigeig);Y1=inv(X0)*Y';M=Y1(dbig+1:n,:); + E=M*Q; + M=E\M; + end +endfunction diff --git a/modules/linear_algebra/macros/quaskro.bin b/modules/linear_algebra/macros/quaskro.bin Binary files differnew file mode 100755 index 000000000..7419b9a37 --- /dev/null +++ b/modules/linear_algebra/macros/quaskro.bin diff --git a/modules/linear_algebra/macros/quaskro.sci b/modules/linear_algebra/macros/quaskro.sci new file mode 100755 index 000000000..8a7417c7c --- /dev/null +++ b/modules/linear_algebra/macros/quaskro.sci @@ -0,0 +1,52 @@ + +// 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 [Q,Z,Ec,Ac,Qd,Zd,numbeps]=quaskro(E,A,tol) + // quasi- Kronecker form: s*Ec - Ac = Q*(sE-A)*Z + // + // | sE(eps)-A(eps) | X | X | + // |----------------|----------------|------------| + // | O | sE(inf)-A(inf) | X | + // Q(sE-A)Z = |=================================|============| + // | | | + // | O | sE(r)-A(r) | + // + // Ec=Q*E*Z, Ac=Q*A*Z, eps=Qd(1) x Zd(1) ,inf=Qd(2) x Zd(2) + // r = Qd(3) x Zd(3) + // numbeps(1) = # of eps blocks of size 0 x 1 + // numbeps(2) = # of eps blocks of size 1 x 2 + // numbeps(3) = # of eps blocks of size 2 x 3 etc... + // interface from Slicot-fstair (F.D.) + // T. Beelen's routines + //! + [LHS,RHS]=argn(0); + if RHS==1 then [E,A]=pen2ea(E);tol=1.d-10;end + if RHS==2 then + if type(E)==2 then [E,A]=pen2ea(E);end //quaskro(pencil,tol) + if type(E)==1 then tol=1.d-10;end //quaskro(E,A); + end + [na,ma]=size(A); + Q=eye(na,na);Z=eye(ma,ma); + if E~=[] then nE=norm(E,1);else nE=0;end + [E,Q,Z,stair,rk]=ereduc(E,1000*%eps+tol*nE) + A=Q*A*Z; + + if A~=[] then + tol=tol*max([norm(A,"fro"),norm(E,"fro")])+10*tol; + else + tol=0 + end + [Ac,Ec,Q,Z,nlbcks,muk,nuk,muk0,nuk0,mnei]=fstair(A,E,Q,Z,stair,rk,tol) + numbeps=muk0(1:nlbcks)-nuk0(1:nlbcks); + Qd=[mnei(1),mnei(3),na-mnei(1)-mnei(3)]; + Zd=[mnei(2),mnei(3),ma-mnei(2)-mnei(3)]; + +endfunction diff --git a/modules/linear_algebra/macros/randpencil.bin b/modules/linear_algebra/macros/randpencil.bin Binary files differnew file mode 100755 index 000000000..08d3d1a4b --- /dev/null +++ b/modules/linear_algebra/macros/randpencil.bin diff --git a/modules/linear_algebra/macros/randpencil.sci b/modules/linear_algebra/macros/randpencil.sci new file mode 100755 index 000000000..28d01d1c2 --- /dev/null +++ b/modules/linear_algebra/macros/randpencil.sci @@ -0,0 +1,95 @@ + +// 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=randpencil(eps,infi,fin,eta) + //returns a random pencil with given kronecker structure + //eps=[eps1,...,epsk]; epsilon blocks (size eps1x(eps1+1),....) + //fin=[l1,...,ln] finite eigenvalues (assumed real) (possibly []) + //infi=[k1,...,kp] size of J blocks, ki>=1 (infi=[] if no J blocks) + //eta=[eta1,...,etap]; eta blocks size (eta1+1)xeta1,...) + // epsi's should be >=0 + // etai's should be >=0 + // infi's should be >=1 + // If called with eps=[0,...,0], infi=[], fin=[], eta=[] + // randpencil returns F=[]; + // this should be an empty matrix with zero rows and coldim(eps) columns + // If called with eps=[], infi=[], fin=[], eta=[0,..,0] + // randpencil returns F=[]; + // this should be an empty matrix with coldim(eta) rows and 0 columns. + // (bad behavior of the empty matrix!!!!!) + + [LHS,RHS]=argn(0); + if RHS<>4 then + error(msprintf(gettext("%s: Wrong number of input argument(s): %d expected.\n"),"randpencil",4)); + end + select type(fin) + case 1 + if diag(fin)<>[] then Fin=%s*eye()-diag(fin);else Fin=[];end + case 2 + Fin=%s*eye()-companion(fin); + end + deff("j=%jdrn(n)","j=zeros(n,n);for k=1:n-1;j(k,k+1)=1;end") + deff("Lk=%eta(k)","Lk=zeros(k+1,k);if k==0 then return;end;for j=1:k;Lk(j,j)=%s;Lk(j+1,j)=-1;end"); + deff("Lk=%epsilon(k)","Lk=zeros(k,k+1);if k==0 then return;end;for j=1:k;Lk(j,j)=%s;Lk(j,j+1)=-1;end"); + + J=[]; + for kk=infi; + J=sysdiag(J,%jdrn(kk)); + end + if J==[] then Infin=[],else Infin=%s*J-eye();end + + flageps=%f; + Eps=[]; + seps=gsort(eps); + if seps(1)==0 then flageps=%t;end + if ~flageps then + for k=seps; + if k==0 then [p,q]=size(Eps); Eps=[Eps,zeros(p,1)];end + if k<>0 then Eps=sysdiag(Eps,%epsilon(k));end + end + end + + flageta=%f; + Eta=[]; + seta=gsort(eta); + if seta(1)==0 then flageta=%t;end + if ~flageta then + for k=seta; + if k==0 then [p,q]=size(Eta); Eta=[Eta;zeros(1,q)];end + if k<>0 then Eta=sysdiag(Eta,%eta(k));end + end + end + + F=sysdiag(Eps,Infin,Fin,Eta); + + [p,q]=size(F);ncols=q; + + if flageps then + F=[zeros(p,prod(size(eps))),F]; + if F==[] then ncols=prod(size(eps));end + end + + if flageta then + [p,q]=size(F); + if F~=[] then + F=[F;zeros(prod(size(eta)),q)]; + else + F=[F;zeros(prod(size(eta)),ncols)]; + end + end + // This can be uncommented for a seemingly more random pencil! + //[p,q]=size(F); + //rand('seed',0); + //rand('normal') + //Q=rand(p,p); + //Z=rand(q,q); + //F=Q*F*Z; +endfunction + diff --git a/modules/linear_algebra/macros/range.bin b/modules/linear_algebra/macros/range.bin Binary files differnew file mode 100755 index 000000000..69ce81568 --- /dev/null +++ b/modules/linear_algebra/macros/range.bin diff --git a/modules/linear_algebra/macros/range.sci b/modules/linear_algebra/macros/range.sci new file mode 100755 index 000000000..ed45a765b --- /dev/null +++ b/modules/linear_algebra/macros/range.sci @@ -0,0 +1,34 @@ + +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) ????-2008 - INRIA - François DELEBECQUE +// +// 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,dim]=range(A,k) + // Computation of Range A^k ; the first dim rows of X span the + // range of A^k. + //! + if argn(2)==1 then k=1,end + k=double(k) + if int(k)<>k|k<0 then + error(msprintf(gettext("%s: Wrong value for input argument #%d: Non-negative integer expected.\n"),"range",2)); + end + if size(A,1)<>size(A,2)|~isreal(A) then + error(msprintf(gettext("%s: Wrong size for input argument #%d: A square matrix expected.\n"),"range",1)); + end + + if k==0 then + dim=size(A,1);X=eye(A); + else + [U,dim]=rowcomp(A);X=U; + for l=2:k + A=A*U'; + [U,dim]=rowcomp(A(:,1:dim)); + X=U*X; + end; + end +endfunction diff --git a/modules/linear_algebra/macros/rank.bin b/modules/linear_algebra/macros/rank.bin Binary files differnew file mode 100755 index 000000000..a0c915c24 --- /dev/null +++ b/modules/linear_algebra/macros/rank.bin diff --git a/modules/linear_algebra/macros/rank.sci b/modules/linear_algebra/macros/rank.sci new file mode 100755 index 000000000..9de89b22c --- /dev/null +++ b/modules/linear_algebra/macros/rank.sci @@ -0,0 +1,33 @@ + +// 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=rank(A,tol) + //Matrix rank + if type(A)==1 then + if A==[] then r=0;return,end + s = svd(A); + if argn(2) == 1 then + tol = max(size(A)) * s(1) * %eps; + end + r = size(find(s > tol),"*"); + else + [t,n]=typename();n=stripblanks(n(find(t==type(A)))) + fun="%"+n+"_rank" + if exists(fun)==1 then + if argn(2)==1 then + execstr("r="+fun+"(A)") + else + execstr("r="+fun+"(A,tol)") + end + else + error(msprintf(gettext("%s: Function not defined for type ''%s''. Check argument or define function %s."),"rank",n,fun)); + end + end +endfunction diff --git a/modules/linear_algebra/macros/rowcomp.bin b/modules/linear_algebra/macros/rowcomp.bin Binary files differnew file mode 100755 index 000000000..42e1d1578 --- /dev/null +++ b/modules/linear_algebra/macros/rowcomp.bin diff --git a/modules/linear_algebra/macros/rowcomp.sci b/modules/linear_algebra/macros/rowcomp.sci new file mode 100755 index 000000000..d3292f263 --- /dev/null +++ b/modules/linear_algebra/macros/rowcomp.sci @@ -0,0 +1,46 @@ + +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 1987-2008 - INRIA - François DELEBECQUE +// +// 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 [w,rk]=rowcomp(A,flag,tol) + //Row compression of A <--> computation of im(A) + //flag and tol are optional parameters + //flag='qr' or 'svd' (default 'svd') + //tol tolerance parameter (sqrt(%eps)*norm(A,1) as default value) + //the rk first (top) rows of w span the row range of a + //the rk first columns of w' span the image of a + + if A==[] then w=[];rk=0;return;end + + [ma,na]=size(A) + rhs=argn(2) + + if norm(A,1) < sqrt(%eps)/10 then rk=0,w=eye(ma,ma),return;end + + select rhs + case 1 then// default values for flag and tol + flag="svd",tol=sqrt(%eps)*norm(A,1); + case 2 then //default value for tol + tol=sqrt(%eps)*norm(A,1) + else + if size(tol,"*")>1|~isreal(tol)|tol<0 then + error(msprintf(gettext("%s: Wrong values for input argument #%d: Non-negative scalar expected.\n"),"rowcomp",3)); + end + end + select flag + case "qr" then + [q,r,rk,e]=qr(A,tol);w=q'; + case "svd" then + [u,s,v,rk]=svd(A,tol);w=u' ; + else + error(msprintf(gettext("%s: Wrong value for input argument #%d: Must be in the set {%s}.\n"),"rowcomp",2,"''qr'',''svd''")); + end +endfunction + + diff --git a/modules/linear_algebra/macros/rowshuff.bin b/modules/linear_algebra/macros/rowshuff.bin Binary files differnew file mode 100755 index 000000000..39adf82a6 --- /dev/null +++ b/modules/linear_algebra/macros/rowshuff.bin diff --git a/modules/linear_algebra/macros/rowshuff.sci b/modules/linear_algebra/macros/rowshuff.sci new file mode 100755 index 000000000..42dabd9fd --- /dev/null +++ b/modules/linear_algebra/macros/rowshuff.sci @@ -0,0 +1,50 @@ + +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2008 - INRIA - François DELEBECQUE +// +// 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 [Ws,Fs1]=rowshuff(Fs,alfa) + // Shuffle algorithm: Given the pencil Fs=s*E-A, returns Ws=W(s) + // (square polynomial matrix) such that: + // Fs1 = s*E1-A1 = W(s)*(s*E-A) is a pencil with non singular E1 matrix. + // This is possible iff the pencil Fs = s*E-A is regular (i.e. invertible). + // The poles @ infinity of Fs are put to alfa and the zeros of Ws are @ alfa. + // Note that (s*E-A)^-1 = (s*E1-A1)^-1 * W(s) = (W(s)*(s*E-A))^-1 *W(s) + + [LHS,RHS]=argn(0); + if RHS==1 then + alfa=0; + end + [E,A]=pen2ea(Fs); + // E is non singular: --> exit + if rcond(E) >= 1.d-5 then W=eye(E);Fs1=Fs;return;end + // E is singular: + s=poly(0,"s");tol=1.d-10*(norm(E,1)+norm(A,1)); + [n,n]=size(E);Ws=eye(n,n); + // + rk=0;i=0; + while rk < n + if i==n then + error(msprintf(gettext("%s: Singular pencil."),"rowshuffle")); + W=[]; + end + [W,rk]=rowcomp(E); + if rk==n then return;end + W1=W(1:rk,:);W2=W(rk+1:n,:); + E=[W1*E; + -W2*A]; + A=[W1*A; + -alfa*W2*A]; + Fs1=s*E-A; + // Update + Ws=[eye(rk,rk),zeros(rk,n-rk); + zeros(n-rk,rk),(s-alfa)*eye(n-rk,n-rk)]*W*Ws; + i=i+1; + end +endfunction + diff --git a/modules/linear_algebra/macros/rref.bin b/modules/linear_algebra/macros/rref.bin Binary files differnew file mode 100755 index 000000000..efe0eea80 --- /dev/null +++ b/modules/linear_algebra/macros/rref.bin diff --git a/modules/linear_algebra/macros/rref.sci b/modules/linear_algebra/macros/rref.sci new file mode 100755 index 000000000..dc9bef402 --- /dev/null +++ b/modules/linear_algebra/macros/rref.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 [A,jb]=rref(A,tol) + //R = rref(A) produces the reduced row echelon form of A. + if argn(2)<2 then + tol=2*%eps*norm(A,"inf")*max(size(A)) + end + + if type(A)==1 then + if A==[] then R=[],return,end + [m,n]=size(A) + k = 1;l = 1;jb = []; + while (k <= m) & (l <= n) + // Find value and index of largest element in the remainder of column l. + [p,i] = max(abs(A(k:$,l))); i = i+k-1; + if (p <= tol) // The column is negligible + A(k:$,l) = zeros(m-k+1,1); + l = l + 1; + else + jb = [jb, l]; // Remember column index + A([k,i],l:$) = A([i,k],l:$); //swap rows i and j + A(k,l:$) = A(k,l:$)/A(k,l); // Normalize the pivot row + + i = [1:k-1 k+1:m]; //other rows + A(i,l:$) = A(i,l:$) - A(i,l)*A(k,l:$); //eliminate + k = k + 1;l = l + 1; + end + end + else + [t,n]=typename();n=stripblanks(n(find(t==type(A)))) + fun="%"+n+"_rref" + if exists(fun)==1 then + execstr("[A,jb]="+fun+"(A)") + else + error(msprintf(gettext("%s: Function not defined for type ''%s''. Check argument or define function %s."),"rref",n,fun)); + end + end +endfunction diff --git a/modules/linear_algebra/macros/spaninter.bin b/modules/linear_algebra/macros/spaninter.bin Binary files differnew file mode 100755 index 000000000..81d2f4737 --- /dev/null +++ b/modules/linear_algebra/macros/spaninter.bin diff --git a/modules/linear_algebra/macros/spaninter.sci b/modules/linear_algebra/macros/spaninter.sci new file mode 100755 index 000000000..e181e4a05 --- /dev/null +++ b/modules/linear_algebra/macros/spaninter.sci @@ -0,0 +1,52 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) ????-2008 - INRIA - François DELEBECQUE +// +// 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,dim]=spaninter(a,b,tol) + //[X,dim]=spaninter(a,b [,tol]) computes intersection of Range(A) + // and Range(B) + // + // x(:,1:dim) is an orthogonal basis for A inter B. + // In the X basis A and B are respectively: + // X'*A and X'*B. + // dim dimension of subspace A inter B. + // tol threshold (sqrt(%eps) is the default value). + + [lhs,rhs]=argn(0); + [na,ma]=size(a);[nb,mb]=size(b); + if ma*na==0 then dim=0;x=eye(nb,nb);return;end + if mb*nb==0 then dim=0;x=eye(na,na);return;end + if rhs==2 then tol=sqrt(%eps);end + if na <> nb then + error(msprintf(gettext("%s: Incompatible input arguments #%d and #%d: Same sizes expected.\n"),"spaninter",1,2)); + end + if mb > ma then [x,dim]=spaninter(b,a,tol),return,end + [xp,ra]=rowcomp(a);x=xp' + //test trivial cases : + //a surjective a inter b is b + if ra == na then [xp,dim]=rowcomp(b),x=xp',return,end + //a is zero + if ra == 0 then dim=0,return,end + b=xp*b; //update + + // b2=vectors in b whch are in a + up=1:ra;low=ra+1:na; + [v1,k2]=colcomp(b(low,:)); + b1=b*v1; //update + bup=b1(up,:);blow=b1(low,:) + if norm(blow,1) <= tol*norm(bup,1) then k2=0,end + k1=mb-k2; + if k1==0 then dim=0;return;end + b2=b1(:,1:k1); //intersection in base x + if norm(b2,1) < tol*norm(b,1)*mb*nb then dim=0,return,end + [u2p,dim]=rowcomp(b2(up,:)); + x(:,up)=x(:,up)*u2p' //update +endfunction + + + diff --git a/modules/linear_algebra/macros/spanplus.bin b/modules/linear_algebra/macros/spanplus.bin Binary files differnew file mode 100755 index 000000000..45e19018d --- /dev/null +++ b/modules/linear_algebra/macros/spanplus.bin diff --git a/modules/linear_algebra/macros/spanplus.sci b/modules/linear_algebra/macros/spanplus.sci new file mode 100755 index 000000000..2f2f33be6 --- /dev/null +++ b/modules/linear_algebra/macros/spanplus.sci @@ -0,0 +1,40 @@ + +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) ????-2008 - INRIA - François DELEBECQUE +// +// 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,dim,dima]=spanplus(a,b,tol) + //[X,dim,dima]=spanplus(A,B,tol) computes an orthogonal basis of + // a+b such that : the first dima columns of x span Range(A) + // and the following (dim-dima) columns make a basis of a+b + // relative to a. tol is an optional argument. + // The dim first columns of x make a basis for A+B. + //! + [na,ma]=size(a);[nb,mb]=size(b); + if na*ma==0 then + dima=0;[x,dim]=rowcomp(b);x=x';return; + end + if nb*mb==0 then [x,dima]=rowcomp(a);dim=dima;x=x';return;end + [lhs,rhs]=argn(0); + if rhs==2 then tol=%eps*na*nb*ma*mb;end + if na<>nb then + error(msprintf(gettext("%s: Incompatible input arguments #%d and #%d: Same sizes expected.\n"),"spanplus",1,2)); + end + [x,dima]=rowcomp(a); + b=x*b;x=x' //update b,x + if dima == na then dim=dima,return,end; + low=(dima+1):na; + blow=b(low,:); + if norm(blow,1) <= tol*norm(b,1),dim=dima,return,end + [u2,r2]=rowcomp(blow); + dim=dima+r2; + x(:,low)=x(:,low)*u2'; //update +endfunction + + + diff --git a/modules/linear_algebra/macros/spantwo.bin b/modules/linear_algebra/macros/spantwo.bin Binary files differnew file mode 100755 index 000000000..b2b50afba --- /dev/null +++ b/modules/linear_algebra/macros/spantwo.bin diff --git a/modules/linear_algebra/macros/spantwo.sci b/modules/linear_algebra/macros/spantwo.sci new file mode 100755 index 000000000..f52a36efb --- /dev/null +++ b/modules/linear_algebra/macros/spantwo.sci @@ -0,0 +1,48 @@ + +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) ????-2008 - INRIA - François DELEBECQUE +// +// 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 [Xp,dima,dimb,dim]=spantwo(A,B) + //Given two matrices A and B with same number of rows, + //returns a square matrix Xp (not necessarily orthogonal) + //such that : + // [*,0] (dim-dimb rows) + //Xp*[A,B]=[*,*] (dima+dimb-dim rows) + // [0,*] (dim-dima rows) + // [0,0] + //The dima first columns of inv(Xp) span range(A). + //Columns dim-dimb+1 to dima of inv(Xp) span the intesection of + //range(A) and range(B). + //The dim first columns of inv(Xp) span range(A)+range(B). + // Ex: A=[1,0,0,4; + // 5,6,7,8; + // 0,0,11,12; + // 0,0,0,16]; + //B=[1,2,0,0]';C=[4,0,0,1]; + //Sl=ss2ss(syslin('c',A,B,C),rand(A)); + //[no,X]=contr(Sl(2),Sl(3));CO=X(:,1:no); //Controllable part + //[uo,Y]=unobs(Sl(2),Sl(4));UO=Y(:,1:uo); //Unobservable part + //[Xp,dimc,dimu,dim]=spantwo(CO,UO); //Kalman decomposition + //Slcan=ss2ss(Sl,inv(Xp)); + + [X1,dim,dima]=spanplus(A,B);Xp=X1'; + B1B2B3=Xp*B;B1B2B3=B1B2B3(1:dim,:); + [W,dimb]=rowcomp(B1B2B3);W=W(dim:-1:1,:); + W11=W(1:dima,1:dima);W21=W(dima+1:dim,1:dima); + if rcond(W11)<1.d-10 then + // Which is better? + B1B2=B1B2B3(1:dima,:);[W,dimb0]=rowcomp(B1B2);W=W(dima:-1:1,:); + [n1,n2]=size(A); + Xp=sysdiag(W,eye(n1-dima,n1-dima))*Xp; + return; + end + Q=[eye(dima,dima),zeros(dima,dim-dima); + -W21*inv(W11),eye(dim-dima,dim-dima)]; + Xp(1:dim,:)=Q*W*Xp(1:dim,:); +endfunction diff --git a/modules/linear_algebra/macros/sqroot.bin b/modules/linear_algebra/macros/sqroot.bin Binary files differnew file mode 100755 index 000000000..c17947bd7 --- /dev/null +++ b/modules/linear_algebra/macros/sqroot.bin diff --git a/modules/linear_algebra/macros/sqroot.sci b/modules/linear_algebra/macros/sqroot.sci new file mode 100755 index 000000000..88a9253cf --- /dev/null +++ b/modules/linear_algebra/macros/sqroot.sci @@ -0,0 +1,24 @@ + +// 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]=sqroot(Q) + Q1=(Q+Q')/2; + if norm(Q1-Q,1) > 100*%eps then + warning(msprintf(gettext("%s: Wrong size for input argument #%d: Symmetric expected"),"sqroot",1)); + end + tt=min(spec(Q1)); + if tt <-10*%eps then + warning(msprintf(gettext("%s: Wrong value for input argument #%d: Not semi-definite positive"),"sqroot",1)); + end + if norm(Q,1) < sqrt(%eps) then S=[];return;end + [u,S,v,rk]=svd(Q); + S=v(:,1:rk)*sqrt(S(1:rk,1:rk)); + if norm(imag(Q1),1) <1.d-8 then S=real(S);;end +endfunction diff --git a/modules/linear_algebra/macros/squeeze.bin b/modules/linear_algebra/macros/squeeze.bin Binary files differnew file mode 100755 index 000000000..e4164b68a --- /dev/null +++ b/modules/linear_algebra/macros/squeeze.bin diff --git a/modules/linear_algebra/macros/squeeze.sci b/modules/linear_algebra/macros/squeeze.sci new file mode 100755 index 000000000..0a2114d9f --- /dev/null +++ b/modules/linear_algebra/macros/squeeze.sci @@ -0,0 +1,37 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2002-2007 - INRIA - Eric Dubois +// Copyright (C) 2007 - INRIA - Jean-Baptiste Silvy +// Copyright (C) 2011 - INRIA - Serge Steer (extension to Structs, Cells, +// 2D arrays of any types) +// +// 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 = squeeze(A) + + // PURPOSE: Remove singleton dimensions, that is any dimension + // for which the size of the input hypermatrix is 1; if the + // input is a matrix, it is unaffected + // ------------------------------------------------------------ + // INPUT: + // * A = a hypermatrix or a matrix + // ------------------------------------------------------------ + + if or(typeof(A)==["hypermat","ce","st"]) then + Dims=size(A) + newDims = Dims(Dims <> 1) ; + if size(newDims,"*") <2 then + A=A(:) + else + A=matrix(A,newDims) + end + elseif type(A)<=10 then + // it is a standard matrix nothing to do + else + error(msprintf(gettext("%s: Wrong type for input argument #%d.\n"),"squeeze",1)) + end + +endfunction diff --git a/modules/linear_algebra/macros/sva.bin b/modules/linear_algebra/macros/sva.bin Binary files differnew file mode 100755 index 000000000..de527bf20 --- /dev/null +++ b/modules/linear_algebra/macros/sva.bin diff --git a/modules/linear_algebra/macros/sva.sci b/modules/linear_algebra/macros/sva.sci new file mode 100755 index 000000000..98135b85a --- /dev/null +++ b/modules/linear_algebra/macros/sva.sci @@ -0,0 +1,32 @@ + +// 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 [U,S,V]=sva(A,tol) + // approximation de rang donne d'une matrice + if A==[] then U=[],S=[],V=[],return,end + [U,S,V]=svd(A,"e") + if argn(2)==1 then + tol = max(size(A)) * S(1) * %eps; + rk = size(find(diag(S) > tol),"*"); + else + if tol>1 then //rank given + rk=tol + if rk>min(size(A)) then + error(msprintf(gettext("%s: Wrong value for input argument #%d: Requested rank is greater than matrix dimension."),"sva",1)); + end + else + rk = size(find(diag(S) > tol),"*"); + end + end + U=U(:,1:rk);S=S(1:rk,1:rk),V=V(:,1:rk) +endfunction + + + diff --git a/modules/linear_algebra/macros/trace.bin b/modules/linear_algebra/macros/trace.bin Binary files differnew file mode 100755 index 000000000..1ae164f0f --- /dev/null +++ b/modules/linear_algebra/macros/trace.bin diff --git a/modules/linear_algebra/macros/trace.sci b/modules/linear_algebra/macros/trace.sci new file mode 100755 index 000000000..953502bc2 --- /dev/null +++ b/modules/linear_algebra/macros/trace.sci @@ -0,0 +1,56 @@ + +// 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 t=trace(a) + // trace - computes the trace of a matrix + select type(a) + case 1 then + [m,n]=size(a) + if m<>n then + error(msprintf(gettext("%s: Wrong size for input argument #%d: A square matrix expected.\n"),"trace",1)); + end + t=sum(diag(a)) + case 2 then + [m,n]=size(a) + if m<>n then + error(msprintf(gettext("%s: Wrong size for input argument #%d: A square matrix expected.\n"),"trace",1)); + end + t=sum(diag(a)) + //-compat next case retained for list /tlist compatibility + case 15 then + if a(1)=="r" then + [m,n]=size(a) + if m<>n then + error(msprintf(gettext("%s: Wrong size for input argument #%d: A square matrix expected.\n"),"trace",1)); + end + t=sum(diag(a)) + else + error(msprintf(gettext("%s: Wrong type for input argument #%d.\n"),"trace",1)); + end + case 16 then + if a(1)=="r" then + [m,n]=size(a) + if m<>n then + error(msprintf(gettext("%s: Wrong size for input argument #%d: A square matrix expected.\n"),"trace",1)); + end + t=sum(diag(a)) + else + error(msprintf(gettext("%s: Wrong type for input argument #%d.\n"),"trace",1)); + end + case 5 then + [m,n]=size(a) + if m<>n then + error(msprintf(gettext("%s: Wrong size for input argument #%d: A square matrix expected.\n"),"trace",1)); + end + t=sum(diag(a)) + else + error(msprintf(gettext("%s: Wrong type for input argument #%d.\n"),"trace",1)); + end +endfunction diff --git a/modules/linear_algebra/sci_gateway/c/.deps/.dirstamp b/modules/linear_algebra/sci_gateway/c/.deps/.dirstamp new file mode 100755 index 000000000..e69de29bb --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/.deps/.dirstamp diff --git a/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-assembleEigenvectors.Plo b/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-assembleEigenvectors.Plo new file mode 100755 index 000000000..b412e8847 --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-assembleEigenvectors.Plo @@ -0,0 +1,198 @@ +sci_gateway/c/libscilinear_algebra_la-assembleEigenvectors.lo: \ + sci_gateway/c/assembleEigenvectors.c /usr/include/stdc-predef.h \ + ../../modules/elementary_functions/includes/elementary_functions.h \ + ../../modules/core/includes/machine.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 /usr/include/values.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/float.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 + +/usr/include/stdc-predef.h: + +../../modules/elementary_functions/includes/elementary_functions.h: + +../../modules/core/includes/machine.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: + +/usr/include/values.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/float.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: diff --git a/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-gw_linear_algebra.Plo b/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-gw_linear_algebra.Plo new file mode 100755 index 000000000..67975ca7d --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-gw_linear_algebra.Plo @@ -0,0 +1,277 @@ +sci_gateway/c/libscilinear_algebra_la-gw_linear_algebra.lo: \ + sci_gateway/c/gw_linear_algebra.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/api_scilab/includes/api_scilab.h \ + ../../modules/core/includes/stack-c.h \ + ../../modules/core/includes/core_math.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h \ + /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h /usr/include/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 includes/gw_linear_algebra.h \ + includes/dynlib_linear_algebra.h ../../modules/core/includes/machine.h \ + ../../modules/core/includes/callFunctionFromGateway.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/api_scilab/includes/api_scilab.h: + +../../modules/core/includes/stack-c.h: + +../../modules/core/includes/core_math.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h: + +/usr/include/limits.h: + +/usr/include/x86_64-linux-gnu/bits/posix1_lim.h: + +/usr/include/x86_64-linux-gnu/bits/local_lim.h: + +/usr/include/linux/limits.h: + +/usr/include/x86_64-linux-gnu/bits/posix2_lim.h: + +/usr/include/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: + +includes/gw_linear_algebra.h: + +includes/dynlib_linear_algebra.h: + +../../modules/core/includes/machine.h: + +../../modules/core/includes/callFunctionFromGateway.h: diff --git a/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-gw_linear_algebra2.Plo b/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-gw_linear_algebra2.Plo new file mode 100755 index 000000000..7fe068e85 --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-gw_linear_algebra2.Plo @@ -0,0 +1,285 @@ +sci_gateway/c/libscilinear_algebra_la-gw_linear_algebra2.lo: \ + sci_gateway/c/gw_linear_algebra2.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_linear_algebra.h includes/dynlib_linear_algebra.h \ + ../../modules/core/includes/machine.h includes/gw_linear_algebra2.h \ + ../../modules/core/includes/callFunctionFromGateway.h \ + ../../modules/api_scilab/includes/api_scilab.h \ + ../../modules/core/includes/stack-c.h \ + ../../modules/core/includes/core_math.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h \ + /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h /usr/include/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 /usr/include/values.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/float.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: + +/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_linear_algebra.h: + +includes/dynlib_linear_algebra.h: + +../../modules/core/includes/machine.h: + +includes/gw_linear_algebra2.h: + +../../modules/core/includes/callFunctionFromGateway.h: + +../../modules/api_scilab/includes/api_scilab.h: + +../../modules/core/includes/stack-c.h: + +../../modules/core/includes/core_math.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h: + +/usr/include/limits.h: + +/usr/include/x86_64-linux-gnu/bits/posix1_lim.h: + +/usr/include/x86_64-linux-gnu/bits/local_lim.h: + +/usr/include/linux/limits.h: + +/usr/include/x86_64-linux-gnu/bits/posix2_lim.h: + +/usr/include/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: + +/usr/include/values.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/float.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/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-sci_backslash.Plo b/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-sci_backslash.Plo new file mode 100755 index 000000000..2bff1ef45 --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-sci_backslash.Plo @@ -0,0 +1,236 @@ +sci_gateway/c/libscilinear_algebra_la-sci_backslash.lo: \ + sci_gateway/c/sci_backslash.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 /usr/include/stdio.h \ + /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + ../../modules/core/includes/stack-c.h \ + ../../modules/core/includes/core_math.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h \ + /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h /usr/include/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 includes/gw_linear_algebra.h \ + includes/dynlib_linear_algebra.h ../../modules/core/includes/machine.h \ + ../../modules/output_stream/includes/Scierror.h \ + ../../modules/output_stream/includes/do_error_number.h \ + ../../modules/localization/includes/localization.h \ + /usr/include/libintl.h /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.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: + +/usr/include/stdio.h: + +/usr/include/libio.h: + +/usr/include/_G_config.h: + +/usr/include/wchar.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: + +../../modules/core/includes/stack-c.h: + +../../modules/core/includes/core_math.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h: + +/usr/include/limits.h: + +/usr/include/x86_64-linux-gnu/bits/posix1_lim.h: + +/usr/include/x86_64-linux-gnu/bits/local_lim.h: + +/usr/include/linux/limits.h: + +/usr/include/x86_64-linux-gnu/bits/posix2_lim.h: + +/usr/include/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: + +includes/gw_linear_algebra.h: + +includes/dynlib_linear_algebra.h: + +../../modules/core/includes/machine.h: + +../../modules/output_stream/includes/Scierror.h: + +../../modules/output_stream/includes/do_error_number.h: + +../../modules/localization/includes/localization.h: + +/usr/include/libintl.h: + +/usr/include/locale.h: + +/usr/include/x86_64-linux-gnu/bits/locale.h: diff --git a/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-sci_balanc.Plo b/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-sci_balanc.Plo new file mode 100755 index 000000000..ba5439c49 --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-sci_balanc.Plo @@ -0,0 +1,236 @@ +sci_gateway/c/libscilinear_algebra_la-sci_balanc.lo: \ + sci_gateway/c/sci_balanc.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 /usr/include/stdio.h \ + /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + ../../modules/core/includes/stack-c.h \ + ../../modules/core/includes/core_math.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h \ + /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h /usr/include/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 includes/gw_linear_algebra.h \ + includes/dynlib_linear_algebra.h ../../modules/core/includes/machine.h \ + ../../modules/output_stream/includes/Scierror.h \ + ../../modules/output_stream/includes/do_error_number.h \ + ../../modules/localization/includes/localization.h \ + /usr/include/libintl.h /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.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: + +/usr/include/stdio.h: + +/usr/include/libio.h: + +/usr/include/_G_config.h: + +/usr/include/wchar.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: + +../../modules/core/includes/stack-c.h: + +../../modules/core/includes/core_math.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h: + +/usr/include/limits.h: + +/usr/include/x86_64-linux-gnu/bits/posix1_lim.h: + +/usr/include/x86_64-linux-gnu/bits/local_lim.h: + +/usr/include/linux/limits.h: + +/usr/include/x86_64-linux-gnu/bits/posix2_lim.h: + +/usr/include/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: + +includes/gw_linear_algebra.h: + +includes/dynlib_linear_algebra.h: + +../../modules/core/includes/machine.h: + +../../modules/output_stream/includes/Scierror.h: + +../../modules/output_stream/includes/do_error_number.h: + +../../modules/localization/includes/localization.h: + +/usr/include/libintl.h: + +/usr/include/locale.h: + +/usr/include/x86_64-linux-gnu/bits/locale.h: diff --git a/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-sci_bdiag.Plo b/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-sci_bdiag.Plo new file mode 100755 index 000000000..247b808ca --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-sci_bdiag.Plo @@ -0,0 +1,214 @@ +sci_gateway/c/libscilinear_algebra_la-sci_bdiag.lo: \ + sci_gateway/c/sci_bdiag.c /usr/include/stdc-predef.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 includes/gw_linear_algebra.h \ + includes/dynlib_linear_algebra.h ../../modules/core/includes/machine.h \ + ../../modules/output_stream/includes/Scierror.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \ + ../../modules/output_stream/includes/do_error_number.h \ + ../../modules/localization/includes/localization.h \ + /usr/include/libintl.h /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h + +/usr/include/stdc-predef.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: + +includes/gw_linear_algebra.h: + +includes/dynlib_linear_algebra.h: + +../../modules/core/includes/machine.h: + +../../modules/output_stream/includes/Scierror.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h: + +../../modules/output_stream/includes/do_error_number.h: + +../../modules/localization/includes/localization.h: + +/usr/include/libintl.h: + +/usr/include/locale.h: + +/usr/include/x86_64-linux-gnu/bits/locale.h: diff --git a/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-sci_chol.Plo b/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-sci_chol.Plo new file mode 100755 index 000000000..1def6c4db --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-sci_chol.Plo @@ -0,0 +1,236 @@ +sci_gateway/c/libscilinear_algebra_la-sci_chol.lo: \ + sci_gateway/c/sci_chol.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 /usr/include/stdio.h \ + /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + ../../modules/core/includes/stack-c.h \ + ../../modules/core/includes/core_math.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h \ + /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h /usr/include/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 includes/gw_linear_algebra.h \ + includes/dynlib_linear_algebra.h ../../modules/core/includes/machine.h \ + ../../modules/output_stream/includes/Scierror.h \ + ../../modules/output_stream/includes/do_error_number.h \ + ../../modules/localization/includes/localization.h \ + /usr/include/libintl.h /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.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: + +/usr/include/stdio.h: + +/usr/include/libio.h: + +/usr/include/_G_config.h: + +/usr/include/wchar.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: + +../../modules/core/includes/stack-c.h: + +../../modules/core/includes/core_math.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h: + +/usr/include/limits.h: + +/usr/include/x86_64-linux-gnu/bits/posix1_lim.h: + +/usr/include/x86_64-linux-gnu/bits/local_lim.h: + +/usr/include/linux/limits.h: + +/usr/include/x86_64-linux-gnu/bits/posix2_lim.h: + +/usr/include/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: + +includes/gw_linear_algebra.h: + +includes/dynlib_linear_algebra.h: + +../../modules/core/includes/machine.h: + +../../modules/output_stream/includes/Scierror.h: + +../../modules/output_stream/includes/do_error_number.h: + +../../modules/localization/includes/localization.h: + +/usr/include/libintl.h: + +/usr/include/locale.h: + +/usr/include/x86_64-linux-gnu/bits/locale.h: diff --git a/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-sci_det.Plo b/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-sci_det.Plo new file mode 100755 index 000000000..1d6fca45e --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-sci_det.Plo @@ -0,0 +1,235 @@ +sci_gateway/c/libscilinear_algebra_la-sci_det.lo: sci_gateway/c/sci_det.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 /usr/include/stdio.h \ + /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + ../../modules/core/includes/stack-c.h \ + ../../modules/core/includes/core_math.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h \ + /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h /usr/include/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 includes/gw_linear_algebra.h \ + includes/dynlib_linear_algebra.h ../../modules/core/includes/machine.h \ + ../../modules/output_stream/includes/Scierror.h \ + ../../modules/output_stream/includes/do_error_number.h \ + ../../modules/localization/includes/localization.h \ + /usr/include/libintl.h /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.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: + +/usr/include/stdio.h: + +/usr/include/libio.h: + +/usr/include/_G_config.h: + +/usr/include/wchar.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: + +../../modules/core/includes/stack-c.h: + +../../modules/core/includes/core_math.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h: + +/usr/include/limits.h: + +/usr/include/x86_64-linux-gnu/bits/posix1_lim.h: + +/usr/include/x86_64-linux-gnu/bits/local_lim.h: + +/usr/include/linux/limits.h: + +/usr/include/x86_64-linux-gnu/bits/posix2_lim.h: + +/usr/include/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: + +includes/gw_linear_algebra.h: + +includes/dynlib_linear_algebra.h: + +../../modules/core/includes/machine.h: + +../../modules/output_stream/includes/Scierror.h: + +../../modules/output_stream/includes/do_error_number.h: + +../../modules/localization/includes/localization.h: + +/usr/include/libintl.h: + +/usr/include/locale.h: + +/usr/include/x86_64-linux-gnu/bits/locale.h: diff --git a/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-sci_dgeev.Plo b/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-sci_dgeev.Plo new file mode 100755 index 000000000..5ce7b8a29 --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-sci_dgeev.Plo @@ -0,0 +1,216 @@ +sci_gateway/c/libscilinear_algebra_la-sci_dgeev.lo: \ + sci_gateway/c/sci_dgeev.c /usr/include/stdc-predef.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/elementary_functions/includes/vfinite.h \ + ../../modules/core/includes/machine.h \ + ../../modules/core/includes/doublecomplex.h \ + ../../modules/elementary_functions/includes/dynlib_elementary_functions.h \ + ../../modules/output_stream/includes/do_error_number.h \ + ../../modules/core/includes/MALLOC.h \ + ../../modules/core/includes/sci_mem_alloc.h \ + sci_gateway/c/assembleEigenvectors.h includes/gw_linear_algebra.h \ + includes/dynlib_linear_algebra.h + +/usr/include/stdc-predef.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/elementary_functions/includes/vfinite.h: + +../../modules/core/includes/machine.h: + +../../modules/core/includes/doublecomplex.h: + +../../modules/elementary_functions/includes/dynlib_elementary_functions.h: + +../../modules/output_stream/includes/do_error_number.h: + +../../modules/core/includes/MALLOC.h: + +../../modules/core/includes/sci_mem_alloc.h: + +sci_gateway/c/assembleEigenvectors.h: + +includes/gw_linear_algebra.h: + +includes/dynlib_linear_algebra.h: diff --git a/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-sci_dggev.Plo b/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-sci_dggev.Plo new file mode 100755 index 000000000..90fc23457 --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-sci_dggev.Plo @@ -0,0 +1,225 @@ +sci_gateway/c/libscilinear_algebra_la-sci_dggev.lo: \ + sci_gateway/c/sci_dggev.c /usr/include/stdc-predef.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/elementary_functions/includes/elementary_functions.h \ + ../../modules/core/includes/machine.h \ + ../../modules/elementary_functions/includes/vfinite.h \ + ../../modules/core/includes/doublecomplex.h \ + ../../modules/elementary_functions/includes/dynlib_elementary_functions.h \ + ../../modules/output_stream/includes/do_error_number.h \ + ../../modules/core/includes/MALLOC.h \ + ../../modules/core/includes/sci_mem_alloc.h \ + ../../modules/output_stream/includes/msgs.h \ + ../../modules/output_stream/includes/dynlib_output_stream.h \ + sci_gateway/c/assembleEigenvectors.h includes/gw_linear_algebra.h \ + includes/dynlib_linear_algebra.h + +/usr/include/stdc-predef.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/elementary_functions/includes/elementary_functions.h: + +../../modules/core/includes/machine.h: + +../../modules/elementary_functions/includes/vfinite.h: + +../../modules/core/includes/doublecomplex.h: + +../../modules/elementary_functions/includes/dynlib_elementary_functions.h: + +../../modules/output_stream/includes/do_error_number.h: + +../../modules/core/includes/MALLOC.h: + +../../modules/core/includes/sci_mem_alloc.h: + +../../modules/output_stream/includes/msgs.h: + +../../modules/output_stream/includes/dynlib_output_stream.h: + +sci_gateway/c/assembleEigenvectors.h: + +includes/gw_linear_algebra.h: + +includes/dynlib_linear_algebra.h: diff --git a/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-sci_dsyev.Plo b/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-sci_dsyev.Plo new file mode 100755 index 000000000..488cf9833 --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-sci_dsyev.Plo @@ -0,0 +1,219 @@ +sci_gateway/c/libscilinear_algebra_la-sci_dsyev.lo: \ + sci_gateway/c/sci_dsyev.c /usr/include/stdc-predef.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/elementary_functions/includes/elementary_functions.h \ + ../../modules/core/includes/machine.h \ + ../../modules/elementary_functions/includes/vfinite.h \ + ../../modules/core/includes/doublecomplex.h \ + ../../modules/elementary_functions/includes/dynlib_elementary_functions.h \ + ../../modules/output_stream/includes/do_error_number.h \ + ../../modules/core/includes/MALLOC.h \ + ../../modules/core/includes/sci_mem_alloc.h \ + sci_gateway/c/assembleEigenvectors.h includes/gw_linear_algebra.h \ + includes/dynlib_linear_algebra.h + +/usr/include/stdc-predef.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/elementary_functions/includes/elementary_functions.h: + +../../modules/core/includes/machine.h: + +../../modules/elementary_functions/includes/vfinite.h: + +../../modules/core/includes/doublecomplex.h: + +../../modules/elementary_functions/includes/dynlib_elementary_functions.h: + +../../modules/output_stream/includes/do_error_number.h: + +../../modules/core/includes/MALLOC.h: + +../../modules/core/includes/sci_mem_alloc.h: + +sci_gateway/c/assembleEigenvectors.h: + +includes/gw_linear_algebra.h: + +includes/dynlib_linear_algebra.h: diff --git a/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-sci_hess.Plo b/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-sci_hess.Plo new file mode 100755 index 000000000..6094c4841 --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-sci_hess.Plo @@ -0,0 +1,236 @@ +sci_gateway/c/libscilinear_algebra_la-sci_hess.lo: \ + sci_gateway/c/sci_hess.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 /usr/include/stdio.h \ + /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + ../../modules/core/includes/stack-c.h \ + ../../modules/core/includes/core_math.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h \ + /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h /usr/include/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 includes/gw_linear_algebra.h \ + includes/dynlib_linear_algebra.h ../../modules/core/includes/machine.h \ + ../../modules/output_stream/includes/Scierror.h \ + ../../modules/output_stream/includes/do_error_number.h \ + ../../modules/localization/includes/localization.h \ + /usr/include/libintl.h /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.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: + +/usr/include/stdio.h: + +/usr/include/libio.h: + +/usr/include/_G_config.h: + +/usr/include/wchar.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: + +../../modules/core/includes/stack-c.h: + +../../modules/core/includes/core_math.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h: + +/usr/include/limits.h: + +/usr/include/x86_64-linux-gnu/bits/posix1_lim.h: + +/usr/include/x86_64-linux-gnu/bits/local_lim.h: + +/usr/include/linux/limits.h: + +/usr/include/x86_64-linux-gnu/bits/posix2_lim.h: + +/usr/include/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: + +includes/gw_linear_algebra.h: + +includes/dynlib_linear_algebra.h: + +../../modules/core/includes/machine.h: + +../../modules/output_stream/includes/Scierror.h: + +../../modules/output_stream/includes/do_error_number.h: + +../../modules/localization/includes/localization.h: + +/usr/include/libintl.h: + +/usr/include/locale.h: + +/usr/include/x86_64-linux-gnu/bits/locale.h: diff --git a/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-sci_inv.Plo b/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-sci_inv.Plo new file mode 100755 index 000000000..69d344e9f --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-sci_inv.Plo @@ -0,0 +1,235 @@ +sci_gateway/c/libscilinear_algebra_la-sci_inv.lo: sci_gateway/c/sci_inv.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 /usr/include/stdio.h \ + /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + ../../modules/core/includes/stack-c.h \ + ../../modules/core/includes/core_math.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h \ + /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h /usr/include/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 includes/gw_linear_algebra.h \ + includes/dynlib_linear_algebra.h ../../modules/core/includes/machine.h \ + ../../modules/output_stream/includes/Scierror.h \ + ../../modules/output_stream/includes/do_error_number.h \ + ../../modules/localization/includes/localization.h \ + /usr/include/libintl.h /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.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: + +/usr/include/stdio.h: + +/usr/include/libio.h: + +/usr/include/_G_config.h: + +/usr/include/wchar.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: + +../../modules/core/includes/stack-c.h: + +../../modules/core/includes/core_math.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h: + +/usr/include/limits.h: + +/usr/include/x86_64-linux-gnu/bits/posix1_lim.h: + +/usr/include/x86_64-linux-gnu/bits/local_lim.h: + +/usr/include/linux/limits.h: + +/usr/include/x86_64-linux-gnu/bits/posix2_lim.h: + +/usr/include/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: + +includes/gw_linear_algebra.h: + +includes/dynlib_linear_algebra.h: + +../../modules/core/includes/machine.h: + +../../modules/output_stream/includes/Scierror.h: + +../../modules/output_stream/includes/do_error_number.h: + +../../modules/localization/includes/localization.h: + +/usr/include/libintl.h: + +/usr/include/locale.h: + +/usr/include/x86_64-linux-gnu/bits/locale.h: diff --git a/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-sci_lsq.Plo b/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-sci_lsq.Plo new file mode 100755 index 000000000..a36268b45 --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-sci_lsq.Plo @@ -0,0 +1,235 @@ +sci_gateway/c/libscilinear_algebra_la-sci_lsq.lo: sci_gateway/c/sci_lsq.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 /usr/include/stdio.h \ + /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + ../../modules/core/includes/stack-c.h \ + ../../modules/core/includes/core_math.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h \ + /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h /usr/include/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 includes/gw_linear_algebra.h \ + includes/dynlib_linear_algebra.h ../../modules/core/includes/machine.h \ + ../../modules/output_stream/includes/Scierror.h \ + ../../modules/output_stream/includes/do_error_number.h \ + ../../modules/localization/includes/localization.h \ + /usr/include/libintl.h /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.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: + +/usr/include/stdio.h: + +/usr/include/libio.h: + +/usr/include/_G_config.h: + +/usr/include/wchar.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: + +../../modules/core/includes/stack-c.h: + +../../modules/core/includes/core_math.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h: + +/usr/include/limits.h: + +/usr/include/x86_64-linux-gnu/bits/posix1_lim.h: + +/usr/include/x86_64-linux-gnu/bits/local_lim.h: + +/usr/include/linux/limits.h: + +/usr/include/x86_64-linux-gnu/bits/posix2_lim.h: + +/usr/include/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: + +includes/gw_linear_algebra.h: + +includes/dynlib_linear_algebra.h: + +../../modules/core/includes/machine.h: + +../../modules/output_stream/includes/Scierror.h: + +../../modules/output_stream/includes/do_error_number.h: + +../../modules/localization/includes/localization.h: + +/usr/include/libintl.h: + +/usr/include/locale.h: + +/usr/include/x86_64-linux-gnu/bits/locale.h: diff --git a/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-sci_lu.Plo b/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-sci_lu.Plo new file mode 100755 index 000000000..fe56b4f17 --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-sci_lu.Plo @@ -0,0 +1,235 @@ +sci_gateway/c/libscilinear_algebra_la-sci_lu.lo: sci_gateway/c/sci_lu.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 /usr/include/stdio.h \ + /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + ../../modules/core/includes/stack-c.h \ + ../../modules/core/includes/core_math.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h \ + /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h /usr/include/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 includes/gw_linear_algebra.h \ + includes/dynlib_linear_algebra.h ../../modules/core/includes/machine.h \ + ../../modules/output_stream/includes/Scierror.h \ + ../../modules/output_stream/includes/do_error_number.h \ + ../../modules/localization/includes/localization.h \ + /usr/include/libintl.h /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.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: + +/usr/include/stdio.h: + +/usr/include/libio.h: + +/usr/include/_G_config.h: + +/usr/include/wchar.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: + +../../modules/core/includes/stack-c.h: + +../../modules/core/includes/core_math.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h: + +/usr/include/limits.h: + +/usr/include/x86_64-linux-gnu/bits/posix1_lim.h: + +/usr/include/x86_64-linux-gnu/bits/local_lim.h: + +/usr/include/linux/limits.h: + +/usr/include/x86_64-linux-gnu/bits/posix2_lim.h: + +/usr/include/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: + +includes/gw_linear_algebra.h: + +includes/dynlib_linear_algebra.h: + +../../modules/core/includes/machine.h: + +../../modules/output_stream/includes/Scierror.h: + +../../modules/output_stream/includes/do_error_number.h: + +../../modules/localization/includes/localization.h: + +/usr/include/libintl.h: + +/usr/include/locale.h: + +/usr/include/x86_64-linux-gnu/bits/locale.h: diff --git a/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-sci_norm.Plo b/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-sci_norm.Plo new file mode 100755 index 000000000..9eb35e4e3 --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-sci_norm.Plo @@ -0,0 +1,310 @@ +sci_gateway/c/libscilinear_algebra_la-sci_norm.lo: \ + sci_gateway/c/sci_norm.c /usr/include/stdc-predef.h /usr/include/stdio.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/x86_64-linux-gnu/bits/types.h \ + /usr/include/x86_64-linux-gnu/bits/typesizes.h /usr/include/libio.h \ + /usr/include/_G_config.h /usr/include/wchar.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + ../../modules/api_scilab/includes/api_scilab.h \ + ../../modules/core/includes/stack-c.h /usr/include/string.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/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/x86_64-linux-gnu/bits/wchar.h \ + /usr/include/x86_64-linux-gnu/bits/wchar2.h \ + ../../modules/api_scilab/includes/api_int.h \ + ../../modules/api_scilab/includes/api_poly.h \ + ../../modules/api_scilab/includes/api_sparse.h \ + ../../modules/api_scilab/includes/api_boolean.h \ + ../../modules/api_scilab/includes/api_boolean_sparse.h \ + ../../modules/api_scilab/includes/api_pointer.h \ + ../../modules/api_scilab/includes/api_list.h \ + ../../modules/api_scilab/includes/api_error.h \ + ../../modules/api_scilab/includes/api_handle.h \ + ../../modules/api_scilab/includes/api_optional.h \ + ../../modules/core/includes/stack-optional.h \ + ../../modules/api_scilab/includes/api_hypermat.h \ + ../../modules/core/includes/core_math.h \ + ../../modules/core/includes/sci_types.h includes/gw_linear_algebra2.h \ + includes/dynlib_linear_algebra.h \ + ../../modules/output_stream/includes/Scierror.h \ + ../../modules/output_stream/includes/do_error_number.h \ + ../../modules/core/includes/machine.h \ + ../../modules/localization/includes/localization.h \ + /usr/include/libintl.h /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h \ + ../../modules/core/includes/MALLOC.h \ + ../../modules/core/includes/sci_mem_alloc.h src/c/norm.h + +/usr/include/stdc-predef.h: + +/usr/include/stdio.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/x86_64-linux-gnu/bits/types.h: + +/usr/include/x86_64-linux-gnu/bits/typesizes.h: + +/usr/include/libio.h: + +/usr/include/_G_config.h: + +/usr/include/wchar.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: + +../../modules/api_scilab/includes/api_scilab.h: + +../../modules/core/includes/stack-c.h: + +/usr/include/string.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/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/x86_64-linux-gnu/bits/wchar.h: + +/usr/include/x86_64-linux-gnu/bits/wchar2.h: + +../../modules/api_scilab/includes/api_int.h: + +../../modules/api_scilab/includes/api_poly.h: + +../../modules/api_scilab/includes/api_sparse.h: + +../../modules/api_scilab/includes/api_boolean.h: + +../../modules/api_scilab/includes/api_boolean_sparse.h: + +../../modules/api_scilab/includes/api_pointer.h: + +../../modules/api_scilab/includes/api_list.h: + +../../modules/api_scilab/includes/api_error.h: + +../../modules/api_scilab/includes/api_handle.h: + +../../modules/api_scilab/includes/api_optional.h: + +../../modules/core/includes/stack-optional.h: + +../../modules/api_scilab/includes/api_hypermat.h: + +../../modules/core/includes/core_math.h: + +../../modules/core/includes/sci_types.h: + +includes/gw_linear_algebra2.h: + +includes/dynlib_linear_algebra.h: + +../../modules/output_stream/includes/Scierror.h: + +../../modules/output_stream/includes/do_error_number.h: + +../../modules/core/includes/machine.h: + +../../modules/localization/includes/localization.h: + +/usr/include/libintl.h: + +/usr/include/locale.h: + +/usr/include/x86_64-linux-gnu/bits/locale.h: + +../../modules/core/includes/MALLOC.h: + +../../modules/core/includes/sci_mem_alloc.h: + +src/c/norm.h: diff --git a/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-sci_qr.Plo b/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-sci_qr.Plo new file mode 100755 index 000000000..7a98090a6 --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-sci_qr.Plo @@ -0,0 +1,235 @@ +sci_gateway/c/libscilinear_algebra_la-sci_qr.lo: sci_gateway/c/sci_qr.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 /usr/include/stdio.h \ + /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + ../../modules/core/includes/stack-c.h \ + ../../modules/core/includes/core_math.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h \ + /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h /usr/include/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 includes/gw_linear_algebra.h \ + includes/dynlib_linear_algebra.h ../../modules/core/includes/machine.h \ + ../../modules/output_stream/includes/Scierror.h \ + ../../modules/output_stream/includes/do_error_number.h \ + ../../modules/localization/includes/localization.h \ + /usr/include/libintl.h /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.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: + +/usr/include/stdio.h: + +/usr/include/libio.h: + +/usr/include/_G_config.h: + +/usr/include/wchar.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: + +../../modules/core/includes/stack-c.h: + +../../modules/core/includes/core_math.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h: + +/usr/include/limits.h: + +/usr/include/x86_64-linux-gnu/bits/posix1_lim.h: + +/usr/include/x86_64-linux-gnu/bits/local_lim.h: + +/usr/include/linux/limits.h: + +/usr/include/x86_64-linux-gnu/bits/posix2_lim.h: + +/usr/include/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: + +includes/gw_linear_algebra.h: + +includes/dynlib_linear_algebra.h: + +../../modules/core/includes/machine.h: + +../../modules/output_stream/includes/Scierror.h: + +../../modules/output_stream/includes/do_error_number.h: + +../../modules/localization/includes/localization.h: + +/usr/include/libintl.h: + +/usr/include/locale.h: + +/usr/include/x86_64-linux-gnu/bits/locale.h: diff --git a/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-sci_rcond.Plo b/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-sci_rcond.Plo new file mode 100755 index 000000000..0cc478793 --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-sci_rcond.Plo @@ -0,0 +1,236 @@ +sci_gateway/c/libscilinear_algebra_la-sci_rcond.lo: \ + sci_gateway/c/sci_rcond.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 /usr/include/stdio.h \ + /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + ../../modules/core/includes/stack-c.h \ + ../../modules/core/includes/core_math.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h \ + /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h /usr/include/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 includes/gw_linear_algebra.h \ + includes/dynlib_linear_algebra.h ../../modules/core/includes/machine.h \ + ../../modules/output_stream/includes/Scierror.h \ + ../../modules/output_stream/includes/do_error_number.h \ + ../../modules/localization/includes/localization.h \ + /usr/include/libintl.h /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.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: + +/usr/include/stdio.h: + +/usr/include/libio.h: + +/usr/include/_G_config.h: + +/usr/include/wchar.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: + +../../modules/core/includes/stack-c.h: + +../../modules/core/includes/core_math.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h: + +/usr/include/limits.h: + +/usr/include/x86_64-linux-gnu/bits/posix1_lim.h: + +/usr/include/x86_64-linux-gnu/bits/local_lim.h: + +/usr/include/linux/limits.h: + +/usr/include/x86_64-linux-gnu/bits/posix2_lim.h: + +/usr/include/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: + +includes/gw_linear_algebra.h: + +includes/dynlib_linear_algebra.h: + +../../modules/core/includes/machine.h: + +../../modules/output_stream/includes/Scierror.h: + +../../modules/output_stream/includes/do_error_number.h: + +../../modules/localization/includes/localization.h: + +/usr/include/libintl.h: + +/usr/include/locale.h: + +/usr/include/x86_64-linux-gnu/bits/locale.h: diff --git a/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-sci_schur.Plo b/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-sci_schur.Plo new file mode 100755 index 000000000..a4d5f65c1 --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-sci_schur.Plo @@ -0,0 +1,236 @@ +sci_gateway/c/libscilinear_algebra_la-sci_schur.lo: \ + sci_gateway/c/sci_schur.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 /usr/include/stdio.h \ + /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + ../../modules/core/includes/stack-c.h \ + ../../modules/core/includes/core_math.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h \ + /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h /usr/include/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 includes/gw_linear_algebra.h \ + includes/dynlib_linear_algebra.h ../../modules/core/includes/machine.h \ + ../../modules/output_stream/includes/Scierror.h \ + ../../modules/output_stream/includes/do_error_number.h \ + ../../modules/localization/includes/localization.h \ + /usr/include/libintl.h /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.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: + +/usr/include/stdio.h: + +/usr/include/libio.h: + +/usr/include/_G_config.h: + +/usr/include/wchar.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: + +../../modules/core/includes/stack-c.h: + +../../modules/core/includes/core_math.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h: + +/usr/include/limits.h: + +/usr/include/x86_64-linux-gnu/bits/posix1_lim.h: + +/usr/include/x86_64-linux-gnu/bits/local_lim.h: + +/usr/include/linux/limits.h: + +/usr/include/x86_64-linux-gnu/bits/posix2_lim.h: + +/usr/include/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: + +includes/gw_linear_algebra.h: + +includes/dynlib_linear_algebra.h: + +../../modules/core/includes/machine.h: + +../../modules/output_stream/includes/Scierror.h: + +../../modules/output_stream/includes/do_error_number.h: + +../../modules/localization/includes/localization.h: + +/usr/include/libintl.h: + +/usr/include/locale.h: + +/usr/include/x86_64-linux-gnu/bits/locale.h: diff --git a/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-sci_slash.Plo b/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-sci_slash.Plo new file mode 100755 index 000000000..5f70e242f --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-sci_slash.Plo @@ -0,0 +1,236 @@ +sci_gateway/c/libscilinear_algebra_la-sci_slash.lo: \ + sci_gateway/c/sci_slash.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 /usr/include/stdio.h \ + /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + ../../modules/core/includes/stack-c.h \ + ../../modules/core/includes/core_math.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h \ + /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h /usr/include/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 includes/gw_linear_algebra.h \ + includes/dynlib_linear_algebra.h ../../modules/core/includes/machine.h \ + ../../modules/output_stream/includes/Scierror.h \ + ../../modules/output_stream/includes/do_error_number.h \ + ../../modules/localization/includes/localization.h \ + /usr/include/libintl.h /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.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: + +/usr/include/stdio.h: + +/usr/include/libio.h: + +/usr/include/_G_config.h: + +/usr/include/wchar.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: + +../../modules/core/includes/stack-c.h: + +../../modules/core/includes/core_math.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h: + +/usr/include/limits.h: + +/usr/include/x86_64-linux-gnu/bits/posix1_lim.h: + +/usr/include/x86_64-linux-gnu/bits/local_lim.h: + +/usr/include/linux/limits.h: + +/usr/include/x86_64-linux-gnu/bits/posix2_lim.h: + +/usr/include/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: + +includes/gw_linear_algebra.h: + +includes/dynlib_linear_algebra.h: + +../../modules/core/includes/machine.h: + +../../modules/output_stream/includes/Scierror.h: + +../../modules/output_stream/includes/do_error_number.h: + +../../modules/localization/includes/localization.h: + +/usr/include/libintl.h: + +/usr/include/locale.h: + +/usr/include/x86_64-linux-gnu/bits/locale.h: diff --git a/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-sci_spec.Plo b/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-sci_spec.Plo new file mode 100755 index 000000000..7b2db2cde --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-sci_spec.Plo @@ -0,0 +1,239 @@ +sci_gateway/c/libscilinear_algebra_la-sci_spec.lo: \ + sci_gateway/c/sci_spec.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 /usr/include/stdio.h \ + /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + ../../modules/core/includes/stack-c.h \ + ../../modules/core/includes/core_math.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h \ + /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h /usr/include/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 includes/issymmetric.h \ + includes/dynlib_linear_algebra.h includes/gw_linear_algebra.h \ + ../../modules/core/includes/machine.h \ + ../../modules/output_stream/includes/Scierror.h \ + ../../modules/output_stream/includes/do_error_number.h \ + ../../modules/localization/includes/localization.h \ + /usr/include/libintl.h /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.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: + +/usr/include/stdio.h: + +/usr/include/libio.h: + +/usr/include/_G_config.h: + +/usr/include/wchar.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: + +../../modules/core/includes/stack-c.h: + +../../modules/core/includes/core_math.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h: + +/usr/include/limits.h: + +/usr/include/x86_64-linux-gnu/bits/posix1_lim.h: + +/usr/include/x86_64-linux-gnu/bits/local_lim.h: + +/usr/include/linux/limits.h: + +/usr/include/x86_64-linux-gnu/bits/posix2_lim.h: + +/usr/include/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: + +includes/issymmetric.h: + +includes/dynlib_linear_algebra.h: + +includes/gw_linear_algebra.h: + +../../modules/core/includes/machine.h: + +../../modules/output_stream/includes/Scierror.h: + +../../modules/output_stream/includes/do_error_number.h: + +../../modules/localization/includes/localization.h: + +/usr/include/libintl.h: + +/usr/include/locale.h: + +/usr/include/x86_64-linux-gnu/bits/locale.h: diff --git a/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-sci_svd.Plo b/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-sci_svd.Plo new file mode 100755 index 000000000..5f4c189d1 --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-sci_svd.Plo @@ -0,0 +1,235 @@ +sci_gateway/c/libscilinear_algebra_la-sci_svd.lo: sci_gateway/c/sci_svd.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 /usr/include/stdio.h \ + /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h \ + /usr/include/x86_64-linux-gnu/bits/stdio_lim.h \ + /usr/include/x86_64-linux-gnu/bits/sys_errlist.h \ + /usr/include/x86_64-linux-gnu/bits/stdio.h \ + /usr/include/x86_64-linux-gnu/bits/stdio2.h \ + ../../modules/core/includes/stack-c.h \ + ../../modules/core/includes/core_math.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h \ + /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h \ + /usr/include/limits.h /usr/include/x86_64-linux-gnu/bits/posix1_lim.h \ + /usr/include/x86_64-linux-gnu/bits/local_lim.h \ + /usr/include/linux/limits.h \ + /usr/include/x86_64-linux-gnu/bits/posix2_lim.h /usr/include/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 includes/gw_linear_algebra.h \ + includes/dynlib_linear_algebra.h ../../modules/core/includes/machine.h \ + ../../modules/output_stream/includes/Scierror.h \ + ../../modules/output_stream/includes/do_error_number.h \ + ../../modules/localization/includes/localization.h \ + /usr/include/libintl.h /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.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: + +/usr/include/stdio.h: + +/usr/include/libio.h: + +/usr/include/_G_config.h: + +/usr/include/wchar.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include/stdarg.h: + +/usr/include/x86_64-linux-gnu/bits/stdio_lim.h: + +/usr/include/x86_64-linux-gnu/bits/sys_errlist.h: + +/usr/include/x86_64-linux-gnu/bits/stdio.h: + +/usr/include/x86_64-linux-gnu/bits/stdio2.h: + +../../modules/core/includes/stack-c.h: + +../../modules/core/includes/core_math.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/limits.h: + +/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed/syslimits.h: + +/usr/include/limits.h: + +/usr/include/x86_64-linux-gnu/bits/posix1_lim.h: + +/usr/include/x86_64-linux-gnu/bits/local_lim.h: + +/usr/include/linux/limits.h: + +/usr/include/x86_64-linux-gnu/bits/posix2_lim.h: + +/usr/include/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: + +includes/gw_linear_algebra.h: + +includes/dynlib_linear_algebra.h: + +../../modules/core/includes/machine.h: + +../../modules/output_stream/includes/Scierror.h: + +../../modules/output_stream/includes/do_error_number.h: + +../../modules/localization/includes/localization.h: + +/usr/include/libintl.h: + +/usr/include/locale.h: + +/usr/include/x86_64-linux-gnu/bits/locale.h: diff --git a/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-sci_zgeev.Plo b/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-sci_zgeev.Plo new file mode 100755 index 000000000..391c77c19 --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-sci_zgeev.Plo @@ -0,0 +1,219 @@ +sci_gateway/c/libscilinear_algebra_la-sci_zgeev.lo: \ + sci_gateway/c/sci_zgeev.c /usr/include/stdc-predef.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/elementary_functions/includes/elementary_functions.h \ + ../../modules/core/includes/machine.h \ + ../../modules/output_stream/includes/do_error_number.h \ + ../../modules/core/includes/MALLOC.h \ + ../../modules/core/includes/sci_mem_alloc.h \ + ../../modules/elementary_functions/includes/vfinite.h \ + ../../modules/core/includes/doublecomplex.h \ + ../../modules/elementary_functions/includes/dynlib_elementary_functions.h \ + sci_gateway/c/assembleEigenvectors.h includes/gw_linear_algebra.h \ + includes/dynlib_linear_algebra.h + +/usr/include/stdc-predef.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/elementary_functions/includes/elementary_functions.h: + +../../modules/core/includes/machine.h: + +../../modules/output_stream/includes/do_error_number.h: + +../../modules/core/includes/MALLOC.h: + +../../modules/core/includes/sci_mem_alloc.h: + +../../modules/elementary_functions/includes/vfinite.h: + +../../modules/core/includes/doublecomplex.h: + +../../modules/elementary_functions/includes/dynlib_elementary_functions.h: + +sci_gateway/c/assembleEigenvectors.h: + +includes/gw_linear_algebra.h: + +includes/dynlib_linear_algebra.h: diff --git a/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-sci_zggev.Plo b/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-sci_zggev.Plo new file mode 100755 index 000000000..97991d121 --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-sci_zggev.Plo @@ -0,0 +1,225 @@ +sci_gateway/c/libscilinear_algebra_la-sci_zggev.lo: \ + sci_gateway/c/sci_zggev.c /usr/include/stdc-predef.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/elementary_functions/includes/elementary_functions.h \ + ../../modules/core/includes/machine.h \ + ../../modules/output_stream/includes/do_error_number.h \ + ../../modules/core/includes/MALLOC.h \ + ../../modules/core/includes/sci_mem_alloc.h \ + ../../modules/output_stream/includes/msgs.h \ + ../../modules/output_stream/includes/dynlib_output_stream.h \ + ../../modules/elementary_functions/includes/vfinite.h \ + ../../modules/core/includes/doublecomplex.h \ + ../../modules/elementary_functions/includes/dynlib_elementary_functions.h \ + sci_gateway/c/assembleEigenvectors.h includes/gw_linear_algebra.h \ + includes/dynlib_linear_algebra.h + +/usr/include/stdc-predef.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/elementary_functions/includes/elementary_functions.h: + +../../modules/core/includes/machine.h: + +../../modules/output_stream/includes/do_error_number.h: + +../../modules/core/includes/MALLOC.h: + +../../modules/core/includes/sci_mem_alloc.h: + +../../modules/output_stream/includes/msgs.h: + +../../modules/output_stream/includes/dynlib_output_stream.h: + +../../modules/elementary_functions/includes/vfinite.h: + +../../modules/core/includes/doublecomplex.h: + +../../modules/elementary_functions/includes/dynlib_elementary_functions.h: + +sci_gateway/c/assembleEigenvectors.h: + +includes/gw_linear_algebra.h: + +includes/dynlib_linear_algebra.h: diff --git a/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-sci_zheev.Plo b/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-sci_zheev.Plo new file mode 100755 index 000000000..7285c9f8f --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/.deps/libscilinear_algebra_la-sci_zheev.Plo @@ -0,0 +1,219 @@ +sci_gateway/c/libscilinear_algebra_la-sci_zheev.lo: \ + sci_gateway/c/sci_zheev.c /usr/include/stdc-predef.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/elementary_functions/includes/elementary_functions.h \ + ../../modules/core/includes/machine.h \ + ../../modules/output_stream/includes/do_error_number.h \ + ../../modules/core/includes/MALLOC.h \ + ../../modules/core/includes/sci_mem_alloc.h \ + ../../modules/elementary_functions/includes/vfinite.h \ + ../../modules/core/includes/doublecomplex.h \ + ../../modules/elementary_functions/includes/dynlib_elementary_functions.h \ + sci_gateway/c/assembleEigenvectors.h includes/gw_linear_algebra.h \ + includes/dynlib_linear_algebra.h + +/usr/include/stdc-predef.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/elementary_functions/includes/elementary_functions.h: + +../../modules/core/includes/machine.h: + +../../modules/output_stream/includes/do_error_number.h: + +../../modules/core/includes/MALLOC.h: + +../../modules/core/includes/sci_mem_alloc.h: + +../../modules/elementary_functions/includes/vfinite.h: + +../../modules/core/includes/doublecomplex.h: + +../../modules/elementary_functions/includes/dynlib_elementary_functions.h: + +sci_gateway/c/assembleEigenvectors.h: + +includes/gw_linear_algebra.h: + +includes/dynlib_linear_algebra.h: diff --git a/modules/linear_algebra/sci_gateway/c/.dirstamp b/modules/linear_algebra/sci_gateway/c/.dirstamp new file mode 100755 index 000000000..e69de29bb --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/.dirstamp diff --git a/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-assembleEigenvectors.o b/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-assembleEigenvectors.o Binary files differnew file mode 100755 index 000000000..43ede2f04 --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-assembleEigenvectors.o diff --git a/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-gw_linear_algebra.o b/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-gw_linear_algebra.o Binary files differnew file mode 100755 index 000000000..a5a13e68f --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-gw_linear_algebra.o diff --git a/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-gw_linear_algebra2.o b/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-gw_linear_algebra2.o Binary files differnew file mode 100755 index 000000000..12cd4c0a8 --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-gw_linear_algebra2.o diff --git a/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-sci_backslash.o b/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-sci_backslash.o Binary files differnew file mode 100755 index 000000000..f42905691 --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-sci_backslash.o diff --git a/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-sci_balanc.o b/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-sci_balanc.o Binary files differnew file mode 100755 index 000000000..4b1c3a829 --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-sci_balanc.o diff --git a/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-sci_bdiag.o b/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-sci_bdiag.o Binary files differnew file mode 100755 index 000000000..f893e1685 --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-sci_bdiag.o diff --git a/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-sci_chol.o b/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-sci_chol.o Binary files differnew file mode 100755 index 000000000..e37ef0ae5 --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-sci_chol.o diff --git a/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-sci_det.o b/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-sci_det.o Binary files differnew file mode 100755 index 000000000..f143070b9 --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-sci_det.o diff --git a/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-sci_dgeev.o b/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-sci_dgeev.o Binary files differnew file mode 100755 index 000000000..2c27e2de0 --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-sci_dgeev.o diff --git a/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-sci_dggev.o b/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-sci_dggev.o Binary files differnew file mode 100755 index 000000000..2a7fa2ee9 --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-sci_dggev.o diff --git a/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-sci_dsyev.o b/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-sci_dsyev.o Binary files differnew file mode 100755 index 000000000..c8776d7d4 --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-sci_dsyev.o diff --git a/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-sci_hess.o b/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-sci_hess.o Binary files differnew file mode 100755 index 000000000..bcbeafdc9 --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-sci_hess.o diff --git a/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-sci_inv.o b/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-sci_inv.o Binary files differnew file mode 100755 index 000000000..64828b239 --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-sci_inv.o diff --git a/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-sci_lsq.o b/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-sci_lsq.o Binary files differnew file mode 100755 index 000000000..d7d3170c6 --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-sci_lsq.o diff --git a/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-sci_lu.o b/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-sci_lu.o Binary files differnew file mode 100755 index 000000000..238e4068d --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-sci_lu.o diff --git a/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-sci_norm.o b/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-sci_norm.o Binary files differnew file mode 100755 index 000000000..6ad81634a --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-sci_norm.o diff --git a/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-sci_qr.o b/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-sci_qr.o Binary files differnew file mode 100755 index 000000000..06d609cd6 --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-sci_qr.o diff --git a/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-sci_rcond.o b/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-sci_rcond.o Binary files differnew file mode 100755 index 000000000..c32234b2c --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-sci_rcond.o diff --git a/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-sci_schur.o b/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-sci_schur.o Binary files differnew file mode 100755 index 000000000..515eb3270 --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-sci_schur.o diff --git a/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-sci_slash.o b/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-sci_slash.o Binary files differnew file mode 100755 index 000000000..1675a1a69 --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-sci_slash.o diff --git a/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-sci_spec.o b/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-sci_spec.o Binary files differnew file mode 100755 index 000000000..9dc04adb1 --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-sci_spec.o diff --git a/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-sci_svd.o b/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-sci_svd.o Binary files differnew file mode 100755 index 000000000..074b9049e --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-sci_svd.o diff --git a/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-sci_zgeev.o b/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-sci_zgeev.o Binary files differnew file mode 100755 index 000000000..f90ee59bc --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-sci_zgeev.o diff --git a/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-sci_zggev.o b/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-sci_zggev.o Binary files differnew file mode 100755 index 000000000..bc2b6ada9 --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-sci_zggev.o diff --git a/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-sci_zheev.o b/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-sci_zheev.o Binary files differnew file mode 100755 index 000000000..264e5e575 --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/.libs/libscilinear_algebra_la-sci_zheev.o diff --git a/modules/linear_algebra/sci_gateway/c/assembleEigenvectors.c b/modules/linear_algebra/sci_gateway/c/assembleEigenvectors.c new file mode 100755 index 000000000..08bf2f1dd --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/assembleEigenvectors.c @@ -0,0 +1,226 @@ +/* +* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +* Copyright (C) 2008 - INRIA - Michaël 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 +* +*/ + +#include "elementary_functions.h" +#include "stack-c.h" +extern int C2F(dlaset)(); + +// +// assembleEigenvectorsSourceToTarget -- +// Assemble conjugated eigenvectors from the real part into real and imaginary parts. +// Dispatch the real part of the eigenvectors into the real and imaginary parts, +// depending on the imaginary part of the eigenvalues. +// The current function reorder the values in the eigenvector array +// and convert from Lapack, compact storage to the Scilab, natural storage. +// Arguments +// iRows : number of rows +// eigenvaluesImg, input : the imaginary part of the eigenvalues +// EVRealSource, input : the real parts of the source eigenvectors +// EVRealTarget, output : real part of the target eigenvectors +// EVImgTarget, output : imaginary part of the target eigenvectors +// Notes +// In some eigenvalue computing routines, such as dggev for example, +// the eigenvectors are : +// - real (that is with an imaginary part = 0), +// - conjugated. +// In that case, Lapack stores the eigenvectors in the following compact way. +// (Extracted from DGGEV comments) +//------------------------ +// The right eigenvectors v(j) are stored one +// after another in the columns of VR, in the same order as +// their eigenvalues. If the j-th eigenvalue is real, then +// v(j) = VR(:,j), the j-th column of VR. If the j-th and +// (j+1)-th eigenvalues form a complex conjugate pair, then +// v(j) = VR(:,j)+i*VR(:,j+1) and v(j+1) = VR(:,j)-i*VR(:,j+1). +//------------------------ +// But in Scilab, the eigenvectors must be order in a more natural order, +// and this is why a conversion must be performed. +// +int assembleEigenvectorsSourceToTarget(int iRows, double * eigenvaluesImg, + double * EVRealSource, + double * EVRealTarget, double * EVImgTarget) +{ + + double ZERO = 0; + int i; + int ij; + int ij1; + int j; + + j = 0; + while (j < iRows) + { + if (eigenvaluesImg[j] == ZERO) + { + for (i = 0 ; i < iRows ; i++) + { + ij = i + j * iRows; + EVRealTarget[ij] = EVRealSource[ij]; + EVImgTarget[ij] = ZERO; + } + j = j + 1; + } + else + { + for (i = 0 ; i < iRows ; i++) + { + ij = i + j * iRows; + ij1 = i + (j + 1) * iRows; + EVRealTarget[ij] = EVRealSource[ij]; + EVImgTarget[ij] = EVRealSource[ij1]; + EVRealTarget[ij1] = EVRealSource[ij]; + EVImgTarget[ij1] = -EVRealSource[ij1]; + } + j = j + 2; + } + } + return 0; +} +// +// assembleEigenvectorsInPlace -- +// Assemble conjugated eigenvectors from the real part into real and imaginary parts. +// Dispatch the real part of the eigenvectors into the real and imaginary parts, +// depending on the imaginary part of the eigenvalues. +// The current function reorder the values in the eigenvector array +// and convert from Lapack, compact storage to the Scilab, natural storage. +// Perform the assembling in place, that is, update the matrix. +// Arguments +// iRows : number of rows +// iCols : number of columns +// eigenvaluesImg, input : the imaginary part of the eigenvalues +// EVReal, input/output : real part of the eigenvectors +// EVImg, output : imaginary part of the eigenvectors +// +int assembleEigenvectorsInPlace(int iRows, double * eigenvaluesImg, + double * EVReal, double * EVImg) +{ + + double ZERO = 0; + int j; + int INCY; + int totalsize; + + totalsize = iRows * iRows; + + INCY = 1; + C2F(dset)(&totalsize, &ZERO, EVImg, &INCY); + + j = 0; + INCY = 1; + while (j < iRows) + { + if (eigenvaluesImg[j] == ZERO) + { + j = j + 1; + } + else + { + int i; + int ij; + int ij1; + for (i = 0 ; i < iRows ; i++) + { + ij = i + j * iRows; + ij1 = i + (j + 1) * iRows; + EVImg[ij] = EVReal[ij1]; + EVImg[ij1] = - EVReal[ij1]; + EVReal[ij1] = EVReal[ij]; + } + j = j + 2; + } + } + return 0; +} +// +// assembleComplexEigenvaluesFromDoublePointer -- +// Assemble the source complex eigenvalues array into the target complex eigenvalues diagonal matrix. +// Arguments +// iRows : number of rows +// EVRealSource, input : the real parts of source eigenvalues array, with size iRows +// EVImgSource, input : the imaginary parts of source eigenvalues array, with size iRows +// EVRealTarget, output : the real parts of target eigenvalues matrix, with size iRows x iRows +// EVImgTarget, output : the imaginary parts of target eigenvalues matrix, with size iRows x iRows +// +int assembleComplexEigenvaluesFromDoublePointer(int iRows, double * EVRealSource, double * EVImgSource, + double * EVRealTarget, double * EVImgTarget) +{ + int INCY = 1; + int i; + int ii; + int totalsize; + double ZERO = 0; + totalsize = iRows * iRows; + + C2F(dset)(&totalsize, &ZERO, EVRealTarget, &INCY); + C2F(dset)(&totalsize, &ZERO, EVImgTarget, &INCY); + + for (i = 0 ; i < iRows ; i++) + { + ii = i + i * iRows; + EVRealTarget[ii] = EVRealSource[i]; + EVImgTarget[ii] = EVImgSource[i]; + } + return 0; +} + +// +// assembleComplexEigenvaluesFromDoubleComplexPointer -- +// Assemble the source complex eigenvalues array into the target complex eigenvalues diagonal matrix. +// Arguments +// iRows : number of rows +// EVSource, input : the real and imaginary parts of source eigenvalues array, with size iRows +// EVRealTarget, output : the real parts of target eigenvalues matrix, with size iRows x iRows +// EVImgTarget, output : the imaginary parts of target eigenvalues matrix, with size iRows x iRows +// +int assembleComplexEigenvaluesFromDoubleComplexPointer(int iRows, doublecomplex * EVSource, + double * EVRealTarget, double * EVImgTarget) +{ + // Transfert eigenvalues + char UPLO = 'F'; + double ZERO = 0; + int icol; + int ii; + C2F(dlaset)( &UPLO, &iRows, &iRows, &ZERO, &ZERO, EVRealTarget, &iRows ); + C2F(dlaset)( &UPLO, &iRows, &iRows, &ZERO, &ZERO, EVImgTarget, &iRows ); + // SUBROUTINE DLASET( UPLO, M, N, ALPHA, BETA, A, LDA ) + for (icol = 0 ; icol < iRows ; icol++) + { + ii = icol + icol * iRows; + EVRealTarget[ii] = EVSource[icol].r; + EVImgTarget[ii] = EVSource[icol].i; + } + return 0; +} +// +// assembleEigenvaluesFromDoublePointer -- +// Assemble the source real eigenvalues array into the target real eigenvalues diagonal matrix. +// Arguments +// iRows : number of rows +// EVSource, input : the source eigenvalues array, with size iRows +// EVTarget, output : the target eigenvalues matrix, with size iRows x iRows +// +int assembleEigenvaluesFromDoublePointer(int iRows, double * EVSource, double * EVTarget) +{ + int icol = 0; + int ii; + char UPLO = 'F'; + double ZERO = 0; + C2F(dlaset)( &UPLO, &iRows, &iRows, &ZERO, &ZERO, EVTarget, &iRows ); + // SUBROUTINE DLASET( UPLO, M, N, ALPHA, BETA, A, LDA ) + + for (icol = 0 ; icol < iRows ; icol++) + { + ii = icol + icol * iRows; + EVTarget[ii] = EVSource[icol]; + } + return 0; +} diff --git a/modules/linear_algebra/sci_gateway/c/assembleEigenvectors.h b/modules/linear_algebra/sci_gateway/c/assembleEigenvectors.h new file mode 100755 index 000000000..8756d3432 --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/assembleEigenvectors.h @@ -0,0 +1,26 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +#ifndef __ASSEMBLEEIGENVECTORS__ +#define __ASSEMBLEEIGENVECTORS__ + +int assembleEigenvectorsSourceToTarget(int iRows, double * eigenvaluesImg, + double * EVRealSource, + double * EVRealTarget, double * EVImgTarget); +int assembleEigenvectorsInPlace(int iRows, double * eigenvaluesImg, + double * EVReal, double * EVImg); +int assembleComplexEigenvaluesFromDoublePointer(int iRows, double * EVRealSource, double * EVImgSource, + double * EVRealTarget, double * EVImgTarget); +int assembleComplexEigenvaluesFromDoubleComplexPointer(int iRows, doublecomplex * EVSource, + double * EVRealTarget, double * EVImgTarget); +int assembleEigenvaluesFromDoublePointer(int iRows, double * EVSource, double * EVTarget); +#endif /* !__ASSEMBLEEIGENVECTORS__ */ diff --git a/modules/linear_algebra/sci_gateway/c/gw_linear_algebra.c b/modules/linear_algebra/sci_gateway/c/gw_linear_algebra.c new file mode 100755 index 000000000..b67ebaabe --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/gw_linear_algebra.c @@ -0,0 +1,49 @@ + +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA - Allan CORNET <allan.cornet@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 + * + */ + +#include <string.h> +#include "api_scilab.h" +#include "MALLOC.h" +#include "gw_linear_algebra.h" +#include "callFunctionFromGateway.h" +/*--------------------------------------------------------------------------*/ +static int C2F(intvoid)(char *fname, unsigned long fname_len) +{ + return 0; +} +/*--------------------------------------------------------------------------*/ +static gw_generic_table Tab[] = +{ + {C2F(inthess), "hess"}, + {C2F(intschur), "schur"}, + {C2F(intspec), "spec"}, + {C2F(intbdiagr), "bdiag"}, + {C2F(intvoid), "xxxx"}, + {C2F(intbalanc), "balanc"} +}; +/*--------------------------------------------------------------------------*/ +int gw_linear_algebra(void) +{ + Rhs = Max(0, Rhs); + + if (pvApiCtx == NULL) + { + pvApiCtx = (StrCtx*)MALLOC(sizeof(StrCtx)); + } + + pvApiCtx->pstName = (char*)Tab[Fin - 1].name; + callFunctionFromGateway(Tab, SIZE_CURRENT_GENERIC_TABLE(Tab)); + PutLhsVar(); + return 0; +} +/*--------------------------------------------------------------------------*/ diff --git a/modules/linear_algebra/sci_gateway/c/gw_linear_algebra2.c b/modules/linear_algebra/sci_gateway/c/gw_linear_algebra2.c new file mode 100755 index 000000000..8882f16b8 --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/gw_linear_algebra2.c @@ -0,0 +1,57 @@ + +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2006-2008 - INRIA - Allan CORNET <allan.cornet@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 + * + */ + +#include <string.h> +#include "gw_linear_algebra.h" +#include "gw_linear_algebra2.h" +#include "callFunctionFromGateway.h" +#include "api_scilab.h" +#include "MALLOC.h" +/*--------------------------------------------------------------------------*/ +static gw_generic_table Tab[] = +{ + {C2F(intqr), "qr"}, + {C2F(intsvd), "svd"}, + {C2F(intlsq), "lsq"}, + {C2F(intspec), "spec"}, + {C2F(intinv), "inv"}, + {C2F(intrcond), "rcond"}, + {C2F(intchol), "chol"}, + {C2F(intlu), "lu"}, + {C2F(intslash), "slash"}, + {C2F(intbackslash), "backslash"}, + {C2F(intschur), "schur"}, + {C2F(inthess), "hess"}, + {C2F(intdet), "det"}, + {C2F(intbalanc), "balanc"}, + {C2F(intnorm),"norm"} +}; +/*--------------------------------------------------------------------------*/ +int gw_linear_algebra2(void) +{ + Rhs = Max(0, Rhs); + + if (pvApiCtx == NULL) + { + pvApiCtx = (StrCtx*)MALLOC(sizeof(StrCtx)); + } + + pvApiCtx->pstName = (char*)Tab[Fin - 1].name; + callFunctionFromGateway(Tab, SIZE_CURRENT_GENERIC_TABLE(Tab)); + if (Err <= 0 && C2F(errgst).err1 <= 0) + { + PutLhsVar(); + } + return 0; +} +/*--------------------------------------------------------------------------*/ diff --git a/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-assembleEigenvectors.lo b/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-assembleEigenvectors.lo new file mode 100755 index 000000000..74f2fe0f6 --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-assembleEigenvectors.lo @@ -0,0 +1,12 @@ +# sci_gateway/c/libscilinear_algebra_la-assembleEigenvectors.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/libscilinear_algebra_la-assembleEigenvectors.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-gw_linear_algebra.lo b/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-gw_linear_algebra.lo new file mode 100755 index 000000000..5e6e185ca --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-gw_linear_algebra.lo @@ -0,0 +1,12 @@ +# sci_gateway/c/libscilinear_algebra_la-gw_linear_algebra.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/libscilinear_algebra_la-gw_linear_algebra.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-gw_linear_algebra2.lo b/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-gw_linear_algebra2.lo new file mode 100755 index 000000000..bd2b86f6f --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-gw_linear_algebra2.lo @@ -0,0 +1,12 @@ +# sci_gateway/c/libscilinear_algebra_la-gw_linear_algebra2.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/libscilinear_algebra_la-gw_linear_algebra2.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-sci_backslash.lo b/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-sci_backslash.lo new file mode 100755 index 000000000..c8c9164a6 --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-sci_backslash.lo @@ -0,0 +1,12 @@ +# sci_gateway/c/libscilinear_algebra_la-sci_backslash.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/libscilinear_algebra_la-sci_backslash.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-sci_balanc.lo b/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-sci_balanc.lo new file mode 100755 index 000000000..a5b1bc6d9 --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-sci_balanc.lo @@ -0,0 +1,12 @@ +# sci_gateway/c/libscilinear_algebra_la-sci_balanc.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/libscilinear_algebra_la-sci_balanc.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-sci_bdiag.lo b/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-sci_bdiag.lo new file mode 100755 index 000000000..8e97b1cc3 --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-sci_bdiag.lo @@ -0,0 +1,12 @@ +# sci_gateway/c/libscilinear_algebra_la-sci_bdiag.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/libscilinear_algebra_la-sci_bdiag.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-sci_chol.lo b/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-sci_chol.lo new file mode 100755 index 000000000..6890f4eb4 --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-sci_chol.lo @@ -0,0 +1,12 @@ +# sci_gateway/c/libscilinear_algebra_la-sci_chol.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/libscilinear_algebra_la-sci_chol.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-sci_det.lo b/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-sci_det.lo new file mode 100755 index 000000000..75b3e7468 --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-sci_det.lo @@ -0,0 +1,12 @@ +# sci_gateway/c/libscilinear_algebra_la-sci_det.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/libscilinear_algebra_la-sci_det.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-sci_dgeev.lo b/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-sci_dgeev.lo new file mode 100755 index 000000000..518e433ef --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-sci_dgeev.lo @@ -0,0 +1,12 @@ +# sci_gateway/c/libscilinear_algebra_la-sci_dgeev.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/libscilinear_algebra_la-sci_dgeev.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-sci_dggev.lo b/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-sci_dggev.lo new file mode 100755 index 000000000..fde9a8c3b --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-sci_dggev.lo @@ -0,0 +1,12 @@ +# sci_gateway/c/libscilinear_algebra_la-sci_dggev.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/libscilinear_algebra_la-sci_dggev.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-sci_dsyev.lo b/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-sci_dsyev.lo new file mode 100755 index 000000000..08c5bb2ba --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-sci_dsyev.lo @@ -0,0 +1,12 @@ +# sci_gateway/c/libscilinear_algebra_la-sci_dsyev.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/libscilinear_algebra_la-sci_dsyev.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-sci_hess.lo b/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-sci_hess.lo new file mode 100755 index 000000000..16ce92e5a --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-sci_hess.lo @@ -0,0 +1,12 @@ +# sci_gateway/c/libscilinear_algebra_la-sci_hess.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/libscilinear_algebra_la-sci_hess.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-sci_inv.lo b/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-sci_inv.lo new file mode 100755 index 000000000..dd319448e --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-sci_inv.lo @@ -0,0 +1,12 @@ +# sci_gateway/c/libscilinear_algebra_la-sci_inv.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/libscilinear_algebra_la-sci_inv.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-sci_lsq.lo b/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-sci_lsq.lo new file mode 100755 index 000000000..d25647296 --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-sci_lsq.lo @@ -0,0 +1,12 @@ +# sci_gateway/c/libscilinear_algebra_la-sci_lsq.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/libscilinear_algebra_la-sci_lsq.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-sci_lu.lo b/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-sci_lu.lo new file mode 100755 index 000000000..edba9a87f --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-sci_lu.lo @@ -0,0 +1,12 @@ +# sci_gateway/c/libscilinear_algebra_la-sci_lu.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/libscilinear_algebra_la-sci_lu.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-sci_norm.lo b/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-sci_norm.lo new file mode 100755 index 000000000..5ccc28ded --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-sci_norm.lo @@ -0,0 +1,12 @@ +# sci_gateway/c/libscilinear_algebra_la-sci_norm.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/libscilinear_algebra_la-sci_norm.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-sci_qr.lo b/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-sci_qr.lo new file mode 100755 index 000000000..f9b699ba7 --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-sci_qr.lo @@ -0,0 +1,12 @@ +# sci_gateway/c/libscilinear_algebra_la-sci_qr.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/libscilinear_algebra_la-sci_qr.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-sci_rcond.lo b/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-sci_rcond.lo new file mode 100755 index 000000000..33965fa66 --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-sci_rcond.lo @@ -0,0 +1,12 @@ +# sci_gateway/c/libscilinear_algebra_la-sci_rcond.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/libscilinear_algebra_la-sci_rcond.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-sci_schur.lo b/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-sci_schur.lo new file mode 100755 index 000000000..53eba5708 --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-sci_schur.lo @@ -0,0 +1,12 @@ +# sci_gateway/c/libscilinear_algebra_la-sci_schur.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/libscilinear_algebra_la-sci_schur.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-sci_slash.lo b/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-sci_slash.lo new file mode 100755 index 000000000..a5b9c0263 --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-sci_slash.lo @@ -0,0 +1,12 @@ +# sci_gateway/c/libscilinear_algebra_la-sci_slash.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/libscilinear_algebra_la-sci_slash.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-sci_spec.lo b/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-sci_spec.lo new file mode 100755 index 000000000..c17038fed --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-sci_spec.lo @@ -0,0 +1,12 @@ +# sci_gateway/c/libscilinear_algebra_la-sci_spec.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/libscilinear_algebra_la-sci_spec.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-sci_svd.lo b/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-sci_svd.lo new file mode 100755 index 000000000..d4cf5b435 --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-sci_svd.lo @@ -0,0 +1,12 @@ +# sci_gateway/c/libscilinear_algebra_la-sci_svd.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/libscilinear_algebra_la-sci_svd.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-sci_zgeev.lo b/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-sci_zgeev.lo new file mode 100755 index 000000000..8eb81ef85 --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-sci_zgeev.lo @@ -0,0 +1,12 @@ +# sci_gateway/c/libscilinear_algebra_la-sci_zgeev.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/libscilinear_algebra_la-sci_zgeev.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-sci_zggev.lo b/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-sci_zggev.lo new file mode 100755 index 000000000..ecb8512c6 --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-sci_zggev.lo @@ -0,0 +1,12 @@ +# sci_gateway/c/libscilinear_algebra_la-sci_zggev.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/libscilinear_algebra_la-sci_zggev.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-sci_zheev.lo b/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-sci_zheev.lo new file mode 100755 index 000000000..23b200031 --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/libscilinear_algebra_la-sci_zheev.lo @@ -0,0 +1,12 @@ +# sci_gateway/c/libscilinear_algebra_la-sci_zheev.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/libscilinear_algebra_la-sci_zheev.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/sci_gateway/c/sci_backslash.c b/modules/linear_algebra/sci_gateway/c/sci_backslash.c new file mode 100755 index 000000000..444ee808a --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/sci_backslash.c @@ -0,0 +1,100 @@ + +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) ????-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +#include <string.h> +#include <stdio.h> +#include "stack-c.h" +#include "gw_linear_algebra.h" +#include "Scierror.h" +#include "localization.h" +/*--------------------------------------------------------------------------*/ +extern int C2F(complexify)(int *num); +extern int C2F(intdgesv3)(char *fname, unsigned long fname_len); +extern int C2F(intzgesv3)(char *fname, unsigned long fname_len); + +/*--------------------------------------------------------------------------*/ +int C2F(intbackslash)(char *fname, unsigned long fname_len) +{ + int *header1; + int *header2; + int CmplxA; + int CmplxB; + int ret; + int X; + + /* backslash(A,B) */ + header1 = (int *) GetData(1); + header2 = (int *) GetData(2); + + CmplxA = header1[3]; + CmplxB = header2[3]; + + if ((header1[1] != header2[1]) & (header2[1]*header2[2] == 1)) + { + C2F(com).fun = 0; + Fin = -Fin; + return 0; + } + + switch (CmplxA) + { + case REAL: + switch (CmplxB) + { + case REAL : + /* A real, B real */ + ret = C2F(intdgesv3)("lsq", 3L); + break; + + case COMPLEX : + /* A real, B complex : complexify A */ + C2F(complexify)((X = 1, &X)); + ret = C2F(intzgesv3)("lsq", 3L); + break; + + default: + Scierror(999, _("%s: Wrong type for input argument #%d: Real or Complex matrix expected.\n"), + fname, 2); + break; + } + return 0; + + case COMPLEX : + switch (CmplxB) + { + case REAL : + /* A complex, B real : complexify B */ + C2F(complexify)((X = 2, &X)); + ret = C2F(intzgesv3)("lsq", 3L); + break; + + case COMPLEX : + /* A complex, B complex */ + ret = C2F(intzgesv3)("lsq", 3L); + break; + + default: + Scierror(999, _("%s: Wrong type for input argument #%d: Real or Complex matrix expected.\n"), + fname, 2); + break; + } + return 0; + + default : + Scierror(999, _("%s: Wrong type for input argument #%d: Real or Complex matrix expected.\n"), + fname, 1); + return 0; + break; + } +} +/*--------------------------------------------------------------------------*/ diff --git a/modules/linear_algebra/sci_gateway/c/sci_balanc.c b/modules/linear_algebra/sci_gateway/c/sci_balanc.c new file mode 100755 index 000000000..590e10a18 --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/sci_balanc.c @@ -0,0 +1,131 @@ + +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) ????-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +#include <string.h> +#include <stdio.h> +#include "stack-c.h" +#include "gw_linear_algebra.h" +#include "Scierror.h" +#include "localization.h" +/*--------------------------------------------------------------------------*/ +extern int C2F(complexify)(int *num); +extern int C2F(intdgebal)(char *fname, unsigned long fname_len); +extern int C2F(intzgebal)(char *fname, unsigned long fname_len); +extern int C2F(intdggbal)(char *fname, unsigned long fname_len); +extern int C2F(intzggbal)(char *fname, unsigned long fname_len); +/*--------------------------------------------------------------------------*/ +int C2F(intbalanc)(char *fname, unsigned long fname_len) +{ + int *header1, *header2; + int CmplxA, CmplxB; + int ret; + int X; + + switch (Rhs) + { + case 1: /* balanc(A) */ + if (GetType(1) != sci_matrix) + { + OverLoad(1); + return 0; + } + header1 = (int *) GetData(1); + CmplxA = header1[3]; + switch (CmplxA) + { + case REAL: + ret = C2F(intdgebal)("balanc", 6L); + break; + + case COMPLEX: + ret = C2F(intzgebal)("balanc", 6L); + break; + + default: + Scierror(999, _("%s: Wrong type for input argument #%d: Real or Complex matrix expected.\n"), + fname, 1); + break; + } /* end switch (CmplxA) */ + break; /* end case 1 */ + + case 2: /* balanc(A,B) */ + if (GetType(1) != sci_matrix) + { + OverLoad(1); + return 0; + } + if (GetType(2) != sci_matrix) + { + OverLoad(2); + return 0; + } + header1 = (int *) GetData(1); + header2 = (int *) GetData(2); + CmplxA = header1[3]; + CmplxB = header2[3]; + switch (CmplxA) + { + case REAL: + switch (CmplxB) + { + case REAL : + /* A real, Breal */ + ret = C2F(intdggbal)("balanc", 6L); + break; + + case COMPLEX : + /* A real, B complex : complexify A */ + C2F(complexify)((X = 1, &X)); + ret = C2F(intzggbal)("balanc", 6L); + break; + + default: + Scierror(999, _("%s: Wrong type for input argument #%d: Real or Complex matrix expected.\n"), + fname, 1); + + break; + } + break; + + case COMPLEX : + switch (CmplxB) + { + case REAL : + /* A complex, B real : complexify B */ + C2F(complexify)((X = 2, &X)); + ret = C2F(intzggbal)("balanc", 6L); + break; + + case COMPLEX : + /* A complex, B complex */ + ret = C2F(intzggbal)("balanc", 6L); + return 0; + break; + + default: + Scierror(999, _("%s: Wrong type for input argument #%d: Real or Complex matrix expected.\n"), + fname, 2); + break; + } + break; + + default : + Scierror(999, _("%s: Wrong type for input argument #%d: Real or Complex matrix expected.\n"), + fname, 1); + break; + } /*end switch (CmplxA) */ + break;/* end case 2 */ + }/* end switch (Rhs) */ + return 0; +} +/*--------------------------------------------------------------------------*/ diff --git a/modules/linear_algebra/sci_gateway/c/sci_bdiag.c b/modules/linear_algebra/sci_gateway/c/sci_bdiag.c new file mode 100755 index 000000000..76e5c1abf --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/sci_bdiag.c @@ -0,0 +1,137 @@ + +/* + * 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 + * + */ + +#include "stack-c.h" +#include "gw_linear_algebra.h" +#include "Scierror.h" +#include "localization.h" +/*--------------------------------------------------------------------------*/ +static int cx1 = 1; +static int cx0 = 0; +static double c_b40 = 0.; +/*--------------------------------------------------------------------------*/ +extern int C2F(vfinite)(int *n, double *v); +extern int C2F(wbdiag)(); +extern int C2F(bdiag)(); +/*--------------------------------------------------------------------------*/ +/* [Ab [,X [,bs]]]=bdiag(A [,rMax]) */ +/*--------------------------------------------------------------------------*/ +int C2F(intbdiagr)(char *fname, long unsigned int fname_len) +{ + int ix1, ix2; + double dx1; + int fail; + double rMax; + int ix, j, k, m, n; + double t; + int nbloc, lrMax; + int m1, n1, la, le, lj, it; + int lw, lx ; + int lai, lib, lbs, lxi, lxr; + + CheckRhs(1, 2); + CheckLhs(1, 3); + + GetRhsCVar(1, MATRIX_OF_DOUBLE_DATATYPE, &it, &m, &n, &la, &lai); + CheckSquare(1, m, n); + + if (n == 0) + { + CreateVar(2, MATRIX_OF_DOUBLE_DATATYPE, &cx0, &cx0, &lx); + CreateVar(3, MATRIX_OF_DOUBLE_DATATYPE, &cx0, &cx0, &lbs); + LhsVar(1) = 1; + LhsVar(2) = 2; + LhsVar(3) = 3; + return 0; + } + ix1 = (it + 1) * m * n; + if (C2F(vfinite)(&ix1, stk(la )) == 0) + { + Err = 1; + SciError(264); + return 0; + } + if (Rhs == 2) + { + GetRhsVar(2, MATRIX_OF_DOUBLE_DATATYPE, &n1, &m1, &lrMax); + CheckScalar(2, n1, m1); + rMax = *stk(lrMax ); + } + else + { + rMax = 1.; + lj = la - 1; + ix1 = n; + for (j = 1; j <= ix1; ++j) + { + t = 0.; + ix2 = n; + for (ix = 1; ix <= ix2; ++ix) + { + t += (dx1 = *stk(lj + ix ), Abs(dx1)); + } + if (t > rMax) + { + rMax = t; + } + lj += n; + } + } + CreateCVar(2, MATRIX_OF_DOUBLE_DATATYPE, &it, &n, &n, &lxr, &lxi); + ix1 = n << 1; + CreateVar(3, MATRIX_OF_DOUBLE_DATATYPE, &cx1, &ix1, &le); + CreateVar(4, MATRIX_OF_INTEGER_DATATYPE, &cx1, &n, &lib); + CreateVar(5, MATRIX_OF_DOUBLE_DATATYPE, &cx1, &n, &lw); + if (it == 0) + { + /* subroutine bdiag(lda,n,a,epsshr,rMax,er,ei,bs,x,xi,scale,job,fail) */ + C2F(bdiag)(&n, &n, stk(la ), &c_b40, &rMax, stk(le ), stk(le + n ), + istk(lib ), stk(lxr ), stk(lxi ), stk(lw ), &cx0, &fail); + } + else + { + C2F(wbdiag)(&n, &n, stk(la ), stk(la + n * n ), &rMax, stk(le ), + stk(le + n ), istk(lib ), stk(lxr ), stk(lxi ), &t, &t, stk(lw ), &cx0, &fail); + } + + if (fail) + { + Scierror(24, _("%s: Non convergence in QR steps.\n"), fname); + return 0; + } + if (Lhs == 3) + { + nbloc = 0; + for (k = 1; k <= n; ++k) + if (*istk(lib + k - 2 + 1) >= 0) + { + ++nbloc; + } + CreateVar(6, MATRIX_OF_DOUBLE_DATATYPE, &nbloc, &cx1, &lbs); + ix = 0; + for (k = 1; k <= n; ++k) + { + if (*istk(lib + k - 2 + 1) >= 0) + { + *stk(lbs + ix ) = (double) * istk(lib + k - 2 + 1); + ++ix; + } + } + } + LhsVar(1) = 1; + LhsVar(2) = 2; + LhsVar(3) = 6; + return 0; +} /* intbdiagr_ */ + +/*--------------------------------------------------------------------------*/ diff --git a/modules/linear_algebra/sci_gateway/c/sci_chol.c b/modules/linear_algebra/sci_gateway/c/sci_chol.c new file mode 100755 index 000000000..2afe3796b --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/sci_chol.c @@ -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 + * + */ + +#include <string.h> +#include <stdio.h> +#include "stack-c.h" +#include "gw_linear_algebra.h" +#include "Scierror.h" +#include "localization.h" +/*--------------------------------------------------------------------------*/ +extern int C2F(intdpotrf)(char *fname, unsigned long fname_len); +extern int C2F(intzpotrf)(char *fname, unsigned long fname_len); +/*--------------------------------------------------------------------------*/ +int C2F(intchol)(char *fname, unsigned long fname_len) +{ + int *header1; + int CmplxA; + int ret; + + /* chol(A) */ + if (GetType(1) != sci_matrix) + { + OverLoad(1); + return 0; + } + + header1 = (int *) GetData(1); + CmplxA = header1[3]; + + switch (CmplxA) + { + case REAL: + ret = C2F(intdpotrf)("chol", 4L); + break; + case COMPLEX: + ret = C2F(intzpotrf)("chol", 4L); + break; + default: + Scierror(999, _("%s: Wrong type for input argument #%d: Real or Complex matrix expected.\n"), + fname, 1); + break; + } + return 0; +} +/*--------------------------------------------------------------------------*/ diff --git a/modules/linear_algebra/sci_gateway/c/sci_det.c b/modules/linear_algebra/sci_gateway/c/sci_det.c new file mode 100755 index 000000000..79e4b9355 --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/sci_det.c @@ -0,0 +1,54 @@ + +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) ????-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +#include <string.h> +#include <stdio.h> +#include "stack-c.h" +#include "gw_linear_algebra.h" +#include "Scierror.h" +#include "localization.h" +/*--------------------------------------------------------------------------*/ +extern int C2F(intddet)(char *fname, unsigned long fname_len); +extern int C2F(intzdet)(char *fname, unsigned long fname_len); +/*--------------------------------------------------------------------------*/ +int C2F(intdet)(char *fname, unsigned long fname_len) +{ + int *header1; + int CmplxA; + int ret; + + /* det(A) */ + if (GetType(1) != sci_matrix) + { + OverLoad(1); + return 0; + } + header1 = (int *) GetData(1); + CmplxA = header1[3]; + switch (CmplxA) + { + case REAL: + ret = C2F(intddet)("det", 3L); + break; + case COMPLEX: + ret = C2F(intzdet)("det", 3L); + break; + + default: + Scierror(999, _("%s: Wrong type for input argument #%d: Real or Complex matrix expected.\n"), + fname, 1); + break; + } + return 0; +} +/*--------------------------------------------------------------------------*/ diff --git a/modules/linear_algebra/sci_gateway/c/sci_dgeev.c b/modules/linear_algebra/sci_gateway/c/sci_dgeev.c new file mode 100755 index 000000000..fec61a332 --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/sci_dgeev.c @@ -0,0 +1,183 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2008 - INRIA - Michaël 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 + * + */ +#include "stack-c.h" +#include "vfinite.h" +#include "do_error_number.h" +#include "MALLOC.h" +#include "assembleEigenvectors.h" +#include "gw_linear_algebra.h" + +extern int C2F(dsyev) (); +extern int C2F(dlaset) (); +extern int C2F(dcopy) (); +extern int C2F(dgeev) (); + +// +// intdgeev -- +// Interface to LAPACK's DGEEV +// Computes the eigenvalues and, if required, the eigenvectors of an asymmetric real matrix. +// Possible uses : +// * With 1 LHS : +// eigenvalues=spec(A) +// where +// A : asymmetric, square real matrix of size NxN +// eigenvalues : matrix of size Nx1 with right eigenvectors, type complex +// * With 2 LHS : +// [eigenvectors,eigenvalues]=spec(A) +// where +// eigenvalues : matrix of size NxN with eigenvalues as diagonal terms +// eigenvectors : matrix of size NxN with right eigenvectors, type complex +// +int sci_dgeev(char *fname, unsigned long fname_len) +{ + int totalsize; + int iRows = 0; + int iCols = 0; + int ONE = 1; + int iWorkSize; + + int INFO; + + char JOBVR; + char JOBVL; + + double *pdblWork = NULL; + double *pdblRealData = NULL; + double *pdblFinalEigenvaluesReal = NULL; //SCILAB return Var + double *pdblFinalEigenvaluesImg = NULL; //SCILAB return Var + double *pdblFinalEigenvectorsReal = NULL; //SCILAB return Var + double *pdblFinalEigenvectorsImg = NULL; //SCILAB return Var + double *pdblEigenvalReal = NULL; //return by LAPACK + double *pdblEigenvalImg = NULL; //return by LAPACK + double *pdblRightvectors = NULL; //return by LAPACK + double *pdblLeftvectors = NULL; //return by LAPACK + + CheckRhs(1, 1); + CheckLhs(1, 2); + + GetRhsVarMatrixDouble(1, &iRows, &iCols, &pdblRealData); + totalsize = iRows * iCols; + + if (iRows != iCols) + { + Err = 1; + SciError(20); + return 0; + } + + if (iCols == 0) + { + if (Lhs == 1) + { + int lD; + int ZERO = 0; + + CreateVar(2, MATRIX_OF_COMPLEX_DATATYPE, &ZERO, &ZERO, &lD); + LhsVar(1) = 2; + return 0; + } + else if (Lhs == 2) + { + int lD; + int ZERO = 0; + int lV; + + CreateVar(2, MATRIX_OF_COMPLEX_DATATYPE, &ZERO, &ZERO, &lD); + CreateVar(3, MATRIX_OF_COMPLEX_DATATYPE, &ZERO, &ZERO, &lV); + + LhsVar(1) = 2; + LhsVar(2) = 3; + + return 0; + } + } + + if (C2F(vfinite) (&totalsize, pdblRealData) == 0) + { + SciError(264); + return 0; + } + if (Lhs == 1) + { + iAllocComplexMatrixOfDouble(2, iCols, ONE, &pdblFinalEigenvaluesReal, &pdblFinalEigenvaluesImg); + } + else + { + iAllocComplexMatrixOfDouble(2, iCols, iCols, &pdblFinalEigenvaluesReal, &pdblFinalEigenvaluesImg); + iAllocComplexMatrixOfDouble(3, iCols, iCols, &pdblFinalEigenvectorsReal, &pdblFinalEigenvectorsImg); + pdblRightvectors = (double *)MALLOC(totalsize * sizeof(double)); + } + pdblEigenvalReal = (double *)MALLOC(iCols * sizeof(double)); + pdblEigenvalImg = (double *)MALLOC(iCols * sizeof(double)); + + if (Lhs == 2) + { + iWorkSize = 4 * iCols; + } + else + { + iWorkSize = 3 * iCols; + } + pdblWork = (double *)MALLOC(iWorkSize * sizeof(double)); + + JOBVL = 'N'; // Never compute left eigenvectors + if (Lhs == 1) + { + JOBVR = 'N'; // Do not compute right eigenvectors + } + else + { + JOBVR = 'V'; // Compute right eigenvectors. + } + C2F(dgeev) (&JOBVL, &JOBVR, &iCols, pdblRealData, &iCols, pdblEigenvalReal, pdblEigenvalImg, + pdblLeftvectors, &iCols, pdblRightvectors, &iCols, pdblWork, &iWorkSize, &INFO); + // SUBROUTINE DGEEV( JOBVL, JOBVR, N, A, LDA, WR, WI, VL, LDVL, VR, LDVR, + // $ WORK, INFO ) + FREE(pdblWork); + if (INFO != 0) + { + SciError(24); + return 0; + } + if (Lhs == 1) + { + // Fill eigenvalues with computed real and imaginary parts + int INCX = 1; + int INCY = 1; + + C2F(dcopy) (&iCols, pdblEigenvalReal, &INCX, pdblFinalEigenvaluesReal, &INCY); + C2F(dcopy) (&iCols, pdblEigenvalImg, &INCX, pdblFinalEigenvaluesImg, &INCY); + // DCOPY(N,DX,INCX,DY,INCY) + } + else + { + assembleComplexEigenvaluesFromDoublePointer(iRows, pdblEigenvalReal, pdblEigenvalImg, pdblFinalEigenvaluesReal, pdblFinalEigenvaluesImg); + + assembleEigenvectorsSourceToTarget(iRows, pdblEigenvalImg, pdblRightvectors, pdblFinalEigenvectorsReal, pdblFinalEigenvectorsImg); + + } + + if (Lhs == 1) + { + LhsVar(1) = 2; + } + else + { + + LhsVar(1) = 3; + LhsVar(2) = 2; + FREE(pdblRightvectors); + } + FREE(pdblEigenvalReal); + FREE(pdblEigenvalImg); + return 0; +} diff --git a/modules/linear_algebra/sci_gateway/c/sci_dggev.c b/modules/linear_algebra/sci_gateway/c/sci_dggev.c new file mode 100755 index 000000000..bfd8dccba --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/sci_dggev.c @@ -0,0 +1,235 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2008 - INRIA - Michaël 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 + * + */ +#include "stack-c.h" +#include "elementary_functions.h" +#include "vfinite.h" +#include "do_error_number.h" +#include "MALLOC.h" +#include "msgs.h" +#include "assembleEigenvectors.h" +#include "gw_linear_algebra.h" + +extern int C2F(dsyev) (); +extern int C2F(dlaset) (); +extern int C2F(dcopy) (); +extern int C2F(dggev) (); + +// +// intdggev -- +// Interface to LAPACK's dggev +// Computes the generalized eigenvalues and, if required, the generalized +// eigenvectors of two real matrix. +// Possible uses : +// * With 1 LHS : +// eigenvalues=spec(A,B) +// where +// A : square real matrix of size NxN +// B : square real matrix of size NxN +// eigenvalues : matrix of size Nx1 with right eigenvectors, type complex +// * With 2 LHS : +// [alpha,beta]=spec(A,B) +// where +// alpha,beta : the coefficients such that the generalized eigenvalues +// are alpha(i)/beta(i), where alpha is of type complex, beta is real +// * With 3 LHS : +// [alpha,beta,R]=spec(A,B) +// where +// R : the matrix of generalized right eigenvectors, type complex +// * With 4 LHS : +// [alpha,beta,L,R]=spec(A,B) +// where +// L : the matrix of generalized left eigenvectors, type complex +// +int sci_dggev(char *fname, unsigned long fname_len) +{ + int totalsize; + int iRowsA = 0; + int iColsA = 0; + int iRowsB = 0; + int iColsB = 0; + int ONE = 1; + int iWorkSize; + int INFO; + + double *pdblWork = NULL; + char JOBVR; + char JOBVL; + + double *pdblMatrixA = NULL; + double *pdblMatrixB = NULL; + double *pdblFinalAlphaReal = NULL; //SCILAB return Var + double *pdblFinalAlphaImg = NULL; //SCILAB return Var + double *pdblFinalBeta = NULL; //SCILAB return Var + double *pdblFinalRReal = NULL; //SCILAB return Var + double *pdblFinalRImg = NULL; //SCILAB return Var + double *pdblFinalLReal = NULL; //SCILAB return Var + double *pdblFinalLImg = NULL; //SCILAB return Var + + CheckRhs(2, 2); + CheckLhs(1, 4); + + GetRhsVarMatrixDouble(1, &iRowsA, &iColsA, &pdblMatrixA); + GetRhsVarMatrixDouble(2, &iRowsB, &iColsB, &pdblMatrixB); + + totalsize = iRowsA * iColsA; + + if (iRowsA != iColsA) + { + Err = 1; + SciError(20); + return 0; + } + if (iRowsB != iColsB) + { + Err = 2; + SciError(20); + return 0; + } + if (iRowsA != iRowsB) + { + SciError(267); + return 0; + } + + if (iColsA == 0) + { + if (Lhs == 1) + { + LhsVar(1) = 1; + return 0; + } + else if (Lhs == 2) + { + LhsVar(1) = 1; + LhsVar(2) = 2; + return 0; + } + else if (Lhs == 3) + { + int ZERO = 0; + int lVR; + + CreateVar(3, MATRIX_OF_DOUBLE_DATATYPE, &ZERO, &ZERO, &lVR); + LhsVar(1) = 1; + LhsVar(2) = 2; + LhsVar(3) = 3; + return 0; + } + else if (Lhs == 4) + { + int ZERO = 0; + int lVR; + int lVL; + + CreateVar(3, MATRIX_OF_DOUBLE_DATATYPE, &ZERO, &ZERO, &lVR); + CreateVar(4, MATRIX_OF_DOUBLE_DATATYPE, &ZERO, &ZERO, &lVL); + LhsVar(1) = 1; + LhsVar(2) = 2; + LhsVar(3) = 3; + LhsVar(4) = 4; + return 0; + } + } + + if (C2F(vfinite) (&totalsize, pdblMatrixA) == 0) + { + SciError(264); + return 0; + } + if (C2F(vfinite) (&totalsize, pdblMatrixB) == 0) + { + SciError(264); + return 0; + } + + iAllocComplexMatrixOfDouble(3, iColsA, ONE, &pdblFinalAlphaReal, &pdblFinalAlphaImg); + iAllocMatrixOfDouble(4, iColsA, ONE, &pdblFinalBeta); + if (Lhs == 3 || Lhs == 4) + { + iAllocComplexMatrixOfDouble(5, iColsA, iColsA, &pdblFinalRReal, &pdblFinalRImg); + } + if (Lhs == 4) + { + iAllocComplexMatrixOfDouble(6, iColsA, iColsA, &pdblFinalLReal, &pdblFinalLImg); + } + + iWorkSize = Max(1, 8 * iColsA); + pdblWork = (double *)MALLOC(iWorkSize * sizeof(double)); + + if (Lhs == 1 || Lhs == 2) + { + JOBVL = 'N'; // Do not compute left eigenvectors + JOBVR = 'N'; // Do not compute right eigenvectors + } + else if (Lhs == 3) + { + JOBVL = 'N'; // Do not compute left eigenvectors + JOBVR = 'V'; // Compute right eigenvectors + } + else if (Lhs == 4) + { + JOBVL = 'V'; // Compute left eigenvectors + JOBVR = 'V'; // Compute right eigenvectors + } + C2F(dggev) (&JOBVL, &JOBVR, &iColsA, pdblMatrixA, &iColsA, pdblMatrixB, &iColsA, pdblFinalAlphaReal, + pdblFinalAlphaImg, pdblFinalBeta, pdblFinalLReal, &iColsA, pdblFinalRReal, &iColsA, pdblWork, &iWorkSize, &INFO); + // SUBROUTINE DGGEV( JOBVL, JOBVR, N, A, LDA, B, LDB, ALPHAR, + // $ ALPHAI, BETA, VL, LDVL, VR, LDVR, WORK, LWORK, INFO ) + FREE(pdblWork); + if (INFO != 0) + { + if (INFO <= iColsA) + { + C2F(msgs) (&ONE, &INFO); + } + else + { + SciError(24); + return 0; + } + } + if (Lhs == 1) + { + int i; + + for (i = 0; i < iColsA; i++) + { + pdblFinalAlphaReal[i] = pdblFinalAlphaReal[i] / pdblFinalBeta[i]; + pdblFinalAlphaImg[i] = pdblFinalAlphaImg[i] / pdblFinalBeta[i]; + } + LhsVar(1) = 3; + } + else if (Lhs == 2) + { + LhsVar(1) = 3; + LhsVar(2) = 4; + } + if (Lhs == 3 || Lhs == 4) + { + assembleEigenvectorsInPlace(iRowsA, pdblFinalAlphaImg, pdblFinalRReal, pdblFinalRImg); + } + if (Lhs == 3) + { + LhsVar(1) = 3; + LhsVar(2) = 4; + LhsVar(3) = 5; + } + if (Lhs == 4) + { + assembleEigenvectorsInPlace(iRowsA, pdblFinalAlphaImg, pdblFinalLReal, pdblFinalLImg); + LhsVar(1) = 3; + LhsVar(2) = 4; + LhsVar(3) = 6; + LhsVar(4) = 5; + } + return 0; +} diff --git a/modules/linear_algebra/sci_gateway/c/sci_dsyev.c b/modules/linear_algebra/sci_gateway/c/sci_dsyev.c new file mode 100755 index 000000000..ba2c1491e --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/sci_dsyev.c @@ -0,0 +1,134 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2008 - INRIA - Michaël 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 + * + */ +#include "stack-c.h" +#include "elementary_functions.h" +#include "vfinite.h" +#include "do_error_number.h" +#include "MALLOC.h" +#include "assembleEigenvectors.h" +#include "gw_linear_algebra.h" + +extern int C2F(dsyev) (); +extern int C2F(dlaset) (); +extern int C2F(dcopy) (); + +// +// intdsyev -- +// Interface to LAPACK's DSYEV +// Computes the eigenvalues and, if required, the eigenvectors of a symmetric real matrix. +// Possible uses : +// * With 1 LHS : +// eigenvalues=spec(A) +// where +// A : symmetric, square, real matrix of size NxN +// eigenvalues : matrix of size Nx1, type real +// * With 2 LHS : +// [eigenvectors,eigenvalues]=spec(A) +// where +// eigenvalues : matrix of size NxN with eigenvalues as diagonal terms, type real +// eigenvectors : matrix of size NxN, type real +// +int sci_dsyev(char *fname, unsigned long fname_len) +{ + int totalsize; + + int iRows = 0; + int iCols = 0; + int ONE = 1; + int INFO; + int iWorkSize; + + char UPLO; + char JOBZ; + + double *pdblRealData = NULL; + double *pdblWork = NULL; + double *pdblFinalEigenvalues = NULL; //SCILAB return Var + double *pdblEigenValues = NULL; //return by LAPACK + + CheckRhs(1, 1); + CheckLhs(1, 2); + + GetRhsVarMatrixDouble(1, &iRows, &iCols, &pdblRealData); + totalsize = iRows * iCols; + + if (iRows != iCols) + { + Err = 1; + SciError(20); + return 0; + } + if (iCols == 0) + { + if (Lhs == 1) + { + LhsVar(1) = 1; + return 0; + } + else if (Lhs == 2) + { + int lV; + + CreateVar(Rhs + 1, MATRIX_OF_DOUBLE_DATATYPE, &iCols, &iCols, &lV); + LhsVar(1) = 2; + LhsVar(2) = 1; + return 0; + } + } + if (C2F(vfinite) (&totalsize, pdblRealData) == 0) + { + SciError(264); + return 0; + } + if (Lhs == 1) + { + iAllocMatrixOfDouble(2, iCols, ONE, &pdblFinalEigenvalues); + } + else + { + iAllocMatrixOfDouble(2, iCols, iCols, &pdblFinalEigenvalues); + } + + iAllocMatrixOfDouble(3, iCols, ONE, &pdblEigenValues); + + iWorkSize = Max(1, 3 * iCols - 1); + pdblWork = (double *)MALLOC(iWorkSize * sizeof(double)); + + if (Lhs == 1) + { + JOBZ = 'N'; // Compute eigenvalues only; + } + else + { + JOBZ = 'V'; // Compute eigenvalues and eigenvectors. + } + UPLO = 'U'; + C2F(dsyev) (&JOBZ, &UPLO, &iCols, pdblRealData, &iCols, pdblEigenValues, pdblWork, &iWorkSize, &INFO); + // SUBROUTINE DSYEV( JOBZ, UPLO, N, A, LDA, W, WORK, LWORK, INFO ) + FREE(pdblWork); + if (INFO != 0) + { + SciError(24); + } + if (Lhs == 1) + { + C2F(dcopy) (&iCols, pdblEigenValues, &ONE, pdblFinalEigenvalues, &ONE); + LhsVar(1) = 2; + } + else + { + assembleEigenvaluesFromDoublePointer(iRows, pdblEigenValues, pdblFinalEigenvalues); + LhsVar(1) = 1; // Eigenvectors are stored in matrix A, which is variable #1 + LhsVar(2) = 2; // Eigenvalues are stored in variable #2 + } + return 0; +} diff --git a/modules/linear_algebra/sci_gateway/c/sci_hess.c b/modules/linear_algebra/sci_gateway/c/sci_hess.c new file mode 100755 index 000000000..27935bf7b --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/sci_hess.c @@ -0,0 +1,53 @@ + +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) ????-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +#include <string.h> +#include <stdio.h> +#include "stack-c.h" +#include "gw_linear_algebra.h" +#include "Scierror.h" +#include "localization.h" +/*--------------------------------------------------------------------------*/ +extern int C2F(intdgehrd)(char *fname, unsigned long fname_len); +extern int C2F(intzgehrd)(char *fname, unsigned long fname_len); +/*--------------------------------------------------------------------------*/ +int C2F(inthess)(char *fname, unsigned long fname_len) +{ + int *header1; + int CmplxA; + int ret; + + /* hess(A) */ + if (GetType(1) != sci_matrix) + { + OverLoad(1); + return 0; + } + header1 = (int *) GetData(1); + CmplxA = header1[3]; + switch (CmplxA) + { + case REAL: + ret = C2F(intdgehrd)("hess", 4L); + break; + case COMPLEX: + ret = C2F(intzgehrd)("hess", 4L); + break; + default: + Scierror(999, _("%s: Wrong type for input argument #%d: Real or Complex matrix expected.\n"), + fname, 1); + break; + } + return 0; +} +/*--------------------------------------------------------------------------*/ diff --git a/modules/linear_algebra/sci_gateway/c/sci_inv.c b/modules/linear_algebra/sci_gateway/c/sci_inv.c new file mode 100755 index 000000000..9a9ab0d82 --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/sci_inv.c @@ -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 + * + */ + +#include <string.h> +#include <stdio.h> +#include "stack-c.h" +#include "gw_linear_algebra.h" +#include "Scierror.h" +#include "localization.h" +/*--------------------------------------------------------------------------*/ +extern int C2F(intdgetri)(char *fname, unsigned long fname_len); +extern int C2F(intzgetri)(char *fname, unsigned long fname_len); +/*--------------------------------------------------------------------------*/ +int C2F(intinv)(char *fname, unsigned long fname_len) + +{ + int *header1; + int CmplxA; + int ret; + + /* inv(A) */ + if (GetType(1) != sci_matrix) + { + OverLoad(1); + return 0; + } + header1 = (int *) GetData(1); + CmplxA = header1[3]; + + switch (CmplxA) + { + case REAL: + ret = C2F(intdgetri)("inv", 3L); + break; + case COMPLEX: + ret = C2F(intzgetri)("inv", 3L); + break; + default: + Scierror(999, _("%s: Wrong type for input argument #%d: Real or Complex matrix expected.\n"), + fname, 1); + break; + } + return 0; +} +/*--------------------------------------------------------------------------*/ diff --git a/modules/linear_algebra/sci_gateway/c/sci_lsq.c b/modules/linear_algebra/sci_gateway/c/sci_lsq.c new file mode 100755 index 000000000..e86bea85f --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/sci_lsq.c @@ -0,0 +1,100 @@ + +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) ????-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +#include <string.h> +#include <stdio.h> +#include "stack-c.h" +#include "gw_linear_algebra.h" +#include "Scierror.h" +#include "localization.h" +/*--------------------------------------------------------------------------*/ +extern int C2F(complexify)(int *num); +extern int C2F(intdgelsy)(char *fname, unsigned long fname_len); +extern int C2F(intzgelsy)(char *fname, unsigned long fname_len); + +/*--------------------------------------------------------------------------*/ +int C2F(intlsq)(char *fname, unsigned long fname_len) +{ + int *header1; + int *header2; + int CmplxA; + int Cmplxb; + int ret; + int I2; + + /* lsq(A,b) */ + if (GetType(1) != sci_matrix) + { + OverLoad(1); + return 0; + } + if (GetType(2) != sci_matrix) + { + OverLoad(2); + return 0; + } + header1 = (int *) GetData(1); + header2 = (int *) GetData(2); + CmplxA = header1[3]; + Cmplxb = header2[3]; + switch (CmplxA) + { + case REAL: + switch (Cmplxb) + { + case REAL : + /* A real, b real */ + ret = C2F(intdgelsy)("lsq", 3L); + break; + + case COMPLEX : + /* A real, b complex */ + C2F(complexify)((I2 = 1, &I2)); + ret = C2F(intzgelsy)("lsq", 3L); + break; + + default: + break; + } + return 0; + + case COMPLEX : + switch (Cmplxb) + { + case REAL : + /* A complex, b real */ + C2F(complexify)((I2 = 2, &I2)); + ret = C2F(intzgelsy)("lsq", 3L); + break; + + case COMPLEX : + /* A complex, b complex */ + ret = C2F(intzgelsy)("lsq", 3L); + break; + + default: + Scierror(999, _("%s: Wrong type for input argument #%d: Real or Complex matrix expected.\n"), + fname, 2); + break; + } + return 0; + break; + + default : + Scierror(999, _("%s: Wrong type for input argument #%d: Real or Complex matrix expected.\n"), + fname, 1); + return 0; + break; + } +} +/*--------------------------------------------------------------------------*/ diff --git a/modules/linear_algebra/sci_gateway/c/sci_lu.c b/modules/linear_algebra/sci_gateway/c/sci_lu.c new file mode 100755 index 000000000..4971118ae --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/sci_lu.c @@ -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 + * + */ + +#include <string.h> +#include <stdio.h> +#include "stack-c.h" +#include "gw_linear_algebra.h" +#include "Scierror.h" +#include "localization.h" +/*--------------------------------------------------------------------------*/ +extern int C2F(intdgetrf)(char *fname, unsigned long fname_len); +extern int C2F(intzgetrf)(char *fname, unsigned long fname_len); +/*--------------------------------------------------------------------------*/ +int C2F(intlu)(char *fname, unsigned long fname_len) +{ + int *header1; + int CmplxA; + int ret; + + /* lu(A) */ + if (GetType(1) != sci_matrix) + { + OverLoad(1); + return 0; + } + header1 = (int *) GetData(1); + CmplxA = header1[3]; + switch (CmplxA) + { + case REAL: + ret = C2F(intdgetrf)("lu", 2L); + break; + + case COMPLEX: + ret = C2F(intzgetrf)("lu", 2L); + break; + + default: + Scierror(999, _("%s: Wrong type for input argument #%d: Real or Complex matrix expected.\n"), + fname, 1); + break; + } + return 0; +} +/*--------------------------------------------------------------------------*/ diff --git a/modules/linear_algebra/sci_gateway/c/sci_norm.c b/modules/linear_algebra/sci_gateway/c/sci_norm.c new file mode 100755 index 000000000..adb500042 --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/sci_norm.c @@ -0,0 +1,247 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2013 - Scilab Enterprises - Paul Bignier + * + * 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 <stdio.h> +#include "api_scilab.h" +#include "gw_linear_algebra2.h" +#include "Scierror.h" +#include "localization.h" +#include "MALLOC.h" +#include "norm.h" + +/*--------------------------------------------------------------------------*/ +int C2F(intnorm)(char *fname, unsigned long fname_len) +{ + SciErr sciErr; + // Arguments' addresses + int *pAAddr = NULL; + int *pflagAddr = NULL; + // Arguments' values + double *pA = NULL; + char *pflagChar = NULL; + doublecomplex *pAC = NULL; + double flagVal = 0; + // Arguments' properties (type, dimensions, length) + int iLen = 0; + int iType = 0; + int iRows = 0; + int iCols = 0; + // Return value + double ret = 0; + + double RowsColsTemp = 0; + int i = 0; + int isMat = 0; + int isComplex = 0; + + CheckInputArgument(pvApiCtx, 1, 2); + CheckOutputArgument(pvApiCtx, 1, 1); + + // Checking A. + sciErr = getVarAddressFromPosition(pvApiCtx, 1, &pAAddr); // Retrieving A address. + if (sciErr.iErr) + { + Scierror(999, _("%s: Can not read input argument #%d.\n"), fname, 1); + printError(&sciErr, 0); + return 0; + } + + sciErr = getVarType(pvApiCtx, pAAddr, &iType); // Retrieving A type. + if (iType != sci_matrix) + { + OverLoad(1); + return 0; + } + + if (isVarComplex(pvApiCtx, pAAddr)) + { + sciErr = getComplexZMatrixOfDouble(pvApiCtx, pAAddr, &iRows, &iCols, &pAC); + if (sciErr.iErr) + { + printError(&sciErr, 0); + Scierror(202, _("%s: Wrong type for argument #%d: Real or complex matrix expected.\n"), fname, 1); + return 0; + } + + isComplex = 1; + for (i = 0; i < iRows * iCols; ++i) // Checking A for %inf, which is not supported by Lapack. + { + if (isinf(pAC[i].r) != 0 || isinf(pAC[i].i) != 0 || ISNAN(pAC[i].r) || ISNAN(pAC[i].i)) + { + Scierror(264, _("%s: Wrong value for argument #%d: Must not contain NaN or Inf.\n"), fname, 1); + return 0; + } + } + } + else + { + sciErr = getMatrixOfDouble(pvApiCtx, pAAddr, &iRows, &iCols, &pA); + if (sciErr.iErr) + { + printError(&sciErr, 0); + Scierror(202, _("%s: Wrong type for argument #%d: Real or complex matrix expected.\n"), fname, 1); + return 0; + } + + for (i = 0 ; i < iRows * iCols ; i++) // Checking A for %inf, which is not supported by Lapack. + { + if (isinf(pA[i]) != 0 || ISNAN(pA[i])) + { + Scierror(264, _("%s: Wrong value for argument #%d: Must not contain NaN or Inf.\n"), fname, 1); + return 0; + } + } + } + if (iRows == 0) // A = [] => returning 0. + { + createScalarDouble(pvApiCtx, Rhs + 1, 0); + AssignOutputVariable(pvApiCtx, 1) = Rhs + 1; + return 0; + } + + if (iRows > 1 && iCols > 1) // If A is a matrix, only 1, 2 and %inf are allowed as second argument. + { + isMat = 1; + } + + if (iRows == 1) // If iRows == 1, then transpose A to consider it like a vector. + { + RowsColsTemp = iRows; + iRows = iCols; + iCols = (int)RowsColsTemp; + } + + if (Rhs == 1) // One argument => returning norm 2. + { + // Call normP() or normPC(). + if (isComplex) + { + ret = normPC(pAC, iRows, iCols, 2); // if A is a complex matrix, call the complex function. + } + else + { + ret = normP(pA, iRows, iCols, 2); + } + + createScalarDouble(pvApiCtx, Rhs + 1, ret); + AssignOutputVariable(pvApiCtx, 1) = Rhs + 1; + return 0; + } + + // Checking flag. + sciErr = getVarAddressFromPosition(pvApiCtx, 2, &pflagAddr); // Retrieving flag address. + if (sciErr.iErr) + { + printError(&sciErr, 0); + return 0; + } + + sciErr = getVarType(pvApiCtx, pflagAddr, &iType); // Retrieving flag type. + if (iType != sci_strings && iType != sci_matrix) + { + Scierror(999, _("%s: Wrong type for input argument #%d: String or integer expected.\n"), fname, 2); + return 0; + } + + if (iType == sci_strings) + { + if (getAllocatedSingleString(pvApiCtx, pflagAddr, &pflagChar)) // Retrieving flag dimensions. + { + Scierror(205, _("%s: Wrong size for input argument #%d: A string expected.\n"), fname, 2); + return 0; + } + + iLen = (int)strlen(pflagChar); + if (iLen != 3 && iLen != 1) + { + Scierror(116, _("%s: Wrong value for input argument #%d: %s, %s, %s, or %s expected.\n"), fname, 2, "i", "inf", "f", "fro"); + freeAllocatedSingleString(pflagChar); + return 0; + } + + if (strcmp(pflagChar, "inf") != 0 && strcmp(pflagChar, "i") != 0 && + strcmp(pflagChar, "fro") != 0 && strcmp(pflagChar, "f") != 0) // flag must be = "inf", "i", "fro" or "f". + { + Scierror(116, _("%s: Wrong value for input argument #%d: %s, %s, %s or %s expected.\n"), fname, 2, "i", "inf", "f", "fro"); + freeAllocatedSingleString(pflagChar); + return 0; + } + + if (isComplex) + { + ret = normStringC(pAC, iRows, iCols, pflagChar); // if A is a complex matrix, call the complex function. + } + else + { + ret = normString(pA, iRows, iCols, pflagChar); // flag is a string => returning the corresponding norm. + } + + createScalarDouble(pvApiCtx, Rhs + 1, ret); + AssignOutputVariable(pvApiCtx, 1) = Rhs + 1; + freeAllocatedSingleString(pflagChar); + return 0; + } + else + { + if (isVarComplex(pvApiCtx, pflagAddr)) + { + Scierror(999, _("%s: Wrong type for input argument #%d: A real expected.\n"), fname, 2); + return 0; + } + if (getScalarDouble(pvApiCtx, pflagAddr, &flagVal)) // Retrieving flag value & dimensions as a double. + { + printError(&sciErr, 0); + Scierror(999, _("%s: Wrong size for input argument #%d: A real scalar expected.\n"), fname, 2); + return 0; + } + + // Call the norm functions. + if (isinf(flagVal) == 1 && flagVal > 0) // flag = %inf + { + if (isComplex) + { + ret = normStringC(pAC, iRows, iCols, "inf"); // if A is a complex matrix, call the complex function. + } + else + { + ret = normString(pA, iRows, iCols, "inf"); // The infinite norm is computed by normString(). + } + + createScalarDouble(pvApiCtx, Rhs + 1, ret); + AssignOutputVariable(pvApiCtx, 1) = Rhs + 1; + return 0; + } + else + { + if (isMat == 1 && flagVal != 1 && flagVal != 2 && isinf(flagVal) == 0) + { + Scierror(116, _("%s: Wrong value for input argument #%d: %s, %s, %s or %s expected.\n"), fname, 2, "1", "2", "inf", "-inf"); + return 0; + } + + if (isComplex) + { + ret = normPC(pAC, iRows, iCols, flagVal); // if A is a complex matrix, call the complex function. + } + else + { + ret = normP(pA, iRows, iCols, flagVal); // flag is an integer => returning the corresponding norm. + } + + createScalarDouble(pvApiCtx, Rhs + 1, ret); + AssignOutputVariable(pvApiCtx, 1) = Rhs + 1; + return 0; + } + } + + return 0; +} +/*--------------------------------------------------------------------------*/ diff --git a/modules/linear_algebra/sci_gateway/c/sci_qr.c b/modules/linear_algebra/sci_gateway/c/sci_qr.c new file mode 100755 index 000000000..8c03de948 --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/sci_qr.c @@ -0,0 +1,144 @@ + +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) ????-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +#include <string.h> +#include <stdio.h> +#include "stack-c.h" +#include "gw_linear_algebra.h" +#include "Scierror.h" +#include "localization.h" +/*--------------------------------------------------------------------------*/ +extern int C2F(intdgeqpf3)(char *fname, unsigned long fname_len); +extern int C2F(intzgeqpf3)(char *fname, unsigned long fname_len); +extern int C2F(intdgeqpf4)(char *fname, unsigned long fname_len); +extern int C2F(intzgeqpf4)(char *fname, unsigned long fname_len); +extern int C2F(doldqr)(double *tol, char *fname, unsigned long fname_len); +extern int C2F(zoldqr)(double *tol, char *fname, unsigned long fname_len); + +/*--------------------------------------------------------------------------*/ +int C2F(intqr)(char *fname, unsigned long fname_len) +{ + int *header1; + int *header2; + int Cmplx; + int ret; + double *snd; + double tol; + + if (GetType(1) != sci_matrix) + { + OverLoad(1); + return 0; + } + header1 = (int *) GetData(1); + Cmplx = header1[3]; + + if (header1[0] == 10) + { + Cmplx = 10; + } + + if (Lhs == 4) + { + /* obsolete : [Q,R,rk,E]=qr(A) or = qr(A,tol) */ + if (Rhs == 2) + { + if (GetType(2) == sci_matrix) + { + snd = (double *) GetData(2); + tol = snd[2]; + } + else + { + Scierror(999, _("%s: Wrong type for input argument #%d: Real scalar expected.\n"), + fname, 2); + return 0; + } + } + else + { + tol = -1; + Rhs = 1; + } + + switch (Cmplx) + { + case REAL : + ret = C2F(doldqr)(&tol, "qr", 2L); + break; + case COMPLEX : + ret = C2F(zoldqr)(&tol, "qr", 2L); + break; + default : + Scierror(999, _("%s: Wrong type for input argument #%d: Real or Complex matrix expected.\n"), + fname, 1); + return 0; + } + return 0; + } + + switch (Rhs) + { + case 1: /* qr(A) */ + switch (Cmplx) + { + case REAL : + ret = C2F(intdgeqpf3)("qr", 2L); + break; + case COMPLEX : + ret = C2F(intzgeqpf3)("qr", 2L); + break; + default : + Scierror(999, _("%s: Wrong type for input argument #%d: Real or Complex matrix expected.\n"), + fname, 1); + break; + } + break; + + case 2 : /* qr(A, something) */ + header2 = (int *) GetData(2); + switch (header2[0]) + { + case STRING : + /* Economy size: ...=qr(A,"e") */ + switch (Cmplx) + { + case REAL : + ret = C2F(intdgeqpf4)("qr", 2L); + break; + + case COMPLEX : + ret = C2F(intzgeqpf4)("qr", 2L); + break; + + default : + Scierror(999, _("%s: Wrong type for input argument #%d: Real or Complex matrix expected.\n"), + fname, 1); + break; + } + break; + + default: + Scierror(999, _("%s: Wrong type for input argument #%d: Real or Complex matrix expected.\n"), + fname, 2); + break; + } + return 0; + default : + Scierror(999, _("%s: Wrong type for input argument #%d: Real or Complex matrix expected.\n"), + fname, 1); + break; + } + return 0; +} +/*--------------------------------------------------------------------------*/ diff --git a/modules/linear_algebra/sci_gateway/c/sci_rcond.c b/modules/linear_algebra/sci_gateway/c/sci_rcond.c new file mode 100755 index 000000000..0b102168f --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/sci_rcond.c @@ -0,0 +1,57 @@ + +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) ????-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +#include <string.h> +#include <stdio.h> +#include "stack-c.h" +#include "gw_linear_algebra.h" +#include "Scierror.h" +#include "localization.h" +/*--------------------------------------------------------------------------*/ +extern int C2F(intdgecon)(char *fname, unsigned long fname_len); +extern int C2F(intzgecon)(char *fname, unsigned long fname_len); +/*--------------------------------------------------------------------------*/ +int C2F(intrcond)(char *fname, unsigned long fname_len) +{ + int *header1; + int CmplxA; + int ret; + + /* rcond(A) */ + if (GetType(1) != sci_matrix) + { + OverLoad(1); + return 0; + } + + header1 = (int *) GetData(1); + CmplxA = header1[3]; + + switch (CmplxA) + { + case REAL: + ret = C2F(intdgecon)("rcond", 5L); + break; + + case COMPLEX: + ret = C2F(intzgecon)("rcond", 5L); + break; + + default: + Scierror(999, _("%s: Wrong type for input argument #%d: Real or Complex matrix expected.\n"), + fname, 1); + break; + } + return 0; +} +/*--------------------------------------------------------------------------*/ diff --git a/modules/linear_algebra/sci_gateway/c/sci_schur.c b/modules/linear_algebra/sci_gateway/c/sci_schur.c new file mode 100755 index 000000000..8fdfc1f9c --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/sci_schur.c @@ -0,0 +1,289 @@ + +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) ????-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +#include <string.h> +#include <stdio.h> +#include "stack-c.h" +#include "gw_linear_algebra.h" +#include "Scierror.h" +#include "localization.h" +/*--------------------------------------------------------------------------*/ +extern int C2F(intdgees0)(char *fname, unsigned long fname_len); +extern int C2F(intzgees0)(char *fname, unsigned long fname_len); +extern int C2F(intoschur)(char *fname, unsigned long fname_len); +extern int C2F(intzschur)(char *fname, unsigned long fname_len); +extern int C2F(intdgees1)(char *fname, unsigned long fname_len); +extern int C2F(intzgees1)(char *fname, unsigned long fname_len); +extern int C2F(intfschur)(char *fname, unsigned long fname_len); +extern int C2F(intzfschur)(char *fname, unsigned long fname_len); + +extern int C2F(intdgges)(char *fname, unsigned long fname_len); +extern int C2F(intzgges)(char *fname, unsigned long fname_len); +extern int C2F(intogschur)(char *fname, unsigned long fname_len); +extern int C2F(intozgschur)(char *fname, unsigned long fname_len); +extern int C2F(intzgschur)(char *fname, unsigned long fname_len); +extern int C2F(intgschur)(char *fname, unsigned long fname_len); + +extern int schtst(int longueur, int *header); + +/*--------------------------------------------------------------------------*/ +extern int C2F(complexify)(int *num); +/*--------------------------------------------------------------------------*/ +int C2F(intschur)(char *fname, unsigned long fname_len) +{ + int *header1; + int *header2; + int *header3; + int Cmplx, CmplxA, CmplxB; + int ret, something, X; + int which = 1; + int longueur; + + if (GetType(1) != sci_matrix) + { + OverLoad(1); + return 0; + } + + header1 = (int *) GetData(1); + CmplxA = header1[3]; + switch (Rhs) + { + case 1: /* schur(A) */ + switch (CmplxA) + { + case REAL : + ret = C2F(intdgees0)("schur", 5L); + break; + + case COMPLEX : + ret = C2F(intzgees0)("schur", 5L); + break; + + default : + Scierror(999, _("%s: Wrong type for input argument #%d: Real or Complex matrix expected.\n"), + fname, 1); + break; + } + break; + + case 2 : /* schur(A, something) */ + header2 = (int *) GetData(2); + something = header2[0]; + switch (something) + { + case FUNCTION : + switch (CmplxA) + { + case REAL : + ret = C2F(intoschur)("schur", 5L); + break; + case COMPLEX : + ret = C2F(intzschur)("schur", 5L); + break; + default : + Scierror(999, _("%s: Wrong type for input argument #%d: Real or Complex matrix expected.\n"), + fname, 2); + break; + } + break; + + case STRING : + longueur = header2[5] - header2[4]; + which = schtst(longueur, header2); + switch (which) + { + case STRINGREAL: + switch (CmplxA) + { + case REAL: + ret = C2F(intdgees1)("schur", 5L); + break; + + case COMPLEX: + Scierror(999, _("%s: Wrong type for input argument #%d: Real matrix expected.\n"), + fname, 2); + break; + } + return 0; + + case STRINGCOMPLEX: + switch (CmplxA) + { + case REAL: + ret = C2F(intdgees1)("schur", 5L); + break; + + case COMPLEX: + ret = C2F(intzgees1)("schur", 5L); + break; + } + break; + + default: + /* String is an external function */ + switch (CmplxA) + { + case REAL: + ret = C2F(intfschur)("schur", 5L); + break; + case COMPLEX: + ret = C2F(intzfschur)("schur", 5L); + break; + } + } + break; + + case SCI_DOUBLE: /*schur(A,B)*/ + if (GetType(2) != sci_matrix) + { + OverLoad(2); + return 0; + } + CmplxB = header2[3]; + if ((CmplxA == 0) && (CmplxB == 0)) + { + Cmplx = 0; + } + else if ((CmplxA == 1) && (CmplxB == 0)) + { + C2F(complexify)((X = 2, &X)); + Cmplx = 1; + } + else if ((CmplxA == 0) && (CmplxB == 1)) + { + C2F(complexify)((X = 1, &X)); + Cmplx = 1; + } + else + { + Cmplx = 1; + } + + switch (Cmplx) + { + case REAL : + ret = C2F(intdgges)("schur", 6L); + break; + + case COMPLEX : + ret = C2F(intzgges)("schur", 6L); + break; + + default : + Scierror(999, _("%s: Wrong type for input argument #%d: Real or Complex matrix expected.\n"), + fname, 1); + break; + } + break; + } /* end of switch (something) */ + break; + case 3: /* schur(A,B,something) */ + if (GetType(2) != sci_matrix) + { + OverLoad(2); + return 0; + } + header2 = (int *) GetData(2); + something = header2[0]; + CmplxB = header2[3]; + if ((CmplxA == 0) && (CmplxB == 0)) + { + Cmplx = 0; + } + else if ((CmplxA == 1) && (CmplxB == 0)) + { + C2F(complexify)((X = 2, &X)); + Cmplx = 1; + } + else if ((CmplxA == 0) && (CmplxB == 1)) + { + C2F(complexify)((X = 1, &X)); + Cmplx = 1; + } + else + { + Cmplx = 1; + } + + header3 = (int *) GetData(3); + something = header3[0]; + switch (something) + { + case FUNCTION : + switch (Cmplx) + { + case REAL : + ret = C2F(intogschur)("schur", 6L); + break; + + case COMPLEX : + ret = C2F(intozgschur)("schur", 6L); + break; + + default : + Scierror(999, _("%s: Wrong type for input argument #%d: Real or Complex matrix expected.\n"), + fname, 3); + break; + } + break; + case STRING : + switch (Cmplx) + { + case REAL: + ret = C2F(intgschur)("schur", 6L); + break; + case COMPLEX: + ret = C2F(intzgschur)("schur", 6L); + break; + default : + Scierror(999, _("%s: Wrong type for input argument #%d: Real or Complex matrix expected.\n"), + fname, 3); + break; + } + break; + default: /* switch (something) */ + break; + } + break; /* end of case 3 */ + + default : + Scierror(999, _("%s: Wrong type for input argument #%d: Real or Complex matrix expected.\n"), + fname, 1); + break; + } /*end of switch(Rhs) */ + return 0; +} +/*--------------------------------------------------------------------------*/ +int schtst (int longueur, int *header) +{ + if ( (longueur == 1) && ( Abs(header[6]) == 27 ) ) + { + return STRINGREAL; /* "r" */ + } + + if ( (longueur == 4) && ( Abs(header[6]) == 27 ) && (Abs(header[7]) == 14 ) && (Abs(header[8]) == 10 ) && ( Abs(header[9]) == 21 ) ) + { + return STRINGREAL; /* "real" */ + } + if ( (longueur == 4) && ( Abs(header[6]) == 12 ) && (Abs(header[7]) == 24 ) && (Abs(header[8]) == 22 ) && ( Abs(header[9]) == 25 ) ) + { + return STRINGCOMPLEX; /* "comp" */ + } + if ( (longueur == 7) && ( Abs(header[6]) == 12 ) && (Abs(header[7]) == 24 ) && (Abs(header[8]) == 22 ) && ( Abs(header[9]) == 25 ) && ( Abs(header[10]) == 21) && ( Abs(header[11]) == 14) && ( Abs(header[12]) == 33) ) + { + return STRINGCOMPLEX; /* "complex" */ + } + return 0; +} +/*--------------------------------------------------------------------------*/ diff --git a/modules/linear_algebra/sci_gateway/c/sci_slash.c b/modules/linear_algebra/sci_gateway/c/sci_slash.c new file mode 100755 index 000000000..461747bd7 --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/sci_slash.c @@ -0,0 +1,97 @@ + +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) ????-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +#include <string.h> +#include <stdio.h> +#include "stack-c.h" +#include "gw_linear_algebra.h" +#include "Scierror.h" +#include "localization.h" +/*--------------------------------------------------------------------------*/ +extern int C2F(complexify)(int *num); + +extern int C2F(intdgesv4)(char *fname, unsigned long fname_len); +extern int C2F(intzgesv4)(char *fname, unsigned long fname_len); + +/*--------------------------------------------------------------------------*/ +int C2F(intslash)(char *fname, unsigned long fname_len) +{ + int *header1; + int *header2; + int CmplxA; + int CmplxB; + int ret; + int X; + + /* X = slash(A,B) <=> X = A / B */ + header1 = (int *) GetData(1); + header2 = (int *) GetData(2); + CmplxA = header1[3]; + CmplxB = header2[3]; + if ((header1[2] != header2[2]) & (header1[1]*header1[2] == 1)) + { + C2F(com).fun = 0; + Fin = -Fin; + return 0; + } + switch (CmplxA) + { + case REAL: + switch (CmplxB) + { + case REAL : + /* A real, Breal */ + ret = C2F(intdgesv4)("slash", 5L); + break; + + case COMPLEX : + /* A real, B complex : complexify A */ + C2F(complexify)((X = 1, &X)); + ret = C2F(intzgesv4)("slash", 5L); + break; + + default: + Scierror(999, _("%s: Wrong type for input argument #%d: Real or Complex matrix expected.\n"), + fname, 2); + break; + } + return 0; + + case COMPLEX : + switch (CmplxB) + { + case REAL : + /* A complex, B real : complexify B */ + C2F(complexify)((X = 2, &X)); + ret = C2F(intzgesv4)("slash", 5L); + break; + + case COMPLEX : + /* A complex, B complex */ + ret = C2F(intzgesv4)("slash", 5L); + break; + + default: + Scierror(999, _("%s: Wrong type for input argument #%d: Real or Complex matrix expected.\n"), + fname, 2); + break; + } + return 0; + + default : + Scierror(999, _("%s: Wrong type for input argument #%d: Real or Complex matrix expected.\n"), + fname, 1); + return 0; + } +} +/*--------------------------------------------------------------------------*/ diff --git a/modules/linear_algebra/sci_gateway/c/sci_spec.c b/modules/linear_algebra/sci_gateway/c/sci_spec.c new file mode 100755 index 000000000..e4378fd0b --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/sci_spec.c @@ -0,0 +1,143 @@ + +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) ????-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + + +#include <string.h> +#include <stdio.h> +#include "stack-c.h" +#include "issymmetric.h" +#include "gw_linear_algebra.h" +#include "Scierror.h" +#include "localization.h" +/*--------------------------------------------------------------------------*/ +extern int C2F(complexify)(int *num); +/*--------------------------------------------------------------------------*/ +int C2F(intspec)(char *fname, unsigned long fname_len) +{ + int *header1, *header2; + int CmplxA, CmplxB; + int ret; + int Symmetric; + int X; + + switch (Rhs) + { + case 1: /* spec(A) */ + if (GetType(1) != sci_matrix) + { + OverLoad(1); + return 0; + } + header1 = (int *) GetData(1); + CmplxA = header1[3]; + X = 1; + Symmetric = C2F(issymmetric)(&X); + switch (CmplxA) + { + case REAL: + switch (Symmetric) + { + case NO : + ret = sci_dgeev("spec", 4L); + break; + case YES : + ret = sci_dsyev("spec", 4L); + break; + } + break; + + case COMPLEX: + switch (Symmetric) + { + case NO : + ret = sci_zgeev("spec", 4L); + break; + case YES: + ret = sci_zheev("spec", 4L); + break; + } + break; + + default: + Scierror(999, _("%s: Wrong type for input argument #%d: Real or Complex matrix expected.\n"), + fname, 1); + break; + } /* end switch (CmplxA) */ + break; /* end case 1 */ + + case 2: /* gspec(A,B) */ + if (GetType(1) != sci_matrix) + { + OverLoad(1); + return 0; + } + if (GetType(2) != sci_matrix) + { + OverLoad(2); + return 0; + } + header1 = (int *) GetData(1); + header2 = (int *) GetData(2); + CmplxA = header1[3]; + CmplxB = header2[3]; + switch (CmplxA) + { + case REAL: + switch (CmplxB) + { + case REAL : + /* A real, Breal */ + ret = sci_dggev("gspec", 5L); + break; + case COMPLEX : + /* A real, B complex : complexify A */ + X = 1; + C2F(complexify)(&X); + ret = sci_zggev("gspec", 5L); + break; + default: + Scierror(999, _("%s: Wrong type for input argument #%d: Real or Complex matrix expected.\n"), + fname, 2); + break; + } + break; + case COMPLEX : + switch (CmplxB) + { + case REAL : + /* A complex, B real : complexify B */ + X = 2; + C2F(complexify)(&X); + ret = sci_zggev("gspec", 5L); + break; + case COMPLEX : + /* A complex, B complex */ + ret = sci_zggev("gspec", 5L); + break; + default: + Scierror(999, _("%s: Wrong type for input argument #%d: Real or Complex matrix expected.\n"), + fname, 2); + break; + } + break; + default : + Scierror(999, _("%s: Wrong type for input argument #%d: Real or Complex matrix expected.\n"), + fname, 1); + break; + } /*end switch (CmplxA) */ + break;/* end case 2 */ + + }/* end switch (Rhs) */ + return 0; +} +/*--------------------------------------------------------------------------*/ diff --git a/modules/linear_algebra/sci_gateway/c/sci_svd.c b/modules/linear_algebra/sci_gateway/c/sci_svd.c new file mode 100755 index 000000000..b67c0a911 --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/sci_svd.c @@ -0,0 +1,137 @@ + +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) ????-2008 - INRIA + * + * This file must be used under the terms of the CeCILL. + * This source file is licensed as described in the file COPYING, which + * you should have received as part of this distribution. The terms + * are also available at + * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + * + */ + +#include <string.h> +#include <stdio.h> +#include "stack-c.h" +#include "gw_linear_algebra.h" +#include "Scierror.h" +#include "localization.h" +/*--------------------------------------------------------------------------*/ +extern int C2F(intdgesvd1)(char *fname, unsigned long fname_len); +extern int C2F(intzgesvd1)(char *fname, unsigned long fname_len); +extern int C2F(intdgesvd2)(char *fname, unsigned long fname_len); +extern int C2F(intzgesvd2)(char *fname, unsigned long fname_len); +extern int C2F(intdoldsvd)(double *tol, char *fname, unsigned long fname_len); +extern int C2F(intzoldsvd)(double *tol, char *fname, unsigned long fname_len); +/*--------------------------------------------------------------------------*/ +int C2F(intsvd)(char *fname, unsigned long fname_len) +{ + int *header1; + int *header2; + int Cmplx; + int ret; + double tol; + + if (GetType(1) != sci_matrix) + { + OverLoad(1); + return 0; + } + header1 = (int *) GetData(1); + Cmplx = header1[3]; + + switch (Rhs) + { + case 1: /* s=svd(A) or [U,s,V]=svd(A) */ + switch (Lhs) + { + case 1: + case 2: + case 3: + if (Cmplx == 0) + { + ret = C2F(intdgesvd1)("svd", 3L); + return 0; + } + if (Cmplx == 1) + { + ret = C2F(intzgesvd1)("svd", 3L); + return 0; + } + break; + + case 4: + if (Cmplx == 0) + { + ret = C2F(intdoldsvd)((tol = 0, &tol), "svd", 3L); + return 0; + } + if (Cmplx == 1) + { + ret = C2F(intzoldsvd)((tol = 0, &tol), "svd", 3L); + return 0; + } + break; + } + case 2 : /* svd(A, something) */ + header2 = (int *) GetData(2); + switch (header2[0]) + { + case SCI_DOUBLE : + if (Lhs == 4) + { + /* old svd, tolerance is passed: [U,S,V,rk]=svd(A,tol) */ + /* ret = C2F(intsvdold)("svd",2L); */ + if (Cmplx == 0) + { + tol = ((double *) header2)[2]; + ret = C2F(intdoldsvd)(&tol, "svd", 3L); + return 0; + } + if (Cmplx == 1) + { + tol = ((double *) header2)[2]; + ret = C2F(intzoldsvd)(&tol, "svd", 3L); + return 0; + } + } + else + { + /* old Economy size: [U,S,V]=svd(A,0) */ + if (Cmplx == 0) + { + ret = C2F(intdgesvd2)("svd", 3L); + return 0; + } + if (Cmplx == 1) + { + ret = C2F(intzgesvd2)("svd", 3L); + return 0; + } + } + break; + + case STRING : + /* Economy size: [U,S,V]=svd(A,"e") */ + if (Cmplx == 0) + { + ret = C2F(intdgesvd2)("svd", 3L); + return 0; + } + if (Cmplx == 1) + { + ret = C2F(intzgesvd2)("svd", 3L); + return 0; + } + break; + } + break; + + default : /* rhs > 2 */ + Scierror(999, ("%s: Wrong number of input argument(s).\n"), fname); + break; + } + return 0; +} +/*--------------------------------------------------------------------------*/ diff --git a/modules/linear_algebra/sci_gateway/c/sci_zgeev.c b/modules/linear_algebra/sci_gateway/c/sci_zgeev.c new file mode 100755 index 000000000..1f21e4edf --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/sci_zgeev.c @@ -0,0 +1,174 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2008 - INRIA - Michaël 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 + * + */ +#include "stack-c.h" +#include "elementary_functions.h" +#include "do_error_number.h" +#include "MALLOC.h" +#include "vfinite.h" +#include "assembleEigenvectors.h" +#include "gw_linear_algebra.h" + +extern int C2F(dlaset) (); +extern int C2F(zgeev) (); + +// +// intzgeev -- +// Interface to LAPACK's ZGEEV +// Computes the eigenvalues and, if required, the eigenvectors of a complex asymmetric matrix. +// Possible uses : +// * With 1 LHS : +// eigenvalues=spec(A) +// where +// A : symmetric, square matrix of size NxN +// eigenvalues : matrix of size Nx1, type complex +// * With 2 LHS : +// [eigenvectors,eigenvalues]=spec(A) +// where +// A : square matrix of size NxN +// eigenvalues : matrix of size NxN with eigenvalues as diagonal terms, type complex +// eigenvectors : matrix of size NxN, type complex +// +int sci_zgeev(char *fname, unsigned long fname_len) +{ + + int totalsize; + int iRows = 0; + int iCols = 0; + int ONE = 1; + int iWorkSize; + int INFO; + + char JOBVL; + char JOBVR; + + double *pdblDataReal = NULL; + double *pdblDataImg = NULL; + double *pdblFinalEigenvaluesReal = NULL; //SCILAB return Var + double *pdblFinalEigenvaluesImg = NULL; //SCILAB return Var + double *pdblFinalEigenvectorsReal = NULL; //SCILAB return Var + double *pdblFinalEigenvectorsImg = NULL; //SCILAB return Var + doublecomplex *pdblData = NULL; + doublecomplex *pdblEigenValues = NULL; //return by LAPACK + doublecomplex *pdblWork = NULL; // Used by LAPACK + doublecomplex *pdblRWork = NULL; // Used by LAPACK + doublecomplex *pdblLeftvectors = NULL; // Used by LAPACK + doublecomplex *pdblRightvectors = NULL; // Used by LAPACK + + CheckRhs(1, 1); + CheckLhs(1, 2); + + GetRhsVarMatrixComplex(1, &iRows, &iCols, &pdblDataReal, &pdblDataImg); + totalsize = iRows * iCols; + pdblData = oGetDoubleComplexFromPointer(pdblDataReal, pdblDataImg, totalsize); + + if (iRows != iCols) + { + Err = 1; + SciError(20); + vFreeDoubleComplexFromPointer(pdblData); + return 0; + } + if (iCols == 0) + { + if (Lhs == 1) + { + int lD; + + CreateVar(2, MATRIX_OF_COMPLEX_DATATYPE, &iCols, &iCols, &lD); + LhsVar(1) = 2; + vFreeDoubleComplexFromPointer(pdblData); + return 0; + } + else if (Lhs == 2) + { + int lD; + int lV; + + CreateVar(2, MATRIX_OF_COMPLEX_DATATYPE, &iCols, &iCols, &lD); + CreateVar(3, MATRIX_OF_DOUBLE_DATATYPE, &iCols, &iCols, &lV); + LhsVar(1) = 2; + LhsVar(2) = 3; + vFreeDoubleComplexFromPointer(pdblData); + return 0; + } + } + if (C2F(vfiniteComplex) (&totalsize, pdblData) == 0) + { + SciError(264); + vFreeDoubleComplexFromPointer(pdblData); + return 0; + } + if (Lhs == 1) + { + iAllocComplexMatrixOfDouble(2, iCols, ONE, &pdblFinalEigenvaluesReal, &pdblFinalEigenvaluesImg); + } + else + { + iAllocComplexMatrixOfDouble(2, iCols, iCols, &pdblFinalEigenvaluesReal, &pdblFinalEigenvaluesImg); + iAllocComplexMatrixOfDouble(3, iCols, iCols, &pdblFinalEigenvectorsReal, &pdblFinalEigenvectorsImg); + pdblRightvectors = (doublecomplex *) MALLOC(sizeof(doublecomplex) * totalsize); + } + + pdblEigenValues = (doublecomplex *) MALLOC(sizeof(doublecomplex) * iCols); + + iWorkSize = Max(1, 2 * iCols); + pdblWork = (doublecomplex *) MALLOC(sizeof(doublecomplex) * iWorkSize); + pdblRWork = (doublecomplex *) MALLOC(sizeof(doublecomplex) * 2 * iCols); + + JOBVL = 'N'; + if (Lhs == 1) + { + JOBVR = 'N'; // Compute eigenvalues only; + } + else + { + JOBVR = 'V'; // Compute eigenvalues and eigenvectors. + } + C2F(zgeev) (&JOBVL, &JOBVR, &iCols, pdblData, &iCols, pdblEigenValues, + pdblLeftvectors, &iCols, pdblRightvectors, &iCols, pdblWork, &iWorkSize, pdblRWork, &INFO); + // SUBROUTINE ZGEEV( JOBVL, JOBVR, N, A, LDA, W, VL, LDVL, + // $ VR, LDVR, WORK, LWORK, RWORK, INFO ) + FREE(pdblWork); + FREE(pdblRWork); + if (INFO != 0) + { + SciError(24); + } + if (Lhs == 2) + { + // Transfert eigenvalues + assembleComplexEigenvaluesFromDoubleComplexPointer(iRows, pdblEigenValues, pdblFinalEigenvaluesReal, pdblFinalEigenvaluesImg); + // Transfert eigenvectors from doublecomplex to real and imaginary parts + vGetPointerFromDoubleComplex(pdblRightvectors, totalsize, pdblFinalEigenvectorsReal, pdblFinalEigenvectorsImg); + } + else + { + // Transfert eigenvalues from doublecomplex to real and imaginary parts + vGetPointerFromDoubleComplex(pdblEigenValues, iCols, pdblFinalEigenvaluesReal, pdblFinalEigenvaluesImg); + } + if (Lhs == 1) + { + LhsVar(1) = 2; + } + else + { + LhsVar(1) = 3; + LhsVar(2) = 2; + } + FREE(pdblEigenValues); + if (Lhs == 2) + { + FREE(pdblRightvectors); + } + vFreeDoubleComplexFromPointer(pdblData); + return 0; +} diff --git a/modules/linear_algebra/sci_gateway/c/sci_zggev.c b/modules/linear_algebra/sci_gateway/c/sci_zggev.c new file mode 100755 index 000000000..f6059a039 --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/sci_zggev.c @@ -0,0 +1,622 @@ +/* +* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +* Copyright (C) 2008 - INRIA - Michaël 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 +* +*/ +#include "stack-c.h" +#include "elementary_functions.h" +#include "do_error_number.h" +#include "MALLOC.h" +#include "msgs.h" +#include "vfinite.h" +#include "assembleEigenvectors.h" +#include "gw_linear_algebra.h" + +extern int C2F(dsyev) (); +extern int C2F(dlaset) (); +extern int C2F(dcopy) (); +extern int C2F(zggev) (); +extern int C2F(wwdiv) (double *ar, double *ai, double *br, double *bi, double *cr, double *ci, int *ierr); +extern int C2F(dggev) (); + +static int isarrayzero(int size, double *values); +static int intzggev_real(char *fname); +static int intzggev_complex(char *fname); + +// +// intzggev -- +// Interface to LAPACK's zggev +// Computes the generalized eigenvalues and, if required, the generalized +// eigenvectors of two real matrix. +// Possible uses : +// * With 1 LHS : +// eigenvalues=spec(A,B) +// where +// A : square real matrix of size NxN +// B : square real matrix of size NxN +// eigenvalues : matrix of size Nx1 with right eigenvectors, type complex +// * With 2 LHS : +// [alpha,beta]=spec(A,B) +// where +// alpha,beta : the coefficients such that the generalized eigenvalues +// are alpha(i)/beta(i), where alpha is of type complex, beta is real +// * With 3 LHS : +// [alpha,beta,R]=spec(A,B) +// where +// R : the matrix of generalized right eigenvectors, type complex +// * With 4 LHS : +// [alpha,beta,L,R]=spec(A,B) +// where +// L : the matrix of generalized left eigenvectors, type complex +// +int sci_zggev(char *fname, unsigned long fname_len) +{ + int totalsizeA; + int totalsizeB; + int iRowsA = 0; + int iColsA = 0; + int iRowsB = 0; + int iColsB = 0; + int isImaginaryMatrixAZero; + int isImaginaryMatrixBZero; + + double *pdblMatrixAReal = NULL; + double *pdblMatrixAImg = NULL; + double *pdblMatrixBReal = NULL; + double *pdblMatrixBImg = NULL; + + CheckRhs(2, 2); + + GetRhsVarMatrixComplex(1, &iRowsA, &iColsA, &pdblMatrixAReal, &pdblMatrixAImg); + totalsizeA = iRowsA * iColsA; + GetRhsVarMatrixComplex(2, &iRowsB, &iColsB, &pdblMatrixBReal, &pdblMatrixBImg); + totalsizeB = iRowsB * iColsB; + + // Check the imaginary parts of both matrices. + isImaginaryMatrixAZero = isarrayzero(totalsizeA, pdblMatrixAImg); + isImaginaryMatrixBZero = isarrayzero(totalsizeB, pdblMatrixBImg); + if (isImaginaryMatrixAZero == 1 && isImaginaryMatrixBZero == 1) + { + // If both imaginary parts are zero, then the used solver is DGGEV. + // This is a work-around for bug #3652 + // http://bugzilla.scilab.org/show_bug.cgi?id=3652 + // When LAPACK bug is solved, this thin layer may be removed. + // For simplicity reasons, the two branches are separated rather than factored. + // Moreover, when the bug is solved (if ever ?), the current layer will be easier to disconnect. + intzggev_real(fname); + } + else + { + // If one imaginary part non-zero, then the used solver is ZGGEV. + intzggev_complex(fname); + } + return 0; +} + +// +// isarrayzero -- +// Returns 1 if the given array is zero. +// Arguments +// size : the size of the array +// values : the values +// +static int isarrayzero(int size, double *values) +{ + int index; + int result; + + result = 1; + for (index = 0; index < size; index++) + { + if (values[index] != 0) + { + result = 0; + break; + } + } + return result; +} + +// +// intzggev_complex -- +// Perform the interface in the case where A and B are general complex +// matrices. +// Interface to LAPACK's zggev +// +static int intzggev_complex(char *fname) +{ + int totalsize; + int iRowsA = 0; + int iColsA = 0; + int iRowsB = 0; + int iColsB = 0; + int ONE = 1; + int iWorkSize; + int INFO; + int iRWorkSize; + + char JOBVR; + char JOBVL; + + double *pdblMatrixAReal = NULL; + double *pdblMatrixAImg = NULL; + double *pdblMatrixBReal = NULL; + double *pdblMatrixBImg = NULL; + double *pdblRWork = NULL; // Used by LAPACK + double *pdblFinalAlphaReal = NULL; //SCILAB return Var + double *pdblFinalAlphaImg = NULL; //SCILAB return Var + double *pdblFinalBetaReal = NULL; //SCILAB return Var, in complex case + double *pdblFinalBetaImg = NULL; //SCILAB return Var, in complex case + double *pdblFinalRReal = NULL; //SCILAB return Var + double *pdblFinalRImg = NULL; //SCILAB return Var + double *pdblFinalLReal = NULL; //SCILAB return Var + double *pdblFinalLImg = NULL; //SCILAB return Var + doublecomplex *pdblWork = NULL; + doublecomplex *pdblMatrixA = NULL; + doublecomplex *pdblMatrixB = NULL; + doublecomplex *pdblLeftvectors = NULL; // Used by LAPACK + doublecomplex *pdblRightvectors = NULL; // Used by LAPACK + doublecomplex *pdblAlpha = NULL; //Used by LAPACK + doublecomplex *pdblBeta = NULL; //Used by LAPACK + + CheckRhs(2, 2); + CheckLhs(1, 4); + + GetRhsVarMatrixComplex(1, &iRowsA, &iColsA, &pdblMatrixAReal, &pdblMatrixAImg); + totalsize = iRowsA * iColsA; + pdblMatrixA = oGetDoubleComplexFromPointer(pdblMatrixAReal, pdblMatrixAImg, totalsize); + GetRhsVarMatrixComplex(2, &iRowsB, &iColsB, &pdblMatrixBReal, &pdblMatrixBImg); + pdblMatrixB = oGetDoubleComplexFromPointer(pdblMatrixBReal, pdblMatrixBImg, totalsize); + + if (iRowsA != iColsA) + { + Err = 1; + SciError(20); + vFreeDoubleComplexFromPointer(pdblMatrixA); + vFreeDoubleComplexFromPointer(pdblMatrixB); + return 0; + } + if (iRowsB != iColsB) + { + Err = 2; + SciError(20); + vFreeDoubleComplexFromPointer(pdblMatrixA); + vFreeDoubleComplexFromPointer(pdblMatrixB); + return 0; + } + if (iRowsA != iRowsB) + { + SciError(267); + vFreeDoubleComplexFromPointer(pdblMatrixA); + vFreeDoubleComplexFromPointer(pdblMatrixB); + return 0; + } + + if (iColsA == 0) + { + if (Lhs == 1) + { + LhsVar(1) = 1; + vFreeDoubleComplexFromPointer(pdblMatrixA); + vFreeDoubleComplexFromPointer(pdblMatrixB); + return 0; + } + else if (Lhs == 2) + { + LhsVar(1) = 1; + LhsVar(2) = 2; + vFreeDoubleComplexFromPointer(pdblMatrixA); + vFreeDoubleComplexFromPointer(pdblMatrixB); + return 0; + } + else if (Lhs == 3) + { + int ZERO = 0; + int lVR; + + CreateVar(3, MATRIX_OF_COMPLEX_DATATYPE, &ZERO, &ZERO, &lVR); + LhsVar(1) = 1; + LhsVar(2) = 2; + LhsVar(3) = 3; + vFreeDoubleComplexFromPointer(pdblMatrixA); + vFreeDoubleComplexFromPointer(pdblMatrixB); + return 0; + } + else if (Lhs == 4) + { + int ZERO = 0; + int lVR; + int lVL; + + CreateVar(3, MATRIX_OF_COMPLEX_DATATYPE, &ZERO, &ZERO, &lVR); + CreateVar(4, MATRIX_OF_COMPLEX_DATATYPE, &ZERO, &ZERO, &lVL); + LhsVar(1) = 1; + LhsVar(2) = 2; + LhsVar(3) = 3; + LhsVar(4) = 4; + vFreeDoubleComplexFromPointer(pdblMatrixA); + vFreeDoubleComplexFromPointer(pdblMatrixB); + return 0; + } + } + + if (C2F(vfiniteComplex) (&totalsize, pdblMatrixA) == 0) + { + SciError(264); + vFreeDoubleComplexFromPointer(pdblMatrixA); + vFreeDoubleComplexFromPointer(pdblMatrixB); + return 0; + } + if (C2F(vfiniteComplex) (&totalsize, pdblMatrixB) == 0) + { + SciError(264); + vFreeDoubleComplexFromPointer(pdblMatrixA); + vFreeDoubleComplexFromPointer(pdblMatrixB); + return 0; + } + iAllocComplexMatrixOfDouble(3, iColsA, ONE, &pdblFinalAlphaReal, &pdblFinalAlphaImg); + iAllocComplexMatrixOfDouble(4, iColsA, ONE, &pdblFinalBetaReal, &pdblFinalBetaImg); + pdblAlpha = (doublecomplex *) MALLOC(iColsA * sizeof(doublecomplex)); + pdblBeta = (doublecomplex *) MALLOC(iColsA * sizeof(doublecomplex)); + + if (Lhs == 3 || Lhs == 4) + { + iAllocComplexMatrixOfDouble(5, iColsA, iColsA, &pdblFinalRReal, &pdblFinalRImg); + pdblRightvectors = (doublecomplex *) MALLOC(totalsize * sizeof(doublecomplex)); + } + if (Lhs == 4) + { + iAllocComplexMatrixOfDouble(6, iColsA, iColsA, &pdblFinalLReal, &pdblFinalLImg); + pdblLeftvectors = (doublecomplex *) MALLOC(totalsize * sizeof(doublecomplex)); + } + + iWorkSize = Max(1, 2 * iColsA); + pdblWork = (doublecomplex *) MALLOC(iWorkSize * sizeof(doublecomplex)); + iRWorkSize = Max(1, 8 * iColsA); + pdblRWork = (double *)MALLOC(sizeof(double) * iRWorkSize); + + if (Lhs == 1 || Lhs == 2) + { + JOBVL = 'N'; // Do not compute left eigenvectors + JOBVR = 'N'; // Do not compute right eigenvectors + } + else if (Lhs == 3) + { + JOBVL = 'N'; // Do not compute left eigenvectors + JOBVR = 'V'; // Compute right eigenvectors + } + else if (Lhs == 4) + { + JOBVL = 'V'; // Compute left eigenvectors + JOBVR = 'V'; // Compute right eigenvectors + } + C2F(zggev) (&JOBVL, &JOBVR, &iColsA, pdblMatrixA, &iColsA, pdblMatrixB, &iColsA, pdblAlpha, + pdblBeta, pdblLeftvectors, &iColsA, pdblRightvectors, &iColsA, pdblWork, &iWorkSize, pdblRWork, &INFO); + // ZGGEV( JOBVL, JOBVR, N, A, LDA, B, LDB, ALPHA, BETA, + // $ VL, LDVL, VR, LDVR, WORK, LWORK, RWORK, INFO ) + + FREE(pdblWork); + FREE(pdblRWork); + if (INFO != 0) + { + if (INFO <= iColsA) + { + C2F(msgs) (&ONE, &INFO); + } + else + { + SciError(24); + return 0; + } + } + if (Lhs == 1) + { + /*int i; + * int ierr; + * double ar, ai, br, bi, cr, ci; + * for(i = 0 ; i < iColsA ; i++) + * { + * ar = pdblAlpha[i].r; + * ai = pdblAlpha[i].i; + * br = pdblBeta[i].r; + * bi = pdblBeta[i].i; + * C2F(wwdiv)(&ar, &ai, &br, &bi, &cr, &ci, &ierr); + * pdblFinalAlphaReal[i]=cr; + * pdblFinalAlphaImg[i]=ci; + * } */ + double *ar, *ai, *br, *bi, *rr, *ri; + int ia = 2, ib = 2, ir = 1, ierr; + + LhsVar(1) = 3; + ar = &pdblAlpha[0].r; + ai = &pdblAlpha[0].i; + br = &pdblBeta[0].r; + bi = &pdblBeta[0].i; + rr = pdblFinalAlphaReal; + ri = pdblFinalAlphaImg; + C2F(wwrdiv) (ar, ai, &ia, br, bi, &ib, rr, ri, &ir, &iColsA, &ierr); + } + if (Lhs == 2 || Lhs == 3 || Lhs == 4) + { + // Transfert eigenvalues from doublecomplex to real and imaginary parts + vGetPointerFromDoubleComplex(pdblAlpha, iColsA, pdblFinalAlphaReal, pdblFinalAlphaImg); + vGetPointerFromDoubleComplex(pdblBeta, iColsA, pdblFinalBetaReal, pdblFinalBetaImg); + } + if (Lhs == 2) + { + LhsVar(1) = 3; + LhsVar(2) = 4; + } + if (Lhs == 3 || Lhs == 4) + { + // Transfert eigenvectors from doublecomplex to real and imaginary parts + vGetPointerFromDoubleComplex(pdblRightvectors, totalsize, pdblFinalRReal, pdblFinalRImg); + } + if (Lhs == 3) + { + LhsVar(1) = 3; + LhsVar(2) = 4; + LhsVar(3) = 5; + } + if (Lhs == 4) + { + // Transfert eigenvectors from doublecomplex to real and imaginary parts + vGetPointerFromDoubleComplex(pdblLeftvectors, totalsize, pdblFinalLReal, pdblFinalLImg); + LhsVar(1) = 3; + LhsVar(2) = 4; + LhsVar(3) = 6; + LhsVar(4) = 5; + } + FREE(pdblAlpha); + FREE(pdblBeta); + if (Lhs == 3 || Lhs == 4) + { + FREE(pdblRightvectors); + } + if (Lhs == 4) + { + FREE(pdblLeftvectors); + } + vFreeDoubleComplexFromPointer(pdblMatrixA); + vFreeDoubleComplexFromPointer(pdblMatrixB); + return 0; +} + +// +// intzggev_real -- +// Perform the interface in the case where A and B are complex +// matrices where the imaginary parts are ZERO. +// Interface to LAPACK's dggev +// The following source code is an adaptation of intdggev. +// +static int intzggev_real(char *fname) +{ + int totalsize; + int iRowsA = 0; + int iColsA = 0; + int iRowsB = 0; + int iColsB = 0; + int ONE = 1; + int iWorkSize = 0; + int INFO = 0; + + char JOBVR; + char JOBVL; + + double *pdblMatrixAReal = NULL; + double *pdblMatrixAImg = NULL; + double *pdblMatrixBReal = NULL; + double *pdblMatrixBImg = NULL; + double *pdblFinalAlphaReal = NULL; //SCILAB return Var + double *pdblFinalAlphaImg = NULL; //SCILAB return Var + double *pdblFinalBeta = NULL; //SCILAB return Var, in real-only case + double *pdblFinalRReal = NULL; //SCILAB return Var + double *pdblFinalRImg = NULL; //SCILAB return Var + double *pdblFinalLReal = NULL; //SCILAB return Var + double *pdblFinalLImg = NULL; //SCILAB return Var + double *pdblWork = NULL; + doublecomplex *pdblMatrixA = NULL; + doublecomplex *pdblMatrixB = NULL; + doublecomplex *pdblLeftvectors = NULL; // Used by LAPACK + doublecomplex *pdblRightvectors = NULL; // Used by LAPACK + + CheckRhs(2, 2); + CheckLhs(1, 4); + + GetRhsVarMatrixComplex(1, &iRowsA, &iColsA, &pdblMatrixAReal, &pdblMatrixAImg); + totalsize = iRowsA * iColsA; + pdblMatrixA = oGetDoubleComplexFromPointer(pdblMatrixAReal, pdblMatrixAImg, totalsize); + GetRhsVarMatrixComplex(2, &iRowsB, &iColsB, &pdblMatrixBReal, &pdblMatrixBImg); + pdblMatrixB = oGetDoubleComplexFromPointer(pdblMatrixBReal, pdblMatrixBImg, totalsize); + + if (iRowsA != iColsA) + { + Err = 1; + SciError(20); + vFreeDoubleComplexFromPointer(pdblMatrixA); + vFreeDoubleComplexFromPointer(pdblMatrixB); + return 0; + } + if (iRowsB != iColsB) + { + Err = 2; + SciError(20); + vFreeDoubleComplexFromPointer(pdblMatrixA); + vFreeDoubleComplexFromPointer(pdblMatrixB); + return 0; + } + if (iRowsA != iRowsB) + { + SciError(267); + vFreeDoubleComplexFromPointer(pdblMatrixA); + vFreeDoubleComplexFromPointer(pdblMatrixB); + return 0; + } + + if (iColsA == 0) + { + if (Lhs == 1) + { + LhsVar(1) = 1; + vFreeDoubleComplexFromPointer(pdblMatrixA); + vFreeDoubleComplexFromPointer(pdblMatrixB); + return 0; + } + else if (Lhs == 2) + { + LhsVar(1) = 1; + LhsVar(2) = 2; + vFreeDoubleComplexFromPointer(pdblMatrixA); + vFreeDoubleComplexFromPointer(pdblMatrixB); + return 0; + } + else if (Lhs == 3) + { + int ZERO = 0; + int lVR; + + CreateVar(3, MATRIX_OF_COMPLEX_DATATYPE, &ZERO, &ZERO, &lVR); + LhsVar(1) = 1; + LhsVar(2) = 2; + LhsVar(3) = 3; + vFreeDoubleComplexFromPointer(pdblMatrixA); + vFreeDoubleComplexFromPointer(pdblMatrixB); + return 0; + } + else if (Lhs == 4) + { + int ZERO = 0; + int lVR; + int lVL; + + CreateVar(3, MATRIX_OF_COMPLEX_DATATYPE, &ZERO, &ZERO, &lVR); + CreateVar(4, MATRIX_OF_COMPLEX_DATATYPE, &ZERO, &ZERO, &lVL); + LhsVar(1) = 1; + LhsVar(2) = 2; + LhsVar(3) = 3; + LhsVar(4) = 4; + vFreeDoubleComplexFromPointer(pdblMatrixA); + vFreeDoubleComplexFromPointer(pdblMatrixB); + return 0; + } + } + + if (C2F(vfiniteComplex) (&totalsize, pdblMatrixA) == 0) + { + SciError(264); + vFreeDoubleComplexFromPointer(pdblMatrixA); + vFreeDoubleComplexFromPointer(pdblMatrixB); + return 0; + } + if (C2F(vfiniteComplex) (&totalsize, pdblMatrixB) == 0) + { + SciError(264); + vFreeDoubleComplexFromPointer(pdblMatrixA); + vFreeDoubleComplexFromPointer(pdblMatrixB); + return 0; + } + iAllocComplexMatrixOfDouble(3, iColsA, ONE, &pdblFinalAlphaReal, &pdblFinalAlphaImg); + iAllocMatrixOfDouble(4, iColsA, ONE, &pdblFinalBeta); + + if (Lhs == 3 || Lhs == 4) + { + iAllocComplexMatrixOfDouble(5, iColsA, iColsA, &pdblFinalRReal, &pdblFinalRImg); + } + if (Lhs == 4) + { + iAllocComplexMatrixOfDouble(6, iColsA, iColsA, &pdblFinalLReal, &pdblFinalLImg); + } + + iWorkSize = Max(1, 8 * iColsA); + pdblWork = (double *)MALLOC(iWorkSize * sizeof(double)); + + if (Lhs == 1 || Lhs == 2) + { + JOBVL = 'N'; // Do not compute left eigenvectors + JOBVR = 'N'; // Do not compute right eigenvectors + } + else if (Lhs == 3) + { + JOBVL = 'N'; // Do not compute left eigenvectors + JOBVR = 'V'; // Compute right eigenvectors + } + else if (Lhs == 4) + { + JOBVL = 'V'; // Compute left eigenvectors + JOBVR = 'V'; // Compute right eigenvectors + } + C2F(dggev) (&JOBVL, &JOBVR, &iColsA, pdblMatrixAReal, &iColsA, pdblMatrixBReal, &iColsA, pdblFinalAlphaReal, + pdblFinalAlphaImg, pdblFinalBeta, pdblFinalLReal, &iColsA, pdblFinalRReal, &iColsA, pdblWork, &iWorkSize, &INFO); + // SUBROUTINE DGGEV( JOBVL, JOBVR, N, A, LDA, B, LDB, ALPHAR, + // $ ALPHAI, BETA, VL, LDVL, VR, LDVR, WORK, LWORK, INFO ) + if (pdblWork) + { + FREE(pdblWork); + pdblWork = NULL; + } + if (INFO != 0) + { + if (INFO <= iColsA) + { + C2F(msgs) (&ONE, &INFO); + } + else + { + SciError(24); + vFreeDoubleComplexFromPointer(pdblMatrixA); + vFreeDoubleComplexFromPointer(pdblMatrixB); + return 0; + } + } + if (Lhs == 1) + { + int i; + + for (i = 0; i < iColsA; i++) + { + pdblFinalAlphaReal[i] = pdblFinalAlphaReal[i] / pdblFinalBeta[i]; + pdblFinalAlphaImg[i] = pdblFinalAlphaImg[i] / pdblFinalBeta[i]; + } + LhsVar(1) = 3; + } + if (Lhs == 2) + { + LhsVar(1) = 3; + LhsVar(2) = 4; + } + if (Lhs == 3 || Lhs == 4) + { + assembleEigenvectorsInPlace(iRowsA, pdblFinalAlphaImg, pdblFinalRReal, pdblFinalRImg); + } + if (Lhs == 3) + { + LhsVar(1) = 3; + LhsVar(2) = 4; + LhsVar(3) = 5; + } + if (Lhs == 4) + { + assembleEigenvectorsInPlace(iRowsA, pdblFinalAlphaImg, pdblFinalLReal, pdblFinalLImg); + LhsVar(1) = 3; + LhsVar(2) = 4; + LhsVar(3) = 6; + LhsVar(4) = 5; + } + if (Lhs == 3 || Lhs == 4) + { + FREE(pdblRightvectors); + } + if (Lhs == 4) + { + FREE(pdblLeftvectors); + } + vFreeDoubleComplexFromPointer(pdblMatrixA); + vFreeDoubleComplexFromPointer(pdblMatrixB); + return 0; +} diff --git a/modules/linear_algebra/sci_gateway/c/sci_zheev.c b/modules/linear_algebra/sci_gateway/c/sci_zheev.c new file mode 100755 index 000000000..7d7ebf0a7 --- /dev/null +++ b/modules/linear_algebra/sci_gateway/c/sci_zheev.c @@ -0,0 +1,155 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2008 - INRIA - Michaël 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 + * + */ +#include "stack-c.h" +#include "elementary_functions.h" +#include "do_error_number.h" +#include "MALLOC.h" +#include "vfinite.h" +#include "assembleEigenvectors.h" +#include "gw_linear_algebra.h" + +extern int C2F(dlaset) (); +extern int C2F(zheev) (); + +// +// intzheev -- +// Interface to LAPACK's ZHEEV +// Computes the eigenvalues and, if required, the eigenvectors of a complex symmetric matrix. +// Possible uses : +// * With 1 LHS : +// eigenvalues=spec(A) +// where +// A : symmetric, square matrix of size NxN +// eigenvalues : matrix of size Nx1, type real +// * With 2 LHS : +// [eigenvectors,eigenvalues]=spec(A) +// where +// A : square matrix of size NxN +// eigenvalues : matrix of size NxN with eigenvalues as diagonal terms, type real +// eigenvectors : matrix of size NxN, type complex +// +int sci_zheev(char *fname, unsigned long fname_len) +{ + int totalsize; + int iRows = 0; + int iCols = 0; + int ONE = 1; + int iWorkSize; + int iRWorkSize; + int INFO; + + char JOBZ; + char UPLO; + + double *pdblDataReal = NULL; + double *pdblDataImg = NULL; + double *pdblFinalEigenvalues = NULL; //SCILAB return Var + double *pdblEigenValues = NULL; //return by LAPACK + double *pdblRWork = NULL; // Used by LAPACK + double *pdblFinalEigenvectorsReal; // returned by Scilab + double *pdblFinalEigenvectorsImg; // returned by Scilab + doublecomplex *pdblData = NULL; + doublecomplex *pdblWork = NULL; // Used by LAPACK + + CheckRhs(1, 1); + CheckLhs(1, 2); + + GetRhsVarMatrixComplex(1, &iRows, &iCols, &pdblDataReal, &pdblDataImg); + totalsize = iRows * iCols; + pdblData = oGetDoubleComplexFromPointer(pdblDataReal, pdblDataImg, totalsize); + + if (iRows != iCols) + { + Err = 1; + SciError(20); + vFreeDoubleComplexFromPointer(pdblData); + return 0; + } + if (iCols == 0) + { + if (Lhs == 1) + { + LhsVar(1) = 1; + vFreeDoubleComplexFromPointer(pdblData); + return 0; + } + else if (Lhs == 2) + { + int lD; + + CreateVar(2, MATRIX_OF_DOUBLE_DATATYPE, &iCols, &iCols, &lD); + LhsVar(1) = 1; + LhsVar(2) = 2; + vFreeDoubleComplexFromPointer(pdblData); + return 0; + } + } + if (C2F(vfiniteComplex) (&totalsize, pdblData) == 0) + { + SciError(264); + vFreeDoubleComplexFromPointer(pdblData); + return 0; + } + if (Lhs == 1) + { + iAllocMatrixOfDouble(2, iCols, ONE, &pdblFinalEigenvalues); + } + else + { + iAllocMatrixOfDouble(2, iCols, iCols, &pdblFinalEigenvalues); + iAllocComplexMatrixOfDouble(3, iCols, iCols, &pdblFinalEigenvectorsReal, &pdblFinalEigenvectorsImg); + } + + pdblEigenValues = (double *)MALLOC(sizeof(double) * iCols); + + iWorkSize = Max(1, 2 * iCols - 1); + pdblWork = (doublecomplex *) MALLOC(sizeof(doublecomplex) * iWorkSize); + iRWorkSize = Max(1, 3 * iCols - 2); + pdblRWork = (double *)MALLOC(sizeof(double) * iRWorkSize); + + if (Lhs == 1) + { + JOBZ = 'N'; // Compute eigenvalues only; + } + else + { + JOBZ = 'V'; // Compute eigenvalues and eigenvectors. + } + UPLO = 'U'; + C2F(zheev) (&JOBZ, &UPLO, &iCols, pdblData, &iCols, pdblEigenValues, pdblWork, &iWorkSize, pdblRWork, &INFO); + // SUBROUTINE ZHEEV( JOBZ, UPLO, N, A, LDA, W, WORK, LWORK, RWORK, + // $ INFO ) + FREE(pdblWork); + FREE(pdblRWork); + if (INFO != 0) + { + SciError(24); + } + if (Lhs == 1) + { + int INCX = 1; + int INCY = 1; + + C2F(dcopy) (&iCols, pdblEigenValues, &INCX, pdblFinalEigenvalues, &INCY); + LhsVar(1) = 2; + } + else + { + assembleEigenvaluesFromDoublePointer(iRows, pdblEigenValues, pdblFinalEigenvalues); + vGetPointerFromDoubleComplex(pdblData, totalsize, pdblFinalEigenvectorsReal, pdblFinalEigenvectorsImg); + LhsVar(1) = 3; // Eigenvectors are stored in variable #3 + LhsVar(2) = 2; // Eigenvalues are stored in variable #2 + } + FREE(pdblEigenValues); + vFreeDoubleComplexFromPointer(pdblData); + return 0; +} diff --git a/modules/linear_algebra/sci_gateway/linear_algebra_gateway.xml b/modules/linear_algebra/sci_gateway/linear_algebra_gateway.xml new file mode 100755 index 000000000..8c3b9d831 --- /dev/null +++ b/modules/linear_algebra/sci_gateway/linear_algebra_gateway.xml @@ -0,0 +1,50 @@ +<?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 - Allan CORNET <allan.cornet@inria.fr> + * Copyright (C) 2007-2008 - INRIA - Sylvestre LEDRU <sylvestre.ledru@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 + * + --> + +<!-- + 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 +--> + +<!DOCTYPE GATEWAY SYSTEM "../../functions/xml/gateway.dtd"> +<GATEWAY name="linear_algebra"> + <PRIMITIVE gatewayId="2" primitiveId="4" primitiveName="bdiag" /> + <PRIMITIVE gatewayId="44" primitiveId="1" primitiveName="qr" /> + <PRIMITIVE gatewayId="44" primitiveId="2" primitiveName="svd" /> + <PRIMITIVE gatewayId="44" primitiveId="3" primitiveName="lsq" /> + <PRIMITIVE gatewayId="44" primitiveId="4" primitiveName="spec" /> + <PRIMITIVE gatewayId="44" primitiveId="5" primitiveName="inv" /> + <PRIMITIVE gatewayId="44" primitiveId="6" primitiveName="rcond" /> + <PRIMITIVE gatewayId="44" primitiveId="7" primitiveName="chol" /> + <PRIMITIVE gatewayId="44" primitiveId="8" primitiveName="lu" /> + <PRIMITIVE gatewayId="44" primitiveId="9" primitiveName="slash" /> + <PRIMITIVE gatewayId="44" primitiveId="10" primitiveName="backslash" /> + <PRIMITIVE gatewayId="44" primitiveId="11" primitiveName="schur" /> + <PRIMITIVE gatewayId="44" primitiveId="12" primitiveName="hess" /> + <PRIMITIVE gatewayId="44" primitiveId="13" primitiveName="det" /> + <PRIMITIVE gatewayId="44" primitiveId="14" primitiveName="balanc" /> + <PRIMITIVE gatewayId="44" primitiveId="15" primitiveName="norm" /> +</GATEWAY> diff --git a/modules/linear_algebra/src/c/.deps/.dirstamp b/modules/linear_algebra/src/c/.deps/.dirstamp new file mode 100755 index 000000000..e69de29bb --- /dev/null +++ b/modules/linear_algebra/src/c/.deps/.dirstamp diff --git a/modules/linear_algebra/src/c/.deps/libscilinear_algebra_algo_la-issymmetric.Plo b/modules/linear_algebra/src/c/.deps/libscilinear_algebra_algo_la-issymmetric.Plo new file mode 100755 index 000000000..77b922b04 --- /dev/null +++ b/modules/linear_algebra/src/c/.deps/libscilinear_algebra_algo_la-issymmetric.Plo @@ -0,0 +1,192 @@ +src/c/libscilinear_algebra_algo_la-issymmetric.lo: src/c/issymmetric.c \ + /usr/include/stdc-predef.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 includes/issymmetric.h \ + includes/dynlib_linear_algebra.h + +/usr/include/stdc-predef.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: + +includes/issymmetric.h: + +includes/dynlib_linear_algebra.h: diff --git a/modules/linear_algebra/src/c/.deps/libscilinear_algebra_algo_la-norm.Plo b/modules/linear_algebra/src/c/.deps/libscilinear_algebra_algo_la-norm.Plo new file mode 100755 index 000000000..735fe3985 --- /dev/null +++ b/modules/linear_algebra/src/c/.deps/libscilinear_algebra_algo_la-norm.Plo @@ -0,0 +1,176 @@ +src/c/libscilinear_algebra_algo_la-norm.lo: src/c/norm.c \ + /usr/include/stdc-predef.h src/c/norm.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/machine.h \ + ../../modules/localization/includes/localization.h \ + /usr/include/libintl.h /usr/include/locale.h \ + /usr/include/x86_64-linux-gnu/bits/locale.h \ + ../../modules/core/includes/doublecomplex.h \ + ../../modules/core/includes/MALLOC.h \ + ../../modules/core/includes/sci_mem_alloc.h + +/usr/include/stdc-predef.h: + +src/c/norm.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/machine.h: + +../../modules/localization/includes/localization.h: + +/usr/include/libintl.h: + +/usr/include/locale.h: + +/usr/include/x86_64-linux-gnu/bits/locale.h: + +../../modules/core/includes/doublecomplex.h: + +../../modules/core/includes/MALLOC.h: + +../../modules/core/includes/sci_mem_alloc.h: diff --git a/modules/linear_algebra/src/c/.deps/libscilinear_algebra_algo_la-schurtable.Plo b/modules/linear_algebra/src/c/.deps/libscilinear_algebra_algo_la-schurtable.Plo new file mode 100755 index 000000000..9aeb91237 --- /dev/null +++ b/modules/linear_algebra/src/c/.deps/libscilinear_algebra_algo_la-schurtable.Plo @@ -0,0 +1,71 @@ +src/c/libscilinear_algebra_algo_la-schurtable.lo: src/c/schurtable.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/dynamic_link/includes/GetFunctionByName.h \ + ../../modules/dynamic_link/includes/dynlib_dynamic_link.h \ + src/c/linear_FTables.h includes/schur.h includes/dynlib_linear_algebra.h \ + ../../modules/core/includes/machine.h src/c/linear_FTables.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/dynamic_link/includes/GetFunctionByName.h: + +../../modules/dynamic_link/includes/dynlib_dynamic_link.h: + +src/c/linear_FTables.h: + +includes/schur.h: + +includes/dynlib_linear_algebra.h: + +../../modules/core/includes/machine.h: + +src/c/linear_FTables.h: diff --git a/modules/linear_algebra/src/c/.dirstamp b/modules/linear_algebra/src/c/.dirstamp new file mode 100755 index 000000000..e69de29bb --- /dev/null +++ b/modules/linear_algebra/src/c/.dirstamp diff --git a/modules/linear_algebra/src/c/.libs/libscilinear_algebra_algo_la-issymmetric.o b/modules/linear_algebra/src/c/.libs/libscilinear_algebra_algo_la-issymmetric.o Binary files differnew file mode 100755 index 000000000..e78a30caa --- /dev/null +++ b/modules/linear_algebra/src/c/.libs/libscilinear_algebra_algo_la-issymmetric.o diff --git a/modules/linear_algebra/src/c/.libs/libscilinear_algebra_algo_la-norm.o b/modules/linear_algebra/src/c/.libs/libscilinear_algebra_algo_la-norm.o Binary files differnew file mode 100755 index 000000000..7244c9db1 --- /dev/null +++ b/modules/linear_algebra/src/c/.libs/libscilinear_algebra_algo_la-norm.o diff --git a/modules/linear_algebra/src/c/.libs/libscilinear_algebra_algo_la-schurtable.o b/modules/linear_algebra/src/c/.libs/libscilinear_algebra_algo_la-schurtable.o Binary files differnew file mode 100755 index 000000000..87a8d3bfa --- /dev/null +++ b/modules/linear_algebra/src/c/.libs/libscilinear_algebra_algo_la-schurtable.o diff --git a/modules/linear_algebra/src/c/Core_f_Import.def b/modules/linear_algebra/src/c/Core_f_Import.def new file mode 100755 index 000000000..0638da93a --- /dev/null +++ b/modules/linear_algebra/src/c/Core_f_Import.def @@ -0,0 +1,10 @@ + LIBRARY core_f.dll + + +EXPORTS +; +;core_f +; +find_ +folhp_ + diff --git a/modules/linear_algebra/src/c/DllmainLinear_algebra.c b/modules/linear_algebra/src/c/DllmainLinear_algebra.c new file mode 100755 index 000000000..b4e9187c9 --- /dev/null +++ b/modules/linear_algebra/src/c/DllmainLinear_algebra.c @@ -0,0 +1,36 @@ + +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2007-2008 - INRIA - Allan CORNET <allan.cornet@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 + * + */ + +#include <windows.h> +/*--------------------------------------------------------------------------*/ +#pragma comment(lib,"../../../../bin/libintl.lib") +#pragma comment(lib,"../../../../bin/blasplus.lib") +#pragma comment(lib,"../../../../bin/lapack.lib") +/*--------------------------------------------------------------------------*/ +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/linear_algebra/src/c/core_Import.def b/modules/linear_algebra/src/c/core_Import.def new file mode 100755 index 000000000..0d5528363 --- /dev/null +++ b/modules/linear_algebra/src/c/core_Import.def @@ -0,0 +1,34 @@ + LIBRARY core.dll + + +EXPORTS +; +;core +; +callFunctionFromGateway +com_ +errgst_ +iop_ +stack_ +vstk_ +GetData +overload_ +gettype_ +createcvar_ +check_scalar +getrhsvar_ +intersci_ +createvar_ +check_square +checklhs_ +checkrhs_ +iAllocComplexMatrixOfDouble +GetRhsVarMatrixDouble +iAllocMatrixOfDouble +vGetPointerFromDoubleComplex +vFreeDoubleComplexFromPointer +oGetDoubleComplexFromPointer +GetRhsVarMatrixComplex +getrhscvar_ +MyHeapAlloc +MyHeapFree diff --git a/modules/linear_algebra/src/c/elementary_functions_f_Import.def b/modules/linear_algebra/src/c/elementary_functions_f_Import.def new file mode 100755 index 000000000..349091d49 --- /dev/null +++ b/modules/linear_algebra/src/c/elementary_functions_f_Import.def @@ -0,0 +1,11 @@ +LIBRARY elementary_functions_f.dll + + +EXPORTS +; --------------------------------------- +; elementary_functions_f +; --------------------------------------- +wbdiag_ +bdiag_ +wwrdiv_ +dset_
\ No newline at end of file diff --git a/modules/linear_algebra/src/c/issymmetric.c b/modules/linear_algebra/src/c/issymmetric.c new file mode 100755 index 000000000..e80be1dde --- /dev/null +++ b/modules/linear_algebra/src/c/issymmetric.c @@ -0,0 +1,128 @@ + +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2007-2008 - INRIA - Bruno Jofret <bruno.jofret@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 + * + */ + +/* +** -*- C -*- +** +** issymmetric.c +** +** Started on Thu Jul 19 12:12:28 2007 bruno +** Last update Thu Sep 13 09:48:48 2007 bruno +*/ +#include "stack-c.h" +#include "issymmetric.h" + +/* +** Check wether or not a Matrix is Symmetric. +*/ + +/* +** Two cases : +** ~ Real Case : +** -------------- +** - Check that symmetrics elements are strictly equals. +** +** ~ Complex Case : +** ----------------- +** - Check that symmetrics elements are conjugate. +** - Check that diagonal's elements are Real. +*/ + + +int C2F(issymmetric)(int *stackPosition) +{ + + int relativePosition = Top - Rhs + *stackPosition; + int address = *Lstk(relativePosition); + int intAddress = iadr(address); + int m = getNumberOfLines(intAddress); + int n = getNumberOfColumns(intAddress); + int l = getDoubleDataAddress(intAddress); + int size = m * n; + + /* Local variables */ + int lineIterator = 0; + int columnIterator = 0; + int elementAddress = 0; + int symetricElementAddress = 0; + double realRest = 0; + double imagRest = 0; + + /** If the matrix is not Square, it can not be symmetric */ + if (m != n) + { + return(NOT_SYMMETRIC); + } + + if (isComplex(intAddress)) + { + /* + ** REAL Case. + */ + for (lineIterator = 0 ; lineIterator < n ; ++lineIterator) + { + for (columnIterator = 0 ; columnIterator < lineIterator ; ++columnIterator) + { + elementAddress = l + columnIterator + lineIterator * n; + symetricElementAddress = l + columnIterator * n + lineIterator; + realRest = fabs(getElementByAddress(elementAddress) - getElementByAddress(symetricElementAddress)); + if (realRest > 0) + { + return NOT_SYMMETRIC; + } + } + } + /* We have not detected the Matrix is not Symetric */ + return SYMMETRIC; + } + else + { + /* + ** COMPLEX case. + */ + + /* + ** Just Checking that diags are completely real + ** i.e their imaginary part is 0. + */ + /** { BEGIN : Diag check */ + for (lineIterator = 0 ; lineIterator < n ; ++lineIterator) + { + elementAddress = l + lineIterator + lineIterator * n; + symetricElementAddress = elementAddress + size; + if (fabs(getElementByAddress(symetricElementAddress)) > 0) + { + return NOT_SYMMETRIC; + } + } + /** END : Diag Check */ + + /** Generic Complex case */ + for (lineIterator = 1 ; lineIterator < n ; ++lineIterator) + { + for (columnIterator = 1 ; columnIterator <= lineIterator ; ++columnIterator) + { + elementAddress = l + columnIterator - 1 + lineIterator * n; + symetricElementAddress = l + (columnIterator - 1) * n + lineIterator; + realRest = fabs(getElementByAddress(elementAddress) - getElementByAddress(symetricElementAddress)); + imagRest = fabs(getElementByAddress(elementAddress + size) + getElementByAddress(symetricElementAddress + size)); + if (realRest > 0 || imagRest > 0) + { + return NOT_SYMMETRIC; + } + } + } + /* We have not detected the Matrix is not Symetric */ + return SYMMETRIC; + } +} diff --git a/modules/linear_algebra/src/c/libscilinear_algebra_algo_la-issymmetric.lo b/modules/linear_algebra/src/c/libscilinear_algebra_algo_la-issymmetric.lo new file mode 100755 index 000000000..bc13975cd --- /dev/null +++ b/modules/linear_algebra/src/c/libscilinear_algebra_algo_la-issymmetric.lo @@ -0,0 +1,12 @@ +# src/c/libscilinear_algebra_algo_la-issymmetric.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/libscilinear_algebra_algo_la-issymmetric.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/src/c/libscilinear_algebra_algo_la-norm.lo b/modules/linear_algebra/src/c/libscilinear_algebra_algo_la-norm.lo new file mode 100755 index 000000000..db5e549e6 --- /dev/null +++ b/modules/linear_algebra/src/c/libscilinear_algebra_algo_la-norm.lo @@ -0,0 +1,12 @@ +# src/c/libscilinear_algebra_algo_la-norm.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/libscilinear_algebra_algo_la-norm.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/src/c/libscilinear_algebra_algo_la-schurtable.lo b/modules/linear_algebra/src/c/libscilinear_algebra_algo_la-schurtable.lo new file mode 100755 index 000000000..35740c1f3 --- /dev/null +++ b/modules/linear_algebra/src/c/libscilinear_algebra_algo_la-schurtable.lo @@ -0,0 +1,12 @@ +# src/c/libscilinear_algebra_algo_la-schurtable.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/libscilinear_algebra_algo_la-schurtable.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/src/c/linear_FTables.h b/modules/linear_algebra/src/c/linear_FTables.h new file mode 100755 index 000000000..0930b5a24 --- /dev/null +++ b/modules/linear_algebra/src/c/linear_FTables.h @@ -0,0 +1,27 @@ + +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2007-2008 - INRIA - Sylvestre LEDRU <sylvestre.ledru@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 + * + */ + +#ifndef __LINEAR_FTABLES_H__ +#define __LINEAR_FTABLES_H__ + + + +#define OK 1 +#define FAIL 0 + +typedef struct +{ + double r, i; +} doublecmplx; + +#endif /* __LINEAR_FTABLES_H__ */ diff --git a/modules/linear_algebra/src/c/linear_algebra.rc b/modules/linear_algebra/src/c/linear_algebra.rc new file mode 100755 index 000000000..ec3f91f1d --- /dev/null +++ b/modules/linear_algebra/src/c/linear_algebra.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", "linear_algebra module" + VALUE "FileVersion", "5, 5, 2, 0" + VALUE "InternalName", "linear_algebra module" + VALUE "LegalCopyright", "Copyright (C) 2017" + VALUE "OriginalFilename", "linear_algebra.dll" + VALUE "ProductName", "linear_algebra 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/linear_algebra/src/c/linear_algebra.vcxproj b/modules/linear_algebra/src/c/linear_algebra.vcxproj new file mode 100755 index 000000000..6d96ddcf4 --- /dev/null +++ b/modules/linear_algebra/src/c/linear_algebra.vcxproj @@ -0,0 +1,288 @@ +<?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>{BC462A57-C5B3-4F93-8067-80363827DCDA}</ProjectGuid> + <RootNamespace>linear_algebra</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;../../src/c;../../../core/includes;../../../output_stream/includes;../../../dynamic_link/includes;../../../dynamic_link/src/c;../../../localization/includes;../../../core/src/c;../../../../libs/intl;../../../elementary_functions/includes;../../../api_scilab/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;FORDLL;_DEBUG;_WINDOWS;_USRDLL;LINEAR_ALGEBRA_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)linear_algebra_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)linear_algebra_f.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)slicot_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)slicot_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> + </PreLinkEvent> + <Link> + <AdditionalDependencies>core.lib;core_f.lib;linear_algebra_f.lib;elementary_functions_f.lib;slicot_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;../../src/c;../../../core/includes;../../../output_stream/includes;../../../dynamic_link/includes;../../../dynamic_link/src/c;../../../localization/includes;../../../core/src/c;../../../../libs/intl;../../../elementary_functions/includes;../../../api_scilab/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;FORDLL;_DEBUG;_WINDOWS;_USRDLL;LINEAR_ALGEBRA_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)linear_algebra_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)linear_algebra_f.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)slicot_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)slicot_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> + </PreLinkEvent> + <Link> + <AdditionalDependencies>core.lib;core_f.lib;linear_algebra_f.lib;elementary_functions_f.lib;slicot_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;../../src/c;../../../core/includes;../../../output_stream/includes;../../../dynamic_link/includes;../../../dynamic_link/src/c;../../../localization/includes;../../../core/src/c;../../../../libs/intl;../../../elementary_functions/includes;../../../api_scilab/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;FORDLL;NDEBUG;_WINDOWS;_USRDLL;LINEAR_ALGEBRA_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)linear_algebra_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)linear_algebra_f.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)slicot_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)slicot_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> + </PreLinkEvent> + <Link> + <AdditionalDependencies>core.lib;core_f.lib;linear_algebra_f.lib;elementary_functions_f.lib;slicot_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;../../src/c;../../../core/includes;../../../output_stream/includes;../../../dynamic_link/includes;../../../dynamic_link/src/c;../../../localization/includes;../../../core/src/c;../../../../libs/intl;../../../elementary_functions/includes;../../../api_scilab/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;FORDLL;NDEBUG;_WINDOWS;_USRDLL;LINEAR_ALGEBRA_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)linear_algebra_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)linear_algebra_f.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)slicot_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)slicot_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> + </PreLinkEvent> + <Link> + <AdditionalDependencies>core.lib;core_f.lib;linear_algebra_f.lib;elementary_functions_f.lib;slicot_f.lib;%(AdditionalDependencies)</AdditionalDependencies> + <OutputFile>$(SolutionDir)bin\$(ProjectName).dll</OutputFile> + <GenerateDebugInformation>false</GenerateDebugInformation> + <SubSystem>Windows</SubSystem> + <OptimizeReferences>true</OptimizeReferences> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <ImportLibrary>$(SolutionDir)bin\$(ProjectName).lib</ImportLibrary> + <TargetMachine>MachineX64</TargetMachine> + <CLRUnmanagedCodeCheck>true</CLRUnmanagedCodeCheck> + <RandomizedBaseAddress>false</RandomizedBaseAddress> + </Link> + </ItemDefinitionGroup> + <ItemGroup> + <ClCompile Include="..\..\sci_gateway\c\assembleEigenvectors.c" /> + <ClCompile Include="..\..\sci_gateway\c\sci_spec.c" /> + <ClCompile Include="..\..\sci_gateway\c\sci_norm.c" /> + <ClCompile Include="DllmainLinear_algebra.c" /> + <ClCompile Include="..\..\sci_gateway\c\gw_linear_algebra.c" /> + <ClCompile Include="..\..\sci_gateway\c\gw_linear_algebra2.c" /> + <ClCompile Include="issymmetric.c" /> + <ClCompile Include="norm.c" /> + <ClCompile Include="schurtable.c" /> + <ClCompile Include="..\..\sci_gateway\c\sci_backslash.c" /> + <ClCompile Include="..\..\sci_gateway\c\sci_balanc.c" /> + <ClCompile Include="..\..\sci_gateway\c\sci_bdiag.c" /> + <ClCompile Include="..\..\sci_gateway\c\sci_chol.c" /> + <ClCompile Include="..\..\sci_gateway\c\sci_det.c" /> + <ClCompile Include="..\..\sci_gateway\c\sci_dgeev.c" /> + <ClCompile Include="..\..\sci_gateway\c\sci_dggev.c" /> + <ClCompile Include="..\..\sci_gateway\c\sci_dsyev.c" /> + <ClCompile Include="..\..\sci_gateway\c\sci_hess.c" /> + <ClCompile Include="..\..\sci_gateway\c\sci_inv.c" /> + <ClCompile Include="..\..\sci_gateway\c\sci_lsq.c" /> + <ClCompile Include="..\..\sci_gateway\c\sci_lu.c" /> + <ClCompile Include="..\..\sci_gateway\c\sci_qr.c" /> + <ClCompile Include="..\..\sci_gateway\c\sci_rcond.c" /> + <ClCompile Include="..\..\sci_gateway\c\sci_schur.c" /> + <ClCompile Include="..\..\sci_gateway\c\sci_slash.c" /> + <ClCompile Include="..\..\sci_gateway\c\sci_svd.c" /> + <ClCompile Include="..\..\sci_gateway\c\sci_zgeev.c" /> + <ClCompile Include="..\..\sci_gateway\c\sci_zggev.c" /> + <ClCompile Include="..\..\sci_gateway\c\sci_zheev.c" /> + </ItemGroup> + <ItemGroup> + <ClInclude Include="..\..\sci_gateway\c\assembleEigenvectors.h" /> + <ClInclude Include="..\..\includes\dynlib_linear_algebra.h" /> + <ClInclude Include="..\..\includes\gschur.h" /> + <ClInclude Include="..\..\includes\gw_linear_algebra.h" /> + <ClInclude Include="..\..\includes\gw_linear_algebra2.h" /> + <ClInclude Include="..\..\includes\issymmetric.h" /> + <ClInclude Include="linear_FTables.h" /> + <ClInclude Include="..\..\includes\schur.h" /> + <ClInclude Include="norm.h" /> + </ItemGroup> + <ItemGroup> + <None Include="..\..\locales\linear_algebra.pot" /> + <None Include="Core_f_Import.def" /> + <None Include="elementary_functions_f_Import.def" /> + <None Include="core_import.def" /> + <None Include="linear_algebra_f_Import.def" /> + <None Include="..\..\linear_algebra.iss" /> + <None Include="..\..\sci_gateway\linear_algebra_gateway.xml" /> + <None Include="..\..\Makefile.am" /> + <None Include="slicot_f_Import.def" /> + </ItemGroup> + <ItemGroup> + <ResourceCompile Include="linear_algebra.rc" /> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="..\..\..\..\tools\Dumpexts\Dumpexts.vcxproj"> + <Project>{3170e4c2-1173-4264-a222-7ee8ccb3ddf7}</Project> + <ReferenceOutputAssembly>false</ReferenceOutputAssembly> + </ProjectReference> + <ProjectReference Include="..\..\..\api_scilab\api_scilab.vcxproj"> + <Project>{43c5bab1-1dca-4743-a183-77e0d42fe7d0}</Project> + </ProjectReference> + <ProjectReference Include="..\..\..\dynamic_link\src\c\dynamic_link.vcxproj"> + <Project>{eab6c580-22b3-4359-ba1d-dd7499a96163}</Project> + <ReferenceOutputAssembly>false</ReferenceOutputAssembly> + </ProjectReference> + <ProjectReference Include="..\..\..\elementary_functions\src\c\elementary_functions.vcxproj"> + <Project>{5b110267-7c18-437c-b87d-dba2b50729e9}</Project> + <ReferenceOutputAssembly>false</ReferenceOutputAssembly> + </ProjectReference> + <ProjectReference Include="..\..\..\localization\src\localization.vcxproj"> + <Project>{ecffeb0c-1eda-45ee-9a10-b18143852e17}</Project> + <ReferenceOutputAssembly>false</ReferenceOutputAssembly> + </ProjectReference> + <ProjectReference Include="..\..\..\output_stream\src\c\output_stream.vcxproj"> + <Project>{a5911cd7-f8e8-440c-a23e-4843a0636f3a}</Project> + <ReferenceOutputAssembly>false</ReferenceOutputAssembly> + </ProjectReference> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project> diff --git a/modules/linear_algebra/src/c/linear_algebra.vcxproj.filters b/modules/linear_algebra/src/c/linear_algebra.vcxproj.filters new file mode 100755 index 000000000..72efa40bb --- /dev/null +++ b/modules/linear_algebra/src/c/linear_algebra.vcxproj.filters @@ -0,0 +1,171 @@ +<?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>{b57b15f9-2aee-42eb-8013-1bb4f8421f7b}</UniqueIdentifier> + <Extensions>cpp;c;cxx;rc;def;r;odl;idl;hpj;bat</Extensions> + </Filter> + <Filter Include="Header Files"> + <UniqueIdentifier>{67cf3887-9383-45e0-952f-9151ebb1a9dd}</UniqueIdentifier> + <Extensions>h;hpp;hxx;hm;inl</Extensions> + </Filter> + <Filter Include="localization"> + <UniqueIdentifier>{953abc14-186a-4dc4-bfcf-70212d364ded}</UniqueIdentifier> + </Filter> + <Filter Include="Libraries Dependencies"> + <UniqueIdentifier>{5d65a9b1-5b80-4f5f-a595-6ecb497ce9e0}</UniqueIdentifier> + </Filter> + <Filter Include="Libraries Dependencies\Imports"> + <UniqueIdentifier>{ffd43533-ec0f-4ef2-8df7-68565fcb9bd4}</UniqueIdentifier> + </Filter> + <Filter Include="Resource File"> + <UniqueIdentifier>{0d992d75-2a84-4f60-bf0c-9a7816d802a2}</UniqueIdentifier> + </Filter> + </ItemGroup> + <ItemGroup> + <ClCompile Include="..\..\sci_gateway\c\assembleEigenvectors.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="DllmainLinear_algebra.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\c\gw_linear_algebra.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\c\gw_linear_algebra2.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="issymmetric.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="schurtable.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\c\sci_backslash.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\c\sci_balanc.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\c\sci_bdiag.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\c\sci_chol.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\c\sci_det.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\c\sci_dgeev.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\c\sci_dggev.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\c\sci_dsyev.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\c\sci_hess.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\c\sci_inv.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\c\sci_lsq.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\c\sci_lu.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\c\sci_qr.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\c\sci_rcond.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\c\sci_schur.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\c\sci_slash.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\c\sci_svd.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\c\sci_zgeev.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\c\sci_zggev.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\c\sci_zheev.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\c\sci_spec.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="norm.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\..\sci_gateway\c\sci_norm.c"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> + <ItemGroup> + <ClInclude Include="..\..\sci_gateway\c\assembleEigenvectors.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\includes\dynlib_linear_algebra.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\includes\gschur.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\includes\gw_linear_algebra.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\includes\gw_linear_algebra2.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\includes\issymmetric.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="linear_FTables.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\..\includes\schur.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="norm.h"> + <Filter>Header Files</Filter> + </ClInclude> + </ItemGroup> + <ItemGroup> + <None Include="core_import.def"> + <Filter>Libraries Dependencies\Imports</Filter> + </None> + <None Include="linear_algebra_f_Import.def"> + <Filter>Libraries Dependencies\Imports</Filter> + </None> + <None Include="..\..\linear_algebra.iss" /> + <None Include="..\..\sci_gateway\linear_algebra_gateway.xml" /> + <None Include="..\..\Makefile.am" /> + <None Include="elementary_functions_f_Import.def"> + <Filter>Libraries Dependencies\Imports</Filter> + </None> + <None Include="..\..\locales\linear_algebra.pot"> + <Filter>localization</Filter> + </None> + <None Include="slicot_f_Import.def"> + <Filter>Libraries Dependencies\Imports</Filter> + </None> + <None Include="Core_f_Import.def"> + <Filter>Libraries Dependencies\Imports</Filter> + </None> + </ItemGroup> + <ItemGroup> + <ResourceCompile Include="linear_algebra.rc"> + <Filter>Resource File</Filter> + </ResourceCompile> + </ItemGroup> +</Project> diff --git a/modules/linear_algebra/src/c/linear_algebra_f_Import.def b/modules/linear_algebra/src/c/linear_algebra_f_Import.def new file mode 100755 index 000000000..c99815594 --- /dev/null +++ b/modules/linear_algebra/src/c/linear_algebra_f_Import.def @@ -0,0 +1,56 @@ +LIBRARY linear_algebra_f.dll + + +EXPORTS +; --------------------------------------- +; linear_algebra_f +; --------------------------------------- +intdgesv3_ +complexify_ +intzgesv3_ +intdgebal_ +intzgebal_ +intdggbal_ +intzggbal_ +intdpotrf_ +intzpotrf_ +intddet_ +intzdet_ +intdgehrd_ +intzgehrd_ +intdgetri_ +intzgetri_ +intdgelsy_ +intzgelsy_ +intdgetrf_ +intzgetrf_ +intdgeqpf3_ +intzgeqpf4_ +doldqr_ +zoldqr_ +intdgecon_ +intzgecon_ +intdgees0_ +intzgees0_ +intdgges_ +intzgges_ +intzgees1_ +intdgees1_ +intzgeqpf3_ +intdgeqpf4_ +intfschur_ +intzfschur_ +intoschur_ +intzschur_ +intgschur_ +intzgschur_ +intogschur_ +intozgschur_ +intdgesv4_ +intzgesv4_ +intzgesvd2_ +intdgesvd2_ +intzgesvd1_ +intdgesvd1_ +intzoldsvd_ +intdoldsvd_ diff --git a/modules/linear_algebra/src/c/norm.c b/modules/linear_algebra/src/c/norm.c new file mode 100755 index 000000000..84faba3ad --- /dev/null +++ b/modules/linear_algebra/src/c/norm.c @@ -0,0 +1,325 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2013 - Scilab Enterprises - Paul Bignier + * + * 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 "norm.h" +#include "MALLOC.h" + +#ifdef _MSC_VER +int isinf(double dbl) +{ + //check finite and non NaN values + if (_finite(dbl) == 0 && dbl == dbl) + { + if (dbl < 0) + { + return -1; + } + else + { + return 1; + } + } + + return 0; +} +#endif + +// Lapack routines, for complex and real input +extern double C2F(dlange) (const char *norm, int *m, int *n, double *A, int *lda, double *work); +extern int C2F(dgesdd) (const char *job, int *m, int *n, double *A, int *lda, + double *s, double *u, int *ldu, double *vt, int *ldvt, + double *work, int *lwork, int *iwork, int *info); +extern double C2F(zlange) (const char *norm, int *m, int *n, doublecomplex *A, int *lda, double *work); +extern int C2F(zgesdd) (const char *job, int *m, int *n, doublecomplex *A, int *lda, + double *s, doublecomplex *u, int *ldu, doublecomplex *vt, int *ldvt, + doublecomplex *work, int *lwork, double *rwork, int *iwork, int *info); + +double normString (double *A, int iRows, int iCols, char *flag) +{ + double ret = 0; + double *work = NULL; + + if (strcmp(flag, "inf") == 0 || strcmp(flag, "i") == 0) + { + work = (double *)CALLOC(Max(1, iRows), sizeof(double)); + + // Call Lapack routine for computation of the infinite norm. + ret = C2F(dlange)("I", &iRows, &iCols, A, &iRows, work); + + FREE(work); + return ret; + } + + if (strcmp(flag, "fro") == 0 || strcmp(flag, "f") == 0) + { + // Call Lapack routine for computation of the Frobenius norm. + ret = C2F(dlange)("F", &iRows, &iCols, A, &iRows, NULL); + + return ret; + } + + return 0; +} + +double normStringC (doublecomplex *A, int iRows, int iCols, char *flag) +{ + double ret = 0; + double *work = NULL; + + if (strcmp(flag, "inf") == 0 || strcmp(flag, "i") == 0) + { + work = (double *)MALLOC(Max(1, iRows) * sizeof(double)); + + // Call Lapack routine for computation of the infinite norm. + ret = C2F(zlange)("I", &iRows, &iCols, A, &iRows, work); + + FREE(work); + return ret; + } + + if (strcmp(flag, "fro") == 0 || strcmp(flag, "f") == 0) + { + // Call Lapack routine for computation of the Frobenius norm. + ret = C2F(zlange)("F", &iRows, &iCols, A, &iRows, NULL); + + return ret; + } + + return 0; +} + +double normP (double *A, int iRows, int iCols, double p) +{ + double ret = 0, minA, scale = 0, x = 0; + double *S, *work; + int *iwork; + int i, maxRC, minRC, lwork, info, one = 1; + + maxRC = Max(iRows, iCols); + minRC = Min(iRows, iCols); + lwork = 3 * minRC + Max(maxRC, 7 * minRC); + + if (ISNAN(p)) // p = %nan is a special case, return 0./0 = %nan. + { + double a = 1.0; + double b = 1.0; + ret = (b - a) / (a - b); + return ret; + } + + // + // /!\ isinf return only 0 or 1 on non Linux platforms + // + if (isinf(p) != 0 && p < 0) // p = -%inf is a special case, return min(abs(A)). + { + + minA = Abs(A[0]); + for (i = 0; i < iRows; ++i) + { + minA = Min(minA, Abs(A[i])); + } + return minA; + } + if (p == 0) // p = 0 is a special case, return 1./0 = %inf. + { + double a = 1.0; + double b = 1.0; + ret = 1. / (a - b); + return ret; + } + if (p == 1) // Call the Lapack routine for computation of norm 1. + { + ret = C2F(dlange)("1", &iRows, &iCols, A, &iRows, NULL); + return ret; + } + if (p == 2) // Call the Lapack routine for computation of norm 2. + { + if (iCols == 1) // In the vector case, doing a direct calculation is faster. + { + for (i = 0; i < iRows; ++i) + { + scale = Max(Abs(A[i]), scale); + } + if (scale == 0.0) + { + return 0; + } + else + { + for (i = 0; i < iRows; ++i) + { + x = A[i] / scale; + ret += x * x; + } + return scale * sqrt(ret); + } + } + // Allocating workspaces. + S = (double *)MALLOC(minRC * sizeof(double)); + work = (double *)MALLOC(Max(1, lwork) * sizeof(double)); + iwork = (int *)MALLOC(8 * minRC * sizeof(int)); + + // Not computing singular vectors, so arguments 7, 8, 9 and 10 are dummies. + C2F(dgesdd)("N", &iRows, &iCols, A, &iRows, S, NULL, &one, NULL, &one, work, &lwork, iwork, &info); + if (info < 0) + { + // Lapack provides its own error messages. Return. + FREE(S); + FREE(work); + FREE(iwork); + return 0; + } + else + { + if (info > 0) + { + // Lapack provides its own error messages. Return. + FREE(S); + FREE(work); + FREE(iwork); + return 0; + } + else + { + // info = 0: successful termination. + // The largest singular value of A is stored in the first element of S, return it. + ret = S[0]; + FREE(S); + FREE(work); + FREE(iwork); + return ret; + } + } + } + // Here, A is a vector of length iRows, return sum(abs(A(i))^p))^(1/p). + if ((int) p == p && (int) p % 2 == 0) // No need to call Abs if p is divisible by 2. + { + for (i = 0; i < iRows; ++i) + { + ret += pow(A[i], p); + } + } + else + { + for (i = 0; i < iRows; ++i) + { + ret += pow(Abs(A[i]), p); + } + } + return pow(ret, 1. / p); +} + +double normPC (doublecomplex *A, int iRows, int iCols, double p) +{ + double ret = 0, sqmod, minA; + double *S, *rwork; + doublecomplex *work; + int *iwork; + int i, maxRC, minRC, lwork, lrwork, info, one = 1; + + maxRC = Max(iRows, iCols); + minRC = Min(iRows, iCols); + lwork = 2 * minRC + maxRC; + lrwork = 5 * minRC; + + if (ISNAN(p)) // p = %nan is a special case, return 0./0 = %nan. + { + double a = 1.0; + double b = 1.0; + ret = (a - b) / (a - b); + return ret; + } + + if (isinf(p) != 0 && p < 0) // p = -%inf is a special case, return min(abs(A)). + { + minA = sqrt(A[0].r * A[0].r + A[0].i * A[0].i); // Retrieving A[0] modulus. + for (i = 0; i < iRows; ++i) + { + sqmod = A[i].r * A[i].r + A[i].i * A[i].i; // Retrieving A[i] modulus^2, starting at zero in case A has only one element. + minA = Min(minA, sqrt(sqmod)); // min(minA, modulus(A[i])). + } + return minA; + } + if (p == 0) // p = 0 is a special case, return 1./0 = %inf. + { + double a = 1.0; + double b = 1.0; + ret = 1. / (a - b); + return ret; + } + if (p == 1) // Call the Lapack routine for computation of norm 1. + { + ret = C2F(zlange)("1", &iRows, &iCols, A, &iRows, NULL); + + return ret; + } + if (p == 2) // Call the Lapack routine for computation of norm 2. + { + if (iCols == 1) // In the vector case, doing a direct calculation is faster. + { + for (i = 0; i < iRows; ++i) + { + ret += A[i].r * A[i].r + A[i].i * A[i].i; // Retrieving A[i] modulus^2. + } + return sqrt(ret); + } + // Allocating workspaces. + S = (double *)MALLOC(minRC * sizeof(double)); + work = (doublecomplex *)MALLOC(Max(1, lwork) * sizeof(doublecomplex)); + rwork = (double *)MALLOC(Max(1, lrwork) * sizeof(double)); + iwork = (int *)MALLOC(8 * minRC * sizeof(int)); + + // Not computing singular vectors, so arguments 7, 8, 9 and 10 are dummies. + C2F(zgesdd)("N", &iRows, &iCols, A, &iRows, S, NULL, &one, NULL, &one, work, &lwork, rwork, iwork, &info); + if (info < 0) + { + // Lapack provides its own error messages. Return. + // Since the arguments have all been checked before, this error should not occur. + FREE(S); + FREE(work); + FREE(rwork); + FREE(iwork); + return 0; + } + else + { + if (info > 0) + { + // Lapack provides its own error messages. Return. + // Since the arguments have all been checked before, this error should not occur. + FREE(S); + FREE(work); + FREE(rwork); + FREE(iwork); + return 0; + } + else + { + // info = 0: successful termination. + // The largest singular value of A is stored in the first element of S, return it. + ret = S[0]; + FREE(S); + FREE(work); + FREE(rwork); + FREE(iwork); + return ret; + } + } + } + // Here, A is a vector of length iRows, return sum(abs(A(i))^p))^(1/p). + for (i = 0; i < iRows; ++i) + { + sqmod = A[i].r * A[i].r + A[i].i * A[i].i; // Retrieving A[i] modulus^2. + ret += pow(sqmod, p / 2); // sum(modulus(A[i])^p). + } + return pow(ret, 1. / p); // sum(modulus(A[i])^p)^(1/p). +} diff --git a/modules/linear_algebra/src/c/norm.h b/modules/linear_algebra/src/c/norm.h new file mode 100755 index 000000000..8bf7e5e70 --- /dev/null +++ b/modules/linear_algebra/src/c/norm.h @@ -0,0 +1,30 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2013 - Scilab Enterprises - Paul Bignier + * + * 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> // strcmp +#include "core_math.h" // Abs, pow, Min and Max +#include "machine.h" // C2F +#include "localization.h" // Translations +#include "doublecomplex.h" // Type doublecomplex + +double normString (double *A, int iRows, int iCols, char *flag); + +double normStringC (doublecomplex *A, int iRows, int iCols, char *flag); + +double normP (double *A, int iRows, int iCols, double p); + +double normPC (doublecomplex *A, int iRows, int iCols, double p); + +#ifdef _MSC_VER +int isinf(double dbl); +#endif + diff --git a/modules/linear_algebra/src/c/schurtable.c b/modules/linear_algebra/src/c/schurtable.c new file mode 100755 index 000000000..5d3bde742 --- /dev/null +++ b/modules/linear_algebra/src/c/schurtable.c @@ -0,0 +1,242 @@ + +/* + * 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 + * + */ + +/*--------------------------------------------------------------------------*/ +/* + * @TODO : a lot of code here could be factorized + */ +/*--------------------------------------------------------------------------*/ +#include <string.h> +#include "GetFunctionByName.h" +#include "linear_FTables.h" +#include "schur.h" + +/*********************************** +* Search Table for fschur +***********************************/ + +#define ARGS_fschur int*,double *,double*,double*,double* +typedef int * (*fschurf)(ARGS_fschur); + + +/*********************************** +* Search Table for gshsel +***********************************/ + +#define ARGS_gshsel double *,double*,double* +typedef int * (*gshself)(ARGS_gshsel); + +/*********************************** +* Search Table for gzhsel +***********************************/ + +#define ARGS_gzhsel doublecmplx *,doublecmplx * +typedef int * (*gzhself)(ARGS_gzhsel); + +/**************** fschur ***************/ +extern void C2F(folhp)(ARGS_fschur); +extern void C2F(find)(ARGS_fschur); + +FTAB FTab_fschur[] = +{ + {"find", (voidf) C2F(find)}, + {"folhp", (voidf) C2F(folhp)}, + {(char *) 0, (voidf) 0} +}; +/**************** gshsel ***************/ +extern void C2F(sb02ow)(ARGS_gshsel); +extern void C2F(sb02ox)(ARGS_gshsel); + +FTAB FTab_gshsel[] = +{ + {"sb02ow", (voidf) C2F(sb02ow)}, + {"sb02ox", (voidf) C2F(sb02ox)}, + {(char *) 0, (voidf) 0} +}; +/**************** gzhsel ***************/ +extern void C2F(zb02ow)(ARGS_gzhsel); +extern void C2F(zb02ox)(ARGS_gzhsel); + +FTAB FTab_gzhsel[] = +{ + {"zb02ow", (voidf) C2F(zb02ow)}, + {"zb02ox", (voidf) C2F(zb02ox)}, + {(char *) 0, (voidf) 0} +}; + + +/*********************************** +* Search Table for schur uses : schsel +***********************************/ + +/** the current function fixed by setschsel **/ + +static schself schselfonc ; + +/** function call : schsel **/ + +int *C2F(schsel)(double *alpha, double *beta) +{ + return((*schselfonc)(alpha, beta)); +} + +/** fixes the function associated to name **/ + +void C2F(setschsel)(int *len, char *name, int *rep) +{ + if ( ((strncmp(name, "c", 1) == 0 ) && (*len == 1)) || strncmp(name, "cont", 4) == 0 ) + { + schselfonc = (schself) GetFunctionByName("sb02mv", rep, FTab_schsel); + } + else if ( ((strncmp(name, "d", 1) == 0) && (*len == 1)) || strncmp(name, "disc", 4) == 0 ) + { + schselfonc = (schself) GetFunctionByName("sb02mw", rep, FTab_schsel); + } + else + { + schselfonc = (schself) GetFunctionByName(name, rep, FTab_schsel); + } +} + +/*********************************** +* Search Table for schur uses : zchsel +***********************************/ + +/** the current function fixed by setzschsel **/ + +static zchself zchselfonc ; + +/** function call : zchsel **/ + +int *C2F(zchsel)(doublecmplx *alpha) +{ + return((*zchselfonc)(alpha)); +} + +/** fixes the function associated to name **/ + +void C2F(setzchsel)(int *len, char *name, int *rep) +{ + if ( ((strncmp(name, "c", 1) == 0) && (*len == 1)) || strncmp(name, "cont", 4) == 0 ) + { + zchselfonc = (zchself) GetFunctionByName("zb02mv", rep, FTab_zchsel); + } + else if ( ( (strncmp(name, "d", 1) == 0) && (*len == 1) ) || strncmp(name, "disc", 4) == 0 ) + { + zchselfonc = (zchself) GetFunctionByName("zb02mw", rep, FTab_zchsel); + } + else + { + zchselfonc = (zchself) GetFunctionByName(name, rep, FTab_zchsel); + } +} + +/*********************************** +* Search Table for gschur uses : gshsel +***********************************/ + +/** the current function fixed by setgshsel **/ + +static gshself gshselfonc ; + +/** function call : gshsel **/ + +int *C2F(gshsel)(double *alphar, double *alphai, double *beta) +{ + return((*gshselfonc)(alphar, alphai, beta)); +} + +/** fixes the function associated to name **/ + +void C2F(setgshsel)(int *len, char *name, int *rep) +{ + if ( ((strncmp(name, "c", 1) == 0) && (*len == 1)) || strncmp(name, "cont", 4) == 0 ) + { + gshselfonc = (gshself) GetFunctionByName("sb02ow", rep, FTab_gshsel); + } + else if ( ( (strncmp(name, "d", 1) == 0) && (*len == 1) ) || strncmp(name, "disc", 4) == 0 ) + { + gshselfonc = (gshself) GetFunctionByName("sb02ox", rep, FTab_gshsel); + } + else + { + gshselfonc = (gshself) GetFunctionByName(name, rep, FTab_gshsel); + } +} + +/*********************************** +* Search Table for gschur uses : gzhsel +***********************************/ + +/** the current function fixed by setgzhsel **/ + +static gzhself gzhselfonc ; + +/** function call : gzhsel **/ + +int *C2F(gzhsel)(doublecmplx *alpha, doublecmplx *beta) +{ + return((*gzhselfonc)(alpha, beta)); +} + +/** fixes the function associated to name **/ + +void C2F(setgzhsel)(int *len, char *name, int *rep) +{ + if ( ((strncmp(name, "c", 1) == 0) && (*len == 1)) || strncmp(name, "cont", 4) == 0 ) + { + gzhselfonc = (gzhself) GetFunctionByName("zb02ow", rep, FTab_gzhsel); + } + else if ( ( (strncmp(name, "d", 1) == 0) && (*len == 1) ) || strncmp(name, "disc", 4) == 0 ) + { + gzhselfonc = (gzhself) GetFunctionByName("zb02ox", rep, FTab_gzhsel); + } + else + { + gzhselfonc = (gzhself) GetFunctionByName(name, rep, FTab_gzhsel); + } +} + +/*********************************** +* Search Table for schur uses : fschur +***********************************/ + +/** the current function fixed by setsolvf **/ + +static fschurf fschurfonc ; + +/** function call : fschur **/ + +int *C2F(fschur)(int *lsize, double *alpha, double *beta, double *s, double *p) +{ + return((*fschurfonc)(lsize, alpha, beta, s, p)); +} + +/** fixes the function associated to name **/ + +void C2F(setfschur)(char *name, int *rep) +{ + if (strncmp(name, "c", 1) == 0 || strncmp(name, "cont", 4) == 0 ) + { + fschurfonc = (fschurf) GetFunctionByName("folhp", rep, FTab_fschur); + } + else if (strncmp(name, "d", 1) == 0 || strncmp(name, "disc", 4) == 0 ) + { + fschurfonc = (fschurf) GetFunctionByName("find", rep, FTab_fschur); + } + else + { + fschurfonc = (fschurf) GetFunctionByName(name, rep, FTab_fschur); + } +} + diff --git a/modules/linear_algebra/src/c/slicot_f_Import.def b/modules/linear_algebra/src/c/slicot_f_Import.def new file mode 100755 index 000000000..2c85788aa --- /dev/null +++ b/modules/linear_algebra/src/c/slicot_f_Import.def @@ -0,0 +1,15 @@ +LIBRARY slicot_f.dll + + +EXPORTS +; --------------------------------------- +; slicot_f +; --------------------------------------- +zb02ox_ +zb02ow_ +sb02ox_ +sb02ow_ +zb02mw_ +zb02mv_ +sb02mw_ +sb02mv_ diff --git a/modules/linear_algebra/src/fortran/.deps/.dirstamp b/modules/linear_algebra/src/fortran/.deps/.dirstamp new file mode 100755 index 000000000..e69de29bb --- /dev/null +++ b/modules/linear_algebra/src/fortran/.deps/.dirstamp diff --git a/modules/linear_algebra/src/fortran/.dirstamp b/modules/linear_algebra/src/fortran/.dirstamp new file mode 100755 index 000000000..e69de29bb --- /dev/null +++ b/modules/linear_algebra/src/fortran/.dirstamp diff --git a/modules/linear_algebra/src/fortran/.libs/DGELSY1.o b/modules/linear_algebra/src/fortran/.libs/DGELSY1.o Binary files differnew file mode 100755 index 000000000..044f2888a --- /dev/null +++ b/modules/linear_algebra/src/fortran/.libs/DGELSY1.o diff --git a/modules/linear_algebra/src/fortran/.libs/ZGELSY1.o b/modules/linear_algebra/src/fortran/.libs/ZGELSY1.o Binary files differnew file mode 100755 index 000000000..7dee21ad5 --- /dev/null +++ b/modules/linear_algebra/src/fortran/.libs/ZGELSY1.o diff --git a/modules/linear_algebra/src/fortran/.libs/complexify.o b/modules/linear_algebra/src/fortran/.libs/complexify.o Binary files differnew file mode 100755 index 000000000..97cb997ca --- /dev/null +++ b/modules/linear_algebra/src/fortran/.libs/complexify.o diff --git a/modules/linear_algebra/src/fortran/.libs/doldqr.o b/modules/linear_algebra/src/fortran/.libs/doldqr.o Binary files differnew file mode 100755 index 000000000..7d90bd7d9 --- /dev/null +++ b/modules/linear_algebra/src/fortran/.libs/doldqr.o diff --git a/modules/linear_algebra/src/fortran/.libs/intddet.o b/modules/linear_algebra/src/fortran/.libs/intddet.o Binary files differnew file mode 100755 index 000000000..df8cfabc4 --- /dev/null +++ b/modules/linear_algebra/src/fortran/.libs/intddet.o diff --git a/modules/linear_algebra/src/fortran/.libs/intdgebal.o b/modules/linear_algebra/src/fortran/.libs/intdgebal.o Binary files differnew file mode 100755 index 000000000..14dcfe963 --- /dev/null +++ b/modules/linear_algebra/src/fortran/.libs/intdgebal.o diff --git a/modules/linear_algebra/src/fortran/.libs/intdgecon.o b/modules/linear_algebra/src/fortran/.libs/intdgecon.o Binary files differnew file mode 100755 index 000000000..9e1c82f00 --- /dev/null +++ b/modules/linear_algebra/src/fortran/.libs/intdgecon.o diff --git a/modules/linear_algebra/src/fortran/.libs/intdgees0.o b/modules/linear_algebra/src/fortran/.libs/intdgees0.o Binary files differnew file mode 100755 index 000000000..70f6b241d --- /dev/null +++ b/modules/linear_algebra/src/fortran/.libs/intdgees0.o diff --git a/modules/linear_algebra/src/fortran/.libs/intdgees1.o b/modules/linear_algebra/src/fortran/.libs/intdgees1.o Binary files differnew file mode 100755 index 000000000..d21e4ab85 --- /dev/null +++ b/modules/linear_algebra/src/fortran/.libs/intdgees1.o diff --git a/modules/linear_algebra/src/fortran/.libs/intdgehrd.o b/modules/linear_algebra/src/fortran/.libs/intdgehrd.o Binary files differnew file mode 100755 index 000000000..d31bd14bc --- /dev/null +++ b/modules/linear_algebra/src/fortran/.libs/intdgehrd.o diff --git a/modules/linear_algebra/src/fortran/.libs/intdgelsy.o b/modules/linear_algebra/src/fortran/.libs/intdgelsy.o Binary files differnew file mode 100755 index 000000000..7956895d2 --- /dev/null +++ b/modules/linear_algebra/src/fortran/.libs/intdgelsy.o diff --git a/modules/linear_algebra/src/fortran/.libs/intdgeqpf3.o b/modules/linear_algebra/src/fortran/.libs/intdgeqpf3.o Binary files differnew file mode 100755 index 000000000..5c9305425 --- /dev/null +++ b/modules/linear_algebra/src/fortran/.libs/intdgeqpf3.o diff --git a/modules/linear_algebra/src/fortran/.libs/intdgeqpf4.o b/modules/linear_algebra/src/fortran/.libs/intdgeqpf4.o Binary files differnew file mode 100755 index 000000000..206641e2f --- /dev/null +++ b/modules/linear_algebra/src/fortran/.libs/intdgeqpf4.o diff --git a/modules/linear_algebra/src/fortran/.libs/intdgesv3.o b/modules/linear_algebra/src/fortran/.libs/intdgesv3.o Binary files differnew file mode 100755 index 000000000..5c43a199c --- /dev/null +++ b/modules/linear_algebra/src/fortran/.libs/intdgesv3.o diff --git a/modules/linear_algebra/src/fortran/.libs/intdgesv4.o b/modules/linear_algebra/src/fortran/.libs/intdgesv4.o Binary files differnew file mode 100755 index 000000000..59e3fdcaf --- /dev/null +++ b/modules/linear_algebra/src/fortran/.libs/intdgesv4.o diff --git a/modules/linear_algebra/src/fortran/.libs/intdgesvd1.o b/modules/linear_algebra/src/fortran/.libs/intdgesvd1.o Binary files differnew file mode 100755 index 000000000..f9134eb3c --- /dev/null +++ b/modules/linear_algebra/src/fortran/.libs/intdgesvd1.o diff --git a/modules/linear_algebra/src/fortran/.libs/intdgesvd2.o b/modules/linear_algebra/src/fortran/.libs/intdgesvd2.o Binary files differnew file mode 100755 index 000000000..a18151f72 --- /dev/null +++ b/modules/linear_algebra/src/fortran/.libs/intdgesvd2.o diff --git a/modules/linear_algebra/src/fortran/.libs/intdgetrf.o b/modules/linear_algebra/src/fortran/.libs/intdgetrf.o Binary files differnew file mode 100755 index 000000000..a6e1fe6ed --- /dev/null +++ b/modules/linear_algebra/src/fortran/.libs/intdgetrf.o diff --git a/modules/linear_algebra/src/fortran/.libs/intdgetri.o b/modules/linear_algebra/src/fortran/.libs/intdgetri.o Binary files differnew file mode 100755 index 000000000..273717779 --- /dev/null +++ b/modules/linear_algebra/src/fortran/.libs/intdgetri.o diff --git a/modules/linear_algebra/src/fortran/.libs/intdggbal.o b/modules/linear_algebra/src/fortran/.libs/intdggbal.o Binary files differnew file mode 100755 index 000000000..0eecae0bc --- /dev/null +++ b/modules/linear_algebra/src/fortran/.libs/intdggbal.o diff --git a/modules/linear_algebra/src/fortran/.libs/intdgges.o b/modules/linear_algebra/src/fortran/.libs/intdgges.o Binary files differnew file mode 100755 index 000000000..7ce35c178 --- /dev/null +++ b/modules/linear_algebra/src/fortran/.libs/intdgges.o diff --git a/modules/linear_algebra/src/fortran/.libs/intdoldsvd.o b/modules/linear_algebra/src/fortran/.libs/intdoldsvd.o Binary files differnew file mode 100755 index 000000000..40d08c95e --- /dev/null +++ b/modules/linear_algebra/src/fortran/.libs/intdoldsvd.o diff --git a/modules/linear_algebra/src/fortran/.libs/intdpotrf.o b/modules/linear_algebra/src/fortran/.libs/intdpotrf.o Binary files differnew file mode 100755 index 000000000..4aa726b61 --- /dev/null +++ b/modules/linear_algebra/src/fortran/.libs/intdpotrf.o diff --git a/modules/linear_algebra/src/fortran/.libs/intfschur.o b/modules/linear_algebra/src/fortran/.libs/intfschur.o Binary files differnew file mode 100755 index 000000000..0255309b3 --- /dev/null +++ b/modules/linear_algebra/src/fortran/.libs/intfschur.o diff --git a/modules/linear_algebra/src/fortran/.libs/intgschur.o b/modules/linear_algebra/src/fortran/.libs/intgschur.o Binary files differnew file mode 100755 index 000000000..a4f8f3e84 --- /dev/null +++ b/modules/linear_algebra/src/fortran/.libs/intgschur.o diff --git a/modules/linear_algebra/src/fortran/.libs/intogschur.o b/modules/linear_algebra/src/fortran/.libs/intogschur.o Binary files differnew file mode 100755 index 000000000..a779cd7bc --- /dev/null +++ b/modules/linear_algebra/src/fortran/.libs/intogschur.o diff --git a/modules/linear_algebra/src/fortran/.libs/intoschur.o b/modules/linear_algebra/src/fortran/.libs/intoschur.o Binary files differnew file mode 100755 index 000000000..73000adcd --- /dev/null +++ b/modules/linear_algebra/src/fortran/.libs/intoschur.o diff --git a/modules/linear_algebra/src/fortran/.libs/intozgschur.o b/modules/linear_algebra/src/fortran/.libs/intozgschur.o Binary files differnew file mode 100755 index 000000000..d84173672 --- /dev/null +++ b/modules/linear_algebra/src/fortran/.libs/intozgschur.o diff --git a/modules/linear_algebra/src/fortran/.libs/intzdet.o b/modules/linear_algebra/src/fortran/.libs/intzdet.o Binary files differnew file mode 100755 index 000000000..4ae3958b6 --- /dev/null +++ b/modules/linear_algebra/src/fortran/.libs/intzdet.o diff --git a/modules/linear_algebra/src/fortran/.libs/intzfschur.o b/modules/linear_algebra/src/fortran/.libs/intzfschur.o Binary files differnew file mode 100755 index 000000000..10ed27ce5 --- /dev/null +++ b/modules/linear_algebra/src/fortran/.libs/intzfschur.o diff --git a/modules/linear_algebra/src/fortran/.libs/intzgebal.o b/modules/linear_algebra/src/fortran/.libs/intzgebal.o Binary files differnew file mode 100755 index 000000000..3b7cc57b9 --- /dev/null +++ b/modules/linear_algebra/src/fortran/.libs/intzgebal.o diff --git a/modules/linear_algebra/src/fortran/.libs/intzgecon.o b/modules/linear_algebra/src/fortran/.libs/intzgecon.o Binary files differnew file mode 100755 index 000000000..050f8b207 --- /dev/null +++ b/modules/linear_algebra/src/fortran/.libs/intzgecon.o diff --git a/modules/linear_algebra/src/fortran/.libs/intzgees0.o b/modules/linear_algebra/src/fortran/.libs/intzgees0.o Binary files differnew file mode 100755 index 000000000..01c7e83cb --- /dev/null +++ b/modules/linear_algebra/src/fortran/.libs/intzgees0.o diff --git a/modules/linear_algebra/src/fortran/.libs/intzgees1.o b/modules/linear_algebra/src/fortran/.libs/intzgees1.o Binary files differnew file mode 100755 index 000000000..a7f46da2a --- /dev/null +++ b/modules/linear_algebra/src/fortran/.libs/intzgees1.o diff --git a/modules/linear_algebra/src/fortran/.libs/intzgehrd.o b/modules/linear_algebra/src/fortran/.libs/intzgehrd.o Binary files differnew file mode 100755 index 000000000..260da9df4 --- /dev/null +++ b/modules/linear_algebra/src/fortran/.libs/intzgehrd.o diff --git a/modules/linear_algebra/src/fortran/.libs/intzgelsy.o b/modules/linear_algebra/src/fortran/.libs/intzgelsy.o Binary files differnew file mode 100755 index 000000000..f1c029d39 --- /dev/null +++ b/modules/linear_algebra/src/fortran/.libs/intzgelsy.o diff --git a/modules/linear_algebra/src/fortran/.libs/intzgeqpf3.o b/modules/linear_algebra/src/fortran/.libs/intzgeqpf3.o Binary files differnew file mode 100755 index 000000000..1cff522b9 --- /dev/null +++ b/modules/linear_algebra/src/fortran/.libs/intzgeqpf3.o diff --git a/modules/linear_algebra/src/fortran/.libs/intzgeqpf4.o b/modules/linear_algebra/src/fortran/.libs/intzgeqpf4.o Binary files differnew file mode 100755 index 000000000..77601285f --- /dev/null +++ b/modules/linear_algebra/src/fortran/.libs/intzgeqpf4.o diff --git a/modules/linear_algebra/src/fortran/.libs/intzgesv3.o b/modules/linear_algebra/src/fortran/.libs/intzgesv3.o Binary files differnew file mode 100755 index 000000000..c9f53ec57 --- /dev/null +++ b/modules/linear_algebra/src/fortran/.libs/intzgesv3.o diff --git a/modules/linear_algebra/src/fortran/.libs/intzgesv4.o b/modules/linear_algebra/src/fortran/.libs/intzgesv4.o Binary files differnew file mode 100755 index 000000000..9cdd70972 --- /dev/null +++ b/modules/linear_algebra/src/fortran/.libs/intzgesv4.o diff --git a/modules/linear_algebra/src/fortran/.libs/intzgesvd1.o b/modules/linear_algebra/src/fortran/.libs/intzgesvd1.o Binary files differnew file mode 100755 index 000000000..8a629f327 --- /dev/null +++ b/modules/linear_algebra/src/fortran/.libs/intzgesvd1.o diff --git a/modules/linear_algebra/src/fortran/.libs/intzgesvd2.o b/modules/linear_algebra/src/fortran/.libs/intzgesvd2.o Binary files differnew file mode 100755 index 000000000..e9d7be4ec --- /dev/null +++ b/modules/linear_algebra/src/fortran/.libs/intzgesvd2.o diff --git a/modules/linear_algebra/src/fortran/.libs/intzgetrf.o b/modules/linear_algebra/src/fortran/.libs/intzgetrf.o Binary files differnew file mode 100755 index 000000000..c7a8deae7 --- /dev/null +++ b/modules/linear_algebra/src/fortran/.libs/intzgetrf.o diff --git a/modules/linear_algebra/src/fortran/.libs/intzgetri.o b/modules/linear_algebra/src/fortran/.libs/intzgetri.o Binary files differnew file mode 100755 index 000000000..32e3f9833 --- /dev/null +++ b/modules/linear_algebra/src/fortran/.libs/intzgetri.o diff --git a/modules/linear_algebra/src/fortran/.libs/intzggbal.o b/modules/linear_algebra/src/fortran/.libs/intzggbal.o Binary files differnew file mode 100755 index 000000000..c8f133584 --- /dev/null +++ b/modules/linear_algebra/src/fortran/.libs/intzggbal.o diff --git a/modules/linear_algebra/src/fortran/.libs/intzgges.o b/modules/linear_algebra/src/fortran/.libs/intzgges.o Binary files differnew file mode 100755 index 000000000..8c2e324ce --- /dev/null +++ b/modules/linear_algebra/src/fortran/.libs/intzgges.o diff --git a/modules/linear_algebra/src/fortran/.libs/intzgschur.o b/modules/linear_algebra/src/fortran/.libs/intzgschur.o Binary files differnew file mode 100755 index 000000000..a3160e234 --- /dev/null +++ b/modules/linear_algebra/src/fortran/.libs/intzgschur.o diff --git a/modules/linear_algebra/src/fortran/.libs/intzoldsvd.o b/modules/linear_algebra/src/fortran/.libs/intzoldsvd.o Binary files differnew file mode 100755 index 000000000..06a61d660 --- /dev/null +++ b/modules/linear_algebra/src/fortran/.libs/intzoldsvd.o diff --git a/modules/linear_algebra/src/fortran/.libs/intzpotrf.o b/modules/linear_algebra/src/fortran/.libs/intzpotrf.o Binary files differnew file mode 100755 index 000000000..811c48eb0 --- /dev/null +++ b/modules/linear_algebra/src/fortran/.libs/intzpotrf.o diff --git a/modules/linear_algebra/src/fortran/.libs/intzschur.o b/modules/linear_algebra/src/fortran/.libs/intzschur.o Binary files differnew file mode 100755 index 000000000..4b4b2188a --- /dev/null +++ b/modules/linear_algebra/src/fortran/.libs/intzschur.o diff --git a/modules/linear_algebra/src/fortran/.libs/scischur.o b/modules/linear_algebra/src/fortran/.libs/scischur.o Binary files differnew file mode 100755 index 000000000..5d9ed4473 --- /dev/null +++ b/modules/linear_algebra/src/fortran/.libs/scischur.o diff --git a/modules/linear_algebra/src/fortran/.libs/writebuf.o b/modules/linear_algebra/src/fortran/.libs/writebuf.o Binary files differnew file mode 100755 index 000000000..adbf65b3a --- /dev/null +++ b/modules/linear_algebra/src/fortran/.libs/writebuf.o diff --git a/modules/linear_algebra/src/fortran/.libs/zoldqr.o b/modules/linear_algebra/src/fortran/.libs/zoldqr.o Binary files differnew file mode 100755 index 000000000..4f1dd8f29 --- /dev/null +++ b/modules/linear_algebra/src/fortran/.libs/zoldqr.o diff --git a/modules/linear_algebra/src/fortran/Core_f_Import.def b/modules/linear_algebra/src/fortran/Core_f_Import.def new file mode 100755 index 000000000..4b7b7fd34 --- /dev/null +++ b/modules/linear_algebra/src/fortran/Core_f_Import.def @@ -0,0 +1,14 @@ + LIBRARY core_f.dll + + +EXPORTS +; +;core_f +; +allowptr_ +btof_ +ftob_ +ref2val_ +funs_ +isbyref_ + diff --git a/modules/linear_algebra/src/fortran/DGELSY1.f b/modules/linear_algebra/src/fortran/DGELSY1.f new file mode 100755 index 000000000..8cfb1f33c --- /dev/null +++ b/modules/linear_algebra/src/fortran/DGELSY1.f @@ -0,0 +1,410 @@ + SUBROUTINE DGELSY1( M, N, NRHS, A, LDA, B, LDB, JPVT, RCOND, RANK, + $ WORK, LWORK, INFO ) +* +* -- LAPACK driver routine (version 3.3.1) -- +* -- LAPACK is a software package provided by Univ. of Tennessee, -- +* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- +* -- April 2011 -- +* +* .. Scalar Arguments .. + INTEGER INFO, LDA, LDB, LWORK, M, N, NRHS, RANK + DOUBLE PRECISION RCOND +* .. +* .. Array Arguments .. + INTEGER JPVT( * ) + DOUBLE PRECISION A( LDA, * ), B( LDB, * ), WORK( * ) +* .. +* +* Purpose +* ======= +* +* DGELSY1 computes a solution, either with at least N-RANK zeros or +* the minimum-norm to a real linear least squares problem: +* minimize || A * X - B || +* using a complete orthogonal factorization of A. A is an M-by-N +* matrix which may be rank-deficient. +* +* Several right hand side vectors b and solution vectors x can be +* handled in a single call; they are stored as the columns of the +* M-by-NRHS right hand side matrix B and the N-by-NRHS solution +* matrix X. +* +* The routine first computes a QR factorization with column pivoting: +* A * P = Q * [ R11 R12 ] +* [ 0 R22 ] +* with R11 defined as the largest leading submatrix whose estimated +* condition number is less than 1/RCOND. The order of R11, RANK, +* is the effective rank of A. +* +* Then, R22 is considered to be negligible. If we ask for the +* minimum-norm solution, then R12 is annihilated by unitary +* transformations from the right, arriving at the +* complete orthogonal factorization: +* A * P = Q * [ T11 0 ] * Z +* [ 0 0 ] +* The minimum-norm solution is then +* X = P * Z**T [ inv(T11)*Q1**T*B ] +* [ 0 ] +* Otherwise, the returned solution is +* X = P * [ inv(R11)*Q1'*B ] +* [ 0 ] +* where Q1 consists of the first RANK columns of Q. +* +* This routine is basically identical to the original xGELSX except +* three differences: +* o The call to the subroutine xGEQPF has been substituted by the +* the call to the subroutine xGEQP3. This subroutine is a Blas-3 +* version of the QR factorization with column pivoting. +* o Matrix B (the right hand side) is updated with Blas-3. +* o The permutation of matrix B (the right hand side) is faster and +* more simple. +* +* Arguments +* ========= +* +* M (input) INTEGER +* The number of rows of the matrix A. M >= 0. +* +* N (input) INTEGER +* The number of columns of the matrix A. N >= 0. +* +* NRHS (input) INTEGER +* The number of right hand sides, i.e., the number of +* columns of matrices B and X. NRHS >= 0. +* +* A (input/output) DOUBLE PRECISION array, dimension (LDA,N) +* On entry, the M-by-N matrix A. +* On exit, A has been overwritten by details of its +* complete orthogonal factorization. +* +* LDA (input) INTEGER +* The leading dimension of the array A. LDA >= max(1,M). +* +* B (input/output) DOUBLE PRECISION array, dimension (LDB,NRHS) +* On entry, the M-by-NRHS right hand side matrix B. +* On exit, the N-by-NRHS solution matrix X. +* +* LDB (input) INTEGER +* The leading dimension of the array B. LDB >= max(1,M,N). +* +* JPVT (input/output) INTEGER array, dimension (N) +* On entry, if JPVT(i) .ne. 0, the i-th column of A is permuted +* to the front of AP, otherwise column i is a free column. +* On exit, if JPVT(i) = k, then the i-th column of AP +* was the k-th column of A. +* +* RCOND (input) DOUBLE PRECISION +* RCOND is used to determine the effective rank of A, which +* is defined as the order of the largest leading triangular +* submatrix R11 in the QR factorization with pivoting of A, +* whose estimated condition number < 1/RCOND. +* +* RANK (output) INTEGER +* The effective rank of A, i.e., the order of the submatrix +* R11. This is the same as the order of the submatrix T11 +* in the complete orthogonal factorization of A. +* +* WORK (workspace/output) DOUBLE PRECISION array, dimension (MAX(1,LWORK)) +* On exit, if INFO = 0, WORK(1) returns the optimal LWORK. +* +* LWORK (input) INTEGER +* The dimension of the array WORK. +* The unblocked strategy requires that: +* LWORK >= MAX( MN+3*N+1, 2*MN+NRHS ), +* where MN = min( M, N ). +* The block algorithm requires that: +* LWORK >= MAX( MN+2*N+NB*(N+1), 2*MN+NB*NRHS ), +* where NB is an upper bound on the blocksize returned +* by ILAENV for the routines DGEQP3, DTZRZF, STZRQF, DORMQR, +* and DORMRZ. +* +* If LWORK = -1, then a workspace query is assumed; the routine +* only calculates the optimal size of the WORK array, returns +* this value as the first entry of the WORK array, and no error +* message related to LWORK is issued by XERBLA. +* +ccccc Scilab Enterprises input, allow INFO to be input +* INFO (input/output) INTEGER +* On entry: +* = 0: minimum norm least square solution requested +* > 0: least square solution requested +ccccc +* On exit: +* = 0: successful exit +* < 0: If INFO = -i, the i-th argument had an illegal value +* +* Further Details +* =============== +* +* Based on contributions by +* A. Petitet, Computer Science Dept., Univ. of Tenn., Knoxville, USA +* E. Quintana-Orti, Depto. de Informatica, Universidad Jaime I, Spain +* G. Quintana-Orti, Depto. de Informatica, Universidad Jaime I, Spain +* +* ===================================================================== +* +* .. Parameters .. + INTEGER IMAX, IMIN + PARAMETER ( IMAX = 1, IMIN = 2 ) + DOUBLE PRECISION ZERO, ONE + PARAMETER ( ZERO = 0.0D+0, ONE = 1.0D+0 ) +* .. +* .. Local Scalars .. + LOGICAL LQUERY + INTEGER I, IASCL, IBSCL, ISMAX, ISMIN, J, LWKMIN, + $ LWKOPT, MN, NB, NB1, NB2, NB3, NB4 + DOUBLE PRECISION ANRM, BIGNUM, BNRM, C1, C2, S1, S2, SMAX, + $ SMAXPR, SMIN, SMINPR, SMLNUM, WSIZE +* .. +* .. External Functions .. + INTEGER ILAENV + DOUBLE PRECISION DLAMCH, DLANGE + EXTERNAL ILAENV, DLAMCH, DLANGE +* .. +* .. External Subroutines .. + EXTERNAL DCOPY, DGEQP3, DLABAD, DLAIC1, DLASCL, DLASET, + $ DORMQR, DORMRZ, DTRSM, DTZRZF, XERBLA +* .. +* .. Intrinsic Functions .. + INTRINSIC ABS, MAX, MIN +* .. +* .. Executable Statements .. +* + MN = MIN( M, N ) + ISMIN = MN + 1 + ISMAX = 2*MN + 1 +* +* Test the input arguments. +* +ccccc Scilab Enterprises input, save the input INFO + MIN_NORM = INFO +ccccc + INFO = 0 + LQUERY = ( LWORK.EQ.-1 ) + IF( M.LT.0 ) THEN + INFO = -1 + ELSE IF( N.LT.0 ) THEN + INFO = -2 + ELSE IF( NRHS.LT.0 ) THEN + INFO = -3 + ELSE IF( LDA.LT.MAX( 1, M ) ) THEN + INFO = -5 + ELSE IF( LDB.LT.MAX( 1, M, N ) ) THEN + INFO = -7 + END IF +* +* Figure out optimal block size +* + IF( INFO.EQ.0 ) THEN + IF( MN.EQ.0 .OR. NRHS.EQ.0 ) THEN + LWKMIN = 1 + LWKOPT = 1 + ELSE + NB1 = ILAENV( 1, 'DGEQRF', ' ', M, N, -1, -1 ) + NB2 = ILAENV( 1, 'DGERQF', ' ', M, N, -1, -1 ) + NB3 = ILAENV( 1, 'DORMQR', ' ', M, N, NRHS, -1 ) + NB4 = ILAENV( 1, 'DORMRQ', ' ', M, N, NRHS, -1 ) + NB = MAX( NB1, NB2, NB3, NB4 ) + LWKMIN = MN + MAX( 2*MN, N + 1, MN + NRHS ) + LWKOPT = MAX( LWKMIN, + $ MN + 2*N + NB*( N + 1 ), 2*MN + NB*NRHS ) + END IF + WORK( 1 ) = LWKOPT +* + IF( LWORK.LT.LWKMIN .AND. .NOT.LQUERY ) THEN + INFO = -12 + END IF + END IF +* + IF( INFO.NE.0 ) THEN + CALL XERBLA( 'DGELSY1', -INFO ) + RETURN + ELSE IF( LQUERY ) THEN + RETURN + END IF +* +* Quick return if possible +* + IF( MN.EQ.0 .OR. NRHS.EQ.0 ) THEN + RANK = 0 + RETURN + END IF +* +* Get machine parameters +* + SMLNUM = DLAMCH( 'S' ) / DLAMCH( 'P' ) + BIGNUM = ONE / SMLNUM + CALL DLABAD( SMLNUM, BIGNUM ) +* +* Scale A, B if max entries outside range [SMLNUM,BIGNUM] +* + ANRM = DLANGE( 'M', M, N, A, LDA, WORK ) + IASCL = 0 + IF( ANRM.GT.ZERO .AND. ANRM.LT.SMLNUM ) THEN +* +* Scale matrix norm up to SMLNUM +* + CALL DLASCL( 'G', 0, 0, ANRM, SMLNUM, M, N, A, LDA, INFO ) + IASCL = 1 + ELSE IF( ANRM.GT.BIGNUM ) THEN +* +* Scale matrix norm down to BIGNUM +* + CALL DLASCL( 'G', 0, 0, ANRM, BIGNUM, M, N, A, LDA, INFO ) + IASCL = 2 + ELSE IF( ANRM.EQ.ZERO ) THEN +* +* Matrix all zero. Return zero solution. +* + CALL DLASET( 'F', MAX( M, N ), NRHS, ZERO, ZERO, B, LDB ) + RANK = 0 + GO TO 70 + END IF +* + BNRM = DLANGE( 'M', M, NRHS, B, LDB, WORK ) + IBSCL = 0 + IF( BNRM.GT.ZERO .AND. BNRM.LT.SMLNUM ) THEN +* +* Scale matrix norm up to SMLNUM +* + CALL DLASCL( 'G', 0, 0, BNRM, SMLNUM, M, NRHS, B, LDB, INFO ) + IBSCL = 1 + ELSE IF( BNRM.GT.BIGNUM ) THEN +* +* Scale matrix norm down to BIGNUM +* + CALL DLASCL( 'G', 0, 0, BNRM, BIGNUM, M, NRHS, B, LDB, INFO ) + IBSCL = 2 + END IF +* +* Compute QR factorization with column pivoting of A: +* A * P = Q * R +* + CALL DGEQP3( M, N, A, LDA, JPVT, WORK( 1 ), WORK( MN+1 ), + $ LWORK-MN, INFO ) + WSIZE = MN + WORK( MN+1 ) +* +* workspace: MN+2*N+NB*(N+1). +* Details of Householder rotations stored in WORK(1:MN). +* +* Determine RANK using incremental condition estimation +* + WORK( ISMIN ) = ONE + WORK( ISMAX ) = ONE + SMAX = ABS( A( 1, 1 ) ) + SMIN = SMAX + IF( ABS( A( 1, 1 ) ).EQ.ZERO ) THEN + RANK = 0 + CALL DLASET( 'F', MAX( M, N ), NRHS, ZERO, ZERO, B, LDB ) + GO TO 70 + ELSE + RANK = 1 + END IF +* + 10 CONTINUE + IF( RANK.LT.MN ) THEN + I = RANK + 1 + CALL DLAIC1( IMIN, RANK, WORK( ISMIN ), SMIN, A( 1, I ), + $ A( I, I ), SMINPR, S1, C1 ) + CALL DLAIC1( IMAX, RANK, WORK( ISMAX ), SMAX, A( 1, I ), + $ A( I, I ), SMAXPR, S2, C2 ) +* + IF( SMAXPR*RCOND.LE.SMINPR ) THEN + DO 20 I = 1, RANK + WORK( ISMIN+I-1 ) = S1*WORK( ISMIN+I-1 ) + WORK( ISMAX+I-1 ) = S2*WORK( ISMAX+I-1 ) + 20 CONTINUE + WORK( ISMIN+RANK ) = C1 + WORK( ISMAX+RANK ) = C2 + SMIN = SMINPR + SMAX = SMAXPR + RANK = RANK + 1 + GO TO 10 + END IF + END IF +* +* workspace: 3*MN. +* +* Logically partition R = [ R11 R12 ] +* [ 0 R22 ] +* where R11 = R(1:RANK,1:RANK) +* +* [R11,R12] = [ T11, 0 ] * Y +* + IF ( MIN_NORM.EQ.0 ) THEN + IF( RANK.LT.N ) + $ CALL DTZRZF( RANK, N, A, LDA, WORK( MN+1 ), WORK( 2*MN+1 ), + $ LWORK-2*MN, INFO ) + END IF +* +* workspace: 2*MN. +* Details of Householder rotations stored in WORK(MN+1:2*MN) +* +* B(1:M,1:NRHS) := Q' * B(1:M,1:NRHS) +* + CALL DORMQR( 'Left', 'Transpose', M, NRHS, MN, A, LDA, WORK( 1 ), + $ B, LDB, WORK( 2*MN+1 ), LWORK-2*MN, INFO ) + WSIZE = MAX( WSIZE, 2*MN+WORK( 2*MN+1 ) ) +* +* workspace: 2*MN+NB*NRHS. +* +* B(1:RANK,1:NRHS) := inv(T11) * B(1:RANK,1:NRHS) +* + CALL DTRSM( 'Left', 'Upper', 'No transpose', 'Non-unit', RANK, + $ NRHS, ONE, A, LDA, B, LDB ) +* + DO 40 J = 1, NRHS + DO 30 I = RANK + 1, N + B( I, J ) = ZERO + 30 CONTINUE + 40 CONTINUE +* +* B(1:N,1:NRHS) := Y' * B(1:N,1:NRHS) +* + IF ( MIN_NORM.EQ.0 ) THEN + IF( RANK.LT.N ) THEN + CALL DORMRZ( 'Left', 'Transpose', N, NRHS, RANK, N-RANK, A, + $ LDA, WORK( MN+1 ), B, LDB, WORK( 2*MN+1 ), + $ LWORK-2*MN, INFO ) + END IF + END IF +* +* workspace: 2*MN+NRHS. +* +* B(1:N,1:NRHS) := P * B(1:N,1:NRHS) +* + DO 60 J = 1, NRHS + DO 50 I = 1, N + WORK( JPVT( I ) ) = B( I, J ) + 50 CONTINUE + CALL DCOPY( N, WORK( 1 ), 1, B( 1, J ), 1 ) + 60 CONTINUE +* +* workspace: N. +* +* Undo scaling +* + IF( IASCL.EQ.1 ) THEN + CALL DLASCL( 'G', 0, 0, ANRM, SMLNUM, N, NRHS, B, LDB, INFO ) + CALL DLASCL( 'U', 0, 0, SMLNUM, ANRM, RANK, RANK, A, LDA, + $ INFO ) + ELSE IF( IASCL.EQ.2 ) THEN + CALL DLASCL( 'G', 0, 0, ANRM, BIGNUM, N, NRHS, B, LDB, INFO ) + CALL DLASCL( 'U', 0, 0, BIGNUM, ANRM, RANK, RANK, A, LDA, + $ INFO ) + END IF + IF( IBSCL.EQ.1 ) THEN + CALL DLASCL( 'G', 0, 0, SMLNUM, BNRM, N, NRHS, B, LDB, INFO ) + ELSE IF( IBSCL.EQ.2 ) THEN + CALL DLASCL( 'G', 0, 0, BIGNUM, BNRM, N, NRHS, B, LDB, INFO ) + END IF +* + 70 CONTINUE + WORK( 1 ) = LWKOPT +* + RETURN +* +* End of DGELSY1 +* + END + diff --git a/modules/linear_algebra/src/fortran/DGELSY1.lo b/modules/linear_algebra/src/fortran/DGELSY1.lo new file mode 100755 index 000000000..ad1aa5781 --- /dev/null +++ b/modules/linear_algebra/src/fortran/DGELSY1.lo @@ -0,0 +1,12 @@ +# src/fortran/DGELSY1.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/DGELSY1.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/src/fortran/ZGELSY1.f b/modules/linear_algebra/src/fortran/ZGELSY1.f new file mode 100755 index 000000000..39e2a6ff9 --- /dev/null +++ b/modules/linear_algebra/src/fortran/ZGELSY1.f @@ -0,0 +1,448 @@ + SUBROUTINE ZGELSY1( M, N, NRHS, A, LDA, B, LDB, JPVT, RCOND, RANK, + $ WORK, LWORK, RWORK, INFO ) +* +* -- LAPACK driver routine (version 3.0) -- +* Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd., +* Courant Institute, Argonne National Lab, and Rice University +* June 30, 1999 +* +* .. Scalar Arguments .. + INTEGER INFO, LDA, LDB, LWORK, M, N, NRHS, RANK + DOUBLE PRECISION RCOND +* .. +* .. Array Arguments .. + INTEGER JPVT( * ) + DOUBLE PRECISION RWORK( * ) + COMPLEX*16 A( LDA, * ), B( LDB, * ), WORK( * ) +* .. +* Common blocks to return operation counts and timings +* .. Common blocks .. + COMMON / LATIME / OPS, ITCNT + COMMON / LSTIME / OPCNT, TIMNG +* .. +* .. Scalars in Common .. + DOUBLE PRECISION ITCNT, OPS +* .. +* .. Arrays in Common .. + DOUBLE PRECISION OPCNT( 6 ), TIMNG( 6 ) +* .. +* +* Purpose +* ======= +* +* ZGELSY1 computes a solution, either with at least N-RANK zeros or +* the minimum-norm to a complex linear least squares problem: +* min || A * X - B || +* using a complete orthogonal factorization of A. A is an M-by-N +* matrix which may be rank-deficient. +* +* Several right hand side vectors b and solution vectors x can be +* handled in a single call; they are stored as the columns of the +* M-by-NRHS right hand side matrix B and the N-by-NRHS solution +* matrix X. +* +* The routine first computes a QR factorization with column pivoting: +* A * P = Q * [ R11 R12 ] +* [ 0 R22 ] +* with R11 defined as the largest leading submatrix whose estimated +* condition number is less than 1/RCOND. The order of R11, RANK, +* is the effective rank of A. +* +* Then, R22 is considered to be negligible. If we ask for the +* minimum-norm solution, then R12 is annihilated by unitary +* transformations from the right, arriving at the +* complete orthogonal factorization: +* A * P = Q * [ T11 0 ] * Z +* [ 0 0 ] +* The minimum-norm solution is then +* X = P * Z' [ inv(T11)*Q1'*B ] +* [ 0 ] +* Otherwise, the returned solution is +* X = P * [ inv(T11)*Q1'*B ] +* [ 0 ] +* where Q1 consists of the first RANK columns of Q. +* +* This routine is basically identical to the original xGELSX except +* three differences: +* o The permutation of matrix B (the right hand side) is faster and +* more simple. +* o The call to the subroutine xGEQPF has been substituted by the +* the call to the subroutine xGEQP3. This subroutine is a Blas-3 +* version of the QR factorization with column pivoting. +* o Matrix B (the right hand side) is updated with Blas-3. +* +* Arguments +* ========= +* +* M (input) INTEGER +* The number of rows of the matrix A. M >= 0. +* +* N (input) INTEGER +* The number of columns of the matrix A. N >= 0. +* +* NRHS (input) INTEGER +* The number of right hand sides, i.e., the number of +* columns of matrices B and X. NRHS >= 0. +* +* A (input/output) COMPLEX*16 array, dimension (LDA,N) +* On entry, the M-by-N matrix A. +* On exit, A has been overwritten by details of its +* complete orthogonal factorization. +* +* LDA (input) INTEGER +* The leading dimension of the array A. LDA >= max(1,M). +* +* B (input/output) COMPLEX*16 array, dimension (LDB,NRHS) +* On entry, the M-by-NRHS right hand side matrix B. +* On exit, the N-by-NRHS solution matrix X. +* +* LDB (input) INTEGER +* The leading dimension of the array B. LDB >= max(1,M,N). +* +* JPVT (input/output) INTEGER array, dimension (N) +* On entry, if JPVT(i) .ne. 0, the i-th column of A is permuted +* to the front of AP, otherwise column i is a free column. +* On exit, if JPVT(i) = k, then the i-th column of A*P +* was the k-th column of A. +* +* RCOND (input) DOUBLE PRECISION +* RCOND is used to determine the effective rank of A, which +* is defined as the order of the largest leading triangular +* submatrix R11 in the QR factorization with pivoting of A, +* whose estimated condition number < 1/RCOND. +* +* RANK (output) INTEGER +* The effective rank of A, i.e., the order of the submatrix +* R11. This is the same as the order of the submatrix T11 +* in the complete orthogonal factorization of A. +* +* WORK (workspace/output) COMPLEX*16 array, dimension (LWORK) +* On exit, if INFO = 0, WORK(1) returns the optimal LWORK. +* +* LWORK (input) INTEGER +* The dimension of the array WORK. +* The unblocked strategy requires that: +* LWORK >= MN + MAX( 2*MN, N+1, MN+NRHS ) +* where MN = min(M,N). +* The block algorithm requires that: +* LWORK >= MN + MAX( 2*MN, NB*(N+1), MN+MN*NB, MN+NB*NRHS ) +* where NB is an upper bound on the blocksize returned +* by ILAENV for the routines ZGEQP3, ZTZRZF, CTZRQF, ZUNMQR, +* and ZUNMRZ. +* +* If LWORK = -1, then a workspace query is assumed; the routine +* only calculates the optimal size of the WORK array, returns +* this value as the first entry of the WORK array, and no error +* message related to LWORK is issued by XERBLA. +* +* RWORK (workspace) DOUBLE PRECISION array, dimension (2*N) +* +ccccc Scilab Enterprises input, allow INFO to be input +* INFO (input/output) INTEGER +* On entry: +* = 0: minimum norm least square solution requested +* > 0: least square solution requested +ccccc +* On exit: +* = 0: successful exit +* < 0: if INFO = -i, the i-th argument had an illegal value +* +* Further Details +* =============== +* +* Based on contributions by +* A. Petitet, Computer Science Dept., Univ. of Tenn., Knoxville, USA +* E. Quintana-Orti, Depto. de Informatica, Universidad Jaime I, Spain +* G. Quintana-Orti, Depto. de Informatica, Universidad Jaime I, Spain +* +* ===================================================================== +* +* .. Parameters .. + INTEGER IMAX, IMIN + PARAMETER ( IMAX = 1, IMIN = 2 ) + DOUBLE PRECISION ZERO, ONE + PARAMETER ( ZERO = 0.0D+0, ONE = 1.0D+0 ) + COMPLEX*16 CZERO, CONE + PARAMETER ( CZERO = ( 0.0D+0, 0.0D+0 ), + $ CONE = ( 1.0D+0, 0.0D+0 ) ) +* .. +* .. Local Scalars .. + LOGICAL LQUERY + INTEGER GELSY, GEQP3, I, IASCL, IBSCL, ISMAX, ISMIN, J, + $ LWKOPT, MN, NB, NB1, NB2, NB3, NB4, TRSM, + $ TZRZF, UNMQR, UNMRZ + DOUBLE PRECISION ANRM, BIGNUM, BNRM, SMAX, SMAXPR, SMIN, SMINPR, + $ SMLNUM, T1, T2, WSIZE + COMPLEX*16 C1, C2, S1, S2 +* .. +* .. External Functions .. + INTEGER ILAENV + DOUBLE PRECISION DLAMCH, DOPBL3, DOPLA, DSECND, ZLANGE + EXTERNAL ILAENV, DLAMCH, DOPBL3, DOPLA, DSECND, ZLANGE +* .. +* .. External Subroutines .. + EXTERNAL DLABAD, XERBLA, ZCOPY, ZGEQP3, ZLAIC1, ZLASCL, + $ ZLASET, ZTRSM, ZTZRZF, ZUNMQR, ZUNMRZ +* .. +* .. Intrinsic Functions .. + INTRINSIC ABS, DBLE, DCMPLX, MAX, MIN +* .. +* .. Data statements .. + DATA GELSY / 1 / , GEQP3 / 2 / , TRSM / 5 / , + $ TZRZF / 3 / , UNMQR / 4 / , UNMRZ / 6 / +* .. +* .. Executable Statements .. +* + MN = MIN( M, N ) + ISMIN = MN + 1 + ISMAX = 2*MN + 1 +* +* Test the input arguments. +* +ccccc Scilab Enterprises input, save the input INFO + MIN_NORM = INFO +ccccc + INFO = 0 + NB1 = ILAENV( 1, 'ZGEQRF', ' ', M, N, -1, -1 ) + NB2 = ILAENV( 1, 'ZGERQF', ' ', M, N, -1, -1 ) + NB3 = ILAENV( 1, 'ZUNMQR', ' ', M, N, NRHS, -1 ) + NB4 = ILAENV( 1, 'ZUNMRQ', ' ', M, N, NRHS, -1 ) + NB = MAX( NB1, NB2, NB3, NB4 ) + LWKOPT = MAX( 1, MN+2*N+NB*( N+1 ), 2*MN+NB*NRHS ) + WORK( 1 ) = DCMPLX( LWKOPT ) + LQUERY = ( LWORK.EQ.-1 ) + IF( M.LT.0 ) THEN + INFO = -1 + ELSE IF( N.LT.0 ) THEN + INFO = -2 + ELSE IF( NRHS.LT.0 ) THEN + INFO = -3 + ELSE IF( LDA.LT.MAX( 1, M ) ) THEN + INFO = -5 + ELSE IF( LDB.LT.MAX( 1, M, N ) ) THEN + INFO = -7 + ELSE IF( LWORK.LT.( MN+MAX( 2*MN, N+1, MN+NRHS ) ) .AND. .NOT. + $ LQUERY ) THEN + INFO = -12 + END IF +* + IF( INFO.NE.0 ) THEN + CALL XERBLA( 'ZGELSY1', -INFO ) + RETURN + ELSE IF( LQUERY ) THEN + RETURN + END IF +* +* Quick return if possible +* + IF( MIN( M, N, NRHS ).EQ.0 ) THEN + RANK = 0 + RETURN + END IF +* +* Get machine parameters +* +c OPCNT( GELSY ) = OPCNT( GELSY ) + DBLE( 2 ) + SMLNUM = DLAMCH( 'S' ) / DLAMCH( 'P' ) + BIGNUM = ONE / SMLNUM + CALL DLABAD( SMLNUM, BIGNUM ) +* +* Scale A, B if max entries outside range [SMLNUM,BIGNUM] +* + ANRM = ZLANGE( 'M', M, N, A, LDA, RWORK ) + IASCL = 0 + IF( ANRM.GT.ZERO .AND. ANRM.LT.SMLNUM ) THEN +* +* Scale matrix norm up to SMLNUM +* +c OPCNT( GELSY ) = OPCNT( GELSY ) + DBLE( 6*M*N ) + CALL ZLASCL( 'G', 0, 0, ANRM, SMLNUM, M, N, A, LDA, INFO ) + IASCL = 1 + ELSE IF( ANRM.GT.BIGNUM ) THEN +* +* Scale matrix norm down to BIGNUM +* +c OPCNT( GELSY ) = OPCNT( GELSY ) + DBLE( 6*M*N ) + CALL ZLASCL( 'G', 0, 0, ANRM, BIGNUM, M, N, A, LDA, INFO ) + IASCL = 2 + ELSE IF( ANRM.EQ.ZERO ) THEN +* +* Matrix all zero. Return zero solution. +* + CALL ZLASET( 'F', MAX( M, N ), NRHS, CZERO, CZERO, B, LDB ) + RANK = 0 + GO TO 70 + END IF +* + BNRM = ZLANGE( 'M', M, NRHS, B, LDB, RWORK ) + IBSCL = 0 + IF( BNRM.GT.ZERO .AND. BNRM.LT.SMLNUM ) THEN +* +* Scale matrix norm up to SMLNUM +* +c OPCNT( GELSY ) = OPCNT( GELSY ) + DBLE( 6*M*NRHS ) + CALL ZLASCL( 'G', 0, 0, BNRM, SMLNUM, M, NRHS, B, LDB, INFO ) + IBSCL = 1 + ELSE IF( BNRM.GT.BIGNUM ) THEN +* +* Scale matrix norm down to BIGNUM +* +c OPCNT( GELSY ) = OPCNT( GELSY ) + DBLE( 6*M*NRHS ) + CALL ZLASCL( 'G', 0, 0, BNRM, BIGNUM, M, NRHS, B, LDB, INFO ) + IBSCL = 2 + END IF +* +* Compute QR factorization with column pivoting of A: +* A * P = Q * R +* +c OPCNT( GEQP3 ) = OPCNT( GEQP3 ) + DOPLA( 'ZGEQPF', M, N, 0, 0, 0 ) +c T1 = DSECND( ) + CALL ZGEQP3( M, N, A, LDA, JPVT, WORK( 1 ), WORK( MN+1 ), + $ LWORK-MN, RWORK, INFO ) +c T2 = DSECND( ) +c TIMNG( GEQP3 ) = TIMNG( GEQP3 ) + ( T2-T1 ) + WSIZE = MN + DBLE( WORK( MN+1 ) ) +* +* complex workspace: MN+NB*(N+1). real workspace 2*N. +* Details of Householder rotations stored in WORK(1:MN). +* +* Determine RANK using incremental condition estimation +* + WORK( ISMIN ) = CONE + WORK( ISMAX ) = CONE + SMAX = ABS( A( 1, 1 ) ) + SMIN = SMAX + IF( ABS( A( 1, 1 ) ).EQ.ZERO ) THEN + RANK = 0 + CALL ZLASET( 'F', MAX( M, N ), NRHS, CZERO, CZERO, B, LDB ) + GO TO 70 + ELSE + RANK = 1 + END IF +* + 10 CONTINUE + IF( RANK.LT.MN ) THEN + I = RANK + 1 +c OPS = 0 + CALL ZLAIC1( IMIN, RANK, WORK( ISMIN ), SMIN, A( 1, I ), + $ A( I, I ), SMINPR, S1, C1 ) + CALL ZLAIC1( IMAX, RANK, WORK( ISMAX ), SMAX, A( 1, I ), + $ A( I, I ), SMAXPR, S2, C2 ) +c OPCNT( GELSY ) = OPCNT( GELSY ) + OPS + DBLE( 1 ) +* + IF( SMAXPR*RCOND.LE.SMINPR ) THEN +c OPCNT( GELSY ) = OPCNT( GELSY ) + DBLE( RANK*6 ) + DO 20 I = 1, RANK + WORK( ISMIN+I-1 ) = S1*WORK( ISMIN+I-1 ) + WORK( ISMAX+I-1 ) = S2*WORK( ISMAX+I-1 ) + 20 CONTINUE + WORK( ISMIN+RANK ) = C1 + WORK( ISMAX+RANK ) = C2 + SMIN = SMINPR + SMAX = SMAXPR + RANK = RANK + 1 + GO TO 10 + END IF + END IF +* +* complex workspace: 3*MN. +* +* Logically partition R = [ R11 R12 ] +* [ 0 R22 ] +* where R11 = R(1:RANK,1:RANK) +* +* [R11,R12] = [ T11, 0 ] * Y +* + IF ( MIN_NORM.EQ.0 ) THEN + IF( RANK.LT.N ) THEN + CALL ZTZRZF( RANK, N, A, LDA, WORK( MN+1 ), WORK( 2*MN+1 ), + $ LWORK-2*MN, INFO ) + END IF + END IF +* +* complex workspace: 2*MN. +* Details of Householder rotations stored in WORK(MN+1:2*MN) +* +* B(1:M,1:NRHS) := Q' * B(1:M,1:NRHS) +* +c OPCNT( UNMQR ) = OPCNT( UNMQR ) + +c $ DOPLA( 'ZUNMQR', M, NRHS, MN, 0, 0 ) +c T1 = DSECND( ) + CALL ZUNMQR( 'Left', 'Conjugate transpose', M, NRHS, MN, A, LDA, + $ WORK( 1 ), B, LDB, WORK( 2*MN+1 ), LWORK-2*MN, INFO ) +c T2 = DSECND( ) +c TIMNG( UNMQR ) = TIMNG( UNMQR ) + ( T2-T1 ) + WSIZE = MAX( WSIZE, 2*MN+DBLE( WORK( 2*MN+1 ) ) ) +* +* complex workspace: 2*MN+NB*NRHS. +* +* B(1:RANK,1:NRHS) := inv(T11) * B(1:RANK,1:NRHS) +* +c OPCNT( TRSM ) = OPCNT( TRSM ) + DOPBL3( 'ZTRSM ', RANK, NRHS, 0 ) +c T1 = DSECND( ) + CALL ZTRSM( 'Left', 'Upper', 'No transpose', 'Non-unit', RANK, + $ NRHS, CONE, A, LDA, B, LDB ) +c T2 = DSECND( ) +c TIMNG( TRSM ) = TIMNG( TRSM ) + ( T2-T1 ) +* + DO 40 J = 1, NRHS + DO 30 I = RANK + 1, N + B( I, J ) = CZERO + 30 CONTINUE + 40 CONTINUE +* +* B(1:N,1:NRHS) := Y' * B(1:N,1:NRHS) +* + IF ( MIN_NORM.EQ.0 ) THEN + IF( RANK.LT.N ) THEN + CALL ZUNMRZ( 'Left', 'Conjugate transpose', N, NRHS, RANK, + $ N-RANK, A, LDA, WORK( MN+1 ), B, LDB, + $ WORK( 2*MN+1 ), LWORK-2*MN, INFO ) + END IF + END IF +* +* complex workspace: 2*MN+NRHS. +* +* B(1:N,1:NRHS) := P * B(1:N,1:NRHS) +* + DO 60 J = 1, NRHS + DO 50 I = 1, N + WORK( JPVT( I ) ) = B( I, J ) + 50 CONTINUE + CALL ZCOPY( N, WORK( 1 ), 1, B( 1, J ), 1 ) + 60 CONTINUE +* +* complex workspace: N. +* +* Undo scaling +* + IF( IASCL.EQ.1 ) THEN +c OPCNT( GELSY ) = OPCNT( GELSY ) + +c $ DBLE( ( N*NRHS+RANK*RANK )*6 ) + CALL ZLASCL( 'G', 0, 0, ANRM, SMLNUM, N, NRHS, B, LDB, INFO ) + CALL ZLASCL( 'U', 0, 0, SMLNUM, ANRM, RANK, RANK, A, LDA, + $ INFO ) + ELSE IF( IASCL.EQ.2 ) THEN +c OPCNT( GELSY ) = OPCNT( GELSY ) + +c $ DBLE( ( N*NRHS+RANK*RANK )*6 ) + CALL ZLASCL( 'G', 0, 0, ANRM, BIGNUM, N, NRHS, B, LDB, INFO ) + CALL ZLASCL( 'U', 0, 0, BIGNUM, ANRM, RANK, RANK, A, LDA, + $ INFO ) + END IF + IF( IBSCL.EQ.1 ) THEN +c OPCNT( GELSY ) = OPCNT( GELSY ) + DBLE( N*NRHS*6 ) + CALL ZLASCL( 'G', 0, 0, SMLNUM, BNRM, N, NRHS, B, LDB, INFO ) + ELSE IF( IBSCL.EQ.2 ) THEN +c OPCNT( GELSY ) = OPCNT( GELSY ) + DBLE( N*NRHS*6 ) + CALL ZLASCL( 'G', 0, 0, BIGNUM, BNRM, N, NRHS, B, LDB, INFO ) + END IF +* + 70 CONTINUE + WORK( 1 ) = DCMPLX( LWKOPT ) +* + RETURN +* +* End of ZGELSY1 +* + END + diff --git a/modules/linear_algebra/src/fortran/ZGELSY1.lo b/modules/linear_algebra/src/fortran/ZGELSY1.lo new file mode 100755 index 000000000..a12b1be30 --- /dev/null +++ b/modules/linear_algebra/src/fortran/ZGELSY1.lo @@ -0,0 +1,12 @@ +# src/fortran/ZGELSY1.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/ZGELSY1.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/src/fortran/common_f2c.c b/modules/linear_algebra/src/fortran/common_f2c.c new file mode 100755 index 000000000..fdacf1d73 --- /dev/null +++ b/modules/linear_algebra/src/fortran/common_f2c.c @@ -0,0 +1,24 @@ +/* +* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +* Copyright (C) 2010 - 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 +* +*/ + +/* ONLY used by F2C with scilab_f2c.sln on Windows */ +/* this modification removes some warning about no defined or redefined COMMON */ +/* We force definition of COMMON only used in current dynamic library */ +/*--------------------------------------------------------------------------*/ +/* see fortran code for definition of this COMMON */ +#ifdef _MSC_VER +struct +{ + long int iero; +} ierinv_; +#endif +/*--------------------------------------------------------------------------*/ diff --git a/modules/linear_algebra/src/fortran/complexify.f b/modules/linear_algebra/src/fortran/complexify.f new file mode 100755 index 000000000..6534b89fc --- /dev/null +++ b/modules/linear_algebra/src/fortran/complexify.f @@ -0,0 +1,49 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) INRIA +c$ +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +c$ + logical function complexify(n) +c transforms the real matrix at position n into complex + include 'stack.h' +c + integer iadr +c + iadr(l)=l+l-1 +c + complexify=.false. + nn=top-rhs+n + ln=lstk(nn) + ln1=lstk(nn+1) + isize=ln1-ln + iln=iadr(ln) + if(istk(iln+3).eq.1) then + complexify=.true. + return + endif + istk(iln+3)=1 + m1=istk(iln+1) + n1=istk(iln+2) + mn=m1*n1 + do 1 k=top-rhs+n,top + lstk(k+1)=lstk(k+1)+mn + 1 continue + lfree=lstk(top+1) + lw=lfree-ln + err=lfree+lw+mn-lstk(bot) + if (err .gt. 0) then + call error(17) + return + endif + call dcopy(isize,stk(ln),1,stk(lfree),1) + call dcopy(mn,0.0d0,0,stk(lfree+isize),1) + call dcopy(lw-isize-mn,stk(ln1),1,stk(lfree+isize+mn),1) + call dcopy(lw,stk(lfree),1,stk(ln),1) + complexify=.true. + return + end + diff --git a/modules/linear_algebra/src/fortran/complexify.lo b/modules/linear_algebra/src/fortran/complexify.lo new file mode 100755 index 000000000..15647e1fa --- /dev/null +++ b/modules/linear_algebra/src/fortran/complexify.lo @@ -0,0 +1,12 @@ +# src/fortran/complexify.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/complexify.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/src/fortran/core_Import.def b/modules/linear_algebra/src/fortran/core_Import.def new file mode 100755 index 000000000..6683cd33a --- /dev/null +++ b/modules/linear_algebra/src/fortran/core_Import.def @@ -0,0 +1,35 @@ + LIBRARY core.dll + + +EXPORTS +; +;core +; +adre_ +iop_ +recu_ +stack_ +vstk_ +com_ +cha1_ +errgst_ +mtlbc_ +scigsch_ +scisch_ +scizgsch_ +intersci_ +checkrhs_ +checklhs_ +getrhsvar_ +createvar_ +maxvol_ +createcvar_ +scifunction_ +parse_ +callinterf_ +getrecursiongatewaytocall_ +isrecursioncalltofunction_ +; +;core_f +; + diff --git a/modules/linear_algebra/src/fortran/doldqr.f b/modules/linear_algebra/src/fortran/doldqr.f new file mode 100755 index 000000000..71127dfa0 --- /dev/null +++ b/modules/linear_algebra/src/fortran/doldqr.f @@ -0,0 +1,151 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) INRIA +c$ +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +c$ + subroutine doldqr(tol,fname) + +c [Q,R,rk,E]=qr(A,tol) +c [Q,R,rk,E]=qr(A) + + include 'stack.h' + logical getrhsvar,createvar + logical checklhs,checkrhs + character fname*(*) + double precision ZERO, ONE,eps,tt,tol + parameter ( ZERO=0.0D0, ONE=1.0D0 ) +c + minrhs=1 + maxrhs=2 + minlhs=1 + maxlhs=4 + eps=stk(leps) +c + if(.not.checkrhs(fname,minrhs,maxrhs)) return + if(.not.checklhs(fname,minlhs,maxlhs)) return + + if(.not.getrhsvar(1,'d', M, N, lA)) return + if(M.eq.0 .or.N.eq.0) then + if(.not.createvar(2,'d', 0, 0, lQ)) return + if(.not.createvar(3,'d', 0, 0, lR)) return + if(.not.createvar(4,'d', 1, 1, lrk)) return + stk(lrk)=0.0d0 + if(.not.createvar(5,'d', 0, 0, lE)) return + lhsvar(1) = 2 + lhsvar(2) = 3 + lhsvar(3) = 4 + lhsvar(4) = 5 + return + elseif(M.eq.-1 .or.N.eq.-1) then + err=1 + call error(271) + return + endif + if(.not.createvar(2,'d', M, M, lQ)) return + if(.not.createvar(3,'d', M, N, lR)) return + if(.not.createvar(4,'d', N, N, lE)) return + if(.not.createvar(5,'i', 1, N, lJPVT)) return + if(.not.createvar(6,'d', 1, 1, lrk)) return + k=7 + if(.not.createvar(k,'d', 1, min(M,N), lTAU)) return + if(lhs.le.2) then + LWORKMIN = MAX(1,N) + else + LWORKMIN = 3*N + endif + LWORK=maxvol(k+1,'d') + if(LWORK.le.LWORKMIN) then + err=LWORK-LWORKMIN + call error(17) + return + endif + if(.not.createvar(k+1,'d',1,LWORK,lDWORK)) return + if(lhs.le.2) then + call DGEQRF( M, N, stk(lA), M, stk(lTAU), stk(lDWORK), + $ LWORK, INFO ) +c SUBROUTINE DGEQRF( M, N, A, LDA, TAU, WORK, LWORK, INFO ) + else + do 5 i = 1, N + istk(lJPVT+i-1) = 0 + 5 continue + call DGEQPF( M, N, stk(lA), M, istk(lJPVT), stk(lTAU), + $ stk(lDWORK), INFO ) +c SUBROUTINE DGEQPF( M, N, A, LDA, JPVT, TAU, WORK, INFO ) + endif + if(info.ne.0) then + return + endif + call DLACPY( 'U', M, N, stk(lA), M, stk(lR), M ) +c SUBROUTINE DLACPY( UPLO, M, N, A, B, LDB ) +c if(N.ge.2) then + if(M.gt.N) then + do 20 j = 1, N + do 10 i = j+1, M + ij = i+(j-1)*M + stk(lR+ij-1) = ZERO + 10 continue + 20 continue + else + do 40 j = 1, M-1 + do 30 i = j+1, M + ij = i+(j-1)*M + stk(lR+ij-1) = ZERO + 30 continue + 40 continue + endif +c endif + + if(M.gt.N) then + call DLACPY( 'F', M, N, stk(lA), M, stk(lQ), M ) +c SUBROUTINE DLACPY( UPLO, M, N, A, B, LDB ) + do 60 j = N+1, M + do 50 i = 1, M + ij = i+(j-1)*M + stk(lQ+ij-1) = ZERO + 50 continue + 60 continue + else + call DLACPY( 'F', M, M, stk(lA), M, stk(lQ), M ) +c SUBROUTINE DLACPY( UPLO, M, N, A, LDA, B, LDB ) + endif + call DORGQR( M, M, min(M,N), stk(lQ), M, stk(lTAU), stk(lDWORK), + $ LWORK, INFO ) +c SUBROUTINE DORGQR( M, N, K, A, LDA, TAU, WORK, LWORK, INFO ) + + if(lhs.gt.2) then + call DLASET( 'F', N, N, ZERO, ZERO, stk(lE), N ) +c SUBROUTINE DLASET( UPLO, M, N, ALPHA, BETA, A, LDA ) + do 70 j = 1, N + i = istk(lJPVT+j-1) + ij = i + (j-1)*N + stk(lE+ij-1) = ONE + 70 continue + endif + +c evaluating the rank + tt = abs(stk(lR)) + if(tol.eq.-1.0d0) tol = dble(max(m,n)) * eps * tt + k = 0 + ls = lr + m1 = min(m,n) + do 450 j = 1,m1 + tt = abs(stk(ls)) + if (tt .le. tol) goto 460 + k = j + ls = ls + m + 1 + 450 continue + 460 continue + +c + stk(lrk)=dble(k) + lhsvar(1)=2 + lhsvar(2)=3 + lhsvar(3)=6 + lhsvar(4)=4 +c + end + diff --git a/modules/linear_algebra/src/fortran/doldqr.lo b/modules/linear_algebra/src/fortran/doldqr.lo new file mode 100755 index 000000000..fc89fa7f7 --- /dev/null +++ b/modules/linear_algebra/src/fortran/doldqr.lo @@ -0,0 +1,12 @@ +# src/fortran/doldqr.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/doldqr.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/src/fortran/elementary_functions_Import.def b/modules/linear_algebra/src/fortran/elementary_functions_Import.def new file mode 100755 index 000000000..f4080e5ac --- /dev/null +++ b/modules/linear_algebra/src/fortran/elementary_functions_Import.def @@ -0,0 +1,9 @@ + LIBRARY elementary_functions.dll + + +EXPORTS +; +;elementary_functions +; +unsfdcopy_ +vfinite_ diff --git a/modules/linear_algebra/src/fortran/elementary_functions_f_Import.def b/modules/linear_algebra/src/fortran/elementary_functions_f_Import.def new file mode 100755 index 000000000..13d99e77f --- /dev/null +++ b/modules/linear_algebra/src/fortran/elementary_functions_f_Import.def @@ -0,0 +1,8 @@ + LIBRARY elementary_functions_f.dll + + +EXPORTS +; +;elementary_functions_f +; +iset_
\ No newline at end of file diff --git a/modules/linear_algebra/src/fortran/intddet.f b/modules/linear_algebra/src/fortran/intddet.f new file mode 100755 index 000000000..1990a12ae --- /dev/null +++ b/modules/linear_algebra/src/fortran/intddet.f @@ -0,0 +1,100 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) INRIA +c$ +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +c$ + + subroutine intddet(fname) + +c det(A) + + include 'stack.h' + logical getrhsvar,createvar + logical checklhs,checkrhs + character fname*(*) + double precision ZERO, ONE, TEN + double precision D, E + parameter ( ZERO = 0.0D0, ONE = 1.0D0, TEN = 10.0D0 ) +c + minrhs=1 + maxrhs=1 + minlhs=1 + maxlhs=2 +c + if(.not.checkrhs(fname,minrhs,maxrhs)) return + if(.not.checklhs(fname,minlhs,maxlhs)) return + + if(.not.getrhsvar(1,'d', M, N, lA)) return + if(M.ne.N) then + err=1 + call error(20) + return + endif + if(N.eq.0) then + lhsvar(1) = 2 + if(.not.createvar(2,'d',1,1,lL)) return + stk(lL)=1.0d0 + if (lhs.eq.2) then + if(.not.createvar(3,'d',1,1,lL)) return + stk(lL)=0.0d0 + lhsvar(2) = 3 + endif + return + elseif(N.eq.-1) then + err=1 + call error(271) + return + endif + + if(.not.createvar(2,'i',1,M,lIPIV)) return + + + call DGETRF( M, N, stk(lA), M, istk(lIPIV), INFO ) +c SUBROUTINE DGETRF( M, N, A, LDA, IPIV, INFO ) + if(info.lt.0) then + return + endif + if (lhs.eq.1) then + D=one + do 10 i=0,N-1 + if(istk(lIPIV+i).ne.i+1 ) D=-D + D=D*stk(lA+i*(M+1)) + 10 continue + if(.not.createvar(1,'d',1,1,lD)) return + stk(lD)=D + lhsvar(1)=1 + else +c . [e,m]=det(A) + D = ONE + E = ZERO + do 40 i = 0, N-1 + if(istk(lIPIV+i).ne.i+1 ) D=-D + D = D*stk(lA+i*(M+1)) + if (D .eq. ZERO) go to 50 + 15 if (abs(D) .ge. ONE) go to 20 + D = ten*D + E = E - ONE + go to 15 + 20 continue + 25 if (abs(D) .lt. ten) go to 30 + D = D/ten + E = E + ONE + go to 25 + 30 continue + 40 continue + 50 continue + if(.not.createvar(1,'d',1,1,le)) return + stk(le) = E + if(.not.createvar(2,'d',1,1,lm)) return + stk(lm) = D + lhsvar(1) = 1 + lhsvar(2) = 2 + endif +c + return + end + diff --git a/modules/linear_algebra/src/fortran/intddet.lo b/modules/linear_algebra/src/fortran/intddet.lo new file mode 100755 index 000000000..b3eac0749 --- /dev/null +++ b/modules/linear_algebra/src/fortran/intddet.lo @@ -0,0 +1,12 @@ +# src/fortran/intddet.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/intddet.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/src/fortran/intdgebal.f b/modules/linear_algebra/src/fortran/intdgebal.f new file mode 100755 index 000000000..4c98c81d3 --- /dev/null +++ b/modules/linear_algebra/src/fortran/intdgebal.f @@ -0,0 +1,65 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) INRIA +c$ +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +c$ + + subroutine intdgebal(fname) + +c [V,D]=balanc(A) +c d = balanc(A) + + include 'stack.h' + logical getrhsvar,createvar + logical checklhs,checkrhs +c integer vfinite + + character fname*(*) + character JOB + double precision ZERO, ONE + parameter ( ZERO=0.0D0, ONE=1.0D0 ) + + minrhs=1 + maxrhs=1 + minlhs=2 + maxlhs=2 +c + if(.not.checkrhs(fname,minrhs,maxrhs)) return + if(.not.checklhs(fname,minlhs,maxlhs)) return + + if(.not.getrhsvar(1,'d', M, N, lA)) return + if(M.ne.N) then + err=1 + call error(20) + return + endif + if(N.eq.0) then + if(.not.createvar(2,'d', 0, 0, lD)) return + lhsvar(1) = 1 + lhsvar(2) = 2 + return + elseif(N.eq.-1) then + err=1 + call error(271) + return + endif + + if(.not.createvar(2,'d', N, N, lZ)) return + if(.not.createvar(3,'d', 1, N, lSCALE)) return + JOB='B' +c SUBROUTINE DGEBAL( JOB, N, A, LDA, ILO, IHI, SCALE, INFO ) + call DGEBAL(JOB, N, stk(lA), N, ILO, IHI,stk(lSCALE),INF0) + + call DLASET( 'F', N, N, ZERO, ONE, stk(lZ), N ) +c SUBROUTINE DGEBAK( JOB, SIDE, N, ILO, IHI, SCALE, M, V, LDV, INFO ) + call DGEBAK(JOB, 'R', N, ILO, IHI, stk(lSCALE), N, + $ stk(lZ), N, INFO ) + + lhsvar(1)=1 + lhsvar(2)=2 +c + end diff --git a/modules/linear_algebra/src/fortran/intdgebal.lo b/modules/linear_algebra/src/fortran/intdgebal.lo new file mode 100755 index 000000000..a6747fe97 --- /dev/null +++ b/modules/linear_algebra/src/fortran/intdgebal.lo @@ -0,0 +1,12 @@ +# src/fortran/intdgebal.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/intdgebal.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/src/fortran/intdgecon.f b/modules/linear_algebra/src/fortran/intdgecon.f new file mode 100755 index 000000000..01dcb4a27 --- /dev/null +++ b/modules/linear_algebra/src/fortran/intdgecon.f @@ -0,0 +1,75 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) INRIA +c$ +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +c$ + subroutine intdgecon(fname) + +c rcond + + include 'stack.h' + logical getrhsvar,createvar + logical checklhs,checkrhs + character fname*(*) + double precision ANORM + double precision dlange + external dlange +c + minrhs=1 + maxrhs=1 + minlhs=1 + maxlhs=1 +c + if(.not.checkrhs(fname,minrhs,maxrhs)) return + if(.not.checklhs(fname,minlhs,maxlhs)) return + + if(.not.getrhsvar(1,'d', MA, NA, lA)) return + if(MA .ne. NA) then + err=1 + call error(20) + return + endif + N = MA + + if(N.eq.0) then + if(.not.createvar(2,'d', 0, 0, lRCOND)) return + lhsvar(1) = 2 + return + elseif(n.eq.-1) then + if(.not.createvar(2,'d', 1, 1, lRCOND)) return + stk(lRCOND)=1.0d0 + lhsvar(1) = 2 + return + endif + + if(.not.createvar(2,'d', 1, 1, lRCOND)) return + if(.not.createvar(3,'i', 1, N, lIPIV)) return + if(.not.createvar(4,'i', 1, N, lIWORK)) return + LWORKMIN = 4*N + LWORK=maxvol(5,'d') + if(LWORK.le.LWORKMIN) then + err=(LWORK-LWORKMIN) + call error(17) + return + endif + if(.not.createvar(5,'d',1,LWORK,lDWORK)) return + ANORM = dlange( '1', N, N, stk(lA), N, stk(lDWORK) ) +c DOUBLE PRECISION FUNCTION DLANGE( NORM, M, N, A, LDA, WORK ) + call DGETRF( N, N, stk(lA), N, istk(lIPIV), INFO ) +c SUBROUTINE DGETRF( N, N, A, LDA, IPIV, INFO ) + stk(lRCOND) = 0.0d0 + if(INFO.eq.0) then + call DGECON( '1', N, stk(lA), N, ANORM, stk(lRCOND), + $ stk(lDWORK), istk(lIWORK), INFO ) +c SUBROUTINE DGECON( NORM, N, A, LDA, ANORM, RCOND, WORK, +c $ IWORK, INFO ) + endif + + lhsvar(1) = 2 + return +c + end diff --git a/modules/linear_algebra/src/fortran/intdgecon.lo b/modules/linear_algebra/src/fortran/intdgecon.lo new file mode 100755 index 000000000..8d5daba85 --- /dev/null +++ b/modules/linear_algebra/src/fortran/intdgecon.lo @@ -0,0 +1,12 @@ +# src/fortran/intdgecon.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/intdgecon.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/src/fortran/intdgees0.f b/modules/linear_algebra/src/fortran/intdgees0.f new file mode 100755 index 000000000..f82f8afd3 --- /dev/null +++ b/modules/linear_algebra/src/fortran/intdgees0.f @@ -0,0 +1,93 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) INRIA +c$ +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +c$ + subroutine intdgees0(fname) + +c [VS,T]=schur(A) + + include 'stack.h' + logical getrhsvar,createvar + logical checklhs,checkrhs + + character fname*(*) + character*4 JOBVS, SORT + integer SDIM + logical voiddummy + external voiddummy + + minrhs=1 + maxrhs=1 + minlhs=1 + maxlhs=2 +c + if(.not.checkrhs(fname,minrhs,maxrhs)) return + if(.not.checklhs(fname,minlhs,maxlhs)) return + + if(.not.getrhsvar(1,'d', M, N, lA)) return + if(M.ne.N) then + err=1 + call error(20) + return + endif + if(N.eq.0) then + if(lhs.eq.1) then + lhsvar(1) = 1 + return + else if(lhs.eq.2) then + if(.not.createvar(2,'d', N, N, lV)) return + lhsvar(1) = 2 + lhsvar(2) = 1 + return + endif + endif + + if(.not.createvar(2,'d', N, 1, lWR)) return + if(.not.createvar(3,'d', N, 1, lWI)) return + k = 4 + if(lhs.gt.1) then + if(.not.createvar(4,'d', N, N, lVS)) return + k = 5 + endif + if(.not.createvar(k,'i', N, 1, lBWORK)) return + LWORKMIN = 3*N + LWORK=maxvol(k+1,'d') + if(LWORK.le.LWORKMIN) then + err=(LWORK-LWORKMIN) + call error(17) + return + endif + if(.not.createvar(k+1,'d',1,LWORK,lDWORK)) return + + + if(lhs.eq.1) then + JOBVS = 'N' + else + JOBVS = 'V' + endif + SORT = 'N' + + call DGEES( JOBVS, SORT, voiddummy, N, stk(lA), N, SDIM, + $ stk(lWR), stk(lWI), stk(lVS), N, stk(lDWORK), LWORK, + $ istk(lBWORK), INFO ) +c SUBROUTINE DGEES( JOBVS, SORT, SELECT, N, A, LDA, SDIM, WR, WI, +c $ VS, LDVS, WORK, LWORK, INFO ) + if(info.gt.0) then + call msgs(2,info) + endif + + if(lhs.eq.1) then + lhsvar(1) = 1 + else + lhsvar(1)=4 + lhsvar(2)=1 + endif +c + end + + diff --git a/modules/linear_algebra/src/fortran/intdgees0.lo b/modules/linear_algebra/src/fortran/intdgees0.lo new file mode 100755 index 000000000..e3cf08b10 --- /dev/null +++ b/modules/linear_algebra/src/fortran/intdgees0.lo @@ -0,0 +1,12 @@ +# src/fortran/intdgees0.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/intdgees0.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/src/fortran/intdgees1.f b/modules/linear_algebra/src/fortran/intdgees1.f new file mode 100755 index 000000000..0d11f40d9 --- /dev/null +++ b/modules/linear_algebra/src/fortran/intdgees1.f @@ -0,0 +1,157 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) INRIA +c$ +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +c$ + + subroutine intdgees1(fname) + +c [VS,T]=schur(A,'type') +c type is r orc$ + + include 'stack.h' + logical getrhsvar,createvar + logical checklhs,checkrhs + + character fname*(*) + + character TYPE, JOBVS, SORT + integer SDIM + logical voiddummy, WANTD, WANTZ + double precision ZERO + parameter (ZERO = 0.0D0) + external voiddummy + INTRINSIC DCMPLX + + minrhs=2 + maxrhs=2 + minlhs=1 + maxlhs=2 +c + if(.not.checkrhs(fname,minrhs,maxrhs)) return + if(.not.checklhs(fname,minlhs,maxlhs)) return + + if(.not.getrhsvar(1,'d', M, N, lA)) return + if(M.ne.N) then + err=1 + call error(20) + return + endif + if(N.eq.0) then + if(lhs.eq.1) then + lhsvar(1) = 1 + else if(lhs.eq.2) then + if(.not.createvar(2,'d', 0, 0, lS)) return + lhsvar(1) = 1 + lhsvar(2) = 2 + endif + return + elseif(N.eq.-1) then + err=1 + call error(271) + return + endif + if(.not.getrhsvar(2,'c', M1, N1, lTYPE)) return + TYPE = cstk(lTYPE:lTYPE) + WANTD = (TYPE.eq.'r' .or. TYPE.eq.'R') + WANTZ = (TYPE.eq.'c' .or. TYPE.eq.'C') + + if(.not.WANTD .and. .not.WANTZ) then + buf='schur'//': type must be real or complex' + call error(998) + return + endif + if(WANTD) then + if(.not.createvar(3,'d', N, 1, lWR)) return + if(.not.createvar(4,'d', N, 1, lWI)) return + k = 5 + if(lhs.gt.1) then + if(.not.createvar(5,'d', N, N, lVS)) return + k = 6 + endif + if(.not.createvar(k,'i', N, 1, lBWORK)) return + LWORKMIN = 3*N + LWORK=maxvol(k+1,'d') + if(LWORK.le.LWORKMIN) then + err=(LWORK-LWORKMIN) + call error(17) + return + endif + if(.not.createvar(k+1,'d',1,LWORK,lDWORK)) return + else + if(.not.createvar(3,'z', N, N, lT)) return + if(.not.createvar(4,'z', N, 1, lW)) return + k = 5 + if(lhs.gt.1) then + if(.not.createvar(5,'z', N, N, lVS)) return + k = 6 + endif + if(.not.createvar(k,'d', N, 1, lRWORK)) return + if(.not.createvar(k+1,'i', N, 1, lBWORK)) return + LWORKMIN = 2*N + LWORK=maxvol(k+2,'z') + if(LWORK.le.LWORKMIN) then + err=2*(LWORK-LWORKMIN) + call error(17) + return + endif + if(.not.createvar(k+2,'z',1,LWORK,lDWORK)) return + endif + + if(lhs.eq.1) then + JOBVS = 'N' + else + JOBVS = 'V' + endif + SORT = 'N' + + if(WANTD) then + call DGEES( JOBVS, SORT, voiddummy, N, stk(lA), N, SDIM, + $ stk(lWR), + $ stk(lWI), stk(lVS), N, stk(lDWORK), LWORK, istk(lBWORK), + $ INFO ) +c SUBROUTINE DGEES( JOBVS, SORT, SELECT, N, A, LDA, SDIM, WR, WI, +c $ VS, LDVS, WORK, LWORK, INFO ) + if(info.gt.0) then + call msgs(2,info) + endif + else + do 20 i = 1, N + do 10 j = 1, N + ij = i+(j-1)*N + zstk(lT+ij-1) = dcmplx(stk(lA+ij-1),ZERO) + 10 continue + 20 continue + call ZGEES( JOBVS, SORT, voiddummy, N, zstk(lT), N, SDIM, + $ zstk(lW), zstk(lVS), N, zstk(lDWORK), LWORK, stk(lRWORK), + $ istk(lBWORK), INFO ) +c SUBROUTINE ZGEES( JOBVS, SORT, SELECT, N, A, LDA, SDIM, W, +c $ VS, LDVS, WORK, LWORK, RWORK, BWORK, INFO ) + if(info.gt.0) then + call msgs(2,info) + endif + endif + + if(WANTD) then + if(lhs.eq.1) then + lhsvar(1) = 1 + else + lhsvar(1)=5 + lhsvar(2)=1 + endif + else + if(lhs.eq.1) then + lhsvar(1) = 3 + else + lhsvar(1)=5 + lhsvar(2)=3 + endif + endif +c + end + + diff --git a/modules/linear_algebra/src/fortran/intdgees1.lo b/modules/linear_algebra/src/fortran/intdgees1.lo new file mode 100755 index 000000000..ae87b48b6 --- /dev/null +++ b/modules/linear_algebra/src/fortran/intdgees1.lo @@ -0,0 +1,12 @@ +# src/fortran/intdgees1.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/intdgees1.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/src/fortran/intdgehrd.f b/modules/linear_algebra/src/fortran/intdgehrd.f new file mode 100755 index 000000000..ef3ee74e7 --- /dev/null +++ b/modules/linear_algebra/src/fortran/intdgehrd.f @@ -0,0 +1,102 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) INRIA +c$ +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +c$ + + subroutine intdgehrd(fname) + +c [H,Q]=hess(A) + + include 'stack.h' + logical getrhsvar,createvar + logical checklhs,checkrhs + + character fname*(*) + double precision ZERO + parameter ( ZERO=0.0D0 ) + + minrhs=1 + maxrhs=1 + minlhs=1 + maxlhs=2 +c + if(.not.checkrhs(fname,minrhs,maxrhs)) return + if(.not.checklhs(fname,minlhs,maxlhs)) return + + if(.not.getrhsvar(1,'d', M, N, lA)) return + if(M.ne.N) then + err=1 + call error(20) + return + endif + if(N.eq.0) then + if(lhs.eq.1) then + lhsvar(1) = 1 + return + else if(lhs.eq.2) then + if(.not.createvar(2,'d', N, N, lQ)) return + lhsvar(1)=1 + lhsvar(2)=2 + return + endif + elseif(N.eq.-1) then + if(lhs.eq.1) then + lhsvar(1) = 1 + else if(lhs.eq.2) then + if(.not.createvar(2,'d', N, N, lQ)) return + stk(lQ)=stk(lA) + stk(lA)=1.0d0 + lhsvar(1)=1 + lhsvar(2)=2 + endif + return + endif + if(.not.createvar(2,'d', N-1, 1, lTAU)) return + k = 3 + if(lhs.gt.1) then + if(.not.createvar(3,'d', N, N, lQ)) return + k = 4 + endif + LWORKMIN = N + LWORK=maxvol(k,'d') + if(LWORK.le.LWORKMIN) then + err=(LWORK-LWORKMIN) + call error(17) + return + endif + if(.not.createvar(k,'d',1,LWORK,lDWORK)) return + call DGEHRD( N, 1, N, stk(lA), N, stk(lTAU), stk(lDWORK), + $ LWORK, INFO ) +c SUBROUTINE DGEHRD( N, 1, N, A, LDA, TAU, WORK, INFO ) + + if(lhs.gt.1) call DLACPY( 'F', N, N, stk(lA), N, stk(lQ), N ) +c SUBROUTINE DLACPY( UPLO, N, N, A, LDA, B, LDB ) + if(N.gt.2) then + do 20 j = 1, N-2 + do 10 i = j+2, N + ij = i+(j-1)*N + stk(lA+ij-1) = ZERO + 10 continue + 20 continue + endif + + if(lhs.gt.1) then + call DORGHR( N, 1, N, stk(lQ), N, stk(lTAU), stk(lDWORK), + $ LWORK, INFO ) +c SUBROUTINE DORGHR( N, 1, N, A, LDA, TAU, WORK, INFO ) + endif + + if(lhs.eq.1) then + lhsvar(1) = 1 + else + lhsvar(1)=3 + lhsvar(2)=1 + endif +c + end + diff --git a/modules/linear_algebra/src/fortran/intdgehrd.lo b/modules/linear_algebra/src/fortran/intdgehrd.lo new file mode 100755 index 000000000..0b412fa16 --- /dev/null +++ b/modules/linear_algebra/src/fortran/intdgehrd.lo @@ -0,0 +1,12 @@ +# src/fortran/intdgehrd.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/intdgehrd.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/src/fortran/intdgelsy.f b/modules/linear_algebra/src/fortran/intdgelsy.f new file mode 100755 index 000000000..3d75431fe --- /dev/null +++ b/modules/linear_algebra/src/fortran/intdgelsy.f @@ -0,0 +1,102 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) INRIA +c$ +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +c$ + subroutine intdgelsy(fname) + +c [X,rank]=lsq(A,B,rcond) + + include 'stack.h' + logical getrhsvar,createvar + logical checklhs,checkrhs + character fname*(*) + double precision EPS, RCOND + double precision dlamch + external dlamch + intrinsic sqrt +c + minrhs=2 + maxrhs=3 + minlhs=1 + maxlhs=2 +c + if(.not.checkrhs(fname,minrhs,maxrhs)) return + if(.not.checklhs(fname,minlhs,maxlhs)) return + + if(.not.getrhsvar(1,'d', MA, N, lA)) return + if(.not.getrhsvar(2,'d', MB, NRHS, lB)) return + if(MA .ne. MB) then + call error(265) + return + endif + M = MA + if(M.eq.0 .or. N.eq.0) then + if(.not.createvar(3,'d', 0, 0, lX)) return + if(.not.createvar(4,'i', 0, 0, lRANK)) return + lhsvar(1) = 3 + lhsvar(2) = 4 + return + elseif(M.eq.-1 .or.N.eq.-1) then + err=1 + call error(271) + return + endif + if(rhs.eq.2) then + eps = dlamch('eps') + rcond = sqrt(eps) + MR = 1 + NR = 1 + if(.not.createvar(3,'d', MR, NR, lRCOND)) return + stk(lRCOND) = RCOND + else + if(.not.getrhsvar(3,'d', MR, NR, lRCOND)) return + endif + if(MR.ne.1 .or. NR.ne.1 ) then + err=3 + call error(204) + return + endif + if(.not.createvar(4,'d', N, NRHS, lX)) return + if(.not.createvar(5,'d', max(M,N), NRHS, lXB)) return + if(.not.createvar(6,'i', 1, 1, lRANK)) return + if(.not.createvar(7,'i', 1, N, lJPVT)) return + + LWORKMIN = max( min(M,N)+3*N+1, 2*min(M,N)+NRHS ) + LWORK=maxvol(8,'d') + if(LWORK.le.LWORKMIN) then + err=(LWORK-LWORKMIN) + call error(17) + return + endif + if(.not.createvar(8,'d',1,LWORK,lDWORK)) return + + call DLACPY( 'F', M, NRHS, stk(lB), M, stk(lXB), max(M,N) ) +c SUBROUTINE DLACPY( UPLO, M, N, A, LDA, B, LDB ) + do 10 i = 1, N + istk(lJPVT+i-1) = 0 + 10 continue + call DGELSY( M, N, NRHS, stk(lA), M, stk(lXB), max(M,N), + $ istk(lJPVT), stk(lRCOND), istk(lRANK), stk(lDWORK), + $ LWORK, INFO ) +c SUBROUTINE DGELSY( M, N, NRHS, A, LDA, B, LDB, JPVT, RCOND, +c $ RANK, WORK, LWORK, INFO ) + if(info.ne.0) then + return + endif + + call DLACPY( 'F', N, NRHS, stk(lXB), max(M,N), stk(lX), N ) +c SUBROUTINE DLACPY( UPLO, M, N, A, LDA, B, LDB ) + + if(lhs.eq.1) then + lhsvar(1)=4 + else + lhsvar(1)=4 + lhsvar(2)=6 + endif +c + end diff --git a/modules/linear_algebra/src/fortran/intdgelsy.lo b/modules/linear_algebra/src/fortran/intdgelsy.lo new file mode 100755 index 000000000..5cb6e40a6 --- /dev/null +++ b/modules/linear_algebra/src/fortran/intdgelsy.lo @@ -0,0 +1,12 @@ +# src/fortran/intdgelsy.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/intdgelsy.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/src/fortran/intdgeqpf3.f b/modules/linear_algebra/src/fortran/intdgeqpf3.f new file mode 100755 index 000000000..beb058453 --- /dev/null +++ b/modules/linear_algebra/src/fortran/intdgeqpf3.f @@ -0,0 +1,142 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) INRIA +c$ +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +c$ + subroutine intdgeqpf3(fname) + +c [Q,R]=qr(A) +c [Q,R,E]=qr(A) + + include 'stack.h' + logical getrhsvar,createvar + logical checklhs,checkrhs + character fname*(*) + double precision ZERO, ONE + parameter ( ZERO=0.0D0, ONE=1.0D0 ) +c + minrhs=1 + maxrhs=1 + minlhs=1 + maxlhs=3 +c + if(.not.checkrhs(fname,minrhs,maxrhs)) return + if(.not.checklhs(fname,minlhs,maxlhs)) return + + if(.not.getrhsvar(1,'d', M, N, lA)) return + if(M.eq.0 .or.N.eq.0) then + if(.not.createvar(2,'d', 0, 0, lQ)) return + if(.not.createvar(3,'d', 0, 0, lR)) return + if(lhs.gt.2) then + if(.not.createvar(4,'d', 0, 0, lE)) return + endif + lhsvar(1) = 2 + lhsvar(2) = 3 + if(lhs.gt.2) then + lhsvar(3) = 4 + endif + return + elseif(M.eq.-1 .or.N.eq.-1) then + err=1 + call error(271) + return + endif + if(.not.createvar(2,'d', M, M, lQ)) return + if(.not.createvar(3,'d', M, N, lR)) return + k=4 + if(lhs.gt.2) then + if(.not.createvar(4,'d', N, N, lE)) return + if(.not.createvar(5,'i', 1, N, lJPVT)) return + k=6 + endif + if(.not.createvar(k,'d', 1, min(M,N), lTAU)) return + if(lhs.le.2) then + LWORKMIN = MAX(1,N) + else + LWORKMIN = 3*N + endif + LWORK=maxvol(k+1,'d') + if(LWORK.le.LWORKMIN) then + err=LWORK-LWORKMIN + call error(17) + return + endif + if(.not.createvar(k+1,'d',1,LWORK,lDWORK)) return + if(lhs.le.2) then + call DGEQRF( M, N, stk(lA), M, stk(lTAU), stk(lDWORK), + $ LWORK, INFO ) +c SUBROUTINE DGEQRF( M, N, A, LDA, TAU, WORK, LWORK, INFO ) + else + do 5 i = 1, N + istk(lJPVT+i-1) = 0 + 5 continue + call DGEQPF( M, N, stk(lA), M, istk(lJPVT), stk(lTAU), + $ stk(lDWORK), INFO ) +c SUBROUTINE DGEQPF( M, N, A, LDA, JPVT, TAU, WORK, INFO ) + endif + if(info.ne.0) then + return + endif + call DLACPY( 'U', M, N, stk(lA), M, stk(lR), M ) +c SUBROUTINE DLACPY( UPLO, M, N, A, B, LDB ) +c if(N.ge.2) then + if(M.gt.N) then + do 20 j = 1, N + do 10 i = j+1, M + ij = i+(j-1)*M + stk(lR+ij-1) = ZERO + 10 continue + 20 continue + else + do 40 j = 1, M-1 + do 30 i = j+1, M + ij = i+(j-1)*M + stk(lR+ij-1) = ZERO + 30 continue + 40 continue + endif +c endif + + if(M.gt.N) then + call DLACPY( 'F', M, N, stk(lA), M, stk(lQ), M ) +c SUBROUTINE DLACPY( UPLO, M, N, A, B, LDB ) + do 60 j = N+1, M + do 50 i = 1, M + ij = i+(j-1)*M + stk(lQ+ij-1) = ZERO + 50 continue + 60 continue + else + call DLACPY( 'F', M, M, stk(lA), M, stk(lQ), M ) +c SUBROUTINE DLACPY( UPLO, M, N, A, LDA, B, LDB ) + endif + call DORGQR( M, M, min(M,N), stk(lQ), M, stk(lTAU), stk(lDWORK) + $ ,LWORK, INFO ) +c SUBROUTINE DORGQR( M, N, K, A, LDA, TAU, WORK, LWORK, INFO ) + + if(lhs.gt.2) then + call DLASET( 'F', N, N, ZERO, ZERO, stk(lE), N ) +c SUBROUTINE DLASET( UPLO, M, N, ALPHA, BETA, A, LDA ) + do 70 j = 1, N + i = istk(lJPVT+j-1) + ij = i + (j-1)*N + stk(lE+ij-1) = ONE + 70 continue + endif + + if(lhs.le.2) then + lhsvar(1)=2 + lhsvar(2)=3 + else + lhsvar(1)=2 + lhsvar(2)=3 + lhsvar(3)=4 + endif +c + end + + diff --git a/modules/linear_algebra/src/fortran/intdgeqpf3.lo b/modules/linear_algebra/src/fortran/intdgeqpf3.lo new file mode 100755 index 000000000..a7c4321b8 --- /dev/null +++ b/modules/linear_algebra/src/fortran/intdgeqpf3.lo @@ -0,0 +1,12 @@ +# src/fortran/intdgeqpf3.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/intdgeqpf3.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/src/fortran/intdgeqpf4.f b/modules/linear_algebra/src/fortran/intdgeqpf4.f new file mode 100755 index 000000000..c2d0071ce --- /dev/null +++ b/modules/linear_algebra/src/fortran/intdgeqpf4.f @@ -0,0 +1,124 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) INRIA +c$ +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +c$ + + subroutine intdgeqpf4(fname) + +c [Q,R]=qr(A,'e') +c [Q,R,E]=qr(A,'e') + + include 'stack.h' + logical getrhsvar,createvar + logical checklhs,checkrhs + character fname*(*) + double precision ZERO, ONE + parameter ( ZERO=0.0D0, ONE=1.0D0 ) +c + minrhs=2 + maxrhs=2 + minlhs=1 + maxlhs=3 +c + if(.not.checkrhs(fname,minrhs,maxrhs)) return + if(.not.checklhs(fname,minlhs,maxlhs)) return + + if(.not.getrhsvar(1,'d', M, N, lA)) return + if(M.eq.0 .or. N.eq.0) then + if(.not.createvar(2,'d', 0, 0, lQ)) return + if(.not.createvar(3,'d', 0, 0, lR)) return + if(lhs.gt.2) then + if(.not.createvar(4,'d', 0, 0, lE)) return + endif + lhsvar(1)=2 + lhsvar(2)=3 + if(lhs.gt.2) then + lhsvar(3)=4 + endif + return + elseif(M.eq.-1 .or.N.eq.-1) then + err=1 + call error(271) + return + endif + if(.not.createvar(2,'d', M, min(M,N), lQ)) return + if(.not.createvar(3,'d', min(M,N), N, lR)) return + k=4 + if(lhs.gt.2) then + if(.not.createvar(4,'d', N, N, lE)) return + if(.not.createvar(5,'i', 1, N, lJPVT)) return + k=6 + endif + if(.not.createvar(k,'d', 1, min(M,N), lTAU)) return + if(lhs.le.2) then + LWORKMIN = MAX(1,N) + else + LWORKMIN = 3*N + endif + LWORK=maxvol(k+1,'d') + if(LWORK.le.LWORKMIN) then + err=LWORK-LWORKMIN + call error(17) + return + endif + if(.not.createvar(k+1,'d',1,LWORK,lDWORK)) return + if(lhs.le.2) then + call DGEQRF( M, N, stk(lA), M, stk(lTAU), stk(lDWORK), + $ LWORK, INFO ) +c SUBROUTINE DGEQRF( M, N, A, LDA, TAU, WORK, LWORK, INFO ) + else + do 5 i = 1, N + 5 istk(lJPVT+i-1) = 0 + call DGEQPF( M, N, stk(lA), M, istk(lJPVT), stk(lTAU), + $ stk(lDWORK), INFO ) +c SUBROUTINE DGEQPF( M, N, A, LDA, JPVT, TAU, WORK, INFO ) + endif + if(info.ne.0) then + return + endif + call DLACPY( 'U', min(M,N), N, stk(lA), M, stk(lR), min(M,N) ) +c SUBROUTINE DLACPY( UPLO, M, N, A, B, LDB ) + if(N.ge.2) then + do 20 j = 1, N-1 + if(j+1.le.min(M,N)) then + do 10 i = j+1, min(M,N) + ij = i+(j-1)*min(M,N) + stk(lR+ij-1) = ZERO + 10 continue + endif + 20 continue + endif + + call DLACPY( 'F', M, min(M,N), stk(lA), M, stk(lQ), M ) +c SUBROUTINE DLACPY( UPLO, M, N, A, B, LDB ) + call DORGQR( M, min(M,N), min(M,N), stk(lQ), M, stk(lTAU), + $ stk(lDWORK), LWORK, INFO ) +c SUBROUTINE DORGQR( M, N, K, A, LDA, TAU, WORK, LWORK, INFO ) + + if(lhs.gt.2) then + call DLASET( 'F', N, N, ZERO, ZERO, stk(lE), N ) +c SUBROUTINE DLASET( UPLO, M, N, ALPHA, BETA, A, LDA ) + do 30 j = 1, N + i = istk(lJPVT+j-1) + ij = i + (j-1)*N + stk(lE+ij-1) = ONE + 30 continue + endif + + if(lhs.le.2) then + lhsvar(1)=2 + lhsvar(2)=3 + else + lhsvar(1)=2 + lhsvar(2)=3 + lhsvar(3)=4 + endif +c + end + + diff --git a/modules/linear_algebra/src/fortran/intdgeqpf4.lo b/modules/linear_algebra/src/fortran/intdgeqpf4.lo new file mode 100755 index 000000000..9750eaaef --- /dev/null +++ b/modules/linear_algebra/src/fortran/intdgeqpf4.lo @@ -0,0 +1,12 @@ +# src/fortran/intdgeqpf4.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/intdgeqpf4.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/src/fortran/intdgesv3.f b/modules/linear_algebra/src/fortran/intdgesv3.f new file mode 100755 index 000000000..2bd2e84e4 --- /dev/null +++ b/modules/linear_algebra/src/fortran/intdgesv3.f @@ -0,0 +1,140 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) INRIA +c Copyright (C) 2013 - 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 +c$ + subroutine intdgesv3(fname) + +c a\b + + include 'stack.h' + logical getrhsvar,createvar + logical checklhs,checkrhs + character fname*(*) + double precision ANORM, EPS, RCOND + double precision dlamch, dlange + double precision RCONDthresh + integer vfinite + external dlamch, dlange, vfinite + intrinsic sqrt + +c + minrhs=2 + maxrhs=2 + minlhs=1 + maxlhs=1 +c + if(.not.checkrhs(fname,minrhs,maxrhs)) return + if(.not.checklhs(fname,minlhs,maxlhs)) return + + if(.not.getrhsvar(1,'d', MA, NA, lA)) return + if(.not.getrhsvar(2,'d', MB, NRHS, lB)) return + if(MB.eq.0) then + lhsvar(1) = 2 + return + endif + if(MA .ne. MB) then + call error(265) + return + endif + M = MA + N = NA + if(M.eq.0 .or. N.eq.0) then + if(.not.createvar(3,'d', 0, 0, lX)) return + lhsvar(1) = 3 + return + endif +c Check if A and B matrices contains Inf or NaN's + if (vfinite(M*N, stk(lA)).eq.0) then + call error(229) + return + endif + if (vfinite(MB*NRHS, stk(lB)).eq.0) then + call error(229) + return + endif + + + if(.not.createvar(3,'d', M, N, lAF)) return + if(.not.createvar(4,'d', N, NRHS, lX)) return + if(.not.createvar(5,'d', max(M,N), NRHS, lXB)) return + if(.not.createvar(6,'i', 1, 1, lRANK)) return + if(.not.createvar(7,'i', 1, N, lIPIV)) return + if(.not.createvar(8,'i', 1, N, lJPVT)) return + if(.not.createvar(9,'i', 1, N, lIWORK)) return + LWORKMIN = max( 4*N, min(M,N)+3*N+1, 2*min(M,N)+NRHS ) + LWORK=maxvol(10,'d') + if(LWORK.le.LWORKMIN) then + err=(LWORK-LWORKMIN) + call error(17) + return + endif + if(.not.createvar(10,'d',1,LWORK,lDWORK)) return + + EPS = dlamch('eps') + RCONDthresh=EPS*10 + ANORM = dlange( '1', M, N, stk(lA), M, stk(lDWORK) ) +c + if(M.eq.N) then +c +c M = N +c + call DLACPY( 'F', N, N, stk(lA), N, stk(lAF), N ) +c SUBROUTINE DLACPY( UPLO, M, N, A, LDA, B, LDB ) + call DGETRF( N, N, stk(lAF), N, istk(lIPIV), INFO ) +c SUBROUTINE DGETRF( N, N, A, LDA, IPIV, INFO ) + RCOND = 0.0d0 + if(INFO.eq.0) then + call DGECON( '1', N, stk(lAF), N, ANORM, RCOND, stk(lDWORK), + $ istk(lIWORK), INFO ) +c SUBROUTINE DGECON( NORM, N, A, LDA, ANORM, RCOND, WORK, +c $ IWORK, INFO ) + if(RCOND.gt.RCONDthresh) then + call DGETRS( 'N', N, NRHS, stk(lAF), N, istk(lIPIV), + $ stk(lB), N, INFO ) +c SUBROUTINE DGETRS( TRANS, N, NRHS, A, LDA, IPIV, +c B, LDB, INFO ) + call DLACPY( 'F', N, NRHS, stk(lB), N, stk(lX), N ) +c SUBROUTINE DLACPY( UPLO, M, N, A, LDA, B, LDB ) + lhsvar(1) = 4 + return + endif + endif + call writebufdgesv3(buf,RCOND) + call msgs(5,1) + endif +c +c M.ne.N or A singular +c + RCOND = RCONDthresh + call DLACPY( 'F', M, NRHS, stk(lB), M, stk(lXB), max(M,N) ) +c SUBROUTINE DLACPY( UPLO, M, N, A, LDA, B, LDB ) + do 10 i = 1, N + istk(lJPVT+i-1) = 0 + 10 continue + info = 1 + call DGELSY1( M, N, NRHS, stk(lA), M, stk(lXB), max(M,N), + $ istk(lJPVT), RCOND, istk(lRANK), stk(lDWORK), + $ LWORK, INFO ) +c SUBROUTINE DGELSY1( M, N, NRHS, A, LDA, B, LDB, JPVT, RCOND, +c $ RANK, WORK, LWORK, INFO ) + if(info.ne.0) then + return + endif + if( M.ne.N .and. istk(lRANK).lt.min(M,N) )then + call msgs(9,istk(lRANK)) + endif + call DLACPY( 'F', N, NRHS, stk(lXB), max(M,N), stk(lX), N ) +c SUBROUTINE DLACPY( UPLO, M, N, A, LDA, B, LDB ) + + lhsvar(1)=4 + return +c + end + + diff --git a/modules/linear_algebra/src/fortran/intdgesv3.lo b/modules/linear_algebra/src/fortran/intdgesv3.lo new file mode 100755 index 000000000..d3c2aa40d --- /dev/null +++ b/modules/linear_algebra/src/fortran/intdgesv3.lo @@ -0,0 +1,12 @@ +# src/fortran/intdgesv3.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/intdgesv3.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/src/fortran/intdgesv4.f b/modules/linear_algebra/src/fortran/intdgesv4.f new file mode 100755 index 000000000..48fb7f323 --- /dev/null +++ b/modules/linear_algebra/src/fortran/intdgesv4.f @@ -0,0 +1,169 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) INRIA +c Copyright (C) 2013 - 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 +c$ + subroutine intdgesv4(fname) + +c a/b + + include 'stack.h' + logical getrhsvar,createvar + logical checklhs,checkrhs + character fname*(*) + double precision ANORM, EPS, RCOND + double precision RCONDthresh + double precision dlamch, dlange + integer vfinite + external dlamch, dlange, vfinite + intrinsic sqrt +c + minrhs=2 + maxrhs=2 + minlhs=1 + maxlhs=1 +c + if(.not.checkrhs(fname,minrhs,maxrhs)) return + if(.not.checklhs(fname,minlhs,maxlhs)) return + + if(.not.getrhsvar(1,'d', MB, NB, lB)) return + if(.not.getrhsvar(2,'d', MA, NA, lA)) return + if(MB .eq. 0) then + lhsvar(1) = 1 + return + endif + if(NA .ne. NB) then + call error(266) + return + endif + M = MA + N = NA + K = MB + if(M.eq.0 .or. N.eq.0) then + if(.not.createvar(3,'d', 0, 0, lX)) return + lhsvar(1) = 3 + return + endif +c Check if A and B matrices contains Inf or NaN's + if (vfinite(M*N, stk(lA)).eq.0) then + call error(229) + return + endif + if (vfinite(MB*NB, stk(lB)).eq.0) then + call error(229) + return + endif + + if(.not.createvar(3,'d', N, M, lAF)) return + if(.not.createvar(4,'d', K, M, lX)) return + if(.not.createvar(5,'d', N, M, lAT)) return + if(.not.createvar(6,'d', max(M,N), K, lBT)) return + if(.not.createvar(7,'i', 1, 1, lRANK)) return + if(.not.createvar(8,'i', 1, N, lIPIV)) return + if(.not.createvar(9,'i', 1, M, lJPVT)) return + if(.not.createvar(10,'i', 1, N, lIWORK)) return + LWORKMIN = max( 4*N, min(M,N)+3*M+1, 2*min(M,N)+K ) + LWORK=maxvol(11,'d') + if(LWORK.le.LWORKMIN) then + err=(LWORK-LWORKMIN) + call error(17) + return + endif + if(.not.createvar(11,'d',1,LWORK,lDWORK)) return + EPS = dlamch('eps') + RCOND_thresh=EPS*10 + ANORM = dlange( '1', M, N, stk(lA), M, stk(lDWORK) ) +c +c Transpose A and B +c + do 20 j = 1, M + do 10 i = 1, N + ij = i+(j-1)*N + ji = j+(i-1)*M + stk(lAT+ij-1) = stk(lA+ji-1) + 10 continue + 20 continue + do 40 j = 1, K + do 30 i = 1, N + ij = i+(j-1)*max(M,N) + ji = j+(i-1)*K + stk(lBT+ij-1) = stk(lB+ji-1) + 30 continue + 40 continue +c + if(M.eq.N) then +c +c M = N +c + call DLACPY( 'F', N, N, stk(lAT), N, stk(lAF), N ) +c SUBROUTINE DLACPY( UPLO, M, N, A, LDA, B, LDB ) + call DGETRF( N, N, stk(lAF), N, istk(lIPIV), INFO ) +c SUBROUTINE DGETRF( N, N, A, LDA, IPIV, INFO ) + RCOND = 0.0d0 + if(INFO.eq.0) then + call DGECON( '1', N, stk(lAF), N, ANORM, RCOND, stk(lDWORK), + $ istk(lIWORK), INFO ) +c SUBROUTINE DGECON( NORM, N, A, LDA, ANORM, RCOND, WORK, +c $ IWORK, INFO ) + if(RCOND.gt.RCOND_thresh) then + call DGETRS( 'N', N, K, stk(lAF), N, istk(lIPIV), + $ stk(lBT), N, INFO ) +c SUBROUTINE DGETRS( TRANS, N, NRHS, A, LDA, IPIV, +c B, LDB, INFO ) +c +c Back transpose X +c + do 60 j = 1, N + do 50 i = 1, K + ij = i+(j-1)*K + ji = j+(i-1)*N + stk(lX+ij-1) = stk(lBT+ji-1) + 50 continue + 60 continue + lhsvar(1) = 4 + return + endif + endif + call writebufdgesv4(buf,RCOND) + call msgs(5,1) + endif +c +c M.ne.N or A singular +c + RCOND = RCOND_thresh + do 70 i = 1, M + istk(lJPVT+i-1) = 0 + 70 continue + info = 1 + call DGELSY1( N, M, K, stk(lAT), N, stk(lBT), max(M,N), + $ istk(lJPVT), RCOND, istk(lRANK), stk(lDWORK), + $ LWORK, INFO ) +c SUBROUTINE DGELSY( M, N, NRHS, A, LDA, B, LDB, JPVT, RCOND, +c $ RANK, WORK, LWORK, INFO ) + if(info.ne.0) then + return + endif + if( M.ne.N .and. istk(lRANK).lt.min(M,N) )then + call msgs(9,istk(lRANK)) + endif +c +c Back transpose X +c + do 90 j = 1, M + do 80 i = 1, K + ij = i+(j-1)*K + ji = j+(i-1)*max(M,N) + stk(lX+ij-1) = stk(lBT+ji-1) + 80 continue + 90 continue + + lhsvar(1)=4 + return +c + end + diff --git a/modules/linear_algebra/src/fortran/intdgesv4.lo b/modules/linear_algebra/src/fortran/intdgesv4.lo new file mode 100755 index 000000000..9d16c9412 --- /dev/null +++ b/modules/linear_algebra/src/fortran/intdgesv4.lo @@ -0,0 +1,12 @@ +# src/fortran/intdgesv4.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/intdgesv4.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/src/fortran/intdgesvd1.f b/modules/linear_algebra/src/fortran/intdgesvd1.f new file mode 100755 index 000000000..91782a898 --- /dev/null +++ b/modules/linear_algebra/src/fortran/intdgesvd1.f @@ -0,0 +1,130 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) INRIA +c$ +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +c$ + + subroutine intdgesvd1(fname) + +c [U,S,V]=svd(A) +c s = svd(A) + + include 'stack.h' + logical getrhsvar,createvar + logical checklhs,checkrhs + integer vfinite + + character fname*(*) + character JOBU, JOBVT + double precision ZERO + parameter ( ZERO=0.0D0 ) + + minrhs=1 + maxrhs=1 + minlhs=1 + maxlhs=3 +c + if(.not.checkrhs(fname,minrhs,maxrhs)) return + if(.not.checklhs(fname,minlhs,maxlhs)) return + + if(.not.getrhsvar(1,'d', M, N, lA)) return + if(M.eq.0) then + if(lhs.eq.1) then + lhsvar(1) = 1 + return + else if(lhs.eq.2) then + if(.not.createvar(2,'d', M, N, lS)) return + lhsvar(1) = 1 + lhsvar(2) = 2 + return + else if(lhs.eq.3) then + if(.not.createvar(2,'d', M, N, lS)) return + if(.not.createvar(3,'d', N, N, lV)) return + lhsvar(1) = 1 + lhsvar(2) = 2 + lhsvar(3) = 3 + return + endif + elseif(M.eq.-1 .or.N.eq.-1) then + err=1 + call error(271) + return + endif + if(vfinite(M*N,stk(lA)).eq.0) then + err=1 + call error(264) + return + endif + if(.not.createvar(2,'d', min(M,N), 1, lSV)) return + k = 3 + if(lhs.gt.1) then + if(.not.createvar(3,'d', M, M, lU)) return + if(.not.createvar(4,'d', M, N, lS)) return + if(.not.createvar(5,'d', N, N, lV)) return + if(.not.createvar(6,'d', N, N, lVT)) return + k = 7 + endif + LWORKMIN = max(3*min(M,N)+max(M,N),5*min(M,N)-4) + LWORK=maxvol(k,'d') + if(LWORK.le.LWORKMIN) then + err=LWORK-LWORKMIN + call error(17) + return + endif + if(.not.createvar(k,'d',1,LWORK,lDWORK)) return + + JOBU = 'N' + JOBVT = 'N' + if(lhs.gt.1) then + JOBU = 'A' + JOBVT = 'A' + endif + if(lhs.eq.1) then + call DGESVD( JOBU, JOBVT, M, N, stk(lA), M, stk(lSV), stk(lA), + $ M, stk(lA), N, stk(lDWORK), LWORK, INFO ) +c SUBROUTINE DGESVD( JOBU, JOBVT, M, N, A, LDA, S, U, LDU, VT, +C $ LDVT, WORK, LWORK, INFO ) +c next lines to patch an error of DGESVD + do 01 ii = 0,min(M,N)-1 + stk(lSV+ii)=abs(stk(lSV+ii)) + 01 continue + call DLASRT('D', min(M,N), stk(lSV), INFO ) + else + call DGESVD( JOBU, JOBVT, M, N, stk(lA), M, stk(lSV), stk(lU), + $ M, stk(lVT), N, stk(lDWORK), LWORK, INFO ) +c SUBROUTINE DGESVD( JOBU, JOBVT, M, N, A, LDA, S, U, LDU, VT, +C $ LDVT, WORK, LWORK, INFO ) + endif + if(info.ne.0) then + if(info.gt.0) call error(24) + return + endif + + if(lhs.gt.1) then + call DLASET( 'F', M, N, ZERO, ZERO, stk(lS), M ) +c SUBROUTINE DLASET( UPLO, M, N, ALPHA, BETA, A, LDA ) + + do 10 i = 1, min(M,N) + ii = i+(i-1)*M + stk(lS+ii-1) = stk(lSV+i-1) + 10 continue + do 30 j = 1, N + do 20 i = j, N + ij = i+(j-1)*N + ji = j+(i-1)*N + stk(lV+ij-1) = stk(lVT+ji-1) + stk(lV+ji-1) = stk(lVT+ij-1) + 20 continue + 30 continue + lhsvar(1)=3 + lhsvar(2)=4 + lhsvar(3)=5 + else + lhsvar(1) = 2 + endif + end + diff --git a/modules/linear_algebra/src/fortran/intdgesvd1.lo b/modules/linear_algebra/src/fortran/intdgesvd1.lo new file mode 100755 index 000000000..1507119df --- /dev/null +++ b/modules/linear_algebra/src/fortran/intdgesvd1.lo @@ -0,0 +1,12 @@ +# src/fortran/intdgesvd1.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/intdgesvd1.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/src/fortran/intdgesvd2.f b/modules/linear_algebra/src/fortran/intdgesvd2.f new file mode 100755 index 000000000..9d1e52be2 --- /dev/null +++ b/modules/linear_algebra/src/fortran/intdgesvd2.f @@ -0,0 +1,134 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) INRIA +c$ +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +c$ + + subroutine intdgesvd2(fname) + +c [U,S,V]=svd(A) +c s = svd(A) + + include 'stack.h' + logical getrhsvar,createvar + logical checklhs,checkrhs + integer vfinite + + character fname*(*) + character JOBU, JOBVT + double precision ZERO + parameter ( ZERO=0.0D0 ) + + minrhs=2 + maxrhs=2 + minlhs=1 + maxlhs=3 +c + if(.not.checkrhs(fname,minrhs,maxrhs)) return + if(.not.checklhs(fname,minlhs,maxlhs)) return + + if(.not.getrhsvar(1,'d', M, N, lA)) return + if(M.eq.0) then + if(lhs.eq.1) then + lhsvar(1) = 1 + return + else if(lhs.eq.2) then + if(.not.createvar(2,'d', N, N, lS)) return + lhsvar(1) = 1 + lhsvar(2) = 2 + return + else if(lhs.eq.3) then + if(.not.createvar(2,'d', M, N, lS)) return + if(.not.createvar(3,'d', N, N, lV)) return + lhsvar(1) = 1 + lhsvar(2) = 2 + lhsvar(3) = 3 + return + endif + elseif(M.eq.-1 .or.N.eq.-1) then + err=1 + call error(271) + return + endif + if(vfinite(M*N,stk(lA)).eq.0) then + err=1 + call error(264) + return + endif + if(.not.createvar(2,'d', min(M,N), 1, lSV)) return + k = 3 + if(lhs.gt.1) then + if(.not.createvar(3,'d', M, min(M,N), lU)) return + if(.not.createvar(4,'d', min(M,N), min(M,N), lS)) return + if(.not.createvar(5,'d', N, min(M,N), lV)) return + if(.not.createvar(6,'d', min(M,N), N, lVT)) return + k = 7 + endif + LWORKMIN = max(3*min(M,N)+max(M,N),5*min(M,N)-4) + LWORK=maxvol(k,'d') + if(LWORK.le.LWORKMIN) then + err=LWORK-LWORKMIN + call error(17) + return + endif + if(.not.createvar(k,'d',1,LWORK,lDWORK)) return + + JOBU = 'N' + JOBVT = 'N' + if(lhs.gt.1) then + JOBU = 'S' + JOBVT = 'S' + endif + if(lhs.eq.1) then + call DGESVD( JOBU, JOBVT, M, N, stk(lA), M, stk(lSV), stk(lA), + $ M, stk(lA), N, stk(lDWORK), LWORK, INFO ) +c SUBROUTINE DGESVD( JOBU, JOBVT, M, N, A, LDA, S, U, LDU, VT, +C $ LDVT, WORK, LWORK, INFO ) +c next lines to patch an error of DGESVD + do 01 ii = 0,min(M,N)-1 + stk(lSV+ii)=abs(stk(lSV+ii)) + 01 continue + call DLASRT('D', min(M,N), stk(lSV), INFO ) + else + call DGESVD( JOBU, JOBVT, M, N, stk(lA), M, stk(lSV), stk(lU), + $ M, stk(lVT), min(M,N), stk(lDWORK), LWORK, INFO ) +c SUBROUTINE DGESVD( JOBU, JOBVT, M, N, A, LDA, S, U, LDU, VT, +C $ LDVT, WORK, LWORK, INFO ) + endif + if(info.ne.0) then + if(info.gt.0) call error(24) + return + endif + + if(lhs.gt.1) then + call DLASET( 'F', min(M,N), min(M,N), ZERO, ZERO, stk(lS), + $ min(M,N) ) +c SUBROUTINE DLASET( UPLO, M, N, ALPHA, BETA, A, LDA ) + + do 10 i = 1, min(M,N) + ii = i+(i-1)*min(M,N) + stk(lS+ii-1) = stk(lSV+i-1) + 10 continue + do 30 j = 1, min(M,N) + do 20 i = 1, N + ij = i+(j-1)*N + ji = j+(i-1)*min(M,N) + stk(lV+ij-1) = stk(lVT+ji-1) + 20 continue + 30 continue + endif + + if(lhs.eq.1) then + lhsvar(1) = 2 + else + lhsvar(1)=3 + lhsvar(2)=4 + lhsvar(3)=5 + endif +c + end + diff --git a/modules/linear_algebra/src/fortran/intdgesvd2.lo b/modules/linear_algebra/src/fortran/intdgesvd2.lo new file mode 100755 index 000000000..2ca3b71b7 --- /dev/null +++ b/modules/linear_algebra/src/fortran/intdgesvd2.lo @@ -0,0 +1,12 @@ +# src/fortran/intdgesvd2.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/intdgesvd2.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/src/fortran/intdgetrf.f b/modules/linear_algebra/src/fortran/intdgetrf.f new file mode 100755 index 000000000..df62d436f --- /dev/null +++ b/modules/linear_algebra/src/fortran/intdgetrf.f @@ -0,0 +1,126 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) INRIA +c$ +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +c$ + + subroutine intdgetrf(fname) + +c [L,U,E] = lu(A) + + include 'stack.h' + logical getrhsvar,createvar + logical checklhs,checkrhs + character fname*(*) + double precision ZERO, ONE + parameter ( ZERO = 0.0D0, ONE = 1.0D0 ) +c + minrhs=1 + maxrhs=1 + minlhs=2 + maxlhs=3 +c + if(.not.checkrhs(fname,minrhs,maxrhs)) return + if(.not.checklhs(fname,minlhs,maxlhs)) return + + if(.not.getrhsvar(1,'d', M, N, lA)) return + if(M.eq.0 .or.N.eq.0) then + lhsvar(1) = 1 + if(.not.createvar(2,'d',0,0,lL)) return + lhsvar(2) = 2 + if(lhs.eq.3) then + if(.not.createvar(3,'d',0,0,lE)) return + lhsvar(3) = 3 + endif + return + elseif (M.eq.-1 .or.N.eq.-1) then + lhsvar(1) = 1 + if(.not.createvar(2,'d',-1,-1,lL)) return + stk(lL)=stk(lA) + stk(lA)=1.0d0 + lhsvar(2) = 2 + if(lhs.eq.3) then + if(.not.createvar(3,'d',-1,-1,lE)) return + stk(lE)=1.0d0 + lhsvar(3) = 3 + endif + return + endif + if(.not.createvar(2,'d',M,min(M,N),lL)) return + if(.not.createvar(3,'d',min(M,N),N,lU)) return + if(.not.createvar(4,'i',1,min(M,N),lIPIV)) return + if(.not.createvar(5,'d',M,M,lE)) return + if(lhs.eq.2) then + if(.not.createvar(6,'i',1,M,lIW)) return + if(.not.createvar(7,'d',M,min(M,N),lW)) return + endif + + + call DGETRF( M, N, stk(lA), M, istk(lIPIV), INFO ) +c SUBROUTINE DGETRF( M, N, A, LDA, IPIV, INFO ) + if(info.lt.0) then + return + endif + + do 20 j=1,min(M,N) + do 10 i=1,M + ij = i+(j-1)*M + if(i.eq.j) then + stk(lL+ij-1)=ONE + else if(i.gt.j) then + stk(lL+ij-1)=stk(lA+ij-1) + else if(i.lt.j) then + stk(lL+ij-1)=ZERO + endif + 10 continue + 20 continue + do 40 j=1,N + do 30 i=1,min(M,N) + ij1 = i+(j-1)*min(M,N) + ij2 = i+(j-1)*M + if(i.gt.j) then + stk(lU+ij1-1)=ZERO + else if(i.le.j) then + stk(lU+ij1-1)=stk(lA+ij2-1) + endif + 30 continue + 40 continue + if(lhs.eq.2) then +c form E'*L + do 41 i = 1, M + istk(lIW-1+i)=i + 41 continue + do 42 i = 1, min(M,N) + ip = istk(lIPIV-1+i) + if( ip.ne.i ) then + iw=istk(lIw-1+i) + istk(lIW-1+i)=istk(lIW-1+ip) + istk(lIW-1+ip)=iw + endif + 42 continue + do 43 i= 1, M + ip =istk(lIW-1+i) + call dcopy(N,stk(lL-1+i),M,stk(lW-1+ip),M) + 43 continue + lhsvar(1)=7 + lhsvar(2)=3 + else + call DLASET( 'F', M, M, ZERO, ONE, stk(lE), M ) +c SUBROUTINE DLASET( UPLO, M, N, ALPHA, BETA, A, LDA ) + call DLASWP( M, stk(lE), M, 1, min(M,N), istk(lIPIV), 1 ) +c SUBROUTINE DLASWP( N, A, LDA, K1, K2, IPIV, INCX ) + lhsvar(1)=2 + lhsvar(2)=3 + lhsvar(3)=5 + endif + + + +c + return + end + diff --git a/modules/linear_algebra/src/fortran/intdgetrf.lo b/modules/linear_algebra/src/fortran/intdgetrf.lo new file mode 100755 index 000000000..8531071ff --- /dev/null +++ b/modules/linear_algebra/src/fortran/intdgetrf.lo @@ -0,0 +1,12 @@ +# src/fortran/intdgetrf.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/intdgetrf.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/src/fortran/intdgetri.f b/modules/linear_algebra/src/fortran/intdgetri.f new file mode 100755 index 000000000..e2cccec6e --- /dev/null +++ b/modules/linear_algebra/src/fortran/intdgetri.f @@ -0,0 +1,83 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) INRIA +c$ +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +c$ + subroutine intdgetri(fname) + +c B = inv(A) + + include 'stack.h' + logical getrhsvar,createvar + logical checklhs,checkrhs + character fname*(*) + double precision anorm,rcond + double precision dlange,dlamch + external dlange,dlamch + +c + minrhs=1 + maxrhs=1 + minlhs=1 + maxlhs=1 +c + if(.not.checkrhs(fname,minrhs,maxrhs)) return + if(.not.checklhs(fname,minlhs,maxlhs)) return + + if(.not.getrhsvar(1,'d', M, N, lA)) return + if(m.ne.n) then + err=1 + call error(20) + return + endif + if(n.eq.0) then + lhsvar(1) = 1 + return + elseif(n.eq.-1) then + stk(lA)=1.0d0/stk(lA) + lhsvar(1) = 1 + return + endif + if(.not.createvar(2,'i',1,N,lIPIV)) return + if(.not.createvar(3,'i',1,N,lIWORK)) return + LWORKMIN = MAX(1,N) + LWORK=maxvol(4,'d') + if(LWORK.le.LWORKMIN) then + err=(LWORK-LWORKMIN) + call error(17) + return + endif + if(.not.createvar(4,'d',1,LWORK,lDWORK)) return + + ANORM = dlange( '1', M, N, stk(lA), M, stk(lDWORK) ) + + call DGETRF( N, N, stk(lA), N, istk(lIPIV), INFO ) +c SUBROUTINE DGETRF( M, N, A, LDA, IPIV, INFO ) + if(info.gt.0) then + call error(19) + return + elseif (info.lt.0) then + return + endif + RCOND = 0.0d0 + call DGECON( '1', N, stk(lA), N, ANORM, RCOND, stk(lDWORK), + $ istk(lIWORK), INFO ) + if(RCOND.le.sqrt(dlamch('eps'))) then + call writebufdgetri(buf,RCOND) +c . ill conditionned problem + call msgs(5,0) + endif + + + call DGETRI( N, stk(lA), N, istk(lIPIV), stk(lDWORK), + $ LWORK, INFO ) +c SUBROUTINE DGETRI( N, A, LDA, IPIV, WORK, LWORK, INFO ) + + lhsvar(1)=1 + +c + end diff --git a/modules/linear_algebra/src/fortran/intdgetri.lo b/modules/linear_algebra/src/fortran/intdgetri.lo new file mode 100755 index 000000000..74c1055ac --- /dev/null +++ b/modules/linear_algebra/src/fortran/intdgetri.lo @@ -0,0 +1,12 @@ +# src/fortran/intdgetri.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/intdgetri.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/src/fortran/intdggbal.f b/modules/linear_algebra/src/fortran/intdggbal.f new file mode 100755 index 000000000..e61dc5ef0 --- /dev/null +++ b/modules/linear_algebra/src/fortran/intdggbal.f @@ -0,0 +1,91 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) INRIA +c$ +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +c$ + subroutine intdggbal(fname) +c [Ab,Bb,X,Y]=balanc(A,B) + + include 'stack.h' + logical getrhsvar,createvar + logical checklhs,checkrhs + + character fname*(*) + character JOB + double precision ZERO, ONE + parameter ( ZERO=0.0D0, ONE=1.0D0 ) + + minrhs=2 + maxrhs=2 + minlhs=4 + maxlhs=4 +c + if(.not.checkrhs(fname,minrhs,maxrhs)) return + if(.not.checklhs(fname,minlhs,maxlhs)) return + + if(.not.getrhsvar(1,'d', MA, NA, lA)) return + if(MA.ne.NA) then + err=1 + call error(20) + return + endif + if(.not.getrhsvar(2,'d', MB, NB, lB)) return + if(MB.ne.NB) then + err=2 + call error(20) + return + endif + if(MA.ne.MB) then + call error(267) + return + endif + N = MA + if(N.eq.0) then + if(.not.createvar(3,'d', N, N, lX)) return + if(.not.createvar(4,'d', N, N, lY)) return + lhsvar(1)=1 + lhsvar(2)=2 + lhsvar(3)=3 + lhsvar(4)=4 + return + elseif(N.eq.-1) then + err=1 + call error(271) + return + endif + + if(.not.createvar(3,'d', N, N, lX)) return + if(.not.createvar(4,'d', N, N, lY)) return + if(.not.createvar(5,'d', 1, N, lLSCALE)) return + if(.not.createvar(6,'d', 1, N, lRSCALE)) return + if(.not.createvar(7,'d', 1, N*6, lWORK)) return + + +c SUBROUTINE DGGBAL( JOB, N, A, LDA, B, LDB, ILO, IHI, LSCALE, +c $ RSCALE, WORK, INFO ) + + JOB='B' + call DGGBAL(JOB, N, stk(lA), N, stk(lB), N, ILO, IHI,stk(lLSCALE), + $ stk(lRSCALE), stk(lWORK), INFO ) + +c + call DLASET( 'F', N, N, ZERO, ONE, stk(lX), N ) + call DLASET( 'F', N, N, ZERO, ONE, stk(lY), N ) + + call DGGBAK(JOB, 'L', N, ILO, IHI, stk(lLSCALE), stk(lRSCALE), N, + $ stk(lX), N, INFO ) + call DGGBAK(JOB, 'R', N, ILO, IHI, stk(lLSCALE), stk(lRSCALE), N, + $ stk(lY), N, INFO ) + + + lhsvar(1)=1 + lhsvar(2)=2 + lhsvar(3)=3 + lhsvar(4)=4 + end + + diff --git a/modules/linear_algebra/src/fortran/intdggbal.lo b/modules/linear_algebra/src/fortran/intdggbal.lo new file mode 100755 index 000000000..b0003ac8d --- /dev/null +++ b/modules/linear_algebra/src/fortran/intdggbal.lo @@ -0,0 +1,12 @@ +# src/fortran/intdggbal.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/intdggbal.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/src/fortran/intdgges.f b/modules/linear_algebra/src/fortran/intdgges.f new file mode 100755 index 000000000..268e0cf6e --- /dev/null +++ b/modules/linear_algebra/src/fortran/intdgges.f @@ -0,0 +1,126 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) INRIA +c$ +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +c$ + + subroutine intdgges(fname) + +c [AS,BS,VSL,VSR]=gschur(A,B) +c [AS,BS] = gschur(A,B) + + include 'stack.h' + logical getrhsvar,createvar + logical checklhs,checkrhs + + character fname*(*) + character JOBVSL, JOBVSR, SORT + logical voiddummy + external voiddummy + + minrhs=2 + maxrhs=2 + minlhs=2 + maxlhs=4 +c + if(.not.checkrhs(fname,minrhs,maxrhs)) return + if(.not.checklhs(fname,minlhs,maxlhs)) return + + if(.not.getrhsvar(1,'d', MA, NA, lA)) return + if(MA.ne.NA) then + err=1 + call error(20) + return + endif + if(.not.getrhsvar(2,'d', MB, NB, lB)) return + if(MB.ne.NB) then + err=2 + call error(20) + return + endif + if(MA.ne.MB) then + call error(267) + return + endif + N = MA + if(N.eq.0) then + lhsvar(1)=1 + lhsvar(2)=2 + if(lhs.eq.4) then + if(.not.createvar(3,'d', N, N, lVSL)) return + if(.not.createvar(4,'d', N, N, lVSR)) return + lhsvar(3)=3 + lhsvar(4)=4 + endif + return + elseif(N.eq.-1) then + err=1 + call error(271) + return + endif + if(.not.createvar(3,'i', 1, 1, lSDIM)) return + if(.not.createvar(4,'d', N, 1, lALPHAR)) return + if(.not.createvar(5,'d', N, 1, lALPHAI)) return + if(.not.createvar(6,'d', N, 1, lBETA)) return + k = 7 + if(lhs.eq.4) then + if(.not.createvar(7,'d', N, N, lVSL)) return + if(.not.createvar(8,'d', N, N, lVSR)) return + k = 9 + endif + if(.not.createvar(k,'i', 2*N, 1, lBWORK)) return + + LWORKMIN = 8*N+16 + LWORK=maxvol(k+1,'d') + if(LWORK.le.LWORKMIN) then + err=(LWORK-LWORKMIN) + call error(17) + return + endif + if(.not.createvar(k+1,'d',1,LWORK,lDWORK)) return + + if(lhs.eq.2) then + JOBVSL = 'N' + JOBVSR = 'N' + lVSL = lDWORK + lVSR = lDWORK + else + JOBVSL = 'V' + JOBVSR = 'V' + endif + SORT = 'N' + call DGGES( JOBVSL, JOBVSR, SORT, voiddummy, N, stk(lA), N, + $ stk(lB), + $ N, istk(lSDIM), stk(lALPHAR), stk(lALPHAI), stk(lBETA), + $ stk(lVSL), N, stk(lVSR), N, stk(lDWORK), LWORK, istk(lBWORK), + $ INFO ) +c SUBROUTINE DGGES( JOBVSL, JOBVSR, SORT, DELCTG, N, A, LDA, B, LDB, +c $ SDIM, ALPHAR, ALPHAI, BETA, VSL, LDVSL, VSR, LDVSR, WORK, +c $ LWORK, BWORK, INFO ) + if(info.gt.0) then + if(info.le.N) then + call msgs(1,info) + elseif(info.eq.N+1) then + call error(24) + return + endif + endif + + + if(lhs.eq.2) then + lhsvar(1)=1 + lhsvar(2)=2 + else + lhsvar(1)=1 + lhsvar(2)=2 + lhsvar(3)=7 + lhsvar(4)=8 + endif +c + end + + diff --git a/modules/linear_algebra/src/fortran/intdgges.lo b/modules/linear_algebra/src/fortran/intdgges.lo new file mode 100755 index 000000000..e7b579a72 --- /dev/null +++ b/modules/linear_algebra/src/fortran/intdgges.lo @@ -0,0 +1,12 @@ +# src/fortran/intdgges.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/intdgges.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/src/fortran/intdoldsvd.f b/modules/linear_algebra/src/fortran/intdoldsvd.f new file mode 100755 index 000000000..66fd7d158 --- /dev/null +++ b/modules/linear_algebra/src/fortran/intdoldsvd.f @@ -0,0 +1,148 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) INRIA +c$ +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +c$ + subroutine intdoldsvd(tol,fname) + +c [U,S,V,rk]=svd(A,tol) + + include 'stack.h' + logical getrhsvar,createvar + logical checklhs,checkrhs + + character fname*(*) + character JOBU, JOBVT + double precision ZERO + double precision tol,eps,dlamch + parameter ( ZERO=0.0D0 ) + + minrhs=1 + maxrhs=2 + minlhs=1 + maxlhs=4 +c + if(.not.checkrhs(fname,minrhs,maxrhs)) return + if(.not.checklhs(fname,minlhs,maxlhs)) return + + if(.not.getrhsvar(1,'d', M, N, lA)) return + if(M.eq.0) then + if(lhs.eq.1) then + lhsvar(1) = 1 + return + else if(lhs.eq.2) then + if(.not.createvar(2,'d', N, N, lS)) return + lhsvar(1) = 1 + lhsvar(2) = 2 + return + else if(lhs.eq.3) then + if(.not.createvar(2,'d', M, N, lS)) return + if(.not.createvar(3,'d', N, N, lV)) return + lhsvar(1) = 1 + lhsvar(2) = 2 + lhsvar(3) = 3 + return + else if(lhs.eq.4) then + if(.not.createvar(2,'d', M, N, lS)) return + if(.not.createvar(3,'d', N, N, lV)) return + if(.not.createvar(4,'d', 1, 1, lrk)) return + stk(lrk)=0 + lhsvar(1) = 1 + lhsvar(2) = 2 + lhsvar(3) = 3 + lhsvar(4) = 4 + return + endif + elseif(N.eq.-1.or.M.eq.-1) then + err=1 + call error(271) + return + endif + if(.not.createvar(2,'d', min(M,N), 1, lSV)) return + k = 3 + if(lhs.gt.1) then + if(.not.createvar(3,'d', M, M, lU)) return + if(.not.createvar(4,'d', M, N, lS)) return + if(.not.createvar(5,'d', N, N, lV)) return + if(.not.createvar(6,'d', N, N, lVT)) return + if(.not.createvar(7,'d', 1, 1, lrk)) return + k = 8 + endif + LWORKMIN = max(3*min(M,N)+max(M,N),5*min(M,N)-4) + LWORK=maxvol(k,'d') + if(LWORK.le.LWORKMIN) then + err=(LWORK-LWORKMIN) + call error(17) + return + endif + if(.not.createvar(k,'d',1,LWORK,lDWORK)) return + + JOBU = 'N' + JOBVT = 'N' + if(lhs.gt.1) then + JOBU = 'A' + JOBVT = 'A' + endif + if(lhs.eq.1) then + call DGESVD( JOBU, JOBVT, M, N, stk(lA), M, stk(lSV), stk(lA), + $ M, stk(lA), N, stk(lDWORK), LWORK, INFO ) +c SUBROUTINE DGESVD( JOBU, JOBVT, M, N, A, LDA, S, U, LDU, VT, +C $ LDVT, WORK, LWORK, INFO ) +c next lines to patch an error of DGESVD + do 01 ii = 0,min(M,N)-1 + stk(lSV+ii)=abs(stk(lSV+ii)) + 01 continue + call DLASRT('D', min(M,N), stk(lSV), INFO ) + else + call DGESVD( JOBU, JOBVT, M, N, stk(lA), M, stk(lSV), stk(lU), + $ M, stk(lVT), N, stk(lDWORK), LWORK, INFO ) +c SUBROUTINE DGESVD( JOBU, JOBVT, M, N, A, LDA, S, U, LDU, VT, +C $ LDVT, WORK, LWORK, INFO ) + endif + if(info.ne.0) then + if(info.gt.0) call error(24) + return + endif + +c calculating rk = # of sv's > tol + + eps=dlamch('eps') + if(tol.eq.0.0d0) tol=dble(max(M,N))*eps*stk(lSV) + irang=0 + do 51 i = 1, min(M,N) + if(stk(lSV+i-1).gt.tol) irang=i + 51 continue + stk(lrk)=dble(irang) + if(lhs.gt.1) then + call DLASET( 'F', M, N, ZERO, ZERO, stk(lS), M ) +c SUBROUTINE DLASET( UPLO, M, N, ALPHA, BETA, A, LDA ) + + do 10 i = 1, min(M,N) + ii = i+(i-1)*M + stk(lS+ii-1) = stk(lSV+i-1) + 10 continue + do 30 j = 1, N + do 20 i = j, N + ij = i+(j-1)*N + ji = j+(i-1)*N + stk(lV+ij-1) = stk(lVT+ji-1) + stk(lV+ji-1) = stk(lVT+ij-1) + 20 continue + 30 continue + endif + + if(lhs.eq.1) then + lhsvar(1) = 2 + else + lhsvar(1)=3 + lhsvar(2)=4 + lhsvar(3)=5 + lhsvar(4)=7 + endif +c + end + diff --git a/modules/linear_algebra/src/fortran/intdoldsvd.lo b/modules/linear_algebra/src/fortran/intdoldsvd.lo new file mode 100755 index 000000000..77fee358e --- /dev/null +++ b/modules/linear_algebra/src/fortran/intdoldsvd.lo @@ -0,0 +1,12 @@ +# src/fortran/intdoldsvd.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/intdoldsvd.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/src/fortran/intdpotrf.f b/modules/linear_algebra/src/fortran/intdpotrf.f new file mode 100755 index 000000000..7971942b3 --- /dev/null +++ b/modules/linear_algebra/src/fortran/intdpotrf.f @@ -0,0 +1,66 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) INRIA +c$ +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +c$ + subroutine intdpotrf(fname) + +c U = chol(A) + + include 'stack.h' + logical getrhsvar + logical checklhs,checkrhs + character fname*(*) +c + minrhs=1 + maxrhs=1 + minlhs=1 + maxlhs=1 +c + if(.not.checkrhs(fname,minrhs,maxrhs)) return + if(.not.checklhs(fname,minlhs,maxlhs)) return + + if(.not.getrhsvar(1,'d', M, N, lA)) return + if(m.ne.n) then + err=1 + call error(20) + return + endif + if(N.eq.0) then + lhsvar(1) = 1 + return + elseif(N.eq.-1) then + if(stk(lA).le.0.0d0) then + call error(29) + return + endif + lhsvar(1) = 1 + stk(lA)=sqrt(stk(lA)) + return + endif + + call DPOTRF( 'U', N, stk(lA), N, INFO ) +c SUBROUTINE DPOTRF( 'U', N, A, LDA, INFO ) + if(info.ne.0) then + if(info.gt.0) call error(29) + return + endif + + if( N.gt.1 ) then + do 20 j=1,N + do 10 i=j+1,N + ij = i+(j-1)*N + stk(lA+ij-1)=0.0d0 + 10 continue + 20 continue + endif + + lhsvar(1)=1 + +c + end + diff --git a/modules/linear_algebra/src/fortran/intdpotrf.lo b/modules/linear_algebra/src/fortran/intdpotrf.lo new file mode 100755 index 000000000..1467dec6e --- /dev/null +++ b/modules/linear_algebra/src/fortran/intdpotrf.lo @@ -0,0 +1,12 @@ +# src/fortran/intdpotrf.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/intdpotrf.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/src/fortran/intfschur.f b/modules/linear_algebra/src/fortran/intfschur.f new file mode 100755 index 000000000..94f02e417 --- /dev/null +++ b/modules/linear_algebra/src/fortran/intfschur.f @@ -0,0 +1,124 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) INRIA +c$ +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +c$ + subroutine intfschur(fname) + +c [VS,dim,T]=fschur(A,"function") +c [VS,dim]=fschur(A,"function") + + include 'stack.h' + logical getrhsvar,createvar + logical checklhs,checkrhs + + character fname*(*) + character*4 JOBVS, SORT + integer schsel + external schsel + + minrhs=2 + maxrhs=2 + minlhs=1 + maxlhs=3 +c + if(.not.checkrhs(fname,minrhs,maxrhs)) return + if(.not.checklhs(fname,minlhs,maxlhs)) return + + if(.not.getrhsvar(1,'d', M, N, lA)) return + if(M.ne.N) then + err=1 + call error(20) + return + endif + if(N.eq.0) then + if(lhs.eq.1) then + lhsvar(1) = 1 + return + else if(lhs.eq.2) then + if(.not.createvar(2,'d', 1, 1, lSDIM)) return + stk(lSDIM)=0.0d0 + lhsvar(1)=1 + lhsvar(2)=2 + return + else if(lhs.eq.3) then + if(.not.createvar(2,'d', 1, 1, lSDIM)) return + stk(lSDIM)=0.0d0 + if(.not.createvar(3,'d', N, N, lVS)) return + lhsvar(1)=1 + lhsvar(2)=2 + lhsvar(3)=3 + return + endif + elseif(N.eq.-1) then + err=1 + call error(271) + return + endif + if(.not.getrhsvar(2,'c', mr, mc, lc)) return + call setschsel(mr*mc, cstk(lc:lc+mr*mc),irep) + if ( irep.eq.1) then + buf = cstk(lc:lc+mr*mc) + call error(50) + return + endif + + if(.not.createvar(3,'d', N, 1, lWR)) return + if(.not.createvar(4,'d', N, 1, lWI)) return + k = 5 + if(lhs.gt.1) then + if(.not.createvar(5,'d', N, N, lVS)) return + k = 6 + endif + if(.not.createvar(k,'i', 1, 1, lSDIM)) return + if(.not.createvar(k+1,'i', N, 1, lBWORK)) return + LWORKMIN = 3*N + LWORK=maxvol(k+2,'d') + if(LWORK.le.LWORKMIN) then + err=(LWORK-LWORKMIN) + call error(17) + return + endif + if(.not.createvar(k+2,'d',1,LWORKMIN,lDWORK)) return + + if(lhs.eq.1) then + JOBVS = 'N' + lVS = lDWORK + else + JOBVS = 'V' + endif + SORT = 'S' + + call DGEES( JOBVS, SORT, schsel, N, stk(lA), N, istk(lSDIM), + $ stk(lWR), stk(lWI), stk(lVS), N, stk(lDWORK), LWORK, + $ istk(lBWORK), INFO ) + if(info.gt.0) then + if(info.le.N) then + call msgs(2,info) + elseif(info.eq.N+1) then + buf='eigenvalues could not be reordered (the problem '// + $ 'is very ill-conditioned' + call error(1002) + elseif(info.eq.N+2) then + call msgs(103,0) + endif + endif + + + if(lhs.eq.1) then + lhsvar(1) = 1 + else if(lhs.eq.2) then + lhsvar(1)=5 + lhsvar(2)=6 + else if(lhs.eq.3) then + lhsvar(1)=5 + lhsvar(2)=6 + lhsvar(3)=1 + endif +c + end + diff --git a/modules/linear_algebra/src/fortran/intfschur.lo b/modules/linear_algebra/src/fortran/intfschur.lo new file mode 100755 index 000000000..fdfbbc2df --- /dev/null +++ b/modules/linear_algebra/src/fortran/intfschur.lo @@ -0,0 +1,12 @@ +# src/fortran/intfschur.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/intfschur.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/src/fortran/intgschur.f b/modules/linear_algebra/src/fortran/intgschur.f new file mode 100755 index 000000000..04915c5bd --- /dev/null +++ b/modules/linear_algebra/src/fortran/intgschur.f @@ -0,0 +1,143 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) INRIA +c$ +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +c$ + + subroutine intgschur(fname) + +c [As,Bs,VSR,dim]=gschur(A,B,"function") +c [VSR,dim]=gschur(A,B,"function") + + include 'stack.h' + logical getrhsvar,createvar + logical checklhs,checkrhs + + character fname*(*) + character JOBVSL, JOBVSR, SORT + integer gshsel + external gshsel + + minrhs=3 + maxrhs=3 + minlhs=1 + maxlhs=4 +c + if(.not.checkrhs(fname,minrhs,maxrhs)) return + if(.not.checklhs(fname,minlhs,maxlhs)) return + + if(.not.getrhsvar(1,'d', MA, NA, lA)) return + if(MA.ne.NA) then + err=1 + call error(20) + return + endif + + if(.not.getrhsvar(2,'d', MB, NB, lB)) return + if(MB.ne.NB) then + err=2 + call error(20) + return + endif + if(MA.ne.MB) then + call error(267) + return + endif + N = MA + if(N.eq.0) then + lhsvar(1)=1 + if(lhs.eq.2) then + if(.not.createvar(2,'d', 1, 1, lSDIM)) return + stk(lSDIM)=0.0d0 + lhsvar(2)=2 + elseif(lhs.eq.3) then + if(.not.createvar(3,'d', 1, 1, lSDIM)) return + stk(lSDIM)=0.0d0 + lhsvar(2)=2 + lhsvar(3)=3 + else + if(.not.createvar(3,'d', N, N, lVSR)) return + if(.not.createvar(4,'d', 1, 1, lSDIM)) return + stk(lSDIM)=0.0d0 + lhsvar(2)=2 + lhsvar(3)=3 + lhsvar(4)=4 + endif + return + elseif(N.eq.-1) then + err=1 + call error(271) + return + endif + if(.not.getrhsvar(3,'c', mr, mc, lc)) return + call setgshsel(mr*mc, cstk(lc:lc+mr*mc),irep) + if ( irep.eq.1) then + buf = cstk(lc:lc+mr*mc) + call error(50) + return + endif + + if(.not.createvar(4,'i', 1, 1, lSDIM)) return + if(.not.createvar(5,'d', N, 1, lALPHAR)) return + if(.not.createvar(6,'d', N, 1, lALPHAI)) return + if(.not.createvar(7,'d', N, 1, lBETA)) return + if(.not.createvar(8,'d', N, N, lVSL)) return + if(.not.createvar(9,'d', N, N, lVSR)) return + if(.not.createvar(10,'i', 2*N, 1, lBWORK)) return + + LWORKMIN = 8*N+16 + LWORK=maxvol(11,'d') + if(LWORK.le.LWORKMIN) then + err=(LWORK-LWORKMIN) + call error(17) + return + endif + if(.not.createvar(11,'d',1,LWORK,lDWORK)) return + + JOBVSL = 'V' + JOBVSR = 'V' + SORT = 'S' +c + call DGGES( JOBVSL, JOBVSR, SORT, gshsel, N, stk(lA), N, stk(lB), + $ N, istk(lSDIM), stk(lALPHAR), stk(lALPHAI), stk(lBETA), + $ stk(lVSL), N, stk(lVSR), N, stk(lDWORK), LWORK, istk(lBWORK), + $ INFO ) +c SUBROUTINE DGGES( JOBVSL, JOBVSR, SORT, DELCTG, N, A, LDA, B, LDB, +c $ SDIM, ALPHAR, ALPHAI, BETA, VSL, LDVSL, VSR, LDVSR, WORK, +c $ LWORK, BWORK, INFO ) + if(info.gt.0) then + if(info.le.N) then + call msgs(1,info) + elseif(info.eq.N+1) then + call error(24) + return + elseif(info.eq.N+2) then + call msgs(103,0) + elseif(info.eq.N+3) then + buf='reordering failed' + call error(1002) + return + endif + endif + + if(lhs.eq.1) then + lhsvar(1)=4 + elseif(lhs.eq.2) then + lhsvar(1)=9 + lhsvar(2)=4 + elseif(lhs.eq.3) then + lhsvar(1)=8 + lhsvar(2)=9 + lhsvar(3)=4 + else if(lhs.eq.4) then + lhsvar(1)=1 + lhsvar(2)=2 + lhsvar(3)=9 + lhsvar(4)=4 + endif + + end diff --git a/modules/linear_algebra/src/fortran/intgschur.lo b/modules/linear_algebra/src/fortran/intgschur.lo new file mode 100755 index 000000000..1ce1b9ab0 --- /dev/null +++ b/modules/linear_algebra/src/fortran/intgschur.lo @@ -0,0 +1,12 @@ +# src/fortran/intgschur.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/intgschur.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/src/fortran/intogschur.f b/modules/linear_algebra/src/fortran/intogschur.f new file mode 100755 index 000000000..0bcd1e4d9 --- /dev/null +++ b/modules/linear_algebra/src/fortran/intogschur.f @@ -0,0 +1,162 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) INRIA +c$ +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +c$ + + subroutine intogschur(fname) +c [dim]=gschur(A,B,function) +c [VSR,dim]=gschur(A,B,function) +c [VSL,VSR,dim]=gschur(A,B,function) +c [As,Bs,VSR,dim]=gschur(A,B,function) +c [VSR,dim]=gschur(A,B,function) + + include 'stack.h' + logical getrhsvar,createvar + logical checklhs,checkrhs + + character fname*(*) + character JOBVSL, JOBVSR, SORT + logical SCIGSHUR,scigchk + external SCIGSHUR,scigchk + common /scigsch/ lf, nfree, nf + + minrhs=3 + maxrhs=3 + minlhs=1 + maxlhs=5 +c + if(.not.checkrhs(fname,minrhs,maxrhs)) return + if(.not.checklhs(fname,minlhs,maxlhs)) return + + if(.not.getrhsvar(1,'d', MA, NA, lA)) return + if(MA.ne.NA) then + err=1 + call error(20) + return + endif + + if(.not.getrhsvar(2,'d', MB, NB, lB)) return + if(MB.ne.NB) then + err=2 + call error(20) + return + endif + if(MA.ne.MB) then + call error(267) + return + endif + N = MA + if(N.eq.0) then + lhsvar(1)=1 + if(lhs.eq.2) then + if(.not.createvar(2,'d', 1, 1, lSDIM)) return + stk(lSDIM)=0.0d0 + lhsvar(2)=2 + elseif(lhs.eq.3) then + if(.not.createvar(3,'d', 1, 1, lSDIM)) return + stk(lSDIM)=0.0d0 + lhsvar(2)=2 + lhsvar(3)=3 + elseif(lhs.eq.4) then + if(.not.createvar(3,'d', N, N, lVSR)) return + if(.not.createvar(4,'d', 1, 1, lSDIM)) return + stk(lSDIM)=0.0d0 + lhsvar(2)=2 + lhsvar(3)=3 + lhsvar(4)=4 + else + if(.not.createvar(3,'d', N, N, lVSR)) return + if(.not.createvar(4,'d', N, N, lVSL)) return + if(.not.createvar(5,'d', 1, 1, lSDIM)) return + stk(lSDIM)=0.0d0 + lhsvar(2)=2 + lhsvar(3)=3 + lhsvar(4)=4 + lhsvar(5)=5 + endif + return + elseif(N.eq.-1) then + err=1 + call error(271) + return + endif + nf=3 + if(.not.getrhsvar(nf,'f', mlhs, mrhs, lf)) return + if(mlhs.ne.1 .or. mrhs.ne.2) then + err=nf + call error(80) + return + endif + + if(.not.createvar(4,'i', 1, 1, lSDIM)) return + if(.not.createvar(5,'d', N, 1, lALPHAR)) return + if(.not.createvar(6,'d', N, 1, lALPHAI)) return + if(.not.createvar(7,'d', N, 1, lBETA)) return + if(.not.createvar(8,'d', N, N, lVSL)) return + if(.not.createvar(9,'d', N, N, lVSR)) return + if(.not.createvar(10,'i', 2*N, 1, lBWORK)) return + +c To adapt to Lapack 3.1.1 +c Old version : LWORKMIN = 7*(N+1)+16 + LWORKMIN = MAX( 8*N, 6*N + 16 ) + LWORK=LWORKMIN + if(.not.createvar(11,'d',1,LWORK,lDWORK)) return + nfree = 12 + + JOBVSL = 'V' + JOBVSR = 'V' + SORT = 'S' +c + if(.not.scigchk()) return + call DGGES( JOBVSL, JOBVSR, SORT, SCIGSHUR, N, stk(lA), N, + $ stk(lB), N, istk(lSDIM), stk(lALPHAR), stk(lALPHAI), + $ stk(lBETA), stk(lVSL), N, stk(lVSR), N, stk(lDWORK), LWORK, + $ istk(lBWORK),INFO ) + + +c SUBROUTINE DGGES( JOBVSL, JOBVSR, SORT, DELCTG, N, A, LDA, B, LDB, +c $ SDIM, ALPHAR, ALPHAI, BETA, VSL, LDVSL, VSR, LDVSR, WORK, +c $ LWORK, BWORK, INFO ) + if(info.gt.0) then + if(info.le.N) then + call msgs(1,info) + elseif(info.eq.N+1) then + call error(24) + return + elseif(info.eq.N+2) then + call msgs(103,0) + elseif(info.eq.N+3) then + buf='reordering failed' + call error(1002) + return + endif + endif + + if(lhs.eq.1) then + lhsvar(1)=4 + elseif(lhs.eq.2) then + lhsvar(1)=9 + lhsvar(2)=4 + elseif(lhs.eq.3) then + lhsvar(1)=8 + lhsvar(2)=9 + lhsvar(3)=4 + else if(lhs.eq.4) then + lhsvar(1)=1 + lhsvar(2)=2 + lhsvar(3)=9 + lhsvar(4)=4 + else if(lhs.eq.5) then + lhsvar(1)=1 + lhsvar(2)=2 + lhsvar(3)=8 + lhsvar(4)=9 + lhsvar(5)=4 + endif + end + diff --git a/modules/linear_algebra/src/fortran/intogschur.lo b/modules/linear_algebra/src/fortran/intogschur.lo new file mode 100755 index 000000000..864c2b1a6 --- /dev/null +++ b/modules/linear_algebra/src/fortran/intogschur.lo @@ -0,0 +1,12 @@ +# src/fortran/intogschur.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/intogschur.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/src/fortran/intoschur.f b/modules/linear_algebra/src/fortran/intoschur.f new file mode 100755 index 000000000..e1d48b929 --- /dev/null +++ b/modules/linear_algebra/src/fortran/intoschur.f @@ -0,0 +1,120 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) INRIA +c$ +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +c$ + + subroutine intoschur(fname) + +c [VS,dim]=schur(A,function) +c [VS,dim,T]=oschur(A,function) + + include 'stack.h' + logical getrhsvar,createvar + logical checklhs,checkrhs + + character fname*(*) + character*4 JOBVS, SORT + logical SCISCHUR,scichk + external SCISCHUR,scichk + common /scisch/ lf, nx, nf + + minrhs=2 + maxrhs=2 + minlhs=1 + maxlhs=3 +c + if(.not.checkrhs(fname,minrhs,maxrhs)) return + if(.not.checklhs(fname,minlhs,maxlhs)) return + + if(.not.getrhsvar(1,'d', M, N, lA)) return + if(M.ne.N) then + err=1 + call error(20) + return + endif + if(N.eq.0) then + if(lhs.eq.1) then + lhsvar(1) = 1 + return + else if(lhs.eq.2) then + if(.not.createvar(2,'d',1,1, lSDIM)) return + stk(lSDIM)=0.0d0 + lhsvar(1)=1 + lhsvar(2)=2 + return + else if(lhs.eq.3) then + if(.not.createvar(2,'d', 1, 1, lSDIM)) return + stk(lSDIM)=0.0d0 + if(.not.createvar(3,'d', N, N, lVS)) return + lhsvar(1)=1 + lhsvar(2)=2 + lhsvar(3)=3 + return + endif + elseif(N.eq.-1) then + err=1 + call error(271) + return + endif + if(.not.getrhsvar(2,'f', mlhs, mrhs, lf)) return + if(mlhs.ne.1 .or. mrhs.ne.1) then + err=2 + call error(80) + return + endif + if(.not.createvar(3,'d', N, 1, lWR)) return + if(.not.createvar(4,'d', N, 1, lWI)) return + k = 5 + if(lhs.gt.1) then + if(.not.createvar(5,'d', N, N, lVS)) return + k = 6 + endif + if(.not.createvar(k,'i', 1, 1, lSDIM)) return + if(.not.createvar(k+1,'i', N, 1, lBWORK)) return + LWORKMIN = 3*N + LWORK = LWORKMIN + if(.not.createvar(k+2,'d',1,LWORKMIN,lDWORK)) return + nx=k+3 + + if(lhs.eq.1) then + JOBVS = 'N' + lVS = lDWORK + else + JOBVS = 'V' + endif + SORT = 'S' + if(.not.scichk()) return + call DGEES( JOBVS, SORT, SCISCHUR, N, stk(lA), N, istk(lSDIM), + $ stk(lWR), stk(lWI), stk(lVS), N, stk(lDWORK), LWORK, + $ istk(lBWORK), INFO ) + if(info.gt.0) then + if(info.le.N) then + call msgs(2,info) + elseif(info.eq.N+1) then + buf='eigenvalues could not be reordered (the problem '// + $ 'is very ill-conditioned' + call error(1002) + elseif(info.eq.N+2) then + call msgs(103,0) + endif + endif + + if(lhs.eq.1) then + lhsvar(1) = 1 + else if(lhs.eq.2) then + lhsvar(1)=5 + lhsvar(2)=6 + else if(lhs.eq.3) then + lhsvar(1)=5 + lhsvar(2)=6 + lhsvar(3)=1 + endif +c + end + + diff --git a/modules/linear_algebra/src/fortran/intoschur.lo b/modules/linear_algebra/src/fortran/intoschur.lo new file mode 100755 index 000000000..2d18cda73 --- /dev/null +++ b/modules/linear_algebra/src/fortran/intoschur.lo @@ -0,0 +1,12 @@ +# src/fortran/intoschur.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/intoschur.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/src/fortran/intozgschur.f b/modules/linear_algebra/src/fortran/intozgschur.f new file mode 100755 index 000000000..491756a21 --- /dev/null +++ b/modules/linear_algebra/src/fortran/intozgschur.f @@ -0,0 +1,197 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) INRIA +c$ +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +c$ + subroutine intozgschur(fname) + +c [As,Bs,VSR,dim]=gshur(A,B,function) +c [VS,dim]=gshur(A,B,function) + + include 'stack.h' + logical getrhsvar,createvar + logical checklhs,checkrhs + + character fname*(*) + character JOBVSL, JOBVSR, SORT + logical SCIZGSHR,scizgchk + external SCIZGSHR,scizgchk + common /scizgsch/ lf, nfree, nf + + minrhs=3 + maxrhs=3 + minlhs=1 + maxlhs=4 +c + if(.not.checkrhs(fname,minrhs,maxrhs)) return + if(.not.checklhs(fname,minlhs,maxlhs)) return + + if(.not.getrhsvar(1,'z', MA, NA, lA)) return + if(MA.ne.NA) then + err=1 + call error(20) + return + endif + if(.not.getrhsvar(2,'z', MB, NB, lB)) return + if(MB.ne.NB) then + err=2 + call error(20) + return + endif + N = MA + if(N.eq.0) then + lhsvar(1)=1 + lhsvar(2)=2 + if(lhs.eq.4) then + if(.not.createvar(3,'z', N, N, lVSR)) return + if(.not.createvar(4,'d', N, N, lSDIM)) return + lhsvar(3)=3 + lhsvar(4)=4 + endif + return + elseif(N.eq.-1) then + err=1 + call error(271) + return + endif + nf=3 + if(.not.getrhsvar(nf,'f', mlhs, mrhs, lf)) return + if(mlhs.ne.1 .or. mrhs.ne.2) then + err=nf + call error(80) + return + endif + + if(.not.createvar(4,'i', 1, 1, lSDIM)) return + if(.not.createvar(5,'z', N, 1, lALPHA)) return + if(.not.createvar(6,'z', N, 1, lBETA)) return + if(.not.createvar(7,'z', N, N, lVSL)) return + if(.not.createvar(8,'z', N, N, lVSR)) return + if(.not.createvar(9,'d', 8*N, 1, lRWORK)) return + if(.not.createvar(10,'i', 2*N, 1, lBWORK)) return + LWORKMIN = 2*N + LWORK=LWORKMIN + if(.not.createvar(11,'z',1,LWORK,lDWORK)) return + nfree = 12 + + JOBVSL = 'V' + JOBVSR = 'V' + SORT = 'S' + + + if(.not.scizgchk()) return + call ZGGES( JOBVSL, JOBVSR, SORT, SCIZGSHR, N, zstk(lA), N, + $ zstk(lB), N, istk(lSDIM), zstk(lALPHA), zstk(lBETA), + $ zstk(lVSL), N, zstk(lVSR), N, zstk(lDWORK), LWORK, + $ stk(lRWORK), istk(lBWORK), INFO ) +c SUBROUTINE ZGGES( JOBVSL, JOBVSR, SORT, DELCTG, N, A, LDA, B, LDB, +c $ SDIM, ALPHA, BETA, VSL, LDVSL, VSR, LDVSR, WORK, LWORK, RWORK +c , +c $ BWORK, INFO ) + if(info.gt.0) then + if(info.le.N) then + call msgs(1,info) + elseif(info.eq.N+1) then + call error(24) + return + elseif(info.eq.N+2) then + call msgs(103,0) + elseif(info.eq.N+3) then + buf='reordering failed' + call error(1002) + return + endif + endif + + if(lhs.eq.1) then + lhsvar(1)=4 + elseif(lhs.eq.2) then + lhsvar(1)=8 + lhsvar(2)=4 + elseif(lhs.eq.3) then + lhsvar(1)=7 + lhsvar(2)=8 + lhsvar(3)=4 + else if(lhs.eq.4) then + lhsvar(1)=1 + lhsvar(2)=2 + lhsvar(3)=8 + lhsvar(4)=4 + endif +c + end + + + logical function scizgshr(alpha,beta) + INCLUDE 'stack.h' + logical scifunction, createcvar + common /scizgsch/ lf, nx, nf + integer iadr + complex*16 alpha, beta + intrinsic dreal, dimag + + iadr(l) = l+l-1 +c + scizgshr=.false. + if(.not.createcvar(nx,'d',1,1,1,lar,lai)) return + if(.not.createcvar(nx+1,'d',1,1,1,lbr,lbi)) return + lx=lar + stk(lar)=dreal(alpha) + stk(lai)=dimag(alpha) + stk(lbr)=dreal(beta) + stk(lbi)=dimag(beta) + + if(.not.scifunction(nx,lf,1,2)) return +c stk(lx)=fct([alpha,beta]) evaluated by scilab fct pointed to by +c lf + ilx=iadr(lx-2) + if(istk(ilx).eq.1) then + scizgshr=(stk(lx).ne.0.0d0) + elseif (istk(ilx).eq.4) then + scizgshr=(istk(ilx+3).ne.0) + endif + return + end + + logical function scizgchk() +c checks fct passed to zgshur + INCLUDE 'stack.h' + logical scifunction, createcvar + + integer iadr + common/ierinv/iero + common /scizgsch/ lf, nx, nf + iadr(l) = l+l-1 + + scizgchk=.false. + if(.not.createcvar(nx,'d',1,1,1,lar,lai)) return + if(.not.createcvar(nx+1,'d',1,1,1,lbr,lbi)) return + lx=lar + stk(lar)=1.0D0 + stk(lai)=0.0d0 + stk(lbr)=1.0D0 + stk(lbi)=0.0d0 + if(.not.scifunction(nx,lf,1,1)) then +c error into fct passed to schur (zgschur(A,B,tst)) + return + endif +c check return value of fct + ilx=iadr(lx-2) + if(istk(ilx).ne.1 .and. istk(ilx).ne.4) then + err=nf + call error(268) + return + endif + if(istk(ilx+1)*istk(ilx+2).ne.1) then + err=nf + call error(268) + return + endif + scizgchk=.true. + return + end + diff --git a/modules/linear_algebra/src/fortran/intozgschur.lo b/modules/linear_algebra/src/fortran/intozgschur.lo new file mode 100755 index 000000000..85fc3abae --- /dev/null +++ b/modules/linear_algebra/src/fortran/intozgschur.lo @@ -0,0 +1,12 @@ +# src/fortran/intozgschur.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/intozgschur.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/src/fortran/intzdet.f b/modules/linear_algebra/src/fortran/intzdet.f new file mode 100755 index 000000000..d51dca34e --- /dev/null +++ b/modules/linear_algebra/src/fortran/intzdet.f @@ -0,0 +1,96 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) INRIA +c$ +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +c$ + subroutine intzdet(fname) + +c det(A) + + include 'stack.h' + logical getrhsvar,createvar + logical checklhs,checkrhs + character fname*(*) + double precision ZERO, ONE, TEN, E + complex*16 D + parameter ( ZERO = 0.0D0, ONE = 1.0D0, TEN = 10.0D0 ) +c + minrhs=1 + maxrhs=1 + minlhs=1 + maxlhs=2 +c + if(.not.checkrhs(fname,minrhs,maxrhs)) return + if(.not.checklhs(fname,minlhs,maxlhs)) return + + if(.not.getrhsvar(1,'z', M, N, lA)) return + if(M.ne.N) then + err=1 + call error(20) + return + endif + if(N.eq.0) then + lhsvar(1) = 1 + if (lhs.eq.2) then + if(.not.createvar(2,'d',0,0,lL)) return + lhsvar(2) = 2 + endif + return + elseif(N.eq.-1) then + err=1 + call error(271) + return + endif + + if(.not.createvar(2,'i',1,M,lIPIV)) return + + + call ZGETRF( M, N, zstk(lA), M, istk(lIPIV), INFO ) +c SUBROUTINE ZGETRF( M, N, A, LDA, IPIV, INFO ) + if(info.lt.0) then + return + endif + if (lhs.eq.1) then + D=one + do 10 i=0,N-1 + if(istk(lIPIV+i).ne.i+1 ) D=-D + D=D*zstk(lA+i*(M+1)) + 10 continue + if(.not.createvar(1,'z',1,1,lD)) return + zstk(lD)=D + lhsvar(1)=1 + else +c . [e,m]=det(A) + D = ONE + E = ZERO + do 40 i=0,N-1 + if(istk(lIPIV+i).ne.i+1 ) D=-D + D = zstk(lA+i*(M+1))*D + if (abs(D) .eq. ZERO) go to 50 + 15 if (abs(D) .ge. ONE) go to 20 + D = ten*D + E = E - ONE + go to 15 + 20 continue + 25 if (abs(D) .lt. ten) go to 30 + D = D/ten + E = E + ONE + go to 25 + 30 continue + 40 continue + 50 continue + if(.not.createvar(1,'d',1,1,le)) return + stk(le) = E + if(.not.createvar(2,'z',1,1,lm)) return + zstk(lm) = D + lhsvar(1) = 1 + lhsvar(2) = 2 + endif +c + return + end + diff --git a/modules/linear_algebra/src/fortran/intzdet.lo b/modules/linear_algebra/src/fortran/intzdet.lo new file mode 100755 index 000000000..30680b41b --- /dev/null +++ b/modules/linear_algebra/src/fortran/intzdet.lo @@ -0,0 +1,12 @@ +# src/fortran/intzdet.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/intzdet.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/src/fortran/intzfschur.f b/modules/linear_algebra/src/fortran/intzfschur.f new file mode 100755 index 000000000..cdb999262 --- /dev/null +++ b/modules/linear_algebra/src/fortran/intzfschur.f @@ -0,0 +1,127 @@ + +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) INRIA +c$ +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +c$ + + subroutine intzfschur(fname) +c T=zfschur(A,'function') +c [VS,dim]=zfschur(A,'function') +c [VS,dim,T]=zfschur(A,'function') + + + include 'stack.h' + logical getrhsvar,createvar + logical checklhs,checkrhs + + character fname*(*) + character*4 JOBVS, SORT + integer zchsel + external zchsel + + minrhs=2 + maxrhs=2 + minlhs=1 + maxlhs=3 +c + if(.not.checkrhs(fname,minrhs,maxrhs)) return + if(.not.checklhs(fname,minlhs,maxlhs)) return + + if(.not.getrhsvar(1,'z', M, N, lA)) return + if(M.ne.N) then + err=1 + call error(20) + return + endif + if(N.eq.0) then + if(lhs.eq.1) then + lhsvar(1) = 1 + return + else if(lhs.eq.2) then + if(.not.createvar(2,'z', 0, 0, lSDIM)) return + lhsvar(1)=1 + lhsvar(2)=2 + return + else if(lhs.eq.3) then + if(.not.createvar(2,'z', N, N, lVS)) return + if(.not.createvar(3,'i', 0, 0, lSDIM)) return + lhsvar(1)=2 + lhsvar(2)=3 + lhsvar(3)=1 + return + endif + elseif(N.eq.-1) then + err=1 + call error(271) + return + endif + + if(.not.getrhsvar(2,'c', mr, mc, lc)) return + call setzchsel(mr*mc,cstk(lc:lc+mr*mc),irep) + if ( irep.eq.1) then + buf = cstk(lc:lc+mr*mc) + call error(50) + return + endif + + if(.not.createvar(3,'z', N, 1, lW)) return + k = 4 + if(lhs.gt.1) then + if(.not.createvar(4,'z', N, N, lVS)) return + k = 5 + endif + if(.not.createvar(k,'i', 1, 1, lSDIM)) return + if(.not.createvar(k+1,'d', N, 1, lRWORK)) return + if(.not.createvar(k+2,'i', 2*N, 1, lBWORK)) return + LWORKMIN = 2*N + LWORK=maxvol(k+3,'z') + if(LWORK.le.LWORKMIN) then + err=2*(LWORK-LWORKMIN) + call error(17) + return + endif + if(.not.createvar(k+3,'z',1,LWORK,lDWORK)) return + + if(lhs.eq.1) then + JOBVS = 'N' + lVS = lDWORK + else + JOBVS = 'V' + endif + SORT = 'S' + + call ZGEES( JOBVS, SORT, ZCHSEL, N, zstk(lA), N, istk(lSDIM), + $ zstk(lW), zstk(lVS), N, zstk(lDWORK), LWORK, stk(lRWORK), + $ istk(lBWORK), INFO ) +c SUBROUTINE ZGEES( JOBVS, SORT, SELECT, N, A, LDA, SDIM, W, +c $ VS, LDVS, WORK, LWORK, RWORK, BWORK, INFO ) + if(info.gt.0) then + if(info.le.N) then + call msgs(2,info) + elseif(info.eq.N+1) then + buf='eigenvalues could not be reordered (the problem '// + $ 'is very ill-conditioned' + call error(1002) + elseif(info.eq.N+2) then + call msgs(103,0) + endif + endif + + if(lhs.eq.1) then + lhsvar(1) = 1 + else if(lhs.eq.2) then + lhsvar(1)=4 + lhsvar(2)=5 + else if(lhs.eq.3) then + lhsvar(1)=4 + lhsvar(2)=5 + lhsvar(3)=1 + endif +c + end + diff --git a/modules/linear_algebra/src/fortran/intzfschur.lo b/modules/linear_algebra/src/fortran/intzfschur.lo new file mode 100755 index 000000000..10e418f1c --- /dev/null +++ b/modules/linear_algebra/src/fortran/intzfschur.lo @@ -0,0 +1,12 @@ +# src/fortran/intzfschur.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/intzfschur.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/src/fortran/intzgebal.f b/modules/linear_algebra/src/fortran/intzgebal.f new file mode 100755 index 000000000..dfbc56356 --- /dev/null +++ b/modules/linear_algebra/src/fortran/intzgebal.f @@ -0,0 +1,64 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) INRIA +c$ +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +c$ + + subroutine intzgebal(fname) + +c [V,D]=balanc(A) + + include 'stack.h' + logical getrhsvar,createvar + logical checklhs,checkrhs + character JOB + character fname*(*) + double precision ZERO, ONE + parameter ( ZERO=0.0D0, ONE=1.0D0 ) +c + minrhs=1 + maxrhs=1 + minlhs=2 + maxlhs=2 +c + if(.not.checkrhs(fname,minrhs,maxrhs)) return + if(.not.checklhs(fname,minlhs,maxlhs)) return + + if(.not.getrhsvar(1,'z', M, N, lA)) return + if(M.ne.N) then + err=1 + call error(20) + return + endif + if(N.eq.0) then + if(.not.createvar(2,'d', 0, 0, lZ)) return + lhsvar(1) = 1 + lhsvar(2) = 2 + return + elseif(N.eq.-1) then + err=1 + call error(271) + return + endif + + if(.not.createvar(2,'d', N, N, lZ)) return + if(.not.createvar(3,'d', 1, N, lSCALE)) return + JOB='B' + call ZGEBAL( JOB, N, zstk(lA), N, ILO, IHI,stk(lSCALE),INF0) + + + call DLASET( 'F', N, N, ZERO, ONE, stk(lZ), N ) +c SUBROUTINE DGEBAK( JOB, SIDE, N, ILO, IHI, SCALE, M, V, LDV, INFO ) + call DGEBAK( JOB, 'R', N, ILO, IHI, stk(lSCALE), N, + $ stk(lZ), N, INFO ) + + lhsvar(1)=1 + lhsvar(2)=2 +c + end + + diff --git a/modules/linear_algebra/src/fortran/intzgebal.lo b/modules/linear_algebra/src/fortran/intzgebal.lo new file mode 100755 index 000000000..b83939916 --- /dev/null +++ b/modules/linear_algebra/src/fortran/intzgebal.lo @@ -0,0 +1,12 @@ +# src/fortran/intzgebal.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/intzgebal.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/src/fortran/intzgecon.f b/modules/linear_algebra/src/fortran/intzgecon.f new file mode 100755 index 000000000..1ea3ea152 --- /dev/null +++ b/modules/linear_algebra/src/fortran/intzgecon.f @@ -0,0 +1,75 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) INRIA +c$ +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +c$ + subroutine intzgecon(fname) + +c rcond + + include 'stack.h' + logical getrhsvar,createvar + logical checklhs,checkrhs + character fname*(*) + double precision ANORM + double precision zlange + external zlange +c + minrhs=1 + maxrhs=1 + minlhs=1 + maxlhs=1 +c + if(.not.checkrhs(fname,minrhs,maxrhs)) return + if(.not.checklhs(fname,minlhs,maxlhs)) return + + if(.not.getrhsvar(1,'z', MA, NA, lA)) return + if(MA .ne. NA) then + err=1 + call error(20) + return + endif + N = MA + + if(N.eq.0) then + if(.not.createvar(2,'d', 0, 0, lRCOND)) return + lhsvar(1) = 2 + return + elseif(n.eq.-1) then + if(.not.createvar(2,'d', 1, 1, lRCOND)) return + stk(lRCOND)=1.0d0 + lhsvar(1) = 2 + return + endif + + if(.not.createvar(2,'d', 1, 1, lRCOND)) return + if(.not.createvar(3,'i', 1, N, lIPIV)) return + if(.not.createvar(4,'d', 1, 2*N, lRWORK)) return + LWORKMIN = 2*N + LWORK=maxvol(5,'z') + if(LWORK.le.LWORKMIN) then + err=2*(LWORK-LWORKMIN) + call error(17) + return + endif + if(.not.createvar(5,'z',1,LWORK,lDWORK)) return + ANORM = zlange( '1', N, N, zstk(lA), N, zstk(lDWORK) ) +c DOUBLE PRECISION FUNCTION ZLANGE( NORM, M, N, A, LDA, WORK ) + call ZGETRF( N, N, zstk(lA), N, istk(lIPIV), INFO ) +c SUBROUTINE ZGETRF( N, N, A, LDA, IPIV, INFO ) + stk(lRCOND) = 0.0d0 + if(INFO.eq.0) then + call ZGECON( '1', N, zstk(lA), N, ANORM, stk(lRCOND), + $ zstk(lDWORK), stk(lRWORK), INFO ) +c SUBROUTINE ZGECON( NORM, N, A, LDA, ANORM, RCOND, WORK, +c $ RWORK, INFO ) + endif + + lhsvar(1) = 2 + return +c + end diff --git a/modules/linear_algebra/src/fortran/intzgecon.lo b/modules/linear_algebra/src/fortran/intzgecon.lo new file mode 100755 index 000000000..64c0b83e3 --- /dev/null +++ b/modules/linear_algebra/src/fortran/intzgecon.lo @@ -0,0 +1,12 @@ +# src/fortran/intzgecon.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/intzgecon.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/src/fortran/intzgees0.f b/modules/linear_algebra/src/fortran/intzgees0.f new file mode 100755 index 000000000..84f3a8394 --- /dev/null +++ b/modules/linear_algebra/src/fortran/intzgees0.f @@ -0,0 +1,93 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) INRIA +c$ +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +c$ + subroutine intzgees0(fname) + +c [VS,T]=schur(A) + + include 'stack.h' + logical getrhsvar,createvar + logical checklhs,checkrhs + + character fname*(*) + character JOBVS, SORT + integer SDIM + logical voiddummy + external voiddummy + + minrhs=1 + maxrhs=1 + minlhs=1 + maxlhs=2 +c + if(.not.checkrhs(fname,minrhs,maxrhs)) return + if(.not.checklhs(fname,minlhs,maxlhs)) return + + if(.not.getrhsvar(1,'z', M, N, lA)) return + if(M.ne.N) then + err=1 + call error(20) + return + endif + if(N.eq.0) then + if(lhs.eq.1) then + lhsvar(1) = 1 + return + else if(lhs.eq.2) then + if(.not.createvar(2, 'z', N, N, lVS)) return + lhsvar(1) = 2 + lhsvar(2) = 1 + return + endif + elseif(N.eq.-1) then + err=1 + call error(271) + return + endif + if(.not.createvar(2,'z', N, 1, lW)) return + k = 3 + if(lhs.gt.1) then + if(.not.createvar(3,'z', N, N, lVS)) return + k = 4 + endif + if(.not.createvar(k,'d', N, 1, lRWORK)) return + if(.not.createvar(k+1,'i', N, 1, lBWORK)) return + LWORKMIN = 2*N + LWORK=maxvol(k+2,'z') + if(LWORK.le.LWORKMIN) then + err=2*(LWORK-LWORKMIN) + call error(17) + return + endif + if(.not.createvar(k+2,'z',1,LWORK,lDWORK)) return + if(lhs.eq.1) then + JOBVS = 'N' + else + JOBVS = 'V' + endif + SORT = 'N' + + call ZGEES( JOBVS, SORT, voiddummy, N, zstk(lA), N, SDIM, + $ zstk(lW), zstk(lVS), N, zstk(lDWORK), LWORK, stk(lRWORK), + $ istk(lBWORK), INFO ) +c SUBROUTINE ZGEES( JOBVS, SORT, SELECT, N, A, LDA, SDIM, W, +c $ VS, LDVS, WORK, LWORK, RWORK, BWORK, INFO ) + if(info.gt.0) then + call msgs(2,info) + endif + + if(lhs.eq.1) then + lhsvar(1) = 1 + else + lhsvar(1)=3 + lhsvar(2)=1 + endif +c + end + diff --git a/modules/linear_algebra/src/fortran/intzgees0.lo b/modules/linear_algebra/src/fortran/intzgees0.lo new file mode 100755 index 000000000..7b53c8f3b --- /dev/null +++ b/modules/linear_algebra/src/fortran/intzgees0.lo @@ -0,0 +1,12 @@ +# src/fortran/intzgees0.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/intzgees0.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/src/fortran/intzgees1.f b/modules/linear_algebra/src/fortran/intzgees1.f new file mode 100755 index 000000000..b7d60d94c --- /dev/null +++ b/modules/linear_algebra/src/fortran/intzgees1.f @@ -0,0 +1,105 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) INRIA +c$ +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +c$ + subroutine intzgees1(fname) + +c [VS,T]=schur(A,'type') +c type is complex + + include 'stack.h' + logical getrhsvar,createvar + logical checklhs,checkrhs + + character fname*(*) + character TYPE, JOBVS, SORT + integer SDIM + logical voiddummy, WANTZ + external voiddummy + + minrhs=2 + maxrhs=2 + minlhs=1 + maxlhs=2 +c + if(.not.checkrhs(fname,minrhs,maxrhs)) return + if(.not.checklhs(fname,minlhs,maxlhs)) return + + if(.not.getrhsvar(1,'z', M, N, lA)) return + if(M.ne.N) then + err=1 + call error(20) + return + endif + if(N.eq.0) then + if(lhs.eq.1) then + lhsvar(1) = 1 + return + else if(lhs.eq.2) then + if(.not.createvar(2, 'z', N, N, lVS)) return + lhsvar(1) = 1 + lhsvar(2) = 2 + return + endif + elseif(N.eq.-1) then + err=1 + call error(271) + return + endif + + if(.not.getrhsvar(2,'c', M1, N1, lTYPE)) return + TYPE = cstk(lTYPE:lTYPE) + WANTZ = (TYPE.eq.'c' .or. TYPE.eq.'C') + if(.not.WANTZ) then + buf='schur'//': type must be complex' + call error(998) + return + endif + + if(.not.createvar(3,'z', N, 1, lW)) return + k = 4 + if(lhs.gt.1) then + if(.not.createvar(4,'z', N, N, lVS)) return + k = 5 + endif + if(.not.createvar(k,'d', N, 1, lRWORK)) return + if(.not.createvar(k+1,'i', N, 1, lBWORK)) return + LWORKMIN = 2*N + LWORK=maxvol(k+2,'z') + if(LWORK.le.LWORKMIN) then + err=2*(LWORK-LWORKMIN) + call error(17) + return + endif + if(.not.createvar(k+2,'z',1,LWORK,lDWORK)) return + if(lhs.eq.1) then + JOBVS = 'N' + else + JOBVS = 'V' + endif + SORT = 'N' + + call ZGEES( JOBVS, SORT, voiddummy, N, zstk(lA), N, SDIM, + $ zstk(lW), zstk(lVS), N, zstk(lDWORK), LWORK, stk(lRWORK), + $ istk(lBWORK), INFO ) +c SUBROUTINE ZGEES( JOBVS, SORT, SELECT, N, A, LDA, SDIM, W, +c $ VS, LDVS, WORK, LWORK, RWORK, BWORK, INFO ) + if(info.gt.0) then + call msgs(2,info) + endif + + if(lhs.eq.1) then + lhsvar(1) = 1 + else + lhsvar(1)=4 + lhsvar(2)=1 + endif +c + end + + diff --git a/modules/linear_algebra/src/fortran/intzgees1.lo b/modules/linear_algebra/src/fortran/intzgees1.lo new file mode 100755 index 000000000..57e484f9c --- /dev/null +++ b/modules/linear_algebra/src/fortran/intzgees1.lo @@ -0,0 +1,12 @@ +# src/fortran/intzgees1.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/intzgees1.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/src/fortran/intzgehrd.f b/modules/linear_algebra/src/fortran/intzgehrd.f new file mode 100755 index 000000000..a46d30384 --- /dev/null +++ b/modules/linear_algebra/src/fortran/intzgehrd.f @@ -0,0 +1,101 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) INRIA +c$ +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +c$ + subroutine intzgehrd(fname) + +c [Q,H]=hess(A) + + include 'stack.h' + logical getrhsvar,createvar + logical checklhs,checkrhs + + character fname*(*) + complex*16 ZERO,ONE + parameter ( ZERO=(0.0D0,0.0D0), ONE=(1.0D0,0.0D0) ) + + minrhs=1 + maxrhs=1 + minlhs=1 + maxlhs=2 +c + if(.not.checkrhs(fname,minrhs,maxrhs)) return + if(.not.checklhs(fname,minlhs,maxlhs)) return + + if(.not.getrhsvar(1,'z', M, N, lA)) return + if(M.ne.N) then + err=1 + call error(20) + return + endif + if(N.eq.0) then + if(lhs.eq.1) then + lhsvar(1) = 1 + return + else if(lhs.eq.2) then + if(.not.createvar(2, 'z', N, N, lQ)) return + lhsvar(1)=1 + lhsvar(2)=2 + return + endif + elseif(N.eq.-1) then + if(lhs.eq.1) then + lhsvar(1) = 1 + else if(lhs.eq.2) then + if(.not.createvar(2,'z', N, N, lQ)) return + zstk(lQ)=zstk(lA) + zstk(lA)=ONE + lhsvar(1)=1 + lhsvar(2)=2 + endif + endif + if(.not.createvar(2,'z', N-1, 1, lTAU)) return + k = 3 + if(lhs.gt.1) then + if(.not.createvar(3,'z', N, N, lQ)) return + k = 4 + endif + LWORKMIN = N + LWORK=maxvol(k,'z') + if(LWORK.le.LWORKMIN) then + err=(LWORK-LWORKMIN) + call error(17) + return + endif + if(.not.createvar(k,'z',1,LWORK,lDWORK)) return + call ZGEHRD( N, 1, N, zstk(lA), N, zstk(lTAU), zstk(lDWORK), + $ LWORK, INFO ) +c SUBROUTINE ZGEHRD( N, 1, N, A, LDA, TAU, WORK, INFO ) + + if(lhs.gt.1) call ZLACPY( 'F', N, N, zstk(lA), N, zstk(lQ), N ) +c SUBROUTINE ZLACPY( UPLO, N, N, A, LDA, B, LDB ) + if(N.gt.2) then + do 20 j = 1, N-2 + do 10 i = j+2, N + ij = i+(j-1)*N + zstk(lA+ij-1) = ZERO + 10 continue + 20 continue + endif + + if(lhs.gt.1) then + call ZUNGHR( N, 1, N, zstk(lQ), N, zstk(lTAU), zstk(lDWORK), + $ LWORK, INFO ) +c SUBROUTINE ZUNGHR( N, 1, N, A, LDA, TAU, WORK, INFO ) + endif + + if(lhs.eq.1) then + lhsvar(1) = 1 + else + lhsvar(1)=3 + lhsvar(2)=1 + endif +c + end + + diff --git a/modules/linear_algebra/src/fortran/intzgehrd.lo b/modules/linear_algebra/src/fortran/intzgehrd.lo new file mode 100755 index 000000000..a0a3ce739 --- /dev/null +++ b/modules/linear_algebra/src/fortran/intzgehrd.lo @@ -0,0 +1,12 @@ +# src/fortran/intzgehrd.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/intzgehrd.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/src/fortran/intzgelsy.f b/modules/linear_algebra/src/fortran/intzgelsy.f new file mode 100755 index 000000000..47e5a7872 --- /dev/null +++ b/modules/linear_algebra/src/fortran/intzgelsy.f @@ -0,0 +1,100 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) INRIA +c$ +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +c$ + + + subroutine intzgelsy(fname) + +c [X,rank]=lsq(A,B,rcond) + + include 'stack.h' + logical getrhsvar,createvar + logical checklhs,checkrhs + character fname*(*) + double precision EPS, RCOND + double precision dlamch + external dlamch + intrinsic sqrt + + minrhs=2 + maxrhs=3 + minlhs=1 + maxlhs=2 +c + if(.not.checkrhs(fname,minrhs,maxrhs)) return + if(.not.checklhs(fname,minlhs,maxlhs)) return + + if(.not.getrhsvar(1,'z', MA, N, lA)) return + if(.not.getrhsvar(2,'z', MB, NRHS, lB)) return + + if(MA .ne. MB) then + call error(265) + return + endif + M = MA + if(M.eq.0 .or. N.eq.0) then + if(.not.createvar(3,'z', 0, 0, lX)) return + if(.not.createvar(4,'i', 0, 0, lRANK)) return + lhsvar(1) = 3 + lhsvar(2) = 4 + return + elseif(M.eq.-1 .or.N.eq.-1) then + err=1 + call error(271) + return + endif + if(rhs.eq.2) then + eps = dlamch('eps') + rcond = sqrt(eps) + MR = 1 + NR = 1 + if(.not.createvar(3,'d', MR, NR, lRCOND)) return + stk(lRCOND) = RCOND + else + if(.not.getrhsvar(3,'d', MR, NR, lRCOND)) return + endif + if(MR.ne.1 .or. NR.ne.1 ) then + err=3 + call error(204) + return + endif + if(.not.createvar(4,'z', N, NRHS, lX)) return + if(.not.createvar(5,'z', max(M,N), NRHS, lXB)) return + if(.not.createvar(6,'i', 1, 1, lRANK)) return + if(.not.createvar(7,'i', 1, N, lJPVT)) return + if(.not.createvar(8,'d', 1, 2*N, lRWORK)) return + LWORKMIN = min(M,N) + max( 2*min(M,N), N+1, min(M,N)+NRHS ) + LWORK=maxvol(9,'z') + if(LWORK.le.LWORKMIN) then + err=2*(LWORK-LWORKMIN) + call error(17) + return + endif + if(.not.createvar(9,'z',1,LWORK,lDWORK)) return + + call ZLACPY( 'F', M, NRHS, zstk(lB), M, zstk(lXB), max(M,N) ) +c SUBROUTINE ZLACPY( UPLO, M, N, A, LDA, B, LDB ) + do 10 i = 1, N + istk(lJPVT+i-1) = 0 + 10 continue + call ZGELSY( M, N, NRHS, zstk(lA), M, zstk(lXB), max(M,N), + $ istk(lJPVT), stk(lRCOND), istk(lRANK), zstk(lDWORK), + $ LWORK, stk(lRWORK), INFO ) +c SUBROUTINE ZGELSY( M, N, NRHS, A, LDA, B, LDB, JPVT, RCOND, +c $ RANK, WORK, LWORK, RWORK, INFO ) + if(info.ne.0) then + return + endif + call ZLACPY( 'F', N, NRHS, zstk(lXB), max(M,N), zstk(lX), N ) +c SUBROUTINE ZLACPY( UPLO, M, N, A, LDA, B, LDB ) + + lhsvar(1)=4 + lhsvar(2)=6 +c + end diff --git a/modules/linear_algebra/src/fortran/intzgelsy.lo b/modules/linear_algebra/src/fortran/intzgelsy.lo new file mode 100755 index 000000000..0a2cd99e9 --- /dev/null +++ b/modules/linear_algebra/src/fortran/intzgelsy.lo @@ -0,0 +1,12 @@ +# src/fortran/intzgelsy.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/intzgelsy.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/src/fortran/intzgeqpf3.f b/modules/linear_algebra/src/fortran/intzgeqpf3.f new file mode 100755 index 000000000..2ce522c68 --- /dev/null +++ b/modules/linear_algebra/src/fortran/intzgeqpf3.f @@ -0,0 +1,144 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) INRIA +c$ +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +c$ + subroutine intzgeqpf3(fname) + +c [Q,R]=qr(A) +c [Q,R,E]=qr(A) + + include 'stack.h' + logical getrhsvar,createvar + logical checklhs,checkrhs + + character fname*(*) + double precision ONE, DZERO + parameter ( ONE=1.0D0, DZERO=0.0D0) + complex*16 ZERO + parameter ( ZERO=(0.0D0,0.0D0) ) + + + minrhs=1 + maxrhs=1 + minlhs=1 + maxlhs=3 +c + if(.not.checkrhs(fname,minrhs,maxrhs)) return + if(.not.checklhs(fname,minlhs,maxlhs)) return + + if(.not.getrhsvar(1,'z', M, N, lA)) return + if(M.eq.0 .or.N.eq.0) then + if(.not.createvar(2,'z', 0, 0, lQ)) return + if(.not.createvar(3,'z', 0, 0, lR)) return + if(lhs.gt.2) then + if(.not.createvar(4,'d', 0, 0, lE)) return + endif + lhsvar(1) = 2 + lhsvar(2) = 3 + if(lhs.gt.2) then + lhsvar(3) = 4 + endif + return + elseif(M.eq.-1 .or.N.eq.-1) then + err=1 + call error(271) + return + endif + if(.not.createvar(2,'z', M, M, lQ)) return + if(.not.createvar(3,'z', M, N, lR)) return + k=4 + if(lhs.gt.2) then + if(.not.createvar(4,'d', N, N, lE)) return + if(.not.createvar(5,'i', 1, N, lJPVT)) return + k=6 + endif + if(.not.createvar(k,'z', 1, min(M,N), lTAU)) return + if(.not.createvar(k+1,'d', 1, 2*N, lRWORK)) return + LWORKMIN = N + LWORK=maxvol(k+2,'z') + if(LWORK.le.LWORKMIN) then + err=2*(LWORK-LWORKMIN) + call error(17) + return + endif + if(.not.createvar(k+2,'z', 1, LWORK, lDWORK)) return + + if(lhs.le.2) then + call ZGEQRF( M, N, zstk(lA), M, zstk(lTAU), zstk(lDWORK), + $ LWORK, INFO ) +c SUBROUTINE ZGEQRF( M, N, A, LDA, TAU, WORK, LWORK, INFO ) + else + do 5 i = 1, N + istk(lJPVT+i-1) = 0 + 5 continue + call ZGEQPF( M, N, zstk(lA), M, istk(lJPVT), zstk(lTAU), + $ zstk(lDWORK), stk(lRWORK), INFO ) +c SUBROUTINE ZGEQPF( M, N, A, LDA, JPVT, TAU, WORK, RWORK, INFO ) + endif + if(info.ne.0) then + return + endif + + call ZLACPY( 'U', M, N, zstk(lA), M, zstk(lR), M ) +c SUBROUTINE ZLACPY( UPLO, M, N, A, B, LDB ) +c if(N.ge.2) then + if(M.gt.N) then + do 20 j = 1, N + do 10 i = j+1, M + ij = i+(j-1)*M + zstk(lR+ij-1) = ZERO + 10 continue + 20 continue + else + do 40 j = 1, M-1 + do 30 i = j+1, M + ij = i+(j-1)*M + zstk(lR+ij-1) = ZERO + 30 continue + 40 continue + endif +c endif + + if(M.gt.N) then + call ZLACPY( 'F', M, N, zstk(lA), M, zstk(lQ), M ) +c SUBROUTINE ZLACPY( UPLO, M, N, A, LDA, B, LDB ) + do 60 j = N+1, M + do 50 i = 1, M + ij = i+(j-1)*M + zstk(lQ+ij-1) = ZERO + 50 continue + 60 continue + else + call ZLACPY( 'F', M, M, zstk(lA), M, zstk(lQ), M ) +c SUBROUTINE ZLACPY( UPLO, M, N, A, B, LDB ) + endif + call ZUNGQR( M, M, min(M,N), zstk(lQ), M, zstk(lTAU), + $ zstk(lDWORK), LWORK, INFO ) +c SUBROUTINE ZUNGQR( M, N, K, A, LDA, TAU, WORK, LWORK, INFO ) + + if(lhs.gt.2) then + call DLASET( 'F', N, N, DZERO, DZERO, stk(lE), N ) +c SUBROUTINE DLASET( UPLO, M, N, ALPHA, BETA, A, LDA ) + do 70 j = 1, N + i = istk(lJPVT+j-1) + ij = i + (j-1)*N + stk(lE+ij-1) = ONE + 70 continue + endif + + if(lhs.le.2) then + lhsvar(1)=2 + lhsvar(2)=3 + else + lhsvar(1)=2 + lhsvar(2)=3 + lhsvar(3)=4 + endif +c + end + diff --git a/modules/linear_algebra/src/fortran/intzgeqpf3.lo b/modules/linear_algebra/src/fortran/intzgeqpf3.lo new file mode 100755 index 000000000..11871e068 --- /dev/null +++ b/modules/linear_algebra/src/fortran/intzgeqpf3.lo @@ -0,0 +1,12 @@ +# src/fortran/intzgeqpf3.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/intzgeqpf3.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/src/fortran/intzgeqpf4.f b/modules/linear_algebra/src/fortran/intzgeqpf4.f new file mode 100755 index 000000000..960eaefbb --- /dev/null +++ b/modules/linear_algebra/src/fortran/intzgeqpf4.f @@ -0,0 +1,129 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) INRIA +c$ +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +c$ + + subroutine intzgeqpf4(fname) + +c [Q,R]=qr(A,'e') +c [Q,R,E]=qr(A,'e') + + include 'stack.h' + logical getrhsvar,createvar + logical checklhs,checkrhs + + character fname*(*) + double precision ONE, DZERO + parameter ( ONE=1.0D0, DZERO=0.0D0) + complex*16 ZERO + parameter ( ZERO=(0.0D0,0.0D0) ) + + + minrhs=2 + maxrhs=2 + minlhs=1 + maxlhs=3 +c + if(.not.checkrhs(fname,minrhs,maxrhs)) return + if(.not.checklhs(fname,minlhs,maxlhs)) return + + if(.not.getrhsvar(1,'z', M, N, lA)) return + if(M.eq.0 .or. N.eq.0) then + if(.not.createvar(2,'z', 0, 0, lQ)) return + if(.not.createvar(3,'z', 0, 0, lR)) return + if(lhs.gt.2) then + if(.not.createvar(4,'d', 0, 0, lE)) return + endif + lhsvar(1)=2 + lhsvar(2)=3 + if(lhs.gt.2) then + lhsvar(3)=4 + endif + return + elseif(M.eq.-1 .or.N.eq.-1) then + err=1 + call error(271) + return + endif + if(.not.createvar(2,'z', M, min(M,N), lQ)) return + if(.not.createvar(3,'z', min(M,N), N, lR)) return + k=4 + if(lhs.gt.2) then + if(.not.createvar(4,'d', N, N, lE)) return + if(.not.createvar(5,'i', 1, N, lJPVT)) return + k=6 + endif + if(.not.createvar(k,'z', 1, min(M,N), lTAU)) return + if(.not.createvar(k+1,'d', 1, 2*N, lRWORK)) return + LWORKMIN = N + LWORK=maxvol(k+2,'z') + if(LWORK.le.LWORKMIN) then + err=2*(LWORK-LWORKMIN) + call error(17) + return + endif + if(.not.createvar(k+2,'z', 1, LWORK, lDWORK)) return + + + if(lhs.le.2) then + call ZGEQRF( M, N, zstk(lA), M, zstk(lTAU), zstk(lDWORK), + $ LWORK, INFO ) +c SUBROUTINE ZGEQRF( M, N, A, LDA, TAU, WORK, LWORK, INFO ) + else + do 5 i = 1, N + istk(lJPVT+i-1) = 0 + 5 continue + call ZGEQPF( M, N, zstk(lA), M, istk(lJPVT), zstk(lTAU), + $ zstk(lDWORK), stk(lRWORK), INFO ) +c SUBROUTINE ZGEQPF( M, N, A, LDA, JPVT, TAU, WORK, RWORK, INFO ) + endif + if(info.ne.0) then + return + endif + + call ZLACPY( 'U', min(M,N), N, zstk(lA), M, zstk(lR), min(M,N) + $ ) +c SUBROUTINE ZLACPY( UPLO, M, N, A, B, LDB ) + if(N.ge.2) then + do 20 j = 1, N-1 + if(j+1.le.min(M,N)) then + do 10 i = j+1, min(M,N) + ij = i+(j-1)*min(M,N) + zstk(lR+ij-1) = ZERO + 10 continue + endif + 20 continue + endif + + call ZLACPY( 'F', M, min(M,N), zstk(lA), M, zstk(lQ), M ) +c SUBROUTINE ZLACPY( UPLO, M, N, A, B, LDB ) + call ZUNGQR( M, min(M,N), min(M,N), zstk(lQ), M, zstk(lTAU), + $ zstk(lDWORK), LWORK, INFO ) +c SUBROUTINE ZUNGQR( M, N, K, A, LDA, TAU, WORK, LWORK, INFO ) + + if(lhs.gt.2) then + call DLASET( 'F', N, N, DZERO, DZERO, stk(lE), N ) +c SUBROUTINE DLASET( UPLO, M, N, ALPHA, BETA, A, LDA ) + do 30 j = 1, N + i = istk(lJPVT+j-1) + ij = i + (j-1)*N + stk(lE+ij-1) = ONE + 30 continue + endif + + if(lhs.le.2) then + lhsvar(1)=2 + lhsvar(2)=3 + else + lhsvar(1)=2 + lhsvar(2)=3 + lhsvar(3)=4 + endif +c + end + diff --git a/modules/linear_algebra/src/fortran/intzgeqpf4.lo b/modules/linear_algebra/src/fortran/intzgeqpf4.lo new file mode 100755 index 000000000..f59258779 --- /dev/null +++ b/modules/linear_algebra/src/fortran/intzgeqpf4.lo @@ -0,0 +1,12 @@ +# src/fortran/intzgeqpf4.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/intzgeqpf4.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/src/fortran/intzgesv3.f b/modules/linear_algebra/src/fortran/intzgesv3.f new file mode 100755 index 000000000..9a397f7af --- /dev/null +++ b/modules/linear_algebra/src/fortran/intzgesv3.f @@ -0,0 +1,142 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) INRIA +c$ +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +c$ + + subroutine intzgesv3(fname) + +c a\b + + include 'stack.h' + logical getrhsvar,createvar + logical checklhs,checkrhs + character fname*(*) + double precision ANORM, EPS, RCOND + double precision dlamch, zlange + double precision RCOND_thresh + integer vfinite + external dlamch, zlange, vfinite + intrinsic sqrt +c + minrhs=2 + maxrhs=2 + minlhs=1 + maxlhs=1 + +c + if(.not.checkrhs(fname,minrhs,maxrhs)) return + if(.not.checklhs(fname,minlhs,maxlhs)) return + + if(.not.getrhsvar(1,'z', MA, NA, lA)) return + if(.not.getrhsvar(2,'z', MB, NRHS, lB)) return + if(MB.eq.0) then + lhsvar(1) = 2 + return + endif + if(MA .ne. MB) then + call error(265) + return + endif + M = MA + N = NA + if(M.eq.0 .or. N.eq.0) then + if(.not.createvar(3,'z', 0, 0, lX)) return + lhsvar(1) = 3 + return + endif +c Check if A and B matrices contains Inf or NaN's + if (vfinite(M*N*2, zstk(lA)).eq.0) then + call error(229) + return + endif + if (vfinite(MB*NRHS*2, zstk(lB)).eq.0) then + call error(229) + return + endif + + if(.not.createvar(3,'z', M, N, lAF)) return + if(.not.createvar(4,'z', N, NRHS, lX)) return + if(.not.createvar(5,'z', max(M,N), NRHS, lXB)) return + if(.not.createvar(6,'i', 1, 1, lRANK)) return + if(.not.createvar(7,'i', 1, N, lIPIV)) return + if(.not.createvar(8,'i', 1, N, lJPVT)) return + if(.not.createvar(9,'d',1,2*N,lRWORK)) return + LWORKMIN = max( 2*N, min(M,N)+max( 2*min(M,N), N+1, + $ min(M,N)+NRHS ) ) + LWORK=maxvol(10,'z') + if(LWORK.le.LWORKMIN) then + err=2*(LWORK-LWORKMIN) + call error(17) + return + endif + if(.not.createvar(10,'z',1,LWORK,lDWORK)) return + + EPS = dlamch('eps') + RCOND_thresh=EPS*10 + ANORM = zlange( '1', M, N, zstk(lA), M, zstk(lDWORK) ) +c + if(M.eq.N) then +c +c M = N +c + call ZLACPY( 'F', N, N, zstk(lA), N, zstk(lAF), N ) +c SUBROUTINE ZLACPY( UPLO, M, N, A, LDA, B, LDB ) + call ZLACPY( 'F', N, NRHS, zstk(lB), N, zstk(lXB), N ) +c SUBROUTINE ZLACPY( UPLO, M, N, A, LDA, B, LDB ) + call ZGETRF( N, N, zstk(lAF), N, istk(lIPIV), INFO ) +c SUBROUTINE ZGETRF( N, N, A, LDA, IPIV, INFO ) + if(INFO.eq.0) then + call ZGECON( '1', N, zstk(lAF), N, ANORM, RCOND, + $ zstk(lDWORK), stk(lRWORK), INFO ) +c SUBROUTINE ZGECON( NORM, N, A, LDA, ANORM, RCOND, WORK, +c $ RWORK, INFO ) + if(RCOND.gt.RCOND_thresh) then + call ZGETRS( 'N', N, NRHS, zstk(lAF), N, istk(lIPIV), + $ zstk(lXB), N, INFO ) +c SUBROUTINE ZGETRS( TRANS, N, NRHS, A, LDA, IPIV, +c B, LDB, INFO ) + call ZLACPY( 'F', N, NRHS, zstk(lXB), N, zstk(lX), N ) +c SUBROUTINE ZLACPY( UPLO, M, N, A, LDA, B, LDB ) + lhsvar(1) = 4 + return + else +c . ill conditioned problem + call writebufzgesv3(buf,RCOND) + call msgs(5,1) + endif + endif + endif +c +c M.ne.N or A singular +c + RCOND = RCOND_thresh + call ZLACPY( 'F', M, NRHS, zstk(lB), M, zstk(lXB), max(M,N) ) +c SUBROUTINE ZLACPY( UPLO, M, N, A, LDA, B, LDB ) + do 10 i = 1, N + istk(lJPVT+i-1) = 0 + 10 continue + info = 1 + call ZGELSY1( M, N, NRHS, zstk(lA), M, zstk(lXB), max(M,N), + $ istk(lJPVT), RCOND, istk(lRANK), zstk(lDWORK), + $ LWORK, stk(lRWORK), INFO ) +c SUBROUTINE ZGELSY1( M, N, NRHS, A, LDA, B, LDB, JPVT, RCOND, +c $ RANK, WORK, LWORK, RWORK, INFO ) + if(info.ne.0) then + return + endif + if( M.ne.N .and. istk(lRANK).lt.min(M,N) )then + call msgs(9,istk(lRANK)) + endif + call ZLACPY( 'F', N, NRHS, zstk(lXB), max(M,N), zstk(lX), N ) +c SUBROUTINE ZLACPY( UPLO, M, N, A, LDA, B, LDB ) + + lhsvar(1)=4 + return +c + end + diff --git a/modules/linear_algebra/src/fortran/intzgesv3.lo b/modules/linear_algebra/src/fortran/intzgesv3.lo new file mode 100755 index 000000000..bf68832cf --- /dev/null +++ b/modules/linear_algebra/src/fortran/intzgesv3.lo @@ -0,0 +1,12 @@ +# src/fortran/intzgesv3.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/intzgesv3.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/src/fortran/intzgesv4.f b/modules/linear_algebra/src/fortran/intzgesv4.f new file mode 100755 index 000000000..10923893e --- /dev/null +++ b/modules/linear_algebra/src/fortran/intzgesv4.f @@ -0,0 +1,173 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) INRIA +c Copyright (C) 2013 - 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 +c$ + subroutine intzgesv4(fname) + +c a/b + + include 'stack.h' + logical getrhsvar,createvar + logical checklhs,checkrhs + character fname*(*) + double precision ANORM, EPS, RCOND + double precision RCONDthresh + double precision dlamch, zlange + integer vfinite + external dlamch, zlange, vfinite + intrinsic conjg, sqrt +c + minrhs=2 + maxrhs=2 + minlhs=1 + maxlhs=1 +c + if(.not.checkrhs(fname,minrhs,maxrhs)) return + if(.not.checklhs(fname,minlhs,maxlhs)) return + + + if(.not.getrhsvar(1,'z', MB, NB, lB)) return + if(.not.getrhsvar(2,'z', MA, NA, lA)) return + if(MB .eq. 0) then +c . for backwar compatibility + lhsvar(1) = 1 + return + endif + if(NA .ne. NB) then + call error(266) + return + endif + M = MA + N = NA + K = MB + if(M.eq.0 .or. N.eq.0) then + if(.not.createvar(3,'z', 0, 0, lX)) return + lhsvar(1) = 3 + return + endif +c Check if A and B matrices contains Inf or NaN's + if (vfinite(M*N*2, zstk(lA)).eq.0) then + call error(229) + return + endif + if (vfinite(MB*NB*2, zstk(lB)).eq.0) then + call error(229) + return + endif + if(.not.createvar(3,'z', N, M, lAF)) return + if(.not.createvar(4,'z', K, M, lX)) return + if(.not.createvar(5,'z', N, M, lAT)) return + if(.not.createvar(6,'z', max(M,N), K, lBT)) return + if(.not.createvar(7,'i', 1, 1, lRANK)) return + if(.not.createvar(8,'i', 1, N, lIPIV)) return + if(.not.createvar(9,'i', 1, M, lJPVT)) return + if(.not.createvar(10,'d',1,2*M,lRWORK)) return + LWORKMIN = max( 2*N, min(M,N)+max( 2*min(M,N), M+1, + $ min(M,N)+K )) + LWORK=maxvol(11,'z') + if(LWORK.le.LWORKMIN) then + err=2*(LWORK-LWORKMIN) + call error(17) + return + endif + if(.not.createvar(11,'z',1,LWORK,lDWORK)) return + EPS = dlamch('eps') + RCOND_thresh=EPS*10 + ANORM = zlange( '1', M, N, zstk(lA), M, zstk(lDWORK) ) +c +c Transpose A and B +c + do 20 j = 1, M + do 10 i = 1, N + ij = i+(j-1)*N + ji = j+(i-1)*M + zstk(lAT+ij-1) = conjg( zstk(lA+ji-1) ) + 10 continue + 20 continue + do 40 j = 1, K + do 30 i = 1, N + ij = i+(j-1)*max(M,N) + ji = j+(i-1)*K + zstk(lBT+ij-1) = conjg( zstk(lB+ji-1) ) + 30 continue + 40 continue +c + if(M.eq.N) then +c +c M = N +c + call ZLACPY( 'F', N, N, zstk(lAT), N, zstk(lAF), N ) +c SUBROUTINE ZLACPY( UPLO, M, N, A, LDA, B, LDB ) + call ZGETRF( N, N, zstk(lAF), N, istk(lIPIV), INFO ) +c SUBROUTINE ZGETRF( N, N, A, LDA, IPIV, INFO ) + RCOND = 0.0d0 + if(INFO.eq.0) then + call ZGECON( '1', N, zstk(lAF), N, ANORM, RCOND, + $ zstk(lDWORK), stk(lRWORK), INFO ) +c SUBROUTINE ZGECON( NORM, N, A, LDA, ANORM, RCOND, WORK, +c $ RWORK, INFO ) + if(RCOND.gt.RCOND_thresh) then + call ZGETRS( 'N', N, K, zstk(lAF), N, istk(lIPIV), + $ zstk(lBT), N, INFO ) +c SUBROUTINE ZGETRS( TRANS, N, NRHS, A, LDA, IPIV, +c B, LDB, INFO ) +c +c Back transpose X +c + do 60 j = 1, N + do 50 i = 1, K + ij = i+(j-1)*K + ji = j+(i-1)*N + zstk(lX+ij-1) = conjg( zstk(lBT+ji-1) ) + 50 continue + 60 continue + lhsvar(1) = 4 + return + endif + endif + call writebufzgesv4(buf,RCOND) +c . ill conditionned problem + call msgs(5,1) + endif +c +c M.ne.N or A singular +c + RCOND = RCOND_thresh + do 70 i = 1, M + istk(lJPVT+i-1) = 0 + 70 continue + info = 1 + call ZGELSY1( N, M, K, zstk(lAT), N, zstk(lBT), max(M,N), + $ istk(lJPVT), RCOND, istk(lRANK), zstk(lDWORK), + $ LWORK, stk(lRWORK), INFO ) +c SUBROUTINE ZGELSY1( M, N, NRHS, A, LDA, B, LDB, JPVT, RCOND, +c $ RANK, WORK, LWORK, RWORK, INFO ) + if(info.ne.0) then + return + endif + if( M.ne.N .and. istk(lRANK).lt.min(M,N) )then + call msgs(9,istk(lRANK)) + endif +c +c Back transpose X +c + do 90 j = 1, M + do 80 i = 1, K + ij = i+(j-1)*K + ji = j+(i-1)*max(M,N) + zstk(lX+ij-1) = conjg( zstk(lBT+ji-1) ) + 80 continue + 90 continue + + lhsvar(1)=4 + return +c + end + + diff --git a/modules/linear_algebra/src/fortran/intzgesv4.lo b/modules/linear_algebra/src/fortran/intzgesv4.lo new file mode 100755 index 000000000..b665c5536 --- /dev/null +++ b/modules/linear_algebra/src/fortran/intzgesv4.lo @@ -0,0 +1,12 @@ +# src/fortran/intzgesv4.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/intzgesv4.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/src/fortran/intzgesvd1.f b/modules/linear_algebra/src/fortran/intzgesvd1.f new file mode 100755 index 000000000..34736b5f3 --- /dev/null +++ b/modules/linear_algebra/src/fortran/intzgesvd1.f @@ -0,0 +1,138 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) INRIA +c$ +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +c$ + + subroutine intzgesvd1(fname) + +c [U,S,V]=svd(A) +c s = svd(A) + + include 'stack.h' + logical getrhsvar,createvar + logical checklhs,checkrhs + integer vfinite + + character fname*(*) + character JOBU, JOBVT + double precision ZERO + complex*16 void + + parameter ( ZERO=0.0D0 ) + intrinsic conjg + + minrhs=1 + maxrhs=1 + minlhs=1 + maxlhs=3 +c + if(.not.checkrhs(fname,minrhs,maxrhs)) return + if(.not.checklhs(fname,minlhs,maxlhs)) return + + if(.not.getrhsvar(1,'z', M, N, lA)) return + if(M.eq.0) then + if(lhs.eq.1) then + lhsvar(1) = 1 + return + else if(lhs.eq.2) then + if(.not.createvar(2,'d', N, N, lS)) return + lhsvar(1) = 1 + lhsvar(2) = 2 + return + else if(lhs.eq.3) then + if(.not.createvar(2,'d', M, N, lS)) return + if(.not.createvar(3,'d', N, N, lV)) return + lhsvar(1) = 1 + lhsvar(2) = 2 + lhsvar(3) = 3 + return + endif + elseif(M.eq.-1 .or.N.eq.-1) then + err=1 + call error(271) + return + endif + if(vfinite(M*N*2,zstk(lA)).eq.0) then + err=1 + call error(264) + return + endif + if(.not.createvar(2,'d', min(M,N), 1, lSV)) return + k = 3 + if(lhs.gt.1) then + if(.not.createvar(3,'z', M, M, lU)) return + if(.not.createvar(4,'d', M, N, lS)) return + if(.not.createvar(5,'z', N, N, lV)) return + if(.not.createvar(6,'z', N, N, lVT)) return + k = 7 + endif + LRWRK = max(3*min(M,N),5*min(M,N)-4) + if(.not.createvar(k,'d',1,LRWRK,lRWORK)) return + LWORKMIN = 2*min(M,N)+max(M,N) + LWORK=maxvol(k+1,'z') + if(LWORK.le.LWORKMIN) then + err=2*(LWORK-LWORKMIN) + call error(17) + return + endif + if(.not.createvar(k+1,'z',1,LWORK,lDWORK)) return + + JOBU = 'N' + JOBVT = 'N' + if(lhs.gt.1) then + JOBU = 'A' + JOBVT = 'A' + endif + if(lhs.eq.1) then + call ZGESVD( JOBU, JOBVT, M, N, zstk(lA), M, stk(lSV), void + $ ,M, void, N, zstk(lDWORK), LWORK, stk(lRWORK), INFO ) +c SUBROUTINE ZGESVD( JOBU, JOBVT, M, N, A, LDA, S, U, LDU, VT, +C $ LDVT, WORK, LWORK, RWORK, INFO ) +C Next lines introduced to patch an error of ZGESVD + do 01 ii = 0,min(M,N)-1 + stk(lSV+ii)=abs(stk(lSV+ii)) + 01 continue + call DLASRT('D', min(M,N), stk(lSV), INFO ) + else + call ZGESVD( JOBU, JOBVT, M, N, zstk(lA), M, stk(lSV), zstk(lU) + $ ,M, zstk(lVT), N, zstk(lDWORK), LWORK, stk(lRWORK), INFO ) +c SUBROUTINE ZGESVD( JOBU, JOBVT, M, N, A, LDA, S, U, LDU, VT, +C $ LDVT, WORK, LWORK, RWORK, INFO ) + endif + if(info.ne.0) then + if(info.gt.0) call error(24) + return + endif + + if(lhs.gt.1) then + call DLASET( 'F', M, N, ZERO, ZERO, stk(lS), M ) +c SUBROUTINE DLASET( UPLO, M, N, ALPHA, BETA, A, LDA ) + + do 10 i = 1, min(M,N) + ii = i+(i-1)*M + stk(lS+ii-1) = stk(lSV+i-1) + 10 continue + do 30 j = 1, N + do 20 i = j, N + ij = i+(j-1)*N + ji = j+(i-1)*N + zstk(lV+ij-1) = conjg(zstk(lVT+ji-1)) + zstk(lV+ji-1) = conjg(zstk(lVT+ij-1)) + 20 continue + 30 continue + endif + + if(lhs.eq.1) then + lhsvar(1) = 2 + else + lhsvar(1)=3 + lhsvar(2)=4 + lhsvar(3)=5 + endif +c + end diff --git a/modules/linear_algebra/src/fortran/intzgesvd1.lo b/modules/linear_algebra/src/fortran/intzgesvd1.lo new file mode 100755 index 000000000..5c2adbdf3 --- /dev/null +++ b/modules/linear_algebra/src/fortran/intzgesvd1.lo @@ -0,0 +1,12 @@ +# src/fortran/intzgesvd1.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/intzgesvd1.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/src/fortran/intzgesvd2.f b/modules/linear_algebra/src/fortran/intzgesvd2.f new file mode 100755 index 000000000..1c8d16b52 --- /dev/null +++ b/modules/linear_algebra/src/fortran/intzgesvd2.f @@ -0,0 +1,137 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) INRIA +c$ +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +c$ + + subroutine intzgesvd2(fname) + +c [U,S,V]=svd(A) +c s = svd(A) + + include 'stack.h' + logical getrhsvar,createvar + logical checklhs,checkrhs + integer vfinite + + character fname*(*) + character JOBU, JOBVT + double precision ZERO + parameter ( ZERO=0.0D0 ) + intrinsic conjg + + minrhs=2 + maxrhs=2 + minlhs=1 + maxlhs=3 +c + if(.not.checkrhs(fname,minrhs,maxrhs)) return + if(.not.checklhs(fname,minlhs,maxlhs)) return + + if(.not.getrhsvar(1,'z', M, N, lA)) return + if(M.eq.0) then + if(lhs.eq.1) then + lhsvar(1) = 1 + return + else if(lhs.eq.2) then + if(.not.createvar(2,'d', N, N, lS)) return + lhsvar(1) = 1 + lhsvar(2) = 2 + return + else if(lhs.eq.3) then + if(.not.createvar(2,'d', M, N, lS)) return + if(.not.createvar(3,'d', N, N, lV)) return + lhsvar(1) = 1 + lhsvar(2) = 2 + lhsvar(3) = 3 + return + endif + elseif(M.eq.-1 .or.N.eq.-1) then + err=1 + call error(271) + return + endif + if(vfinite(M*N*2,zstk(lA)).eq.0) then + err=1 + call error(264) + return + endif + if(.not.createvar(2,'d', min(M,N), 1, lSV)) return + k = 3 + if(lhs.gt.1) then + if(.not.createvar(3,'z', M, min(M,N), lU)) return + if(.not.createvar(4,'d', min(M,N), min(M,N), lS)) return + if(.not.createvar(5,'z', N, min(M,N), lV)) return + if(.not.createvar(6,'z', min(M,N), N, lVT)) return + k = 7 + endif + LRWRK = 5*min(M,N) + if(.not.createvar(k,'d',1,LRWRK,lRWORK)) return + LWORKMIN = 2*min(M,N)+max(M,N) + LWORK=maxvol(k+1,'z') + if(LWORK.le.LWORKMIN) then + err=2*(LWORK-LWORKMIN) + call error(17) + return + endif + if(.not.createvar(k+1,'z',1,LWORK,lDWORK)) return + + JOBU = 'N' + JOBVT = 'N' + if(lhs.gt.1) then + JOBU = 'S' + JOBVT = 'S' + endif + if(lhs.eq.1) then + call ZGESVD( JOBU, JOBVT, M, N, zstk(lA), M, stk(lSV), zstk(lA) + $ ,M, zstk(lA), N, zstk(lDWORK), LWORK, stk(lRWORK), INFO ) +c SUBROUTINE ZGESVD( JOBU, JOBVT, M, N, A, LDA, S, U, LDU, VT, +C $ LDVT, WORK, LWORK, RWORK, INFO ) +C Next lines introduced to patch an error of ZGESVD + do 01 ii = 0,min(M,N)-1 + stk(lSV+ii)=abs(stk(lSV+ii)) + 01 continue + call DLASRT('D', min(M,N), stk(lSV), INFO ) + else + call ZGESVD( JOBU, JOBVT, M, N, zstk(lA), M, stk(lSV), zstk(lU) + $ ,M, zstk(lVT), min(M,N), zstk(lDWORK), LWORK, stk(lRWORK) + $ ,INFO ) +c SUBROUTINE ZGESVD( JOBU, JOBVT, M, N, A, LDA, S, U, LDU, VT, +C $ LDVT, WORK, LWORK, RWORK, INFO ) + endif + if(info.ne.0) then + if(info.gt.0) call error(24) + return + endif + + if(lhs.gt.1) then + call DLASET( 'F', min(M,N), min(M,N), ZERO, ZERO, stk(lS), + $ min(M,N) ) +c SUBROUTINE DLASET( UPLO, M, N, ALPHA, BETA, A, LDA ) + + do 10 i = 1, min(M,N) + ii = i+(i-1)*min(M,N) + stk(lS+ii-1) = stk(lSV+i-1) + 10 continue + do 30 j = 1, min(M,N) + do 20 i = 1, N + ij = i+(j-1)*N + ji = j+(i-1)*min(M,N) + zstk(lV+ij-1) = conjg(zstk(lVT+ji-1)) + 20 continue + 30 continue + endif + + if(lhs.eq.1) then + lhsvar(1) = 2 + else + lhsvar(1)=3 + lhsvar(2)=4 + lhsvar(3)=5 + endif +c + end diff --git a/modules/linear_algebra/src/fortran/intzgesvd2.lo b/modules/linear_algebra/src/fortran/intzgesvd2.lo new file mode 100755 index 000000000..37501bf5f --- /dev/null +++ b/modules/linear_algebra/src/fortran/intzgesvd2.lo @@ -0,0 +1,12 @@ +# src/fortran/intzgesvd2.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/intzgesvd2.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/src/fortran/intzgetrf.f b/modules/linear_algebra/src/fortran/intzgetrf.f new file mode 100755 index 000000000..d5cacce20 --- /dev/null +++ b/modules/linear_algebra/src/fortran/intzgetrf.f @@ -0,0 +1,126 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) INRIA +c$ +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +c$ + subroutine intzgetrf(fname) + +c [L,U,E] = lu(A) + + include 'stack.h' + logical getrhsvar,createvar + logical checklhs,checkrhs + character fname*(*) + double precision ZERO, ONE + parameter ( ZERO = 0.0D0, ONE = 1.0D0 ) + complex*16 CZERO, CONE + parameter ( CZERO = (0.0D0,0.0D0), CONE = (1.0D0,0.0D0) ) +c + minrhs=1 + maxrhs=1 + minlhs=2 + maxlhs=3 +c + if(.not.checkrhs(fname,minrhs,maxrhs)) return + if(.not.checklhs(fname,minlhs,maxlhs)) return + + if(.not.getrhsvar(1,'z', M, N, lA)) return + if(M.eq.0 .or.N.eq.0) then + lhsvar(1) = 1 + if(.not.createvar(2,'d',0,0,lL)) return + lhsvar(2) = 2 + if(lhs.eq.3) then + if(.not.createvar(3,'d',0,0,lE)) return + lhsvar(3) = 3 + endif + return + elseif (M.eq.-1 .or.N.eq.-1) then + lhsvar(1) = 1 + if(.not.createvar(2,'z',-1,-1,lL)) return + zstk(lL)=zstk(lA) + zstk(lA)=CONE + lhsvar(2) = 2 + if(lhs.eq.3) then + if(.not.createvar(3,'z',-1,-1,lE)) return + zstk(lE)=CONE + lhsvar(3) = 3 + endif + return + endif + if(.not.createvar(2,'z',M,min(M,N),lL)) return + if(.not.createvar(3,'z',min(M,N),N,lU)) return + if(.not.createvar(4,'i',1,min(M,N),lIPIV)) return + if(.not.createvar(5,'d',M,M,lE)) return + if(lhs.eq.2) then + if(.not.createvar(6,'i',1,M,lIW)) return + if(.not.createvar(7,'z',M,min(M,N),lW)) return + endif + + call ZGETRF( M, N, zstk(lA), M, istk(lIPIV), INFO ) +c SUBROUTINE ZGETRF( M, N, A, LDA, IPIV, INFO ) + if(info.lt.0) then + return + endif + + do 20 j=1,min(M,N) + do 10 i=1,M + ij = i+(j-1)*M + if(i.eq.j) then + zstk(lL+ij-1) = CONE + else if(i.gt.j) then + zstk(lL+ij-1) = zstk(lA+ij-1) + else if(i.lt.j) then + zstk(lL+ij-1) = CZERO + endif + 10 continue + 20 continue + do 40 j=1,N + do 30 i=1,min(M,N) + ij1 = i+(j-1)*min(M,N) + ij2 = i+(j-1)*M + if(i.gt.j) then + zstk(lU+ij1-1) = CZERO + else if(i.le.j) then + zstk(lU+ij1-1) = zstk(lA+ij2-1) + endif + 30 continue + 40 continue + + if(lhs.eq.2) then +c form E'*L + do 41 i = 1, M + istk(lIW-1+i)=i + 41 continue + do 42 i = 1, min(M,N) + ip = istk(lIPIV-1+i) + if( ip.ne.i ) then + iw=istk(lIw-1+i) + istk(lIW-1+i)=istk(lIW-1+ip) + istk(lIW-1+ip)=iw + endif + 42 continue + do 43 i= 1, M + ip =istk(lIW-1+i) + call zcopy(N,zstk(lL-1+i),M,zstk(lW-1+ip),M) + 43 continue + lhsvar(1)=7 + lhsvar(2)=3 + else + call DLASET( 'F', M, M, ZERO, ONE, stk(lE), M ) +c SUBROUTINE DLASET( UPLO, M, N, ALPHA, BETA, A, LDA ) + call DLASWP( M, stk(lE), M, 1, min(M,N), istk(lIPIV), 1 ) +c SUBROUTINE DLASWP( N, A, LDA, K1, K2, IPIV, INCX ) + lhsvar(1)=2 + lhsvar(2)=3 + lhsvar(3)=5 + endif + + + +c + return + end diff --git a/modules/linear_algebra/src/fortran/intzgetrf.lo b/modules/linear_algebra/src/fortran/intzgetrf.lo new file mode 100755 index 000000000..55290777a --- /dev/null +++ b/modules/linear_algebra/src/fortran/intzgetrf.lo @@ -0,0 +1,12 @@ +# src/fortran/intzgetrf.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/intzgetrf.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/src/fortran/intzgetri.f b/modules/linear_algebra/src/fortran/intzgetri.f new file mode 100755 index 000000000..99ab1f209 --- /dev/null +++ b/modules/linear_algebra/src/fortran/intzgetri.f @@ -0,0 +1,84 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) INRIA +c$ +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +c$ + subroutine intzgetri(fname) + +c B = inv(A) + + include 'stack.h' + logical getrhsvar,createvar + logical checklhs,checkrhs + double precision zlange,dlamch,rcond,anorm + external zlange,dlamch + + character fname*(*) +c + minrhs=1 + maxrhs=1 + minlhs=1 + maxlhs=1 +c + if(.not.checkrhs(fname,minrhs,maxrhs)) return + if(.not.checklhs(fname,minlhs,maxlhs)) return + + if(.not.getrhsvar(1,'z', M, N, lA)) return + if(m.ne.n) then + err=1 + call error(20) + return + endif + if(n.eq.0) then + lhsvar(1) = 1 + return + + elseif(n.eq.-1) then + stk(lA)=1.0d0/stk(lA) + lhsvar(1) = 1 + return + endif + if(.not.createvar(2,'i',1,N,lIPIV)) return + if(.not.createvar(3,'d',1,2*N,lRWORK)) return + LWORKMIN = MAX(1,2*N) + LWORK=maxvol(4,'z') + if(LWORK.le.LWORKMIN) then + err=2*(LWORK-LWORKMIN) + call error(17) + return + endif + if(.not.createvar(4,'z',1,LWORK,lDWORK)) return + + ANORM = zlange( '1', M, N, zstk(lA), M, zstk(lDWORK) ) + + call ZGETRF( N, N, zstk(lA), N, istk(lIPIV), INFO ) +c SUBROUTINE ZGETRF( M, N, A, LDA, IPIV, INFO ) + if(info.gt.0) then + call error(19) + return + elseif (info.lt.0) then + return + endif + RCOND = 0.0d0 + + call ZGECON( '1', N, zstk(lA), N, ANORM, RCOND, zstk(lDWORK), + $ stk(lRWORK), INFO ) + if(RCOND.le.sqrt(dlamch('eps'))) then + call writebufzgetri(buf,RCOND) +c . ill conditionned problem + call msgs(5,0) + endif + + call ZGETRI( N, zstk(lA), N, istk(lIPIV), zstk(lDWORK), + $ LWORK, INFO ) +c SUBROUTINE ZGETRI( N, A, LDA, IPIV, WORK, LWORK, INFO ) + + lhsvar(1)=1 + +c + end + diff --git a/modules/linear_algebra/src/fortran/intzgetri.lo b/modules/linear_algebra/src/fortran/intzgetri.lo new file mode 100755 index 000000000..040b929ca --- /dev/null +++ b/modules/linear_algebra/src/fortran/intzgetri.lo @@ -0,0 +1,12 @@ +# src/fortran/intzgetri.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/intzgetri.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/src/fortran/intzggbal.f b/modules/linear_algebra/src/fortran/intzggbal.f new file mode 100755 index 000000000..9560fe5c8 --- /dev/null +++ b/modules/linear_algebra/src/fortran/intzggbal.f @@ -0,0 +1,89 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) INRIA +c$ +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +c$ + subroutine intzggbal(fname) +c [Ab,Bb,X,Y]=balanc(A,B) + + include 'stack.h' + logical getrhsvar,createvar + logical checklhs,checkrhs +c integer vfinite + character JOB + + character fname*(*) + double precision ZERO, ONE + parameter ( ZERO=0.0D0, ONE=1.0D0 ) + + minrhs=2 + maxrhs=2 + minlhs=4 + maxlhs=4 +c + if(.not.checkrhs(fname,minrhs,maxrhs)) return + if(.not.checklhs(fname,minlhs,maxlhs)) return + + if(.not.getrhsvar(1,'z', MA, NA, lA)) return + if(MA.ne.NA) then + err=1 + call error(20) + return + endif + if(.not.getrhsvar(2,'z', MB, NB, lB)) return + if(MB.ne.NB) then + err=2 + call error(20) + return + endif + if(MA.ne.NB) then + call error(267) + return + endif + N = MA + if(N.eq.0) then + if(.not.createvar(3,'d', N, N, lX)) return + if(.not.createvar(4,'d', N, N, lY)) return + lhsvar(1)=1 + lhsvar(2)=2 + lhsvar(3)=3 + lhsvar(4)=4 + return + elseif(N.eq.-1) then + err=1 + call error(271) + return + endif + if(.not.createvar(3,'d', N, N, lX)) return + if(.not.createvar(4,'d', N, N, lY)) return + if(.not.createvar(5,'d', 1, N, lLSCALE)) return + if(.not.createvar(6,'d', 1, N, lRSCALE)) return + if(.not.createvar(7,'d', 1, N*6, lWORK)) return + + +c SUBROUTINE ZGGBAL( JOB, N, A, LDA, B, LDB, ILO, IHI, LSCALE, +c $ RSCALE, WORK, INFO ) + JOB='B' + call ZGGBAL(JOB, N, zstk(lA), N, zstk(lB), N, ILO, IHI, + $ stk(lLSCALE), stk(lRSCALE), stk(lWORK), INFO ) + +c + call DLASET( 'F', N, N, ZERO, ONE, stk(lX), N ) + call DLASET( 'F', N, N, ZERO, ONE, stk(lY), N ) + + call DGGBAK(JOB, 'L', N, ILO, IHI, stk(lLSCALE), stk(lRSCALE), N, + $ stk(lX), N, INFO ) + call DGGBAK(JOB, 'R', N, ILO, IHI, stk(lLSCALE), stk(lRSCALE), N, + $ stk(lY), N, INFO ) + + + lhsvar(1)=1 + lhsvar(2)=2 + lhsvar(3)=3 + lhsvar(4)=4 +c + end diff --git a/modules/linear_algebra/src/fortran/intzggbal.lo b/modules/linear_algebra/src/fortran/intzggbal.lo new file mode 100755 index 000000000..416fb3f90 --- /dev/null +++ b/modules/linear_algebra/src/fortran/intzggbal.lo @@ -0,0 +1,12 @@ +# src/fortran/intzggbal.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/intzggbal.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/src/fortran/intzgges.f b/modules/linear_algebra/src/fortran/intzgges.f new file mode 100755 index 000000000..b78382c6e --- /dev/null +++ b/modules/linear_algebra/src/fortran/intzgges.f @@ -0,0 +1,127 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) INRIA +c$ +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +c$ + subroutine intzgges(fname) + +c [AS,BS,VSL,VSR]=gschur(A,B) +c [AS,BS]=gschur(A,B) + + include 'stack.h' + logical getrhsvar,createvar + logical checklhs,checkrhs + + + character fname*(*) + character JOBVSL, JOBVSR, SORT + logical voiddummy + external voiddummy + + minrhs=2 + maxrhs=2 + minlhs=2 + maxlhs=4 +c + if(.not.checkrhs(fname,minrhs,maxrhs)) return + if(.not.checklhs(fname,minlhs,maxlhs)) return + + if(.not.getrhsvar(1,'z', MA, NA, lA)) return + if(MA.ne.NA) then + err=1 + call error(20) + return + endif + if(.not.getrhsvar(2,'z', MB, NB, lB)) return + if(MB.ne.NB) then + err=2 + call error(20) + return + endif + if(MA.ne.NB) then + call error(267) + return + endif + N = MA + if(N.eq.0) then + lhsvar(1)=1 + lhsvar(2)=2 + if(lhs.eq.4) then + if(.not.createvar(3,'d', N, N, lVSL)) return + if(.not.createvar(4,'d', N, N, lVSR)) return + lhsvar(3)=3 + lhsvar(4)=4 + endif + return + elseif(N.eq.-1) then + err=1 + call error(271) + return + endif + if(.not.createvar(3,'i', 1, 1, lSDIM)) return + if(.not.createvar(4,'z', N, 1, lALPHA)) return + if(.not.createvar(5,'z', N, 1, lBETA)) return + K = 6 + if(lhs.eq.4) then + if(.not.createvar(6,'z', N, N, lVSL)) return + if(.not.createvar(7,'z', N, N, lVSR)) return + k = 8 + endif + if(.not.createvar(k,'d', 8*N, 1, lRWORK)) return + k=k+1 + if(.not.createvar(k,'i', 2*N, 1, lBWORK)) return + LWORKMIN = 2*N + LWORK=maxvol(k+1,'z') + if(LWORK.le.LWORKMIN) then + err=2*(LWORK-LWORKMIN) + call error(17) + return + endif + if(.not.createvar(k+1,'z',1,LWORK,lDWORK)) return + + + if(lhs.eq.2) then + JOBVSL = 'N' + JOBVSR = 'N' + lVSL = lDWORK + lVSR = lDWORK + else + JOBVSL = 'V' + JOBVSR = 'V' + endif + SORT = 'N' + call ZGGES( JOBVSL, JOBVSR, SORT, voiddummy, N, + $ zstk(lA), N, + $ zstk(lB), N, istk(lSDIM), zstk(lALPHA), zstk(lBETA), + $ zstk(lVSL), N, zstk(lVSR), N, zstk(lDWORK), LWORK, + $ stk(lRWORK), istk(lBWORK), INFO ) +c SUBROUTINE ZGGES( JOBVSL, JOBVSR, SORT, DELCTG, N, A, LDA, B, LDB, +c $ SDIM, ALPHA, BETA, VSL, LDVSL, VSR, LDVSR, WORK, LWORK, RWORK +c , +c $ BWORK, INFO ) + if(info.gt.0) then + if(info.le.N) then + call msgs(1,info) + elseif(info.eq.N+1) then + call error(24) + return + endif + endif + + if(lhs.eq.2) then + lhsvar(1)=1 + lhsvar(2)=2 + else + lhsvar(1)=1 + lhsvar(2)=2 + lhsvar(3)=6 + lhsvar(4)=7 + endif +c + end + + diff --git a/modules/linear_algebra/src/fortran/intzgges.lo b/modules/linear_algebra/src/fortran/intzgges.lo new file mode 100755 index 000000000..14c22de25 --- /dev/null +++ b/modules/linear_algebra/src/fortran/intzgges.lo @@ -0,0 +1,12 @@ +# src/fortran/intzgges.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/intzgges.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/src/fortran/intzgschur.f b/modules/linear_algebra/src/fortran/intzgschur.f new file mode 100755 index 000000000..61536f663 --- /dev/null +++ b/modules/linear_algebra/src/fortran/intzgschur.f @@ -0,0 +1,211 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) INRIA +c$ +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +c$ + + subroutine intzgschur(fname) + + +c [As,Bs,VSR,dim]=gschur(A,B,'function') +c [VSR,dim]=gschur(A,B,'function') + + include 'stack.h' + logical getrhsvar,createvar + logical checklhs,checkrhs + + + character fname*(*) + character JOBVSL, JOBVSR, SORT + integer gzhsel + external gzhsel + + minrhs=3 + maxrhs=3 + minlhs=1 + maxlhs=4 +c + if(.not.checkrhs(fname,minrhs,maxrhs)) return + if(.not.checklhs(fname,minlhs,maxlhs)) return + + + if(.not.getrhsvar(1,'z', MA, NA, lA)) return + if(MA.ne.NA) then + err=1 + call error(20) + return + endif + if(.not.getrhsvar(2,'z', MB, NB, lB)) return + if(MB.ne.NB) then + err=2 + call error(20) + return + endif + if(MA.ne.NB) then + call error(267) + return + endif + N = MA + if(N.eq.0) then + lhsvar(1)=1 + if(lhs.eq.2) then + if(.not.createvar(2,'d', 1, 1, lSDIM)) return + stk(lSDIM)=0.0d0 + lhsvar(2)=2 + elseif(lhs.eq.3) then + if(.not.createvar(3,'d', 1, 1, lSDIM)) return + stk(lSDIM)=0.0d0 + lhsvar(2)=2 + lhsvar(3)=3 + else + if(.not.createvar(3,'d', N, N, lVSR)) return + if(.not.createvar(4,'d', 1, 1, lSDIM)) return + stk(lSDIM)=0.0d0 + lhsvar(2)=2 + lhsvar(3)=3 + lhsvar(4)=4 + endif + return + elseif(N.eq.-1) then + err=1 + call error(271) + return + endif + if(.not.getrhsvar(3,'c', mr, mc, lc)) return + call setgzhsel(mr*mc, cstk(lc:lc+mr*mc),irep) + if ( irep.eq.1) then + buf = cstk(lc:lc+mr*mc) + call error(50) + return + endif + if(.not.createvar(4,'i', 1, 1, lSDIM)) return + if(.not.createvar(5,'z', N, 1, lALPHA)) return + if(.not.createvar(6,'z', N, 1, lBETA)) return + if(.not.createvar(7,'z', N, N, lVSL)) return + if(.not.createvar(8,'z', N, N, lVSR)) return + if(.not.createvar(9,'d', 8*N, 1, lRWORK)) return + if(.not.createvar(10,'i', 2*N, 1, lBWORK)) return + LWORKMIN = 2*N + LWORK=maxvol(11,'z') + if(LWORK.le.LWORKMIN) then + err=2*(LWORK-LWORKMIN) + call error(17) + return + endif + if(.not.createvar(11,'z',1,LWORK,lDWORK)) return + + JOBVSL = 'V' + JOBVSR = 'V' + SORT = 'S' + + call ZGGES( JOBVSL, JOBVSR, SORT, gzhsel, N, zstk(lA), N, + $ zstk(lB), N, istk(lSDIM), zstk(lALPHA), zstk(lBETA), + $ zstk(lVSL), N, zstk(lVSR), N, zstk(lDWORK), LWORK, + $ stk(lRWORK), istk(lBWORK), INFO ) +c SUBROUTINE ZGGES( JOBVSL, JOBVSR, SORT, DELCTG, N, A, LDA, B, LDB, +c $ SDIM, ALPHA, BETA, VSL, LDVSL, VSR, LDVSR, WORK, LWORK, RWORK +c , +c $ BWORK, INFO ) + if(info.gt.0) then + if(info.le.N) then + call msgs(1,info) + elseif(info.eq.N+1) then + call error(24) + return + elseif(info.eq.N+2) then + call msgs(103,0) + elseif(info.eq.N+3) then + buf='reordering failed' + call error(1002) + return + endif + endif + + if(lhs.eq.1) then + lhsvar(1)=4 + elseif(lhs.eq.2) then + lhsvar(1)=8 + lhsvar(2)=4 + elseif(lhs.eq.3) then + lhsvar(1)=7 + lhsvar(2)=8 + lhsvar(3)=4 + else if(lhs.eq.4) then + lhsvar(1)=1 + lhsvar(2)=2 + lhsvar(3)=8 + lhsvar(4)=4 + endif + + end + + + + + logical function scigshur(alphar,alphai,beta) + INCLUDE 'stack.h' + logical scifunction, createvar, createcvar + common /scigsch/ lf, nx, nf + integer iadr + double precision alphar, alphai, beta +c + iadr(l) = l+l-1 +c + scigshur=.false. + if(.not.createcvar(nx,'d',1,1,1,lx,lc)) return + stk(lx)=alphar + stk(lx+1)=alphai + if(.not.createvar(nx+1,'d',1,1,lb)) return + stk(lb)=beta + if(.not.scifunction(nx,lf,1,2)) return +c stk(lx)=fct([alphar,alphai,beta]) evaluated by scilab fct pointed +c to by lf + ilx=iadr(lx-2) + if(istk(ilx).eq.1) then + scigshur=(stk(lx).ne.0.0d0) + elseif (istk(ilx).eq.4) then + scigshur=(istk(ilx+3).ne.0) + endif + return + end + + logical function scigchk() +c checks fct passed to gschur + INCLUDE 'stack.h' + logical scifunction, createvar, createcvar +c + integer iadr + common/ierinv/iero + common /scigsch/ lf, nx, nf + iadr(l) = l+l-1 + + scigchk=.false. + if(.not.createcvar(nx,'d',1,1,1,lx,lc)) return + stk(lx)=1.0d0 + stk(lx+1)=1.0d0 + if(.not.createvar(nx+1,'d',1,1,lb)) return + stk(lb)=1.0d0 + if(.not.scifunction(nx,lf,1,2)) then +c error into fct passed to gschur (gschur(A,B,tst)) + return + endif +c check return value of fct + ilx=iadr(lx-2) + if(istk(ilx).ne.1 .and. istk(ilx).ne.4) then + err=nf + call error(268) + return + endif + if(istk(ilx+1)*istk(ilx+2).ne.1) then + err=nf + call error(268) + return + endif + scigchk=.true. + return + end + diff --git a/modules/linear_algebra/src/fortran/intzgschur.lo b/modules/linear_algebra/src/fortran/intzgschur.lo new file mode 100755 index 000000000..2e476ea31 --- /dev/null +++ b/modules/linear_algebra/src/fortran/intzgschur.lo @@ -0,0 +1,12 @@ +# src/fortran/intzgschur.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/intzgschur.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/src/fortran/intzoldsvd.f b/modules/linear_algebra/src/fortran/intzoldsvd.f new file mode 100755 index 000000000..61ac2df6f --- /dev/null +++ b/modules/linear_algebra/src/fortran/intzoldsvd.f @@ -0,0 +1,152 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) INRIA +c$ +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +c$ + subroutine intzoldsvd(tol,fname) + +c [U,S,V,rk]=svd(A,tol) + + include 'stack.h' + logical getrhsvar,createvar + logical checklhs,checkrhs + + character fname*(*) + character JOBU, JOBVT + double precision ZERO + double precision tol,eps,dlamch + parameter ( ZERO=0.0D0 ) + intrinsic conjg + + minrhs=1 + maxrhs=2 + minlhs=1 + maxlhs=4 +c + if(.not.checkrhs(fname,minrhs,maxrhs)) return + if(.not.checklhs(fname,minlhs,maxlhs)) return + + if(.not.getrhsvar(1,'z', M, N, lA)) return + if(M.eq.0) then + if(lhs.eq.1) then + lhsvar(1) = 1 + return + else if(lhs.eq.2) then + if(.not.createvar(2,'d', N, N, lS)) return + lhsvar(1) = 1 + lhsvar(2) = 2 + return + else if(lhs.eq.3) then + if(.not.createvar(2,'d', M, N, lS)) return + if(.not.createvar(3,'d', N, N, lV)) return + lhsvar(1) = 1 + lhsvar(2) = 2 + lhsvar(3) = 3 + return + else if(lhs.eq.4) then + if(.not.createvar(2,'d', M, N, lS)) return + if(.not.createvar(3,'d', N, N, lV)) return + if(.not.createvar(4,'d', 1, 1, lrk)) return + stk(lrk)=0 + lhsvar(1) = 1 + lhsvar(2) = 2 + lhsvar(3) = 3 + lhsvar(4) = 4 + return + endif + elseif(N.eq.-1.or.M.eq.-1) then + err=1 + call error(271) + return + endif + if(.not.createvar(2,'d', min(M,N), 1, lSV)) return + k = 3 + if(lhs.gt.1) then + if(.not.createvar(3,'z', M, M, lU)) return + if(.not.createvar(4,'d', M, N, lS)) return + if(.not.createvar(5,'z', N, N, lV)) return + if(.not.createvar(6,'z', N, N, lVT)) return + if(.not.createvar(7,'d', 1, 1, lrk)) return + k = 8 + endif + LRWRK = max(3*min(M,N),5*min(M,N)-4) + if(.not.createvar(k,'d',1,LRWRK,lRWORK)) return + LWORKMIN = 2*min(M,N)+max(M,N) + LWORK=maxvol(k+1,'z') + if(LWORK.le.LWORKMIN) then + err=2*(LWORK-LWORKMIN) + call error(17) + return + endif + if(.not.createvar(k+1,'z',1,LWORK,lDWORK)) return + + JOBU = 'N' + JOBVT = 'N' + if(lhs.gt.1) then + JOBU = 'A' + JOBVT = 'A' + endif + if(lhs.eq.1) then + call ZGESVD( JOBU, JOBVT, M, N, zstk(lA), M, stk(lSV), + $ zstk(lA), M, zstk(lA), N, zstk(lDWORK), LWORK, + $ stk(lRWORK), INFO ) +c SUBROUTINE ZGESVD( JOBU, JOBVT, M, N, A, LDA, S, U, LDU, VT, +C $ LDVT, WORK, LWORK, RWORK, INFO ) + do 01 ii = 0,min(M,N)-1 + stk(lSV+ii)=abs(stk(lSV+ii)) + 01 continue + call DLASRT('D', min(M,N), stk(lSV), INFO ) + else + call ZGESVD( JOBU, JOBVT, M, N, zstk(lA), M, stk(lSV), + $ zstk(lU), M, zstk(lVT), N, zstk(lDWORK), LWORK, + $ stk(lRWORK), INFO ) +c SUBROUTINE ZGESVD( JOBU, JOBVT, M, N, A, LDA, S, U, LDU, VT, +C $ LDVT, WORK, LWORK, RWORK, INFO ) + endif + if(info.ne.0) then + if(info.gt.0) call error(24) + return + endif + +c calculating rk = # of sv's > tol + + eps=dlamch('eps') + if(tol.eq.0.0d0) tol=dble(max(M,N))*eps*stk(lSV) + irang=0 + do 51 i = 1, min(M,N) + if(stk(lSV+i-1).gt.tol) irang=i + 51 continue + stk(lrk)=dble(irang) + + if(lhs.gt.1) then + call DLASET( 'F', M, N, ZERO, ZERO, stk(lS), M ) +c SUBROUTINE DLASET( UPLO, M, N, ALPHA, BETA, A, LDA ) + + do 10 i = 1, min(M,N) + ii = i+(i-1)*M + stk(lS+ii-1) = stk(lSV+i-1) + 10 continue + do 30 j = 1, N + do 20 i = j, N + ij = i+(j-1)*N + ji = j+(i-1)*N + zstk(lV+ij-1) = conjg(zstk(lVT+ji-1)) + zstk(lV+ji-1) = conjg(zstk(lVT+ij-1)) + 20 continue + 30 continue + endif + + if(lhs.eq.1) then + lhsvar(1) = 2 + else + lhsvar(1)=3 + lhsvar(2)=4 + lhsvar(3)=5 + lhsvar(4)=7 + endif +c + end diff --git a/modules/linear_algebra/src/fortran/intzoldsvd.lo b/modules/linear_algebra/src/fortran/intzoldsvd.lo new file mode 100755 index 000000000..69fb4c558 --- /dev/null +++ b/modules/linear_algebra/src/fortran/intzoldsvd.lo @@ -0,0 +1,12 @@ +# src/fortran/intzoldsvd.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/intzoldsvd.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/src/fortran/intzpotrf.f b/modules/linear_algebra/src/fortran/intzpotrf.f new file mode 100755 index 000000000..2d3d4304a --- /dev/null +++ b/modules/linear_algebra/src/fortran/intzpotrf.f @@ -0,0 +1,68 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) INRIA +c$ +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +c$ + + subroutine intzpotrf(fname) + +c U = chol(A) + + include 'stack.h' + logical getrhsvar + logical checklhs,checkrhs + complex*16 ZERO + parameter ( ZERO = (0.0d0,0.0d0) ) + character fname*(*) + + minrhs=1 + maxrhs=1 + minlhs=1 + maxlhs=1 +c + if(.not.checkrhs(fname,minrhs,maxrhs)) return + if(.not.checklhs(fname,minlhs,maxlhs)) return + + if(.not.getrhsvar(1,'z', M, N, lA)) return + if(m.ne.n) then + err=1 + call error(20) + return + endif + if (N.eq.0) then + lhsvar(1)=1 + return + elseif(N.eq.-1) then + if(stk(lA).le.0.0d0) then + call error(29) + return + endif + lhsvar(1)=1 + stk(lA)=sqrt(stk(lA)) + return + endif + + call ZPOTRF( 'U', N, zstk(lA), N, INFO ) +c SUBROUTINE ZPOTRF( 'U', N, A, LDA, INFO ) + if(info.ne.0) then + if(info.gt.0) call error(29) + return + endif + + if( N.gt.1 ) then + do 20 j=1,N + do 10 i=j+1,N + ij = i+(j-1)*N + zstk(lA+ij-1)=ZERO + 10 continue + 20 continue + endif + + lhsvar(1)=1 + +c + end diff --git a/modules/linear_algebra/src/fortran/intzpotrf.lo b/modules/linear_algebra/src/fortran/intzpotrf.lo new file mode 100755 index 000000000..d11f9e5ba --- /dev/null +++ b/modules/linear_algebra/src/fortran/intzpotrf.lo @@ -0,0 +1,12 @@ +# src/fortran/intzpotrf.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/intzpotrf.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/src/fortran/intzschur.f b/modules/linear_algebra/src/fortran/intzschur.f new file mode 100755 index 000000000..1f78faaa7 --- /dev/null +++ b/modules/linear_algebra/src/fortran/intzschur.f @@ -0,0 +1,183 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) INRIA +c$ +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +c$ + subroutine intzschur(fname) + +c [VS,dim]=zschur(A,function) +c [VS,dim,T]=zschur(A,function) + + include 'stack.h' + logical getrhsvar,createvar + logical checklhs,checkrhs + + character fname*(*) + character*4 JOBVS, SORT + logical SCIZSCHUR,scizchk + external SCIZSCHUR,scizchk + common /scisch/ lf, nx, nf + + minrhs=2 + maxrhs=2 + minlhs=1 + maxlhs=3 +c + if(.not.checkrhs(fname,minrhs,maxrhs)) return + if(.not.checklhs(fname,minlhs,maxlhs)) return + + if(.not.getrhsvar(1,'z', M, N, lA)) return + if(M.ne.N) then + err=1 + call error(20) + return + endif + if(N.eq.0) then + if(lhs.eq.1) then + lhsvar(1) = 1 + return + else if(lhs.eq.2) then + if(.not.createvar(2,'z', 0, 0, lSDIM)) return + lhsvar(1)=1 + lhsvar(2)=2 + return + else if(lhs.eq.3) then + if(.not.createvar(2,'d', 0, 0, lSDIM)) return + stk(lSDIM)=0.0d0 + if(.not.createvar(3,'z', N, N, lVS)) return + lhsvar(1)=1 + lhsvar(2)=2 + lhsvar(3)=3 + return + endif + elseif(N.eq.-1) then + err=1 + call error(271) + return + endif + + if(.not.getrhsvar(2,'f', mlhs, mrhs, lf)) return + if(mlhs.ne.1 .or. mrhs.ne.1) then + err=2 + call error(80) + return + endif + if(.not.createvar(3,'z', N, 1, lW)) return + k = 4 + if(lhs.gt.1) then + if(.not.createvar(4,'z', N, N, lVS)) return + k = 5 + endif + if(.not.createvar(k,'i', 1, 1, lSDIM)) return + if(.not.createvar(k+1,'i',N, 1, lBWORK)) return + if(.not.createvar(k+2,'d', N, 1, lRWORK)) return + LWORKMIN = 3*N + LWORK = LWORKMIN + if(.not.createvar(k+3,'z',1,LWORKMIN,lDWORK)) return + nx=k+4 + + if(lhs.eq.1) then + JOBVS = 'N' + lVS = lDWORK + else + JOBVS = 'V' + endif + SORT = 'S' + + if(.not.scizchk()) return + call ZGEES( JOBVS, SORT, SCIZSCHUR, N, zstk(lA), N, istk(lSDIM), + $ zstk(lW), zstk(lVS), N, zstk(lDWORK), LWORK, stk(lRWORK), + $ istk(lBWORK), INFO ) + if(info.gt.0) then + if(info.le.N) then + call msgs(2,info) + elseif(info.eq.N+1) then + buf='eigenvalues could not be reordered (the problem '// + $ 'is very ill-conditioned' + call error(1002) + elseif(info.eq.N+2) then + call msgs(103,0) + endif + endif + + if(lhs.eq.1) then + lhsvar(1) = 1 + else if(lhs.eq.2) then + lhsvar(1)=4 + lhsvar(2)=5 + else if(lhs.eq.3) then + lhsvar(1)=4 + lhsvar(2)=5 + lhsvar(3)=1 + endif +c + end + + logical function scizschur(w) + INCLUDE 'stack.h' + logical scifunction, createcvar + common /scisch/ lf, nx, nf + integer iadr + complex*16 w + intrinsic dreal, dimag +c + iadr(l) = l+l-1 +c + scizschur=.false. + if(.not.createcvar(nx,'d',1,1,1,lx,lc)) return + stk(lx)=dreal(w) + stk(lx+1)=dimag(w) + if(.not.scifunction(nx,lf,1,1)) return +c stk(lx)=fct([re,im]) evaluated by scilab fct pointed to by lf + ilx=iadr(lx-2) + if(istk(ilx).eq.1) then + scizschur=(stk(lx).ne.0.0d0) + elseif (istk(ilx).eq.4) then + scizschur=(istk(ilx+3).ne.0) + endif + return + end + + logical function scizchk() +c checks fct passed to schur + INCLUDE 'stack.h' + logical scifunction, createcvar +c + integer iadr + common/ierinv/iero + common /scisch/ lf, nx, nf + iadr(l) = l+l-1 + scizchk=.false. + if(.not.createcvar(nx,'d',1,1,1,lx,lc)) return + stk(lx)=1.0d0 + stk(lx+1)=1.0d0 + if(.not.scifunction(nx,lf,1,1)) then +c error into fct passed to schur (schur(A,tst)) + return + endif +c check return value of fct + ilx=iadr(lx-2) + if(istk(ilx).ne.1 .and. istk(ilx).ne.4) then + err=nf + call error(268) + return + endif + if(istk(ilx+1)*istk(ilx+2).ne.1) then + err=nf + call error(268) + return + endif + scizchk=.true. + return + end + + logical function voiddummy(ar,ai) + + voiddummy = .false. + return + end + diff --git a/modules/linear_algebra/src/fortran/intzschur.lo b/modules/linear_algebra/src/fortran/intzschur.lo new file mode 100755 index 000000000..e126e062d --- /dev/null +++ b/modules/linear_algebra/src/fortran/intzschur.lo @@ -0,0 +1,12 @@ +# src/fortran/intzschur.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/intzschur.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/src/fortran/issymmetric.f b/modules/linear_algebra/src/fortran/issymmetric.f new file mode 100755 index 000000000..ad74ec9d0 --- /dev/null +++ b/modules/linear_algebra/src/fortran/issymmetric.f @@ -0,0 +1,62 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) INRIA +c$ +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +c$ + integer function issymmetric(in) +c return 1 if matrix at position in is symmetric + include 'stack.h' + double precision sr +c + integer iadr,sadr +c + iadr(l)=l+l-1 + sadr(l)=(l/2)+1 +c + issymmetric=0 + nnn=top-rhs+in + l=lstk(nnn) + il=iadr(l) + m=istk(il+1) + n=istk(il+2) + l=sadr(il+4) + nn=m*n + if (m.ne.n) return + issymmetric =0 + if (istk(il+3).eq.0) then + do 20 j = 1,n + do 19 i = 1,j + ls = l + (i-1) + (j-1)*n + ll = l + (i-1)*n + (j-1) + sr = abs(stk(ll)-stk(ls)) + if (stk(ll)+sr .gt. stk(ll)) goto 21 + 19 continue + 20 continue + issymmetric = 1 + 21 continue + return + else + if (n .eq. 1) goto 210 + do 200 j = 2,n + j1 = j - 1 + do 200 i = 1,j1 + ls = l + (i-1) + j1*n + ll = l + (i-1)*n + j1 + sr = abs(stk(ll)-stk(ls)) + si = abs(stk(ll+nn)+stk(ls+nn)) + if (stk(ll)+sr.gt.stk(ll) .or. stk(ll+nn)+si.gt.stk(ll+nn)) + & goto 230 + 200 continue + 210 do 220 j = 1,n + ll = l + (j-1) + (j-1)*n + if (stk(ll)+abs(stk(ll+nn)) .gt. stk(ll)) goto 230 + 220 continue + issymmetric = 1 + 230 continue + return + endif + end diff --git a/modules/linear_algebra/src/fortran/linear_algebra_Import.def b/modules/linear_algebra/src/fortran/linear_algebra_Import.def new file mode 100755 index 000000000..74081432f --- /dev/null +++ b/modules/linear_algebra/src/fortran/linear_algebra_Import.def @@ -0,0 +1,33 @@ +LIBRARY linear_algebra.dll + + +EXPORTS + gw_linear_algebra_ + gw_linear_algebra2_ + schsel_ + setschsel_ + zchsel_ + setzchsel_ + gshsel_ + setgshsel_ + gzhsel_ + setgzhsel_ + fschur_ + setfschur_ + intbackslash_ + intbalanc_ + intbdiagr_ + intchol_ + intdet_ + intspec_ + inthess_ + intinv_ + intlsq_ + intlu_ + intqr_ + intrcond_ + intschur_ + schtst + intslash_ + intsvd_ + issymmetric_ diff --git a/modules/linear_algebra/src/fortran/linear_algebra_f.rc b/modules/linear_algebra/src/fortran/linear_algebra_f.rc new file mode 100755 index 000000000..a65dd5c29 --- /dev/null +++ b/modules/linear_algebra/src/fortran/linear_algebra_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", "linear_algebra_f module" + VALUE "FileVersion", "5, 5, 2, 0" + VALUE "InternalName", "linear_algebra_f module" + VALUE "LegalCopyright", "Copyright (C) 2017" + VALUE "OriginalFilename", "linear_algebra_f.dll" + VALUE "ProductName", "linear_algebra_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/linear_algebra/src/fortran/linear_algebra_f.vfproj b/modules/linear_algebra/src/fortran/linear_algebra_f.vfproj new file mode 100755 index 000000000..23d14c56b --- /dev/null +++ b/modules/linear_algebra/src/fortran/linear_algebra_f.vfproj @@ -0,0 +1,162 @@ +<?xml version="1.0" encoding="UTF-8"?> +<VisualStudioProject ProjectType="typeDynamicLibrary" ProjectCreator="Intel Fortran" Keyword="Dll" Version="11.0" ProjectIdGuid="{3735EFF9-925B-45B1-82CF-762658E69E70}"> + <Platforms> + <Platform Name="Win32"/> + <Platform Name="x64"/></Platforms> + <Configurations> + <Configuration Name="Debug|Win32" OutputDirectory="$(SolutionDir)bin\" IntermediateDirectory="$(ProjectDir)$(ConfigurationName)" DeleteExtensionsOnClean="*.obj;*.mod;*.pdb;*.asm;*.map;*.dyn;*.dpi;*.tmp;*.log;*.ilk;*.dll;$(TargetPath)" ConfigurationType="typeDynamicLibrary"> + <Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" DebugInformationFormat="debugEnabled" Optimization="optimizeDisabled" AdditionalIncludeDirectories="../../../core/includes" PreprocessorDefinitions="WIN32;FORDLL" AlternateParameterSyntax="false" F77RuntimeCompatibility="true" FPS4Libs="false" CallingConvention="callConventionCRef" ExternalNameUnderscore="true" ModulePath="$(INTDIR)/" ObjectFile="$(INTDIR)/" RuntimeLibrary="rtMultiThreadedDebugDLL"/> + <Tool Name="VFLinkerTool" OutputFile="$(SolutionDir)bin\$(ProjectName).dll" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" ModuleDefinitionFile="linear_algebra_f.def" GenerateDebugInformation="true" SubSystem="subSystemWindows" ImportLibrary="$(SolutionDir)bin\$(ProjectName).lib" LinkDLL="true" AdditionalDependencies="../../../../bin/blasplus.lib ../../../../bin/lapack.lib core.lib linear_algebra.lib output_stream.lib elementary_functions.lib elementary_functions_f.lib core_f.lib"/> + <Tool Name="VFResourceCompilerTool"/> + <Tool Name="VFMidlTool" SuppressStartupBanner="true" HeaderFileName="$(InputName).h" TypeLibraryName="$(IntDir)/$(InputName).tlb"/> + <Tool Name="VFCustomBuildTool"/> + <Tool Name="VFPreLinkEventTool" CommandLine="setlocal EnableDelayedExpansion +cd $(ConfigurationName) +set LIST_OBJ= +for %%f in (*.obj) do set LIST_OBJ=!LIST_OBJ! %%f +"$(SolutionDir)bin\dumpexts" -o $(ProjectName).def $(ProjectName).dll %LIST_OBJ% +copy $(ProjectName).def ..\$(ProjectName).def >nul +del *.def >nul +cd .." Description="Build $(ProjectName).def"/> + <Tool Name="VFPreBuildEventTool" CommandLine="lib /DEF:"$(InputDir)core_import.def" /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:"$(InputDir)core.lib" 1>NUL 2>NUL +lib /DEF:"$(InputDir)linear_algebra_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:"$(InputDir)linear_algebra.lib" 1>NUL 2>NUL +lib /DEF:"$(InputDir)output_stream_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:"$(InputDir)output_stream.lib" 1>NUL 2>NUL +lib /DEF:"$(InputDir)elementary_functions_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:"$(InputDir)elementary_functions.lib" 1>NUL 2>NUL +lib /DEF:"$(InputDir)elementary_functions_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:"$(InputDir)elementary_functions_f.lib" 1>NUL 2>NUL +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="WIN32;FORDLL" AlternateParameterSyntax="false" F77RuntimeCompatibility="true" FPS4Libs="false" CallingConvention="callConventionCRef" ExternalNameUnderscore="true" ModulePath="$(INTDIR)/" ObjectFile="$(INTDIR)/" RuntimeLibrary="rtMultiThreadedDLL"/> + <Tool Name="VFLinkerTool" OutputFile="$(SolutionDir)bin\$(ProjectName).dll" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" ModuleDefinitionFile="linear_algebra_f.def" SubSystem="subSystemWindows" ImportLibrary="$(SolutionDir)bin\$(ProjectName).lib" LinkDLL="true" AdditionalDependencies="../../../../bin/blasplus.lib ../../../../bin/lapack.lib core.lib linear_algebra.lib output_stream.lib elementary_functions.lib elementary_functions_f.lib core_f.lib"/> + <Tool Name="VFResourceCompilerTool"/> + <Tool Name="VFMidlTool" SuppressStartupBanner="true" HeaderFileName="$(InputName).h" TypeLibraryName="$(IntDir)/$(InputName).tlb"/> + <Tool Name="VFCustomBuildTool"/> + <Tool Name="VFPreLinkEventTool" CommandLine="setlocal EnableDelayedExpansion +cd $(ConfigurationName) +set LIST_OBJ= +for %%f in (*.obj) do set LIST_OBJ=!LIST_OBJ! %%f +"$(SolutionDir)bin\dumpexts" -o $(ProjectName).def $(ProjectName).dll %LIST_OBJ% +copy $(ProjectName).def ..\$(ProjectName).def >nul +del *.def >nul +cd .." Description="Build $(ProjectName).def"/> + <Tool Name="VFPreBuildEventTool" CommandLine="lib /DEF:"$(InputDir)core_import.def" /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:"$(InputDir)core.lib" 1>NUL 2>NUL +lib /DEF:"$(InputDir)linear_algebra_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:"$(InputDir)linear_algebra.lib" 1>NUL 2>NUL +lib /DEF:"$(InputDir)output_stream_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:"$(InputDir)output_stream.lib" 1>NUL 2>NUL +lib /DEF:"$(InputDir)elementary_functions_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:"$(InputDir)elementary_functions.lib" 1>NUL 2>NUL +lib /DEF:"$(InputDir)elementary_functions_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:X86 /OUT:"$(InputDir)elementary_functions_f.lib" 1>NUL 2>NUL +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="WIN32;FORDLL" AlternateParameterSyntax="false" F77RuntimeCompatibility="true" FPS4Libs="false" CallingConvention="callConventionCRef" ExternalNameUnderscore="true" ModulePath="$(INTDIR)/" ObjectFile="$(INTDIR)/" RuntimeLibrary="rtMultiThreadedDebugDLL"/> + <Tool Name="VFLinkerTool" OutputFile="$(SolutionDir)bin\$(ProjectName).dll" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" ModuleDefinitionFile="linear_algebra_f.def" GenerateDebugInformation="true" SubSystem="subSystemWindows" ImportLibrary="$(SolutionDir)bin\$(ProjectName).lib" LinkDLL="true" AdditionalDependencies="../../../../bin/blasplus.lib ../../../../bin/lapack.lib core.lib linear_algebra.lib output_stream.lib elementary_functions.lib elementary_functions_f.lib core_f.lib"/> + <Tool Name="VFResourceCompilerTool"/> + <Tool Name="VFMidlTool" SuppressStartupBanner="true" HeaderFileName="$(InputName).h" TypeLibraryName="$(IntDir)/$(InputName).tlb"/> + <Tool Name="VFCustomBuildTool"/> + <Tool Name="VFPreLinkEventTool" CommandLine="setlocal EnableDelayedExpansion +cd $(ConfigurationName) +set LIST_OBJ= +for %%f in (*.obj) do set LIST_OBJ=!LIST_OBJ! %%f +"$(SolutionDir)bin\dumpexts" -o $(ProjectName).def $(ProjectName).dll %LIST_OBJ% +copy $(ProjectName).def ..\$(ProjectName).def >nul +del *.def >nul +cd .." Description="Build $(ProjectName).def"/> + <Tool Name="VFPreBuildEventTool" CommandLine="lib /DEF:"$(InputDir)core_import.def" /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:"$(InputDir)core.lib" 1>NUL 2>NUL +lib /DEF:"$(InputDir)linear_algebra_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:"$(InputDir)linear_algebra.lib" 1>NUL 2>NUL +lib /DEF:"$(InputDir)output_stream_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:"$(InputDir)output_stream.lib" 1>NUL 2>NUL +lib /DEF:"$(InputDir)elementary_functions_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:"$(InputDir)elementary_functions.lib" 1>NUL 2>NUL +lib /DEF:"$(InputDir)elementary_functions_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:"$(InputDir)elementary_functions_f.lib" 1>NUL 2>NUL +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="WIN32;FORDLL" AlternateParameterSyntax="false" F77RuntimeCompatibility="true" FPS4Libs="false" CallingConvention="callConventionCRef" ExternalNameUnderscore="true" ModulePath="$(INTDIR)/" ObjectFile="$(INTDIR)/" RuntimeLibrary="rtMultiThreadedDLL"/> + <Tool Name="VFLinkerTool" OutputFile="$(SolutionDir)bin\$(ProjectName).dll" LinkIncremental="linkIncrementalNo" SuppressStartupBanner="true" ModuleDefinitionFile="linear_algebra_f.def" SubSystem="subSystemWindows" ImportLibrary="$(SolutionDir)bin\$(ProjectName).lib" LinkDLL="true" AdditionalDependencies="../../../../bin/blasplus.lib ../../../../bin/lapack.lib core.lib linear_algebra.lib output_stream.lib elementary_functions.lib elementary_functions_f.lib core_f.lib"/> + <Tool Name="VFResourceCompilerTool"/> + <Tool Name="VFMidlTool" SuppressStartupBanner="true" HeaderFileName="$(InputName).h" TypeLibraryName="$(IntDir)/$(InputName).tlb"/> + <Tool Name="VFCustomBuildTool"/> + <Tool Name="VFPreLinkEventTool" CommandLine="setlocal EnableDelayedExpansion +cd $(ConfigurationName) +set LIST_OBJ= +for %%f in (*.obj) do set LIST_OBJ=!LIST_OBJ! %%f +"$(SolutionDir)bin\dumpexts" -o $(ProjectName).def $(ProjectName).dll %LIST_OBJ% +copy $(ProjectName).def ..\$(ProjectName).def >nul +del *.def >nul +cd .." Description="Build $(ProjectName).def"/> + <Tool Name="VFPreBuildEventTool" CommandLine="lib /DEF:"$(InputDir)core_import.def" /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:"$(InputDir)core.lib" 1>NUL 2>NUL +lib /DEF:"$(InputDir)linear_algebra_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:"$(InputDir)linear_algebra.lib" 1>NUL 2>NUL +lib /DEF:"$(InputDir)output_stream_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:"$(InputDir)output_stream.lib" 1>NUL 2>NUL +lib /DEF:"$(InputDir)elementary_functions_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:"$(InputDir)elementary_functions.lib" 1>NUL 2>NUL +lib /DEF:"$(InputDir)elementary_functions_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:X64 /OUT:"$(InputDir)elementary_functions_f.lib" 1>NUL 2>NUL +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=".\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=".\output_stream_Import.def"/></Filter> + <Filter Name="Resource Files" Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"> + <File RelativePath=".\linear_algebra_f.rc"/></Filter> + <Filter Name="Source Files" Filter="f90;for;f;fpp;ftn;def;odl;idl"> + <File RelativePath=".\complexify.f"/> + <File RelativePath=".\DGELSY1.f"/> + <File RelativePath=".\ZGELSY1.f"/> + <File RelativePath=".\doldqr.f"/> + <File RelativePath=".\intddet.f"/> + <File RelativePath=".\intdgebal.f"/> + <File RelativePath=".\intdgecon.f"/> + <File RelativePath=".\intdgees0.f"/> + <File RelativePath=".\intdgees1.f"/> + <File RelativePath=".\intdgehrd.f"/> + <File RelativePath=".\intdgelsy.f"/> + <File RelativePath=".\intdgeqpf3.f"/> + <File RelativePath=".\intdgeqpf4.f"/> + <File RelativePath=".\intdgesv3.f"/> + <File RelativePath=".\intdgesv4.f"/> + <File RelativePath=".\intdgesvd1.f"/> + <File RelativePath=".\intdgesvd2.f"/> + <File RelativePath=".\intdgetrf.f"/> + <File RelativePath=".\intdgetri.f"/> + <File RelativePath=".\intdggbal.f"/> + <File RelativePath=".\intdgges.f"/> + <File RelativePath=".\intdoldsvd.f"/> + <File RelativePath=".\intdpotrf.f"/> + <File RelativePath=".\intfschur.f"/> + <File RelativePath=".\intgschur.f"/> + <File RelativePath=".\intogschur.f"/> + <File RelativePath=".\intoschur.f"/> + <File RelativePath=".\intozgschur.f"/> + <File RelativePath=".\intzdet.f"/> + <File RelativePath=".\intzfschur.f"/> + <File RelativePath=".\intzgebal.f"/> + <File RelativePath=".\intzgecon.f"/> + <File RelativePath=".\intzgees0.f"/> + <File RelativePath=".\intzgees1.f"/> + <File RelativePath=".\intzgehrd.f"/> + <File RelativePath=".\intzgelsy.f"/> + <File RelativePath=".\intzgeqpf3.f"/> + <File RelativePath=".\intzgeqpf4.f"/> + <File RelativePath=".\intzgesv3.f"/> + <File RelativePath=".\intzgesv4.f"/> + <File RelativePath=".\intzgesvd1.f"/> + <File RelativePath=".\intzgesvd2.f"/> + <File RelativePath=".\intzgetrf.f"/> + <File RelativePath=".\intzgetri.f"/> + <File RelativePath=".\intzggbal.f"/> + <File RelativePath=".\intzgges.f"/> + <File RelativePath=".\intzgschur.f"/> + <File RelativePath=".\intzoldsvd.f"/> + <File RelativePath=".\intzpotrf.f"/> + <File RelativePath=".\intzschur.f"/> + <File RelativePath=".\scischur.f"/> + <File RelativePath=".\writebuf.f"/> + <File RelativePath=".\zoldqr.f"/></Filter> + <File RelativePath="..\..\sci_gateway\linear_algebra_gateway.xml"/> + <File RelativePath="..\..\Makefile.am"/></Files> + <Globals/></VisualStudioProject> diff --git a/modules/linear_algebra/src/fortran/linear_algebra_f2c.vcxproj b/modules/linear_algebra/src/fortran/linear_algebra_f2c.vcxproj new file mode 100755 index 000000000..b50e3ef41 --- /dev/null +++ b/modules/linear_algebra/src/fortran/linear_algebra_f2c.vcxproj @@ -0,0 +1,399 @@ +<?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>linear_algebra_f</ProjectName> + <ProjectGuid>{3735EFF9-925B-45B1-82CF-762658E69E70}</ProjectGuid> + <RootNamespace>linear_algebra_f2c</RootNamespace> + <Keyword>Win32Proj</Keyword> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <CharacterSet>Unicode</CharacterSet> + <WholeProgramOptimization>true</WholeProgramOptimization> + <PlatformToolset>v110</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v110</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <CharacterSet>Unicode</CharacterSet> + <WholeProgramOptimization>true</WholeProgramOptimization> + <PlatformToolset>v110</PlatformToolset> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <CharacterSet>Unicode</CharacterSet> + <PlatformToolset>v110</PlatformToolset> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + <Import Project="..\..\..\..\Visual-Studio-settings\f2c.props" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup> + <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)bin\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)$(Configuration)\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)bin\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)$(Configuration)\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)bin\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)$(Configuration)\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental> + <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)bin\</OutDir> + <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)$(Configuration)\</IntDir> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> + <PreBuildEvent> + <Message>Build Dependencies</Message> + <Command>lib /DEF:"$(ProjectDir)core_import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)core.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)linear_algebra_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)linear_algebra.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)output_stream_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)output_stream.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)elementary_functions_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)elementary_functions.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)elementary_functions_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)elementary_functions_f.lib" 1>NUL 2>NUL +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;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;LINEAR_ALGEBRA_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> + <AdditionalOptions>/ignore:4049 %(AdditionalOptions)</AdditionalOptions> + <AdditionalDependencies>core.lib;linear_algebra.lib;output_stream.lib;elementary_functions.lib;elementary_functions_f.lib;core_f.lib;../../../../bin/blasplus.lib;../../../../bin/lapack.lib;../../../../bin/libf2c.lib;%(AdditionalDependencies)</AdditionalDependencies> + <OutputFile>$(SolutionDir)bin\$(ProjectName).dll</OutputFile> + <ModuleDefinitionFile>linear_algebra_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)linear_algebra_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)linear_algebra.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)output_stream_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)output_stream.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)elementary_functions_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)elementary_functions.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)elementary_functions_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)elementary_functions_f.lib" 1>NUL 2>NUL +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;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;LINEAR_ALGEBRA_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> + <AdditionalOptions>/ignore:4049 %(AdditionalOptions)</AdditionalOptions> + <AdditionalDependencies>core.lib;linear_algebra.lib;output_stream.lib;elementary_functions.lib;elementary_functions_f.lib;core_f.lib;../../../../bin/blasplus.lib;../../../../bin/lapack.lib;../../../../bin/libf2c.lib;%(AdditionalDependencies)</AdditionalDependencies> + <OutputFile>$(SolutionDir)bin\$(ProjectName).dll</OutputFile> + <ModuleDefinitionFile>linear_algebra_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)linear_algebra_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)linear_algebra.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)output_stream_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)output_stream.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)elementary_functions_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)elementary_functions.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)elementary_functions_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)elementary_functions_f.lib" 1>NUL 2>NUL +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;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;LINEAR_ALGEBRA_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> + <AdditionalOptions>/ignore:4049 %(AdditionalOptions)</AdditionalOptions> + <AdditionalDependencies>core.lib;linear_algebra.lib;output_stream.lib;elementary_functions.lib;elementary_functions_f.lib;core_f.lib;../../../../bin/blasplus.lib;../../../../bin/lapack.lib;../../../../bin/libf2c.lib;%(AdditionalDependencies)</AdditionalDependencies> + <OutputFile>$(SolutionDir)bin\$(ProjectName).dll</OutputFile> + <ModuleDefinitionFile>linear_algebra_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)linear_algebra_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)linear_algebra.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)output_stream_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)output_stream.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)elementary_functions_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)elementary_functions.lib" 1>NUL 2>NUL +lib /DEF:"$(ProjectDir)elementary_functions_f_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform) /OUT:"$(ProjectDir)elementary_functions_f.lib" 1>NUL 2>NUL +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;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;LINEAR_ALGEBRA_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> + <AdditionalOptions>/ignore:4049 %(AdditionalOptions)</AdditionalOptions> + <AdditionalDependencies>core.lib;linear_algebra.lib;output_stream.lib;elementary_functions.lib;elementary_functions_f.lib;core_f.lib;../../../../bin/blasplus.lib;../../../../bin/lapack.lib;../../../../bin/libf2c.lib;%(AdditionalDependencies)</AdditionalDependencies> + <OutputFile>$(SolutionDir)bin\$(ProjectName).dll</OutputFile> + <ModuleDefinitionFile>linear_algebra_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="common_f2c.c" /> + <ClCompile Include="complexify.c" /> + <ClCompile Include="DGELSY1.c" /> + <ClCompile Include="ZGELSY1.c" /> + <ClCompile Include="doldqr.c" /> + <ClCompile Include="intddet.c" /> + <ClCompile Include="intdgebal.c" /> + <ClCompile Include="intdgecon.c" /> + <ClCompile Include="intdgees0.c" /> + <ClCompile Include="intdgees1.c" /> + <ClCompile Include="intdgehrd.c" /> + <ClCompile Include="intdgelsy.c" /> + <ClCompile Include="intdgeqpf3.c" /> + <ClCompile Include="intdgeqpf4.c" /> + <ClCompile Include="intdgesv3.c" /> + <ClCompile Include="intdgesv4.c" /> + <ClCompile Include="intdgesvd1.c" /> + <ClCompile Include="intdgesvd2.c" /> + <ClCompile Include="intdgetrf.c" /> + <ClCompile Include="intdgetri.c" /> + <ClCompile Include="intdggbal.c" /> + <ClCompile Include="intdgges.c" /> + <ClCompile Include="intdoldsvd.c" /> + <ClCompile Include="intdpotrf.c" /> + <ClCompile Include="intfschur.c" /> + <ClCompile Include="intgschur.c" /> + <ClCompile Include="intogschur.c" /> + <ClCompile Include="intoschur.c" /> + <ClCompile Include="intozgschur.c" /> + <ClCompile Include="intzdet.c" /> + <ClCompile Include="intzfschur.c" /> + <ClCompile Include="intzgebal.c" /> + <ClCompile Include="intzgecon.c" /> + <ClCompile Include="intzgees0.c" /> + <ClCompile Include="intzgees1.c" /> + <ClCompile Include="intzgehrd.c" /> + <ClCompile Include="intzgelsy.c" /> + <ClCompile Include="intzgeqpf3.c" /> + <ClCompile Include="intzgeqpf4.c" /> + <ClCompile Include="intzgesv3.c" /> + <ClCompile Include="intzgesv4.c" /> + <ClCompile Include="intzgesvd1.c" /> + <ClCompile Include="intzgesvd2.c" /> + <ClCompile Include="intzgetrf.c" /> + <ClCompile Include="intzgetri.c" /> + <ClCompile Include="intzggbal.c" /> + <ClCompile Include="intzgges.c" /> + <ClCompile Include="intzgschur.c" /> + <ClCompile Include="intzoldsvd.c" /> + <ClCompile Include="intzpotrf.c" /> + <ClCompile Include="intzschur.c" /> + <ClCompile Include="issymmetric.c" /> + <ClCompile Include="scischur.c" /> + <ClCompile Include="writebuf.c" /> + <ClCompile Include="zoldqr.c" /> + </ItemGroup> + <ItemGroup> + <f2c_rule Include="complexify.f" /> + <f2c_rule Include="DGELSY1.f" /> + <f2c_rule Include="ZGELSY1.f" /> + <f2c_rule Include="doldqr.f" /> + <f2c_rule Include="intddet.f" /> + <f2c_rule Include="intdgebal.f" /> + <f2c_rule Include="intdgecon.f" /> + <f2c_rule Include="intdgees0.f" /> + <f2c_rule Include="intdgees1.f" /> + <f2c_rule Include="intdgehrd.f" /> + <f2c_rule Include="intdgelsy.f" /> + <f2c_rule Include="intdgeqpf3.f" /> + <f2c_rule Include="intdgeqpf4.f" /> + <f2c_rule Include="intdgesv3.f" /> + <f2c_rule Include="intdgesv4.f" /> + <f2c_rule Include="intdgesvd1.f" /> + <f2c_rule Include="intdgesvd2.f" /> + <f2c_rule Include="intdgetrf.f" /> + <f2c_rule Include="intdgetri.f" /> + <f2c_rule Include="intdggbal.f" /> + <f2c_rule Include="intdgges.f" /> + <f2c_rule Include="intdoldsvd.f" /> + <f2c_rule Include="intdpotrf.f" /> + <f2c_rule Include="intfschur.f" /> + <f2c_rule Include="intgschur.f" /> + <f2c_rule Include="intogschur.f" /> + <f2c_rule Include="intoschur.f" /> + <f2c_rule Include="intozgschur.f" /> + <f2c_rule Include="intzdet.f" /> + <f2c_rule Include="intzfschur.f" /> + <f2c_rule Include="intzgebal.f" /> + <f2c_rule Include="intzgecon.f" /> + <f2c_rule Include="intzgees0.f" /> + <f2c_rule Include="intzgees1.f" /> + <f2c_rule Include="intzgehrd.f" /> + <f2c_rule Include="intzgelsy.f" /> + <f2c_rule Include="intzgeqpf3.f" /> + <f2c_rule Include="intzgeqpf4.f" /> + <f2c_rule Include="intzgesv3.f" /> + <f2c_rule Include="intzgesv4.f" /> + <f2c_rule Include="intzgesvd1.f" /> + <f2c_rule Include="intzgesvd2.f" /> + <f2c_rule Include="intzgetrf.f" /> + <f2c_rule Include="intzgetri.f" /> + <f2c_rule Include="intzggbal.f" /> + <f2c_rule Include="intzgges.f" /> + <f2c_rule Include="intzgschur.f" /> + <f2c_rule Include="intzoldsvd.f" /> + <f2c_rule Include="intzpotrf.f" /> + <f2c_rule Include="intzschur.f" /> + <f2c_rule Include="issymmetric.f" /> + <f2c_rule Include="scischur.f" /> + <f2c_rule Include="writebuf.f" /> + <f2c_rule Include="zoldqr.f" /> + </ItemGroup> + <ItemGroup> + <None Include="..\..\sci_gateway\linear_algebra_gateway.xml" /> + <None Include="..\..\Makefile.am" /> + <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="output_stream_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/linear_algebra/src/fortran/linear_algebra_f2c.vcxproj.filters b/modules/linear_algebra/src/fortran/linear_algebra_f2c.vcxproj.filters new file mode 100755 index 000000000..96288a60e --- /dev/null +++ b/modules/linear_algebra/src/fortran/linear_algebra_f2c.vcxproj.filters @@ -0,0 +1,376 @@ +<?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>{fe7cb7e0-48f4-44a8-b5bb-981d9a943e54}</UniqueIdentifier> + </Filter> + <Filter Include="Libraries Dependencies"> + <UniqueIdentifier>{e4bda186-00b4-42b0-b641-d932c8897f1e}</UniqueIdentifier> + </Filter> + </ItemGroup> + <ItemGroup> + <ClCompile Include="common_f2c.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="complexify.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="DGELSY1.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="ZGELSY1.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="doldqr.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="intddet.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="intdgebal.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="intdgecon.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="intdgees0.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="intdgees1.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="intdgehrd.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="intdgelsy.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="intdgeqpf3.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="intdgeqpf4.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="intdgesv3.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="intdgesv4.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="intdgesvd1.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="intdgesvd2.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="intdgetrf.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="intdgetri.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="intdggbal.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="intdgges.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="intdoldsvd.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="intdpotrf.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="intfschur.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="intgschur.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="intogschur.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="intoschur.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="intozgschur.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="intzdet.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="intzfschur.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="intzgebal.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="intzgecon.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="intzgees0.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="intzgees1.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="intzgehrd.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="intzgelsy.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="intzgeqpf3.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="intzgeqpf4.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="intzgesv3.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="intzgesv4.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="intzgesvd1.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="intzgesvd2.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="intzgetrf.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="intzgetri.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="intzggbal.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="intzgges.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="intzgschur.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="intzoldsvd.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="intzpotrf.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="intzschur.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="issymmetric.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="scischur.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="writebuf.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="zoldqr.c"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> + <ItemGroup> + <f2c_rule Include="complexify.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="DGELSY1.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="ZGELSY1.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="doldqr.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="intddet.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="intdgebal.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="intdgecon.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="intdgees0.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="intdgees1.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="intdgehrd.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="intdgelsy.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="intdgeqpf3.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="intdgeqpf4.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="intdgesv3.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="intdgesv4.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="intdgesvd1.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="intdgesvd2.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="intdgetrf.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="intdgetri.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="intdggbal.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="intdgges.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="intdoldsvd.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="intdpotrf.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="intfschur.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="intgschur.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="intogschur.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="intoschur.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="intozgschur.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="intzdet.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="intzfschur.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="intzgebal.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="intzgecon.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="intzgees0.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="intzgees1.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="intzgehrd.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="intzgelsy.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="intzgeqpf3.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="intzgeqpf4.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="intzgesv3.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="intzgesv4.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="intzgesvd1.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="intzgesvd2.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="intzgetrf.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="intzgetri.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="intzggbal.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="intzgges.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="intzgschur.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="intzoldsvd.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="intzpotrf.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="intzschur.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="issymmetric.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="scischur.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="writebuf.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + <f2c_rule Include="zoldqr.f"> + <Filter>Fortran files</Filter> + </f2c_rule> + </ItemGroup> + <ItemGroup> + <None Include="..\..\sci_gateway\linear_algebra_gateway.xml" /> + <None Include="..\..\Makefile.am" /> + <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="elementary_functions_f_Import.def"> + <Filter>Libraries Dependencies</Filter> + </None> + <None Include="Core_f_Import.def"> + <Filter>Libraries Dependencies</Filter> + </None> + </ItemGroup> +</Project> diff --git a/modules/linear_algebra/src/fortran/output_stream_Import.def b/modules/linear_algebra/src/fortran/output_stream_Import.def new file mode 100755 index 000000000..821ba5757 --- /dev/null +++ b/modules/linear_algebra/src/fortran/output_stream_Import.def @@ -0,0 +1,7 @@ +LIBRARY output_stream.dll + + +EXPORTS + +msgs_ +error_
\ No newline at end of file diff --git a/modules/linear_algebra/src/fortran/scischur.f b/modules/linear_algebra/src/fortran/scischur.f new file mode 100755 index 000000000..f819d2a38 --- /dev/null +++ b/modules/linear_algebra/src/fortran/scischur.f @@ -0,0 +1,67 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) INRIA +c$ +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +c$ + logical function scischur(re,im) + INCLUDE 'stack.h' + logical scifunction, createcvar + common /scisch/ lf, nx, nf + integer iadr + double precision re, im +c + iadr(l) = l+l-1 +c + scischur=.false. + if(.not.createcvar(nx,'d',1,1,1,lx,lc)) return + stk(lx)=re + stk(lx+1)=im + if(.not.scifunction(nx,lf,1,1)) return +c stk(lx)=fct([re,im]) evaluated by scilab fct pointed to by lf + ilx=iadr(lx-2) + if(istk(ilx).eq.1) then + scischur=(stk(lx).ne.0.0d0) + elseif (istk(ilx).eq.4) then + scischur=(istk(ilx+3).ne.0) + endif + return + end + + logical function scichk() +c checks fct passed to schur + INCLUDE 'stack.h' + logical scifunction, createcvar +c + integer iadr + common/ierinv/iero + common /scisch/ lf, nx, nf + iadr(l) = l+l-1 + scichk=.false. + if(.not.createcvar(nx,'d',1,1,1,lx,lc)) return + stk(lx)=1.0d0 + stk(lx+1)=1.0d0 + if(.not.scifunction(nx,lf,1,1)) then +c error into fct passed to schur (schur(A,tst)) + return + endif +c check return value of fct + ilx=iadr(lx-2) + if(istk(ilx).ne.1 .and. istk(ilx).ne.4) then + err=nf + call error(268) + return + endif + if(istk(ilx+1)*istk(ilx+2).ne.1) then + err=nf + call error(268) + return + endif + scichk=.true. + return + end + + diff --git a/modules/linear_algebra/src/fortran/scischur.lo b/modules/linear_algebra/src/fortran/scischur.lo new file mode 100755 index 000000000..61a1165b7 --- /dev/null +++ b/modules/linear_algebra/src/fortran/scischur.lo @@ -0,0 +1,12 @@ +# src/fortran/scischur.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/scischur.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/src/fortran/writebuf.f b/modules/linear_algebra/src/fortran/writebuf.f new file mode 100755 index 000000000..d390feeba --- /dev/null +++ b/modules/linear_algebra/src/fortran/writebuf.f @@ -0,0 +1,70 @@ + +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) 2007-2008 - INRIA - Allan CORNET <allan.cornet@inria.fr> +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 writebufdgesv3(buffer,r) + + character*(*) buffer + double precision r + + write(buffer(1:13),'(1pd13.4)') r + + end +c ==================================== + subroutine writebufdgesv4(buffer,r) + + character*(*) buffer + double precision r + + write(buffer(1:13),'(1pd13.4)') r + + end +c ==================================== + subroutine writebufdgetri(buffer,r) + + character*(*) buffer + double precision r + + write(buffer(1:13),'(1pd13.4)') r + + end +c ==================================== + subroutine writebufzgesv3(buffer,r) + + character*(*) buffer + double precision r + + write(buffer(1:13),'(1pd13.4)') r + + end +c ==================================== + subroutine writebufzgesv4(buffer,r) + + character*(*) buffer + double precision r + + write(buffer(1:13),'(1pd13.4)') r + + end +c ==================================== + subroutine writebufzgetri(buffer,r) + + character*(*) buffer + double precision r + + write(buffer(1:13),'(1pd13.4)') r + + end +c ==================================== + + + diff --git a/modules/linear_algebra/src/fortran/writebuf.lo b/modules/linear_algebra/src/fortran/writebuf.lo new file mode 100755 index 000000000..cc24d4394 --- /dev/null +++ b/modules/linear_algebra/src/fortran/writebuf.lo @@ -0,0 +1,12 @@ +# src/fortran/writebuf.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/writebuf.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/src/fortran/zoldqr.f b/modules/linear_algebra/src/fortran/zoldqr.f new file mode 100755 index 000000000..e8c3b9c37 --- /dev/null +++ b/modules/linear_algebra/src/fortran/zoldqr.f @@ -0,0 +1,153 @@ +c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +c Copyright (C) INRIA +c$ +c This file must be used under the terms of the CeCILL. +c This source file is licensed as described in the file COPYING, which +c you should have received as part of this distribution. The terms +c are also available at +c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +c$ + subroutine zoldqr(tol,fname) + +c [Q,R,rk,E]=qr(A,tol) +c [Q,R,rk,E]=qr(A) + + include 'stack.h' + logical getrhsvar,createvar + logical checklhs,checkrhs + + character fname*(*) + double precision ONE, DZERO,eps,tt,tol + parameter ( ONE=1.0D0, DZERO=0.0D0) + complex*16 ZERO + parameter ( ZERO=(0.0D0,0.0D0) ) + + + minrhs=1 + maxrhs=2 + minlhs=1 + maxlhs=4 + eps=stk(leps) +c + if(.not.checkrhs(fname,minrhs,maxrhs)) return + if(.not.checklhs(fname,minlhs,maxlhs)) return + + if(.not.getrhsvar(1,'z', M, N, lA)) return + if(M.eq.0 .or.N.eq.0) then + if(.not.createvar(2,'z', 0, 0, lQ)) return + if(.not.createvar(3,'z', 0, 0, lR)) return + if(.not.createvar(4,'d', 1, 1, lrk)) return + stk(lrk)=0.0d0 + if(.not.createvar(5,'d', 0, 0, lE)) return + lhsvar(1) = 2 + lhsvar(2) = 3 + lhsvar(3) = 4 + lhsvar(4) = 5 + return + elseif(M.eq.-1 .or.N.eq.-1) then + err=1 + call error(271) + return + endif + if(.not.createvar(2,'z', M, M, lQ)) return + if(.not.createvar(3,'z', M, N, lR)) return + if(.not.createvar(4,'d', N, N, lE)) return + if(.not.createvar(5,'i', 1, N, lJPVT)) return + if(.not.createvar(6,'d', 1, 1, lrk)) return + k=7 + if(.not.createvar(k,'z', 1, min(M,N), lTAU)) return + if(.not.createvar(k+1,'d', 1, 2*N, lRWORK)) return + LWORKMIN = N + LWORK=maxvol(k+2,'z') + if(LWORK.le.LWORKMIN) then + err=2*(LWORK-LWORKMIN) + call error(17) + return + endif + if(.not.createvar(k+2,'z', 1, LWORK, lDWORK)) return + + if(lhs.le.2) then + call ZGEQRF(M,N,zstk(lA),M,zstk(lTAU),zstk(lDWORK), + $ LWORK, INFO ) +c SUBROUTINE ZGEQRF( M, N, A, LDA, TAU, WORK, LWORK, INFO ) + else + do 5 i = 1, N + istk(lJPVT+i-1) = 0 + 5 continue + call ZGEQPF(M,N,zstk(lA), M,istk(lJPVT),zstk(lTAU), + $ zstk(lDWORK), stk(lRWORK), INFO ) +c SUBROUTINE ZGEQPF( M, N, A, LDA, JPVT, TAU, WORK, RWORK, INFO ) + endif + if(info.ne.0) then + return + endif + + call ZLACPY( 'U', M, N, zstk(lA), M, zstk(lR), M ) +c SUBROUTINE ZLACPY( UPLO, M, N, A, B, LDB ) +C if(N.ge.2) then + if(M.gt.N) then + do 20 j = 1, N + do 10 i = j+1, M + ij = i+(j-1)*M + zstk(lR+ij-1) = ZERO + 10 continue + 20 continue + else + do 40 j = 1, M-1 + do 30 i = j+1, M + ij = i+(j-1)*M + zstk(lR+ij-1) = ZERO + 30 continue + 40 continue + endif +C endif + + if(M.gt.N) then + call ZLACPY( 'F', M, N, zstk(lA), M, zstk(lQ), M ) +c SUBROUTINE ZLACPY( UPLO, M, N, A, LDA, B, LDB ) + do 60 j = N+1, M + do 50 i = 1, M + ij = i+(j-1)*M + zstk(lQ+ij-1) = ZERO + 50 continue + 60 continue + else + call ZLACPY( 'F', M, M, zstk(lA), M, zstk(lQ), M ) +c SUBROUTINE ZLACPY( UPLO, M, N, A, B, LDB ) + endif + call ZUNGQR( M, M, min(M,N), zstk(lQ), M, zstk(lTAU), + $ zstk(lDWORK), LWORK, INFO ) +c SUBROUTINE ZUNGQR( M, N, K, A, LDA, TAU, WORK, LWORK, INFO ) + + if(lhs.gt.2) then + call DLASET( 'F', N, N, DZERO, DZERO, stk(lE), N ) +c SUBROUTINE DLASET( UPLO, M, N, ALPHA, BETA, A, LDA ) + do 70 j = 1, N + i = istk(lJPVT+j-1) + ij = i + (j-1)*N + stk(lE+ij-1) = ONE + 70 continue + endif +c evaluating the rank + tt = abs(zstk(lR)) + if(tol.eq.-1.0d0) tol = dble(max(m,n)) * eps * tt + k = 0 + ls = lr + m1 = min(m,n) + do 450 j = 1,m1 + tt = abs(zstk(ls)) + if (tt .le. tol) goto 460 + k = j + ls = ls + m + 1 + 450 continue + 460 continue + +c + stk(lrk)=dble(k) + lhsvar(1)=2 + lhsvar(2)=3 + lhsvar(3)=6 + lhsvar(4)=4 +c + end + diff --git a/modules/linear_algebra/src/fortran/zoldqr.lo b/modules/linear_algebra/src/fortran/zoldqr.lo new file mode 100755 index 000000000..23072c905 --- /dev/null +++ b/modules/linear_algebra/src/fortran/zoldqr.lo @@ -0,0 +1,12 @@ +# src/fortran/zoldqr.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/zoldqr.o' + +# Name of the non-PIC object +non_pic_object=none + diff --git a/modules/linear_algebra/tests/benchmarks/bench_chol.tst b/modules/linear_algebra/tests/benchmarks/bench_chol.tst new file mode 100755 index 000000000..d03eea05d --- /dev/null +++ b/modules/linear_algebra/tests/benchmarks/bench_chol.tst @@ -0,0 +1,23 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2007-2008 - INRIA +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= + +//============================================================================== +// Benchmark for chol function +//============================================================================== + +// <-- BENCH NB RUN : 10 --> + +stacksize(30000000); + +a = 0; +b = 0; +a = rand(900, 900, 'n'); +a = a'*a; + +// <-- BENCH START --> +b = chol(a); +// <-- BENCH END --> diff --git a/modules/linear_algebra/tests/benchmarks/bench_det.tst b/modules/linear_algebra/tests/benchmarks/bench_det.tst new file mode 100755 index 000000000..042d2bd63 --- /dev/null +++ b/modules/linear_algebra/tests/benchmarks/bench_det.tst @@ -0,0 +1,21 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2007-2008 - INRIA +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= + +//============================================================================== +// Benchmark for det function +//============================================================================== + +// <-- BENCH NB RUN : 10 --> + +stacksize(30000000); +a = 0; +b = 0; +a = rand(650, 650,'n'); + +// <-- BENCH START --> +b = det(a); +// <-- BENCH END --> diff --git a/modules/linear_algebra/tests/benchmarks/bench_escoufier.tst b/modules/linear_algebra/tests/benchmarks/bench_escoufier.tst new file mode 100755 index 000000000..06e76355b --- /dev/null +++ b/modules/linear_algebra/tests/benchmarks/bench_escoufier.tst @@ -0,0 +1,72 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2007-2008 - INRIA +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= + +//============================================================================== +// Benchmark for escoufier macro +//============================================================================== + +// <-- BENCH NB RUN : 10 --> + +stacksize(30000000); + +p = 0; +q = 0; +vt = 0; +vr = 0; +vrt = 0; +rvt = 0; +RV = 0; +j = 0; +k = 0; + +x2 = 0; +R = 0; +Rxx = 0; +Ryy = 0; +Rxy = 0; +Ryx = 0; +Rvmax = 0; + +f = 0; +c = 0; +d = 0; +x = abs(rand(37,37,'n')); + +// <-- BENCH START --> +// Calculation of Escoufier's equivalent vectors +p = size(x, 2); +vt = [1:p]; // Variables to test +vr = []; // Result: ordered variables +RV = [1:p]; // Result: correlations + +for j = 1:p // loop on the variable number + Rvmax = 0; + for k = 1:(p-j+1) // loop on the variables + x2 = [x, x(:, vr), x(:, vt(k))]; // New table to test + // R = corrcoef(x2); // Correlations table + // Not in scilab, so the 5 following lines do it + q = size(x2, 1); + x2 = x2 - ones (q, 1) * sum (x2, 'r') / q; + c = conj(x2' * x2 / (q - 1)); + d = diag(c); + R = c ./ sqrt(d * d'); + Ryy = R(1:p, 1:p); + Rxx = R(p+1:p+j, p+1:p+j); + Rxy = R(p+1:p+j, 1:p); + Ryx = Rxy'; + rvt = trace(Ryx*Rxy)/((trace(Ryy^2)*trace(Rxx^2))^0.5); // RV calculation + if rvt > Rvmax + Rvmax = rvt; // test of RV + vrt(j) = vt(k); // temporary held variable + end + end + vr(j) = vrt(j); // Result: variable + RV(j) = Rvmax; // Result: correlation + f = find(vt~=vr(j)); // identify the held variable + vt = vt(f); // reidentify variables to test +end +// <-- BENCH END --> diff --git a/modules/linear_algebra/tests/benchmarks/bench_inv.tst b/modules/linear_algebra/tests/benchmarks/bench_inv.tst new file mode 100755 index 000000000..28b577ca4 --- /dev/null +++ b/modules/linear_algebra/tests/benchmarks/bench_inv.tst @@ -0,0 +1,23 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2007-2008 - INRIA +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= + +//============================================================================== +// Benchmark for inv function +//============================================================================== + +// <-- BENCH NB RUN : 100 --> + +stacksize(30000000); + +a = 0; +b = 0; + +a = rand(400, 400,'n'); + +// <-- BENCH START --> +b = inv(a); +// <-- BENCH END --> diff --git a/modules/linear_algebra/tests/benchmarks/bench_matrix_1.tst b/modules/linear_algebra/tests/benchmarks/bench_matrix_1.tst new file mode 100755 index 000000000..9b3c96e0d --- /dev/null +++ b/modules/linear_algebra/tests/benchmarks/bench_matrix_1.tst @@ -0,0 +1,25 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2007-2008 - INRIA +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= + +//============================================================================== +// Benchmark for matrix function +//============================================================================== + +// <-- BENCH NB RUN : 10 --> + +stacksize(30000000); + +a = 0; +b = 0; + +a = abs(rand(1500,1500,'n')/10); + +// <-- BENCH START --> +b = a'; +a = matrix(b,750,3000); +b = a'; +// <-- BENCH END --> diff --git a/modules/linear_algebra/tests/benchmarks/bench_matrix_2.tst b/modules/linear_algebra/tests/benchmarks/bench_matrix_2.tst new file mode 100755 index 000000000..e9835bbe2 --- /dev/null +++ b/modules/linear_algebra/tests/benchmarks/bench_matrix_2.tst @@ -0,0 +1,23 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2007-2008 - INRIA +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= + +//============================================================================== +// Benchmark for matrix function +//============================================================================== + +// <-- BENCH NB RUN : 10 --> + +stacksize(30000000); + +a = 0; +b = 0; +a = abs(rand(800, 800, 'n')/2); + +// <-- BENCH START --> +b = a.^1000; +// <-- BENCH END --> + diff --git a/modules/linear_algebra/tests/benchmarks/bench_matrix_3.tst b/modules/linear_algebra/tests/benchmarks/bench_matrix_3.tst new file mode 100755 index 000000000..ba995330c --- /dev/null +++ b/modules/linear_algebra/tests/benchmarks/bench_matrix_3.tst @@ -0,0 +1,22 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2007-2008 - INRIA +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= + +//============================================================================== +// Benchmark for matrix ops +//============================================================================== + +// <-- BENCH NB RUN : 10 --> + +stacksize(30000000); + +a = 0; +b = 0; +a = rand(700,700,'n'); + +// <-- BENCH START --> +b = a'*a; +// <-- BENCH END --> diff --git a/modules/linear_algebra/tests/benchmarks/bench_matrix_4.tst b/modules/linear_algebra/tests/benchmarks/bench_matrix_4.tst new file mode 100755 index 000000000..588e82713 --- /dev/null +++ b/modules/linear_algebra/tests/benchmarks/bench_matrix_4.tst @@ -0,0 +1,25 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2007-2008 - INRIA +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= + +//============================================================================== +// Benchmark for matrix ops +//============================================================================== + +// <-- BENCH NB RUN : 10 --> + +stacksize(30000000); + +a = 0; +b = 0; + +a = rand(600,600,'n'); +b = 1:600; +b = b'; + +// <-- BENCH START --> +c = a\b; +// <-- BENCH END --> diff --git a/modules/linear_algebra/tests/benchmarks/bench_spec.tst b/modules/linear_algebra/tests/benchmarks/bench_spec.tst new file mode 100755 index 000000000..d6bf9d9b0 --- /dev/null +++ b/modules/linear_algebra/tests/benchmarks/bench_spec.tst @@ -0,0 +1,23 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2007-2008 - INRIA +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= + +//============================================================================== +// Benchmark for spec function +//============================================================================== + +// <-- BENCH NB RUN : 10 --> + +stacksize(30000000); + +a = 0; +b = 0; + +a = rand(320,320,'n'); + +// <-- BENCH START --> +b = spec(a); +// <-- BENCH END --> diff --git a/modules/linear_algebra/tests/benchmarks/bench_sqroot.tst b/modules/linear_algebra/tests/benchmarks/bench_sqroot.tst new file mode 100755 index 000000000..ba0fd93db --- /dev/null +++ b/modules/linear_algebra/tests/benchmarks/bench_sqroot.tst @@ -0,0 +1,19 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2007-2008 - INRIA +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= + +//============================================================================== +// Benchmark for sqroot function +//============================================================================== + +// <-- BENCH NB RUN : 10000 --> + +X = rand(5,2)*rand(2,5); +X = X*X'; + +// <-- BENCH START --> +W = sqroot(X); +// <-- BENCH END --> diff --git a/modules/linear_algebra/tests/benchmarks/bench_sva.tst b/modules/linear_algebra/tests/benchmarks/bench_sva.tst new file mode 100755 index 000000000..ea64e4338 --- /dev/null +++ b/modules/linear_algebra/tests/benchmarks/bench_sva.tst @@ -0,0 +1,18 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2007-2008 - INRIA +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= + +//============================================================================== +// Benchmark for sva function +//============================================================================== + +// <-- BENCH NB RUN : 1000 --> + +A = rand(50,40)*rand(40,50); + +// <-- BENCH START --> +[U,s,V] = sva(A,2); +// <-- BENCH END --> diff --git a/modules/linear_algebra/tests/benchmarks/bench_svd_1.tst b/modules/linear_algebra/tests/benchmarks/bench_svd_1.tst new file mode 100755 index 000000000..97f6e4335 --- /dev/null +++ b/modules/linear_algebra/tests/benchmarks/bench_svd_1.tst @@ -0,0 +1,27 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2007-2008 - INRIA +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= + +//============================================================================== +// Benchmark for svd 1 +//============================================================================== + +// <-- BENCH NB RUN : 10 --> + +stacksize(30000000); + +a = 0; +b = 0; + +a=rand(300,300); + +b = a*a'; +[c,d] = lu(b); +inv(a); + +// <-- BENCH START --> +v = svd(a); +// <-- BENCH END --> diff --git a/modules/linear_algebra/tests/benchmarks/bench_svd_2.tst b/modules/linear_algebra/tests/benchmarks/bench_svd_2.tst new file mode 100755 index 000000000..c54fa281f --- /dev/null +++ b/modules/linear_algebra/tests/benchmarks/bench_svd_2.tst @@ -0,0 +1,27 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2007-2008 - INRIA +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= + +//============================================================================== +// Benchmark for svd 2 +//============================================================================== + +// <-- BENCH NB RUN : 10 --> + +stacksize(30000000); + +a = 0; +b = 0; + +a=rand(300,300); + +b = a*a'; +[c,d] = lu(b); +inv(a); + +// <-- BENCH START --> +[u,s,v]=svd(a); +// <-- BENCH END --> diff --git a/modules/linear_algebra/tests/nonreg_tests/bug_10178.dia.ref b/modules/linear_algebra/tests/nonreg_tests/bug_10178.dia.ref new file mode 100755 index 000000000..91b46084a --- /dev/null +++ b/modules/linear_algebra/tests/nonreg_tests/bug_10178.dia.ref @@ -0,0 +1,40 @@ +// ============================================================================= +// 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 --> +// <-- Non-regression test for bug 10178 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=10178 +// +// <-- Short Description --> +// norm function falied for some sparse matrices. +// ============================================================================= +A = [1 0 0 1 0;0 -1 -1 0 -1]; +AS = sparse(A); +assert_checkalmostequal(norm(A), norm(AS)); +assert_checkalmostequal(norm(A'), norm(AS')); +assert_checkequal(norm(A, 1), norm(AS, 1)); +assert_checkequal(norm(A, %inf), norm(AS, %inf)); +assert_checkequal(norm(A, 'fro'), norm(AS, 'fro')); +A = [1 1 1 1 1;-1 -1 -1 -1 -1]; +AS = sparse(A); +assert_checkalmostequal(norm(A), norm(AS)); +assert_checkalmostequal(norm(A)', norm(AS)'); +assert_checkequal(norm(A, 1), norm(AS, 1)); +assert_checkequal(norm(A, %inf), norm(AS, %inf)); +assert_checkequal(norm(A, 'fro'), norm(AS, 'fro')); +A = [ + 0. 0. 0. 0. 0. + 0. 0. 0. 0. 0. + 0. 0. -1. 0. 1. + 0. 0. 0. 0. 0. + 0. 0. 1. 0. -1. ]; +AS = sparse(A); +assert_checkequal(norm(A), norm(AS)); +assert_checkequal(norm(A, 1), norm(AS, 1)); +assert_checkequal(norm(A, %inf), norm(AS, %inf)); +assert_checkequal(norm(A, 'fro'), norm(AS, 'fro')); diff --git a/modules/linear_algebra/tests/nonreg_tests/bug_10178.tst b/modules/linear_algebra/tests/nonreg_tests/bug_10178.tst new file mode 100755 index 000000000..9e4800334 --- /dev/null +++ b/modules/linear_algebra/tests/nonreg_tests/bug_10178.tst @@ -0,0 +1,50 @@ +// ============================================================================= +// 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 --> + +// <-- Non-regression test for bug 10178 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=10178 +// +// <-- Short Description --> +// norm function falied for some sparse matrices. +// ============================================================================= + +A = [1 0 0 1 0;0 -1 -1 0 -1]; +AS = sparse(A); + +assert_checkalmostequal(norm(A), norm(AS)); +assert_checkalmostequal(norm(A'), norm(AS')); +assert_checkequal(norm(A, 1), norm(AS, 1)); +assert_checkequal(norm(A, %inf), norm(AS, %inf)); +assert_checkequal(norm(A, 'fro'), norm(AS, 'fro')); + +A = [1 1 1 1 1;-1 -1 -1 -1 -1]; +AS = sparse(A); + +assert_checkalmostequal(norm(A), norm(AS)); +assert_checkalmostequal(norm(A)', norm(AS)'); +assert_checkequal(norm(A, 1), norm(AS, 1)); +assert_checkequal(norm(A, %inf), norm(AS, %inf)); +assert_checkequal(norm(A, 'fro'), norm(AS, 'fro')); + + +A = [ + 0. 0. 0. 0. 0. + 0. 0. 0. 0. 0. + 0. 0. -1. 0. 1. + 0. 0. 0. 0. 0. + 0. 0. 1. 0. -1. ]; + +AS = sparse(A); + +assert_checkequal(norm(A), norm(AS)); +assert_checkequal(norm(A, 1), norm(AS, 1)); +assert_checkequal(norm(A, %inf), norm(AS, %inf)); +assert_checkequal(norm(A, 'fro'), norm(AS, 'fro')); diff --git a/modules/linear_algebra/tests/nonreg_tests/bug_10281.dia.ref b/modules/linear_algebra/tests/nonreg_tests/bug_10281.dia.ref new file mode 100755 index 000000000..90e6c5ae7 --- /dev/null +++ b/modules/linear_algebra/tests/nonreg_tests/bug_10281.dia.ref @@ -0,0 +1,25 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2012 - Scilab Enterprises - Sylvestre Ledru +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// +// <-- CLI SHELL MODE --> +// +// <-- Non-regression test for bug 10281 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=10281 +// +// <-- Short Description --> +// lyap segfaults in some cases +s=poly(0,'s'); +A=[-1 10;0 1];B=[-2;0];C=[-2 3];D=[-2]; +sis57=syslin('c',A,B,C,D); +ss2tf(sis57); +gs=C*inv((s*eye(2,2)-A))*B+D; +C=[1 1]; +A=[0 1;-0.5 -1]; +X=lyap(A,C,'c'); +assert_checkalmostequal(X,[-1.5,-1]); diff --git a/modules/linear_algebra/tests/nonreg_tests/bug_10281.tst b/modules/linear_algebra/tests/nonreg_tests/bug_10281.tst new file mode 100755 index 000000000..fefe52866 --- /dev/null +++ b/modules/linear_algebra/tests/nonreg_tests/bug_10281.tst @@ -0,0 +1,28 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2012 - Scilab Enterprises - Sylvestre Ledru +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// +// <-- CLI SHELL MODE --> +// +// <-- Non-regression test for bug 10281 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=10281 +// +// <-- Short Description --> +// lyap segfaults in some cases + +s=poly(0,'s'); +A=[-1 10;0 1];B=[-2;0];C=[-2 3];D=[-2]; +sis57=syslin('c',A,B,C,D); +ss2tf(sis57); + +gs=C*inv((s*eye(2,2)-A))*B+D; + +C=[1 1]; +A=[0 1;-0.5 -1]; +X=lyap(A,C,'c'); +assert_checkalmostequal(X,[-1.5,-1]); diff --git a/modules/linear_algebra/tests/nonreg_tests/bug_10519.dia.ref b/modules/linear_algebra/tests/nonreg_tests/bug_10519.dia.ref new file mode 100755 index 000000000..6b73bfebc --- /dev/null +++ b/modules/linear_algebra/tests/nonreg_tests/bug_10519.dia.ref @@ -0,0 +1,22 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2012 - DIGITEO - Vincent COUVERT +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// +// <-- CLI SHELL MODE --> +// +// <-- Non-regression test for bug 10519 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=10519 +// +// <-- Short Description --> +// Wrong error message in spec function when input arguments were not square. +// First input argument is not square +exectedMsg = msprintf(_("Wrong type for first argument: Square matrix expected.\n")); +assert_checkerror("spec(rand(1,2),rand(2,4))", exectedMsg); +// Second input argument is not square +exectedMsg = msprintf(_("Wrong type for argument #%d: Square matrix expected.\n"), 2); +assert_checkerror("spec(rand(2,2),rand(2,4))", exectedMsg); diff --git a/modules/linear_algebra/tests/nonreg_tests/bug_10519.tst b/modules/linear_algebra/tests/nonreg_tests/bug_10519.tst new file mode 100755 index 000000000..951c495f2 --- /dev/null +++ b/modules/linear_algebra/tests/nonreg_tests/bug_10519.tst @@ -0,0 +1,24 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2012 - DIGITEO - Vincent COUVERT +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// +// <-- CLI SHELL MODE --> +// +// <-- Non-regression test for bug 10519 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=10519 +// +// <-- Short Description --> +// Wrong error message in spec function when input arguments were not square. + +// First input argument is not square +exectedMsg = msprintf(_("Wrong type for first argument: Square matrix expected.\n")); +assert_checkerror("spec(rand(1,2),rand(2,4))", exectedMsg); + +// Second input argument is not square +exectedMsg = msprintf(_("Wrong type for argument #%d: Square matrix expected.\n"), 2); +assert_checkerror("spec(rand(2,2),rand(2,4))", exectedMsg);
\ No newline at end of file diff --git a/modules/linear_algebra/tests/nonreg_tests/bug_10921.dia.ref b/modules/linear_algebra/tests/nonreg_tests/bug_10921.dia.ref new file mode 100755 index 000000000..1786eafa4 --- /dev/null +++ b/modules/linear_algebra/tests/nonreg_tests/bug_10921.dia.ref @@ -0,0 +1,26 @@ +// ============================================================================= +// 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 --> +// <-- ENGLISH IMPOSED --> +// <-- Non-regression test for bug 10921 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=10921 +// +// <-- Short Description --> +// For ill-conditioned matrix, inv() prints a wrong value of rcond +M = [1 0; 0 10^(-8)]; +inv(M); +Warning : +matrix is close to singular or badly scaled. rcond = 1.0000D-08 + +A=diag([1:10]); +A(1,1) = 10^-8; +inv(A); +Warning : +matrix is close to singular or badly scaled. rcond = 1.0000D-09 + diff --git a/modules/linear_algebra/tests/nonreg_tests/bug_10921.tst b/modules/linear_algebra/tests/nonreg_tests/bug_10921.tst new file mode 100755 index 000000000..fa93a6b67 --- /dev/null +++ b/modules/linear_algebra/tests/nonreg_tests/bug_10921.tst @@ -0,0 +1,28 @@ +// =============================================================================
+// 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 -->
+
+// <-- ENGLISH IMPOSED -->
+
+// <-- Non-regression test for bug 10921 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=10921
+//
+// <-- Short Description -->
+// For ill-conditioned matrix, inv() prints a wrong value of rcond
+
+M = [1 0; 0 10^(-8)];
+inv(M);
+
+A=diag([1:10]);
+A(1,1) = 10^-8;
+inv(A);
+
+
+
diff --git a/modules/linear_algebra/tests/nonreg_tests/bug_12121.dia.ref b/modules/linear_algebra/tests/nonreg_tests/bug_12121.dia.ref new file mode 100755 index 000000000..3b6088ff4 --- /dev/null +++ b/modules/linear_algebra/tests/nonreg_tests/bug_12121.dia.ref @@ -0,0 +1,19 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2013 - Scilab Enterprises - Adeline CARNIS +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// <-- CLI SHELL MODE --> +// <-- Non-regression test for bug 12121 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=12121 +// +// <-- Short Description --> +// inv() did not work for complex sparse matrices. +// ============================================================================= +A = %i*speye(3,3); +assert_checkequal(inv(A), -A); +A = rand(5,5)*%i; +assert_checkalmostequal(full(inv(sparse(A))), inv(A)); diff --git a/modules/linear_algebra/tests/nonreg_tests/bug_12121.tst b/modules/linear_algebra/tests/nonreg_tests/bug_12121.tst new file mode 100755 index 000000000..9ae434198 --- /dev/null +++ b/modules/linear_algebra/tests/nonreg_tests/bug_12121.tst @@ -0,0 +1,23 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2013 - Scilab Enterprises - Adeline CARNIS +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= + +// <-- CLI SHELL MODE --> + +// <-- Non-regression test for bug 12121 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=12121 +// +// <-- Short Description --> +// inv() did not work for complex sparse matrices. +// ============================================================================= + +A = %i*speye(3,3); +assert_checkequal(inv(A), -A); + +A = rand(5,5)*%i; +assert_checkalmostequal(full(inv(sparse(A))), inv(A)); diff --git a/modules/linear_algebra/tests/nonreg_tests/bug_12686.dia.ref b/modules/linear_algebra/tests/nonreg_tests/bug_12686.dia.ref new file mode 100755 index 000000000..baf618a1d --- /dev/null +++ b/modules/linear_algebra/tests/nonreg_tests/bug_12686.dia.ref @@ -0,0 +1,18 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2008 - DIGITEO - Pierre MARECHAL <pierre.marechal@scilab.org> +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// <-- CLI SHELL MODE --> +// <-- ENGLISH IMPOSED --> +// <-- Non-regression test for bug 12686 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=12686 +// +// <-- Short Description --> +// diff() with zero input arguments yielded the wrong error +// Run with test_run('linear_algebra', 'bug_12686', ['no_check_error_output']) +refMsg = msprintf(_("%s: Wrong number of input arguments: %d to %d expected.\n"), "diff", 1, 3); +assert_checkerror("diff()", refMsg); diff --git a/modules/linear_algebra/tests/nonreg_tests/bug_12686.tst b/modules/linear_algebra/tests/nonreg_tests/bug_12686.tst new file mode 100755 index 000000000..e2f300ba2 --- /dev/null +++ b/modules/linear_algebra/tests/nonreg_tests/bug_12686.tst @@ -0,0 +1,22 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2008 - DIGITEO - Pierre MARECHAL <pierre.marechal@scilab.org> +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= + +// <-- CLI SHELL MODE --> +// <-- ENGLISH IMPOSED --> + +// <-- Non-regression test for bug 12686 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=12686 +// +// <-- Short Description --> +// diff() with zero input arguments yielded the wrong error + +// Run with test_run('linear_algebra', 'bug_12686', ['no_check_error_output']) + +refMsg = msprintf(_("%s: Wrong number of input arguments: %d to %d expected.\n"), "diff", 1, 3); +assert_checkerror("diff()", refMsg); diff --git a/modules/linear_algebra/tests/nonreg_tests/bug_2523.dia.ref b/modules/linear_algebra/tests/nonreg_tests/bug_2523.dia.ref new file mode 100755 index 000000000..7472c06fd --- /dev/null +++ b/modules/linear_algebra/tests/nonreg_tests/bug_2523.dia.ref @@ -0,0 +1,24 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2005-2008 - INRIA Serge Steer +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// <-- Non-regression test for bug 2523 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=2523 +// +// <-- Short Description --> +// slash and backslash matrix divisions involving vectors with %inf or %nan entries +// hang scilab +if execstr('[1 %inf]\1 ','errcatch')<>229 then bugmes();quit;end +if execstr('[1 2]\%inf ','errcatch')<>229 then bugmes();quit;end +if execstr('[1+%i %inf]\1 ','errcatch')<>229 then bugmes();quit;end +if execstr('[1+%i %inf]\%i ','errcatch')<>229 then bugmes();quit;end +if execstr('[1 %i]\%inf ','errcatch')<>229 then bugmes();quit;end +if execstr('1/[1 %inf] ','errcatch')<>229 then bugmes();quit;end +if execstr('%inf/[1 2] ','errcatch')<>229 then bugmes();quit;end +if execstr('1/[1+%i %inf] ','errcatch')<>229 then bugmes();quit;end +if execstr('%i/[1+%i %inf] ','errcatch')<>229 then bugmes();quit;end +if execstr('%inf/[1 %i] ','errcatch')<>229 then bugmes();quit;end diff --git a/modules/linear_algebra/tests/nonreg_tests/bug_2523.tst b/modules/linear_algebra/tests/nonreg_tests/bug_2523.tst new file mode 100755 index 000000000..1423437dc --- /dev/null +++ b/modules/linear_algebra/tests/nonreg_tests/bug_2523.tst @@ -0,0 +1,33 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2005-2008 - INRIA Serge Steer +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= + +// <-- Non-regression test for bug 2523 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=2523 +// +// <-- Short Description --> +// slash and backslash matrix divisions involving vectors with %inf or %nan entries +// hang scilab + + +if execstr('[1 %inf]\1 ','errcatch')<>229 then pause,end +if execstr('[1 2]\%inf ','errcatch')<>229 then pause,end + +if execstr('[1+%i %inf]\1 ','errcatch')<>229 then pause,end +if execstr('[1+%i %inf]\%i ','errcatch')<>229 then pause,end + +if execstr('[1 %i]\%inf ','errcatch')<>229 then pause,end + +if execstr('1/[1 %inf] ','errcatch')<>229 then pause,end +if execstr('%inf/[1 2] ','errcatch')<>229 then pause,end + +if execstr('1/[1+%i %inf] ','errcatch')<>229 then pause,end +if execstr('%i/[1+%i %inf] ','errcatch')<>229 then pause,end + +if execstr('%inf/[1 %i] ','errcatch')<>229 then pause,end + diff --git a/modules/linear_algebra/tests/nonreg_tests/bug_2775.dia.ref b/modules/linear_algebra/tests/nonreg_tests/bug_2775.dia.ref new file mode 100755 index 000000000..4e9133ff1 --- /dev/null +++ b/modules/linear_algebra/tests/nonreg_tests/bug_2775.dia.ref @@ -0,0 +1,23 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2008 - INRIA - Allan CORNET +// Copyright (C) 2009 - INRIA - Michael Baudin, Antoine Elias +// Copyright (C) 2010-2011 - DIGITEO - Michael Baudin +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// <-- Non-regression test for bug 2775 --> +// +// <-- CLI SHELL MODE --> +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=2775 +// +// Bibliography : +// "IEEE Standard for Floating-Point Arithmetic" +// IEEE Std 754-2008 +// 29 August 2008 +// (Revision of IEEE Std 754-1985) +res_1 = 0.0 * %nan; +res_2 = %nan * 0.0; +assert_checkequal ( res_1 , %nan ); +assert_checkequal ( res_2 , %nan ); diff --git a/modules/linear_algebra/tests/nonreg_tests/bug_2775.tst b/modules/linear_algebra/tests/nonreg_tests/bug_2775.tst new file mode 100755 index 000000000..86e7a5819 --- /dev/null +++ b/modules/linear_algebra/tests/nonreg_tests/bug_2775.tst @@ -0,0 +1,30 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2008 - INRIA - Allan CORNET +// Copyright (C) 2009 - INRIA - Michael Baudin, Antoine Elias +// Copyright (C) 2010-2011 - DIGITEO - Michael Baudin +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// <-- Non-regression test for bug 2775 --> +// +// <-- CLI SHELL MODE --> +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=2775 +// + + + +// Bibliography : +// "IEEE Standard for Floating-Point Arithmetic" +// IEEE Std 754-2008 +// 29 August 2008 +// (Revision of IEEE Std 754-1985) + +res_1 = 0.0 * %nan; +res_2 = %nan * 0.0; + +assert_checkequal ( res_1 , %nan ); +assert_checkequal ( res_2 , %nan ); + + diff --git a/modules/linear_algebra/tests/nonreg_tests/bug_3312.dia.ref b/modules/linear_algebra/tests/nonreg_tests/bug_3312.dia.ref new file mode 100755 index 000000000..f08fbc754 --- /dev/null +++ b/modules/linear_algebra/tests/nonreg_tests/bug_3312.dia.ref @@ -0,0 +1,17 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2007-2008 - INRIA - Michael Baudin +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// <-- Non-regression test for bug 3312 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=3312 +// +// <-- Short Description --> +// Wrong companion matrix when the polynomial is complex. +p=1+%i+2*%s; +computed=companion(p); +expected=[-(1+%i)/2]; +if abs(expected-computed)>%eps then bugmes();quit;end diff --git a/modules/linear_algebra/tests/nonreg_tests/bug_3312.tst b/modules/linear_algebra/tests/nonreg_tests/bug_3312.tst new file mode 100755 index 000000000..fbb974694 --- /dev/null +++ b/modules/linear_algebra/tests/nonreg_tests/bug_3312.tst @@ -0,0 +1,20 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2007-2008 - INRIA - Michael Baudin +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= + +// <-- Non-regression test for bug 3312 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=3312 +// +// <-- Short Description --> +// Wrong companion matrix when the polynomial is complex. + +p=1+%i+2*%s; +computed=companion(p); +expected=[-(1+%i)/2]; +if abs(expected-computed)>%eps then pause,end + diff --git a/modules/linear_algebra/tests/nonreg_tests/bug_3624.dia.ref b/modules/linear_algebra/tests/nonreg_tests/bug_3624.dia.ref new file mode 100755 index 000000000..d3af3c95a --- /dev/null +++ b/modules/linear_algebra/tests/nonreg_tests/bug_3624.dia.ref @@ -0,0 +1,16 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2008 - INRIA - Allan CORNET +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// <-- Non-regression test for bug 3624 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=3624 +// +// <-- Short Description --> +// Nan returned when multiplying large zero vector by its transpose. +A=zeros(1000,1); +res = A*A'; +if or(isnan(res)<>%f) then bugmes();quit;end; diff --git a/modules/linear_algebra/tests/nonreg_tests/bug_3624.tst b/modules/linear_algebra/tests/nonreg_tests/bug_3624.tst new file mode 100755 index 000000000..ffba5c266 --- /dev/null +++ b/modules/linear_algebra/tests/nonreg_tests/bug_3624.tst @@ -0,0 +1,20 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2008 - INRIA - Allan CORNET +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= + +// <-- Non-regression test for bug 3624 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=3624 +// +// <-- Short Description --> +// Nan returned when multiplying large zero vector by its transpose. + + +A=zeros(1000,1); +res = A*A'; +if or(isnan(res)<>%f) then pause,end; + diff --git a/modules/linear_algebra/tests/nonreg_tests/bug_3652.dia.ref b/modules/linear_algebra/tests/nonreg_tests/bug_3652.dia.ref new file mode 100755 index 000000000..47ac10574 --- /dev/null +++ b/modules/linear_algebra/tests/nonreg_tests/bug_3652.dia.ref @@ -0,0 +1,24 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2008 - INRIA - Allan CORNET +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// <-- Non-regression test for bug 3652 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=3652 +// +// <-- Short Description --> +// Instable behaviour of Lapack's zggev +Areal=[1 0 0;... +0 1 0;... +0 0 1]; +A = complex(Areal,0); +Ereal=[1 1e-14 0;... +1e-14 1 0;... +0 0 1]; +E = complex(Ereal,0); +Scomputed = spec(A,E); +Sexpected = [1-1e-14;1+1e-14;1]; +if norm(Scomputed - Sexpected) > 1000 * %eps then bugmes();quit;end diff --git a/modules/linear_algebra/tests/nonreg_tests/bug_3652.tst b/modules/linear_algebra/tests/nonreg_tests/bug_3652.tst new file mode 100755 index 000000000..7218d75d5 --- /dev/null +++ b/modules/linear_algebra/tests/nonreg_tests/bug_3652.tst @@ -0,0 +1,29 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2008 - INRIA - Allan CORNET +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= + +// <-- Non-regression test for bug 3652 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=3652 +// +// <-- Short Description --> +// Instable behaviour of Lapack's zggev + + +Areal=[1 0 0;... +0 1 0;... +0 0 1]; +A = complex(Areal,0); +Ereal=[1 1e-14 0;... +1e-14 1 0;... +0 0 1]; +E = complex(Ereal,0); +Scomputed = spec(A,E); +Sexpected = [1-1e-14;1+1e-14;1]; +if norm(Scomputed - Sexpected) > 1000 * %eps then pause,end + + diff --git a/modules/linear_algebra/tests/nonreg_tests/bug_3827.dia.ref b/modules/linear_algebra/tests/nonreg_tests/bug_3827.dia.ref new file mode 100755 index 000000000..a909c8648 --- /dev/null +++ b/modules/linear_algebra/tests/nonreg_tests/bug_3827.dia.ref @@ -0,0 +1,16 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2008 - DIGITEO - Allan CORNET +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// <-- Non-regression test for bug 3827 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=3827 +// +// <-- Short Description --> +// Atlas library crashs scilab with this example +a=[1 2 3;2 3 4;3 4 5]; +ev=spec(a); +if or(size(ev)<> [3 1]) then bugmes();quit;end diff --git a/modules/linear_algebra/tests/nonreg_tests/bug_3827.tst b/modules/linear_algebra/tests/nonreg_tests/bug_3827.tst new file mode 100755 index 000000000..373c8352e --- /dev/null +++ b/modules/linear_algebra/tests/nonreg_tests/bug_3827.tst @@ -0,0 +1,18 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2008 - DIGITEO - Allan CORNET +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= + +// <-- Non-regression test for bug 3827 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=3827 +// +// <-- Short Description --> +// Atlas library crashs scilab with this example + +a=[1 2 3;2 3 4;3 4 5]; +ev=spec(a); +if or(size(ev)<> [3 1]) then pause,end diff --git a/modules/linear_algebra/tests/nonreg_tests/bug_4042.dia.ref b/modules/linear_algebra/tests/nonreg_tests/bug_4042.dia.ref new file mode 100755 index 000000000..9796383f9 --- /dev/null +++ b/modules/linear_algebra/tests/nonreg_tests/bug_4042.dia.ref @@ -0,0 +1,28 @@ +// ============================================================================= +// 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 --> +// <-- Non-regression test for bug 4042 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=4042 +// +// <-- Short Description --> +// squeeze(A(1,1,:)) returned an hypermatrix instead a matrix +// ============================================================================= +A=ones(3,3); +A(:,:,2)=3*ones(3,3); +A(:,:,3)=-1*ones(3,3); +B=squeeze(A(1,1,:)); +assert_checkequal(type(B), 1); +// In Scilab 6, the hypermatrix type won't exist +v = getversion('scilab'); +if v(1) > 5 then + C(:,:,1) = zeros(32,32); + C(:,:,2) = zeros(32,32); + assert_checkequal(typeof(C(:,:,1)), "constant"); + assert_checkequal(typeof(C(1,:,:)), "constant"); +end diff --git a/modules/linear_algebra/tests/nonreg_tests/bug_4042.tst b/modules/linear_algebra/tests/nonreg_tests/bug_4042.tst new file mode 100755 index 000000000..ea5e8b139 --- /dev/null +++ b/modules/linear_algebra/tests/nonreg_tests/bug_4042.tst @@ -0,0 +1,33 @@ +// ============================================================================= +// 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 --> + +// <-- Non-regression test for bug 4042 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=4042 +// +// <-- Short Description --> +// squeeze(A(1,1,:)) returned an hypermatrix instead a matrix +// ============================================================================= + +A=ones(3,3); +A(:,:,2)=3*ones(3,3); +A(:,:,3)=-1*ones(3,3); +B=squeeze(A(1,1,:)); + +assert_checkequal(type(B), 1); + +// In Scilab 6, the hypermatrix type won't exist +v = getversion('scilab'); +if v(1) > 5 then + C(:,:,1) = zeros(32,32); + C(:,:,2) = zeros(32,32); + assert_checkequal(typeof(C(:,:,1)), "constant"); + assert_checkequal(typeof(C(1,:,:)), "constant"); +end diff --git a/modules/linear_algebra/tests/nonreg_tests/bug_4311.dia.ref b/modules/linear_algebra/tests/nonreg_tests/bug_4311.dia.ref new file mode 100755 index 000000000..670c84377 --- /dev/null +++ b/modules/linear_algebra/tests/nonreg_tests/bug_4311.dia.ref @@ -0,0 +1,15 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2008 - DIGITEO - Pierre MARECHAL <pierre.marechal@scilab.org> +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// <-- CLI SHELL MODE --> +// <-- Non-regression test for bug 4311 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=4311 +// +// <-- Short Description --> +// rcond(eye()) returns eye() instead of 1. +if rcond(eye()) <> 1 then bugmes();quit;end diff --git a/modules/linear_algebra/tests/nonreg_tests/bug_4311.tst b/modules/linear_algebra/tests/nonreg_tests/bug_4311.tst new file mode 100755 index 000000000..c4d5fe168 --- /dev/null +++ b/modules/linear_algebra/tests/nonreg_tests/bug_4311.tst @@ -0,0 +1,18 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2008 - DIGITEO - Pierre MARECHAL <pierre.marechal@scilab.org> +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= + +// <-- CLI SHELL MODE --> + +// <-- Non-regression test for bug 4311 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=4311 +// +// <-- Short Description --> +// rcond(eye()) returns eye() instead of 1. + +if rcond(eye()) <> 1 then pause,end diff --git a/modules/linear_algebra/tests/nonreg_tests/bug_4405.dia.ref b/modules/linear_algebra/tests/nonreg_tests/bug_4405.dia.ref new file mode 100755 index 000000000..ed870c128 --- /dev/null +++ b/modules/linear_algebra/tests/nonreg_tests/bug_4405.dia.ref @@ -0,0 +1,19 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2013 - Scilab Enterprises - Charlotte HECQUET +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// +// <-- CLI SHELL MODE --> +// +// <-- Non-regression test for bug 4405 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=4405 +// +// <-- Short Description --> +// Calling sequence [Q,R,rk,E]=qr(A,"e") should return an error +A=[1 2; 3 4; 5 6]; +expectedMsg = msprintf(_("%s: Wrong type for input argument #%d: Real scalar expected.\n"), "qr", 2); +assert_checkerror("[Q,R,rk,E]=qr(A,""e"")",expectedMsg); diff --git a/modules/linear_algebra/tests/nonreg_tests/bug_4405.tst b/modules/linear_algebra/tests/nonreg_tests/bug_4405.tst new file mode 100755 index 000000000..c0bea2498 --- /dev/null +++ b/modules/linear_algebra/tests/nonreg_tests/bug_4405.tst @@ -0,0 +1,20 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2013 - Scilab Enterprises - Charlotte HECQUET +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// +// <-- CLI SHELL MODE --> +// +// <-- Non-regression test for bug 4405 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=4405 +// +// <-- Short Description --> +// Calling sequence [Q,R,rk,E]=qr(A,"e") should return an error + +A=[1 2; 3 4; 5 6]; +expectedMsg = msprintf(_("%s: Wrong type for input argument #%d: Real scalar expected.\n"), "qr", 2); +assert_checkerror("[Q,R,rk,E]=qr(A,""e"")",expectedMsg); diff --git a/modules/linear_algebra/tests/nonreg_tests/bug_4425.dia.ref b/modules/linear_algebra/tests/nonreg_tests/bug_4425.dia.ref new file mode 100755 index 000000000..c260b308f --- /dev/null +++ b/modules/linear_algebra/tests/nonreg_tests/bug_4425.dia.ref @@ -0,0 +1,29 @@ +// ============================================================================= +// 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 --> +// <-- Non-regression test for bug 4425 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=4425 +// +// <-- Short Description --> +// After [U,S] = schur(A), U * S * U' is not equal to A +// ============================================================================= +function r=Err(x) + r=norm(x,1) +endfunction +function A = testmat1(a, n) + //eigen values are given by a dilation of nth roots of 1 + A = diag(a * ones(1, n - 1), 1) + diag((1 / a) * ones(1, n - 1), -1) + A(1,n) = 1 / a; A(n,1) = a +endfunction +A = testmat1(3,5); +Ac = testmat1(3 + %i,5); +[U, S] = schur(A); +assert_checkalmostequal(Err(U*S*U'-A), 0, [], 200 * %eps); +[U, S] = schur(Ac); +assert_checkalmostequal(Err(U*S*U'-Ac), 0, [], 200 * %eps); diff --git a/modules/linear_algebra/tests/nonreg_tests/bug_4425.tst b/modules/linear_algebra/tests/nonreg_tests/bug_4425.tst new file mode 100755 index 000000000..068de036d --- /dev/null +++ b/modules/linear_algebra/tests/nonreg_tests/bug_4425.tst @@ -0,0 +1,39 @@ +// =============================================================================
+// 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 -->
+
+// <-- Non-regression test for bug 4425 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=4425
+//
+// <-- Short Description -->
+// After [U,S] = schur(A), U * S * U' is not equal to A
+// =============================================================================
+
+function r=Err(x)
+ r=norm(x,1)
+endfunction
+
+function A = testmat1(a, n)
+ //eigen values are given by a dilation of nth roots of 1
+ A = diag(a * ones(1, n - 1), 1) + diag((1 / a) * ones(1, n - 1), -1)
+ A(1,n) = 1 / a; A(n,1) = a
+endfunction
+
+A = testmat1(3,5);
+Ac = testmat1(3 + %i,5);
+
+[U, S] = schur(A);
+assert_checkalmostequal(Err(U*S*U'-A), 0, [], 200 * %eps);
+
+[U, S] = schur(Ac);
+assert_checkalmostequal(Err(U*S*U'-Ac), 0, [], 200 * %eps);
+
+
+
diff --git a/modules/linear_algebra/tests/nonreg_tests/bug_4759.dia.ref b/modules/linear_algebra/tests/nonreg_tests/bug_4759.dia.ref new file mode 100755 index 000000000..55c61e6a8 --- /dev/null +++ b/modules/linear_algebra/tests/nonreg_tests/bug_4759.dia.ref @@ -0,0 +1,16 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2009 - DIGITEO - Vincent COUVERT +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// <-- CLI SHELL MODE --> +// <-- Non-regression test for bug 4759 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=4759 +// +// <-- Short Description --> +// We should provide a better error message in nlev when called with no input argument +execstr("nlev","errcatch"); +if lasterror()<>msprintf(gettext("%s: Wrong number of input arguments: %d or %d expected.\n"),"nlev",2,3) then bugmes();quit;end diff --git a/modules/linear_algebra/tests/nonreg_tests/bug_4759.tst b/modules/linear_algebra/tests/nonreg_tests/bug_4759.tst new file mode 100755 index 000000000..6a556b85d --- /dev/null +++ b/modules/linear_algebra/tests/nonreg_tests/bug_4759.tst @@ -0,0 +1,23 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2009 - DIGITEO - Vincent COUVERT +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= + +// <-- CLI SHELL MODE --> + +// <-- Non-regression test for bug 4759 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=4759 +// +// <-- Short Description --> +// We should provide a better error message in nlev when called with no input argument + +execstr("nlev","errcatch"); + +if lasterror()<>msprintf(gettext("%s: Wrong number of input arguments: %d or %d expected.\n"),"nlev",2,3) then pause;end + + + diff --git a/modules/linear_algebra/tests/nonreg_tests/bug_5017.dia.ref b/modules/linear_algebra/tests/nonreg_tests/bug_5017.dia.ref new file mode 100755 index 000000000..f39147927 --- /dev/null +++ b/modules/linear_algebra/tests/nonreg_tests/bug_5017.dia.ref @@ -0,0 +1,173 @@ +// ============================================================================= +// 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 5017 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=5017 +// +// <-- Short Description --> +// norm() now calls Lapack. +// Checking sparse compatibility +rand("seed", 0); +A = rand(10, 10); +n = norm(sparse(A)); +assert_checkalmostequal(n, 5.0884897363846); +//--------------------------------------------------- +// Now, we make sure that the new implementation +// of norm() yiels the same results as the old one, +// with respect to the machine precision. +// Square root of 5, with a 10^-307 padding. +x1 = 1.e-307*[1 1 1 1 1]; +y1 = norm(x1); +// Square root of 3, with a 10^-307 padding. +x2 = 1.e-307*[1 1 1]; +z1 = norm(x2); +// Now compute the same values with the old norm function: +warning("off"); +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) ????-2008 - INRIA +// Copyright (C) 2009 - INRIA Michael Baudin +// Copyright (C) 2012 - Scilab Enterprises - Adeline CARNIS +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt +// +// norm -- +// Returns the norm of the given vector/matrix A. +// Uses scaling to improve accuracy for Pythagorean sums. +// References +// Moler C, Morrison D. +// Replacing square roots by pythagorean sums. +// IBM Journal of Research and Development 1983; 27(6):577-581. +// +function y=norm(A,flag) + //compute various matrix norms + if argn(2)==1 then flag=2,end + if type(A)==1 then + if A==[] then y=0,return,end + if or(size(A)==1) then // vector norm + if type(flag)==10 then //'inf' or 'fro' + select convstr(part(flag,1)) + case "i" then //'inf' + y=max(abs(A)) + case "f" then //'fro' + A=A(:) + // + // Scaling for better floating point accuracy. + // + // + s = max(abs(A)); + if s==0.0 then + y=sqrt(A'*A); + else + sA = A/s; + // return real result + y = s * sqrt(abs(sA'*sA)); + end + else + error("invalid value for flag") + end + elseif type(flag)==1 then //p_norm + p=flag; + if ~isreal(p) then + error("flag must be real") + end + if p==%inf then + y=max(abs(A)) + elseif p==1 then + y=sum(abs(A)) + elseif p==-%inf then + y=min(abs(A)) + elseif isnan(p) then + y=%nan + elseif p==0 then + y=%inf + else + // + // Scaling for better floating point accuracy. + // + s = max(abs(A)); + if s==0.0 then + y=sum(abs(A).^p)^(1/p); + else + sA = A/s; + y = s * sum(abs(sA).^p)^(1/p); + end + end + else + error("invalid value for flag") + end + else //matrix norm + if type(flag)==10 then //'inf' or 'fro' + select convstr(part(flag,1)) + case "i" then //'inf' + y=max(sum(abs(A),2)) + case "f" then //'fro' + // + // Scaling for better floating point accuracy. + // + s = max(abs(A)); + if s==0.0 then + if size(A,1)>size(A,2) then + y=sqrt(sum(diag(A'*A))) + else + y=sqrt(sum(diag(A*A'))) + end + else + sA = A/s; + if size(A,1)>size(A,2) then + // return real result + y = s * sqrt(sum(abs(diag(sA'*sA)))) + else + y = s * sqrt(sum(abs(diag(sA*sA')))) + end + end + else + error("invalid value for flag") + end + elseif type(flag)==1 then //p_norm + p=flag; + select p + case 1 then + y=max(sum(abs(A),1)) + case 2 then + y=max(svd(A)) + case %inf then + y=max(sum(abs(A),2)) + else + error("flag must be 1 2 or inf") + end + else + error("invalid value for flag") + end + end + else + if type(A)==16|type(A)==17 then + n=getfield(1,A);n=n(1) + else + [t,n]=typename() + n=stripblanks(n(find(t==type(A)))) + end + fun="%"+n+"_norm" + if exists(fun)==1 then + execstr("y="+fun+"(A,flag)") + else + error("norm not defined for type """+n+""" ."+.. + "Check argument or define function "+fun) + end + end +endfunction +y2 = norm(x1); +z2 = norm(x2); +assert_checktrue((y1-y2)/y1<=%eps); +assert_checktrue((z2-z2)/z1<=%eps); diff --git a/modules/linear_algebra/tests/nonreg_tests/bug_5017.tst b/modules/linear_algebra/tests/nonreg_tests/bug_5017.tst new file mode 100755 index 000000000..7e52298f6 --- /dev/null +++ b/modules/linear_algebra/tests/nonreg_tests/bug_5017.tst @@ -0,0 +1,184 @@ +// ============================================================================= +// 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 5017 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=5017 +// +// <-- Short Description --> +// norm() now calls Lapack. + +// Checking sparse compatibility +rand("seed", 0); +A = rand(10, 10); +n = norm(sparse(A)); +assert_checkalmostequal(n, 5.0884897363846); + +//--------------------------------------------------- +// Now, we make sure that the new implementation +// of norm() yiels the same results as the old one, +// with respect to the machine precision. + +// Square root of 5, with a 10^-307 padding. +x1 = 1.e-307*[1 1 1 1 1]; +y1 = norm(x1); + +// Square root of 3, with a 10^-307 padding. +x2 = 1.e-307*[1 1 1]; +z1 = norm(x2); + +// Now compute the same values with the old norm function: + +warning("off"); + +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) ????-2008 - INRIA +// Copyright (C) 2009 - INRIA Michael Baudin +// Copyright (C) 2012 - Scilab Enterprises - Adeline CARNIS +// +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +// +// norm -- +// Returns the norm of the given vector/matrix A. +// Uses scaling to improve accuracy for Pythagorean sums. +// References +// Moler C, Morrison D. +// Replacing square roots by pythagorean sums. +// IBM Journal of Research and Development 1983; 27(6):577-581. +// +function y=norm(A,flag) + //compute various matrix norms + if argn(2)==1 then flag=2,end + + if type(A)==1 then + if A==[] then y=0,return,end + if or(size(A)==1) then // vector norm + if type(flag)==10 then //'inf' or 'fro' + select convstr(part(flag,1)) + case "i" then //'inf' + y=max(abs(A)) + case "f" then //'fro' + A=A(:) + // + // Scaling for better floating point accuracy. + // + // + s = max(abs(A)); + if s==0.0 then + y=sqrt(A'*A); + else + sA = A/s; + // return real result + y = s * sqrt(abs(sA'*sA)); + end + else + error("invalid value for flag") + end + elseif type(flag)==1 then //p_norm + p=flag; + if ~isreal(p) then + error("flag must be real") + end + if p==%inf then + y=max(abs(A)) + elseif p==1 then + y=sum(abs(A)) + elseif p==-%inf then + y=min(abs(A)) + elseif isnan(p) then + y=%nan + elseif p==0 then + y=%inf + else + // + // Scaling for better floating point accuracy. + // + s = max(abs(A)); + if s==0.0 then + y=sum(abs(A).^p)^(1/p); + else + sA = A/s; + y = s * sum(abs(sA).^p)^(1/p); + end + end + else + error("invalid value for flag") + end + else //matrix norm + if type(flag)==10 then //'inf' or 'fro' + select convstr(part(flag,1)) + case "i" then //'inf' + y=max(sum(abs(A),2)) + case "f" then //'fro' + // + // Scaling for better floating point accuracy. + // + s = max(abs(A)); + if s==0.0 then + if size(A,1)>size(A,2) then + y=sqrt(sum(diag(A'*A))) + else + y=sqrt(sum(diag(A*A'))) + end + else + sA = A/s; + if size(A,1)>size(A,2) then + // return real result + y = s * sqrt(sum(abs(diag(sA'*sA)))) + else + y = s * sqrt(sum(abs(diag(sA*sA')))) + end + end + else + error("invalid value for flag") + end + elseif type(flag)==1 then //p_norm + p=flag; + select p + case 1 then + y=max(sum(abs(A),1)) + case 2 then + y=max(svd(A)) + case %inf then + y=max(sum(abs(A),2)) + else + error("flag must be 1 2 or inf") + end + else + error("invalid value for flag") + end + end + else + if type(A)==16|type(A)==17 then + n=getfield(1,A);n=n(1) + else + [t,n]=typename() + n=stripblanks(n(find(t==type(A)))) + end + fun="%"+n+"_norm" + if exists(fun)==1 then + execstr("y="+fun+"(A,flag)") + else + error("norm not defined for type """+n+""" ."+.. + "Check argument or define function "+fun) + end + end +endfunction + +y2 = norm(x1); +z2 = norm(x2); + +assert_checktrue((y1-y2)/y1<=%eps); +assert_checktrue((z2-z2)/z1<=%eps); diff --git a/modules/linear_algebra/tests/nonreg_tests/bug_545.dia.ref b/modules/linear_algebra/tests/nonreg_tests/bug_545.dia.ref new file mode 100755 index 000000000..ecbc78201 --- /dev/null +++ b/modules/linear_algebra/tests/nonreg_tests/bug_545.dia.ref @@ -0,0 +1,37 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2005-2008 - INRIA +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// <-- JVM NOT MANDATORY --> +// <-- Non-regression test for bug 545 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=545 +// +// <-- Short Description --> +// Bug Report Id: 031202003109134720 +// This is obviously a conflict between a local variable ndims and the new function ndims(). +// I expect the same problem also in: +// +// macros/percent/%b_i_hm.sci +// macros/percent/%hm_i_hm.sc +// macros/percent/%p_i_hm.sci +// +// Wasn't this an already solved issue?? +// On Scilab CVS with " %i_i_hm " function +// The Error Messages are: +// Warning :redefining function: ndims +// inside function: %i_i_hm +// +// Commands: +// a=int8(hypermat([3 2 2]));b=hypermat([1 2 2]); +// a(1,:,:)=b +// Enrico SEGRE on Linux version RH9 distribution with as window manager +// Israel +// November 9, 2003 at 13:47:20 +a = int8(hypermat([3 2 2])); +b = hypermat([1 2 2]); +a(1,:,:) = b; +// Just check if there is no "Warning :redefining function: ndims" displayed in .dia.ref diff --git a/modules/linear_algebra/tests/nonreg_tests/bug_545.tst b/modules/linear_algebra/tests/nonreg_tests/bug_545.tst new file mode 100755 index 000000000..76323e5ba --- /dev/null +++ b/modules/linear_algebra/tests/nonreg_tests/bug_545.tst @@ -0,0 +1,41 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2005-2008 - INRIA +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= + +// <-- JVM NOT MANDATORY --> + +// <-- Non-regression test for bug 545 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=545 +// +// <-- Short Description --> +// Bug Report Id: 031202003109134720 +// This is obviously a conflict between a local variable ndims and the new function ndims(). +// I expect the same problem also in: +// +// macros/percent/%b_i_hm.sci +// macros/percent/%hm_i_hm.sc +// macros/percent/%p_i_hm.sci +// +// Wasn't this an already solved issue?? +// On Scilab CVS with " %i_i_hm " function +// The Error Messages are: +// Warning :redefining function: ndims +// inside function: %i_i_hm +// +// Commands: +// a=int8(hypermat([3 2 2]));b=hypermat([1 2 2]); +// a(1,:,:)=b +// Enrico SEGRE on Linux version RH9 distribution with as window manager +// Israel +// November 9, 2003 at 13:47:20 + +a = int8(hypermat([3 2 2])); +b = hypermat([1 2 2]); +a(1,:,:) = b; + +// Just check if there is no "Warning :redefining function: ndims" displayed in .dia.ref diff --git a/modules/linear_algebra/tests/nonreg_tests/bug_6477.dia.ref b/modules/linear_algebra/tests/nonreg_tests/bug_6477.dia.ref new file mode 100755 index 000000000..9ca377de7 --- /dev/null +++ b/modules/linear_algebra/tests/nonreg_tests/bug_6477.dia.ref @@ -0,0 +1,38 @@ +// ============================================================================= +// 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. +// ============================================================================= +// +// <-- CLI SHELL MODE --> +// +// <-- Non-regression test for bug 6477 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=6477 +// +// <-- Short Description --> +// in some case, schur returned wrong values on Windows. +function [f] = z_choose(s,t) + f = abs(s) > abs(t) +endfunction +a=[1 4 5 6; 3 2 5 7; 8 3 4 5; 9 3 5 2]; +b=[3 8 5 7; 1 4 9 3; 9 1 0 7; 9 2 4 8]; +[as, bs, z, dim] = schur(a, b, z_choose); +if dim <> 2 then bugmes();quit;end +ref_as = [ - 5.8165015, 4.9422182, - 1.6845626, 1.8997122 ;.. + 0., 9.4018462, - 14.867682, - 2.1905808 ;.. + 0., 0., 3.4464284, 2.2480735 ;.. + 0., 0., - 1.0118069, 1.0484945]; +ref_bs = [0.5173089, 6.2627142, - 2.9573865, 7.2946208 ;.. + 0., 8.7992813, - 16.353371, - 2.5799548 ;.. + 0., 0., 8.0516398, 0. ;.. + 0., 0., 0., 5.6752093 ]; +ref_z = [0.4973431, - 0.6831312, 0.2943626, - 0.4464664; .. + 0.4702536, 0.5375540, 0.6832618, 0.1518237; .. + 0.0048984, - 0.4789154, 0.1826199, 0.8586419; .. + - 0.7290318, - 0.1225046, 0.6427705, - 0.2008765]; +if or(abs(as - ref_as) > 1e10 * %eps) then bugmes();quit;end +if or(abs(bs - ref_bs) > 1e10 * %eps) then bugmes();quit;end +if or(abs(z - ref_z) > 1e9 * %eps) then bugmes();quit;end diff --git a/modules/linear_algebra/tests/nonreg_tests/bug_6477.tst b/modules/linear_algebra/tests/nonreg_tests/bug_6477.tst new file mode 100755 index 000000000..a987c3151 --- /dev/null +++ b/modules/linear_algebra/tests/nonreg_tests/bug_6477.tst @@ -0,0 +1,45 @@ +// ============================================================================= +// 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. +// ============================================================================= +// +// <-- CLI SHELL MODE --> +// +// <-- Non-regression test for bug 6477 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=6477 +// +// <-- Short Description --> +// in some case, schur returned wrong values on Windows. + +function [f] = z_choose(s,t) + f = abs(s) > abs(t) +endfunction + +a=[1 4 5 6; 3 2 5 7; 8 3 4 5; 9 3 5 2]; +b=[3 8 5 7; 1 4 9 3; 9 1 0 7; 9 2 4 8]; +[as, bs, z, dim] = schur(a, b, z_choose); + +if dim <> 2 then pause, end + +ref_as = [ - 5.8165015, 4.9422182, - 1.6845626, 1.8997122 ;.. + 0., 9.4018462, - 14.867682, - 2.1905808 ;.. + 0., 0., 3.4464284, 2.2480735 ;.. + 0., 0., - 1.0118069, 1.0484945]; + +ref_bs = [0.5173089, 6.2627142, - 2.9573865, 7.2946208 ;.. + 0., 8.7992813, - 16.353371, - 2.5799548 ;.. + 0., 0., 8.0516398, 0. ;.. + 0., 0., 0., 5.6752093 ]; + +ref_z = [0.4973431, - 0.6831312, 0.2943626, - 0.4464664; .. + 0.4702536, 0.5375540, 0.6832618, 0.1518237; .. + 0.0048984, - 0.4789154, 0.1826199, 0.8586419; .. + - 0.7290318, - 0.1225046, 0.6427705, - 0.2008765]; + +if or(abs(as - ref_as) > 1e10 * %eps) then pause, end +if or(abs(bs - ref_bs) > 1e10 * %eps) then pause, end +if or(abs(z - ref_z) > 1e9 * %eps) then pause, end diff --git a/modules/linear_algebra/tests/nonreg_tests/bug_6783.dia.ref b/modules/linear_algebra/tests/nonreg_tests/bug_6783.dia.ref new file mode 100755 index 000000000..139da95ab --- /dev/null +++ b/modules/linear_algebra/tests/nonreg_tests/bug_6783.dia.ref @@ -0,0 +1,175 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2009 - DIGITEO - Allan CORNET +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// <-- CLI SHELL MODE --> +// <-- Non-regression test for bug 6783 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=6783 +// +// <-- Short Description --> +// Solving a system of linear equation by backslash ("\") will cause a crash to Scilab 5.2.1, when using complex numbers. +// Replication Code +S=[ +1.3 24 4.1 29 0.9 33 +0.6 258 0.7 265 0.2 39 +0.5 2 1.4 351 0.5 323 +0.7 63 1.2 19 0.4 318 +17.0 152 29.0 196 6.0 232 +23.0 18 40.0 62 14.0 104 +8.0 213 20.0 177 8.0 147 +12.0 106 26.0 45 11.0 21 +8.1 25 6.4 182 6.9 203 +2.0 282 2.5 20 1.5 114 +5.9 215 5.6 34 4.6 25 +3.7 185 3.6 5 2.8 9 +27.0 134 30.0 290 18.0 321 +23.0 17 26.0 151 9.0 220 +34.0 330 26.0 164 24.0 140 +33.0 187 20.0 18 24.0 350 +2.4 50 3.8 157 3.6 289 +2.2 281 3.7 57 3.0 187 +4.5 322 5.9 149 1.1 48 +1.6 249 3.1 62 1.3 239 +13.0 152 18.0 286 24.0 52 +21.0 77 16.0 166 47.0 298 +41.0 48 34.0 239 4.0 140 +80.0 301 67.0 120 10.0 81 +3.7 43 2.6 215 5.4 290 +3.3 284 3.6 66 3.4 196 +5.6 340 3.7 172 2.1 342 +2.6 272 2.3 72 2.3 274 +34.0 154 23.0 332 32.0 47 +29.0 56 13.0 209 59.0 299 +43.0 62 39.0 241 13.0 89 +91.0 309 75.0 131 15.0 321 +]; +S0=[2.3 278 +0.4 266 +1.1 270 +0 0 +29 141 +21 32 +16 97 +16 4 +5.9 132 +0.3 0 +5.4 327 +3.8 313 +40 244 +12 75 +47 101 +38 343 +1.6 337 +1.5 281 +5.9 34 +2.5 310 +8 37 +8 320 +32 134 +67 29 +2.3 5 +2 307 +7.4 43 +3.2 320 +4 0 +10 357 +34 128 +81 26 +]; +S02=[0.85 258 +0.26 0 +0.33 226 +0.04 0 +14.43 71 +11.48 294 +14.19 65 +16.00 311 +1.74 345 +0.70 178 +2.35 191 +1.74 170 +9.18 105 +4.27 289 +10.32 356 +4.75 0 +2.97 215 +2.87 126 +5.14 242 +4.75 149 +14.98 327 +11.71 193 +10.32 323 +14.82 190 +2.60 100 +2.10 43 +3.40 152 +3.00 65 +23.00 287 +21.00 111 +22.00 229 +52.00 99 +]; +fac=[10 +10 +10 +10 +1 +1 +1 +1 +10 +10 +10 +10 +1 +1 +1 +1 +30 +30 +30 +30 +2 +2 +2 +2 +80 +80 +80 +80 +4 +4 +4 +4]; +if isdef('without')==%T; +S(without:8:$,:)=[]; +S0(without:8:$,:)=[]; +fac(without:8:$,:)=[]; +else +end +S0_a=fac.*S0(:,1); +S0_w=S0(:,2).*%pi/180; +S0c=S0_a.*exp(%i*S0_w); +S0_c2=S0(:,1).*exp(%i*S0_w); // ohne Faktor!!!! +S02_a=fac.*S02(:,1); +S02_w=S02(:,2).*%pi/180; +S02c=S02_a.*exp(%i*S02_w); +S02_c2=S02(:,1).*exp(%i*S02_w); // ohne Faktor +S_a=S(:,1:2:$).*[fac fac fac]; +S_wdeg=S(:,2:2:$); +S_w=S_wdeg*%pi/180; +M_test=[1000 0 0 0 0 0 760 258 + 0 0 1000 0 0 0 0 0 + 0 0 0 0 1000 0 760 210]; +M_a=M_test(:,1:2:$); +M_wdeg=M_test(:,2:2:$); +M_w=M_wdeg*%pi/180; +Sc=[S_a.*exp(%i*S_w) S02c-S0c]; +Mc=M_a.*exp(%i*M_w); +ierr = execstr("C=Mc''\Sc''","errcatch"); +if ierr <> 0 then bugmes();quit;end +if size(C) <> [3 32] then bugmes();quit;end diff --git a/modules/linear_algebra/tests/nonreg_tests/bug_6783.tst b/modules/linear_algebra/tests/nonreg_tests/bug_6783.tst new file mode 100755 index 000000000..32611ea39 --- /dev/null +++ b/modules/linear_algebra/tests/nonreg_tests/bug_6783.tst @@ -0,0 +1,192 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2009 - DIGITEO - Allan CORNET +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= + +// <-- CLI SHELL MODE --> + +// <-- Non-regression test for bug 6783 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=6783 +// +// <-- Short Description --> +// Solving a system of linear equation by backslash ("\") will cause a crash to Scilab 5.2.1, when using complex numbers. + +// Replication Code +S=[ +1.3 24 4.1 29 0.9 33 +0.6 258 0.7 265 0.2 39 +0.5 2 1.4 351 0.5 323 +0.7 63 1.2 19 0.4 318 +17.0 152 29.0 196 6.0 232 +23.0 18 40.0 62 14.0 104 +8.0 213 20.0 177 8.0 147 +12.0 106 26.0 45 11.0 21 +8.1 25 6.4 182 6.9 203 +2.0 282 2.5 20 1.5 114 +5.9 215 5.6 34 4.6 25 +3.7 185 3.6 5 2.8 9 +27.0 134 30.0 290 18.0 321 +23.0 17 26.0 151 9.0 220 +34.0 330 26.0 164 24.0 140 +33.0 187 20.0 18 24.0 350 +2.4 50 3.8 157 3.6 289 +2.2 281 3.7 57 3.0 187 +4.5 322 5.9 149 1.1 48 +1.6 249 3.1 62 1.3 239 +13.0 152 18.0 286 24.0 52 +21.0 77 16.0 166 47.0 298 +41.0 48 34.0 239 4.0 140 +80.0 301 67.0 120 10.0 81 +3.7 43 2.6 215 5.4 290 +3.3 284 3.6 66 3.4 196 +5.6 340 3.7 172 2.1 342 +2.6 272 2.3 72 2.3 274 +34.0 154 23.0 332 32.0 47 +29.0 56 13.0 209 59.0 299 +43.0 62 39.0 241 13.0 89 +91.0 309 75.0 131 15.0 321 +]; + + +S0=[2.3 278 +0.4 266 +1.1 270 +0 0 +29 141 +21 32 +16 97 +16 4 +5.9 132 +0.3 0 +5.4 327 +3.8 313 +40 244 +12 75 +47 101 +38 343 +1.6 337 +1.5 281 +5.9 34 +2.5 310 +8 37 +8 320 +32 134 +67 29 +2.3 5 +2 307 +7.4 43 +3.2 320 +4 0 +10 357 +34 128 +81 26 +]; + +S02=[0.85 258 +0.26 0 +0.33 226 +0.04 0 +14.43 71 +11.48 294 +14.19 65 +16.00 311 +1.74 345 +0.70 178 +2.35 191 +1.74 170 +9.18 105 +4.27 289 +10.32 356 +4.75 0 +2.97 215 +2.87 126 +5.14 242 +4.75 149 +14.98 327 +11.71 193 +10.32 323 +14.82 190 +2.60 100 +2.10 43 +3.40 152 +3.00 65 +23.00 287 +21.00 111 +22.00 229 +52.00 99 +]; + + +fac=[10 +10 +10 +10 +1 +1 +1 +1 +10 +10 +10 +10 +1 +1 +1 +1 +30 +30 +30 +30 +2 +2 +2 +2 +80 +80 +80 +80 +4 +4 +4 +4]; + +if isdef('without')==%T; +S(without:8:$,:)=[]; +S0(without:8:$,:)=[]; +fac(without:8:$,:)=[]; +else +end + +S0_a=fac.*S0(:,1); +S0_w=S0(:,2).*%pi/180; +S0c=S0_a.*exp(%i*S0_w); +S0_c2=S0(:,1).*exp(%i*S0_w); // ohne Faktor!!!! + +S02_a=fac.*S02(:,1); +S02_w=S02(:,2).*%pi/180; +S02c=S02_a.*exp(%i*S02_w); +S02_c2=S02(:,1).*exp(%i*S02_w); // ohne Faktor + + +S_a=S(:,1:2:$).*[fac fac fac]; +S_wdeg=S(:,2:2:$); +S_w=S_wdeg*%pi/180; + +M_test=[1000 0 0 0 0 0 760 258 + 0 0 1000 0 0 0 0 0 + 0 0 0 0 1000 0 760 210]; + +M_a=M_test(:,1:2:$); +M_wdeg=M_test(:,2:2:$); +M_w=M_wdeg*%pi/180; + +Sc=[S_a.*exp(%i*S_w) S02c-S0c]; +Mc=M_a.*exp(%i*M_w); + +ierr = execstr("C=Mc''\Sc''","errcatch"); +if ierr <> 0 then pause,end +if size(C) <> [3 32] then pause,end diff --git a/modules/linear_algebra/tests/nonreg_tests/bug_7109.dia.ref b/modules/linear_algebra/tests/nonreg_tests/bug_7109.dia.ref new file mode 100755 index 000000000..d5a3a691e --- /dev/null +++ b/modules/linear_algebra/tests/nonreg_tests/bug_7109.dia.ref @@ -0,0 +1,21 @@ +// ============================================================================= +// 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. +// ============================================================================= +// <-- CLI SHELL MODE --> +// <-- Non-regression test for bug 7109 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=7109 +// +// <-- Short Description --> +// 'lu' function with some complex matrices crashed on Windows. +x = [0.1523 + 0.7685 * %i, -0.8957 + 0.0342 * %i, 2.4353 + 2.7736 * %i; .. + -1.1953 + 1.2187 * %i, 1.2118 + 0.2571 * %i, -0.0446 - 1.7768 * %i; .. + 0.8038 + 1.3668 * %i, 1.2950 - 1.6929 * %i, 1.6267 + 0.2844 * %i]; +ierr = execstr('[l, u] = lu(x);','errcatch'); +if ierr <> 0 then bugmes();quit;end +if or(size(l) <> [3 3]) then bugmes();quit;end +if or(size(u) <> [3 3]) then bugmes();quit;end diff --git a/modules/linear_algebra/tests/nonreg_tests/bug_7109.tst b/modules/linear_algebra/tests/nonreg_tests/bug_7109.tst new file mode 100755 index 000000000..16f2c32a1 --- /dev/null +++ b/modules/linear_algebra/tests/nonreg_tests/bug_7109.tst @@ -0,0 +1,27 @@ +// ============================================================================= +// 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. +// ============================================================================= + +// <-- CLI SHELL MODE --> + +// <-- Non-regression test for bug 7109 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=7109 +// +// <-- Short Description --> +// 'lu' function with some complex matrices crashed on Windows. + +x = [0.1523 + 0.7685 * %i, -0.8957 + 0.0342 * %i, 2.4353 + 2.7736 * %i; .. + -1.1953 + 1.2187 * %i, 1.2118 + 0.2571 * %i, -0.0446 - 1.7768 * %i; .. + 0.8038 + 1.3668 * %i, 1.2950 - 1.6929 * %i, 1.6267 + 0.2844 * %i]; + +ierr = execstr('[l, u] = lu(x);','errcatch'); +if ierr <> 0 then pause, end + +if or(size(l) <> [3 3]) then pause, end +if or(size(u) <> [3 3]) then pause, end + diff --git a/modules/linear_algebra/tests/nonreg_tests/bug_7485.dia.ref b/modules/linear_algebra/tests/nonreg_tests/bug_7485.dia.ref new file mode 100755 index 000000000..16a883f98 --- /dev/null +++ b/modules/linear_algebra/tests/nonreg_tests/bug_7485.dia.ref @@ -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. +// ============================================================================= +// +// <-- CLI SHELL MODE --> +// +// <-- Non-regression test for bug 7485 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=7485 +// +// <-- Short Description --> +// Division of matrices of complex numbers crashed on Windows. +L1 = [-22.168 + 14.267*%i -10.428 + 17.817*%i -2.8879 + 14.947*%i 0.4547 + 11.203*%i]; +T = [8.9186 - 3.0399*%i 6.8345 - 4.7536*%i 4.8415 - 5.2106*%i 3.3626 - 5.0337*%i; .. +79.459 - 58.111*%i 30.562 - 70.097*%i 0.8502 - 55.647*%i -10.784 - 38.795*%i]; +if execstr("a = -real(L1/T);", "errcatch") <> 0 then bugmes();quit;end +A = [1 , 1, %i]; +B = [1 , 1, 1]; +if execstr("r = A / B;", "errcatch") <> 0 then bugmes();quit;end +r = [1 , 1, %i]/[1 , 1, 1]; +ref = 0.6666667 + 0.3333333 * %i; +if abs(r - ref) > %eps * 1e9 then bugmes();quit;end diff --git a/modules/linear_algebra/tests/nonreg_tests/bug_7485.tst b/modules/linear_algebra/tests/nonreg_tests/bug_7485.tst new file mode 100755 index 000000000..0442081f9 --- /dev/null +++ b/modules/linear_algebra/tests/nonreg_tests/bug_7485.tst @@ -0,0 +1,32 @@ +// ============================================================================= +// 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. +// ============================================================================= +// +// <-- CLI SHELL MODE --> +// +// <-- Non-regression test for bug 7485 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=7485 +// +// <-- Short Description --> +// Division of matrices of complex numbers crashed on Windows. + +L1 = [-22.168 + 14.267*%i -10.428 + 17.817*%i -2.8879 + 14.947*%i 0.4547 + 11.203*%i]; +T = [8.9186 - 3.0399*%i 6.8345 - 4.7536*%i 4.8415 - 5.2106*%i 3.3626 - 5.0337*%i; .. +79.459 - 58.111*%i 30.562 - 70.097*%i 0.8502 - 55.647*%i -10.784 - 38.795*%i]; +if execstr("a = -real(L1/T);", "errcatch") <> 0 then pause, end + +A = [1 , 1, %i]; +B = [1 , 1, 1]; +if execstr("r = A / B;", "errcatch") <> 0 then pause, end + +r = [1 , 1, %i]/[1 , 1, 1]; +ref = 0.6666667 + 0.3333333 * %i; + +if abs(r - ref) > %eps * 1e9 then pause, end + + diff --git a/modules/linear_algebra/tests/nonreg_tests/bug_7950.dia.ref b/modules/linear_algebra/tests/nonreg_tests/bug_7950.dia.ref new file mode 100755 index 000000000..f5a080f68 --- /dev/null +++ b/modules/linear_algebra/tests/nonreg_tests/bug_7950.dia.ref @@ -0,0 +1,43 @@ +// ============================================================================= +// 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. +// ============================================================================= +// +// <-- CLI SHELL MODE --> +// +// <-- Non-regression test for bug 7950 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=7950 +// +// <-- Short Description --> +// spec function crashed on Windows +n = [0,10,0,0,10; +10,0,10,0,0; +0,10,0,10,0; +0,0,10,0,10; +10,0,0,10,0]; +d = [1,3,1,1,3; +3,1,3,1,1; +1,3,1,3,1; +1,1,3,1,3; +3,1,1,3,1]; +A = n./d; +r = spec(A); +ref = [ -5.3934466; .. + -5.3934466; .. + 2.0601133; .. + 2.0601133; .. + 6.6666667]; +if norm(r - ref) > 1e9 *%eps then bugmes();quit;end + s11 = [ 0.0633728 0.0313074 -0.0021908 -0.0014231 -0.0025785 0.0968961; .. + 0.0313074 0.0177124 -0.0010565 -0.0007932 -0.0012911 0.0410817; .. + -0.0021908 -0.0010565 0.0001016 0.0000454 0.0000847 -0.0034275; .. + -0.0014231 -0.0007932 0.0000454 0.0000428 0.0000659 -0.0019033; .. + -0.0025785 -0.0012911 0.0000847 0.0000659 0.0001176 -0.0038904; .. + 0.0968961 0.0410817 -0.0034275 -0.0019033 -0.0038904 0.1686615]; +[eigenv, rho] = spec(s11); +if or(size(eigenv) <> [6 6]) then bugmes();quit;end +if or(size(rho) <> [6 6]) then bugmes();quit;end diff --git a/modules/linear_algebra/tests/nonreg_tests/bug_7950.tst b/modules/linear_algebra/tests/nonreg_tests/bug_7950.tst new file mode 100755 index 000000000..51811b25a --- /dev/null +++ b/modules/linear_algebra/tests/nonreg_tests/bug_7950.tst @@ -0,0 +1,48 @@ +// ============================================================================= +// 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. +// ============================================================================= +// +// <-- CLI SHELL MODE --> +// +// <-- Non-regression test for bug 7950 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=7950 +// +// <-- Short Description --> +// spec function crashed on Windows + + +n = [0,10,0,0,10; +10,0,10,0,0; +0,10,0,10,0; +0,0,10,0,10; +10,0,0,10,0]; +d = [1,3,1,1,3; +3,1,3,1,1; +1,3,1,3,1; +1,1,3,1,3; +3,1,1,3,1]; +A = n./d; +r = spec(A); +ref = [ -5.3934466; .. + -5.3934466; .. + 2.0601133; .. + 2.0601133; .. + 6.6666667]; +if norm(r - ref) > 1e9 *%eps then pause, end + + + s11 = [ 0.0633728 0.0313074 -0.0021908 -0.0014231 -0.0025785 0.0968961; .. + 0.0313074 0.0177124 -0.0010565 -0.0007932 -0.0012911 0.0410817; .. + -0.0021908 -0.0010565 0.0001016 0.0000454 0.0000847 -0.0034275; .. + -0.0014231 -0.0007932 0.0000454 0.0000428 0.0000659 -0.0019033; .. + -0.0025785 -0.0012911 0.0000847 0.0000659 0.0001176 -0.0038904; .. + 0.0968961 0.0410817 -0.0034275 -0.0019033 -0.0038904 0.1686615]; + +[eigenv, rho] = spec(s11); +if or(size(eigenv) <> [6 6]) then pause, end +if or(size(rho) <> [6 6]) then pause, end
\ No newline at end of file diff --git a/modules/linear_algebra/tests/nonreg_tests/bug_8820.dia.ref b/modules/linear_algebra/tests/nonreg_tests/bug_8820.dia.ref new file mode 100755 index 000000000..7fbf43368 --- /dev/null +++ b/modules/linear_algebra/tests/nonreg_tests/bug_8820.dia.ref @@ -0,0 +1,19 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2011 - INRIA - Serge Steer +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// +// <-- CLI SHELL MODE --> +// +// <-- Non-regression test for bug 8820 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=8820 +// +// <-- Short Description --> +// squeeze function may return hypermatrix when expected results must be a regular 2D array +t = rand(2,3,4); +s = squeeze(t(:,1,:)); +if type(s)<>1 then bugmes();quit;end diff --git a/modules/linear_algebra/tests/nonreg_tests/bug_8820.tst b/modules/linear_algebra/tests/nonreg_tests/bug_8820.tst new file mode 100755 index 000000000..7db455c57 --- /dev/null +++ b/modules/linear_algebra/tests/nonreg_tests/bug_8820.tst @@ -0,0 +1,20 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2011 - INRIA - Serge Steer +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// +// <-- CLI SHELL MODE --> +// +// <-- Non-regression test for bug 8820 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=8820 +// +// <-- Short Description --> +// squeeze function may return hypermatrix when expected results must be a regular 2D array +t = rand(2,3,4); +s = squeeze(t(:,1,:)); +if type(s)<>1 then pause,end + diff --git a/modules/linear_algebra/tests/nonreg_tests/bug_9196.dia.ref b/modules/linear_algebra/tests/nonreg_tests/bug_9196.dia.ref new file mode 100755 index 000000000..735a8de8e --- /dev/null +++ b/modules/linear_algebra/tests/nonreg_tests/bug_9196.dia.ref @@ -0,0 +1,86 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2013 - Scilab Enterprises - Sylvestre Ledru +// Copyright (C) 2013 - Michaël Baudin +// Copyright (C) 2013 - Scilab Enterprises - Adeline CARNIS +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// <-- CLI SHELL MODE --> +// <-- Non-regression test for bug 9196 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=9196 +// +// <-- Short Description --> +// The threshold level for conditioning in backslash is too small. +// ============================================================================= +n=9; +A = testmatrix("hilb",n); +b=ones(n,1); +xexpected=[7129/2520 + 4861/2520 + 42131/27720 + 35201/27720 + 395243/360360 + 348911/360360 + 62575/72072 + 113567/144144 + 1768477/2450448]; +x=A\b; +assert_checkalmostequal(x, xexpected, [], 1e-6); +Ac=complex(A,zeros(A)); +bc=complex(b,zeros(b)); +xc = Ac\bc; +xcexpected=complex(xexpected,zeros(xexpected)); +assert_checkalmostequal(xc, xcexpected, [], 1e-5); +b=(1:n)'; +xexpected=[9; + 17819/2520; + 82609/13860; + 47959/9240; + 415567/90090; + 299737/72072; + 45533/12012; + 71761/20592; + 988277/306306]; +x=A\b; +assert_checkalmostequal(x, xexpected, [], 1e-5); +Ac=complex(A,zeros(A)); +bc=complex(b,zeros(b)); +xc = Ac\bc; +xcexpected=complex(xexpected,zeros(xexpected)); +assert_checkalmostequal(xc, xcexpected, [], 1e-5); +b=[1;-1;1;-1;1;-1;1;-1;1]; +xexpected=[1879/2520; + 893/2520; + 6557/27720; + 4993/27720; + 52901/360360; + 44911/360360; + 39173/360360; + 69659/720720; + 1068047/12252240]; +x=A\b; +assert_checkalmostequal(x, xexpected, [], 1e-7); +Ac=complex(A,zeros(A)); +bc=complex(b,zeros(b)); +xc = Ac\bc; +xcexpected=complex(xexpected,zeros(xexpected)); +assert_checkalmostequal(xc, xcexpected, [], 1e-6); +n=9; +A = testmatrix("hilb",n); +b = ones(n,1); +x = (b'/A')'; +xexpected=[ +2.82896825396825370e+000 +1.92896825396825400e+000 +1.51987734487734480e+000 +1.26987734487734480e+000 +1.09680042180042170e+000 +9.68228993228993360e-001 +8.68228993228993270e-001 +7.87871850371850480e-001 +7.21695379783615090e-001 +]; +assert_checkalmostequal(x, xexpected, [], 1e-6); diff --git a/modules/linear_algebra/tests/nonreg_tests/bug_9196.tst b/modules/linear_algebra/tests/nonreg_tests/bug_9196.tst new file mode 100755 index 000000000..ec5021569 --- /dev/null +++ b/modules/linear_algebra/tests/nonreg_tests/bug_9196.tst @@ -0,0 +1,94 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2013 - Scilab Enterprises - Sylvestre Ledru +// Copyright (C) 2013 - Michaël Baudin +// Copyright (C) 2013 - Scilab Enterprises - Adeline CARNIS +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= + +// <-- CLI SHELL MODE --> + +// <-- Non-regression test for bug 9196 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=9196 +// +// <-- Short Description --> +// The threshold level for conditioning in backslash is too small. +// ============================================================================= + +n=9; +A = testmatrix("hilb",n); +b=ones(n,1); +xexpected=[7129/2520 + 4861/2520 + 42131/27720 + 35201/27720 + 395243/360360 + 348911/360360 + 62575/72072 + 113567/144144 + 1768477/2450448]; +x=A\b; +assert_checkalmostequal(x, xexpected, [], 1e-6); + + +Ac=complex(A,zeros(A)); +bc=complex(b,zeros(b)); +xc = Ac\bc; +xcexpected=complex(xexpected,zeros(xexpected)); +assert_checkalmostequal(xc, xcexpected, [], 1e-5); + +b=(1:n)'; +xexpected=[9; + 17819/2520; + 82609/13860; + 47959/9240; + 415567/90090; + 299737/72072; + 45533/12012; + 71761/20592; + 988277/306306]; +x=A\b; +assert_checkalmostequal(x, xexpected, [], 1e-5); +Ac=complex(A,zeros(A)); +bc=complex(b,zeros(b)); +xc = Ac\bc; +xcexpected=complex(xexpected,zeros(xexpected)); +assert_checkalmostequal(xc, xcexpected, [], 1e-5); + +b=[1;-1;1;-1;1;-1;1;-1;1]; +xexpected=[1879/2520; + 893/2520; + 6557/27720; + 4993/27720; + 52901/360360; + 44911/360360; + 39173/360360; + 69659/720720; + 1068047/12252240]; +x=A\b; +assert_checkalmostequal(x, xexpected, [], 1e-7); +Ac=complex(A,zeros(A)); +bc=complex(b,zeros(b)); +xc = Ac\bc; +xcexpected=complex(xexpected,zeros(xexpected)); +assert_checkalmostequal(xc, xcexpected, [], 1e-6); + +n=9; +A = testmatrix("hilb",n); +b = ones(n,1); +x = (b'/A')'; +xexpected=[ +2.82896825396825370e+000 +1.92896825396825400e+000 +1.51987734487734480e+000 +1.26987734487734480e+000 +1.09680042180042170e+000 +9.68228993228993360e-001 +8.68228993228993270e-001 +7.87871850371850480e-001 +7.21695379783615090e-001 +]; +assert_checkalmostequal(x, xexpected, [], 1e-6); diff --git a/modules/linear_algebra/tests/nonreg_tests/bug_9204.dia.ref b/modules/linear_algebra/tests/nonreg_tests/bug_9204.dia.ref new file mode 100755 index 000000000..e308dd4a6 --- /dev/null +++ b/modules/linear_algebra/tests/nonreg_tests/bug_9204.dia.ref @@ -0,0 +1,20 @@ +// ============================================================================= +// 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 --> +// <-- Non-regression test for bug 9204 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=9204 +// +// <-- Short Description --> +// The Frobenius norm of a complex vector was numerically complex. +x = [1 2 3 -4]; +x = x + %i * x; +assert_checkalmostequal(norm(x, 'fro'), 7.7459667); +x = [1 2;3 4]; +x = x + %i * x; +assert_checkalmostequal(norm(x, 'fro'), 7.7459667); diff --git a/modules/linear_algebra/tests/nonreg_tests/bug_9204.tst b/modules/linear_algebra/tests/nonreg_tests/bug_9204.tst new file mode 100755 index 000000000..674d3ecaa --- /dev/null +++ b/modules/linear_algebra/tests/nonreg_tests/bug_9204.tst @@ -0,0 +1,25 @@ +// ============================================================================= +// 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 --> + +// <-- Non-regression test for bug 9204 --> +// +// <-- Bugzilla URL --> +// http://bugzilla.scilab.org/show_bug.cgi?id=9204 +// +// <-- Short Description --> +// The Frobenius norm of a complex vector was numerically complex. + + +x = [1 2 3 -4]; +x = x + %i * x; +assert_checkalmostequal(norm(x, 'fro'), 7.7459667); + +x = [1 2;3 4]; +x = x + %i * x; +assert_checkalmostequal(norm(x, 'fro'), 7.7459667); diff --git a/modules/linear_algebra/tests/nonreg_tests/bug_F.dia.ref b/modules/linear_algebra/tests/nonreg_tests/bug_F.dia.ref new file mode 100755 index 000000000..e01e33a36 --- /dev/null +++ b/modules/linear_algebra/tests/nonreg_tests/bug_F.dia.ref @@ -0,0 +1,5 @@ +// <-- Non-regression test for bug F --> +// +// <-- OLD BUG --> +[q,r]=qr((1:3)'); +if (r(2)<>0) | (r(3)<>0) then bugmes();quit;end diff --git a/modules/linear_algebra/tests/nonreg_tests/bug_F.tst b/modules/linear_algebra/tests/nonreg_tests/bug_F.tst new file mode 100755 index 000000000..b7ad0d3dc --- /dev/null +++ b/modules/linear_algebra/tests/nonreg_tests/bug_F.tst @@ -0,0 +1,13 @@ +// ============================================================================= +// 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. +// ============================================================================= + +// <-- Non-regression test for bug F --> +// +// <-- OLD BUG --> + +[q,r]=qr((1:3)'); +if (r(2)<>0) | (r(3)<>0) then pause,end diff --git a/modules/linear_algebra/tests/unit_tests/balanc.dia.ref b/modules/linear_algebra/tests/unit_tests/balanc.dia.ref new file mode 100755 index 000000000..17a85780c --- /dev/null +++ b/modules/linear_algebra/tests/unit_tests/balanc.dia.ref @@ -0,0 +1,72 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) ????-2008 - INRIA Michael Baudin +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +function r=Err(x),r=norm(x,1),endfunction +rand('normal') +//========================================================================== +//============================== balanc ============================== +//========================================================================== +function A=testmat3(a,n) +//eigen values are given by a dilation of nth roots of 1 +A=diag(a*ones(1,n-1),1)+diag((1/a)*ones(1,n-1),-1) +A(1,n)=1/a; +endfunction +A=[];[Ab,X]=balanc(A); +if Ab<>[]|X<>[] then bugmes();quit;end +// MATRIX +//Small dimension +//--------------- +warning('off') +//Real Case +A=testmat3(10000,5); +[Ab,X]=balanc(A); +if Err(diag(diag(X))-X)>200*%eps then bugmes();quit;end +if Err(Ab-inv(X)*A*X)>200*%eps then bugmes();quit;end + +//Complex Case +A=testmat3(10000+0.01*%i,5); +[Ab,X]=balanc(A); +if Err(diag(diag(X))-X)>200*%eps then bugmes();quit;end +if Err(Ab-inv(X)*A*X)>200*%eps then bugmes();quit;end + +//LArge dimension +A=testmat3(10000,30); +[Ab,X]=balanc(A); +if Err(diag(diag(X))-X)>200*%eps then bugmes();quit;end +if Err(Ab-inv(X)*A*X)>1000*%eps then bugmes();quit;end + +//Complex Case +A=testmat3(10000+0.01*%i,30); +[Ab,X]=balanc(A); +if Err(diag(diag(X))-X)>200*%eps then bugmes();quit;end +if Err(Ab-inv(X)*A*X)>1000*%eps then bugmes();quit;end + +// PENCILS +//Small dimension +//--------------- +//Real Case +A=testmat3(10000,5);B=testmat3(1000,5); +[Ab,Bb,X,Y]=balanc(A,B); +if Err(Bb-inv(X)*B*Y)>200*%eps then bugmes();quit;end +if Err(Ab-inv(X)*A*Y)>200*%eps then bugmes();quit;end +//complex case +A=testmat3(10000+0.001*%i,5);B=testmat3(1000+100*%i,5); +[Ab,Bb,X,Y]=balanc(A,B); +if Err(Bb-inv(X)*B*Y)>200*%eps then bugmes();quit;end +if Err(Ab-inv(X)*A*Y)>200*%eps then bugmes();quit;end +//Large dimension +//--------------- +//Real Case +A=testmat3(10000,20);B=testmat3(1000,20); +[Ab,Bb,X,Y]=balanc(A,B); +if Err(Bb-inv(X)*B*Y)>1000*%eps then bugmes();quit;end +if Err(Ab-inv(X)*A*Y)>1000*%eps then bugmes();quit;end +//complex case +A=testmat3(10000+0.001*%i,20);B=testmat3(1000+100*%i,20); +[Ab,Bb,X,Y]=balanc(A,B); +if Err(Bb-inv(X)*B*Y)>1000*%eps then bugmes();quit;end +if Err(Ab-inv(X)*A*Y)>1000*%eps then bugmes();quit;end +warning('on') diff --git a/modules/linear_algebra/tests/unit_tests/balanc.tst b/modules/linear_algebra/tests/unit_tests/balanc.tst new file mode 100755 index 000000000..e49eab8b4 --- /dev/null +++ b/modules/linear_algebra/tests/unit_tests/balanc.tst @@ -0,0 +1,78 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) ????-2008 - INRIA Michael Baudin +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +function r=Err(x),r=norm(x,1),endfunction +rand('normal') + +//========================================================================== +//============================== balanc ============================== +//========================================================================== +function A=testmat3(a,n) +//eigen values are given by a dilation of nth roots of 1 +A=diag(a*ones(1,n-1),1)+diag((1/a)*ones(1,n-1),-1) +A(1,n)=1/a; +endfunction +A=[];[Ab,X]=balanc(A); +if Ab<>[]|X<>[] then pause,end +// MATRIX +//Small dimension +//--------------- +warning('off') +//Real Case +A=testmat3(10000,5); +[Ab,X]=balanc(A); +if Err(diag(diag(X))-X)>200*%eps then pause,end +if Err(Ab-inv(X)*A*X)>200*%eps then pause,end + +//Complex Case +A=testmat3(10000+0.01*%i,5); +[Ab,X]=balanc(A); +if Err(diag(diag(X))-X)>200*%eps then pause,end +if Err(Ab-inv(X)*A*X)>200*%eps then pause,end + +//LArge dimension +A=testmat3(10000,30); +[Ab,X]=balanc(A); +if Err(diag(diag(X))-X)>200*%eps then pause,end +if Err(Ab-inv(X)*A*X)>1000*%eps then pause,end + +//Complex Case +A=testmat3(10000+0.01*%i,30); +[Ab,X]=balanc(A); +if Err(diag(diag(X))-X)>200*%eps then pause,end +if Err(Ab-inv(X)*A*X)>1000*%eps then pause,end + +// PENCILS +//Small dimension +//--------------- +//Real Case +A=testmat3(10000,5);B=testmat3(1000,5); +[Ab,Bb,X,Y]=balanc(A,B); +if Err(Bb-inv(X)*B*Y)>200*%eps then pause,end +if Err(Ab-inv(X)*A*Y)>200*%eps then pause,end + +//complex case +A=testmat3(10000+0.001*%i,5);B=testmat3(1000+100*%i,5); +[Ab,Bb,X,Y]=balanc(A,B); +if Err(Bb-inv(X)*B*Y)>200*%eps then pause,end +if Err(Ab-inv(X)*A*Y)>200*%eps then pause,end + + +//Large dimension +//--------------- +//Real Case +A=testmat3(10000,20);B=testmat3(1000,20); +[Ab,Bb,X,Y]=balanc(A,B); +if Err(Bb-inv(X)*B*Y)>1000*%eps then pause,end +if Err(Ab-inv(X)*A*Y)>1000*%eps then pause,end + +//complex case +A=testmat3(10000+0.001*%i,20);B=testmat3(1000+100*%i,20); +[Ab,Bb,X,Y]=balanc(A,B); +if Err(Bb-inv(X)*B*Y)>1000*%eps then pause,end +if Err(Ab-inv(X)*A*Y)>1000*%eps then pause,end +warning('on') + diff --git a/modules/linear_algebra/tests/unit_tests/bdiag.dia.ref b/modules/linear_algebra/tests/unit_tests/bdiag.dia.ref new file mode 100755 index 000000000..6db5d7f8e --- /dev/null +++ b/modules/linear_algebra/tests/unit_tests/bdiag.dia.ref @@ -0,0 +1,103 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) ????-2008 - INRIA Michael Baudin +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +function r=Err(x),r=norm(x,1),endfunction +rand('normal') +//========================================================================== +//============================== bdiag ============================== +//========================================================================== +assert_checkequal(bdiag([]),[]); +[ab,x]=bdiag([]); +assert_checkequal(ab,[]); +assert_checkequal(x,[]); +[ab,x,bs]=bdiag([]); +assert_checkequal(ab,[]); +assert_checkequal(x,[]); +assert_checkequal(bs,[]); +assert_checktrue(execstr('bdiag([1 2;3 4;5 6])','errcatch')<>0); +//Small dimension +//--------------- +//Real case +e=1.d-1; +A=[1 1 2 3 4 5 + 0 1 6 7 8 9 + 0 0 1 e 3 1 + 0 0 -e 1 5 9 + 0 0 0 0 2 e + 0 0 0 0 0 3]; +X1=[0.5,0.3,0,0.3,0.3,0.2; + 1,0.6,0.5,0.1,0.7,0.4; + 0.7,0.1,0.4,0.6,0.1,1; + 0,0.6,0.2,0.3,0.4,0.5; + 0.6,0.7,0.5,0.7,0.7,0.5; + 0.3,0.3,0.4,0.5,0.9,0.6]; +A=inv(X1)*A*X1; +Ab1=bdiag(A); +assert_checkequal(triu(Ab1,-1),Ab1); +[Ab2,X]=bdiag(A); +assert_checkequal(Ab2,Ab1); +assert_checkalmostequal(inv(X)*A*X,Ab2,sqrt(%eps),0,"matrix"); +[Ab2,X,bs]=bdiag(A); +assert_checkequal(Ab2,Ab1); +assert_checkalmostequal(Ab2,inv(X)*A*X,sqrt(%eps),0,"matrix"); +assert_checkequal(sum(bs),size(A,1)); +assert_checktrue(and(bs>0)); +[Ab2,X,bs]=bdiag(A,1); +assert_checkalmostequal(Ab2,inv(X)*A*X,sqrt(%eps),0,"matrix"); +assert_checkequal(bs,size(A,1)); +//Complex case +e=1.d-1; +A=[1 1 2 3 4 5 + 0 1 6 7 8 9 + 0 0 1 e 3 1 + 0 0 -e 1 5 9 + 0 0 0 0 2 e + 0 0 0 0 0 3]; +X1=[0.5,0.3,0,0.3,0.3,0.2; + 1,0.6,0.5,0.1,0.7,0.4; + 0.7,0.1,0.4,0.6,0.1,1; + 0,0.6,0.2,0.3,0.4,0.5; + 0.6,0.7,0.5,0.7,0.7,0.5; + 0.3,0.3,0.4,0.5,0.9,0.6]+%i*eye(A); +A=inv(X1)*A*X1; +Ab1=bdiag(A); +assert_checkequal(triu(Ab1,-1),Ab1); +[Ab2,X]=bdiag(A); +assert_checkequal(Ab2,Ab1); +assert_checkalmostequal(Ab2,inv(X)*A*X,sqrt(%eps),0,"matrix"); +[Ab2,X,bs]=bdiag(A); +assert_checkequal(Ab2,Ab1); +assert_checkalmostequal(Ab2,inv(X)*A*X,sqrt(%eps),0,"matrix"); +assert_checkequal(sum(bs),size(A,1)); +assert_checktrue(and(bs>0)); +//Large dimension +//--------------- +//Real case +A=rand(25,25); +Ab1=bdiag(A); +assert_checkequal(triu(Ab1,-1),Ab1); +[Ab2,X]=bdiag(A); +assert_checkequal(Ab2,Ab1); +assert_checkalmostequal(Ab2,inv(X)*A*X,sqrt(%eps),0,"matrix"); +[Ab2,X,bs]=bdiag(A); +assert_checkequal(Ab2,Ab1); +assert_checkalmostequal(Ab2,inv(X)*A*X,sqrt(%eps),0,"matrix"); +assert_checkequal(size(bs,2),1); +assert_checkequal(sum(bs),size(A,1)); +assert_checktrue(and(bs>0)); +//Complex case +A=rand(25,25)+%i*rand(25,25); +Ab1=bdiag(A); +assert_checkequal(triu(Ab1,-1),Ab1); +[Ab2,X]=bdiag(A); +assert_checkalmostequal(Ab2,Ab1); +assert_checkalmostequal(Ab2,inv(X)*A*X,sqrt(%eps),0,"matrix"); +[Ab2,X,bs]=bdiag(A); +assert_checkequal(Ab2,Ab1); +assert_checkalmostequal(Ab2,inv(X)*A*X,sqrt(%eps),0,"matrix"); +assert_checkequal(size(bs,2),1); +assert_checkequal(sum(bs),size(A,1)); +assert_checktrue(and(bs>0)); diff --git a/modules/linear_algebra/tests/unit_tests/bdiag.tst b/modules/linear_algebra/tests/unit_tests/bdiag.tst new file mode 100755 index 000000000..efbef8289 --- /dev/null +++ b/modules/linear_algebra/tests/unit_tests/bdiag.tst @@ -0,0 +1,121 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) ????-2008 - INRIA Michael Baudin +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +function r=Err(x),r=norm(x,1),endfunction +rand('normal') + + +//========================================================================== +//============================== bdiag ============================== +//========================================================================== +assert_checkequal(bdiag([]),[]); +[ab,x]=bdiag([]); +assert_checkequal(ab,[]); +assert_checkequal(x,[]); + + +[ab,x,bs]=bdiag([]); +assert_checkequal(ab,[]); +assert_checkequal(x,[]); +assert_checkequal(bs,[]); + +assert_checktrue(execstr('bdiag([1 2;3 4;5 6])','errcatch')<>0); + +//Small dimension +//--------------- +//Real case +e=1.d-1; +A=[1 1 2 3 4 5 + 0 1 6 7 8 9 + 0 0 1 e 3 1 + 0 0 -e 1 5 9 + 0 0 0 0 2 e + 0 0 0 0 0 3]; +X1=[0.5,0.3,0,0.3,0.3,0.2; + 1,0.6,0.5,0.1,0.7,0.4; + 0.7,0.1,0.4,0.6,0.1,1; + 0,0.6,0.2,0.3,0.4,0.5; + 0.6,0.7,0.5,0.7,0.7,0.5; + 0.3,0.3,0.4,0.5,0.9,0.6]; +A=inv(X1)*A*X1; + +Ab1=bdiag(A); +assert_checkequal(triu(Ab1,-1),Ab1); + +[Ab2,X]=bdiag(A); +assert_checkequal(Ab2,Ab1); +assert_checkalmostequal(inv(X)*A*X,Ab2,sqrt(%eps),0,"matrix"); + +[Ab2,X,bs]=bdiag(A); +assert_checkequal(Ab2,Ab1); +assert_checkalmostequal(Ab2,inv(X)*A*X,sqrt(%eps),0,"matrix"); +assert_checkequal(sum(bs),size(A,1)); +assert_checktrue(and(bs>0)); + +[Ab2,X,bs]=bdiag(A,1); +assert_checkalmostequal(Ab2,inv(X)*A*X,sqrt(%eps),0,"matrix"); +assert_checkequal(bs,size(A,1)); + + +//Complex case +e=1.d-1; +A=[1 1 2 3 4 5 + 0 1 6 7 8 9 + 0 0 1 e 3 1 + 0 0 -e 1 5 9 + 0 0 0 0 2 e + 0 0 0 0 0 3]; +X1=[0.5,0.3,0,0.3,0.3,0.2; + 1,0.6,0.5,0.1,0.7,0.4; + 0.7,0.1,0.4,0.6,0.1,1; + 0,0.6,0.2,0.3,0.4,0.5; + 0.6,0.7,0.5,0.7,0.7,0.5; + 0.3,0.3,0.4,0.5,0.9,0.6]+%i*eye(A); +A=inv(X1)*A*X1; + +Ab1=bdiag(A); +assert_checkequal(triu(Ab1,-1),Ab1); +[Ab2,X]=bdiag(A); +assert_checkequal(Ab2,Ab1); +assert_checkalmostequal(Ab2,inv(X)*A*X,sqrt(%eps),0,"matrix"); + +[Ab2,X,bs]=bdiag(A); +assert_checkequal(Ab2,Ab1); +assert_checkalmostequal(Ab2,inv(X)*A*X,sqrt(%eps),0,"matrix"); +assert_checkequal(sum(bs),size(A,1)); +assert_checktrue(and(bs>0)); +//Large dimension +//--------------- +//Real case +A=rand(25,25); +Ab1=bdiag(A); +assert_checkequal(triu(Ab1,-1),Ab1); +[Ab2,X]=bdiag(A); +assert_checkequal(Ab2,Ab1); +assert_checkalmostequal(Ab2,inv(X)*A*X,sqrt(%eps),0,"matrix"); + +[Ab2,X,bs]=bdiag(A); +assert_checkequal(Ab2,Ab1); +assert_checkalmostequal(Ab2,inv(X)*A*X,sqrt(%eps),0,"matrix"); +assert_checkequal(size(bs,2),1); +assert_checkequal(sum(bs),size(A,1)); +assert_checktrue(and(bs>0)); + +//Complex case +A=rand(25,25)+%i*rand(25,25); +Ab1=bdiag(A); +assert_checkequal(triu(Ab1,-1),Ab1); +[Ab2,X]=bdiag(A); +assert_checkalmostequal(Ab2,Ab1); +assert_checkalmostequal(Ab2,inv(X)*A*X,sqrt(%eps),0,"matrix"); + +[Ab2,X,bs]=bdiag(A); +assert_checkequal(Ab2,Ab1); +assert_checkalmostequal(Ab2,inv(X)*A*X,sqrt(%eps),0,"matrix"); +assert_checkequal(size(bs,2),1); +assert_checkequal(sum(bs),size(A,1)); +assert_checktrue(and(bs>0)); + diff --git a/modules/linear_algebra/tests/unit_tests/chol.dia.ref b/modules/linear_algebra/tests/unit_tests/chol.dia.ref new file mode 100755 index 000000000..b86cf8397 --- /dev/null +++ b/modules/linear_algebra/tests/unit_tests/chol.dia.ref @@ -0,0 +1,37 @@ +// ============================================================================= +// 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. +// ============================================================================= +function r=Err(x),r=norm(x,1),endfunction +rand('normal') +//========================================================================== +//============================== chol ============================== +//========================================================================== +//Empty matrix +if chol([])<>[] then bugmes();quit;end +if execstr('chol([1 2;3 4])','errcatch')==0 then bugmes();quit;end +if execstr('chol([1 2;3 4]+%i)','errcatch')==0 then bugmes();quit;end +//Small dimension +//REAL +A=rand(5,5);A=A*A'; +U=chol(A); +if Err(triu(U)-U)>200*%eps then bugmes();quit;end +if Err(U'*U-A)>200*%eps then bugmes();quit;end +//Complex +A=rand(5,5)+%i*rand(5,5);A=A*A'; +U=chol(A); +if Err(triu(U)-U)>200*%eps then bugmes();quit;end +if Err(U'*U-A)>200*%eps then bugmes();quit;end +//Large dimension +//REAL +A=rand(50,50);A=A*A'; +U=chol(A); +if Err(triu(U)-U)>10*%eps then bugmes();quit;end +if Err(U'*U-A)>1000*%eps then bugmes();quit;end +//Complex +A=rand(5,5)+%i*rand(5,5);A=A*A'; +U=chol(A); +if Err(triu(U)-U)>10*%eps then bugmes();quit;end +if Err(U'*U-A)>1000*%eps then bugmes();quit;end diff --git a/modules/linear_algebra/tests/unit_tests/chol.tst b/modules/linear_algebra/tests/unit_tests/chol.tst new file mode 100755 index 000000000..2c18be4bf --- /dev/null +++ b/modules/linear_algebra/tests/unit_tests/chol.tst @@ -0,0 +1,45 @@ +// ============================================================================= +// 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. +// ============================================================================= +function r=Err(x),r=norm(x,1),endfunction +rand('normal') + +//========================================================================== +//============================== chol ============================== +//========================================================================== + +//Empty matrix +if chol([])<>[] then pause,end + +if execstr('chol([1 2;3 4])','errcatch')==0 then pause,end +if execstr('chol([1 2;3 4]+%i)','errcatch')==0 then pause,end + +//Small dimension +//REAL +A=rand(5,5);A=A*A'; +U=chol(A); +if Err(triu(U)-U)>200*%eps then pause,end +if Err(U'*U-A)>200*%eps then pause,end + +//Complex +A=rand(5,5)+%i*rand(5,5);A=A*A'; +U=chol(A); +if Err(triu(U)-U)>200*%eps then pause,end +if Err(U'*U-A)>200*%eps then pause,end + +//Large dimension +//REAL +A=rand(50,50);A=A*A'; +U=chol(A); +if Err(triu(U)-U)>10*%eps then pause,end +if Err(U'*U-A)>1000*%eps then pause,end + +//Complex +A=rand(5,5)+%i*rand(5,5);A=A*A'; +U=chol(A); +if Err(triu(U)-U)>10*%eps then pause,end +if Err(U'*U-A)>1000*%eps then pause,end + diff --git a/modules/linear_algebra/tests/unit_tests/companion.dia.ref b/modules/linear_algebra/tests/unit_tests/companion.dia.ref new file mode 100755 index 000000000..3f57ad5d3 --- /dev/null +++ b/modules/linear_algebra/tests/unit_tests/companion.dia.ref @@ -0,0 +1,55 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) ????-2008 - INRIA Michael Baudin +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// +// companion.tst -- +// Test "companion" for real and complex polynomials +// with linear, quadratic and cubic polynomials. +// +// Linear real polynomial +p=1+2*%s; +computed=companion(p); +expected=[-1/2]; +if abs(expected-computed)>%eps then bugmes();quit;end +// Quadratic real polynomial +p=1+2*%s+3*%s^2; +computed=companion(p); +expected=[-2/3 , -1/3;1 , 0]; +if abs(expected-computed)>%eps then bugmes();quit;end +// Cubic real polynomial +p=1+2*%s+3*%s^2+4*%s^3; +computed=companion(p); +expected=[-3/4 , -2/4 , -1/4; 1 , 0 , 0 ; 0 , 1, 0]; +if abs(expected-computed)>%eps then bugmes();quit;end +// Linear complex polynomial +p=1+%i+2*%s; +computed=companion(p); +expected=[-(1+%i)/2]; +if abs(expected-computed)>%eps then bugmes();quit;end +// Quadratic complex polynomial +p=1+%i+2*%s+3*%s^2; +computed=companion(p); +expected=[-2/3 , -(1+%i)/3;1 , 0]; +if abs(expected-computed)>%eps then bugmes();quit;end +// Cubic complex polynomial +p=1+%i+2*%s+3*%s^2+4*%s^3; +computed=companion(p); +expected=[-3/4 , -2/4 , -(1+%i)/4; 1 , 0 , 0 ; 0 , 1, 0]; +if abs(expected-computed)>%eps then bugmes();quit;end +// Vector of linear polynomials +p1=1+2*%s; +p2=1+%i+2*%s; +vector = [p1 p2]; +computed=companion(vector); +expected=[-1/2 0;0 -(1+%i)/2]; +if abs(expected-computed)>%eps then bugmes();quit;end +// Vector of quadratic/cubic real/complex polynomials +p1=1+2*%s+3*%s^2; +p2=1+%i+2*%s+3*%s^2+4*%s^3; +vector = [p1 p2]; +computed=companion(vector); +expected=[-2/3 -1/3 0 0 0;1 0 0 0 0; 0 0 -3/4 -2/4 -(1+%i)/4;0 0 1 0 0;0 0 0 1 0]; +if abs(expected-computed)>%eps then bugmes();quit;end diff --git a/modules/linear_algebra/tests/unit_tests/companion.tst b/modules/linear_algebra/tests/unit_tests/companion.tst new file mode 100755 index 000000000..68d58cc4b --- /dev/null +++ b/modules/linear_algebra/tests/unit_tests/companion.tst @@ -0,0 +1,57 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) ????-2008 - INRIA Michael Baudin +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// +// companion.tst -- +// Test "companion" for real and complex polynomials +// with linear, quadratic and cubic polynomials. +// + +// Linear real polynomial +p=1+2*%s; +computed=companion(p); +expected=[-1/2]; +if abs(expected-computed)>%eps then pause,end +// Quadratic real polynomial +p=1+2*%s+3*%s^2; +computed=companion(p); +expected=[-2/3 , -1/3;1 , 0]; +if abs(expected-computed)>%eps then pause,end +// Cubic real polynomial +p=1+2*%s+3*%s^2+4*%s^3; +computed=companion(p); +expected=[-3/4 , -2/4 , -1/4; 1 , 0 , 0 ; 0 , 1, 0]; +if abs(expected-computed)>%eps then pause,end +// Linear complex polynomial +p=1+%i+2*%s; +computed=companion(p); +expected=[-(1+%i)/2]; +if abs(expected-computed)>%eps then pause,end +// Quadratic complex polynomial +p=1+%i+2*%s+3*%s^2; +computed=companion(p); +expected=[-2/3 , -(1+%i)/3;1 , 0]; +if abs(expected-computed)>%eps then pause,end +// Cubic complex polynomial +p=1+%i+2*%s+3*%s^2+4*%s^3; +computed=companion(p); +expected=[-3/4 , -2/4 , -(1+%i)/4; 1 , 0 , 0 ; 0 , 1, 0]; +if abs(expected-computed)>%eps then pause,end +// Vector of linear polynomials +p1=1+2*%s; +p2=1+%i+2*%s; +vector = [p1 p2]; +computed=companion(vector); +expected=[-1/2 0;0 -(1+%i)/2]; +if abs(expected-computed)>%eps then pause,end +// Vector of quadratic/cubic real/complex polynomials +p1=1+2*%s+3*%s^2; +p2=1+%i+2*%s+3*%s^2+4*%s^3; +vector = [p1 p2]; +computed=companion(vector); +expected=[-2/3 -1/3 0 0 0;1 0 0 0 0; 0 0 -3/4 -2/4 -(1+%i)/4;0 0 1 0 0;0 0 0 1 0]; +if abs(expected-computed)>%eps then pause,end + diff --git a/modules/linear_algebra/tests/unit_tests/cond.dia.ref b/modules/linear_algebra/tests/unit_tests/cond.dia.ref new file mode 100755 index 000000000..81794adee --- /dev/null +++ b/modules/linear_algebra/tests/unit_tests/cond.dia.ref @@ -0,0 +1,61 @@ +// ============================================================================= +// 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 cond function +// ============================================================================= +// Interface +// =========== +assert_checkfalse(execstr("cond()", "errcatch") == 0); +refMsg = msprintf(_("%s: Wrong number of input argument(s): %d to %d expected.\n"), "cond", 1, 2); +assert_checkerror("cond()", refMsg); +assert_checkfalse(execstr("cond(1,2,3)", "errcatch") == 0); +refMsg = msprintf(_("%s: Wrong number of input argument(s): %d to %d expected.\n"), "cond", 1, 2); +assert_checkerror("cond(1,2,3)", refMsg); +assert_checkfalse(execstr("cond(%nan)", "errcatch") == 0); +refMsg = msprintf(_("%s: Wrong value for input argument #%d: must not contain %s or %s.\n"), "cond", 1, "%nan", "%inf"); +assert_checkerror("cond(%nan)", refMsg); +assert_checkfalse(execstr("cond(%inf)", "errcatch") == 0); +refMsg = msprintf(_("%s: Wrong value for input argument #%d: must not contain %s or %s.\n"), "cond", 1, "%nan", "%inf"); +assert_checkerror("cond(%inf)", refMsg); +assert_checkfalse(execstr("cond(%f)", "errcatch") == 0); +refMsg = msprintf(_("%s: Wrong type for input argument #%d: A matrix expected.\n"), "cond", 1); +assert_checkerror("cond(%f)", refMsg); +assert_checkfalse(execstr("cond(""ah"")", "errcatch") == 0); +refMsg = msprintf(_("%s: Wrong type for input argument #%d: A matrix expected.\n"), "cond", 1); +assert_checkerror("cond(""ah"")", refMsg); +assert_checkfalse(execstr("cond(""ah"")", "errcatch") == 0); +refMsg = msprintf(_("%s: Wrong type for input argument #%d: A matrix expected.\n"), "cond", 1); +assert_checkerror("cond(""ah"")", refMsg); +assert_checkfalse(execstr("cond(""ah"", 1)", "errcatch") == 0); +refMsg = msprintf(_("%s: Wrong type for input argument #%d: A square matrix expected.\n"), "cond", 1); +assert_checkerror("cond(""ah"", 1)", refMsg); +assert_checkfalse(execstr("cond(1, %f)", "errcatch") == 0); +refMsg = msprintf(_("%s: Wrong type for input argument #%d: A scalar or a string expected.\n"),"cond", 2); +assert_checkerror("cond(1, %f)", refMsg); +assert_checkfalse(execstr("cond(1, 3)", "errcatch") == 0); +refMsg = msprintf(_("%s: Wrong value for input argument #%d: must be %d, %d, %s, ''%s'' or ''%s''.\n"), "cond", 2, 1, 2, "%inf", "inf", "fro"); +assert_checkerror("cond(1, 3)", refMsg); +assert_checkfalse(execstr("cond([8 5 2;4 5 6], 1)", "errcatch") == 0); +refMsg = msprintf(_("%s: Wrong type for input argument #%d: A square matrix expected.\n"),"cond", 1); +assert_checkerror("cond([8 5 2;4 5 6], 1)", refMsg); +// cond(A) +A = [8 5 2;4 5 6]; +assert_checkalmostequal(cond(A), 3.1529469); +A = A * %i; +assert_checkalmostequal(cond(A), 3.1529469); +A = [9 0 3;2 5 0;7 4 1]; +assert_checkalmostequal(cond(A), 23.411565); +assert_checkalmostequal(cond(A,1), 33); +assert_checkalmostequal(cond(A, %inf), 36); +assert_checkalmostequal(cond(A, 'inf'), 36); +assert_checkalmostequal(cond(A, 'fro'), 25.702776, 1e-7); +A = A * %i; +assert_checkalmostequal(cond(A), 23.411565); +assert_checkalmostequal(cond(A,1), 33); +assert_checkalmostequal(cond(A, %inf), 36); +assert_checkalmostequal(cond(A, 'inf'), 36); +assert_checkalmostequal(cond(A, 'fro'), 25.702776, 1e-7); diff --git a/modules/linear_algebra/tests/unit_tests/cond.tst b/modules/linear_algebra/tests/unit_tests/cond.tst new file mode 100755 index 000000000..f87fc8247 --- /dev/null +++ b/modules/linear_algebra/tests/unit_tests/cond.tst @@ -0,0 +1,87 @@ +// ============================================================================= +// 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 cond function +// ============================================================================= + +// Interface +// =========== + +assert_checkfalse(execstr("cond()", "errcatch") == 0); +refMsg = msprintf(_("%s: Wrong number of input argument(s): %d to %d expected.\n"), "cond", 1, 2); +assert_checkerror("cond()", refMsg); + +assert_checkfalse(execstr("cond(1,2,3)", "errcatch") == 0); +refMsg = msprintf(_("%s: Wrong number of input argument(s): %d to %d expected.\n"), "cond", 1, 2); +assert_checkerror("cond(1,2,3)", refMsg); + +assert_checkfalse(execstr("cond(%nan)", "errcatch") == 0); +refMsg = msprintf(_("%s: Wrong value for input argument #%d: must not contain %s or %s.\n"), "cond", 1, "%nan", "%inf"); +assert_checkerror("cond(%nan)", refMsg); + +assert_checkfalse(execstr("cond(%inf)", "errcatch") == 0); +refMsg = msprintf(_("%s: Wrong value for input argument #%d: must not contain %s or %s.\n"), "cond", 1, "%nan", "%inf"); +assert_checkerror("cond(%inf)", refMsg); + +assert_checkfalse(execstr("cond(%f)", "errcatch") == 0); +refMsg = msprintf(_("%s: Wrong type for input argument #%d: A matrix expected.\n"), "cond", 1); +assert_checkerror("cond(%f)", refMsg); + +assert_checkfalse(execstr("cond(""ah"")", "errcatch") == 0); +refMsg = msprintf(_("%s: Wrong type for input argument #%d: A matrix expected.\n"), "cond", 1); +assert_checkerror("cond(""ah"")", refMsg); + +assert_checkfalse(execstr("cond(""ah"")", "errcatch") == 0); +refMsg = msprintf(_("%s: Wrong type for input argument #%d: A matrix expected.\n"), "cond", 1); +assert_checkerror("cond(""ah"")", refMsg); + +assert_checkfalse(execstr("cond(""ah"", 1)", "errcatch") == 0); +refMsg = msprintf(_("%s: Wrong type for input argument #%d: A square matrix expected.\n"), "cond", 1); +assert_checkerror("cond(""ah"", 1)", refMsg); + +assert_checkfalse(execstr("cond(1, %f)", "errcatch") == 0); +refMsg = msprintf(_("%s: Wrong type for input argument #%d: A scalar or a string expected.\n"),"cond", 2); +assert_checkerror("cond(1, %f)", refMsg); + +assert_checkfalse(execstr("cond(1, 3)", "errcatch") == 0); +refMsg = msprintf(_("%s: Wrong value for input argument #%d: must be %d, %d, %s, ''%s'' or ''%s''.\n"), "cond", 2, 1, 2, "%inf", "inf", "fro"); +assert_checkerror("cond(1, 3)", refMsg); + +assert_checkfalse(execstr("cond([8 5 2;4 5 6], 1)", "errcatch") == 0); +refMsg = msprintf(_("%s: Wrong type for input argument #%d: A square matrix expected.\n"),"cond", 1); +assert_checkerror("cond([8 5 2;4 5 6], 1)", refMsg); + +// cond(A) +A = [8 5 2;4 5 6]; +assert_checkalmostequal(cond(A), 3.1529469); + +A = A * %i; +assert_checkalmostequal(cond(A), 3.1529469); + +A = [9 0 3;2 5 0;7 4 1]; +assert_checkalmostequal(cond(A), 23.411565); + +assert_checkalmostequal(cond(A,1), 33); + +assert_checkalmostequal(cond(A, %inf), 36); + +assert_checkalmostequal(cond(A, 'inf'), 36); + +assert_checkalmostequal(cond(A, 'fro'), 25.702776, 1e-7); + +A = A * %i; +assert_checkalmostequal(cond(A), 23.411565); + +assert_checkalmostequal(cond(A,1), 33); + +assert_checkalmostequal(cond(A, %inf), 36); + +assert_checkalmostequal(cond(A, 'inf'), 36); + +assert_checkalmostequal(cond(A, 'fro'), 25.702776, 1e-7); diff --git a/modules/linear_algebra/tests/unit_tests/det.dia.ref b/modules/linear_algebra/tests/unit_tests/det.dia.ref new file mode 100755 index 000000000..3a218b75b --- /dev/null +++ b/modules/linear_algebra/tests/unit_tests/det.dia.ref @@ -0,0 +1,122 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) ????-2008 - INRIA Michael Baudin +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +//========================================================================== +//============================== det ============================== +//========================================================================== +//Small dimension +//Real +A=[1 1; 1 2]; +assert_checkalmostequal(det(A), 1); +[e,m]=det(A); +assert_checkalmostequal(e, 0); +assert_checkalmostequal(m, 1); +//Complex +A=A+%i; +assert_checkalmostequal(real(det(A)), 1); +assert_checkalmostequal(imag(det(A)), 1); +[e,m]=det(A); +assert_checkalmostequal(e, 0); +assert_checkalmostequal(real(m), 1); +assert_checkalmostequal(imag(m), 1); +//Sparse +A=[1 1; 1 2]; +A=sparse(A); +assert_checkalmostequal(det(A), 1); +[e,m]=det(A) + m = + + 1. + e = + + 0. +assert_checkalmostequal(e, 0); +assert_checkalmostequal(m, 1); +//Polynomials +A=[1+%s 1; 1 2+%s]; +assert_checkequal(det(A), 1+3*%s+%s*%s); +//Rationals +A=[1+%s 1/%s; 1 2+%s]; +assert_checkequal(numer(det(A)), -1+2*%s+3*%s^2+%s^3); +assert_checkequal(denom(det(A)), %s); +//Sparse complex +A=[1 1; 1 2]; +A=A+%i; +A=sparse(A); +assert_checkalmostequal(real(det(A)), 1); +assert_checkalmostequal(imag(det(A)), 1); +[e,m]=det(A); +assert_checkalmostequal(e, 0); +assert_checkalmostequal(real(m), 1); +assert_checkalmostequal(imag(m), 1); +//Large dimension +//Real +v=rand(1,21); +A=rand(21,21); A=(triu(A,1)+diag(v))*(tril(A,-1)+diag(ones(1,21))); +assert_checktrue(abs(det(A) - prod(v)) < 1D-7); +[e,m]=det(A); +assert_checktrue(abs(m*(10^e) - prod(v)) < 1D-7); +//Complex +v=(v+rand(v)*%i)/2; +A=rand(21,21); A=(triu(A,1)+diag(v))*(tril(A,-1)+diag(ones(1,21))); +assert_checktrue(abs(det(A) - prod(v)) < 1D-7); +[e,m]=det(A); +assert_checktrue(abs(m*(10^e) - prod(v)) < 1D-7); +//Sparse +v=rand(1,21); +v=sparse(v); +A=rand(21,21); A=(triu(A,1)+diag(v))*(tril(A,-1)+diag(ones(1,21))); +assert_checktrue(abs(det(A) - prod(v)) < 1D-7); +[e,m]=det(A); +assert_checktrue(abs(m*(10^e) - prod(v)) < 1d-7); +//Polynomials +v=rand(1,21) + v = + + + column 1 to 5 + + 0.5866105 0.0477090 0.9416931 0.9613204 0.5583350 + + column 6 to 10 + + 0.5700629 0.3169258 0.9932628 0.8074780 0.8554797 + + column 11 to 15 + + 0.5031461 0.0963323 0.7058098 0.8630577 0.0076185 + + column 16 to 20 + + 0.8048951 0.5963762 0.1176836 0.8010095 0.5132340 + + column 21 + + 0.201091 +v=v+%s; +A=rand(21,21); A=(triu(A,1)+diag(v))*(tril(A,-1)+diag(ones(1,21))); +assert_checktrue(abs(coeff(det(A)-prod(v))) < 1D-7); +//Rationals +v=rand(1,21); +v=v/%s; +A=rand(21,21); A=(triu(A,1)+diag(v))*(tril(A,-1)+diag(ones(1,21))); +assert_checktrue(abs(coeff(numer(det(A))-numer(prod(v)))) < 1D-7); +//Sparse complex +v=rand(1,21); +v=(v+rand(v)*%i)/2; +v=sparse(v); +A=rand(21,21); +A=(triu(A,1)+diag(v))*(tril(A,-1)+diag(ones(1,21))); +A=sparse(A); +assert_checktrue(abs(det(A) - prod(v)) < 1D-7); +[e,m]=det(A); +assert_checktrue(abs(m*(10^e) - prod(v)) < 1d-7); +//Error messages +A=[1 1; 1 2]; +errmsg1 = msprintf(_("Wrong type for first argument: Square matrix expected.\n")); +assert_checkerror("det([1,2;3,4;5,6])", errmsg1, 20); +errmsg2 = msprintf(_("%s: Wrong number of input argument(s): %d expected.\n"), "det", 1); +assert_checkerror("det(A,1)", errmsg2, 77); diff --git a/modules/linear_algebra/tests/unit_tests/det.tst b/modules/linear_algebra/tests/unit_tests/det.tst new file mode 100755 index 000000000..4b0240755 --- /dev/null +++ b/modules/linear_algebra/tests/unit_tests/det.tst @@ -0,0 +1,98 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) ????-2008 - INRIA Michael Baudin +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= + +//========================================================================== +//============================== det ============================== +//========================================================================== + +//Small dimension +//Real +A=[1 1; 1 2]; +assert_checkalmostequal(det(A), 1); +[e,m]=det(A); +assert_checkalmostequal(e, 0); +assert_checkalmostequal(m, 1); +//Complex +A=A+%i; +assert_checkalmostequal(real(det(A)), 1); +assert_checkalmostequal(imag(det(A)), 1); +[e,m]=det(A); +assert_checkalmostequal(e, 0); +assert_checkalmostequal(real(m), 1); +assert_checkalmostequal(imag(m), 1); +//Sparse +A=[1 1; 1 2]; +A=sparse(A); +assert_checkalmostequal(det(A), 1); +[e,m]=det(A) +assert_checkalmostequal(e, 0); +assert_checkalmostequal(m, 1); +//Polynomials +A=[1+%s 1; 1 2+%s]; +assert_checkequal(det(A), 1+3*%s+%s*%s); +//Rationals +A=[1+%s 1/%s; 1 2+%s]; +assert_checkequal(numer(det(A)), -1+2*%s+3*%s^2+%s^3); +assert_checkequal(denom(det(A)), %s); +//Sparse complex +A=[1 1; 1 2]; +A=A+%i; +A=sparse(A); +assert_checkalmostequal(real(det(A)), 1); +assert_checkalmostequal(imag(det(A)), 1); +[e,m]=det(A); +assert_checkalmostequal(e, 0); +assert_checkalmostequal(real(m), 1); +assert_checkalmostequal(imag(m), 1); + +//Large dimension +//Real +v=rand(1,21); +A=rand(21,21); A=(triu(A,1)+diag(v))*(tril(A,-1)+diag(ones(1,21))); +assert_checktrue(abs(det(A) - prod(v)) < 1D-7); +[e,m]=det(A); +assert_checktrue(abs(m*(10^e) - prod(v)) < 1D-7); +//Complex +v=(v+rand(v)*%i)/2; +A=rand(21,21); A=(triu(A,1)+diag(v))*(tril(A,-1)+diag(ones(1,21))); +assert_checktrue(abs(det(A) - prod(v)) < 1D-7); +[e,m]=det(A); +assert_checktrue(abs(m*(10^e) - prod(v)) < 1D-7); +//Sparse +v=rand(1,21); +v=sparse(v); +A=rand(21,21); A=(triu(A,1)+diag(v))*(tril(A,-1)+diag(ones(1,21))); +assert_checktrue(abs(det(A) - prod(v)) < 1D-7); +[e,m]=det(A); +assert_checktrue(abs(m*(10^e) - prod(v)) < 1d-7); +//Polynomials +v=rand(1,21) +v=v+%s; +A=rand(21,21); A=(triu(A,1)+diag(v))*(tril(A,-1)+diag(ones(1,21))); +assert_checktrue(abs(coeff(det(A)-prod(v))) < 1D-7); +//Rationals +v=rand(1,21); +v=v/%s; +A=rand(21,21); A=(triu(A,1)+diag(v))*(tril(A,-1)+diag(ones(1,21))); +assert_checktrue(abs(coeff(numer(det(A))-numer(prod(v)))) < 1D-7); +//Sparse complex +v=rand(1,21); +v=(v+rand(v)*%i)/2; +v=sparse(v); +A=rand(21,21); +A=(triu(A,1)+diag(v))*(tril(A,-1)+diag(ones(1,21))); +A=sparse(A); +assert_checktrue(abs(det(A) - prod(v)) < 1D-7); +[e,m]=det(A); +assert_checktrue(abs(m*(10^e) - prod(v)) < 1d-7); + +//Error messages +A=[1 1; 1 2]; +errmsg1 = msprintf(_("Wrong type for first argument: Square matrix expected.\n")); +assert_checkerror("det([1,2;3,4;5,6])", errmsg1, 20); +errmsg2 = msprintf(_("%s: Wrong number of input argument(s): %d expected.\n"), "det", 1); +assert_checkerror("det(A,1)", errmsg2, 77); diff --git a/modules/linear_algebra/tests/unit_tests/gspec.dia.ref b/modules/linear_algebra/tests/unit_tests/gspec.dia.ref new file mode 100755 index 000000000..c78066eb1 --- /dev/null +++ b/modules/linear_algebra/tests/unit_tests/gspec.dia.ref @@ -0,0 +1,122 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) ????-2008 - INRIA Michael Baudin +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +rand('normal') +//define tools +function A=testmat1(a,n) + //eigen values are given by a dilation of nth roots of 1 + A=diag(a*ones(1,n-1),1)+diag((1/a)*ones(1,n-1),-1) + A(1,n)=1/a;A(n,1)=a +endfunction +function r=Err(x) + r=norm(x,1) +endfunction +// +// gc_spec.tst -- +// Test spec with 2 RHS (i.e. generalized eigenvalues) +// and one or several LHS. +// +//Empty matrix +// 1 LHS +S=spec([],[]); +if S<>[] then bugmes();quit;end +// 2 LHS +[al,be]=spec([],[]); +if al<>[]|be<>[] then bugmes();quit;end +// 3 LHS +[al,be,R]=spec([],[]); +if al<>[]|be<>[]|R<>[] then bugmes();quit;end +// 4 LHS +[al,be,L,R]=spec([],[]); +if al<>[]|be<>[]|L<>[]|R<>[] then bugmes();quit;end +//Matrix with Inf or Nan (test de la detection d'erreur +// 1 A Real, B, Real +if execstr('spec([%inf 1;2 3],[%inf 1;2 3])','errcatch')==0 then bugmes();quit;end +if execstr('spec([%inf 1;2 3],[1 2;3 4])','errcatch')==0 then bugmes();quit;end +if execstr('spec([1 2;3 4],[1 %nan;2 3])','errcatch')==0 then bugmes();quit;end +// 2 A Complex, B Complex +if execstr('spec([%inf %i;2 3],[%inf %i;2 3])','errcatch')==0 then bugmes();quit;end +// 3 A Real, B Complex +if execstr('spec([%inf 1;2 3],[%inf %i;2 3])','errcatch')==0 then bugmes();quit;end +// 4 A Complex, B Real +if execstr('spec([%inf %i;2 3],[%inf 1;2 3])','errcatch')==0 then bugmes();quit;end +errorlevel = 1000*%eps; +//Small dimension +//--------------- +//Real Case +A=testmat1(3,5); +E=testmat1(-2,5); +// 1 LHS +S=spec(A,E); +// 2 LHS +[Sa,Se]=spec(A,E); +if Err(S-Sa./Se)>errorlevel then bugmes();quit;end +// 3 LHS +[Sa,Se,R]=spec(A,E); +if Err(S-Sa./Se)>errorlevel then bugmes();quit;end +if Err(A*R-E*R*diag(S))>errorlevel then bugmes();quit;end +// 4 LHS +[Sa,Se,L,R]=spec(A,E); +if Err(S-Sa./Se)>errorlevel then bugmes();quit;end +if Err(A*R-E*R*diag(S))>errorlevel then bugmes();quit;end +if Err(L'*A-diag(S)*L'*E)>errorlevel then bugmes();quit;end +// Complex Case : A complex, E complex +A=testmat1(3-%i,5); +E=testmat1(-2+0.1*%i,5); +// 1 LHS +S=spec(A,E); +// 2 LHS +[Sa,Se]=spec(A,E); +if Err(S-Sa./Se)>errorlevel then bugmes();quit;end +// 3 LHS +[Sa,Se,R]=spec(A,E); +if Err(S-Sa./Se)>errorlevel then bugmes();quit;end +if Err(A*R-E*R*diag(S))>errorlevel then bugmes();quit;end +// 4 LHS +[Sa,Se,L,R]=spec(A,E); +if Err(S-Sa./Se)>errorlevel then bugmes();quit;end +if Err(A*R-E*R*diag(S))>errorlevel then bugmes();quit;end +if Err(L'*A-diag(S)*L'*E)>errorlevel then bugmes();quit;end +// Mixed case : A real, E complex +A = eye(3,3); +E = eye(3,3) * %i; +[Sa,Se,R]=spec(A,E); +S=Sa./Se; +if Err(A*R-E*R*diag(S))>errorlevel then bugmes();quit;end +// Mixed case : A complex, E real +A = eye(3,3) * %i; +E = eye(3,3); +[Sa,Se,R]=spec(A,E); +S=Sa./Se; +if Err(A*R-E*R*diag(S))>errorlevel then bugmes();quit;end +//Large dimension +//--------------- +//Real Case +A=testmat1(3,30); +E=testmat1(-2,30); +S=spec(A,E); +[Sa,Se]=spec(A,E); +if Err(S-Sa./Se)>errorlevel then bugmes();quit;end +[Sa,Se,R]=spec(A,E); +if Err(S-Sa./Se)>errorlevel then bugmes();quit;end +if Err(A*R-E*R*diag(S))>errorlevel then bugmes();quit;end +[Sa,Se,L,R]=spec(A,E); +if Err(S-Sa./Se)>errorlevel then bugmes();quit;end +if Err(A*R-E*R*diag(S))>errorlevel then bugmes();quit;end +if Err(L'*A-diag(S)*L'*E)>errorlevel then bugmes();quit;end +//Complex Case +A=testmat1(3-%i,30); +E=testmat1(-2+0.1*%i,30); +S=spec(A,E); +[Sa,Se]=spec(A,E); +if Err(S-Sa./Se)>20*%eps then bugmes();quit;end +[Sa,Se,R]=spec(A,E); +if Err(S-Sa./Se)>20*%eps then bugmes();quit;end +if Err(A*R-E*R*diag(S))>errorlevel then bugmes();quit;end +[Sa,Se,L,R]=spec(A,E); +if Err(S-Sa./Se)>20*%eps then bugmes();quit;end +if Err(A*R-E*R*diag(S))>errorlevel then bugmes();quit;end +if Err(L'*A-diag(S)*L'*E)>errorlevel then bugmes();quit;end diff --git a/modules/linear_algebra/tests/unit_tests/gspec.tst b/modules/linear_algebra/tests/unit_tests/gspec.tst new file mode 100755 index 000000000..f7b5ca616 --- /dev/null +++ b/modules/linear_algebra/tests/unit_tests/gspec.tst @@ -0,0 +1,139 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) ????-2008 - INRIA Michael Baudin +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +rand('normal') + +//define tools +function A=testmat1(a,n) + //eigen values are given by a dilation of nth roots of 1 + A=diag(a*ones(1,n-1),1)+diag((1/a)*ones(1,n-1),-1) + A(1,n)=1/a;A(n,1)=a +endfunction +function r=Err(x) + r=norm(x,1) +endfunction + + +// +// gc_spec.tst -- +// Test spec with 2 RHS (i.e. generalized eigenvalues) +// and one or several LHS. +// + +//Empty matrix +// 1 LHS +S=spec([],[]); +if S<>[] then pause,end +// 2 LHS +[al,be]=spec([],[]); +if al<>[]|be<>[] then pause,end +// 3 LHS +[al,be,R]=spec([],[]); +if al<>[]|be<>[]|R<>[] then pause,end +// 4 LHS +[al,be,L,R]=spec([],[]); +if al<>[]|be<>[]|L<>[]|R<>[] then pause,end + + +//Matrix with Inf or Nan (test de la detection d'erreur + +// 1 A Real, B, Real +if execstr('spec([%inf 1;2 3],[%inf 1;2 3])','errcatch')==0 then pause,end +if execstr('spec([%inf 1;2 3],[1 2;3 4])','errcatch')==0 then pause,end +if execstr('spec([1 2;3 4],[1 %nan;2 3])','errcatch')==0 then pause,end +// 2 A Complex, B Complex +if execstr('spec([%inf %i;2 3],[%inf %i;2 3])','errcatch')==0 then pause,end +// 3 A Real, B Complex +if execstr('spec([%inf 1;2 3],[%inf %i;2 3])','errcatch')==0 then pause,end +// 4 A Complex, B Real +if execstr('spec([%inf %i;2 3],[%inf 1;2 3])','errcatch')==0 then pause,end + +errorlevel = 1000*%eps; + +//Small dimension +//--------------- +//Real Case +A=testmat1(3,5); +E=testmat1(-2,5); +// 1 LHS +S=spec(A,E); +// 2 LHS +[Sa,Se]=spec(A,E); +if Err(S-Sa./Se)>errorlevel then pause,end +// 3 LHS +[Sa,Se,R]=spec(A,E); +if Err(S-Sa./Se)>errorlevel then pause,end +if Err(A*R-E*R*diag(S))>errorlevel then pause,end +// 4 LHS +[Sa,Se,L,R]=spec(A,E); +if Err(S-Sa./Se)>errorlevel then pause,end +if Err(A*R-E*R*diag(S))>errorlevel then pause,end +if Err(L'*A-diag(S)*L'*E)>errorlevel then pause,end + +// Complex Case : A complex, E complex +A=testmat1(3-%i,5); +E=testmat1(-2+0.1*%i,5); +// 1 LHS +S=spec(A,E); +// 2 LHS +[Sa,Se]=spec(A,E); +if Err(S-Sa./Se)>errorlevel then pause,end +// 3 LHS +[Sa,Se,R]=spec(A,E); +if Err(S-Sa./Se)>errorlevel then pause,end +if Err(A*R-E*R*diag(S))>errorlevel then pause,end +// 4 LHS +[Sa,Se,L,R]=spec(A,E); +if Err(S-Sa./Se)>errorlevel then pause,end +if Err(A*R-E*R*diag(S))>errorlevel then pause,end +if Err(L'*A-diag(S)*L'*E)>errorlevel then pause,end + +// Mixed case : A real, E complex +A = eye(3,3); +E = eye(3,3) * %i; +[Sa,Se,R]=spec(A,E); +S=Sa./Se; +if Err(A*R-E*R*diag(S))>errorlevel then pause,end + +// Mixed case : A complex, E real +A = eye(3,3) * %i; +E = eye(3,3); +[Sa,Se,R]=spec(A,E); +S=Sa./Se; +if Err(A*R-E*R*diag(S))>errorlevel then pause,end + +//Large dimension +//--------------- + +//Real Case +A=testmat1(3,30); +E=testmat1(-2,30); +S=spec(A,E); +[Sa,Se]=spec(A,E); +if Err(S-Sa./Se)>errorlevel then pause,end +[Sa,Se,R]=spec(A,E); +if Err(S-Sa./Se)>errorlevel then pause,end +if Err(A*R-E*R*diag(S))>errorlevel then pause,end +[Sa,Se,L,R]=spec(A,E); +if Err(S-Sa./Se)>errorlevel then pause,end +if Err(A*R-E*R*diag(S))>errorlevel then pause,end +if Err(L'*A-diag(S)*L'*E)>errorlevel then pause,end + +//Complex Case + +A=testmat1(3-%i,30); +E=testmat1(-2+0.1*%i,30); +S=spec(A,E); +[Sa,Se]=spec(A,E); +if Err(S-Sa./Se)>20*%eps then pause,end +[Sa,Se,R]=spec(A,E); +if Err(S-Sa./Se)>20*%eps then pause,end +if Err(A*R-E*R*diag(S))>errorlevel then pause,end +[Sa,Se,L,R]=spec(A,E); +if Err(S-Sa./Se)>20*%eps then pause,end +if Err(A*R-E*R*diag(S))>errorlevel then pause,end +if Err(L'*A-diag(S)*L'*E)>errorlevel then pause,end + diff --git a/modules/linear_algebra/tests/unit_tests/hess.dia.ref b/modules/linear_algebra/tests/unit_tests/hess.dia.ref new file mode 100755 index 000000000..ceff6d278 --- /dev/null +++ b/modules/linear_algebra/tests/unit_tests/hess.dia.ref @@ -0,0 +1,48 @@ +// ============================================================================= +// 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. +// ============================================================================= +function r=Err(x),r=norm(x,1),endfunction +rand('normal') +//========================================================================== +//============================== hess ============================== +//========================================================================== +//Empty matrix +if hess([])<>[] then bugmes();quit;end +[U,H]=hess([]); +if U<>[]|H<>[] then bugmes();quit;end +if execstr('hess(rand(2,5))','errcatch')==0 then bugmes();quit;end +if execstr('[U,H]=hess(rand(2,5))','errcatch')==0 then bugmes();quit;end +if execstr('hess(rand(2,5)+%i)','errcatch')==0 then bugmes();quit;end +if execstr('[U,H]=hess(rand(2,5)+%i)','errcatch')==0 then bugmes();quit;end +//Small dimension +//Real case +A=rand(5,5); +H=hess(A); +[U,H1]=hess(A); +if Err(H-H1)>200*%eps then bugmes();quit;end +if Err(U'*U-eye()) >200*%eps then bugmes();quit;end +if Err(U'*A*U-H1) >200*%eps then bugmes();quit;end +//complex case +A=rand(5,5)+%i*rand(5,5); +H=hess(A); +[U,H1]=hess(A); +if Err(H-H1)>200*%eps then bugmes();quit;end +if Err(U'*U-eye()) >200*%eps then bugmes();quit;end +if Err(U'*A*U-H1) >200*%eps then bugmes();quit;end +//Large dimension +A=rand(20,20); +H=hess(A); +[U,H1]=hess(A); +if Err(H-H1)>200*%eps then bugmes();quit;end +if Err(U'*U-eye()) >1000*%eps then bugmes();quit;end +if Err(U'*A*U-H1) >1000*%eps then bugmes();quit;end +//complex case +A=rand(20,20)+%i*rand(20,20); +H=hess(A); +[U,H1]=hess(A); +if Err(H-H1)>1000*%eps then bugmes();quit;end +if Err(U'*U-eye()) >1000*%eps then bugmes();quit;end +if Err(U'*A*U-H1) >1000*%eps then bugmes();quit;end diff --git a/modules/linear_algebra/tests/unit_tests/hess.tst b/modules/linear_algebra/tests/unit_tests/hess.tst new file mode 100755 index 000000000..8fce2bc5d --- /dev/null +++ b/modules/linear_algebra/tests/unit_tests/hess.tst @@ -0,0 +1,53 @@ +// ============================================================================= +// 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. +// ============================================================================= +function r=Err(x),r=norm(x,1),endfunction +rand('normal') + +//========================================================================== +//============================== hess ============================== +//========================================================================== + +//Empty matrix +if hess([])<>[] then pause,end +[U,H]=hess([]); +if U<>[]|H<>[] then pause,end + +if execstr('hess(rand(2,5))','errcatch')==0 then pause,end +if execstr('[U,H]=hess(rand(2,5))','errcatch')==0 then pause,end +if execstr('hess(rand(2,5)+%i)','errcatch')==0 then pause,end +if execstr('[U,H]=hess(rand(2,5)+%i)','errcatch')==0 then pause,end + +//Small dimension +//Real case +A=rand(5,5); +H=hess(A); +[U,H1]=hess(A); +if Err(H-H1)>200*%eps then pause,end +if Err(U'*U-eye()) >200*%eps then pause,end +if Err(U'*A*U-H1) >200*%eps then pause,end +//complex case +A=rand(5,5)+%i*rand(5,5); +H=hess(A); +[U,H1]=hess(A); +if Err(H-H1)>200*%eps then pause,end +if Err(U'*U-eye()) >200*%eps then pause,end +if Err(U'*A*U-H1) >200*%eps then pause,end +//Large dimension +A=rand(20,20); +H=hess(A); +[U,H1]=hess(A); +if Err(H-H1)>200*%eps then pause,end +if Err(U'*U-eye()) >1000*%eps then pause,end +if Err(U'*A*U-H1) >1000*%eps then pause,end +//complex case +A=rand(20,20)+%i*rand(20,20); +H=hess(A); +[U,H1]=hess(A); +if Err(H-H1)>1000*%eps then pause,end +if Err(U'*U-eye()) >1000*%eps then pause,end +if Err(U'*A*U-H1) >1000*%eps then pause,end + diff --git a/modules/linear_algebra/tests/unit_tests/inv.dia.ref b/modules/linear_algebra/tests/unit_tests/inv.dia.ref new file mode 100755 index 000000000..aaad5e325 --- /dev/null +++ b/modules/linear_algebra/tests/unit_tests/inv.dia.ref @@ -0,0 +1,56 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) ????-2008 - INRIA Michael Baudin +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +//define tools +function A=testmat1(a,n) + //eigen values are given by a dilation of nth roots of 1 + A=diag(a*ones(1,n-1),1)+diag((1/a)*ones(1,n-1),-1) + A(1,n)=1/a;A(n,1)=a +endfunction +function r=Err(x) + r=norm(x,1) +endfunction +rand('normal') +//========================================================================== +//============================== inv ============================== +//========================================================================== +//Empty matrix +A=[]; +if inv(A)<>[] then bugmes();quit;end +//Singular matrix +if execstr('inv([0 0;2 3])','errcatch')==0 then bugmes();quit;end +if execstr('inv([0 0;%i 3])','errcatch')==0 then bugmes();quit;end +//Rectangular matrix +if execstr('inv(rand(2,3))','errcatch')==0 then bugmes();quit;end +if execstr('inv(rand(2,3)+%i*eye())','errcatch')==0 then bugmes();quit;end +//Small dimension +//--------------- +//Unsymetric +A=testmat1(3,5);Ac=testmat1(3+%i,5); +//Real Case +if Err(A*inv(A)-eye(A)) >200*%eps then bugmes();quit;end +//Complex Case +if Err(Ac*inv(Ac)-eye(A)) >200*%eps then bugmes();quit;end +//Symetric +A=A*A';Ac=Ac*Ac'; +//Real Case +if Err(A*inv(A)-eye(A)) >1000*%eps then bugmes();quit;end +//Complex Case +if Err(Ac*inv(Ac)-eye(A)) >1000*%eps then bugmes();quit;end +//Large dimension +//--------------- +//Unsymetric +A=testmat1(3,50);Ac=testmat1(3+%i,50); +//Real Case +if Err(A*inv(A)-eye(A)) >1000*%eps then bugmes();quit;end +//Complex Case +if Err(Ac*inv(Ac)-eye(A)) >2000*%eps then bugmes();quit;end +//Symetric +A=A*A';Ac=Ac*Ac'; +//Real Case +if Err(A*inv(A)-eye(A)) >1.d-10 then bugmes();quit;end +//Complex Case +if Err(Ac*inv(Ac)-eye(A)) >4.d-10 then bugmes();quit;end diff --git a/modules/linear_algebra/tests/unit_tests/inv.tst b/modules/linear_algebra/tests/unit_tests/inv.tst new file mode 100755 index 000000000..df88e0fdf --- /dev/null +++ b/modules/linear_algebra/tests/unit_tests/inv.tst @@ -0,0 +1,56 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) ????-2008 - INRIA Michael Baudin +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +//define tools +function A=testmat1(a,n) + //eigen values are given by a dilation of nth roots of 1 + A=diag(a*ones(1,n-1),1)+diag((1/a)*ones(1,n-1),-1) + A(1,n)=1/a;A(n,1)=a +endfunction +function r=Err(x) + r=norm(x,1) +endfunction +rand('normal') +//========================================================================== +//============================== inv ============================== +//========================================================================== +//Empty matrix +A=[]; +if inv(A)<>[] then pause,end +//Singular matrix +if execstr('inv([0 0;2 3])','errcatch')==0 then pause,end +if execstr('inv([0 0;%i 3])','errcatch')==0 then pause,end +//Rectangular matrix +if execstr('inv(rand(2,3))','errcatch')==0 then pause,end +if execstr('inv(rand(2,3)+%i*eye())','errcatch')==0 then pause,end +//Small dimension +//--------------- +//Unsymetric +A=testmat1(3,5);Ac=testmat1(3+%i,5); +//Real Case +if Err(A*inv(A)-eye(A)) >200*%eps then pause,end +//Complex Case +if Err(Ac*inv(Ac)-eye(A)) >200*%eps then pause,end +//Symetric +A=A*A';Ac=Ac*Ac'; +//Real Case +if Err(A*inv(A)-eye(A)) >1000*%eps then pause,end +//Complex Case +if Err(Ac*inv(Ac)-eye(A)) >1000*%eps then pause,end +//Large dimension +//--------------- +//Unsymetric +A=testmat1(3,50);Ac=testmat1(3+%i,50); +//Real Case +if Err(A*inv(A)-eye(A)) >1000*%eps then pause,end +//Complex Case +if Err(Ac*inv(Ac)-eye(A)) >2000*%eps then pause,end +//Symetric +A=A*A';Ac=Ac*Ac'; +//Real Case +if Err(A*inv(A)-eye(A)) >1.d-10 then pause,end +//Complex Case +if Err(Ac*inv(Ac)-eye(A)) >4.d-10 then pause,end diff --git a/modules/linear_algebra/tests/unit_tests/leftmatrixdiv.dia.ref b/modules/linear_algebra/tests/unit_tests/leftmatrixdiv.dia.ref new file mode 100755 index 000000000..bca84064a --- /dev/null +++ b/modules/linear_algebra/tests/unit_tests/leftmatrixdiv.dia.ref @@ -0,0 +1,121 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) ????-2008 - INRIA Michael Baudin +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +//define tools +function A=testmat1(a,n) + //eigen values are given by a dilation of nth roots of 1 + A=diag(a*ones(1,n-1),1)+diag((1/a)*ones(1,n-1),-1) + A(1,n)=1/a;A(n,1)=a +endfunction +function r=Err(x) + r=norm(x,1) +endfunction +rand('normal') +//========================================================================== +//============================== \ ============================== +//========================================================================== +function x=leftmatrixdiv(A,B) + x=A\B +endfunction +//scalar division +//-----Square matrix----- +n=5; A=rand(n,n);b=rand(2,n+1); +if leftmatrixdiv(A,[]) <>[] then bugmes();quit;end +if execstr('leftmatrixdiv(A,B)','errcatch')==0 then bugmes();quit;end +//Small dimensions real +n=5; +b=rand(n,2);A=rand(n,n); +x=leftmatrixdiv(A,b); +if Err(A*x-b)>200*%eps then bugmes();quit;end +//Small dimensions complex +b=rand(n,2)+%i;A=rand(n,n); +x=leftmatrixdiv(A,b); +if Err(A*x-b)>500*%eps then bugmes();quit;end +b=rand(n,2);A=rand(n,n)+%i; +x=leftmatrixdiv(A,b); +if Err(A*x-b)>200*%eps then bugmes();quit;end +b=rand(n,2)+%i;A=rand(n,n)+%i; +x=leftmatrixdiv(A,b); +if Err(A*x-b)>200*%eps then bugmes();quit;end +//Large dimensions real +n=50; +b=rand(n,2);A=rand(n,n); +x=leftmatrixdiv(A,b); +if Err(A*x-b)>10^6*%eps then bugmes();quit;end +//Small dimensions complex +b=rand(n,2)+%i;A=rand(n,n); +x=leftmatrixdiv(A,b); +if Err(A*x-b)>50000*%eps then bugmes();quit;end +b=rand(n,2);A=rand(n,n)+%i; +x=leftmatrixdiv(A,b); +if Err(A*x-b)>50000*%eps then bugmes();quit;end +b=rand(n,2)+%i;A=rand(n,n)+%i; +x=leftmatrixdiv(A,b); +if Err(A*x-b)>50000*%eps then bugmes();quit;end +//-----Rectangular matrix----- +n=5;m=3; A=rand(m,n);b=rand(n+1,2); +if leftmatrixdiv(A,[]) <>[] then bugmes();quit;end +if execstr('leftmatrixdiv(A,b)','errcatch')==0 then bugmes();quit;end +//Small dimensions real +n=5;m=3; +b=rand(m,2);A=rand(m,n); +x=leftmatrixdiv(A,b); +if Err(A'*A*x-A'*b)>200*%eps then bugmes();quit;end +n=3;m=5; +b=rand(m,2);A=rand(m,n); +x=leftmatrixdiv(A,b); +if Err(A'*A*x-A'*b)>1000*%eps then bugmes();quit;end +//Small dimensions complex +n=5;m=3; +b=rand(m,2)+%i;A=rand(m,n); +x=leftmatrixdiv(A,b); +if Err(A'*A*x-A'*b)>1000*%eps then bugmes();quit;end +n=5;m=3; +b=rand(m,2);A=rand(m,n)+%i; +x=leftmatrixdiv(A,b); +if Err(A'*A*x-A'*b)>1000*%eps then bugmes();quit;end +b=rand(m,2)+%i;A=rand(m,n)+%i; +x=leftmatrixdiv(A,b); +if Err(A'*A*x-A'*b)>1000*%eps then bugmes();quit;end +n=3;m=5; +b=rand(m,2)+%i;A=rand(m,n); +x=leftmatrixdiv(A,b); +if Err(A'*A*x-A'*b)>1000*%eps then bugmes();quit;end +n=3;m=5; +b=rand(m,2);A=rand(m,n)+%i; +x=leftmatrixdiv(A,b); +if Err(A'*A*x-A'*b)>1000*%eps then bugmes();quit;end +n=3;m=5; +b=rand(m,2)+%i;A=rand(m,n)+%i; +x=leftmatrixdiv(A,b); +if Err(A'*A*x-A'*b)>1000*%eps then bugmes();quit;end +//LArge dimension real +n=40;m=20; +b=rand(m,2);A=rand(m,n); +x=leftmatrixdiv(A,b); +if Err(A'*A*x-A'*b)>10000*%eps then bugmes();quit;end +b=rand(m,2);A=rand(m,n); +x=leftmatrixdiv(A,b); +if Err(A'*A*x-A'*b)>10000*%eps then bugmes();quit;end +//Large dimensions complex +b=rand(m,2)+%i;A=rand(m,n); +x=leftmatrixdiv(A,b); +if Err(A'*A*x-A'*b)>10000*%eps then bugmes();quit;end +b=rand(m,2);A=rand(m,n)+%i; +x=leftmatrixdiv(A,b); +if Err(A'*A*x-A'*b)>10000*%eps then bugmes();quit;end +b=rand(m,2)+%i;A=rand(m,n)+%i; +x=leftmatrixdiv(A,b); +if Err(A'*A*x-A'*b)>10000*%eps then bugmes();quit;end +b=rand(m,2)+%i;A=rand(m,n); +x=leftmatrixdiv(A,b); +if Err(A'*A*x-A'*b)>10000*%eps then bugmes();quit;end +b=rand(m,2);A=rand(m,n)+%i; +x=leftmatrixdiv(A,b); +if Err(A'*A*x-A'*b)>10000*%eps then bugmes();quit;end +b=rand(m,2)+%i;A=rand(m,n)+%i; +x=leftmatrixdiv(A,b); +if Err(A'*A*x-A'*b)>10000*%eps then bugmes();quit;end diff --git a/modules/linear_algebra/tests/unit_tests/leftmatrixdiv.tst b/modules/linear_algebra/tests/unit_tests/leftmatrixdiv.tst new file mode 100755 index 000000000..ee61b4362 --- /dev/null +++ b/modules/linear_algebra/tests/unit_tests/leftmatrixdiv.tst @@ -0,0 +1,149 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) ????-2008 - INRIA Michael Baudin +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +//define tools +function A=testmat1(a,n) + //eigen values are given by a dilation of nth roots of 1 + A=diag(a*ones(1,n-1),1)+diag((1/a)*ones(1,n-1),-1) + A(1,n)=1/a;A(n,1)=a +endfunction +function r=Err(x) + r=norm(x,1) +endfunction +rand('normal') + +//========================================================================== +//============================== \ ============================== +//========================================================================== +function x=leftmatrixdiv(A,B) + x=A\B +endfunction +//scalar division + +//-----Square matrix----- +n=5; A=rand(n,n);b=rand(2,n+1); +if leftmatrixdiv(A,[]) <>[] then pause,end +if execstr('leftmatrixdiv(A,B)','errcatch')==0 then pause,end +//Small dimensions real +n=5; +b=rand(n,2);A=rand(n,n); +x=leftmatrixdiv(A,b); +if Err(A*x-b)>200*%eps then pause,end +//Small dimensions complex +b=rand(n,2)+%i;A=rand(n,n); +x=leftmatrixdiv(A,b); +if Err(A*x-b)>500*%eps then pause,end + +b=rand(n,2);A=rand(n,n)+%i; +x=leftmatrixdiv(A,b); +if Err(A*x-b)>200*%eps then pause,end + + +b=rand(n,2)+%i;A=rand(n,n)+%i; +x=leftmatrixdiv(A,b); +if Err(A*x-b)>200*%eps then pause,end + + +//Large dimensions real +n=50; +b=rand(n,2);A=rand(n,n); +x=leftmatrixdiv(A,b); +if Err(A*x-b)>10^6*%eps then pause,end +//Small dimensions complex +b=rand(n,2)+%i;A=rand(n,n); +x=leftmatrixdiv(A,b); +if Err(A*x-b)>50000*%eps then pause,end + +b=rand(n,2);A=rand(n,n)+%i; +x=leftmatrixdiv(A,b); +if Err(A*x-b)>50000*%eps then pause,end + +b=rand(n,2)+%i;A=rand(n,n)+%i; +x=leftmatrixdiv(A,b); +if Err(A*x-b)>50000*%eps then pause,end + +//-----Rectangular matrix----- +n=5;m=3; A=rand(m,n);b=rand(n+1,2); +if leftmatrixdiv(A,[]) <>[] then pause,end +if execstr('leftmatrixdiv(A,b)','errcatch')==0 then pause,end + +//Small dimensions real +n=5;m=3; +b=rand(m,2);A=rand(m,n); +x=leftmatrixdiv(A,b); +if Err(A'*A*x-A'*b)>200*%eps then pause,end + +n=3;m=5; +b=rand(m,2);A=rand(m,n); +x=leftmatrixdiv(A,b); +if Err(A'*A*x-A'*b)>1000*%eps then pause,end +//Small dimensions complex +n=5;m=3; +b=rand(m,2)+%i;A=rand(m,n); +x=leftmatrixdiv(A,b); +if Err(A'*A*x-A'*b)>1000*%eps then pause,end +n=5;m=3; +b=rand(m,2);A=rand(m,n)+%i; +x=leftmatrixdiv(A,b); +if Err(A'*A*x-A'*b)>1000*%eps then pause,end +b=rand(m,2)+%i;A=rand(m,n)+%i; +x=leftmatrixdiv(A,b); +if Err(A'*A*x-A'*b)>1000*%eps then pause,end + +n=3;m=5; +b=rand(m,2)+%i;A=rand(m,n); +x=leftmatrixdiv(A,b); +if Err(A'*A*x-A'*b)>1000*%eps then pause,end + +n=3;m=5; +b=rand(m,2);A=rand(m,n)+%i; +x=leftmatrixdiv(A,b); +if Err(A'*A*x-A'*b)>1000*%eps then pause,end + +n=3;m=5; +b=rand(m,2)+%i;A=rand(m,n)+%i; +x=leftmatrixdiv(A,b); +if Err(A'*A*x-A'*b)>1000*%eps then pause,end + +//LArge dimension real + +n=40;m=20; +b=rand(m,2);A=rand(m,n); +x=leftmatrixdiv(A,b); +if Err(A'*A*x-A'*b)>10000*%eps then pause,end + +b=rand(m,2);A=rand(m,n); +x=leftmatrixdiv(A,b); +if Err(A'*A*x-A'*b)>10000*%eps then pause,end +//Large dimensions complex + +b=rand(m,2)+%i;A=rand(m,n); +x=leftmatrixdiv(A,b); +if Err(A'*A*x-A'*b)>10000*%eps then pause,end + + +b=rand(m,2);A=rand(m,n)+%i; +x=leftmatrixdiv(A,b); +if Err(A'*A*x-A'*b)>10000*%eps then pause,end + +b=rand(m,2)+%i;A=rand(m,n)+%i; +x=leftmatrixdiv(A,b); +if Err(A'*A*x-A'*b)>10000*%eps then pause,end + + +b=rand(m,2)+%i;A=rand(m,n); +x=leftmatrixdiv(A,b); +if Err(A'*A*x-A'*b)>10000*%eps then pause,end + +b=rand(m,2);A=rand(m,n)+%i; +x=leftmatrixdiv(A,b); +if Err(A'*A*x-A'*b)>10000*%eps then pause,end + +b=rand(m,2)+%i;A=rand(m,n)+%i; +x=leftmatrixdiv(A,b); +if Err(A'*A*x-A'*b)>10000*%eps then pause,end + + diff --git a/modules/linear_algebra/tests/unit_tests/lsq.dia.ref b/modules/linear_algebra/tests/unit_tests/lsq.dia.ref new file mode 100755 index 000000000..5fefb8a24 --- /dev/null +++ b/modules/linear_algebra/tests/unit_tests/lsq.dia.ref @@ -0,0 +1,96 @@ +// ============================================================================= +// 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. +// ============================================================================= +function r=Err(x),r=norm(x,1),endfunction +rand('normal') +//========================================================================== +//============================== lsq ============================== +//========================================================================== +//Empty matrix +if lsq([],[])<>[] then bugmes();quit;end +if execstr('lsq([],1)','errcatch')==0 then bugmes();quit;end +if execstr('lsq(1,[])','errcatch')==0 then bugmes();quit;end +if execstr('lsq(rand(3,2),rand(2,1))','errcatch')==0 then bugmes();quit;end +//Small dimensions +//Real full rank fat +A=rand(3,5);b=rand(3,2); +X=lsq(A,b); +if Err(A*X-b)>200*%eps then bugmes();quit;end +//Real rank deficient fat +A=[1 2 3;1 2 3];b=[4;5]; +X=lsq(A,b); +if Err(A'*A*X-A'*b)> 200*%eps then bugmes();quit;end +//Real tall +A=[1 2;4 2;0 1];b=[1;1;1]; +X=lsq(A,b); +[Q,R]=qr(A);b1=Q'*b;X1=inv(R(1:2,:))*b1(1:2); +if Err(X-X1)>200*%eps then bugmes();quit;end +//Complex full rank fat +A=rand(3,5)+%i*rand(3,5);b=rand(3,2); +X=lsq(A,b); +if Err(A*X-b)>200*%eps then bugmes();quit;end +A=rand(3,5);b=rand(3,2)+%i*rand(3,2); +X=lsq(A,b); +if Err(A*X-b)>200*%eps then bugmes();quit;end +A=rand(3,5)+%i*rand(3,5);b=rand(3,2)+%i*rand(3,2); +X=lsq(A,b); +if Err(A*X-b)>200*%eps then bugmes();quit;end +//Complex rank deficient fat +A=[1 2 3;1 2 3]+%i;b=[4;5]; +X=lsq(A,b); +A=[1 2 3;1 2 3];b=[4;5]+%i; +X=lsq(A,b); +if Err(A'*A*X-A'*b)>200*%eps then bugmes();quit;end +if Err(A'*A*X-A'*b)>200*%eps then bugmes();quit;end +A=[1 2 3;1 2 3]+%i;b=[4;5]+%i; +X=lsq(A,b); +if Err(A'*A*X-A'*b)>1000*%eps then bugmes();quit;end +//Complex full rank tall +A=[1 2;4 2;0 1]+%i;b=[1;1;1]; +X=lsq(A,b); +[Q,R]=qr(A);b1=Q'*b;X1=inv(R(1:2,:))*b1(1:2); +if Err(X-X1)>200*%eps then bugmes();quit;end +A=[1 2;4 2;0 1];b=[1;1;1]+%i; +X=lsq(A,b); +[Q,R]=qr(A);b1=Q'*b;X1=inv(R(1:2,:))*b1(1:2); +if Err(X-X1)>200*%eps then bugmes();quit;end +A=[1 2;4 2;0 1]+%i;b=[1;1;1]+%i; +X=lsq(A,b); +[Q,R]=qr(A);b1=Q'*b;X1=inv(R(1:2,:))*b1(1:2); +if Err(X-X1)>200*%eps then bugmes();quit;end +//LArge dimension +//Real full rank fat +A=rand(3,50);b=rand(3,2); +X=lsq(A,b); +if Err(A*X-b)>200*%eps then bugmes();quit;end +//Real full rank tall +A=rand(50,3);b=rand(50,2); +X=lsq(A,b); +[Q,R]=qr(A);b1=Q'*b;X1=inv(R(1:3,:))*b1(1:3,:); +if Err(X-X1)>200*%eps then bugmes();quit;end +//Complex full rank fat +A=rand(3,50)+%i;b=rand(3,2); +X=lsq(A,b); +if Err(A*X-b)>200*%eps then bugmes();quit;end +A=rand(3,50);b=rand(3,2)+%i; +X=lsq(A,b); +if Err(A*X-b)>200*%eps then bugmes();quit;end +A=rand(3,50);b=rand(3,2)+%i; +X=lsq(A,b); +if Err(A*X-b)>200*%eps then bugmes();quit;end +//Complex full rank tall +A=rand(50,3)+%i;b=rand(50,2); +X=lsq(A,b); +[Q,R]=qr(A);b1=Q'*b;X1=inv(R(1:3,:))*b1(1:3,:); +if Err(X-X1)>200*%eps then bugmes();quit;end +A=rand(50,3);b=rand(50,2)+%i; +X=lsq(A,b); +[Q,R]=qr(A);b1=Q'*b;X1=inv(R(1:3,:))*b1(1:3,:); +if Err(X-X1)>200*%eps then bugmes();quit;end +A=rand(50,3)+%i;b=rand(50,2)+%i; +X=lsq(A,b); +[Q,R]=qr(A);b1=Q'*b;X1=inv(R(1:3,:))*b1(1:3,:); +if Err(X-X1)>200*%eps then bugmes();quit;end diff --git a/modules/linear_algebra/tests/unit_tests/lsq.tst b/modules/linear_algebra/tests/unit_tests/lsq.tst new file mode 100755 index 000000000..8123a612c --- /dev/null +++ b/modules/linear_algebra/tests/unit_tests/lsq.tst @@ -0,0 +1,113 @@ +// ============================================================================= +// 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. +// ============================================================================= +function r=Err(x),r=norm(x,1),endfunction +rand('normal') + +//========================================================================== +//============================== lsq ============================== +//========================================================================== + +//Empty matrix +if lsq([],[])<>[] then pause,end +if execstr('lsq([],1)','errcatch')==0 then pause,end +if execstr('lsq(1,[])','errcatch')==0 then pause,end +if execstr('lsq(rand(3,2),rand(2,1))','errcatch')==0 then pause,end + +//Small dimensions +//Real full rank fat +A=rand(3,5);b=rand(3,2); +X=lsq(A,b); +if Err(A*X-b)>200*%eps then pause,end +//Real rank deficient fat +A=[1 2 3;1 2 3];b=[4;5]; +X=lsq(A,b); +if Err(A'*A*X-A'*b)> 200*%eps then pause,end +//Real tall +A=[1 2;4 2;0 1];b=[1;1;1]; +X=lsq(A,b); +[Q,R]=qr(A);b1=Q'*b;X1=inv(R(1:2,:))*b1(1:2); +if Err(X-X1)>200*%eps then pause,end +//Complex full rank fat +A=rand(3,5)+%i*rand(3,5);b=rand(3,2); +X=lsq(A,b); +if Err(A*X-b)>200*%eps then pause,end + +A=rand(3,5);b=rand(3,2)+%i*rand(3,2); +X=lsq(A,b); +if Err(A*X-b)>200*%eps then pause,end + +A=rand(3,5)+%i*rand(3,5);b=rand(3,2)+%i*rand(3,2); +X=lsq(A,b); +if Err(A*X-b)>200*%eps then pause,end +//Complex rank deficient fat +A=[1 2 3;1 2 3]+%i;b=[4;5]; +X=lsq(A,b); +A=[1 2 3;1 2 3];b=[4;5]+%i; +X=lsq(A,b); +if Err(A'*A*X-A'*b)>200*%eps then pause,end + +if Err(A'*A*X-A'*b)>200*%eps then pause,end +A=[1 2 3;1 2 3]+%i;b=[4;5]+%i; +X=lsq(A,b); +if Err(A'*A*X-A'*b)>1000*%eps then pause,end + +//Complex full rank tall +A=[1 2;4 2;0 1]+%i;b=[1;1;1]; +X=lsq(A,b); +[Q,R]=qr(A);b1=Q'*b;X1=inv(R(1:2,:))*b1(1:2); +if Err(X-X1)>200*%eps then pause,end + +A=[1 2;4 2;0 1];b=[1;1;1]+%i; +X=lsq(A,b); +[Q,R]=qr(A);b1=Q'*b;X1=inv(R(1:2,:))*b1(1:2); +if Err(X-X1)>200*%eps then pause,end + +A=[1 2;4 2;0 1]+%i;b=[1;1;1]+%i; +X=lsq(A,b); +[Q,R]=qr(A);b1=Q'*b;X1=inv(R(1:2,:))*b1(1:2); +if Err(X-X1)>200*%eps then pause,end + + + +//LArge dimension +//Real full rank fat +A=rand(3,50);b=rand(3,2); +X=lsq(A,b); +if Err(A*X-b)>200*%eps then pause,end +//Real full rank tall +A=rand(50,3);b=rand(50,2); +X=lsq(A,b); +[Q,R]=qr(A);b1=Q'*b;X1=inv(R(1:3,:))*b1(1:3,:); +if Err(X-X1)>200*%eps then pause,end + +//Complex full rank fat +A=rand(3,50)+%i;b=rand(3,2); +X=lsq(A,b); +if Err(A*X-b)>200*%eps then pause,end +A=rand(3,50);b=rand(3,2)+%i; +X=lsq(A,b); +if Err(A*X-b)>200*%eps then pause,end + +A=rand(3,50);b=rand(3,2)+%i; +X=lsq(A,b); +if Err(A*X-b)>200*%eps then pause,end +//Complex full rank tall +A=rand(50,3)+%i;b=rand(50,2); +X=lsq(A,b); +[Q,R]=qr(A);b1=Q'*b;X1=inv(R(1:3,:))*b1(1:3,:); +if Err(X-X1)>200*%eps then pause,end + +A=rand(50,3);b=rand(50,2)+%i; +X=lsq(A,b); +[Q,R]=qr(A);b1=Q'*b;X1=inv(R(1:3,:))*b1(1:3,:); +if Err(X-X1)>200*%eps then pause,end +A=rand(50,3)+%i;b=rand(50,2)+%i; +X=lsq(A,b); +[Q,R]=qr(A);b1=Q'*b;X1=inv(R(1:3,:))*b1(1:3,:); +if Err(X-X1)>200*%eps then pause,end + + diff --git a/modules/linear_algebra/tests/unit_tests/lu.dia.ref b/modules/linear_algebra/tests/unit_tests/lu.dia.ref new file mode 100755 index 000000000..23a614213 --- /dev/null +++ b/modules/linear_algebra/tests/unit_tests/lu.dia.ref @@ -0,0 +1,99 @@ +// ============================================================================= +// 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. +// ============================================================================= +function r=Err(x),r=norm(x,1),endfunction +rand('normal') +//========================================================================== +//============================== lu ============================== +//========================================================================== +//Empty matrix +A=[]; +[L,U]=lu(A); +if L<>[]|U<>[] then bugmes();quit;end +[L,U,E]=lu(A); +if L<>[]|U<>[]|E<>[] then bugmes();quit;end +//Non full rank +A=rand(5,2);A=A*A';;Ac=rand(5,2)+%i*rand(5,2);Ac=Ac*Ac'; +[L,U,E]=lu(A); +if Err(L*U-E*A) >200*%eps then bugmes();quit;end +[L,U,E]=lu(Ac); +if Err(L*U-E*Ac) >200*%eps then bugmes();quit;end +//Small dimension +//--------------- +//Square +A=rand(5,5);Ac=A+%i*rand(A); +//Real case +[L,U]=lu(A); +if Err(L*U-A) >200*%eps then bugmes();quit;end +[L,U,E]=lu(A); +if Err(L*U-E*A) >200*%eps then bugmes();quit;end +//Complex case +[L,U]=lu(Ac); +if Err(L*U-Ac) >200*%eps then bugmes();quit;end +[L,U,E]=lu(Ac); +if Err(L*U-E*Ac) >200*%eps then bugmes();quit;end +//Fat +A=rand(3,5);Ac=A+%i*rand(A); +//Real case +[L,U]=lu(A); +if Err(L*U-A) >200*%eps then bugmes();quit;end +[L,U,E]=lu(A); +if Err(L*U-E*A) >200*%eps then bugmes();quit;end +//Complex case +[L,U]=lu(Ac); +if Err(L*U-Ac) >200*%eps then bugmes();quit;end +[L,U,E]=lu(Ac); +if Err(L*U-E*Ac) >200*%eps then bugmes();quit;end +//Tall +A=rand(5,3);Ac=A+%i*rand(A); +//Real case +[L,U]=lu(A); +if Err(L*U-A) >200*%eps then bugmes();quit;end +[L,U,E]=lu(A); +if Err(L*U-E*A) >200*%eps then bugmes();quit;end +//Complex case +[L,U]=lu(Ac); +if Err(L*U-Ac) >200*%eps then bugmes();quit;end +[L,U,E]=lu(Ac); +if Err(L*U-E*Ac) >200*%eps then bugmes();quit;end +//large dimension +//--------------- +//Square +A=rand(50,50);Ac=A+%i*rand(A); +//Real case +[L,U]=lu(A); +if Err(L*U-A) >1000*%eps then bugmes();quit;end +[L,U,E]=lu(A); +if Err(L*U-E*A) >1000*%eps then bugmes();quit;end +//Complex case +[L,U]=lu(Ac); +if Err(L*U-Ac) >1000*%eps then bugmes();quit;end +[L,U,E]=lu(Ac); +if Err(L*U-E*Ac) >1000*%eps then bugmes();quit;end +//Fat +A=rand(30,50);Ac=A+%i*rand(A); +//Real case +[L,U]=lu(A); +if Err(L*U-A) >1000*%eps then bugmes();quit;end +[L,U,E]=lu(A); +if Err(L*U-E*A) >1000*%eps then bugmes();quit;end +//Complex case +[L,U]=lu(Ac); +if Err(L*U-Ac) >1000*%eps then bugmes();quit;end +[L,U,E]=lu(Ac); +if Err(L*U-E*Ac) >1000*%eps then bugmes();quit;end +//Tall +A=rand(50,30);Ac=A+%i*rand(A); +//Real case +[L,U]=lu(A); +if Err(L*U-A) >1000*%eps then bugmes();quit;end +[L,U,E]=lu(A); +if Err(L*U-E*A) >1000*%eps then bugmes();quit;end +//Complex case +[L,U]=lu(Ac); +if Err(L*U-Ac) >1000*%eps then bugmes();quit;end +[L,U,E]=lu(Ac); +if Err(L*U-E*Ac) >1000*%eps then bugmes();quit;end diff --git a/modules/linear_algebra/tests/unit_tests/lu.tst b/modules/linear_algebra/tests/unit_tests/lu.tst new file mode 100755 index 000000000..2bed8cd8f --- /dev/null +++ b/modules/linear_algebra/tests/unit_tests/lu.tst @@ -0,0 +1,106 @@ +// ============================================================================= +// 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. +// ============================================================================= +function r=Err(x),r=norm(x,1),endfunction +rand('normal') + +//========================================================================== +//============================== lu ============================== +//========================================================================== +//Empty matrix +A=[]; +[L,U]=lu(A); +if L<>[]|U<>[] then pause,end +[L,U,E]=lu(A); +if L<>[]|U<>[]|E<>[] then pause,end +//Non full rank +A=rand(5,2);A=A*A';;Ac=rand(5,2)+%i*rand(5,2);Ac=Ac*Ac'; +[L,U,E]=lu(A); +if Err(L*U-E*A) >200*%eps then pause,end +[L,U,E]=lu(Ac); +if Err(L*U-E*Ac) >200*%eps then pause,end + +//Small dimension +//--------------- +//Square +A=rand(5,5);Ac=A+%i*rand(A); +//Real case + +[L,U]=lu(A); +if Err(L*U-A) >200*%eps then pause,end +[L,U,E]=lu(A); +if Err(L*U-E*A) >200*%eps then pause,end +//Complex case +[L,U]=lu(Ac); +if Err(L*U-Ac) >200*%eps then pause,end +[L,U,E]=lu(Ac); +if Err(L*U-E*Ac) >200*%eps then pause,end +//Fat +A=rand(3,5);Ac=A+%i*rand(A); +//Real case +[L,U]=lu(A); +if Err(L*U-A) >200*%eps then pause,end +[L,U,E]=lu(A); +if Err(L*U-E*A) >200*%eps then pause,end +//Complex case +[L,U]=lu(Ac); +if Err(L*U-Ac) >200*%eps then pause,end +[L,U,E]=lu(Ac); +if Err(L*U-E*Ac) >200*%eps then pause,end +//Tall +A=rand(5,3);Ac=A+%i*rand(A); +//Real case +[L,U]=lu(A); +if Err(L*U-A) >200*%eps then pause,end +[L,U,E]=lu(A); +if Err(L*U-E*A) >200*%eps then pause,end +//Complex case +[L,U]=lu(Ac); +if Err(L*U-Ac) >200*%eps then pause,end +[L,U,E]=lu(Ac); +if Err(L*U-E*Ac) >200*%eps then pause,end + +//large dimension +//--------------- +//Square +A=rand(50,50);Ac=A+%i*rand(A); +//Real case +[L,U]=lu(A); +if Err(L*U-A) >1000*%eps then pause,end +[L,U,E]=lu(A); +if Err(L*U-E*A) >1000*%eps then pause,end +//Complex case +[L,U]=lu(Ac); +if Err(L*U-Ac) >1000*%eps then pause,end +[L,U,E]=lu(Ac); +if Err(L*U-E*Ac) >1000*%eps then pause,end +//Fat +A=rand(30,50);Ac=A+%i*rand(A); +//Real case +[L,U]=lu(A); +if Err(L*U-A) >1000*%eps then pause,end +[L,U,E]=lu(A); +if Err(L*U-E*A) >1000*%eps then pause,end +//Complex case +[L,U]=lu(Ac); +if Err(L*U-Ac) >1000*%eps then pause,end +[L,U,E]=lu(Ac); +if Err(L*U-E*Ac) >1000*%eps then pause,end +//Tall +A=rand(50,30);Ac=A+%i*rand(A); +//Real case +[L,U]=lu(A); +if Err(L*U-A) >1000*%eps then pause,end +[L,U,E]=lu(A); +if Err(L*U-E*A) >1000*%eps then pause,end +//Complex case +[L,U]=lu(Ac); +if Err(L*U-Ac) >1000*%eps then pause,end +[L,U,E]=lu(Ac); +if Err(L*U-E*Ac) >1000*%eps then pause,end + + + diff --git a/modules/linear_algebra/tests/unit_tests/norm.dia.ref b/modules/linear_algebra/tests/unit_tests/norm.dia.ref new file mode 100755 index 000000000..b3b71ddf3 --- /dev/null +++ b/modules/linear_algebra/tests/unit_tests/norm.dia.ref @@ -0,0 +1,139 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2008 - INRIA Michael Baudin +// Copyright (C) 2011 - DIGITEO - Michael Baudin +// Copyright (C) 2013 - Scilab Enterprises - Paul Bignier: added performance and IEE compliance tests +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// +// <-- CLI SHELL MODE --> +// +// TODO : use relative error criteria instead of absolute error +eps = 100*%eps; +// Inf +assert_checkequal ( norm([1,2,3,-1,-2,-3],0) , %inf ); +assert_checkequal ( norm([1,2,3,-1,-2,-3],%nan) , %nan ); +assert_checkequal ( norm([]) , 0 ); +// Vector +x = [1, 2, 3, -4]; +assert_checkalmostequal ( norm(x,1) , sum(abs(x)) , eps ); +assert_checkalmostequal ( norm(x,2) , sqrt(sum(abs(x).*abs(x))) , eps ); +assert_checkalmostequal ( norm(x,2) , norm(x) , eps ); +assert_checkalmostequal ( norm(x,-%inf) , min(abs(x)) , eps ); +p = 0.5; +assert_checkalmostequal ( norm(x,p) , sum(abs(x).^p).^(1/p) , eps ); +p = 2.5; +assert_checkalmostequal ( norm(x,p) , sum(abs(x).^p).^(1/p) , eps ); +assert_checkalmostequal ( norm(x,"inf") , max(abs(x)) , eps ); +assert_checkalmostequal ( norm(x,"inf") , norm(x,%inf) , eps ); +assert_checkalmostequal ( norm(x,"fro") , norm(x,2) , eps ); +// Complex +x = x + %i*x; +assert_checkalmostequal ( norm(x,1) , sum(abs(x)) , eps ); +assert_checkalmostequal ( norm(x,2) , sqrt(sum(abs(x).*abs(x))) , eps ); +assert_checkalmostequal ( norm(x,2) , norm(x) , eps ); +assert_checkalmostequal ( norm(x,-%inf) , min(abs(x)) , eps ); +p = 0.5; +// 100*%eps is needed for linux +assert_checkalmostequal ( norm(x,p) , max(abs(x))*sum((abs(x)/max(abs(x))).^p).^(1/p) , 100*%eps ); +p = 2.5; +assert_checkalmostequal ( norm(x,p) , max(abs(x))*sum((abs(x)/max(abs(x))).^p).^(1/p) , 100*%eps ); +assert_checkalmostequal ( norm(x,"inf") , max(abs(x)) , 100*%eps); +assert_checkalmostequal ( norm(x,"inf") , norm(x,%inf) , 100*%eps); +// The Frobenius norm of this complex input x can be numerically complex, +// e.g. 7.7459667 - 1.147D-16i +// See http://bugzilla.scilab.org/show_bug.cgi?id=9204 +// assert_checkalmostequal ( norm(x,'fro') , norm(x,2) , 100*%eps , %eps ); +// Scalar +x = [1.23]; +assert_checkalmostequal ( norm(x,1) , sum(abs(x)) , 100*%eps ); +assert_checkalmostequal ( norm(x,2) , sqrt(sum(abs(x).*abs(x))) , 100*%eps ); +assert_checkalmostequal ( norm(x,2) , norm(x) , 100*%eps ); +p = 0.5; +assert_checkalmostequal ( norm(x,p) , sum(abs(x)^p)^(1/p) , 100*%eps ); +p = 2.5; +assert_checkalmostequal ( norm(x,p) , sum(abs(x)^p)^(1/p) , 100*%eps ); +assert_checkalmostequal ( norm(x,"inf") , max(abs(x)) , 100*%eps); +assert_checkalmostequal ( norm(x,"inf") , norm(x,%inf) , 100*%eps ); +assert_checkalmostequal ( norm(x,"fro") , norm(x,2) , 100*%eps ); +// Matrices +a = rand(10, 10, "g"); +assert_checkalmostequal ( norm(a,1) , max(sum(abs(a),"r")) , 100*%eps ); +assert_checkalmostequal ( norm(a,"inf") , max(sum(abs(a),"c")) , 100*%eps ); +assert_checkalmostequal ( norm(a,%inf) , max(sum(abs(a),"c")) , 100*%eps ); +assert_checkalmostequal ( norm(a,2) , max(svd(a)) , 100*%eps ); +assert_checkalmostequal ( norm(a,"fro") , norm(matrix(a,1,size(a,"*")),2), 100*%eps ); +a = a + %i*a; +assert_checkalmostequal ( norm(a,1) , max(sum(abs(a),"r")) , 100*%eps ); +assert_checkalmostequal ( norm(a,"inf") , max(sum(abs(a),"c")) , 100*%eps ); +assert_checkalmostequal ( norm(a,%inf) , max(sum(abs(a),"c")) , 100*%eps ); +assert_checkalmostequal ( norm(a,2) , max(svd(a)) , 100*%eps ); +// See http://bugzilla.scilab.org/show_bug.cgi?id=9204 +// assert_checkalmostequal ( norm(a,'fro') , norm(matrix(a,1,size(a,'*')),2), 100*%eps ); +// +// Difficult cases for large/small vectors +// +// Norm 2 +x = 1.e307 * [1 1]; +assert_checkequal ( norm(x) , sqrt(2) * 1.e307 ); +x = 1.e-307 * [1 1]; +assert_checkalmostequal ( norm(x) , sqrt(2) * 1.e-307 , 1.e308); +// Norm f +x = 1.e307 * [1 1]; +assert_checkequal ( norm(x,"f") , sqrt(2) * 1.e307 ); +x = 1.e-307 * [1 1]; +assert_checkequal ( norm(x,"f") , sqrt(2) * 1.e-307 ); +// +// Difficult cases for large/small matrices +// +// Norm f - case 1 : n < m +x = 1.e307 * ones(10, 20); +assert_checkequal ( norm(x,"f") , sqrt(200) * 1.e307 ); +x = 1.e-307 * ones(10, 20); +assert_checkequal ( norm(x,"f") , sqrt(200) * 1.e-307 ); +// norm f - case 2 : n > m +x = 1.e307 * ones(20, 10); +assert_checkequal ( norm(x,"f") , sqrt(200) * 1.e307 ); +x = 1.e-307 * ones(20, 10); +assert_checkequal ( norm(x,"f") , sqrt(200) * 1.e-307 ); +// +// Special cases for zero vectors +// +// Norm 2 of a zero vector +x = [0 0 0]; +assert_checkequal ( norm(x,2) , 0.0 ); +// Norm f of a zero vector +x = zeros(4, 1); +assert_checkequal ( norm(x,"f") , 0.0 ); +// Norm f of a zero matrix, case 1 n > m +x = zeros(4, 2); +assert_checkequal ( norm(x,"f") , 0.0 ); +// Norm f of a zero matrix, case 2 m > n +x = zeros(2, 4); +assert_checkequal ( norm(x,"f") , 0.0 ); +// +// Norm 2 performance check, +// See https://bugzilla.scilab.org/show_bug.cgi?id=5017 +// +n = 100000; +x = ones(n, 1); +x(n+1) = 1.e9; +tic(); +for i = 1:1000 + norm(x); +end +t = toc(); +assert_checktrue( t < 4 ); +// +// IEEE compliance +// +refMsg = msprintf(_("%s: Wrong value for argument #%d: Must not contain NaN or Inf.\n"), "norm", 1); +assert_checkerror("norm(%nan)", refMsg); +assert_checkerror("norm([%i %nan])", refMsg); +assert_checkerror("norm([%i %inf])", refMsg); +assert_checkerror("norm([%i; %nan])", refMsg); +assert_checkerror("norm([%i; %inf])", refMsg); +assert_checkerror("norm([1 0; %nan 0])", refMsg); +assert_checkerror("norm([1 0; %inf 0]);", refMsg); +assert_checkerror("norm([%inf 0; %nan 0]);", refMsg); diff --git a/modules/linear_algebra/tests/unit_tests/norm.tst b/modules/linear_algebra/tests/unit_tests/norm.tst new file mode 100755 index 000000000..2685065bf --- /dev/null +++ b/modules/linear_algebra/tests/unit_tests/norm.tst @@ -0,0 +1,148 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2008 - INRIA Michael Baudin +// Copyright (C) 2011 - DIGITEO - Michael Baudin +// Copyright (C) 2013 - Scilab Enterprises - Paul Bignier: added performance and IEE compliance tests +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// +// <-- CLI SHELL MODE --> +// + +// TODO : use relative error criteria instead of absolute error +eps = 100*%eps; + +// Inf +assert_checkequal ( norm([1,2,3,-1,-2,-3],0) , %inf ); +assert_checkequal ( norm([1,2,3,-1,-2,-3],%nan) , %nan ); +assert_checkequal ( norm([]) , 0 ); +// Vector +x = [1, 2, 3, -4]; +assert_checkalmostequal ( norm(x,1) , sum(abs(x)) , eps ); +assert_checkalmostequal ( norm(x,2) , sqrt(sum(abs(x).*abs(x))) , eps ); +assert_checkalmostequal ( norm(x,2) , norm(x) , eps ); +assert_checkalmostequal ( norm(x,-%inf) , min(abs(x)) , eps ); +p = 0.5; +assert_checkalmostequal ( norm(x,p) , sum(abs(x).^p).^(1/p) , eps ); +p = 2.5; +assert_checkalmostequal ( norm(x,p) , sum(abs(x).^p).^(1/p) , eps ); +assert_checkalmostequal ( norm(x,"inf") , max(abs(x)) , eps ); +assert_checkalmostequal ( norm(x,"inf") , norm(x,%inf) , eps ); +assert_checkalmostequal ( norm(x,"fro") , norm(x,2) , eps ); +// Complex +x = x + %i*x; +assert_checkalmostequal ( norm(x,1) , sum(abs(x)) , eps ); +assert_checkalmostequal ( norm(x,2) , sqrt(sum(abs(x).*abs(x))) , eps ); +assert_checkalmostequal ( norm(x,2) , norm(x) , eps ); +assert_checkalmostequal ( norm(x,-%inf) , min(abs(x)) , eps ); +p = 0.5; +// 100*%eps is needed for linux +assert_checkalmostequal ( norm(x,p) , max(abs(x))*sum((abs(x)/max(abs(x))).^p).^(1/p) , 100*%eps ); +p = 2.5; +assert_checkalmostequal ( norm(x,p) , max(abs(x))*sum((abs(x)/max(abs(x))).^p).^(1/p) , 100*%eps ); +assert_checkalmostequal ( norm(x,"inf") , max(abs(x)) , 100*%eps); +assert_checkalmostequal ( norm(x,"inf") , norm(x,%inf) , 100*%eps); +// The Frobenius norm of this complex input x can be numerically complex, +// e.g. 7.7459667 - 1.147D-16i +// See http://bugzilla.scilab.org/show_bug.cgi?id=9204 +// assert_checkalmostequal ( norm(x,'fro') , norm(x,2) , 100*%eps , %eps ); + +// Scalar + +x = [1.23]; +assert_checkalmostequal ( norm(x,1) , sum(abs(x)) , 100*%eps ); +assert_checkalmostequal ( norm(x,2) , sqrt(sum(abs(x).*abs(x))) , 100*%eps ); +assert_checkalmostequal ( norm(x,2) , norm(x) , 100*%eps ); +p = 0.5; +assert_checkalmostequal ( norm(x,p) , sum(abs(x)^p)^(1/p) , 100*%eps ); +p = 2.5; +assert_checkalmostequal ( norm(x,p) , sum(abs(x)^p)^(1/p) , 100*%eps ); +assert_checkalmostequal ( norm(x,"inf") , max(abs(x)) , 100*%eps); +assert_checkalmostequal ( norm(x,"inf") , norm(x,%inf) , 100*%eps ); +assert_checkalmostequal ( norm(x,"fro") , norm(x,2) , 100*%eps ); + +// Matrices +a = rand(10, 10, "g"); +assert_checkalmostequal ( norm(a,1) , max(sum(abs(a),"r")) , 100*%eps ); +assert_checkalmostequal ( norm(a,"inf") , max(sum(abs(a),"c")) , 100*%eps ); +assert_checkalmostequal ( norm(a,%inf) , max(sum(abs(a),"c")) , 100*%eps ); +assert_checkalmostequal ( norm(a,2) , max(svd(a)) , 100*%eps ); +assert_checkalmostequal ( norm(a,"fro") , norm(matrix(a,1,size(a,"*")),2), 100*%eps ); + +a = a + %i*a; +assert_checkalmostequal ( norm(a,1) , max(sum(abs(a),"r")) , 100*%eps ); +assert_checkalmostequal ( norm(a,"inf") , max(sum(abs(a),"c")) , 100*%eps ); +assert_checkalmostequal ( norm(a,%inf) , max(sum(abs(a),"c")) , 100*%eps ); +assert_checkalmostequal ( norm(a,2) , max(svd(a)) , 100*%eps ); +// See http://bugzilla.scilab.org/show_bug.cgi?id=9204 +// assert_checkalmostequal ( norm(a,'fro') , norm(matrix(a,1,size(a,'*')),2), 100*%eps ); + +// +// Difficult cases for large/small vectors +// +// Norm 2 +x = 1.e307 * [1 1]; +assert_checkequal ( norm(x) , sqrt(2) * 1.e307 ); +x = 1.e-307 * [1 1]; +assert_checkalmostequal ( norm(x) , sqrt(2) * 1.e-307 , 1.e308); +// Norm f +x = 1.e307 * [1 1]; +assert_checkequal ( norm(x,"f") , sqrt(2) * 1.e307 ); +x = 1.e-307 * [1 1]; +assert_checkequal ( norm(x,"f") , sqrt(2) * 1.e-307 ); +// +// Difficult cases for large/small matrices +// +// Norm f - case 1 : n < m +x = 1.e307 * ones(10, 20); +assert_checkequal ( norm(x,"f") , sqrt(200) * 1.e307 ); +x = 1.e-307 * ones(10, 20); +assert_checkequal ( norm(x,"f") , sqrt(200) * 1.e-307 ); +// norm f - case 2 : n > m +x = 1.e307 * ones(20, 10); +assert_checkequal ( norm(x,"f") , sqrt(200) * 1.e307 ); +x = 1.e-307 * ones(20, 10); +assert_checkequal ( norm(x,"f") , sqrt(200) * 1.e-307 ); +// +// Special cases for zero vectors +// +// Norm 2 of a zero vector +x = [0 0 0]; +assert_checkequal ( norm(x,2) , 0.0 ); +// Norm f of a zero vector +x = zeros(4, 1); +assert_checkequal ( norm(x,"f") , 0.0 ); +// Norm f of a zero matrix, case 1 n > m +x = zeros(4, 2); +assert_checkequal ( norm(x,"f") , 0.0 ); +// Norm f of a zero matrix, case 2 m > n +x = zeros(2, 4); +assert_checkequal ( norm(x,"f") , 0.0 ); + +// +// Norm 2 performance check, +// See https://bugzilla.scilab.org/show_bug.cgi?id=5017 +// +n = 100000; +x = ones(n, 1); +x(n+1) = 1.e9; +tic(); +for i = 1:1000 + norm(x); +end +t = toc(); +assert_checktrue( t < 4 ); + +// +// IEEE compliance +// +refMsg = msprintf(_("%s: Wrong value for argument #%d: Must not contain NaN or Inf.\n"), "norm", 1); +assert_checkerror("norm(%nan)", refMsg); +assert_checkerror("norm([%i %nan])", refMsg); +assert_checkerror("norm([%i %inf])", refMsg); +assert_checkerror("norm([%i; %nan])", refMsg); +assert_checkerror("norm([%i; %inf])", refMsg); +assert_checkerror("norm([1 0; %nan 0])", refMsg); +assert_checkerror("norm([1 0; %inf 0]);", refMsg); +assert_checkerror("norm([%inf 0; %nan 0]);", refMsg); diff --git a/modules/linear_algebra/tests/unit_tests/qr.dia.ref b/modules/linear_algebra/tests/unit_tests/qr.dia.ref new file mode 100755 index 000000000..925bf476d --- /dev/null +++ b/modules/linear_algebra/tests/unit_tests/qr.dia.ref @@ -0,0 +1,143 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) ????-2008 - INRIA Michael Baudin +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +function r=Err(x),r=norm(x,1),endfunction +rand('normal') +//========================================================================== +//============================== qr ============================== +//========================================================================== +//Empty matrix +e=[]; +if qr(e)<>[] then bugmes();quit;end +if qr(e,"e")<>[] then bugmes();quit;end +[Q,R]=qr(e); +if Q<>[]|R<>[] then bugmes();quit;end +[Q,R]=qr(e,"e"); +if Q<>[]|R<>[] then bugmes();quit;end +[Q,R,x]=qr(e); +if Q<>[]|R<>[]|x<>[] then bugmes();quit;end +[Q,R,x]=qr(e,"e"); +if Q<>[]|R<>[]|x<>[] then bugmes();quit;end +//Small dimension +//--------------- +A=rand(3,2);Ac=A+rand(A)*%i; +//Real Case +Q=qr(A); +if Err(Q*Q'-eye())> 200*%eps then bugmes();quit;end +Q=qr(A,"e"); +if Err(Q'*Q-eye())> 200*%eps then bugmes();quit;end +[Q,R]=qr(A); +if Err(Q*R-A)> 200*%eps then bugmes();quit;end +[Q,R]=qr(A,"e"); +if Err(Q*R-A)> 200*%eps then bugmes();quit;end +if Err(Q'*Q-eye())> 200*%eps then bugmes();quit;end +Q=qr(A'); +if Err(Q*Q'-eye())> 200*%eps then bugmes();quit;end +Q=qr(A',"e"); +if Err(Q*Q'-eye())> 200*%eps then bugmes();quit;end +[Q,R]=qr(A'); +if Err(Q*R-A')> 200*%eps then bugmes();quit;end +[Q,R]=qr(A',"e"); +if Err(Q*R-A')> 200*%eps then bugmes();quit;end +[Q,R,x]=qr(A); +if Err(Q*R*x'-A)> 200*%eps then bugmes();quit;end +[Q,R,x]=qr(A,"e"); +if Err(Q*R*x'-A)> 200*%eps then bugmes();quit;end +//Complex case +Q=qr(Ac); +if Err(Q*Q'-eye())> 200*%eps then bugmes();quit;end +Q=qr(Ac,"e"); +if Err(Q'*Q-eye())> 200*%eps then bugmes();quit;end +[Q,R]=qr(Ac); +if Err(Q*R-Ac)> 200*%eps then bugmes();quit;end +[Q,R]=qr(Ac,"e"); +if Err(Q*R-Ac)> 200*%eps then bugmes();quit;end +if Err(Q'*Q-eye())> 200*%eps then bugmes();quit;end +Q=qr(Ac'); +if Err(Q*Q'-eye())> 200*%eps then bugmes();quit;end +Q=qr(Ac',"e"); +if Err(Q*Q'-eye())> 200*%eps then bugmes();quit;end +[Q,R]=qr(Ac'); +if Err(Q*R-Ac')> 200*%eps then bugmes();quit;end +[Q,R]=qr(Ac',"e"); +if Err(Q*R-Ac')> 200*%eps then bugmes();quit;end +[Q,R,x]=qr(Ac); +if Err(Q*R-Ac*x)> 200*%eps then bugmes();quit;end +[Q,R,x]=qr(Ac,"e"); +if Err(Q*R-Ac*x)> 200*%eps then bugmes();quit;end +[Q,R,x]=qr(Ac'); +if Err(Q*R-Ac'*x)> 200*%eps then bugmes();quit;end +[Q,R,x]=qr(Ac',"e"); +if Err(Q*R-Ac'*x)> 200*%eps then bugmes();quit;end +//Rank detection (obsolete) +[Q,R,rk,x]=qr(A); +if Err(Q*R*x'-A)> 200*%eps | rk<>2 then bugmes();quit;end +[Q,R,rk,x]=qr(A,1.d-8); +if Err(Q*R*x'-A)> 200*%eps | rk<>2 then bugmes();quit;end +[Q,R,rk,x]=qr(Ac); +if Err(Q*R*x'-Ac)> 200*%eps | rk<>2 then bugmes();quit;end +[Q,R,rk,x]=qr(Ac,1.d-8); +if Err(Q*R*x'-Ac)> 200*%eps | rk<>2 then bugmes();quit;end +//Large dimension +//--------------- +A=rand(150,60);Ac=A+rand(A)*%i; +//Real Case +Q=qr(A); +if Err(Q*Q'-eye())> 1000*%eps then bugmes();quit;end +Q=qr(A,"e"); +if Err(Q'*Q-eye())> 1000*%eps then bugmes();quit;end +[Q,R]=qr(A); +if Err(Q*R-A)> 1000*%eps then bugmes();quit;end +[Q,R]=qr(A,"e"); +if Err(Q*R-A)> 1000*%eps then bugmes();quit;end +if Err(Q'*Q-eye())> 1000*%eps then bugmes();quit;end +Q=qr(A'); +if Err(Q*Q'-eye())> 1000*%eps then bugmes();quit;end +Q=qr(A',"e"); +if Err(Q*Q'-eye())> 1000*%eps then bugmes();quit;end +[Q,R]=qr(A'); +if Err(Q*R-A')> 1000*%eps then bugmes();quit;end +[Q,R]=qr(A',"e"); +if Err(Q*R-A')> 1000*%eps then bugmes();quit;end +[Q,R,x]=qr(A); +if Err(Q*R*x'-A)> 1000*%eps then bugmes();quit;end +[Q,R,x]=qr(A,"e"); +if Err(Q*R*x'-A)> 1000*%eps then bugmes();quit;end +//Complex case +Q=qr(Ac); +if Err(Q*Q'-eye())> 2000*%eps then bugmes();quit;end +Q=qr(Ac,"e"); +if Err(Q'*Q-eye())> 2000*%eps then bugmes();quit;end +[Q,R]=qr(Ac); +if Err(Q*R-Ac)> 2000*%eps then bugmes();quit;end +[Q,R]=qr(Ac,"e"); +if Err(Q*R-Ac)> 2000*%eps then bugmes();quit;end +if Err(Q'*Q-eye())> 2000*%eps then bugmes();quit;end +Q=qr(Ac'); +if Err(Q*Q'-eye())> 2000*%eps then bugmes();quit;end +Q=qr(Ac',"e"); +if Err(Q*Q'-eye())> 2000*%eps then bugmes();quit;end +[Q,R]=qr(Ac'); +if Err(Q*R-Ac')> 2000*%eps then bugmes();quit;end +[Q,R]=qr(Ac',"e"); +if Err(Q*R-Ac')> 2000*%eps then bugmes();quit;end +[Q,R,x]=qr(Ac); +if Err(Q*R-Ac*x)> 2000*%eps then bugmes();quit;end +[Q,R,x]=qr(Ac,"e"); +if Err(Q*R-Ac*x)> 2000*%eps then bugmes();quit;end +[Q,R,x]=qr(Ac'); +if Err(Q*R-Ac'*x)> 2000*%eps then bugmes();quit;end +[Q,R,x]=qr(Ac',"e"); +if Err(Q*R-Ac'*x)> 2000*%eps then bugmes();quit;end +//Rank detection (obsolete) +[Q,R,rk,x]=qr(A); +if Err(Q*R*x'-A)> 2000*%eps | rk<>60 then bugmes();quit;end +[Q,R,rk,x]=qr(A,1.d-8); +if Err(Q*R*x'-A)> 2000*%eps | rk<>60 then bugmes();quit;end +[Q,R,rk,x]=qr(Ac); +if Err(Q*R*x'-Ac)> 2000*%eps | rk<>60 then bugmes();quit;end +[Q,R,rk,x]=qr(Ac,1.d-8); +if Err(Q*R*x'-Ac)> 2000*%eps | rk<>60 then bugmes();quit;end diff --git a/modules/linear_algebra/tests/unit_tests/qr.tst b/modules/linear_algebra/tests/unit_tests/qr.tst new file mode 100755 index 000000000..8bdf1c82b --- /dev/null +++ b/modules/linear_algebra/tests/unit_tests/qr.tst @@ -0,0 +1,184 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) ????-2008 - INRIA Michael Baudin +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +function r=Err(x),r=norm(x,1),endfunction +rand('normal') +//========================================================================== +//============================== qr ============================== +//========================================================================== +//Empty matrix + +e=[]; +if qr(e)<>[] then pause,end +if qr(e,"e")<>[] then pause,end + +[Q,R]=qr(e); +if Q<>[]|R<>[] then pause,end +[Q,R]=qr(e,"e"); +if Q<>[]|R<>[] then pause,end + +[Q,R,x]=qr(e); +if Q<>[]|R<>[]|x<>[] then pause,end +[Q,R,x]=qr(e,"e"); +if Q<>[]|R<>[]|x<>[] then pause,end + +//Small dimension +//--------------- +A=rand(3,2);Ac=A+rand(A)*%i; + +//Real Case +Q=qr(A); +if Err(Q*Q'-eye())> 200*%eps then pause,end +Q=qr(A,"e"); +if Err(Q'*Q-eye())> 200*%eps then pause,end + +[Q,R]=qr(A); +if Err(Q*R-A)> 200*%eps then pause,end + +[Q,R]=qr(A,"e"); +if Err(Q*R-A)> 200*%eps then pause,end +if Err(Q'*Q-eye())> 200*%eps then pause,end + +Q=qr(A'); +if Err(Q*Q'-eye())> 200*%eps then pause,end +Q=qr(A',"e"); +if Err(Q*Q'-eye())> 200*%eps then pause,end + +[Q,R]=qr(A'); +if Err(Q*R-A')> 200*%eps then pause,end + +[Q,R]=qr(A',"e"); +if Err(Q*R-A')> 200*%eps then pause,end + +[Q,R,x]=qr(A); +if Err(Q*R*x'-A)> 200*%eps then pause,end + +[Q,R,x]=qr(A,"e"); +if Err(Q*R*x'-A)> 200*%eps then pause,end + +//Complex case +Q=qr(Ac); +if Err(Q*Q'-eye())> 200*%eps then pause,end +Q=qr(Ac,"e"); +if Err(Q'*Q-eye())> 200*%eps then pause,end + +[Q,R]=qr(Ac); +if Err(Q*R-Ac)> 200*%eps then pause,end +[Q,R]=qr(Ac,"e"); +if Err(Q*R-Ac)> 200*%eps then pause,end +if Err(Q'*Q-eye())> 200*%eps then pause,end + +Q=qr(Ac'); +if Err(Q*Q'-eye())> 200*%eps then pause,end +Q=qr(Ac',"e"); +if Err(Q*Q'-eye())> 200*%eps then pause,end + + +[Q,R]=qr(Ac'); +if Err(Q*R-Ac')> 200*%eps then pause,end +[Q,R]=qr(Ac',"e"); +if Err(Q*R-Ac')> 200*%eps then pause,end + +[Q,R,x]=qr(Ac); +if Err(Q*R-Ac*x)> 200*%eps then pause,end +[Q,R,x]=qr(Ac,"e"); +if Err(Q*R-Ac*x)> 200*%eps then pause,end + +[Q,R,x]=qr(Ac'); +if Err(Q*R-Ac'*x)> 200*%eps then pause,end +[Q,R,x]=qr(Ac',"e"); +if Err(Q*R-Ac'*x)> 200*%eps then pause,end + +//Rank detection (obsolete) +[Q,R,rk,x]=qr(A); +if Err(Q*R*x'-A)> 200*%eps | rk<>2 then pause,end +[Q,R,rk,x]=qr(A,1.d-8); +if Err(Q*R*x'-A)> 200*%eps | rk<>2 then pause,end + +[Q,R,rk,x]=qr(Ac); +if Err(Q*R*x'-Ac)> 200*%eps | rk<>2 then pause,end + +[Q,R,rk,x]=qr(Ac,1.d-8); +if Err(Q*R*x'-Ac)> 200*%eps | rk<>2 then pause,end + +//Large dimension +//--------------- +A=rand(150,60);Ac=A+rand(A)*%i; +//Real Case +Q=qr(A); +if Err(Q*Q'-eye())> 1000*%eps then pause,end +Q=qr(A,"e"); +if Err(Q'*Q-eye())> 1000*%eps then pause,end + +[Q,R]=qr(A); +if Err(Q*R-A)> 1000*%eps then pause,end + +[Q,R]=qr(A,"e"); +if Err(Q*R-A)> 1000*%eps then pause,end +if Err(Q'*Q-eye())> 1000*%eps then pause,end + +Q=qr(A'); +if Err(Q*Q'-eye())> 1000*%eps then pause,end +Q=qr(A',"e"); +if Err(Q*Q'-eye())> 1000*%eps then pause,end + +[Q,R]=qr(A'); +if Err(Q*R-A')> 1000*%eps then pause,end + +[Q,R]=qr(A',"e"); +if Err(Q*R-A')> 1000*%eps then pause,end + +[Q,R,x]=qr(A); +if Err(Q*R*x'-A)> 1000*%eps then pause,end + +[Q,R,x]=qr(A,"e"); +if Err(Q*R*x'-A)> 1000*%eps then pause,end + +//Complex case +Q=qr(Ac); +if Err(Q*Q'-eye())> 2000*%eps then pause,end +Q=qr(Ac,"e"); +if Err(Q'*Q-eye())> 2000*%eps then pause,end + +[Q,R]=qr(Ac); +if Err(Q*R-Ac)> 2000*%eps then pause,end +[Q,R]=qr(Ac,"e"); +if Err(Q*R-Ac)> 2000*%eps then pause,end +if Err(Q'*Q-eye())> 2000*%eps then pause,end + +Q=qr(Ac'); +if Err(Q*Q'-eye())> 2000*%eps then pause,end +Q=qr(Ac',"e"); +if Err(Q*Q'-eye())> 2000*%eps then pause,end + + +[Q,R]=qr(Ac'); +if Err(Q*R-Ac')> 2000*%eps then pause,end +[Q,R]=qr(Ac',"e"); +if Err(Q*R-Ac')> 2000*%eps then pause,end + +[Q,R,x]=qr(Ac); +if Err(Q*R-Ac*x)> 2000*%eps then pause,end +[Q,R,x]=qr(Ac,"e"); +if Err(Q*R-Ac*x)> 2000*%eps then pause,end + +[Q,R,x]=qr(Ac'); +if Err(Q*R-Ac'*x)> 2000*%eps then pause,end +[Q,R,x]=qr(Ac',"e"); +if Err(Q*R-Ac'*x)> 2000*%eps then pause,end + +//Rank detection (obsolete) +[Q,R,rk,x]=qr(A); +if Err(Q*R*x'-A)> 2000*%eps | rk<>60 then pause,end +[Q,R,rk,x]=qr(A,1.d-8); +if Err(Q*R*x'-A)> 2000*%eps | rk<>60 then pause,end + +[Q,R,rk,x]=qr(Ac); +if Err(Q*R*x'-Ac)> 2000*%eps | rk<>60 then pause,end + +[Q,R,rk,x]=qr(Ac,1.d-8); +if Err(Q*R*x'-Ac)> 2000*%eps | rk<>60 then pause,end + diff --git a/modules/linear_algebra/tests/unit_tests/rcond.dia.ref b/modules/linear_algebra/tests/unit_tests/rcond.dia.ref new file mode 100755 index 000000000..28de8c3db --- /dev/null +++ b/modules/linear_algebra/tests/unit_tests/rcond.dia.ref @@ -0,0 +1,29 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) ????-2008 - INRIA Michael Baudin +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +function r=Err(x),r=norm(x,1),endfunction +rand('normal') +//========================================================================== +//============================== rcond ============================== +//========================================================================== +//Empty matrix +A=[]; +if rcond(A)<>[] then bugmes();quit;end +//Rectangular matrix +if execstr('rcond(rand(2,3))','errcatch')==0 then bugmes();quit;end +if execstr('rcond(rand(2,3)+%i*eye())','errcatch')==0 then bugmes();quit;end +//Small dimension +//--------------- +//Real Case +if Err(rcond(eye(5,5))-1)>10*%eps then bugmes();quit;end +//Complex Case +if Err(rcond(eye(5,5)*(1+%i))-1)>10*%eps then bugmes();quit;end +//Large dimension +//--------------- +//Real Case +if Err(rcond(eye(50,50))-1)>10*%eps then bugmes();quit;end +//Complex Case +if Err(rcond(eye(50,50)*(1+%i))-1)>10*%eps then bugmes();quit;end diff --git a/modules/linear_algebra/tests/unit_tests/rcond.tst b/modules/linear_algebra/tests/unit_tests/rcond.tst new file mode 100755 index 000000000..ca2b6101f --- /dev/null +++ b/modules/linear_algebra/tests/unit_tests/rcond.tst @@ -0,0 +1,33 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) ????-2008 - INRIA Michael Baudin +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +function r=Err(x),r=norm(x,1),endfunction +rand('normal') + +//========================================================================== +//============================== rcond ============================== +//========================================================================== +//Empty matrix +A=[]; +if rcond(A)<>[] then pause,end + +//Rectangular matrix +if execstr('rcond(rand(2,3))','errcatch')==0 then pause,end +if execstr('rcond(rand(2,3)+%i*eye())','errcatch')==0 then pause,end +//Small dimension +//--------------- +//Real Case +if Err(rcond(eye(5,5))-1)>10*%eps then pause,end +//Complex Case +if Err(rcond(eye(5,5)*(1+%i))-1)>10*%eps then pause,end + + +//Large dimension +//--------------- +//Real Case +if Err(rcond(eye(50,50))-1)>10*%eps then pause,end +//Complex Case +if Err(rcond(eye(50,50)*(1+%i))-1)>10*%eps then pause,end diff --git a/modules/linear_algebra/tests/unit_tests/rdiv.dia.ref b/modules/linear_algebra/tests/unit_tests/rdiv.dia.ref new file mode 100755 index 000000000..ee39fc494 --- /dev/null +++ b/modules/linear_algebra/tests/unit_tests/rdiv.dia.ref @@ -0,0 +1,118 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) ????-2008 - INRIA Michael Baudin +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +function r=Err(x),r=norm(x,1),endfunction +rand('normal') +//========================================================================== +//============================== / ============================== +//========================================================================== +//function x=rdiv(A,B),x=slash(A,B),endfunction +function x=rdiv(A,B),x=A/B,endfunction +//scalar division +//-----Square matrix----- +n=5; A=rand(n,n);b=rand(2,n+1); +if rdiv([],A) <>[] then bugmes();quit;end +if execstr('rdiv(b,A)','errcatch')==0 then bugmes();quit;end +//Small dimensions real +n=5; +b=rand(2,n);A=rand(n,n); +x=rdiv(b,A); +if Err(x*A-b)>200*%eps then bugmes();quit;end +//Small dimensions complex +b=rand(2,n)+%i;A=rand(n,n); +x=rdiv(b,A); +if Err(x*A-b)>500*%eps then bugmes();quit;end +b=rand(2,n);A=rand(n,n)+%i; +x=rdiv(b,A); +if Err(x*A-b)>500*%eps then bugmes();quit;end +b=rand(2,n)+%i;A=rand(n,n)+%i; +x=rdiv(b,A); +if Err(x*A-b)>500*%eps then bugmes();quit;end +//Large dimensions real +n=50; +b=rand(2,n);A=rand(n,n); +x=rdiv(b,A); +if Err(x*A-b)>10000*%eps then bugmes();quit;end +//Small dimensions complex +b=rand(2,n)+%i;A=rand(n,n); +x=rdiv(b,A); +if Err(x*A-b)>10000*%eps then bugmes();quit;end +b=rand(2,n);A=rand(n,n)+%i; +x=rdiv(b,A); +if Err(x*A-b)>10000*%eps then bugmes();quit;end +b=rand(2,n)+%i;A=rand(n,n)+%i; +x=rdiv(b,A); +if Err(x*A-b)>10000*%eps then bugmes();quit;end +//-----Rectangular matrix----- +n=5;m=3; A=rand(m,n);b=rand(2,n+1); +if rdiv([],A) <>[] then bugmes();quit;end +if execstr('rdiv(b,A)','errcatch')==0 then bugmes();quit;end +//Small dimensions real +n=5;m=3; +b=rand(2,n);A=rand(m,n); +x=rdiv(b,A); +if Err(x*A*A'-b*A')>200*%eps then bugmes();quit;end +n=3;m=5; +b=rand(2,n);A=rand(m,n); +x=rdiv(b,A); +if Err(x*A*A'-b*A')>200*%eps then bugmes();quit;end +//Small dimensions complex +n=5;m=3; +b=rand(2,n)+%i;A=rand(m,n); +x=rdiv(b,A); +if Err(x*A*A'-b*A')>200*%eps then bugmes();quit;end +n=5;m=3; +b=rand(2,n);A=rand(m,n)+%i; +x=rdiv(b,A); +if Err(x*A*A'-b*A')>200*%eps then bugmes();quit;end +b=rand(2,n)+%i;A=rand(m,n)+%i; +x=rdiv(b,A); +if Err(x*A*A'-b*A')>200*%eps then bugmes();quit;end +n=3;m=5; +b=rand(2,n)+%i;A=rand(m,n); +x=rdiv(b,A); +if Err(x*A*A'-b*A')>1000*%eps then bugmes();quit;end +n=3;m=5; +b=rand(2,n);A=rand(m,n)+%i; +x=rdiv(b,A); +if Err(x*A*A'-b*A')>1000*%eps then bugmes();quit;end +n=3;m=5; +b=rand(2,n)+%i;A=rand(m,n)+%i; +x=rdiv(b,A); +if Err(x*A*A'-b*A')>1000*%eps then bugmes();quit;end +//LArge dimension real +n=50;m=30; +b=rand(2,n);A=rand(m,n); +x=rdiv(b,A); +if Err(x*A*A'-b*A')>1000*%eps then bugmes();quit;end +n=30;m=50; +b=rand(2,n);A=rand(m,n); +x=rdiv(b,A); +if Err(x*A*A'-b*A')>1000*%eps then bugmes();quit;end +//Large dimensions complex +n=50;m=30; +b=rand(2,n)+%i;A=rand(m,n); +x=rdiv(b,A); +if Err(x*A*A'-b*A')>1000*%eps then bugmes();quit;end +n=50;m=30; +b=rand(2,n);A=rand(m,n)+%i; +x=rdiv(b,A); +if Err(x*A*A'-b*A')>1000*%eps then bugmes();quit;end +b=rand(2,n)+%i;A=rand(m,n)+%i; +x=rdiv(b,A); +if Err(x*A*A'-b*A')>1000*%eps then bugmes();quit;end +n=30;m=50; +b=rand(2,n)+%i;A=rand(m,n); +x=rdiv(b,A); +if Err(x*A*A'-b*A')>1000*%eps then bugmes();quit;end +n=30;m=50; +b=rand(2,n);A=rand(m,n)+%i; +x=rdiv(b,A); +if Err(x*A*A'-b*A')>1000*%eps then bugmes();quit;end +n=30;m=50; +b=rand(2,n)+%i;A=rand(m,n)+%i; +x=rdiv(b,A); +if Err(x*A*A'-b*A')>1000*%eps then bugmes();quit;end diff --git a/modules/linear_algebra/tests/unit_tests/rdiv.tst b/modules/linear_algebra/tests/unit_tests/rdiv.tst new file mode 100755 index 000000000..6e558dddc --- /dev/null +++ b/modules/linear_algebra/tests/unit_tests/rdiv.tst @@ -0,0 +1,138 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) ????-2008 - INRIA Michael Baudin +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +function r=Err(x),r=norm(x,1),endfunction +rand('normal') + +//========================================================================== +//============================== / ============================== +//========================================================================== +//function x=rdiv(A,B),x=slash(A,B),endfunction +function x=rdiv(A,B),x=A/B,endfunction +//scalar division + +//-----Square matrix----- +n=5; A=rand(n,n);b=rand(2,n+1); +if rdiv([],A) <>[] then pause,end +if execstr('rdiv(b,A)','errcatch')==0 then pause,end +//Small dimensions real +n=5; +b=rand(2,n);A=rand(n,n); +x=rdiv(b,A); +if Err(x*A-b)>200*%eps then pause,end +//Small dimensions complex +b=rand(2,n)+%i;A=rand(n,n); +x=rdiv(b,A); +if Err(x*A-b)>500*%eps then pause,end + +b=rand(2,n);A=rand(n,n)+%i; +x=rdiv(b,A); +if Err(x*A-b)>500*%eps then pause,end + +b=rand(2,n)+%i;A=rand(n,n)+%i; +x=rdiv(b,A); +if Err(x*A-b)>500*%eps then pause,end + +//Large dimensions real +n=50; +b=rand(2,n);A=rand(n,n); +x=rdiv(b,A); +if Err(x*A-b)>10000*%eps then pause,end +//Small dimensions complex +b=rand(2,n)+%i;A=rand(n,n); +x=rdiv(b,A); +if Err(x*A-b)>10000*%eps then pause,end + +b=rand(2,n);A=rand(n,n)+%i; +x=rdiv(b,A); +if Err(x*A-b)>10000*%eps then pause,end + +b=rand(2,n)+%i;A=rand(n,n)+%i; +x=rdiv(b,A); +if Err(x*A-b)>10000*%eps then pause,end + +//-----Rectangular matrix----- +n=5;m=3; A=rand(m,n);b=rand(2,n+1); +if rdiv([],A) <>[] then pause,end +if execstr('rdiv(b,A)','errcatch')==0 then pause,end + +//Small dimensions real +n=5;m=3; +b=rand(2,n);A=rand(m,n); +x=rdiv(b,A); +if Err(x*A*A'-b*A')>200*%eps then pause,end + +n=3;m=5; +b=rand(2,n);A=rand(m,n); +x=rdiv(b,A); +if Err(x*A*A'-b*A')>200*%eps then pause,end +//Small dimensions complex +n=5;m=3; +b=rand(2,n)+%i;A=rand(m,n); +x=rdiv(b,A); +if Err(x*A*A'-b*A')>200*%eps then pause,end +n=5;m=3; +b=rand(2,n);A=rand(m,n)+%i; +x=rdiv(b,A); +if Err(x*A*A'-b*A')>200*%eps then pause,end +b=rand(2,n)+%i;A=rand(m,n)+%i; +x=rdiv(b,A); +if Err(x*A*A'-b*A')>200*%eps then pause,end + +n=3;m=5; +b=rand(2,n)+%i;A=rand(m,n); +x=rdiv(b,A); +if Err(x*A*A'-b*A')>1000*%eps then pause,end + +n=3;m=5; +b=rand(2,n);A=rand(m,n)+%i; +x=rdiv(b,A); +if Err(x*A*A'-b*A')>1000*%eps then pause,end + +n=3;m=5; +b=rand(2,n)+%i;A=rand(m,n)+%i; +x=rdiv(b,A); +if Err(x*A*A'-b*A')>1000*%eps then pause,end + +//LArge dimension real + +n=50;m=30; +b=rand(2,n);A=rand(m,n); +x=rdiv(b,A); +if Err(x*A*A'-b*A')>1000*%eps then pause,end + +n=30;m=50; +b=rand(2,n);A=rand(m,n); +x=rdiv(b,A); +if Err(x*A*A'-b*A')>1000*%eps then pause,end +//Large dimensions complex +n=50;m=30; +b=rand(2,n)+%i;A=rand(m,n); +x=rdiv(b,A); +if Err(x*A*A'-b*A')>1000*%eps then pause,end +n=50;m=30; +b=rand(2,n);A=rand(m,n)+%i; +x=rdiv(b,A); +if Err(x*A*A'-b*A')>1000*%eps then pause,end +b=rand(2,n)+%i;A=rand(m,n)+%i; +x=rdiv(b,A); +if Err(x*A*A'-b*A')>1000*%eps then pause,end + +n=30;m=50; +b=rand(2,n)+%i;A=rand(m,n); +x=rdiv(b,A); +if Err(x*A*A'-b*A')>1000*%eps then pause,end + +n=30;m=50; +b=rand(2,n);A=rand(m,n)+%i; +x=rdiv(b,A); +if Err(x*A*A'-b*A')>1000*%eps then pause,end + +n=30;m=50; +b=rand(2,n)+%i;A=rand(m,n)+%i; +x=rdiv(b,A); +if Err(x*A*A'-b*A')>1000*%eps then pause,end + diff --git a/modules/linear_algebra/tests/unit_tests/schur.dia.ref b/modules/linear_algebra/tests/unit_tests/schur.dia.ref new file mode 100755 index 000000000..50a543ab5 --- /dev/null +++ b/modules/linear_algebra/tests/unit_tests/schur.dia.ref @@ -0,0 +1,407 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) ????-2008 - INRIA Michael Baudin +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +function r=Err(x) + r=norm(x,1) +endfunction +rand('normal') +//define tools +function A=testmat1(a,n) + //eigen values are given by a dilation of nth roots of 1 + A=diag(a*ones(1,n-1),1)+diag((1/a)*ones(1,n-1),-1) + A(1,n)=1/a;A(n,1)=a +endfunction +//========================================================================== +//============================== schur ============================== +//========================================================================== +clear sel +function t=sel(R),t=real(R)<0 ,endfunction +//Empty matrix +A=[]; +if schur(A)<>[] then bugmes();quit;end +if schur(A,'real')<>[] then bugmes();quit;end +if schur(A,'complex')<>[] then bugmes();quit;end +if schur(A,'c')<>[] then bugmes();quit;end +if schur(A,'d')<>[] then bugmes();quit;end +if schur(A,sel)<>[] then bugmes();quit;end +[U,S]=schur(A); +if U<>[]|S<>[] then bugmes();quit;end +[U,S]=schur(A,'real'); +if U<>[]|S<>[] then bugmes();quit;end +[U,S]=schur(A,'complex'); +if U<>[]|S<>[] then bugmes();quit;end +[U,N]=schur(A,'c'); +if U<>[]|N<>0 then bugmes();quit;end +[U,N]=schur(A,'d'); +if U<>[]|N<>0 then bugmes();quit;end +[U,N]=schur(A,sel); +if U<>[]|N<>0 then bugmes();quit;end +[U,N,S]=schur(A,'c'); +if U<>[]|N<>0|S<>[] then bugmes();quit;end +[U,N,S]=schur(A,'d'); +if U<>[]|N<>0|S<>[] then bugmes();quit;end +[U,N,S]=schur(A,sel); +if U<>[]|N<>0|S<>[] then bugmes();quit;end +//Rectangular matrix +if execstr('schur(rand(2,3))','errcatch')==0 then bugmes();quit;end +if execstr('[U,S]=schur(rand(2,3))','errcatch')==0 then bugmes();quit;end +if execstr('schur(rand(2,3)+%i*eye())','errcatch')==0 then bugmes();quit;end +if execstr('[U,S]=schur(rand(2,3)+%i*eye())','errcatch')==0 then bugmes();quit;end +//Small dimension +A=testmat1(3,5);Ac=testmat1(3+%i,5); +//Real +[U,S]=schur(A); +if Err(triu(S,-1)-S)>%eps then bugmes();quit;end +if Err(U*S*U'-A)>200*%eps then bugmes();quit;end +if Err(schur(A)-S) >%eps then bugmes();quit;end +[U,S]=schur(A,'real'); +if Err(triu(S,-1)-S)>%eps then bugmes();quit;end +if Err(U*S*U'-A)>200*%eps then bugmes();quit;end +if Err(schur(A)-S) >%eps then bugmes();quit;end +[U,S]=schur(A,'complex'); +if Err(triu(S)-S)>%eps then bugmes();quit;end +if Err(U*S*U'-A)>200*%eps then bugmes();quit;end +if Err(schur(A,'complex')-S) >%eps then bugmes();quit;end +[U,n]=schur(A,'c');S=U'*A*U; +if n<>2 then bugmes();quit;end +if or(real(spec(S(1:n,1:n)))>=0) then bugmes();quit;end +if or(real(spec(S(n+1:$,n+1:$)))<0) then bugmes();quit;end +[U,n]=schur(A,'d');S=U'*A*U; +if n<>0 then bugmes();quit;end +if or(abs(spec(S(n+1:$,n+1:$)))<1) then bugmes();quit;end +[U,n]=schur(A,sel);S=U'*A*U; +if n<>2 then bugmes();quit;end +if or(real(spec(S(1:n,1:n)))>=0) then bugmes();quit;end +if or(real(spec(S(n+1:$,n+1:$)))<0) then bugmes();quit;end +//Complex +[U,S]=schur(Ac); +if Err(triu(S,-1)-S)>%eps then bugmes();quit;end +if Err(U*S*U'-Ac)>200*%eps then bugmes();quit;end +if Err(schur(Ac)-S) >%eps then bugmes();quit;end +[U,S]=schur(Ac,'complex'); +if Err(triu(S,-1)-S)>%eps then bugmes();quit;end +if Err(U*S*U'-Ac)>200*%eps then bugmes();quit;end +if Err(schur(Ac)-S) >%eps then bugmes();quit;end +[U,n]=schur(Ac,'c');S=U'*Ac*U; +if n<>3 then bugmes();quit;end +if or(real(spec(S(1:n,1:n)))>=0) then bugmes();quit;end +if or(real(spec(S(n+1:$,n+1:$)))<0) then bugmes();quit;end +[U,n]=schur(Ac,'d');S=U'*A*U; +if n<>0 then bugmes();quit;end +if or(abs(spec(S(n+1:$,n+1:$)))<1) then bugmes();quit;end +[U,n]=schur(Ac,sel);S=U'*Ac*U; +if n<>3 then bugmes();quit;end +if or(real(spec(S(1:n,1:n)))>=0) then bugmes();quit;end +if or(real(spec(S(n+1:$,n+1:$)))<0) then bugmes();quit;end +//Large dimension +A=testmat1(3,50);Ac=testmat1(3+%i,50); +//Real +[U,S]=schur(A); +if Err(triu(S,-1)-S)>%eps then bugmes();quit;end +if Err(U*S*U'-A)>1000*%eps then bugmes();quit;end +if Err(schur(A)-S) >%eps then bugmes();quit;end +[U,S]=schur(A,'real'); +if Err(triu(S,-1)-S)>%eps then bugmes();quit;end +if Err(U*S*U'-A)>1000*%eps then bugmes();quit;end +if Err(schur(A)-S) >%eps then bugmes();quit;end +[U,S]=schur(A,'complex'); +if Err(triu(S)-S)>%eps then bugmes();quit;end +if Err(U*S*U'-A)>1000*%eps then bugmes();quit;end +if Err(schur(A,'complex')-S) >%eps then bugmes();quit;end +[U,n]=schur(A,'c');S=U'*A*U; +if n<>25 then bugmes();quit;end +if or(real(spec(S(1:n,1:n)))>=0) then bugmes();quit;end +if or(real(spec(S(n+1:$,n+1:$)))<0) then bugmes();quit;end +[U,n]=schur(A,'d');S=U'*A*U; +if n<>0 then bugmes();quit;end +if or(abs(spec(S(n+1:$,n+1:$)))<1) then bugmes();quit;end +[U,n]=schur(A,sel);S=U'*A*U; +if n<>25 then bugmes();quit;end +if or(real(spec(S(1:n,1:n)))>=0) then bugmes();quit;end +if or(real(spec(S(n+1:$,n+1:$)))<0) then bugmes();quit;end +//Complex +[U,S]=schur(Ac); +if Err(triu(S,-1)-S)>%eps then bugmes();quit;end +if Err(U*S*U'-Ac)>1000*%eps then bugmes();quit;end +if Err(schur(Ac)-S) >%eps then bugmes();quit;end +[U,S]=schur(Ac,'complex'); +if Err(triu(S,-1)-S)>%eps then bugmes();quit;end +if Err(U*S*U'-Ac)>1000*%eps then bugmes();quit;end +if Err(schur(Ac)-S) >%eps then bugmes();quit;end +[U,n]=schur(Ac,'c');S=U'*Ac*U; +if n<>25 then bugmes();quit;end +if or(real(spec(S(1:n,1:n)))>=0) then bugmes();quit;end +if or(real(spec(S(n+1:$,n+1:$)))<0) then bugmes();quit;end +[U,n]=schur(Ac,'d');S=U'*Ac*U; +if n<>0 then bugmes();quit;end +if or(abs(spec(S(n+1:$,n+1:$)))<1) then bugmes();quit;end +[U,n]=schur(Ac,sel);S=U'*Ac*U; +if n<>25 then bugmes();quit;end +if or(real(spec(S(1:n,1:n)))>=0) then bugmes();quit;end +if or(real(spec(S(n+1:$,n+1:$)))<0) then bugmes();quit;end +//========================================================================== +//============================== schur part II ======================== +//========================================================================== +//Empty matrix +[As,Es]=schur([],[]); +if As<>[]|Es<>[] then bugmes();quit;end +[As,dim]=schur([],[],'c'); +if As<>[]|dim<>0 then bugmes();quit;end +[As,dim]=schur([],[],'d'); +if As<>[]|dim<>0 then bugmes();quit;end +[As,dim]=schur([],[],sel); +if As<>[]|dim<>0 then bugmes();quit;end +[As,Es,Q,Z]=schur([],[]); +if As<>[]|Es<>[]|Q<>[]|Z<>[] then bugmes();quit;end +[As,Es,dim]=schur([],[],'c'); +if As<>[]|Es<>[]|dim<>0 then bugmes();quit;end +[As,Es,dim]=schur([],[],'d'); +if As<>[]|Es<>[]|dim<>0 then bugmes();quit;end +[As,Es,dim]=schur([],[],sel); +if As<>[]|Es<>[]|dim<>0 then bugmes();quit;end +[Z,dim]=schur([],[],'c'); +if Z<>[]|dim<>0 then bugmes();quit;end +[Z,dim]=schur([],[],'d'); +if Z<>[]|dim<>0 then bugmes();quit;end +[Z,dim]=schur([],[],sel); +if Z<>[]|dim<>0 then bugmes();quit;end +//Rectangular matrix +if execstr('[As,Es]=schur(rand(2,3),rand(2,3))','errcatch')==0 then bugmes();quit;end +if execstr('[As,Es,Q,Z]=schur(rand(2,3),rand(2,3))','errcatch')==0 then bugmes();quit;end +if execstr('[As,Es,dim]=schur(rand(2,3),rand(2,3),''c'')','errcatch')==0 then bugmes();quit;end +if execstr('[Z,dim]=schur(rand(2,3),rand(2,3),sel)','errcatch')==0 then bugmes();quit;end +//Small dimension +//----Real------------ +A=testmat1(1,5);E=testmat1(-2,5) ; +[As,Es,Q,Z]=schur(A,E); +if Err(Q*Q'-eye(Q)) >200*%eps then bugmes();quit;end +if Err(Z*Z'-eye(Z)) >200*%eps then bugmes();quit;end +if Err(As-Q'*A*Z) >200*%eps then bugmes();quit;end +if Err(Es-Q'*E*Z) >200*%eps then bugmes();quit;end +[As1,Es1]=schur(A,E); +if Err(As1-As)>10*%eps then bugmes();quit;end +if Err(Es1-Es)>10*%eps then bugmes();quit;end +// Ordered 'c' +dim=schur(A,E,'c'); +if dim<>5 then bugmes();quit;end +[Z,dim]=schur(A,E,'c'); +if Err(Z*Z'-eye(Z)) >200*%eps then bugmes();quit;end +[Q,Z1,dim]=schur(A,E,'c'); +if Err(Z1-Z)>10*%eps then bugmes();quit;end +if Err(Q*Q'-eye(Q)) >200*%eps then bugmes();quit;end +if dim<>5 then bugmes();quit;end +[As,Es,Z,dim]=schur(A,E,'d'); +if dim<>5 then bugmes();quit;end +if Err(Q*Q'-eye(Q)) >200*%eps then bugmes();quit;end +if Err(Z*Z'-eye(Z)) >200*%eps then bugmes();quit;end +if Err(As-Q'*A*Z) >200*%eps then bugmes();quit;end +if Err(Es-Q'*E*Z) >200*%eps then bugmes();quit;end +// Ordered 'd' +dim=schur(A,E,'d'); +if dim<>5 then bugmes();quit;end +[Z,dim]=schur(A,E,'d'); +if Err(Z*Z'-eye(Z)) >200*%eps then bugmes();quit;end +[Q,Z1,dim]=schur(A,E,'d'); +if Err(Z1-Z)>10*%eps then bugmes();quit;end +if Err(Q*Q'-eye(Q)) >200*%eps then bugmes();quit;end +if dim<>5 then bugmes();quit;end +[As,Es,Z,dim]=schur(A,E,'d'); +if dim<>5 then bugmes();quit;end +if Err(Q*Q'-eye(Q)) >200*%eps then bugmes();quit;end +if Err(Z*Z'-eye(Z)) >200*%eps then bugmes();quit;end +if Err(As-Q'*A*Z) >200*%eps then bugmes();quit;end +if Err(Es-Q'*E*Z) >200*%eps then bugmes();quit;end +//ordered sel +clear sel +function t=sel(Alpha,Beta),t=real(Alpha)>-0.2*real(Beta) ,endfunction +dim=schur(A,E,sel); +if dim<>2 then bugmes();quit;end +[Z,dim]=schur(A,E,sel); +if Err(Z*Z'-eye(Z)) >200*%eps then bugmes();quit;end +[Q,Z1,dim]=schur(A,E,sel); +if Err(Z1-Z)>10*%eps then bugmes();quit;end +if Err(Q*Q'-eye(Q)) >200*%eps then bugmes();quit;end +if dim<>2 then bugmes();quit;end +[As,Es,Z,dim]=schur(A,E,sel); +if dim<>2 then bugmes();quit;end +if Err(Q*Q'-eye(Q)) >200*%eps then bugmes();quit;end +if Err(Z*Z'-eye(Z)) >200*%eps then bugmes();quit;end +if Err(As-Q'*A*Z) >200*%eps then bugmes();quit;end +if Err(Es-Q'*E*Z) >200*%eps then bugmes();quit;end +//----Complex------------ +A=testmat1(1+%i,5);E=testmat1(-2-3*%i,5) ; +[As,Es,Q,Z]=schur(A,E); +if Err(Q*Q'-eye(Q)) >200*%eps then bugmes();quit;end +if Err(Z*Z'-eye(Z)) >200*%eps then bugmes();quit;end +if Err(As-Q'*A*Z) >200*%eps then bugmes();quit;end +if Err(Es-Q'*E*Z) >200*%eps then bugmes();quit;end +[As1,Es1]=schur(A,E); +if Err(As1-As)>10*%eps then bugmes();quit;end +if Err(Es1-Es)>10*%eps then bugmes();quit;end +// Ordered 'c' +dim=schur(A,E,'c'); +if dim<>5 then bugmes();quit;end +[Z,dim]=schur(A,E,'c'); +if Err(Z*Z'-eye(Z)) >200*%eps then bugmes();quit;end +[Q,Z1,dim]=schur(A,E,'c'); +if Err(Z1-Z)>10*%eps then bugmes();quit;end +if Err(Q*Q'-eye(Q)) >200*%eps then bugmes();quit;end +if dim<>5 then bugmes();quit;end +[As,Es,Z,dim]=schur(A,E,'d'); +if dim<>5 then bugmes();quit;end +if Err(Q*Q'-eye(Q)) >200*%eps then bugmes();quit;end +if Err(Z*Z'-eye(Z)) >200*%eps then bugmes();quit;end +if Err(As-Q'*A*Z) >200*%eps then bugmes();quit;end +if Err(Es-Q'*E*Z) >200*%eps then bugmes();quit;end +// Ordered 'd' +dim=schur(A,E,'d'); +if dim<>5 then bugmes();quit;end +[Z,dim]=schur(A,E,'d'); +if Err(Z*Z'-eye(Z)) >200*%eps then bugmes();quit;end +[Q,Z1,dim]=schur(A,E,'d'); +if Err(Z1-Z)>10*%eps then bugmes();quit;end +if Err(Q*Q'-eye(Q)) >200*%eps then bugmes();quit;end +if dim<>5 then bugmes();quit;end +[As,Es,Z,dim]=schur(A,E,'d'); +if dim<>5 then bugmes();quit;end +if Err(Q*Q'-eye(Q)) >200*%eps then bugmes();quit;end +if Err(Z*Z'-eye(Z)) >200*%eps then bugmes();quit;end +if Err(As-Q'*A*Z) >200*%eps then bugmes();quit;end +if Err(Es-Q'*E*Z) >200*%eps then bugmes();quit;end +//ordered sel +clear sel +function t=sel(Alpha,Beta),t=imag(Alpha)>0 ,endfunction +dim=schur(A,E,sel); +if dim<>3 then bugmes();quit;end +[Z,dim]=schur(A,E,sel); +if Err(Z*Z'-eye(Z)) >200*%eps then bugmes();quit;end +[Q,Z1,dim]=schur(A,E,sel); +if Err(Z1-Z)>10*%eps then bugmes();quit;end +if Err(Q*Q'-eye(Q)) >200*%eps then bugmes();quit;end +if dim<>3 then bugmes();quit;end +[As,Es,Z,dim]=schur(A,E,sel); +if dim<>3 then bugmes();quit;end +if Err(Q*Q'-eye(Q)) >200*%eps then bugmes();quit;end +if Err(Z*Z'-eye(Z)) >200*%eps then bugmes();quit;end +if Err(As-Q'*A*Z) >200*%eps then bugmes();quit;end +if Err(Es-Q'*E*Z) >200*%eps then bugmes();quit;end +//Large dimension +//----Real------------ +A=testmat1(1,50);E=testmat1(-2,50) ; +[As,Es,Q,Z]=schur(A,E); +if Err(Q*Q'-eye(Q)) >200*%eps then bugmes();quit;end +if Err(Z*Z'-eye(Z)) >200*%eps then bugmes();quit;end +if Err(As-Q'*A*Z) >200*%eps then bugmes();quit;end +if Err(Es-Q'*E*Z) >200*%eps then bugmes();quit;end +[As1,Es1]=schur(A,E); +if Err(As1-As)>10*%eps then bugmes();quit;end +if Err(Es1-Es)>10*%eps then bugmes();quit;end +// Ordered 'c' +dim=schur(A,E,'c'); +if dim<>50 then bugmes();quit;end +[Z,dim]=schur(A,E,'c'); +if Err(Z*Z'-eye(Z)) >200*%eps then bugmes();quit;end +[Q,Z1,dim]=schur(A,E,'c'); +if Err(Z1-Z)>10*%eps then bugmes();quit;end +if Err(Q*Q'-eye(Q)) >200*%eps then bugmes();quit;end +if dim<>50 then bugmes();quit;end +[As,Es,Z,dim]=schur(A,E,'d'); +if dim<>50 then bugmes();quit;end +if Err(Q*Q'-eye(Q)) >200*%eps then bugmes();quit;end +if Err(Z*Z'-eye(Z)) >200*%eps then bugmes();quit;end +if Err(As-Q'*A*Z) >200*%eps then bugmes();quit;end +if Err(Es-Q'*E*Z) >200*%eps then bugmes();quit;end +// Ordered 'd' +dim=schur(A,E,'d'); +if dim<>50 then bugmes();quit;end +[Z,dim]=schur(A,E,'d'); +if Err(Z*Z'-eye(Z)) >200*%eps then bugmes();quit;end +[Q,Z1,dim]=schur(A,E,'d'); +if Err(Z1-Z)>10*%eps then bugmes();quit;end +if Err(Q*Q'-eye(Q)) >200*%eps then bugmes();quit;end +if dim<>50 then bugmes();quit;end +[As,Es,Z,dim]=schur(A,E,'d'); +if dim<>50 then bugmes();quit;end +if Err(Q*Q'-eye(Q)) >200*%eps then bugmes();quit;end +if Err(Z*Z'-eye(Z)) >200*%eps then bugmes();quit;end +if Err(As-Q'*A*Z) >200*%eps then bugmes();quit;end +if Err(Es-Q'*E*Z) >200*%eps then bugmes();quit;end +//ordered sel +clear sel +function t=sel(Alpha,Beta) + t=real(Alpha)>-0.2*real(Beta) +endfunction +dim=schur(A,E,sel); // plante ici DGGES LAPACK 3.1 +if dim<>12 then bugmes();quit;end +[Z,dim]=schur(A,E,sel); +if Err(Z*Z'-eye(Z)) >200*%eps then bugmes();quit;end +[Q,Z1,dim]=schur(A,E,sel); +if Err(Z1-Z)>10*%eps then bugmes();quit;end +if Err(Q*Q'-eye(Q)) >200*%eps then bugmes();quit;end +if dim<>12 then bugmes();quit;end +[As,Es,Z,dim]=schur(A,E,sel); +if dim<>12 then bugmes();quit;end +if Err(Q*Q'-eye(Q)) >200*%eps then bugmes();quit;end +if Err(Z*Z'-eye(Z)) >200*%eps then bugmes();quit;end +if Err(As-Q'*A*Z) >200*%eps then bugmes();quit;end +if Err(Es-Q'*E*Z) >200*%eps then bugmes();quit;end +//----Complex------------ +A=testmat1(1+%i,50);E=testmat1(-2-3*%i,50) ; +[As,Es,Q,Z]=schur(A,E); +if Err(Q*Q'-eye(Q)) >200*%eps then bugmes();quit;end +if Err(Z*Z'-eye(Z)) >200*%eps then bugmes();quit;end +if Err(As-Q'*A*Z) >1000*%eps then bugmes();quit;end +if Err(Es-Q'*E*Z) >1000*%eps then bugmes();quit;end +[As1,Es1]=schur(A,E); +if Err(As1-As)>10*%eps then bugmes();quit;end +if Err(Es1-Es)>10*%eps then bugmes();quit;end +// Ordered 'c' +dim=schur(A,E,'c'); +if dim<>50 then bugmes();quit;end +[Z,dim]=schur(A,E,'c'); +if Err(Z*Z'-eye(Z)) >200*%eps then bugmes();quit;end +[Q,Z1,dim]=schur(A,E,'c'); +if Err(Z1-Z)>10*%eps then bugmes();quit;end +if Err(Q*Q'-eye(Q)) >200*%eps then bugmes();quit;end +if dim<>50 then bugmes();quit;end +[As,Es,Z,dim]=schur(A,E,'d'); +if dim<>50 then bugmes();quit;end +if Err(Q*Q'-eye(Q)) >200*%eps then bugmes();quit;end +if Err(Z*Z'-eye(Z)) >200*%eps then bugmes();quit;end +if Err(As-Q'*A*Z) >1000*%eps then bugmes();quit;end +if Err(Es-Q'*E*Z) >1000*%eps then bugmes();quit;end +// Ordered 'd' +dim=schur(A,E,'d'); +if dim<>50 then bugmes();quit;end +[Z,dim]=schur(A,E,'d'); +if Err(Z*Z'-eye(Z)) >200*%eps then bugmes();quit;end +[Q,Z1,dim]=schur(A,E,'d'); +if Err(Z1-Z)>10*%eps then bugmes();quit;end +if Err(Q*Q'-eye(Q)) >200*%eps then bugmes();quit;end +if dim<>50 then bugmes();quit;end +[As,Es,Z,dim]=schur(A,E,'d'); +if dim<>50 then bugmes();quit;end +if Err(Q*Q'-eye(Q)) >200*%eps then bugmes();quit;end +if Err(Z*Z'-eye(Z)) >200*%eps then bugmes();quit;end +if Err(As-Q'*A*Z) >1000*%eps then bugmes();quit;end +if Err(Es-Q'*E*Z) >1000*%eps then bugmes();quit;end +//ordered sel +clear sel +function t=sel(Alpha,Beta),t=imag(Alpha)>0 ,endfunction +dim=schur(A,E,sel); +if dim<>32 then bugmes();quit;end +[Z,dim]=schur(A,E,sel); +if Err(Z*Z'-eye(Z)) >200*%eps then bugmes();quit;end +[Q,Z1,dim]=schur(A,E,sel); +if Err(Z1-Z)>10*%eps then bugmes();quit;end +if Err(Q*Q'-eye(Q)) >200*%eps then bugmes();quit;end +if dim<>32 then bugmes();quit;end +[As,Es,Z,dim]=schur(A,E,sel); +if dim<>32 then bugmes();quit;end +if Err(Q*Q'-eye(Q)) >200*%eps then bugmes();quit;end +if Err(Z*Z'-eye(Z)) >200*%eps then bugmes();quit;end +if Err(As-Q'*A*Z) >1000*%eps then bugmes();quit;end +if Err(Es-Q'*E*Z) >1000*%eps then bugmes();quit;end diff --git a/modules/linear_algebra/tests/unit_tests/schur.tst b/modules/linear_algebra/tests/unit_tests/schur.tst new file mode 100755 index 000000000..1e3fc341b --- /dev/null +++ b/modules/linear_algebra/tests/unit_tests/schur.tst @@ -0,0 +1,493 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) ????-2008 - INRIA Michael Baudin +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +function r=Err(x) + r=norm(x,1) +endfunction +rand('normal') + +//define tools +function A=testmat1(a,n) + //eigen values are given by a dilation of nth roots of 1 + A=diag(a*ones(1,n-1),1)+diag((1/a)*ones(1,n-1),-1) + A(1,n)=1/a;A(n,1)=a +endfunction + +//========================================================================== +//============================== schur ============================== +//========================================================================== +clear sel +function t=sel(R),t=real(R)<0 ,endfunction +//Empty matrix +A=[]; +if schur(A)<>[] then pause,end +if schur(A,'real')<>[] then pause,end +if schur(A,'complex')<>[] then pause,end + +if schur(A,'c')<>[] then pause,end +if schur(A,'d')<>[] then pause,end +if schur(A,sel)<>[] then pause,end + +[U,S]=schur(A); +if U<>[]|S<>[] then pause,end +[U,S]=schur(A,'real'); +if U<>[]|S<>[] then pause,end +[U,S]=schur(A,'complex'); +if U<>[]|S<>[] then pause,end + + + +[U,N]=schur(A,'c'); +if U<>[]|N<>0 then pause,end +[U,N]=schur(A,'d'); +if U<>[]|N<>0 then pause,end +[U,N]=schur(A,sel); +if U<>[]|N<>0 then pause,end + +[U,N,S]=schur(A,'c'); +if U<>[]|N<>0|S<>[] then pause,end +[U,N,S]=schur(A,'d'); +if U<>[]|N<>0|S<>[] then pause,end +[U,N,S]=schur(A,sel); +if U<>[]|N<>0|S<>[] then pause,end + +//Rectangular matrix +if execstr('schur(rand(2,3))','errcatch')==0 then pause,end +if execstr('[U,S]=schur(rand(2,3))','errcatch')==0 then pause,end + +if execstr('schur(rand(2,3)+%i*eye())','errcatch')==0 then pause,end +if execstr('[U,S]=schur(rand(2,3)+%i*eye())','errcatch')==0 then pause,end + +//Small dimension +A=testmat1(3,5);Ac=testmat1(3+%i,5); +//Real +[U,S]=schur(A); +if Err(triu(S,-1)-S)>%eps then pause,end +if Err(U*S*U'-A)>200*%eps then pause,end +if Err(schur(A)-S) >%eps then pause,end + +[U,S]=schur(A,'real'); +if Err(triu(S,-1)-S)>%eps then pause,end +if Err(U*S*U'-A)>200*%eps then pause,end +if Err(schur(A)-S) >%eps then pause,end + +[U,S]=schur(A,'complex'); +if Err(triu(S)-S)>%eps then pause,end +if Err(U*S*U'-A)>200*%eps then pause,end +if Err(schur(A,'complex')-S) >%eps then pause,end + +[U,n]=schur(A,'c');S=U'*A*U; +if n<>2 then pause,end +if or(real(spec(S(1:n,1:n)))>=0) then pause,end +if or(real(spec(S(n+1:$,n+1:$)))<0) then pause,end + +[U,n]=schur(A,'d');S=U'*A*U; +if n<>0 then pause,end +if or(abs(spec(S(n+1:$,n+1:$)))<1) then pause,end + +[U,n]=schur(A,sel);S=U'*A*U; +if n<>2 then pause,end +if or(real(spec(S(1:n,1:n)))>=0) then pause,end +if or(real(spec(S(n+1:$,n+1:$)))<0) then pause,end + + +//Complex +[U,S]=schur(Ac); +if Err(triu(S,-1)-S)>%eps then pause,end +if Err(U*S*U'-Ac)>200*%eps then pause,end +if Err(schur(Ac)-S) >%eps then pause,end + +[U,S]=schur(Ac,'complex'); +if Err(triu(S,-1)-S)>%eps then pause,end +if Err(U*S*U'-Ac)>200*%eps then pause,end +if Err(schur(Ac)-S) >%eps then pause,end + + +[U,n]=schur(Ac,'c');S=U'*Ac*U; +if n<>3 then pause,end +if or(real(spec(S(1:n,1:n)))>=0) then pause,end +if or(real(spec(S(n+1:$,n+1:$)))<0) then pause,end + +[U,n]=schur(Ac,'d');S=U'*A*U; +if n<>0 then pause,end +if or(abs(spec(S(n+1:$,n+1:$)))<1) then pause,end + +[U,n]=schur(Ac,sel);S=U'*Ac*U; +if n<>3 then pause,end +if or(real(spec(S(1:n,1:n)))>=0) then pause,end +if or(real(spec(S(n+1:$,n+1:$)))<0) then pause,end + + +//Large dimension +A=testmat1(3,50);Ac=testmat1(3+%i,50); +//Real +[U,S]=schur(A); +if Err(triu(S,-1)-S)>%eps then pause,end +if Err(U*S*U'-A)>1000*%eps then pause,end +if Err(schur(A)-S) >%eps then pause,end + +[U,S]=schur(A,'real'); +if Err(triu(S,-1)-S)>%eps then pause,end +if Err(U*S*U'-A)>1000*%eps then pause,end +if Err(schur(A)-S) >%eps then pause,end + +[U,S]=schur(A,'complex'); +if Err(triu(S)-S)>%eps then pause,end +if Err(U*S*U'-A)>1000*%eps then pause,end +if Err(schur(A,'complex')-S) >%eps then pause,end + + +[U,n]=schur(A,'c');S=U'*A*U; +if n<>25 then pause,end +if or(real(spec(S(1:n,1:n)))>=0) then pause,end +if or(real(spec(S(n+1:$,n+1:$)))<0) then pause,end + +[U,n]=schur(A,'d');S=U'*A*U; +if n<>0 then pause,end +if or(abs(spec(S(n+1:$,n+1:$)))<1) then pause,end + +[U,n]=schur(A,sel);S=U'*A*U; +if n<>25 then pause,end +if or(real(spec(S(1:n,1:n)))>=0) then pause,end +if or(real(spec(S(n+1:$,n+1:$)))<0) then pause,end + +//Complex +[U,S]=schur(Ac); +if Err(triu(S,-1)-S)>%eps then pause,end +if Err(U*S*U'-Ac)>1000*%eps then pause,end +if Err(schur(Ac)-S) >%eps then pause,end + +[U,S]=schur(Ac,'complex'); +if Err(triu(S,-1)-S)>%eps then pause,end +if Err(U*S*U'-Ac)>1000*%eps then pause,end +if Err(schur(Ac)-S) >%eps then pause,end + +[U,n]=schur(Ac,'c');S=U'*Ac*U; +if n<>25 then pause,end +if or(real(spec(S(1:n,1:n)))>=0) then pause,end +if or(real(spec(S(n+1:$,n+1:$)))<0) then pause,end + +[U,n]=schur(Ac,'d');S=U'*Ac*U; +if n<>0 then pause,end +if or(abs(spec(S(n+1:$,n+1:$)))<1) then pause,end + +[U,n]=schur(Ac,sel);S=U'*Ac*U; +if n<>25 then pause,end +if or(real(spec(S(1:n,1:n)))>=0) then pause,end +if or(real(spec(S(n+1:$,n+1:$)))<0) then pause,end +//========================================================================== +//============================== schur part II ======================== +//========================================================================== +//Empty matrix +[As,Es]=schur([],[]); +if As<>[]|Es<>[] then pause,end + +[As,dim]=schur([],[],'c'); +if As<>[]|dim<>0 then pause,end +[As,dim]=schur([],[],'d'); +if As<>[]|dim<>0 then pause,end +[As,dim]=schur([],[],sel); +if As<>[]|dim<>0 then pause,end + +[As,Es,Q,Z]=schur([],[]); +if As<>[]|Es<>[]|Q<>[]|Z<>[] then pause,end + +[As,Es,dim]=schur([],[],'c'); +if As<>[]|Es<>[]|dim<>0 then pause,end +[As,Es,dim]=schur([],[],'d'); +if As<>[]|Es<>[]|dim<>0 then pause,end +[As,Es,dim]=schur([],[],sel); +if As<>[]|Es<>[]|dim<>0 then pause,end + +[Z,dim]=schur([],[],'c'); +if Z<>[]|dim<>0 then pause,end +[Z,dim]=schur([],[],'d'); +if Z<>[]|dim<>0 then pause,end +[Z,dim]=schur([],[],sel); +if Z<>[]|dim<>0 then pause,end + + +//Rectangular matrix +if execstr('[As,Es]=schur(rand(2,3),rand(2,3))','errcatch')==0 then pause,end +if execstr('[As,Es,Q,Z]=schur(rand(2,3),rand(2,3))','errcatch')==0 then pause,end +if execstr('[As,Es,dim]=schur(rand(2,3),rand(2,3),''c'')','errcatch')==0 then pause,end +if execstr('[Z,dim]=schur(rand(2,3),rand(2,3),sel)','errcatch')==0 then pause,end + +//Small dimension +//----Real------------ +A=testmat1(1,5);E=testmat1(-2,5) ; +[As,Es,Q,Z]=schur(A,E); +if Err(Q*Q'-eye(Q)) >200*%eps then pause,end +if Err(Z*Z'-eye(Z)) >200*%eps then pause,end +if Err(As-Q'*A*Z) >200*%eps then pause,end +if Err(Es-Q'*E*Z) >200*%eps then pause,end + +[As1,Es1]=schur(A,E); +if Err(As1-As)>10*%eps then pause,end +if Err(Es1-Es)>10*%eps then pause,end + +// Ordered 'c' +dim=schur(A,E,'c'); +if dim<>5 then pause,end +[Z,dim]=schur(A,E,'c'); +if Err(Z*Z'-eye(Z)) >200*%eps then pause,end + +[Q,Z1,dim]=schur(A,E,'c'); +if Err(Z1-Z)>10*%eps then pause,end +if Err(Q*Q'-eye(Q)) >200*%eps then pause,end +if dim<>5 then pause,end + +[As,Es,Z,dim]=schur(A,E,'d'); +if dim<>5 then pause,end +if Err(Q*Q'-eye(Q)) >200*%eps then pause,end +if Err(Z*Z'-eye(Z)) >200*%eps then pause,end +if Err(As-Q'*A*Z) >200*%eps then pause,end +if Err(Es-Q'*E*Z) >200*%eps then pause,end +// Ordered 'd' +dim=schur(A,E,'d'); +if dim<>5 then pause,end +[Z,dim]=schur(A,E,'d'); +if Err(Z*Z'-eye(Z)) >200*%eps then pause,end + +[Q,Z1,dim]=schur(A,E,'d'); +if Err(Z1-Z)>10*%eps then pause,end +if Err(Q*Q'-eye(Q)) >200*%eps then pause,end +if dim<>5 then pause,end + +[As,Es,Z,dim]=schur(A,E,'d'); +if dim<>5 then pause,end +if Err(Q*Q'-eye(Q)) >200*%eps then pause,end +if Err(Z*Z'-eye(Z)) >200*%eps then pause,end +if Err(As-Q'*A*Z) >200*%eps then pause,end +if Err(Es-Q'*E*Z) >200*%eps then pause,end + +//ordered sel +clear sel +function t=sel(Alpha,Beta),t=real(Alpha)>-0.2*real(Beta) ,endfunction + +dim=schur(A,E,sel); +if dim<>2 then pause,end +[Z,dim]=schur(A,E,sel); +if Err(Z*Z'-eye(Z)) >200*%eps then pause,end + +[Q,Z1,dim]=schur(A,E,sel); +if Err(Z1-Z)>10*%eps then pause,end +if Err(Q*Q'-eye(Q)) >200*%eps then pause,end +if dim<>2 then pause,end + +[As,Es,Z,dim]=schur(A,E,sel); +if dim<>2 then pause,end +if Err(Q*Q'-eye(Q)) >200*%eps then pause,end +if Err(Z*Z'-eye(Z)) >200*%eps then pause,end +if Err(As-Q'*A*Z) >200*%eps then pause,end +if Err(Es-Q'*E*Z) >200*%eps then pause,end +//----Complex------------ +A=testmat1(1+%i,5);E=testmat1(-2-3*%i,5) ; +[As,Es,Q,Z]=schur(A,E); +if Err(Q*Q'-eye(Q)) >200*%eps then pause,end +if Err(Z*Z'-eye(Z)) >200*%eps then pause,end +if Err(As-Q'*A*Z) >200*%eps then pause,end +if Err(Es-Q'*E*Z) >200*%eps then pause,end + +[As1,Es1]=schur(A,E); +if Err(As1-As)>10*%eps then pause,end +if Err(Es1-Es)>10*%eps then pause,end + +// Ordered 'c' +dim=schur(A,E,'c'); +if dim<>5 then pause,end +[Z,dim]=schur(A,E,'c'); +if Err(Z*Z'-eye(Z)) >200*%eps then pause,end + +[Q,Z1,dim]=schur(A,E,'c'); +if Err(Z1-Z)>10*%eps then pause,end +if Err(Q*Q'-eye(Q)) >200*%eps then pause,end +if dim<>5 then pause,end + +[As,Es,Z,dim]=schur(A,E,'d'); +if dim<>5 then pause,end +if Err(Q*Q'-eye(Q)) >200*%eps then pause,end +if Err(Z*Z'-eye(Z)) >200*%eps then pause,end +if Err(As-Q'*A*Z) >200*%eps then pause,end +if Err(Es-Q'*E*Z) >200*%eps then pause,end +// Ordered 'd' +dim=schur(A,E,'d'); +if dim<>5 then pause,end +[Z,dim]=schur(A,E,'d'); +if Err(Z*Z'-eye(Z)) >200*%eps then pause,end + +[Q,Z1,dim]=schur(A,E,'d'); +if Err(Z1-Z)>10*%eps then pause,end +if Err(Q*Q'-eye(Q)) >200*%eps then pause,end +if dim<>5 then pause,end + +[As,Es,Z,dim]=schur(A,E,'d'); +if dim<>5 then pause,end +if Err(Q*Q'-eye(Q)) >200*%eps then pause,end +if Err(Z*Z'-eye(Z)) >200*%eps then pause,end +if Err(As-Q'*A*Z) >200*%eps then pause,end +if Err(Es-Q'*E*Z) >200*%eps then pause,end + +//ordered sel +clear sel +function t=sel(Alpha,Beta),t=imag(Alpha)>0 ,endfunction + +dim=schur(A,E,sel); +if dim<>3 then pause,end +[Z,dim]=schur(A,E,sel); +if Err(Z*Z'-eye(Z)) >200*%eps then pause,end + +[Q,Z1,dim]=schur(A,E,sel); +if Err(Z1-Z)>10*%eps then pause,end +if Err(Q*Q'-eye(Q)) >200*%eps then pause,end +if dim<>3 then pause,end + +[As,Es,Z,dim]=schur(A,E,sel); +if dim<>3 then pause,end +if Err(Q*Q'-eye(Q)) >200*%eps then pause,end +if Err(Z*Z'-eye(Z)) >200*%eps then pause,end +if Err(As-Q'*A*Z) >200*%eps then pause,end +if Err(Es-Q'*E*Z) >200*%eps then pause,end + +//Large dimension + +//----Real------------ +A=testmat1(1,50);E=testmat1(-2,50) ; +[As,Es,Q,Z]=schur(A,E); +if Err(Q*Q'-eye(Q)) >200*%eps then pause,end +if Err(Z*Z'-eye(Z)) >200*%eps then pause,end +if Err(As-Q'*A*Z) >200*%eps then pause,end +if Err(Es-Q'*E*Z) >200*%eps then pause,end + +[As1,Es1]=schur(A,E); +if Err(As1-As)>10*%eps then pause,end +if Err(Es1-Es)>10*%eps then pause,end + +// Ordered 'c' +dim=schur(A,E,'c'); +if dim<>50 then pause,end +[Z,dim]=schur(A,E,'c'); +if Err(Z*Z'-eye(Z)) >200*%eps then pause,end + +[Q,Z1,dim]=schur(A,E,'c'); +if Err(Z1-Z)>10*%eps then pause,end +if Err(Q*Q'-eye(Q)) >200*%eps then pause,end +if dim<>50 then pause,end + +[As,Es,Z,dim]=schur(A,E,'d'); +if dim<>50 then pause,end +if Err(Q*Q'-eye(Q)) >200*%eps then pause,end +if Err(Z*Z'-eye(Z)) >200*%eps then pause,end +if Err(As-Q'*A*Z) >200*%eps then pause,end +if Err(Es-Q'*E*Z) >200*%eps then pause,end +// Ordered 'd' +dim=schur(A,E,'d'); +if dim<>50 then pause,end +[Z,dim]=schur(A,E,'d'); +if Err(Z*Z'-eye(Z)) >200*%eps then pause,end + +[Q,Z1,dim]=schur(A,E,'d'); +if Err(Z1-Z)>10*%eps then pause,end +if Err(Q*Q'-eye(Q)) >200*%eps then pause,end +if dim<>50 then pause,end + +[As,Es,Z,dim]=schur(A,E,'d'); +if dim<>50 then pause,end +if Err(Q*Q'-eye(Q)) >200*%eps then pause,end +if Err(Z*Z'-eye(Z)) >200*%eps then pause,end +if Err(As-Q'*A*Z) >200*%eps then pause,end +if Err(Es-Q'*E*Z) >200*%eps then pause,end + +//ordered sel +clear sel +function t=sel(Alpha,Beta) + t=real(Alpha)>-0.2*real(Beta) +endfunction + +dim=schur(A,E,sel); // plante ici DGGES LAPACK 3.1 +if dim<>12 then pause,end +[Z,dim]=schur(A,E,sel); +if Err(Z*Z'-eye(Z)) >200*%eps then pause,end + +[Q,Z1,dim]=schur(A,E,sel); +if Err(Z1-Z)>10*%eps then pause,end +if Err(Q*Q'-eye(Q)) >200*%eps then pause,end +if dim<>12 then pause,end + +[As,Es,Z,dim]=schur(A,E,sel); +if dim<>12 then pause,end +if Err(Q*Q'-eye(Q)) >200*%eps then pause,end +if Err(Z*Z'-eye(Z)) >200*%eps then pause,end +if Err(As-Q'*A*Z) >200*%eps then pause,end +if Err(Es-Q'*E*Z) >200*%eps then pause,end +//----Complex------------ +A=testmat1(1+%i,50);E=testmat1(-2-3*%i,50) ; +[As,Es,Q,Z]=schur(A,E); +if Err(Q*Q'-eye(Q)) >200*%eps then pause,end +if Err(Z*Z'-eye(Z)) >200*%eps then pause,end +if Err(As-Q'*A*Z) >1000*%eps then pause,end +if Err(Es-Q'*E*Z) >1000*%eps then pause,end + +[As1,Es1]=schur(A,E); +if Err(As1-As)>10*%eps then pause,end +if Err(Es1-Es)>10*%eps then pause,end + +// Ordered 'c' +dim=schur(A,E,'c'); +if dim<>50 then pause,end +[Z,dim]=schur(A,E,'c'); +if Err(Z*Z'-eye(Z)) >200*%eps then pause,end + +[Q,Z1,dim]=schur(A,E,'c'); +if Err(Z1-Z)>10*%eps then pause,end +if Err(Q*Q'-eye(Q)) >200*%eps then pause,end +if dim<>50 then pause,end + +[As,Es,Z,dim]=schur(A,E,'d'); +if dim<>50 then pause,end +if Err(Q*Q'-eye(Q)) >200*%eps then pause,end +if Err(Z*Z'-eye(Z)) >200*%eps then pause,end +if Err(As-Q'*A*Z) >1000*%eps then pause,end +if Err(Es-Q'*E*Z) >1000*%eps then pause,end +// Ordered 'd' +dim=schur(A,E,'d'); +if dim<>50 then pause,end +[Z,dim]=schur(A,E,'d'); +if Err(Z*Z'-eye(Z)) >200*%eps then pause,end + +[Q,Z1,dim]=schur(A,E,'d'); +if Err(Z1-Z)>10*%eps then pause,end +if Err(Q*Q'-eye(Q)) >200*%eps then pause,end +if dim<>50 then pause,end + +[As,Es,Z,dim]=schur(A,E,'d'); +if dim<>50 then pause,end +if Err(Q*Q'-eye(Q)) >200*%eps then pause,end +if Err(Z*Z'-eye(Z)) >200*%eps then pause,end +if Err(As-Q'*A*Z) >1000*%eps then pause,end +if Err(Es-Q'*E*Z) >1000*%eps then pause,end + +//ordered sel +clear sel +function t=sel(Alpha,Beta),t=imag(Alpha)>0 ,endfunction + +dim=schur(A,E,sel); +if dim<>32 then pause,end +[Z,dim]=schur(A,E,sel); +if Err(Z*Z'-eye(Z)) >200*%eps then pause,end + +[Q,Z1,dim]=schur(A,E,sel); +if Err(Z1-Z)>10*%eps then pause,end +if Err(Q*Q'-eye(Q)) >200*%eps then pause,end +if dim<>32 then pause,end + +[As,Es,Z,dim]=schur(A,E,sel); +if dim<>32 then pause,end +if Err(Q*Q'-eye(Q)) >200*%eps then pause,end +if Err(Z*Z'-eye(Z)) >200*%eps then pause,end +if Err(As-Q'*A*Z) >1000*%eps then pause,end +if Err(Es-Q'*E*Z) >1000*%eps then pause,end + diff --git a/modules/linear_algebra/tests/unit_tests/spec.dia.ref b/modules/linear_algebra/tests/unit_tests/spec.dia.ref new file mode 100755 index 000000000..2626a0fab --- /dev/null +++ b/modules/linear_algebra/tests/unit_tests/spec.dia.ref @@ -0,0 +1,132 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) ????-2008 - INRIA Michael Baudin +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// <-- CLI SHELL MODE --> +// easy and simple test +A=[0,2,0,1;2,2,3,2;4,-3,0,1.;6,1,-6,-5]; +refA=[ 4.1774842;-4.8201083;-1.1786879+%i*3.1987051;-1.1786879-%i*3.1987051]; +assert_checkalmostequal(spec(A),refA, 10^-7); +//define tools +function A=testmat1(a,n) + //eigen values are given by a dilation of nth roots of 1 + A=diag(a*ones(1,n-1),1)+diag((1/a)*ones(1,n-1),-1) + A(1,n)=1/a; + A(n,1)=a +endfunction +function r=Err(x) + r=norm(x,1) +endfunction +rand('normal') +// +// spec.tst -- +// Test spec with 1 RHS and one or several LHS. +// +function r=Checktestmat1(a,n) + A=testmat1(a,n); + S=spec(A); + SR=real(S); + SI=imag(S); + dt=2*%i*%pi/n; + Z=exp(dt*(1:n)'); + ZR=real(Z*((1+a*a')/a)); + ZI=-imag(Z*((a*a'-1)/a)); + r=max(norm(gsort(SR)-gsort(ZR)),norm(gsort(SI)-gsort(ZI))) +endfunction +function A=testmat2(a,n) + //eigen values are given by a dilation of nth roots of 1 + A=testmat1(a,n); + A=A+A' +endfunction +function r=Checktestmat2(a,n) + A=testmat2(a,n); + S=spec(A); + SR=real(S); + SI=imag(S); + dt=2*%i*%pi/n; + Z=exp(dt*(1:n)'); + ZR=2*real(Z*((1+a*a')/a)); + ZI=0*ZR; + r=max(norm(gsort(SR)-gsort(ZR)),norm(gsort(SI)-gsort(ZI))) +endfunction +// Empty matrix +A=[]; +B=[]; +// 1. One RHS, one LHS +S=spec(A); +if S<>[] then bugmes();quit;end +// 2. One RHS, two LHS +[al,be]=spec(A); +if al<>[] then bugmes();quit;end +if be<>[] then bugmes();quit;end +//Matrix with Inf or Nan (test de la detection d'erreur) +// 1. Real +// 1.1 Not symetric +if execstr('spec([%inf 1;2 3])','errcatch')==0 then bugmes();quit;end +if execstr('spec([1 %nan;2 3])','errcatch')==0 then bugmes();quit;end +// 1.2 Symetric +if execstr('spec([%inf 1;1 3])','errcatch')==0 then bugmes();quit;end +// 2. Complex +// 2.1 Not symetric +if execstr('spec([%inf %i;2 3])','errcatch')==0 then bugmes();quit;end +if execstr('spec([%i %i;%nan 3])','errcatch')==0 then bugmes();quit;end +// 2.2 Symetric +if execstr('spec([%inf %i;-%i 3])','errcatch')==0 then bugmes();quit;end +//Small dimension +//--------------- +//Real Case +//Unsymetric, 2 LHS +if Checktestmat1(3,5)>200*%eps then bugmes();quit;end +[U,S]=spec(testmat1(3,5)); +if Err(U*S/U-testmat1(3,5))>200*%eps then bugmes();quit;end +//Symmetric, 2 LHS +if Checktestmat2(3,5)>200*%eps then bugmes();quit;end +[U,S]=spec(testmat2(3,5)); +if Err(U*S/U-testmat2(3,5))>200*%eps then bugmes();quit;end +//Unsymetric, 1 LHS +Scomputed = spec([2,1;3,4]); +Sexpected = [1;5]; +if Err(Scomputed - Sexpected)>200*%eps then bugmes();quit;end +//Symmetric, 1 LHS +Scomputed=spec([2,1;1,2]); +Sexpected = [1;3]; +if Err(Scomputed - Sexpected)>200*%eps then bugmes();quit;end +//Complex Case +//Unsymetric +if Checktestmat1(3+2*%i,5)>200*%eps then bugmes();quit;end +[U,S]=spec(testmat1(3+2*%i,5)); +if Err(U*S/U-testmat1(3+2*%i,5))>200*%eps then bugmes();quit;end +//Symmetric +if Checktestmat2(3+2*%i,5)>200*%eps then bugmes();quit;end +[U,S]=spec(testmat2(3+2*%i,5)); +if Err(U*S/U-testmat2(3+2*%i,5))>200*%eps then bugmes();quit;end +//Unsymetric, 1 LHS +Scomputed = spec([2*%i,1*%i;3*%i,4*%i]); +Sexpected = [%i;5*%i]; +if Err(Scomputed - Sexpected)>200*%eps then bugmes();quit;end +//Symmetric, 1 LHS +Scomputed=spec([2,%i;-%i,2]); +Sexpected = [1;3]; +if Err(Scomputed - Sexpected)>200*%eps then bugmes();quit;end +//Large dimension +//--------------- +//Real Case +//Unsymetric +if Checktestmat1(3,50)>1000*%eps then bugmes();quit;end +[U,S]=spec(testmat1(3,50)); +if Err(U*S/U-testmat1(3,50))>1000*%eps then bugmes();quit;end +//Symmetric +if Checktestmat2(3,50)>1000*%eps then bugmes();quit;end +[U,S]=spec(testmat2(3,50)); +if Err(U*S/U-testmat2(3,50))>1000*%eps then bugmes();quit;end +//Complex Case +//Unsymetric +if Checktestmat1(3+2*%i,50)>1000*%eps then bugmes();quit;end +[U,S]=spec(testmat1(3+2*%i,50)); +if Err(U*S/U-testmat1(3+2*%i,50))>1000*%eps then bugmes();quit;end +//Symmetric +if Checktestmat2(3+2*%i,50)>1000*%eps then bugmes();quit;end +[U,S]=spec(testmat2(3+2*%i,50)); +if Err(U*S/U-testmat2(3+2*%i,50))>10000*%eps then bugmes();quit;end diff --git a/modules/linear_algebra/tests/unit_tests/spec.tst b/modules/linear_algebra/tests/unit_tests/spec.tst new file mode 100755 index 000000000..fbd54e228 --- /dev/null +++ b/modules/linear_algebra/tests/unit_tests/spec.tst @@ -0,0 +1,153 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) ????-2008 - INRIA Michael Baudin +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= + +// <-- CLI SHELL MODE --> + +// easy and simple test + +A=[0,2,0,1;2,2,3,2;4,-3,0,1.;6,1,-6,-5]; +refA=[ 4.1774842;-4.8201083;-1.1786879+%i*3.1987051;-1.1786879-%i*3.1987051]; +assert_checkalmostequal(spec(A),refA, 10^-7); + + +//define tools +function A=testmat1(a,n) + //eigen values are given by a dilation of nth roots of 1 + A=diag(a*ones(1,n-1),1)+diag((1/a)*ones(1,n-1),-1) + A(1,n)=1/a; + A(n,1)=a +endfunction +function r=Err(x) + r=norm(x,1) +endfunction +rand('normal') + +// +// spec.tst -- +// Test spec with 1 RHS and one or several LHS. +// + +function r=Checktestmat1(a,n) + A=testmat1(a,n); + S=spec(A); + SR=real(S); + SI=imag(S); + dt=2*%i*%pi/n; + Z=exp(dt*(1:n)'); + ZR=real(Z*((1+a*a')/a)); + ZI=-imag(Z*((a*a'-1)/a)); + r=max(norm(gsort(SR)-gsort(ZR)),norm(gsort(SI)-gsort(ZI))) +endfunction +function A=testmat2(a,n) + //eigen values are given by a dilation of nth roots of 1 + A=testmat1(a,n); + A=A+A' +endfunction +function r=Checktestmat2(a,n) + A=testmat2(a,n); + S=spec(A); + SR=real(S); + SI=imag(S); + dt=2*%i*%pi/n; + Z=exp(dt*(1:n)'); + ZR=2*real(Z*((1+a*a')/a)); + ZI=0*ZR; + r=max(norm(gsort(SR)-gsort(ZR)),norm(gsort(SI)-gsort(ZI))) +endfunction + + + +// Empty matrix +A=[]; +B=[]; +// 1. One RHS, one LHS +S=spec(A); +if S<>[] then pause,end +// 2. One RHS, two LHS +[al,be]=spec(A); +if al<>[] then pause,end +if be<>[] then pause,end + +//Matrix with Inf or Nan (test de la detection d'erreur) +// 1. Real +// 1.1 Not symetric +if execstr('spec([%inf 1;2 3])','errcatch')==0 then pause,end +if execstr('spec([1 %nan;2 3])','errcatch')==0 then pause,end +// 1.2 Symetric +if execstr('spec([%inf 1;1 3])','errcatch')==0 then pause,end +// 2. Complex +// 2.1 Not symetric +if execstr('spec([%inf %i;2 3])','errcatch')==0 then pause,end +if execstr('spec([%i %i;%nan 3])','errcatch')==0 then pause,end +// 2.2 Symetric +if execstr('spec([%inf %i;-%i 3])','errcatch')==0 then pause,end + +//Small dimension +//--------------- +//Real Case +//Unsymetric, 2 LHS +if Checktestmat1(3,5)>200*%eps then pause,end +[U,S]=spec(testmat1(3,5)); +if Err(U*S/U-testmat1(3,5))>200*%eps then pause,end +//Symmetric, 2 LHS +if Checktestmat2(3,5)>200*%eps then pause,end +[U,S]=spec(testmat2(3,5)); +if Err(U*S/U-testmat2(3,5))>200*%eps then pause,end +//Unsymetric, 1 LHS +Scomputed = spec([2,1;3,4]); +Sexpected = [1;5]; +if Err(Scomputed - Sexpected)>200*%eps then pause,end +//Symmetric, 1 LHS +Scomputed=spec([2,1;1,2]); +Sexpected = [1;3]; +if Err(Scomputed - Sexpected)>200*%eps then pause,end + +//Complex Case +//Unsymetric +if Checktestmat1(3+2*%i,5)>200*%eps then pause,end +[U,S]=spec(testmat1(3+2*%i,5)); +if Err(U*S/U-testmat1(3+2*%i,5))>200*%eps then pause,end + +//Symmetric +if Checktestmat2(3+2*%i,5)>200*%eps then pause,end +[U,S]=spec(testmat2(3+2*%i,5)); +if Err(U*S/U-testmat2(3+2*%i,5))>200*%eps then pause,end + +//Unsymetric, 1 LHS +Scomputed = spec([2*%i,1*%i;3*%i,4*%i]); +Sexpected = [%i;5*%i]; +if Err(Scomputed - Sexpected)>200*%eps then pause,end +//Symmetric, 1 LHS +Scomputed=spec([2,%i;-%i,2]); +Sexpected = [1;3]; +if Err(Scomputed - Sexpected)>200*%eps then pause,end + + +//Large dimension +//--------------- +//Real Case +//Unsymetric +if Checktestmat1(3,50)>1000*%eps then pause,end +[U,S]=spec(testmat1(3,50)); +if Err(U*S/U-testmat1(3,50))>1000*%eps then pause,end + +//Symmetric +if Checktestmat2(3,50)>1000*%eps then pause,end +[U,S]=spec(testmat2(3,50)); +if Err(U*S/U-testmat2(3,50))>1000*%eps then pause,end + +//Complex Case +//Unsymetric +if Checktestmat1(3+2*%i,50)>1000*%eps then pause,end +[U,S]=spec(testmat1(3+2*%i,50)); +if Err(U*S/U-testmat1(3+2*%i,50))>1000*%eps then pause,end + +//Symmetric +if Checktestmat2(3+2*%i,50)>1000*%eps then pause,end +[U,S]=spec(testmat2(3+2*%i,50)); +if Err(U*S/U-testmat2(3+2*%i,50))>10000*%eps then pause,end + diff --git a/modules/linear_algebra/tests/unit_tests/squeeze.dia.ref b/modules/linear_algebra/tests/unit_tests/squeeze.dia.ref new file mode 100755 index 000000000..d72bb1da2 --- /dev/null +++ b/modules/linear_algebra/tests/unit_tests/squeeze.dia.ref @@ -0,0 +1,31 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2011 - INRIA - Serge.Steer@inria.fr +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// +// <-- CLI SHELL MODE --> +C=cell(1,6);C.entries=list(1,%s+1,[3,4],[%f %t],int32(8),-24); +S=[];S.a=1;S(6).a=33; +data=list(1:6,string(1:6),(1:6)+%s,(1:6)>2, int32(1:6),C,S); +//check with hypermatrices and hyper cells +for v=data + a=matrix(v,[1 2 3]); + if or(squeeze(a)<>matrix(v,[2 3])) then bugmes();quit;end + a=matrix(v,[1 2 1 3]); + if or(squeeze(a)<>matrix(v,[2 3])) then bugmes();quit;end +end +//check with matrices and 2D cells the function should return the input +for v=data + a=matrix(v,[2 3]); + if or(squeeze(a)<>matrix(v,[2 3])) then bugmes();quit;end +end +//scalar case +a=33; +if or(size(squeeze(a))<>[1 1]) then bugmes();quit;end +c=cell(1,1);c(1).entries=1:3; +if or(size(squeeze(c))<>[1 1]) then bugmes();quit;end +//empty matrix +if or(size(squeeze([]))<>[0 0]) then bugmes();quit;end +if or(size(squeeze(cell()))<>[0 0]) then bugmes();quit;end diff --git a/modules/linear_algebra/tests/unit_tests/squeeze.tst b/modules/linear_algebra/tests/unit_tests/squeeze.tst new file mode 100755 index 000000000..59fc65596 --- /dev/null +++ b/modules/linear_algebra/tests/unit_tests/squeeze.tst @@ -0,0 +1,36 @@ +// ============================================================================= +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2011 - INRIA - Serge.Steer@inria.fr +// +// This file is distributed under the same license as the Scilab package. +// ============================================================================= +// +// <-- CLI SHELL MODE --> + +C=cell(1,6);C.entries=list(1,%s+1,[3,4],[%f %t],int32(8),-24); +S=[];S.a=1;S(6).a=33; + +data=list(1:6,string(1:6),(1:6)+%s,(1:6)>2, int32(1:6),C,S); +//check with hypermatrices and hyper cells +for v=data + a=matrix(v,[1 2 3]); + if or(squeeze(a)<>matrix(v,[2 3])) then pause,end + + a=matrix(v,[1 2 1 3]); + if or(squeeze(a)<>matrix(v,[2 3])) then pause,end +end +//check with matrices and 2D cells the function should return the input +for v=data + a=matrix(v,[2 3]); + if or(squeeze(a)<>matrix(v,[2 3])) then pause,end +end + +//scalar case +a=33; +if or(size(squeeze(a))<>[1 1]) then pause,end +c=cell(1,1);c(1).entries=1:3; +if or(size(squeeze(c))<>[1 1]) then pause,end +//empty matrix +if or(size(squeeze([]))<>[0 0]) then pause,end +if or(size(squeeze(cell()))<>[0 0]) then pause,end + diff --git a/modules/linear_algebra/tests/unit_tests/svd.dia.ref b/modules/linear_algebra/tests/unit_tests/svd.dia.ref new file mode 100755 index 000000000..e323097ff --- /dev/null +++ b/modules/linear_algebra/tests/unit_tests/svd.dia.ref @@ -0,0 +1,293 @@ +// ============================================================================= +// 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. +// ============================================================================= +function r=Err(x) + r=norm(x,1) +endfunction +rand('normal') +//========================================================================== +//============================== svd ============================== +//========================================================================== +//Empty matrix +A=[]; +[U,S,V]=svd(A); +if U<>[]|V<>[]|S<>[] then bugmes();quit;end +S=svd(A); +if S<>[] then bugmes();quit;end +[U,S,V]=svd(A,"e"); +if U<>[]|V<>[]|S<>[] then bugmes();quit;end +S=svd(A,"e"); +if S<>[] then bugmes();quit;end +//Matrix with inf or nan +if execstr('svd([%inf 1;2 3])','errcatch')==0 then bugmes();quit;end +if execstr('svd([1 %nan;2 3])','errcatch')==0 then bugmes();quit;end +if execstr('svd([%inf %i;2 3])','errcatch')==0 then bugmes();quit;end +if execstr('svd([%i %i;%nan 3])','errcatch')==0 then bugmes();quit;end +//Small dimension +//--------------- +A=rand(3,5); +Ac=A+%i*rand(A); +//Real Case +[U,S,V]=svd(A); +if Err(U*S*V'-A)>200*%eps then bugmes();quit;end +if Err(svd(A)-diag(S))> 200*%eps then bugmes();quit;end +[U,S,V]=svd(A,"e"); +if Err(U*S*V'-A)>200*%eps then bugmes();quit;end +A=A'; +[U,S,V]=svd(A); +if Err(U*S*V'-A)>200*%eps then bugmes();quit;end +if Err(svd(A)-diag(S))> 200*%eps then bugmes();quit;end +[U,S,V]=svd(A,"e"); +if Err(U*S*V'-A)>200*%eps then bugmes();quit;end +//Complex Case +[U,S,V]=svd(Ac); +if Err(U*S*V'-Ac)>200*%eps then bugmes();quit;end +if Err(svd(Ac)-diag(S))> 200*%eps then bugmes();quit;end +[U,S,V]=svd(Ac,"e"); +if Err(U*S*V'-Ac)>200*%eps then bugmes();quit;end +Ac=Ac'; +[U,S,V]=svd(Ac);U*S*V'-Ac; +if Err(U*S*V'-Ac)>200*%eps then bugmes();quit;end +if Err(svd(Ac)-diag(S))> 200*%eps then bugmes();quit;end +[U,S,V]=svd(Ac,"e"); +if Err(U*S*V'-Ac)>200*%eps then bugmes();quit;end +//Large dimension +//--------------- +A=rand(150,60); +Ac=A+rand(A)*%i; +//Real Case +[U,S,V]=svd(A); +if Err(U*S*V'-A)>10000*%eps then bugmes();quit;end +if Err(svd(A)-diag(S))> 10000*%eps then bugmes();quit;end +[U,S,V]=svd(A,"e"); +if Err(U*S*V'-A)>10000*%eps then bugmes();quit;end +A=A'; +[U,S,V]=svd(A); +if Err(U*S*V'-A)>10000*%eps then bugmes();quit;end +if Err(svd(A)-diag(S))> 10000*%eps then bugmes();quit;end +[U,S,V]=svd(A,"e"); +if Err(U*S*V'-A)>10000*%eps then bugmes();quit;end +//Complex Case +[U,S,V]=svd(Ac); +if Err(U*S*V'-Ac)>10000*%eps then bugmes();quit;end +if Err(svd(Ac)-diag(S))> 10000*%eps then bugmes();quit;end +[U,S,V]=svd(Ac,"e"); +if Err(U*S*V'-Ac)>10000*%eps then bugmes();quit;end +Ac=Ac'; +[U,S,V]=svd(Ac);U*S*V'-Ac; +if Err(U*S*V'-Ac)>10000*%eps then bugmes();quit;end +if Err(svd(Ac)-diag(S))> 10000*%eps then bugmes();quit;end +[U,S,V]=svd(Ac,"e"); +if Err(U*S*V'-Ac)>10000*%eps then bugmes();quit;end +//========================================================================== +//============================== svd part II ======================= +//========================================================================== +//Empty matrix +if svd([])<>[] then bugmes();quit;end +if svd([],"e")<>[] then bugmes();quit;end +[U,S]=svd([]); +if U<>[]|S<>[] then bugmes();quit;end +[U,S,V]=svd([]); +if U<>[]|S<>[]|V<>[] then bugmes();quit;end +[U,S,V,rk]=svd([]); +if U<>[]|S<>[]|V<>[]|rk<>0 then bugmes();quit;end +[U,S,V,rk]=svd([],%eps); +if U<>[]|S<>[]|V<>[]|rk<>0 then bugmes();quit;end +if execstr('[U,S,V,rk]=svd([],'"e'")','errcatch') == 0 then bugmes();quit;end +//Small dimension +//Real Case Fat +A=rand(3,5); +S=svd(A); +if or(S<0) then bugmes();quit;end +if gsort(S)<>S then bugmes();quit;end +[U,S1]=svd(A); +if Err(S-diag(S1))>200*%eps then bugmes();quit;end +if Err(U'*U-eye())>10*%eps then bugmes();quit;end +[U1,S1]=svd(A,"e"); +if Err(S-diag(S1))>200*%eps then bugmes();quit;end +if Err(U1'*U1-eye())>200*%eps then bugmes();quit;end +[U1,S1,V]=svd(A); +if Err(S-diag(S1))>200*%eps then bugmes();quit;end +if Err(U'*U-eye())>200*%eps then bugmes();quit;end +if Err(U1*S1*V'-A) >200*%eps then bugmes();quit;end +[U1,S1,V1]=svd(A,"e"); +if Err(S-diag(S1))>200*%eps then bugmes();quit;end +if Err(U-U1)>10*%eps then bugmes();quit;end +if Err(U1*S1*V1'-A) >200*%eps then bugmes();quit;end +[U1,S1,V1,rk]=svd(A); +if Err(S-diag(S1))>200*%eps then bugmes();quit;end +if Err(U-U1)>200*%eps then bugmes();quit;end +if Err(V-V1) >200*%eps then bugmes();quit;end +if rk<>3 then bugmes();quit;end +//Real Case Tall +A=rand(5,3); +S=svd(A); +if or(S<0) then bugmes();quit;end +if gsort(S)<>S then bugmes();quit;end +[U,S1]=svd(A); +if Err(S-diag(S1))>200*%eps then bugmes();quit;end +if Err(U'*U-eye())>200*%eps then bugmes();quit;end +[U1,S1]=svd(A,"e"); +if Err(S-diag(S1))>200*%eps then bugmes();quit;end +if Err(U1'*U1-eye())>200*%eps then bugmes();quit;end +[U1,S1,V]=svd(A); +if Err(S-diag(S1))>200*%eps then bugmes();quit;end +if Err(U'*U-eye())>200*%eps then bugmes();quit;end +if Err(U1*S1*V'-A) >200*%eps then bugmes();quit;end +[U1,S1,V1]=svd(A,"e"); +if Err(S-diag(S1))>200*%eps then bugmes();quit;end +if size(U1,2)<>3 then bugmes();quit;end +if Err(U1*S1*V1'-A) >200*%eps then bugmes();quit;end +[U1,S1,V1,rk]=svd(A); +if Err(S-diag(S1))>200*%eps then bugmes();quit;end +if Err(U-U1)>200*%eps then bugmes();quit;end +if Err(V-V1) >200*%eps then bugmes();quit;end +if rk<>3 then bugmes();quit;end +//Complex Case Fat +A=rand(3,5)+%i*rand(3,5); +S=svd(A); +if or(S<0) then bugmes();quit;end +if gsort(S)<>S then bugmes();quit;end +[U,S1]=svd(A); +if Err(S-diag(S1))>200*%eps then bugmes();quit;end +if Err(U'*U-eye())>200*%eps then bugmes();quit;end +[U1,S1]=svd(A,"e"); +if Err(S-diag(S1))>200*%eps then bugmes();quit;end +if Err(U1'*U1-eye())>200*%eps then bugmes();quit;end +[U1,S1,V]=svd(A); +if Err(S-diag(S1))>200*%eps then bugmes();quit;end +if Err(U'*U-eye())>200*%eps then bugmes();quit;end +if Err(U1*S1*V'-A) >30*%eps then bugmes();quit;end +[U1,S1,V1]=svd(A,"e"); +if Err(S-diag(S1))>200*%eps then bugmes();quit;end +if Err(U-U1)>200*%eps then bugmes();quit;end +if Err(U1*S1*V1'-A) >200*%eps then bugmes();quit;end +[U1,S1,V1,rk]=svd(A); +if Err(S-diag(S1))>200*%eps then bugmes();quit;end +if Err(U-U1)>200*%eps then bugmes();quit;end +if Err(V-V1) >200*%eps then bugmes();quit;end +if rk<>3 then bugmes();quit;end +//Complex Case Tall +A=rand(5,3)+%i*rand(5,3); +S=svd(A); +if or(S<0) then bugmes();quit;end +if gsort(S)<>S then bugmes();quit;end +[U,S1]=svd(A); +if Err(S-diag(S1))>200*%eps then bugmes();quit;end +if Err(U'*U-eye())>200*%eps then bugmes();quit;end +[U1,S1]=svd(A,"e"); +if Err(S-diag(S1))>200*%eps then bugmes();quit;end +if Err(U1'*U1-eye())>200*%eps then bugmes();quit;end +[U1,S1,V]=svd(A); +if Err(S-diag(S1))>200*%eps then bugmes();quit;end +if Err(U'*U-eye())>200*%eps then bugmes();quit;end +if Err(U1*S1*V'-A) >200*%eps then bugmes();quit;end +[U1,S1,V1]=svd(A,"e"); +if Err(S-diag(S1))>200*%eps then bugmes();quit;end +if size(U1,2)<>3 then bugmes();quit;end +if Err(U1*S1*V1'-A) >200*%eps then bugmes();quit;end +[U1,S1,V1,rk]=svd(A); +if Err(S-diag(S1))>200*%eps then bugmes();quit;end +if Err(U-U1)>200*%eps then bugmes();quit;end +if Err(V-V1) >200*%eps then bugmes();quit;end +if rk<>3 then bugmes();quit;end +//Large dimension +//Real Case Fat +A=rand(30,50); +S=svd(A); +if or(S<0) then bugmes();quit;end +if gsort(S)<>S then bugmes();quit;end +[U,S1]=svd(A); +if Err(S-diag(S1))>1000*%eps then bugmes();quit;end +if Err(U'*U-eye())>1000*%eps then bugmes();quit;end +[U1,S1]=svd(A,"e"); +if Err(S-diag(S1))>1000*%eps then bugmes();quit;end +if Err(U1'*U1-eye())>1000*%eps then bugmes();quit;end +[U1,S1,V]=svd(A); +if Err(S-diag(S1))>1000*%eps then bugmes();quit;end +if Err(U'*U-eye())>1000*%eps then bugmes();quit;end +if Err(U1*S1*V'-A) >1000*%eps then bugmes();quit;end +[U1,S1,V1]=svd(A,"e"); +if Err(S-diag(S1))>1000*%eps then bugmes();quit;end +if Err(U-U1)>10*%eps then bugmes();quit;end +if Err(U1*S1*V1'-A) >1000*%eps then bugmes();quit;end +[U1,S1,V1,rk]=svd(A); +if Err(S-diag(S1))>1000*%eps then bugmes();quit;end +if Err(U-U1)>5000*%eps then bugmes();quit;end +if Err(V-V1) >5000*%eps then bugmes();quit;end +if rk<>30 then bugmes();quit;end +//Real Case Tall +A=rand(50,30); +S=svd(A); +if or(S<0) then bugmes();quit;end +if gsort(S)<>S then bugmes();quit;end +[U,S1]=svd(A); +if Err(S-diag(S1))>5000*%eps then bugmes();quit;end +if Err(U'*U-eye())>5000*%eps then bugmes();quit;end +[U1,S1]=svd(A,"e"); +if Err(S-diag(S1))>5000*%eps then bugmes();quit;end +if Err(U1'*U1-eye())>5000*%eps then bugmes();quit;end +[U1,S1,V]=svd(A); +if Err(S-diag(S1))>5000*%eps then bugmes();quit;end +if Err(U'*U-eye())>5000*%eps then bugmes();quit;end +if Err(U1*S1*V'-A) >5000*%eps then bugmes();quit;end +[U1,S1,V1]=svd(A,"e"); +if Err(S-diag(S1))>5000*%eps then bugmes();quit;end +if size(U1,2)<>30 then bugmes();quit;end +if Err(U1*S1*V1'-A) >5000*%eps then bugmes();quit;end +[U1,S1,V1,rk]=svd(A); +if Err(S-diag(S1))>5000*%eps then bugmes();quit;end +if Err(U-U1)>5000*%eps then bugmes();quit;end +if Err(V-V1) >5000*%eps then bugmes();quit;end +if rk<>30 then bugmes();quit;end +//Complex Case Fat +A=rand(30,50)+%i*rand(30,50); +S=svd(A); +if or(S<0) then bugmes();quit;end +if gsort(S)<>S then bugmes();quit;end +[U,S1]=svd(A); +if Err(S-diag(S1))>5000*%eps then bugmes();quit;end +if Err(U'*U-eye())>5000*%eps then bugmes();quit;end +[U1,S1]=svd(A,"e"); +if Err(S-diag(S1))>5000*%eps then bugmes();quit;end +if Err(U1'*U1-eye())>5000*%eps then bugmes();quit;end +[U1,S1,V]=svd(A); +if Err(S-diag(S1))>5000*%eps then bugmes();quit;end +if Err(U'*U-eye())>5000*%eps then bugmes();quit;end +if Err(U1*S1*V'-A) >5000*%eps then bugmes();quit;end +[U1,S1,V1]=svd(A,"e"); +if Err(S-diag(S1))>5000*%eps then bugmes();quit;end +if Err(U-U1)>5000*%eps then bugmes();quit;end +if Err(U1*S1*V1'-A) >5000*%eps then bugmes();quit;end +[U1,S1,V1,rk]=svd(A); +if Err(S-diag(S1))>5000*%eps then bugmes();quit;end +if Err(U-U1)>5000*%eps then bugmes();quit;end +if Err(V-V1) >5000*%eps then bugmes();quit;end +if rk<>30 then bugmes();quit;end +//Complex Case Tall +A=rand(50,30)+%i*rand(50,30); +S=svd(A); +if or(S<0) then bugmes();quit;end +if gsort(S)<>S then bugmes();quit;end +[U,S1]=svd(A); +if Err(S-diag(S1))>5000*%eps then bugmes();quit;end +if Err(U'*U-eye())>5000*%eps then bugmes();quit;end +[U1,S1]=svd(A,"e"); +if Err(S-diag(S1))>5000*%eps then bugmes();quit;end +if Err(U1'*U1-eye())>5000*%eps then bugmes();quit;end +[U1,S1,V]=svd(A); +if Err(S-diag(S1))>5000*%eps then bugmes();quit;end +if Err(U'*U-eye())>5000*%eps then bugmes();quit;end +if Err(U1*S1*V'-A) >5000*%eps then bugmes();quit;end +[U1,S1,V1]=svd(A,"e"); +if Err(S-diag(S1))>5000*%eps then bugmes();quit;end +if size(U1,2)<>30 then bugmes();quit;end +if Err(U1*S1*V1'-A) >5000*%eps then bugmes();quit;end +[U1,S1,V1,rk]=svd(A); +if Err(S-diag(S1))>5000*%eps then bugmes();quit;end +if Err(U-U1)>5000*%eps then bugmes();quit;end +if Err(V-V1) >5000*%eps then bugmes();quit;end +if rk<>30 then bugmes();quit;end diff --git a/modules/linear_algebra/tests/unit_tests/svd.tst b/modules/linear_algebra/tests/unit_tests/svd.tst new file mode 100755 index 000000000..68c2ca6e0 --- /dev/null +++ b/modules/linear_algebra/tests/unit_tests/svd.tst @@ -0,0 +1,376 @@ +// ============================================================================= +// 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. +// ============================================================================= +function r=Err(x) + r=norm(x,1) +endfunction +rand('normal') + +//========================================================================== +//============================== svd ============================== +//========================================================================== +//Empty matrix +A=[]; +[U,S,V]=svd(A); +if U<>[]|V<>[]|S<>[] then pause,end +S=svd(A); +if S<>[] then pause,end +[U,S,V]=svd(A,"e"); +if U<>[]|V<>[]|S<>[] then pause,end + +S=svd(A,"e"); +if S<>[] then pause,end + +//Matrix with inf or nan +if execstr('svd([%inf 1;2 3])','errcatch')==0 then pause,end +if execstr('svd([1 %nan;2 3])','errcatch')==0 then pause,end + +if execstr('svd([%inf %i;2 3])','errcatch')==0 then pause,end +if execstr('svd([%i %i;%nan 3])','errcatch')==0 then pause,end + + +//Small dimension +//--------------- +A=rand(3,5); +Ac=A+%i*rand(A); + +//Real Case +[U,S,V]=svd(A); +if Err(U*S*V'-A)>200*%eps then pause,end +if Err(svd(A)-diag(S))> 200*%eps then pause,end + +[U,S,V]=svd(A,"e"); +if Err(U*S*V'-A)>200*%eps then pause,end + +A=A'; +[U,S,V]=svd(A); +if Err(U*S*V'-A)>200*%eps then pause,end +if Err(svd(A)-diag(S))> 200*%eps then pause,end + +[U,S,V]=svd(A,"e"); +if Err(U*S*V'-A)>200*%eps then pause,end + + +//Complex Case +[U,S,V]=svd(Ac); +if Err(U*S*V'-Ac)>200*%eps then pause,end +if Err(svd(Ac)-diag(S))> 200*%eps then pause,end + +[U,S,V]=svd(Ac,"e"); +if Err(U*S*V'-Ac)>200*%eps then pause,end + +Ac=Ac'; +[U,S,V]=svd(Ac);U*S*V'-Ac; +if Err(U*S*V'-Ac)>200*%eps then pause,end +if Err(svd(Ac)-diag(S))> 200*%eps then pause,end + +[U,S,V]=svd(Ac,"e"); +if Err(U*S*V'-Ac)>200*%eps then pause,end + + +//Large dimension +//--------------- +A=rand(150,60); +Ac=A+rand(A)*%i; +//Real Case +[U,S,V]=svd(A); +if Err(U*S*V'-A)>10000*%eps then pause,end +if Err(svd(A)-diag(S))> 10000*%eps then pause,end + +[U,S,V]=svd(A,"e"); +if Err(U*S*V'-A)>10000*%eps then pause,end + +A=A'; +[U,S,V]=svd(A); +if Err(U*S*V'-A)>10000*%eps then pause,end +if Err(svd(A)-diag(S))> 10000*%eps then pause,end + +[U,S,V]=svd(A,"e"); +if Err(U*S*V'-A)>10000*%eps then pause,end + + +//Complex Case +[U,S,V]=svd(Ac); +if Err(U*S*V'-Ac)>10000*%eps then pause,end +if Err(svd(Ac)-diag(S))> 10000*%eps then pause,end + +[U,S,V]=svd(Ac,"e"); +if Err(U*S*V'-Ac)>10000*%eps then pause,end + +Ac=Ac'; +[U,S,V]=svd(Ac);U*S*V'-Ac; +if Err(U*S*V'-Ac)>10000*%eps then pause,end +if Err(svd(Ac)-diag(S))> 10000*%eps then pause,end + +[U,S,V]=svd(Ac,"e"); +if Err(U*S*V'-Ac)>10000*%eps then pause,end + +//========================================================================== +//============================== svd part II ======================= +//========================================================================== +//Empty matrix +if svd([])<>[] then pause,end +if svd([],"e")<>[] then pause,end + +[U,S]=svd([]); +if U<>[]|S<>[] then pause,end +[U,S,V]=svd([]); +if U<>[]|S<>[]|V<>[] then pause,end +[U,S,V,rk]=svd([]); +if U<>[]|S<>[]|V<>[]|rk<>0 then pause,end +[U,S,V,rk]=svd([],%eps); +if U<>[]|S<>[]|V<>[]|rk<>0 then pause,end + +if execstr('[U,S,V,rk]=svd([],'"e'")','errcatch') == 0 then pause,end + +//Small dimension +//Real Case Fat +A=rand(3,5); +S=svd(A); +if or(S<0) then pause,end +if gsort(S)<>S then pause,end + +[U,S1]=svd(A); +if Err(S-diag(S1))>200*%eps then pause,end +if Err(U'*U-eye())>10*%eps then pause,end + +[U1,S1]=svd(A,"e"); +if Err(S-diag(S1))>200*%eps then pause,end +if Err(U1'*U1-eye())>200*%eps then pause,end + +[U1,S1,V]=svd(A); +if Err(S-diag(S1))>200*%eps then pause,end +if Err(U'*U-eye())>200*%eps then pause,end +if Err(U1*S1*V'-A) >200*%eps then pause,end + +[U1,S1,V1]=svd(A,"e"); +if Err(S-diag(S1))>200*%eps then pause,end +if Err(U-U1)>10*%eps then pause,end +if Err(U1*S1*V1'-A) >200*%eps then pause,end + +[U1,S1,V1,rk]=svd(A); +if Err(S-diag(S1))>200*%eps then pause,end +if Err(U-U1)>200*%eps then pause,end +if Err(V-V1) >200*%eps then pause,end +if rk<>3 then pause,end + +//Real Case Tall +A=rand(5,3); + +S=svd(A); +if or(S<0) then pause,end +if gsort(S)<>S then pause,end + +[U,S1]=svd(A); +if Err(S-diag(S1))>200*%eps then pause,end +if Err(U'*U-eye())>200*%eps then pause,end + +[U1,S1]=svd(A,"e"); +if Err(S-diag(S1))>200*%eps then pause,end +if Err(U1'*U1-eye())>200*%eps then pause,end + +[U1,S1,V]=svd(A); +if Err(S-diag(S1))>200*%eps then pause,end +if Err(U'*U-eye())>200*%eps then pause,end +if Err(U1*S1*V'-A) >200*%eps then pause,end + +[U1,S1,V1]=svd(A,"e"); +if Err(S-diag(S1))>200*%eps then pause,end +if size(U1,2)<>3 then pause,end +if Err(U1*S1*V1'-A) >200*%eps then pause,end + +[U1,S1,V1,rk]=svd(A); +if Err(S-diag(S1))>200*%eps then pause,end +if Err(U-U1)>200*%eps then pause,end +if Err(V-V1) >200*%eps then pause,end +if rk<>3 then pause,end + +//Complex Case Fat +A=rand(3,5)+%i*rand(3,5); +S=svd(A); +if or(S<0) then pause,end +if gsort(S)<>S then pause,end + +[U,S1]=svd(A); +if Err(S-diag(S1))>200*%eps then pause,end +if Err(U'*U-eye())>200*%eps then pause,end + +[U1,S1]=svd(A,"e"); +if Err(S-diag(S1))>200*%eps then pause,end +if Err(U1'*U1-eye())>200*%eps then pause,end + +[U1,S1,V]=svd(A); +if Err(S-diag(S1))>200*%eps then pause,end +if Err(U'*U-eye())>200*%eps then pause,end +if Err(U1*S1*V'-A) >30*%eps then pause,end + +[U1,S1,V1]=svd(A,"e"); +if Err(S-diag(S1))>200*%eps then pause,end +if Err(U-U1)>200*%eps then pause,end +if Err(U1*S1*V1'-A) >200*%eps then pause,end + +[U1,S1,V1,rk]=svd(A); +if Err(S-diag(S1))>200*%eps then pause,end +if Err(U-U1)>200*%eps then pause,end +if Err(V-V1) >200*%eps then pause,end +if rk<>3 then pause,end + +//Complex Case Tall +A=rand(5,3)+%i*rand(5,3); + +S=svd(A); +if or(S<0) then pause,end +if gsort(S)<>S then pause,end + +[U,S1]=svd(A); +if Err(S-diag(S1))>200*%eps then pause,end +if Err(U'*U-eye())>200*%eps then pause,end + +[U1,S1]=svd(A,"e"); +if Err(S-diag(S1))>200*%eps then pause,end +if Err(U1'*U1-eye())>200*%eps then pause,end + +[U1,S1,V]=svd(A); +if Err(S-diag(S1))>200*%eps then pause,end +if Err(U'*U-eye())>200*%eps then pause,end +if Err(U1*S1*V'-A) >200*%eps then pause,end + +[U1,S1,V1]=svd(A,"e"); +if Err(S-diag(S1))>200*%eps then pause,end +if size(U1,2)<>3 then pause,end +if Err(U1*S1*V1'-A) >200*%eps then pause,end + +[U1,S1,V1,rk]=svd(A); +if Err(S-diag(S1))>200*%eps then pause,end +if Err(U-U1)>200*%eps then pause,end +if Err(V-V1) >200*%eps then pause,end +if rk<>3 then pause,end + + +//Large dimension +//Real Case Fat +A=rand(30,50); +S=svd(A); +if or(S<0) then pause,end +if gsort(S)<>S then pause,end + +[U,S1]=svd(A); +if Err(S-diag(S1))>1000*%eps then pause,end +if Err(U'*U-eye())>1000*%eps then pause,end + +[U1,S1]=svd(A,"e"); +if Err(S-diag(S1))>1000*%eps then pause,end +if Err(U1'*U1-eye())>1000*%eps then pause,end + +[U1,S1,V]=svd(A); +if Err(S-diag(S1))>1000*%eps then pause,end +if Err(U'*U-eye())>1000*%eps then pause,end +if Err(U1*S1*V'-A) >1000*%eps then pause,end + +[U1,S1,V1]=svd(A,"e"); +if Err(S-diag(S1))>1000*%eps then pause,end +if Err(U-U1)>10*%eps then pause,end +if Err(U1*S1*V1'-A) >1000*%eps then pause,end + +[U1,S1,V1,rk]=svd(A); +if Err(S-diag(S1))>1000*%eps then pause,end +if Err(U-U1)>5000*%eps then pause,end +if Err(V-V1) >5000*%eps then pause,end +if rk<>30 then pause,end + +//Real Case Tall +A=rand(50,30); + +S=svd(A); +if or(S<0) then pause,end +if gsort(S)<>S then pause,end + +[U,S1]=svd(A); +if Err(S-diag(S1))>5000*%eps then pause,end +if Err(U'*U-eye())>5000*%eps then pause,end + +[U1,S1]=svd(A,"e"); +if Err(S-diag(S1))>5000*%eps then pause,end +if Err(U1'*U1-eye())>5000*%eps then pause,end + +[U1,S1,V]=svd(A); +if Err(S-diag(S1))>5000*%eps then pause,end +if Err(U'*U-eye())>5000*%eps then pause,end +if Err(U1*S1*V'-A) >5000*%eps then pause,end + +[U1,S1,V1]=svd(A,"e"); +if Err(S-diag(S1))>5000*%eps then pause,end +if size(U1,2)<>30 then pause,end +if Err(U1*S1*V1'-A) >5000*%eps then pause,end + +[U1,S1,V1,rk]=svd(A); +if Err(S-diag(S1))>5000*%eps then pause,end +if Err(U-U1)>5000*%eps then pause,end +if Err(V-V1) >5000*%eps then pause,end +if rk<>30 then pause,end + +//Complex Case Fat +A=rand(30,50)+%i*rand(30,50); +S=svd(A); +if or(S<0) then pause,end +if gsort(S)<>S then pause,end + +[U,S1]=svd(A); +if Err(S-diag(S1))>5000*%eps then pause,end +if Err(U'*U-eye())>5000*%eps then pause,end + +[U1,S1]=svd(A,"e"); +if Err(S-diag(S1))>5000*%eps then pause,end +if Err(U1'*U1-eye())>5000*%eps then pause,end + +[U1,S1,V]=svd(A); +if Err(S-diag(S1))>5000*%eps then pause,end +if Err(U'*U-eye())>5000*%eps then pause,end +if Err(U1*S1*V'-A) >5000*%eps then pause,end + +[U1,S1,V1]=svd(A,"e"); +if Err(S-diag(S1))>5000*%eps then pause,end +if Err(U-U1)>5000*%eps then pause,end +if Err(U1*S1*V1'-A) >5000*%eps then pause,end + +[U1,S1,V1,rk]=svd(A); +if Err(S-diag(S1))>5000*%eps then pause,end +if Err(U-U1)>5000*%eps then pause,end +if Err(V-V1) >5000*%eps then pause,end +if rk<>30 then pause,end + +//Complex Case Tall +A=rand(50,30)+%i*rand(50,30); + +S=svd(A); +if or(S<0) then pause,end +if gsort(S)<>S then pause,end + +[U,S1]=svd(A); +if Err(S-diag(S1))>5000*%eps then pause,end +if Err(U'*U-eye())>5000*%eps then pause,end + +[U1,S1]=svd(A,"e"); +if Err(S-diag(S1))>5000*%eps then pause,end +if Err(U1'*U1-eye())>5000*%eps then pause,end + +[U1,S1,V]=svd(A); +if Err(S-diag(S1))>5000*%eps then pause,end +if Err(U'*U-eye())>5000*%eps then pause,end +if Err(U1*S1*V'-A) >5000*%eps then pause,end + +[U1,S1,V1]=svd(A,"e"); +if Err(S-diag(S1))>5000*%eps then pause,end +if size(U1,2)<>30 then pause,end +if Err(U1*S1*V1'-A) >5000*%eps then pause,end + +[U1,S1,V1,rk]=svd(A); +if Err(S-diag(S1))>5000*%eps then pause,end +if Err(U-U1)>5000*%eps then pause,end +if Err(V-V1) >5000*%eps then pause,end +if rk<>30 then pause,end + + |